perancangan dan implementasi algoritma kriptografi block ......perancangan dan implementasi...
TRANSCRIPT
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
i
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
ii
iii
iv
v
vi
vii
.
1
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
2
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.
3
Gambar 1. Proses Enkripsi-Dekripsi pada Block Cipher Secara Umum
Misalkan blok plainteks (P) yang berukuran n bit
npppP ,, 21 (1)
Blok cipherteks (C) maka blok C adalah
ncccC ,,, 21 (2)
Kunci (K) maka kunci adalah
nkkkK ,, 21 (3)
Sehingga proses Enkripsi adalah
CPEk (4)
Proses dekripsi adalah
PCDk (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 :
4
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
5
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)
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
11 r
6
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 P52
P15 P13 P23 P30 P31 P27 P17 P19 P47 P45 P55 P62 P63 P59 P49 P51
P16 P1 P24 P5 P8 P28 P9 P18 P48 P33 P56 P37 P40 P60 P41 P50
P2 P3 P4 P6 P7 P10 P11 P12 P34 P35 P36 P38 P39 P42 P43 P44
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
7
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 K1 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
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.
8
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.
Gambar 7. Bagan Rancangan Proses Enkripsi
Pada bagan proses enkripsi menjelaskan plainteks yang berupa ASCII
diacak dengan Linear Congcoruential Generator (LCG) tujuannya adalah untuk
LCG Plainteks Kunci
P1 K1
P2 K2
Cipherteks
P3 K3
P4 K4
Transposisi Silang
Transposisi Silang
Transposisi Silang
Transposisi Silang
9
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 masing-
masih 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
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.
Plainteks
Cipherteks K4
K3 P4
K2 P3
K1 P2
Transposisi Silang
Transposisi Silang
Transposisi Silang
SDSilang
Transposisi Silang
10
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
LCG Plainteks
Bit Proses P1 Proses K1
Ascii
Kunci
Bit
Ascii
Bit Masuk
Proses
Pengambilan
Bit Masuk
Proses
Pengambilan
P1 K1
Proses P4 Proses K4
Bit Masuk
Proses
Pengambilan
Bit Masuk
Proses
Pengambilan
P4 K4
Ciphertek
s
C1
C3 K3
Transposisi
Silang
Transposisi
Silang
Transposisi
Silang
11
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 L1 L1 L1 L1 L1 L1 L1 R1 R1 R1 R1 R1 R1 R1 R1
L2 L2 L2 L2 L2 L2 L2 L2 R2 R2 R2 R2 R2 R2 R2 R2
L3 L3 L3 L3 L3 L3 L3 L3 R3 R3 R3 R3 R3 R3 R3 R3
L4 L4 L4 L4 L4 L4 L4 L4 R4 R4 R4 R4 R4 R4 R4 R4
L5 L5 L5 L5 L5 L5 L5 L5 R5 R5 R5 R5 R5 R5 R5 R5
L6 L6 L6 L6 L6 L6 L6 L6 R6 R6 R6 R6 R6 R6 R6 R6
L7 L7 L7 L7 L7 L7 L7 L7 R7 R7 R7 R7 R7 R7 R7 R7
L8 L8 L8 L8 L8 L8 L8 L8 R8 R8 R8 R8 R8 R8 R8 R8
L9 L9 L9 L9 L9 L9 L9 L9 R9 R9 R9 R9 R9 R9 R9 R9
L10 L10 L10 L10 L10 L10 L10 L10 R10 R10 R10 R10 R10 R10 R10 R10
L11 L11 L11 L11 L11 L11 L11 L11 R11 R11 R11 R11 R11 R11 R11 R11
L12 L12 L12 L12 L12 L12 L12 L12 R12 R12 R12 R12 R12 R12 R12 R12
L13 L13 L13 L13 L13 L13 L13 L13 R13 R13 R13 R13 R13 R13 R13 R13
L14 L14 L14 L14 L14 L14 L14 L14 R14 R14 R14 R14 R14 R14 R14 R14
L15 L15 L15 L15 L15 L15 L15 L15 R15 R15 R15 R15 R15 R15 R15 R15
L16 L16 L16 L16 L16 L16 L16 L16 R16 R16 R16 R16 R16 R16 R16 R16 Gambar 10. Kunci L Dan R
12
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 L2 L2 L2 L2 L2 L2
L3 L3 L3 L3 L3 L3 L3 L3 L4 L4 L4 L4 L4 L4 L4 L4
L5 L5 L5 L5 L5 L5 L5 L5 L6 L6 L6 L6 L6 L6 L6 L6
L7 L7 L7 L7 L7 L7 L7 L7 L8 L8 L8 L8 L8 L8 L8 L8
L9 L9 L9 L9 L9 L9 L9 L9 L10 L10 L10 L10 L10 L10 L10 L10
L11 L11 L11 L11 L11 L11 L11 L11 L12 L12 L12 L12 L12 L12 L12 L12
L13 L13 L13 L13 L13 L13 L13 L13 L14 L14 L14 L14 L14 L14 L14 L14
L15 L15 L15 L15 L15 L15 L15 L15 L16 L16 L16 L16 L16 L16 L16 L16
R1 R1 R1 R1 R1 R1 R1 R1 R2 R2 R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3 R3 R3 R4 R4 R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5 R5 R5 R6 R6 R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7 R7 R7 R8 R8 R8 R8 R8 R8 R8 R8
R9 R9 R9 R9 R9 R9 R9 R9 R10 R10 R10 R10 R10 R10 R10 R10
R11 R11 R11 R11 R11 R11 R11 R11 R12 R12 R12 R12 R12 R12 R12 R12
R13 R13 R13 R13 R13 R13 R13 R13 R14 R14 R14 R14 R14 R14 R14 R14
R15 R15 R15 R15 R15 R15 R15 R15 R16 R16 R16 R16 R16 R16 R16 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.
Ambil Bit Transposisi Hasil Transposisi
R11
R13
R15
R12 R11
R14 R13
R16 R15
R13
R14
R15
R16
R12
L13
L14
L15
L16
R1
R2
R3
R4
R5
R6
L7
L8
L9
L10
R7
R8
R9
R10
L11
L12
L1
L2
L3
L4
L5
L6
R11R5
R7
R9
L15
R1
R3
R6 R5
R8 R7
R10 R9
L15
R2 R1
R4 R3
L8 L7
R10
R12
R14
R4
R6
R8
L14
L10 L9
L12 L11
L14 L13
L16
L2 L1
L4 L3
L6 L5
R2
L8
L10
L12
R16
L1 L2
L4
L6
L16
L9
L11
L13
L3
L5
L7
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,
13
untuk proses dekripsi dari algoritma ini merupakan kebalikan dari proses enkripsi
yang artinya terdiri dari 4 putaran juga.
Gambar 13. Bagan Proses Dekripsi
Cipherteks
Bit Proses P4 Proses K4
Ascii
Kunci
Bit
Ascii
Bit Masuk
Proses
Pengambilan
Bit Masuk
Proses
Pengambilan
P4 K4
Proses P1 Proses K1
Bit Masuk
Proses
Pengambilan
Bit Masuk
Proses
Pengambilan
P1 K1
Plainteks
C4
C1 K1
Transposisi
Silang
Transposisi
Silang
Transposisi
Silang
14
1
3 4
2
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
15
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.
16
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
17
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 5-
tuple.
Tabel 1 Korelasi Untuk Setiap Pola Masukan Dan Setiap Proses
Pola Masukan
Dan Proses Plainteks Kunci Korelasi
Masukan 1
dan Proses 1 Fakultas FTI UKSW -0,319833496
Masukan 1
dan Proses 2 Fakultas FTI UKSW -0,43267591
Masukan 1
dan Proses 3 Fakultas FTI UKSW 0,195920598
Masukan 1
dan Proses 4 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
18
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 Plainteks Kunci Korelasi
Masukkan 1
dan Proses 1 zzzzzzzz zzzzzzzz -0,29179094
Masukkan 1
dan Proses 2 zzzzzzzz zzzzzzzz -0,381291626
Masukkan 1
dan Proses 3 zzzzzzzz zzzzzzzz 0,218803494
Masukkan 1
dan Proses 4 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 Plainteks Kunci Korelasi
Masukkan 1
dan Proses 1 K@r4Kt3R 12345678 -0,262611691
Masukkan 1
dan Proses 2 K@r4Kt3R 12345678 -0,458289488
Masukkan 1
dan Proses 3 K@r4Kt3R 12345678 0,28815265
Masukkan 1
dan Proses 4 K@r4Kt3R 12345678 -0,042429339
5. 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
19
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, Springer-
Verlag, 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.