BAB 1 PENDAHULUAN
1.7 Sistematika Penulisan Penelitian
Sistematika penulisan dalam penelitian ini memiliki lima bab, yaitu :
BAB I PENDAHULUAN
Bab ini terdiri dari tujuh bagian yang terkait dengan penelitian, yaitu latar belakang penelitian mengenai pemilihan judul skripsi βImplementasi Algoritma Spritz dan Algoritma Kunci Publik Rabin-p dengan Skema Hybrid Cryptosystem pada Pengamanan Teksβ, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian serta sistematika penulisan penelitian.
BAB II LANDASAN TEORI
Bab ini terdiri dari beberapa teori mengenai kriptografi, penjelasan dan perhitungan dasar dari algoritma Spritz maupun algoritma Rabin-p, dan skema Hybrid Cryptosystem.
BAB III ANALISIS DAN PERANCANGAN
Bab ini terdiri dari analisis mengenai algoritma Spritz dan algoritma Rabin-p dengan skema Hybrid Cryptosystem dan proses perancangan sistem yang akan dibuat dengan menggunakan Diagram Ishikawa, Diagram Umum Sistem, Use Case Diagram, Activity Diagram, Sequence Diagram, serta Flowchart.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini terdiri dari implementasi dari sistem yang telah dibuat dengan menerapkan algoritma Spritz dan algoritma Rabin-p serta dilakukan pengujian terhadap sistem hingga memperoleh hasil analisisnya.
BAB V KESIMPULAN DAN SARAN
Bab ini terdiri dari kesimpulan dan saran yang diperoleh berdasarkan penelitian yang telah dilakukan dan hasil pengujian diharapkan dapat memudahkan untuk proses pengembangan penelitian selanjutnya
BAB II
LANDASAN TEORI
2.1 Kriptografi
Kriptografi (Cryptography) berasal dari bahasa yunani yang terdiri dari dua kata yaitu kryptos dan graphein. Kryptos artinya tersembunyi dan graphein artinya tulisan (Prayudi, 2005). Kriptografi terdiri dari 4 bagian utama yaitu plaintext, key, ciphertext dan algoritma. Plaintext merupakan pesan yang dikirim oleh si pengirim pesan. Key merupakan kunci yang digunakan dalam proses enkripsi dan dekripsi pesan. Sedangkan Ciphertext merupakan pesan yang telah di enkripsi menggunakan kunci dan algoritma merupakan langkah-langkah yang digunakan untuk teknik kriptografi secara sistematis.
2.1.1 Proses Kriptografi
Dalam prosesnya, kriptografi memiliki dua proses utama yaitu enkripsi dan dekripsi. Enkripsi merupakan proses pengubahan plaintext menjadi ciphertext sedangkan dekripsi merupakan proses pengubahan ciphertext menjadi plaintext kembali, sehingga dapat menghasilkan pesan awal atau pesan asli. Enkripsi dan dekripsi pesan dilakukan dengan sebuah kunci ataupun beberapa kunci. Proses Enkripsi dan Dekripsi dapat dilihat pada gambar 2.1 dibawah ini :
Gambar 2.1 Proses Enkripsi dan Dekripsi
2.1.2 Jenis Algoritma
Berdasarkan kunci yang digunakan, algoritma kriptografi dibedakan menjadi dua jenis yaitu algoritma simetris dan algoritma asimetris.
a. Algoritma Simetris
Algoritma simetris yaitu teknik yang digunakan pada kriptografi klasik (Kromodimoeljo, 2010). Kriptografi simetris adalah jenis kriptografi yang paling umum digunakan . Kunci yang digunakan untuk mengubah plaintext menjadi ciphertext sama dengan kunci yang digunakan untuk mengubah ciphertext menjadi plaintext. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Contoh dari algoritma kunci simetri adalah Beaufort, Spritz, Blowfish, Twofish, DES(Data Encryption Standard) (Schneier, 1996).
Kelebihan dari kriptografi simetris adalah kecepatan operasi lebih tinggi dibandingkan dengan kriptografi asimetris sesuai dengan ukuran file yang di enkripsi/dekripsi. Kelemahan dari kriptografi simetris adalah dalam hal penggunaan kunci yang sama untuk melakukan enkripsi dan dekripsi data. Bila kunci tersebar maka dekripsi data dapat dilakukan oleh siapapun dan untuk setiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam memanajemen kunci tersebut. Proses Enkripsi dan Dekripsi pada Algoritma Simetris dapat dilihat pada gambar 2.2 dibawah ini :
Gambar 2.2 Proses Enkripsi dan Dekripsi pada Algoritma Simetris b. Algoritma Asimetris
Algoritma ini disebut asimetris karena kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci yang digunakan untuk enkripsi adalah kunci publik atau public key sehingga algoritma ini disebut dengan algoritma kunci publik. Sedangkan kunci untuk dekripsi menggunakan kunci rahasia atau private key. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh
mengetahuinya. Siapapun dapat menggunakan kunci enkripsi tersebut untuk mengenkripsi pesan, namun hanya orang tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi terhadap pesan tersebut. Contoh algoritma asimetris yaitu Rabin-p, Elgamal, RSA (Rivest Shamir Adleman), ECC(Elliptic Curve Cryptography) (Schneier, 1996). Proses Enkripsi dan Dekripsi pada Algoritma Asimetris dapat dilihat pada gambar 2.3 dibawah ini:
Gambar 2.3 Proses Enkripsi dan Dekripsi pada Algoritma Asimetris
2.2 Metode Hybrid Cryptosystem
Hybrid Cryptosystem merupakan metode yang mengkombinasikan antara algoritma simetris dan algoritma asimetris. Kelebihan dari metode ini adalah algoritma simetris dengan proses data yang cepat ditambah algoritma asimetris dengan transfer kunci yang mudah menyebabkan peningkatan kecepatan dan keamanan yang baik (Annelis, 2010). Metode ini menerapkan kriptosistem yang sangat aman dengan proses enkripsi maupun dekripsi pesan menggunakan algoritma simetris dan proses pertukaran kunci menggunakan algoritma asimetris (Gutub & Khan, 2012). Pada penelitian ini, digunakan hybrid cryptosystem dengan memanfaatkan algoritma simetris Spritz dan algoritma asimetris Rabin-p yang dijelaskan pada gambar 2.4 dan gambar 2.5 :
Gambar 2.4 Proses Enkripsi Hybrid Cryptosystem dengan menggunakan Algoritma Spritz dan Algoritma Rabin-p
Gambar 2.5 Proses Dekripsi Hybrid Cryptosystem dengan menggunakan Algoritma Spritz dan Algoritma Rabin-p
2.3 Teori Bilangan 2.3.1 Bilangan Prima
Bilangan prima merupakan bilangan yang hanya memiliki dua faktor pembagi yaitu 1 dan bilangan itu sendiri (Untoro, 2010). Contoh bilangan prima yaitu 2, 3, 5, 7, dan 11.
2.3.2 Euclidean Greatest Common Divisor (GCD)
Greatest Common Divisor (GCD) merupakan bilangan bulat terbesar yang membagi kedua angka dengan sisa 0 (Upadhay, 2013). Seorang matematikawan Yunani menemukan cara untuk mencari bilangan bulat terbesar dengan algoritma Euclidean yang tertulis pada bukunya yaitu βElementsβ. Pada algoritma ini menggunakan sisa pembagian (modulo) (Munir, 2003).
Langkah-langkah Algoritma Euclidean :
1. Jika π = 0, maka π adalah GCD(π, π) dan stop. Jika π β 0, maka lanjut ke langkah 2
2. Bagilah π dengan π dan misalkan π adalah sisanya
3. Ganti nilai π dengan π dan nilai π dengan nilai π, lalu ulang kembali ke langkah 1, hingga π = 0.
Contoh : Berapa GCD(27,6)?
Jawab : GCD(27,6) adalah :
27 πππ 6 = 3 6 πππ 3 = 0
Karena telah menghasilkan sisa pembagiannya 0, maka proses berakhir dan hasilnya adalah GCD(27,6) = 3.
2.3.3 Algoritma Extended Euclidean
Algoritma ini digunakan untuk memecahkan Persamaan Diophantine Linear yang memenuhi identitas Bezout. Contoh : Berapa nilai π₯ dan π¦ yang memenuhi 100π₯ + 29π¦ ?
Jawab : a = 100 dan b = 29. Maka, GCD(100,29) = 1 = c (yang memenuhi syarat) Tabel 2.1 Contoh perhitungan m-1
π₯ π¦ π π
1 0 100
0 1 29 3
1 β3 13 2
β2 7 3 4
9 β31 1
Maka, diperoleh nilai dari π₯ adalah 9 dan nilai dari π¦ adalah (-31).
2.3.4 Blum Integer
Blum Integer adalah bilangan bulat positif yang merupakan hasil dari perkalian dua buah bilangan prima dimana π β‘ π β‘ 3(πππ 4). Contoh : beberapa angka yang termasuk π β‘ π β‘ 3(πππ 4) adalah 15, 47, 59, 131, dan 251.
2.3.5 Miller-Rabin
Miller-Rabin digunakan untuk menentukan suatu bilangan prima dengan menggunakan eksponensial modular dan jika akar kuadrat dari 1 πππ π adalah Β±1.
Selain itu, maka bilangan tersebut adalah merupakan bilangan komposit. Contoh : Menentukan bilangan prima.
Jawab : Diambil nilai π = 23
a. Nyatakan (n-1) = 2π. π, tentukan nilai π, π dengan π > 0 dan π bilangan ganjil.
π β 1 = 22 = 21. 11, π = 1, π = 11
b. Pilih nilai π secara random, dimana (1 < π < π β 1) π = 2
c. ππ ππ πππ π = 1, πππ‘π’ππ πππππ 211 πππ 23 = 2048 πππ 23 = 1 π = 23β Bilangan Prima
2.4 Algoritma Spritz
Algoritma Spritz merupakan algoritma simetris yang memiliki dua bagian yaitu Key Scheduling Algorithm (KSA) dan Pseudo-Random Generation Algorithm (PRGA).
Algoritma Spritz merupakan sebuah varian dari RC4 yang memiliki kompleksitas tinggi karena sponge-based construction meningkatkan keamanan dari algoritma RC4 yang menyebabkan waktu yang digunakan untuk mengenkripsi sebuah data juga meningkat meskipun tingkat keamanan dari algoritma Spritz lebih tinggi dari RC4 (Rivest dan Schuldt, 2014).
2.4.1 Key Scheduling Algorithm (KSA)
Key-Scheduling Algorithm (KSA) pada algoritma Spritz dimulai dengan mendeklarasikan titik awal berupa larik yang terdiri dari 256 kemungkinan bytes yang ada pada array S. Dimana S adalah permutasi 256-byte yang di deklarasi oleh KSA, variabel i dan j merupakan variabel integer yang mempunyai nilai awal 0.
Adapun key adalah kunci rahasia yang akan dimasukkan.
Contoh :
Plaintext = βDEAβ
Kunci = βAMDβ
Maka panjang kuncinya adalah 3 karakter dengan key[0] = βAβ, key[1] = βMβ, key[2] = βDβ. Nilai ASCII dari tiga kunci tersebut yaitu key=[65,77,68]. Selanjutnya perhitungan nilai j yang pertama dengan nilai awal π = 0 dan π = 0 sebagai berikut:
π = (π + π[π] + πππ¦[π πππ πππ¦ πππππ‘β]) πππ 256
π = (0 + π[0] + πππ¦[0 πππ 3])πππ 256 = (0 + 0 + 65)πππ 256 = 65 π π€ππ(π[π], π[π]) = π π€ππ(π[0], π[65])
π[0] = 65 π[65] = 0
Kemudian dilanjutkan perhitungan nilai π yang dimulai dengan π = 1 dan π = 65 sebagai berikut :
Tabel 2.2 Larik 256 Byte Hasil Perhitungan Tahap Key Scheduling
0 1 2 3 4 5 6 7 8 9 10 11 12 13
112 113 114 115 116 117 118 119 120 121 122 123 124 125
2.4.2 Pseudo-Random Generation Algorithm (PRGA)
Pseudo-Random Generation Algorithm (PRGA) menginisialisasikan nilai π = 0, π = 0, π = 0, π§ = 0, dan π€ = bilangan acak yang merupakan bilangan GCD atau relatif prima dengan panjang π yaitu 256.
for l=0 to plainLength-1
Variabel π, π merupakan variabel integer yang mempunyai nilai awal 0 dan π§ merupakan variabel integer yang merupakan output dan mempunyai nilai awal 0.
Contoh Enkripsi : Karakter βDβ
π = 0; π = 0; π = 0; π§ = 0; π€ = 15
β’ π = (π + π€) = (0 + 15)πππ 256 = 15
β’ π = (π + π[π + π[π]]) = (0 + π[0 + π[15]])πππ 256
= (0 + π[0 + 182])πππ 256
= (0 + π[182])πππ 256
= 10 πππ 256 = 10
β’ π = (π + π + π[π]) = (15 + 0 + π[10])πππ 256
= (15 + 0 + 194)πππ 256
= 209 πππ 256 = 209
β’ π[π], π[π] = π[π] = π[15] = 182, π[π] = π[10] = 194
β’ π π€ππ π[π] π€ππ‘β π[π] = π[π] = π[15] = 194, π[π] = π[10] = 182
β’ π§ = π[π + π[π + π[π§ + π]]] = π[10 + π[15 + π[0 + 209]]] πππ 256
= π[10 + π[15 + 180]] πππ 256
= π[10 + π[195] πππ 256
= π[10 + 83] πππ 256
= π[93] πππ 256
= 34 πππ 256 = 34
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βDβ adalah 68 dan nilai z yang diperoleh adalah 34.
68 = 01000100 34 = 00100010
= 01100110 = 10210 dalam tabel ASCII merupakan β f β
Karakter βEβ
π = 15; π = 10; π = 209; π§ = 34; π€ = 15
β’ π = (π + π€) = (15 + 15)πππ 256 = 30
β’ π = (π + π[π + π[π]]) = (209 + π[10 + π[30]])πππ 256
= (209 + π[10 + 16])πππ 256
= (209 + π[26])πππ 256
= (209 + 219)πππ 256
= [172]πππ 256 = 233 πππ 256 = 233
β’ π = (π + π + π[π]) = (30 + 209 + π[233])πππ 256
= (30 + 209 + 243)πππ 256
= [226] πππ 256 = 68
β’ π[π], π[π] = π[π] = π[30] = 16, π[π] = π[233] = 243
β’ π π€ππ π[π] π€ππ‘β π[π] = π[π] = π[30] = 243, π[π] = π[233] = 16
β’ π§ = π[π + π[π + π[π§ + π]]] = π[233 + π[30 + π[34 + 68]]] πππ 256
= π[233 + π[30 + 116]] πππ 256
= π[233 + π[146] πππ 256
= π[233 + 172] πππ 256
= π[149] πππ 256
= 213 πππ 256 = 213
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βEβ adalah 69 dan nilai z yang diperoleh adalah 213.
69 = 01000101 213 = 11010101
= 10010000 = 14410 dalam tabel ASCII merupakan β Δ β
Karakter βAβ
π = 30; π = 233; π = 68; π§ = 213; π€ = 15
β’ π = (π + π€) = (30 + 15)πππ 256 = 45
β’ π = (π + π[π + π[π]]) = (68 + π[233 + π[45]])πππ 256
= (68 + π[233 + 102])πππ 256
= (68 + π[79])πππ 256
= 175 πππ 256 = 175
β’ π = (π + π + π[π]) = (45 + 68 + π[175])πππ 256
= (45 + 68 + 200)πππ 256
= [57]πππ 256 = 60 πππ 256 = 60
β’ π[π], π[π] =π[π] = π[45] = 102, π[π] = π[175] = 200
β’ π π€ππ π[π] π€ππ‘β π[π] =π[π] = π[45] = 200, π[π] = π[175] = 102
β’ π§ = π[π + π[π + π[π§ + π]]] = π[175 + π[45 + π[213 + 60]]] πππ 256
= π[175 + π[45 + 12]] πππ 256
= π[175 + π[57] πππ 256
= π[175 + 60] πππ 256
= π[235] πππ 256
= 153 πππ 256 = 153
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βAβ adalah 65 dan nilai z yang diperoleh adalah 153.
65 = 01000001 153 = 10011001
= 11011000 = 21610 dalam tabel ASCII merupakan β Γ β
Contoh Dekripsi : Karakter β f β
π = 0; π = 0; π = 0; π§ = 0; π€ = 15
β’ π = (π + π€) = (0 + 15)πππ 256 = 15
β’ π = (π + π[π + π[π]]) = (0 + π[0 + π[15]])πππ 256
= (0 + π[0 + 182])πππ 256
= (0 + π[182])πππ 256
= 10 πππ 256 = 10
β’ π = (π + π + π[π]) = (15 + 0 + π[10])πππ 256
= (15 + 0 + 194)πππ 256
= 209 πππ 256 = 209
β’ π[π], π[π] = π[π] = π[15] = 182, π[π] = π[10] = 194
β’ π π€ππ π[π] π€ππ‘β π[π] = π[π] = π[15] = 194, π[π] = π[10] = 182
β’ π§ = π[π + π[π + π[π§ + π]]] = π[10 + π[15 + π[0 + 209]]] πππ 256
= π[10 + π[15 + 180]] πππ 256
= π[10 + π[195] πππ 256
= π[10 + 83] πππ 256
= π[93] πππ 256
= 34 πππ 256 = 34
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βfβ adalah 102 dan nilai z yang diperoleh adalah 34.
102 = 01100110
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βΔβ adalah 144 dan nilai z yang diperoleh adalah 213.
144 = 10010000 213 = 11010101
= 01000101 = 6910 dalam tabel ASCII merupakan β E β
Karakter β Γ β
π = 30; π = 233; π = 68; π§ = 213; π€ = 15
β’ π = (π + π€) = (30 + 15)πππ 256 = 45
β’ π = (π + π[π + π[π]]) = (68 + π[233 + π[45]])πππ 256
= (68 + π[233 + 102])πππ 256
= (68 + π[79])πππ 256
= 175 πππ 256 = 175
β’ π = (π + π + π[π]) = (45 + 68 + π[175])πππ 256
= (45 + 68 + 200)πππ 256
= [57]πππ 256 = 60 πππ 256 = 60
β’ π[π], π[π] =π[π] = π[45] = 102, π[π] = π[175] = 200
β’ π π€ππ π[π] π€ππ‘β π[π] =π[π] = π[45] = 200, π[π] = π[175] = 102
β’ π§ = π[π + π[π + π[π§ + π]]] = π[175 + π[45 + π[213 + 60]]] πππ 256
= π[175 + π[45 + 12]] πππ 256
= π[175 + π[57] πππ 256
= π[175 + 60] πππ 256
= π[235] πππ 256
= 153 πππ 256 = 153
Operasi XOR dilakukan untuk mendapatkan hasil enkripsinya dengan nilai dari karakter βΓβ adalah 216 dan nilai z yang diperoleh adalah 153.
216 = 11011000 153 = 10011001
= 01000001 = 6510 dalam tabel ASCII merupakan β A β
2.5 Algoritma Rabin-p
Algoritma Rabin-p adalah algoritma yang memiliki dua jenis kunci yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk enkripsi pesan sedangkan kunci privat digunakan untuk dekripsi pesan (Asbullah et.al, 2016).
2.5.1 Pembangkit Kunci Algoritma Rabin-p
Pada proses ini, kunci publik dan kunci privat dibangkitkan dengan cara : 1. Tentukan π sebagai parameter keamanan.
2. Pilih dua bilangan prima acak untuk nilai π dan π dimana 2π < π, π < 2π+1 memenuhi π β‘ π β‘ 3 (πππ 4).
3. Hitung π = π2π.
4. Nilai dari π dianggap sebagai kunci publik dan nilai dari π, π dianggap sebagai kunci privat.
Contoh : Diketahui π = 59; π = 47; π = 5 Hitung : π = π2. π = 592. 47 = 163.607
Maka, π = 163.607 sebagai kunci publik dan π = 59 sebagai kunci privat.
2.5.2 Metode Enkripsi
Pada proses ini, pesan akan di enkripsi dengan cara :
1. Pilih plaintext 0 < π < 22πβ1 dimana GCD (π, π) = 1 2. Hitung π β‘ π2(πππ π).
Contoh :
1. Pilih plaintext (π) yang memiliki panjang antara lebih besar dari 0 dan lebih kecil dari 22πβ1 . Misalkan plaintext adalah karakter βtβ. Karakter βtβ dalam tabel ASCII adalah β116β dan dalam biner yaitu β01110100β.
π = 116, maka 0 < π < 22πβ2 = 0 < 116 < 512.
116 πππ 163607 = 116 163607 πππ 116 = 47 116 πππ 47 = 22 47 πππ 22 = 3 22 πππ 3 = 1
Maka syarat terpenuhi yaitu GCD (116, 163607) = 1.
2. Hitung π β‘ π2(πππ π)
Karakter βtβ memiliki kode ASCII = 116
π β‘ π2 πππ π β‘ 1162 πππ 163607 β‘ 13456
2.5.3 Metode Dekripsi
Pada proses ini, pesan akan di dekripsi dengan cara : 1. Hitung π€ β‘ π(πππ π).
2. Hitung ππ β‘ π€π+1
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh penulis antara lain :
1. Penelitian yang berjudul βThe cryptanalysis of the Rabin public key algorithm using Fermat factorization methodβmenyatakan bahwa pemfaktoran kunci
publik Rabin menggunakan metode Fermat tidak selalu berkorelasi dengan waktu proses. Kecepatan pemfaktoran kunci terletak pada perbedaan kunci (p - q), semakin besar perbedaan kunci (p - q) maka waktu proses yang dibutuhkan akan semakin lama (Budiman, et al., 2019).
2. Penelitian yang berjudul βAnalysis of Rabin and Rabin-p Cryptosystem for specifying correct plain textβ menyimpulkan bahwa proses dekripsi Rabin-p membutuhkan waktu yang lebih sedikit dibandingkan dengan proses dekripsi Rabin dikarenakan kinerja Rabin-p yang lebih baik (Nayak, Rakesh., 2015).
3. Berdasarkan jurnal yang berjudul βSpritz β A Spongy RC4-Like Stream Cipher and Hash Function.β menyimpulkan bahwa algoritma Spritz meningkatkan kompleksitas dari RC4, maka waktu yang digunakan dalam mengenkripsi sebuah pesan lebih meningkat dan tingkat keamanan algoritma Spritz lebih baik dari RC4 (Rivest dan Schuldt, 2014).
4. Penelitian yang berjudul βRabin-p Cryptosystem: Practical and Efficient Method for Rabin based Encryption Schemeβ menyimpulkan bahwa kriptosistem algoritma Rabin-p merupakan cara yang paling efektif dalam pengamanan dan lebih cepat dibandingkan dengan metode yang ada (Asbullah dan Ariffin, 2014).
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem merupakan tahapan awal dalam membuat suatu sistem. Hal ini dilakukan agar menemukan solusi dari masalah yang terjadi pada sistem, sehingga dapat melakukan perbaikan terhadap sistem dan menganalisa kebutuhan yang akan diterapkan. Adapun beberapa tahapan pada analisis sistem yaitu analisis masalah, analisis kebutuhan sistem dan analisis proses.
3.1.1 Analisis Masalah
Pada tahapan ini, akan identifikasi penyebab masalah yang sedang terjadi. Pada penelitian ini, masalah terdapat pada cara penerapan algoritma Spritz dan algoritma kunci publik Rabin-p dengan skema Hybrid Cryptosystem pada pengamanan teks.
Dalam prosesnya, analisis masalah akan menggunakan Diagram Ishikawa atau yang biasa disebut dengan Fishbone Diagram.Diagram Ishikawa memiliki bentuk seperti ikan yang terdiri atas kepala ikan (fishβs head) sebagai tujuan dari masalah yang diidentifikasi dan tulang-tulang ikan (fishβs bones) sebagai petunjuk dalam memperoleh penyebab terjadinya masalah. Masalah dalam penelitian dibuat ke dalam bentuk diagram Ishikawa yang dapat dilihat sebagai berikut :
Gambar 3.1 Diagram Ishikawa
Gambar 3.1 menyimpulkan bahwa masalah yang muncul diakibatkan oleh kecurigaan terhadap pihak ketiga yang ingin mengetahui isi pesan yang dikirim.
Penyelesaian masalah tersebut dapat dilakukan dengan mengkombinasi algoritma Spritz dan algoritma Rabin-p dengan skema Hybrid Cryptosystem, sehingga sulit untuk diketahui oleh pihak ketiga. Algoritma Spritz akan melakukan enkripsi pada
pesan. Sedangkan Algoritma Rabin-p akan melakukan enkripsi pada kunci dari algoritma Spritz.
3.1.2 Analisis Kebutuhan
Pada tahapan ini, akan dilakukan analisis terhadap kebutuhan. Analisis kebutuhan memiliki dua bagian yaitu kebutuhan fungsional dan kebutuhan nonfungsional.
Kebutuhan fungsional menjelaskan proses-proses yang dapat dilakukan oleh sistem. Sedangkan kebutuhan nonfungsional menjelaskan tentang hal yang digunakan untuk melengkapi sistem dengan menerapkan hal-hal seperti fitur, karakteristik dan batasan lainnya.
3.1.2.1 Kebutuhan Fungsional
Kebutuhan Fungsional merupakan proses yang dapat dilakukan oleh sistem agar berjalan dengan lancar. Kebutuhan fungsional yang harus dipenuhi dari kombinasi algoritma Spritz dan algoritma Rabin-p dalam skema Hybrid Cryptosystem untuk pengamanan teks adalah sebagai berikut :
1. Pembangkit kunci
Membangkitkan kunci publik dan kunci privat secara acak dengan algoritma Rabin-p.
2. Memasukkan file
User menggunakan file yang berekstensi docx. dan diproses oleh sistem.
3. Enkripsi teks
Teks dienkripsi menggunakan algoritma Spritz dan menghasilkan ciphertext.
4. Enkripsi kunci simetris
Kunci algoritma Spritz dienkripsi dengan kunci publik algoritma Rabin-p dan cipherkey.
5. Menyimpan hasil enkripsi
Ciphertext dan cipherkey akan disimpan oleh sistem untuk digunakan pada proses dekripsi.
6. Dekripsi kunci simetris
Cipherkey didekripsi dengan kunci privat algoritma Rabin-p dan menghasilkan kunci algoritma Spritz.
7. Dekripsi teks
Ciphertext didekripsi menggunakan kunci algortima Spritz dan menghasilkan teks seperti yang dimasukkan.
8. Menyimpan hasil dekripsi
Menyimpan teks yang sudah didekripsi.
3.1.2.2 Kebutuhan Nonfungsional
Kebutuhan nonfungsional merupakan kebutuhan yang digunakan dalam proses kerja sistem. Berikut merupakan kebutuhan non-fungsional pada penerapan algoritma Spritz dan algoritma Rabin-p dalam skema Hybrid Cryptosystem :
1. Kinerja Sistem
Sistem dapat menampilkan kunci publik dan kunci privat yang akan digunakan untuk melakukan proses enkripsi dan dekripsi kunci. Kemudian sistem juga dapat menampilkan kunci Spritz yang akan digunakan untuk proses enkripsi dan dekripsi pesan.
2. Dokumentasi
Sistem dapat menampilkan petunjuk penggunaan sistem, penyimpanan data dan penjelasan tentang algoritma Spritz dan algoritma Rabin-p serta metode Hybrid Cryptosystem.
3. Pengendalian
Sistem dapat menampilkan pesan error jika ditemukan inputan yang tidak sesuai.
4. Kualitas
Sistem akan menghasilkan output yang bersifat benar dan akurat pada saat melakukan proses enkripsi dan dekripsi pesan.
3.1.3 Diagram Umum Sistem
Diagram umum sistem dapat dilihat pada gambar 3.2 yang terdapat di halaman 25.
Gambar 3.2 Diagram Umum Sistem
Diagram umum sistem dimulai dengan membangkitkan public key dan private key dari Algoritma Rabin-p yang dilakukan oleh recipient. Kemudian public key diberikan kepada sender. Sender akan mengenkripsi dokumen menggunakan Algoritma Spritz yang menghasilkan ciphertext. Kemudian kunci Spritz dienkripsi dengan public key Algoritma Rabin-p. Recipient memperoleh ciphertext dan cipherkey yang digunakan untuk mendekripsi file. Cipherkey didekripsi menggunakan private key dari algoritma Rabin-p. Lalu ciphertext didekripsi menggunakan kunci dari algoritma Spritz. Setelah file berhasil didekripsi, maka didapatlah dokumen yang dikirimkan oleh sender.
3.2 Pemodelan Sistem
Pemodelan sistem betujuan untuk menggambarkan semua kondisi dari bagian yang berperan pada sistem yang dirancang. Pemodelan sistem ditampilkan dengan menggunakan use case diagram, sequence diagram dan activity diagram dan flowchart.
3.2.1 Use Case Diagram
Use case diagram merupakan gambaran dari beberapa atau semua actor, dan interaksi diantaranya yang diperkenalkan dalam suatu sistem. Use case pada sistem dapat ditunjukkan pada Gambar 3.3.
Gambar 3.3 Diagram Use Case Sistem
Gambar 3.3 menunjukkan penggunaan sistem oleh dua aktor yaitu pengirim pesan dan penerima pesan. Dalam sistem ini penerima pesan memiliki hak akses melihat halaman awal, informasi, dan melakukan pembangkitan kunci privat dan kunci publik dari algoritma Rabin-p. Kunci publik Rabin-p yang telah dibangkitkan akan digunakan oleh pengirim pesan untuk melakukan enkripsi kunci Spritz sedangkan, kunci privat digunakan untuk melakukan dekripsi kunci Spritz.
Pengirim pesan memiliki hak akses melihat halaman awal, enkripsi pesan dan bantuan. Dalam melakukan enkripsi pesan pengirim pesan akan menginput file yang akan dienkripsi, melakukan enkripsi teks dengan algoritma Spritz dan melakukan enkripsi kunci Spritz dengan menggunakan kunci publik Rabin-p. Hasil enkripsi teks (ciphertext) dan hasil enkripsi kunci (cipherkey) akan diberikan kepada penerima pesan.
3.2.2 Activity Diagram
Activity Diagram menggambarkan alur kerja atau interaksi aktivitas antara pengirim dan sistem dari sebuah sistem atau perangkat lunak yang dikembangkan, dari aktivitas mulai, decision yang mungkin terjadi sampai aktivitas berhenti.
3.2.2.1 Diagram Aktivitas Pembangkit Kunci
Gambar 3.4 Diagram Aktivitas Proses Pembangkitan Kunci
Gambar 3.4 menunjukkan diagram aktivitas proses pembangkitas kunci. Tahap awal, user harus menekan tombol bangkit kunci untuk mendapatkan nilai bilangan prima p, q, dan N. N akan diperoleh dari perkalian p dan q. Sedangkan p diperloeh dari nilai p acak yang sudah ditetapkan rumusnya.
3.2.2.2 Diagram Aktivitas Enkripsi
Gambar 3.5 Diagram Aktivitas Proses Enkripsi
Gambar 3.5 menunjukkan proses enkripsi dari sistem. Untuk tahap awal file yang berisi pesan akan enkripsi dan dimasukkan kedalam sistem. Kemudian sistem akan menampilkan open file dialog dan selanjutnya user memilih file yang akan dienkripsi. Setelah dipilih, user memasukkan kunci Spritz yang nantinya akan digunakan untuk mengenkripsi file. Kemudian user menekan tombol simpan kunci Spritz dan sistem akan menyimpan kunci. Selanjutnya, enkripsi teks dengan algoritma Spritz. Kemudian user menekan tombol simpan ciphertext dan sistem akan menampilkan jendela simpan file. Selanjutnya user menginputkan nama file dan menyimpan file tersebut. Kemudian, user menekan tombol kunci publik dan sistem akan mencari filenya. Lalu user menginputkan kunci Spritz dan dienkripsi hingga menampilkan cipherkey dan tekan tombol simpan cipherkey untuk menyimpan cipherkey.
3.2.2.3 Diagram Aktivitas Dekripsi
Gambar 3.6 Diagram Aktivitas Proses Dekripsi
Gambar 3.6 menunjukkan proses dekripsi dari sistem. Pada tahap awal yaitu file yang berisi cipherkey yang akan didekripsi dimasukkan pada sistem. Sistem akan menampilkan open file dialog dan user memilih file cipherkey yang akan didekripsi.
Kemudian user membuka kunci privat dan menampilkannya. Setelah dipilih, user menekan tombol dekripsi kunci dan hasil dekripsi akan muncul pada sistem.
Kemudian tekan tombol browse untuk memilih file ciphertext yang akan didekripsi.
Setelah fie dipilih lalu user menekan tombol dekripsi teks dan sistem akan mendekripsi file dan menampilkan hasil dekripsi yaitu plaintext semula.
Selanjutnya untuk menyimpan file, user menekan tombol simpan plaintext dan sistem akan menyimpan file tersebut.
3.2.3 Sequence Diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek. Diagram ini menunjukkan serangkaian pesan yang dipertukarkan oleh objek-objek yang melakukan suatu tugas atau aksi tertentu dalam suatu urutan waktu.
Aktivitas yang terjadi ketika pengguna sistem atau objek berinteraksi ke objek lain digambarkan dengan tanda panah garis penuh, sedangkan garis putus-putus menggambarkan respon sistem terhadap pengguna sistem yaitu pengirim dan penerima.
Gambar 3.7 Diagram Sequence Sistem
Gambar 3.7. menggambarkan user dan objek saling berinteraksi di mana seluruh objek mengirimkan pesan perintah yang akan dieksekusi. Pengguna sistem
awalnya melakukan pembangkitan kunci, setelah itu melakukan proses enkripsi pesan dan kunci. Kemudian menuju halaman dekripsi dan melakukan dekripsi kunci lalu dekripsi pesan untuk mendapatkan pesan kembali ke bentuk asli.
3.2.4 Flowchart
Flowchart merupakan bagan-bagan yang memiliki arus yang menggambarkan langkah-langkah dalam penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma (Ladjamudin, 2013).
3.2.4.1. Flowchart Sistem
Flowchart sistem merupakan gambaran dari proses terjadinya enkripsi dan dekripsi pada file yang diinputkan. Selanjutnya flowchart akan dijelaskan dalam tiga bagian yaitu flowchart pembangkit kunci, flowchart enkripsi dan flowchart dekripsi.
Gambar 3.8 Flowchart Sistem
3.2.4.2. Flowchart Pembangkit Kunci
Gambar 3.9 Flowchart Proses Pembangkitan Kunci
Berdasarkan gambar 3.9, dijelaskan bahwa untuk melakukan pembangkit kunci, hal pertama yang dilakukan adalah user membangkitkan kunci Rabin-p, dibangkitkan dua buah bilangan prima π dan π, dimana π β‘ π β‘ 3(πππ 4). Jika nilai memenuhi maka akan didapat nilai π dan π. Setelah itu maka proses selanjutnya adalah membangkitkan kunci publik, lalu setelah proses tersebut berhasil maka kunci publik (N) dan kunci privat (p) akan ditampilkan.
3.2.4.3. Flowchart Algoritma Rabin-p
Gambar 3.10 Flowchart Enkripsi Algoritma Kunci Publik Rabin-p
Flowchart enkripsi Algoritma Rabin-p menunjukan proses enkripsi kunci mulai dari menginputkan kunci dari algoritma Spritz dan kunci publik dari algoritma
Flowchart enkripsi Algoritma Rabin-p menunjukan proses enkripsi kunci mulai dari menginputkan kunci dari algoritma Spritz dan kunci publik dari algoritma