22
Materials prepared by WP Sekuriti Digital, Teori dan Praktek Generator Bilangan Prima Bab 11.3, 11.5

Sekuriti Digital, Teori dan Praktek

Embed Size (px)

DESCRIPTION

Sekuriti Digital, Teori dan Praktek. Generator Bilangan Prima. Bab 11.3, 11.5. Beberapa Fakta Tentang Bilangan Prima. Dibutuhkan untuk membuat parameter sekuriti dalam RSA Untuk setiap pasang kunci privat - publik kita membutuhkan dua bilangan prima - PowerPoint PPT Presentation

Citation preview

Page 1: Sekuriti Digital, Teori dan Praktek

Materials prepared by WP

Sekuriti Digital, Teori dan Praktek

Generator Bilangan Prima

Bab 11.3, 11.5

Page 2: Sekuriti Digital, Teori dan Praktek

2

Materials prepared by WP

Beberapa Fakta Tentang Bilangan Prima

• Dibutuhkan untuk membuat parameter sekuriti dalam RSA– Untuk setiap pasang kunci privat - publik kita membutuhkan dua

bilangan prima

• Kalau setiap pemakai internet butuh satu set kunci RSA yang berbeda, apakah kita tidak akan kehabisan bilangan prima?– Ada luar biasa banyaknya bilangan prima. Kepadatan bilangan prima <

n adalah n/(ln n).

– Jadi … ada 10151 bilangan prima yang panjangnya 512 bit … lebih dari cukup untuk semua mahluk inteligen di alam semesta.

– Perbandingan: di alam semesta ada 1070 atom … bahkan jika setiap atom membutuhkan 1 milyar bilangan prima setiap 1 S semenjak alam semesta diciptakan … ini baru akan menghabiskan 10109 bilangan prima, dan kita masih punya 10151 bilangan prima 512 bit yang masih belum terpakai.

Page 3: Sekuriti Digital, Teori dan Praktek

3

Materials prepared by WP

Prime Hole ...

• Berapa kans-nya dua orang di bumi akan memilih bilangan prima yang sama? (assume 512 bits primes)– Domain pilihannya besranya adalah 10151. Jika pembangkitannya

betul-betul random … maka kansnya mikroskopis.

• Bagaimana jika orang berhasil membuat list dari semua bilangan prima 512 bit?– List tsb mau disimpan dimana? Asumsikan 1 GB hard disk yang

beratnya cuma 1 gr. Maka daftar dr. semua bilangan prima itu membutuhkan hard disk yang beratnya akan melebihi batas Chandrasar … masa itu akan runtuh menjadi Black Hole.

– Kita tidak bisa mengakses Black Hole hard-disk karena tidak ada materi / cahaya / informasi yang bisa keluar dari Black Hole

Page 4: Sekuriti Digital, Teori dan Praktek

4

Materials prepared by WP

Pembangkit Bilangan Prima

• Algoritme :– Faktorisasi : (1) ambil bilangan acak p (2) coba faktorkan p (3) kalau

tak bisa berarti p prima.• Kalau ini bisa dilakukan dengan efesien maka sistem enkripsi RSA tidak

ada gunanya.

– Test Keprimaan : (1) ambil bilangan acak p (2) terapkan satu atau lain test akan keprimaan p (3) kalau lolos berarti p kandidat prima

• Bagaimana membuat test keprimaan yang efesien?• Naif : menguji semua bilangan q < p1/2 apakah q membagi p … sangat

tidak efesien!

Page 5: Sekuriti Digital, Teori dan Praktek

5

Materials prepared by WP

Soloway-Strassen TestRobert Soloway & Volker Strassen 1978

0. Ajukan kandidat bilangan prima p

1. Ambil penguji a, a<p, acak

2. if gcd(a,p) 1 then p bukan prima

else

3. j = a(p-1)/2 mod p

4. if j J(a,p) then p bukan prima

else kans p bukan prima < 50%

ulangi langkah 1..4 sebanyak 50 kali, kalau p lolos semua test maka kans p bukan prima < 2-50.

Page 6: Sekuriti Digital, Teori dan Praktek

6

Materials prepared by WP

Quadratic Residue dan Simbol Legendre (L)

• Sebuah bilangan a disebut Quadratic Residue modulo p bila :– ada sebuah x<p sehingga x2 = a (mod p)

