Kriptografi RC4 Data Text Dengan Menggunakan Visual Basic.

(1)

ABSTRAK

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek yang sangat penting dalam era informasi sekarang ini. Salah satu solusi untuk mengatasinya adalah dengan melakukan enkripsi (penyandian) terhadap data yang akan dikirimkan dengan waktu penyandian yang tidak lama.

Dalam menyandikan suatu data dan menerjemahkannya kembali digunakan suatu data yang disebut kunci. Algoritma enkripsi yang didasarkan pada kunci secara garis besar dibedakan menjadi dua macam, yaitu algoritma simetrik dan algoritma kunci publik (algoritma asimetrik). Algoritma yang digunakan pada tugas akhir ini adalah algoritma simetrik yaitu penyandian dengan menggunakan kunci yang sama untuk enkripsi dan dekripsi data yang disebut dengan secret key.

Tugas Akhir ini akan merealisasikan suatu perangkat lunak pengaman data dengan algoritma simetrik menggunakan metode enkripsi RC4. Perangkat lunak ini dibuat dalam bahasa pemrograman Visual Basic. Perangkat lunak yang direalisasikan mempunyai 7 program utama yaitu : program Inisialisasi RC4 dan Mixing S-Box, program Enkripsi Plaintext, program Pembangkit Kunci Tanda Tangan Digital, program Validasi dan Tanda Tangan Digital, program Dekripsi Ciphertext, program Open Decipehered Text, dan program Perbandingan Tanda Tangan Digital dengan Decipheredtext


(2)

ABSTRACT

Nowadays in the age of information, the problems of data security and secrecy are one of the most important aspects on computer communication and networks. One of the solutions to handling these problems is data encoding (encryption) with a short time in encoding and decoding.

Some keys are used when encoding data and decoding it back to its original data. There are two general types of the algorithm, symmetric algorithm and public key algorithm. Algorithm used on this book is symmetric algorithm. Symmetric algorithm is designed so that the key use for encryption is the same as the key used for decryption which is called secret key.

Data protection software with symmetric algorithm using RC4 Encryption that realized in this book is made with Visual Basic programming language. This software consists of 7 main programs which are: Initializes RC4 and Mixing S-Box, Plaintext encryption, Digital Signature key generator, Validation and Digital Signature, Cipher text decryption, Open Deciphered Text, and Comparing Digital Signature with Deciphered text.


(3)

DAFTAR ISI

ABSTRAK i

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 Pembahasan 2

BAB II TEORI PENUNJANG 4

2.1 Kriptologi, Kriptoanalisis, dan Kriptografi 4

2.1.1 Tujuan Kriptografi 4

2.1.2 Enkripsi dan Dekripsi 5

2.1.3 Algoritma dan Kunci 6

2.1.3.1 Algoritma Simetrik 7

2.1.3.2 Algoritma Kunci Publik 8

2.2 Perbandingan antara algoritma simetrik dengan algoritma kunci publik 9 2.3 Teori Matematika ...10

2.3.1 Bilangan Prima 11

2.3.2 Operasi Modulus 11

2.3.3 Algoritma Euclidean 12

2.3.4 Algoritma Extended Euclidean 12

2.3.5 Eksponensial Modulus 13

2.3.6 Fungsi XOR 15

2.4 Algoritma RC4...15

2.5 Algoritma Validasi Data 17


(4)

vi

2.6.1 Algoritma Pembangkit Kunci Tanda Tangan Digital 18

2.6.2 Algoritma Tanda Tangan Digital 18

2.6.3 Algoritma Verifikasi Tanda Tangan Digital 18

BAB III IMPLEMENTASI DAN REALISASI PERANGKAT LUNAK 19

3.1 Program Pengaman Data 19

3.2 Program Utama 21

3.2.1 Program Inisialisasi dan Mixing S-Box 21

3.2.2.Program Enkripsi Plaintext 23

3.2.3 Program Pembangkit Kunci Tanda Tangan Digital 23

3.2.3.1 Sub Program rdmprime dan rdmprime2 25

3.2.3.2 Sub Program gcd 26

3.2.3.3 Sub Program euclid 27

3.2.4 Program Validasi dan Tanda Tangan Digital 29

3.2.4.1 Sub Program Pangkatmod 30

