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.
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.
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
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
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
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
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
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
B = 0
‘Program untuk mendapatkan nilai k
Public Function EnDeCryptSingle(plainbyte As Byte) As Byte
Dim temp As Integer, k As Integer
dlgSourceFile.Filter = "Text files (*.TXT)|*.TXT|All files (*.*)|*.*" dlgSourceFile.ShowOpen
If dlgSourceFile.FileName <> "" Then frmMain.MousePointer = 11
AllText$ = AllText$ & LineOfText$ & Wrap$ Loop
txtPlain.Text = ""
txtPlain.Text = AllText$ 'display file
txtSave.Text = dlgSourceFile.FileName 'display path txtPlain.Enabled = True 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
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"
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
signcek = pangkatmod(txtValSign.Text, txtPublikE.Text, txtPublikN.Text) Text9.Text = signcek
MsgBox "Data Verified", vbOKOnly, "ProjectRC4" Exit Sub
Else
Close 2
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
c = c - 1 End If
Next
'random selection of e ulang:
'select e that is prime For i1 = 2 To (Sqr(temp4))
‘Program Save PlainText yang sudah ditulis Private Sub cmdSaveRaw_Click()
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
If pjgpesan > 3 Then
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"
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
CommonDialog3.Filter = "Text files (*.TXT)|*.TXT" CommonDialog3.ShowOpen
If CommonDialog3.FileName <> "" Then frmMain.MousePointer = 11
Do MsgBox ("The specified file is too large.") Resume CleanUp: 'then jumps to CleanUp routine
End Sub
‘Program menampilkan menu About Private Sub mnuAbout_Click()
‘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
tmp = Trim(Str(n1 Mod 2))
hasil = B2
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
Function RdmPrime2() As Long
Dim iRandom2 As Long ' holds random long result Dim y As Long 'checkprime loop counter
'check number
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 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
pangkatmod = nilaid
End Function
*Form About
Private Sub cmdOK_Click() Unload Me
End Sub
*Form How
Private Sub cmdBack_Click() Unload Me
LAMPIRAN B
TAMPILAN PROGRAM PENGAMAN DATA
Tampilan Menu How To
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
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
3
BAB V KESIMPULAN DAN SARAN
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
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,