ANALISIS PEMBANGKIT KUNCI DENGAN TENT MAP, SESSION KEY DAN LINEAR CONGRUENTIAL GENERATOR PADA CIPHER ALIRAN Adriana Fanggidae 1, Yulianto Triwahyuadi Polly 2 1,2 Jurusan Ilmu Komputer, FST, Universitas Nusa Cendana Email: 1 adrianailkom@gmail.com, 2 yulianto.triwahyuadi@gmail.com ABSTRAK Cipher aliran merupakan salah satu algoritma simetris yang beroperasi pada mode bit tunggal. Pada proses enkripsi dan dekripsi-nya dibutuhkan panjang plainteks yang sama dengan panjang kunci, sehingga digunakan teknik tent map dan session key untuk membangkitkan kunci baru sepanjang plainteks. Metode linear congruential generator digunakan untuk mengacak susunan kunci baru yang dihasilkan. Sistem yang dibangun ada dua, yaitu: sistem dengan teknik pengacakan kunci, dan sistem dengan teknik pengacakan kunci beserta posisinya. Hasil pengujian diperoleh: (1) korelasi antara plainteks dan cipherteks untuk kedua sistem sangat rendah, (2) kedua sistem sangat sensitif terhadap perubahan 1 karakter pada kunci dan (3) sistem kedua lebih sensitif terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama. Kata Kunci: Cipher Aliran, Tent Map, Session Key, Linear Congruential Generator 1. PENDAHULUAN Cipher aliran diperkenalkan pertama kali oleh Vernam, cipher aliran merupakan salah satu kriptografi simetris yang beroperasi pada mode bit tunggal [1]. Setiap bit plainteks dikenakan operasi XOR dengan setiap bit kunci [2], untuk mendapatkan panjang bit kunci yang sama dengan panjang bit plainteks dibutuhkan teknik pembangkitan kunci. Teknik pembangkitan kunci digunakan agar pengguna tidak perlu memasukkan kunci sepanjang plainteks, teknik ini akan membangkitkan kunci baru sepanjang plainteks berdasarkan kunci yang dimasukkan oleh pengguna. Chaos merupakan sistem dinamik yang menampilkan ketergantungan sensitif kondisi awal pada set invarian tertutup (lebih dari satu orbit) untuk menghasilkan nilai-nilai yang acak atau tidak beraturan [3]. Pemberian kondisi awal pada chaos dapat dilakukan dengan session key, yaitu mengubah bentuk karakter kunci ke dalam bentuk numerik. Fungsi chaos yang digunakan pada makalah ini adalah tent map. Selain penggunaan teknik pembangkitan kunci, digunakan juga teknik pengacakan posisi kunci yaitu linear congruential generator. Pengujian dilakukan terhadap tipe data teks, untuk dapat melihat seberapa baik metode yang digunakan. 2. METODE 2.1. Cipher Aliran Cipher aliran (stream cipher) merupakan algoritma kriptografi yang beroperasi pada pesan asli atau pesan tersandi dalam bentuk bit tunggal yang dienkripsi atau dekripsi bit per bit [1]. Penggambaran cipher aliran dapat dilihat pada Gambar 1. Keysteam Generator Keysteam Generator Keystream ki Keystream ki pi Plainteks ci Enkripsi Cipherteks Dekripsi Gambar 1. Konsep cipher aliran [2]. pi Plainteks 2.2. Teknik Padding Teknik padding merupakan teknik untuk menambahkan karakter kunci yang terakhir dengan pola yang teratur agar panjangnya sama dengan ukuran kunci yang ditetapkan [2]. 2.3. Pengacakan Kunci Tent map yang merupakan salah satu fungsi dari chaos yang berperilaku acak, termasuk dalam pemetaan satu dimensi artinya sistem sederhana yang mampu melakukan gerak tidak beraturan [4]: x k+1 = f(x k ) (1) 283
dimana: ( ) { (2) Nilai awal x k atau x 0 ditentukan dengan menggunakan teknik session keys [5]: x 0 = (x 01 + x 02 +.. + x 0t ) mod 1 (3) k i = k 1, k 2,.., k n (4) dimana x 0 [0,1], n = panjang kunci, t = banyaknya potongan kunci, di mana setiap potongan (B 1, B 2,.., B t ) akan berisi (dengan syarat n mod t = 0), i = 1..n dan k i mewakili 8-bit dari setiap karakter kunci. ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) dimana, j = 1..t, p = 1..s, k 1,1.. k 1,8 sampai dengan k n,1... k n,8 merupakan nilai biner (0 atau 1) dari setiap karakter kunci, karena setiap karakter kunci diwakili oleh 8-bit biner maka l = t * 8, maka nilai x 01, x 02,.., x 0t dapat dihitung menggunakan representasi biner: ( ( ) ( ) ( ) (6) ( ) ( ) ( ) ( ) ( ) ( ) ) Hasil dari tent map dibawa ke bentuk karakter ASCII: ( ) (5) (7) 2.4. Pengacakan Posisi Kunci Linear congruential generator (LCG) merupakan pembangkit bilangan acak, dengan definisi [6]: ( ) dimana, x r = bilangan acak ke-r x r-1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus pembagi Bilangan acak yang dibangkitkan adalah sepanjang kunci yang dibangkitkan, untuk mendapatkan LCG yang tidak berulang harus diperhatikan syarat-syarat berikut. 1) Jika panjang plainteks mod 4 = 0 maka m = panjang plainteks else m = panjang plainteks + (4 - (panjang plainteks mod 4)). 2) b adalah bilangan prima yang lebih kecil dari m, dan b mod m = 1. 3). 2.5. Koefisien korelasi dari dua buah peubah acak diskrit yang masing-masing beranggotakan n elemen dihitung dengan rumus berikut [7]: ( ) ( ) ( ) Interpretasi koefisien korelasi sebagai berikut [8]: 0,00-0,199 = sangat rendah 0,20-0,399 = rendah 0,40-0,599 = sedang 0,60-0,799 = kuat 0,80-1,000 = sangat kuat 3. HASIL DAN PEMBAHASAN Sistem yang dibangun ada 2 yaitu sistem dengan pengacakan kunci dan sistem dengan pengacakan kunci dan posisi. Flowchart kedua sistem dapat dilihat pada Gambar 2. (8) 284
mulai mulai input kunci, tetapkan plainteks, p=0,8, t=4 input kunci, tetapkan plainteks, p=0,8, t=4 tidak kunci < n? ya padding kunci sampai n byte bangkitkan kunci sepanjang plainteks tidak kunci < n? ya padding kunci sampai n byte bangkitkan kunci sepanjang plainteks acak posisi kunci cipherteks = plainteks atau plainteks = cipherteks output plainteks cipherteks = plainteks atau plainteks = cipherteks output plainteks selesai selesai (a) (b) Gambar 2. Flowchart sistem secara umum: (a) sistem dengan pengacakan kunci (b) sistem dengan pengacakan kunci dan posisi. Pada pengujian digunakan beberapa parameter yaitu nilai p = 0,8, t = 4 dan n = 16. Pengujian dilakukan dalam 3 macam, yaitu: 1) Pengujian pertama, kedua sistem diberi plainteks dan kunci yang sama kemudian dihitung korelasi antara plainteks dan cipherteks. Hasil pengujian pertama dapat dilihat pada Tabel 1. Tabel 1. Pengujian pertama dengan kunci = adriana Nama File Sistem dengan Pengacakan Kunci Sistem dengan Pengacakan Kunci dan Posisi Abstrak 1 0.00537715257569895 0.00109021365735034 Abstrak 2 0.0187458576792638 0.0281592991086581 Abstrak 3 0.0364348799302942 0.00109021365735034 Abstrak 4 0.00381167814782048 0.0052082751473097 Abstrak 5 0.0487690378057724 0.075527663751252 Rata-rata 0.02262772122777000 0.02221513306438410 2) Pengujian kedua dilakukan perbandingan antara cipherteks1 (hasil enkripsi plainteks1) dengan cipherteks2 (hasil enkripsi plainteks2). Ada 3 bentuk plainteks2, yaitu (1) pada bagian akhir plainteks1 disisipi beberapa kata, (2) pada bagian tengah plainteks1 disisipi beberapa kata dan (3) pada bagian depan plainteks1 disisipi beberapa kata. Hasil pengujian kedua dapat dilihat pada Tabel 2 dan Tabel 3. Tabel 2. Pengujian kedua dengan kunci = adriana untuk sistem dengan pengacakan kunci Posisi Penyisipan Beberapa Perbandingan Hasil Enkripsi Kata pada plainteks 1 Bagian akhir Cipherteks1 dan cipherteks2 mempunyai karakter yang sama mulai dari karakter pertama sampai karakter terakhir cipherteks1 Bagian tengah Cipherteks1 dan cipherteks2 mempunyai karakter yang sama mulai dari karakter pertama sampai karakter sebelum terjadi penyisipan Bagian depan 285
Tabel 3. Pengujian kedua dengan kunci = adriana untuk sistem dengan pengacakan kunci dan posisi Posisi Penyisipan Beberapa Perbandingan Hasil Enkripsi Kata pada Plainteks 1 Bagian akhir Bagian tengah Bagian depan 3) Pengujian ketiga dilakukan perhitungan korelasi antara cipherteks1 (hasil enkripsi plainteks1 dengan kunci = adriana ) dengan cipherteks2 (hasil enkripsi plainteks1 dengan perubahan kunci 1 karakter). Hasil pengujian ketiga dapat dilihat pada Tabel 4. Tabel 4. Pengujian ketiga terhadap 5 dokumen abstrak untuk perubahan 1 karakter kunci Kunci Nama File Sistem dengan Pengacakan Kunci Sistem dengan Pengacakan Kunci dan Posisi adriana >< Abstrak 1 0.01802734865899 0.0596914763301505 adriani Abstrak 2 0.0222578959014164 0.0182723680583149 Abstrak 3 0.036813426307898 0.0145889609203408 Abstrak 4 0.0122783591749636 0.0182723680583149 Abstrak 5 0.0248991449145327 0.0596914763301505 adriana >< adniana adriana >< idriana Rata-rata 0.02285523499156010 0.03410332993945430 Abstrak 1 0.00321483799076978 0.0199854419242333 Abstrak 2 0.0381460656895068 0.0166966780844937 Abstrak 3 0.0224073233648534 0.0674254067988369 Abstrak 4 0.0190385981868258 0.0166966780844937 Abstrak 5 0.0272719532894967 0.0199854419242333 Rata-rata 0.02201575570429050 0.02815792936325820 Abstrak 1 0.0529855974069327 0.0199637379053594 Abstrak 2 0.00400708003368895 0.0521657722480058 Abstrak 3 0.00879644986440949 0.00187670421809576 Abstrak 4 0.0651611175171047 0.0521657722480058 Abstrak 5 0.0251237145249897 0.0199637379053594 Rata-rata 0.03121479186942510 0.02922714490496520 Rata-rata 0.0253619275217586 0.0304961347358926 Pada pengujian pertama diperoleh bahwa kedua sistem memiliki nilai korelasi rata-rata, yaitu: 0,02262772122777000 dan 0,02221513306438410 yang menunjukkan korelasi antara plainteks dan cipherteks yang dihasilkan sangat rendah. Pengujian kedua menunjukkan sistem kedua memberikan hasil enkripsi yang lebih teracak dibandingkan dengan sistem pertama. Pengujian ketiga dengan perubahan 1 karakter pada kunci diperoleh korelasi untuk kedua sistem, yaitu: 0,0253619275217586 dan 0,0304961347358926 yang menunjukkan korelasi antara kedua cipherteks yang dihasilkan sangat rendah. 4. SIMPULAN Penggunaan teknik pengacakan kunci dengan tent map dan session key dapat digunakan untuk pengamanan data, akan tetapi teknik ini sangat rentan terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama. Penggunaan teknik pengacakan kunci dengan tent map, session key dan linear congruential generator dapat digunakan untuk pengamanan data, karena sangat sensitif terhadap perubahan 1 karakter pada kunci dan juga sensitif terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama. 5. REFERENSI [1] Nathasia, N. D. dan Wicaksono, A. E. 2011. Penerapan Teknik Kriptografi Stream-Cipher untuk Pengamanan Basis Data. Jurnal Basis Data, ICT Research Center UNAS. Vol. 6, No. 1, Mei 2011. [2] Munir, R. 2006. Kriptografi. Informatika, Bandung. [3] Wiggnis, S. 2003. Introduction to Applied Nonlinear Dynamical Systems and Chaos. (Online), (http://link.springer.com/book/10.1007%2fb97481, diakses 17 Maret 2015). [4] Klages, R. 2008. Introduction to Dynamical Systems. (Online), (www.maths.qmul.ac.uk/~klages/mas424/lnotes_ds2007f.pdf, diakses 17 Maret 2015). [5] Pareek, K., Patidar, V., dan Sud, K. K. 2006. Image encryption using chaotic logistic map. Image and Vision Computing. Vol 24, pp 926-934, doi: 10.1016/j.imavis.2006.02.021. 286
[6] Jain, R. 2008. Random-Number Generation. (Online), (http://www.cse.wustl.edu/~jain/cse567-08/ftp/k_26rng.pdf, diakses 17 Maret 2015). [7] Hongmei, T., Liying, H., Yu, H., dan Xia, W. 2010. An Improved Compound Image Encryption Scheme. Proceeding of 2010 International Conference on Computer and Communication Technologies in Agriculture Engineering. [8] Sugiyono. 2007. Metode Penelitian Administrasi. Alfabeta, Bandung. 287
288