3.2.4.2 Sub Program DecimalToBinary 31

3.2.5 Program Dekripsi Ciphertext 31

3.2.6 Program Open Deciphered Text 32

3.2.7 Program perbandingan Tanda Tangan Digital dengan Decipheredtext 34

BAB IV HASIL PENGAMATAN 35

4.1 Hasil Pengamatan 35

4.1.1 Hasil Pengamatan 1 35

4.1.2 Hasil Pengamatan 2 36

4.1.3 Hasil Pengamatan 3 36

4.1.3.1 Hasil Pengamatan File Text 1...36

4.1.3.2 Hasil Pengamatan File Text 2 37

4.1.3.3 Hasil Pengamatan File Text 3 38

4.1.3.4 Hasil Pengamatan File Text 4 41

4.1.4 Hasil Pengamatan 4 44

4.1.5 Hasil Pengamatan 5 45

4.1.6 Hasil Pengamatan 6 45


(5)

vii

4.1.7.1 Pengamatan PlainText, CipherText, DecipeheredText, nilai publik key dan private key, dengan file Validasi+Sign yang benar...48 4.1.7.2 Pengamatan PlainText,, file Validasi+Sign, nilai publik key dan private

key dengan DecipeheredText yang salah karena perubahan pada CipherText...49 4.1.7.3 Pengamatan PlainText, CipherText, DecipeheredText, file Validasi+Sign,

dengan pengisian nilai private key yang salah...49 4.1.7.4 Pengamatan PlainText, CipherText, DecipeheredText, file Validasi+Sign,

dengan membuka file Validasi+Sign yang salah pada waktu perbandingan ... 50

4.2 Analisa Hasil Pengamatan 50

BAB V KESIMPULAN DAN SARAN 53

5.1 Kesimpulan 53

5.2 Saran 53

DAFTAR PUSTAKA

LAMPIRAN A LISTING PROGRAM A-1


(6)

DAFTAR GAMBAR

Gambar 2.1 Diagram Blok Enkripsi 6

Gambar 2.2 Diagram Blok Dekripsi 6

Gambar 2.3 Diagram Blok Enkripsi Dengan Menggunakan Kunci 7 Gambar 2.4 Diagram Blok Dekripsi Dengan Menggunakan Kunci 7

Gambar 2.5 Diagram Blok Algoritma Simetrik 8

Gambar 2.6 Diagram Blok Enkripsi Pada Algoritma Kunci Publik 9 Gambar 2.7 Diagram Blok Dekripsi Pada Algoritma Kunci Publik...9 Gambar 2.8 Diagram Logika RC4 ...17

Gambar 3.1 Diagram Alir Program Pengaman Data 20

Gambar 3.2 Diagram Alir Program Inisialisasi dan Mixing S-Box 22 Gambar 3.3 Diagram Alir Program Enkripsi Plaintext 23 Gambar 3.4 Diagram Alir Program Pembangkit Kunci Tanda Tangan Digital 24

Gambar 3.5 Diagram Alir Program RdmPrime 25

Gambar 3.6 Diagram Alir Program RdmPrime2 26

Gambar 3.7 Diagram Alir Sub Program gcd 27

Gambar 3.8 Diagram Alir Sub Program euclid 28

Gambar 3.9 Diagram Alir Sub Program Validasi dan Tanda Tangan Digital 29 Gambar 3.10 Diagram Alir Sub Program Pangkatmod 30 Gambar 3.11 Diagram Alir Program DecimalToBinary 31 Gambar 3.12 Diagram Alir Sub Program Dekripsi CipherText 32 Gambar 3.13 Diagram Alir Program Dekripsi CipherText 33 Gambar 3.14 Diagram Alir Program Perbandingan Tanda Tangan Digital dengan Decipheredtext ... 34


(7)

DAFTAR TABEL

Tabel 2.1 Nilai Extended Euclidean 13

Tabel 4.1 Hasil Pengamatan Dengan Secret Key sama 35 Tabel 4.2 Hasil Pengamatan Dengan Karakter Plaintext Berbeda 36 Tabel 4.3 Hasil Pengamatan Ukuran File Ciphertext Dengan Plaintext Yang

Berbeda dan Secret Key Sama 45

