next up previous
suivant: Autres problèmes d'implémentation monter: crypto5 précédent: Problèmes d'implémentation: nombres aléatoires

Problèmes d'implémentation: nombres aléatoires (II)

Ian Goldberg et David Wagner ont découvert une attaque contre l'implémentation cryptographique de Netscape, où la graine $r_0$ é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.





Frederic Schutz 2000-11-15