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].
Jetons un coup d'Ćil Ă chaque bloc:
- , , , ( ), .
( ) . (nonce). , , , .. .
- , , ;
nonce , , ;
, . , ;
, ;
( ) ;
.
(), .. .
n b1, b2, . . . , bn C1 = 1, C2, C3 , . . . , Cn â {0, 1}. ( [8]). GF(2), . 2:
C(x) = 1xn + C2xn-1 + . . . + Cnx + 1,
.
2 , , .. Ci 1;
;
, 1.
b1 . 2n-1, , .
, , .. , , n . , 2n , , .
, : . , , , ( ).
:
, , ;
;
2 ;
.
, , , , .
, , .
, - , , (). , [9, . 2.8], .. , , , , .
, , , . [1], [10] . , , , .
, , "" , .
, , , . : :
.. 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] , .
"-": , , , . :
-1 1, -2. -2 1 - -3 .. .
: . [9] . 15 .
5/1
, , , , GSM. 5, 1987 5/1, .. 5/2 5/3.
: , 19, 22 23 . . 5 , .. .
.
: , ( C1 , C2, C3- ). m = majotiry (C1, C2, C3) , .. 0 1. , .
, , . . , [10].
:
.. ( 2. )
nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf
. ., . ., . . : â .: , 2019
C.G. Gunter, âAlternating Step Generators Contolled by de Bruijn Sequenc-esâ, Advances in Cryptology EUROCRYPT â87 Proceedings, Springer-Verlag, 1988
. . â .: . â 1989
Slepovichev I.I. Générateurs de nombres pseudo-aléatoires: un didacticiel, 2017
https://software.intel.com/sites/default/files/m/d/4/1/d//441IntelR_DRNGSoftwareImplementationGuidefinalAug7.pdf
https://www.xilinx.com/support/documentation/application_notes/xapp052.pdf
Schneier B. Cryptographie appliquée. Protocoles, algorithmes, textes sources en langage C. - Triomphe, 2013 .-- 816 s
https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final