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.

è