Institutional Repository | Satya Wacana Christian University: Perancangan Kriptografi Block Cipher Berbasis Pola Notasi Balok 1/8
Perancangan Kriptografi Block Cipher Berbasis Pola Notasi Balok 1/8 Artikel Ilmiah Peneliti : Lerry Godwin Andreas Nanariain (672012174) Magdalena A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga November 2017
1. Pendahuluan
Masalah keamanan dan kerahasian data adalah suatu hal yang sangat penting dalam melakukan pengiriman informasi dan komunikasi agar tidak terbaca atau diubah oleh pihak yang tidak berwenang. Dalam menjaga keamanan dalam pengiriman informasi dan komunikasi banyak macam cara atau metode untuk mengamankan suatu file atau data. Salah satunya adalah kriptografi.
Kriptografi merupakan metode untuk mengamankan data, baik data teks, maupun data gambar dengan cara mengubah data ke dalam bentuk data sandi sehingga data tersebut tidak dapat dikenali. Banyak metode kriptografi yang sudah dipecahkan oleh Kriptanalisis (Criptanalisys) dan kriptografi membutuhkan pembaruan, hal ini dikarenakan perkembangan teknologi yang semakin maju sehingga membuat kriptografi tidak bisa digunakan selamanya. Dalam penelitian ini merancang Algoritma Block Cipher 64 Bit dengan pola notasi balok 1/8.
Block Cipher merupakan algoritma kriptografi simetris yang mengenkripsi satu block plaintext
dengan jumlah bit tertentu dikombinasikan dengan tabel substitusi atau S-Box dan menghasilkan block ciphertext.
Pola Notasi Balok1/8 adalah simbol atau tanda untuk menyatakan tinggi rendahnya suara yang diwujudkan dengan gambar. Notasi balok disebut juga notasi mutlak karena mempunyai patokan tinggi nada yang tetap sehingga sangat efektif digunakan dalam bermain musik. Cara menggambarkan nilai not balok 1/8 yang terdiri dari bendera, tangkai dan kepala, digunakan sebagai pola dalam proses transposisi untuk pengambilan dan pemasukan bit plaintext pada setiap blok matriks. Kelebihan pola notasi balok 1/8 dengan metode yang lain yaitu pola ini diambil sebagai acuan karena memiliki pola yang cukup sederhana tetapi mampu menghasilkan bit yang acak pada kolom matriks.
Plaintext akan dimasukkan ke dalam blok-blok dimana setiap blok berjumlah 64 bit atau
8 Byte, dan terdapat 20 putaran dimana setiap putaran terdapat 4 proses untuk proses plaintext maupun proses kunci (key). Hasil dari proses plaintext akan di-XOR dengan kunci untuk menghasilkan Ciphertext yang kemudian byte-nya akan dikombinasikan dengan S-Box untuk menghasilkan Avalanche Effect yang besar. S-Box yang digunakan dalam penelitian ini adalah S-
Box algoritma AES (Advanced Encryption Standard).
Berdasarkan permasalahan yang ada maka dilakukan penelitian yang membahas tentang perancangan kriptografi simetris Block Cipher berbasis pada pola notasi balok 1/8.
2. Tinjauan Pustaka Penelitian sebelumnya terkait teknik kriptografi block cipher telah banyak dilakukan.
Beberapa penelitian ini digunakan sebagai acuan dalam penelitian. Penelitian pertama berjudul
Pengaruh S-Box Advanced Encryption Standard (AES) Terhadap Avalanche Effect, yang membahas tentang Block Cipher 256 Bit Berbasis Pola Teknik Tarian Dansa Tali Dari Maluku.
Hasil dari perancangan algoritma kriptografi ini proses enkripsi dimana hasil dari proses ke-2 dan ke-3 ditransformasi menggunakan tabel substitusi S-Box sehingga menghasilkan Ciphertext yang lebih acak pada pengujian Avalanche Effect yang sudah mencapai 50% sehingga dapat digunakan sebagai alternatif dalam pengamanan data [1].
Penelitian kedua berjudul Perancangan Kriptografi Block Cipher dengan Langkah Kuda, yang membahas tentang kriptografi block cipher dengan langkah kuda lari dan langkah kuda jalan. Algoritma langkah kuda lari dan langkah kuda jalan dapat membuktikan bahwa pola ini dapat menghasilkan kriptografi simetris dan dapat memenuhi lima-tuple (Five-tuple). Penelitian ini dapat membandingkan proses keacakan dan proses nilai diferensiasi antara KS dengan AES- 128. Hasil perbandingan dengan AES-128, rancangan berbasis langkah kuda lebih cepat 0.94869906 ms [2].
Penelitian ketiga berjudul Perancangan Algoritma Kriptografi Block Cipher 256-Bit Berbasis pada Pola Tuangan Air. Dalam penelitian ini, perancangan kriptografi menggunakan pola tuangan air untuk pengambilan dan pemasukan bit yang dikombinasikan dengan tabel substitusi. Hasil dari penelitian ini yaitu algoritma kriptografi block cipher 256-bit berbasis pola tuangan air menghasilkan hasil enkripsi yang acak [3].
Berdasarkan penelitian-penelitian yang sudah ada terkait perancangan algoritma kriptografi simetris Block Cipher maka dilakukan penelitian yang berjudul Perancangan Kriptografi Simeteris Block Cipher Berbasis Pola Notasi Balok 1/8. Perbedaan penelitian ini dengan penelitian sebelumnya adalah jumlah data yang diproses adalah sebanyak 64-bit kemudian dienkripsi dengan pola notasi balok sebagai pola pengambilan, dan juga dibuat kombinasi sebanyak 24 kombinasi yang memiliki masing-masing kombinasi berbeda dan bertujuan untuk mencari korelasi terendah sebagai pola yang paling optimal.
Kriptografi (cryptography) berasal dari Bahasa Yunani Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message) [4]. Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan data [5]. Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering, sedangkan proses mengembalikan ciphertext menjadi plaintext disebut dekripsi (decryption) atau deciphering [6].
Setiap block Cipher memproses text dengan block yang panjangnya 64-bit, untuk mempersulit teknik kriptanalisis dalam membongkar kunci. Block Cipher juga merupakan algoritma kunci simetri atau kriptografi kunci private, dimana kunci untuk enkripsi sama dengan kunci untuk dekripsi. Skema proses enkripsi dan dekripsi block cipher secara umum ditunjukkan pada Gambar 1.
Gambar 1 Skema Dasar Proses Enkripsi-Dekripsi Pada Block Cipher [7]
Misalkan block plaintext (P) yang berukuran n bit
P p , p , , p
(1)
n
1
2 Block ciphertext (C) maka block C adalah
C c , c , , c
(2)
n
1
2 Kunci (K) maka kunci adalah
K k , k , , k
(3)
n
1
2 Sehingga proses enkripsi adalah
C P E k
Untuk menguji nilai algoritma yang dirancang memiliki hasil ciphertext yang acak dari
( ʠ� 钨) ( 钨� ʠ)
Δ Δ =
tersebut dapat divisualisasikan kedalam koordinat cartecius untuk setiap x sebagai variabel bebas dan y atau kadang ditulis sebagai f(x) sebagai variabel tak bebas. Untuk menentukan diferensiasi data pada dua titik maka persamaan yang dapat dibentuk seperti Persamaan 7.
,y 1 ,), (x 2 ,y 2 ,), (x 3 ,y 3 ,),….(x n ,y n )) dengan syarat bahwa x i < x i+1 dimana i = 1,…n. Data
Metode ini sering disebut sebagai turunan atau kemiringan dari data. Jika diberikan kumpulan data ((x 1
=Kuadrat dari total jumlah variabel Y Σxy =Hasil perkalian dari total jumlah variabel X dan variabel Y Untuk mengetahui nilai keacakan dari hasil enkrispsi antara ciphertext dengan plaintext digunakan diferensiasi data yang dimana perbandingan selisih antara dua titik dalam kalkulus.
2
=Kuadrat dari total jumlah variabel X Σy
2
(6) Dimana: n =Banyaknya pasangan data X dan Y Σx =Total jumlah dari variabel X Σy =Total jumlah dari variabel Y Σx
plaintext maka digunakan Persamaan 6, dimana variable X merupakan plaintext dan Y
merupakan ciphertext. nΣxy – (Σx) (Σy) {nΣx² – (Σx)²} {nΣy² – ( Σy )²}dekripsi t Setiap dan adalah fungsi sedemikian hingga untuk setiap plaintext t
4. Untuk setiap , terdapat aturan enkripsi dan berkorespodensi dengan aturan
3. K merupakan ruang kunci (keyspace), adalah himpunan berhingga dari kunci,
2. C adalah himpunan berhingga dari ciphertext,
1. P adalah himpunan berhingga dari plaintext,
kondisi [8]:
P, C, K, E, D) yang memenuhi
Sebuah kriptografi dapat dikatakan sebagai suatu teknik kriptografi harus melalui uji kriptosistem terlebih dahulu yaitu diuji dengan metode Stinson. Sebuah sistem akan dikatakan sebagai sistem kriptografi jika memenuhi lima-tuple (Five tuple) (
(C) = P (5)
P C D k
(4) Proses dekripsi adalah
(7) Pengujian statistika menggunakan korelasi yang merupakan suatu teknik statistik yang dipergunakan untuk mengukur kekuatan hubungan dua variabel dan juga untuk mengetahui bentuk hubungan antara dua variabel tersebut dengan hasil yang sifatnya kuantitatif. Kekuatan hubungan antara dua variabel biasanya disebut dengan koefisien korelasi dan dilambangkan dengan simbol “r”. Nilai koefisien r akan selalu berada diantara -1 sampai +1. Untuk memudahkan menentukan kuat lemahnya hubungan antara variabel yang diuji maka dapat digunakan Tabel 1 [9]. Tabel 1 berfungsi sebagai panduan umum dalam menentukan kriteria korelasi dalam sebuah kriptografi, maka tingkat hubungan koefisien berhubungan dan tergantung dengan pemilihan kunci yang dikombinasikan.
Tabel 1 Klasifikasi Koefisien Korelasi [9]
Interval Koefisien Tingkat Hubungan
Sangat Rendah
0,00 – 0,199
Rendah
0,20 – 0,399
Sedang
0,40 – 0,599
Kuat
0,60 – 0,799
Sangat Kuat
0,80 – 1,000
3. Metode dan Perancangan Algoritma
Tahapan yang dilakukan dalam penelitian ini, terdiri dari 5 (lima) tahapan, yaitu: (1) Identifikasi Masalah, (2) Pengumpulan Data, (3) Perancangan Kriptografi, (4) Pengujian Kriptografi, dan (5) Penulisan Artikel Ilmiah.
Identifikasi Masalah
Pengumpulan Data
Perancangan Kriptografi
Pengujian Kriptografi
Penulisan Artikel Ilmiah
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2 dapat dijelaskan sebagai berikut: Tahap Identifikasi
masalah : Merupakan tahapan awal dalam melakukan penelitian untuk melihat masalah-masalah
keamanan informasi yang berkaitan dengan kriptografi yaitu pencurian data, baik data teks, maupun data gambar; Tahap Pengumpulan data : Dalam tahapan ini dilakukan pengumpulan referensi dari buku, jurnal, atau sumber lain yang berguna dalam perancangan kriptografi; Tahap
Perancangan Kriptografi : Pada tahap ini akan dilakukan perancangan Kriptografi berbasis
teknik pola notasi balok 1/8, untuk pembuatan kunci, proses enkripsi dan dekripsinya yang pada
plaintext ke-3 disubstitusi dengan tabel s-box; Tahap Pengujian Kriptografi : Setelah rancangan
kriptografi dibuat dibutuhkan pengujian algoritma. Pengujian dilakukan dengan cara manual dimana plaintext diubah ke dalam bit untuk melakukan proses enkripsi, proses dekripsi dan pengujian avalanche effect; Tahap Penulisan Artikel Ilmiah : Dalam tahap akhir ini dilakukan penulisan artikel tentang Perancangan Kriptografi Block Cipher Berbasis 64 Bit Pada Pola Notasi
Balok 1/8. Adapun batasan masalah dalam penelitian ini yaitu: 1) Proses enkripsi dan proses dekripsi dibuat pada data teks; 2) Proses perancangan ini mengunakan teknik pola notasi balok; 3) Jumlah plaintext dan kunci dibatasi yaitu menampung 16 karakter serta proses putaran terdiri dari 5 putaran; 4) Panjang block adalah 64-bit.
Dalam penelitian ini, perancangan Kriptografi Block Cipher 64 Bit berbasis pola notasi balok 1/8, dilakukan dalam 4 (empat) proses enkripsi ditunjukkan dalam Gambar 3. Plaintext dikonversikan ke dalam bentuk biner sesuai dengan tabel ASCII, kemudian rangkaian bilangan biner dimasukkan pada matriks 8x8 sesuai pola, dan bilangan biner di dalam matriks diambil sesuai pola sehingga didapatkan P1.
Gambar 3 Rancangan Alur Proses Enkripsi
Gambar 3 merupakan rancangan alur proses enkripsi. Langkah-langkah alur proses enkripsi dapat dijelaskan sebagai berikut: a) Menyiapkan plaintext; b) Mengubah plaintext menjadi biner sesuai dengan ASCII; c) Dalam rancangan enkripsi plaintext dan kunci melewati 4 (empat) proses pada setiap putaran: 1) Putaran pertama Plaintext 1 (P1) melakukan transformasi dengan pola notasi balok 1/8 sebagai pola pengambilan plaintext dan di-XOR dengan kunci 1 (K1) menghasilkan Plaintext 2 (P2); 2) Plaintext 2 (P2) melakukan transformasi dengan pola notasi balok 1/8 sebagai pola pengambilan plaintext dan di-XOR dengan kunci 2 (K2) menghasilkan Plaintext 3 (P3); 3) Plaintext 3 (P3) melakukan transformasi dengan pola notasi balok 1/8 dan di-XOR dengan kunci 3 (K3), kemudian hasil XOR ditransformasikan dengan tabel subtitusi S-Box sehingga menghasilkan Plaintext 4 (P4); 4) Plaintext 4 (P4) di-XOR dengan kunci 4 (K4) menghasilkan Plaintext 5 (P5); 5) Plaintext 5 (P5) masuk pada putaran kedua dengan alur proses yang sama dengan putaran pertama, dan tahapan tersebut akan berlanjut sampai putaran ke-20 yang menghasilkan Ciphertext akhir.
Gambar 4 Rancangan Alur Proses Dekripsi
Gambar 4 merupakan rancangan alur proses dekripsi. Merupakan kebalikan dari proses enkripsi, sehingga kunci yang digunakan untuk enkripsi sama dengan proses dekripsi. Proses dekripsi pada perancangan dan implementasi algoritma kriptografi block cipher berbasis pada pola notasi balok 1/8.
4. Hasil dan Pembahasan
Dalam bagian ini akan membahas mengenai algoritma perancangan kriptografi block
cipher 4 bit berbasis pola teknik notasi balok 1/8 yang ditunjukkan dalam Gambar 5 secara
terperinci. Bagian ini juga akan membahas tentang proses enkripsi dan dekripsi.Gambar 5 Notasi Balok 1/8
Dalam algoritma ini pola notasi balok 1/8 digunakan untuk proses pengambilan bit di dalam matriks plaintext. Pola notasi balok memiliki pola seperti yang ditunjukkan dalam Gambar 6.
POLA (A) POLA (B)
POLA (C) POLA (D)
0,033666928 C-A-B-D
Gambar 6 Pola Berbasis Teknik Notasi Balok
Pada Gambar 6 terdapat 4 (empat) pola yang berbeda dimana pada pola-pola tersebut dapat dijelaskan di dalam notasi balok yang dituangkan dalam bentuk gambar. Berdasarkan pola- pola yang sudah dirancang, dilakukan pengujian korelasi atau nilai keterikatan antara plaintext dan ciphertext dengan mengkombinasikan urutan pola untuk mendapatkan rata-rata korelasi terbaik. Pengujian dilakukan dengan menggunakan contoh plaintext yaitu :
MAIP2004 Menggunakan kunci: BLOCK CIPHER 64 BIT NOTASI BALOK Berdasarkan hasil pengujian korelasi dengan menggunakan contoh plaintext tersebut maka pola dengan hasil rata-rata terbaik yang akan digunakan sebagai acuan perancangan dalam proses enkripsi dan dekripsi.
Tabel 2 Tabel Korelasi Kombinasi
NILAI KORELASI
POLA KORELASI POLA KORELASI
A-B-C-D- 0,314405866
- 0,127706702
- 0,395531222
- 0,129788567
A-B-D-C
- 0,0269537
- 0,18372856
- 0,138632032
- 0,46987363
- 0,1868506
- 0,173746506
- 0,030462928
D-A-C-B
Tabel 2 menunjukkan bahwa urutan kombiasi pola dengan rata-rata korelasi terbaik pada urutan pola A-C-D-B dengan nilai korelasi sebesar 0,014853951. Kombinasi pola A-C-D-B digunakan dalam proses enkripsi dan dekripsi sampai putaran ke-20 untuk menghasilkan
D-C-B-A 0,369784074
B-D-C-A
D-C-A-B
B-D-A-C 0,173963622
D-B-C-A
B-C-D-A
D-B-A-C
B-C-A-D 0,045903528
B-A-D-C
C-A-D-B
D-A-B-C 0,632241331
B-A-C-D 0,122267649
C-D-B-A 0,26129189
C-D-A-B 0,382842925
A-D-B-C 0,77553895
C-B-D-A 0,43790519
A-C-D-B 0,014853951
C-B-A-D
A-C-B-D 0,517766607
A-D-C-B 0,614190189
ciphertext. Kemudian dilanjutkan dengan proses perhitungan nilai korelasi pada setiap putaran
menggunakkan pola terbaik A-C-D-B sampai putaran ke-20.Perancangan algoritma kroptografi Block Cipher 64 bit berbasis pola notasi balok dilakukan dalam 20 putaran untuk mendapatkan ciphertext dan plaintext dalam setiap putaran terdapat 4 (empat) proses. Proses enkripsi secara umum dapat dilihat pada Gambar 7. Pada proses enkripsi plaintext dan kunci dikonversi menjadi ASCII kemudian diubah ke bilangan biner. Plaintext kemudian dimasukkan ke dalam kolom matriks 8x8 menggunakan pola pemasukan bit dan dilakukan pengambilan dengan pola notasi balok yang berbeda-beda pada setiap proses. Putaran 1 proses pertama menghasilkan bit C1 di mana bit C1 didapat dari hasil
XOR antara bit P1 yang telah mengalami pengacakan dengan bit K1 dilakukan proses yang sama sampai pada proses ketiga. Setelah proses ketiga diacak menghasilkan bit C3 kemudian dikonversikan ke heksadesimal dan ditransformasikan ke dalam tabel subtitusi S-Box. Kemudian hasil bit C3 dimasukkan ke proses 4 dan menghasilkan C4 kemudian Ciphertext 4 dimasukkan pada putaran 2 dengan proses yang sama pada putaran 1.
Gambar 7 Bagan Proses Enkripsi
Untuk menjelaskan secara detail proses pemasukan bit dalam matriks maka diambil proses 1 dan proses 2 pada putaran 1 sebagai contoh. Misalkan angka 1 merupakan inisialisasi setiap bit yang merupakan hasil konversi plaintext maka urutan bit adalah sebagai berikut 1, 2, 3, 4, ... 64.
Gambar 8 Pola Pemasukan Bit Plaintext dan Kunci (Key)
Gambar 8 menjelaskan proses pemasukan bit karakter Plaintext dan Kunci. Setiap pemasukan bit dimasukkan dari arah kanan atas ke kiri bawah, dan untuk pemasukan kunci dimulai dari arah bawah ke atas.
Gambar 9 Pola Transposisi Bit Plaintext Proses 1
Gambar 9 merupakan proses pengambilan dan pemasukan plaintext. Bit diambil mengikuti urutan angka (1, 2, 3, … 28) kemudian dilanjutkan dengan urutan angka (29, … 64) pada gambar yang berwana kuning. Kemudian dimasukkan kembali ke dalam kolom matriks dari kiri bawah ke kanan atas mengikuti anak panah dengan urutan angka dimulai dari (1-8, 9-16, … 57-64) pada Gambar 9.
Gambar 10 Pola Transposisi Bit Proses 1
29 30 31 6 5 4 42 43 32 33 34 7 8 3 2 44 35 36 37 10 9 45 1 46 38 39 40 11 12 47 48 49 41 16 15 14 13 50 51 52 17 18 19 20 21 53 53 55 25 24 23 22 56 57 58 59 26 27 28 60 61 62 63 64
8 16 24 32 40 48 56 64 7 15 23 31 39 47 55 63 6 14 22 30 38 46 54 62 5 13 21 29 37 45 53 61 4 12 20 28 36 44 52 60 3 11 19 27 35 43 51 59 2 10 18 26 34 42 50 58 1 9 17 25 33 41 49 57
8
7
6
5
4
3
2
1 16 15 14 13 12 11 10 9 24 23 22 21 20 19 18 17 32 31 30 29 28 27 26 25 40 39 38 37 36 35 34 33 48 47 46 45 44 43 42 41 56 55 54 53 52 51 50 49 64 63 62 61 60 59 58 57
8 16 24 32 40 48 56 64 7 15 23 31 39 47 55 63 6 14 22 30 38 46 54 62 5 13 21 29 37 45 53 61 4 12 20 28 36 44 52 60 3 11 19 27 35 43 51 59 2 10 18 26 34 42 50 58 1 9 17 25 33 41 49 57 Gambar 10 menjelaskan tentang proses pengambilan bit pada proses 1. Bit di ambil setiap 8 bit dengan pola pengambilan dari arah kanan atas hingga kiri bawah dari angka (1, 2, 3, ... 64). Kemudian dimasukkan kembali ke dalam kolom matriks dari kiri bawah mengikuti urutan angka (1, 2, 3, ... 64) dan anak panah. Hasil dari transposisi plaintext dan kunci kemudian di-XOR sehingga menghasilkan ciphertext 1 yang kemudian digunakan sebagai P2 pada proses ke-2.
29 30 31 32 33 34 35 36
7
8
6
5
4
3
2
1 37 2 1 38 39 40 41 42 16 15 14 13 12 11 10 9 4 3 43 44 45 46 47 48 24 23 22 21 20 19 18 17
5 8 9 12 13 21 49 50 32 31 30 29 28 27 26 25 6 7 10 11 14 20 22 28 40 39 38 37 36 35 34 33
51 52 53 54 15 19 23 27 48 47 46 45 44 43 42 41 55 56 57 58 16 18 24 26 56 55 54 53 52 51 50 49 59 60 61 62 63 17 25 64 64 63 62 61 60 59 58 57
Gambar 11 Pola Transposisi Bit Plaintext Proses 2
Gambar 11 menunjukkan plaintext 2 yang dihasilkan pada proses 1 mengalami proses pengambilan setiap 8 bit mengikuti urutan angka pada gambar dengan urutan angka (1, 2, 3, … 28) Kemudian dimasukkan kembali ke dalam kolom matriks dari kanan atas mengikuti anak panah dan urutan angka hingga berakhir pada angka 64.
64 56 48 40 32 24 16 8
1
2
3
4
5
6
7
8 63 55 47 39 31 23 15 7 9 10 11 12 13 14 15 16 62 54 46 38 30 22 14 6 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 61 53 45 37 29 21 13 5 60 52 44 36 28 20 12 4 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 59 51 43 35 27 19 11 3 49 50 51 52 53 54 55 56 58 50 42 34 26 18 10 2 57 58 59 60 61 62 63 64 57 49 41 33 25 17 9 1
Gambar 12 Pola Transposisi Bit Kunci Proses 2
Gambar 12 merupakan proses pengambilan dan pemasukan bit kunci pada proses 2.Pengambilan diambil setiap 8 bit mengikuti urutan angka secara horizontal, dimulai dari kanan bawah hingga berakhir pada bagian kiri atas dari angka (1-8, 9-16, … 57-64) pada gambar kiri. Kemudian pada gambar bagian kanan dimasukkan kembali mengikuti anak panah secara vertikal dengan urutan angka (1-8, 9-16, … 57-64) pada gambar kanan. Hasil dari transposisi plaintext dan kunci di-XOR kemudian menghasilkan ciphertext 2.
Ciphertext 3 kemudian diambil setiap 8 bit sesuai dengan pola pemasukan pada P2. Hasil
dari pengambilan C2 dikonversi ke bilangan heksadesimal kemudian ditransposisi ke dalam tabel substitusi S-Box. Hasil transposisi kemudian dikonversi kembali ke bilangan biner dan dimasukkan ke dalam kolom matriks yang akan dijadikan sebagai P3 pada proses 3. S-Box sendiri berfungsi untuk Transformasi SubBytes() memetakan setiap byte dari arraystate.
Gambar 13 Tabel Substitusi S-Box AES
Gambar 13 merupakan tabel substitusi S-box yang digunakan dalam proses enkripsi. Cara pensubstitusian adalah sebagai berikut: untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini xy adalah digit heksadesimal dari nilai S[r, c], maka nilai substitusinya, dinyatakan dengan S’[r, c], adalah elemen di dalam S-box yang merupakan perpotongan baris x dengan kolom y.Misalnya S[0, 0] = 19, maka S’[0, 0] = d4.
Untuk pengujian algoritma dilakukan dengan mengambil plaintext adalah MAIP2004dan kunci adalah BLOCK CIPHER 64 BIT NOTASI BALOK 1/8. Setelah melewati proses enkripsi dan proses dekripsi yang telah dijabarkan sebelumnya maka mendapatkan ciphertext yang telah dikonversi ke dalam nilai hexadecimal.
Tabel 3 Hasil Ciphertext Setiap Putaran
PutaranPlaintext Hasil Hexadecimal
Char
1 MAIP2004 CE31C33148A263 Œ1√1H &
2 Œ1√1H & 904CD2472F523A
êL“G/R
3 êL“G/R FAA83A610A0F8CD ˙đả†¯ế
4 ˙đả†¯ế 5238BDE7D2762C4F R8ΩÁ“v,O
5 R8ΩÁ“v,O
6 :vçJùfiä D462F4CD8F55BBA ‘bÙÕèU
5FDD2F49A3014EE _ “Ùö0Ó
12D9D2F2855221ED Ÿ“ÚÖR!Ì
6A271170D1D6A88D j'p—ữđỗ 20 j'p—ữđỗ
19 W20‰.‘
61ADB3C2EC5798E a≠≥¬ÏWò
18 a≠≥¬ÏWò 571D32301CE42ED4 W20‰.‘
17 C/º*Uuœ
#+N=RCãπ
16 #+N=RCãπ 432FBC102A5575CF C/º*Uuœ
15 _ “Ùö0Ó 232B4E3D52438BB9
14 L^Ô$ºTè
∫
4C5EEF1024BC548F L^Ô$ºTè
26C7AD45F9C7AE9A &«≠E˘«Æö 13 &«≠E˘«Æö
7A3484CDC3CBE391 z4ÑÕ√À„ë
11 z4ÑÕ√À„ë A244EE2BF6A6895 ¢D‚øjhï
12 ¢D‚øjhï9A245BC6A0906DCD ö$[∆†êmÕ
9 ö$[∆†êmÕ 37984679D2E7F544 7òFy“ÁıD
10 7òFy“ÁıD3A768D4A9DDE8AB :vçJùfiä
‘bÙÕèU ∫ 8 ‘bÙÕèU
7 ‘bÙÕèU ∫ D462F4CD8F55BBA
∫ Tabel 3 merupakan hasil enkripsi dari setiap putaran. Hasil dari putaran 20 merupakan final ciphertext.
Proses dekripsi merupakan kebalikan dari proses enkripsi. Dekripsi dilakukan dengan memproses kunci sampai putaran ke-20 kemudian ciphertext dimasukkan dengan k4 pada proses keempat.
Gambar 14 Bagan Proses Dekripsi
Gambar 14 menunjukkan alur proses pengembalian ciphertext dan plaintext. Pola yang digunakan sebagai pola pengambilan bit pada proses enkripsi akan digunakan sebagai pola pemasukan pada proses dekripsi. Sebaliknya pola pemasukan yang akan digunakan pada proses enkripsi akan digunakan sebagai pola pengambilan proses dekripsi sehingga dapat dikatakan pola notasi balok 1/8 digunakan sebagai pola pemasukan bit pada proses dekripsi.
Proses dekripsi dimulai dengan memasukkan ciphertext pada kolom matriks C4 kemudian di-XOR dengan K4 hasil proses kunci pada proses keempat. Hasil XOR kemudian ditransposisikan menggunakan notasi balok 1/8. Algoritma kriptografi berbasis pada notasi balok 1/8 merupakan kriptografi kunci simetris, sehingga untuk proses dekripsi dari algoritma ini merupakan kebalikan dari proses enkripsi yang terdiri dari 20 putaran dan menggunakan kunci yang sama.
57 49 41 33 25 17 9 1 29 25 17 30 31 32 33 34 58 50 42 34 26 18 10 2 26 24 18 16 35 36 37 38 59 51 43 35 27 19 11 3 27 23 19 15 39 40 41 42 60 52 44 36 28 20 12 4 28 22 20 14 11 10 7 6 61 53 45 37 29 21 13 5 43 44 21 13 12 9 8 5 62 54 46 38 30 22 14 6 45 46 47 48 49 50 3 4 63 55 47 39 31 23 15 7 51 52 53 54 55 1 2 64 64 56 48 40 32 24 16 8 56 57 58 59 60 61 62 63
Gambar 15 Pola Transposisi Bit Plaintext Proses 20
Gambar 15 merupakan pola transposisi dekripsi pada proses 20. Bit hasil XOR C20 dan K20 diambil menggunakan pola pada gambar bagian kanan. Setiap 8 bit diambil dari kanan atas ke kiri bawah mengikuti anak panah pada urutan angka pada kolom matriks. Kemudian bit dimasukkan kembali menggunakan pola notasi balok 1/8 pada gambar bagian kiri mengikuti urutan angka (1, 2, 3, … 28) dengan pola berwarna biru dan dilanjutkan dengan urutan angka (29, 30, … 64). Hasil dari dekripsi proses 20 kemudian dijadikan sebagai ciphertext 19 pada proses 19.
57 58 59 60 61 62 63 64 29 30 31 32 28 27 26 33 49 50 51 52 53 54 55 56 34 35 36 37 22 23 24 25 41 42 43 44 45 46 47 48 38 39 40 21 20 19 18 17 33 34 35 36 37 38 39 40 41 42 43 13 14 15 16 52 25 26 27 28 29 30 31 32 44 45 46 12 11 53 54 55 17 18 19 20 21 22 23 24 47 1 48 9 10 56 57 58
9 10 11 12 13 14 15 16 49 2 3 8 7 59 60 61 1 2 3 4 5 6 7 8 50 51 4 5 6 62 63 64
Gambar 16 Pola Transposisi Bit Plaintext Proses 19
Gambar 16 merupakan pola transposisi deskripsi pada proses 19. Bit hasil XOR C19 dan K19 diambil menggunakkan pola pada gambar bagian kanan. Setiap 8 bit diambil dari kiri bawah ke kanan atas mengikuti anak panah dan urutan angka pada kolom matriks. Kemudian bit dimasukan kembali menggunakan pola notasi balok 1/8 pada gambar bagian kiri mengikuti urutan angka (1, 2, 3, … 28) dengan urutan berwarna hijau dan dilanjutkan dengan urutan angka (29, 30, … 64).
Tabel 4 Algoritma Proses Enkripsi dan Dekripsi.
. .
15. Hasil XOR ditransposisikan terbalik dengan pola Notasi Balok 1/8 B menghasilkan P4
14. C4 di-XOR dengan K4
13. Bit BINER dimasukkan ke kolom P4 menggunakan pola masuk Plaintext
12. ASCII diubah ke BINER
11. C4 diubah ke ASCII
10. Masukkan C4
9. Hasil HEXA invers diubah ke BINER .
17. BINER diubah ke HEXA
8. BINER diubah ke HEXA
7. Bit P20 diubah ke BINER
6. Hasil XOR ditransposisikan terbalik dengan pola Notasi Balok 1/8 B menghasilkan P20
5. C20 di-XOR dengan K20
4. Bit BINER dimasukkan ke kolom P20 menggunakan pola masuk Plaintext
3. ASCII diubah ke BINER
16. Bit P4 diubah ke BINER
18. Hasil HEXA invers diubah ke BINER
1. Masukkan C20
27. C2 di-XOR dengan K2
33. BINER diubah ke ASCII
32. P1 diubah ke BINER
31. Hasil XOR ditransposisikan terbalik dengan pola Notasi Balok A menghasilkan P1
30. C1 di-XOR dengan K1
29. P2 = C1
28. Hasil XOR ditransposisikan terbalik dengan pola Notasi Balok 1/8 C menghasilkan P2
26. BINER dimasukkan ke dalam kolom C2 menggunakan pola masuk plaintext
19. BINER dimasukkan ke dalam kolom C3 menggunakan pola masuk plaintext
25. Hasil HEXA invers diubah ke BINER
24. HEXA dimasukkan ke dalam tabel S-BOX
23. BINER diubah ke HEXA
22. Bit P3 diubah ke BINER
21. Hasil XOR ditransposisikan terbalik dengan pola Notasi Balok 1/8 D menghasilkan P3
20. C3 diXOR dengan K3
2. C20 diubah ke ASCII
31. ASCII diubah ke HEXA
Tabel 4 merupakan algoritma proses enkripsi dan dekripsi. Proses enkripsi menghasilkan C4 sedangkan proses dekripsi menghasilkan P1. Algoritma proses Kunci (Key) dijelaskan sebagai berikut :
6. P1 di-XOR dengan K1 menghasilkan C1
12. Hasil HEXA invers diubah ke BINER
11. BINER diubah ke HEXA
10. C2 diubah ke BINER
9. P2 di-XOR dengan K2 menghasilkan C2
8. Bit P2 ditransposisikan menggunakan pola Notasi Balok 1/8 C
7. C1 = P2
5. Bit P1 ditransposisikan dengan pola Notasi Balok 1/8 A
14. Bit P3 ditransposisikan menggunakan pola Notasi Balok 1/8 D
4. Bit BINER dimasukkan ke kolom P1 menggunakan pola masuk Plaintext
3. ASCII diubah ke BINER
2. Plaintext diubah ke ASCII
1. Masukkan plaintext
2. Kunci diubah ke ASCII Algoritma Proses Enkripsi Algoritma Proses Dekripsi
1. Masukkan Kunci
13. BINER dimasukkan ke dalam kolom P3 menggunakan pola masuk plaintext
15. P3 di-XOR dengan K3 menghasilkan C3
30. BINER diubah ke ASCII
24. BINER diubah ke ASCII
29. C20 diubah ke BINER
28. P20di-XOR dengan K20 menghasilkan C20
27. Bit P20 ditransposisikan menggunakan pola Notasi Balok B
26. BINER dimasukkan ke dalam kolom P20 menggunakan pola masuk plaintext
. .
25. ASCII diubah ke HEXA .
23. C4 diubah ke BINER
16. C3 diubah ke BINER
22. P4 di-XOR dengan K4 menghasilkan C4
21. Bit P4 ditransposisikan menggunakan pola Notasi Balok B
20. BINER dimasukkan ke dalam kolom P4 menggunakan pola masuk plaintext
19. Hasil HEXA invers diubah ke BINER
18. HEXA dimasukkan ke dalam tabel S-BOX
17. BINER diubah ke HEXA
34. ASCII diubah ke CHAR
3. ASCII diubah ke BINER
4. Bit BINER dimasukkan ke kolom K1 menggunakan pola masuk Kunci
5. Bit Kunci ditransposisikan dengan pola Kunci A
6. Transposisi K1 = K2
7. K2 ditransposisikan menggunakan pola Kunci C
8. Transposisi K2 = K3
9. K3 ditransposisikan menggunakan pola Kunci D
10. Transposisi K3 = K4
11. K4 ditransposisikan menggunakan pola Kunci B
Pseudocode proses enkripsi dan dekripsi dijelaskan sebagai berikut : Proses Enkripsi {Program ini digunakan untuk melakukan proses enkripsi data} Kamus P,K,P1,P2,P3,P4,K1,K2,K3,K4, = integer C1,C2,C3,C4 = integer Start C1 <- P1 ⨁ K1
Input P Read P P to ASCII ASCII to BINER Dari BINER = kolom matriks P1, masukkan BINER
P1 Transposisi mengunakan Pola Notasi Balok 1/8 A
Output P1 Input K Read K K to ASCII
ASCII to BINER Dari BINER = kolom matriks K1, masukkan BINER K1 Transposisi mengunakan Kunci A Output K1
Print C1 C1 = P2 C2 <- P2 ⨁ K2 Dari C1 = kolom matriks P2, masukkan C1
P2 Transposisi menggunakan Pola Notasi Balok 1/8 C Output P2 Dari K1 = kolom matriks K2, masukkan K1 K2 Transposisi menggunakan pola Kunci C Ouput K2 Print C2
C2 = P3 C3 <- P3 ⨁ K3 Dari BINER S-Box = kolom matriks P3, Masukkan BINER S-Box P3 Transposisi menggunakan pola Notasi Balok D Output P3 Dari K2 = kolom matriks K3, masukkan K2
K3 Transposisi menggunakan pola Kunci D Output K3 Print C3 Biner S-Box <- Invers Hexa C3
C3 to BINER BINER to HEXA Dari HEXA = Tabel S-Box, masukkan HEXA HEXA Substitusi menggunakan S-Box
Print BINER S-Box Return Biner S-Box BINER S-box = P3 C2 <- P2 ⨁ K2
Dari BINER S-BOX = kolom matriks P4, masukkan BINER S-Box P4 Transposisi menggunakan Pola Notasi Balok B Output P4 Dari K3 = kolom matriks K4, masukkan K3
K4 Transposisi menggunakan pola Kunci B Ouput K Print C4 . . . Biner S-Box <- Invers Hexa C19 C19 to BINER
BINER to HEXA Dari HEXA = Tabel S-Box, masukkan HEXA HEXA Substitusi menggunakan S-Box Print BINER S-Box
Return Biner S-Box BINER S-box = P19 C18 <- P18⨁ K18 Dari BINER S-BOX = kolom matriks P20, masukkan BINER S-Box
P20 Transposisi menggunakan Pola Notasi Balok B Output P20 Dari K19 = kolom matriks K20, masukkan K19 K20 Transposisi menggunakan pola Kunci B Ouput K Print C20
Repeat End Proses Dekripsi {Program ini digunakan untuk melakukan proses dekripsi data} Kamus P,C,K,P1,P2,P3,P4,K1,K2,K3,K4, = integer C1,C2,C3,C4 = integer Start K20<- Traposisi K19
Input K Read K K to ASCII ASCII to BINER Dari BINER = kolom matriks K19, masukkan BINER K19 Transposisi menggunakan pola Kunci B
Output K20 . . .
K2 <- Traposisi K1 Input K Read K K to ASCII
ASCII to BINER Dari BINER = kolom matriks K1, masukkan BINER K1 Transposisi menggunakan pola Kunci B Output K2
K3 <- Traposisi K2 K2 Transposisi mengunakan pola Kunci D Output K3 K4 <- Traposisi K3
K3 Transposisi mengunakan pola Kunci C Output K4 K4 Transposisi menggunakan pola Kunci A P20<- Transposisi dari hasil C20⨁ K20 Input C Read C
C20 to ASCII ASCII to BINER Dari BINER = kolom matriks C20, masukkan BINER C20⨁ K20
Transposisi terbalik menggunakan Pola Notasi Balok 1/8 B Print P20 . . . P4 <- Transposisi dari hasil C4 ⨁ K4
- 0,298160952
- 0,346887879
- 0,125159327
- 0,270476923
- 0,654631272
- 0,082491026
- 0,073162722
- 0,798533303
- 0,187512261
20
10
19
9 0,652056687
18 0,022467997
8
17 0,137061567
7 0,613336628
16
6 0,613336628
15 0,501202893
5 0,074659043
14
13 0,042299117
4 0,488745578
3
12
2
11 0,04988338
1 0,619602687
Tabel 5 Nilai Korelasi Putaran
KORELASI
PUTARAN KORELASI PUTARAN KORELASI
Pengujian korelasi digunakan untuk mengukur seberapa acak perbandingan antara hasil enkripsi (ciphertext) dan plaintext. Nilai korelasi sendiri berkisar 1 sampai -1, dimana jika nilai korelasi mendekati 1 maka plaintext dan ciphertext memiliki hubungan yang sangat kuat, tetapi jika mendekati 0 maka plaintext dan ciphertext memiliki hubungan yang tidak kuat.
P2 ⨁ K2 Transposisi terbalik menggunakan Pola Notasi Balok 1/8 A Print P1 P1 to BINER BINER to ASCII ASCII to CHAR Print P End
Transposisi terbalik menggunakan Pola Notasi Balok 1/8 C Print P2 P2=C1 P1<- Transposisi dari hasil C1 ⨁ K1
Transposisi terbalik menggunakan Pola Notasi Balok 1/8 D Print P3 P2 <- Transposisi dari hasil C3 ⨁ K3 P3⨁ K
P4 to BINER BINER to HEXA Dari HEXA = Tabel S-Box, masukkan HEXA HEXA Substitusi menggunakan S-Box Dari BINER S-Box = kolom matriks C3, Masukkan BINER S-Box C3 ⨁ K3
Transposisi terbalik menggunakan Pola Notasi Balok 1/8 B Print P4 P3 <- Transposisi dari hasil C3 ⨁ K3 Biner S-Box <- Invers Hexa P4
Input C Read C C4 to ASCII ASCII to BINER Dari BINER = kolom matriks C4, masukkan BINER C4 ⨁ K4
Pada Tabel 5 menunjukkan setiap putaran pada pola terbaik A-B-C-D memiliki kombinasi nilai optimal mendekati 0 dengan korelasi tertinggi -0,798533303 pada putaran 10 dan korelasi terendah 0,022467997 pada putaran ke 18. Sehingga dapat disimpulkan bahwa algoritma kriptografi block cipher 64 bit berbasis pola notasi balok dapat menghasilkan nilai yang acak dan nilai interval koefisien korelasi dapat mempengaruhi metode pola notasi balok 1/8.
Gambar 17 Grafik Perbandingan Plaintext dan Ciphertext
Gambar 17 menunjukkan bahwa pada setiap putaran terdapat perbedaan yang signifikan antara bilangan desimal plaintext dan bilangan desimal ciphertext. Pada Gambar 17 juga merupakan grafik hasil korelasi tertinggi dan terendah dimana nilai korelasi yang didapat yaitu korelasi tertinggi -0,798533303 pada putaran ke-10 dan korelasi terendah 0,022467997 pada putaran ke-18.
Hasil Pengujian Avalanche Effect ditunjukkan pada Tabel 6, dan dalam bentuk grafik pada Gambar 18.
Tabel 6 Hasil Pengujian Avalanche Effect
PUTARAN JUMLAH BIT PRESENTASE
1 29 45,3125
2 34 53,125
3 33 51,5625
4 36 56,25
5 40 62,5
6 37 57,8125
7 37 57,8125
8
32
50
9 33 51,5625
10 41 64,0625
11 31 48,4375
12 37 57,8125
13 26 40,625
14 23 35,9375
15 34 53,125
16 31 48,4375
17 35 54,6875
18 30 46,875
19 30 46,875
20 33 51,5625 Rata-Rata 51,71875
Gambar 18 Grafik Pengujian Avalanche Effect
Pada Gambar 18 plaintext yang digunakan pada grafik Avalanche Effect menunjukkan hasil yang tidak stabil karena terjadi peningkatan paling tertinggi pada putaran ke-10 yaitu 41 bit dengan presentase 64,0625% namun pada putaran ke-14 terjadi penurunan 22 bit dengan presentase 35,9375% dan kembali meningkat pada putaran ke-15 sebanyak 11 bit dengan jumlah presentase 53,125%. Kemudian pada putaran ke-18 dan putaran ke-19 terjadi kestabilan bit dengan presentase yang sama 46,875%, dan pada putaran ke-20 terjadi peningkatan 3 bit dengan jumlah presentase 51,5625%. Berdasarkan hasil tersebut nilai rata-rata Avalanche Effect dari putaran ke-1 sampai putaran ke-20 mencapai 51,71875%.
5. Simpulan
Berdasarkan penelitian yang dilakukan dapat disimpulkan bahwa kriptografi block cipher 64-Bit yang berbasis pola notasi balok 1/8 dapat melakukan enkripsi dan dekripsi serta memenuhi konsep 5-tuple sehingga dapat dikatakan sebagai sistem kriptografi. Adapun pengujian korelasi pada setiap putaran memiliki nilai korelasi acak yaitu pada putaran 10 dengan nilai tertinggi -0,798533303 dan korelasi terendah 0,022467997 pada putaran ke 18. Sehingga dapat disimpulkan kriptografi block cipher 64 Bit berbasis pola notasi balok 1/8 dapat menghasilkan output enkripsi yang acak sehingga dapat diterapkan untuk mengamankan data atau informasi berupa teks. Hasil pengujian avalanche effect menunjukkan bahwa S-Box berpengaruh dalam proses enkripsi avalanche effect yang mencapai 51,71875%.
Daftar Pustaka
[1] Tomasoa, L.,Pakereng, M. A. I., Pengaruh S-Box Advanced Encryption Standard (AES) Terhadap Avalanche Effect Pada Perancangan Kriptografi Block Cipher 256 Bit Berbasis
Pola Teknik Tarian Dansa Tali Dari Maluku . Salatiga: Jurusan Teknik Informatika Universitas Kristen Satya Wacana.
[2] Bili, D.D. Pakereng, M. A. I., Wowor, A.D., 2015, Perancangan Kriptografi Block Cipher Dengan Langkah Kuda. Salatiga: Jurusan Teknik Informatika Universitas Kristen Satya Wacana.
[3] Frellian Tuhumury., 2016, Perancangan Algoritma Kriptografi Block Cipher 256 bit berbasis pada pola Tuangan Air. Salatiga: Jurusan Teknik Informatika Universitas Kristen Satya Wacana. [4] Schneier, B., 1996, Applied Cryptography, Secon Editor, New York: John Wiley and Sons. [5] diakses pada
24 Agustus 2017 [6] Pakereng, M. A. I., 2010, Kriptografi Dengan Algoritma Genetika, Salatiga: Widya Sari. [7] Munir,R., 2006, Kriptografi, Bandung: Informatika. [8] Stinson, D. R., 1995. Cryptography: Theory and Practice. CRC Press, Boca Raton, London, Tokyo. [9] Dafid, 2006, Kriptografi Kunci Simetris dengan Menggunakan Algoritma Crypton, STMIK MDP Palembang.