Applied cryptoography second edition protocols, algorithms and source code in C - Schneier (John Wiley, 1996)