Knowledge

Cryptographically secure pseudorandom number generator

Source đź“ť

213:. However, unexpected correlations have been found in several such ostensibly independent processes. From an information-theoretic point of view, the amount of randomness, the entropy that can be generated, is equal to the entropy provided by the system. But sometimes, in practical situations, numbers are needed with more randomness than the available entropy can provide. Also, the processes to extract randomness from a running system are slow in actual practice. In such instances, a CSPRNG can sometimes be used. A CSPRNG can "stretch" the available entropy over more bits. 3774: 76: 2201:
All these above-mentioned schemes, save for X9.17, also mix the state of a CSPRNG with an additional source of entropy. They are therefore not "pure" pseudorandom number generators, in the sense that the output is not completely determined by their initial state. This addition aims to prevent attacks
278:
Most PRNGs are not suitable for use as CSPRNGs and will fail on both counts. First, while most PRNGs' outputs appear random to assorted statistical tests, they do not resist determined reverse engineering. Specialized statistical tests may be found specially tuned to such a PRNG that shows the random
2244:
When the maximum number of bits output from this PRNG is equal to the 2, the resulting output delivers the mathematically expected security level that the key size would be expected to generate, but the output is shown to not be indistinguishable from a true random number generator. When the maximum
260:
Every CSPRNG should withstand "state compromise extension attacks". In the event that part or all of its state has been revealed (or guessed correctly), it should be impossible to reconstruct the stream of random numbers prior to the revelation. Additionally, if there is an entropy input while
1877:
the requested randomness is output by running additional cycles. This is wasteful from a performance perspective, but does not immediately cause issues with forward secrecy. However, realizing the performance implications, the NIST recommends an "extended AES-CTR-DRBG interface" for its
1882:
submissions. This interface allows multiple sets of randomness to be generated without intervening erasure, only erasing when the user explicitly signals the end of requests. As a result, the key could remain in memory for an extended time if the "extended interface" is misused. Newer
2968:
Is there any serious argument that adding new entropy all the time is a good thing? The Linux /dev/urandom manual page claims that without new entropy the user is "theoretically vulnerable to a cryptographic attack", but (as I've mentioned in various venues) this is a ludicrous
2403:
where hardware vendors use a hardcoded seed key for the ANSI X9.31 RNG algorithm, stating "an attacker can brute-force encrypted data to discover the rest of the encryption parameters and deduce the master encryption key used to encrypt web sessions or
2025:, the successor to Yarrow, which does not attempt to evaluate the entropic quality of its inputs; it uses SHA-256 and "any good block cipher". Fortuna is used in FreeBSD. Apple changed to Fortuna for most or all Apple OSs beginning around Dec. 2019. 621: 2359:. The NSA worked covertly to get its own version of the NIST draft security standard approved for worldwide use in 2006. The leaked document states that "eventually, NSA became the sole editor". In spite of the known potential for a 2351:. Both papers reported that, as independent security experts long suspected, the NSA had been introducing weaknesses into CSPRNG standard 800-90; this being confirmed for the first time by one of the top-secret documents leaked to 97: 929: 275:. However, this algorithm is not cryptographically secure; an attacker who determines which bit of pi is currently in use (i.e. the state of the algorithm) will be able to calculate all preceding bits as well. 279:
numbers not to be truly random. Second, for most PRNGs, when their state has been revealed, all past random numbers can be retrodicted, allowing an attacker to read all past messages, as well as future ones.
3125:
Rukhin, Andrew; Soto, Juan; Nechvatal, James; Smid, Miles; Barker, Elaine; Leigh, Stefan; Levenson, Mark; Vangel, Mark; Banks, David; Heckert, N.; Dray, James; Vo, San; Bassham, Lawrence (April 30, 2010).
3807: 774: 382: 1483: 1326: 1242: 1591: 2245:
number of bits output from this PRNG is less than it, the expected security level is delivered and the output appears to be indistinguishable from a true random number generator.
206:
guarantee of perfect secrecy only holds if the key material comes from a true random source with high entropy, and thus any kind of pseudorandom number generator is insufficient.
1726: 1659: 1940:
provides a conditional security proof for the Blum Blum Shub algorithm. However the algorithm is very inefficient and therefore impractical unless extreme security is needed.
1401: 2754:"2017.07.23: Fast-key-erasure random-number generators: An effort to clean up several messes simultaneously. #rng #forwardsecrecy #urandom #cascade #hmac #rekeying #proofs" 271:
in sequence, starting from some unknown point in the binary expansion, it may well satisfy the next-bit test and thus be statistically random, as pi is conjectured to be a
2813: 1154: 425: 673: 1057: 997: 1808:
can remove a considerable amount of the bias in any bit stream, which should be applied to each bit stream before using any variation of the Santha–Vazirani design.
1518: 2067: 1784: 1757: 1353: 1115: 1084: 1024: 956: 445: 2241:
of the underlying block cipher when the number of bits output from this PRNG is greater than two to the power of the underlying block cipher's block size in bits.
818: 647: 221:
The requirements of an ordinary PRNG are also satisfied by a cryptographically secure PRNG, but the reverse is not true. CSPRNG requirements fall into two groups:
1879: 3422: 1800:
Santha and Vazirani proved that several bit streams with weak randomness can be combined to produce a higher-quality, quasi-random bit stream. Even earlier,
2735: 2799: 3300: 3080: 1964: 209:
Ideally, the generation of random numbers in CSPRNGs uses entropy obtained from a high-quality source, generally the operating system's randomness
2081: 823: 2943: 2903: 2590: 2565: 2532: 2073: 2367:
continued using Dual_EC_DRBG until the backdoor was confirmed in 2013. RSA Security received a $ 10 million payment from the NSA to do so.
3182: 2767: 2475: 432: 3812: 3802: 3415: 2718: 2691: 2653: 1988:
in the Dual_EC_DRBG standard (which were revealed in 2013 to be probably backdoored by NSA) are replaced with non-backdoored values.
123: 3208: 2015:, which attempts to evaluate the entropic quality of its seeding inputs, and uses SHA-1 and 3DES internally. Yarrow was used in 1848: 693: 680: 301: 252:
proved in 1982 that a generator passing the next-bit test will pass all other polynomial-time statistical tests for randomness.
3633: 3564: 2510:
Kelsey, John; Schneier, Bruce; Wagner, David; Hall, Chris (1998). "Cryptanalytic Attacks on Pseudorandom Number Generators".
1867: 101: 3234: 257:
They hold up well under serious attack, even when part of their initial or running state becomes available to an attacker:
2223:
This withdrawn standard has four PRNGs. Two of them are uncontroversial and proven: CSPRNGs named Hash_DRBG and HMAC_DRBG.
1936:. Since the only known way to solve that problem is to factor the modulus, it is generally regarded that the difficulty of 1409: 2340: 1933: 389: 47: 3408: 2191: 1860: 1247: 1163: 261:
running, it should be infeasible to use knowledge of the input's state to predict future conditions of the CSPRNG state.
176: 17: 3749: 3704: 3507: 1900: 3628: 3156: 2392: 2252:
for CTR_DRBG depends on limiting the total number of generate requests and the bits provided per generate request.
1948: 1944: 3744: 2417: 1523: 2237:. It has an uncontroversial design but has been proven to be weaker in terms of distinguishing attack, than the 3734: 3724: 3579: 2645: 2396: 2332: 86: 2198:
is leaked, the entire X9.17 stream can be predicted; this weakness is cited as a reason for creating Yarrow.
3729: 3719: 3512: 3472: 3465: 3450: 3445: 3249: 2405: 105: 90: 3351: 2467: 2272:
This is essentially NIST SP 800-90A with Dual_EC_DRBG removed, and is the withdrawn standard's replacement.
3517: 3460: 2827: 187: 3391: 3777: 3623: 3569: 2921:"Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator" 2421: 1937: 153: 3128:"A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications" 2920: 1664: 3356: 2511: 1596: 3739: 3663: 2895: 2336: 1805: 1795: 3267: 2889: 2376: 1358: 3492: 3342: 3127: 2959: 2490: 2441: 1914:
primitive can be used as a base of a CSPRNG, for example, as part of the construct that NIST calls
627: 295: 195: 183: 163: 158: 2607: 2461: 3608: 3592: 3534: 2710:
Embedded Systems Security: Practical Methods for Safe and Secure Software and Systems Development
2327: 1825: 1120: 203: 191: 2782:"Linux 5.17 Random Number Generator Seeing Speed-Ups, Switching From SHA1 To BLAKE2s - Phoronix" 1997:"Practical" CSPRNG schemes not only include an CSPRNG algorithm, but also a way to initialize (" 182:
The "quality" of the randomness required for these applications varies. For example, creating a
3352:
Java standard class providing a cryptographically strong pseudo-random number generator (PRNG).
2363:
backdoor and other known significant deficiencies with Dual_EC_DRBG, several companies such as
395: 3668: 3658: 3524: 2939: 2899: 2857: 2714: 2687: 2649: 2586: 2561: 2538: 2528: 2471: 2249: 652: 616:{\displaystyle \left|\Pr _{x\gets \{0,1\}^{k}}-\Pr _{r\gets \{0,1\}^{p(k)}}\right|<\mu (k)} 1029: 969: 3603: 3455: 3382:, Reza Rezaeian Farashahi and Berry Schoenmakers and Andrey Sidorenko, IACR ePrint 2006/321. 3329: 3271: 3135: 3107: 3079: 2981: 2931: 2675: 2520: 2380: 2012: 2001:") it while keeping the seed secret. A number of such schemes have been defined, including: 1801: 1488: 226: 3370:, Daniel R. L. Brown and Kristian Gjosteen, IACR ePrint 2007/048. To appear in CRYPTO 2007. 2420:, Japan used a cipher machine for diplomatic communications; the United States was able to 1762: 1735: 1520:
by splitting its output into the next state and the actual output. This is done by setting
1331: 1093: 1090:, that withstands state compromise extensions in the following sense. If the initial state 1062: 1002: 934: 3346: 2344: 2217: 794: 632: 241: 1883:"fast-key-erasure" RNGs erase the key with randomness as soon as randomness is requested. 2865: 2494: 1980:(amount of bits provided per iteration) than in the Dual_EC_DRBG standard, and that the 3678: 3598: 3554: 3497: 3482: 3275: 3025:"The Notorious PRG: Formal verification of the HMAC-DRBG pseudorandom number generator" 2861: 2853: 2683: 2384: 2356: 2238: 2058: 2022: 1929: 1903:
might also be a base of a good CSPRNG, using, for example, a construct that NIST calls
1889: 148: 2634: 2347:, which allows the NSA to readily decrypt material that was encrypted with the aid of 3796: 3759: 3714: 3673: 3653: 3544: 3502: 3477: 2497:. In Proceedings of the 23rd IEEE Symposium on Foundations of Computer Science, 1982. 2388: 2019:
and other Apple OS' up until about December 2019, after which it switched to Fortuna.
283: 272: 233: 1870:
_DRBG is often used as a random number generator in systems that use AES encryption.
3709: 3549: 3539: 3529: 3487: 3431: 3024: 2364: 2360: 2348: 2321: 2315: 2260: 2256: 2234: 2230: 2156: 1959: 1844: 267:
For instance, if the PRNG under consideration produces output by computing bits of
199: 137: 51: 2070:, offered on Windows. Different versions of Windows use different implementations. 2708: 2259:. It has been shown to not be cryptographically secure and is believed to have a 3688: 3368:
A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator
3333: 3055:"Security Bounds for the NIST Codebook-based Deterministic Random Bit Generator" 2097: 1998: 1831: 75: 2781: 3648: 3618: 3613: 3574: 3340:
Java "entropy pool" for cryptographically secure unpredictable random numbers.
3140: 2089: 2085: 2038: 249: 3106:
Computer Security Division, Information Technology Laboratory (24 May 2016).
2963: 2753: 2678:(1963-03-01). "Various techniques for use in connection with random digits". 2542: 2524: 1888:
A stream cipher can be converted into a CSPRNG. This has been done with RC4,
3638: 2935: 2282:
ANSI X9.62-1998 Annex A.4, obsoleted by ANSI X9.62-2005, Annex D (HMAC_DRBG)
2063: 1915: 1904: 392:(PRNG, or PRG in some references), if it stretches the length of its input ( 3157:"Revealed: how US and UK spy agencies defeat internet privacy and security" 2440:
The use of entropy-mixing after CSPRNG initialization has been question by
924:{\displaystyle G_{k}\colon \{0,1\}^{k}\to \{0,1\}^{k}\times \{0,1\}^{t(k)}} 435:
from true randomness, i.e. for any probabilistic polynomial time algorithm
3081:"Government Announces Steps to Restore Confidence on Encryption Standards" 27:
Type of functions designed for being unsolvable by root-finding algorithms
3683: 3643: 3357:
Cryptographically Secure Random number on Windows without using CryptoAPI
2642:
Proceedings of the 25th IEEE Symposium on Foundations of Computer Science
2226: 2103:. Each time a random number is required, it executes the following steps: 2051: 1955: 1893: 1856: 2872: 2293:
There are also standards for statistical testing of new CSPRNG designs:
2999: 2029: 3385: 3301:"DUHK Crypto Attack Recovers Encryption Keys, Exposes VPN Connections" 3054: 2298:
A Statistical Test Suite for Random and Pseudorandom Number Generators
248:+1)th bit with probability of success non-negligibly better than 50%. 3559: 3280:"Practical state recovery attacks against legacy RNG implementations" 2930:. Lecture Notes in Computer Science. Vol. 1758. pp. 13–33. 2399:, released details of the DUHK (Don't Use Hard-coded Keys) attack on 1821: 190:
needs only uniqueness. On the other hand, the generation of a master
171: 141: 2190:
Obviously, the technique is easily generalized to any block cipher;
3279: 3250:"Exclusive: Secret contract tied NSA and security industry pioneer" 2424:, mostly because the "key values" used were insufficiently random. 2028:
The Linux kernel CSPRNG, which uses ChaCha20 to generate data, and
3379: 3373: 3367: 3361: 2016: 167: 690:
There is an equivalent characterization: For any function family
298:, a family of deterministic polynomial time computable functions 3392:
NIST Statistical Test Suite documentation and software download.
3376:, Berry Schoenmakers and Andrey Sidorenko, IACR ePrint 2006/190. 2635:"Generating quasi-random sequences from slightly-random sources" 2400: 2287: 1911: 1852: 3404: 3374:
Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator
2828:"FreeBSD 12.0-RELEASE Release Notes: Runtime Libraries and API" 2919:
Kelsey, John; Schneier, Bruce; Ferguson, Niels (August 1999).
2047: 1932:
algorithm has a security proof based on the difficulty of the
210: 69: 3380:
Efficient Pseudorandom Generators Based on the DDH Assumption
3209:"Did NSA Put a Secret Backdoor in New Encryption Standard?" 1485:
can be turned into a forward secure PRNG with block length
268: 769:{\displaystyle G_{k}\colon \{0,1\}^{k}\to \{0,1\}^{p(k)}} 377:{\displaystyle G_{k}\colon \{0,1\}^{k}\to \{0,1\}^{p(k)}} 3362:
Conjectured Security of the ANSI-NIST Elliptic Curve RNG
3339: 3183:"N.S.A. Able to Foil Basic Safeguards of Privacy on Web" 1786:
as the pseudorandom output block of the current period.
50:(PRNG) with properties that make it suitable for use in 3808:
Cryptographically secure pseudorandom number generators
2928:
Sixth Annual Workshop on Selected Areas in Cryptography
282:
CSPRNGs are designed explicitly to resist this type of
18:
Cryptographically secure pseudo-random number generator
3585:
Cryptographically secure pseudorandom number generator
32:
cryptographically secure pseudorandom number generator
2210:
Several CSPRNGs have been standardized. For example:
1830:
Designs based on mathematical problems thought to be
1765: 1738: 1667: 1599: 1526: 1491: 1478:{\displaystyle G\colon \{0,1\}^{k}\to \{0,1\}^{p(k)}} 1412: 1361: 1334: 1250: 1166: 1123: 1096: 1065: 1032: 1005: 972: 937: 826: 797: 696: 655: 635: 448: 398: 304: 3396: 3388:, Zvi Gutterman and Benny Pinkas and Tzachy Reinman. 2255:
The fourth and final PRNG in this standard is named
2006: 1947:
has a security proof based on the difficulty of the
784:
cannot be predicted by a polynomial time algorithm.
3697: 3438: 2310:
NSA kleptographic backdoor in the Dual_EC_DRBG PRNG
3155:James Borger; Glenn Greenwald (6 September 2013). 3000:"Analysis of Underlying Assumptions in NIST DRBGs" 2707:Kleidermacher, David; Kleidermacher, Mike (2012). 2519:. Berlin, Heidelberg: Springer Berlin Heidelberg. 2248:It is noted in the next revision that the claimed 1820:Designs based on cryptographic primitives such as 1778: 1751: 1720: 1653: 1585: 1512: 1477: 1395: 1347: 1321:{\displaystyle (r_{1},r_{2},\dots ,r_{i},s_{i+1})} 1320: 1237:{\displaystyle (y_{1},y_{2},\dots ,y_{i},s_{i+1})} 1236: 1148: 1109: 1078: 1051: 1018: 991: 950: 923: 812: 768: 667: 641: 615: 419: 376: 2734:Cox, George; Dike, Charles; Johnston, DJ (2011). 1851:using, for example, a special construct that the 2736:"Intel's Digital Random Number Generator (DRNG)" 2078:Financial Institution Key Management (wholesale) 2042:, a CSPRNG in Unix-like systems that seeds from 1847:can be converted into a CSPRNG by running it in 780:is a PRNG if and only if the next output bit of 526: 455: 2891:Malicious Cryptography: Exposing Cryptovirology 2633:Miklos Santha, Umesh V. Vazirani (1984-10-24). 2609:Lecture 5 Notes of Introduction to Cryptography 1244:must be computationally indistinguishable from 3235:"RSA warns developers not to use RSA products" 3416: 3386:Analysis of the Linux Random Number Generator 2495:Theory and applications of trapdoor functions 1816:CSPRNG designs are divided into two classes: 8: 2866:"Chapter 5: Pseudorandom Bits and Sequences" 1976:. The 2006 proof explicitly assumes a lower 1561: 1457: 1444: 1432: 1419: 1375: 1362: 1137: 1124: 903: 890: 878: 865: 853: 840: 748: 735: 723: 710: 549: 536: 478: 465: 356: 343: 331: 318: 3364:, Daniel R. L. Brown, IACR ePrint 2006/117. 3048: 3046: 3044: 1586:{\displaystyle G(s)=G_{0}(s)\Vert G_{1}(s)} 439:, which outputs 1 or 0 as a distinguisher, 104:. Unsourced material may be challenged and 40:cryptographic pseudorandom number generator 3423: 3409: 3401: 3397: 2583:Foundations of cryptography I: Basic Tools 2558:Foundations of cryptography I: Basic Tools 2202:even if the initial state is compromised. 3139: 3053:Campagna, Matthew J. (November 1, 2006). 2585:, Cambridge: Cambridge University Press, 2560:, Cambridge: Cambridge University Press, 1838:Designs based on cryptographic primitives 1770: 1764: 1743: 1737: 1692: 1677: 1668: 1666: 1640: 1632: 1624: 1609: 1600: 1598: 1568: 1546: 1525: 1490: 1460: 1435: 1411: 1378: 1360: 1339: 1333: 1303: 1290: 1271: 1258: 1249: 1219: 1206: 1187: 1174: 1165: 1140: 1122: 1101: 1095: 1070: 1064: 1037: 1031: 1010: 1004: 977: 971: 942: 936: 906: 881: 856: 831: 825: 796: 751: 726: 701: 695: 654: 634: 552: 529: 481: 458: 447: 397: 359: 334: 309: 303: 124:Learn how and when to remove this message 2964:"cr.yp.to: 2014.02.05: Entropy Attacks!" 2505: 2503: 2460:Katz, Jonathan; Lindell, Yehuda (2008). 1873:The NIST CTR_DRBG scheme erases the key 194:requires a higher quality, such as more 166:in certain signature schemes, including 3078:Perlroth, Nicole (September 10, 2013). 2680:The Collected Works of John von Neumann 2452: 2433: 2050:, but all main implementations now use 1962:, based on the assumed hardness of the 240:bits of a random sequence, there is no 3336:, Randomness Requirements for Security 2888:Young, Adam; Yung, Moti (2004-02-01). 2084:standard as well. It takes as input a 56:cryptographic random number generator 7: 3181:Nicole Perlroth (5 September 2013). 2096:and (the initial value of) a 64-bit 1965:Decisional Diffie–Hellman assumption 1355:are chosen uniformly at random from 102:adding citations to reliable sources 3233:Matthew Green (20 September 2013). 3207:Bruce Schneier (15 November 2007). 2463:Introduction to Modern Cryptography 2111:to the maximum resolution possible. 1117:is chosen uniformly at random from 3023:Ye, Katherine Qinru (April 2016). 2300:, NIST Special Publication 800-22. 2286:A good reference is maintained by 1059:and the pseudorandom output block 25: 2998:Kan, Wilson (September 4, 2007). 2225:The third PRNG in this standard, 1880:Post-Quantum Cryptography Project 1721:{\displaystyle |G_{1}(s)|=p(k)-k} 433:computationally indistinguishable 3773: 3772: 3248:Joseph Menn (20 December 2013). 2874:Handbook of Applied Cryptography 1958:wrote a 2006 security proof for 1654:{\displaystyle |G_{0}(s)|=|s|=k} 244:algorithm that can predict the ( 232:Every CSPRNG should satisfy the 74: 2194:has been suggested. If the key 2080:), which has been adopted as a 962:is the current state at period 3634:Information-theoretic security 2422:crack it and read its messages 2412:Japanese PURPLE cipher machine 2279:ANSI X9.31-1998 Appendix A.2.4 1732:is a forward secure PRNG with 1709: 1703: 1693: 1689: 1683: 1669: 1641: 1633: 1625: 1621: 1615: 1601: 1580: 1574: 1558: 1552: 1536: 1530: 1501: 1495: 1470: 1464: 1441: 1396:{\displaystyle \{0,1\}^{t(k)}} 1388: 1382: 1315: 1251: 1231: 1167: 916: 910: 862: 807: 801: 761: 755: 732: 659: 610: 604: 590: 581: 575: 569: 562: 556: 533: 519: 510: 507: 501: 495: 489: 462: 408: 402: 369: 363: 340: 54:. It is also referred to as a 1: 2341:pseudorandom number generator 2107:Obtain the current date/time 1951:but is also very inefficient. 1934:quadratic residuosity problem 1026:) consists of the next state 390:pseudorandom number generator 48:pseudorandom number generator 2046:. It originally is based on 1861:Advanced Encryption Standard 3750:Message authentication code 3705:Cryptographic hash function 3508:Cryptographic hash function 2768:"Github commit of random.c" 1899:A cryptographically secure 1149:{\displaystyle \{0,1\}^{k}} 236:. That is, given the first 3829: 3629:Harvest now, decrypt later 3144:– via csrc.nist.gov. 2393:University of Pennsylvania 2331:reported in 2013 that the 2313: 2276:ANSI X9.17-1985 Appendix C 2155:, where ⊕ denotes bitwise 2114:Compute a temporary value 1949:discrete logarithm problem 1859:. CTR_DBRG typically uses 1793: 138:cryptographic applications 3768: 3745:Post-quantum cryptography 3400: 3141:10.6028/NIST.SP.800-22r1a 2816:. CVS. November 16, 2014. 2814:"CVS log of arc4random.c" 2800:"CVS log of arc4random.c" 2713:. Elsevier. p. 256. 2134:Compute the random value 931:, where the input string 420:{\displaystyle p(k)>k} 3813:Cryptographic primitives 3803:Cryptographic algorithms 3735:Quantum key distribution 3725:Authenticated encryption 3580:Random number generation 2646:University of California 2581:Goldreich, Oded (2001), 2556:Goldreich, Oded (2001), 2525:10.1007/3-540-69710-1_12 2513:Fast Software Encryption 2397:Johns Hopkins University 2333:National Security Agency 1923:Number-theoretic designs 668:{\displaystyle x\gets X} 431:), and if its output is 3730:Public-key cryptography 3720:Symmetric-key algorithm 3513:Key derivation function 3473:Cryptographic primitive 3466:Authentication protocol 3451:Outline of cryptography 3446:History of cryptography 2936:10.1007/3-540-46513-8_2 2802:. CVS. October 1, 2013. 2770:. Github. July 2, 2016. 2406:virtual private network 1974:truncated point problem 1052:{\displaystyle s_{i+1}} 992:{\displaystyle s_{i+1}} 791:PRNG with block length 683:at random from the set 3518:Secure Hash Algorithms 3461:Cryptographic protocol 2009:in Unix-like systems. 1780: 1759:as the next state and 1753: 1722: 1655: 1587: 1514: 1513:{\displaystyle p(k)-k} 1479: 1397: 1349: 1322: 1238: 1150: 1111: 1080: 1053: 1020: 993: 952: 925: 814: 770: 669: 643: 617: 421: 378: 225:They pass statistical 154:initialization vectors 144:numbers, for example: 3624:End-to-end encryption 3570:Cryptojacking malware 2896:John Wiley & Sons 2752:Bernstein, Daniel J. 2466:. CRC press. p.  2375:On October 23, 2017, 2268:NIST SP 800-90A Rev.1 1945:Blum–Micali algorithm 1938:integer factorization 1781: 1779:{\displaystyle G_{1}} 1754: 1752:{\displaystyle G_{0}} 1723: 1656: 1588: 1515: 1480: 1398: 1350: 1348:{\displaystyle r_{i}} 1323: 1239: 1151: 1112: 1110:{\displaystyle s_{1}} 1081: 1079:{\displaystyle y_{i}} 1054: 1021: 1019:{\displaystyle y_{i}} 994: 953: 951:{\displaystyle s_{i}} 926: 815: 771: 670: 644: 618: 422: 379: 204:information-theoretic 198:. And in the case of 3740:Quantum cryptography 3664:Trusted timestamping 2686:. pp. 768–770. 2648:. pp. 434–440. 2408:(VPN) connections." 1855:in SP 800-90A calls 1826:cryptographic hashes 1796:Randomness extractor 1763: 1736: 1665: 1597: 1524: 1489: 1410: 1359: 1332: 1248: 1164: 1121: 1094: 1063: 1030: 1003: 970: 935: 824: 813:{\displaystyle t(k)} 795: 694: 653: 642:{\displaystyle \mu } 633: 446: 396: 384:for some polynomial 302: 98:improve this section 3493:Cryptographic nonce 2960:Daniel J. Bernstein 2491:Andrew Chi-Chih Yao 2442:Daniel J. Bernstein 2005:Implementations of 1970:x-logarithm problem 628:negligible function 3609:Subliminal channel 3593:Pseudorandom noise 3535:Key (cryptography) 3345:2008-12-02 at the 3187:The New York Times 3086:The New York Times 2858:van Oorschot, Paul 2328:The New York Times 2032:to ingest entropy. 1790:Entropy extraction 1776: 1749: 1718: 1651: 1583: 1510: 1475: 1393: 1345: 1318: 1234: 1146: 1107: 1076: 1049: 1016: 989: 966:, and the output ( 948: 921: 810: 766: 665: 639: 613: 568: 488: 417: 374: 296:asymptotic setting 3790: 3789: 3786: 3785: 3669:Key-based routing 3659:Trapdoor function 3525:Digital signature 3307:. 25 October 2017 2945:978-3-540-67185-5 2905:978-0-7645-4975-5 2606:Dodis, Yevgeniy, 2592:978-0-511-54689-1 2567:978-0-511-54689-1 2534:978-3-540-64265-7 2335:(NSA) inserted a 2250:security strength 1993:Practical schemes 525: 454: 134: 133: 126: 16:(Redirected from 3820: 3776: 3775: 3604:Insecure channel 3456:Classical cipher 3425: 3418: 3411: 3402: 3398: 3317: 3316: 3314: 3312: 3297: 3291: 3290: 3284: 3272:Matthew D. Green 3264: 3258: 3257: 3245: 3239: 3238: 3230: 3224: 3223: 3221: 3219: 3204: 3198: 3197: 3195: 3193: 3178: 3172: 3171: 3169: 3167: 3152: 3146: 3145: 3143: 3122: 3116: 3115: 3103: 3097: 3096: 3094: 3092: 3083: 3075: 3069: 3068: 3066: 3064: 3059: 3050: 3039: 3038: 3036: 3034: 3029: 3020: 3014: 3013: 3011: 3009: 3004: 2995: 2989: 2988: 2986: 2978: 2972: 2971: 2956: 2950: 2949: 2925: 2916: 2910: 2909: 2885: 2879: 2878: 2870: 2850: 2844: 2843: 2841: 2839: 2824: 2818: 2817: 2810: 2804: 2803: 2796: 2790: 2789: 2786:www.phoronix.com 2778: 2772: 2771: 2764: 2758: 2757: 2749: 2743: 2742: 2740: 2731: 2725: 2724: 2704: 2698: 2697: 2676:John von Neumann 2672: 2666: 2665: 2663: 2662: 2639: 2630: 2624: 2622: 2621: 2619: 2614: 2603: 2597: 2596:, Theorem 3.3.7. 2595: 2578: 2572: 2570: 2553: 2547: 2546: 2518: 2507: 2498: 2488: 2482: 2481: 2457: 2445: 2438: 2229:, is based on a 2182: 2162:Update the seed 2154: 2130: 2076:X9.17 standard ( 2045: 1954:Daniel Brown of 1896:, to name a few. 1806:simple algorithm 1802:John von Neumann 1785: 1783: 1782: 1777: 1775: 1774: 1758: 1756: 1755: 1750: 1748: 1747: 1731: 1727: 1725: 1724: 1719: 1696: 1682: 1681: 1672: 1660: 1658: 1657: 1652: 1644: 1636: 1628: 1614: 1613: 1604: 1592: 1590: 1589: 1584: 1573: 1572: 1551: 1550: 1519: 1517: 1516: 1511: 1484: 1482: 1481: 1476: 1474: 1473: 1440: 1439: 1402: 1400: 1399: 1394: 1392: 1391: 1354: 1352: 1351: 1346: 1344: 1343: 1327: 1325: 1324: 1319: 1314: 1313: 1295: 1294: 1276: 1275: 1263: 1262: 1243: 1241: 1240: 1235: 1230: 1229: 1211: 1210: 1192: 1191: 1179: 1178: 1159: 1155: 1153: 1152: 1147: 1145: 1144: 1116: 1114: 1113: 1108: 1106: 1105: 1089: 1085: 1083: 1082: 1077: 1075: 1074: 1058: 1056: 1055: 1050: 1048: 1047: 1025: 1023: 1022: 1017: 1015: 1014: 998: 996: 995: 990: 988: 987: 965: 961: 957: 955: 954: 949: 947: 946: 930: 928: 927: 922: 920: 919: 886: 885: 861: 860: 836: 835: 819: 817: 816: 811: 783: 779: 775: 773: 772: 767: 765: 764: 731: 730: 706: 705: 686: 678: 674: 672: 671: 666: 649:. (The notation 648: 646: 645: 640: 622: 620: 619: 614: 597: 593: 567: 566: 565: 487: 486: 485: 438: 430: 426: 424: 423: 418: 387: 383: 381: 380: 375: 373: 372: 339: 338: 314: 313: 227:randomness tests 177:token generation 129: 122: 118: 115: 109: 78: 70: 21: 3828: 3827: 3823: 3822: 3821: 3819: 3818: 3817: 3793: 3792: 3791: 3782: 3764: 3693: 3434: 3429: 3347:Wayback Machine 3326: 3321: 3320: 3310: 3308: 3299: 3298: 3294: 3282: 3266: 3265: 3261: 3247: 3246: 3242: 3232: 3231: 3227: 3217: 3215: 3206: 3205: 3201: 3191: 3189: 3180: 3179: 3175: 3165: 3163: 3154: 3153: 3149: 3124: 3123: 3119: 3108:"Random Number" 3105: 3104: 3100: 3090: 3088: 3077: 3076: 3072: 3062: 3060: 3057: 3052: 3051: 3042: 3032: 3030: 3027: 3022: 3021: 3017: 3007: 3005: 3002: 2997: 2996: 2992: 2984: 2980: 2979: 2975: 2958: 2957: 2953: 2946: 2923: 2918: 2917: 2913: 2906: 2887: 2886: 2882: 2868: 2862:Vanstone, Scott 2854:Menezes, Alfred 2852: 2851: 2847: 2837: 2835: 2826: 2825: 2821: 2812: 2811: 2807: 2798: 2797: 2793: 2780: 2779: 2775: 2766: 2765: 2761: 2751: 2750: 2746: 2738: 2733: 2732: 2728: 2721: 2706: 2705: 2701: 2694: 2674: 2673: 2669: 2660: 2658: 2656: 2637: 2632: 2631: 2627: 2617: 2615: 2612: 2605: 2604: 2600: 2593: 2580: 2579: 2575: 2568: 2555: 2554: 2550: 2535: 2516: 2509: 2508: 2501: 2489: 2485: 2478: 2459: 2458: 2454: 2449: 2448: 2439: 2435: 2430: 2414: 2373: 2345:NIST SP 800-90A 2318: 2312: 2307: 2273: 2265: 2218:NIST SP 800-90A 2208: 2186: 2172: 2163: 2144: 2135: 2124: 2115: 2090:keying option 2 2043: 1995: 1925: 1840: 1814: 1798: 1792: 1766: 1761: 1760: 1739: 1734: 1733: 1729: 1673: 1663: 1662: 1605: 1595: 1594: 1564: 1542: 1522: 1521: 1487: 1486: 1456: 1431: 1408: 1407: 1374: 1357: 1356: 1335: 1330: 1329: 1328:, in which the 1299: 1286: 1267: 1254: 1246: 1245: 1215: 1202: 1183: 1170: 1162: 1161: 1160:, the sequence 1157: 1156:, then for any 1136: 1119: 1118: 1097: 1092: 1091: 1087: 1066: 1061: 1060: 1033: 1028: 1027: 1006: 1001: 1000: 973: 968: 967: 963: 959: 938: 933: 932: 902: 877: 852: 827: 822: 821: 793: 792: 781: 777: 747: 722: 697: 692: 691: 684: 676: 651: 650: 631: 630: 548: 477: 453: 449: 444: 443: 436: 428: 394: 393: 385: 355: 330: 305: 300: 299: 292: 247: 242:polynomial-time 239: 219: 130: 119: 113: 110: 95: 79: 68: 28: 23: 22: 15: 12: 11: 5: 3826: 3824: 3816: 3815: 3810: 3805: 3795: 3794: 3788: 3787: 3784: 3783: 3781: 3780: 3769: 3766: 3765: 3763: 3762: 3757: 3755:Random numbers 3752: 3747: 3742: 3737: 3732: 3727: 3722: 3717: 3712: 3707: 3701: 3699: 3695: 3694: 3692: 3691: 3686: 3681: 3679:Garlic routing 3676: 3671: 3666: 3661: 3656: 3651: 3646: 3641: 3636: 3631: 3626: 3621: 3616: 3611: 3606: 3601: 3599:Secure channel 3596: 3590: 3589: 3588: 3577: 3572: 3567: 3562: 3557: 3555:Key stretching 3552: 3547: 3542: 3537: 3532: 3527: 3522: 3521: 3520: 3515: 3510: 3500: 3498:Cryptovirology 3495: 3490: 3485: 3483:Cryptocurrency 3480: 3475: 3470: 3469: 3468: 3458: 3453: 3448: 3442: 3440: 3436: 3435: 3430: 3428: 3427: 3420: 3413: 3405: 3395: 3394: 3389: 3383: 3377: 3371: 3365: 3359: 3354: 3349: 3337: 3325: 3324:External links 3322: 3319: 3318: 3292: 3287:duhkattack.com 3276:Nadia Heninger 3268:Shaanan Cohney 3259: 3240: 3225: 3199: 3173: 3147: 3117: 3098: 3070: 3040: 3015: 2990: 2973: 2962:(2014-02-05). 2951: 2944: 2911: 2904: 2898:. sect 3.5.1. 2880: 2845: 2834:. 5 March 2019 2819: 2805: 2791: 2773: 2759: 2744: 2726: 2719: 2699: 2692: 2684:Pergamon Press 2667: 2654: 2625: 2598: 2591: 2573: 2566: 2548: 2533: 2499: 2483: 2477:978-1584885511 2476: 2451: 2450: 2447: 2446: 2432: 2431: 2429: 2426: 2413: 2410: 2389:cryptographers 2385:Nadia Heninger 2377:Shaanan Cohney 2372: 2369: 2357:Edward Snowden 2314:Main article: 2311: 2308: 2306: 2305:Security flaws 2303: 2302: 2301: 2284: 2283: 2280: 2277: 2271: 2270: 2269: 2263:NSA backdoor. 2239:security level 2222: 2221: 2220: 2215: 2207: 2204: 2188: 2187: 2185: 2184: 2168: 2160: 2140: 2132: 2120: 2112: 2104: 2071: 2059:CryptGenRandom 2055: 2035: 2034: 2033: 2026: 2020: 1994: 1991: 1990: 1989: 1952: 1941: 1930:Blum Blum Shub 1924: 1921: 1920: 1919: 1908: 1897: 1886: 1885: 1884: 1871: 1839: 1836: 1835: 1834: 1828: 1813: 1810: 1804:proved that a 1794:Main article: 1791: 1788: 1773: 1769: 1746: 1742: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1695: 1691: 1688: 1685: 1680: 1676: 1671: 1650: 1647: 1643: 1639: 1635: 1631: 1627: 1623: 1620: 1617: 1612: 1608: 1603: 1582: 1579: 1576: 1571: 1567: 1563: 1560: 1557: 1554: 1549: 1545: 1541: 1538: 1535: 1532: 1529: 1509: 1506: 1503: 1500: 1497: 1494: 1472: 1469: 1466: 1463: 1459: 1455: 1452: 1449: 1446: 1443: 1438: 1434: 1430: 1427: 1424: 1421: 1418: 1415: 1390: 1387: 1384: 1381: 1377: 1373: 1370: 1367: 1364: 1342: 1338: 1317: 1312: 1309: 1306: 1302: 1298: 1293: 1289: 1285: 1282: 1279: 1274: 1270: 1266: 1261: 1257: 1253: 1233: 1228: 1225: 1222: 1218: 1214: 1209: 1205: 1201: 1198: 1195: 1190: 1186: 1182: 1177: 1173: 1169: 1143: 1139: 1135: 1132: 1129: 1126: 1104: 1100: 1073: 1069: 1046: 1043: 1040: 1036: 1013: 1009: 986: 983: 980: 976: 945: 941: 918: 915: 912: 909: 905: 901: 898: 895: 892: 889: 884: 880: 876: 873: 870: 867: 864: 859: 855: 851: 848: 845: 842: 839: 834: 830: 809: 806: 803: 800: 789:forward-secure 763: 760: 757: 754: 750: 746: 743: 740: 737: 734: 729: 725: 721: 718: 715: 712: 709: 704: 700: 664: 661: 658: 638: 624: 623: 612: 609: 606: 603: 600: 596: 592: 589: 586: 583: 580: 577: 574: 571: 564: 561: 558: 555: 551: 547: 544: 541: 538: 535: 532: 528: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 484: 480: 476: 473: 470: 467: 464: 461: 457: 452: 416: 413: 410: 407: 404: 401: 371: 368: 365: 362: 358: 354: 351: 348: 345: 342: 337: 333: 329: 326: 323: 320: 317: 312: 308: 291: 288: 265: 264: 263: 262: 255: 254: 253: 245: 237: 218: 215: 180: 179: 174: 161: 156: 151: 149:key generation 132: 131: 82: 80: 73: 67: 64: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3825: 3814: 3811: 3809: 3806: 3804: 3801: 3800: 3798: 3779: 3771: 3770: 3767: 3761: 3760:Steganography 3758: 3756: 3753: 3751: 3748: 3746: 3743: 3741: 3738: 3736: 3733: 3731: 3728: 3726: 3723: 3721: 3718: 3716: 3715:Stream cipher 3713: 3711: 3708: 3706: 3703: 3702: 3700: 3696: 3690: 3687: 3685: 3682: 3680: 3677: 3675: 3674:Onion routing 3672: 3670: 3667: 3665: 3662: 3660: 3657: 3655: 3654:Shared secret 3652: 3650: 3647: 3645: 3642: 3640: 3637: 3635: 3632: 3630: 3627: 3625: 3622: 3620: 3617: 3615: 3612: 3610: 3607: 3605: 3602: 3600: 3597: 3594: 3591: 3586: 3583: 3582: 3581: 3578: 3576: 3573: 3571: 3568: 3566: 3563: 3561: 3558: 3556: 3553: 3551: 3548: 3546: 3545:Key generator 3543: 3541: 3538: 3536: 3533: 3531: 3528: 3526: 3523: 3519: 3516: 3514: 3511: 3509: 3506: 3505: 3504: 3503:Hash function 3501: 3499: 3496: 3494: 3491: 3489: 3486: 3484: 3481: 3479: 3478:Cryptanalysis 3476: 3474: 3471: 3467: 3464: 3463: 3462: 3459: 3457: 3454: 3452: 3449: 3447: 3444: 3443: 3441: 3437: 3433: 3426: 3421: 3419: 3414: 3412: 3407: 3406: 3403: 3399: 3393: 3390: 3387: 3384: 3381: 3378: 3375: 3372: 3369: 3366: 3363: 3360: 3358: 3355: 3353: 3350: 3348: 3344: 3341: 3338: 3335: 3331: 3328: 3327: 3323: 3306: 3302: 3296: 3293: 3288: 3281: 3277: 3273: 3269: 3263: 3260: 3255: 3251: 3244: 3241: 3236: 3229: 3226: 3214: 3210: 3203: 3200: 3188: 3184: 3177: 3174: 3162: 3158: 3151: 3148: 3142: 3137: 3133: 3129: 3121: 3118: 3113: 3109: 3102: 3099: 3087: 3082: 3074: 3071: 3056: 3049: 3047: 3045: 3041: 3026: 3019: 3016: 3001: 2994: 2991: 2983: 2977: 2974: 2970: 2965: 2961: 2955: 2952: 2947: 2941: 2937: 2933: 2929: 2922: 2915: 2912: 2907: 2901: 2897: 2893: 2892: 2884: 2881: 2876: 2875: 2867: 2863: 2859: 2855: 2849: 2846: 2833: 2829: 2823: 2820: 2815: 2809: 2806: 2801: 2795: 2792: 2787: 2783: 2777: 2774: 2769: 2763: 2760: 2755: 2748: 2745: 2737: 2730: 2727: 2722: 2720:9780123868862 2716: 2712: 2711: 2703: 2700: 2695: 2693:0-08-009566-6 2689: 2685: 2681: 2677: 2671: 2668: 2657: 2655:0-8186-0591-X 2651: 2647: 2643: 2636: 2629: 2626: 2611: 2610: 2602: 2599: 2594: 2588: 2584: 2577: 2574: 2569: 2563: 2559: 2552: 2549: 2544: 2540: 2536: 2530: 2526: 2522: 2515: 2514: 2506: 2504: 2500: 2496: 2492: 2487: 2484: 2479: 2473: 2469: 2465: 2464: 2456: 2453: 2443: 2437: 2434: 2427: 2425: 2423: 2419: 2411: 2409: 2407: 2402: 2398: 2394: 2390: 2386: 2382: 2381:Matthew Green 2378: 2370: 2368: 2366: 2362: 2361:kleptographic 2358: 2354: 2350: 2346: 2342: 2338: 2334: 2330: 2329: 2324: 2323: 2317: 2309: 2304: 2299: 2296: 2295: 2294: 2291: 2289: 2281: 2278: 2275: 2274: 2267: 2266: 2264: 2262: 2261:kleptographic 2258: 2253: 2251: 2246: 2242: 2240: 2236: 2232: 2228: 2219: 2216: 2213: 2212: 2211: 2205: 2203: 2199: 2197: 2193: 2180: 2176: 2171: 2166: 2161: 2158: 2152: 2148: 2143: 2138: 2133: 2128: 2123: 2118: 2113: 2110: 2106: 2105: 2102: 2099: 2095: 2092:) key bundle 2091: 2087: 2083: 2079: 2075: 2072: 2069: 2065: 2061: 2060: 2056: 2053: 2049: 2041: 2040: 2036: 2031: 2027: 2024: 2021: 2018: 2014: 2011: 2010: 2008: 2004: 2003: 2002: 2000: 1992: 1987: 1983: 1979: 1975: 1971: 1967: 1966: 1961: 1957: 1953: 1950: 1946: 1942: 1939: 1935: 1931: 1927: 1926: 1922: 1917: 1913: 1909: 1906: 1902: 1898: 1895: 1891: 1887: 1881: 1876: 1872: 1869: 1865: 1864: 1862: 1858: 1854: 1850: 1846: 1842: 1841: 1837: 1833: 1829: 1827: 1823: 1819: 1818: 1817: 1811: 1809: 1807: 1803: 1797: 1789: 1787: 1771: 1767: 1744: 1740: 1715: 1712: 1706: 1700: 1697: 1686: 1678: 1674: 1648: 1645: 1637: 1629: 1618: 1610: 1606: 1577: 1569: 1565: 1555: 1547: 1543: 1539: 1533: 1527: 1507: 1504: 1498: 1492: 1467: 1461: 1453: 1450: 1447: 1436: 1428: 1425: 1422: 1416: 1413: 1404: 1385: 1379: 1371: 1368: 1365: 1340: 1336: 1310: 1307: 1304: 1300: 1296: 1291: 1287: 1283: 1280: 1277: 1272: 1268: 1264: 1259: 1255: 1226: 1223: 1220: 1216: 1212: 1207: 1203: 1199: 1196: 1193: 1188: 1184: 1180: 1175: 1171: 1141: 1133: 1130: 1127: 1102: 1098: 1071: 1067: 1044: 1041: 1038: 1034: 1011: 1007: 984: 981: 978: 974: 943: 939: 913: 907: 899: 896: 893: 887: 882: 874: 871: 868: 857: 849: 846: 843: 837: 832: 828: 804: 798: 790: 785: 758: 752: 744: 741: 738: 727: 719: 716: 713: 707: 702: 698: 688: 682: 662: 656: 636: 629: 607: 601: 598: 594: 587: 584: 578: 572: 559: 553: 545: 542: 539: 530: 522: 516: 513: 504: 498: 492: 482: 474: 471: 468: 459: 450: 442: 441: 440: 434: 414: 411: 405: 399: 391: 366: 360: 352: 349: 346: 335: 327: 324: 321: 315: 310: 306: 297: 289: 287: 285: 284:cryptanalysis 280: 276: 274: 273:normal number 270: 259: 258: 256: 251: 243: 235: 234:next-bit test 231: 230: 228: 224: 223: 222: 216: 214: 212: 207: 205: 201: 200:one-time pads 197: 193: 189: 185: 178: 175: 173: 169: 165: 162: 160: 157: 155: 152: 150: 147: 146: 145: 143: 139: 128: 125: 117: 107: 103: 99: 93: 92: 88: 83:This section 81: 77: 72: 71: 65: 63: 61: 57: 53: 49: 45: 41: 37: 33: 19: 3754: 3710:Block cipher 3584: 3550:Key schedule 3540:Key exchange 3530:Kleptography 3488:Cryptosystem 3432:Cryptography 3309:. Retrieved 3305:slashdot.org 3304: 3295: 3286: 3262: 3253: 3243: 3228: 3216:. Retrieved 3212: 3202: 3190:. Retrieved 3186: 3176: 3164:. Retrieved 3161:The Guardian 3160: 3150: 3131: 3120: 3111: 3101: 3091:November 19, 3089:. Retrieved 3085: 3073: 3063:November 19, 3061:. Retrieved 3033:November 19, 3031:. Retrieved 3018: 3008:November 19, 3006:. Retrieved 2993: 2982:"FIPS 186-4" 2976: 2967: 2954: 2927: 2914: 2890: 2883: 2877:. CRC Press. 2873: 2848: 2836:. Retrieved 2831: 2822: 2808: 2794: 2785: 2776: 2762: 2747: 2729: 2709: 2702: 2679: 2670: 2659:. Retrieved 2641: 2628: 2616:, retrieved 2608: 2601: 2582: 2576: 2571:, def 3.3.1. 2557: 2551: 2512: 2486: 2462: 2455: 2436: 2418:World War II 2415: 2374: 2365:RSA Security 2353:The Guardian 2352: 2349:Dual EC DRBG 2326: 2322:The Guardian 2320: 2319: 2316:Dual_EC_DRBG 2297: 2292: 2285: 2257:Dual EC DRBG 2254: 2247: 2243: 2235:counter mode 2231:block cipher 2224: 2209: 2200: 2195: 2189: 2178: 2174: 2169: 2164: 2157:exclusive or 2150: 2146: 2141: 2136: 2126: 2121: 2116: 2108: 2100: 2093: 2077: 2057: 2037: 1996: 1985: 1981: 1977: 1973: 1969: 1963: 1960:Dual EC DRBG 1874: 1849:counter mode 1845:block cipher 1815: 1799: 1405: 958:with length 788: 786: 689: 625: 293: 281: 277: 266: 220: 217:Requirements 208: 181: 135: 120: 111: 96:Please help 84: 59: 55: 52:cryptography 43: 39: 35: 31: 29: 3698:Mathematics 3689:Mix network 3218:7 September 3192:7 September 3166:7 September 3112:CSRC | NIST 2832:FreeBSD.org 2371:DUHK attack 2233:running in 2098:random seed 2044:/dev/random 2007:/dev/random 1593:, in which 675:means that 290:Definitions 3797:Categories 3649:Ciphertext 3619:Decryption 3614:Encryption 3575:Ransomware 3311:25 October 2661:2006-11-29 2428:References 2343:(PRNG) of 2214:FIPS 186-4 2062:, part of 2039:arc4random 1972:, and the 1086:of period 820:is a PRNG 679:is chosen 250:Andrew Yao 172:RSASSA-PSS 66:Background 3639:Plaintext 2838:24 August 2618:3 January 2543:0302-9743 2206:Standards 2068:CryptoAPI 2064:Microsoft 1916:HMAC_DRBG 1905:Hash_DRBG 1843:A secure 1713:− 1562:‖ 1505:− 1442:→ 1417:: 1406:Any PRNG 1281:… 1197:… 888:× 863:→ 838:: 733:→ 708:: 681:uniformly 660:← 637:μ 626:for some 602:μ 534:← 523:− 463:← 341:→ 316:: 188:protocols 114:June 2024 85:does not 3778:Category 3684:Kademlia 3644:Codetext 3587:(CSPRNG) 3565:Machines 3343:Archived 2969:argument 2864:(1996). 2623:, def 4. 2337:backdoor 2227:CTR_DRBG 2052:ChaCha20 1956:Certicom 1894:ChaCha20 1857:CTR_DRBG 427:for any 186:in some 140:require 3439:General 3254:Reuters 2416:During 2391:at the 2339:into a 2030:BLAKE2s 2023:Fortuna 1863:(AES). 1822:ciphers 1812:Designs 1728:; then 388:, is a 294:In the 196:entropy 106:removed 91:sources 46:) is a 3560:Keygen 3332:  2942:  2902:  2717:  2690:  2652:  2589:  2564:  2541:  2531:  2474:  2383:, and 2167:= TDEA 2139:= TDEA 2119:= TDEA 2013:Yarrow 1978:outlen 1968:, the 1892:, and 202:, the 159:nonces 142:random 36:CSPRNG 3595:(PRN) 3283:(PDF) 3213:Wired 3058:(PDF) 3028:(PDF) 3003:(PDF) 2985:(PDF) 2924:(PDF) 2869:(PDF) 2739:(PDF) 2638:(PDF) 2613:(PDF) 2517:(PDF) 2017:macOS 1890:ISAAC 1875:after 184:nonce 168:ECDSA 164:salts 136:Most 44:CPRNG 38:) or 3334:4086 3313:2017 3220:2013 3194:2013 3168:2013 3132:NIST 3093:2016 3065:2016 3035:2016 3010:2016 2940:ISBN 2900:ISBN 2840:2019 2715:ISBN 2688:ISBN 2650:ISBN 2620:2016 2587:ISBN 2562:ISBN 2539:ISSN 2529:ISBN 2472:ISBN 2401:WPA2 2395:and 2325:and 2288:NIST 2086:TDEA 2082:FIPS 2074:ANSI 1999:seed 1984:and 1943:The 1928:The 1912:HMAC 1901:hash 1866:AES- 1853:NIST 1832:hard 1824:and 1661:and 599:< 412:> 170:and 89:any 87:cite 60:CRNG 3330:RFC 3136:doi 2932:doi 2521:doi 2355:by 2192:AES 2066:'s 2048:RC4 1910:An 1868:CTR 687:.) 211:API 192:key 100:by 62:). 3799:: 3303:. 3285:. 3278:. 3274:; 3270:; 3252:. 3211:. 3185:. 3159:. 3134:. 3130:. 3110:. 3084:. 3043:^ 2966:. 2938:. 2926:. 2894:. 2871:. 2860:; 2856:; 2830:. 2784:. 2682:. 2644:. 2640:. 2537:. 2527:. 2502:^ 2493:. 2470:. 2468:70 2387:, 2379:, 2290:. 2177:⊕ 2149:⊕ 2054:. 1403:. 999:, 787:A 776:, 527:Pr 456:Pr 286:. 269:pi 229:: 30:A 3424:e 3417:t 3410:v 3315:. 3289:. 3256:. 3237:. 3222:. 3196:. 3170:. 3138:: 3114:. 3095:. 3067:. 3037:. 3012:. 2987:. 2948:. 2934:: 2908:. 2842:. 2788:. 2756:. 2741:. 2723:. 2696:. 2664:. 2545:. 2523:: 2480:. 2444:. 2196:k 2183:. 2181:) 2179:t 2175:x 2173:( 2170:k 2165:s 2159:. 2153:) 2151:t 2147:s 2145:( 2142:k 2137:x 2131:. 2129:) 2127:D 2125:( 2122:k 2117:t 2109:D 2101:s 2094:k 2088:( 1986:Q 1982:P 1918:. 1907:. 1772:1 1768:G 1745:0 1741:G 1730:G 1716:k 1710:) 1707:k 1704:( 1701:p 1698:= 1694:| 1690:) 1687:s 1684:( 1679:1 1675:G 1670:| 1649:k 1646:= 1642:| 1638:s 1634:| 1630:= 1626:| 1622:) 1619:s 1616:( 1611:0 1607:G 1602:| 1581:) 1578:s 1575:( 1570:1 1566:G 1559:) 1556:s 1553:( 1548:0 1544:G 1540:= 1537:) 1534:s 1531:( 1528:G 1508:k 1502:) 1499:k 1496:( 1493:p 1471:) 1468:k 1465:( 1462:p 1458:} 1454:1 1451:, 1448:0 1445:{ 1437:k 1433:} 1429:1 1426:, 1423:0 1420:{ 1414:G 1389:) 1386:k 1383:( 1380:t 1376:} 1372:1 1369:, 1366:0 1363:{ 1341:i 1337:r 1316:) 1311:1 1308:+ 1305:i 1301:s 1297:, 1292:i 1288:r 1284:, 1278:, 1273:2 1269:r 1265:, 1260:1 1256:r 1252:( 1232:) 1227:1 1224:+ 1221:i 1217:s 1213:, 1208:i 1204:y 1200:, 1194:, 1189:2 1185:y 1181:, 1176:1 1172:y 1168:( 1158:i 1142:k 1138:} 1134:1 1131:, 1128:0 1125:{ 1103:1 1099:s 1088:i 1072:i 1068:y 1045:1 1042:+ 1039:i 1035:s 1012:i 1008:y 985:1 982:+ 979:i 975:s 964:i 960:k 944:i 940:s 917:) 914:k 911:( 908:t 904:} 900:1 897:, 894:0 891:{ 883:k 879:} 875:1 872:, 869:0 866:{ 858:k 854:} 850:1 847:, 844:0 841:{ 833:k 829:G 808:) 805:k 802:( 799:t 782:G 778:G 762:) 759:k 756:( 753:p 749:} 745:1 742:, 739:0 736:{ 728:k 724:} 720:1 717:, 714:0 711:{ 703:k 699:G 685:X 677:x 663:X 657:x 611:) 608:k 605:( 595:| 591:] 588:1 585:= 582:) 579:r 576:( 573:A 570:[ 563:) 560:k 557:( 554:p 550:} 546:1 543:, 540:0 537:{ 531:r 520:] 517:1 514:= 511:) 508:) 505:x 502:( 499:G 496:( 493:A 490:[ 483:k 479:} 475:1 472:, 469:0 466:{ 460:x 451:| 437:A 429:k 415:k 409:) 406:k 403:( 400:p 386:p 370:) 367:k 364:( 361:p 357:} 353:1 350:, 347:0 344:{ 336:k 332:} 328:1 325:, 322:0 319:{ 311:k 307:G 246:k 238:k 127:) 121:( 116:) 112:( 108:. 94:. 58:( 42:( 34:( 20:)

Index

Cryptographically secure pseudo-random number generator
pseudorandom number generator
cryptography

cite
sources
improve this section
adding citations to reliable sources
removed
Learn how and when to remove this message
cryptographic applications
random
key generation
initialization vectors
nonces
salts
ECDSA
RSASSA-PSS
token generation
nonce
protocols
key
entropy
one-time pads
information-theoretic
API
randomness tests
next-bit test
polynomial-time
Andrew Yao

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