Ian Goldberg et David Wagner ont découvert une attaque contre
l'implémentation cryptographique de Netscape, où la graine
était facilement calculable:
(
http://www.ddj.com/articles/1996/9601/9601h/9601h.htm
)
global variable seed; RNG_CreateContext() (seconds, microseconds) = time of day; /* Time elapsed since 1970 */ pid = process ID; ppid = parent process ID; a = mklcpr(microseconds); b = mklcpr(pid + seconds + (ppid << 12)); seed = MD5(a, b); mklcpr(x) /* not cryptographically significant; shown for completeness */ return ((0xDEECE66D * x + 0x2BBB62DC) >> 1); MD5() /* a very good standard mixing function, source omitted */
C'est un exemple de bon algorithme, mais avec une mauvaise implémentation.