1
Introduction
In this chapter, we present some basic concepts and ideas of number theory, computation theory, computational number theory, and modern (number-theoretic) cryptography. More specifically, we shall try to answer the following typical questions in the field:
1.1 What is Number Theory?
Number theory is concerned mainly with the study of the properties (e.g., the divisibility) of the integers
particularly the positive integers
For example, in divisibility theory, all positive integers can be classified into three classes:
Recall that a positive integer n>1 is called a prime number, if its only divisors are 1 and n, otherwise, it is a composite number. 1 is neither prime number nor composite number. Prime numbers play a central role in number theory, as any positive integer n>1 can be written uniquely into the following standard prime factorization form:
(1.1)
where p1<p2<...<pk are primes and positive integers. Although prime numbers have been studied for more than 2000 years, there are still many open problems about their distribution. Let us investigate some of the most interesting problems about prime numbers.
(1.2)
(1.3)
(1.4)
(1.5)
(1.6)
(1.7)
(1.8)
(1.9)
(1.10)
(1.11)
x | |
1015 | 29844570422669 |
1016 | 279238341033925 |
1017 | 2623557157654233 |
1018 | 24739954287740860 |
1019 | 234057667276344607 |
1020 | 2220819602560918840 |
1021 | 21127269486018731928 |
1022 | 201467286689315906290 |
1023 | 1925320391606803968923 |
1024 | 18435599767349200867866 |
It should be noted that problems in number theory are easy to state, because they are mainly concerned with integers with which we are very familiar, but often very hard to solve!
Problems for Section 1.1
1.2 What is Computation Theory?
Computation theory, or the theory of computation, is a branch that deals with whether and how efficiently problems can be solved on a model of computation, using an algorithm. It may be divided into two main branches: Computability theory and computational complexity theory. Generally speaking, computability theory deals with what a computer can or cannot do theoretically (i.e., without any restrictions), whereas complexity theory deals with what computer can or cannot do practically (with e.g., time or space limitations). Feasibility or infeasibility theory is a subfield of complexity theory, which concerns itself with what a computer can or cannot do efficiently in polynomial-time. A reasonable model of computation is the Turing machine, first studied by the great British logician and mathematician Alan Turing in 1936, we shall first introduce the basic concepts of Turing machines, then discuss complexity, feasibility, and infeasiblity theories based on Turing machines.
Definition 1.1 A standard multitape Turing machine, M (see Figure 1.2), is an algebraic system defined by
(1.12)
where
(1.13)
(1.14)
Thus, Turing machines provide us with the simplest possible abstract model of computation for modern digital (even quantum) computers.
Any effectively computable function can be computed by a Turing machine, and there is no effective procedure that a Turing machine cannot perform. This leads naturally to the following famous Church–Turing thesis, named after Alonzo Church (1903–1995) and Alan Turing (1912–1954):
The Church–Turing thesis: Any effectively computable function can be computed by a Turing machine.
The Church–Turing thesis thus provides us with a powerful tool to distinguish what is computation and what is not computation, what function is computable and what function is not computable, and more generally, what computers can do and what computers cannot do. From a computer science and particularly a cryptographic point of view, we are not just interested in what computers can do, but in what computers can do efficiently. That is, in cryptography we are more interested in practical computable rather than just theoretical computable; this leads to the Cook–Karp thesis.
Definition 1.2 A probabilistic Turing machine is a type of nondeterministic Turing machine with distinct states called coin-tossing states. For each coin-tossing state, the finite control unit specifies two possible legal next states. The computation of a probabilistic Turing machine is deterministic except that in coin-tossing states the machine tosses an unbiased coin to decide between the two possible legal next states.
A probabilistic Turing machine can be viewed as a randomized Turing machine, as described in Figure 1.3. The first tape, holding input, is just the same as conventional multitape Turing machine. The second tape is referred to as random tape, containing randomly and independently chosen bits, with probability 1/2 of a 0 and the same probability 1/2 of a 1. The third and subsequent tapes are used, if needed, as scratch tapes by the Turing machine.
Definition 1.3 is the class of problems solvable in polynomial-time by a deterministic Turing machine (DTM). Problems in this class are classified to be tractable (feasible) and easy to solve on a computer. For example, additions of any two integers, no matter how big they are, can be performed in polynomial-time, and hence are is in .
Definition 1.4 is the class of problems solvable in polynomial-time on a nondeterministic Turing machine (NDTM). Problems in this class are classified to be intractable (infeasible) and hard to solve on a computer. For example, the Traveling Salesman Problem (TSP) is in , and hence it is hard to solve.
In terms of formal languages, we may also say that is the class of languages where the membership in the class can be decided in polynomial-time, whereas is the class of languages where the membership in the class can be verified in polynomial-time. It seems that the power of polynomial-time verifiable is greater than that of polynomial-time decidable, but no proof has been given to support this statement (see Figure 1.4). The question of whether or not is one of the greatest unsolved problems in computer science and mathematics, and in fact it is one of the seven Millennium Prize Problems proposed by the Clay Mathematics Institute in Boston in 2000, each with one-million US dollars.
Definition 1.5 is the class of problems solvable by a deterministic Turing machine (DTM) in time bounded by .
Definition 1.6 A function f is polynomial-time computable if for any input w, f(w) will halt on a Turing machine in polynomial-time. A language A is polynomial-time reducible to a langauge B, denoted by A B, if there exists a polynomial-time computable function such that for every input w,
The function f is called the polynomial-time reduction of A to B.
Definition 1.7 A language/problem L is -complete, denoted by , if it satisfies the following two conditions:
Definition 1.8 A problem D is -hard, denoted by , if it satisfies the following condition:
where d may be in , or may not be in . Thus, -hard means at least as hard as any -problem, although it might, in fact, be harder.
Definition 1.9 is the class of problems solvable in expected polynomial-time with one-sided error by a probabilistic (randomized) Turing machine (PTM). By “one-sided error” we mean that the machine will answer “yes” when the answer is “yes” with a probability of error <1/2, and will answer “no” when the answer is “no” with zero probability of error.
Definition 1.10 is the class of problems solvable in expected polynomial-time with zero error on a probabilistic Turing machine (PTM). It is defined by = co-, where co- is the complement of . By “zero error” we mean that the machine will answer “yes” when the answer is “yes” (with zero probability of error), and will answer “no” when the answer is “no” (also with zero probability of error). But note that the machine may also answer “?”, which means that the machine does not know if the answer is “yes” or “no.” However, it is guaranteed that in at most half of simulation cases the machine will answer “?.” is usually referred to as an elite class, because it also equals to the class of problems that can be solved by randomized algorithms that always give the correct answer and run in expected polynomial-time.
Definition 1.11 is the class of problems solvable in expected polynomial-time with two-sided error on a probabilistic Turing machine (PTM), in which the answer always has probability at least , for some fixed δ > 0 of being correct. The “” in stands for “bounded away the error probability from ”; for example, the error probability could be .
It is widely believed, although no proof has been given, that problems in are computationally tractable, whereas problems not in (beyond) are computationally intractable. This is the famous Cook–Karp thesis, named after Stephen Cook and Richard Karp:
The Cook–Karp thesis. Any computationally tractable problem can be computed by a Turing machine in deterministic polynomial-time.
Thus, problems in are tractable whereas problems in are intractable. However, there is not a clear cut line between the two types of problems. This is exactly the versus problem, mentioned earlier.
Similarly, one can define the classes of problems of -Space, -Space, -Space Complete, and -Space Hard. We shall use to denote the set of -Complete problems, the set of -Space Complete problems, the set of -Hard problems, and the set of -Space Hard problems. The relationships among the classes , , , , , , and may be described as in Figure 1.5.
It is clear that a time class is included in the corresponding space class since one unit is needed for the space by one square. Although it is not known whether or not , it is known that . It is generally believed that
(1.15)
Besides the proper inclusion , it is not known whether any of the other inclusions in the above hierarchy is proper. Note that the relationship of and is not known, although it is believed that .
Problems for Section 1.2
1.3 What is Computational Number Theory?
Computational number theory is a new branch of mathematics. Informally, it can be regarded as a combined and disciplinary subject of number theory and computer science, particularly computation theory, including the theory of classical electronic computing, quantum computing, and biological computing:
Computational Number Theory := Number Theory Computation Theory | ||
Primality Testing | Elementary Number Theory | Computability Theory |
Integer Factorization | Algebraic Number Theory | Complexity Theory |
Discrete Logarithms | Combinatorial Number Theory | Infeasibility Theory |
Elliptic Curves | Analytic Number Theory | Computer Algorithms |
Conjecture Verification | Arithmetic Algebraic Geometry | Computer Architectures |
Theorem Proving | Probabilistic Number Theory | Quantum Computing |
Applied Number Theory | Biological Computing | |
Basically, any topic in number theory where computation plays a central role can be regarded as a topic in computational number theory. Computational number theory aims at either using computing techniques to solve number-theoretic problems, or using number-theoretic techniques to solve computer science problems. We concentrate in this book on using computing techniques to solve number-theoretic problems that have connections and applications in modern public-key cryptography. Typical questions or problems in this category of computational number theory include:
(1.16)
(1.17)
Prizes | Conditions for the New Primes |
$50000 | at least 1000000 digits |
$100000 | at least 10000000 digits |
$150000 | at least 100000000 digits |
$250000 | at least 1000000000 digits |
(1.18)
(1.19)
(1.20)
123018668453011775513049495838496272077285356959533479219732245 |
215172640050726365751874520219978646938995647494277406384592519 |
255732630345373154826850791702612214291346167042921431160222124 |
0479274737794080665351419597459856902143413 |
= |
33478071698956898786044169848212690817704794983713768568912431 |
388982883793878002287614711652531743087737814467999489 |
3674604366679959042824463379962795263227 9158164343087642676032 |
283815739666511279 233373417143396810270092798736308917. |
(1.21)
(1.22)
(1.23)
(1.24)
(1.25)
(1.26)
(1.27)
p= (739. 7149- 736)/3, |
7a 127402180119973946824269244334322849749382042586931621654 |
557735290322914679095998681860978813046595166455458144280 |
588076766033781 (mod p), |
7b 180162285287453102444782834836799895015967046695346697313 |
025121734059953772058475958176910625380692101651848662362 |
1379340 26803049 (mod p). |
7ab=381272804111900141380783915079296341939986435510186702850 |
563756150455239669294039221021725140532709288726394263700 |
63532797740808. |
a=618586908596518832735933316520379042679876430695217134591 |
462221849525998156144877820757492182909777408338791850457 |
946749734 (mod p-1). |
(1.28)
(1.29)
(1.30)
1: Q P + 2Q Q P | Q = P |
1: Q P+2Q c P+2P | Q = 3P |
0: Q 2Q Q 2(P+2P) | Q = 6P |
1: Q P+2Q Q P+2(2(P+2P)) | Q = 13P |
0: Q 2Q Q 2(P+2(2(P+2P))) | Q = 26P |
0: Q 2Q Q 2(2(P+2(2(P+2P)))) | Q = 52P |
1: Q P+2Q Q P+2(2(2(P+2(2(P+2P))))) | Q = 105P. |
(1.31)
(1.32)
p=1550031797834347859248576414813139942411, |
a=1399267573763578815877905235971153316710, |
b=1009296542191532464076260367525816293976, |
xP=1317953763239595888465524145589872695690, |
yP=434829348619031278460656303481105428081, |
xQ=1247392211317907151303247721489640699240, |
yQ=207534858442090452193999571026315995117. |
(1.33)
(1.34)
(1.35)
(1.36)
(1.37)
(1.38)
(1.39)
(1.40)
(1.41)
Theorem 1.1 (Minkowski) There is a universal constant γ, such that for any lattice L of dimension n, v L, v 0, such that
(1.42)
The determinant det(L) of a lattice is the volume of the n-dimensional fundamental parallelepiped, and the absolute constant γ is known as Hermite’s constant.
A natural problem concerned with lattices is the Shortest Vector Problem (SVP), or the SVP for short:
Find the shortest nonzero vector in a high dimensional lattice.
Minkowski’s theorem is just an existence-type theorem and offers no clue on how to find a short or the shortest nonzero vector in a high dimensional lattice. There is no efficient algorithm for finding the shortest nonzero vector, or finding an approximate short nonzero vector. The lattice reduction algorithm LLL can be used to find short vectors, but it is not effective in finding short vectors when the dimension n is large, say, for example, n 100. This allows lattices to be used in the design of cryptographic systems and in fact, several cryptographic systems, such as NTRU and the Ajtai–Dwork system, are based on the intractability of finding the shortest nonzero vector in a high dimensional lattice.
In this book, we are more interested in those number-theoretic problems that are computationally intractable, since the security of modern public-key cryptography relies on the intractability of these problems. A problem is computationally intractable if it cannot be solved in polynomial-time. Thus, from a computational complexity point of view, any problem beyond is intractable. There are, however, different types of intractable problems (see Figure 1.7).
The difference between the presumably intractable problems and the conjectured intractable problems is important and should not be confused. For example, both TSP and IFP are intractable, but the difference between TSP and IFP is that TSP has been proved to be -complete whereas IFP is only conjectured to be -complete. IFP may be -complete, but also may not be -complete.
Finally, we present a complexity measure of number-theoretic problems in big- notation.
Definition 1.12 Let
(1.43)
Define
(1.44)
if there exists c >0 with
(1.45)
Definition 1.13 Let
(1.46)
where α [0,1], c >0.
(1.47)
(1.48)
(1.49)
Problems for Section 1.3
1.4 What is Modern Cryptography?
Cryptography, one of the main topics of this book, is the art and science of secure data communications over insecure channels. It is a very old subject, as old as our human civilization. The basic scenario of cryptography is that Alice wishes to send a message M to Bob over the insecure public channel, but Eve can eavesdrop on the communications from the public channel:
To stop Eve to reading/understanding the message M (note that no one can stop Even eavesdroping M), Alice first encrypts the plaintext M to ciphertext C, and then sends C to Bob:
As we just mentioned, cryptography is an old subject, and in fact it has at least 5000 years of history, however, in this book we are more interested in modern cryptography. By modern cryptography, we mean the cryptography studied and invented mainly after the 1970s. Often these types of cryptography are based on advanced and sophisticated mathematics, so we call it mathematical cryptography. More specifically, we call it number-theoretic cryptography if its construction and security are based on the concepts and results in number theory. Of course, modern cryptography may also be based on, say for example, quantum physics and molecular biology, in which case, we may call it quantum cryptography, or biological (DNA) cryptography. Traditionally, cryptography is meant to be secret-key cryptography, in which the encryption and decryption use the same key. By the same key, we mean the encryption key, say, E and the decryption key, say d are polynomial-time computable. That is, given E, d=1/e can be computed easily in polynomial-time. In other words, E and d are polynomial-time equivalent but not physically equivalent. In public-key cryptography, however, E and d are different, as given E, d=1/e cannot be computed in polynomial-time. Of course, they can be computed in exponential-time. So, in public-key cryptography, E and d are not polynomial-time equivalent. Other significant difference between secret-key cryptography and public-key cryptography is that public-key cryptography is normally not only useful for encryption, but is also useful for digital signatures. Figure 1.8 shows the types of cryptography and the relationships among the different types of cryptography.
Now let us take RSA as an example to illustrate the classification of different type of cryptography. First of all, RSA is a type of mathematical cryptography, more specifically it is a type of number-theoretic cryptography, as its construction and security are all based on the infeasible number-theoretic problem – the Integer Factorization Problem. Secondly, RSA is public-key cryptography and, in fact, it is the first practical, widely used, and still unbreakable public-key cryptography and was invented in 1977 by Rivet, Shamir, and Adleman, then all at MIT. Let M be a plaintext message. To encrypt the M, one computes
(1.50)
where E is the encryption key, and both E and n are public. (The notation a b (mod n) reads “A is congruent to B modulo n.” Congruences will be studied in detail in Section 2.4.) To decrypt the encrypted message C, one computes
(1.51)
where d is the private decryption key satisfying
where (n) is Euler’s -function ( (n), for n 1, is defined to be the number of positive integers not exceeding n which are relatively prime to n; see Definition 2.31). By (1.52), we have ed = 1 + k (n) for some integer k. By Euler’s theorem (see Theorem 2.112), M (n) 1 (mod n), we have Mk (n) 1 (mod n). Thus,
(1.53)
For those who do not have the private key but can factor n, say for example, n=pq, they can find d by computing
(1.54)
and hence, decrypt the message.
Remarkably enough, RSA can also be easily used to obtain digital signatures: Just use the encryption key E and decryption key d in the opposite direction:
(1.55)
(1.56)
Problems for Section 1.4
1.5 Bibliographic Notes and Further Reading
In this chapter, we have given a general picture of number theory, computation theory, computational number theory, and modern number-theoretic cryptography, each of them in their own right large, well-established, and important subjects.
For more information on number theory, readers may consult [1-3, 5-12, 14-23]. For more information on computation theory, particularly computability, complexity, and infeasibiity, see e.g., [24-39]. For more information on computational number theory, see for example, [13,14, 23, 27, 38, 40-50]. For more information on cryptography, it is suggested readers consult [51-66].
References
1. T. M. Apostol, Introduction to Analytic Number Theory, Corrected 5th Printing, Undergraduate Texts in Mathematics, Springer, 1998.
2. A. Baker, A Concise Introduction to the Theory of Numbers, Cambridge University Press, 1984.
3. E. Bombieri, The Riemann Hypothesis, In: J. Carlson, A. Jaffe and A. Wiles, Editors, The Millennium Prize Problems, Clay Mathematics Institute and American Mathematical Society, 2006, pp. 107–128.
4. J. Carlson, A. Jaffe and A. Wiles, The Millennium Prize Problems, American Mathematical Society, 2006.
5. J. R. Chen, “On the representation of a larger even integer as the sum of a prime and the product of at most two primes”, Scientia Sinica 16, 1973, pp. 157–176.
6. H. Davenport, The Higher Arithmetic, 7th Edition, Cambridge University Press, 1999.
7. U. Dudley, A Guide to Elementary Number Theory, Mathematical Association of America, 2010.
8. H. M. Edwards, Higher Arithmetic: Al Algorithmic Introduction to Number Theory, American Mathematical Society, 2008.
9. B. Green and T. Tao, “The Primes Contain Arbitrarily Long Arithmetic Progressions”, Annual of Mathematics, 167, 2, 2008, pp. 481–547.
10. G. H. Hardy and E. M. Wright, An Introduction to Theory of Numbers, 6th Edition, Oxford University Press, 2008.
11. D. Husemöller, Elliptic Curves, Graduate Texts in Mathematics 111, Springer, 1987.
12. K. Ireland and M. Rosen, A Classical Introduction to Modern Number Theory, 2nd Edition, Graduate Texts in Mathematics 84, Springer, 1990.
13. D. E. Knuth, The Art of Computer Programming II – Seminumerical Algorithms, 3rd Edition, Addison-Wesley, 1998.
14. N. Koblitz, A Course in Number Theory and Cryptography, 2nd Edition, Graduate Texts in Mathematics 114, Springer, 1994.
15. W. J. LeVeque, Fundamentals of Number Theory, Dover, 1977.
16. I. Niven, H. S. Zuckerman and H. L. Montgomery, An Introduction to the Theory of Numbers, 5th Edition, Wiley, 1991.
17. J. H. Silverman, A Friendly Introduction to Number Theory, 3rd Edition, Prentice-Hall, 2006.
18. J. H. Silverman, The Arithmetic of Elliptic Curves, 2nd Edition, Graduate Texts in Mathematics 106, Springer, 2009.
19. J. H. Silverman and J. Tate, Rational Points on Elliptic Curves, Undergraduate Texts in Mathematics, Springer, 1992.
20. J. Stillwell, Elements of Number Theory, Springer, 2000.
21. L. C. Washinton, Elliptic Curve: Number Theory and Cryptography, 2nd Edition, CRC Press, 2008.
22. A. Wiles, “Modular Elliptic Curves and Fermat’s last Theorem”, Annals of Mathematics, 141, 1994, pp. 443–551.
23. S. Y. Yan, Number Theory for Computing, 2nd Edition, Springer, 2002.
24. S. Arora and B. Barak, Computational Complexity, Cambridge University Press, 2009.
25. S. Cook, The Complexity of Theorem-Proving Procedures, Proceedings of the 3rd Annual ACM Symposium on the Theory of Computing, New York, 1971, pp. 151–158.
26. S. Cook, The P versus NP Problem, In: J. Carlson, A. Jaffe, and A. Wiles, Editors, The Millennium Prize Problems, Clay Mathematics Institute and American Mathematical Society, 2006, pp. 87–104.
27. T. H. Cormen, C. E. Ceiserson, and R. L. Rivest, Introduction to Algorithms, 3rd Edition, MIT Press, 2009.
28. M. R. Garey and D. S. Johnson, Computers and Intractability – A Guide to the Theory of NP-Completeness, W. H. Freeman and Company, 1979.
29. J. Hopcroft, R. Motwani, and J. Ullman, Introduction to Theory of Computation, Jones and Bartlett Publishers, 2008.
30. J. Hopcroft, R. Motwani, and J. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd Edition, Addison-Wesley, 2007.
31. P. Linz, An Introduction to Formal Languages and Automata, 3rd Edition, Jones and Bartlett Publishers, 2000.
32. R. Karp, “Reducibility among Combinatorial Problems”, Complexity of Computer Computations. Edited by R. E. Miller and J. W. Thatcher, Plenum Press, New York, 1972, pp. 85–103.
33. C. Petzold, The Annotated Turing: A Guide Tour through Alan Turing’s Historical Paper on Computability and the Turing Machine, Wiley, 2008.
34. G. Rozenberg and A. Salomaa, Cornerstones of Undecidability, Prentice-Hall, 1994.
35. R. Sedgewick and K. Wayne, Algorithms, 4th Edition, Cambridge University Press, 2011.
36. M. Sipser, Introduction to the Theory of Computation, 2nd Edition, Thomson, 2006.
37. A. Turing, “On Computable Numbers, with an Application to the Entscheidungsproblem”, Proceedings of the London Mathematical Society, Series 2 42, 1937, pp. 230–265 and 43, 1937, pp. 544–546.
38. H. S. Wilf, Algorithms and Complexity, 2nd Edition, A. K. Peters, 2002.
39. S. Y. Yan, An Introduction to Formal Languages and Machine Computation, World-Scientific, 1998.
40. L. M. Adleman, “Algorithmic Number Theory – The Complexity Contribution”, Proceedings of the 35th Annual IEEE Symposium on Foundations of Computer Science, IEEE Press, 1994, pp. 88–113.
41. E. Bach and J. Shallit, Algorithmic Number Theory I – Efficient Algorithms, MIT Press, 1996.
42. H. Cohen, A Course in Computational Algebraic Number Theory, Graduate Texts in Mathematics 138, Springer, 1993.
43. R. Crandall and C. Pomerance, Prime Numbers – A Computational Perspective, 2nd Edition, Springer, 2005.
44. M. F. Jones, M. Lal, and W. J. Blundon, “Statistics on Certain Large Primes”, Mathematics of Computation, 21, 97, 1967, pp. 103–107.
45. E. Kranakis, Primality and Cryptography, Wiley, 1986.
46. C. Pomerance, “Computational Number Theory”, Princeton Companion to Mathematics. Edited by W. T. Gowers, Princeton University Press, 2008, pp. 348–362.
47. H. Riesel, Prime Numbers and Computer Methods for Factorization, Birkhäuser, Boston, 1990.
48. V. Shoup, A Computational Introduction to Number Theory and Algebra, Cambridge University Press, 2005.
49. R. D. Silverman, “A Perspective on Computational Number Theory”, Notices of the American Mathematical Society, 38, 6, 1991, pp. 562–568.
50. J. von zur Gathen and J. Gerhard, Modern Computer Algebra, 2nd Edition, Cambridge University Press, 2003.
51. M. Ajtai and C. Dwork, “A Pubic-Key Cryptosystem with Worst-Case/Average-Case Equivalence”, Proceedings of Annual ACM Symposium on Theory of Computing, 1997, pp. 284–293.
52. F. L. Bauer, Decrypted Secrets – Methods and Maxims of Cryptology, 3rd Edition, Springer, 2002.
53. J.A. Buchmann, Introduction to Cryptography, Springer, 2004.
54. H. Cohen and G. Frey, Elliptic and Hyperelliptic Curve Cryptography, Chapman & Hall/CRC, 2006.
55. N. Ferguson, B. Schneier and T. Kohno, Cryptography Engineering, Wiley, 2010.
56. S. Goldwasser and S. Micali, “Probabilistic Encryption”, Journal of Computer and System Sciences, 28, 1984, pp. 270–299.
57. J. Hoffstein, N. Howgrave-Graham, J. Pipher, J. H. Silverman and W. Whyte, “NTRUEncrypt and NTRUSign: Efficient Public Key Algorithmd for a Post-Quantum World”, Proceedings of the International Workshop on Post-Quantum Cryptography (PQCrypto 2006), 23–26 May 2006, pp. 71–77.
58. N. Koblitz, Algebraic Aspects of Cryptography, Springer, 1998.
59. A. J. Menezes, P.C. van Oorschot and S. A. Vanstone, Handbook of Applied Cryptography, CRC Press, 1997.
60. Codes: The Guide to Secrecy from Ancient to Modern Times, CRC Press, 2005.
61. J. Pieprzyk, Hardjono and J. Seberry, Fundamentals of Computer Security, Springer, 2003.
62. J. Rothe, Complexity Theory and Cryptology, Springer, 2005.
63. I. Shparlinski, Number Theoretic Methods in Cryptography, Birkhäuser, 1999.
64. I. Shparlinski, Cryptographic Applications of Analytic Number Theory, Birkhäuser, 2003.
65. M. Stamp and R. M. Low, Applied Cryptanaysis, IEEE Press and Wiley, 2007.
66. A. L. Young, Mathematical Ciphers, American Mathematical Society, 2006.