Heutzutage erfordern viele Anwendungen die Fähigkeit, Zufallszahlen zu generieren. Abhängig davon, welches spezifische Problem gelÜst wird, werden offensichtlich unterschiedliche Anforderungen an den Zufallszahlengenerator gestellt: Beispielsweise benÜtigt der Zufallszahlengenerator manchmal nur die Eindeutigkeit der erhaltenen Zahl, während häufig, insbesondere auf dem Gebiet der Kryptographie, die Anforderungen fßr solche Das Gerät / der Algorithmus ist viel starrer.
Es ist gleich zu klären, dass die Zahlen, die am Ausgang eines bestimmten deterministischen Algorithmus erhalten werden und die Eigenschaft der Zufälligkeit besitzen, als Pseudozufallsgeneratoren bezeichnet werden und die entsprechenden Generatoren als Pseudozufallszahlengeneratoren (PRNG) bezeichnet werden.
Der Zweck dieses Artikels besteht darin, sich mit PRNG vertraut zu machen, das auf Schieberegistern mit linearer RĂźckkopplung, einigen ihrer Modifikationen sowie mehreren kryptografisch starken PRNGs basiert, die in der Praxis verwendet werden.
Pseudozufallszahlengeneratorstruktur
Beginnen wir etwas weiter mit einem Blick auf die allgemeine Struktur des PRNG. Die Struktur wird als Grundlage genommen, die von den Autoren in [2] empfohlen und ausfĂźhrlicher betrachtet wird.
Werfen wir einen kurzen Blick auf jeden Block:
- , , , ( ), .
( ) . (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. Pseudozufallszahlengeneratoren: Ein Tutorial, 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. Angewandte Kryptographie. Protokolle, Algorithmen, Quelltexte in der Sprache C. - Triumph, 2013. - 816 s
https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final