| home | help | back | first | fref | pref | prev | next | nref | lref | last | post |
From: "Steven M. Bellovin" <smb@research.att.com> To: John Kelsey <kelsey.j@ix.netcom.com> Cc: "Simon Aronson" <sip99sma@rdg.ac.uk>, cryptography@c2.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 26 Jul 2000 21:49:38 -0400 Message-Id: <20000727014938.4A3AC35DCB@smb.research.att.com> In message <4.1.20000721150740.00956850@email.plnet.net> <4.1.20000721150740.00 956850@email.plnet.net>, John Kelsey writes: >-----BEGIN PGP SIGNED MESSAGE----- > >At 10:37 PM 7/19/00 -0400, Steven M. Bellovin wrote: >>The important thing is that the random number really has to be >>random and unguessable. > >There was a clever trick for doing signatures like this without a >random number generator, using the one way hash function and the >private key only. I am away from my library right now, so I can't >look up the reference, but the gist of the idea is: > >r = hash(hash(private key),hash(message)) > >and then expand r to the necessary length by one of the standard >mechanisms, e.g. > >r0 = hash(0,r) >r1 = hash(1,r) >... >r_n = hash(n,r) > >The idea is that if the hash has some nice pseudorandomness >properties and is really one-way, we get everything we need from r >(or r0,r1,...,r_n) without a random number generator. That works, though I think I'd include a counter or some such in the hash, so that the same r was not used for two identical messages. The trick is reminiscent of the way PGP uses a hash of the message as part of its pool of randomness. --Steve Bellovin
| home | help | back | first | fref | pref | prev | next | nref | lref | last | post |