Tabel 4.4 Hasil Pengamatan Ukuran File Ciphertext Dengan Plaintext Yang


(8)

LAMPIRAN A

LISTING PROGRAM

*Form Main Program (Program Pengaman Data)

Option Explicit

Dim LineOfText As String Dim AllText As String Dim Wrap As String

Dim s(0 To 255) As Integer 'S-Box Dim kep(0 To 255) As Integer Dim i As Integer, j As Integer 'For the file actions

Dim path As String

‘Program Inisialisasi RC4 Public Sub RC4ini(Pwd As String)

Dim temp As Integer Dim A As Integer Dim B As Integer

'Save Password in Byte-Array B = 0

For A = 0 To 255 B = B + 1

If B > Len(Pwd) Then B = 1

End If

kep(A) = Asc(Mid$(Pwd, B, 1)) Next A

'INI S-Box

For A = 0 To 255 s(A) = A Next A


(9)

B = 0

'Mixing S-Box

For A = 0 To 255

B = (B + s(A) + kep(A)) Mod 256 ' Swap( S(i),S(j) )

temp = s(A) s(A) = s(B) s(B) = temp Next A End Sub

‘Program untuk mendapatkan nilai k

Public Function EnDeCryptSingle(plainbyte As Byte) As Byte Dim temp As Integer, k As Integer

Dim cipherby As Byte i = (i + 1) Mod 256 j = (j + s(i)) Mod 256 ' Swap( S(i),S(j) ) temp = s(i) s(i) = s(j) s(j) = temp

'Generate Keybyte k k = s((s(i) + s(j)) Mod 256) 'Plaintextbyte xor Keybyte cipherby = plainbyte Xor k EnDeCryptSingle = cipherby End Function

‘Open PlainText

Private Sub cmdBrowse_Click() Wrap$ = Chr$(13) + Chr$(10) AllText$ = ""

dlgSourceFile.Filter = "Text files (*.TXT)|*.TXT|All files (*.*)|*.*" dlgSourceFile.ShowOpen

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

Open dlgSourceFile.FileName For Input As #1 On Error GoTo TooBig: 'set error handler Do Until EOF(1) 'then read lines from file Line Input #1, LineOfText$


(10)

AllText$ = AllText$ & LineOfText$ & Wrap$ Loop

txtPlain.Text = ""

txtPlain.Text = AllText$ 'display file

txtSave.Text = dlgSourceFile.FileName 'display path txtPlain.Enabled = True

CleanUp:

dlgSourceFile.FileName = ""

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

End If Exit Sub

TooBig: 'error handler displays message MsgBox ("The specified file is too large.") Resume CleanUp: 'then jumps to CleanUp routine End Sub

‘Open CipherText

Private Sub cmdBrowse2_Click() Wrap$ = Chr$(13) + Chr$(10) AllText$ = ""

dlgSourceCipher.Filter = "Cipher files (*.TXT.enc)|*.TXT.enc|All files (*.*)|*.*"

dlgSourceCipher.ShowOpen

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

Open dlgSourceCipher.FileName For Input As #1 On Error GoTo TooBig: 'set error handler Do Until EOF(1) 'then read lines from file Line Input #1, LineOfText$

AllText$ = AllText$ & LineOfText$ & Wrap$ Loop

txtCipher.Text = ""

txtCipher.Text = AllText$ 'display file

txtSave2.Text = dlgSourceCipher.FileName 'display path txtCipher.Enabled = True

CleanUp:

dlgSourceCipher.FileName = ""

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

End If Exit Sub


(11)

MsgBox ("The specified file is too large.") Resume CleanUp: 'then jumps to CleanUp routine End Sub

‘Program pengecekan validasi dan digital signature Private Sub cmdCekSignVal_Click()

Dim signcek As Long

If Text10.Text = "" Then MsgBox "Input the signature" Exit Sub

ElseIf txtPublikE.Text = "" Or txtPublikN.Text = "" Then 'txtPublikE.Text = "" Or txtPublikN.Text = "" Then MsgBox "Input your publik key"

Exit Sub End If

Wrap$ = Chr$(13) + Chr$(10) AllText$ = ""

CommonDialog3.Filter = "Text files (*.TXT)|*.TXT|All files (*.*)|*.*" CommonDialog3.ShowOpen

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

Open CommonDialog3.FileName For Input As #1 On Error GoTo TooBig: 'set error handler Do Until EOF(1) 'then read lines from file Line Input #1, LineOfText$

AllText$ = AllText$ & LineOfText$ & Wrap$ Loop

txtValSign.Text = ""

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

signcek = pangkatmod(txtValSign.Text, txtPublikE.Text, txtPublikN.Text) Text9.Text = signcek

CleanUp:

CommonDialog3.FileName = ""

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

If Text9.Text = Text10.Text Then

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

Else


(12)

Exit Sub

End If End If Exit Sub

TooBig: 'error handler displays message MsgBox ("This File is not Sign Document.") Resume CleanUp: 'then jumps to CleanUp routine

End Sub

‘Program Dekripsi

Private Sub cmdDecrypt_Click() Dim OldTimer2 As Single Dim inbyte As Byte Dim z As Long

OldTimer2 = Timer

'Set the Set-Box counter zero i = 0: j = 0

'Ini the S-Boxes only once for a whole file

If txtpwd2.Text = "" Then

MsgBox "Enter Secret Key for Decipher" Exit Sub

Else

RC4ini (txtpwd2.Text) End If

'Disable the Mousepointer MousePointer = vbHourglass path = txtSave2

Open path For Binary As 1 path = Left$(path, Len(path) - 4) Open path For Binary As 2

For z = 1 To LOF(1) Get #1, , inbyte

Put #2, , EnDeCryptSingle(inbyte) Next


(13)

Close 2

Label2.Caption = Timer - OldTimer2 'Enable the Mousepointer

MousePointer = vbDefault End Sub

‘Program Enkripsi

Private Sub cmdEncrypt_Click() Dim oldtimer As Single Dim inbyte As Byte Dim z As Long oldtimer = Timer

'Set the Set-Box Counter zero i = 0: j = 0

'Ini the S-Boxes only once for a hole file If txtpwd.Text = "" Then

MsgBox "Enter Secret Key for Encipher" Exit Sub

Else

RC4ini (txtpwd.Text) End If

'Disable the Mousepointer MousePointer = vbHourglass path = txtSave

Open path For Binary As 1

Open path + ".enc" For Binary As 2

For z = 1 To LOF(1) Get #1, , inbyte

Put #2, , EnDeCryptSingle(inbyte) Next z

Close 1 Close 2

Label1.Caption = Timer - oldtimer 'Enable the Mousepointer

MousePointer = vbDefault End Sub

‘Program Generator Digital Signature Private Sub cmdGen_Click()


(14)

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 End If

txt4.Text = p Text4.Text = q

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


(15)

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

‘Program Save PlainText yang sudah ditulis Private Sub cmdSaveRaw_Click()

If txtRaw = "" Then

MsgBox "Type your message" Exit Sub

Else


(16)

CommonDialog1.ShowSave

If CommonDialog1.FileName <> "" Then

Open CommonDialog1.FileName For Output As #1 Print #1, txtRaw.Text

CommonDialog1.FileName = "" Close #1

End If End If End Sub

‘Program Digital Signature nilai Validasi Private Sub cmdValSign_Click()

Dim sign As Long Dim Pal2 As Long Dim pjgpesan As Long Dim itung1 As Long Dim itung2 As Long Dim Pal() As Long If Text6.Text = "" Then

MsgBox "Click the generate button" Exit Sub

End If

pjgpesan = Len(txtPlain.Text) ReDim Pal(pjgpesan)

For itung1 = 0 To (pjgpesan - 1)

Pal(itung1) = Asc(Mid(txtPlain.Text, itung1 + 1, 1)) Next

If pjgpesan = 1 Then Pal2 = Pal(0) End If

If pjgpesan = 2 Then Pal2 = Pal(0) Xor Pal(1) End If

If pjgpesan = 3 Then Pal2 = Pal(0) Xor Pal(1) Pal2 = Pal2 Xor Pal(2) End If


(17)

If pjgpesan > 3 Then

Pal2 = Pal(0) Xor Pal(1) itung2 = 1

Do

Pal2 = Pal2 Xor Pal(itung2 + 1) itung2 = itung2 + 1

Loop Until itung2 = pjgpesan

