SlideShare a Scribd company logo
1 of 15
Pembangkit Bilangan Acak Semu 
(Bagian 1) 
Bahan Kuliah IF5054 Kriptografi 
Rinaldi Munir/IF5054 Kripto1grafi
• Bilangan acak: bilangan yang tidak dapat 
diprediksi 
• Bilangan acak (random) banyak digunakan 
di dalam kriptografi 
• Misalnya untuk pembangkitan parameter 
kunci pada algoritma kunci-publik, 
pembangkitan initialization vector (IV) pada 
algoritma kunci-simetri, dan sebagainya 
Rinaldi Munir/IF5054 Kripto2grafi
• Tidak ada komputasi yang benar-benar 
menghasilkan deret bilangan acak secara 
sempurna. 
• Bilangan acak yang dihasilkan dengan rumus-rumus 
matematika adalah bilangan acak semu 
(pseudo), karena pembangkitan bilangannya dapat 
diulang kembali. 
• Pembangkit deret bilangan acak semacam itu 
disebut pseudo-random number generator 
(PRNG) 
Rinaldi Munir/IF5054 Kripto3grafi
Linear Congruential Generator (LCG) 
• Pembangkit bilangan acak kongruen-lanjar (linear 
congruential generator atau LCG ) adalah PRNG yang 
berbentuk: 
Xn = (aXn – 1 + b) mod m 
Xn = bilangan acak ke-n dari deretnya 
Xn – 1 = bilangan acak sebelumnya 
a = faktor pengali 
b = increment 
m = modulus 
Kunci pembangkit adalah X0 yang disebut umpan (seed). 
Rinaldi Munir/IF5054 Kripto4grafi
Contoh: Xn = (7Xn – 1 + 11) mod 17, dan X0 = 0 
n Xn 
0 0 
1 11 
2 3 
3 15 
4 14 
5 7 
6 9 
7 6 
8 2 
9 8 
10 16 
11 4 
12 5 
13 12 
14 10 
15 13 
16 0 
17 11 
18 3 
19 15 
20 14 
21 7 
22 9 
23 6 
24 2 
Rinaldi Munir/IF5054 Kripto5grafi
• LCG mempunyai periode tidak lebih besar dari m, 
dan pada kebanyakan kasus periodenya kurang 
dari itu. 
• LCG mempunyai periode penuh (m – 1) jika 
memenuhi syarat berikut: 
1. b relatif prima terhadap m. 
2. a – 1 dapat dibagi dengan semua faktor prima dari m 
3. a – 1 adalah kelipatan 4 jika m adalah kelipatan 4 
4. m > maks(a, b, x0) 
5. a > 0, b > 0 
Rinaldi Munir/IF5054 Kripto6grafi
• Keunggulan LCG terletak pada kecepatannya dan 
hanya membutuhkan sedikit operasi bit. 
• Sayangnya, LCG tidak dapat digunakan untuk 
kriptografi karena bilangan acaknya dapat 
diprediksi urutan kemunculannya. 
• Oleh karena itu LCG tidak aman digunakan untuk 
kriptografi. Namun demikian, LCG tetap berguna 
untuk aplikasi non-kriptografi seperti simulasi, 
sebab LCG mangkus dan memperlihatkan sifat 
statistik yang bagus dan sangat tepat untuk uji-uji 
empirik 
Rinaldi Munir/IF5054 Kripto7grafi
Pembangkit Bilangan Acak yang 
Aman untuk Kriptografi 
• Pembangkit bilangan acak yang cocok untuk 
kriptografi dinamakan cryptographically secure 
pseudorandom generator (CSPRNG). 
• Persyaratan CSPRNG adalah: 
1. Secara statistik ia mempunyai sifat-sifat yang bagus (yaitu 
lolos uji keacakan statistik). 
2. Tahan terhadap serangan (attack) yang serius. Serangan ini 
bertujuan untuk memprediksi bilangan acak yang 
dihasilkan. 
Rinaldi Munir/IF5054 Kripto8grafi
Blum Blum Shut (BBS) 
• CSPRNG yang paling sederhana dan paling 
mangkus (secara kompleksitas teoritis). 
• BBS dibuat pada tahun 1986 oleh Lenore 
Blum, Manuel Blum, dan Michael Shub. 
• Berbasis teori bilangan 
Rinaldi Munir/IF5054 Kripto9grafi
Algoritma: 
1. Pilih dua buah bilangan prima rahasia, p dan q, yang masing-masing 
kongruen dengan 3 modulo 4. 
2. Kalikan keduanya menjadi n = pq. Bilangan m ini disebut bilangan 
Rinaldi Munir/IF5054 Kripto1g0rafi 
bulat Blum 
3. Pilih bilangan bulat acak lain, s, sebagai umpan sedemikian 
sehingga: 
(i) 2 £ s < n 
(ii) s dan n relatif prima 
kemudian hitung x0 = s2 mod n 
4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut 
sepanjang yang diinginkan: 
5. (i) Hitung xi = xi – 1 
2 mod n 
6. (ii) zi = bit LSB (Least Significant Bit) dari xi 
Barisan bit acak adalah z1, z2, z3, …
Contoh 11.2. Misalkan kita memilih p = 11 dan q = 15 sehingga n = pq = 
165. Kita pilih s = 3 dan kita hitung x0 =32 mod 165 = 9. Barisan bit acak kita 
hasilkan sebagai berikut: 
Rinaldi Munir/IF5054 Kripto1g1rafi 
x1 = x0 
2 mod n = 92 mod 165 = 81  z1 = 1 (karena 81 ganjil, bit LSB-nya 
pasti 1) 
x2 = x1 
2 mod n = 812 mod 165 = 126  z2 = 0 (karena 126 genap, bit 
LSB-nya pasti 0) 
x3 = x2 
2 mod n = 1262 mod 165 = 36  z1 = 0 
x4 = x3 
2 mod n = 362 mod 165 = 141  z1 = 0 
x5 = x4 
2 mod n = 1412 mod 165 = 81  z1 = 1 
Karena x5 = x1, maka barisan nilai ini akan berulang kembali setelah 
panjangnya 4. barisan bit acak yang dihasilkan 100010001000…
• Bilangan acak tidak harus 1 bit LSB tetapi 
bisa juga j buah bit (j adalah bilangan bulat 
positif yang tidak melebihi log2(log2 n)) ). 
• Perhatikan contoh berikut: 
Rinaldi Munir/IF5054 Kripto1g2rafi
Contoh 11.3. [BIS03] Misalkan kita memilih p = 11351 dan q = 11987 sehingga n = pq = 136064437. Kita 
pilih s = 80331757 dan j = 4 (j tidak melebihi log2(log2 136064437) = 4.75594). Kita hitung x0 = 
803317572 mod 136064437 = 1312737111. Barisan bit acak kita hasilkan sebagai berikut: 
Rinaldi Munir/IF5054 Kripto1g3rafi 
x1 = x0 
2 mod n = 1312737182 mod 136064437 = 47497112 
z1 = 47497112 º 8 (mod 24) = 1000basis 2 
(4 bit LSB dari 47497112) 
x2 = x1 
2 mod n = 474971122 mod 136064437 = 69993144 
z1 = 69993144 º 8 (mod 24) = 1000basis 2 
(4 bit LSB dari 69993144) 
… 
x3 = x2 
2 mod n = 699931442 mod 136064437 = 13810821 
z1 = 13810821 º 5 (mod 24) = 0101basis 2 
(4 bit LSB dari 13810821) 
… 
Barisan blok bit acak yang dihasilkan: 
1000 1000 0101 … 
atau dalam basis 10: 
8 8 5 …
• Keamanan BBS terletak pada sulitnya 
memfaktorkan n. Nilai n tidak perlu rahasia dan 
dapat diumumkan kepada publik. 
• BBS tidak dapat diprediksi dari arah kiri 
(unpredictable to the left) dan tidak dapat 
diprediksi dari arah kanan (unpredictable to the 
kanan), 
• artinya jika diberikan barisan bit yang dihasilkan 
oleh BBS, kriptanalis tidak dapat memprediksi 
barisan bit sebelumnya dan barsian nit sesudahnya 
Rinaldi Munir/IF5054 Kripto1g4rafi
CSPRNG Berbasis RSA 
1. Pilih dua buah bilangan prima rahasia, p dan q, dan 
bilangan bulat e yang relatif prima dengan (p – 1)(q – 1) 
2. Kalikan keduanya menjadi n = pq 
3. Pilih bilangan bulat acak lain, s, sebagai x0 yang dalam 
hal ini 2 £ s £ n 
4. Barisan bit acak dihasilkan dengan melakukan iterasi 
berikut sepanjang yang diinginkan: 
a. Hitung xi = xi – 1 
e mod n degan x0 = s. 
b. zi = bit LSB (Least Significant Bit) dari xi 
5. Barisan bit acak adalah z1, z2, z3, … 
Rinaldi Munir/IF5054 Kripto1g5rafi

