• Tidak ada hasil yang ditemukan

Program Enkripsi dan Dekripsi Dengan Metoda Kunci Simetri Menggunakan Algoritma Feal.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Program Enkripsi dan Dekripsi Dengan Metoda Kunci Simetri Menggunakan Algoritma Feal."

Copied!
44
0
0

Teks penuh

(1)

ABSTRAK

Dalam dunia sekarang ini, kemajuan teknologi di bidang komputer dan

telekomunikasi berkembang sangat pesat. Lalu lintas pengiriman data dan

informasi yang semakin global, serta konsep

open system

dari suatu jaringan

memudahkan seseorang untuk masuk ke dalam jaringan tersebut. Hal tersebut

dapat membuat proses pengiriman data menjadi tidak aman dan dapat saja

dimanfaatkan oleh pihak lain yang tidak bertanggung jawab, yang mengambil

informasi atau data yang dikirimkan tersebut di tengah perjalanan. Maka

dibutuhkan suatu sistem keamanan yang dapat menjaga kerahasiaan suatu data,

sehingga data tersebut dapat dikirimkan dengan aman. Salah satu solusi untuk

menjaga keamanan dan kerahasiaan pada proses pengiriman data dengan

menggunakan teknik kriptografi.

Kriptografi telah menjadi suatu bagian yang tidak dapat dipisahkan dari

sistem keamanan jaringan antar komputer yang juga merupakan salah satu solusi

agar informasi atau pesan yang dikirim dalam suatu jaringan tidak dapat

dimanfaatkan oleh pihak lain. Kriptografi akan mengubah informasi yang dikirim

menjadi suatu pesan yang tidak memiliki makna, dan tidak dapat dimengerti oleh

pihak lain selain penerima.

Dalam tugas akhir ini penulis merealisasikan suatu perangkat lunak

enkripsi dan dekripsi file teks dengan menggunakan algoritma kriptografi yaitu

FEAL. Di samping itu untuk meningkatkan keamanan pada perangkat lunak

disertakan juga proses validasi dan proses

digital signature

, sehingga perangkat

lunak dapat mendeteksi adanya perubahan data atau informasi yang dikirimkan

serta menjamin keaslian pengirim informasi. Perangkat lunak ini dibuat dengan

menggunakan bahasa pemrograman Microsoft Visual Basic 6.0.

(2)

ABSTRACT

In the world today, the development of technology in the sector of

computer and telecommunication has grown fast. The traffic of sending data and

global information, also open system concept from a certain network make

someone easier to go into that network. It can make a data shipping process does

not save and can be exploited by other side who do not have any responsibility,

who take an information or data which will be sent on the way. So, it is needed a

security system able to take care of data secret, so that the data can be sent safely.

One of the solution to take care of secret and security at process delivery of data

by using a cryptography technique.

Cryptography has become certain parts which cannot be separated from a

network security system between computer and also a part of solution in order that

information or message which is sent in a network cannot be exploited by other

people. Cryptography will change a sending information become an unmeaning

message, and cannot be understood by other people but receiver.

In this final thesis, encryption and decryption file using FEAL algorithm

has realized.. Beside that, not only to improve the security level, in the software

also included validation and digital signature process, so that software is able to

detect the text changes and able to guarantee the originality of sender of massage.

The software of FEAL is made by using Microsoft Visual Basic 6.0 language

program.

(3)

DAFTAR ISI

ABSTRAK ... i

ABSTRACT... ii

KATA PENGANTAR ... iii

DAFTAR ISI... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL... ix

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Identifikasi Masalah ... 2

1.3 Tujuan ... 2

1.4 Pembatasan Masalah ... 2

1.5 Sistematika Penulisan ... 2

BAB II TEORI PENUNJANG ... 3

2.1 Sekilas Mengenai Keamanan dan Kerahasiaan Data Dalam

Jaringan Komputer ... 3

2.2 Kriptologi, Kriptoanalisis, dan Kriptografi... 6

2.2.1 Kriptoanalisis ... 7

2.2.2 Algoritma dan Kunci... 9

2.2.2.1 Algoritma Simetris ... 10

2.2.2.1.1 Mode Operasi Algoritma Block Cipher ... 11

2.2.2.2 Algoritma Asimetris... 16

2.3 Perbadingan Antara Algoritma Simetrik Dengan Algoritma

Kunci Publik ... 17

2.4 Algoritma FEAL ... 19

2.5 Tanda Tangan Digital (

Digital Signature

) ... 23

2.5.1 Algoritma Pembangkit Kunci Tanda Tangan Digital ... 23

2.5.2 Algoritma Tanda Tangan Digital ... 24

2.5.3 Algoritma Verifikasi Tanda Tangan Digital ... 24

(4)

2.6 Visual Basic ... 24

2.6.1 Sekilas Tentang Visual Basic... 24

2.6.2 Lingkungan Visual Basic ... 25

2.6.2.1 Control Menu ... 25

2.6.2.2 Menu ... 25

2.6.2.3 Toolbar ... 26

2.6.2.4 Form Window ... 26

2.6.2.5 Toolbox ... 26

2.6.2.6 Project Explorer ... 26

2.6.2.7 Jendela Properties ... 26

2.6.2.8 Form Layout Window ... 27

2.6.2.9 Jendela Code ... 27

2.6.3 Komponen Pemrograman Visual Basic ... 28

BAB III IMPLEMENTASI ALGORITMA DAN REALISASI PERANGKAT

LUNAK... 33

3.1 Program Pengamanan Data FEAL ... 33

3.1.1 Padding dan Mode Operasi ... 36

3.2 Program Utama ... 36

3.2.1 Program Enkripsi

Plaintext

... 37

3.2.1.1 Sub Program CRCCheck ... 38

3.2.1.2 Sub Program Enkripsi FEAL ... 39

3.2.2 Program Dekripsi

Ciphertext

... 43

3.2.2.1 Sub Program Dekripsi FEAL ... 44

3.2.3 Program Tanda Tangan Digital... 48

3.2.3.1 Sub Program Pangkatmod... 48

3.2.4 Program Perbandingan Tanda Tangan Digital

dengan

Decipheredtext

... 50

BAB IV HASIL PENGAMATAN ... 51

4.1 Pengujian Perangkat Lunak ... 51

4.1.1 Pengujian 1... 51

4.1.2 Pengujian 2... 54

4.1.3 Pengujian 3... 56

(5)

4.1.3.1 Penambahan Karakter Pada

Ciphertext

... 56

4.1.3.2 Pengurangan Karakter Pada

Ciphertext

... 57

4.1.3.3 Penggantian (

Replace

) Karakter Pada

Ciphertext

... 59

4.1.4 Pengujian 4... 60

4.1.5 Pengujian 5... 64

4.1.6 Pengujian 6... 66

4.1.7 Pengujian 7... 68

4.1.8 Pengujian 8... 70

4.1.9 Pengujian 9... 71

4.1.10 Pengujian 10... 71

4.2 Analisa dan Hasil Pengamatan... 72

BAB V KESIMPULAN DAN SARAN... 74

