Upload
caryn-salas
View
60
Download
0
Embed Size (px)
DESCRIPTION
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). - PowerPoint PPT Presentation
Citation preview
Materials prepared by WP
Sekuriti Digital, Teori dan Praktek
Algoritme Enkripsi RSA
Bab 19.1, 19.3, 11.3 - 11.6
2
Materials prepared by WP
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
Materials prepared by WP
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
Materials prepared by WP
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
5
Materials prepared by WP
Algoritme RSA : (2) Enkripsi dan Dekripsi
• [m]e = me mod n
• [m]d = md mod n
[[m]d]e = (md mod n)e mod n = mde mod n
= mk(n)+1 mod n
= m1 mod n = m mod n (… so m has to be smaller than n)
• Brute force attack :– Coba berbagai d' sampai (me mod n)d' mod n = m– Coba faktorkan n menjadi p' dan q'. Kunci privat d' = (p'-1)(q'-1)
6
Materials prepared by WP
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) : 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
Materials prepared by WP
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
Materials prepared by WP
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
Materials prepared by WP
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 eA
• setiap x A memiliki invers relatif thd . (ada sebuah y A sehingga x y = e)
distributif thd
10
Materials prepared by WP
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 1x+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
Materials prepared by WP
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
Materials prepared by WP
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
Materials prepared by WP
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
Materials prepared by WP
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
Materials prepared by WP
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 = xa mod n ke M
– M xlog y mod n … hasilnya adalah a.
16
Materials prepared by WP
Chosen Chiphertext Attack thd RSA
• B mengirim c = [m]1/a = m1/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 = r1/a mod n
– y = xc mod n
– t = r-1 mod n
• Eve minta A menandatangani y dengan a.• A mengirimkan [y]a = ya mod n ke Eve • Eve menghitung:
– t(ya mod n) mod n = r-1ya mod n = r-1(xc)a mod n = r-1(r1/am1/a)a mod n = m mod n
17
Materials prepared by WP
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)