ChEMunguth

ChEMunguth

Sabtu, 08 Desember 2012

kriptografi caesar



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