5.1 Kesimpulan ... 74

5.2 Saran... 74

DAFTAR PUSTAKA

LAMPIRAN A LISTING PROGRAM... A-1

LAMPIRAN B DIAGRAM ALIR SUB PROGRAM ... B-1

LAMPIRAN C TAMPILAN PROGRAM... C-1

(6)

DAFTAR GAMBAR

Gambar 2.1 Skema Enkripsi dan Dekripsi Pada Kriptografi Simetris... 10

Gambar 2.2 Enkripsi dan Dekripsi Mode ECB... 12

Gambar 2.3 Enkripsi dan Dekripsi Mode CBC ... 14

Gambar 2.4 Enkripsi dan Dekripsi Mode CFB... 15

Gambar 2.5 Skema Enkripsi dan Dekripsi Pada Kriptografi Asimetris... 17

Gambar 2.6 Diagram Alir Algoritma FEAL ... 20

Gambar 2.7 Diagram Alir Fungsi f ... 21

Gambar 2.8 Diagram Alir Kunci FEAL... 22

Gambar 2.9 Diagram Alir Fungsi

f

K

... 22

Gambar 2.10 Lingkungan Kerja Visual Basic ... 25

Gambar 2.11 Jendela Kode ... 28

Gambar 2.12 Kontrol pada Visual Basic... 30

Gambar 2.13 Jendela Properties... 31

Gambar 3.1 Diagram Alir Program Pengamanan Data... 34

Gambar 3.2 Tampilan Form Utama Bagian Enkripsi ... 35

Gambar 3.3 Tampilan Form Utama Bagian Dekripsi ... 35

Gambar 3.4 Diagram Alir Eksekusi Enkripsi ... 37

Gambar 3.5 Diagram Alir CRCCheck ... 38

Gambar 3.6 Diagram Alir Sub Program Enkripsi FEAL... 40

Gambar 3.7 Diagram Alir Eksekusi Dekripsi ... 43

Gambar 3.8 Diagram Alir Sub Program Dekripsi FEAL... 45

Gambar 3.9 Diagram Alir Program Tanda Tangan Digital... 48

Gambar 3.10 Diagram Alir Sub Program Pangkatmod ... 49

Gambar 3.11 Diagram Alir Program Perbandingan Tanda Tangan Digital

dengan Decipheredtext... 50

Gambar 4.1 super_1024.jpg ( 286 KB )... 71

(7)

DAFTAR TABEL

Tabel 4.1 Hasil pengamatan ukuran file sebelum dan sesudah proses enkripsi dan

dekripsi serta waktu untuk setiap proses dengan menggunakan algoritma

FEAL... 69

Tabel 4.2 Hasil pengamatan ukuran file sebelum dan sesudah proses enkripsi dan

dekripsi serta waktu untuk setiap proses dengan menggunakan algoritma

LOKI ... 69

(8)

LAMPIRAN A

LISTING PROGRAM

FORM UTAMA

Private Sub cmdBrowse_Click() CdbDialog.InitDir = "C:\"

CdbDialog.Filter = "Text File(*.txt)|*.txt" CdbDialog.FileName = ""

CdbDialog.DialogTitle = "Open File" CdbDialog.ShowOpen

txtSave.text = CdbDialog.FileName If CdbDialog.FileName = "" Then Exit Sub

End If

rtbplain.FileName = CdbDialog.FileName x = rtbplain.text

pjg = Len(x)

temp = Mid(x, pjg - 1, 2) For i = 1 To 2

p = Mid(temp, i, 1) h = Hex(Asc(p)) c = c & h

Next i

If c = "DA" Then

hasil = Mid(x, 1, pjg - 2) Else

hasil = x End If

txttime.text = "" rtbcipher = ""

rtbplain.text = hasil End Sub

Private Sub cmdBrowse2_Click() CdbDialog.InitDir = "C:\"

CdbDialog.Filter = "Text File(*.txt.enc)|*.txt.enc" CdbDialog.FileName = ""

CdbDialog.DialogTitle = "Save File" CdbDialog.ShowOpen

txtSave2.text = CdbDialog.FileName If CdbDialog.FileName = "" Then Exit Sub

End If

rtbcipher.FileName = CdbDialog.FileName x = rtbcipher.text

pjg = Len(x)

temp = Mid(x, pjg - 1, 2) For i = 1 To 2

p = Hex(Asc(Mid(temp, i, 1))) c = c & p

Next i

If c = "DA" Then

(9)

hasil = Mid(x, 1, pjg - 2) Else

hasil = x End If

txttime.text = "" rtbplain = ""

rtbcipher.text = hasil End Sub

Private Sub cmdCekSignVal_Click() Dim signcek As Long

Dim vad As String

vad2 = CRCCheck(CStr(rtbplain.text))

vad = Hextobin(Mid(vad2, Len(vad2) - 1, 2)) h = CInt(BinTodes(vad))

Text9.text = h

If txtPublikE.text = "" Or txtPublikN.text = "" Then MsgBox "Input your publik key"

Exit Sub End If

AllText$ = ""

CommonDialog3.Filter = "Text files |*.TXT" CommonDialog3.ShowOpen

If CommonDialog3.FileName <> "" Then frmMain.MousePointer = 11

Open CommonDialog3.FileName For Input As #1

Do Until EOF(1) 'then read lines from file Line Input #1, LineOfText$

AllText$ = AllText$ & LineOfText$ Loop

txtValSign.text = ""

txtValSign.text = AllText$ 'display file txtValSign.Enabled = True

signcek = pangkatmod(txtValSign.text, txtPublikE.text, txtPublikN.text)

Text10.text = signcek CleanUp:

CommonDialog3.FileName = ""

frmMain.MousePointer = 0 'reset mouse Close #1 'close file

If Text9.text = Text10.text Then

MsgBox "Data Verified", vbOKOnly, "ProjectFEAL" Exit Sub

Else

MsgBox "Data is not Valid or Wrong Signature", vbOKOnly, "ProjectFEAL" Exit Sub End If End If Exit Sub End Sub

(10)

Private Sub cmddekrip_Click()

Dim cteks, plain As String, kunci As String

cmdenkrip.Enabled = False cmddekrip.Enabled = False

cteks = rtbcipher.text kunci = txtkey2.text

If rtbcipher.text = "" Then

S = MsgBox("Please insert text into CIPHERTEXT box!", vbExclamation, "ERROR")

rtbcipher.SetFocus GoTo bawah

End If

vad1 = Mid(cteks, Len(cteks) - 7, 8) cteks2 = Mid(cteks, 1, Len(cteks) - 8)

If Not Len(kunci) = 8 Then

S = MsgBox("Please insert keyword in 8 character!", vbExclamation, "ERROR")

txtkey2.SetFocus GoTo bawah

End If

tawal = Timer

plain = Dekripsi(CStr(kunci), CStr(cteks2))

takhir = Timer

txttime2.text = takhir - tawal

vad2 = CRCCheck(CStr(plain)) If Not vad1 = vad2 Then

temp = MsgBox("Data is not valid ", vbInformation, "Information")

