l i t t l e f l o w 3 r …

Icon

..he said, i am sweet like an orange..

Vigenere Cryptography

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

download vigenere project !!

Filed under: IT project, , , , , , , , , ,

6 Responses

  1. Redy says:

    Permisi mbak, kodenya saya gunakan buat program tugas akhirku :D
    Sudah saya modifikasi untuk Delphi.
    Terima kasih ya mbak… :)

  2. littleflow3r says:

    Hahaha. Saya ikut senang bisa bermanfaat. Lagi ambil TA juga nih.. doakan ya… :)

  3. darmariani says:

    tx bgt ya..
    ne bantu ak bgt
    Gbu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Tweets

Blog Stats

  • 9,405 hits