Tuesday, October 10, 2017

ALGORITMA VIGENERE CHIPER

Kali ini saya akan membahas tentang Kriptografi yang menggunakan Algoritma Vigenere, jika anda akan melakukan sebuah enkripsi yang pertama harus ada pesan yang akan di-enkripsi, kemudian harus ada key (kunci) dan anda harus menyiapkan deretan abjad, karakter, dll, tetapi dalam percobaan kali ini saya hanya menggunakan deretan abjad saja, dari deretan ini akan saya beri sebuah variabel 'mapVigenere'. Misal mapVigenere = "abcdefghijklmnopqrstuvwxyz " untuk sementara itu kita akan menggunakan abjad yang biasa saja, nanti jika ini sudah selesai silahkan anda bisa tambahkan sendiri seperti huruf besar (kapital), karakter, dll.

Misalnya sebuah pesan yang akan di enkripsi adalah "sepeda" dan key (kunci)-nya adalah "frfrfr", jadi kita harus melakukan beberapa perhitungan perkarakter jadi yang nantinya si-program akan membaca Pesan dan Key perkarakter. Key berfungsi sebagai kunci yang akan kita gunakan untuk  peng-enkripsian, panjang key harus sama dengan panjang pesan dan mengikuti pola karena pola yang saya gunakan adalah fr, maka fr tersebut di ulang 3 kali, jika polanya adalah fra maka fra diulang sampai panjang key sama dengan panjang pesan. 

Berikut dibawah ini rumus dan aturan bagaimana untuk enkripsi menggunakan vigenere :
Ci = Pi + Ki

Jika Ci > panjang mapVigenere maka Ci - panjang mapVigenere
Ket : 
1. Ci adalah chiper indeks ke i
2. Pi adalah pesan indeks ke i
3. Key adalah key indeks ke i

Maksud dari indeks tersebut adalah nilai dari deret huruf, karakter, dll. Misal indeks Pi = 0 maka nilai Pi adalah s, karena s berada pada indeks 0, jika indeks Pi = 1 maka nilai Pi adalah e, karena e berada pada indeks 1.

Untuk melakukan perhitungan dengan rumus tersebut pertama kita harus mengetahui nilai dari Pi dan Ki, jika indeks Pi = 0 maka Pi akan merejuk ke 's' dan jika indeks Ki = 0 maka Ki akan merujuk ke 'f', untuk mengambil nilai dari Pi = 's' dan Ki = 'f' kita bisa mencocokkan dengan mapVigenere yang tadi kita buat, coba kita cek huruf 's' dan 'f' berada pada posisi berapa, karena kita menggunakan indeks lakukan perhitungan mulai dari 0 - n, maka akan di peroleh nilai dari Pi = s --> 18 dan Ki = f --> 5, langsung kita tambahkan dengan rumus Ci = Pi + Ki, jadi Ci = 18 + 5 = 23, karena 23 < panjang mapVigenere maka kita biarkan saja nilai tersebut, dan nilai Ci-0 sudah ketemu, lalu kita akan mencari nilai Ci-1, Ci-2, sampai Ci-5.

Mencari nilai Ci-1
Pi = e --> 4

Ki = r -- > 17
Ci = 4 + 17 = 21
Mencari nilai Ci-2
Pi = p --> 15

Ki = f -- >5
Ci = 4 + 17 = 20

Mencari nilai Ci-3
Pi = e --> 4

Ki = r -- > 17
Ci = 4 + 17 = 21

Mencari nilai Ci-4
Pi = d -->3

Ki = f -- > 5
Ci = 4 + 17 = 8


Mencari nilai Ci-5
Pi = a --> 0
Ki = r -- > 17
Ci = 4 + 17 = 17

jadi, dari nilai deret Ci adalah 23, 21, 20, 21, 8, 17, dari deret inilah lalu kita akan mencocokkan dengan mapVigenere/mencari huruf dengan indeks ke 23, 21, dst jadi :
Huruf indeks ke-23 : x

Huruf indeks ke-21 : v
Huruf indeks ke-20 : u
Huruf indeks ke-21 : v 
Huruf indeks ke-8 : i
Huruf indeks ke-17 : r   

Jadi, hasil enkripsi yang di dapat dari pesan "sepeda" menghasilkan chiper text (pesan terenkripsi) yaitu "xvuvir", ingat chiper text ini hasilnya akan berbeda tergantung pada mapVigenere dan Key, 

Jika proses enkripsi sudah selesai, lalu sekarang kita akan belajar bagaimana untuk men-dekripsikan chipertext tersebut, yang pertama harus ada chipertext dahulu (pesan terenkripsi) tidak mungkin mau mendekripsikan tanpa adanya chipertext tersebut :-p, lalu persyaratan berikutnya harus mengetahui mapViginere dan Key, kedua persyaratan ini isi/nilainya harus sama waktu kita melakukan proses enkripsi tadi, jika tidak sama maka pesan yang didekripsikan tidak bisa kembali seperti semula.

Berikut rumus dibawah ini dan bagaimana aturan untuk dekripsi menggunakan vigenere :
Ci = Pi - Ki


Jika Ci < 0 maka Ci + panjang mapVigenereKet : 
1. Ci adalah chiper indeks ke i
2. Pi adalah pesan indeks ke i
3. Key adalah key indeks ke i

Caranya sama kita akan mencari nilai Ci-0 sampai Ci-5.
Mencari nilai Ci-0
Pi = x --> 23
Ki = f -- > 5
Ci = 23 - 5 = 18

Mencari nilai Ci-1
Pi = v --> 21
Ki = r -- > 17
Ci = 21 - 17 = 4

Mencari nilai Ci-2
Pi = u --> 20
Ki = f -- > 5
Ci = 20 - 5 = 15

Mencari nilai Ci-3
Pi = v --> 21
Ki = r -- > 17
Ci = 21 - 17 = 4

Mencari nilai Ci-4
Pi = i --> 8
Ki = f -- > 5
Ci = 8 - 5 = 3
Mencari nilai Ci-5
Pi = r --> 17
Ki = r -- > 17
Ci = 17 - 17 = 0


Dari proses diatas diperoleh deret bilangan Ci = 18, 4, 15, 4, 3, 0, lalu dari deret ini silahkan anda cocokkan ke mapVigenere, maka :
Ci-0 --> 18 = s

Ci-1 --> 4 = e
Ci-2 --> 15 = p
Ci-3 --> 4 = e
Ci-4 --> 3 = d
Ci-5 --> 0 = a

Jadi, hasil dekripsi dari chipertext "xvuvir" adalah "sepeda" , Jika anda ingin tahu seperti apa programnnya klik disini, tapi ingat passwordnya masih manual jadi anda harus mengulang pola passwordnya dan aplikasi ini hanya menerima inputan huruf besar saja dan masih belum bisa membaca spasi, karakter dan lain-lain.

Untuk Source code algoritma Vigenere dapat di download disini 

Sekian dulu teman-teman, semoga bermanfaat.  :)