Selasa, 21 Januari 2014

Kriptografi dengan Java ( metode caesar cipher )

Salah satu kriptografi yang paling tua dan paling sederhana adalah kriptogtafi Caesar 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.

Substitusi kode yang pertama dalam dunia penyandian dikenal dengan Kode Kaisar, karena penyandian ini terjadi pada saat pemerintahan Yulius Caesar. Dengan mengganti posisi huruf awal dengan alphabet atau disebut dengan algoritma ROT3.


Teknik penyandian ini termasuk sandi tersubtitusi pada setiap huruf pada plaintext digantikan oleh huruf lain yang dimiliki selisih posisi tertentu dalam alphabet.
Jika Caesar akan menuliskan kalimat ‘I LOVE YOU’ maka akan dituliskan dalam kalimat ‘L ORYH BRX‘.

Plaintext : IBU AKAN DATANG BESOK PAGI
Ciphertext: KDW CMCP FCVCPI DGUQM RCIK

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 dan bisa berubah-ubah sesuai kunci yang digunakan.

Rumus kriptografi Caesar, secara umum bisa dituliskan sebagai berikut:

( ) 26 mod k P P E C + = =
( ) 26 mod k C C D P − = =
di mana Padalah plaintext, C adalah ciphertext, adalah pergeseran huruf sesuai dengan kunci yang dikehendaki.

Kriptanalisis Terhadap Caesar Chiper

Caesar chiper mudah dipecahkan dengan metode exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).

Misalkan kriptanalis menemukan potongan chiperteks (disebut juga cryptogram) XMZVH. Diandaikan kriptanalis mengetahui bahwa plainteks disusun dalam Bahasa Inggris dan algoritma kriptografi yang digunakan adalah caesar chiper. Untuk memperoleh plainteks, lakukan dekripsi mulai dari kunci yang terbesar, 25, sampai kunci yang terkecil, 1. Periksa apakah dekripsi menghasilkan pesan yang mempunyai makna ( lihat tabel ).



 Contoh exhaustive key search terhadap chiperteks XMZVH

Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
0
25
24
23
22
21
20
19
18
XMZVH
YNAWI
ZOBXJ
APCYK
BQDZL
CREAM
DSFBN
ETGCO
FUHDP
17
16
15
14
13
12
11
10
9
GVIEQ
HWJFR
IXKGS
JYLHT
KZMIU
LANJV
MBOKW
NCPLX
ODQMY
8
7
6
5
4
3
2
1
PERNZ
QFSOA
RGTPB
SHUQC
TIVRD
UJWSE
VKXTF
WLYUG


Dari Tabel, kata dalam Bahasa Inggris yang potensial menjadi plainteks adalah CREAM dengan menggunakan k = 21. Kunci ini digunakan untuk mendekripsikan chiperteks lainnya.



·         Kadang-kadang satu kunci yang potensial menghasilkan pesan yang bermakna tidak selalu satu buah. Untuk itu, kita membutuhkan informasi lainnya, misalnya konteks pesan tersebut atau mencoba mendekripsi potongan chiperteks lain untuk memperoleh kunci yang benar.

Misalkan potongan chiperteks  HSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL. Lakukan deksripsi terhadap potongan chiperteks lain tetapi hanya menggunakan k = 4 dan k = 11 (tidak perlu exhaustive key search) agar dapat disimpulkan kunci yang benar.



·         Cara lain yang digunakan untuk memecahkan chiperteks adalah dengan statistik, yaitu dengan menggunakan tabel kemunculan karakter, yang membantu mengidentifikasi karakter plainteks yang berkoresponden dengan karakter di dalam chiperteks (akan dijelaskan kemudian).

Berikut ini implementasi kriptografi Caesar dalam Bluej, setelah program ini dijalankan maka akan terlihat menu sebagai berikut :


Cara penggunaan aplikasi ini sangat mudah, tinggal kita menuliskan plaintext pada textfield message misalnya “KEAMANAN KOMPUTER”, lalu kita pilih key yang kita inginkan untuk pergeserannya misal 3, dan kita pilih algoritma enkripsi lalu tekan button try untuk menampilkan hasilnya . “NHDPDQDQ NRPSXWHU”


Kelemahan menggunakan algoritma Caesar cipher adalah :
1.      Tingkat keamanannya rendah , dikarenakan jumlah kuncinya hanya 26 kunci saja.
2.      Teknik pemecahan kata kunci tersebut dapa dilakukan dengan cara melakukan pengecekan terhadap semua kunci yang ada yang berjumlah 26 tersebut.

    Kesimpulan
Kriptografi untuk keamanan komputer sangat beragam cara dan metodenya, setiap metode beragam tingkat keamanannya .

1 komentar: