From Bruce Schneider's tech security newsletter: http://www.crypto.com/papers/safelocks.pdf