End If

sign = pangkatmod(((Pal2 ^ 2) Mod 251), Text6.Text, Text7.Text) Text8.Text = sign

'Text10.Text = (Pal2 ^ 2) Mod 251

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

MsgBox "Document has been signed", vbOKOnly, "ProjectRC4" End If

End Sub

‘Program me-load file ciphertext yang sudah didekripsi Private Sub cmdView_Click()

Dim Pal2 As Long Dim pjgpesan As Long Dim itung1 As Long Dim itung2 As Long Dim Pal() As Long

Dim TextDeposit As String

Wrap$ = Chr$(13) + Chr$(10) AllText$ = ""


(18)

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

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

Open CommonDialog3.FileName For Input As #1 On Error GoTo TooBig: 'set error handler Do Until EOF(1) 'then read lines from file Line Input #1, LineOfText$

AllText$ = AllText$ & LineOfText$ & Wrap$ Loop

TextDeposit = AllText$ txtDecipherM = "" If TextDeposit <> "" Then

txtDecipherM.Text = "File Loaded" Else

txtDecipherM.Text = "File Not Loaded" End If

'txtDecipherM.Text = AllText$ 'display file 'txtDecipherM.Enabled = True

pjgpesan = Len(TextDeposit) ReDim Pal(pjgpesan)

For itung1 = 0 To (pjgpesan - 1)

Pal(itung1) = Asc(Mid(TextDeposit, itung1 + 1, 1)) Next

If pjgpesan = 1 Then Pal2 = Pal(0) End If

If pjgpesan = 2 Then Pal2 = Pal(0) Xor Pal(1) End If

If pjgpesan = 3 Then Pal2 = Pal(0) Xor Pal(1) Pal2 = Pal2 Xor Pal(2) End If

If pjgpesan > 3 Then

Pal2 = Pal(0) Xor Pal(1) itung2 = 1


(19)

Do

Pal2 = Pal2 Xor Pal(itung2 + 1) itung2 = itung2 + 1

Loop Until itung2 = pjgpesan

End If

Text10.Text = (Pal2 ^ 2) Mod 251

CleanUp:

CommonDialog3.FileName = ""

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

End If Exit Sub

TooBig: 'error handler displays message MsgBox ("The specified file is too large.") Resume CleanUp: 'then jumps to CleanUp routine

End Sub

‘Program menampilkan menu About Private Sub mnuAbout_Click()

frmAbout.Show End Sub

‘Program Exit

Private Sub mnuExitItem_Click() End

End Sub

‘Program menampilkan menu How To Use Private Sub mnuHow_Click()

frmHow.Show End Sub

‘Program Function

Public Function DecimalToBinary(DecimalNum As Long) As String Dim tmp As String

Dim n1 As Long


(20)

tmp = Trim(Str(n1 Mod 2)) n1 = n1 \ 2

Do While n1 <> 0

tmp = Trim(Str(n1 Mod 2)) & tmp n1 = n1 \ 2

Loop

DecimalToBinary = tmp End Function

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 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


(21)

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 End If


(22)

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


(23)

'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

Function pangkatmod(ByVal num1, ByVal num2, ByVal num3) 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 barray() As Variant Dim decbin As Variant a22 = num1

b22 = num2 n22 = num3

decbin = DecimalToBinary(b22) nilaic = 0

nilaid = 1

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

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

nilaic = 2 * nilaic

nilaid = (nilaid * nilaid) Mod n22 If barray(nilaii) = 1 Then nilaic = nilaic + 1

nilaid = (nilaid * a22) Mod n22 End If


(24)

pangkatmod = nilaid End Function *Form About

Private Sub cmdOK_Click() Unload Me

End Sub *Form How

Private Sub cmdBack_Click() Unload Me


(25)

LAMPIRAN B

TAMPILAN PROGRAM PENGAMAN DATA


(26)

Tampilan Menu How To


(27)

(28)

(29)

(30)

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas akhir.

1.1 Latar Belakang

