Rancangan Kriptografi Block Cipher 128-bit Menggunakan Pola Lantai dan Gerakan Tangan Tarian Ja’i
Artikel Ilmiah
Peneliti : Trisna Capriani Rambu Ngana Wonda (672010105) Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga April 2016
Rancangan Kriptografi Block Cipher 128-bit Menggunakan Pola Lantai dan Gerakan Tangan Tarian Ja’i
Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer
Peneliti : Trisna Capriani Rambu Ngana Wonda (672010105) Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga April 2016
i
ii
iii
iv
v
vi
1. Pendahuluan Komunikasi yang menggunakan teknologi saat ini sudah sangat rentan untuk dijaga kerahasiaannya karena informasi yang diberikan dapat diubah, disisipkan ataupun dihilangkan oleh berbagai pihak. Berbagai upaya telah dilakukan untuk menjamin keamanan dari pertukaran informasi yang dilakukan. Salah satu cara yang dilakukan adalah dengan menyandikan (mengenkripsi) informasi atau pesan rahasia yang akan dikirim. Hal ini bertujuan agar meskipun pihak yang tidak berkepentingan dapat membaca informasi tersebut, tetapi akan mendapatkan kesulitan untuk memahami isi dari informasi yang dia dapatkan. Kriptografi merupakan salah satu cara untuk menjaga kerahasiaan informasi atau data dari pihak-pihak yang tidak diinginkan. Kriptografi sendiri menurut terminologinya adalah ilmu (cryptós) dan seni (gráphein) untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain [1]. Pesan ini terlindung karena pesan asli akan diubah menjadi pesan cipher (pesan sandi) dengan menggunakan kunci tertentu sehingga pesan ini tidak dapat diketahui pihak yang tidak berkepentingan. Dalam kriptografi itu sendiri terdapat beragam algoritma enkripsi yang dapat digunakan, salah satunya adalah block cipher. Block cipher menyandikan plaintext menjadi blok ciphertext dengan proses enkripsi yang identik dan keseluruhan blok plaintext disandikan dengan kunci yang sama. Input dan output dari block cipher berupa satu blok yang terdiri dari beberapa bit (satu blok terdiri dari 64-bit atau 128-bit). Block cipher juga kerap kali digunakan sebagai salah satu cara pengamanan di internet, seperti DES dan AES yang digunakan sebagai standar keamanan dalam berkomunikasi, transfer data maupun untuk transaksi keuangan [2]. Contoh penerapan dari kriptografi dalam kehidupan sehari-hari yaitu untuk pengamanan pada transaksi internet banking dimana dilakukan enkripsi pada pesan serta autentikasi pada nasabah (customer) dan pihak bank yang melakukan transaksi [3]. Selain dari contoh yang telah disebutkan, kriptografi juga diterapkan dalam pemungutan suara berbasis elektronik (e-voting) dimana metode kriptografi diterapkan untuk dapat merubah data pesan suara menjadi data rumit yang tidak dapat terbaca dan penggunaan sidik jari untuk menjamin validitas dari pemilih pada saat proses pemilihan umum [4]. Penelitian ini merancang kriptografi block cipher dengan menggunakan pola tarian ja’i, yaitu pola lantai serta pola gerakan tangan dari tarian ja’i. Penggunaan pola lantai dan gerakan tangan tarian ja’i ini sesuai dengan kriptografi karena menggunakan pola dari tarian sebagai transposisi pada blok yang ada. Berdasarkan pola lantai yang ada diterapkan sebagai pola pada proses pemasukan dan pengurutan kriptografi block cipher 128-bit sehingga menghasilkan teknik kriptografi yang dapat mengacak setiap bloksecara unik sesuai dengan pola tarian. Kombinasi dari kriptografi block cipher dan pola tarian ja’i bertujuan untuk menciptakan suatu kriptografi block cipher yang baru dan unik yang dapat digunakan untuk menyandikan suatu pesan dan menjaga kerahasiaan dari pesan tersebut.
1
2. Tinjauan Pustaka Penelitian pertama berjudul “Perancangan Kriptografi Block Cipher dengan Langkah Kuda”. Tulisan ini membahas tentang penggunaan algoritma langkah kuda dalam kriptografi block cipher yang kemudian diimplementasikan ke dalam aplikasi untuk mengenkripsi dan mendekripsi data. Dalam penelitian ini, dilakukan proses enkripsi dan dekripsi pada rangkaian biner plaintext berukuran 64-bit dengan kunci yang memiliki panjang yang sama. Pada prosesnya digunakan fungsi padding (penambahan jumlah byte) pada proses enkripsi dan fungsi unpadding (pengurangan jumlah byte) pada kunci. [5] Penelitian kedua berjudul “Perancangan Algoritma pada Kriptografi Block Cipher dengan Teknik Langkah Kuda dalam Permainan Catur”. Tulisan ini membahas tentang penggunaan teknik langkah kuda dalam permainan catur sebagai algoritma yang digunakan dalam proses pemasukan dan pengambilan bit. Penelitian ini menggunakan 4 putaran pada blok bit berukuran 8x8 (64-bit) dimana setiap putaran mempunyai dua proses yaitu proses pemasukan bit dan pengambilan bit yang dilakukan baik pada plainteks maupun pada kunci. Hasil dari putaran ini akan di XOR sehingga akan mendapatkan cipherteks pada proses yang terakhir. [6] Penelitian ketiga berjudul “Perancangan dan Implementasi Kriptografi Block Cipher Berbasis pada Bentuk Piramida dan Linear Congruential Generator”. Penelitian ini membahas tentang perancangan algoritma kriptografi block cipher, dengan proses enkripsi mengacak rangkaian biner plaintext kedalam matriks 16×8(128bit) dengan menggunakan pola seperti bentuk piramida sebagai pola pengambilan, yang dilakukan operasi matematika exclusive or (XOR) pada bilangan biner plaintext terhadap kunci yang telah dilakukan proses pengacakan dengan pembangkit kunci Linear Congruential Generator. Enkripsi pada algoritma ini dirancang dengan mempunyai 4 putaran sehingga menghasilkan ciphertext. [7] Penelitian-penelitian tersebut menjadi acuan dalam pengembangan ide untuk perancangan kriptografi block cipher dengan menggunakan kunci simetris. Perbedaan dengan penelitian terdahulu adalah blok yang digunakan berukuran 16x8 (128-bit) dengan perbesaran pada bit kunci, dan dilakukan proses enkripsi-dekripsi menggunakan algoritma pola tariandan gerakan tangan dari tarian ja’i. Selanjutnya akan dibahas mengenai dasar-dasar teori yang digunakan dalam perancangan kriptografi dalam penelitian kali ini. Kriptografi merupakan ilmu yang mempelajari teknik-teknik yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, dan otentikasi [8]. Secara umum, kriptografi mempunyai dua proses utama seperti yang dapat dilihat dibawah ini:
Gambar 1. Proses enkripsi dan dekripsi [2]
2
Enkripsi merupakan proses untuk mengubah sebuah pesan (informasi) sehingga tidak dapat dilihat tanpa menggunakan kunci pembuka. Sebuah pesan awal yang tidak dienkripsi disebut plainteks, sedangkan yang sudah dienkripsi dinamakan cipherteks. Pesan dalam bentuk plainteks diubah dengan algoritma enkripsi sehingga menjadi cipherteks. Proses sebaliknya untuk mengembalikan cipherteks menjadi plainteks dinamakan dekripsi [9]. Block cipher merupakan satu algoritma dimana input dan output-nya berupa satu blok dan satu blok memiliki rangkaian bit. Rangkaian bit dalam block cipher dibagi dalam blok-blok yang memiliki panjang yang sama biasanya 64-bit atau 128-bit [6]. Block cipher mempunyai banyak aplikasi yang digunakan untuk memberikan layanan confidentially (kerahasiaan), integritas data atau authentication (pengesahan pemakai), dan juga bisa memberikan layanan keystream generator untuk stream cipher [1]. Skema dari proses enkripsi-dekripsi block cipher dapat dilihat pada gambar dibawah ini :
Gambar 2. Skema enkripsi – dekripsi
Misalkan blok plainteks (P) yang dinyatakan dalam n bit, maka [5]: P p1 , p2 , p3 ,..., pn (1) dimana pi adalah 0 atau 1 untuk i = 1, 2, 3, …, n Blok cipherteks (C) : C c1 , c2 , c3 ,..., cn (2) dimana ciadalah 0 atau 1 untuk i = 1, 2, 3, …, n Blok kunci (K) : K k1 , k 2 , k3 ,..., k n (3) dimana ki adalah 0 atau 1 untuk i = 1, 2, 3, …, n Maka proses enkripsinya: E K P C
(4)
dimana C merupakan ciphertext hasil dari proses enkripsi (E) dengan kunci (K) terhadap plaintext (P). Serta proses dekripsinya: (5) DK C P dimana proses dekripsi (D) dengan kunci (K) terhadap ciphertext (C) menghasilkan plaintext (P).
3
Operasi biner yang sering dipakai dalam cipher yang beroperasi dalam mode bit adalah XOR atau exclusive-or [5]. Operator XOR digunakan dengan aturan: 00 0 0 1 1 1 0 1 11 0 Sistem kriptografi terdiri dari 5-tuple (Five Tuple) (P, C, K, E, D) yang memenuhi kondisi [9]: 1. P adalah himpunan berhingga dari plaintext 2. C adalah himpunan berhingga dari ciphertext 3. K merupakan ruang kunci (keyspace) adalah himpunan berhingga dari kunci 4. E adalah himpunan fungsi enkripsi ek : P C 5. Dadalah himpunan fungsi dekripsi d k : C P Untuk setiap k K , terdapat aturan enkripsi ek E dan berkorespondensi dengan aturan dekripsi d k D . Setiap ek : P C dan d k : C P adalah
fungsi sedemikian hingga d k ek x x untuk setiap plainteks x P . Teknik statistik yang digunakan untuk mengukur kekuatan hubungan antara dua variabel serta untuk mengetahui bentuk hubungan antara kedua variabel adalah korelasi. Korelasi sendiri bersifat kuantitatif. Koefisien korelasi merupakan kekuatan hubungan antara dua variabel, yang dilambangkan dengan simbol “r”. Nilai koefisien r akan selalu berada diantara -1 xampai +1 sehingga diperoleh persamaan [5]: −1 ≤
≥ +1
(6)
Berdasarkan persamaan di atas maka diperoleh nilai r 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. r= 3.
{ ∑
∑
(∑ )(∑ )
(∑ ) }{ ∑
(∑
(7)
)}
Metode Penelitian dan Perancangan Sistem Dalam penelitian ini dilakukan melalui beberapa tahapan yaitu: (1) Identifikasi masalah dan studi literatur, (2) analisa kebutuhan, (3) perancangan kriptografi, (4) uji kriptografi dan analisa hasil, (5) penulisan laporan.
4
Identifikasi Masalah dan Studi Literatur Analisa Kebutuhan Perancangan Kriptografi Uji Kriptografi dan Analisa Hasil Penulisan Laporan Gambar 3. Langkah-langkah penelitian
Langkah-langkah penelitian seperti pada gambar 3 diatas dapat dijelaskan sebagai berikut: (1) Tahap pertama: Identifikasi masalah dan studi literatur yaitu mengidentifikasi masalah apa yang akan dibahas berkaitan dengan kriptografi block cipher. Kemudian dilakukan studi literatur untuk mengumpulkan bahan-bahan yang dibutuhkan. Pada tahap ini peneliti menguraikan dan menjelaskan masalah yang akan diambil kemudian merumuskannya ke dalam batasan masalah. Batasan masalah yang diambil dalam perancangan kriptografi block cipher 128-bit menggunakan pola lantai dan gerakan tangan tarian ja’i adalah: - Proses enkripsi-dekripsi dilakukan terhadap file teks. - Ukuran blok yang digunakan untuk plainteks dan kunci adalah 16x8 (128-bit). (2) Tahap kedua: Analisa kebutuhan yaitu menganalisa apa saja yang dibutuhkan dalam perancangan kriptografi dan penyelesaian penelitian ini. Masalah-masalah yang telah dirumuskan sebelumnya menjadi acuan dalam pengumpulan bahan yang dibutuhkan seperti jurnal dan penelitianpenelitian terdahulu yang berkaitan dengan kriptografi block cipher. (3) Tahap ketiga: Perancangan kriptografi yaitu perancangan kriptografi block cipher dengan menggunakan pola tarian ja’i. Pada tahap ini dilakukan pembuatan bagan proses enkripsi-dekripsi serta gambaran umum dari pembuatan teknik kriptografi. Rancangan proses enkripsi dan dekripsi dari plainteks dan kunci mengikuti pola tarian ja’i. Rancangan yang sudah dilakukan kemudian dihitung manual secara matematis untuk proses pengacakan serta proses enkripsi-dekripsi. (4) Tahap keempat: Uji kriptografi dan analisa hasil, yaitu dilakukan pengujian terhadap kriptografi yang telah dibuat untuk melihat apakah sesuai dengan yang diharapkan. Dilakukan pengujian menggunakan 5tuple, serta menganalisa nilai korelasi dari setiap proses dan korelasi dari tiap pola. Juga dilakukan implementasi berupa program aplikasi untuk menguji jalannya proses enkripsi-dekripsi secara otomatis.
5
(5) Tahap kelima: Penulisan laporan dengan mendokumentasikan proses penelitian yang sudah dilakukan dari awal hingga akhir. Perancangan algoritma kriptografi ini dilakukan dua (2) proses yaitu: enkripsi dan dekripsi. Proses enkripsi pada kriptografi block cipher dengan pola tarian ja’i menggunakan lima (5) kali putaran seperti dijelaskan pada gambar dibawah ini:
Gambar 4. Rancangan proses enkripsi
Tahapan dan langkah-langkah rancangan proses enkripsi dari kriptografi block cipher tarian ja’i adalah sebagai berikut: - Plainteks (PL1) yang akan dienkripsi diubah menjadi hexadecimal kemudian dikenakan pola tarian ja’i dan di XOR dengan kunci 1 (K1). Hasil dari proses XOR ini menghasilkan plainteks 2 (PL2). K1 kemudian dikenakan pola tarian ja’i dan menghasilkan kunci 2 (K2). - Plainteks 2 (PL2) kemudian dikenakan pola tarian ja’i dan di XOR dengan kunci 2 (K2) sehingga menghasilkan plainteks 3 (PL3).Kunci dikenakan pola tarian ja’i menghasilkan kunci 3 (K3). - Plainteks 3 (PL3) kemudian dikenakan pola tarian ja’i dan di XOR dengan kunci 3 (K3) sehingga menghasilkan plainteks 4 (PL4). Kunci dikenakan pola tarian ja’i menghasilkan kunci 4 (K4). - Plainteks 4 (PL4) dikenakan pola tarian ja’i dan di XOR dengan kunci 4 (K4) sehingga menghasilkan plainteks 5 (PL5). Kunci dikenakan pola tarian ja’i menghasilkan kunci 5 (K5). - Plainteks 5 (PL5) dikenakan pola tarian ja’i dan di XOR dengan kunci 5 (K5) sehingga menghasilkan cipherteks (C). 6
Setelah dilakukan proses enkripsi seperti pada gambar 4, maka untuk mengembalikan cipherteks yang sudah didapat menjadi pesan awal dilakukan proses dekripsi seperti yang ditunjukkan dalam Gambar 5:
Gambar 5. Rancangan proses dekripsi
Tahapan proses dekripsi dari kriptografi block cipher dengan pola tarian ja’i seperti yang dijelaskan pada gambar 5, yaitu: - Cipherteks (C1) yang akan didekripsi dikenakan pola tarian ja’i kemudian di XOR dengan kunci 5 (K5) sehingga menghasilkan cipherteks 2 (C2). - Cipherteks (C2) dikenakan pola tarian ja’i dan di XOR dengan kunci 4 (K4) sehingga menghasilkan cipherteks 3 (C3). - Cipherteks 3 (C3) dikenakan pola tarian ja’i dan di XOR dengan kunci 3 (K3) sehingga menghasilkan cipherteks 4 (C4). - Cipherteks 4 (C4) dikenakan pola tarian ja’i dan di XOR dengan kunci 2 (K2) sehingga menghasilkan cipherteks 5 (C5). - Cipherteks 5 (C5) dikenakan pola tarian ja’i dan di XOR dengan kunci 1 (K1) sehingga menghasilkan plainteks (P). Penerapan pola tarian ja’i kedalam kriptografi block cipher dapat dijelaskan seperti yang terdapat pada gambar berikut ini:
7
Gambar 6. Perancangan pola masukan plainteks pada putaran 1
Proses perancangan untuk plainteks terdiri dari 5 proses pengacakan dan pengurutan yang berbeda pada matriks berukuran 16 x 8. Plainteks awalnya diubah ke dalam bentuk hexadecimal kemudian diacak menggunakan pola tari ja’i seperti pada gambar 6. Langkah awal proses dimulai dengan memasukkan teks secara mendatar dari t1,t2,…,t128 yang kemudian akan diurutkan berdasarkan warna yang ada.
Gambar 7. Perancangan pola masukan kunci pada putaran 1
Proses perancangan untuk kunci terdiri dari 5 proses pengacakan dan pengurutan yang berbeda pada matriks yang berukuran sama dengan plainteks. Seperti pada plainteks, teks yang menjadi kunci akan diubah menjadi hexadecimal kemudian diacak menggunakan pola tari ja’i seperti pada gambar 7. Teks yang dijadikan kunci akan dimasukkan secara mendatar dari q1,q2,…,q128 dan kemudian akan diurutkan berdasarkan warna yang ada. 4. Hasil dan Pembahasan Pembahasan sebelumnya telah dijelaskan secara umum tentang rancangan proses enkripsi dan dekripsi dari penelitian ini. Pada bagian ini akan dijelaskan secara lebih lengkap mengenai proses enkripsi dan dekripsi dari kriptografi block cipher dengan menggunakan pola tarian ja’i. Secara keseluruhan terdapat lima (5) kali proses putaran untuk tiap proses enkripsi, dimana setiap putaran memiliki pola acak dan pola urut yang berbeda berdasarkan pola tarian ja’i. 8
Teks dimasukkan ke dalam blok yang berukuran 16x8 dan kemudian diubah ke dalam bentuk hexa. Sebelum memasuki proses XOR, dilakukan proses padding pada teks yang belum mencapai standar untuk mencapai 128bit. Kemudian teks akan diacak menggunakan pola dari tarian ja’i lalu diambil serta diurutkan dan ditampung menjadi P1. Hal yang sama berlaku pada proses pembentukan kunci. Rangkaian proses yang dilakukan terhadap kunci akan ditampung menjadi K1. Yang menjadi perbedaan antara proses plainteks dan kunci adalah terletak pada polanya. Kemudian P1 di-XOR dengan K1 sehingga mendapatkan hasil dari putaran pertama yaitu P2. Pada P2 akan dilakukan putaran yang hampir sama dengan proses pada plainteks sebelumnya dan terus dilakukan hingga mendapatkan cipherteks, yang merupakan hasil dari putaran ke-5. Yang menjadi perbedaan antara setiap proses putaran adalah pola yang digunakan. Untuk lebih jelas dapat dilihat pada gambar 8:
Gambar 8. Rancangan proses enkripsi
9
Gambar 9. Rancangan proses dekripsi
Gambar 9 menunjukkan proses dekripsi dari kriptografi block cipher dengan pola tarian ja’i. Proses dekripsi merupakan proses untuk mengembalikan cipherteks menjadi teks awal (plainteks). Proses dekripsi ini dilakukan dengan membalikkan proses enkripsi sejumlah 5 putaran sehingga bisa mendapatkan plainteks. Hal ini dikarenakan kunci yang dipakai dalam penelitian ini merupakan kunci simetris, maka kunci yang digunakan untuk enkripsi dan dekripsi merupakan kunci yang sama. Untuk lebih lengkap mengenai pola acak dan pola urut untuk plainteks dapat dilihat pada gambar di bawah ini:
Gambar 10. Pola acak pada proses 2 plainteks
Gambar 10 merupakan pola acak yang digunakan pada proses 2 plainteks. Pada gambar diatas, warna oranye dan abu-abu digambarkan sebagai posisi untuk penari perempuan dan penari laki-laki diatas panggung, dengan warna putih digambarkan sebagai panggung. Untuk proses masuknya dimulai dari arah bawah ke atas dan memenuhi kotak berwarna oranye terlebih dahulu kemudian warna abu-abu dan terakhir kotak berwarna putih.
10
Gambar 11. Proses acak 2 pada plainteks
Pola acak pada plainteks seperti dijelaskan pada gambar 11, dimana teks diacak dengan dikenakan pola tarian ja’i, dari bagian bawah ke arah atas secara berurutan berdasarkan warna. Untuk urutan pengambilan dari proses 2 plainteks adalah sebagai berikut: =( , , , , , , , ) =( , , , , , , , ) =( , , , , , , , ) ⋮ ⋮ =( , , , , , ,
,
)
Untuk proses pengurutan pada plainteks dijelaskan seperti gambar dibawah ini:
Gambar 12. Pola proses urut 2 plainteks
Hasil pengacakan yang didapat dari proses acak sebelumnya akan masuk ke proses pengurutan. Untuk pola masukan dari proses urut dapat dilihat pada gambar 12, dimana setiap karakter dimasukkan dari atas ke bawah dan diurutkan berdasarkan warna. Kotak yang diisi dimulai dari kotak yang berwarna oranye, kemudian kotak berwarna abu-abu dan yang terakhir yang berwarna putih. Untuk lebih jelas dapat dilihat pada gambar 13:
11
Gambar 13. Proses urut 2 pada plainteks
Untuk proses pengacakan dan pengurutan pada kunci dapat dilihat pada gambar dibawah ini:
Gambar 14. Pola acak 2 pada kunci
Untuk pola proses acak 2 pada kunci digambarkan seperti pada gambar 14, dimana setiap blok yang telah terkena pola dimasukkan sesuai dengan urutan pada gambar di atas. Proses pemasukkan dimulai dari kotak hijau pada pojok kiri atas kemudian bergerak ke arah kanan bawah secara diagonal hingga ke bagian tengah kemudian berlanjut ke arah kiri bawah secara diagonal juga. Setelah kotak yang berwarna hijau telah terisi semuanya maka dilanjutkan dengan mengisi kotak-kotak berwarna putih secara diagonal juga.
Gambar 15. Pola acak pada proses 2 kunci
12
Pola yang dikenakan merupakan pola gerakan tangan dimana pada gambar di atas berbentuk seperti gerakan tangan yang saling bersilangan. Yang membedakan antara proses yang satu dengan proses yang lainnya adalah cara masuk dari tiap proses acak yang ada. Untuk urutan pengambilan dari proses acak 2 pada kunci adalah sebagai berikut: =( , , , , , , , ) =( , , , , , , , ) =( , , , , , , , ) ⋮ ⋮ =( , , , , , , , )
Gambar 16. Pola proses urut 2 pada kunci
Setelah melakukan pengacakan berdasarkan pola gerakan tangan yang saling bersilangan, kemudian hasil dari pengacakan itu diurutkan sesuai dengan gambar 16. Setiap karakter dimasukkan secara berurut dari atas ke bawah berdasarkan warna, dan memenuhi warna hijau terlebih dahulu kemudian warna putih. Untuk lebih jelas dapat dilihat pada gambar 17 berikut:
Gambar 17. Proses urut 2 pada kunci
Yang membedakan antara satu proses dengan proses yang lainnya adalah cara masuk dari proses pengurutan yang ada. Pengujian kriptografi yang dilakukan adalah pengujian secara manual, dimana plainteks yang digunakan adalah sebagai berikut: “SATYA WACANA SATYA WACANA HIDUPLAH GARBAH ILMIAH KITA 13
MENGABDI TUHAN GEREJA DAN BANGSA PROKLAMASIKAN KRAJAAN SORGA BELA KEADILAN” serta kunci yang digunakan adalah “FTI-UKSW”. Jika plainteks dan kunci diubah menjadi hexadecimal, maka hasilnya adalah sebagai berikut: Tabel 1. Hexadecimal dari plainteks dan kunci SATYA WACANA SATYA WACANA HIDUPLAH GARBAH ILMIAH KITA MENGABDI TUHAN GEREJA DAN BANGSA PROKLAMASIKAN KRAJAAN SORGA BELA KEADILAN Plain 53 41 54 59 41 20 57 41 43 41 4E 41 20 53 41 54 59 41 20 57 41 43 41 4E 41 20 teks 48 49 44 55 50 4C 41 48 20 47 41 52 42 41 48 20 49 4C 4D 49 41 48 20 4B 49 54 41 20 4D 45 4E 47 41 42 44 49 20 54 55 48 41 4E 20 47 45 52 45 4A 41 20 44 41 4E 20 42 41 4E 47 53 41 20 50 52 4F 4B 4C 41 4D 41 53 49 4B 41 4E 20 4B 52 41 4A 41 41 4E 20 53 4F 52 47 41 20 42 45 4C 41 20 4B 45 41 44 49 4C 41 4E FTI-UKSW Kunci 46 54 49 2D 55 4B 53 57
Pada proses 1, setiap karakter dari plainteks dan kunci diubah kedalam bentuk hexadecimaldan kemudian dimasukkan ke dalam setiap blok pada block cipher. Untuk proses kunci, setiap blok yang tersisa dan belum diisi akan di-paddinguntuk memenuhi blok-blok yang belum terisi. Hal yang ini berlangsung untuk setiap prosesnya hingga proses 5. Berikut adalah hasil dari setiap proses enkripsi dalam hexadecimal dan decimal: Proses
1
Tabel 2. Hasil enkripsi tiap proses Hasil enkripsi tiap proses (hexadecimal) Decimal 44 45 4C 41 44 20 20 52 49 14 44 41 1A 68 69 76 65 68 32 32 82 73 20 68 65 26 4C 41 41 43 20 47 41 4E 50 20 41 47 4F 76 65 65 67 32 71 65 78 80 32 65 71 79 20 41 49 4D 41 57 41 49 41 50 20 4B 45 32 65 73 77 65 87 65 73 65 80 32 75 69 4C 4B 19 4A 48 45 41 4E 49 59 53 41 41 76 75 25 74 72 69 65 78 73 89 83 65 65 4D 41 7 41 49 4B 4C 20 4C 42 52 41 41 77 65 7 65 73 75 76 32 76 66 82 65 65 44 42 4E 41 4E 4B 41 20 1D 4E 53 54 41 68 66 78 65 78 75 65 32 29 78 83 84 65 4E 41 53 55 41 54 48 52 6 20 41 45 45 20 78 65 83 85 65 84 72 82 6 3265 69 69 32 42 41 53 57 55 4B 41 4E 20 41 41 42 49 66 65 83 87 85 75 65 78 32 65 65 6673 41 49 20 54 47 20 47 43 48 20 1F 20 4E 65 73 32 84 71 32 71 67 72 32 31 32 78 6A 20 41 52 41 48 48 4A 20 54 106 32 65 82 65 72 72 74 32 84
2
41 24 52 52 4B 23 23 4E 48 43 4A 11 52 4E 20 41 41 41 A0 41 4A 41 20 20 41 41 48 41 53 57 A1 44 44 41 48 44 48 41 45 47 14 A 2020 54 53 4B 41 43 41 4E 49 2A 3 4D 20 50 4B 55 42 20 41 41 41 4C 49 41 41 20 90 20 41 41 57 1B 20 53 6A 4C 47 20 50 19 90 4E 45 08 7 41 45 59 1F 4E 55 49 1A 44 7 A4 6 4C 4E 53 4E 68 20 20 41 41 54 54 4F 20 4B 4E 42 1C 41 4B 49 20 49 41 1D 41 4D 41 4C
65 36 82 82 75 35 35 78 72 67 74 17 82 78 32 65 65 65 160 65 74 65 32 32 65 65 72 65 83 87 161 68 68 65 72 68 72 65 69 71 20 10 32 32 84 83 75 65 67 65 78 73 42 3 77 32 80 75 85 66 32 65 65 65 76 73 65 65 32 144 32 65 65 87 27 32 83 106 76 71 32 80 25 144 78 69 8 7 65 69 89 31 78 85 73 26 68 7 164 6 76 78 83 78 104 32 32 65 65 84 84 79 32 75 78 66 28 65 75 73 32 73 65 29 65 77 65 76
3
42 4A A4 20 A0 57 54 47 20 53 48 41 E 48 4B 49 20 A1 45 41 4B 20 59 41 49 41 4A 4E 42 7E 1A 4C 7 41 41 6 45 54 1B 4E 4B 43 4E 4C 41 41 50 4E 1D 52 A 7 41 4B 16 41 41 49 41 41 68 52 20 44 41
66 74 164 32 160 87 84 71 32 83 72 65 14 72 75 73 32 161 69 65 75 32 89 65 73 65 74 78 66 126 26 76 7 65 65 6 69 84 27 78 75 67 78 76 65 65 80 78 29 82 10 7 65 75 22 65 65 73 65 65 104 82 32 68
14
41 41 41 52 4C 4B 23 20 18 41 41 20 48 41 C4 3 20 8 20 44 45 49 48 54 55 24 1D 20 20 20 20 14 11 41 41 41 4C 4E 20 53 6A 11 20 4E 43 19 41 1C 44 4D A 23 53 1F 41 4E 55 41 49 4D 57 90 2A
65 65 65 65 82 76 75 35 32 24 65 65 32 72 65 196 3 32 8 32 68 69 73 72 84 85 36 29 32 32 32 32 20 17 65 65 65 76 78 32 83 106 17 32 78 67 25 65 28 68 77 10 35 83 31 65 78 85 65 73 77 87 144 42
4
44 C4 4D 41 41 11 52 18 4E 44 2 41 41 4E 41 1D A1 52 20 52 6 8 41 4A 4B 41 20 41 4C 55 49 42 54 41 4C 41 14 20 4E 20 A4 4B 45 4E 4D 48 59 A0 E 19 1D 23 23 7 42 48 48 20 44 49 54 6C 41 41 47 4C 41 53 68 54 7E 41 20 4F 43 43 41 41 1D 20 45 41 A 20 45 1F 1B 53 49 20 41 4C 41 90 41 57 20 4E 20 20 53 41 41 4B 11 16 4E 48 57 41 2A 41 20 7 3 4B 6A 66 41 4E 41 4B 49 69 19 24 1C 50
68 196 77 65 65 17 82 24 78 68 2 65 65 78 65 29 161 82 32 82 6 8 65 74 75 65 32 65 76 85 73 66 84 65 76 65 20 32 78 32 164 75 69 78 77 72 89 160 14 25 29 35 35 7 66 72 72 32 68 73 84 108 65 65 71 76 65 83 104 84 126 65 32 79 67 67 65 65 29 32 69 65 10 32 69 31 27 83 73 32 65 76 65 144 65 87 32 78 32 32 83 65 65 75 17 22 78 72 87 65 42 65 32 7 3 75 106 102 65 78 65 75 73 105 25 36 28 80
5
3 7E 4C 54 41 66 1D 4F 57 43 1B 7 6D 41 20 20 A1 44 12 41 16 6C 20 41 20 47 43 A4 41 48 4D 1D 44 4B 49 66 90 14 55 11 4D 20 4C 19 49 63 42 44 52 4C A0 11 20 41 8 18 41 49 23 2A 53 50 4A 4E 2 6 54 41 19 48 41 52 41 41 20 53 48 20 41 52 41 59 6A 41 41 41 4B C4 4E 4E 69 41 45 53 7 41 41 4B 4B E 4E 45 57 41 20 49 20 42 1C 49 41 54 45 41 A 7 4E 41 1F 23 1B 41 16 4B 20 68 20 48
3 126 76 84 65 102 29 79 87 67 27 7 109 65 32 32 161 68 18 65 22 108 32 65 32 71 67 164 65 72 77 29 68 75 73 102 144 20 85 17 77 32 76 25 73 99 66 68 82 76 160 17 32 65 8 24 65 73 35 42 83 80 74 78 2 6 84 65 25 72 65 82 65 65 32 83 72 32 65 82 65 89 106 65 65 65 75 196 78 78 105 65 69 83 7 65 65 75 75 14 78 69 87 65 32 73 32 66 28 73 65 84 69 65 10 7 78 65 31 35 27 65 22 75 32 104 32 72
Pseudo Code 1 Padding dan Enkripsi Jika blok inputan (input) plainteks tidak memenuhi 128 bit maka akan dilakukan padding if (panjang input mod 128 != 0){ input = padding(input); jika blok key tidak memenuhi 128 bit maka akan dilakukan padding if (panjang kunci mod 128 != 0){ key =padding(kunci); } menjalankan proses enkripsi menggunakan pola yang ada setelah plainteks dan kunci memenuhi 128 bit byte kunci1 = pola_acak.jalankanpola(pola_acak.kunci1, kunci); byte kunci2 = pola_acak.jalankanpola(pola_acak.kunci2, kunci1); byte kunci3 = pola_acak.jalankanpola(pola_acak.kunci3, kunci2); byte kunci4 = pola_acak.jalankanpola(pola_acak.kunci4, kunci3); byte kunci5 = pola_acak.jalankanpola(pola_acak.kunci5, kunci4);
15
byte output=new byte[panjang input]; for (int i=0;i panjang input; i++){ output[i]=input[(pola[i])-1]; } return output; Pseudo Code 2 Proses dekripsi proses dekripsi untuk mengembalikan nilai cipherteks menjadi plainteks byte kunci1 = pola_acak.jalankanpola(pola_acak.kunci1, kunci); byte kunci2 = pola_acak.jalankanpola(pola_acak.kunci2, kunci1); byte kunci3 = pola_acak.jalankanpola(pola_acak.kunci3, kunci2); byte kunci4 = pola_acak.jalankanpola(pola_acak.kunci4, kunci3); byte kunci5 = pola_acak.jalankanpola(pola_acak.kunci5, kunci4); i merupakan inputan yang akan didekripsi (cipherteks) for( int i=0; i<panjang input; i++){ if (jumlah byte==127){ System.arraycopy(input, y, x, 0, x.length); byteout=dekripsi(x, key); y+= 128; }else {jumlah byte++;} } System.out.println("hasil dekripsi : "+new String(b)); return b; Sebuah kriptografi dapat dikatakan teknik kriptografi jika memenuhi 5tuple yaitu P, C, K, E, dan D [8]. P adalah himpunan berhingga dari plainteks. Perancangan kriptografi ini menggunakan 256 karakter ASCII yang di ambil dari tabel ASCII, himpunan plainteks pada alur pemasukan dan pengurutan dengan pola tarian ja’i merupakan himpunan berhingga. C adalah himpunan berhingga dari ciphertext. Ciphertext dihasilkan dalam bit (0 dan 1) himpunan dari ciphertext merupakan himpunan berhingga. K adalah keyspace atau ruang kunci merupakan himpunan berhingga dari kunci. Jumlah ruang kunci yang dipakai dalam perancangan ini adalah 256 karakter dalam ASCII, 16
sehingga ruang kunci merupakan himpunan berhingga dari kunci. E adalah enkripsi, dan D adalah 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. Algoritma kriptografi dengan pola lantai dan gerakan tangan tarian ja’i merupakan sebuah sistem kriptografi, karena telah memenuhi kelima kondisi 5-tuple. Sebagai implementasi dari algoritma ini, maka dibuat sebuah aplikasi yang bertujuan untuk melakukan enkripsi dan dekripsi. Input dan output dari aplikasi ini berupa teks, dengan kunci yang dibatasi maksimal 8 karakter. Untuk mengisi blok-blok kosong pada kunci, maka akan dilakukan padding karakter. Dalam hal ini karakter yang akan digunakan adalah karakter “NULL” (0). Untuk menguji algoritma yang sudah dirancang sebagai sebuah kriptografi maka dilakukan enkripsi dan dekripsi menggunakan aplikasi yang sudah dirancang. Yang perlu dipersiapkan: Plaintext yang akan digunakan dalam pengujian ini adalah sebagai berikut: “SATYA WACANA SATYA WACANA HIDUPLAH GARBAH ILMIAH KITA MENGABDI TUHAN GEREJA DAN BANGSA PROKLAMASIKAN KRAJAAN SORGA BELA KEADILAN”, sebanyak 128 karakter.
-
Sebagai kunci digunakan “FTI-UKSW”, sebanyak 8 karakter. Gambar 12 adalah proses ketika melakukan enkripsi dari plaintext dan kunci yang ada. Waktu yang dibutuhkan untuk melakukan enkripsi adalah 0.004201026 detik serta banyak memori yang digunakan adalah 128 bytes. Karena algoritma yang dirancang adalah jenis kriptografi kunci simetris, maka inputan pada kolom kunci untuk dekripsi harus sama dengan inputan pada kolom kunci ketika melakukan enkripsi.
17
Gambar 18. Tampilan proses enkripsi
Ciphertext yang didapat pada proses enkripsi dimasukkan bersama dengan kunci yang sama yang dipakai ketika melakukan proses enkripsi pada kolom input dan key yang ada. Pada proses dekripsi waktu yang digunakan adalah 0.000514865 detik dengan jumlah memori yang digunakan sama pada proses enkripsi dan dekripsi yaitu 128 bytes.
Gambar 19. Tampilan
proses dekripsi
Pengujian yang dilakukan adalah untuk mencari nilai korelasi untuk mengetahui adanya hubungan antara plaintext dengan ciphertext. Hasil uji korelasi yang didapat yaitu -0.066427398 yang berarti plaintext dan ciphertext memiliki hubungan korelasi yang rendah serta bernilai negatif. Berikut adalah hasil korelasinya: Tabel 3. Hasil korelasi antara plaintext terhadap ciphertext
Pola Masukan 1 2 3 4 5
Urut 1 2 3 4 5
Korelasi 0.176330849 0.141293216 -0.006603951 0.055477791 -0.066427398
Berdasarkan tabel 3 terlihat bahwa algoritma mampu membawa plaintext menjadi ciphertext dengan tidak berhubungan satu sama lain secara statistik.
18
Tabel 4. Korelasi terhadap setiap pola masukan terhadap pola urut
Pola Masukan
1
2
3
4
5
Urut 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
Korelasi 0.176331 0.093862 -0.09514 0.151701 0.07057 0.999465 0.141293 -0.02746 0.32318 -0.02372 0.188719 0.252618 -0.00859 0.041204 -0.06434 -0.05676 0.015251 0.07382 0.055478 -0.10473 0.133465 0.020891 0.041801 0.022383 -0.06643
Tabel 4 menyatakan bahwa tiap pola memiliki hasil korelasi yang berbedabeda yang menyatakan hubungan yang rendah antara pola masukan dan pengurutan. Dari pola masukan 1 dan pola urut 5 didapatkan nilai terendah untuk proses 1 yaitu 0.07057, untuk pola masukan 2 dan pola urut 5 didapatkan -0.02372, untuk pola masukan 3 dan pola urut 3 didapat -0.00859, pola masukan 4 dan pola urut 2 didapat 0.015251, serta untuk pola masukan 5 dan pola urut 2 didapat 0.020891. Dari tabel 4 terlihat bahwa nilai korelasi yang paling rendah yaitu pada proses 3 dengan pola masukan 3 dan pola urut 3 dengan nilai korelasi -0.00859. Hal ini berarti hampir tidak ada keterikatan antara pola masukan dan pola urut dari kriptografi yang dibuat ini. Pengujian juga dilakukan untuk mengetahui korelasi jika menggunakan plainteks yang berbeda, dimana digunakan juga plainteks yang menggunakan symbol yaitu: “Š@tY@ W@©@Ñ@ Š@TY@ W@©@Ñ@ HIDUPL@H G@RƁ@H ILMI@H KIT@ M℮ÑG@ƁDI TUH@Ñ G℮R℮J@ D@Ñ Ɓ@ÑGŠ@
19
ŠORG@
K℮@DIL@Ñ” serta plainteks dengan input yang sama: “zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzz”. Hasil yang diperoleh dari pengujian ini adalah: PROKLAM@ŠIK@Ñ
KR@J@@Ñ
Ɓ℮L@
Tabel 5. Nilai korelasi dengan berbagai inputan
Input “symbol” masuk urut korelasi 1 1 0.091031169 2 2 0.088477323 3 3 -0.079135484 4 4 -0.025329489 5 5 0.038276708
masuk 1 2 3 4 5
Input “z” urut korelasi 1 tidak ada nilai 2 0.056658249 3 -0.04026938 4 0.035289956 5 0.027171806
Berdasarkan tabel 5, diketahui bahwa algoritma dengan menggunakan pola lantai dan gerakan tangan tarian ja’i dapat membuat plaintext dan ciphertext tidak berhubungan satu sama lain secara statistik. Input-an lain yang diberikan berupa karakter symbol dan huruf z memberikan hasil yang juga menunjukkan tidak ada hubungan antara plainteks dan cipherteks. Pada input-an z untuk pola masukan 1 dan urut 1 tidak mempunyai nilai korelasi karena nilai cipherteks lebih besar daripada nilai plainteks sehingga tidak dapat dihitung nilai korelasinya. 5.
Kesimpulan Berdasarkan penelitian yang telah dilakukan maka dapat diambil kesimpulan yaitu pancangan algoritma kriptografi dengan menggunakan pola lantai dan gerakan tangan tarian ja’i dapat melakukan enkripsi dan dekripsidan telah memenuhi 5-tuple sehingga dapat dikatakan sebagai sebuah sistem kriptografi. Berdasarkan pengujian korelasi, dibuktikan bahwa algoritma dengan teknik pola lantai dan gerakan tangan tarian ja’i adalah algoritma yang baik karena mampu membuat plainteks dan cipherteks tidak saling berhubungan. Penelitian ini juga telah menghasilkan sebuah algoritma baru dalam kriptografi serta metodologi baru dalam kriptografi kunci simetris. Melalui penelitian ini juga dapat diketahui bahwa banyaknya proses dalam yang dilakukan dalam algoritma kriptografi block cipher dengan pola lantai dan gerakan tangan tarian ja’i tidak terlalu mempengaruhi kekuatan algoritma untuk menyamarkan plaintext.
20
DAFTAR PUSTAKA [1] Ariyus, Doni, 2006, Kriptografi: Keamanan Data dan Komunikasi, Yogyakarta: Graha Ilmu. [2] Ariyus, Doni, 2006, Computer Security, Yogyakarta: Penerbit ANDI. [3] Simanjuntak, H., Sigiro, M., Penerapan Kriptografi dalam Pengamanan Transaksi Internet Banking, Bandung: ITB. [4] Azizah, A. H., Ahmad, T., Hudan Studiawan., 2013. Implementasi Fungsi Kriptografi dan Otentikasi Sidik Jari Pada Pemungutan Suara Berbasis Elektronik (E-voting). Surabaya: Jurnal Teknik POMITS Vol. 2, No. 1. [5] Bili, D. D., Magdalena, A. I. P., Wowor, A. D., 2015. Perancangan Kriptografi Block Cipher dengan Langkah Kuda. Salatiga: Skripsi-S1 Sarjana Universitas Kristen Satya Wacana. [6] Setiawan, A. N., Wowor, A. D., 2015. Perancangan Algoritma pada Kriptografi Block Cipher dengan Teknik Langkah Kuda dalam Permainan Catur. Salatiga: Jurnal Setisi Universitas Kristen Satya Wacana. [7] 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. [8] Munir, Rinaldi, 2006, Kriptografi, Informatika. Bandung, Indonesia. [9] Febrian, Jack, 2007. Kamus Komputer dan Teknologi Informasi, Informatika Bandung, Indonesia. [10] J. Daemen and V. Rjimen, "AES Proposal: Rijndael", First Advanced Encryption Standard (AES) Conference, California, Aug. 1998.
21