End If

rtbplain.text = plain

bawah:

cmdenkrip.Enabled = True cmddekrip.Enabled = True End Sub

Private Sub cmdenkrip_Click() Dim pteks, kunci As String

cmdenkrip.Enabled = False cmddekrip.Enabled = False

If rtbplain.text = "" Then

S = MsgBox("Please insert text into PLAINTEXT box!", vbExclamation, "ERROR")

rtbplain.SetFocus GoTo bawah

(11)

End If

pteks = rtbplain.text kunci = txtkey.text

vad = CRCCheck(CStr(pteks))

If Not Len(kunci) = 8 Then

S = MsgBox("Please insert keyword in 8 character!", vbExclamation, "ERROR")

txtkey.SetFocus GoTo bawah End If

tawal = Timer

cipher = Enkripsi(CStr(kunci), CStr(pteks))

takhir = Timer

txttime.text = takhir - tawal vcipher = cipher & vad

On Error Resume Next rtbcipher.text = vcipher txtkey2.text = txtkey.text rtbplain.text = ""

bawah:

cmdenkrip.Enabled = True cmddekrip.Enabled = True End Sub

Private Sub cmdGen_Click() Dim p As Long 'random prime

Dim q As Long 'second random prime that not equal to p Dim n As Long 'p * q

Dim pi As Long '(p - 1)(q - 1)

Dim e As Long 'e that relatively prime to pi but less than pi Dim d As Long 'd that d*e congruent to 1 mod pi

Dim i1 As Long 'counter Dim c As Long

Dim temp1 As Long

Dim temp2() As Long ' temp dynamic array handler that hand selection of e

Dim temp3 As Long Dim temp4 As Long

Dim temp5 As Long ' temp handler Dim temp6 As Long ' temp handler 2

frmMain.MousePointer = 11 repeat:

p = RdmPrime q = RdmPrime2

'Trap handler if p = q If p = q Then

GoTo repeat

(12)

End If

n = p * q

Text7.text = n cpyText7.text = n

pi = (p - 1) * (q - 1)

'search for e c = pi - 1 ReDim temp2(c)

For e = 2 To (pi - 1) temp6 = gcd(pi, e)

If temp6 = 1 Then temp2(c) = e c = c - 1 End If

Next

'random selection of e ulang:

Randomize

temp3 = Int((pi - 1) * Rnd) temp4 = temp2(temp3)

If temp4 = 0 Or temp4 = Null Then GoTo ulang

End If

'select e that is prime For i1 = 2 To (Sqr(temp4)) temp5 = temp4 Mod i1

If temp5 = 0 Then GoTo ulang End If

Next i1

Text5.text = temp4

'determine d such that d*e congruent 1 mod pi and d > 0, d > e d = Euclid(pi, temp4)

If d < temp4 Then GoTo ulang

End If

Text6.text = d

frmMain.MousePointer = 0 End Sub

Private Sub cmdValSign_Click() Dim vad As String

Dim vad2 As Long Dim sign As Long

If Text6.text = "" Then

(13)

MsgBox "Click the generate button" Exit Sub

End If

pteks = rtbplain.text

temp = CRCCheck(CStr(pteks))

vad = Hextobin(Mid(temp, Len(temp) - 1, 2)) vad2 = CInt(BinTodes(vad))

sign = pangkatmod(vad2, Text6.text, Text7.text) Text8.text = sign

If Text8.text = "" Then

MsgBox "Error signing the plain document" Exit Sub

Else

CommonDialog2.Filter = "Text files (*.TXT)|*.TXT" CommonDialog2.ShowSave

If CommonDialog2.FileName <> "" Then

Open CommonDialog2.FileName For Output As #1 Print #1, Text8.text

CommonDialog1.FileName = "" Close #1

End If

temp = MsgBox("Document has been signed", vbInformation, "information")

End If

Text8.text = "" Text6.text = "" End Sub

Private Sub Form_Load()

Me.Move (Screen.Width - Me.Width) \ 2, _ (Screen.Height - Me.Height) \ 2 End Sub

Private Sub keygen_Click() For i = 1 To 4

Randomize

dat = Hex(Rnd * 255)

If Len(dat) = 1 Then dat = "0" & dat Key = Key & dat

Next i

txtkey.text = Key End Sub

Private Sub mnAbout_Click() Load frmAbout

frmAbout.Show End Sub

Private Sub mnhowto_Click() Load FrmHow

FrmHow.Show End Sub

Private Sub mnbuka1_Click() CdbDialog.InitDir = "C:\"

CdbDialog.Filter = "Text File(*.txt)|*.txt"

(14)

CdbDialog.FileName = ""

CdbDialog.DialogTitle = "Open File" CdbDialog.ShowOpen

If CdbDialog.FileName = "" Then Exit Sub

End If

rtbplain.FileName = CdbDialog.FileName x = rtbplain.text

pjg = Len(x)

temp = Mid(x, pjg - 1, 2) For i = 1 To 2

p = Mid(temp, i, 1) h = Hex(Asc(p)) c = c & h

Next i

If c = "DA" Then

hasil = Mid(x, 1, pjg - 2) Else

hasil = x End If

txttime.text = "" rtbcipher = ""

rtbplain.text = hasil End Sub

Private Sub mnbuka2_Click() CdbDialog.InitDir = "C:\"

CdbDialog.Filter = "Text File(*.txt.enc)|*.txt.enc" CdbDialog.FileName = ""

CdbDialog.DialogTitle = "Save File" CdbDialog.ShowOpen

If CdbDialog.FileName = "" Then Exit Sub

End If

rtbcipher.FileName = CdbDialog.FileName x = rtbcipher.text

pjg = Len(x)

temp = Mid(x, pjg - 1, 2) For i = 1 To 2

p = Hex(Asc(Mid(temp, i, 1))) c = c & p

Next i

If c = "DA" Then

hasil = Mid(x, 1, pjg - 2) Else

hasil = x End If

txttime.text = "" rtbplain = ""

rtbcipher.text = hasil End Sub

Private Sub mnexit_Click() End

End Sub

(15)

Private Sub mnhapus1_Click() rtbplain = ""

End Sub

Private Sub mnhapus2_Click() rtbcipher = ""

End Sub

Private Sub mnreset_Click() rtbplain = ""

rtbcipher = "" txtkey = "" txtkey2 = "" txttime = "" txttime2 = "" txtSave = "" txtSave2 = "" Text6 = "" Text5 = "" Text7 = "" cpyText7 = "" txtValSign = "" txtPublikE = "" txtPublikN = "" Text9 = "" Text10 = "" End Sub

Private Sub mnsimpan1_Click()

CdbDialog.DialogTitle = "Save File"

CdbDialog.Filter = "Text File(*.txt)|*.txt" CdbDialog.FileName = ""

CdbDialog.ShowSave

simpan = CdbDialog.FileName If simpan = "" Then

Exit Sub End If

hasil = rtbplain.text

Open simpan For Output As #1 Print #1, hasil

Close #1 End Sub

Private Sub mnsimpan2_Click()

