Kriptografi RC4 Data Text Dengan Menggunakan Visual Basic.
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.