Materials prepared by WP Sekuriti Digital, Teori dan Praktek Algoritme Enkripsi RSA Bab 19.1, 19.3,
Materials prepared by WP 2 Sistem Enkripsi Asimetris Nama lain : sistem enkripsi menggunakan kunci publik Dicetuskan pertama kali secara independen oleh Whitfield Diffie & Martin Hellman (76) dan Ralph Merkle (78). Banyak algoritme yang diusulkan tapi hanya sedikit yang 'masih kedap air' dan bisa digunakan untuk enkripsi maupun tanda tangan digital. Beberapa algoritme yang bertahan : RSA, El Gamal, dan Rabin. Sangat lambat dibandingkan sistem enkripsi simetris. Rentan terhadap chosen chiphertext attack.
Materials prepared by WP 3 Review tentang Notasi Sistem enkripsi asimetris mengenal dua macam kunci : kunci privat dan kunci publik. Kunci privat adalah privat dan harus dijaga kerahasiaannya. Kunci publik boleh disebarkan ke publik. Asumsikan bahwa d dan e adalah pasangan kunci privat dan publik. Sifat Inversa : [[m] d ] e = [[m] e ] d = m Sifat Keunikan : [[m] d ] f = m f=e [[m] c ] e =m c=d [[m] e ] c = m c=d [[m] f ] d =m f=e
Materials prepared by WP 4 Ron Rivest, Adi Shamir, Leonard Adleman (1978) Algoritme RSA : (1) Key Generation 1. Ambil sembarang bilangan prima p dan q –ukuran paling tidak 200 digit –panjang p dan q (dalam digit) sama 2. Hitung n = pq (parameter sekuriti) 3. Hitung bilangan Euler dari n – (y) = jumlah bilangan x<y yang relatif prima terhadap y – (n) = (p-1)(q-1) 4. Pilih e (kunci publik) e< (y) sehingga e relatif prima thd (y) 5. Hitung d (kunci privat), d = e -1 mod (n). –Gunakan algoritme extended Euclidean untuk menghitung inversa mod k. 6. Simpan d sebagai kunci privat 7. Publikasikan n sebagai parameter sekuriti 8. Publikasikan e sebagai kunci publik
Materials prepared by WP 5 Algoritme RSA : (2) Enkripsi dan Dekripsi [m] e = m e mod n [m] d = m d mod n [[m] d ] e = (m d mod n) e mod n = m de mod n = m k (n)+1 mod n = m 1 mod n = m mod n (… so m has to be smaller than n) Brute force attack : –Coba berbagai d' sampai (m e mod n) d' mod n = m –Coba faktorkan n menjadi p' dan q'. Kunci privat d' = (p'-1)(q'-1)
Materials prepared by WP 6 Contoh Ambil p = 47 (2 digit) dan q = 71 Jadi n = pq = 3337 (empat digit) (n) = (p-1)(q-1) = 3220 Ambil e = 79. Maka d = e -1 mod 3220 = 1019 –d privat, n dan e publik Misalnya m (dinyatakan dalam natural number) : –Bagi m menjadi blok 2 terdiri dari tiga digit –Enkrip masing 2 blok dengan dengan e Misalnya untuk blok pertama : mod 3337 = 1570 Hasil enkripsi m :
Materials prepared by WP 7 Meninjau Kembali Berbagai Ingridien dari RSA Aritmatik sistem modulo Bilangan Euler Menghitung invers dalam sistem modulo Pemangkatan dalam sistem modulo Fermat's Little Theorem Faktorisasi bilangan Menghitung logaritma dalam sistem modulo Generator bilangan prima / menguji keprimaan topik minggu depan
Materials prepared by WP 8 Aritmatik Modulo n Aritmatik modulo n banyak dipakai dalam kriptografi: –x mod n menghasilkan value antara 0 … (n-1) jadi sedikit beda dengan % di C yang bisa menghasilkan bilangan negatif –Finite dan siklis (tidak ada komplikasi dengan overflow) –Operasi * dan + memiliki unit (1 dan 0) –Operasi * dan + bersifat komutatif, asosiatif, dan distributif (x + y) mod n = (y+x) mod n etc... –Melakukan mod dua kali sama efeknya dengan mod satu kali contoh : (((x + y) mod n) * z) mod n = ((x+y)*z) mod n –(x + y) mod n dan (x*y) mod n bisa dengan mudah diimplementasi dengan + dan * dalam representasi unsigned integer.
Materials prepared by WP 9 Field Evariste Galois … abad 18 Aritmatik Modulo n banyak berhubungan dengan teori dari struktur aljabar yang dikenal sebagai field. Sebuah field G adalah tupel (A, , ,nul) yang memenuhi sifat : –A adalah sebuah set (disebut carrier dari G) –Operasi : tertutup, komutatif, dan asosiatif di A {nul}, memiliki nul sebagai unit setiap x A {nul} memiliki invers thd (ada sebuah y A {nul} sehingga x y = nul) –Operasi : tertutup, komutatif dan asosiatif didalam A memiliki unit e A setiap x A memiliki invers relatif thd . (ada sebuah y A sehingga x y = e) – distributif thd
Materials prepared by WP 10 Contoh Field Teorem : jumlah elemen dari sebuah finite field selalu merupakan perpangkatan dari bilangan prima (p n ). Teorem : Finite field dengan jumlah elemen yang sama semuanya isomorfis. Contoh field adalah GF(2 4 ) … Galois Field: x x x x x+1 x x x x x+1 x+1 x 1 0 * 1 x x x x+1 x x x+1 1 x+1 x+1 1 x Dimana x memenuhi x 2 = x+1
Materials prepared by WP 11 Bilangan Euler Bilangan Euler (totient) (n) dari n adalah jumlah bilangan x<n yang relatif-prime thd n. –dua bilangan x dan y dikatakan relatif prime jika GCD(x,y)=1 Bila p adalah bilangan prima maka (p) = p-1 Bila n adalah produk dari dua bilangan prime, ie n=pq, maka (n) = (p-1)(q-1)
Materials prepared by WP 12 Invers dan Pemangkatan mod n Invers x (ditulis x -1 ) dalam sistem mod n adalah sebuah bilangan sehingga xx -1 = 1 (mod n) Menghitung invers x dalam sistem mod n tidak trivial. –Hanya apabila x relative prime thd n maka x punya invers –Extended Euclid Algorithm (11.3) dapat menghitung invers mod n dalam waktu berorde panjang n dalam bit ( 2 log n) Untuk pemangkatan, gunakan tehnik Chaining (11.3) untuk melakukan pemangkatan secara efesien. –Melakukan pemangkatan yang efesien juga tidak trivial –Kebanyakan algoritme rata-rata waktu komputasinya berorde kali panjang n (dalam bit) –Batas bawah teoretis adalah orde k-1 dimana k adalah panjang n dalam bit.
Materials prepared by WP 13 Fermat's Little Theorem RSA memakai teorema ini. Teorema Fermat : bila p adalah bilangan prima dan a bukan kelipatan p, maka a p-1 = 1 (mod p) Generalisasi Euler : bila a dan n relatif prime satu sama lain maka a (n) = 1 (mod p)
Materials prepared by WP 14 Faktorisasi Memfaktorkan sebuah bilangan n artinya "mencari semua faktor prima dari n". Kunci rahasia RSA bisa dihitung dari kunci publik kalau orang berhasil memfaktorkan parameter sekuriti n. Caranya : –faktorkan n menjadi p dan q, lalu hitung (n)=(p-1)(q-1). Lalu hitung invers kunci publik k dalam mod (n) (gunakan algoritme extended Euclid). Algoritme faktorisasi n menjadi dua bilangan prima: –naïve : coba satu persatu semua bilangan akar n –Algoritme tercepat: Number Field Sieve e (1.9 + O(1))(ln(n))^(1/3)(ln(ln(n)))^(2/3) 1972 : 41 digit dalam beberapa jam di Cray 1993 : 120 digit dalam beberapa bulan
Materials prepared by WP 15 Menghitung Logaritma mod n Kunci rahasia RSA juga bisa bocor kalau orang bisa menghitung logaritma mod n. Caranya : –M minta A menandatangani x dengan kunci rahasianya, yaitu a –A mengirim y = [x] a = x a mod n ke M –M x log y mod n … hasilnya adalah a.
Materials prepared by WP 16 Chosen Chiphertext Attack thd RSA B mengirim c = [m] 1/a = m 1/a mod n ke A. Eve berhasil mendapatkan kopi dari c dan ingin mendapatkan m. Caranya : Eve membuat r (r<n) secara acak Eve menghitung : –x = r 1/a mod n –y = xc mod n –t = r -1 mod n Eve minta A menandatangani y dengan a. A mengirimkan [y] a = y a mod n ke Eve Eve menghitung: –t(y a mod n) mod n = r -1 y a mod n = r -1 (xc) a mod n = r -1 (r 1/a m 1/a ) a mod n = m mod n
Materials prepared by WP 17 Attack yang Lain Common Modulus Attack bisa dengan efektif merecover pesan m dalam implementasi dimana semua orang memperoleh parameter sekuriti n yang sama Low Decryption Exponent Attack Algoritmen Wiener Bisa mendapatkan kunci privat bila ukurannya (dalam bit) kurang dari 1/4 ukuran n Always sign first! Then encrypt! (lihat 19.3)