CdbDialog.DialogTitle = "Save File"

CdbDialog.Filter = "Text File(*.txt.enc)|*.txt.enc" CdbDialog.FileName = ""

CdbDialog.ShowSave

simpan = CdbDialog.FileName If simpan = "" Then

Exit Sub End If

hasil = rtbcipher.text

(16)

Open simpan For Output As #1 Print #1, hasil

Close #1 End Sub

FORM ABOUT

Private Sub cmdOK_Click() Unload frmAbout

End Sub

FORM CARA KERJA

Private Sub cmdFEAL_Click() Unload FrmHow

End Sub

FORM SPLASH

Private Sub Form_KeyPress(KeyAscii As Integer) Unload Me

End Sub

Private Sub Form_Load()

imgLogo.Picture = LoadPicture(App.Path & "\Loading2.gif") End Sub

Private Sub Timer1_Timer() Unload Me

frmMain.Show End Sub

MODUL DIGITAL SIGNATURE

Option Explicit

Function Euclid(ByVal nilai1, ByVal nilai2) As Long Dim mex As Long

Dim bex As Long Dim A1 As Long Dim A2 As Long Dim A3 As Long Dim Qex As Long Dim T1 As Long Dim T2 As Long Dim T3 As Long Dim B1 As Long Dim B2 As Long Dim B3 As Long Dim hasil As Long

mex = nilai1

(17)

bex = nilai2

A1 = 1 A2 = 0 A3 = mex

B1 = 0 B2 = 1 B3 = bex

itung:

If B3 = 0 Then hasil = 0 GoTo selesai End If

If B3 = 1 Then hasil = B2 GoTo selesai End If

Qex = A3 \ B3

T1 = A1 - Qex * B1 T2 = A2 - Qex * B2 T3 = A3 - Qex * B3

A1 = B1 A2 = B2 A3 = B3

B1 = T1 B2 = T2 B3 = T3

GoTo itung

selesai:

Euclid = hasil End Function

Function gcd(ByVal p, ByVal q) As Long Dim A11 As Long

Dim B11 As Long Dim R11 As Long

A11 = p B11 = q

label:

If B11 = 0 Then gcd = A11

Else

R11 = A11 Mod B11 A11 = B11

B11 = R11 GoTo label

(18)

End If End Function

Function RdmPrime() As Long

Dim iRandom As Long ' holds random long result Dim i2 As Long ' checkprime loop counter

Dim temp2a As Long 'swap var

Const iLowerBound = 30 Const iUpperBound = 300

Randomize

110

iRandom = (Int((iUpperBound - iLowerBound + 1) * Rnd() + iLowerBound))

'trap handler

If iRandom = 0 Or iRandom = 1 Then GoTo 110

End If

'check number

For i2 = 2 To (Sqr(iRandom)) temp2a = iRandom Mod i2 If temp2a = 0 Then GoTo 110

End If Next i2

RdmPrime = iRandom End Function

Function RdmPrime2() As Long

Dim iRandom2 As Long ' holds random long result Dim y As Long 'checkprime loop counter

Dim holder As Long 'swap var

Randomize

120

iRandom2 = (Int(Asc(Date) Xor 255 * Rnd)) 'trap handler

If iRandom2 = 0 Or iRandom2 = 1 Then GoTo 120

End If

'check number

For y = 2 To (Sqr(iRandom2)) holder = iRandom2 Mod y If holder = 0 Then GoTo 120

End If Next y

RdmPrime2 = iRandom2 End Function

(19)

Function pangkatmod(ByVal num1, ByVal num2, ByVal num3) As Long 'Dim pangkat As Long

Dim a22 As Long Dim b22 As Long Dim n22 As Long Dim nilaimod As Long Dim nilaic As Long Dim nilaid As Long Dim nilaii As Long Dim nilaik As Long Dim naik As Long Dim temp() As Variant Dim decbin As Variant

a22 = num1 b22 = num2 n22 = num3

decbin = DecimalToBinary(b22) nilaic = 0

nilaid = 1

nilaik = Len(decbin) ReDim temp(nilaik) naik = 1

For nilaii = nilaik - 1 To 0 Step -1 temp(nilaii) = Mid(decbin, naik, 1) naik = naik + 1

nilaic = 2 * nilaic

nilaid = (nilaid * nilaid) Mod n22 If temp(nilaii) = 1 Then

nilaic = nilaic + 1

nilaid = (nilaid * a22) Mod n22 End If

Next

pangkatmod = nilaid End Function

MODUL FEAL

Private CRC32Table(255) As Long

Public Function Enkripsi(ByVal kunci As String, ByVal pteks As String) As String

Dim k(0 To 15, 1 To 2) As Byte

Dim a(0 To 8) As Integer, b(0 To 3) As Integer, c(0 To 3) As Integer, d(0 To 3) As Integer, e(0 To 3) As Integer, f(1 To 4) As Integer, g(1 To 4) As Integer

pteks2 = CStr(Pad(pteks)) For i = 1 To Len(kunci)

a(i - 1) = Asc(Mid(kunci, i, 1)) Next i

(20)

b(0) = a(4) b(1) = a(5) b(2) = a(6) b(3) = a(7)

c(1) = ShiftLeft2Bits(((a(0) Xor a(1)) + (b(0) Xor (a(2) Xor a(3))) + 1) Mod 256)

c(0) = ShiftLeft2Bits(((c(1) Xor b(2)) + a(0)) Mod 256)

c(2) = ShiftLeft2Bits(((c(1) Xor b(1)) + (a(2) Xor a(3))) Mod 256) c(3) = ShiftLeft2Bits((((c(2) Xor b(3)) + a(3)) + 1) Mod 256)

k(0, 1) = c(0) k(0, 2) = c(1) k(1, 1) = c(2) k(1, 2) = c(3)

For h = 2 To 15 Step 2 d(0) = b(0)

d(1) = b(1) d(2) = b(2) d(3) = b(3)

b(0) = (a(0) Xor c(0)) b(1) = (a(1) Xor c(1)) b(2) = (a(2) Xor c(2)) b(3) = (a(3) Xor c(3))

a(0) = d(0) a(1) = d(1) a(2) = d(2) a(3) = d(3)

c(1) = ShiftLeft2Bits(((a(0) Xor a(1)) + (b(0) Xor (a(2) Xor a(3))) + 1) Mod 256)

c(0) = ShiftLeft2Bits(((c(1) Xor b(2)) + a(0)) Mod 256)

c(2) = ShiftLeft2Bits(((c(1) Xor b(1)) + (a(2) Xor a(3))) Mod 256) c(3) = ShiftLeft2Bits((((c(2) Xor b(3)) + a(3)) + 1) Mod 256)

k(h, 1) = c(0) k(h, 2) = c(1)

k((h + 1), 1) = c(2) k((h + 1), 2) = c(3) Next h

'Awal Enkripsi terhadap Plaintext

For j = 1 To Len(pteks2) Step 8 For m = 1 To 8

a(m) = Asc(Mid(pteks2, m + j - 1, 1)) Next m

