JURNAL TEKNOLOGI INFORMASI PROGRAM STUDI TEKNIK INFORMATIKA DAN SISTEM INFORMASI, UNIVERSITAS BUNDA MULIA Volume 8, Nomor 2, Agustus 2012
VIGENERE CIPHER MENGGUNAKAN SPREADSHEET Teady Matius Surya Mulyana
[email protected],
[email protected] Teknik Informatika Universitas Bunda Mulia
Abstrak Vigenere cipher is the one of some substitution cipher process that has some sequence command in both of encryption and decryption process. Spreadsheet as the interactive data analytical and processing has many function that can be prepared with some sequence process at each cells. This sequence command can be used to process the ecryption and decryption process of the vigenere cipher. Some related process in every cells of spread sheet can be treated as the some sequence process.
Kata kunci: Vigenere Cipher, Cryptography, Spreadsheet
PENDAHULUAN Penyandian Vigenere atau Vigenere Cipher merupakan salah satu teknik penyandian dengan cara subtitusi. Bruen (Bruen, 2011) dalam bukunya Cryptography, Information Theory, and Error-Correction, serta Martin (Martin 2012) dalam bukunya Everyday Cryptography, mengatakan bahwa vigenere cipher adalah sebuah metode dari enkripsi teks alfabetik menggunakan serangkaian penyandian bebasis caesar pada huruf-huruf dari sebuah kata kunci, dan merupakan bentuk sederhana dari subtitusi polyalphabetic. Teknik subtitusinya serupa dengan semua penyandian berbasis caesar. Seperti penyandian berbasis caesar lainnya, vigenere cipher sebenarnya juga melakukan pergeseran, tetapi pergeseran dilakukan perhuruf dengan huruf berikutnya pada plaintext berbeda. Dengan demikian jika pada caesar cipher seseorang dengan mudah menebak kuncinya dengan melakukan pergeseran abjad mulai dari 1 s/d 26
Teknologi Informasi
Page 30 of 34
secara cara try and error, sampai ditemukan nilai kunci yang tepat. Maka pada pada vigenere cipher akan lebih sulit menebak kuncinya dengan try and error mencari nilai pergeseran seperti pada Caesar cipher, karena antara huruf yang satu dengan huruf berikutnya mempunyai nilai pergeseran yang berbeda. Berbeda dengan caesar cipher, input key vigenere cipher berupa sebuah kata yang merupakan rangkaian huruf. Contoh : Input Kunci : cerdas Pengulangan : cerdascerdascerdasc Plainteks
: belajarsupayapandai
cipherteks
: dicdjstwlsaqctrqdsk
Key akan diulang-ulang sampai sejumlah huruf pada plaintext. Kemudian setiap huruf satu persatu akan dicari pada table vigenere sesuai dengan keynya.
Vigenere Cipher Menggunakan Spreadsheet
JURNAL TEKNOLOGI INFORMASI PROGRAM STUDI TEKNIK INFORMATIKA DAN SISTEM INFORMASI, UNIVERSITAS BUNDA MULIA Volume 8, Nomor 2, Agustus 2012
METODE Enkripsi dengan Tabel Vigenere Pada umumnya jika akan melakukan enkripsi maupun dekripsi dengan vigenere cipher, diperlukan bantuan sebuah table vigenere. Contoh tabel vigenere dapat dilihat pada tabel II-1. Misalkan huruf pada plaintext adalah “d” dan key berkorespondensi dengan huruf tersebut adalah “f”, maka pada baris “f” dan kolom “d” akan ditemukan huruf “i" dengan demikian huruf “d” tersebut akan disubtitusi dengan huruf “i" tentu saja jika ditemukan huruf “d” lagi pada plaintext tidak dapat semena-mena digantikan dengan huruf “i", melainkan harus dilihat urutan huruf pada keynya. Jika diperhatikan pada contoh diatas, “p” pada huruf ke 10 dan “p” pada huruf ke 14 pada plainteks mempunyai huruf pada key yang berbeda, “p” yang pertama mempunyai key “d” sehingga menghasilkan cipherteks “s”, sedangkan “p” yang kedua mempunya key “e” sehingga menghasilkan cipherteks “t”
Plainteks dengan huruf yang sama dan huruf pada key yang sama akan menghasilkan cipherteks yang sama. Plainteks dengan huruf yang sama dengan huruf pada key yang berbeda akan menghasilkan cipherteks yang berbeda. Plainteks dengan huruf dan/atau key yang berbeda dapat menghasilkan cipherteks yang sama dapat juga menghasilkan cipherteks yang berbeda. Hal ini tentu akan menyulitkan orang ingin membongkar kunci tersebut. Untuk melakukan proses dekripsi, dapat dilihat huruf pada key nya, misalkan didapat huruf “c” pada key dan huruf “d” pada cipherteks, maka berikutnya cari baris “c” huruf kemudian pada baris tersebut cari huruf “d”, setelah didapatkan huruf “d” tersebut, periksa huruf “d” tersebut terdapat pada kolom apa. Pada contoh di atas akan didapatkan huruf “d” pada baris “c” terdapat pada kolom “b”. Dengan demikian didapatkan bahwa plainteks adalah “c”.
Tabel 1 - Tabel Vigenere
Teknologi Informasi
Page 31 of 34
Vigenere Cipher Menggunakan Spreadsheet
JURNAL TEKNOLOGI INFORMASI PROGRAM STUDI TEKNIK INFORMATIKA DAN SISTEM INFORMASI, UNIVERSITAS BUNDA MULIA Volume 8, Nomor 2, Agustus 2012
Rumus Enkripsi dan Dekripsi Seperti yang sudah saya ceritakan sebelumnya, vigenere cipher pada dasarnya adalah teknik pergeseran untuk menghasilkan huruf yang akan digunakan untuk mensubtitusi huruf pada plainteks menjadi cipherteks. Dengan demikian seperti halnya pada caesar cipher maka vigenere mempunyai formula pergeserannya. Formula untuk melakukan proses enkripsi ditunjukkan pada rumus (1) C[i] = E(p[i]) = (p[i]+k[i]) mod (26);.......................... (1)
Dimana C
: Ciphertext
E(p) :Fungsi enkripsi pada plaintext p P
: plaintext
k
: key
i
: pencacah
n
: jumlah huruf plaintext
Formula untuk melakukan ditunjukkan pada rumus (2)
PEMBAHASAN Burnet (burnet, 2001) mengatakan bahwa spreadsheet adalah sebuah program aplikasi komputer interaktif untuk menganalisa informasi dalam bentuk tabular. dimana pada tiap selsel dapat berisi data bilangan atau teks, maupun berisi formula yang secara otomatis mengkalkulasi dan menampikan nilainya pada setiap sel. Dengan memanfaatkan kemampuan spreadsheet untuk memproses rumus, dan melempar setiap nilai yang dihasilkan pada sel-selnya, dapat disusun sebuah aplikasi yang melakukan urutan proses pengurai kunci, enkripsi dan dekripsi dari penyandian vigenere.
Aplikasi Untuk Memproses Key proses
P[i] = D(C[i]) = (C[i] – k[i]) mod (26);...................... (2)
Dimana C
Proses pada aplikasi dibagi menjadi tiga proses utama, yaitu proses mengekstrak key, proses enkripsi dan proses dekripsi.
: Ciphertext
D(C) : Fungsi dekripsi pada ciphertext C p
: plaintext
k
: key
i
: pencacah
m
: jumlah huruf ciphertext
Aplikasi untuk memproses key terdapat pada baris 3 s/d baris 6. Tampilan dapat dilihat pada Gambar 1. Input key terdapat pada sel C3. Untuk mempermudah proses penguraian key dan pengulangan key, maka pada baris 5 dibuatkan pencacah key yang didapat dengan rumus (3) =IF(MOD(index;LEN(key))<>0;MOD(in dex;LEN(key));LEN(key)) ....... (3)
Pada sel C5, tuliskan rumus (4) =IF(MOD(C4;LEN($C3))<>0;MOD(C4;LE N($C3));LEN($C3)) ............. (4)
Gambar 1 - Memproses Key
Teknologi Informasi
Page 32 of 34
Vigenere Cipher Menggunakan Spreadsheet
JURNAL TEKNOLOGI INFORMASI PROGRAM STUDI TEKNIK INFORMATIKA DAN SISTEM INFORMASI, UNIVERSITAS BUNDA MULIA Volume 8, Nomor 2, Agustus 2012
Kemudian copykan ke sel-sel pada kolom berikutnya. Dengan demikian pada pencacah key, setelah sel menunjukkan nilai yang sama dengan panjang key, maka pada sel berikutnya akan kembali dimulai dari 1. Berikutnya sesuai dengan nilai pada pencacah key, maka huruf-huruf pada key diuraikan, yang dapat dilakukan dengan rumus (5)
Rumus enkripsi pada rumus (1) dapat diterapkan pada aplikasi ini dengan mencantumkan rumus (6) =IF(C11<>"";CHAR(MOD((CODE(C11)CODE("a"))+(CODE(C6)-CODE("a")); 26)+CODE("a"));"") ............ (6)
=MID(key;pencacah key;1). ........................ (5)
Sebelum diproses, nilai ascii dari huruf yang akan diproses harus dikurangi dengan nilai ascii dari huruf “a”, sehingga “a” akan dianggap bernilai 1.
Rumus tersebut dapat dicantumkan pada sel C6 =MID($C3;C5;1) dan dicopykan ke sel-sel pada kolom berikutnya.
Pada proses ini sebelumnya harus dilakukan pengujian apakah sel yang akan diproses berisi karakter kosong atau tidak, dan hanya yang ada datanya saja yang akan diproses.
Aplikasi Enkripsi Aplikasi enkripsi dapat dilihat pada Gambar 2. Input plaintext pada aplikasi enkripsi terdapat pada sel C9. Berikutnya pada baris “Urai Plaintext” huruf-huruf pada plaintext diuraikan sesuai dengan indexnya. Untuk menguraikan plaintext, dapat dipergunakan fungsi =MID(plaintext;index;1) yang dapat diterapkan dengan =MID($C9;C10;1) pada sel C11 dan dicopykan ke sel-sel pada kolom berikutnya.
Langkah berkutnya adalah menggabungkan hasil enkripsi pada baris 13, dengan rumus (7) yang tuliskan pada sel C13 dan dicopykan ke sel-sel pada kolom berikutnya. =IF(C12<>"";CONCATENATE(B13;C12); "") .......................... (7)
Hasil enkripsi pada sel C14 ditampilkan dengan rumus (8) =HLOOKUP(LEN(C9);C10:AI13;4). . (8)
Aplikasi Dekripsi Aplikasi dekripsi dapat dilihat pada Gambar 3.Input Ciphertext pada aplikasi dekripsi terdapat pada sel C17.
Gambar 2 - Proses Enkripsi
Teknologi Informasi
Page 33 of 34
Vigenere Cipher Menggunakan Spreadsheet
JURNAL TEKNOLOGI INFORMASI PROGRAM STUDI TEKNIK INFORMATIKA DAN SISTEM INFORMASI, UNIVERSITAS BUNDA MULIA Volume 8, Nomor 2, Agustus 2012
Gambar 3 - Proses Dekripsi
Berikutnya pada baris “Urai Ciphertext” diuraikan huruf-huruf pada ciphertext sesuai dengan indexnya. Untuk menguraikan ciphertext, dapat dipergunakan fungsi =MID(ciphertext;index;1) yang dicantumkan dengan =MID($C17;C18;1) pada sel C19 dan kita copykan ke selsel pada kolom berikutnya. Rumus dekripsi pada rumus (2) dapat diterapkan pada aplikasi ini dengan mencantumkan rumus (9) pada sel C20 dan mengcopykannya pada sel-sel di kolom berikutnya.
Hasil enkripsi pada sel C22 ditampilkan dengan rumus (11) =HLOOKUP(LEN(C17);C18:AI21;4) ..... (11)
SIMPULAN Spreadsheet memiliki cell-cell yang dapat diisi dengan rumus., jika tiaptiap rumus saling berhubungan, dimana rumus yang satu akan memanfaatkan hasil rumus yang lain akan didapatkan suatu urutan proses yang dapat dipergunakan untuk menerapkan urutan proses pada penyandian vigenere.
=IF(C19<>"";CHAR(MOD(CODE(C19)CODE(C6);26)+CODE("a"));"") ... (9)
DAFTAR PUSTAKA Proses ini tidak perlu mengurangi dengan code(“a”) lebih dahulu, karena pada proses ini hanya mengurangkan nilai huruf plaintext dengan nilai huruf key jadi jika dikurangkan dahulu dengan code(“a”) juga akan sama hasilnya. Tetapi setelah diproses tetap harus menambahkan dengan code(”a”). Langkah berikutnya adalah menggabungkan hasil dekripsi pada baris 20, dengan rumus (10) yang dituliskan pada sel C21 dan dicopykan ke sel-sel pada kolom berikutnya. =IF(C20<>"";CONCATENATE(B21;C20); "") .......................... (10)
Teknologi Informasi
Page 34 of 34
[1] Bruen, Aiden A. & Forcinito, Mario A. (2011). Cryptography, Information Theory, and ErrorCorrection: A Handbook for the 21st Century. , 2011, John Wiley & Sons. USA, p. 21. [2] Martin, Keith M. Everyday Cryptography. Oxford University Press. 2012, Oxfor-USA, p. 142. [3] Burnett, Margaret; Atwood, J., Walpole Djang, R., Reichwein, J., Gottfried, H., and Yang, S. "Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm". Journal of Functional Programming 11 (2): 155–206. (March 2001). Retrieved 2008-0622.
Vigenere Cipher Menggunakan Spreadsheet