1 netscape 1 1 seeding process
play

1 Netscape 1.1 Seeding Process RNG_CreateContext() { (seconds, - PowerPoint PPT Presentation

1 Netscape 1.1 Seeding Process 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 =


  1. 1

  2. Netscape 1.1 Seeding Process 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); /* seed is a global variable */ } mklcpr(x) { /* not cryptographically significant; shown for completeness */ return ((0xDEECE66D * x + 0x2BBB62DC) >> 1); } From Goldberg and Wagner, “ Randomness and the Netscape Browser ”, Dr. Dobb’s, January 1996. 2

  3. Netscape 1.1 Key Generation RNG_GenerateRandomBytes() { x = MD5(seed); seed = seed + 1; return x; } global variable challenge, secret_key; create_key() { RNG_CreateContext(); tmp = RNG_GenerateRandomBytes(); tmp = RNG_GenerateRandomBytes(); challenge = RNG_GenerateRandomBytes(); secret_key = RNG_GenerateRandomBytes(); } From Goldberg and Wagner, “ Randomness and the Netscape Browser ”, Dr. Dobb’s, January 1996. 3

  4. Cloudflare’s Lava Lamp wall This Photo by Unknown Author is licensed under CC BY-SA-NC

  5. Jone’s PRNG Rules 1. Don’t use system generators 2. Use a known good PRNG you implemented 3. Properly seed the PRNG 5

  6. KISS Generator (G. Marsaglia) static unsigned int /* Seed variables */ x = 123456789, y = 362436000, z = 521288629, c = 7654321; unsigned int KISS() { unsigned long long t, a = 698769069ULL; x = 69069*x+12345; // y never == 0! */ y ^= (y<<13); y ^= (y>>17); y ^= (y<<5); t = a*z+c; c = (t>>32); // Also avoid setting z=c=0! return x+y+(z=t); } 6

  7. Xkcd http://xkcd.com/221/ 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend