Analisis RSA dengan Penambahan Chinese Remainder Theorem untuk Mempercepat Dekripsi Oleh: Nilam Amalia Pusparani G64102039 PENDAHULUAN Latar Belakang - - Keamanan merupakan aspek yang sangat penting dalam pertukaran informasi. Teknik mengamankan informasi erat kaitannya dengan kriptografi. PENDAHULUAN Penelitian: - RSA - Algoritma Faktorisasi Integer - n besar, maka sumberdaya besar - RSA-CRT PENDAHULUAN Tujuan Mengimplementasikan skema enkripsi dan dekripsi RSA dan RSA-CRT. Menganalisis algoritma Menganalisis waktu yang dibutuhkan untuk enkripsi dan dekripsi Menganalisis tingkat keamanan PENDAHULUAN Ruang Lingkup - RSA CRT RSA-CRT Modulus n 1024 bit Data: File teks dengan ukuran yang bervariasi dari 1764 byte sampai dengan 21168 byte. PENDAHULUAN Manfaat Penelitian Menghasilkan RSA dengan waktu dekripsi yang lebih cepat TINJAUAN PUSTAKA Kriptografi Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). TINJAUAN PUSTAKA Enkripsi Kunci Publik - 1 kunci umum, 1 kunci pribadi - tidak layak menentukan kunci dekripsi dari kunci enkripsi TINJAUAN PUSTAKA • RSA (Rivest-Shamir-Adleman) Algoritma ini menggunakan kunci publik untuk enkripsi dan kunci pribadi untuk dekripsi. Keamanan metode ini terletak pada kesulitan untuk memfaktorkan modulus n yang sangat besar, tetapi kelebihan ini mengakibatkan lambatnya waktu untuk menyelesaikan proses. TINJAUAN PUSTAKA Tiga Tahap Algoritma RSA: - Pembangkitan kunci - Enkripsi - Dekripsi TINJAUAN PUSTAKA Pembangkitan kuncinya adalah sebagai berikut. Pilih dua bilangan prima, p dan q secara acak dan terpisah untuk setiap p dan q. Hitung n = p x q. Hitung (n) = (p-1) (q-1). Pilih bilangan bulat antara satu dan (1<e<) yang juga merupakan coprime dari . Coprime yang dimaksud adalah bilangan terbesar yang dapat membagi e dan untuk menghasilkan nilai 1 (pembagi ini dinyatakan dengan gcd (greatest common divisor). Hitung d, dimana d e^-1 mod (n). TINJAUAN PUSTAKA Enkripsi: Plaintext : M < n Ciphertext : C = M^e (mod n) Dekripsi: Ciphertext : C Plaintext : M = C^d (mod n) TINJAUAN PUSTAKA Algoritma Euclid - berfungsi menentukan gcd dari dua bilangan bulat - gcd bernilai positif - gcd (a,0) = |a| dan gcd (0,0) tak terdefinisikan - c = gcd (a,b) gcd (a/c, b/c) = 1 TINJAUAN PUSTAKA • Extended Euclid Algoritma Euclid dapat diperluas sehingga tidak hanya menghasilkan pembagi bersama terbesar dari dua bilangan bulat a dan b, tetapi juga menghasilkan bilangan bulat x dan y yang memenuhi ax + by = d TINJAUAN PUSTAKA Relatif Prima Dua buah bilangan a dan b disebut relatif prima apabila gcd (a, b) = 1. Sebagai contoh bilangan 7 dan 11 adalah relatif prima, karena pembagi 7 dan 1 adalah 7, sedangkan pembagi 11 adalah 1 dan 11, sehingga gcd (7, 11) = 1 (Cornel et al. 1990) TINJAUAN PUSTAKA RSA-CRT (Rivest-Shamir-AdlemanChinese Remainder Theorem) 3 Tahap: - Pembangkitan kunci - Enkripsi - Dekripsi TINJAUAN PUSTAKA Pembangkitan Kunci: 1. Pilih bilangan prima p dan q secara acak, sehingga gcd (p-1, q-1) = 2. 2. Hitung n = p x q. 3. Pilih 2 integer dp dan dq secara acak, sehingga gcd (dp, p-1) = 1, gcd (dq, q-1) = 1dan dp == dq mod 2. 4. Cari suatu nilai d sehingga d == dp mod p-1 dan d == dq mod q-1. 5. Hitung e = d^-1 (mod (n)). TINJAUAN PUSTAKA Enkripsi Plaintext : M < n Ciphertext : C = M^e (mod n) Dekripsi Mp = C^dp mod p dan Mq = C^dq mod q v = (Mq – Mp) p_inv_q mod q M = Mp + pv TINJAUAN PUSTAKA Analisis Algoritma Analisis algoritma dilakukan untuk menduga besarnya sumber daya waktu yang dibutuhkan untuk sembarang ukuran input n (Cormen et al. 1990). TINJAUAN PUSTAKA Analisis Uji Running Time - Waktu total yang dibutuhkan untuk melakukan seluruh tahapan proses yang dieksekusi. - RSA dan RSA-CRT dihitung berdasarkan keadaan running time untuk waktu rata-rata. METODE PENELITIAN Analisis Algoritma: kompleksitas algoritma pembangkitan kunci, kompleksitas algoritma enkripsi, dan kompleksitas algoritma dekripsi. METODE PENELITIAN Analisis Keamanan studi literatur METODE PENELITIAN Analisis Hasil Implementasi - Waktu enkripsi RSA dan RSA-CRT - Waktu dekripsi RSA dan RSA-CRT METODE PENELITIAN Spesifikasi Uji Implementasi - 10 file teks - 1764 byte sampai dengan 21168 byte - 10x pengulangan HASIL DAN PEMBAHASAN Analisis Algoritma - Analisis Subrutin Primality Test Pada subrutin ini RSA menggunakan algoritma Miller-Rabin. Algoritma Miller-Rabin adalah sebagai berikut. x ;= a^m mod n; If (x ≡ 1 mod n) return ”n is prime” and halt; For (j = 0, 1, ..., k-1) If (x ≡ -1 mod n) return ”n is prime” and halt; Else x := x2 mod n; Return ”n is composite” and halt; Subrutin Primality Test menggunakan algoritma modular exponentiation, sehingga kompleksitasnya adalah O((lg n)^3). HASIL DAN PEMBAHASAN Analisis Subrutin Euclid If b = 0 Then Euclid a Else Euclid (b, a mod b) Perkalian: O((lg n)^2) HASIL DAN PEMBAHASAN Analisis Subrutin Extended Euclid If b = 0 Then return (a, 1, 0) (d1, x1, y1) Extended Euclid (b, a, mod b) (d, x, y) (d1, y1, x1 - a/b y1) return (d, x, y) Perkalian: O((lg n)^2 HASIL DAN PEMBAHASAN Analisis Subrutin Modular Exponentiation Algoritma Modular Exponentiation digunakan untuk melakukan operasi modular, a^b mod n. Algoritmanya adalah sebagai berikut. d1 Andaikan (b1, b2, ... bk-1, bk) adalah representasi biner dari b Untuk i 1 sampai k lakukan d (d*d) mod n Jika bi = 1 maka d (d*a) mod n Modular Exponentiation d Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n)^3) (Menezes et al. 1996). HASIL DAN PEMBAHASAN Analisis Algoritma Pembangkitan Kunci pada RSA Pilih dua bilangan prima, p dan q secara acak dan terpisah untuk setiap p dan q. O((lg n)^3) Hitung n = p x q. O((lg n)^2) Hitung (n) = (p-1) (q-1). O((lg n)^2) Pilih bilangan bulat antara satu dan (1<e<) yang juga merupakan coprime dari . Coprime yang dimaksud adalah bilangan terbesar yang dapat membagi e dan untuk menghasilkan nilai 1 (pembagi ini dinyatakan dengan gcd (greatest common divisor). O((lg n)^2 Hitung d, dimana d e-1 mod (n). O((lg n)^2) Jadi: O((lg n)^3 HASIL DAN PEMBAHASAN Analisis Algoritma Enkripsi pada RSA C = M^e (mod n) Modular Exponentiation: O((lg n)^3) HASIL DAN PEMBAHASAN Analisis Algoritma Dekripsi pada RSA M = C^d (mod n) Modular Exponentiation: O((lg n)^3) HASIL DAN PEMBAHASAN Analisis Algoritma Pembangkitan Kunci pada RSA-CRT Pilih bilangan prima p dan q secara acak, sehingga gcd (p-1, q-1) = 2. O((lg n)^3) Hitung n = p x q. O((lg n)^2) Pilih 2 integer dp dan dq secara acak, sehingga gcd (dp, p-1) = 1, gcd (dq, q-1) = 1dan dp == dq mod 2. dp € Z* p-1 dan dq € Z* q-1. Didapat O((lg (p-1)^2) + (lg (q-1)^2)) = O((lg (n/2))^2) Cari suatu nilai d sehingga d == dp mod p-1 dan d == dq mod q-1. O((lg (p-1)) + (lg (q-1))) = O((lg (n/2)) Hitung e = d-1 (mod (n)). O((lg n)^2) Jadi: O((lg n)^3) HASIL DAN PEMBAHASAN Analisis Algoritma Enkripsi pada RSACRT C = M^e (mod n) Modular Exponentiation: O((lg n)^3) HASIL DAN PEMBAHASAN Analisis Algoritma Dekripsi pada RSA-CRT - Mp = C^dp mod p dan Mq = C^dq mod q O(((lg p)^3) + ((lg q)^3)) = O((lg (n/2))^3) - v = (Mq – Mp) p_inv_q mod q O((lg (n/2))^2) - M = Mp + pv O((lg p) ((lg (n/2))^2 ) = O((lg (n/2))^3) Jadi: O((lg (n/2))^3) HASIL DAN PEMBAHASAN Analisis Keamanan Rivest, Shamir, dan Adleman menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = p x q akan lebih dari 200 digit. Usaha untuk memfaktorkan bilangan bulat 200 digit menjadi faktornya sangat besar. HASIL DAN PEMBAHASAN Desimal Bit Waktu MIPS Algoritma 100 332 7 QS 110 365 75 QS 120 398 830 QS 129 428 5000 QS 130 431 1000 GNFS 140 465 2000 GNFS 155 512 8000 GNFS HASIL DAN PEMBAHASAN Analisis Hasil Implementasi Enkripsi RSA Enkripsi RSA-CRT NO Ukuran File (byte) Waktu Enkripsi (ms) 1 1764 21.8 2 3528 36 3 5292 54.6 4 8820 101.6 5 10584 112.6 6 12348 125 7 14112 134.5 8 15876 135.8 9 17640 170.3 10 21168 181.2 Waktu Rata-rata (ms) 107.34 NO Ukuran File (byte) Waktu Enkripsi (ms) 1 1764 20.4 2 3528 38.9 3 5292 73.6 4 8820 104.6 5 10584 121.8 6 12348 134.1 7 14112 148.5 8 15876 149.9 9 17640 151.6 10 21168 168.6 Waktu Rata-rata (ms) 111.2 HASIL DAN PEMBAHASAN Dekripsi RSA NO Ukuran File (byte) Waktu Dekripsi (ms) 1 1764 610.8 2 3528 1401.7 3 5292 2348.3 4 8820 3814.4 5 10584 3995.3 6 12348 4411 7 14112 5162.5 8 15876 5689.2 9 17640 6511.1 10 21168 8173.6 Waktu Rata-rata (ms) 4211.79 HASIL DAN PEMBAHASAN Dekripsi RSA-CRT NO Ukuran File (byte) Waktu Enkripsi (ms) 1 1764 317 2 3528 626.5 3 5292 845.5 4 8820 1243.8 5 10584 1357.7 6 12348 1374.9 7 14112 1503 8 15876 1726.4 9 17640 2353.2 10 21168 2376.4 Waktu Rata-rata (ms) 1372.44 HASIL DAN PEMBAHASAN 200 150 100 RS A 50 R S ACRT 8 16 0 21 64 6 Ukura n F ile (byte ) 17 87 2 15 11 8 14 34 4 12 58 10 20 88 92 52 28 35 64 0 17 Waktu E nkrips i (m s ) Wa ktu E nkripsi R S A ve rsus R S A-C R T HASIL DAN PEMBAHASAN 10000 8000 6000 4000 RS A 2000 R S ACRT 8 16 0 21 64 6 Ukura n F ile (byte ) 17 87 2 15 11 8 14 34 4 12 58 20 10 88 92 52 28 35 64 0 17 Waktu Dekrips i (m s ) Wa ktu De kripsi R S A ve rsus R S A-C R T KESIMPULAN DAN SARAN Kesimpulan - Keamanan RSA bertumpu pada kompleksitas problem faktorisasi bilangan bulat. - Pembangkitan kunci dan Enkripsi RSA dan RSA-CRT: O((lg n)^3) - Dekripsi RSA: O((lg n)^3) KESIMPULAN DAN SARAN - Dekripsi RSA-CRT: O((lg (n/2))^3) - 1024 bit mampu memberikan keamanan yang lebih lama - Dekripsi RSA-CRT lebih cepat daripada RSA KESIMPULAN DAN SARAN Saran - Ruang lingkup penelitian ini dibatasi pada algoritma RSA untuk panjang modulus kunci 1024 bit. Penelitian selanjutnya dapat dikembangkan dengan menggunakan kunci yang lain yaitu kunci 2048 bit. - Eksponensial enkripsi (e) yang digunakan pada penelitian ini adalah 65537. Untuk penelitian selanjutnya dapat menggunakan e random. - Penelitian ini menggunakan algoritma RSA-CRT untuk mempercepat dekripsi. Penelitian selanjutnya dapat menggunakan varian RSA yang lain seperti Rebalanced RSACRT. SEKIAN