• Bilangan yang bukan quadratic residue disebut non-quadratic residue.• Bila p prima, maka sebanyak (p-1)/2 bilangan a<n merupakan residu kwadrat. • Cara menentukan apakah a merupakan residu kwadrat … menggunakan

fungsi/simbol Legendre (asumsi: p prima):– L(a,p) = 0 jika a bisa dibagi oleh p (gcd(a,p) 1)

– L(a,p) = 1 jika a adalah residu kwadrat modulo p

– L(a,p) = -1 jika a adalah non-residu kwadrat modulo p

• algoritme : L(a,p) = a(p-1)/2 mod pbedasarkan Fermat's Little Theorem :

– z = (a(p-1)/2)2 = ap-1 harus sama dengan 1 … jadi z = -1 atau 1.

– Kalau a residu kwadrat a(p-1)/2 = (x2)(p-1)/2 = xp-1 dan bedasarkan Fermat ini sama dengan 1

• algoritme rekursif lihat di 11.3

Page 7: Sekuriti Digital, Teori dan Praktek

7

Materials prepared by WP

Simbol Jacobi (J)Generalisasi dr. Legendre

• Simbol Jacobi merupakan generalisasi dr. simbol Legendre untuk p yang tidak harus prima.– DEF1 J(a,n) hanya terdefinisi untuk n yang ganjil

– DEF2 Jika n prima J(a,n) = L(a,n)

– DEF3 Jika n komposit … terdiri dari faktor prima p1,p2,…,pk maka J(a,n) = J(a,p1)*J(a,p2)*…*J(a,pk)

• Seperti L(a,p) value dr. J(a,n) {0,1,-1}• Algoritme rekursif lihat di 11.3

Page 8: Sekuriti Digital, Teori dan Praktek

8

Materials prepared by WP

Lehman Test

0. Ajukan kandidat bilangan prima p

1. Ambil penguji a, a<p, acak

2. j = a(p-1)/2 mod p

3. if j {1,-1} then p bukan prima

else kans p bukan prima < 50%

ulangi langkah 1..3 sebanyak 50 kali, kalau p lolos semua test maka kans p bukan prima < 2-50.

Page 9: Sekuriti Digital, Teori dan Praktek

9

Materials prepared by WP

Rabin - Miller TestMichael Rabin & Gary Miller 1976

0. Ambil kandidat prima p

1. Hitung b terbesar sehingga 2b membagi p-1

2. Hitung m dimana p = (2b)*m + 1

3. Pilih penguji a, a<p, acak

4. j = 0 ; z = am mod p

5. if z {1,p-1} then p bukan prima

6. while jb zp-1 do

7. If j>0 z=1 then p bukan prima

9. j++ ; z=z2 mod p

7. If j=b zp-1 then kans p bukan prima < 25%

Ulangi 3..7 sebanyak 25 kali maka kans p bukan prima adalah 2-50.

Page 10: Sekuriti Digital, Teori dan Praktek

10

Materials prepared by WP

Pre-filter untuk Kandidat Prima

0. Buat bilangan p n-bit secara acak.

1. Set MSB dan LSB = 1 … ini menjamin bilangan akan ganjil, dan panjangnya persis n-bit

2. Test apakah p bisa dibagi bilangan prima kecil (<256 misalnya)test divisibility

– vs 3,5,7 mengeliminasi 54% kandidat

– vs bil. Prima < 100 mengeliminasi 76% kandidat

– vs bil. Prima < 256 mengeliminasi 80% kandidiat

– vs bil. Prima < n mengeliminasi 112 / ln n % kandidat

Page 11: Sekuriti Digital, Teori dan Praktek

11

Materials prepared by WP

Strong Primes

• Dalam pembuatan parameter sekuriti n=pq … diinginkan bilangan prima p,q yang kuat dalam arti memenuhi sifat2 tertentu yang membuat n sulit difaktor. Antara lain :

– gcd(p-1,q-1) harus kecil– p-1 dan q-1 masing2 harus punya faktor prima p', q' yang besar– p'-1 dan q'-1 masing2 harus punya faktor prima yang besar– p+1 dan q+1 masing2 harus punya faktor prima yang besar– bisa juga : (p-1)/2 dan (q-1)/2 harus prima

