Cryptography theory and practice - Stinson, Douglas R. (Discrete mathematics and its applications., 2006)