Générateurs de nombres pseudo-aléatoires basés sur RFLOS

Aujourd'hui, de nombreuses applications nĂ©cessitent la capacitĂ© de gĂ©nĂ©rer des nombres alĂ©atoires. Évidemment, en fonction du problĂšme spĂ©cifique rĂ©solu, diffĂ©rentes exigences seront imposĂ©es au gĂ©nĂ©rateur de nombres alĂ©atoires: par exemple, parfois le gĂ©nĂ©rateur de nombres alĂ©atoires peut seulement avoir besoin de l'unicitĂ© du nombre obtenu, alors que souvent, en particulier dans le domaine de la cryptographie, les exigences pour un tel le dispositif / algorithme est beaucoup plus rigide.





Il vaut la peine de préciser tout de suite que les nombres obtenus à la sortie d'un certain algorithme déterministe et possédant la propriété d'aléatoire sont appelés pseudo-aléatoires, et les générateurs correspondants sont appelés générateurs de nombres pseudo-aléatoires (PRNG).





Le but de cet article est de se familiariser avec le PRNG basé sur des registres à décalage avec rétroaction linéaire, plusieurs de leurs modifications, ainsi que plusieurs PRNG cryptographiquement forts qui sont utilisés dans la pratique.





Structure du générateur de nombres pseudo-aléatoires

Commençons un peu plus loin en examinant la structure générale du PRNG. La structure est prise comme base, ce qui est recommandé et examiné plus en détail par les auteurs dans [2].





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

Jetons un coup d'Ɠil à chaque bloc:





  1. - , , , ( ), .





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





  3. - , , ;





  4. nonce , , ;





  5. , . , ;





  6. , ;





  7. ( ) ;





  8. .





(), .. .





Registre à décalage de rétroaction linéaire.  Source: [3, p. 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] . , , , .





, , "" , .





, , , . : :





À gauche, un diagramme explicatif, Ă  droite une reprĂ©sentation d'une fonction sous la forme d'un polynĂŽme de 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] , .





"-": , , , . :





La cascade de Gollman, source: [6, page 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 , .. .





Diagramme d'algorithme A5 / 1, source: [3, page 113]
5/1, : [3, 113]
SystÚme d'équations pour le générateur 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. Générateurs de nombres pseudo-aléatoires: un didacticiel, 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. Cryptographie appliquée. Protocoles, algorithmes, textes sources en langage C. - Triomphe, 2013 .-- 816 s





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












All Articles