sekuriti digital, teori dan praktek

17
Materials prepared by WP Sekuriti Digital, Teori dan Praktek Algoritme Enkripsi RSA Bab 19.1, 19.3, 11.3 - 11.6

Upload: caryn-salas

Post on 30-Dec-2015

60 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Sekuriti Digital, Teori dan Praktek

Materials prepared by WP

Sekuriti Digital, Teori dan Praktek

Algoritme Enkripsi RSA

Bab 19.1, 19.3, 11.3 - 11.6

Page 2: Sekuriti Digital, Teori dan Praktek

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.

Page 3: Sekuriti Digital, Teori dan Praktek

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

Page 4: Sekuriti Digital, Teori dan Praktek

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

Page 5: Sekuriti Digital, Teori dan Praktek

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)

Page 6: Sekuriti Digital, Teori dan Praktek

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

Page 7: Sekuriti Digital, Teori dan Praktek

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

Page 8: Sekuriti Digital, Teori dan Praktek

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.

Page 9: Sekuriti Digital, Teori dan Praktek

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

Page 10: Sekuriti Digital, Teori dan Praktek

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

Page 11: Sekuriti Digital, Teori dan Praktek

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)

Page 12: Sekuriti Digital, Teori dan Praktek

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.

Page 13: Sekuriti Digital, Teori dan Praktek

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)

Page 14: Sekuriti Digital, Teori dan Praktek

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

Page 15: Sekuriti Digital, Teori dan Praktek

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.

Page 16: Sekuriti Digital, Teori dan Praktek

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

Page 17: Sekuriti Digital, Teori dan Praktek

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)