Pada era komunikasi sekarang ini keamanan data sangatlah diperlukan untuk menjamin keutuhan nilai informasi yang dipertukarkan. Suatu informasi akan berkurang nilai informasinya atau hilang nilainya apabila dalam pengirimannya disadap atau dibajak oleh pihak yang tidak dikehendaki. Internet sebagai salah satu media pertukaran informasi sangat rawan dalam mempertahankan nilai suatu informasi, sehingga sangatlah penting dibutuhkannya proteksi informasi untuk memastikan kerahasiaan (confidentiality), keutuhan (integrity), keabsahan (authenticity), dan keaslian (originality) informasi tersebut. Salah satu cara untuk mengatasi masalah ini ialah dengan mengkodekan informasi (data) tersebut menjadi data yang tidak bisa dibaca atau dimengerti oleh pihak lain tetapi bisa dibaca oleh pihak pengirim dan penerima. Kriptografi adalah metoda yang mempelajari proteksi data dengan cara mengkodekannya. Metoda proteksi ini menggunakan berbagai teknik metoda matematis untuk mengkodekannya. Kriptografi bisa dibagi menjadi 2 model yaitu model pengkodean simetri dan model pengkodean publik (asimetri). Pengkodean simetri dibagi 2 yaitu pengkodean blok dan pengkodean stream. Masing-masing model pengkodean mempunyai algoritma pengkodean lebih dari satu. Penggunaan pengkodean simetris maupun publik mempunyai kelemahan dan keunggulan masing-masing. Pemakaiannya tergantung dari situasinya.

Dari sekian banyak algoritma pengkodean, salah satunya yaitu algoritma RC4 telah teruji kemampuannya. Algoritma ini juga belum dipatenkan oleh pihak RSA. Algoritma ini ditemukan oleh Ron Rivest pada tahun 1987 dan berkembang


(31)

2

1.2 Identifikasi Masalah

1. Bagaimana algoritma kunci simetri dengan metoda RC4 dapat dijadikan suatu pengaman data ?

2. Bagaimana realisasi software menggunakan metoda RC4 ?

1.3 Tujuan

1. Membuat cara kerja dari suatu pengamanan data dengan teknik enkripsi RC4. 2. Merealisasikan suatu software dengan teknik enkripsi RC4.

1.4 Pembatasan Masalah

Menggunakan bahasa pemprograman Visual Basic untuk membuat program enkripsi dan dekripsi dengan algoritma RC4. Tidak membahas mengenai transmisi data. Data masukan berupa teks dan file teks (*.txt)

1.5 Sistematika Pembahasan BAB I PENDAHULUAN

Menjelaskan mengenai latar belakang pembuatan tugas akhir, identifikasi masalah, tujuan, pembatasan masalah dan sistematika pembahasan.

BAB II TEORI PENUNJANG

Menjelaskan kriptografi secara umum serta algoritma-algoritma yang menunjang pembuatan tugas akhir seperti algoritma simetrik, algoritma kunci publik, algoritma euclidean

BAB III IMPLEMENTASI DAN REALISASI PERANGKAT LUNAK

Dalam bab ini akan dibahas algoritma enkripsi simetris RC4 dan realisasi perangkat lunak (software) berdasarkan algoritma tersebut

BAB IV HASIL PENGAMATAN

Membahas hasil pengamatan yang diperoleh berdasarkan implementasi dan realisasi perangkat lunak dari metode enkripsi simetris RC4


(32)

3

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang diperoleh dari hasil pengamatan dan saran-saran yang diajukan untuk pengembangan lebih lanjut


(33)

BAB V

KESIMPULAN DAN SARAN

5.1 KESIMPULAN

Kesimpulan dari tugas akhir adalah sebagai berikut :

1. Perangkat lunak pengaman data dengan algoritma RC4 telah berhasil direalisasikan.

2. Pada program yang dibuat untuk enkripsi RC4 didapatkan 1 karakter pertama pada plaintext menjadi 2 karakter ciphertext dan 1 karakter terakhir menjadi 2 karakter ciphertext..

3. Pada algoritma RC4 besarnya secret key / password dan plaintext atau ciphertext mempengaruhi waktu pemprosesan pada waktu enkripsi dan dekripsi. Password semakin sedikit mempunyai pengulangan karakter atau kata maka waktu enkripsi semakin lama

4. Perangkat lunak yang direalisasikan telah memenuhi komponen utama kriptografi yaitu kerahasiaan, keutuhan dan keaslian

5.2 SARAN

