the key in vigenere cryptography isnt a character, but a words
Mengapa sandi Vigenere lebih rumit daripada sandi Caesar?
Pada sandi Caesar pergeseran akan sama pada seluruh pesan. Jika kunci yang digunakan adalah huruf E, maka setiap huruf pada pesan akan bergeser 4 huruf. Begitu juga bila digunakan kunci-kunci lainnya. Pada sandi Vigenere, plaintext akan dienkripsi dengan pergeseran huruf seperti pada kriptografi Caesar, tetapi setiap huruf di dalam plaintext akan mengalami pergeseran yang berbeda. Kunci pada kriptografi Vigenere adalah sebuah kata bukan sebuah huruf. Kata kunci ini akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf pada plaintext akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang sama dengan huruf pada plaintext. Oleh karena itu, metode penyandian Vigenere ini dianggap lebih rumit dari sandi Caesar karena enkripsi terhadap satu huruf yang sama bisa menghasilkan huruf yang berbeda.
Program yang akan dibuat adalah implementasi dari sandi Vigenere ke dalam bahasa Pascal. Program ini akan terdiri dari 2 menu utama:
1. Enkripsi, mengonversi teks-biasa menjadi teks-sandi.
2. Dekripsi, mengonversi teks-sandi menjadi teks-biasa.
Ide penyelesaian
Untuk mengimplementasikan program enkripsi/deskripsi kita harus menyusun kunci yang berupa kata, berulang-ulang sepanjang teks-biasa. Pergeseran setiap huruf pada plainteks akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang sama dengan huruf pada plainteks.
Dengan menggunakan Ascii code dari huruf-huruf ( 65-90 untuk huruf besar dan 97-122 untuk huruf kecil), maka proses enkripsi maupun deskripsi pada sandi Vigenere akan memenuhi rumus sebagai berikut:
C = E(P) = P + (kunci – 65*)
P = D(C) = C – (kunci – 65*)
Dengan keterangan :
C = Chiper Text atau Teks-sandi
P = Plain Text atau Teks-biasa
E = Enkripsi
D = Deskripsi
Enkripsi
Misal plainteks adalah karakter ke -67 (dalam ascii code adalah huruf C) maka jika dienkripsi dengan karakter ke -66 (ascii code dari huruf B), maka yang harus dilakukan pertama kali adalah mencari pertambahan pergeseran (misal k). Caranya adalah dengan mengurangkan ascii code karakter kunci (66) dengan 65 ->
Sehingga,
k = kunci – 65*
k = 66 – 65 = 1
Maka diperoleh pergeseran adalah 1 huruf (sesuai dengan rumus sandi Vigenere bahwa jika kunci adalah huruf A maka pergeseran adalah 0, B adalah 1, C adalah 2… Z adalah 25). Setelah itu tinggal menambahkan hasil pergeseran (k) dengan plainteks yang ingin dienkrip (dalam contoh ini adalah huruf C, dengan ascii code 67)
Sehingga,
chiperteks = plainteks + k
chiperteks = 67 + 1 = 68
Sehingga, chiperteks yang dihasilkan dari meng-enkrip huruf C dengan kunci huruf B adalah karakter ascii code 68 ( huruf D). Sekali lagi ini sesuai dengan rumus sandi Vigenere.
Deskripsi
Deskripsi adalah kebalikan dari enkripsi. Sekarang untuk contoh pada eksripsi diatas tapi dibalik. Untuk mendekrip huruf D (ascii code 68) dengan kunci huruf B (ascii code 66). Setelah pertambahan pergeseran didapat (dengan rumus k diatas), maka untuk memperoleh plainteks nya adalah mengurangkan chiperteks dengan k.
Sehingga,
plainteks = chiperteks – k
plainteks = 68 – 1 = 67
Dan sesuai dengan kebalikan dari contoh pada ekripsi diatas, hasil yang diperoleh adalah plainteks dengan ascii code 67, yaitu huruf C.
* untuk karakter huruf besar, 65 diganti dengan 97
Filed under: IT project, caesar, cipher teks, cryptography, kriptografi, kunci, pascal, plain teks, program, sandi, vigenere
Permisi mbak, kodenya saya gunakan buat program tugas akhirku
Sudah saya modifikasi untuk Delphi.
Terima kasih ya mbak…
Hahaha. Saya ikut senang bisa bermanfaat. Lagi ambil TA juga nih.. doakan ya…
TA-nya tentang apa mbak?
TA ku ttg automatic text summarization.. doakan
haha, uda ta liat modif kamu…, sip2.., mantap…
http://www.pasteall.org/16517/pascal
hasil modifikasi ke Delphi.
tx bgt ya..
ne bantu ak bgt
Gbu