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 da lam al gorit ma kr iptogr af i mode rn adal ah al gorit ma cip her bl ock. Chiper bl ock 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 Jen nif er Seb erry . LOKI did esa in seb aga i has il dar i ana lis is yang dil aku kan secara det ail 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 AD, BE dan seterusnya hingga huruf ZC. 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 AD, BE dan seterusnya. Pergeseran ini akan berputar kembali ke awal alphabet, sehingga diperoleh XA, YB dan ZC. 1

MATERI

Embed Size (px)

Citation preview

Page 1: MATERI

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

Page 2: MATERI

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

Page 3: MATERI

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

Page 4: MATERI

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

Page 5: MATERI

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

Page 6: MATERI

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

Page 7: MATERI

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

Page 8: MATERI

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

Page 9: MATERI

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

Page 10: MATERI

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

Page 11: MATERI

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

Page 12: MATERI

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

Page 13: MATERI

5/11/2018 MATERI - slidepdf.com

http://slidepdf.com/reader/full/materi-55a35cc038b2d 13/13

 

13