Perancangan dan Implementasi Algoritma Kriptografi Block Cipher Berbasis pada Pola Balok dalam Permainan Tetris dengan Menggunakan Linear Congruential Generator dan Transposisi Silang
Artikel Ilmiah
Peneliti: Ferry Prima Anggiyatna (672008064) Magdalena A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen SatyaWacana Salatiga Mei 2016
Perancangan dan Implementasi Algoritma Kriptografi Block Cipher Berbasis pada Pola Balok dalam Permainan Tetris dengan Menggunakan Linear Congruential Generator dan Transposisi Silang
Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh gelar Sarjana Komputer
Oleh: Ferry Prima Anggiyatna 672008064
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Mei 2016
i
ii
iii
iv
v
vi
.
vii
1.
Pendahuluan
Keamanan merupakan hal yang penting dalam melakukan pertukaran informasi dan komunikasi yang dilakukan melalui internet maupun perangkat digital. Ancaman yang terjadi sering dilakukan oleh orang-orang yang tidak bertanggung jawab, terutama pencurian data, penyadapan, dan pembajakan. Dalam pertukaran informasi dan komunikasi terdapat sebuah metode pengamanan data yang dikenal dengan metode kriptografi. Kriptografi merupakan salah satu metode keamanan dalam mengamankan data. Kriptografi bekerja dengan cara mengubah data ke dalam bentuk data sandi sehingga data tersebut tidak dapat dikenali. Banyak sekali metode kriptografi yang sudah dipecahkan oleh Kriptanalisis (Criptanalisys) dan kriptografi membutuhkan pembaharuan, hal ini dikarenakan perkembangan teknologi yang semakin maju yang membuat kriptografi tidak bisa digunakan selamanya.. Setiap pertukaran data pastinya ada saja orang yang tidak bertanggung jawab untuk mencuri data yang sangat penting, seperti pada kasus pencurian data pada Sony PlayStation Network, sebanyak 77 juta akun dicuri oleh orang yang belum diketahui sampai saat ini. Kasus seorang kasir gerai kopi membobol ratusan data kartu kredit [5]. Kasus penyadapan terhadap pengiriman pesan dan telepon yang dapat dilakukan oleh siapa saja, kasus yang terjadi saat Australia menyadap lalu lintas jaringan seluler di Indonesia [1]. Dalam penelitian ini merancang block cipher yang berbasis pada pola balok dalam permainan Tetris dan dimodifikasi dengan Linear Congruential Generator sebagai pembangkit bilangan acak untuk plainteksnya sebelum proses enkripsi, sedangkan kunci menggunakan transposisi silang. Setiap proses enkripsi pada blok kunci, kunci dibagi dua dan disilangkan sebagai pengacakan pada kunci. Tujuan modifikasi ini adalah untuk memperbaharui dan menambah variasi dari teknik kriptografi block cipher yang sudah ada. Rancangan kriptografi yang baru ini diuji dengan nilai korelasi dari plainteks dengan hasil cipherteks pada setiap putaran enkripsi. Dengan membandingkan nilai korelasi dari plainteks dengan hasil cipherteks pada setiap putaran, apakah hasil korelasi yang dihasilkan mempunyai nilai kedekatan yang lemah atau kuat. 2.
Tinjauan Pustaka
Penelitian yang pertama berjudul “Analisis Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time Pad (OTP) Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG)”. Dalam penelitian ini membahas tentang enkripsi dengan menggunakan algoritma One Time Pad (OTP), dimana panjang kunci yang akan dienkripsi sama dengan panjang pesan yang akan dienkripsi. Untuk menghasilkan kunci dengan bilangan yang acak dibangkitkan dengan metode Linear Congruential Generator [2]. Pada penelitian yang kedua dengan judul “Metoda Vigenere Chiper Double Columnar Transposition Sebagai Modifikasi Teknik Kriptografi Dalam Pembentukan Kunci”. Dalam penelitian ini membahas tentang vigenere cipher, Caesar cipher dan double columnar transposition cipher. Dengan menggunakan 1
Caesar cipher dan double columnar transposition cipher untuk pembentukan kunci yang akan di enkripsi dengan metode vigenere cipher, kunci masukan dari pengguna akan dienkripsi menggunakan caesar cipher dengan nilai posisi karakter sebagai kunci enkripsi. Kunci akhir (final key) didapatkan dengan menyandikan pembentukan kunci baru dari vigenere cipher dengan memanfaatkan metode double columnar transposition cipher. Sehingga penyandian informasi dari pengguna menggunakan metode vigenere cipher dengan final key sebagai kunci enkripsi [10]. Pada penelitian yang ketiga sebagai acuan pada penelitian ini adalah “Perancangan dan Implementasi Algoritma Kriptografi Cipher Block Berbasis pada Bentuk Piramida dan Linear Congruential Generator”. Penelitian ini membahas tentang perancangan algoritma kriptografi block cipher, dengan proses enkripsi mengacak rangkaian biner plainteks ke dalam matriks 16×8 (128 bit) dengan menggunakan pola seperti bentuk piramida sebagai pola pengambilan, pada bilangan biner plainteks terhadap kunci yang telah dilakukan proses pengacakan dengan pembangkit kunci Linear Congruential Generator [6]. Selanjutnya akan dibahas dasar-dasar teori yang digunakan sebagai dasar untuk merancang kriptografi dalam penelitian ini. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [8]. Dalam kriptografi ada dua proses, yaitu proses enkripsi dan proses dekripsi. Enkripsi adalah proses menyandikan plainteks menjadi chiperteks. Dekripsi adalah proses mengembalikan chiperteks menjadi plainteks [8]. Pada penelitian ini menggunakan teknik kriptografi block cipher. Block cipher merupakan kriptografi simetris yang mengenkripsi pesan dengan cara merangkai bit-bit plainteks yang kemudian dibagi menjadi blok dengan panjang yang sama, pengirim dan penerima pesan sudah berbagi kunci yang sama [3], panjang block bit bisa mencakup 64 bit, 128 bit, dan bahkan bisa 256 bit. Proses enkripsi pada block cipher mengacak blok dari bit plainteks yang masuk yang menghasilkan blok bit cipherteks. Pada proses dekripsi berkebalikan dari proses enkripsi. Skema enkripsi dan dekripsi digambarkan pada Gambar 1. Pada Gambar 1 dijelaskan proses enkripsi-dekripsi secara umum, proses enkripsi plainteks ditunjukkan panah berwarna merah. Langkah pertama memasukkan plainteks yang selajutnya diproses acak-ambil yang terjadi pada P1, P2, P3, P4. P adalah jumlah proses putaran ekripsi untuk mendapatkan cipherteks dan C adalah hasil cipherteks di setiap putaran. Setelah proses bit acak-ambil plainteks di-XOR kan dengan key yang akan menghasilkan cipherteks. Tanda panah biru menjelaskan proses dekripsi yang berkebalikan dengan enkripsi dengan proses yang sama.
2
Gambar 1. Proses Enkripsi-Dekripsi pada Block Cipher Secara Umum
Misalkan blok plainteks (P) yang berukuran n bit P p1 , p 2 , p n Blok cipherteks (C) maka blok C adalah C c1 , c2 ,, cn Kunci (K) maka kunci adalah K k1 , k 2 , k n Sehingga proses Enkripsi adalah Ek P C Proses dekripsi adalah Dk C P
(1) (2) (3) (4) (5)
Perancangan kriptografi baru ini menggunakan pola balok pada permainan Tetris. Tetris adalah permainan teka-teki bangunan yang pertama kalinya didesain oleh Alexey Pajitnov pada bulan Juni 1985, saat itu, Alexey Pajitnov masih bekerja di Pusat Komputer Dorodnicyn di Akademi Sains Uni Soviet di Moskow, nama Tetris sendiri diambil dari bahasa numerik yunani, yaitu tetra yang artinya empat. Empat sendiri adalah jumah susunan balok yang bisa diubah-ubah ke dalam berbagai bentuk untuk selanjutnya disusun oleh si pemain untuk dapat saling terkunci. Pada dasarnya, ada 7 jenis formasi balok yang ada didalam permainan Tetris, yaitu balok I, J, L, O, S, T, dan Z yang ditunjukkan pada Gambar 2 [4].
Gambar 2. Pola Dasar Formasi Balok Pada Permainan Tetris
Suatu kriptografi dapat disebut sebagai teknik, harus melalui uji kriptosistem terlebih dahulu yaitu dengan diuji dengan metode Stinson. Definisi 1 [11] Sebuah sistem kriptografi harus memenuhi lima-tuple (Five-tuple) (P, C, K, E , D) dengan kondisi :
3
1. P adalah himpunan berhingga dari plainteks, 2. C adalah himpunan berhingga dari cipherteks, 3. K merupakan ruang kunci (keyspace), adalah himpunan berhingga dari kunci, 4. Untuk setiap k K, terdapat aturan enkripsi ek E dan berkorespodensi dengan aturan dekripsi dk D. Setiap ek : P C dan dk : C P adalah fungsi sedemikian hingga dk (ek (x))= x untuk setiap plainteks x P. Linear Congruential Generator (LCG) adalah salah satu algoritma pseudo random number yang paling tua. Algoritma ini diciptakan oleh D. H. Lehmer pada tahun 1951. Teori dari algoritma ini mudah dipahami dan dapat diimplementasikan secara cepat [2]. LCG dapat didefinisikan dengan rumusan berikut : 𝑿𝒏 = (a.𝑿𝒏−𝟏 + b) mod m
(6)
𝑋𝑛 = bilangan acak ke-n dari deretnya 𝑋𝑛−1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus (batas maksimum bilangan acak) (a, b, dan m semuanya konstanta LCG) Salah satu teknik enkripsi yang digunakan dalam penelitian ini adalah permutasi atau sering juga disebut transposisi. Teknik ini secara umum memindahkan posisi karakter tanpa merubah jumlah karakter yang ada [9]. Dalam penelitian ini digunakan untuk memindahkan posisi bit dalam block cipher. Dengan membagi blok kunci dan ditransposisikan menjadi beberapa bagian blok yang akan di-XOR kan dengan plainteks selama proses enkripsi yang terjadi secara berulang. Proses transposisi secara umum pada Gambar 3 menunjukan, blok karakter atau blok bit dibagi dibagi menjadi beberapa bagian dan ditransposisikan dengan tidak merubah jumlah blok bit atau blok karakter. Skema dari transposisi silang ditunjukkan pada Gambar 3. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
Gambar 3. Skema Transposisi Silang
4
Untuk menganalisis rancangan kriptografi baru ini diperlukan uji kriptografi menggunakan korelasi yang merupakan suatu teknik statistik yang dipergunakan untuk mengukur kekuatan hubungan dua nilai dan juga untuk mengetahui bentuk hubungan antara dua nilai tersebut dengan hasil yang sifatnya kuantitatif. Kekuatan hubungan antara dua variabel biasanya disebut dengan koefisien korelasi dan dilambangkan dengan symbol “r”. Nilai koefisien r akan selalu berada diantara -1 sampai +1 sehingga diperoleh Persamaan 7 [7]. (7) 1 r 1 Merujuk pada Persamaan (7) secara matematis nilai r diperoleh dari jumlah nilai selisih perkalian antara x dan y dengan hasil perkalian jumlah total x dan y dibagi dengan hasil akar dari selisih untuk perkalian jumlah x kuadrat dengan kuadrat pangkat dua untuk jumlah total x dengan selisih jumlah y kuadrat dengan kuadrat pangkat dua untuk jumlah total y dimana x sebagai plainteks dan y sebagai cipherteks sehingga dapat diperoleh persamaan 8 [7].
(8)
3.
Metode Penelitian dan Perancangan Sistem
Penelitian yang dilakukan diselesaikan melalui beberapa tahapan penelitian yang keseluruhan terbagi dalam lima tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Implementasi sistem, (4) Pengujian sistem dan analisis hasil pengujian, dan (5) penulisan laporan.
Gambar 4. Tahapan penelitian
Langkah 1: Identifikasi masalah dan studi literatur, yaitu mengidentifikasikan masalah-masalah yang akan dibahas, serta mendapatkan data dan literatur yang terkait dengan perancangan dan implementasi algoritma
5
kriptografi block cipher berbasis pada pola balok dalam permainan Tetris dengan manggunakan Linear Coungruential Generator dan transposisi silang. Langkah 2: Perancangan sistem, yaitu langkah dimana membuat bagan proses enkripsi dan dekripsi, juga membuat gambaran umum mengenai pembuatan teknik kriptografi; Langkah 3: Implementasi sistem, yaitu sistem yang telah dirancang akan diimplementasikan ke dalam program; Langkah 4: Pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap sistem yang dibangun dengan menggunakan five-tuple Stinson salah satunya. Melakukan analisis statistik berdasarkan nilai korelasi dari setiap plainteks awal dan cipherteks dari semua hasil enkripsi pada setiap proses putaran; Langkah 5: Penulisan laporan dari hasil penelitian, yaitu mendokumentasikan proses penelitian yang telah dilakukan dari awal hingga akhir ke dalam sebuah tulisan, yang akan dijadikan laporan hasil penelitian. Perancangan algoritma kriptografi block cipher ini menggunakan ASCII (American Standard Code of Information Interchange) untuk mengubah setiap karakter dari plainteks dan kunci yang berupa teks menjadi rangkaian biner. Plainteks diacak terlebih dahulu menggunakan Linear Congruential Generator (LCG) dan pada kunci menggunakan teknik kriptografi transposisi, dimana kunci dibagi menjadi dua bagian blok dalam rangkaian bit biner yang terjadi selama proses enkripsi dan dekripsi yang terjadi sebanyak 4 proses. Plainteks menggunakan LCG hanya diproses di awal saja sebelum masuk ke rangkaian biner dan putaran plainteks juga sebanyak 4 putaran. Hasil rangkaian biner pada plainteks dan kunci dimasukan ke dalam block cipher 256-bit untuk ditransposisikan ke dalam pola balok dalam permainan Tetris dengan matrix 16x16, setiap putaran mempunyai rangkaian pola balok Tetris yang berbeda-beda. Pada proses ini terjadi bit masuk dan bit ambil pada plainteks dan kunci yang akan dilakukan operasi XOR untuk mendapatkan cipherteks. Pola pemasukan bit biner plainteks putaran ke-1 ditunjukkan pada Gambar 5.
P14
P21
P22
P29
P32
P26
P25
P20
P46
P53
P54
P61
P64
P58
P57
P15
P13
P23
P30
P31
P27
P17
P19
P47
P45
P55
P62
P63
P59
P49
P52 P51
P16
P1
P24
P5
P8
P28
P9
P18
P48
P33
P56
P37
P40
P60
P41
P50
P34
P35
P36
P38
P39
P42
P43
P44
P2
P3
P4
P6
P7
P10
P11
P12
P88
P87
P86
P93
P96
P90
P91
P92 P120 P119 P118 P125 P128 P122 P123 P124
P73
P76
P85
P94
P95
P89
P77
P80 P105 P108 P117 P126 P127 P121 P109 P112
P74
P75
P81
P82
P83
P84
P78
P79 P106 P107 P113 P114 P115 P116 P110 P111
P65
P66
P67
P68
P69
P70
P71
P72
P97
P98
P99 P100 P101 P102 P103 P104
P154 P155 P156 P133 P137 P157 P158 P159 P186 P187 P188 P165 P169 P192 P191 P190 P153 P147 P148 P134 P138 P149 P150 P160 P185 P179 P180 P166 P170 P181 P182 P189 P145 P146 P129 P135 P139 P141 P151 P152 P177 P178 P161 P167 P171 P173 P183 P184 P132 P131 P130 P136 P140 P142 P143 P144 P164 P163 P162 P168 P172 P174 P175 P176 P193 P220 P219 P218 P224 P223 P222 P197 P225 P252 P251 P250 P256 P255 P254 P229 P194 P210 P217 P204 P208 P221 P216 P198 P226 P242 P249 P236 P240 P253 P248 P230 P195 P211 P209 P203 P207 P213 P215 P199 P227 P243 P241 P235 P239 P245 P247 P231 P196 P212 P201 P202 P206 P205 P214 P200 P228 P244 P233 P234 P238 P237 P246 P232
Gambar 5. Pola Pemasukan Bit Biner Plainteks Putaran Ke-1
6
Pada Gambar 5 adalah alur pemasukan bit biner ke dalam balok-balok Tetris sebanyak 256 bit. Alur pemasukan bit biner dijabarkan sebagai berikut.
Setelah bit-bit dimasukkan ke dalam rangkaian biner, dilakukan proses pengambilan bit yang dijabarkan sebagai berikut.
K26 K27 K28
K5
K9
K32 K31 K30 K58 K59 K60 K37 K41 K64 K63 K62
K25 K17
K4
K6
K10
K16 K24 K29 K57 K49 K36 K38 K42 K48 K56 K61
K19 K18
K3
K7
K11
K15 K23 K22 K51 K50 K35 K39 K43 K47 K55 K54
K20
K2
K8
K12
K14 K13 K21 K52 K33 K34 K40 K44 K46 K45 K53
K77 K89 K90 K91
K91
K93 K96 K81 K109 K121 K122 K123 K124 K125 K128 K113
K78 K85 K86 K87
K88
K94 K95 K82 K110 K117 K118 K119 K120 K126 K127 K114
K79 K70 K71 K72
K76
K75 K74 K83 K111 K102 K103 K104 K108 K107 K106 K115
K80 K69 K65 K66
K67
K68 K73 K84 K112 K101 K97 K98 K99 K100 K105 K116
K1
K156 K155 K154 K157 K158 K159 K160 K144 K188 K187 K186 K189 K190 K191 K192 K176 K149 K152 K153 K147 K148 K137 K141 K143 K181 K184 K185 K179 K180 K169 K173 K175 K150 K151 K145 K146 K139 K138 K133 K142 K182 K183 K177 K178 K171 K170 K165 K174 K129 K130 K131 K132 K140 K134 K135 K136 K161 K162 K163 K164 K172 K166 K167 K168 K220 K219 K218 K213 K224 K223 K222 K209 K252 K251 K250 K245 K256 K255 K254 K241 K206 K217 K214 K215 K216 K221 K211 K210 K238 K249 K246 K247 K248 K253 K243 K242 K207 K205 K203 K204 K199 K200 K212 K193 K239 K237 K235 K236 K231 K232 K244 K225 K208 K201 K202 K197 K198 K196 K195 K194 K240 K233 K234 K229 K230 K228 K227 K226
Gambar 6. Pola Pemasukan Bit Biner Kunci Putaran Ke-1
Pola alur pemasukan kunci pada matriks 16x16 putaran ke-1 ditunjukkan pada Gambar 6. Berikut adalah penjabaran dari urutan pemasukan rangkaian biner pada Gambar 6.
7
Bit-bit yang telah dimasukkan ke dalam rangkaian biner, dilakukan proses pengambilan bit yang dijabarkan sebagai berikut.
Proses enkripsi pada perancangan algoritma kriptografi block cipher berbasis pada pola balok dalam permainan Tetris menggunakan linear congruential generator sebagai nilai acak plainteks dan transposisi silang pada kunci yang ditunjukkan pada Gambar 7. LCG
Transposisi Silang
Plainteks
Kunci
P1
K1
Transposisi Silang
P2
K2
Transposisi Silang
P3
K3
Transposisi Silang
P4
K4
Cipherteks
Gambar 7. Bagan Rancangan Proses Enkripsi
Pada bagan proses enkripsi menjelaskan plainteks yang berupa ASCII diacak dengan Linear Congcoruential Generator (LCG) tujuannya adalah untuk 8
mendapatkan nilai acak yang baik. Hasil nilai acak tersebut dikonversikan ke dalam bentuk bilangan biner, yang akan dimasukkan ke dalam rangkaian block cipher 256 bit. Masuknya biner kedalam block cipher dengan matrix 16x16 sesuai dengan pola masuk dan untuk ambil biner sesuai dengan pola ambil, dan didapatkanlah P1. Berbeda dengan plainteks, pada kunci yang berupa ASCII dikenakan proses transposisi silang untuk menghasilkan kunci yang baik pada setiap proses. Pada kunci dibagi menjadi dua bagian dengan nilai 128 bit masingmasih pada L dan R selama proses enkripsi dan disilangkan pada setiap proses kunci. Pada masukan dan ambilian biner sesuai dengan pola masuk dan pola ambil. Pada Gambar 8 adalah bagan pada perancangan dan implementasi algoritma kriptografi cipher block berbasis pola balok dalam permainan Tetris. Bagan proses dekripsi merupakan kebalikan dari proses enkripsi dengan menggunakan algoritma kriptografi simetris, dimana menggunakan kunci yang sama pada proses enkripsi
Cipherteks
K4
Transposisi Silang
P4
K3
Transposisi Silang
P3
K2
Transposisi Silang SDSilang
P2
K1
Transposisi Silang
Plainteks
Gambar 8. Bagan Rancangan Proses Dekripsi
4.
Hasil dan Pembahasan
Alur proses enkripsi dan dekripsi telah dijelaskan di pembahasan sebelumnya yaitu pada bagian metode perancangan sistem. Proses yang lebih lengkap mengenai alur enkripsi dan dekripsi akan dijabarkan pada Gambar 9 dan Gambar 10.
9
LCG
Plainteks
Kunci
Ascii
Ascii
Bit
Proses P1
Proses K1
Bit Masuk
Bit Masuk
Proses Pengambilan
Proses Pengambilan
P1
K1
Transposisi Silang
Bit
Transposisi Silang
C1
C3
K3
Proses P4
Proses K4
Bit Masuk
Bit Masuk
Proses Pengambilan
Proses Pengambilan
P4
K4
Transposisi Silang
Ciphertek s
Gambar 9. Bagan Proses Enkripsi
Pada Gambar 9 menggambarkan proses enkripsi, secara keseluruhan proses enkripsi yang diputar sebanyak empat putaran, yang di dalam setiap putarannya terdiri dari dua proses yaitu, proses untuk pembentukan plainteks dan, proses untuk pembentukan kunci. Plainteks diubah ke dalam bentuk bit sesuai dengan tabel ASCII yang telah diacak dengan Linear Congruential Generator, dan rangkaian bit dimasukkan ke matriks 16x16 sesuai dengan pola. Penggunaan bilangan acak semu untuk pembangkitan plainteks dimaksudkan untuk 10
menghasilkan nilai acak yang tidak mudah untuk diprediksi, sehingga didapatkan suatu nilai keacakan yang cukup baik. Pembangkit bilangan acak didapatkan dari, nilai rata-rata desimal bilangan kunci dikalikan dengan nilai konstanta m, nilai tersebutlah yang akan digunakan dalam rumus pembangkit bilangan acak. Bit-bit hasil dari pembangkitan bilangan acak inilah yang akan digunakan di dalam proses 1 pada bagian plainteks di putaran pertama. Nilai-nilai konstanta Linear Congruential Gonerator (LCG) yang digunakan untuk pembangkitan kunci pada perancangan algoritma ini adalah, nilai konstanta a = 106, b = 1283, dan m = 6075. Pemilihan nilai konstanta yang buruk dapat menghasilkan keacakan yang tidak baik, dengan memilih salah satu nilai yang baik dapat menghasilkan keacakan bilangan semu yang baik [8]. Pengambilan bit menggunakan pola balok dalam permainan Tetris dan hasil dalam pengambilan rangkaian bit biner menjadi P1. Dalam proses pembentukan kunci pun sama, namun kunci menggunakan transposisi pada setiap putaran yang terjadi. Letak perbedaannya ada di pola yang digunakan, dan rangkaian biner dari kunci setelah melalui proses pengambilan bit biner menjadi K1. P1 di-XOR dengan K1 sehingga mendapatkan C1 yang adalah hasil dari putaran pertama. Pada putaran ke-2 C1 menjadi P2 dan LCG tidak diproses lagi, LCG hanya diproses sebelum dimasukkan ke dalam rangkaian bit P1. Untuk K1 menjadi K2 diproses dengan transposisi silang, kunci dibagi menjadi dua dan disilangkan dengan transposisi untuk menghasilkan K2. Pada putaran ke-3 sampai ke-4, juga berlangsung proses yang sama, yang membedakan adalah dari setiap putaran enkripsi menggunakan pola yang berbeda pada setiap putaran, baik dari putaran ke-1 sampai putaran ke-4. Hasil dari putaran ke-4 adalah cipherteks. Pada kunci menggunakan fungsi transposisi silang, dengan membagi kunci menjadi dua bagian yaitu, kanan dan kiri dan yang akan ditransposisikan secara silang. Proses ini terjadi pada setiap putaran ke-1, ke-2, ke-3, dan ke-4. Dalam penelitian ini menggunakan transposisi ditujukan untuk menambah kekuatan kunci dari rancangan yang baru ini, bit berjumlah 256 bit dalam matrix 16x16 sama dengan plainteks, dibagi menjadi 128 bit untuk L (kiri) dan 128 bit untuk R (kanan). Gambar 10 menunjukkan bahwa sebelum kunci yang akan ditransposisikan secara silang, bit biner yang telah diproses dalam bit masuk dibagi menjadi dua bagian blok yaitu, L (kiri) dan R (kanan). L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
Gambar 10. Kunci L Dan R
11
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
Proses selanjutnya adalah perpindahan blok dari L ke R, begitu juga sebaliknya dari R ke L dengan kondisi perpindahannya adalah posisi kiri adalah ganjil dan posisi kanan adalah genap, maksudnya disini adalah untuk proses pembentukan transposisi silang, seperti pada Gambar 11. L1 L1 L1 L1 L1 L1 L1 L1 L2 L2 L3 L3 L3 L3 L3 L3 L3 L3 L4 L4 L5 L5 L5 L5 L5 L5 L5 L5 L6 L6 L7 L7 L7 L7 L7 L7 L7 L7 L8 L8 L9 L9 L9 L9 L9 L9 L9 L9 L10 L10 L11 L11 L11 L11 L11 L11 L11 L11 L12 L12 L13 L13 L13 L13 L13 L13 L13 L13 L14 L14 L15 L15 L15 L15 L15 L15 L15 L15 L16 L16 R1 R1 R1 R1 R1 R1 R1 R1 R2 R2 R3 R3 R3 R3 R3 R3 R3 R3 R4 R4 R5 R5 R5 R5 R5 R5 R5 R5 R6 R6 R7 R7 R7 R7 R7 R7 R7 R7 R8 R8 R9 R9 R9 R9 R9 R9 R9 R9 R10 R10 R11 R11 R11 R11 R11 R11 R11 R11 R12 R12 R13 R13 R13 R13 R13 R13 R13 R13 R14 R14 R15 R15 R15 R15 R15 R15 R15 R15 R16 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
L2 L4 L6 L8 L10 L12 L14 L16 R2 R4 R6 R8 R10 R12 R14 R16
Gambar 11. Perpindahan Blok Dari L Ke R Dan R Ke L
Setelah perpindahan ganjil dan genap, akan diproses ambil bit biner. Proses pengambilan bit biner sesuai dengan alur ambil kunci, seperti pada Gambar 12 yang menunjukkan ambil bit. Hasil ambil bit akan dipindahkan, dari kiri L dan R (ganjil) berpindah ke kanan dan kanan L dan R (genap) berpindah ke kiri hingga mencapai hasil transposisi silang dimana bagian kiri semua berubah menjadi L dan kanan berubah menjadi R, pada Gambar 12. Proses ini dilakukan dari K1 sampai K4. L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 Ambil Bit
L2 L1 L4 L3 L6 L5 L8 L7 L10 L9 L12 L11 L14 L13 L16 L15 R2 R1 R4 R3 R6 R5 R8 R7 R10 R9 R12 R11 R14 R13 R16 R15 Transposisi
L1 R1 L2 R2 L3 R3 L4 R4 L5 R5 L6 R6 L7 R7 L8 R8 L9 R9 L10 R10 L11 R11 L12 R12 L13 R13 L14 R14 L15 R15 L16 R16 Hasil Transposisi
Gambar 12. Proses Ambil Bit Sampai Hasil Transposisi
Alur proses dekripsi ditunjukkan bagan pada Gambar 13. Proses dekripsi merupakan pengembalian Cipherteks ke Plainteks. Algoritma kriptografi berbasis pada pola balok dalam permainan Tetris menggunakan Linear Congruential Generator dan transposisi silang merupakan kriptografi kunci simetris sehingga,
12
untuk proses dekripsi dari algoritma ini merupakan kebalikan dari proses enkripsi yang artinya terdiri dari 4 putaran juga.
Cipherteks
Kunci
Ascii
Ascii
Bit
Proses P4
Proses K4
Bit Masuk
Bit Masuk
Proses Pengambilan
Proses Pengambilan
P4
K4
Bit
Transposisi Silang
C4
C1
K1
Proses P1
Proses K1
Bit Masuk
Bit Masuk
Proses Pengambilan
Proses Pengambilan
P1
K1
Plainteks
Gambar 13. Bagan Proses Dekripsi
13
Transposisi Silang
Transposisi Silang
1
2
3
4 Gambar 14. Pola-pola Masukan
1
2
3
4 Gambar 15. Pola-pola Ambilan
Pola-pola pemasukan dan pola-pola pengambilan ditunjukkan pada Gambar 14 dan Gambar 15. Pengujian nilai korelasi menggunakan perhitungan manual untuk pemasukan dan pengambilan menggunakan kata “Fakultas” sebagai plainteks dan “FTI UKSW” sebagai kunci. Nilai korelasi didapatkan dari hubungan angka desimal masukan biner. Uji korelasi ditujukan untuk mengetahui seberapa besar hubungan antara nilai pola masukan satu dan setiap proses yang terjadi. Sebagai implementasi dari algoritma ini maka dibuat sebuah aplikasi enkripsi dan dekripsi dengan inputan berupa file teks, dan outputnya juga berupa
14
file teks. Jumlah karakter untuk inputan pada kunci dibatasi maksimal 8 karakter, karena besar blok yang digunakan 256 bit dengan matrix 16x16 maka dilakukan padding karakter “Null” (0) untuk mengisi blok bit yang kosong. Aplikasi yang dibuat memberi dua pilihan yaitu enkripsi dan dekripsi untuk masing-masing rancangan. Pengujian perancangan dari algoritma yang diteliti sebagai sebuah teknik kriptografi maka dilakukan proses enkripsi dan dekripsi dengan aplikasi yang telah dirancang. Berikut adalah tampilan aplikasi (Gambar 16).
Gambar 16. Tampilan Aplikasi
Gambar 17. Plainteks Disimpan Pada File Teks
Gambar 17 menunjukkan file teks yang telah disimpan dan di dalamnya berisi kalimat “Fakultas”. Tombol Open untuk membuka plainteks yang telah disiapkan dan “FTI UKSW” pada bagian kunci (Gambar 17).
Gambar 18. “Fakultas” Pada Bagian Plainteks dan “FTI UKSW” Pada Bagian Kunci
Pada Gambar 18 adalah proses enkripsi dengan plainteks “Fakultas” dan “FTI UKSW” sebagai kunci dan didapatkanlah cipherteks yang ditunjukkan dengan hasil ASCII pada Gambar 19 dan tombol save untuk menyimpan.
15
Gambar 19. Proses Enkripsi
Gambar 20. Proses Enkripsi Pada File Teks
Pada Gambar 20 menunjukkan File teks yang yang telah dienkripsi. Untuk proses dekripsi hampir sama seperti pada proses enkripsi. Algoritma yang diteliti merupakan jenis kriptografi kunci simetris, sehingga inputan karakter pada kolom kunci harus sama seperti pada saat melakukan enkripsi dengan key tetap “FTI UKSW” didapatkanlah plainteks awal yaitu “Fakultas” pada Gambar 21.
Gambar 21. Proses Dekripsi
Gambar 22. Hasil Proses Dekripsi Pada File Teks
16
Gambar 22 adalah tampilan dari file teks yang telah berhasil didekripsi. Suatu kriptografi bisa dikatakan sebagai sebuah teknik kriptografi jika memenuhi 5-tuple yaitu P, C, K, E, dan D [11]. P adalah himpunan berhingga dari plainteks. Perancangan kriptografi ini menggunakan 256 karakter ASCII yang di ambil dari tabel ASCII, himpunan plainteks pada alur pengambilan berbentuk piramida merupakan himpunan berhingga. C adalah himpunan berhingga dari cipherteks. Cipherteks dihasilkan dalam bit (0 dan 1) himpunan dari cipherteks merupakan himpunan berhingga. K, adalah keyspace atau ruang kunci adalah, himpunan berhingga dari kunci. Jumlah ruang kunci yang dipakai dalam perancangan ini adalah 256 karakter dalam ASCII, sehingga ruang kunci merupakan himpunan berhingga dari kunci. E, enkripsi, dan D, dekripsi, setiap ek : P→C dan dk : C → P adalah fungsi sedemikian hingga dk(ek(x)) = x, untuk setiap plainteks x∊P. Pembahasan sebelumnya telah membahas proses enkripsi dan dekripsi sehingga telah memenuhi tuple E dan D. Perancangan dengan Linear Congruential Generator dan transposisi silang berbasis pada pola balok dalam permainan Tetris merupakan sebuah sistem kriptografi, karena telah memenuhi kelima kondisi 5tuple. Tabel 1 Korelasi Untuk Setiap Pola Masukan Dan Setiap Proses
Pola Masukan Dan Proses Masukan 1 dan Proses 1 Masukan 1 dan Proses 2 Masukan 1 dan Proses 3 Masukan 1 dan Proses 4
Plainteks
Kunci
Korelasi
Fakultas
FTI UKSW
-0,319833496
Fakultas
FTI UKSW
-0,43267591
Fakultas
FTI UKSW
0,195920598
Fakultas
FTI UKSW
-0,038227903
Berdasarkan Tabel 1 Hasil dari pengujian nilai korelasi untuk menentukan enkripsi terbaik yang menunjukkan pada setiap pola masukan dan setiap proses memiliki nilai korelasi berbeda-beda. Untuk pola masukan 1 dengan proses 2 didapatkan nilai korelasi -0,432 nilai tersebut berarti bahwa kriptografi dengan pola Tetris memiliki hubungan korelasi yang rendah antara pola masukan dan proses.
Gambar 23. Grafik Plainteks Awal Dan Hasil Cipherteks Akhir
17
Berdasarkan pada Gambar 23 memperlihatkan kemiringan yang cukup fluktuatif dan dilihat dari plainteks dengan hasil cipherteks akhir, terlihat dalam grafik cipherteks berada diatas dan dibawah plainteks, dimana algoritma ini menunjukkan hasil yang cukup baik dalam proses enkripsi. Pada uji korelasi sebelumnya dengan plainteks dan kunci yang berbeda, Pada Tabel 2 menguji algoritma yang baru ini dengan karakter yang sama. Pada plainteks menggunakan karakter “zzzzzzzz” dan pada kunci menggunakan karakter “zzzzzzzz” dan menghasilkan nilai korelasi yang berbeda-beda pada setiap masukan dan proses. Nilai korelasi yang paling rendah, berada pada masukan 1 dan proses 2 didapatkan -0,381. Tabel 2 Korelasi Dengan Plainteks Dan Kunci Yang Sama
Pola Masukan Dan Proses Masukkan 1 dan Proses 1 Masukkan 1 dan Proses 2 Masukkan 1 dan Proses 3 Masukkan 1 dan Proses 4
Plainteks
Kunci
Korelasi
zzzzzzzz
zzzzzzzz
-0,29179094
zzzzzzzz
zzzzzzzz
-0,381291626
zzzzzzzz
zzzzzzzz
0,218803494
zzzzzzzz
zzzzzzzz
-0,031535724
Pada Tabel 3 menguji algoritma yang baru ini dengan kombinasi karakter “K@r4Kt3R” pada plainteks dan pada kunci menggunakan karakter “12345678” dan juga menghasilkan nilai korelasi yang berbeda-beda pada setiap masukan dan proses. Nilai korelasi yang paling rendah, berada pada masukkan 1 dan proses 2 didapatkan -0,458. Tabel 3 Korelasi Dengan Plainteks “K@r4Kt3R” Dan Kunci “12345678”
Pola Masukan Dan Proses Masukkan 1 dan Proses 1 Masukkan 1 dan Proses 2 Masukkan 1 dan Proses 3 Masukkan 1 dan Proses 4
5.
Plainteks
Kunci
Korelasi
K@r4Kt3R
12345678
-0,262611691
K@r4Kt3R
12345678
-0,458289488
K@r4Kt3R
12345678
0,28815265
K@r4Kt3R
12345678
-0,042429339
Simpulan
Berdasarkan penelitian yang telah dilakukan maka dapat diambil kesimpulan yaitu perancangan algoritma kriptografi block cipher berbasis pada pola balok dalam permainan Tetris dengan menggunakan Linear Congruential Generator (LCG) pada plainteks dan Transposisi Silang pada kunci dalam proses
18
enkripsi file teks cukup baik. Hasil dari nilai korelasi yang paling rendah terjadi pada pola pemasukan 1 dan proses 2 dengan menggunakan uji karakter “K@r4Kt3R” pada plainteks dan “12345678” pada kunci menghasilkan nilai korelasi -0,458. Rancangan kriptografi ini juga memenuhi 5-tuple sehingga dapat dikatakan sebagai sebuah sistem kriptografi. Berdasarkan penelitian ini juga dapat ditarik kesimpulan bahwa, banyaknya proses dalam algoritma kriptografi cipher block yang baru ini, tidak terlalu berpengaruh pada kekuatan algoritma untuk mengenkripsi pesan File Teks. 6.
Daftar Pustaka
[1]
anekacarapraktis.blogspot.co.id, 2013. http://anekacarapraktis.blogspot.co.id /2013/11/tak-perlu-jadi-mata-mata-menyadap-hp-ternyata-tidak-susah-caran ya.html Diakses pada 31 Februari 2016 [2] Bilqis, 2012. Analisis Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time Pad (OTP) Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG). Universitas Sumatera Utara. [3] Buchmann, Johannes, A., 2000. Introduction to Cryptography, SpringerVerlag, Inc : New York. [4] id.wikipedia.org, 2015. https://id.wikipedia.org/wiki/Tetris Diakses pada 10 Agustus 2015 [5] kelompokenamka.blogspot.co.id, 2012. http://kelompokenamka.blogspot.co. id/2012/11/contoh-kasus-kasus-pencurian-data_21.html Diakses pada 31 Februari 2016 [6] Mauliku, W. M., Magdalena, A. I. P., Wowor, A. D., 2015. Perancangan dan Implementasi Algoritma Kriptografi Cipher Block Berbasis pada Bentuk Piramida dan Linear Congruential Generator. Salatiga: Skripsi-S1 Sarjana Universitasi Kristen Satya Wacana. [7] Mongomery C. Douglas, Runger C. George, 2003. Applied Statistics and Probability For Engineers. John Wiley & Sons Inc. US. [8] Munir, Rinaldi, 2006. Kriptografi, Informatika. Bandung, Indonesia. [9] Nathasia, N.D., Wicaksono, A.E 2011. Penerapan Teknik Kripografi Stream-Cipher Untuk Pengaman Basis Data. Universitas Nasional. [10] Prabowo, H.E., Hangga, Arimaz 2015. Metoda Vigenere Chiper Double Columnar Transposition Sebagai Modifikasi Teknik Kriptografi Dalam Pembentukan Kunci. Universitas Negeri Semarang. [11] Stinson, D. R., 1995. Cryptography: Theory and Practice. CRC Press, Boca Raton, London, Tokyo.
19