METODE KRIPTOGRAFI SUBSTITUSI POLYALPHABETIC A. Vigenère Cipher Satu masalah utama simple substitusion ciphers adalah cipher tersebut sangat rawan terhadap analisis frekuensi. Dengan demikian ciphertext yang cukup besar, ia dapat dengan mudah dipatahkan menggunakan mapping frequency dari hurufhurufnya untuk mengetahui frekuensi dari English Text. Karena itu, untuk membuat cipher supaya lebih aman, cryptographers tertarik dalam pengembangan teknik enciphering yang kebal dari analisis frekuensi. Salah satu pendekatan yang paling umum adalah menekan data berfrekuensi normal dengan menggunakan lebih dari satu alphabet untuk melakukan encrypt pesan. Polyalphabetic substitusion cipher melibatkan penggunaan dua atau lebih cipher alphabets. Metode tersebut adalah Vigenere Cipher
Metode ini diperkenalkan oleh Balise de vigenere pada tahun 1585 dalam ‘Traicte des Chiffer’, sebagai bentuk pengembangan dari metode monoalphabethic. Metode ini juga merupakan dasar dari polyalphabetic substitution cipher. Beberapa ketentuan dalam dalam metode ini antara lain : setiap kunci dapat disubstitusi dengan bermacam-macam kunci yang lain menggunakan kata kunci Kata kunci digunakan secara berulang Kata kunci digunakan untuk menentukan enkrispsi setiap alphabet dalam plainteks Huruf ke-i dalam plainteks di spesifikasikan oleh alphabet yang digunakan dalam kunci Penggunaan alphabet bisa berulang
Tabel Vigenere Vigenere Cipher, diusulkan oleh Blaise de Vigenere dari pemerintahan Henry III di Perancis pada abad ke 19, merupakan sebuah substitusi polyalphabetic yang berdasarkan pada tabel berikut :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Pada Vigenere cipher tiap baris tabel cocok dengan Caesar cipher. Baris pertama merupakan shift 0, baris kedua merupakan shift 1 dan baris terakhir merupakan shift 25. Vigenere cipher menggunakan tabel tersebut bersama dengan sebuah kata kunci (keyword) untuk melakukan encipher pesan. Contoh, kita akan melakukan encipher pesan plaintext :
TO BE OR NOT TO BE THAT IS THE QUESTION
Dengan menggunakan kunci RELATIONS. Kita mulai dengan menuliskan kunci, berulang kali di bagian atas plaintext message. Untuk memperoleh ciphertext gunakan tabel, untuk tiap huruf didalam plaintext, temukan interseksi baris dengan menghubugkan kata kunci dan kolom dengan plaintext-nya untuk menemukan ciphertext letter.
Keyword : RELAT IONSR
ELATI ONSRE LATIO NSREL
Plaintext : TOBEO RNOTT OBETH ATIST
HEQUE STION
Ciphertext: KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
Decipherment sebuah encrypted message adalah dengan menulis kata kunci secara berulang diatas message :
Keyword : RELAT IONSR
ELATI ONSRE LATIO NSREL
Ciphertext: KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY Plaintext : TOBEO RNOTT OBETH ATIST
HEQUE STION
Dengan menggunakan kata kunci untuk memilih kolom tabel dan kemudian menjiplak bawah kolom ke baris yang mengandung ciphertext letter. Index baris ini adalah plaintext letter. Keunggulan Vigenere cipher terhadap analisis frequency dapat dilihat melalui pengujian ciphertext diatas. Dalam kolom terlihat bahwa terdapat 5 ‘T’s dalam plaintext message dan mereka di-encrypted oleh ‘R’, ‘S’, ‘T’, ‘N’, ‘E’ berturut-turut. Keberhasilan ini menutup frekuensi karakteristik dari English ‘T’ . Satu cara untuk melihat ini adalah menentukan bahwa tiap huruf dari kata kunci RELATIONS memilih 1 dari 26 alphabet substitusi yang mungkin ada dalam tabel Vigenere. Beberapa pesan yang di-encrypted
melalui Vigenere cipher merupakan koleksi dari banyak simple substitution ciphers karena adanya huruf dari kata kunci. Vigenere cipher mempunyai semua feature dari field cipher yang berguna, yaitu dengan mudah dapat dipindahkan kunci dan tabel, tidak memerlukan perlengkapan khusus, mudah diterapkan, dsb. Variasi dari Vigenere cipher adalah Gronsfeld Cipher, digunakan dalam bahasa Jerman dan digunakan secara meluas di Central Europe. Gronsfeld variant menggunakan digits dari keynumber, bukan huruf kata kunci, tetapi tetap tidak berubah dalam hal lain. Sehingga dalam kenyataannya Gronsfeld merupakan teknik yang lebih lemah dari Vigenere dan hanya menggunakan 10 subtitute alphabets dibandingkan dengan 26 yang digunakan oleh Vigenere.
Algoritma Semu (Pseudo-Code) [Enkripsi] 1. Bentuk konversi String ke Numerik dan Numerik ke String dalam fungsi/konstanta. 2. Inisialisasi Keyword yang dipilih { contoh : CIPHER } 3. Inisialisasi Plaintext yang dipilih { contoh : THISPROCESSCANALSOBEEXPRESSED } 4. Sesuaikan panjang string dari keyword sesuai panjang string dari Plaintext. 5. Ambil karakter pertama dari plaintext { contoh : a = T }, konversikan ke Numerik dari definisi yang dibentuk { contoh : a =T = 45 } 6. Ambil karakter pertama dari keyword { contoh : k1 = C = 28 – 26 = 2 } 7. Lakukan perhitungan dengan rumus : Eki(a):a -> a + Ki(mod 26) { contoh : a = 45 + 2 mod 26 = 47 } 8. Lakukan proses konversi dari Numerik ke Karakter dari hasil yang didapat { contoh : a = 47 = V } 9. Proses diulangi ke nomor 5 untuk karakter Plaintext selanjutnya dengan keyword K2, K3, …, dst sampai karakter dari Plaintext habis. 10. Hasil Enkripsi disimpan dalam file output { contoh : Crypto.txt } 11. Proses Enkripsi selesai.
Algoritma Semu (Pseudo-Code) [Dekripsi] 1. Pergunakan definisi konversi String ke Numerik dan Numerik ke String dalam fungsi/konstanta dari proses Enkripsi. 2. Ambil string dari hasil Enkripsi { contoh : VPXZTIQATZWTCVPSWFDMTETIGAHLH } 3. Inisialisasi keyword yang dipilih { contoh : CIPHER } 4. Sesuaikan panjang string dari keyword sesuai panjang string dari string Enkripsi. 5. Ambil karakter pertama dari plaintext { contoh : a = V }, konversikan ke Numerik dari definisi yang dibentuk { contoh : a = V = 47 } 6. Ambil karakter pertama dari keyword { contoh : K1 = C } , konversikan ke Numerik dari definisi yang dibentuk dan kurangkan dengan Numerik 26 { contoh : K1 = C = 28 – 26 = 2 } 7. Lakukan perhitungan dengan rumus : Dki(a):a -> a – Ki(mod 26 { contoh : a = 47 – 2 mod 26 = 45 } 8. Lakukan proses konversi dari Numerik ke Karakter dari hasil yang didapat { contoh : a = 45 = T } 9. Proses diulangi ke nomor 5 untuk karakter Enkripsi selanjutnya dengan keyword K2, K3 , …., dst sampai karakter dari plaintext habis. 10. Proses Dekripsi selesai.
Contoh
Akan dienkripsikan plaintext berikut :
THIS PROCESS CAN ALSO BE EXPRESSED
dengan menggunakan kata kunci : CIPHER
maka penyelesaiannya :
Plaintext
: THISPROCESSCANALSOBEEXPRESSED
Kunci
: CIPHERCIPHERCIPHERCIPHERCIPHE
Ciphertext
ABCDEFGHIJKLMNOPQRSTUVWXYZ C CDEFGHIJKLMNOPQRSTUVWXYZAB I IJKLMNOPQRSTUVWXYZABCDEFGH P PQRSTUVWXYZABCDEFGHIJKLMNO H HIJKLMNOPQRSTUVWXYZABCDEFG E EFGHIJKLMNOPQRSTUVWXYZABCD R RSTUVWXYZABCDEFGHIJKLMNOPQ Maka hasil enkripsinya adalah : T H I S P R O S dst
berdasarkan kunci
C I P H E R C I
disubstitusi dengan
V P X Z T I Q K
sehingga hasil enkripsi akhirnya adalah :
Plaintext
: THIS PROCESS CAN ALSO BE EXPRESSED
Ciphertext
: VPXZ TIQKTZW TCV PSWF DM TETIGAHLH
Latihan 1. Tentukan ciphertext dari plainteks : FIRST THINK FIRST
jika dienkripsikan dengan kata kunci : PASCAL apahasilnya jika dienkripsikan dengan kunci yang berbeda : BERKAS
2. enkripsikan 2 plaintext yang berbeda : a. FIRST THINK FIRST
b. FAKULTAS TEKNOLOGI INDUSTRI dengan kunci yang sama : BERKAS
B. Beauford cipher
Metode ini hampir sama dengan metode vegenere, tetapi dengan alphabet yang ditulis secara terbalik.
Secara fungsi matematis metode ini dapat dituliskan :
Enkripsi
: Eki(p) : P ki – P (mod 26)
Dekrispsi
: Dki(c) : C ki – C (mod 26)
Sebagai contoh, jika menggunakan satu huruf kata kunci yaitu ‘D’, maka daftar alphabet mempunyai translasi seperti berikut :
Plain
: ABCDEFGHIJKLMNOPQRSTUVWXYZ
cipher
: DCBAZYXWVUTSRQPONMLKJIHGFE
maka jika plainteks :
THE SOONER THE BETTER
dienkripsikan dengan metode tersebut maka cipherteksnya :
KWZ LPPQZM KWZ CZKKZM