Making, breaking codes an introduction to cryptology - Garrett, Paul (Prentice Hall, 2001)