Problem 4b: How do we generate secret keys?
It sounds so easy: “Just pick a random key”
No good standard source of computer randomness
- pseudorandom generators are just deterministic functions that require a random seed
- OS state (time-of-day, PID) is very low entropy
- user keyboard input is very unreliable
Best practical options aren’t very good
- inter-event timing (keyboard, network), timing loops, fast clocks and interval timers
- better would be /dev/random, or hardware generator