For a key generator to be cryptographically secure, its output must have several properties: •
Uncorrelated sequences – no sequence of any given length should be correlated to any other sequence of the algorithm's output •
Long period – the sequence should not repeat for a very long time •
Uniform distribution – the output bits should be uniformly distributed •
Unpredictability – it should be computationally infeasible to predict future output given past output Key generators typically rely on sources of
entropy to seed their algorithms, which may be hardware-based (such as electronic noise or timing variations) or software-based. ==Types==