BAB 3
METODOLOGI PENELITIAN
3.1 Pengantar
Pada penelitian ini membahas modifikasi algoritma RC4 dengan BBS (Blum Blum Shub) untuk menghasilkan key yang baik dan tidak mudah dipredikasi oleh kriptanalis. Adapun yang dibahas adalah langkah penelitian, analisis dari masing-masing algoritma, dan rancangan sistem.
3.2Waktu Penelitian
Waktu yang digunakan untuk melakukan penelitian ini diperkirakan ± 6 ( enam ) bulan. Dalam penelitian ini penulis menggunakan studi literatur (riset pustaka). Riset pustaka dilakukan dengan membaca buku, jurnal dan mengambil data dari internet yang berkaitan dengan topik yang sedang diteliti.
3.3Data yang digunakan
Data yang digunakan pada penelitian ini adalah file dokumen, yang akan diamati ada beberapa karakter.
3.4Prosedur Penyelesaian Masalah
Dalam bab ini menggunakan algoritma RC4 untuk melakukan enkripsi dan Blum Blum Shub (BBS) digunakan untuk membangkitkan kunci pada waktu enkripsi dan dekripsi file. Sebelum membuat rancangan sistem, sebaiknya kedua algoritma tersebut dianalisa terlebih dahulu. Berikut kedua algoritma yang akan dianalisa:
3.4.1 Analisis Blum Blum Shub (BBS)
a. Pilih dua bilangan prima p dan q, dimana p dan q keduanya sama terhadap 3 modulo 4.
b. Hasilkan bilangan bulat Blum n dengan menghitung n = p x q.
c. Kemudian pilih sebuah bilangan acak Seed (s) sebagai umpan, bilangan yang dipilih harus memenuhi kriteria:
i. 2 ≤ s < n.
ii. s dan n adalah relatif bilangan prima. d. Hitung nilai x0 = s2 mod n.
e. Kemudian hasilnya bilangan bit acak dengan cara: i. Hitung xi = x(i-1)2 mod n.
ii. Hasilkan zi = bit-bit yang diambil dari xi.
Berikut adalah contoh dari Blum Blum Shub (BBS) :
Nilai p = 11, dan q = 15
=
= 11 15 = 165
Kemudian pilih (seed) s = 3 dan hitung = 32 165 = 9. Barisan bit acak hasilnya sebagai berikut:
1= 02 = 92 165 =81→ 1=1 ( 81 , ��� 1
2= 12 = 812 165 = 126→ 2=0 ( 126 , ��� 0
3= 22 = 1262 165 = 36→ 1=0
4 = 32 = 362 165 = 141→ 1=0
5= 42 = 1412 165 = 81→ 1=1
3.4.2 Proses Algoritma RC4
Pada penelitian ini digunakan Algoritma RC4 untuk mengenkripsikan file yang berupa karakter, dengan mengunakan kunci dari hasil pembangkita kunci Blum Blum Shub (BBS). Adapun langkah-langkah dalam algoritma RC4 adalah, sebagai berikut (Munir,2006):
1. Inisialisasi larik S sehingga S0 =0, S1=1, ..., S255=255
Dalam notasi algoritmik, langkah ini akan di tulis sebagai berikut: for i 0 to 255 do
S[i] i
endfor
2. Jika panjang kunci tersebut U < 256, maka lakukan padding yaitu penambahan byte semu sehingga panjang kunci menjadi 256 byte.
3. Kemudian lakukan permutasi terhadap nilai-nilai di dalam larik S dengan cara sebagai berikut:
J 0
for i 0 to 255 do
j (j + S[i] + U[i]) mod 256
swap (S[i], S[j]
endfor
4. Kemudian bangkitkan aliran kunci dan lakukan enkripsi dengan cara sebagai berikut:
i 0
j 0
for idx 0 to PanjangPlainteks – 1 do i (i + 1) mod 256
j (j + S[i]) mod 256
swap (S[i], S[j]
t (S[i] + S[j]) mod 256
K S[t]
Untuk melakukan dekripsi, algoritma sama seperti enkripsi:
i 0
j 0
for idx 0 to PanjangCiphertext– 1 do i (i + 1) mod 256
j (j + S[i]) mod 256
swap (S[i], S[j]
t (S[i] + S[j]) mod 256
K S[t]
C K XOR P[idx] (Proses Dekripsi)
Endfor
Kelebihan dari algoritma RC4 adalah:
1. Kunci algoritma RC4 hanya dapat dipakai sekali saja. 2. Sulit mengetahui sebuah nilai yang ada dalam table.
3. Sulit mengetahui lokasi mana di dalam table yang digunakan untuk seleksi nilai.
4. Enkripsi algoritma RC4 lebih cepat dari DES.
Sedangkan kelemahan dari algoritma RC4 tersebut adalah tinggi kemungkinan untuk terjadi S-Box yang sama, itu dikarenakan kunci yang berulang-ulang untuk mengisi 256 byte, dan algoritma RC4 merupakan XOR antara byte dan pseudorandom byte stream yang dihasilkan dari kunci, oleh karena itu kriptanalis dengan mudah menentukan byte atau menebak kuncinya.
Secara umum algoritma RC4 terbagi menjadi 2 bagian:
Inisialisasi state-array dan penghasilan kunci enkripsi serta pengenkripsian.
Sebagai contoh:
Plainteks : N I E S A Kunci : 3 1 2 4 3
Array S 0 1 2 3 4 Array K 1 7 3 5 2
b. Kemudian inisialisasi i dan j dengan 0, dan lakukan KSA supaya mendapatkan state array yang diacak.
Iterasi 1 i = 0
j = (0 + S[0] + K [0 mod 5]) mod 5 (0 + 0 + 1) mod 5 = 0
Swap (S[0] , S[0]) Hasilnya: 0 1 2 3 4
Iterasi 2 i = 0
j = (0 + S[1] + K (1 mod 5]) mod 5 (0 + 1 + 7) mod 5 = 3
Swap (S[1] , S[3]) Hasilnya: 0 3 2 1 4
Iterasi 3 i = 0
j = (3 + S[2] + K [2 mod 5]) mod 5 (3 + 2 + 3) mod 5 = 3
Swap (S[2] , S[3]) Hasilnya: 0 3 1 2 4
Iterasi 4 i = 0
j = (3 + S[3] + K [3 mod 5]) mod 5 (3 + 3 + 5) mod 5 = 1
Iterasi 5 i = 0
j = (1 + S[4] + K [4 mod 5]) mod 5 (1 + 4 + 2) mod 5 = 2
Swap (S[4] , S[2]) Hasilnya: 2 3 4 0 1
c. Kemudian lakukan pseudo random sebanyak 5 kali, karena ada 5 karakternya. Array S
2 3 4 0 1 Inisialisasi i = 0 j = 0
Iterasi 1
i = (0 + 1) mod 5 = 1
j = (0 + S[1]) mod 5 = (0 + 3) mod 5 = 2 Swap (S[1] , S[2])
2 4 3 0 1
K1 = S[(S[1] + S[2]) mod 5] = S[7 mod 5] = 2 = K1 = 00000010
Iterasi 2
i = (1 + 1) mod 5 = 2
j = (2 + S[2]) mod 5 = (2 + 3) mod 5) = 0 Swap (S[2], S[0])
3 4 2 0 1
K2 = S[(S[2] + S[0]) mod 5] = S[5 mod 5] = 0 K2 = 00000000
Iterasi 3
i = (2 + 1) mod 5 = 2
3 2 4 0 1
K3 = S[S[2] + S[1]) mod 5] = S[6 mod 5] = 1 K3 = 00000001
Iterasi 4
i = (2 + 1) mod 5 = 2
j = (3 + S[4]) mod 5 = (3 + 1) mod 5) = 1 Swap S[2], S[1]
3 4 2 0 1
K4 = S[S[2] + S[1]) mod 5] = S[6 mod 5) = 1 K4 = 00000001
Iterasi 5
i = (2 + 1) mod 5 = 2
j = (3 + S[0]) mod 5 = (3 + 3) mod 5) = 1 Swap S[2], S[1]
3 2 4 0 1
K5 = S[S[2] + S[1]) mod 5] = S[6 mod 5) = 1 K5 = 00000001
Setelah selesai proses XOR pseudo random dengan plaintext, maka dapat dilihat pada Tabel dibawah ini:
Tabel 3.1. Proses xor Pseudo Random Byte dengan plaintext untuk enkripsi
N I E S A
Plaintext (p) 01001110 01001001 01000101 01010011 01000001
Kunci (k) 00000010 00000000 00000001 00000001 00000001
P ⊕ k 01001100 01001001 01000101 01010010 01000000
Ciphertext (C) L I E R @
Tabel 3.4 Proses XOR pseudo random byte dengan ciphertext untuk dekripsi
L I E R @
Ciphertext (C) 01001100 01001001 01000101 01010010 01000000
Kunci (k) 00000010 00000000 00000001 00000001 00000001
C ⊕ k 01001110 01001001 01000101 01010011 01000001
Plaitext (p) N I E S A
Tabel 3.4 menjelaskan proses dekripsi, ciphertext yang diambil dari hasil enkripsi pada analisis algoritma RC4 dengan menggunakan kunci yang sama.
3.4.3 Rancangan Sistem
Setelah menganalisis kedua algoritma yang digunakan pada penelitian ini, maka berikut rancangan dari sistem yang akan penulis kerjakan untuk penyelesaian masalah:
Gambar 3.1 Rancangan Sistem
agar menghasilkan plaintext. Kemudian lakukan enkripsi dan dekripsi dengan cara meng-XOR-kan dengan kunci yang sama dan selesai.
3.5 Alur Enkripsi
Berikut adalah alur untuk proses enkripsi dengan algoritma RC4 dengan menggunakan kunci hasil dari acakan S-Box sebanyak 256:
Mulai
Inisialisasi i=j=0 k=S-Box [0]
i=(i+1) mod 256 j=(j+k) mod 256
S-Box_next_i=S-Box[i+1] S-Box[i]=S-Box[j]
S-Box[j]=K
t = S[i]+S[j] mod 256
C = P ⊕ S[t] (Kunci)
Selesai
Gambar 3.2 Proses Enkripsi RC4
3.6 Alur Dekripsi
Berikut adalah alur dari proses dekripsi dengan algoritma RC4 dan menggunakan kunci yang sama, karena algoritma RC4 adalah algoritma yang simetris.
Gambar 3.3 Proses Dekripsi RC4
Berdasarkan Gambar 3.3, proses dimulai dengan menginput ciphertext (File yang telah dienkripsi), kemudian input kunci yang sama seperti waktu enkripsi, dan lakukan dekripsi dengan algoritma RC4, maka outpunya akan sama seperti pesan asli (Plaintext).
Start
Ciphertext
key
Dekripsi RC4
Plaintext
BAB 4
HASIL DAN PEMBAHASAN
Pada bab 4 ini dijelaskan hasil dan pembahasan yang telah penulis uji. Pada penelitian penulis membahas pembangkitan kunci dengan Blum Blum Shub (BBS) yang diterapkan pada algoritma RC4 untuk meningkatkan keamanan data, Blum Blum Shub (BBS) mampu menghasilkan kunci acak yang susah diprediksi dan diingat.
4.1Hasil Dan Implementasi
Pada tahap ini, penulis melakukan penelitian terhadap proses enkripsi dan dekripsi pada algoritma RC4 dengan menggunakan kunci bilangan acak metode Blum Blum Shub (BBS) yang telah dijelaskan pada Bab sebelumnya. Pada tahap ini , penulis juga melakukan proses enkripsi dan dekripsi dengan plaintext yang diberikan. Hasil yang ingin didapat dari pembangkitkan kunci, supaya dapat meningkatkan keamanan dari algoritma tersebut.
4.2Algoritma RC4 Menggunakan Algoritma Blum Blum Shub
Pada tahap ini, penulis akan melakukan proses enkripsi dan dekripsi menggunakan kunci yang didapat dari algoritma Blum Blum Shub (BBS). Bilangan acak tersebut didapat dengan proses pembangkitan kunci dan telah digabungkan de ngan algoritma RC4, sehingga kotak substitusi (S-Box) teracak, hasil acakan kotak substitusi (S-Box) digunakan untuk mengenkripsi plaintext.
4.2.1 Enkripsi Algoritma RC4 Menggunakan Blum Blum Shub
4.2.1.1Pengujian 1 (Pertama) Enkripsi Algoritma RC4 Menggunakan Kunci
Pembangkit Blum Blum Shub
Pada tahap ini, percobaan pertama plaintext yang digunakan “NIESA”. Plaintext diubah ke dalam bentuk desimal. Berikut hasil pengubahan ke dalam bentuk desimal 78, 73, 69, 83, dan 65. Kemudian bangkitkan kunci acak dengan metode Blum Blum Shub. Kunci dalam RC4 itu dalam format ASCII yang diwakili 0 s.d 255 karena untuk memasukkan kunci dekripsi akan menggunakan keyboard. Pada percobaan pertama menggunakan range dari 65 – 90 dan nanti akan menghasilkan huruf alfabet semua. BBS akan mengulang sampai permintaan yang maksimum. Jika meminta 5 karakter kunci, maka itu akan berputar sebanyak 5 kali dan akan menghasilkan kunci acak 5 karakter. Tabel 4.1 menunjukkan hasil 5 karakter kunci pada kisaran yang dijelaskan diatas.
Tabel 4.1 BBS Kunci
Lima (5) Karakter Kunci
ASCII 81 80 87 75 73
Q P W K I
Kunci yang dihasilkan oleh BBS adalah “QPWKI”, kemudian menghasilkan S-Box dari kunci yang diperoleh. Tabel 4.3 menunjukkan S-Box yang telah diacak, sedangkan S-Box yang belum diacak dan ditukar ada di Tabel 4.2:
Tabel 4.2 S-Box sebelum diacak
S-Box
S0 S1 S2 S3 S4 S5 S6 S7
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71
S-Box
80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95
96 97 98 99 100 101 102 103
104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119
120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135
136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151
152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167
168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183
184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199
200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215
216 217 218 219 220 221 222 223
224 225 226 227 228 229 230 231
232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247
248 249 250 251 252 253 254 255
Kemudian lakukan permutasi terhadap nilai-nilai yang ada di dalam larik S dengan cara:
← 0
← 0 255
← +� +� 256
� ,� ( � �[ ]
Tabel 4.3 S-Box S-Box
S0 S1 S2 S3 S4 S5 S6 S7
227 162 251 50 150 175 200 55
28 69 30 208 94 242 182 36
33 53 146 158 138 184 189 135
232 82 49 46 68 11 35 57
183 26 39 27 248 190 237 88
59 74 252 224 13 52 159 87
10 196 43 154 64 9 127 160
143 25 63 199 166 91 89 3
234 102 38 141 173 110 134 92
100 171 29 151 172 111 0 243
144 201 217 152 81 113 255 124
67 215 233 148 18 239 220 244
58 45 231 122 117 253 54 188
226 34 7 204 131 126 84 202
235 219 230 212 20 116 47 179
174 106 93 145 40 104 21 157
101 105 95 207 66 214 163 14
198 97 22 24 197 71 6 192
78 222 186 245 142 61 247 170
107 121 168 167 62 133 191 210
19 77 56 178 187 236 181 44
169 76 112 90 195 12 180 120
211 15 216 115 31 130 32 51
176 194 221 223 114 37 118 238
79 70 119 16 241 5 125 136
254 99 206 228 209 177 48 240
2 83 155 218 229 185 73 41
246 193 85 80 250 156 60 123
42 4 213 17 108 72 205 109
132 137 164 153 225 8 96 147
65 140 23 161 86 128 165 249
98 103 149 1 203 75 139 129
Pengujian karakter plaintext 1: N PT ASCII : 78
i = 0 j = 0
i = (i + 1) mod 256 = 1
j = (j + S[i]) mod 256 = 0 + 162
= 162
S[i] = S[1] = 162
S[j] = S[162] = 56 kemudian ditukar S[i] = S[1] = 56
S[j] = S[162] = 162
t = (S[i] + S[j]) mod 256 = (56 + 162) mod 256 = 218 mod 256 = 218
K = S[t] = S[218] = 85
Ciphertext = Plaintext ⊕ kunci = 78 ⊕ 85
= 01001110 ⊕ 01010101 = 27 (00011011) = Esc
Pengujian karakter plaintext ke 2 : I PT ASCII : 73
i = 1 j = 162
i = (i + 1) mod 256 = (1 +1) mod 256 = 2
j = (j + S[i]) mod 256 = (162 + 251) mod 256 = 413 mod 256
S[i] = S[i] = 251
S[j] = S[157] = 133 kemudian tukar S[i] = S[2] = 133
S[j] = S[251] = 251
t = (S[i] + S[j]) mod 256 = (133 + 251) mod 256 = 348 mod 256
= 128
K = S[t] = S[128] = 101
Ciphertext = Plaintext ⊕ kunci = 73 ⊕ 101
= 01001001⊕01100101
= (44) 00101100 = ,
Pengujian karakter ke 3 = E PT ASCII = 69
i = 2 j = 157
i = (i + 1) mod 256 = (2 + 1) mod 256 = 3
j = (j + S[i]) mod 256 = (157 + 50) mod 256 = 207 mod 256 = 207
S[i] = S[i] = 50
S[j] = S[207] = 240 kemudian tukar S[i] = S[3] = 240
S[j] = S[50] = 50
K = S[t] = S[34] = 39
Ciphertext = Plaintext ⊕ kunci = 69 ⊕ 39
= 01000101 ⊕00100111
= 98 (01100010) = b
Pengujian karakter ke 4 = S PT ASCII = 83
i = 3 j = 207
i = (i + 1) mod 256 = (3 + 1) mod 256 = 4
j = (j + S[i]) mod 256 = (207 + 150) mod 256 = 357 mod 256
= 101
S[i] = S[i] = 150
S[j] = S[101] = 253 kemudian tukar S[i] = S[4] = 253
S[j] = S[150] = 150
t = (S[i] + S[j]) mod 256 = (253 + 150) mod 256 = 147 mod 256
= 147
K = S[t] = S[147] = 245
Ciphertext = Plaintext ⊕ kunci = 83 ⊕ 245
= 01010011 ⊕11110101
Pengujian karakter ke 5 = A PT ASCII = 65
i = 4 j = 101
i = (i + 1) mod 256 = (4 + 1) mod 256 = 5
j = (j + S[i]) mod 256 = (101 + 175) mod 256 = 276 mod 256
= 20
S[i] = S[i] = 175
S[j] = S[20] = 138 kemudian tukar S[i] = S[5] = 138
S[j] = S[175] = 175
t = (S[i] + S[j]) mod 256 = (138 + 175) mod 256 = 313 mod 256
= 57
K = S[t] = S[57] = 25
Ciphertext = Plaintext ⊕ kunci = 65 ⊕ 25
= 01000001 ⊕00011001
= 88 (00011001) = X
Tabel 4.4 Hasil Enkripsi
No Plaintext Kunci Ciphertext
0 78 N 85 27
1 73 I 101 44 ,
2 69 E 39 98 B
3 83 S 245 166 ¦
4 65 A 25 88 X
4.2.1.2Pengujian ke 2 (dua) Algoritma RC4 Menggunakan Kunci Pe mbangkit
Blum Blum Shub
Pada pengujian kedua, plaintext yang dipakai “Provinsi Aceh”. Plaintext yang diuji akan diubah kedalam bentuk desimal. Berikut hasil pengubahan ke dalam bentuk desimal 80, 114, 111, 1118, 105, 110, 115, 105, 32, 65, 99, 101, dan 104. Kemudian bangkitkan kunci acak dengan Blum Blum Shub. Kunci dalam RC4 dalam format ASCII yang diwakili 0 s.d 255 karena untuk memasukkan kunci dekripsi digunakan keyboard. Pada percobaan kedua dicoba menggunakan range yang sama seperti pengujian pertama, yaitu dari 65 – 90 yang nanti akan menghasilkan huruf alfabet semua. BBS akan mengulang sampai permintaan yang maksimum. Jika meminta 10 karakter kunci, maka akan berputar sebanyak 10 kali dan akan menghasilkan kunci acak 10 karakter kunci. Jika karakter plaintext tidak sama dengan karakter kunci, maka lakukan padding sampai kunci tersebut cukup untuk karakter plaintext. Tabel 4.5 menunjukkan hasil 10 karakter kunci pada kisaran yang dijelaskan diatas.
Tabel 4.5 BBS Kunci Sepuluh karakte r kunci
ASCII 81 77 77 81 81 89 76 86 83 79
Q M M Q Q Y L V S O
Tabel 4.6 S-Box Sbox
S0 S1 S2 S3 S4 S5 S6 S7
98 159 238 112 151 106 2 147
42 87 11 17 31 22 123 61
100 75 116 176 119 95 92 180
193 127 229 181 77 109 93 8
103 113 62 218 56 179 44 162
86 145 1 125 3 129 101 128
94 84 242 114 243 47 81 144
138 143 197 166 24 63 174 173
67 247 50 194 239 107 175 135
155 51 209 97 16 219 189 105
170 71 232 140 203 169 234 190
252 227 196 6 211 168 122 82
148 154 167 191 25 59 117 120
141 231 245 198 178 210 220 104
192 204 0 217 213 102 224 78
183 5 70 15 223 132 34 216
96 146 64 121 35 240 212 126
32 156 202 23 248 253 139 38
182 187 160 164 186 133 158 205
157 222 46 20 9 244 230 208
65 214 161 76 18 153 130 36
45 124 88 177 221 30 163 29
152 137 4 83 55 26 207 13
199 14 149 41 66 171 254 255
48 134 57 241 118 21 85 52
188 72 54 111 28 136 37 74
79 195 236 60 249 110 80 12
228 246 200 58 19 10 226 237
142 233 69 90 53 184 131 91
115 40 43 201 49 206 73 89
150 39 251 68 33 215 225 172
108 7 99 235 185 27 165 250
Pengujian karakter plaintext 1: P PT ASCII : 80
i = 0 j = 0
i = (i + 1) mod 256 = 1
j = (j + S[i]) mod 256 = 0 + 159 mod 256 = 159
S[i] = S[1] = 159
S[j] = S[159] = 208 kemudian ditukar S[i] = S[1] = 208
S[j] = S[159] = 159
t = (S[i] + S[j]) mod 256 = (208 + 159) mod 256 = 367 mod 256
= 111
K = S[t] = S[111] = 104
Ciphertext = Plaintext ⊕ kunci = 80 ⊕ 104
= 01010000 ⊕ 01101000 = 56 (00111000) = 8
Pengujian karakter plaintext 2: r PT ASCII : 114
i = 1 j = 159
i = (1 + 1) mod 256 = 2
S[i] = S[2] = 238
S[j] = S[141] = 253 kemudian ditukar S[i] = S[2] = 253
S[j] = S[238] = 238
t = (S[i] + S[j]) mod 256 = (253 + 238) mod 256 = 491 mod 256
= 235
K = S[t] = S[235] = 201
Ciphertext = Plaintext ⊕ kunci = 114 ⊕ 201
= 01110010 ⊕ 11001001 = 187 (10111011) = »
Pengujian karakter plaintext 3: o PT ASCII : 111
i = 2 j = 141
i = (2 + 1) mod 256 = 3
j = (j + S[i]) mod 256 = 141 + 112 mod 256 = 253 mod 256 = 253
S[i] = S[3] = 112
S[j] = S[253] = 27 kemudian ditukar S[i] = S[3] = 27
S[j] = S[112] = 112
K = S[t] = S[139] = 23
Ciphertext = Plaintext ⊕ kunci = 111 ⊕ 23
= 01101111 ⊕ 00010111 = 120 (01111000) = x
Pengujian karakter plaintext 4: v PT ASCII : 118
i = 3 j = 253
i = (3 + 1) mod 256 = 4
j = (j + S[i]) mod 256 = 253 + 151 mod 256 = 404 mod 256 = 148
S[i] = S[4] = 151
S[j] = S[148] = 186 kemudian ditukar S[i] = S[4] = 186
S[j] = S[151] = 151
t = (S[i] + S[j]) mod 256 = (186 + 151) mod 256 = 337 mod 256
= 81
K = S[t] = S[81] = 71
Ciphertext = Plaintext ⊕ kunci = 118 ⊕ 71
Pengujian karakter plaintext 5: i PT ASCII : 105
i = 4 j = 148
i = (4 + 1) mod 256 = 5
j = (j + S[i]) mod 256 = 148 + 106 mod 256 = 254 mod 256 = 254
S[i] = S[5] = 106
S[j] = S[254] = 165 kemudian ditukar S[i] = S[5] = 165
S[j] = S[106] = 106
t = (S[i] + S[j]) mod 256 = (165 + 106) mod 256 = 271 mod 256
= 15
K = S[t] = S[15] = 61
Ciphertext = Plaintext ⊕ kunci = 105 ⊕ 61
= 01101001 ⊕ 00111101 = 84 (01010100) = T
Pengujian karakter plaintext 6: n PT ASCII : 110
i = 4 j = 254
i = (5 + 1) mod 256 = 6
S[i] = S[6] = 2
S[j] = S[0] = 98 kemudian ditukar S[i] = S[6] = 98
S[j] = S[2] = 2
t = (S[i] + S[j]) mod 256 = (98 + 2) mod 256 = 100 mod 256 = 100
K = S[t] = S[100] = 25
Ciphertext = Plaintext ⊕ kunci = 110 ⊕ 25
= 01101110 ⊕ 00011001 = 119 (01110111) = w
Pengujian karakter plaintext 7: s PT ASCII : 115
i = 6 j = 0
i = (6 + 1) mod 256 = 7
j = (j + S[i]) mod 256 = 0 + 147 mod 256 = 147 mod 256 = 147
S[i] = S[7] = 147
S[j] = S[147] = 164 kemudian ditukar S[i] = S[7] = 164
S[j] = S[147] = 147
t = (S[i] + S[j]) mod 256 = (164 + 147) mod 256 = 311 mod 256
K = S[t] = S[55] = 144
Ciphertext = Plaintext ⊕ kunci = 115 ⊕ 144
= 01110011 ⊕ 10010000 = 227 (11100011) = ã
Pengujian karakter plaintext 8: i PT ASCII : 105
i = 7 j = 147
i = (7 + 1) mod 256 = 8
j = (j + S[i]) mod 256 = 147 + 42 mod 256 = 189 mod 256 = 189
S[i] = S[8] = 42
S[j] = S[189] = 171 kemudian ditukar S[i] = S[8] = 171
S[j] = S[42] = 42
t = (S[i] + S[j]) mod 256 = (171+ 42) mod 256 = 213 mod 256 = 213
K = S[t] = S[213] = 110
Ciphertext = Plaintext ⊕ kunci = 105 ⊕ 110
Pengujian karakter plaintext 9: Space PT ASCII : 32
i = 8 j = 189
i = (8 + 1) mod 256 = 9
j = (j + S[i]) mod 256 = 189 + 87 mod 256 = 276 mod 256 = 20
S[i] = S[9] = 87
S[j] = S[20] = 119 kemudian ditukar S[i] = S[9] = 119
S[j] = S[87] = 87
t = (S[i] + S[j]) mod 256 = (119+ 87) mod 256 = 206 mod 256 = 206
K = S[t] = S[206] = 37
Ciphertext = Plaintext ⊕ kunci = 32 ⊕ 37
= 00100000 ⊕ 00100101 = 5 (00000101) = |
Pengujian karakter plaintext 10: A PT ASCII : 65
i = 9 j = 20
i = (9 + 1) mod 256 = 10
S[i] = S[10] = 11
S[j] = S[31] = 8 kemudian ditukar S[i] = S[10] = 8
S[j] = S[11] = 11
t = (S[i] + S[j]) mod 256 = (8+ 11) mod 256 = 19 mod 256 = 19
K = S[t] = S[19] = 176
Ciphertext = Plaintext ⊕ kunci = 65 ⊕ 176
= 01000001 ⊕ 10110000 = 241(11110001 ) = ñ
Pengujian karakter plaintext 11: c PT ASCII : 99
i = 10 j = 31
i = (10 + 1) mod 256 = 11
j = (j + S[i]) mod 256 = 31 + 17 mod 256 = 48 mod 256 = 48
S[i] = S[11] = 17
S[j] = S[48] = 94 kemudian ditukar S[i] = S[11] = 94
S[j] = S[17] = 17
K = S[t] = S[111] = 104
Ciphertext = Plaintext ⊕ kunci = 99 ⊕ 104
= 01100011 ⊕01101000
= 11 (00001011) =
Pengujian karakter plaintext 12: e PT ASCII : 101
i = 11 j = 48
i = (11 + 1) mod 256 = 12
j = (j + S[i]) mod 256 = 48 + 31 mod 256 = 79
S[i] = S[12] = 31
S[j] = S[79] = 105 kemudian ditukar S[i] = S[12] = 105
S[j] = S[31] = 31
t = (S[i] + S[j]) mod 256 = (105+ 31) mod 256 = 136 mod 256 = 136
K = S[t] = S[136] = 32
Ciphertext = Plaintext ⊕ kunci = 101 ⊕ 32
Pengujian karakter plaintext 13: h PT ASCII : 104
i = 12 j = 79
i = (12 + 1) mod 256 = 13
j = (j + S[i]) mod 256 = 79 + 22 mod 256 = 101
S[i] = S[13] = 22
S[j] = S[101] = 59 kemudian ditukar S[i] = S[13] = 59
S[j] = S[22] = 22
t = (S[i] + S[j]) mod 256 = (59 + 22) mod 256 = 81 mod 256 = 81
K = S[t] = S[81] = 71
Ciphertext = Plaintext ⊕ kunci = 104 ⊕ 71
= 01101000 ⊕ 01000111 = 47 (01000111) = /
Pada proses di atas kunci K dipilih dengan mengambil nilai S[i] dan S[j] kemudian menjumlahkan dengan modulo 256. Hasil dari penjumlahan adalah indeks t, sehingga S[t] menjadi kunci K yang kemudian digunakan untuk kunci enkripsi. Tabel 4.7 menunjukkan hasil dari enkripsi plaintext “Provinsi Aceh”.
Tabel 4.7 Hasil Enkripsi
Plaintext Kunci Ciphertext
0 80 P 104 56 8
1 114 r 201 187 »
Plaintext Kunci Ciphertext
3 118 v 71 49 1
4 105 i 61 84 T
5 110 n 25 119 W
6 115 s 144 227 Ã
7 105 i 110 7
8 32 37 5 |
9 65 A 176 241 Ñ
10 99 c 104 11
11 101 e 32 69 E
12 104 h 71 47 /
4.2.1.3Pengujian ke 3 (Tiga) Algoritma Rc4 Menggunakan Kunci Pe mbangkit
Blum Blum Shub
Pada pengujian ketiga, plaintext yang digunakan “Algoritma RC4 Merupakan Stream Cipher”. Plaintext yang diuji akan diubah kedalam bentuk desimal. Berikut hasil pengubahan kedalam bentuk desimal 65, 108, 103, 111, 114, 105, 116, 116, 109, 97, 32, 82, 67, 52, 32, 77, 101, 114, 117, 112, 97, 107, 97, 110, 32, 83, 116, 114, 101, 97, 109, 32, 67, 105, 112, 104, 101, dan 114. Kemudian bangkitkan kunci akal dengan Blum Blum Shub. Kunci dalam RC4 dalam format ASCII yang diwakili 0 s.d 255 karena untuk memasukkan kunci dekripsi menggunakan keyboard. Pada pengujian ketiga dicoba menggunakan range dari 33 – 37 yang nanti menghasilkan kunci campuran tetapi masih bisa digunakan. BBS akan mengulang sampai permintaan yang maksimum. Jika meminta 20 karakter kunci, maka itu akan berputar sebanyak 20 kali dan akan menghasilkan kunci acak 20. Jika karakter plaintext tidak sama dengan karakter kunci, maka lakukan padding sampai kunci tersebut cukup untuk karakter plaintext. Tabel 4.8 menunjukkan hasil 20 karakter kunci pada kisaran yang dijelaskan di atas.
Tabel 4.8 BBS Kunci 20 karakter kunci
ASCII 43 64 76 58 120 83 85 100 61 39 103 73 76 107 110 33 93 83 61 74
Kunci yang dihasilkan oleh BBS adalah “+@L:xsUd='gILkn!]S=J”, kemudian lakukan permutasi terhadap nilai-nilai yang ada di dalam larik S dengan cara yang telah dijelaskan pada pengujian pertama, Setelah proses pengacakan dan pertukaran sebanyak 256, maka hasil S-box yang telah diacak dan ditukar dapat dilihat pada Tabel 4.9 di bawah ini:
Tabel 4.9 S-Box Sbox
S0 S1 S2 S3 S4 S5 S6 S7
144 108 221 153 115 235 128 97
136 65 167 5 67 47 91 86
12 56 135 40 48 121 63 0
13 71 182 10 32 214 66 191
23 203 25 112 62 117 141 44
127 193 94 184 30 3 17 198
164 58 33 231 227 109 145 192
122 2 224 26 210 51 253 157
85 238 160 139 98 36 251 213
165 207 34 38 234 156 120 174
232 57 88 99 155 189 103 61
80 172 113 179 21 126 178 4
229 130 166 50 31 96 78 131
101 52 205 104 37 237 77 84
93 133 29 150 83 147 55 142
244 20 239 106 49 111 134 228
208 59 69 222 89 158 146 124
246 19 90 212 250 199 187 248
43 163 18 168 123 240 200 53
39 247 92 7 81 223 1 125
196 188 170 35 116 105 152 176
161 236 245 233 225 249 11 175
201 194 41 118 114 28 215 107
202 195 138 9 6 100 173 190
252 209 74 8 22 219 162 204
110 95 119 183 220 243 132 216
70 254 64 186 241 217 73 255
60 151 45 242 24 171 87 226
180 169 27 15 140 16 76 154
218 137 143 42 79 206 75 68
211 46 185 159 197 181 129 72
Kemudian untuk membangkitkan kunci enkripsi, maka dilakukan proses perhitungan yang sama seperti pada pengujian pertama dan dua . Pengujian ketiga menggunakan plaintext “Algoritma RC4 Merupakan Stream Cipher” dengan kuncinya adalah “QMMQQYLVSO”
Pada proses perhitungan, kunci K dipilih dengan mengambil nilai S[i] dan S[j] kemudian menjumlahkan dengan modulo 256. Hasil penjumlahan adalah indeks t, sehingga S[t] menjadi kunci K, kemudian digunakan untuk kunci enkripsi. Tabel 4.10 menunjukkan hasil dari enkripsi plaintext “Algoritma RC4 Merupakan Stream Cipher”.
Tabel 4.10 Hasil Enkripsi
Plaintext Kunci Ciphertext
0 65 A 163 226 â•
1 108 l 225 141 •
2 103 g 114 21 •
3 111 o 164 203 Ë
4 114 r 235 153
5 105 i 49 88 X
6 116 t 30 106 J
7 109 m 83 62 >
8 97 a 70 39 '
9 32 34 2 STX
10 82 R 243 161 ¡
11 67 C 45 110 N
12 52 4 10 62 >
13 32 199 231 Ç
14 77 M 71 10 LF
15 101 e 154 255 Ÿ
16 114 r 137 251 Û
17 117 u 180 193 Á
18 112 p 143 255 Ÿ
19 97 a 165 196 Ä
20 107 k 79 36 $
21 97 a 138 235 Ë
22 110 n 157 243 Ó
23 32 95 127 Del
24 83 S 97 50 2
Plaintext Kunci Ciphertext
26 114 r 233 155 ›
27 101 e 187 222 Þ
28 97 a 250 155 ›
29 109 m 129 236 Ì
30 32 210 242 Ò
31 67 C 75 8 Backspace
32 105 i 196 173
33 112 p 100 20 DC4
34 104 h 227 139 ‹
35 101 e 240 149
36 114 r 60 78 N
Tabel 4.10 menunjukkan hasil dari enkripsi plaintext “Algoritma RC4 Merupakan Stream Cipher”. Plaintext telah diubah kedalam bentuk desimal, kemudian S-box juga telah diacak, sehingga kolom kunci itu yang digunakan untuk enkripsi dengan menggunakan XOR dan hasil dekripsi “âËXj>'¡n>çÿûÁÿ$ëó•2›Þ›íò-‹N”.
4.2.2 Dekripsi Algoritma RC4 Menggunakan Blum Blum Shub
Pada tahap dekripsi akan melakukan proses sebanyak 3 kali terhadap ciphertext yang telah diperoleh dari enkripsi sebelumnya. Berikut hasil proses dekripsi dengan algoritma RC4 dan menggunakan pembangkit kunci Blum Blum Shub.
4.2.2.1Pengujian 1 (Pertama) Dekripsi Algoritma RC4 Menggunakan Blum Blum Shub
Pada pengujian pertama, ciphertext yang didekripsi adalah” ,b¦X”. Kemudian ciphertext diubah kedalam bilangan desimal. Hasil pengubahan dalam bilangan desimal adalah 27, 44, 98, 166, dan 88. Kunci yang digunakan untuk dekripsi adalah kunci yang sama seperti pada saat enkripsi. Kemudian lakukan proses XOR untuk mendapatkan pesan aslinya. Dari hasil pengujian, maka didapat:
Tabel 4.11 Hasil Dekripsi 1
Kode Bine r (ASCII)
Ciphertext (C) (Esc) 27 , B ¦ X
(00011011)
44 (00101100)
98 (01100010)
166 (10100110)
kode Biner (ASCII)
Kunci (K) 01010101 01100101 00100111 11110101 00011001
C ⊕ K 01001110 01001001 01000101 01010011 01000001
Plaintext (P) N I E S A
Tabel 4.11 merupakan hasil dekripsi ciphertext ke plaintext, terlihat bahwa plaintext “NIESA” kembali sebagai pesan aslinya.
4.2.2.2Pengujian 2 (Dua) Dekripsi Algoritma RC4 Menggunakan Blum Blum Shub
Pada pengujian kedua, ciphertext yang didekripsi adalah” 8»x1Twãñ E/”. Kemudian ciphertext diubah kedalam bilangan desimal. Hasil pengubahan dalam bilangan desimal adalah 56, 187, 120, 49, 84, 119, 227, 7, 5, 241, 11, 69, dan 47. Kunci yang digunakan kunci sama seperti pada saat enkripsi. Kemudian lakukan proses XOR untuk mendapatkan pesan aslinya. Dari hasil pengujian, maka didapat:
Tabel 4.12 Hasil Dekripsi 2
Tabel di atas menunjukkan hasil plaintext “Provinsi Aceh”.
4.2.2.3Pengujian 3 (Tiga) Dekripsi Algoritma RC4 Menggunakan Blum Blum Shub
Pada pengujian ketiga, ciphertext yang didekripsi adalah”
â•Ë™Xj>'¡n>çÿûÁÿÄ$ëó•2›Þ›ìò‹•N”. Kemudian ciphertext diubah kedalam
Tabel 4.13 Hasil Dekripsi 3
4.3Pembahasan
Berdasarkan penjelasan pada bab sebelumnya, penelitian ini bertujuan untuk mengoptimasi kunci dengan metode acak Blum Blum Shub (BBS), hasil dari kunci Blum Blum Shub (BBS) digunakan untuk proses pengacakan S-Box pada algoritma RC4. Keamanan Blum Blum Shub (BBS) terdapat pada saat melakukan pemfaktoran terhadap nilai n yang harus kongruen dengan 3 modulo 4. Nilai n tidak perlu dirahasiakan dan dapat saja diumumkan. Blum Blum Shub (BBS) tidak dapat diprediksi dari arah kiri atau kanan, artinya jika diberikan barisan bit yang diperoleh dari Blum Blum Shub (BBS), maka kriptanalis tidak dapat memprediksi barisan bit sebelumnya atau sesudahnya.
Algoritma Blum Blum Shub (BBS) dapat ditebak atau diketahui, apabila kriptanalis mendapatkan sebuah nilai p dan q, maka akan ada kemungkinnan untuk bisa menghitung nilai X, akan tetapi untuk mendapatkan nilai p dan q merupakan hal yang bisa dibilang sangat sulit karena belum ada algoritma yang efisien untuk memfaktorkan nilai n sehingga tingkat keamanan lebih terjaga dan kuncinya tidak mudah ditebak.
Dengan menggunakan pembangkit kunci acak Blum Blum Shub (BBS), maka kemungkinan kriptanalis susah untuk mengetahui pesan apa yang dikirim oleh pengirim. Pada hasil pengujian juga bisa dilihat proses waktunya, berikut waktu yang dihasilkan pada saat proses generate kunci acak Blum Blum Shub (BBS) menurut panjang karakter yang diuji:
Tabel 4.14 Waktu Pengujian Kunci BBS
Pengujian
ke- Plaintext
Total karakter kunci
Waktu generate BBS
1. NIESA 5 00:00:00:1948878
2. Provinsi Aceh 10 00:00:00:0091429
3. Algoritma RC4 Merupakan Stream Cipher 20 00:00:00:0008699
4.
Kebanyakan PRNG tidak cocok digunakan untuk CSPRNG karena tidak memenuhi kedua persyaratan CSPRNG yang disebutkan di atas. CSPRNG dirancang
Plaintext
Total karakter kunci
Waktu generate kunci untuk tahan terhadap bermacam-macam
kriptanalis.
5. OPTIMASI KUNCI DENGAN BLUM
BLUM SHUB PADA ALGORITMA RC4 30 00:00:00:2186553
Pada Tabel 4.14 di atas bisa dilihat, proses waktu untuk mendapatkan kunci dari Blum Blum Shub (BBS) tidak menentu, tidak tergantung dari jumlah karakter pendek atau panjangnya karakter, waktu yang dihasilkan dari karakter yang panjang malah sedikit jika dibanding dengan jumlah karakter yang pendek.
Pengujian menurut range yang digunakan, sehingga hasil kunci dapat dilihat pada Tabel 4.15:
Tabel 4.15 Kunci BBS
Pengujian
ke- Range Kunci BBS
1. 60 – 90 QPWKI
2. 60 – 90 QMMQQYLVSO
3. 33 – 127 +@L:xsUd='gILkn!]S=J 4. 0 – 255 ËLô©:1ÜàÜPjtKs³»PEF"ºê<
5. 0 - 255 øLðüFÄ©Í÷ὨúåN®ú½åsDA
4.4Perbedaan Waktu Enkripsi Dan Dekripsi Menurut Jumlah Karakter
Pada pengujian yang telah dilakukan, maka diuji juga waktu eksekusi enkripsi dan dekripsi menurut jumlah karakter. Berikut hasil eksekusi waktu enkripsi dan dekripsi:
4.4.1 Waktu Enkripsi Menurut Jumlah Karakter
Pada tahap pengujian di atas juga diuji waktu enkripsi, dari hasil pengujian didapatkan hasil sebagai Tabel 4.16 di bawah ini:
Tabel 4.16 Waktu Enkripsi
Pengujian
ke- Plaintext
Total karakter
Kunci
Waktu Enkripsi
1. NIESA 5 00:00:06.5737179
2. Provinsi Aceh 10 00:00:17.0536642
3. Algoritma RC4 Merupakan Stream
Cipher 20 00:00:07:0661829
4.
Kebanyakan PRNG tidak cocok digunakan untuk CSPRNG karena tidak memenuhi kedua persyaratan CSPRNG yang disebutkan di atas. CSPRNG dirancang untuk tahan terhadap bermacam-macam kriptanalis.
25 00:00:04:6041959
5. OPTIMASI KUNCI DENGAN BLUM BLUM SHUB PADA ALGORITMA RC4
30 00:00:09:6215048
Berikut tampilan grafik waktu enkripsi:
Grafik 4.1 Waktu Enkripsi
4.4.2 Waktu Dekripsi Menurut Jumlah Karakter
Pada tahap pengujian diatas selain menguji waktu enkripsi juga menguji waktu dekripsi dengan menggunakan kunci yang sama, karena kalau kuncinya tidak sama, maka hasil plaintext tidak akan kembali seperti pesan aslinya, dari hasil pengujian didapatkan hasil sebagai Tabel dibawah ini:
Tabel 4.17 Waktu Dekripsi
Pengujian
ke- Ciphertext
Total karakter
kunci
Waktu Dekripsi
1. ,b¦X 5 00:00:05.1878581
2. 8»x1Twãñ E/ 10 00:00:01.8386244
3. â• ËXj>'¡n>çÿûÁÿÄ$ëó•2›Þ›íò-‹N 20 00:00:02.8641302
4. >eVß°Åy</(Ò•»8Ùÿ|ÖõãûêI«é'ZP›éúaï¼[&#íNrýq„Fx“ü˜×NÀâƒýi²sÁ9>6¦t¹†¦øÿ ûŽ`l0p4SÞcçˆ4örÊ·{‟2ÁÕŸ„'¯‰Õª• • OÑ&ÀòÖ_ìÁG5›Íìµ+
--âÿ'x[Ï#Þì~ pR²˜¦Ýv¨m'IÕ_{:7¨»»&Ãn(Zsôª
25 00:00:02.8128999
5. è<f.œƒô²4ûY#$\Š“}Ë‚½D„Í*ÔN•›ít&X¢e• „og½ÓTþ
Ãóog 30 00:00:01.9020951
0 5 10 15 20 25 30 35
1 2 3 4 5
Ju
m
la
h
K
ar
ak
te
r
ku
nc
i
Pengujian
Waktu Enkripsi
Pengujian ke-Kunci
Tabel 4.17 menunjukkan waktu dekripsi menurut total karater kunci yang diperoleh, pada pengujian pertama terdapat 5 karakter kunci yaitu QPWKI dengan waktu enkripsi 00:00:05.1878581, pegujian kedua terdapat 10 karakter kunci yaitu QMMQQYLVSO dengan waktu enkripsi 00:00:01.8386244, pengujian ketiga terdapat 20 karakter kunci yaitu +@L:xsUd='gILkn!]S=J dengan waktu enkripsi 00:00:02.8641302, pengujian yang keempat terdapat 25 karakter kunci yaitu ËLô©:1ÜàÜPjtKs³»PEF"ºê< dengan waktu eksekusi 00:00:02.8128999, sedangkan pengujian yang kelima terdapat 30 karakter kunci dengan waktu eksekusi 00:00:01.9020951. Berikut grafik dari waktu dekripsi:
Grafik 4.2 Waktu Dekripsi
Grafik 4.1 dan Grafik 4.2 menunjukkan waktu enkripsi dan dekripsi dengan kunci yang sama, waktu yang diperoleh tidak tergantung pada banyaknya karakter yang dienkripsi dan dekripsi. Pada Grafik 4.1 waktu yang paling cepat dalam memperoleh ciphertext yaitu pada pengujian keempat sedangkan waktu yang paling lama yaitu pada pengujian kedua.
Pada Grafik 4.2 waktu yang paling cepat dalam memperoleh plaintext (pesan asli) yaitu pada pengujian kedua sedangkan waktu yang paling lama dalam memperoleh plaintext yaitu kesatu.
0 5 10 15 20 25 30 35
1 2 3 4 5
Jum
la
h
K
a
r
a
k
t
e
r
k
un
c
i
Pengujian
Waktu Dekripsi
Uji
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil dari pengujian sistem secara menyeluruh yang dilakukan pada Bab 4, maka ada beberapa hal yang dapat dijadikan kesimpulan pada penelitian ini, antara lain:
1. Algoritma Blum Blum Shub dapat memberikan kontribusi yang baik terhadap algoritma RC4. Ketika kunci yang dihasilkan oleh BBS terpasang pada algoritma RC4, maka tidak perlu membuat kunci sendiri, karena sepenuhnya menggunakan kunci tersebut.
2. Hasil pengacakan tabel S-Box dengan menggunakan kunci acak dari BBS tidak terjadi permutasi yang berulanga-ulang.
3. Jika menggunakan range antara 60 – 90, maka kunci yang dihasilkan semua huruf alfabet, sedangkan jika menggunakan range 33-127 maka karakter yang muncul sudah campuran, tetapi masih ada pada papan keyboardnya. Sedangkan jika menggunakan range dari 0-255 kunci yang dihasilkan sebagian tidat dapat digunakan pada saat dekripsi.
4. Kecepatan waktu yang diperoleh tidak tergantung pada jumlah karakter yang banyak atau sedikit.
5. Pada enkripsi, waktu proses yang tercepat yaitu pada pengujian keempat (00:00:04.6041959), sedangkan proses yang lama pada pengujian kedua (00:00:17.0536642).
5.2. Saran
Penelitian ini masih sangat membutuhkan pengembangan lebih lanjut. Oleh karena itu ada beberapa saran yang penulis harapkan bisa dipenuhi pada penelitian selanjutnya, yaitu:
1. Untuk lebih menjaga keamanannya, sebaiknya nilai p dan q dibatasi, supaya mendapatkan hasil yang lebih efisien lagi.
2. Untuk kunci sebaiknya range dibatasi, supaya mendapatkan kunci acak yang baik untuk enkripsi dan dekripsi.
3. Untuk pengujian selanjutnya bisa menguji dengan lebih banyak karakter lagi. 4. Pengujian selanjutnya bisa juga dimodifikasi dengan algoritma pembangkit