On 2/14/11 at 2:46 PM, [email protected] (Shabsi Walfish) wrote:

This depends on what you consider to be the basic use case. Generating
long-lived cryptographic keys absolutely requires high quality entropy... if
you are only generating short-lived authenticators (that are not used for
encryption) then you could get away with weaker entropy. You will get the
most mileage out of this feature if it can be used to generate encryption
keys, or long-lived signing keys.

[Greetings to old friends and new. And I hope I've properly subscribed to all the right lists...]

I have a big problem with concepts such as "using up entropy", and "high quality entropy is needed." I belong to the school that says, "If I have 160 unguessable bits and can keep them secret, I can stretch them and remain secure for ever." Now there are some issues with this statement:

  * I don't really trust my stretching algorithms, based on
    secure hashes, to not leak some tiny fraction of the
    unguessable bits.

  * Keeping any secret is difficult.

  * Getting unguessable bits is a hard problem.

  * 160 may be too small.

Because of these issues, modern secure random number generators add batches of new unguessable bits from time to time.

This line of thinking leads me to say that /dev/urandom, and its Windows cousin, is good enough for any practical use. Ensuring that the seed for /dev/urandom is indeed unguessable is a problem for the OS, not the language run-time.

For ECMAscript/Javascript or whatever this group calls the language, I suggest:

  (1) Build a routine that returns /dev/urandom data to the
  caller. Implement this routine fairly quickly.

  (2) At a more leisurely pace, build a crypto API and implement
  it in the language. After the usability bugs are worked out of
  the API, standardize it. If more performance is needed, perhaps
  a platform dependent issue, build higher speed implementations
  of the standard.

[Historically, a number of crypto-based APIs have failed because developers could not figure out how to use them. Getting the usability right is probably the hardest part of designing the API.

Cheers - Bill

-----------------------------------------------------------------------
Bill Frantz        |The nice thing about standards| Periwinkle
(408)356-8506 |is there are so many to choose| 16345 Englewood Ave www.pwpconsult.com |from. - Andrew Tannenbaum | Los Gatos, CA 95032

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to