More Related Content

What's hot

Matriks & Operasinya Matriks invers
Matriks  & Operasinya Matriks inversMatriks  & Operasinya Matriks invers
Matriks & Operasinya Matriks inversMuhammad Martayuda
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum Rossi Fauzi
 
Analisis bab1 bab2
Analisis bab1 bab2Analisis bab1 bab2
Analisis bab1 bab2Charro NieZz
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Kelinci Coklat
 
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2Arvina Frida Karela
 
3. newton raphson method
3. newton raphson method3. newton raphson method
3. newton raphson methodokti agung
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsiSiti Khotijah
 
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )Bab 9. Teknik Pengintegralan ( Kalkulus 1 )
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )Kelinci Coklat
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08KuliahKita
 
Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03KuliahKita
 
Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03KuliahKita
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05KuliahKita
 

What's hot (20)

Matriks & Operasinya Matriks invers
Matriks  & Operasinya Matriks inversMatriks  & Operasinya Matriks invers
Matriks & Operasinya Matriks invers
 
Sebaran peluang-bersama
Sebaran peluang-bersamaSebaran peluang-bersama
Sebaran peluang-bersama
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum
 
Fungsi Pembangkit
Fungsi PembangkitFungsi Pembangkit
Fungsi Pembangkit
 
Analisis bab1 bab2
Analisis bab1 bab2Analisis bab1 bab2
Analisis bab1 bab2
 
