Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
ANALISIS PEMBANGKIT KUNCI DENGAN TENT MAP, SESSION KEY DAN LINEAR CONGRUENTIAL GENERATOR PADA CIPHER ALIRAN Adriana Fanggidae1, Yulianto Triwahyuadi Polly2 1,2 Jurusan Ilmu Komputer, FST, Universitas Nusa Cendana Email:
[email protected],
[email protected]
ABSTRAK Cipher aliran merupakan salah satu algoritma simetris yang beroperasi pada mode bit tunggal. Pada proses enkripsi dan dekripsi-nya dibutuhkan panjang plainteks atau cipherteks yang sama dengan panjang kunci, sehingga digunakan teknik tent map dan session key untuk membangkitkan kunci baru sepanjang plainteks atau cipherteks. 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 atau cipherteks dikenakan operasi XOR dengan setiap bit kunci [2], untuk mendapatkan panjang bit kunci yang sama dengan panjang bit plainteks atau cipherteks dibutuhkan teknik pembangkitan kunci. Teknik pembangkitan kunci digunakan agar pengguna tidak perlu memasukkan kunci sepanjang plainteks atau cipherteks, teknik ini akan membangkitkan kunci baru sepanjang plainteks atau cipherteks 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
Keystream
ki
Keystream
ki
ci
pi Plainteks
Keysteam Generator
Enkripsi
Cipherteks
Dekripsi
pi Plainteks
Gambar 1. Konsep cipher aliran [2]. 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]: xk+1 = f(xk) (1)
283
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 dimana: ( )
{
(2)
Nilai awal xk atau x0 ditentukan dengan menggunakan teknik session keys [5]: x0 = (x01 + x02 + .. + x0t) mod 1 (3) ki = k1, k2, .., kn (4) dimana x0 ∈ [0,1], n = panjang kunci, t = banyaknya potongan kunci, di mana setiap potongan (B1, B2, .. , Bt) akan berisi (dengan syarat n mod t = 0), i = 1..n dan ki mewakili 8-bit dari setiap karakter kunci. (
)
(
)
(
(
)
) (
(
)
)
(
(
)
(
)
)
(5)
dimana, j = 1..t, p = 1..s, k1,1 .. k1,8 sampai dengan kn,1 ... kn,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 x01, x02, .. , x0t dapat dihitung menggunakan representasi biner: ( ( ) ( ) ( ) ( (
)
(
)
(
) )
(
(6)
) (
Hasil dari tent map dibawa ke bentuk karakter ASCII: ( )
)
) (7)
2.4. Pengacakan Posisi Kunci Linear congruential generator (LCG) merupakan pembangkit bilangan acak, dengan definisi [6]: ( ) dimana, xr = bilangan acak ke-r xr-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 atau cipherteks mod 4 = 0 maka m = panjang plainteks atau cipherteks else m = panjang plainteks atau cipherteks + (4 - (panjang plainteks atau cipherteks mod 4)). 2) b adalah bilangan prima yang lebih kecil dari m, dan b mod m = 1. 3) . 2.5. Korelasi Koefisien korelasi dari dua buah peubah acak diskrit yang masing-masing beranggotakan n elemen dihitung dengan rumus berikut [7]: ( ) (8) ( ) √
( )
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.
284
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 mulai
mulai
input kunci, tetapkan plainteks atau cipherteks, p=0,8, t=4
input kunci, tetapkan plainteks atau cipherteks, p=0,8, t=4
kunci < n ?
ya
kunci < n ?
tidak
ya
tidak
padding kunci sampai n byte
padding kunci sampai n byte bangkitkan kunci sepanjang plainteks atau cipherteks
bangkitkan kunci sepanjang plainteks atau cipherteks
acak posisi kunci
cipherteks = plainteks xor kunci baru atau plainteks = cipherteks xor kunci baru
cipherteks = plainteks xor kunci baru atau plainteks = cipherteks xor kunci baru
output plainteks atau cipherteks
output plainteks atau cipherteks
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.
Nama File
Abstrak 1 Abstrak 2 Abstrak 3 Abstrak 4 Abstrak 5 Rata-rata
Tabel 1. Pengujian pertama dengan kunci = “adriana” Sistem dengan Pengacakan Sistem dengan Pengacakan Kunci Kunci dan Posisi Korelasi Korelasi 0.00537715257569895 0.00109021365735034 0.0187458576792638 0.0281592991086581 0.0364348799302942 0.00109021365735034 0.00381167814782048 0.0052082751473097 0.0487690378057724 0.075527663751252 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 Cipherteks1 dan cipherteks2 berbeda
285
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 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 Cipherteks1 dan cipherteks2 berbeda Bagian tengah Cipherteks1 dan cipherteks2 berbeda Bagian depan Cipherteks1 dan cipherteks2 berbeda 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 Sistem dengan Pengacakan Pengacakan Kunci Kunci dan Posisi Korelasi Korelasi 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 Rata-rata 0.02285523499156010 0.03410332993945430 adriana >< Abstrak 1 0.00321483799076978 0.0199854419242333 adniana 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 adriana >< Abstrak 1 0.0529855974069327 0.0199637379053594 idriana 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
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4 [6] Jain, R. 2008. Random-Number Generation. (Online), (http://www.cse.wustl.edu/~jain/cse56708/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
Seminar Nasional Ilmu Komputer (SNIK 2015) - Semarang, 10 Oktober 2015 ISBN: 978-602-1034-19-4
288