Page vi. In the description of Chapter 16, change "Pollig" to Pohlig". Page 7, middle: In order for signatures to work, we require that E_B(D_B(M)) = M as well as D_B(E_B(M)) = M for every M (and every user B). Several, but not all, public key ciphers enjoy these properties. Page 34, Multiplication algorithm: Change the line "c_m+i+1 = carry }" to "} c_m+i = carry". Page 35. Change b to B in the fourth and fifth lines of the division algorithm: q_i = [t/B] and r = t mod B. The b is correct in the third line. Page 36, middle: Change "become become" to "become". Page 39, line -8: w is copied into t (not into g). Page 42, middle: Suppose b has k (not d) decimal digits. Page 46, in the statement of Lemma 4.2, there should be n (not k) factors. Page 67, Example 5.6: Since 7*7 = 49 == 11 (mod 19), the fifteen solutions are x = 11, 11 + 19, 11 + 2*19, ..., 11 + 14*19, that is x == 11, 30, 49, 68, ..., 277 (mod 285). These solutions are the same as x == 11 (mod 19). Page 70, middle: In the formula for x_0, the summand should be (n/n_j) b_j a_j. Page 71, in the proof of Theorem 5.10, "Corollary 3.5" should be "Theorem 3.5". Page 87. Change the middle paragraph and Examples 6.4, 6.5 to: If $p$ is an odd prime and $g$ is a primitive root modulo $p$, then either $g$ or $g+p$ is a primitive root modulo $p^2$. Every primitive root modulo $p^2$, where $p$ is an odd prime, is a primitive root modulo $p^e$ for every $e\ge1$. For every $e\ge1$, if $p$ is an odd prime and $g$ is a primitive root modulo $p^e$, then either $g$ or $g+p^e$, whichever one is odd, is a primitive root modulo $2p^e$. Example 6.4 Let $p=3$. Then $\phi(\phi(3))=\phi(2)=1$; so, there is only one primitive root modulo $3$, namely $g=2$. Either $2$ or $2+3=5$ must be a primitive root modulo $9$. Since $\phi(9)=6$ and the powers of 2 modulo 9 are: 2, 4, 8, 7, 5, 1, we see that $2$ is a primitive root modulo $9$. The powers of 5 modulo 9 are: 5, 7, 8, 4, 2, 1, so $5$ is also a primitive root modulo $9$. Hence, both 2 and 5 are primitive roots modulo $3^e$ for every $e\ge1$. Since $\phi(\phi(9))=\phi(6)=2$, we have found all of the primitive roots modulo 9. They are 2 and 5. Example 6.5 Let $p=5$. Then $\phi(\phi(5))=\phi(4)=2$, so there are two primitive roots modulo $5$, namely $g=2$ and 3. Hence, at least one of $2$ and $2+5=7$ must be a primitive root modulo $25$. But $\phi(25)=20$ and $7^4\equiv1\qmod{25}$, so $7$ is not a primitive root modulo $25$ because its order is too small. Therefore, $2$ is a primitive root modulo $25$ and hence also one modulo $5^e$ for every $e\ge1$. Page 91, Exercise 2: Change "x" to "a" in the algorithm. Page 97. In the first line of the proof of Theorem 7.6 the first inequality should be (m-1)n < p <= mn. Page 100, lines 4 and 6: Change "residues classes" to "residue classes". Page 101. In Parts 1 and 2 of Theorem 7.10, change the symbol "p" to "m" four times. Page 107 in the statement of Hensel's lemma. Change "unique t" to "unique integer t in 0 <= t < p". Page 107 Congruence (7.3), line -2 (twice), and Page 108, line 2: Change the symbol "j" to "i" (four times in all). Page 109 Theorem 7.17, item 3, third line: Replace x\pm 2^{i-1} with 2^{i-1}\pm x . Page 113, Example 8.3: In the first row of the formula the third term should be -1/8 log_2 (1/8). Page 117. In the first displayed equation in Section 8.4, change "3.2" to "3.7" and "0.3" to "0.27". Two lines later, change "27.9" to "24.1". Page 118, line 11: Change "3.2" to "3.7" and "1.5" to "1.3". Page 118, line 15: Change "3.2" to "3.7" and "27.6" to "23.9". Page 119, line 7: Change "3.2" to "3.7". Page 119, line 8: Change "1.47" to "1.27". Page 132. Delete "commutative" twice in the penultimate paragraph (about 2 x 2 matrices). Page 166 line -8 : If more than *one* a is used (insert "one"). Page 169: The new prime proving algorithm of Agrawal, Kayal and Saxena is correct. Number theorists are working to make it faster and practical. Page 173, 3 lines above Figure 12.2: Change "that that" to "that". Page 174. In the second line of the proof of Theorem 12.1, change "pair or" to "pair of". Page 174. In the formulas for addition in terms of coordinates, the formula for x_3 should be s^2 -x_1 - x_2 in the case P NOT= Q. (The formula given for x_3 is correct for the case P = Q.) Page 175, Example 12.4: Change 2(2-0)-1 to 2(2-0)-2 . Page 186, 2 lines above Theorem 13.2: Change 1 - 2^{k-1} to 1 - 2^{1-k} . Page 204: Addition and subtraction are done before the binary mod operation. Page 206, line 1: w_0 = h = g^x (where x an unknown point in the interval). Page 206, line 4: For each ``g'' \in G, not ``a'' Page 206, line 6: compared *to* b - a. Page 208, second displayed equation: add "+" after "...". Page 209, end of line 11: Replace "181" with "18". Page 212, line 4: Change "the the" to "the". Pages 213, 214, 215, 305 and 315: Change Golumb to Golomb. Page 218, Exercise 3. The hint should say: See Theorem 9.11 and apply Lagrange's theorem to the residue class [x] in .... Page 223, line -2: Reverse the order of the four summands. Pages 232 and 233: Change "Eulcidean" to "Euclidean". Page 240, line 10: Change the first X' to X. Page 240, middle: The precomuted constant b has nothing to do with the number b of bits in n. It would be better to call the precomputed constants e and f here and in Exercise 1 on Page 244. Page 250: Message 2 should begin "2. B --> A: B{t_B". Page 254, Step 2: Change "sends then" to "sends them". Page 255, line 5: Change "residue" to "residues". Pages 257 and 298: At the end of Step 7, change "x_1" to "x_1^2". Page 260: In the fourth paragraph of 20.5.3, r should be in the range 0 <= r < n/p - 1. Page 277, line -15: Change "DSS" to "Digital Signature Algorithm".