relasi himpunan
relasi himpunanrelasi himpunan
relasi himpunan
 
Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )Transformasi Linear ( Aljabar Linear Elementer )
Transformasi Linear ( Aljabar Linear Elementer )
 
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2
Analisis Real (Barisan Bilangan Real) Latihan bagian 2.2
 
3. newton raphson method
3. newton raphson method3. newton raphson method
3. newton raphson method
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Ring
RingRing
Ring
 
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )Bab 9. Teknik Pengintegralan ( Kalkulus 1 )
Bab 9. Teknik Pengintegralan ( Kalkulus 1 )
 
Stat d3 7
Stat d3 7Stat d3 7
Stat d3 7
 
Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08Matematika Diskrit - 09 graf - 08
Matematika Diskrit - 09 graf - 08
 
Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03
 
Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03Matematika Diskrit - 07 teori bilangan - 03
Matematika Diskrit - 07 teori bilangan - 03
 
Deret Fourier
Deret FourierDeret Fourier
Deret Fourier
 
Bilangan Pi
Bilangan PiBilangan Pi
Bilangan Pi
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05
 

Similar to 31.pembangkit bilangan acak semu (bagian 1)

Similar to 31.pembangkit bilangan acak semu (bagian 1) (14)

Simulasi 9
Simulasi 9Simulasi 9
Simulasi 9
 
13.algoritma kriptografi modern (bagian 2)
13.algoritma kriptografi modern (bagian 2)13.algoritma kriptografi modern (bagian 2)
13.algoritma kriptografi modern (bagian 2)
 
10.steganografi xx
10.steganografi xx10.steganografi xx
10.steganografi xx
 
4.landasan matematika untuk kriptografi xx
4.landasan matematika untuk kriptografi xx4.landasan matematika untuk kriptografi xx
4.landasan matematika untuk kriptografi xx
 
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHERTEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
 
