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
27
Embed
Perancangan dan Implementasi Algoritma Kriptografi Block ......Perancangan dan Implementasi Algoritma Kriptografi . Block Cipher. Berbasis pada Pola Balok dalam Permainan . Tetris.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.