Universitas Sumatera Utara BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 3 METODOLOGI PENELITIAN

BAB Kriptografi

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

KOMBINASI ALGORITMA ONE TIME PAD CIPHER DAN ALGORITMA BLUM BLUM SHUB DALAM PENGAMANAN FILE

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN DESAIN SISTEM

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB II LANDASAN TEORI

Disusun oleh: Ir. Rinaldi Munir, M.T.

BAB 2 LANDASAN TEORI

JURNAL KEAMANAN KOMPUTER APLIKASI ENKRIPSI - DEKRIPSI DENGAN ALGORITMA RC2 MENGGUNAKAN JAVA NETBEANS

Kriptografi Modern Part -1

Kompleksitas Waktu Algoritma Kriptografi RC4 Stream Cipher

Studi Perbandingan ORYX Cipher dengan Stream Cipher Standard

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

Kombinasi Algoritma OTP Cipher dan Algoritma BBS dalam Pengamanan File

BAB III ANALISA DAN PERANCANGAN. pengamanan file teks dengan menggunakan algoritma triangle chain dan rivest cipher (RC4).

BAB 2 TINJAUAN PUSTAKA

ANALISIS WAKTU ENKRIPSI-DEKRIPSI FILE TEXT MENGGUNAKAN METODA ONE-TIME PAD (OTP) DAN RIVEST, SHAMIR, ADLEMAN (RSA)

BAB 2 LANDASAN TEORI

BAB IV HASIL DAN UJI COBA

Kriptografi Kunci Rahasia & Kunci Publik

ANALISIS ALGORITMA KRIPTOGRAFI RC4 PADA ENKRIPSI CITRA DIGITAL

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB II LANDASAN TEORI

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Pengenalan Kriptografi

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

Penerapan Matriks dalam Kriptografi Hill Cipher

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISIS DAN PERANCANGAN SISTEM

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

BAB 2 LANDASAN TEORI

PERANCANGAN DAN ANALISIS MODIFIKASI KUNCI KRIPTOGRAFI ALGORITMA TWOFISH PADA DATA TEKS

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

PENGAMANAN CITRA DIGITAL BERDASARKAN MODIFIKASI ALGORITMA RC4

STUDI PERBANDINGAN CIPHER BLOK ALGORITMA BLOWFISH DAN ALGORITMA CAMELLIA

BAB 2 LANDASAN TEORI

BAB III ANALISIS DAN DESAIN SISTEM

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

BAB 2 LANDASAN TEORI

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS. 3.1 Otentikasi Perangkat dengan Kriptografi Kunci-Publik

BAB III ANALISA DAN DESAIN SISTEM

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB II LANDASAN TEORI

Add your company slogan STREAM CIPHER. Kriptografi - Week 7 LOGO. Aisyatul Karima, 2012

BAB 1 PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN. Universitas Sumatera Utara

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Universitas Sumatera Utara

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB 2 TINJAUAN PUSTAKA

Kriptografi Modern Part -1

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

Halim Agung 1*, Budiman 1. Jl.Lodan Raya No.2, Jakarta 14430

Kriptografi. A. Kriptografi. B. Enkripsi

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

Algoritma Kriptografi Modern (Bagian 2)

Aplikasi Teori Bilangan Bulat dalam Pembangkitan Bilangan Acak Semu

BAB III ANALISIS DAN DESAIN SISTEM

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

Manajemen Keamanan Informasi

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

Modul Praktikum Keamanan Sistem

ANALISA ALGORITMA KRIPTOGRAFI RC4 PADA ENKRIPSI CITRA DIGITAL

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

Optimalisasi Beaufort Cipher Menggunakan Pembangkit Kunci RC4 Dalam Penyandian SMS

BAB I PENDAHULUAN 1.1 Latar Belakang

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

BAB I PENDAHULUAN. 1.1 Latar Belakang

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

ALGORITMA RC4 DALAM PROTEKSI TRANSMISI DAN HASIL QUERY UNTUK ORDBMS POSTGRESQL

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

BAB III PENYANDIAN ONE TIME PAD MENGGUNAKAN SANDI VIGENERE

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Artikel Ilmiah. Diajukan Kepada Fakultas Teknologi Informasi Untuk Memperoleh Gelar Sarjana Komputer

Transkripsi:

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).

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 diimplementasikan 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 Pseudo random 111111100 100110101 Ciphertext stream 011001011 Gambar 2.1. Blok Diagram Algoritma RC4 secara umum

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

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 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

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 K 2 8 2 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] S 2 1 0 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

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] 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] S 2 0 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] S 2 0 1 3

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] S 0 2 1 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

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] S 0 1 2 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] S 3 1 2 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:

Tabel 2.10 Proses Enkripsi Kode Biner E M Y Plaintext 01000101 01001101 01011001 Kunci (k) 00110001 00110011 00110000 P K 01110100 01111110 01101001 Ciphertext T ~ I Untuk mengembalikan plaintextnya, sebagai berikut: Tabel 2.11 Proses Dekripsi Kode Biner T ~ I Ciphertext 01110100 01111110 01101001 Kunci (k) 00110001 00110011 00110000 P K 01000101 01001101 01011001 Plaintext 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

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.

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).

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 tidak 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: 2 X n+1 = X n mod m (2.2) m diatas merupakan hasil perkalian dua buah bilangan prima besar p dan q, serta hasilnya dalam LSB dari X n dimana hal yang sama sebagai parity dari X n. 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

ii. s dan n relatif prima d. Hitung nilai x 0 = s 2 mod n. e. Hasilkan bilangan bit acak dengan cara: 2 i. Hitung x i = x (i-1) mod n. ii. Hasilkan z i = bit- bit yang diambil dari x i. Bit yang diambil bisa merupakan LSB atau hanya satu bit atau sebanyak j bit (j tidak melebihi log 2 (log 2 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.

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.