Algoritma kriptografi modern
Algoritma kriptografi modernAlgoritma kriptografi modern
Algoritma kriptografi modern
 
Stream cipher 1488292373
Stream cipher 1488292373Stream cipher 1488292373
Stream cipher 1488292373
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2
 
Otp2
Otp2Otp2
Otp2
 
Kriptografi - Stream Cipher
Kriptografi - Stream CipherKriptografi - Stream Cipher
Kriptografi - Stream Cipher
 
3-Kriptografi .pptx
3-Kriptografi .pptx3-Kriptografi .pptx
3-Kriptografi .pptx
 
3-Kriptografi .pptx
3-Kriptografi .pptx3-Kriptografi .pptx
3-Kriptografi .pptx
 
Papercoding Final
Papercoding FinalPapercoding Final
Papercoding Final
 

More from Universitas Bina Darma Palembang

More from Universitas Bina Darma Palembang (20)

30448 pertemuan1
30448 pertemuan130448 pertemuan1
30448 pertemuan1
 
29510 pertemuan18(form method-get-post-dan-session(1))
29510 pertemuan18(form method-get-post-dan-session(1))29510 pertemuan18(form method-get-post-dan-session(1))
29510 pertemuan18(form method-get-post-dan-session(1))
 
28501 pertemuan14(php)
28501 pertemuan14(php)28501 pertemuan14(php)
28501 pertemuan14(php)
 
28500 pertemuan22(header dokumen html dgn tag title)
28500 pertemuan22(header dokumen html dgn tag title)28500 pertemuan22(header dokumen html dgn tag title)
28500 pertemuan22(header dokumen html dgn tag title)
 
25437 pertemuan25(hitcounter)
25437 pertemuan25(hitcounter)25437 pertemuan25(hitcounter)
25437 pertemuan25(hitcounter)
 
23921 pertemuan 3
23921 pertemuan 323921 pertemuan 3
23921 pertemuan 3
 
19313 pertemuan6
19313 pertemuan619313 pertemuan6
19313 pertemuan6
 
18759 pertemuan20(web html editor)
18759 pertemuan20(web html editor)18759 pertemuan20(web html editor)
18759 pertemuan20(web html editor)
 
18040 pertemuan13(css)
18040 pertemuan13(css)18040 pertemuan13(css)
18040 pertemuan13(css)
 
17945 pertemuan5
17945 pertemuan517945 pertemuan5
17945 pertemuan5
 
16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)
 
