Enkripsi dan Deskripsi XOR Chiper Untuk Mengatasi 256 Karakter ASCII
Table of Contents
XOR merupakan salah satu operaor yang amat terkenal selain AND dan OR. Saya mengenal operator XOR ketika praktik rangkaian digital untuk membuat simulasi lampu LED. Lebih detail, saya menerapkan XOR untuk pemodelan proses bisnis, dimana arus proses dalam model harus memilih salah satu cabang jika ditemukan percabangan XOR. Bahkan kali ini, XOR dapat kita jadikan sebagai algoritma untuk kriptografi. Populer dengan sebutan XOR Chiper. Meskipun simpel, tapi amat mumpuni.
Secara umum, nilai true dan false pada operator XOR saya rangkum sebagai berikut:
Jika 0 XOR 0 maka 0 (false)
Jika 1 XOR 0 maka 1 (true)
Jika 0 XOR 1 maka 1 (true)
Jika 1 XOR 1 maka 0 (false)
Baik, sampai disini masih mudah untuk dipahami bukan? Tujuan artikel ini adalah memahamkan pembaca untuk menghitung XOR chiper secara manual beserta peneraannya dalam program. Kali ini, saya lebih memilih menggunakan pemrograman java. XOR chiper meliputi perhitungan untuk melakukan enkripsi dan deskripsi. Enkripsi yaitu proses untuk membentuk chipertext, atau teks yang telah terenkripsi. Teks enkripsi bisa dikembalikan ke asalnya jika sudah di deskripsi. Syaratnya, proses enkripsi dan deskripsi harus menggunakan kunci yang sama.
Yuk, langsung ke contoh. Namun tunggu dulu. Teman-teman sudah tahu Karakter ASCII beserta code-nya belum? Karena masalah XOR chiper yang kita selesaikan menggunakan karakter ASCII sebanyak 256 karakter.
Coba lihat tabel ASCII diatas, setiap huruf, angka, maupun simbol-simbol tertentu memiliki kode angkanya. Misalnya huruf W, memiliki kode ASCII 87. Dalam enkripsi XOR, setiap plainteks yang kita masukkan diubah dulu dalam bentuk kode ASCII. Kemudian, kode ASCII tersebut diubah menjadi bentuk biner 8 bit (00000000).
Enkripsi XOR
Kita langsung ke contoh perhitungan manual. Contohnya, kita memiliki plainteks Wiki dengan kunci 11110011. Ingat, kuncinya harus menggunakan bentuk biner ya! Kemudian, Huruf W, i, k, i diubah dalam bentuk kode ASCII. Hasilnya adalah 87, 105, 107, 105. Setelah diubah ke ASCII, langkah selanjutnya adalah mengubahnya dalam bentuk biner 8 bit. Seperti perhitungan di bawah ini:
Enkripsi XOR
Kita langsung ke contoh perhitungan manual. Contohnya, kita memiliki plainteks Wiki dengan kunci 11110011. Ingat, kuncinya harus menggunakan bentuk biner ya! Kemudian, Huruf W, i, k, i diubah dalam bentuk kode ASCII. Hasilnya adalah 87, 105, 107, 105. Setelah diubah ke ASCII, langkah selanjutnya adalah mengubahnya dalam bentuk biner 8 bit. Seperti perhitungan di bawah ini:
Enkripsi XOR Chiper |
Nah, kemudian masing-masing bentuk biner dari huruf W,i,k,i tersebut dilakukan operasi XOR terhadap kunci yang telah ditetapkan, yaitu 11110011. Hasilnya, sudah tertera diatas. Mudahkan?
Sekarang, langkah-langkah untuk deskripsi terhadap chiper teks hasil enkripsi. Deskripsi dimaksudkan untuk mengetahui pesan yang disampaikan. Hasil deskripsi adalah berupa plainteks. Harusnya sesuai dengan plainteks tadi, yaitu Wiki. Coba kita hitung. Bentuk biner hasil enkripsi tadi kita kumpulkan. W = 10100100; i = 10011010 ; k = 10011000 ; i = 10011010. Setelah itu kita hitung kembali menggunakan operasi XOR terhadap kunci 1110011. Hasilnya sebagai berikut:
Deskripsi XOR Chiper |
Tentu mudah. Soalnya masih dihitung manual. Seandainya diterapkan dalam program. Apakah masih mudah? InsyaAllah saya jelaskan di artikel yang lain. Saya berhasil membuat program enkripsi dan deskripsi menggunakan XOR chiper pada pemrograman java. Jika teman-teman berminat untuk tugas akhir atau skripsi, segera japri saya atau minta via email.
Post a Comment