Saran-saran yang dapat digunakan untuk pengembangan lebih lanjut dari program pengaman data adalah :

1. Program perangkat lunak pengaman data dapat dikembangkan untuk memproses data selain *.txt, misalnya data teks lainnya (*.doc, *.rtf), data grafik (image) (*.bmp, *.jpg, *.png), data lainnya (*.exe, *.dat, *.html). 2. Program dapat dimodifikasi untuk meningkatkan keamanannya dengan

cara menambahkan pengulangan loop pada bagian Mixing S-Box yang disetujui oleh pengirim dan penerima.


(34)

DAFTAR PUSTAKA

1. Deitel, H.M., Deitel, P.J., Nieto, T.R., Visual Basic 6 How To Program, Prentice Hall, 1999.

2. Halvorson, Michael, Step by Step Microsoft Visual Basic 6.0, Elex Media Komputindo, 2002.

3. Kahate, Atul, Cryptography and Network Security Principles and Practice , 3rd edition, Prentice Hall, 2003.

4. Kristianto, Andi, Keamanan Data Pada Jaringan Komputer, Gavamedia,

2003.

5. Menezes, A.J, Handbook of Applied Cryptography, CRC Press, 1996.

6. Microsoft, Microsoft Visual Basic 6.0 Programmer’s Guide, Microsoft Press, 1998.

7. Rosen, Kenneth H, Discrete Mathematics and Its Applications, 3rd edition, McGraw-Hill, 1994.

8. Schneier, Bruce, Applied Cryptography, second edition, John Wiley & Sons, Inc. 1996.

9. Stallings, William, Cryptography and Network Security, Principles and

Practice, Prentice Hall, 1999.

10.Stallings, William, Komunikasi Data Dan Komputer Dasar-Dasar

Komunikasi Data, Salemba Teknika, 2001

11.Stallings, William, Komunikasi Data Dan Komputer Jaringan Komputer, Salemba Teknika, 2002.


(1)

B-5 Tampilan Menu Create Plaintext


(2)

1

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas akhir.

1.1 Latar Belakang

Pada era komunikasi sekarang ini keamanan data sangatlah diperlukan untuk menjamin keutuhan nilai informasi yang dipertukarkan. Suatu informasi akan berkurang nilai informasinya atau hilang nilainya apabila dalam pengirimannya disadap atau dibajak oleh pihak yang tidak dikehendaki. Internet sebagai salah satu media pertukaran informasi sangat rawan dalam mempertahankan nilai suatu informasi, sehingga sangatlah penting dibutuhkannya proteksi informasi untuk memastikan kerahasiaan (confidentiality), keutuhan (integrity), keabsahan (authenticity), dan keaslian (originality) informasi tersebut. Salah satu cara untuk mengatasi masalah ini ialah dengan mengkodekan informasi (data) tersebut menjadi data yang tidak bisa dibaca atau dimengerti oleh pihak lain tetapi bisa dibaca oleh pihak pengirim dan penerima. Kriptografi adalah metoda yang mempelajari proteksi data dengan cara mengkodekannya. Metoda proteksi ini menggunakan berbagai teknik metoda matematis untuk mengkodekannya. Kriptografi bisa dibagi menjadi 2 model yaitu model pengkodean simetri dan model pengkodean publik (asimetri). Pengkodean simetri dibagi 2 yaitu pengkodean blok dan pengkodean stream. Masing-masing model pengkodean mempunyai algoritma pengkodean lebih dari satu. Penggunaan pengkodean simetris maupun publik mempunyai kelemahan dan keunggulan masing-masing. Pemakaiannya tergantung dari situasinya.

Dari sekian banyak algoritma pengkodean, salah satunya yaitu algoritma RC4 telah teruji kemampuannya. Algoritma ini juga belum dipatenkan oleh pihak RSA. Algoritma ini ditemukan oleh Ron Rivest pada tahun 1987 dan berkembang


(3)

2

1.2 Identifikasi Masalah

1. Bagaimana algoritma kunci simetri dengan metoda RC4 dapat dijadikan suatu pengaman data ?

2. Bagaimana realisasi software menggunakan metoda RC4 ?

1.3 Tujuan

1. Membuat cara kerja dari suatu pengamanan data dengan teknik enkripsi RC4. 2. Merealisasikan suatu software dengan teknik enkripsi RC4.