15294 pertemuan9(eksplorasi &defenisi masalah0
15294 pertemuan9(eksplorasi &defenisi masalah015294 pertemuan9(eksplorasi &defenisi masalah0
15294 pertemuan9(eksplorasi &defenisi masalah0
 
13926 pertemuan4
13926 pertemuan413926 pertemuan4
13926 pertemuan4
 
12738 pertemuan 15(php lanjutan)
12738 pertemuan 15(php lanjutan)12738 pertemuan 15(php lanjutan)
12738 pertemuan 15(php lanjutan)
 
6346 pertemuan21(web statis dengan struktur html)
6346 pertemuan21(web statis dengan struktur html)6346 pertemuan21(web statis dengan struktur html)
6346 pertemuan21(web statis dengan struktur html)
 
5623 pertemuan11(html1)
5623 pertemuan11(html1)5623 pertemuan11(html1)
5623 pertemuan11(html1)
 
4740 pertemuan8(komponen dalam web)
4740 pertemuan8(komponen dalam web)4740 pertemuan8(komponen dalam web)
4740 pertemuan8(komponen dalam web)
 
4075 pertemuan10 (analisa kebutuhan)
4075 pertemuan10 (analisa kebutuhan)4075 pertemuan10 (analisa kebutuhan)
4075 pertemuan10 (analisa kebutuhan)
 
2670 pertemuan12(html lanjut)
2670 pertemuan12(html lanjut)2670 pertemuan12(html lanjut)
2670 pertemuan12(html lanjut)
 
2190 pertemuan24(polling)
2190 pertemuan24(polling)2190 pertemuan24(polling)
2190 pertemuan24(polling)
 

Recently uploaded

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 

Recently uploaded (6)

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 

31.pembangkit bilangan acak semu (bagian 1)

  • 1. Pembangkit Bilangan Acak Semu (Bagian 1) Bahan Kuliah IF5054 Kriptografi Rinaldi Munir/IF5054 Kripto1grafi
  • 2. • Bilangan acak: bilangan yang tidak dapat diprediksi • Bilangan acak (random) banyak digunakan di dalam kriptografi • Misalnya untuk pembangkitan parameter kunci pada algoritma kunci-publik, pembangkitan initialization vector (IV) pada algoritma kunci-simetri, dan sebagainya Rinaldi Munir/IF5054 Kripto2grafi
  • 3. • Tidak ada komputasi yang benar-benar menghasilkan deret bilangan acak secara sempurna. • Bilangan acak yang dihasilkan dengan rumus-rumus matematika adalah bilangan acak semu (pseudo), karena pembangkitan bilangannya dapat diulang kembali. • Pembangkit deret bilangan acak semacam itu disebut pseudo-random number generator (PRNG) Rinaldi Munir/IF5054 Kripto3grafi
  • 4. Linear Congruential Generator (LCG) • Pembangkit bilangan acak kongruen-lanjar (linear congruential generator atau LCG ) adalah PRNG yang berbentuk: Xn = (aXn – 1 + b) mod m Xn = bilangan acak ke-n dari deretnya Xn – 1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus Kunci pembangkit adalah X0 yang disebut umpan (seed). Rinaldi Munir/IF5054 Kripto4grafi
  • 5. Contoh: Xn = (7Xn – 1 + 11) mod 17, dan X0 = 0 n Xn 0 0 1 11 2 3 3 15 4 14 5 7 6 9 7 6 8 2 9 8 10 16 11 4 12 5 13 12 14 10 15 13 16 0 17 11 18 3 19 15 20 14 21 7 22 9 23 6 24 2 Rinaldi Munir/IF5054 Kripto5grafi
  • 6. • LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari itu. • LCG mempunyai periode penuh (m – 1) jika memenuhi syarat berikut: 1. b relatif prima terhadap m. 2. a – 1 dapat dibagi dengan semua faktor prima dari m 3. a – 1 adalah kelipatan 4 jika m adalah kelipatan 4 4. m > maks(a, b, x0) 5. a > 0, b > 0 Rinaldi Munir/IF5054 Kripto6grafi
  • 7. • Keunggulan LCG terletak pada kecepatannya dan hanya membutuhkan sedikit operasi bit. • Sayangnya, LCG tidak dapat digunakan untuk kriptografi karena bilangan acaknya dapat diprediksi urutan kemunculannya. • Oleh karena itu LCG tidak aman digunakan untuk kriptografi. Namun demikian, LCG tetap berguna untuk aplikasi non-kriptografi seperti simulasi, sebab LCG mangkus dan memperlihatkan sifat statistik yang bagus dan sangat tepat untuk uji-uji empirik Rinaldi Munir/IF5054 Kripto7grafi
  • 8. Pembangkit Bilangan Acak yang Aman untuk Kriptografi • Pembangkit bilangan acak yang cocok untuk kriptografi dinamakan cryptographically secure pseudorandom generator (CSPRNG). • Persyaratan CSPRNG adalah: 1. Secara statistik ia mempunyai sifat-sifat yang bagus (yaitu lolos uji keacakan statistik). 2. Tahan terhadap serangan (attack) yang serius. Serangan ini bertujuan untuk memprediksi bilangan acak yang dihasilkan. Rinaldi Munir/IF5054 Kripto8grafi
  • 9. Blum Blum Shut (BBS) • CSPRNG yang paling sederhana dan paling mangkus (secara kompleksitas teoritis). • BBS dibuat pada tahun 1986 oleh Lenore Blum, Manuel Blum, dan Michael Shub. • Berbasis teori bilangan Rinaldi Munir/IF5054 Kripto9grafi
  • 10. Algoritma: 1. Pilih dua buah bilangan prima rahasia, p dan q, yang masing-masing kongruen dengan 3 modulo 4. 2. Kalikan keduanya menjadi n = pq. Bilangan m ini disebut bilangan Rinaldi Munir/IF5054 Kripto1g0rafi bulat Blum 3. Pilih bilangan bulat acak lain, s, sebagai umpan sedemikian sehingga: (i) 2 £ s < n (ii) s dan n relatif prima kemudian hitung x0 = s2 mod n 4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan: 5. (i) Hitung xi = xi – 1 2 mod n 6. (ii) zi = bit LSB (Least Significant Bit) dari xi Barisan bit acak adalah z1, z2, z3, …
  • 11. Contoh 11.2. Misalkan kita memilih p = 11 dan q = 15 sehingga n = pq = 165. Kita pilih s = 3 dan kita hitung x0 =32 mod 165 = 9. Barisan bit acak kita hasilkan sebagai berikut: Rinaldi Munir/IF5054 Kripto1g1rafi x1 = x0 2 mod n = 92 mod 165 = 81  z1 = 1 (karena 81 ganjil, bit LSB-nya pasti 1) x2 = x1 2 mod n = 812 mod 165 = 126  z2 = 0 (karena 126 genap, bit LSB-nya pasti 0) x3 = x2 2 mod n = 1262 mod 165 = 36  z1 = 0 x4 = x3 2 mod n = 362 mod 165 = 141  z1 = 0 x5 = x4 2 mod n = 1412 mod 165 = 81  z1 = 1 Karena x5 = x1, maka barisan nilai ini akan berulang kembali setelah panjangnya 4. barisan bit acak yang dihasilkan 100010001000…
  • 12. • Bilangan acak tidak harus 1 bit LSB tetapi bisa juga j buah bit (j adalah bilangan bulat positif yang tidak melebihi log2(log2 n)) ). • Perhatikan contoh berikut: Rinaldi Munir/IF5054 Kripto1g2rafi
  • 13. Contoh 11.3. [BIS03] Misalkan kita memilih p = 11351 dan q = 11987 sehingga n = pq = 136064437. Kita pilih s = 80331757 dan j = 4 (j tidak melebihi log2(log2 136064437) = 4.75594). Kita hitung x0 = 803317572 mod 136064437 = 1312737111. Barisan bit acak kita hasilkan sebagai berikut: Rinaldi Munir/IF5054 Kripto1g3rafi x1 = x0 2 mod n = 1312737182 mod 136064437 = 47497112 z1 = 47497112 º 8 (mod 24) = 1000basis 2 (4 bit LSB dari 47497112) x2 = x1 2 mod n = 474971122 mod 136064437 = 69993144 z1 = 69993144 º 8 (mod 24) = 1000basis 2 (4 bit LSB dari 69993144) … x3 = x2 2 mod n = 699931442 mod 136064437 = 13810821 z1 = 13810821 º 5 (mod 24) = 0101basis 2 (4 bit LSB dari 13810821) … Barisan blok bit acak yang dihasilkan: 1000 1000 0101 … atau dalam basis 10: 8 8 5 …
  • 14. • Keamanan BBS terletak pada sulitnya memfaktorkan n. Nilai n tidak perlu rahasia dan dapat diumumkan kepada publik. • BBS tidak dapat diprediksi dari arah kiri (unpredictable to the left) dan tidak dapat diprediksi dari arah kanan (unpredictable to the kanan), • artinya jika diberikan barisan bit yang dihasilkan oleh BBS, kriptanalis tidak dapat memprediksi barisan bit sebelumnya dan barsian nit sesudahnya Rinaldi Munir/IF5054 Kripto1g4rafi
  • 15. CSPRNG Berbasis RSA 1. Pilih dua buah bilangan prima rahasia, p dan q, dan bilangan bulat e yang relatif prima dengan (p – 1)(q – 1) 2. Kalikan keduanya menjadi n = pq 3. Pilih bilangan bulat acak lain, s, sebagai x0 yang dalam hal ini 2 £ s £ n 4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan: a. Hitung xi = xi – 1 e mod n degan x0 = s. b. zi = bit LSB (Least Significant Bit) dari xi 5. Barisan bit acak adalah z1, z2, z3, … Rinaldi Munir/IF5054 Kripto1g5rafi