PEMBANGKITAN BILANGAN ACAK
PSEUDO RANDOM GENERATION / PEMBANGKITAN BILANGAN ACAK
Pembangkit Bilangan Acak Semu
* 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.
* 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)
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).
* 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:
* b relatif prima terhadap m.
* a – 1 dapat dibagi dengan semua faktor prima dari m
* a – 1 adalah kelipatan 4 jika m adalah kelipatan 4
* m > maks(a, b, x0)
* a > 0, b > 0
* 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
Pembangkit Bilangan Acak yang Aman untuk Kriptografi
* Pembangkit bilangan acak yang cocok untuk kriptografi dinamakan cryptographically secure pseudorandom generator (CSPRNG).
* Persyaratan CSPRNG adalah:
* Secara statistik ia mempunyai sifat-sifat yang bagus (yaitu lolos uji keacakan statistik).
* Tahan terhadap serangan (attack) yang serius. Serangan ini bertujuan untuk memprediksi bilangan acak yang dihasilkan.
Read Users' Comments (0)