1.4 Pembatasan Masalah

Menggunakan bahasa pemprograman Visual Basic untuk membuat program enkripsi dan dekripsi dengan algoritma RC4. Tidak membahas mengenai transmisi data. Data masukan berupa teks dan file teks (*.txt)

1.5 Sistematika Pembahasan BAB I PENDAHULUAN

Menjelaskan mengenai latar belakang pembuatan tugas akhir, identifikasi masalah, tujuan, pembatasan masalah dan sistematika pembahasan.

BAB II TEORI PENUNJANG

Menjelaskan kriptografi secara umum serta algoritma-algoritma yang menunjang pembuatan tugas akhir seperti algoritma simetrik, algoritma kunci publik, algoritma euclidean

BAB III IMPLEMENTASI DAN REALISASI PERANGKAT LUNAK

Dalam bab ini akan dibahas algoritma enkripsi simetris RC4 dan realisasi perangkat lunak (software) berdasarkan algoritma tersebut

BAB IV HASIL PENGAMATAN

Membahas hasil pengamatan yang diperoleh berdasarkan implementasi dan realisasi perangkat lunak dari metode enkripsi simetris RC4


(4)

3

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang diperoleh dari hasil pengamatan dan saran-saran yang diajukan untuk pengembangan lebih lanjut


(5)

53

BAB V

KESIMPULAN DAN SARAN

5.1 KESIMPULAN

Kesimpulan dari tugas akhir adalah sebagai berikut :

1. Perangkat lunak pengaman data dengan algoritma RC4 telah berhasil direalisasikan.

2. Pada program yang dibuat untuk enkripsi RC4 didapatkan 1 karakter pertama pada plaintext menjadi 2 karakter ciphertext dan 1 karakter terakhir menjadi 2 karakter ciphertext..

3. Pada algoritma RC4 besarnya secret key / password dan plaintext atau ciphertext mempengaruhi waktu pemprosesan pada waktu enkripsi dan dekripsi. Password semakin sedikit mempunyai pengulangan karakter atau kata maka waktu enkripsi semakin lama

4. Perangkat lunak yang direalisasikan telah memenuhi komponen utama kriptografi yaitu kerahasiaan, keutuhan dan keaslian

5.2 SARAN

Saran-saran yang dapat digunakan untuk pengembangan lebih lanjut dari program pengaman data adalah :

1. Program perangkat lunak pengaman data dapat dikembangkan untuk memproses data selain *.txt, misalnya data teks lainnya (*.doc, *.rtf), data grafik (image) (*.bmp, *.jpg, *.png), data lainnya (*.exe, *.dat, *.html). 2. Program dapat dimodifikasi untuk meningkatkan keamanannya dengan

cara menambahkan pengulangan loop pada bagian Mixing S-Box yang disetujui oleh pengirim dan penerima.


(6)

DAFTAR PUSTAKA

1. Deitel, H.M., Deitel, P.J., Nieto, T.R., Visual Basic 6 How To Program, Prentice Hall, 1999.

2. Halvorson, Michael, Step by Step Microsoft Visual Basic 6.0, Elex Media Komputindo, 2002.

3. Kahate, Atul, Cryptography and Network Security Principles and Practice , 3rd edition, Prentice Hall, 2003.

4. Kristianto, Andi, Keamanan Data Pada Jaringan Komputer, Gavamedia,

2003.

5. Menezes, A.J, Handbook of Applied Cryptography, CRC Press, 1996.

6. Microsoft, Microsoft Visual Basic 6.0 Programmer’s Guide, Microsoft Press, 1998.

7. Rosen, Kenneth H, Discrete Mathematics and Its Applications, 3rd edition, McGraw-Hill, 1994.

8. Schneier, Bruce, Applied Cryptography, second edition, John Wiley & Sons, Inc. 1996.

9. Stallings, William, Cryptography and Network Security, Principles and

Practice, Prentice Hall, 1999.

10.Stallings, William, Komunikasi Data Dan Komputer Dasar-Dasar

Komunikasi Data, Salemba Teknika, 2001

11.Stallings, William, Komunikasi Data Dan Komputer Jaringan Komputer, Salemba Teknika, 2002.