a(1) = a(1) Xor k(8, 1) a(2) = a(2) Xor k(8, 2) a(3) = a(3) Xor k(9, 1) a(4) = a(4) Xor k(9, 2) a(5) = a(5) Xor k(10, 1) a(6) = a(6) Xor k(10, 2) a(7) = a(7) Xor k(11, 1)

(21)

a(8) = a(8) Xor k(11, 2)

a(5) = a(1) Xor a(5) a(6) = a(2) Xor a(6) a(7) = a(3) Xor a(7) a(8) = a(4) Xor a(8)

e(1) = ShiftLeft2Bits((((a(6) Xor k(0, 1)) Xor a(5)) + ((a(7) Xor k(0, 2)) Xor a(8)) + 1) Mod 256)

e(0) = ShiftLeft2Bits((a(5) + e(1)) Mod 256)

e(2) = ShiftLeft2Bits((((a(7) Xor k(0, 2)) Xor a(8)) + e(1)) Mod 256)

e(3) = ShiftLeft2Bits((a(8) + e(2) + 1) Mod 256)

a(1) = a(1) Xor e(0) a(2) = a(2) Xor e(1) a(3) = a(3) Xor e(2) a(4) = a(4) Xor e(3)

For u = 1 To 7 f(1) = a(1) f(2) = a(2) f(3) = a(3) f(4) = a(4)

e(1) = ShiftLeft2Bits((((a(2) Xor k(u, 1)) Xor a(1)) + ((a(3) Xor k(u, 2)) Xor a(4)) + 1) Mod 256)

e(0) = ShiftLeft2Bits((a(1) + e(1)) Mod 256)

e(2) = ShiftLeft2Bits((((a(3) Xor k(u, 2)) Xor a(4)) + e(1)) Mod 256)

e(3) = ShiftLeft2Bits((a(4) + e(2) + 1) Mod 256)

a(1) = a(5) Xor e(0) a(2) = a(6) Xor e(1) a(3) = a(7) Xor e(2) a(4) = a(8) Xor e(3)

a(5) = f(1) a(6) = f(2) a(7) = f(3) a(8) = f(4) Next u

a(5) = a(1) Xor a(5) a(6) = a(2) Xor a(6) a(7) = a(3) Xor a(7) a(8) = a(4) Xor a(8)

'a(1-8) dibalik

g(1) = a(1) g(2) = a(2) g(3) = a(3) g(4) = a(4)

a(1) = a(5) a(2) = a(6) a(3) = a(7)

(22)

a(4) = a(8)

a(5) = g(1) a(6) = g(2) a(7) = g(3) a(8) = g(4)

a(1) = a(1) Xor k(12, 1) a(2) = a(2) Xor k(12, 2) a(3) = a(3) Xor k(13, 1) a(4) = a(4) Xor k(13, 2) a(5) = a(5) Xor k(14, 1) a(6) = a(6) Xor k(14, 2) a(7) = a(7) Xor k(15, 1) a(8) = a(8) Xor k(15, 2)

For r = 1 To 8

Mid(pteks2, r + j - 1, 1) = Chr(a(r)) Next r

Next j

Enkripsi = pteks2 End Function

Public Function Pad(text As String) As String x = Len(text) Mod 8

For i = (7 - x) To 1 Step -1 text = text & "0"

Next i y = 8 - x

text = text & y Pad = text End Function

Public Function ShiftLeft2Bits(huruf As String) As String Dim temp As String

Dim pjghuruf As Integer, ordebit As Integer Dim tempdes As Byte

temp = huruf temp = Hex(temp)

If Len(temp) = 1 Then temp = "0" & temp huruf = ""

' Konversi ke biner

For pjghuruf = 1 To Len(temp)

tempdes = Val("&H" & Mid(temp, pjghuruf, 1)) For ordebit = 3 To 0 Step -1

If tempdes And 2 ^ ordebit Then huruf = huruf + "1"

Else

huruf = huruf + "0" End If

Next ordebit Next pjghuruf

(23)

y = Left(huruf, 2)

Z = Right(huruf, Len(huruf) - 2) huruf = Z + y

temp = huruf

' Konversi ke desimal

tempdes = 0

For pjghuruf = 0 To Len(temp) - 1

If Val(Mid(temp, pjghuruf + 1, 1)) Then

tempdes = tempdes + 2 ^ (Len(temp) - 1 - pjghuruf) End If

Next pjghuruf

ShiftLeft2Bits = tempdes End Function

Public Function Dekripsi(ByVal kunci As String, ByVal cteks As String) As String

Dim k(0 To 15, 1 To 2) As Byte

Dim a(0 To 8) As Integer, b(0 To 3) As Integer, c(0 To 3) As Integer, d(0 To 3) As Integer, e(0 To 3) As Integer, f(1 To 4) As Integer, g(1 To 4) As Integer, l(1 To 4) As Integer

For i = 1 To Len(kunci)

a(i - 1) = Asc(Mid(kunci, i, 1)) Next i

b(0) = a(4) b(1) = a(5) b(2) = a(6) b(3) = a(7)

c(1) = ShiftLeft2Bits(((a(0) Xor a(1)) + (b(0) Xor (a(2) Xor a(3))) + 1) Mod 256)

c(0) = ShiftLeft2Bits(((c(1) Xor b(2)) + a(0)) Mod 256)

c(2) = ShiftLeft2Bits(((c(1) Xor b(1)) + (a(2) Xor a(3))) Mod 256) c(3) = ShiftLeft2Bits((((c(2) Xor b(3)) + a(3)) + 1) Mod 256)

k(0, 1) = c(0) k(0, 2) = c(1) k(1, 1) = c(2) k(1, 2) = c(3)

For h = 2 To 15 Step 2 d(0) = b(0)

d(1) = b(1) d(2) = b(2) d(3) = b(3)

b(0) = (a(0) Xor c(0)) b(1) = (a(1) Xor c(1)) b(2) = (a(2) Xor c(2)) b(3) = (a(3) Xor c(3))

a(0) = d(0) a(1) = d(1)

(24)

a(2) = d(2) a(3) = d(3)

c(1) = ShiftLeft2Bits(((a(0) Xor a(1)) + (b(0) Xor (a(2) Xor a(3))) + 1) Mod 256)

c(0) = ShiftLeft2Bits(((c(1) Xor b(2)) + a(0)) Mod 256)

c(2) = ShiftLeft2Bits(((c(1) Xor b(1)) + (a(2) Xor a(3))) Mod 256) c(3) = ShiftLeft2Bits((((c(2) Xor b(3)) + a(3)) + 1) Mod 256)

k(h, 1) = c(0) k(h, 2) = c(1)

k((h + 1), 1) = c(2) k((h + 1), 2) = c(3) Next h

'Awal Dekripsi terhadap chipertext

For j = 1 To Len(cteks) Step 8 For m = 1 To 8

If Not (Mid(cteks, m + j - 1, 1)) = "" Then a(m) = Asc(Mid(cteks, m + j - 1, 1))

End If Next m

