http://www.research.microsoft.com/crypto/