Tutorial
Kriptografi Klasik dan Penerapannya dalam Visual Basic .NET
keamanan informasi
Kriptografi mempunyai sejarah yang
panjang, mulai dari kriptografi Caesar yang berkembang pada zaman sebelum
Masehi sampai kriptografi modern yang digunakan dalam komunikasi antar komputer
di abad 20. Kata kriptografi sendiri berasal dari bahasa Yunani, yaitu
kryptós yang berarti tersembunyi, dan gráphein yang berarti menulis. Jadi
Kriptografi berarti penulisan rahasia. Ada dua cara yang paling dasar pada
kriptografi klasik. Yang pertama adalah transposisi. Transposisi adalah
mengubah susunan huruf pada plaintext sehingga urutannya berubah. Contoh
yang paling sederhana adalah mengubah suatu kalimat dengan menuliskan
setiap kata secara terbalik.
Contoh transposisi (menuliskan
setiap kata secara terbalik)
Plaintext : IBU AKAN
DATANG BESOK PAGI
Ciphertext : UBI NAKA GNATAD KOSEB
IGAP
beberapa contoh kriptografi klasik.
1. Kriptografi Caesar
Salah satu kriptografi yang paling
tua dan paling sederhana adalah kriptogtafi Caesar [KAHN96]. Menurut
sejarah, ini adalah cara Julius Caesar mengirimkan surat cinta kepada
kekasihnya Cleopatra. Dalam kriptografi Caesar, maka setiap huruf akan
dituliskan dalam huruf lain hasil pergeseran 3 buah huruf. Kriptografi
Caesar ini adalah kriptografi substitusi karena setiap huruf akan digantikan
huruf lain. Sebagai contoh, huruf A akan digeser 3 huruf menjadi huruf D,
B akan digeser 3 huruf menjadi E, J akan digeser menjadi M, O akan menjadi
R dan seterusnya. Pergeseran ini juga berputar kembali ke awal
abjad sehingga sesudah huruf Z diikuti kembali oleh huruf A. Kriptografi
Caesar ini dikenal sebagai monoalphabetic substitution cipher karena satu
huruf tertentu pasti akan berubah menjadi huruf tertentu yang lain.
Perubahan pada kriptografi Caesar
bisa dituliskan sebagai berikut:
Contoh Kriptografi Caesar
Plaintext :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ciphertext :
DEFGHIJKLMNOPQRSTUVWXYZABC
Plaintext : KITA JUMPA
BESOK PAGI
Ciphertext : NLWD MXPSD EHVRN SDJL
Jika Caesar akan menuliskan kalimat
‘I LOVE YOU’ maka akan dituliskan dalam kalimat ‘L ORYH
BRX‘.
Jika kita memberi nomor ke pada
huruf-huruf abjad dan kita mulai dengan huruf A=0, B=1, C=2 dstnya sampai
dengan Z=25, maka kriptografi Caesar memenuhi rumus sebagai berikut :
C = (P + 3) mod 26,
di mana C adalah nomor abjad
ciphertext, P adalah nomor abjad plaintext .
Dan dekripsinya adalah
P = (C – 3) mod 26.
Kripotogtafi Caesar ini kemudian
berkembang di mana pergeseran tidak hanya 3 huruf tetapi ditentukan oleh
suatu kunci yang adalah suatu huruf. Huruf ini yang menentukan pergeseran dari
huruf pada plaintext. Jika kunci adalah A maka pergeseran adalah 0, B pergeseran
adalah 1, C 2 dan seterusnya. Rumus di atas tetap berlaku tetapi
pergeseran huruf ditentukan oleh nilai pergeseran k (lihat tabel 1)
dan bisa berubah-ubah sesuai kunci yang digunakan.
Tabel 1. Tabel pergeseran huruf pada
kriptografi Caesar
Rumus kriptografi Caesar, secara
umum bisa dituliskan sebagai berikut:
C = E(P) = (P + k )mod 26
P = D(C) = (C − k )mod 26
di mana P adalah plaintext, C adalah
ciphertext, k adalah pergeseran huruf sesuai dengan kunci
yang dikehendaki.
Berikut ini implementasi kriptografi
Caesar dalam Visual Basic .NET. Setelah program ini dijalankan, maka akan
terlihat menu sebagai berikut :
Menu Kriptografi Caesar
Masukkan kalimat yang ingin
dienkripsi, dan masukkan kunci yang dikehendaki, misalnya kalimat:
INI PESAN RAHASIA dengan kunci L. Klik tombol Encipher dan lihat
ciphertext yang muncul. Ulangi dengan kalimat dan kunci yang lain. Cobalah
juga dengan deksripsi.
Menu Kriptografi Caesar setelah
Plaintext dan Kunci diisi kemudian tombol Encipher diklik.
Kode Sumber:
Private Function
CaesarEncipher(ByVal strPlaintext As String, ByVal nShift As Integer) As String
Dim i As Long
Dim c As Integer
Dim pAlphabet As Integer
Dim cAlphabet As Integer
Dim s As String = ""
'Masing-masing huruf digeser nShift
For i = 1 To Len(strPlaintext)
c = Asc(Mid$(strPlaintext, i, 1))
If ((c >= 65) And (c <= 90))
Then
'Dapatkan urutan abjad
pAlphabet = c - 65
'Digeser dengan kunci nShift mod 26
cAlphabet = (pAlphabet + nShift) Mod
26
'Kembalikan urutan abjad dengan kode
ASCII
c = cAlphabet + 65
End If
s = s & Chr(c)
Next i
Return s
End Function
Tidak ada komentar:
Posting Komentar