a(1) = a(1) Xor k(12, 1) a(2) = a(2) Xor k(12, 2) a(3) = a(3) Xor k(13, 1) a(4) = a(4) Xor k(13, 2) a(5) = a(5) Xor k(14, 1) a(6) = a(6) Xor k(14, 2) a(7) = a(7) Xor k(15, 1) a(8) = a(8) Xor k(15, 2)

l(1) = a(1) l(2) = a(2) l(3) = a(3) l(4) = a(4)

a(1) = a(5) a(2) = a(6) a(3) = a(7) a(4) = a(8)

a(5) = l(1) a(6) = l(2) a(7) = l(3) a(8) = l(4)

a(5) = a(1) Xor a(5) a(6) = a(2) Xor a(6) a(7) = a(3) Xor a(7) a(8) = a(4) Xor a(8)

e(1) = ShiftLeft2Bits((((a(6) Xor k(7, 1)) Xor a(5)) + ((a(7) Xor k(7, 2)) Xor a(8)) + 1) Mod 256)

e(0) = ShiftLeft2Bits((a(5) + e(1)) Mod 256)

e(2) = ShiftLeft2Bits((((a(7) Xor k(7, 2)) Xor a(8)) + e(1)) Mod 256)

(25)

e(3) = ShiftLeft2Bits((a(8) + e(2) + 1) Mod 256)

a(1) = a(1) Xor e(0) a(2) = a(2) Xor e(1) a(3) = a(3) Xor e(2) a(4) = a(4) Xor e(3)

For u = 6 To 0 Step -1 f(1) = a(1)

f(2) = a(2) f(3) = a(3) f(4) = a(4)

e(1) = ShiftLeft2Bits((((a(2) Xor k(u, 1)) Xor a(1)) + ((a(3) Xor k(u, 2)) Xor a(4)) + 1) Mod 256)

e(0) = ShiftLeft2Bits((a(1) + e(1)) Mod 256)

e(2) = ShiftLeft2Bits((((a(3) Xor k(u, 2)) Xor a(4)) + e(1)) Mod 256)

e(3) = ShiftLeft2Bits((a(4) + e(2) + 1) Mod 256)

a(1) = a(5) Xor e(0) a(2) = a(6) Xor e(1) a(3) = a(7) Xor e(2) a(4) = a(8) Xor e(3)

a(5) = f(1) a(6) = f(2) a(7) = f(3) a(8) = f(4) Next u

a(5) = a(1) Xor a(5) a(6) = a(2) Xor a(6) a(7) = a(3) Xor a(7) a(8) = a(4) Xor a(8)

a(1) = a(1) Xor k(8, 1) a(2) = a(2) Xor k(8, 2) a(3) = a(3) Xor k(9, 1) a(4) = a(4) Xor k(9, 2) a(5) = a(5) Xor k(10, 1) a(6) = a(6) Xor k(10, 2) a(7) = a(7) Xor k(11, 1) a(8) = a(8) Xor k(11, 2)

For r = 1 To 8

If Not (Mid(cteks, r + j - 1, 1)) = "" Then Mid(cteks, r + j - 1, 1) = Chr(a(r))

End If Next r

Next j

Dekripsi = unPad(CStr(cteks)) End Function

(26)

Public Function unPad(inp As String) As String On Error GoTo ErrunPad

x = Len(inp)

y = Mid(inp, x, 1) b = CLng(x - y)

Z = CStr(Mid(inp, 1, b)) unPad = Z

Exit Function

ErrunPad:

unPad = inp End Function

Public Function Hextobin(Hex As String) As String Dim temp As String, hasil As String

Dim i As Integer, j As Integer, tempdes As Integer

temp = Hex hasil = ""

If Len(temp) = 1 Then temp = "0" & temp

For i = 1 To Len(temp)

tempdes = Val("&H" + Mid$(temp, i, 1)) For j = 3 To 0 Step -1

If tempdes And 2 ^ j Then hasil = hasil + "1" Else

hasil = hasil + "0" End If

Next j Next i

Hextobin = hasil End Function

Public Function BinTodes(Binary As String) As String Dim Bit As String, temphex As String

Dim i As Long, j As Long, tempdes As Long Bit = Binary

tempdes = 0

For i = 0 To Len(Bit) - 1

j = Val(Mid$(Bit, i + 1, 1)) If j = 1 Then

tempdes = tempdes + (2 ^ (Len(Bit) - 1 - i)) Else

tempdes = tempdes + 0 End If

Next i

BinTodes = CStr(tempdes) End Function

Public Function DecimalToBinary(Des As Long) As String Dim temp As String

Dim n As Long

n = Des

temp = Trim(Str(n Mod 2))

(27)

n = n \ 2

Do While n <> 0

temp = Trim(Str(n Mod 2)) & temp n = n \ 2

Loop

DecimalToBinary = temp End Function

Public Function CRCCheck(sMessage As String) As String Dim iCRC As Long

Dim bytT As Byte Dim bytC As Byte Dim lngA As Long

Call CRC32Setup

iCRC = &HFFFFFFFF

For i = 1 To Len(sMessage)

bytC = Asc(Mid(sMessage, i, 1)) bytT = (iCRC And &HFF) Xor bytC lngA = ShiftRight8(iCRC)

iCRC = lngA Xor CRC32Table(bytT) Next

CRC = iCRC Xor &HFFFFFFFF CRCCheck = Hex(CRC)

If Not (Len(CRCCheck) / 8) = (Len(CRCCheck) \ 8) Then For i = Len(CRCCheck) To 7

CRCCheck = CRCCheck & "0" Next i

End If End Function

Public Function ShiftRight8(x As Long) As Long Dim iNew As Long

iNew = (x And &H7FFFFFFF) \ 256 If (x And &H80000000) <> 0 Then iNew = iNew Or &H800000 End If

ShiftRight8 = iNew End Function

Public Function CRC32Setup() Static bDone As Boolean Dim vntA As Variant

Dim i As Integer, iOffset As Integer Dim nLen As Integer

If bDone Then Exit Function End If

iOffset = 0 nLen = 32

