Upload
benjamin-barber
View
56
Download
2
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
Materials prepared by WP
Sekuriti Digital, Teori dan Praktek
Generator Bilangan Prima
Bab 11.3, 11.5
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.
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
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!
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.
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
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
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.
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.
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
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!
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.
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
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.
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
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
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.
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.
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.
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.
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'.
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.