1 / 17

Sekuriti Digital, Teori dan Praktek

Sekuriti Digital, Teori dan Praktek. Algoritme Enkripsi RSA. Bab 19.1, 19.3, 11.3 - 11.6. 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).

caryn-salas
Télécharger la présentation

Sekuriti Digital, Teori dan Praktek

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sekuriti Digital, Teori dan Praktek Algoritme Enkripsi RSA Bab 19.1, 19.3, 11.3 - 11.6

  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.

  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

  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-1mod (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

  5. Algoritme RSA : (2) Enkripsi dan Dekripsi • [m]e = memod n • [m]d = mdmod n [[m]d]e = (mdmod n)emod n = mdemod n = mk(n)+1mod n = m1modn = m mod n (… so m has to be smaller than n) • Brute force attack : • Coba berbagai d' sampai (memod n)d'mod n = m • Coba faktorkan n menjadi p' dan q'. Kunci privat d' = (p'-1)(q'-1)

  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-1mod 3220 = 1019 • d privat, n dan e publik • Misalnya m (dinyatakan dalam natural number) : 688232687966668003 • Bagi m menjadi blok2 terdiri dari tiga digit • Enkrip masing2 blok dengan dengan e • Misalnya untuk blok pertama : 68879 mod 3337 = 1570 • Hasil enkripsi m : 1570 2756 2091 2276 2423 158

  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

  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.

  9. FieldEvariste 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 

  10. Contoh Field • Teorem : jumlah elemen dari sebuah finite field selalu merupakan perpangkatan dari bilangan prima (pn). • Teorem : Finite field dengan jumlah elemen yang sama semuanya isomorfis. • Contoh field adalah GF(24) … Galois Field: + 0 1 x x+1 0 0 1 x x+1 1 1 0 x+1 x x x x+1 0 1 x+1 x+1 x 1 0 * 1 x x+1 1 1 x x+1 x x x+1 1 x+1 x+1 1 x Dimana x memenuhi x2 = x+1

  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)

  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 (2log 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 1.1 - 1.5 kali panjang n (dalam bit) • Batas bawah teoretis adalah orde k-1 dimana k adalah panjang n dalam bit.

  13. Fermat's Little Theorem • RSA memakai teorema ini. • Teorema Fermat : bila p adalah bilangan prima dan a bukan kelipatan p, maka ap-1 = 1 (mod p) • Generalisasi Euler : bila a dan n relatif prime satu sama lain maka a(n) = 1 (mod p)

  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

  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 = xamod n ke M • M xlog y mod n … hasilnya adalah a.

  16. Chosen Chiphertext Attack thd RSA • B mengirim c = [m]1/a = m1/amod n ke A. Eve berhasil mendapatkan kopi dari c dan ingin mendapatkan m. Caranya : • Eve membuat r (r<n) secara acak • Eve menghitung : • x = r1/amod n • y = xc mod n • t = r-1mod n • Eve minta A menandatangani y dengan a. • A mengirimkan [y]a = yamod n ke Eve • Eve menghitung: • t(yamod n) mod n = r-1yamod n = r-1(xc)amod n = r-1(r1/am1/a)a mod n = m mod n

  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)

More Related