• Keharusan dari penggunaan konsisten dari strong primes merupakan bahan perdebatan.

– Membuat bil. Prima yang dibangkitkan sifatnya kurang acak– Karakterisasi strong primes dibuat berdasarkan tehnik (attack) faktorisasi

tertentu … bisa menimbulkan kerentanan thd jenis attack lain!

Page 12: Sekuriti Digital, Teori dan Praktek

Materials prepared by WP

Sekuriti Digital, Teori dan Praktek

Generator Bilangan Acak

Bab 16.1 - 16.5, 16.12, 9.4

"Cryptography is a mixture of mathematics and muddle, and without the muddle the mathematics can be used against you."Ian Cassels.

Page 13: Sekuriti Digital, Teori dan Praktek

13

Materials prepared by WP

Bilangan Acak

• Digunakan dalam RSA untuk secara acak memilih komponen prima p dan q dr. parameter sekuriti n.

• Digunakan oleh generator bilangan prima itu sendiri• Digunakan sebagai challenge dalam protokol/sistem enkripsi

seperti:– Secret splitting

– Secret sharing

– Blind signature

– Sistem enkripsi hibrid

– challenge (toko) dalam Uang digital

– stream cipher

Page 14: Sekuriti Digital, Teori dan Praktek

14

Materials prepared by WP

Bilangan Acak dan Enkripsi

• Membangkitkan bilangan yang murni random sangat sulit … selama kita menggunakan mesin yang deterministis.

– Deret pseudo random adalah deret bilangan yang walaupun dibuat dengan cara deterministik memenuhi (sebagian) sifat-sifat statistis dari deret random ideal.

• Salah satu cara membuat bilangan acak : Xn = [Xn-1]k

– menggunakan satu atau lain sistem enkripsi, dan kunci k. X0 disebut seed.

• Periode dr. deret bilangan pseudo random adalah jarak terpanjang dalam deret sebelum deret tersebut mengulang polanya.

– Dalam deret acak ideal tidak akan terjadi pengulangan.

• Enkripsi sebaiknya menghasilkan deret yang pseudo acak … kalau tidak nanti polanya bisa ditebak.

– Karena itu metode enkripsi bisa dipakai sebagai generator bilangan acak.

Page 15: Sekuriti Digital, Teori dan Praktek

15

Materials prepared by WP

Linear Congruential Generator (LCG)

• LCG adalah generator deret pseudo random yang membuat deret tsb dengan cara : Xn = (aXn-1 + b) mod m

– a,b, m, dan X0 adalah parameter

• a disebut multiplier• b disebut increment• m disebut modulus

• X0 disebut seed

• Quadratic generator :Xn = (aXn-1

2 + bXn-1 + c) mod m

• Polinomial generaratorXn = (an-1Xn-1

n-1 + an-2Xn-2

n-2 + … + a1X1 + a0) mod m

• Periode terbaik dari deret adalam m-1. Generator yang menghasilkan deret dengan periode terbaik disebut maximal period generator.

– Mencari paremeter yang menghasilkan periode terbaik tidak trivial. Contoh parameter optimal seperti ini lihat di tabel 16.1

Page 16: Sekuriti Digital, Teori dan Praktek

16

Materials prepared by WP

Keamanan LCG

• Sebuah generator random dikatakan tidak aman bila deret yang dihasilkan bisa ditebak.

• LCG … juga quadratic generator … bahkan polynomial generator … walaupun memenuhi berbagai sifat statistis penting dari deret bilangan acak, tetapi telah dibuktikan bisa ditebak deretnya … jadi tidak aman.– Tidak digunakan untuk sistem kriptografis

Page 17: Sekuriti Digital, Teori dan Praktek

17

Materials prepared by WP

Feedback Shift Register (FSR)

bn-1 bn-2 bn-3 b1. . . b0output

Feedback Function

FSR membangkitkan deret terdiri dr. 0/1 (deret bit).

Cara kerja :Setiap langkah (clocking) register di-shift satu bit ke kanan (kiri). Output (1 bit) diambil dari, misalnya, bit ke 0. Sebuah fungsi non-linier yang disebut Feedback function akan membangkitkan bit ke n-1 yang baru di setiap shift. Masukan fungsi adalah bit ke 0 sampai bit ke n-1 yang lama.

