Generator nomor pseudo-random berdasarkan RFLOS

Saat ini, banyak aplikasi membutuhkan kemampuan untuk menghasilkan angka acak. Jelas, tergantung pada masalah spesifik apa yang sedang dipecahkan, persyaratan yang berbeda akan diberlakukan pada generator bilangan acak: misalnya, terkadang hanya keunikan dari bilangan yang diperoleh yang mungkin diperlukan dari pembuat bilangan acak, sementara seringkali, terutama di bidang kriptografi, persyaratan untuk itu perangkat / algoritme jauh lebih kaku.





Perlu diklarifikasi segera bahwa bilangan yang diperoleh pada keluaran dari algoritme deterministik tertentu dan memiliki sifat keacakan disebut pseudo-random, dan generator yang sesuai disebut pseudo-random number generator (PRNG).





Tujuan artikel ini adalah untuk membiasakan dengan PRNG berdasarkan register geser dengan umpan balik linier, beberapa modifikasinya, serta beberapa PRNG yang kuat secara kriptografik yang digunakan dalam praktik.





Struktur pembangkit bilangan acak semu

Mari kita mulai sedikit lebih jauh, dengan melihat struktur umum PRNG. Struktur tersebut diambil sebagai dasar, yang direkomendasikan dan dipertimbangkan secara lebih rinci oleh penulis di [2].





https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf, halaman 11
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf, halaman 11

Mari kita lihat sekilas setiap blok:





  1. - , , , ( ), .





  2. ( ) . (nonce). , , , .. .





  3. - , , ;





  4. nonce , , ;





  5. , . , ;





  6. , ;





  7. ( ) ;





  8. .





(), .. .





Register geser umpan balik linier.  Sumber: [3, hlm. 105]
. : [3, . 105]

n b1, b2, . . . , bn C1 = 1, C2, C3 , . . . , Cn ∈ {0, 1}. ( [8]). GF(2), . 2:





C(x) = 1xn + C2xn-1 + . . . + Cnx + 1,





.





  1. 2 , , .. Ci 1;





  2. ;





  3. , 1.





b1 . 2n-1, , .





, , .. , , n . , 2n , , .





, : . , , , ( ).





:





  1. , , ;





  2. ;





  3. 2 ;





  4. .





, , , , .





, , .





, - , , (). , [9, . 2.8], .. , , , , .





, , , . [1], [10] . , , , .





, , "" , .





, , , . : :





Di sebelah kiri adalah diagram penjelasan, di sebelah kanan adalah representasi dari suatu fungsi berupa polinomial Zhegalkin
- , -





.. 2 , . , - . , . .





L1 . . . LM , , .





i- Li , , - , .. (Li, Lj) = 1 i≠j. f , .. f = . . . + xi + . . . , . 2L, L - , .





"-"

"-" ( -1 -2). -2 , -1 1. -2 , .. , -1 -2.





, , , , -1.





, "-", 3 . -2 1 -1, -3 0. -2 -3. [4] , .





"-": , , , . :





Kaskade Gollman, sumber: [6, halaman 50]
, : [6, 50]

-1 1, -2. -2 1 - -3 .. .





: . [9] . 15 .





5/1

, , , , GSM. 5, 1987 5/1, .. 5/2 5/3.





: , 19, 22 23 . . 5 , .. .





Diagram algoritme A5 / 1, sumber: [3, halaman 113]
5/1, : [3, 113]
Sistem persamaan untuk generator A5 / 1
5/1

.





: , ( C1 , C2, C3- ). m = majotiry (C1, C2, C3) , .. 0 1. , .





, , . . , [10].





:

  1.  .. ( 2. )





  2. nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf





  3.  . .,  . .,  . . : β€” .: , 2019





  4. C.G. Gunter, β€œAlternating Step Generators Contolled by de Bruijn Sequenc-es”, Advances in Cryptology EUROCRYPT ’87 Proceedings, Springer-Verlag, 1988





  5. . . – .: . β€” 1989





  6. Slepovichev I.I. Generator Nomor Pseudo-Acak: Tutorial, 2017





  7. https://software.intel.com/sites/default/files/m/d/4/1/d//441IntelR_DRNGSoftwareImplementationGuidefinalAug7.pdf





  8. https://www.xilinx.com/support/documentation/application_notes/xapp052.pdf





  9. Schneier B. Kriptografi Terapan. Protokol, algoritma, teks sumber dalam bahasa C. - Kemenangan, 2013. - 816 d





  10. https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final












All Articles