Cryptography and Network Security: Principles and Practice - William Stallings (Prentice Hall, 2003)