Linear Feedback Shift Register (LFSR)Adalah FSR dengan fungsi XOR sebagai feedback function. Pilihan bit mana saja dr. register yang ikut di-XOR disebut tap sequence. Tap sequence sangat menentukan perioda dr. LFSR.

Page 18: Sekuriti Digital, Teori dan Praktek

18

Materials prepared by WP

Contoh LFSR

b3 b2 b1 b0output Deret yang dihasilkan :

1 1 1 10 1 1 11 0 1 10 1 0 11 0 1 01 1 0 10 1 1 00 0 1 11 0 0 10 1 0 00 0 1 00 0 0 11 0 0 01 1 0 01 1 1 0

output

Tap sequence dapat dianggap sebagai encoding dr. sebuah polinom p … +1. Contohnya tap sequence diatas merupakan ecoding dari polinom x4 + x + 1

Untuk mendapatkan LFSR dengan periode maksimal, harus dicari tap sequence yang merupakan encoding dari polinom p+1 (spt. contoh diatas) tetapi polinomnya primitif berorde n (ukuran register) … contoh tap sequence yang demikian bisa dilihat di Tabel 16.2.

Page 19: Sekuriti Digital, Teori dan Praktek

19

Materials prepared by WP

Sekuriti dari LFSR

• Menghasilkan deret bit pseudo acak yang 'baik' … tetapi tidak cocok untuk sistem kriptografis.– Internal state ke i bisa ditentukan dengan melihat ke ouput ke i

sampai ke i+n (n = ukuran register LFSR)

– Fungsi feedback bisa direkonstruksi dengan menganalisa output ke i samai ke i+2n (Berlekamp - Massey attack).

– Membangkitkan deret bilangan acak dari deret bit acak keluaran LFSR menghasilkan deret yang memiliki korelasi tinggi.

• Penggunaan polinom 'padat' (banyak suku) sebagai tap sequence menghasilkan sistem yang lebih aman.– Penggunaan polinom jarang lebih efesien.

• LFSR digunakan sebagai basic building blocks dari generator bilangan random.

Page 20: Sekuriti Digital, Teori dan Praktek

20

Materials prepared by WP

Stream Chipher

KeystreamGenerator

KeystreamGenerator

Plain text Plain textCipher text

Key stream Key stream

Pi

Ki

Pi Ki = Ci

Ki

Ci Ki = Pi Ki Ki = Pi

Stream chipper adalah tehnik melakukan enkripsi dengan mengenkrip plain text bit per bit. Ini dilakukan dengan cara mengkombasikan plain text dengan kunci secara bit per bit. Jadi panjang kunci harus sama dengan panjang text.

Generator keystream harus menghasilkan deret bit acak … karena kalau tidak bisa ditebak orang. Implementasi generator ini banyak yang menggunakan kombinasi dari LFSR.

Page 21: Sekuriti Digital, Teori dan Praktek

21

Materials prepared by WP

Generator Deret Bit AcakMenggunakan LFSR

LFSR0

LFSR1

LFSRn

. . .

Combiningfunction

Gunakan n LFSR, masing-masing dengan panjang, tap sequence, dan clocking yang berbeda. Keluaran akhir dihasilkan oleh 'combining function' … masukan fungsi ini diambil dr. bit-bit tertentu dr. LFSR (tidak harus bit ke 0). Fungsi ini harus 'non-linier'.

Page 22: Sekuriti Digital, Teori dan Praktek

22

Materials prepared by WP

Geffe Generator dan A5

LFSR0

LFSR1

LFSR3

2-1Multiplexer

Geffe :

Geffer generator menggunakan 3 LFSR :• panjang LFSR bervariasi.• Clocking seragam• lemah

LFSR0

LFSR1

LFSR3

A5 :

A5 menggunakan 3 LFSR dengan panjang masing-masing 19,22,23 bit.• Digunakan oleh GSM untuk mengenkrip pembicaraan lewat telpon selular. .• Menggunakan variable clocking : masing-masing LFSR di-clock berdasarkan bit tengahnya, di XOR dengan inverse treshold function dr. ketiga bit tengah dr. semua LFSR.• lemah … tapi idenya sudah baik. Memperbesar LFSR dan menggunakan polinom padat akan meningkatkan kekuatan A5.