Optimasi Kunci Dengan Blum Blum Shub Pada Algoritma RC4
BAB 2
LANDASAN TEORI
2.1 Algoritma RC4
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data
pada satu saat. Dengan cara ini enkripsi maupun dekripsi dapat dilaksanakan pada
panjang variabel. Algoritma ini tidak harus menunggu sejumlah input data tertentu
sebelum diproses, atau menambahkan byte tambahan untuk mengenkripnya. Metode
enkripsi RC4 sangat cepat kurang lebih 10 kali lebih cepat dari Data Encyption
Standard (DES) (Mollin, 2005).
Sistem sandi RC4 dikembangkan oleh Ronald Rivest untuk RSA Data Security
(sekarang RSA Security) pada 1984 yang merupakan sistem sistem stream yang sangat
banyak digunakan (Mollin, 2005). RC4 menggunakan panjang variabel kunci dari 1
s.d 256 byte untuk menginisialisasi state tabel. State table digunakan untuk
pengurutan menghasilkan byte pseudo-random yang kemudian menjadi stream
pseudo-random. Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext.
Tiap elemen pada state table ditukar sedikitnya sekali tukaran. Kunci RC4 sering
dibatasi sampai 40 bit, tetapi ada kemungkinan untuk mengunakan kunci 128 bit. RC4
memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit.
Ukuran dari sistem sandi RC4 sangat mempengaruhi keamanan sistem sandi
tersebut. RC4 telah dibuktikan tidak aman dengan ukuran kunci sandi yang kecil,
yaitu di bawah 5 byte. Penggunaan sandi RC4 memiliki keamanan yang kuat, yaitu:
1. Ukuran kunci sama atau lebih besar daripada 256 bit (16 byte)
2. Setiap sesi yang membangkitkan kunci yang baru ( dengan pembangkitan
kunci yang baru dapat menghindari penyerang untuk menganalisis sandi
diferensial pada sandi tersebut) (Sadikin, 2012).
Universitas Sumatera Utara
Dalam beberapa aplikasi, RC4 digunakan untuk enkripsi data seperti RSA
SecurPC yang merupakan salah satu produk RSA Securty, Inc. Algoritma RC4 juga
digunakan untuk keamanan komunikasi dalam pengiriman data melalui email dan
keamanan website dengan
menggunakan protokol SSL (Secure Sockets Layer).
Misalnya kriptografi yang menggunakan algoritma RC4 ini
adalah HotCrypt,
WodCrypt serta SSLite dan CryptoLite dari IBM.
Algoritma RC4 dirancang supaya dapat diimp lementasikan pada software
secara efisien. Ini yang membuat RC4 sangat populer untuk dipakai pada aplikasi
internet, antara lain RC4 digunakan dalam standard TLS (transport layer security)
dan WEP (wireless equivalent privacy) (Sadikin, 2012).
Cara membuat keystream dalam RC4 adalah dengan menggunakan state
automaton yang terdiri dari dua cara, yaitu :
1. Key scheduling di mana state automaton diberi nilai awal berdasarkan kunci
enkripsi.
2. Pseudo-random generation dimana state automaton beroperasi dan outputnya
menghasilkan keystream.
Variabel suatu enkripsi dihasilkan dari setup kunci, dimana kunci akan di
XOR-kan dengan plaintext untuk menghasilkan teks yang sudah dienkripsi. XOR
merupakan operasi logika yang membandingkan dua bit biner. Jika nilai beda, maka
akan dihasilkan nilai 1, sedangkan jika kedua bit tersebut sama maka nilainya adalah
0. Kemudian penerima pesan akan mendekripsikan dengan meng-XOR-kan kembali
dengan memakai kunci yang sama supaya menghasilkan plaintext yang sama.
Kunci
Pseudo random
sequence
Plaintext
⊕
Ciphertext
bit-stream
Plaintext
111111100
Pseudo random
100110101
Ciphertext stream
011001011
Gambar 2.1. Blok Diagram Algoritma RC4 secara umum
Universitas Sumatera Utara
Gambar 2.2. Proses pembangkitan acak untuk kunci RC4 (Munir, 2006)
Gambar 2.2 merupakan proses membangkitkan kunci secara acak, di mana
aliran kunci K dipilih dengan mengambil nilai S[i] dan S[j] dan menjumlahkan
dengan modulo 256. Hasil dari penjumlahan tersebut adalah index t, sehingga S[t]
akan menjadi kunci aliran K yang kemudian dipakai untuk enkripsi plaintext, karena
karakter kunci dicopy secara berulang-ulang maka ada kemungkinan nilai- nilai di
dalam larik S ada yang sama. Sebenarnya RC4 mudah diserang dengan knownplaintext attack, apabila kriptanalis mengetahui plaintext dan ciphertext yang
berkoresponden (Munir, 2006).
2.1.1 Cara Kerja RC4
RC4 menggunakan dua buah kotak subtitusi (S-box) array 256 byte yang berisi
permutasi dari bilangan 0 sampe 255 dan S-Box kedua yang berisi permutasi fungsi
dari kunci dengan panjang yang variabel (Sadikin, 2012).
Cara kerja dari algoritma RC4 ini adalah dengan menginisialisasi S-box
pertama, S[0], S[1], ...., S[255], dengan bilangan 0 sampai dengan 255. Pertama-tama
isi secara berurutan S[0] = 0, S[1] = 1, ......., S[255] = 255. Kemudian inisialisasi array
lain (S-Box lain), misalnya array K dengan panjang 256. Isi array K dengan kunci
yang diulangi sampai seluruh array K[0], K[1], ..., K[255] sampai terisi semuanya.
Proses dari inisialisasi S-Box (Array S) (Giradkar & Bhattacharya, 2015).
For r = 0 to 255
S [r] = r
Universitas Sumatera Utara
Proses inisialisasi S-box (Array K)
Array Kunci
for i = 0 to 255
K [i] = kunci [i mod length]
Kemudian lakukan langkah pengacakan S-Box dengan cara sebagai berikut:
j=0
for i = 0 to 255
j = (j + S[i] + K[i]) mod 26
isi S [i] dan isi S [j[ di swap
Dengan demikian berakhirlah proses persiapan
kunci RC4.
Untuk
membangkitkan kunci enkripsi, dilakukan proses berikut ini:
i=j=0
i = (i + 1) mod 256
j = (j + S [i]) mod 26
Isi S [i] dan S [j] di swap
k = S [ S [i] + S [j] ] mod 26
k kecil di atas merupakan kunci yang langsung beroperasi terhadap plaintext,
sedangkan K besar adalah kunci utama atau kunci induk. Bila terdapat plaintext P,
maka operasi enkripsinya adalah: C = P ⊕ k , sedangkan untuk operasi dekripsi
adalah P = k ⊕ C.
Contoh:
Implementasi algoritma RC4 menggunakan mode 4 byte untuk mengenkripsi
plaintext EMY dengan kunci 2 8.
Langkah- langkahnya adalah sebagai berikut :
a. Inisialisasi array S-box dengan panjang 4 byte sehingga array S-box array S
berbentuk S[0]=0, S[1]=1, S[2]=2, S[3]=3.
Tabel 2.1 Inisialisasi Array S-box
Index
0
1
2
3
S
0
1
2
3
b. Inisialisasi array kunci (S-box lain). Pada contoh ini digunakan algoritma
RC4 dengan mode 4 byte, kunci K diulang sampai panjangnya 4 byte
Universitas Sumatera Utara
sehingga kunci k = [2 8 2 8], S-box kunci K berbentuk K[0]=2, K[1]=8,
K[2]=2, dan K[3]=8.
Tabel 2.2 Kunci yang digunakan
Index
K
0
2
1
8
2
2
3
8
c. Kemudian lakukan permutasi nilai- nilai di dalam array S dengan cara
menukarkan isi array S[i] dengan S[j]. Karena pada contoh di atas digunakan
algoritma RC4 dengan mode 4 byte. Berikut prosesnya:
j=0
for i = 0 to 3
j = (j+S[i] + K[i]) mod 4
isi S[i] dan isi S[j] ditukar
dengan menggunakan algoritma tersebut. Untuk nilai i = 0 sampai i = 3
didapatkan nilai array S sebagai berikut:
1. Iterasi pertama, untuk nilai i = 0
j = (j + S[i] + K[i]) mod 4
j = (j + S[0] K[0]) mod 4
j = (0 + 0 + 2) mod 4
j=2
Kemudian lakukan pertukaran antara isi array S[0] dengan S[2], sehingga
hasilnya array S sebagai berikut:
Tabel 2.3 Swap antara S[0] dengan S[2]
Index
S
0
2
1
1
2
0
3
3
2. Iterasi kedua, untuk nilai i = 1 dan j = 2 (nilai j = 2 diperoleh dari hasil
iterasi pertama)
j = (j + S[i] + K[i]) mod 4
j = (j + S[1] K[1]) mod 4
j = (2 + 1 + 8) mod 4
j=3
Universitas Sumatera Utara
Kemudian lakukan pertukaran antara isi array S[1] dengan S[3], sehingga
hasilnya array S sebagai berikut:
Tabel 2.4 Swap antara S[1] dengan S[3]
Index
0
1
2
3
S
2
3
0
1
3. Iterasi ketiga, untuk nilai i = 2 dan j = 3 (nilai j = 3 diperoleh dari hasil
iterasi kedua.
j = (j + S[i] + K[i]) mod 4
j = (j + S[2] K[2]) mod 4
j = (3 + 0 + 2) mod 4
j=1
Kemudian lakukan pertukaran antara isi array S[2] dengan S[1], sehingga
hasilnya array S sebagai berikut:
Tabel 2.5 Swap antara S[2] dengan S[1]
Index
S
0
2
1
0
2
3
3
1
4. Iterasi keempat, untuk nilai i = 3 dan j = 1 (nilai j = 1 diperoleh dari hasil
iterasi ketiga.
j = (j + S[i] + K[i]) mod 4
j = (j + S[3] K[3]) mod 4
j = (1 + 1 + 8) mod 4
j=2
Kemudian lakukan pertukaran antara isi array S[3] dengan S[2], sehingga
hasilnya array S sebagai berikut:
Tabel 2.6 Swap antara S[3] dengan S[2]
Index
S
0
2
1
0
2
1
3
3
Universitas Sumatera Utara
5. Hasil dari array S-box akan digunakan untuk langkah selanjutnya adalah
array S hasil iterasi yang terakhir atau iterasi keempat pada implementasi
algoritma RC4 dengan mode 4 byte.
d. Karena plaintext mempunyai panjang 4 byte, untuk mendapatkan ciphertext
terlebih dahulu bangkitkan keystream sebanyak 3 byte. Proses untuk
membangkitkan key enkripsi pada mode 4 byte adalah sebagai berikut:
i=j=0
i = (i + 1) mod 4
j = (j + S[i]) mod 4
isi S[i] dan S[j] ditukar
t = (S[i] + S[j]) mod 4
K = S[t]
Dengan
menggunakan
algoritma
di
atas,
dapat
digunakan
untuk
membangkitkan kunci proses enkripsi dengan cara berikut:
1. Iterasi pertama, untuk nilai i = j = 0, maka
i = (i + 1) mod 4
i = (0 + 1) mod 4 = 1
j = (j + S[i]) mod 4
j = (0 + S[1]) mod 4
j = (0 + 0) mod 4 = 0
Lakukan swap terhadap S[1] dan S[0], sehingga array S menjadi:
Tabel 2.7 Swap antara S[1] dengan S[0]
Index
S
0
0
1
2
2
1
3
3
t = (S[1] + S[0]) mod 4
t = (2 + 0) mod 4 = 2
K = S[t] = S[2] = 1
Jadi, kunci pertama untuk enkripsi adalah 1.
2. Iterasi kedua, untuk nilai i = 1 dan j = 0 (nilai i dan j didapat dari hasil
iterasi pertama, maka:
i = (i + 1) mod 4
i = (1 + 1) mod 4 = 2
Universitas Sumatera Utara
j = (j + S[i]) mod 4
j = (0 + S[2]) mod 4
j = (0 + 1) mod 4 = 1
Lakukan swap terhadap S[2] dan S[1], sehingga array S menjadi:
Tabel 2.8 Swap antara S[2] dengan S[1]
Index
S
0
0
1
1
2
2
3
3
t = (S[2] + S[1]) mod 4
t = (2 + 1) mod 4 = 3
K = S[t] = S[3] = 3
Jadi, kunci kedua untuk enkripsi adalah 3.
3. Iterasi ketiga, untuk nilai i = 2 dan j = 3 (nilai i dan j didapat dari hasil
iterasi kedua, maka:
i = (i + 1) mod 4
i = (2 + 1) mod 4 = 3
j = (j + S[i]) mod 4
j = (0 + S[3]) mod 4
j = (1 + 3) mod 4 = 0
Lakukan swap terhadap S[3] dan S[0], sehingga array S menjadi:
Tabel 2.9 Swap antara S[0] dengan S[2]
Index
S
0
3
1
1
2
2
3
0
t = (S[3] + S[0]) mod 4
t = (0 + 3) mod 4 = 3
K = S[t] = S[3] = 0
Jadi, kunci pertama untuk enkripsi adalah 0.
e. Kemudian lakukan enkripsi, dengan plaintext di- XOR kan dengan kunci.
Untuk plaintext E M Y dan Kunci 1 3 0 dari hasil pembangkitan kunci,
ciphertextnya adalah:
Universitas Sumatera Utara
Tabel 2.10 Proses Enkripsi
Plaintext
Kunci (k)
P ⊕K
Ciphertext
E
01000101
00110001
01110100
T
Kode Biner
M
Y
01001101 01011001
00110011 00110000
01111110 01101001
~
I
Untuk mengembalikan plaintextnya, sebagai berikut:
Tabel 2.11 Proses Dekripsi
Ciphertext
Kunci (k)
P ⊕K
Plaintext
Kode Biner
T
~
I
01110100 01111110 01101001
00110001 00110011 00110000
01000101 01001101 01011001
E
M
Y
2.2 Algoritma Kriptografi
Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga bagian,
yaitu sebagai berikut:
a. Algoritma Simetris
Algoritma ini merupakan algoritma klasik karena memakai kunci yang sama
untuk enkripsi dan dekripsi. Keamanan pesan yang menggunakan algoritma
ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain , maka
akan dapat melakukan enkripsi maupun dekripsi terhadap pesan yang dikirim.
Algoritma yang menggunakan kunci simetris diantaranya adalah: Data
Encryption Standard (DES), RC2, RC4, RC5, RC6, International Data
Encryption Algorithm (IDEA), Advanced Encryption Standard (AES), One
Time Pad (OTP), A5, dan lain sebagainya.
Berikut adalah skema dari kriptografi simetris:
Gambar 2.3. Skema kriptografi Simetris
Universitas Sumatera Utara
Kelebihan dari algoritma simetris adalah kecepatan operasinya lebih tinggi
dibandingkan dengan algoritma asimetris dan karena kecepatannya tinggi, maka dapat
digunakan pada sistem real time.
Sedangkan kelemahan dari algoritma ini adalah setiap pengiriman pesan
dengan pengguna yang berbeda dibutuhkan key yang berbeda pula, sehingga terjadi
kesulitan dalam manajemen key dan permasalahan di dalam pengiriman kunci
biasanya disebut dengan “key distribution problem ” (Chehal & Singh, 2012).
b. Algoritma Asimetris
Algoritma ini merupakan algoritma kunci publik, karena kata kunci yang
digunakan untuk mengenkripsi dan mengdekripsi pesan menggunakan kunci
yang berbeda. Pada algoritma asimetris, kunci terbagi kepada dua bagian,
yaitu: kunci umum yang boleh diketahui oleh semua orang, sedangkan kunci
private hanya boleh diketahui oleh satu orang saja. Algoritma yang
menggunakan kunci publik adalah: Digital Signature Algorithm (DSA), RSA,
Diffie-Helman (DH), kriptografi Quantum, dan lain sebagainya.
Gambar 2.4. Skema kriptografi Simetris
Kelebihan dari algoritma asimetris adalah pada masalah keamanan pada
distribusi kunci dapat lebih baik dan pada manajemen kunci yang lebih baik karena
jumlah kuncinya yang lebih sedikit.
Sedangkan kelemahan dari algoritma asimetris adalah kecepatannya lebih
rendah dibandingkan dengan algoritma simetris dan tingkat keamanannya sama, key
yang digunakan lebih panjang jika dibandingkan dengan algoritma simetris. (Mulya,
2013)
c. Fungsi Hash
Merupakan fungsi yang menerima masukan string yang panjangnya
sembarang
dan
mengkonversikannya
menjadi string
yang
keluaran
panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada
ukuran string semula). Fungsi hash dapat menerima masukan string apa saja.
Universitas Sumatera Utara
Jika string tersebut menyatakan pesan, maka sembarang pesan M berukuran
bebas dapat dikompresi oleh fungsi hash H melalui persamaan :
h = H (M)
(2.1)
2.3 Pembangkit Bilangan Acak
Bilangan acak adalah bilangan yang sulit diprediksi, ada beberapa bagian dari
bilangan acak yang dapat diprediksi dan saling berhubungan. Kebanyakan
pembangkit bilangan acak (Random Number Generator (RNG)) mengulang string
yang sama setelah melakukan n putaran. Sedangkan ada juga yang bilangan acak
menghasilkan nilai acak dengan fokus pada suatu area tertentu.
Random Number Generator merupakan suatu peralatan komputasional yang
dirancang untuk menghasilkan suatu deretan nilai yang tidak dapat ditebak polanya
dengan mudah, sehingga deretan nilai tersebut dapat dianggap sebagai suatu keadaan
acak. RNG sulit diterapkan dalam praktek. Bilangan acak yang dihasilkan oleh
komputer sekalipun tidak benar-benar acak dan kebanyakan dari bilangan acak
tersebut jika diterapkan dalam kriptografi juga tidak benar-benar bilangan acak,
melainkan bilangan acak semu. Itu berarti bilangan acak yang dihasilkan dapat
ditebak deretan nilainya (Schneier, 1996). Dalam kriptografi, bilangan acak yang
dihasilkan dengan rumus-rumus matematika itu disebut bilangan acak semu, karena
bilangan tersebut yang dibangkitkan dapat berulang kembali secara berkala.
Pembangkit deret bilangan acak yang seperti itu disebut PRNG (pseudo-random
number generator) (Schneir, 1996).
Pseudo-random number generator (PRNG) adalah suatu algoritma yang
menghasilkan suatu urutan nilai acak dimana emlemen-elemenya bergantung pada
setiap nilai yang dihasilkan (Stinson, 1995). Output dari PNRG tidak benar-benar
acak, tetapi hanya mirip dengan nilai acak. Kebanyakan algoritma dari pseudo
random number generator ditujukan untuk menghasilkan suatu contoh yang secara
seragam terdistribusi. Pseudo-random number generatorini sering digunakan dalam
kriptografi pada proses pembentukan kunci dari sebuah metode kriptografi.
Kerumitan dari PRNG ini adalah waktu menentukan tingkat keamanan dari metode
kriptografi. Semakin rumit PRNG yang digunakan, maka akan semakin tinggi tingkat
keamanan dari metode kriptografi tersebut (Junod, 1999).
Universitas Sumatera Utara
Pembangkit bilangan acak yang dapat menghasilkan bilangan yang tidak
dapat diprediksi oleh orang-orang yang tidak bertanggung jawab untuk kriptografi
adalah cryptographically secure pseudorandom generator (CSPRNG). Syarat untuk
CSPRNG adalah :
1. Secara statistik mempunyai sifat-sifat yang baik ( lulus dalam uji
keacakan statistik).
2. Tahan terhadap serangan-serangan yang ada. Serangan tersebut bertujuan
untuk memprediksi bilangan acak yang dihasilkan.
Kebanyakan PRNG tidak cocok untuk CSPRNG, karena tid ak memenuhi
syarat yang ada. CSPRNG dirancang untuk menahan terhadap serangan-serangan
yang ada dari kriptanalis.
2.4 Blum Blum Shub (BBS)
Blum Blum Shub (BBS) merupakan suatu pseudo random number generator yang
diajukan pada tahun 1986 oleh Lenore Blum, Manuel Blum, dan Michael Shub. BBS
mempunyai persamaan:
Xn+1 = Xn 2 mod m
(2.2)
m diatas merupakan hasil perkalian dua buah bilangan prima besar p dan q, serta
hasilnya dalam LSB dari Xn dimana hal yang sama sebagai parity dari Xn . Dua buah
bilangan prima p dan q harus terhadap 3 mod 4 dan GCD harus kecil. Generator
tersebut sering digunakan untuk aplikasi kriptografi, karena generator ini tidak begitu
cepat.
Untuk membangkitkan bilangan acak dengan BBS, algoritmanya adalah
sebagai berikut:
a. Pilih dua buah bilangan prima rahasia, p dan q, yang masing- masing sama
dengan 3 modulo 4.
b. Kalikan keduanya menjadi n = p x q. Bilangan m ini disebut sebagai
bilangan bulat blum.
c. Pilih bilangan bulat acak s sebagai umpan, bilangan yang dipilih harus
memenuhi kriteria:
i. 2 ≤ s < n
Universitas Sumatera Utara
ii. s dan n relatif prima
d. Hitung nilai x0 = s2 mod n.
e. Hasilkan bilangan bit acak dengan cara:
i.
Hitung xi = x(i-1)2 mod n.
ii. Hasilkan zi = bit- bit yang diambil dari xi. Bit yang diambil bisa
merupakan LSB atau hanya satu bit atau sebanyak j bit (j tidak
melebihi log2 (log2 n). Bilangan bit acak dapat digunakan langsung
atau diformat dengan aturan tertentu, sedemikian hingga menjadi
bilangan bulat (Sadikin, 2012).
2.5 Riset Terkait
Beberapa penelitian telah dilakukan oleh peneliti, yang berkaitan dengan penulisan
penelitian ini. Adapun penelitian tersebut dapat dilihat di bawah ini:
Penelitian Xie & Pan (2010), mengungkapkan bahwa kelemahan dari
Algoritma RC4 terdapat pada KSA (Key Scheduling Algorithm) dan kelemahan
lainnya pada PGRA (Pseudo random generator algorithm), pada PGRA yang penting
keadaan awal dari S-Box, dimana peneliti menggunakan untuk memperoleh Key
Stream, salah satu kelemahan dari PGRA adalah hubungan antara S-Box pada waktu
yang berbeda. pada paper peneliti fokus pada kelemahan PGRA dengan meningkatkan
RC4 untuk melindungi PGRA dari berbagai macam serangan. Untuk meningkatkan
RC4 dipilih dua buah kunci rahasia K1 dan K2 sebagai seed dan dua S-Box S1 dan S2
yang mana semua berisi elemen N dari 0 sampai N-1. Pada algoritma baru peneliti
menggunakan tiga titik yaitu i, j1, dan j2. Hasil yang diperoleh dari paper ini
algoritma baru tersebut dapat meningkatkan keamanan RC4 dan improved RC4 lebih
cepat dari algoritma RC4.
Penelitian Weerangsinghe (2013), mengungkapkan bahwa peningkatan RC4
dilakukan dalam sebuah aplikasi, tujuannya untuk mendapatkan output dan
keamananan yang baik. Cipher yang diusulkan diambil dari penelitian Xie & Pan.
Penelitian Jindal & Sing (2014), mengungkapkan bahwa melakukan analisi
terhadap kelemahan dari KSA dan PGRA kemudian diusulkan dengan sebuah
algoritma modifikasi RC4 (MRC4). Modifikasi tersebut ditambahkan pada struktur
algoritma RC4, yang mana untuk meningkatkan keamanan sementara tetapi tetap
mempertahankan struktur dan kecepatan dari algoritma RC4.
Universitas Sumatera Utara
Penelitian Sanjaya & Telnoni (2015), mengungkapkan bahwa menggunakan
Algoritma AES (Advanced Encryption Standard) untuk enkripsi, pada saat proses
pembangkitan kunci digunakan metode chaotic function agar dapat menghasilkan
penurunan waktu proses enkripsi dan dekripsi yang baik, dan untuk membangkitkan
kunci acak digunakan metode random BBS (Blum Blum Shub).
2.6 Perbedaan Dengan Riset Lain
Dalam penelitian ini, dilakukan pembangkitan kunci acak dengan metode (BBS)
Blum Blum Shub untuk pengacakan tabel S-Box. Hasil dari pembangkitan kunci
tersebut susah diprediksi dan ditebak oleh seseorang (kriptanalis).
2.7 Kontribusi Riset
Penelitian ini ingin memberikan pemahamanan dalam hal menentukan kunci yang
aman bagi pengirim dan penerima, dengan menggunakan Blum Blum Shub (BBS)
diharapkan dapat menghasilkan kunci yang baik dalam mengamankan data dengan
baik.
Universitas Sumatera Utara
LANDASAN TEORI
2.1 Algoritma RC4
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data
pada satu saat. Dengan cara ini enkripsi maupun dekripsi dapat dilaksanakan pada
panjang variabel. Algoritma ini tidak harus menunggu sejumlah input data tertentu
sebelum diproses, atau menambahkan byte tambahan untuk mengenkripnya. Metode
enkripsi RC4 sangat cepat kurang lebih 10 kali lebih cepat dari Data Encyption
Standard (DES) (Mollin, 2005).
Sistem sandi RC4 dikembangkan oleh Ronald Rivest untuk RSA Data Security
(sekarang RSA Security) pada 1984 yang merupakan sistem sistem stream yang sangat
banyak digunakan (Mollin, 2005). RC4 menggunakan panjang variabel kunci dari 1
s.d 256 byte untuk menginisialisasi state tabel. State table digunakan untuk
pengurutan menghasilkan byte pseudo-random yang kemudian menjadi stream
pseudo-random. Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext.
Tiap elemen pada state table ditukar sedikitnya sekali tukaran. Kunci RC4 sering
dibatasi sampai 40 bit, tetapi ada kemungkinan untuk mengunakan kunci 128 bit. RC4
memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit.
Ukuran dari sistem sandi RC4 sangat mempengaruhi keamanan sistem sandi
tersebut. RC4 telah dibuktikan tidak aman dengan ukuran kunci sandi yang kecil,
yaitu di bawah 5 byte. Penggunaan sandi RC4 memiliki keamanan yang kuat, yaitu:
1. Ukuran kunci sama atau lebih besar daripada 256 bit (16 byte)
2. Setiap sesi yang membangkitkan kunci yang baru ( dengan pembangkitan
kunci yang baru dapat menghindari penyerang untuk menganalisis sandi
diferensial pada sandi tersebut) (Sadikin, 2012).
Universitas Sumatera Utara
Dalam beberapa aplikasi, RC4 digunakan untuk enkripsi data seperti RSA
SecurPC yang merupakan salah satu produk RSA Securty, Inc. Algoritma RC4 juga
digunakan untuk keamanan komunikasi dalam pengiriman data melalui email dan
keamanan website dengan
menggunakan protokol SSL (Secure Sockets Layer).
Misalnya kriptografi yang menggunakan algoritma RC4 ini
adalah HotCrypt,
WodCrypt serta SSLite dan CryptoLite dari IBM.
Algoritma RC4 dirancang supaya dapat diimp lementasikan pada software
secara efisien. Ini yang membuat RC4 sangat populer untuk dipakai pada aplikasi
internet, antara lain RC4 digunakan dalam standard TLS (transport layer security)
dan WEP (wireless equivalent privacy) (Sadikin, 2012).
Cara membuat keystream dalam RC4 adalah dengan menggunakan state
automaton yang terdiri dari dua cara, yaitu :
1. Key scheduling di mana state automaton diberi nilai awal berdasarkan kunci
enkripsi.
2. Pseudo-random generation dimana state automaton beroperasi dan outputnya
menghasilkan keystream.
Variabel suatu enkripsi dihasilkan dari setup kunci, dimana kunci akan di
XOR-kan dengan plaintext untuk menghasilkan teks yang sudah dienkripsi. XOR
merupakan operasi logika yang membandingkan dua bit biner. Jika nilai beda, maka
akan dihasilkan nilai 1, sedangkan jika kedua bit tersebut sama maka nilainya adalah
0. Kemudian penerima pesan akan mendekripsikan dengan meng-XOR-kan kembali
dengan memakai kunci yang sama supaya menghasilkan plaintext yang sama.
Kunci
Pseudo random
sequence
Plaintext
⊕
Ciphertext
bit-stream
Plaintext
111111100
Pseudo random
100110101
Ciphertext stream
011001011
Gambar 2.1. Blok Diagram Algoritma RC4 secara umum
Universitas Sumatera Utara
Gambar 2.2. Proses pembangkitan acak untuk kunci RC4 (Munir, 2006)
Gambar 2.2 merupakan proses membangkitkan kunci secara acak, di mana
aliran kunci K dipilih dengan mengambil nilai S[i] dan S[j] dan menjumlahkan
dengan modulo 256. Hasil dari penjumlahan tersebut adalah index t, sehingga S[t]
akan menjadi kunci aliran K yang kemudian dipakai untuk enkripsi plaintext, karena
karakter kunci dicopy secara berulang-ulang maka ada kemungkinan nilai- nilai di
dalam larik S ada yang sama. Sebenarnya RC4 mudah diserang dengan knownplaintext attack, apabila kriptanalis mengetahui plaintext dan ciphertext yang
berkoresponden (Munir, 2006).
2.1.1 Cara Kerja RC4
RC4 menggunakan dua buah kotak subtitusi (S-box) array 256 byte yang berisi
permutasi dari bilangan 0 sampe 255 dan S-Box kedua yang berisi permutasi fungsi
dari kunci dengan panjang yang variabel (Sadikin, 2012).
Cara kerja dari algoritma RC4 ini adalah dengan menginisialisasi S-box
pertama, S[0], S[1], ...., S[255], dengan bilangan 0 sampai dengan 255. Pertama-tama
isi secara berurutan S[0] = 0, S[1] = 1, ......., S[255] = 255. Kemudian inisialisasi array
lain (S-Box lain), misalnya array K dengan panjang 256. Isi array K dengan kunci
yang diulangi sampai seluruh array K[0], K[1], ..., K[255] sampai terisi semuanya.
Proses dari inisialisasi S-Box (Array S) (Giradkar & Bhattacharya, 2015).
For r = 0 to 255
S [r] = r
Universitas Sumatera Utara
Proses inisialisasi S-box (Array K)
Array Kunci
for i = 0 to 255
K [i] = kunci [i mod length]
Kemudian lakukan langkah pengacakan S-Box dengan cara sebagai berikut:
j=0
for i = 0 to 255
j = (j + S[i] + K[i]) mod 26
isi S [i] dan isi S [j[ di swap
Dengan demikian berakhirlah proses persiapan
kunci RC4.
Untuk
membangkitkan kunci enkripsi, dilakukan proses berikut ini:
i=j=0
i = (i + 1) mod 256
j = (j + S [i]) mod 26
Isi S [i] dan S [j] di swap
k = S [ S [i] + S [j] ] mod 26
k kecil di atas merupakan kunci yang langsung beroperasi terhadap plaintext,
sedangkan K besar adalah kunci utama atau kunci induk. Bila terdapat plaintext P,
maka operasi enkripsinya adalah: C = P ⊕ k , sedangkan untuk operasi dekripsi
adalah P = k ⊕ C.
Contoh:
Implementasi algoritma RC4 menggunakan mode 4 byte untuk mengenkripsi
plaintext EMY dengan kunci 2 8.
Langkah- langkahnya adalah sebagai berikut :
a. Inisialisasi array S-box dengan panjang 4 byte sehingga array S-box array S
berbentuk S[0]=0, S[1]=1, S[2]=2, S[3]=3.
Tabel 2.1 Inisialisasi Array S-box
Index
0
1
2
3
S
0
1
2
3
b. Inisialisasi array kunci (S-box lain). Pada contoh ini digunakan algoritma
RC4 dengan mode 4 byte, kunci K diulang sampai panjangnya 4 byte
Universitas Sumatera Utara
sehingga kunci k = [2 8 2 8], S-box kunci K berbentuk K[0]=2, K[1]=8,
K[2]=2, dan K[3]=8.
Tabel 2.2 Kunci yang digunakan
Index
K
0
2
1
8
2
2
3
8
c. Kemudian lakukan permutasi nilai- nilai di dalam array S dengan cara
menukarkan isi array S[i] dengan S[j]. Karena pada contoh di atas digunakan
algoritma RC4 dengan mode 4 byte. Berikut prosesnya:
j=0
for i = 0 to 3
j = (j+S[i] + K[i]) mod 4
isi S[i] dan isi S[j] ditukar
dengan menggunakan algoritma tersebut. Untuk nilai i = 0 sampai i = 3
didapatkan nilai array S sebagai berikut:
1. Iterasi pertama, untuk nilai i = 0
j = (j + S[i] + K[i]) mod 4
j = (j + S[0] K[0]) mod 4
j = (0 + 0 + 2) mod 4
j=2
Kemudian lakukan pertukaran antara isi array S[0] dengan S[2], sehingga
hasilnya array S sebagai berikut:
Tabel 2.3 Swap antara S[0] dengan S[2]
Index
S
0
2
1
1
2
0
3
3
2. Iterasi kedua, untuk nilai i = 1 dan j = 2 (nilai j = 2 diperoleh dari hasil
iterasi pertama)
j = (j + S[i] + K[i]) mod 4
j = (j + S[1] K[1]) mod 4
j = (2 + 1 + 8) mod 4
j=3
Universitas Sumatera Utara
Kemudian lakukan pertukaran antara isi array S[1] dengan S[3], sehingga
hasilnya array S sebagai berikut:
Tabel 2.4 Swap antara S[1] dengan S[3]
Index
0
1
2
3
S
2
3
0
1
3. Iterasi ketiga, untuk nilai i = 2 dan j = 3 (nilai j = 3 diperoleh dari hasil
iterasi kedua.
j = (j + S[i] + K[i]) mod 4
j = (j + S[2] K[2]) mod 4
j = (3 + 0 + 2) mod 4
j=1
Kemudian lakukan pertukaran antara isi array S[2] dengan S[1], sehingga
hasilnya array S sebagai berikut:
Tabel 2.5 Swap antara S[2] dengan S[1]
Index
S
0
2
1
0
2
3
3
1
4. Iterasi keempat, untuk nilai i = 3 dan j = 1 (nilai j = 1 diperoleh dari hasil
iterasi ketiga.
j = (j + S[i] + K[i]) mod 4
j = (j + S[3] K[3]) mod 4
j = (1 + 1 + 8) mod 4
j=2
Kemudian lakukan pertukaran antara isi array S[3] dengan S[2], sehingga
hasilnya array S sebagai berikut:
Tabel 2.6 Swap antara S[3] dengan S[2]
Index
S
0
2
1
0
2
1
3
3
Universitas Sumatera Utara
5. Hasil dari array S-box akan digunakan untuk langkah selanjutnya adalah
array S hasil iterasi yang terakhir atau iterasi keempat pada implementasi
algoritma RC4 dengan mode 4 byte.
d. Karena plaintext mempunyai panjang 4 byte, untuk mendapatkan ciphertext
terlebih dahulu bangkitkan keystream sebanyak 3 byte. Proses untuk
membangkitkan key enkripsi pada mode 4 byte adalah sebagai berikut:
i=j=0
i = (i + 1) mod 4
j = (j + S[i]) mod 4
isi S[i] dan S[j] ditukar
t = (S[i] + S[j]) mod 4
K = S[t]
Dengan
menggunakan
algoritma
di
atas,
dapat
digunakan
untuk
membangkitkan kunci proses enkripsi dengan cara berikut:
1. Iterasi pertama, untuk nilai i = j = 0, maka
i = (i + 1) mod 4
i = (0 + 1) mod 4 = 1
j = (j + S[i]) mod 4
j = (0 + S[1]) mod 4
j = (0 + 0) mod 4 = 0
Lakukan swap terhadap S[1] dan S[0], sehingga array S menjadi:
Tabel 2.7 Swap antara S[1] dengan S[0]
Index
S
0
0
1
2
2
1
3
3
t = (S[1] + S[0]) mod 4
t = (2 + 0) mod 4 = 2
K = S[t] = S[2] = 1
Jadi, kunci pertama untuk enkripsi adalah 1.
2. Iterasi kedua, untuk nilai i = 1 dan j = 0 (nilai i dan j didapat dari hasil
iterasi pertama, maka:
i = (i + 1) mod 4
i = (1 + 1) mod 4 = 2
Universitas Sumatera Utara
j = (j + S[i]) mod 4
j = (0 + S[2]) mod 4
j = (0 + 1) mod 4 = 1
Lakukan swap terhadap S[2] dan S[1], sehingga array S menjadi:
Tabel 2.8 Swap antara S[2] dengan S[1]
Index
S
0
0
1
1
2
2
3
3
t = (S[2] + S[1]) mod 4
t = (2 + 1) mod 4 = 3
K = S[t] = S[3] = 3
Jadi, kunci kedua untuk enkripsi adalah 3.
3. Iterasi ketiga, untuk nilai i = 2 dan j = 3 (nilai i dan j didapat dari hasil
iterasi kedua, maka:
i = (i + 1) mod 4
i = (2 + 1) mod 4 = 3
j = (j + S[i]) mod 4
j = (0 + S[3]) mod 4
j = (1 + 3) mod 4 = 0
Lakukan swap terhadap S[3] dan S[0], sehingga array S menjadi:
Tabel 2.9 Swap antara S[0] dengan S[2]
Index
S
0
3
1
1
2
2
3
0
t = (S[3] + S[0]) mod 4
t = (0 + 3) mod 4 = 3
K = S[t] = S[3] = 0
Jadi, kunci pertama untuk enkripsi adalah 0.
e. Kemudian lakukan enkripsi, dengan plaintext di- XOR kan dengan kunci.
Untuk plaintext E M Y dan Kunci 1 3 0 dari hasil pembangkitan kunci,
ciphertextnya adalah:
Universitas Sumatera Utara
Tabel 2.10 Proses Enkripsi
Plaintext
Kunci (k)
P ⊕K
Ciphertext
E
01000101
00110001
01110100
T
Kode Biner
M
Y
01001101 01011001
00110011 00110000
01111110 01101001
~
I
Untuk mengembalikan plaintextnya, sebagai berikut:
Tabel 2.11 Proses Dekripsi
Ciphertext
Kunci (k)
P ⊕K
Plaintext
Kode Biner
T
~
I
01110100 01111110 01101001
00110001 00110011 00110000
01000101 01001101 01011001
E
M
Y
2.2 Algoritma Kriptografi
Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga bagian,
yaitu sebagai berikut:
a. Algoritma Simetris
Algoritma ini merupakan algoritma klasik karena memakai kunci yang sama
untuk enkripsi dan dekripsi. Keamanan pesan yang menggunakan algoritma
ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain , maka
akan dapat melakukan enkripsi maupun dekripsi terhadap pesan yang dikirim.
Algoritma yang menggunakan kunci simetris diantaranya adalah: Data
Encryption Standard (DES), RC2, RC4, RC5, RC6, International Data
Encryption Algorithm (IDEA), Advanced Encryption Standard (AES), One
Time Pad (OTP), A5, dan lain sebagainya.
Berikut adalah skema dari kriptografi simetris:
Gambar 2.3. Skema kriptografi Simetris
Universitas Sumatera Utara
Kelebihan dari algoritma simetris adalah kecepatan operasinya lebih tinggi
dibandingkan dengan algoritma asimetris dan karena kecepatannya tinggi, maka dapat
digunakan pada sistem real time.
Sedangkan kelemahan dari algoritma ini adalah setiap pengiriman pesan
dengan pengguna yang berbeda dibutuhkan key yang berbeda pula, sehingga terjadi
kesulitan dalam manajemen key dan permasalahan di dalam pengiriman kunci
biasanya disebut dengan “key distribution problem ” (Chehal & Singh, 2012).
b. Algoritma Asimetris
Algoritma ini merupakan algoritma kunci publik, karena kata kunci yang
digunakan untuk mengenkripsi dan mengdekripsi pesan menggunakan kunci
yang berbeda. Pada algoritma asimetris, kunci terbagi kepada dua bagian,
yaitu: kunci umum yang boleh diketahui oleh semua orang, sedangkan kunci
private hanya boleh diketahui oleh satu orang saja. Algoritma yang
menggunakan kunci publik adalah: Digital Signature Algorithm (DSA), RSA,
Diffie-Helman (DH), kriptografi Quantum, dan lain sebagainya.
Gambar 2.4. Skema kriptografi Simetris
Kelebihan dari algoritma asimetris adalah pada masalah keamanan pada
distribusi kunci dapat lebih baik dan pada manajemen kunci yang lebih baik karena
jumlah kuncinya yang lebih sedikit.
Sedangkan kelemahan dari algoritma asimetris adalah kecepatannya lebih
rendah dibandingkan dengan algoritma simetris dan tingkat keamanannya sama, key
yang digunakan lebih panjang jika dibandingkan dengan algoritma simetris. (Mulya,
2013)
c. Fungsi Hash
Merupakan fungsi yang menerima masukan string yang panjangnya
sembarang
dan
mengkonversikannya
menjadi string
yang
keluaran
panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada
ukuran string semula). Fungsi hash dapat menerima masukan string apa saja.
Universitas Sumatera Utara
Jika string tersebut menyatakan pesan, maka sembarang pesan M berukuran
bebas dapat dikompresi oleh fungsi hash H melalui persamaan :
h = H (M)
(2.1)
2.3 Pembangkit Bilangan Acak
Bilangan acak adalah bilangan yang sulit diprediksi, ada beberapa bagian dari
bilangan acak yang dapat diprediksi dan saling berhubungan. Kebanyakan
pembangkit bilangan acak (Random Number Generator (RNG)) mengulang string
yang sama setelah melakukan n putaran. Sedangkan ada juga yang bilangan acak
menghasilkan nilai acak dengan fokus pada suatu area tertentu.
Random Number Generator merupakan suatu peralatan komputasional yang
dirancang untuk menghasilkan suatu deretan nilai yang tidak dapat ditebak polanya
dengan mudah, sehingga deretan nilai tersebut dapat dianggap sebagai suatu keadaan
acak. RNG sulit diterapkan dalam praktek. Bilangan acak yang dihasilkan oleh
komputer sekalipun tidak benar-benar acak dan kebanyakan dari bilangan acak
tersebut jika diterapkan dalam kriptografi juga tidak benar-benar bilangan acak,
melainkan bilangan acak semu. Itu berarti bilangan acak yang dihasilkan dapat
ditebak deretan nilainya (Schneier, 1996). Dalam kriptografi, bilangan acak yang
dihasilkan dengan rumus-rumus matematika itu disebut bilangan acak semu, karena
bilangan tersebut yang dibangkitkan dapat berulang kembali secara berkala.
Pembangkit deret bilangan acak yang seperti itu disebut PRNG (pseudo-random
number generator) (Schneir, 1996).
Pseudo-random number generator (PRNG) adalah suatu algoritma yang
menghasilkan suatu urutan nilai acak dimana emlemen-elemenya bergantung pada
setiap nilai yang dihasilkan (Stinson, 1995). Output dari PNRG tidak benar-benar
acak, tetapi hanya mirip dengan nilai acak. Kebanyakan algoritma dari pseudo
random number generator ditujukan untuk menghasilkan suatu contoh yang secara
seragam terdistribusi. Pseudo-random number generatorini sering digunakan dalam
kriptografi pada proses pembentukan kunci dari sebuah metode kriptografi.
Kerumitan dari PRNG ini adalah waktu menentukan tingkat keamanan dari metode
kriptografi. Semakin rumit PRNG yang digunakan, maka akan semakin tinggi tingkat
keamanan dari metode kriptografi tersebut (Junod, 1999).
Universitas Sumatera Utara
Pembangkit bilangan acak yang dapat menghasilkan bilangan yang tidak
dapat diprediksi oleh orang-orang yang tidak bertanggung jawab untuk kriptografi
adalah cryptographically secure pseudorandom generator (CSPRNG). Syarat untuk
CSPRNG adalah :
1. Secara statistik mempunyai sifat-sifat yang baik ( lulus dalam uji
keacakan statistik).
2. Tahan terhadap serangan-serangan yang ada. Serangan tersebut bertujuan
untuk memprediksi bilangan acak yang dihasilkan.
Kebanyakan PRNG tidak cocok untuk CSPRNG, karena tid ak memenuhi
syarat yang ada. CSPRNG dirancang untuk menahan terhadap serangan-serangan
yang ada dari kriptanalis.
2.4 Blum Blum Shub (BBS)
Blum Blum Shub (BBS) merupakan suatu pseudo random number generator yang
diajukan pada tahun 1986 oleh Lenore Blum, Manuel Blum, dan Michael Shub. BBS
mempunyai persamaan:
Xn+1 = Xn 2 mod m
(2.2)
m diatas merupakan hasil perkalian dua buah bilangan prima besar p dan q, serta
hasilnya dalam LSB dari Xn dimana hal yang sama sebagai parity dari Xn . Dua buah
bilangan prima p dan q harus terhadap 3 mod 4 dan GCD harus kecil. Generator
tersebut sering digunakan untuk aplikasi kriptografi, karena generator ini tidak begitu
cepat.
Untuk membangkitkan bilangan acak dengan BBS, algoritmanya adalah
sebagai berikut:
a. Pilih dua buah bilangan prima rahasia, p dan q, yang masing- masing sama
dengan 3 modulo 4.
b. Kalikan keduanya menjadi n = p x q. Bilangan m ini disebut sebagai
bilangan bulat blum.
c. Pilih bilangan bulat acak s sebagai umpan, bilangan yang dipilih harus
memenuhi kriteria:
i. 2 ≤ s < n
Universitas Sumatera Utara
ii. s dan n relatif prima
d. Hitung nilai x0 = s2 mod n.
e. Hasilkan bilangan bit acak dengan cara:
i.
Hitung xi = x(i-1)2 mod n.
ii. Hasilkan zi = bit- bit yang diambil dari xi. Bit yang diambil bisa
merupakan LSB atau hanya satu bit atau sebanyak j bit (j tidak
melebihi log2 (log2 n). Bilangan bit acak dapat digunakan langsung
atau diformat dengan aturan tertentu, sedemikian hingga menjadi
bilangan bulat (Sadikin, 2012).
2.5 Riset Terkait
Beberapa penelitian telah dilakukan oleh peneliti, yang berkaitan dengan penulisan
penelitian ini. Adapun penelitian tersebut dapat dilihat di bawah ini:
Penelitian Xie & Pan (2010), mengungkapkan bahwa kelemahan dari
Algoritma RC4 terdapat pada KSA (Key Scheduling Algorithm) dan kelemahan
lainnya pada PGRA (Pseudo random generator algorithm), pada PGRA yang penting
keadaan awal dari S-Box, dimana peneliti menggunakan untuk memperoleh Key
Stream, salah satu kelemahan dari PGRA adalah hubungan antara S-Box pada waktu
yang berbeda. pada paper peneliti fokus pada kelemahan PGRA dengan meningkatkan
RC4 untuk melindungi PGRA dari berbagai macam serangan. Untuk meningkatkan
RC4 dipilih dua buah kunci rahasia K1 dan K2 sebagai seed dan dua S-Box S1 dan S2
yang mana semua berisi elemen N dari 0 sampai N-1. Pada algoritma baru peneliti
menggunakan tiga titik yaitu i, j1, dan j2. Hasil yang diperoleh dari paper ini
algoritma baru tersebut dapat meningkatkan keamanan RC4 dan improved RC4 lebih
cepat dari algoritma RC4.
Penelitian Weerangsinghe (2013), mengungkapkan bahwa peningkatan RC4
dilakukan dalam sebuah aplikasi, tujuannya untuk mendapatkan output dan
keamananan yang baik. Cipher yang diusulkan diambil dari penelitian Xie & Pan.
Penelitian Jindal & Sing (2014), mengungkapkan bahwa melakukan analisi
terhadap kelemahan dari KSA dan PGRA kemudian diusulkan dengan sebuah
algoritma modifikasi RC4 (MRC4). Modifikasi tersebut ditambahkan pada struktur
algoritma RC4, yang mana untuk meningkatkan keamanan sementara tetapi tetap
mempertahankan struktur dan kecepatan dari algoritma RC4.
Universitas Sumatera Utara
Penelitian Sanjaya & Telnoni (2015), mengungkapkan bahwa menggunakan
Algoritma AES (Advanced Encryption Standard) untuk enkripsi, pada saat proses
pembangkitan kunci digunakan metode chaotic function agar dapat menghasilkan
penurunan waktu proses enkripsi dan dekripsi yang baik, dan untuk membangkitkan
kunci acak digunakan metode random BBS (Blum Blum Shub).
2.6 Perbedaan Dengan Riset Lain
Dalam penelitian ini, dilakukan pembangkitan kunci acak dengan metode (BBS)
Blum Blum Shub untuk pengacakan tabel S-Box. Hasil dari pembangkitan kunci
tersebut susah diprediksi dan ditebak oleh seseorang (kriptanalis).
2.7 Kontribusi Riset
Penelitian ini ingin memberikan pemahamanan dalam hal menentukan kunci yang
aman bagi pengirim dan penerima, dengan menggunakan Blum Blum Shub (BBS)
diharapkan dapat menghasilkan kunci yang baik dalam mengamankan data dengan
baik.
Universitas Sumatera Utara