Upload
neike-merlia-elsa
View
573
Download
0
Embed Size (px)
Citation preview
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 1/13
MEMBUAT PROGRAM ENKRIPSI SEDERHANA (CAESAR CIPHER)
MENGGUNAKAN VB.6
Di dalam kriptografi ada berbagai macam algoritma yang dapat digunakan, baik yang
termasuk algoritma kriptografi modern maupun algoritma kriptografi klasik. Yang termasuk
di dalam algoritma kriptografi modern adalah algoritma cipher block. Chiper block
merupakan sebuah algoritma simetri yang mengoperasikan bit-bit yang mempunyai panjang
yang sama. Sebagai contoh, ketika melakukan enkripsi, sebuah 128-bit blok plaintext akan
menghasilkan sebuah 128-bit blok ciphertext. Begitu pula dengan proses deskripsi. Sebuah
128-bit blok ciphertext akan menghasilkan 128-bit blok plaintext.
Sudah banyak sekali algoritma cipher block yang dikembangkan. Salah satunya adalah
LOKI. LOKI dirancang oleh kriptografer Australia yaitu Lawrie Brown, Josef Pieprzyk, dan
Jennifer Seberry. LOKI didesain sebagai hasil dari analisis yang dilakukan secara detail
terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption
Standar). Dikarenakan ada versi terbaru dari LOKI ini, maka LOKI yang dibuat pertama kali
lebih dikenal dengan nama LOKI89 sesuai
Program Enkripsi ini akan dibuat menggunakan Visual basic 6.0. Implementasi caesar
cipher harus selalu menggunakan pergeseran 3 huruf alphabet ke sebelah kanan, sehingga
menghasilkan huruf A→D, B→E dan seterusnya hingga huruf Z→C. Nilai suatu alfabet di
dapat dengan cara mengkodekan setiap huruf abjad sebagai berikut:
Gambar Tabel Nilai Huruf Caesar Cipher
Implementasi caesar cipher dapat diselesaikan dengan melakukan pergeseran 3 posisi
huruf ke sebelah kanan dari suatu alphabet. Dari pergeseran ini akan di peroleh A→D, B→E
dan seterusnya. Pergeseran ini akan berputar kembali ke awal alphabet, sehingga diperolehX→A, Y→B dan Z→C.
1
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 2/13
Untuk melakukan proses enkripsi (merubah plaintext kedalam bentuk ciphertext)
gunakan rumus berikut ini :
Keterangan :
C : Ciphertext, yaitu pesan yang sudah disandikan
E(P) : Enkripsikan plaintext
P : Plaintext, yaitu pesan asli
Contoh :
Plaintext : SERBUBERLIN
Ciphertext : VHUEXEHUOLQ
Proses Enkripsi :
Langkah 1 :
Rubahlah karakter huruf dari plaintext menjadi sebuah angka dengan menggunakan
tabel nilai huruf caesar cipher.
Langkah 2 :
Menambahkan huruf yang telah di ubah ke dalam bentuk angka dengan 3. Hal ini
didasarkan pada tabel caesar cipher asli yang menggunakan pergeseran 3 posisi huruf
ke sebelah kanan dalam suatu alphabet, sehingga kunci yang digunakan adalah K=3.
Langkah 3 :
Hasil penambahan tersebut kemudian di mod dengan 26 (mod 26). Mod singkatan dari
modulo yang artinya sisa bagi, dengan kata lain sisa dari hasil pembagian. Kenapa
harus di mod dengan 26, sebab apabila ada penjumlahan yang setelah di jumlahkan
dengan K=3 hasilnya lebih dari 26 maka tidak akan menghasilkan apa-apa karena
jumlah huruf alphabet hanya 26 huruf, sehingga hasil yang lebih dari 26 tersebut harus
di mod dengan 26 (mod 26) agar muncul hasil yang terdapat dalam alphabet.
Langkah 4 :
2
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 3/13
Kemudian hasil yang telah di mod dengan 26 yang berupa angka tersebut di konversi
lagi ke dalam bentuk huruf alphabet berdasarkan tabel nilai huruf caesar cipher,
sehingga menghasilkan bentuk ciphertext :
VHUEX EHUOLQ
Sedangkan untuk melakukan proses dekripsi (merubah ciphertext kedalam bentuk
plaintext) gunakan rumus berikut ini :
Keterangan :
C : Ciphertext, yaitu pesan yang sudah disandikanD(C) : Dekripsikan ciphertext
P : Plaintext, yaitu pesan asli
Contoh :
Ciphertext : VHUEXEHUOLQ
Plaintext : SERBUBERLIN
Proses Dekripsi :
Langkah 1 :
Rubahlah karakter huruf dari ciphertext menjadi sebuah angka dengan menggunakan
tabel nilai kunci caesar cipher.
Langkah 2 :
Kemudian kurangi huruf yang telah di ubah ke dalam bentuk angka dengan 3. Hal ini
didasarkan pada tabel caesar ciper asli yang menggunakan pergeseran 3 posisi huruf
3
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 4/13
ke sebelah kanan dalam suatu alphabet, sehingga kunci yang digunakan adalah huruf
D atau kunci=3.
Langkah 3 :
Hasil pengurangan tersebut kemudian di mod dengan 26 (mod 26). Apabila hasil
pengurangan jumlahnya kurang dari 0 atau bernilai negatif, maka untuk mendapatkan
nilai positif hasil yang bernilai negatif tersebut harus ditambah dengan 26. Hal ini di
sebabkan karena dalam alphabet tidak ada huruf alphabet dalam tabel caesar cipher
yang bernilai negatif.
Langkah 4 :
Kemudian hasil yang berupa angka tersebut di konversi lagi ke dalam bentuk huruf
alphabet berdasarkan tabel nilai kunci caesar cipher, sehingga menghasilkan bentuk
plaintext.
PROGRAM ENKRIPSI CAESAR CIPHER
A. PROGRAM ENKRIPSI
4
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 5/13
Source Code :
Option Explicit
Function EncryptCaesar(InputPlain) As String
Dim i As Long
Dim nilaiplain As Integer
Dim Jml As Integer
If InputPlain = "" Then
MsgBox "Isi Huruf yang akan dienkripsi...", vbCritical, "Pesan Error"
Plain.SetFocus
End If
'dimulai huruf A=0For i = 1 To Len(InputPlain)
Select Case Asc(Mid(InputPlain, i, 1))
Case 0 To 31
Case 32 To 64
nilaiplain = Asc(Mid(InputPlain, i, 1)) - 31
Jml = nilaiplain + 3
If Jml > 26 ThenJml = Jml - 26
5
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 6/13
End If
EncryptCaesar = EncryptCaesar & Chr(Jml + 31)
Case 65 To 90
nilaiplain = Asc(Mid(InputPlain, i, 1)) - 64
Jml = nilaiplain + 3
If Jml > 26 Then
Jml = Jml - 26
End If
EncryptCaesar = EncryptCaesar & Chr(Jml + 64)
Case 91 To 96
Case 97 To 122
nilaiplain = Asc(Mid(InputPlain, i, 1)) - 96
Jml = nilaiplain + 3
If Jml > 26 Then
Jml = Jml - 26
End If
EncryptCaesar = EncryptCaesar & Chr(Jml + 96)
Case 123 To 255
End Select
Next i
End Function
Private Sub Form_Unload(Cancel As Integer)
Unload Me
Menu.Show
End Sub
Private Sub Kluar_Click()
Unload Me
Menu.Show
End Sub
Private Sub XBuka_Click()
With Me.cdl1
6
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 7/13
.DialogTitle = "Open File"
.CancelError = True
.FileName = ""
.Filter = "Text Document(*.txt)" & _
"|*.txt|"
On Error Resume Next
.ShowOpen
On Error GoTo 0
If .FileName = "" Then
Exit Sub
Else
On Error Resume Next
buka.Caption = .FileName
Plain.FileName = .FileName
End If
End With
End Sub
Private Sub XEnkripsi_Click()
Me.Caption = " Enkripsi Data..."
If Plain = "" Then
MsgBox "Isi pesan yang ingin di enkripsi!!!", vbInformation
Else
Ciper.Text = EncryptCaesar(Trim(Plain.Text))
End If
End Sub
Private Sub XKeluar_Click()
Unload Me
MenuUtama.Show
End Sub
Private Sub XSimpan_Click()
With Me.cdl1
7
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 8/13
.DialogTitle = "Simpan File"
.FileName = ""
.Filter = "Caesar Encryption(*.ces)|*.ces|"
.CancelError = False
On Error Resume Next
.ShowSave
On Error GoTo 0
If .FileName = "" Then
Exit Sub
Else
On Error Resume Next
simpan.Caption = .FileName
Me.Ciper.SaveFile .FileName, 1
End If
End With
MsgBox " Data telah disimpan...", vbInformation, "Pesan : Data tersimpan di " &
Me.cdl1.FileName
End Sub
B. PROGRAM DEKRIPSI
8
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 9/13
Source Code :
Option Explicit
Function DecryptCaesar(InputCiper) As String
Dim i As Long
Dim nilaiCiper As Integer
Dim Jml As Integer
If InputCiper = "" Then
MsgBox "Isi Huruf yang akan didekripsi...", vbCritical, "Pesan Error"
Ciper.SetFocus
End If
'dimulai huruf A=0
For i = 1 To Len(InputCiper)
Select Case Asc(Mid(InputCiper, i, 1))
Case 0 To 31
Case 32 To 64
nilaiCiper = Asc(Mid(InputCiper, i, 1)) - 31
Jml = nilaiCiper - 3
If Jml < 0 Then
Jml = Jml + 26
End If
DecryptCaesar = DecryptCaesar & Chr(Jml + 31)
Case 65 To 90
nilaiCiper = Asc(Mid(InputCiper, i, 1)) - 64
Jml = nilaiCiper - 3
If Jml < 0 Then
Jml = Jml + 26
End If
DecryptCaesar = DecryptCaesar & Chr(Jml + 64)
Case 91 To 96
Case 97 To 122
9
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 10/13
nilaiCiper = Asc(Mid(InputCiper, i, 1)) - 96
Jml = nilaiCiper - 3
If Jml < 0 Then
Jml = Jml + 26
End If
DecryptCaesar = DecryptCaesar & Chr(Jml + 96)
Case 123 To 255
End Select
Next i
End Function
Private Sub Form_Unload(Cancel As Integer)
Unload Me
Menu.Show
End Sub
Private Sub Kluar_Click()
Unload Me
Menu.Show
End Sub
Private Sub XBuka_Click()
With Me.cdl1
.DialogTitle = "Open File"
.CancelError = True
.FileName = ""
.Filter = "Caesar Encryption(*.ces)|*.ces|"
On Error Resume Next
.ShowOpen
On Error GoTo 0
If .FileName = "" Then
Exit Sub
Else
On Error Resume Next
10
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 11/13
buka.Caption = .FileName
Ciper.FileName = .FileName
End If
End With
End Sub
Private Sub XDekripsi_Click()
Me.Caption = " Dekripsi Data..."
If Plain = "" Then
MsgBox "Isi pesan yang ingin di dekripsi!!!", vbInformation
Else
Plain.Text = DecryptCaesar(Trim(Ciper.Text))
End If
End Sub
Private Sub XKeluar_Click()
Unload Me
MenuUtama.Show
End Sub
Private Sub XSimpan_Click()
With Me.cdl1
.DialogTitle = "Simpan File"
.FileName = ""
.Filter = "Text Document(*.txt)" & _
"|*.txt|"
.CancelError = False
On Error Resume Next
.ShowSave
On Error GoTo 0
If .FileName = "" Then
Exit Sub
Else
On Error Resume Next
simpan.Caption = .FileName
11
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 12/13
Me.Plain.SaveFile .FileName, 1
End If
End With
MsgBox " Data telah disimpan...", vbInformation, "Pesan : Data tersimpan di " &
Me.cdl1.FileName
End Sub
Sumber :
http://dwinurulhuda.blogspot.com/2009/12/membuat-program-enkripsi-sederhana.html
12
5/11/2018 MATERI - slidepdf.com
http://slidepdf.com/reader/full/materi-55a35cc038b2d 13/13
13