vntA = Array( _

(28)

&H0, &H77073096, &HEE0E612C, &H990951BA, _

&H76DC419, &H706AF48F, &HE963A535, &H9E6495A3, _ &HEDB8832, &H79DCB8A4, &HE0D5E91E, &H97D2D988, _ &H9B64C2B, &H7EB17CBD, &HE7B82D07, &H90BF1D91, _ &H1DB71064, &H6AB020F2, &HF3B97148, &H84BE41DE, _ &H1ADAD47D, &H6DDDE4EB, &HF4D4B551, &H83D385C7, _ &H136C9856, &H646BA8C0, &HFD62F97A, &H8A65C9EC, _ &H14015C4F, &H63066CD9, &HFA0F3D63, &H8D080DF5)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&H3B6E20C8, &H4C69105E, &HD56041E4, &HA2677172, _ &H3C03E4D1, &H4B04D447, &HD20D85FD, &HA50AB56B, _ &H35B5A8FA, &H42B2986C, &HDBBBC9D6, &HACBCF940, _ &H32D86CE3, &H45DF5C75, &HDCD60DCF, &HABD13D59, _ &H26D930AC, &H51DE003A, &HC8D75180, &HBFD06116, _ &H21B4F4B5, &H56B3C423, &HCFBA9599, &HB8BDA50F, _ &H2802B89E, &H5F058808, &HC60CD9B2, &HB10BE924, _ &H2F6F7C87, &H58684C11, &HC1611DAB, &HB6662D3D)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&H76DC4190, &H1DB7106, &H98D220BC, &HEFD5102A, _ &H71B18589, &H6B6B51F, &H9FBFE4A5, &HE8B8D433, _ &H7807C9A2, &HF00F934, &H9609A88E, &HE10E9818, _ &H7F6A0DBB, &H86D3D2D, &H91646C97, &HE6635C01, _ &H6B6B51F4, &H1C6C6162, &H856530D8, &HF262004E, _ &H6C0695ED, &H1B01A57B, &H8208F4C1, &HF50FC457, _ &H65B0D9C6, &H12B7E950, &H8BBEB8EA, &HFCB9887C, _ &H62DD1DDF, &H15DA2D49, &H8CD37CF3, &HFBD44C65)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&H4DB26158, &H3AB551CE, &HA3BC0074, &HD4BB30E2, _ &H4ADFA541, &H3DD895D7, &HA4D1C46D, &HD3D6F4FB, _ &H4369E96A, &H346ED9FC, &HAD678846, &HDA60B8D0, _ &H44042D73, &H33031DE5, &HAA0A4C5F, &HDD0D7CC9, _ &H5005713C, &H270241AA, &HBE0B1010, &HC90C2086, _ &H5768B525, &H206F85B3, &HB966D409, &HCE61E49F, _ &H5EDEF90E, &H29D9C998, &HB0D09822, &HC7D7A8B4, _ &H59B33D17, &H2EB40D81, &HB7BD5C3B, &HC0BA6CAD)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

(29)

vntA = Array( _

&HEDB88320, &H9ABFB3B6, &H3B6E20C, &H74B1D29A, _ &HEAD54739, &H9DD277AF, &H4DB2615, &H73DC1683, _ &HE3630B12, &H94643B84, &HD6D6A3E, &H7A6A5AA8, _ &HE40ECF0B, &H9309FF9D, &HA00AE27, &H7D079EB1, _ &HF00F9344, &H8708A3D2, &H1E01F268, &H6906C2FE, _ &HF762575D, &H806567CB, &H196C3671, &H6E6B06E7, _ &HFED41B76, &H89D32BE0, &H10DA7A5A, &H67DD4ACC, _ &HF9B9DF6F, &H8EBEEFF9, &H17B7BE43, &H60B08ED5)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&HD6D6A3E8, &HA1D1937E, &H38D8C2C4, &H4FDFF252, _ &HD1BB67F1, &HA6BC5767, &H3FB506DD, &H48B2364B, _ &HD80D2BDA, &HAF0A1B4C, &H36034AF6, &H41047A60, _ &HDF60EFC3, &HA867DF55, &H316E8EEF, &H4669BE79, _ &HCB61B38C, &HBC66831A, &H256FD2A0, &H5268E236, _ &HCC0C7795, &HBB0B4703, &H220216B9, &H5505262F, _ &HC5BA3BBE, &HB2BD0B28, &H2BB45A92, &H5CB36A04, _ &HC2D7FFA7, &HB5D0CF31, &H2CD99E8B, &H5BDEAE1D)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&H9B64C2B0, &HEC63F226, &H756AA39C, &H26D930A, _ &H9C0906A9, &HEB0E363F, &H72076785, &H5005713, _ &H95BF4A82, &HE2B87A14, &H7BB12BAE, &HCB61B38, _ &H92D28E9B, &HE5D5BE0D, &H7CDCEFB7, &HBDBDF21, _ &H86D3D2D4, &HF1D4E242, &H68DDB3F8, &H1FDA836E, _ &H81BE16CD, &HF6B9265B, &H6FB077E1, &H18B74777, _ &H88085AE6, &HFF0F6A70, &H66063BCA, &H11010B5C, _ &H8F659EFF, &HF862AE69, &H616BFFD3, &H166CCF45)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset) Next

iOffset = iOffset + nLen

vntA = Array( _

&HA00AE278, &HD70DD2EE, &H4E048354, &H3903B3C2, _ &HA7672661, &HD06016F7, &H4969474D, &H3E6E77DB, _ &HAED16A4A, &HD9D65ADC, &H40DF0B66, &H37D83BF0, _ &HA9BCAE53, &HDEBB9EC5, &H47B2CF7F, &H30B5FFE9, _ &HBDBDF21C, &HCABAC28A, &H53B39330, &H24B4A3A6, _ &HBAD03605, &HCDD70693, &H54DE5729, &H23D967BF, _ &HB3667A2E, &HC4614AB8, &H5D681B02, &H2A6F2B94, _ &HB40BBE37, &HC30C8EA1, &H5A05DF1B, &H2D02EF8D)

For i = iOffset To iOffset + nLen - 1 CRC32Table(i) = vntA(i - iOffset)

(30)

Next

iOffset = iOffset + nLen

bDone = True End Function

(31)

LAMPIRAN B

DIAGRAM ALIR

Diagram Alir Program Pembangkit Kunci Tanda Tangan Digital

(32)

Diagram Alir Sub Program Euclid

(33)

Diagram Alir Sub Program gcd

(34)

Diagram Alir Fungsi Hextobin

(35)

LAMPIRAN C

TAMPILAN PROGRAM

Tampilan Awal Program Enkripsi Pengamanan Data

Tampilan Awal Program Dekripsi Pengamanan Data

(36)

Tampilan Awal Proses Enkripsi

Tampilan Akhir Proses Enkripsi

(37)

Tampilan Proses Signature

Tampilan Awal Proses Dekripsi

(38)

Tampilan Akhir Proses Dekripsi

Tampilan Proses Validasi dan Verifikasi

(39)

Tampilan Gagalnya Proses Validasi dan Verifikasi

Tampilan Form Cara Kerja

(40)

Tampilan Form About

(41)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, identifikasi

masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas

akhir.

1.1 Latar Belakang

Kemajuan teknologi di bidang komputer dan telekomunikasi saat ini

berkembang sangat pesat. Kemajuan teknologi ini semakin memberikan

kemudahan lalu lintas pengiriman data dan informasi dari satu tempat ke tempat

lainnya, meskipun tempat tersebut letaknya berjauhan. Data tersebut dapat

dikirimkan melalui jaringan lokal maupun jaringan internet. Keamanan dan

kerahasiaan informasi yang dikirimkan merupakan suatu faktor yang perlu

diperhatikan.

Masalah keamanan merupakan suatu aspek penting dalam pengiriman data

maupun informasi melalui jaringan. Hal ini disebabkan karena kemajuan di

bidang jaringan komputer dengan konsep

open system

-nya sehingga memudahkan

