You are here

Introduction to Cryptography with Mathematical Foundations and Computer Implementations

Alexander Stanoyevitch
Chapman & Hill/CRC
Publication Date: 
Number of Pages: 
Discrete Mathematics and Its Applications
BLL Rating: 

The Basic Library List Committee suggests that undergraduate mathematics libraries consider this book for acquisition.

[Reviewed by
Darren Glass
, on

There are many introductory cryptography textbooks on the market — as of this writing, I count at least 15 such books in the MAA Reviews database. Different books choose to emphasize different aspects of the material: some books focus on the mathematical, some on the historical, and some on the computer science aspects of the field. As such, each book has slightly different things to offer the reader, and which one is the most appropriate will depend greatly on a given reader’s interests and background. One of the more recent entries into the field is Alexander Stanoyevitch’s Introduction to Cryptography, and I found it to be a particularly good entry in a crowded field.

Stanoyevitch’s book was designed as a textbook for sophomore-level math and computer science majors, so it has very little in the way of technical prerequisites (he defines modular arithmetic and how to multiply matrices, for example) but does assume a certain level of mathematical maturity and motivation that many introductory texts do not. The topics covered in the book include all of the cryptosystems that one might expect: Vigenere, Playfair, One Time Pads, The Enigma Machine, Hill Ciphers, DES, RSA, AES, Knapsack ciphers, and Elliptic Curve Cryptosystems. Of course, covering all of these cryptosystems involves introducing quite a few ideas from Number Theory, Linear Algebra, Combinatorics, and Abstract Algebra, and Stanoyevitch does a good job of introducing just enough of those topics to cover the cryptosystems without delving into more detail than necessary. Along the way, he also details much of the history of the topics, and characters like Babbage, Rejewski, Turing, Diffie, and Hellman all make appearances. As someone who has taught cryptography courses in the past, I was particularly impressed with the scaled-down versions of DES and AES that the author describes, which seem to do a good job of capturing the key ideas behind these cryptosystems while still keeping them at a small enough size that one could actually demonstrate how they work.

Stanoyevitch’s writing style is clear and engaging, and the book has many examples illustrating the mathematical concepts throughout. Every chapter comes with a large number of exercises ranging from the computational (“Find the prime factorization of 74529”, “Use the RSA algorithm with public key (69353,4321) to encrypt the plaintext message 12345”) to the theoretical (“Show that –1 has a square root modulo a prime p if and only if p ≡ 1 (mod 4)”, “Verify that any three-round Feistel cryptosystem is self-decrypting”). Many of these exercises have worked out solutions in the rear of the book. One of the many smart decisions that the author made was to also include many computer implementations and exercises at the end of each chapter. These are separated from the main text and could easily be skipped by readers looking for a mostly theoretical point of view on the material, but could also give readers with more programming background some good opportunities to get heir hands dirty (so to speak). It is also worth noting that he has many Matlab implementations of his own on his website. All of these exercises and suggested computer implementations give the reader an opportunity to further their understanding of some material and introduce them to a large number of other topics.

It is clear that Stanoyevitch designed this book to be used by students and that he has taught this type of student many times before. The book feels carefully structured in a way that builds nicely, interspersing the less-technical material with the more-technical in a way that students will appreciate, and covering all the background material to give the reader answers to their questions just before they need them. Stanoyevitch’s book will not be the best choice for everyone who wants to learn cryptography, but it is definitely a solid choice and will be on the short list of books that I would recommend to a student wanting to learn about the field.

Darren Glass is an Associate Professor of Mathematics at Gettysburg College, where he has been teaching a first year seminar on cryptography since 2007. He can be reached at

An Overview of the Subject
Basic Concepts
One-to-One and Onto Functions, Bijections
Inverse Functions
Substitution Ciphers
Attacks on Cryptosystems
The Vigenère Cipher
The Playfair Cipher
The One-Time Pad, Perfect Secrecy

Divisibility and Modular Arithmetic
Greatest Common Divisors and Relatively Prime Integers
The Division Algorithm
The Euclidean Algorithm
Modular Arithmetic and Congruencies
Modular Integer Systems
Modular Inverses
Extended Euclidean Algorithm
Solving Linear Congruencies
The Chinese Remainder Theorem

The Evolution of Codemaking until the Computer Era
Ancient Codes
Formal Definition of a Cryptosystem
Affine Ciphers
Composition of Functions
Tabular Form Notation for Permutations
The Enigma Machines
Cycles (Cyclic Permutations)
Dissection of the Enigma Machine into Permutations
Special Properties of All Enigma Machines

Matrices and the Hill Cryptosystem
The Anatomy of a Matrix
Matrix Addition, Subtraction, and Scalar Multiplication
Matrix Multiplication
Preview of the Fact That Matrix Multiplication Is Associative
Matrix Arithmetic
Definition of an Invertible (Square) Matrix
The Determinant of a Square Matrix
Inverses of 2×2 Matrices
The Transpose of a Matrix
Modular Integer Matrices
The Classical Adjoint (for Matrix Inversions)
The Hill Cryptosystem

The Evolution of Codebreaking until the Computer Era
Frequency Analysis Attacks
The Demise of the Vigenère Cipher
The Index of Coincidence
Expected Values of the Index of Coincidence
How Enigmas Were Attacked
Invariance of Cycle Decomposition Form

Representation and Arithmetic of Integers in Different Bases
Representation of Integers in Different Bases
Hex(adecimal) and Binary Expansions
Arithmetic with Large Integers
Fast Modular Exponentiation

Block Cryptosystems and the Data Encryption Standard (DES)
The Evolution of Computers into Cryptosystems
DES Is Adopted to Fulfill an Important Need
The XOR Operation
Feistel Cryptosystems
A Scaled-Down Version of DES
The Fall of DES
Triple DES
Modes of Operation for Block Cryptosystems

Some Number Theory and Algorithms
The Prime Number Theorem
Fermat’s Little Theorem
The Euler Phi Function
Euler’s Theorem
Modular Orders of Invertible Modular Integers
Primitive Roots
Order of Powers Formula
Prime Number Generation
Fermat’s Primality Test
Carmichael Numbers
The Miller–Rabin Test
The Miller–Rabin Test with a Factoring Enhancement
The Pollard p – 1 Factoring Algorithm

Public Key Cryptography
An Informal Analogy for a Public Key Cryptosystem
The Quest for Secure Electronic Key Exchange
One-Way Functions
Review of the Discrete Logarithm Problem
The Diffie–Hellman Key Exchange
The Quest for a Complete Public Key Cryptosystem
The RSA Cryptosystem
Digital Signatures and Authentication
The El Gamal Cryptosystem
Digital Signatures with El Gamal
Knapsack Problems
The Merkle–Hellman Knapsack Cryptosystem
Government Controls on Cryptography
A Security Guarantee for RSA

Finite Fields in General and GF(28) in Particular
Binary Operations
Zp[X] = the Polynomials with Coefficients in Zp
Addition and Multiplication of Polynomials in Zp[X]
Vector Representation of Polynomials
Zp[X] Is a Ring
Divisibility in Zp[X]
The Division Algorithm for Zp[X]
Congruencies in Zp[X] Modulo a Fixed Polynomial
Building Finite Fields from Zp[X]
The Fields GF(24) and GF(28)
The Euclidean Algorithm for Polynomials

The Advanced Encryption Standard (AES) Protocol
An Open Call for a Replacement to DES
A Scaled-Down Version of AES
Decryption in the Scaled-Down Version of AES
Byte Representation and Arithmetic
The AES Encryption Algorithm
The AES Decryption Algorithm
Security of the AES

Elliptic Curve Cryptography
Elliptic Curves over the Real Numbers
The Addition Operation for Elliptic Curves
Elliptic Curves over Zp
The Variety of Sizes of Modular Elliptic Curves
The Addition Operation for Elliptic Curves over Zp
The Discrete Logarithm Problem on Modular Elliptic Curves
An Elliptic Curve Version of the Diffie–Hellman Key Exchange
Fast Integer Multiplication of Points on Modular Elliptic Curves
Representing Plaintexts on Modular Elliptic Curves
An Elliptic Curve Version of the El Gamal Cryptosystem
A Factoring Algorithm Based on Elliptic Curves

Appendix A: Sets and Basic Counting Principles
Appendix B: Randomness and Probability
Appendix C: Solutions to All Exercises for the Reader
Appendix D: Answers and Brief Solutions to Selected Odd-Numbered Exercises
Appendix E: Suggestions for Further Reading