Random Number
Generator
Oleh Dendi Suhubdy A.K.A Cron of NuLL
Random number generator (RNG) atau pembangkit bilangan acak,
kerap kali diimplementasikan di dalam berbagai algoritma kriptografi. Contohnya
saja pada algoritma kriptografi Deffie-Helman yang memerlukan bilangan prima
sebagai input. Nah, cara yang paling efektif untuk mendapatkan suatu bilangan prima
acak adalah dengan cara melakukan pembangkitan bilangan acak kemudian mengetes
apakah bilangan yang dibangkitkan itu berupa bilangan acak atau tidak.
Sekarang pertanyaannya adalah……apa algoritma untuk melakukan
pembangkitan bilangan acak tersebut? Yupzzz, Anda dapat menggunakan rand() atau
Math.Random() pada C++ atau System.Random pada C# (red. C sharp) atau
java.util.Random pada Java. Namun, jika Anda memeriksa algoritma yang digunakan
oleh fungsi-fungsi tersebut, Anda akan menemukan bahwa itu adalah RNG yang
lambat…..masih ada cara untuk mempercepatnya beberapa CPU clock cylces…lagipula
baru-baru ini ditemukan security flaw pada fungsi rand() sehingga bilangan acak
ini dapat dibangkitkan kembali (artinya tidak benar-benar acak) dan ini
merupakan ancaman yang serius untuk dunia kriptografi.
Kalau Anda adalah orang yang haus akan ilmu hacking dan
matematika diskrit…….inilah jawabannya……..
Algortima pertama adalah R250/5231 yang diciptakan oleh
Kirkpatrick dan Stoll yang dipublikasikan di A Very Fast Shift-Register
Sequence Random Number Generator, J. Computational Physics, vol 40, pp.
517-526.
Algoritma yang kedua adalah Mersenne Twister yang diciptakan
pada tahun 1996 oleh Matsumora dan Nishimura.
Source codenya dapat di compile dengan gcc v3.3…….atau kalau
Anda benar-benar kreatif, ubahlah source code ini sesuai dengan keinginan
Anda……tetapi jangan lupa pada kontribusi orang-orang yang menciptakan algoritma
ini. Upzzzzzzzz, gw lupa kalau source code java dan C#nya juga ada. Berikut
linknya dari semua source codenya.
http://www.4shared.com/file/32947855/4bc0a7c/RNG_520_dan_MT.html
--- Diambil dari www.jasakom.com
---
--- Edit by aredie ---
|