seseorang untuk masuk ke dalam jaringan tersebut. Hal tersebut dapat

mengakibatkan proses pengiriman data menjadi tidak aman dan dapat saja

dimanfaatkan oleh orang maupun pihak lain yang tidak bertanggung jawab, untuk

mengambil data ataupun informasi ditengah jalan. Oleh karena itu, dibutuhkan

suatu sistem keamanan yang dapat menjaga kerahasiaan suatu data maupun

informasi, sehingga data tersebut dapat dikirimkan dengan aman. Salah satu cara

untuk menjaga keamanan dan kerahasiaan suatu data maupun informasi adalah

dengan teknik enkripsi dan dekripsi guna membuat pesan, data, maupun informasi

agar tidak dapat di baca atau di mengerti oleh sembarang orang, kecuali untuk

penerima yang berhak.

(42)

BAB I. PENDAHULUAN

2

algoritma tersebut menjadi suatu program enkripsi dan dekripsi diperlukan suatu

bahasa pemrograman yang dalam perancangan menggunakan Visual Basic 6.0.

1.2 Identifikasi Masalah

Bagaimana merealisasikan suatu program yang dapat digunakan untuk

melakukan enkripsi dan dekripsi terhadap suatu file dengan menggunakan

algoritma FEAL?

1.3 Tujuan

Merealisasikan suatu program enkripsi dan dekripsi file dengan

menggunakan algoritma FEAL untuk meningkatkan keamanan dan kerahasiaan

data dalam pengirimannya.

1.4 Pembatasan Masalah

Program yang dirancang digunakan untuk melakukan enkripsi dan dekripsi

terhadap file teks(.txt), file dokumen(.doc), file adobe(.pdf), file gbr(.jpg).

Metoda enkripsi dan dekripsi yang dipergunakan untuk proteksi data

adalah metoda kunci simetri dengan algoritma FEAL

Bahasa pemrograman yang dipergunakan untuk merealisasikan program

enkripsi dan dekripsi adalah Visual Basic 6.0.

1.5 Sistematika Penulisan

Laporan tugas akhir ini disusun dengan sistematika sebagai berikut:

Bab I

: Membahas tentang latar belakang, identifikasi masalah,

tujuan, pembatasan masalah, dan sistematika penulisan.

Bab II

: Membahas penjelasan mengenai kriptografi secara umum,

metode dan algoritma enkripsi dan dekripsi yang dirancang.

Bab III

: Membahas tentang perancangan dan cara kerja program

enkripsi dan dekripsi FEAL.

Bab IV

: Membahas hasil-hasil pengujian dari program yang telah

dirancang.

Bab V

: Merumuskan kesimpulan dan saran.

(43)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Perangkat lunak enkripsi dan dekripsi data dengan metoda kunci simetri

menggunakan algoritma FEAL telah berhasil direalisasikan dan berjalan

dengan baik..

Ukuran file sebelum proses enkripsi / dekripsi tidak sama dengan ukuran file

sesudah proses enkripsi / dekripsi.

Proses Validasi dan

Digital Signature

, yang ditambahkan pada perangkat

lunak dapat berjalan dengan baik dan dapat mendeteksi adanya perubahan

pada teks yang dikirim, serta dapat menjamin keutuhan dan keaslian data dari

pengirim informasi.

Dari hasil pengamatan didapatkan bahwa waktu untuk proses enkripsi dan

dekripsi berbanding lurus dengan penambahan ukuran file

.

Nilai rata-rata

kecepatan proses yang dihasilkan sebesar 6 KB/detik.

5.2 Saran

Perangkat lunak enkripsi dan dekripsi FEAL yang telah direalisasikan pada

tugas akhir ini, dirancang hanya untuk memproses file teks (*.txt), file gambar

(*.jpg), file adobe (*.pdf) dan file dokumen (*.doc). Untuk pengembangan

lebih lanjut, perangkat lunak dapat direalisasikan untuk melakukan proses

enkripsi / dekripsi file yang lainnya.

Untuk pengembangan lebih lanjut, dapat dilakukan perbandingan kinerja

program dengan algoritma-algoritma enkripsi lainnya, salah satunya

perbandingan yang dapat dilakukan adalah dengan mengukur kecepatan waktu

proses enkripsi / dekripsi serta mengukur tingkat keamanan dari

masing-masing algoritma.

(44)

DAFTAR PUSTAKA

[1]. Pramono, Djoko,

Mudah Menguasai Visual Basic 6

, PT. Elexmedia

Komputindo, Jakarta, 2001.

[2]. Kurniadi, Adi,

Pemrograman dengan Visual Basic6.0

, PT. Elexmedia

Komputindo, Jakarta, 2000.

[3]. Kristianto, Andi,

Keamanan Data Pada Jaringan Komputer

, Gavamedia,

2003.

[4]. Raharjo, Budi,

Keamanan Sistem Informasi Berbasis Internet

, PT Insan

Infonesia–Bandung & PT INDOCISC; Jakarta, 2002.

[5]. Kurniawan, Yusuf, “

Kriptografi : Keamanan Internet dan Jaringan

Komunikasi”

, Informatika, 2004.

[6]. Stallings, William,

Komunikasi Data Dan Komputer Jaringan Komputer

,

Salemba Teknika, 2002.

[7]. Schneier, Bruce, “

Applied Cryptography Second Edition : Protocol,

Algorithm, and Source Code in C”

, John Willey & Sons. Inc., New York,

1996.

[8]. Stalling, William, “

Network and Internetwork Security Principles and

Practice”,

Prentice Hall, New Jersey, 1995.

[9]. Kahate, Atul, “

Cryptography and Network Security, International Edition”

,

2003.

Referensi

Dokumen terkait

Penilaian dari tingkat kesehatan Bank Tabungan Negara dengan metode RGEC yang dilakukan sesuai standar Bank Indonesia menunjukan predikat, untuk Tahun 2011 dapat

Pemodelan Faktor-Faktor yang Mempengaruhi Jumlah Kasus Penyakit Tuberkulosis di Jawa Timur dengan Pendekatan Generalized Poisson Regression dan Geographically

Preprocessing data telah dilakukan sesuai dengan proses yang ada pada KDD, dengan menghasilkan set data yang baru hasil dari penggabungan dua sumber data yang berbeda yaitu

bertindak sebagai wali amanat ( trustee ) untuk mewakili kepentingan investor. Investor, adalah pemegang sukuk yang memiliki hak atas imbalan, margin, dan nilai

Himpunan Peraturan Gubernur Tahun 2014 1... Himpunan Peraturan Gubernur Tahun 2014

Kepala Dinas Penanaman Modal dan pelayanan Terpadu Satu Pintu Kota Banjarmasin3. Se

Selain itu, penelitian ini juga bertujuan untuk mengetahui keefektifan LKPD terintegrasi nilai karakter terhadap pengembangan tanggung jawab, disiplin, serta prestasi belajar

Peningkatan skor rata-rata menunjukkan bahwa pembelajaran dengan menggunakan LVEP memberikan pengaruh yang positif terhadap penanaman karakter nasionalisme yang