Optimasi Kunci Dengan Blum Blum Shub Pada Algoritma RC4 Chapter III V
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 masingmasing algoritma, dan rancangan sistem.
3.2 Waktu 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.3 Data yang digunakan
Data yang digunakan pada penelitian ini adalah file dokumen, yang akan diamati ada
beberapa karakter.
3.4 Prosedur 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)
Pada penelitian metode BBS (Blum Blum Shub) digunakan untuk membangkitkan
kunci acak, karena Blum Blum Shub (BBS) mampu menghasilkan kunci acak yang
susah untuk diingat, karena kunci yang dibangkitkan tidak bisa diprediksi. Berikut
langkah-langkah dari algoritma BBS (Blum Blum S hub) (Sidorenko, 2005):
Universitas Sumatera Utara
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
165 = 9. Barisan bit acak
= 32
hasilnya sebagai berikut:
1= 20
= 92
2= 21
= 81 2
165 =81 → 1 =1 (
3= 22
= 126 2
4 = 23
= 36 2
5= 24
= 141 2
165 = 126 → 2 =0 (
165 = 36 → 1 =0
81
,
126
���
,
1
���
0
165 = 141 → 1 =0
165 = 81 → 1 =1
Dikarenakan X5 = X1 , maka barisan nilai akan berulang-ulang kembali setelah
panjangnya 4 (empat). Barisan acak yang dihasilkan adalah 1000100010001.......dan
seterusnya akan berulang.
Universitas Sumatera Utara
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
0 to PanjangPlainteks – 1 do
for idx
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 Enkripsi) , Endfor
Universitas Sumatera Utara
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
Kunci
:N I ES A
:3 1 2 4 3
a. Menginisialisasi array S 5 bit, sehingga terbentuk state array S dan state array
K.
Universitas Sumatera Utara
Array S
01234
Array K
17352
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
Swap (S[3] , S[1])
Hasilnya: 2 3 1 0 4
Universitas Sumatera Utara
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
23401
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])
24301
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])
34201
K2 = S[(S[2] + S[0]) mod 5] = S[5 mod 5] = 0
K2 = 00000000
Iterasi 3
i = (2 + 1) mod 5 = 2
j = (3 + S[3]) mod 5 = (0 + 2) mod 5) = 1
Swap S[2], S[1])
Universitas Sumatera Utara
32401
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]
34201
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]
32401
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
Plaintext (p)
Kunci (k)
P⊕k
Ciphertext (C)
N
01001110
00000010
I
01001001
00000000
E
01000101
00000001
S
01010011
00000001
A
01000001
00000001
01001100
01001001
01000101
01010010
01000000
L
I
E
R
@
Sedangkan untuk proses dekripsi kebalikan dari enkripsi, yaitu mengubah
ciphertext menjadi plaintext (pesan asli) kembali. Tabel 3.3 akan menjelaskan proses
dekripsi:
Universitas Sumatera Utara
Tabel 3.4 Proses XOR pseudo random byte dengan ciphertext untuk dekripsi
Ciphertext (C)
Kunci (k)
L
01001100
00000010
I
01001001
00000000
E
01000101
00000001
R
01010010
00000001
@
01000000
00000001
C⊕ k
01001110
01001001
01000101
01010011
01000001
N
I
E
S
A
Plaitext (p)
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
Berdasarkan Gambar 3.1, proses dimulai dengan membangkitkan kunci acak dengan
metode Blum Blum Shub (BBS), kemudian pilihlah seed (umpan) untuk mendapatkan
key, hasil dari key tersebut akan digunakan untuk melakukan pengacakan S-Box
sebanyak 256 putaran. Kemudian lakukan perhitungan terhadap S-box yang terpilih
Universitas Sumatera Utara
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=SBox[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
Gambar 3.2 menunjukkan proses enkripsi RC4, langkah pertama yang dilakukan
adalah menginisialisasi i dan j dengan nilai 0, kemudian lakukan perhitungan dengan i
= ( i + 1) mod 256 dan j = ( i + 1) mod 256. Setelah itu lakukan pertukaran S [i]
dengan S [j], hitung nilai t dengan cara t = (S [i] + S [j] ) mod 256, maka nilai t
tersebut yang akan menjadi kunci enkripsi plaintext, selesai.
Universitas Sumatera Utara
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.
Start
Ciphertext
key
Dekripsi RC4
Plaintext
End
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).
Universitas Sumatera Utara
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.1 Hasil 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.2 Algoritma 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
Pada tahapan ini, proses enkripsi dilakukan sebanyak 3 kali. Hasil dari proses enkripsi
dan dekripsi dapat menjadikan satu acuan baru untuk pembangkit kunci pada
algoritma RC4 dan dapat digunakan pada algoritma-algoritma yang lain.
Universitas Sumatera Utara
4.2.1.1 Pengujian 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
ASCII
81
Q
Lima (5) Karakter Kunci
80
87
75
P
W
K
73
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
0
8
16
24
32
40
48
56
64
72
S1
1
9
17
25
33
41
49
57
65
73
S2
2
10
18
26
34
42
50
58
66
74
S3
3
11
19
27
35
43
51
59
67
75
S4
4
12
20
28
36
44
52
60
68
76
S5
5
13
21
29
37
45
53
61
69
77
S6
6
14
22
30
38
46
54
62
70
78
S7
7
15
23
31
39
47
55
63
71
79
Universitas Sumatera Utara
S-Box
80
88
96
104
112
120
128
136
144
152
160
168
176
184
192
200
208
216
224
232
240
248
81
89
97
105
113
121
129
137
145
153
161
169
177
185
193
201
209
217
225
233
241
249
82
90
98
106
114
122
130
138
146
154
162
170
178
186
194
202
210
218
226
234
242
250
83
91
99
107
115
123
131
139
147
155
163
171
179
187
195
203
211
219
227
235
243
251
84
92
100
108
116
124
132
140
148
156
164
172
180
188
196
204
212
220
228
236
244
252
85
93
101
109
117
125
133
141
149
157
165
173
181
189
197
205
213
221
229
237
245
253
86
94
102
110
118
126
134
142
150
158
166
174
182
190
198
206
214
222
230
238
246
254
87
95
103
111
119
127
135
143
151
159
167
175
183
191
199
207
215
223
231
239
247
255
Kemudian lakukan permutasi terhadap nilai- nilai yang ada di dalam larik S dengan
cara:
←0
←0
←
255
+�
�
,�
+�
(
256
�
�[ ]
Setelah dilakukan acak dan swap sebanyak 256, maka hasil kotak substitusi (S-Box)
yang telah diacak dan ditukar bisa dilihat pada Tabel 4.3 dibawah ini:
Universitas Sumatera Utara
Tabel 4.3 S-Box
S-Box
S0
227
28
33
232
183
59
10
143
234
100
144
67
58
226
235
174
101
198
78
107
19
169
211
176
79
254
2
246
42
132
65
98
S1
162
69
53
82
26
74
196
25
102
171
201
215
45
34
219
106
105
97
222
121
77
76
15
194
70
99
83
193
4
137
140
103
S2
251
30
146
49
39
252
43
63
38
29
217
233
231
7
230
93
95
22
186
168
56
112
216
221
119
206
155
85
213
164
23
149
S3
50
208
158
46
27
224
154
199
141
151
152
148
122
204
212
145
207
24
245
167
178
90
115
223
16
228
218
80
17
153
161
1
S4
150
94
138
68
248
13
64
166
173
172
81
18
117
131
20
40
66
197
142
62
187
195
31
114
241
209
229
250
108
225
86
203
S5
175
242
184
11
190
52
9
91
110
111
113
239
253
126
116
104
214
71
61
133
236
12
130
37
5
177
185
156
72
8
128
75
S6
200
182
189
35
237
159
127
89
134
0
255
220
54
84
47
21
163
6
247
191
181
180
32
118
125
48
73
60
205
96
165
139
S7
55
36
135
57
88
87
160
3
92
243
124
244
188
202
179
157
14
192
170
210
44
120
51
238
136
240
41
123
109
147
249
129
Kemudian untuk membangkitkan kunci enkripsi, maka dilakukan proses perhitungan .
Pengujian pertama digunakan plaintext “NIESA” dan kuncinya adalah “QPWKI”.
Berikut adalah proses mendapatkan kunci untuk enkripsi:
Universitas Sumatera Utara
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
= 157
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (240 + 50) mod 256
= 290 mod 256
= 34
Universitas Sumatera Utara
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
= 166 (10100110) = ¦
Universitas Sumatera Utara
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
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 dan kemudian digunakan untuk kunci enkripsi. Tabel 4.4
menunjukkan hasil dari enkripsi plaintext “NIESA”.
Universitas Sumatera Utara
Tabel 4.4 Hasil Enkripsi
No
0
1
2
3
4
Plaintext
78
N
73
I
69
E
83
S
65
A
Kunci
85
101
39
245
25
Ciphertext
27
44
,
98
B
166
¦
88
X
4.2.1.2 Pengujian 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
Kunci yang dihasilkan oleh BBS adalah “QMMQQYLVSO”. Kemudian lakukan
permutasi terhadap nilai- nilai yang ada di dalam larik S dengan cara yang telah
dijelaskan pada pengujian pertama, Setelah dilakukan acak dan swap sebanyak 256,
maka hasil S-Box yang telah diacak dan ditukar bisa dilihat pada Tabel 4.6 di bawah
ini:
Universitas Sumatera Utara
Tabel 4.6 S-Box
Sbox
S0
98
42
100
193
103
86
94
138
67
155
170
252
148
141
192
183
96
32
182
157
65
45
152
199
48
188
79
228
142
115
150
108
S1
159
87
75
127
113
145
84
143
247
51
71
227
154
231
204
5
146
156
187
222
214
124
137
14
134
72
195
246
233
40
39
7
S2
238
11
116
229
62
1
242
197
50
209
232
196
167
245
0
70
64
202
160
46
161
88
4
149
57
54
236
200
69
43
251
99
S3
112
17
176
181
218
125
114
166
194
97
140
6
191
198
217
15
121
23
164
20
76
177
83
41
241
111
60
58
90
201
68
235
S4
151
31
119
77
56
3
243
24
239
16
203
211
25
178
213
223
35
248
186
9
18
221
55
66
118
28
249
19
53
49
33
185
S5
106
22
95
109
179
129
47
63
107
219
169
168
59
210
102
132
240
253
133
244
153
30
26
171
21
136
110
10
184
206
215
27
S6
2
123
92
93
44
101
81
174
175
189
234
122
117
220
224
34
212
139
158
230
130
163
207
254
85
37
80
226
131
73
225
165
S7
147
61
180
8
162
128
144
173
135
105
190
82
120
104
78
216
126
38
205
208
36
29
13
255
52
74
12
237
91
89
172
250
Kemudian untuk membangkitkan kunci enkripsi, maka dilakukan proses perhitungan .
Pengujian kedua menggunakan plaintext “Provinsi Aceh” dengan kuncinya adalah
“QMMQQYLVSO”. Berikut adalah proses mendapatkan kunci untuk enkripsi:
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 159 + 238 mod 256
= 397 mod 256
= 141
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (27 + 112) mod 256
= 139 mod 256
= 139
Universitas Sumatera Utara
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
= 01110110 ⊕ 01000111
= 49 (00110001) = 1
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 254 + 2 mod 256
= 256 mod 256
=0
Universitas Sumatera Utara
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
= 55
Universitas Sumatera Utara
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
= 01101001 ⊕ 01101110
= 7 (00000111) = •
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 20 + 11 mod 256
= 31 mod 256
= 31
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (94+ 17) mod 256
= 111 mod 256
= 111
Universitas Sumatera Utara
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
= 01100101 ⊕ 00100000
= 69 (00100000) = E
Universitas Sumatera Utara
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 kunc i enkripsi. Tabel 4.7
menunjukkan hasil dari enkripsi plaintext “Provinsi Aceh”.
Tabel 4.7 Hasil Enkripsi
0
1
2
Plaintext
80
P
114
r
111
o
Kunci
104
201
23
Ciphertext
56
8
187
»
120
X
Universitas Sumatera Utara
3
4
5
6
7
8
9
10
11
12
Plaintext
118
v
105
i
110
n
115
s
105
i
32
65
A
99
c
101
e
104
h
Kunci
71
61
25
144
110
37
176
104
32
71
Ciphertext
49
1
84
T
119
W
227
Ã
7
5
|
241
Ñ
11
69
E
47
/
4.2.1.3 Pengujian 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
+
@
L
:
X
S
U
d
=
'
G
I
L
k
N
!
]
S
Universitas Sumatera Utara
=
J
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
144
136
12
13
23
127
164
122
85
165
232
80
229
101
93
244
208
246
43
39
196
161
201
202
252
110
70
60
180
218
211
82
S1
108
65
56
71
203
193
58
2
238
207
57
172
130
52
133
20
59
19
163
247
188
236
194
195
209
95
254
151
169
137
46
14
S2
221
167
135
182
25
94
33
224
160
34
88
113
166
205
29
239
69
90
18
92
170
245
41
138
74
119
64
45
27
143
185
149
S3
153
5
40
10
112
184
231
26
139
38
99
179
50
104
150
106
222
212
168
7
35
233
118
9
8
183
186
242
15
42
159
148
S4
115
67
48
32
62
30
227
210
98
234
155
21
31
37
83
49
89
250
123
81
116
225
114
6
22
220
241
24
140
79
197
102
S5
235
47
121
214
117
3
109
51
36
156
189
126
96
237
147
111
158
199
240
223
105
249
28
100
219
243
217
171
16
206
181
177
S6
128
91
63
66
141
17
145
253
251
120
103
178
78
77
55
134
146
187
200
1
152
11
215
173
162
132
73
87
76
75
129
230
S7
97
86
0
191
44
198
192
157
213
174
61
4
131
84
142
228
124
248
53
125
176
175
107
190
204
216
255
226
154
68
72
54
Universitas Sumatera Utara
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
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
Plaintext
65
A
108
l
103
g
111
o
114
r
105
i
116
t
109
m
97
a
32
82
R
67
C
52
4
32
77
M
101
e
114
r
117
u
112
p
97
a
107
k
97
a
110
n
32
83
S
116
t
Kunci
163
225
114
164
235
49
30
83
70
34
243
45
10
199
71
154
137
180
143
165
79
138
157
95
97
107
Ciphertext
226
â•
141
•
21
•
203
Ë
153
88
X
106
J
62
>
39
'
2
STX
161
¡
110
N
62
>
231
Ç
10
LF
255
Ÿ
251
Û
193
Á
255
Ÿ
196
Ä
36
$
235
Ë
243
Ó
127
Del
50
2
31
US
Universitas Sumatera Utara
26
27
28
29
30
31
32
33
34
Plaintext
114
r
101
e
97
a
109
m
32
67
C
105
i
112
p
104
h
35
36
101
114
e
r
Kunci
233
187
250
129
210
75
196
100
227
240
60
Ciphertext
155
›
222
Þ
155
›
236
Ì
242
Ò
8
Backspace
173
20
DC4
139
‹
149
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.1 Pengujian 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)
,
B
¦
X
27
44
98
166
88
(00011011) (00101100) (01100010) (10100110) (01011000)
Universitas Sumatera Utara
Kunci (K)
C ⊕K
01010101
kode Biner (ASCII)
01100101
00100111
11110101
00011001
01001110
01001001
01000101
01010011
01000001
N
I
E
S
A
Plaintext (P)
Tabel 4.11 merupakan hasil dekripsi ciphertext ke plaintext, terlihat bahwa plaintext
“NIESA” kembali sebagai pesan aslinya.
4.2.2.2 Pengujian 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
Kode Bine r (ASCII)
8
»
x
1
T
W
Ã
•
ñ
E
/
C 001
110
101
011
001
010
011
111
000
000
111
000
010
001
110
110
100
101
101
000
001
001
100
010
001
011
00
11
00
01
00
11
11
11
01
01
11
01
11
011
110
000
010
001
000
100
011
010
101
011
001
010
K 010
010
101
001
111
110
100
011
010
100
010
000
001
00
01
11
11
01
01
00
10
1
00
00
00
11
010
011
011
011
011
011
011
011
001
010
011
011
011
⊕ 100
100
011
101
010
011
100
010
000
000
000
001
010
00
10
11
10
01
10
11
01
00
01
11
01
00
P
r
o
v
i
n
s
I
A
C
e
h
C
K
P
Universitas Sumatera Utara
Tabel di atas menunjukkan hasil plaintext “Provinsi Aceh”.
4.2.2.3 Pengujian 3 (Tiga) Dekripsi Algoritma RC4 Menggunakan Blum Blum
Shub
Pada
pengujian
ketiga,
ciphertext
yang
didekripsi
adalah”
â•Ë™Xj>'¡n>çÿûÁÿÄ$ëó•2›Þ›ìò‹•N”. Kemudian ciphertext diubah kedalam
bilangan desimal. Hasil pengubahan dalam bilangan desimal adalah 226, 141, 21, 203,
153, 88, 106, 62, 39, 2, 161, 110, 62, 231, 10, 255, 251, 193, 255, 196, 36, 235, 243,
127, 50, 31, 155, 222, 155, 236, 242, 8, 173, 20, 139, 149, dan 78. Kunci yang
digunakan kunci yang sama seperti pada saat enkripsi. Kemudian lakukan proses
XOR untuk mendapatkan pesan aslinya. Dari hasil pengujian, maka didapat pada tabel
4.13:
Universitas Sumatera Utara
Tabel 4.13 Hasil Dekripsi 3
Kode Bine r (ASCII)
â
•
Ë
™
2
1
2
1
2
4
0
5
6
1
3
3
10
11
01
10
11
00
10
10
11
10
10
00
00
00
01
11
01
10
01
01
00
>
'
6
3
2
9
00
01
01
11
01
01
10
00
11
00
11
01
01
01
01
10
10
10
00
11
01
K
01
00
P
A
l
C
K
C
⊕
!
n
1
1
6
1
1
0
00
11
00
00
11
00
10
11
10
00
00
01
00
00
11
10
11
10
10
11
01
01
01
01
00
11
10
11
10
10
11
00
10
01
11
11
11
10
01
00
01
g
o
r
i
t
2
1
X
8
8
J
1
0
6
>
D
Þ
›
ì
ò
3
1
2
1
2
2
1
5
2
5
3
5
2
5
01
11
10
10
10
10
11
00
10
01
11
01
01
01
00
10
10
10
00
10
00
00
01
11
p
a
K
ç
ÿ
Û
Á
ÿ
Ä
$
Ë
ó
2
1
2
2
1
2
1
3
2
2
1
5
3
0
5
5
9
5
9
6
3
4
2
0
5
1
3
5
6
5
3
7
01
10
10
10
01
01
01
10
10
01
01
00
00
01
00
11
10
11
00
00
01
01
10
01
01
10
10
01
00
01
11
10
11
01
10
11
11
10
01
00
11
01
11
10
01
01
00
00
01
01
01
01
01
01
01
10
01
00
11
10
00
10
11
11
11
10
00
00
00
00
01
00
11
01
00
01
00
01
00
10
11
00
00
01
01
10
01
R
C
4
M
e
R
u
m A
2
6
2
1
U
›
Lf
el
2
S
-
8
‹
•
N
1
2
1
1
7
4
7
0
3
4
8
6
2
3
9
9
11
10
11
01
11
01
11
11
00
11
11
00
01
00
00
10
10
11
11
10
10
10
00
00
10
01
01
00
00
11
11
01
11
10
01
10
11
00
00
11
00
00
01
01
01
01
01
01
00
01
01
01
01
01
01
10
01
11
11
10
10
10
10
00
10
11
10
10
11
11
00
00
01
00
01
00
11
00
00
10
00
10
01
00
01
10
00
11
00
10
01
01
01
00
11
01
00
00
01
10
A
n
S
t
r
e
a
m
C
i
p
h
e
r
Dari tabel di atas bisa dilihat, bahwa plaintextnya kembali seperti pesan asli, yaitu: “Algoritma RC4 Merupakan Stream Cipher”.
Universitas Sumatera Utara
4.3 Pembahasan
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
Plaintext
ke-
Total karakter
Waktu generate
kunci
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
25
00:00:00:2016214
Universitas Sumatera Utara
Plaintext
5.
Total karakter
Waktu generate
kunci
kunci
30
00:00:00:2186553
untuk tahan terhadap bermacam- macam
kriptanalis.
OPTIMASI KUNCI DENGAN BLUM
BLUM SHUB PADA ALGORITMA RC4
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
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
ke-
Tabel 4.15 menunjukkan hasil kunci BBS, pada pengujian pertama digunakan
range 60 – 90, kunci acak yang dihasilkan berupa huruf alfabet semua, pengujian ke
dua juga menggunakan range yang sama dan juga menghasilkan kunci acak dengan
huruf alfabet, sedangkan pada pengujian ke tiga menggunakan range 33 – 127, kunci
acak yang digunakan berupa campuran, tetapi masih bisa dipakai. Jika menggunakan
range dari 0 – 255 akan menghasilkan kunci acak campuran, tetapi kunci acak
tersebut tidak semua bisa digunakan pada saat dekripsi, karena sebagian kunci acak
tidak ada pada papan keyboard.
Universitas Sumatera Utara
4.4 Perbedaan Waktu Enkripsi Dan Dekripsi Menurut Jumlah Karakte r
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
Total
Pengujian
karakter
Plaintext
ke-
Waktu Enkripsi
Kunci
1.
NIESA
5
00:00:06.5737179
2.
Provinsi Aceh
10
00:00:17.0536642
20
00:00:07:0661829
25
00:00:04:6041959
30
00:00:09:6215048
3.
4.
5.
Algoritma
RC4
Merupakan
Stream
Cipher
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.
OPTIMASI KUNCI DENGAN BLUM
BLUM SHUB PADA ALGORITMA
RC4
Tabel 4.16 menunjukkan waktu enkripsi menurut total karater kunci yang diperoleh,
pada pengujian pertama terdapat 5 karakter kunci dengan waktu enkripsi
00:00:06.5737179, pegujian kedua terdapat 10 karakter kunci dengan waktu enkripsi
00:00:17.0536642, pengujian ketiga terdapat 20 karakter kunci dengan waktu enkripsi
00:00:07:0661829, pengujian yang ke empat terdapat 25 karakter kunci dengan waktu
eksekusi 00:00:04:6041959, sedangkan pengujian kelima terdapatkan 30 karakter
kunci dengan waktu 00:00:09:6215048.
Universitas Sumatera Utara
Berikut tampilan grafik waktu enkripsi:
Jumlah Karakter kunci
Waktu Enkripsi
35
30
25
20
15
10
5
0
Pengujian keKunci
Waktu Enkripsi
1
2
3
4
5
Pengujian
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
Total
Pengujian
karakter
Ciphertext
ke-
Waktu Dekripsi
kunci
1.
,b¦X
5
00:00:05.1878581
2.
8»x1Twãñ
10
00:00:01.8386244
3.
â• ËXj>'¡n>çÿûÁÿÄ$ëó•2›Þ›íò-‹N
20
00:00:02.8641302
4.
>eVß°Åy6¦t¹†¦øÿ
-âÿ'x[Ï#Þì~ pR²˜¦Ýv¨m'IÕ_{:7¨»»&Ãn(Zsôª
25
00:00:02.8128999
5.
è
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 masingmasing algoritma, dan rancangan sistem.
3.2 Waktu 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.3 Data yang digunakan
Data yang digunakan pada penelitian ini adalah file dokumen, yang akan diamati ada
beberapa karakter.
3.4 Prosedur 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)
Pada penelitian metode BBS (Blum Blum Shub) digunakan untuk membangkitkan
kunci acak, karena Blum Blum Shub (BBS) mampu menghasilkan kunci acak yang
susah untuk diingat, karena kunci yang dibangkitkan tidak bisa diprediksi. Berikut
langkah-langkah dari algoritma BBS (Blum Blum S hub) (Sidorenko, 2005):
Universitas Sumatera Utara
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
165 = 9. Barisan bit acak
= 32
hasilnya sebagai berikut:
1= 20
= 92
2= 21
= 81 2
165 =81 → 1 =1 (
3= 22
= 126 2
4 = 23
= 36 2
5= 24
= 141 2
165 = 126 → 2 =0 (
165 = 36 → 1 =0
81
,
126
���
,
1
���
0
165 = 141 → 1 =0
165 = 81 → 1 =1
Dikarenakan X5 = X1 , maka barisan nilai akan berulang-ulang kembali setelah
panjangnya 4 (empat). Barisan acak yang dihasilkan adalah 1000100010001.......dan
seterusnya akan berulang.
Universitas Sumatera Utara
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
0 to PanjangPlainteks – 1 do
for idx
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 Enkripsi) , Endfor
Universitas Sumatera Utara
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
Kunci
:N I ES A
:3 1 2 4 3
a. Menginisialisasi array S 5 bit, sehingga terbentuk state array S dan state array
K.
Universitas Sumatera Utara
Array S
01234
Array K
17352
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
Swap (S[3] , S[1])
Hasilnya: 2 3 1 0 4
Universitas Sumatera Utara
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
23401
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])
24301
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])
34201
K2 = S[(S[2] + S[0]) mod 5] = S[5 mod 5] = 0
K2 = 00000000
Iterasi 3
i = (2 + 1) mod 5 = 2
j = (3 + S[3]) mod 5 = (0 + 2) mod 5) = 1
Swap S[2], S[1])
Universitas Sumatera Utara
32401
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]
34201
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]
32401
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
Plaintext (p)
Kunci (k)
P⊕k
Ciphertext (C)
N
01001110
00000010
I
01001001
00000000
E
01000101
00000001
S
01010011
00000001
A
01000001
00000001
01001100
01001001
01000101
01010010
01000000
L
I
E
R
@
Sedangkan untuk proses dekripsi kebalikan dari enkripsi, yaitu mengubah
ciphertext menjadi plaintext (pesan asli) kembali. Tabel 3.3 akan menjelaskan proses
dekripsi:
Universitas Sumatera Utara
Tabel 3.4 Proses XOR pseudo random byte dengan ciphertext untuk dekripsi
Ciphertext (C)
Kunci (k)
L
01001100
00000010
I
01001001
00000000
E
01000101
00000001
R
01010010
00000001
@
01000000
00000001
C⊕ k
01001110
01001001
01000101
01010011
01000001
N
I
E
S
A
Plaitext (p)
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
Berdasarkan Gambar 3.1, proses dimulai dengan membangkitkan kunci acak dengan
metode Blum Blum Shub (BBS), kemudian pilihlah seed (umpan) untuk mendapatkan
key, hasil dari key tersebut akan digunakan untuk melakukan pengacakan S-Box
sebanyak 256 putaran. Kemudian lakukan perhitungan terhadap S-box yang terpilih
Universitas Sumatera Utara
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=SBox[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
Gambar 3.2 menunjukkan proses enkripsi RC4, langkah pertama yang dilakukan
adalah menginisialisasi i dan j dengan nilai 0, kemudian lakukan perhitungan dengan i
= ( i + 1) mod 256 dan j = ( i + 1) mod 256. Setelah itu lakukan pertukaran S [i]
dengan S [j], hitung nilai t dengan cara t = (S [i] + S [j] ) mod 256, maka nilai t
tersebut yang akan menjadi kunci enkripsi plaintext, selesai.
Universitas Sumatera Utara
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.
Start
Ciphertext
key
Dekripsi RC4
Plaintext
End
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).
Universitas Sumatera Utara
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.1 Hasil 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.2 Algoritma 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
Pada tahapan ini, proses enkripsi dilakukan sebanyak 3 kali. Hasil dari proses enkripsi
dan dekripsi dapat menjadikan satu acuan baru untuk pembangkit kunci pada
algoritma RC4 dan dapat digunakan pada algoritma-algoritma yang lain.
Universitas Sumatera Utara
4.2.1.1 Pengujian 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
ASCII
81
Q
Lima (5) Karakter Kunci
80
87
75
P
W
K
73
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
0
8
16
24
32
40
48
56
64
72
S1
1
9
17
25
33
41
49
57
65
73
S2
2
10
18
26
34
42
50
58
66
74
S3
3
11
19
27
35
43
51
59
67
75
S4
4
12
20
28
36
44
52
60
68
76
S5
5
13
21
29
37
45
53
61
69
77
S6
6
14
22
30
38
46
54
62
70
78
S7
7
15
23
31
39
47
55
63
71
79
Universitas Sumatera Utara
S-Box
80
88
96
104
112
120
128
136
144
152
160
168
176
184
192
200
208
216
224
232
240
248
81
89
97
105
113
121
129
137
145
153
161
169
177
185
193
201
209
217
225
233
241
249
82
90
98
106
114
122
130
138
146
154
162
170
178
186
194
202
210
218
226
234
242
250
83
91
99
107
115
123
131
139
147
155
163
171
179
187
195
203
211
219
227
235
243
251
84
92
100
108
116
124
132
140
148
156
164
172
180
188
196
204
212
220
228
236
244
252
85
93
101
109
117
125
133
141
149
157
165
173
181
189
197
205
213
221
229
237
245
253
86
94
102
110
118
126
134
142
150
158
166
174
182
190
198
206
214
222
230
238
246
254
87
95
103
111
119
127
135
143
151
159
167
175
183
191
199
207
215
223
231
239
247
255
Kemudian lakukan permutasi terhadap nilai- nilai yang ada di dalam larik S dengan
cara:
←0
←0
←
255
+�
�
,�
+�
(
256
�
�[ ]
Setelah dilakukan acak dan swap sebanyak 256, maka hasil kotak substitusi (S-Box)
yang telah diacak dan ditukar bisa dilihat pada Tabel 4.3 dibawah ini:
Universitas Sumatera Utara
Tabel 4.3 S-Box
S-Box
S0
227
28
33
232
183
59
10
143
234
100
144
67
58
226
235
174
101
198
78
107
19
169
211
176
79
254
2
246
42
132
65
98
S1
162
69
53
82
26
74
196
25
102
171
201
215
45
34
219
106
105
97
222
121
77
76
15
194
70
99
83
193
4
137
140
103
S2
251
30
146
49
39
252
43
63
38
29
217
233
231
7
230
93
95
22
186
168
56
112
216
221
119
206
155
85
213
164
23
149
S3
50
208
158
46
27
224
154
199
141
151
152
148
122
204
212
145
207
24
245
167
178
90
115
223
16
228
218
80
17
153
161
1
S4
150
94
138
68
248
13
64
166
173
172
81
18
117
131
20
40
66
197
142
62
187
195
31
114
241
209
229
250
108
225
86
203
S5
175
242
184
11
190
52
9
91
110
111
113
239
253
126
116
104
214
71
61
133
236
12
130
37
5
177
185
156
72
8
128
75
S6
200
182
189
35
237
159
127
89
134
0
255
220
54
84
47
21
163
6
247
191
181
180
32
118
125
48
73
60
205
96
165
139
S7
55
36
135
57
88
87
160
3
92
243
124
244
188
202
179
157
14
192
170
210
44
120
51
238
136
240
41
123
109
147
249
129
Kemudian untuk membangkitkan kunci enkripsi, maka dilakukan proses perhitungan .
Pengujian pertama digunakan plaintext “NIESA” dan kuncinya adalah “QPWKI”.
Berikut adalah proses mendapatkan kunci untuk enkripsi:
Universitas Sumatera Utara
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
= 157
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (240 + 50) mod 256
= 290 mod 256
= 34
Universitas Sumatera Utara
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
= 166 (10100110) = ¦
Universitas Sumatera Utara
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
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 dan kemudian digunakan untuk kunci enkripsi. Tabel 4.4
menunjukkan hasil dari enkripsi plaintext “NIESA”.
Universitas Sumatera Utara
Tabel 4.4 Hasil Enkripsi
No
0
1
2
3
4
Plaintext
78
N
73
I
69
E
83
S
65
A
Kunci
85
101
39
245
25
Ciphertext
27
44
,
98
B
166
¦
88
X
4.2.1.2 Pengujian 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
Kunci yang dihasilkan oleh BBS adalah “QMMQQYLVSO”. Kemudian lakukan
permutasi terhadap nilai- nilai yang ada di dalam larik S dengan cara yang telah
dijelaskan pada pengujian pertama, Setelah dilakukan acak dan swap sebanyak 256,
maka hasil S-Box yang telah diacak dan ditukar bisa dilihat pada Tabel 4.6 di bawah
ini:
Universitas Sumatera Utara
Tabel 4.6 S-Box
Sbox
S0
98
42
100
193
103
86
94
138
67
155
170
252
148
141
192
183
96
32
182
157
65
45
152
199
48
188
79
228
142
115
150
108
S1
159
87
75
127
113
145
84
143
247
51
71
227
154
231
204
5
146
156
187
222
214
124
137
14
134
72
195
246
233
40
39
7
S2
238
11
116
229
62
1
242
197
50
209
232
196
167
245
0
70
64
202
160
46
161
88
4
149
57
54
236
200
69
43
251
99
S3
112
17
176
181
218
125
114
166
194
97
140
6
191
198
217
15
121
23
164
20
76
177
83
41
241
111
60
58
90
201
68
235
S4
151
31
119
77
56
3
243
24
239
16
203
211
25
178
213
223
35
248
186
9
18
221
55
66
118
28
249
19
53
49
33
185
S5
106
22
95
109
179
129
47
63
107
219
169
168
59
210
102
132
240
253
133
244
153
30
26
171
21
136
110
10
184
206
215
27
S6
2
123
92
93
44
101
81
174
175
189
234
122
117
220
224
34
212
139
158
230
130
163
207
254
85
37
80
226
131
73
225
165
S7
147
61
180
8
162
128
144
173
135
105
190
82
120
104
78
216
126
38
205
208
36
29
13
255
52
74
12
237
91
89
172
250
Kemudian untuk membangkitkan kunci enkripsi, maka dilakukan proses perhitungan .
Pengujian kedua menggunakan plaintext “Provinsi Aceh” dengan kuncinya adalah
“QMMQQYLVSO”. Berikut adalah proses mendapatkan kunci untuk enkripsi:
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 159 + 238 mod 256
= 397 mod 256
= 141
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (27 + 112) mod 256
= 139 mod 256
= 139
Universitas Sumatera Utara
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
= 01110110 ⊕ 01000111
= 49 (00110001) = 1
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 254 + 2 mod 256
= 256 mod 256
=0
Universitas Sumatera Utara
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
= 55
Universitas Sumatera Utara
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
= 01101001 ⊕ 01101110
= 7 (00000111) = •
Universitas Sumatera Utara
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
j = (j + S[i]) mod 256
= 20 + 11 mod 256
= 31 mod 256
= 31
Universitas Sumatera Utara
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
t = (S[i] + S[j]) mod 256
= (94+ 17) mod 256
= 111 mod 256
= 111
Universitas Sumatera Utara
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
= 01100101 ⊕ 00100000
= 69 (00100000) = E
Universitas Sumatera Utara
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 kunc i enkripsi. Tabel 4.7
menunjukkan hasil dari enkripsi plaintext “Provinsi Aceh”.
Tabel 4.7 Hasil Enkripsi
0
1
2
Plaintext
80
P
114
r
111
o
Kunci
104
201
23
Ciphertext
56
8
187
»
120
X
Universitas Sumatera Utara
3
4
5
6
7
8
9
10
11
12
Plaintext
118
v
105
i
110
n
115
s
105
i
32
65
A
99
c
101
e
104
h
Kunci
71
61
25
144
110
37
176
104
32
71
Ciphertext
49
1
84
T
119
W
227
Ã
7
5
|
241
Ñ
11
69
E
47
/
4.2.1.3 Pengujian 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
+
@
L
:
X
S
U
d
=
'
G
I
L
k
N
!
]
S
Universitas Sumatera Utara
=
J
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
144
136
12
13
23
127
164
122
85
165
232
80
229
101
93
244
208
246
43
39
196
161
201
202
252
110
70
60
180
218
211
82
S1
108
65
56
71
203
193
58
2
238
207
57
172
130
52
133
20
59
19
163
247
188
236
194
195
209
95
254
151
169
137
46
14
S2
221
167
135
182
25
94
33
224
160
34
88
113
166
205
29
239
69
90
18
92
170
245
41
138
74
119
64
45
27
143
185
149
S3
153
5
40
10
112
184
231
26
139
38
99
179
50
104
150
106
222
212
168
7
35
233
118
9
8
183
186
242
15
42
159
148
S4
115
67
48
32
62
30
227
210
98
234
155
21
31
37
83
49
89
250
123
81
116
225
114
6
22
220
241
24
140
79
197
102
S5
235
47
121
214
117
3
109
51
36
156
189
126
96
237
147
111
158
199
240
223
105
249
28
100
219
243
217
171
16
206
181
177
S6
128
91
63
66
141
17
145
253
251
120
103
178
78
77
55
134
146
187
200
1
152
11
215
173
162
132
73
87
76
75
129
230
S7
97
86
0
191
44
198
192
157
213
174
61
4
131
84
142
228
124
248
53
125
176
175
107
190
204
216
255
226
154
68
72
54
Universitas Sumatera Utara
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
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
Plaintext
65
A
108
l
103
g
111
o
114
r
105
i
116
t
109
m
97
a
32
82
R
67
C
52
4
32
77
M
101
e
114
r
117
u
112
p
97
a
107
k
97
a
110
n
32
83
S
116
t
Kunci
163
225
114
164
235
49
30
83
70
34
243
45
10
199
71
154
137
180
143
165
79
138
157
95
97
107
Ciphertext
226
â•
141
•
21
•
203
Ë
153
88
X
106
J
62
>
39
'
2
STX
161
¡
110
N
62
>
231
Ç
10
LF
255
Ÿ
251
Û
193
Á
255
Ÿ
196
Ä
36
$
235
Ë
243
Ó
127
Del
50
2
31
US
Universitas Sumatera Utara
26
27
28
29
30
31
32
33
34
Plaintext
114
r
101
e
97
a
109
m
32
67
C
105
i
112
p
104
h
35
36
101
114
e
r
Kunci
233
187
250
129
210
75
196
100
227
240
60
Ciphertext
155
›
222
Þ
155
›
236
Ì
242
Ò
8
Backspace
173
20
DC4
139
‹
149
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.1 Pengujian 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)
,
B
¦
X
27
44
98
166
88
(00011011) (00101100) (01100010) (10100110) (01011000)
Universitas Sumatera Utara
Kunci (K)
C ⊕K
01010101
kode Biner (ASCII)
01100101
00100111
11110101
00011001
01001110
01001001
01000101
01010011
01000001
N
I
E
S
A
Plaintext (P)
Tabel 4.11 merupakan hasil dekripsi ciphertext ke plaintext, terlihat bahwa plaintext
“NIESA” kembali sebagai pesan aslinya.
4.2.2.2 Pengujian 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
Kode Bine r (ASCII)
8
»
x
1
T
W
Ã
•
ñ
E
/
C 001
110
101
011
001
010
011
111
000
000
111
000
010
001
110
110
100
101
101
000
001
001
100
010
001
011
00
11
00
01
00
11
11
11
01
01
11
01
11
011
110
000
010
001
000
100
011
010
101
011
001
010
K 010
010
101
001
111
110
100
011
010
100
010
000
001
00
01
11
11
01
01
00
10
1
00
00
00
11
010
011
011
011
011
011
011
011
001
010
011
011
011
⊕ 100
100
011
101
010
011
100
010
000
000
000
001
010
00
10
11
10
01
10
11
01
00
01
11
01
00
P
r
o
v
i
n
s
I
A
C
e
h
C
K
P
Universitas Sumatera Utara
Tabel di atas menunjukkan hasil plaintext “Provinsi Aceh”.
4.2.2.3 Pengujian 3 (Tiga) Dekripsi Algoritma RC4 Menggunakan Blum Blum
Shub
Pada
pengujian
ketiga,
ciphertext
yang
didekripsi
adalah”
â•Ë™Xj>'¡n>çÿûÁÿÄ$ëó•2›Þ›ìò‹•N”. Kemudian ciphertext diubah kedalam
bilangan desimal. Hasil pengubahan dalam bilangan desimal adalah 226, 141, 21, 203,
153, 88, 106, 62, 39, 2, 161, 110, 62, 231, 10, 255, 251, 193, 255, 196, 36, 235, 243,
127, 50, 31, 155, 222, 155, 236, 242, 8, 173, 20, 139, 149, dan 78. Kunci yang
digunakan kunci yang sama seperti pada saat enkripsi. Kemudian lakukan proses
XOR untuk mendapatkan pesan aslinya. Dari hasil pengujian, maka didapat pada tabel
4.13:
Universitas Sumatera Utara
Tabel 4.13 Hasil Dekripsi 3
Kode Bine r (ASCII)
â
•
Ë
™
2
1
2
1
2
4
0
5
6
1
3
3
10
11
01
10
11
00
10
10
11
10
10
00
00
00
01
11
01
10
01
01
00
>
'
6
3
2
9
00
01
01
11
01
01
10
00
11
00
11
01
01
01
01
10
10
10
00
11
01
K
01
00
P
A
l
C
K
C
⊕
!
n
1
1
6
1
1
0
00
11
00
00
11
00
10
11
10
00
00
01
00
00
11
10
11
10
10
11
01
01
01
01
00
11
10
11
10
10
11
00
10
01
11
11
11
10
01
00
01
g
o
r
i
t
2
1
X
8
8
J
1
0
6
>
D
Þ
›
ì
ò
3
1
2
1
2
2
1
5
2
5
3
5
2
5
01
11
10
10
10
10
11
00
10
01
11
01
01
01
00
10
10
10
00
10
00
00
01
11
p
a
K
ç
ÿ
Û
Á
ÿ
Ä
$
Ë
ó
2
1
2
2
1
2
1
3
2
2
1
5
3
0
5
5
9
5
9
6
3
4
2
0
5
1
3
5
6
5
3
7
01
10
10
10
01
01
01
10
10
01
01
00
00
01
00
11
10
11
00
00
01
01
10
01
01
10
10
01
00
01
11
10
11
01
10
11
11
10
01
00
11
01
11
10
01
01
00
00
01
01
01
01
01
01
01
10
01
00
11
10
00
10
11
11
11
10
00
00
00
00
01
00
11
01
00
01
00
01
00
10
11
00
00
01
01
10
01
R
C
4
M
e
R
u
m A
2
6
2
1
U
›
Lf
el
2
S
-
8
‹
•
N
1
2
1
1
7
4
7
0
3
4
8
6
2
3
9
9
11
10
11
01
11
01
11
11
00
11
11
00
01
00
00
10
10
11
11
10
10
10
00
00
10
01
01
00
00
11
11
01
11
10
01
10
11
00
00
11
00
00
01
01
01
01
01
01
00
01
01
01
01
01
01
10
01
11
11
10
10
10
10
00
10
11
10
10
11
11
00
00
01
00
01
00
11
00
00
10
00
10
01
00
01
10
00
11
00
10
01
01
01
00
11
01
00
00
01
10
A
n
S
t
r
e
a
m
C
i
p
h
e
r
Dari tabel di atas bisa dilihat, bahwa plaintextnya kembali seperti pesan asli, yaitu: “Algoritma RC4 Merupakan Stream Cipher”.
Universitas Sumatera Utara
4.3 Pembahasan
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
Plaintext
ke-
Total karakter
Waktu generate
kunci
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
25
00:00:00:2016214
Universitas Sumatera Utara
Plaintext
5.
Total karakter
Waktu generate
kunci
kunci
30
00:00:00:2186553
untuk tahan terhadap bermacam- macam
kriptanalis.
OPTIMASI KUNCI DENGAN BLUM
BLUM SHUB PADA ALGORITMA RC4
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
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
ke-
Tabel 4.15 menunjukkan hasil kunci BBS, pada pengujian pertama digunakan
range 60 – 90, kunci acak yang dihasilkan berupa huruf alfabet semua, pengujian ke
dua juga menggunakan range yang sama dan juga menghasilkan kunci acak dengan
huruf alfabet, sedangkan pada pengujian ke tiga menggunakan range 33 – 127, kunci
acak yang digunakan berupa campuran, tetapi masih bisa dipakai. Jika menggunakan
range dari 0 – 255 akan menghasilkan kunci acak campuran, tetapi kunci acak
tersebut tidak semua bisa digunakan pada saat dekripsi, karena sebagian kunci acak
tidak ada pada papan keyboard.
Universitas Sumatera Utara
4.4 Perbedaan Waktu Enkripsi Dan Dekripsi Menurut Jumlah Karakte r
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
Total
Pengujian
karakter
Plaintext
ke-
Waktu Enkripsi
Kunci
1.
NIESA
5
00:00:06.5737179
2.
Provinsi Aceh
10
00:00:17.0536642
20
00:00:07:0661829
25
00:00:04:6041959
30
00:00:09:6215048
3.
4.
5.
Algoritma
RC4
Merupakan
Stream
Cipher
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.
OPTIMASI KUNCI DENGAN BLUM
BLUM SHUB PADA ALGORITMA
RC4
Tabel 4.16 menunjukkan waktu enkripsi menurut total karater kunci yang diperoleh,
pada pengujian pertama terdapat 5 karakter kunci dengan waktu enkripsi
00:00:06.5737179, pegujian kedua terdapat 10 karakter kunci dengan waktu enkripsi
00:00:17.0536642, pengujian ketiga terdapat 20 karakter kunci dengan waktu enkripsi
00:00:07:0661829, pengujian yang ke empat terdapat 25 karakter kunci dengan waktu
eksekusi 00:00:04:6041959, sedangkan pengujian kelima terdapatkan 30 karakter
kunci dengan waktu 00:00:09:6215048.
Universitas Sumatera Utara
Berikut tampilan grafik waktu enkripsi:
Jumlah Karakter kunci
Waktu Enkripsi
35
30
25
20
15
10
5
0
Pengujian keKunci
Waktu Enkripsi
1
2
3
4
5
Pengujian
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
Total
Pengujian
karakter
Ciphertext
ke-
Waktu Dekripsi
kunci
1.
,b¦X
5
00:00:05.1878581
2.
8»x1Twãñ
10
00:00:01.8386244
3.
â• ËXj>'¡n>çÿûÁÿÄ$ëó•2›Þ›íò-‹N
20
00:00:02.8641302
4.
>eVß°Åy6¦t¹†¦øÿ
-âÿ'x[Ï#Þì~ pR²˜¦Ýv¨m'IÕ_{:7¨»»&Ãn(Zsôª
25
00:00:02.8128999
5.
è