- Membership
- Publications
- Meetings
- Competitions
- Community
- Programs
- Students
- High School Teachers
- Faculty and Departments
- Underrepresented Groups
- MAA Awards
- MAA Grants

- News
- About MAA

Publisher:

Chapman & Hill/CRC

Publication Date:

2010

Number of Pages:

649

Format:

Hardcover

Series:

Discrete Mathematics and Its Applications

Price:

89.95

ISBN:

9781439817636

Category:

Textbook

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

[Reviewed by , on ]

Darren Glass

05/11/2011

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 dglass@gettysburg.edu.

**An Overview of the Subject **Basic Concepts

Functions

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 **Divisibility

Primes

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

Steganography

Nulls

Homophones

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

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(2^{8}) in Particular**

Binary Operations

Rings

Fields

Z

Addition and Multiplication of Polynomials in Z

Vector Representation of Polynomials

Z

Divisibility in Z

The Division Algorithm for Z

Congruencies in Z

Building Finite Fields from Z

The Fields

The Euclidean Algorithm for Polynomials

**The Advanced Encryption Standard (AES) Protocol**An Open Call for a Replacement to DES

Nibbles

A Scaled-Down Version of AES

Decryption in the Scaled-Down Version of AES

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

Groups

Elliptic Curves over Z

The Variety of Sizes of Modular Elliptic Curves

The Addition Operation for Elliptic Curves over Z

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 PrinciplesAppendix B: Randomness and ProbabilityAppendix C: Solutions to All Exercises for the ReaderAppendix D: Answers and Brief Solutions to Selected Odd-Numbered ExercisesAppendix E: Suggestions for Further Reading**

**References**

- Log in to post comments