(Nota: non sono un crittografo, potrei essere completamente fuori base con questa risposta.: P)
Vorrei prendere qualsiasi cosa che Sam Curry abbia detto con un secchio di sale. Ha dimostrato di non sapere assolutamente nulla della criptopografia. Ecco la citazione completa.
The length of time that Dual_EC_DRBG takes can be seen as a virtue: it also slows down an attacker trying to guess the seed. Plenty of other crypto functions (PBKDF2, bcrypt, scrypt) will iterate a hash 1000 times specifically to make it slower. At the time, elliptic curves were in vogue and hash-based RNG was under scrutiny. The hope was that elliptic curve techniques—based as they are on number theory—would not suffer many of the same weaknesses as other techniques (like the FIPS 186 SHA-1 generator) that were seen as negative, and Dual_EC_DRBG was an accepted and publicly scrutinized standard. SP800-90 (which defines Dual EC DRBG) requires new features like continuous testing of the output, mandatory re-seeding, optional prediction resistance, and the ability to configure for different strengths.
test continui dell'output
Ecco una citazione da FIPS-140-2 .
Continuous random number generator test. If a cryptographic module employs Approved or nonApproved RNGs in an Approved mode of operation, the module shall perform the following continuous
random number generator test on each RNG that tests for failure to a constant value.
- If each call to a RNG produces blocks of n bits (where n > 15), the first n-bit block generated
after power-up, initialization, or reset shall not be used, but shall be saved for comparison with
the next n-bit block to be generated. Each subsequent generation of an n-bit block shall be
compared with the previously generated block. The test shall fail if any two compared n-bit
blocks are equal.
- If each call to a RNG produces fewer than 16 bits, the first n bits generated after power-up,
initialization, or reset (for some n > 15) shall not be used, but shall be saved for comparison with
the next n generated bits. Each subsequent generation of n bits shall be compared with the
previously generated n bits. The test fails if any two compared n-bit sequences are equal.
Non sono sicuro se questo è ciò a cui si stava riferendo, ma è l'unica applicazione di test in corso per quanto riguarda PRNG che posso pensare o trovare.
Come puoi vedere, questo è un test molto semplice che può passare qualsiasi PRNG decente.
resistenza di previsione
Suppongo che si stia riferendo a un utente malintenzionato che non è in grado di prevedere i successivi n bit di output di un PRNG dati i primi n-bit. Questa è l'unica cosa che ha senso per me. Non sono sicuro del perché consideri questo un vantaggio del Dual-EC-DRBG poiché qualsiasi CSPRNG deve possedere questa proprietà per essere utile.
ri-semina
Ancora una volta, non sono sicuro del motivo per cui considera questa proprietà speciale di Dual-EC-DRBG. Gli altri algoritmi definiti in SP800-90A definiscono tutti i metodi per eseguire il reseeding del PRNG.
Come molte persone hanno segnalato su Internet recentemente, i PRNG sono facilmente sostituibili. Non perderai nulla passando da Dual-EC-DRBG.