APPLIED CRYPTOGRAPHY - PROTOCOLS , ALGORITHMS , AND SOURCE CODE IN C by BRUCE SCHNEIER , 1996