Points of High Order on Elliptic Curves ECDSA

Size: px
Start display at page:

Download "Points of High Order on Elliptic Curves ECDSA"

Transcription

1 ! Independent thesis advanced level (degree of master (two years)) Points of High Order on Elliptic Curves ECDSA Author: Behnaz Kouchaki Barzi Supervisor: Per-Anders Svensson Examiner: Andrei Khrennikov Date: Course Code: 5MA41E Subject: Mathematics Level: Master degree Department Of Technology

2 Abstract This master thesis is about Elliptic Curve Digital Signature Algorithm or ECDSA and two of the known attacks on this security system. The purpose of this thesis is to find points that are likely to be points of high order on an elliptic curve. If we have a point P of high order and if Q = mp, then we have a large set of possible values of m. Therefore it is hard to solve the Elliptic Curve Discrete Logarithm Problem or ECDLP. We have investigated on the time of finding the solution of ECDLP for a certain amount of elliptic curves based on the order of the point which is used to create the digital signatures by those elliptic curves. Method: Algebraic Structure of elliptic curves over finite fields and Discrete logarithms. This has been done by two types of attacks namely Baby Step, Giant Step and Pollard s Rho and all of the programming parts has been done by means of Mathematica. Conclusion: We have come into a conclusion of having the probable good points which are the points of high order on elliptic curves through the mentioned attacks in which solving the ECDLP is harder if these points have been used in generating the digital signature. These probable good points can be estimated by means of a function we have come up with. The input of this function is the order of the point and the output is the time of finding the answer of ECDLP. Keywords: Digital signature (DS.), Elliptic Curve Digital Signature Algorithm (ECDSA), Elliptic Curve Discrete Logarithm Problem (ECDLP), Baby Step, Giant Step (Bs.Gs.), Pollard s Rho.

3 Acknowledgements I would like to thank my supervisor, Per-Anders Svensson for an amazing supervision. I thank him for his patience and his massive help through this master thesis. I also thank my husband for his encouragement and infinite support besides his unconditional love. Eventually, I appreciate all of those who has been working on the related subject and has been trying to improve it. Behnaz Kouchaki Barzi 2

4 List of Tables 1 The table of Double-and-Add example Multiple of the point P List of Q jmp The table of Pollard s Rho example Order Of Points P i Order Of Points P i The Table of Bs.Gs. for 100 Curves with Only One Q

5 List of Figures 1 The story of sending secret messages Generation and Verification of Digital Signature [13] Addition of Points on an Elliptic Curve[13] Addition of Points on an Elliptic Curve [13] Addition of Points on an Elliptic Curve [13] Baby Step, Giant Step for 30 different Q Baby Step, Giant Step for Only One Q Time Limit/ Baby Step, Giant Step Time Limit/ Baby Step, Giant Step Time Limit/ Baby Step, Giant Step Time Limit/ Baby Step, Giant Step Final Time Limit/ Baby Step, Giant Step The graph of the Bs.Gs. according to the real data The graph of the data according to the function (Bs.Gs) The combination of the last two graphs (Bs.Gs) Time Limit/ Pollard s Rho Time Limit/ Pollard s Rho Final Time Limit/ Pollard s Rho The graph of the Pollard s Rho according to the real data The graph of the data according to the function (Pollard s Rho) The combination of the last two graphs (Pollard s Rho)

6 Contents 1 Introduction 6 2 Background A brief history and some Terminology The Discrete Logarithm Problem Symmetric and Asymmetric ciphers Diffie-Hellman key exchange for DLP Digital signature Elliptic Curve Addition of Points on an Elliptic Curve Elliptic Curve over Finite Fields Double-and-Add Algorithm ECDLP & ECDSA The Elliptic Curve Discrete Logarithm Problem or ECDLP The Elliptic Curve Digital Signature Algorithm or ECDSA Attacks on ECDSA Baby Step, Giant Step Attack Pollard s Rho Attack Implementation on Baby Step, Giant Step and Pollard s Rho method Baby Step, Giant Step Implementation Pollard s Rho Implementation Performance Evaluation Of Implementation Appendix. 49 5

7 1 Introduction Security is one of the most controversial concepts in the world. People are communicating with each other every single second via their mobile phones or laptops by sending and receiving s, electronic documents, electronic payments, financial transactions and so forth. Obviously, there has to be many ways of providing the security of these communications so that people could trust them. Digital signature is a form of providing security for some kinds of communications and one of the newest form of security system is Elliptic Curve Digital Signature Algorithm (ECDSA). We all know that there is no form of security which is complete and has 100% reliability, thus there is always a risk of an attack on any security system. Two of the known attacks on ECDSA are namely Baby Step, Giant Step (Bs.Gs) and Pollard s Rho. The Baby Step, Giant Step (Bs.Gs) attack is based on two steps and we would reach to a solution of Elliptic Curve Discrete Logarithm Problem (ECDLP) if we could have an intersection between those two steps. The Pollard s Rho attack is almost similar to the Bs.Gs attack and also they have the same running time but there is a quite important difference between them. The difference is that the Bs.Gs. attack requires more storage space than the Pollard s Rho attack. In this thesis, we have tried to see how these two attacks work together with a hint of how to choose the point on the elliptic curve in a way that the digital signature generated by it would be more secure against the mentioned attacks. This more secure way is that we need to find points with high order and the entire process will be explained within this thesis. First of all, we need to know about digital signatures in general and then about digital signatures based on elliptic curves. In order to generate a digital signature, asymmetric cryptography is used. We have two keys in asymmetric cryptography namely a Public key and a Private key. The public key is obviously revealed for everybody. However the private key is a key which is not clear at all and if somebody knows it then the digital signature can be forged. Therefore the solution of ECDLP is the private key. There are known deterministic algorithm of different types of attacks on ECDLP; for more reading, refer to the book [13], or some articles namely [15], [3], [4], [23]. If one uses any of the attacks and is not able to reach to the private key within a certain time limit, then one has found a point on the curve which is likely to be a good point. A good point means a point with high order which is used in ECDSA and make the digital signature more secure. Behnaz Kouchaki Barzi 6

8 Therefore, we are going to use the algorithm of these two attacks and see if we are able to find a probable good point. The mathematics which is used in this method is Algebraic Structure of elliptic curves over finite fields and Discrete logarithms. We are almost done with the first section (Introduction Section) and the second section is devoted to definitions of the cryptography, asymmetric cryptography, The discrete logarithm problem, Diffie and Hellman and digital signatures as a background. In the section three, we will have a quite complete section about elliptic curve and its properties. Section four is all about ECDSA and ECDLP with some examples. For the fifth section, we will have a quite complete explanation of two types of attacks on ECDSA; Baby Step, Giant Step attack and Pollard s Rho attack. Eventually, in section six, we will have a section of explaining what we have done within this thesis and the hint about the point of high order which was mentioned earlier together with Mathematica codes of the entire process. After all, there will be a section of performance evaluation of implementation as the final section; Section seven. Behnaz Kouchaki Barzi 7

9 2 Background 2.1 A brief history and some Terminology. The word cryptography comes from the Greek words; kryptos and graphein which means hidden and writing [5]. Cryptology is a science which has been used to help people to communicate with each other hidden and it has provided security for the communications. In other words, the main reason of this science is to provide a security for two people or a group of people to communicate without letting other people or stranger to know about the details of that communication. Throughout the history, cryptography has been used and the earliest ones are from the ancient Egypt, Greece and Rome. Egyptian used hieroglyphs in order to communicate hidden. In Greece, they have the idea of wrapping a tape of paper around a specific stick and then write a message on it and afterwards send the paper tape to the receiver; On the other hand, the receiver should have had similar stick in order to wrap the paper tape around it so that he or she could decrypt the message. The Roman s idea was Caesar Shift Cipher which was named after the Julius Caesar and it is a type of substitution cipher. In this method, they simply wrote the message down and shift the letters and the receiver should have done the shifting backwards in order to read the message [5]. After middle ages, both cryptography and cryptanalysis have improved due to need of security for communications. This science has been used in World War I and II. The invention of radio in 1900 made the cryptographic concept change and improve especially in military and political situations therefore the need of such these security kept increasing until now that the communications are often made digitally with more complicated algorithms thus we are always in urge of preparing security [13]. We have barely touched the concept of the history of the cryptography so far and for further reading refer to [24] and [16]. Here we explain some useful terminology: Plaintext: Ciphertext: A message that is not encrypted. A message that has been encrypted. Key: A parameter which is used in both encryption and decryption in order to convert plaintext to ciphertext or contrariwise. Behnaz Kouchaki Barzi 8

10 Symmetric cipher: In these kinds of algorithms, the same key is used both for encryption and decryption. Asymmetric cipher: Or Public Key Cryptosystems that different keys are used for encryption and decryption. The story is that for example Alice wants to send Bob a message, without Eve knowing the concept of the message. Figure 1: The story of sending secret messages As mentioned earlier, the word cryptology comes from the Greek word kryptos and it is divided into two categories; Cryptography and Cryptanalysis: Cryptography: Designing the cryptosystems or the algorithm of encryptions are in the concept of cryptography. We have mainly two types of ciphers namely substitution ciphers and transposition ciphers. Below, the definition of these two ciphers are respectively explained: 1. Substitution cipher: In this type, each letter (or a group of letters) is replaced by another letter (or group of letters). Behnaz Kouchaki Barzi 9

11 2. Transposition cipher: The letters are permuted. We can mix both substitution cipher and transposition cipher in order to encrypt. Cryptanalysis: In this concept, the problem of breaking the ciphers and finding the keys are discussed in which there are four different types of attacks based on how much information does Eve know. 1. Ciphertext only: Eve only has the information about the ciphertext. 2. Known plaintext: In addition to the ciphertext, Eve knows the plaintext as well. (So that she can conclude about the key.) 3. Chosen plaintext: Eve can choose her own plaintext and encrypt it and she can do this more and more until a conclusion will be derived about the nature of the key based on the ciphertext she receives. 4. Chosen ciphertext: Eve can choose her own ciphertext and decrypt it and get the conclusion about the nature of the key based on the plaintext she receives. A secure cryptosystem is a system which is mixed of both substitution and transpositions ciphers as well as being secure against all of these four mentioned attacks. When it comes to design a cryptosystem, it is only important to have the key secret not the algorithm of encryption and decryption; this is called Kerckhoff s principle [13]. In this thesis, we mainly focus on asymmetric cryptography or public key cryptosystem in which there are two keys; private key and public key. Imagine that Alice and Bob want to exchange a message using a symmetric cipher. In order to exchange a message without letting their adversary Eve knows the message, they have to agree on a secret key in advance but what if there is no secure way of communication so that they can agree on a secret key?[6]. Behnaz Kouchaki Barzi 10

12 2.2 The Discrete Logarithm Problem In order to explain the discrete logarithm problem, first we need to know some definitions and theorems. Theorem 1. [13].Primitive Root Theorem. Let p be a prime number and F p be a finite group. Thus there exists an element g F p whose powers give every element of F p i.e, F p = {1, g, g 2, g 3,, g p 2 }. Those elements which have this property are called primitive roots of F p or generators of F p. They are the elements of F p having the order of p 1. Theorem 2. [13].Fermat s little theorem. If p is a prime number then we have: g p 1 1 (mod p) for every integer g such that (g, p) = 1. Now we can define the discrete logarithm problem as the following: Definition 2.1. [13].The Discrete Logarithm. Let p be a prime number and g be a primitive root modulo p. The discrete logarithm modulo p of h is the smallest positive integer x satisfying g x h (mod p). And it is written as log g (h) (mod p). The Discrete Logarithm Problem or DLP. Before we state the DLP, we need some algebra definitions. Behnaz Kouchaki Barzi 11

13 Definition 2.2. [10].Group. A set G under a binary operation is a group G, if the following axioms are satisfied: 1. Associativity. For all a, b, c G, we have: (a b) c = a (b c). 2. Identity element. There is an element, usually stated as e such that for every other element a in G we have: a e = e a = a. 3. Inverse. For every element a in G, there is an element a in G such that:. a a = a a = e [3]. Definition 2.3. [10].Abelian Group. Let G be a group with binary operation. If for every element a, b G we have: a b = b a then we say that the group G is Abelian. Definition 2.4. [10].Order of the group G. Let G be a group. If G is a finite set, then the order of G is the number of elements in G and we write o(g) = m, where m is the number of elements in G. Behnaz Kouchaki Barzi 12

14 Definition 2.5. [10].Order of an element a. Let G be a finite group and a G. The order of the element a is the smallest positive integer n such that a n = e. It is written: o(a) = n. Theorem 3. [10].Let G be a finite group and a G. The order of the element a is a divisor of the order of G; i.e. o(a) o(g). Definition 2.6. [10].Cyclic Group. Let G be a group and a G. Assume that G is a finite group and o(g) = n. If the order of the element a is the same as the order of the group G; i.e. o(g) = o(a) = n, then the element a is a generator of the group G. We write, G = a and say that G is a cyclic group. Eventually, we are ready to define the DLP. Definition 2.7. [13].Discrete Logarithm Problem or DLP. Let G be a group and g, h G. The problem of solving the following discrete logarithm g x = h is the so-called Discrete Logarithm Problem or DLP. The solution will be denoted as x = log g h; if there is a solution though. Remark. [13].If G is a finite group then the element g generates a subgroup {e, g, g 2,, g n 1 } where n is the order of g and besides the solutions to g x = h are calculated modulo n. Behnaz Kouchaki Barzi 13

15 2.3 Symmetric and Asymmetric ciphers. In a symmetric cryptography, we need only one key in order to encrypt and decrypt. This key is chosen from a set of possible keys K. Let C be the set of all possible ciphertexts and M be the set of all possible plaintexts. In the encryption step we will do as the following function: e : K M C and for the decryption step we will have the following function: d : K C M which satisfies d(k, e(k, m)) = m k K, m M. In an asymmetric cryptography, we use a pair of key as mentioned before; i.e. the key is: k = (k public, k private ). Everybody can do the encryption by the public key however, in order to decrypt, one has to know the private key. In our example, if Alice and Bob wants to use the symmetric cipher, they must have exchanged their private key before. What will happen if there is no secure way for them to exchange the private key? This has an answer which Diffie and Hellman came up with and it ended up to the new concept which is called public key cryptosystem [6]. Remark. In 1985, Koblitz and Miller has proposed the public key cryptosystem based on elliptic curves over finite fields [17], [11] and afterwards, many people has been putting lots of efforts on the mentioned concept. They have used elliptic curves over finite fields for several cryptosystems, namely, Diffie-Hellman key exchange algorithm, elliptic curve digital signature algorithm (ECDLP) [9]. 2.4 Diffie-Hellman key exchange for DLP. Alice and Bob wants to agree on a key through an insecure channel. They can do this according to the following steps without letting Eve get the key [13]. 1. Alice and Bob agree on a prime number p and a nonzero integer g modulo p. Behnaz Kouchaki Barzi 14

16 2. Alice chooses a secret number a randomly and computes A = g a (mod p) and sends it to Bob. 3. Bob chooses a secret number b randomly and computes B = g b (mod p) and sends it to Alice. 4. Alice computes B a = g ab (mod p) and Bob computes A b = g ab (mod p). This number is their key. Therefore, according to the above key exchange, Alice and Bob are safe to communicate, however this depends on the level of the security which they have. The problem for Eve to solve, in order to get the key is the so-called DLP which is somehow difficult and this difficulty relies on the numbers which Alice and Bob has chosen to make the key. Eventually, after Diffie-Hellman s paper New Direction in Cryptography [6], there were several related contribution. To know more about the public key cryptography see [16], [7], [8], [33]. 2.5 Digital signature. A digital signature is a way of proving authentication and therefore, it can increase the security of communication. It is not a scanned form of the usual signature which we do it by paper and ink but an electronic stamp of authentication. Digital signatures are generated by cryptography methods thus they are some encrypted data to indicate the validity of the signer. Here, we have Samantha as the signer and Victor as the verifier. The story is about Samantha having a document and sending it to Victor but she wants Victor to be sure that she has sent the document. She has to use a secure way of signing the document so that the signature can not be forged by adversaries. Yes! Digital signature is what she is looking for! Asymmetric cryptography is used to generate the digital signature therefore, there are two keys; public key and private key. Samantha has a document which she wants to sign. She uses her private key to sign the document via a special algorithm (which will be explained later on). Then, Victor can verify the digital signature by the public key according to a specific algorithm. Some terminology: K P ri K P ub D sig A private signing key. A public verification key. Digital signature. Behnaz Kouchaki Barzi 15

17 D Digital document. Remark. Hash function A cryptographic hash function is a function which takes document of arbitrary length as an input and refers to a number of fixed length as the output. The mentioned hash function has to be quick to calculate as well as being almost impossible to find the original document from the hash value (output) i.e, a hash function has to be a one way function that it is quite hard to invert. In addition to the earlier properties, the hash function is strongly collision-free which means that it is almost impossible to find different messages while their hash values are the same. For more reading refer to [23], [35]. In order to sign a document, first the signer (Samantha) uses a hash function to get a unique hash result and then by means of a private key one can transform the hash result into a digital signature. Totally, Samantha sends the digital document, the public key and the information about how to verify the signature (such as a hash algorithm). To verify a digital signature Victor needs a new hash; this is provided by computing a new hash result of the digital document. The new hash result is created by the same hash function which Samantha has used to generate the digital signature. Therefore by using the public key and the new hash result, one can verify whether the digital signature is valid or not [13]. Figure 2: Generation and Verification of Digital Signature [13]. Behnaz Kouchaki Barzi 16

18 In figure 2, the process of generating a digital signature together with the verification step is shown. In this thesis, we are working with elliptic curves therefore, we will explain the digital signature algorithm based on elliptic curves after we explained all about elliptic curves and the related properties. Behnaz Kouchaki Barzi 17

19 3 Elliptic Curve. The concept of elliptic curve is a quite vast topic and we try to only focus on the part we need and some useful properties for cryptography. There are several references for additional reading related to elliptic curve cryptography namely [2], [18], [22], [27]. An elliptic curve with real coefficients is defined by an equation of the form: y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 5 (1) where a 1, a 2, a 3, a 4, a 5 R. We may assume a 1 = a 2 = a 3 = 0 since the affine change of variables x = X a a 2 3 y = Y a 1 2 X + a a 1a 2 a alter (1) to the so-called Weierestrass form as the following: Y 2 = X 3 + AX + B (2) for some A, B R. Definition 3.1. Elliptic Curve. An elliptic curve over R is a set of all solutions to the equation (2) where A, B R and 4A B 2 0, together with the point at infinity O. Behnaz Kouchaki Barzi 18

20 3.1 Addition of Points on an Elliptic Curve Let E be an elliptic curve and let P = (x 1, y 1 ) and Q = (x 2, y 2 ) be two points on E. There are three cases that we are facing. First, we explain about the case in which x 1 x 2. In this case, the line L through P and Q intersects the curve E at a third point that is called R. Next, we reflect this point in the x axis, in order to obtain another point on E which is called R. The point R is defined as the sum of P and Q for the first case, see figure 3, [13]. Figure 3: Addition of Points on an Elliptic Curve[13]. In the second case, assume that x 1 = x 2 whereas P and Q are different. The line through the points P and Q is a vertical line and therefore, it does not intersect E in a third point. In the case of P = Q while y coordinate is zero, the same thing as the second case will happen. In these cases, we consider the point at infinity O as the sum of P and Q, see figure 4, [13]. Remark. For every point P on E, we have P + O = P since the line through P and the point at infinity is a vertical line through P. Remark. We define O + O = O. Behnaz Kouchaki Barzi 19

21 Figure 4: Addition of Points on an Elliptic Curve [13]. Finally the third case. In this case we want to add the point P to itself or i.e. P = Q = (x, y). As we have done for the other cases, we draw a line through the both points which we want to add together and in this case, it will be the line L which has to be the tangent of the curve E at the point P and it intersects the curve E at the point R. Then we reflect the point R in the x axis which yields to the point of R. Hence we have: P + P = 2P = R, see figure 5, [13]. Behnaz Kouchaki Barzi 20

22 Figure 5: Addition of Points on an Elliptic Curve [13]. Theorem 4. [13].Let E be an elliptic curve then E is an Abelian group with respect to addition of points on E. In other words (P + Q) + R = P + (Q + R) for all P, Q, R E Associative. P + Q = Q + P for all P, Q E Commutative. P + O = P for all P E Identity. P + ( P ) = O Inverse. Theorem 5. [13].Elliptic Curve Addition Algorithm. Let Y 2 = X 3 + AX + B be an elliptic curve and let P 1 and P 2 be points on E. If P i = O for i = 1 or i = 2, then P 1 + P 2 = P 3 i. Otherwise, put P 1 = (x 1, y 1 ) and P 2 = (x 2, y 2 ). If x 1 = x 2 and y 1 = y 2, then P 1 + P 2 = O. Otherwise, let x 3 = λ 2 x 1 x 2 and y 3 = λ(x 1 x 3 ) y 1 where λ is defined as Behnaz Kouchaki Barzi 21

23 λ = y 2 y 1 x 2 x 1 if P 1 P 2 and λ = 3x2 1 + A 2y 1 if P 1 = P 2. Then we have P 1 + P 2 = (x 3, y 3 ). 3.2 Elliptic Curve over Finite Fields In this section we will study the elliptic curves over finite fields which are quite useful and important in cryptography in terms of the order of the curve, their properties and so forth [13], [36]. Definition 3.2. Let F = F p be the finite field of order p where p 5 (For more reading see the chapter 5.7 of [13]). An elliptic curve over F p is: E : Y 2 = X 3 + AX + B where A, B F p satisfy 4A 3 +27B 2 0 in F p. In addition to all of the solutions of the above equation of E, we have the point at infinity O. Example 1. Let E : Y 2 = X 3 + 3X + 2 be a finite elliptic curve over F 5. In order to write all of the points on E, we need to solve the above equation for all possible x in F 5 = {0, 1, 2, 3, 4}. Afterwards, we will get E(F 5 ) = {O, (1, 1), (1, 4), (2, 1), (2, 4)}. Theorem 6. [36].Let E be a finite elliptic curve over the finite field F p. Then E(F p ) Z n or Z n1 Z n2 for some integers n 1, or for some integers n 1, n 2 1 with n 1 dividing n 2. Behnaz Kouchaki Barzi 22

24 Theorem 7. [13].Hasse s Inequality. Let E be an elliptic curve over a finite field of F p. Then the order of the curve i.e, #E(F p ) satisfies the following inequality: p + 1 #E(F p ) 2 p. 3.3 Double-and-Add Algorithm. In this section we explain an efficient way of calculating the multiple of a point on an elliptic curve which is called double-and-add algorithm. There are several papers which have proposed some ways to speed up the above algorithm namely [12], [37], [27]. We would like to compute np := P + P + P. }{{} n terms We use the binary expansion n = Σ r i=0 n i2 i where n i {0, 1}. Then we compute the sequence Q 0, Q 1,, Q r in E(F p ) as it is explained below: Q 0 = P, Q 1 = 2Q 0, Q 2 = 2Q 1,, Q r = 2Q r 1. We notice that Q i = 2 i P hence: Σ r i=0n i Q i = Σ r i=0(n i 2 i )P = np. The double-and-add algorithm for elliptic curves.[13]. Input. P E(F p ) and integer n Set Q = P and R = O. 2. Loop while n > 0. (a) If n 1 (mod 2), set R = R + Q. (b) Set Q = 2Q and n = n Return the point R, which equals np. Behnaz Kouchaki Barzi 23

25 Example 2. Assume that we have an elliptic curve E over a finite field F 997. Let P = (36, 88) be a point on the curve. We want to calculate 250P according to the double-and-add algorithm. Since 250 = we need the multiple of the point P with the above numbers. i Q i = 2 i P P = 2P = (191, 446) P = 4P = (937, 766) P = 8P = (696, 429) P = 16P = (481, 657) P = 32P = (810, 587) P = 64P = (962, 310) P = 128P = (134, 332) Table 1: The table of Double-and-Add example. Now we add the needed Q i in order to get 250P. 250P = Q 1 + Q 3 + Q 4 + Q 5 + Q 6 + Q 7 = (220, 367). Behnaz Kouchaki Barzi 24

26 4 ECDLP & ECDSA. 4.1 The Elliptic Curve Discrete Logarithm Problem or ECDLP. In the section 2.7, we have defined DLP in a group G. In the case of elliptic curves, we have the group of points on an elliptic curve and the group is E(F p ) where F p is a finite field. Let P, Q E(F p ). The elliptic discrete logarithm of Q with respect to P is the smallest positive integer n satisfying Q = P + P + + P. }{{} n additions on E It is also written as n = log P (Q). Definition 4.1. ECDLP. The ECDLP is the problem of finding the answer of n = log P (Q) which is the integer n such that Q = np i.e., finding out that how many times P must be added to itself in order to create Q. The discrete logarithm problem for elliptic curves is rather difficult in comparison to the corresponding problem in the multiplicative group of F p. One might have though that why we use elliptic curves in cryptography and the answer is quite simple; it is very hard to attack the ECDLP. Besides, there is an estimation in [2] that indicates elliptic curve cryptosystem needs less power consumption and smaller chip size [36]. In the following, we will study the Elliptic Curve Digital Signature Algorithm or ECDSA and in the fifth section we will study two types of attacks on it namely, Baby Step, Giant Step attack and Pollard s Rho Method. Behnaz Kouchaki Barzi 25

27 4.2 The Elliptic Curve Digital Signature Algorithm or ECDSA. The Elliptic Curve Digital Signature Algorithm is an analogue of the Digital Signature Algorithm [15]. DSA method uses the multiplicative group of finite fields whereas ECDSA uses the group of E(F p ) where E is an elliptic curve over a finite field F p. The story is about Samantha who wants to sign a document m by means of ECDSA. She uses a hash function in order to refer to the document she wants to sign, therefore m is an integer. Samantha chooses an elliptic curve E over a finite field F p where #E(F p ) = fr, where r is a quite large prime and f is a small integer. She also chooses a point P on the curve such that the order of P is r. Then, Samantha takes a secret number a as her private key and she computes Q = ap. The following information will be public F p, E, r, P, Q (f can be also public). Below, there will be the steps of generating the digital signature based on elliptic curves. First, we have the steps for signing the document as the following [36]: 1. Samantha chooses a random integer k where 1 k < r, then computes R = kp = (x, y). 2. She also computes s = k 1 (m + ax) (mod r). Remark.. One may wonder that what if k does not have an inverse? The answer is that since r is a prime number hence the inverse of k and s do exist. Hence, the signed document is (m, R, s). Below comes the steps of verification of the signature [36]; hence, Victor does the following: 1. He computes u 1 = s 1 m (mod r) and u 2 = s 1 x (mod r). 2. He also computes V = u 1 P + u 2 Q. 3. The signature is valid if and only if V = R. i.e. for verification we have: V = u 1 P + u 2 Q = s 1 mp + s 1 xq = s 1 (mp + xap ) = kp = R. Accordingly, the problem of finding the private key a is the so-called ECDLP. Behnaz Kouchaki Barzi 26

28 Example 3. Samantha wants to sign a document and send it to Victor. First, she uses an arbitrary hash function to get the hash value of the document she wants to sign. Document Hash Value: m = Next, she chooses an elliptic curve over a finite field; such as: y 2 = x x Over the Finite Field F Then, she chooses a point on the curve such that the order of the point is quite large. P = (5859, 5775), r = o(p ) = Samantha chooses a private key a = and she computes Q = ap = (12591, 12520). Generation Step. 1. Samantha chooses a random integer k such that 1 k < r = 9284 = k = 6683 and computes R = kp = (148, 9595) = (x, y) 2. Secondly, she calculates: s = k 1 (m + ax) (mod r) = s = ( ) = 1805 (mod 9284). The signed document would be: (m, R, s) = (1991, (148, 9595), 1805). Verification Step. Behnaz Kouchaki Barzi 27

29 1. To verify the signature, Victor computes u 1 = s 1 m = = 6127 (mod 9284) and also u 2 = s 1 x = = 3976 (mod 9284). 2. Eventually, he computes V = u 1 P + u 2 Q = (148, 9595) = R. Since Victor has V = R, then he verified that the signature is valid. Behnaz Kouchaki Barzi 28

30 5 Attacks on ECDSA. There are several known attacks on ECDSA so far but we will mention only two of them here in this section and for more reading refer to [15]. 5.1 Baby Step, Giant Step Attack. This method has been developed by Shanks [30] and it needs approximately N steps and also N storage to be accomplished where N is the order of the group [36]. Since our main focus is elliptic curves then we always assume that we have an elliptic curve E over a finite field F p and we let P and Q be points on the curve such that Q = ap where a is the private key. Since this type of attack needs N storage to be accomplished then it is not useful for large elliptic curve groups. Baby Step, Giant Step Algorithm. 1. Compute p p and name it m. 2. Make and store a list of ip for 1 i < m as the Baby Step. 3. Make another list of Q jmp for j = 0, 1, 2,, m 1 until a match is found with the stored list above; as the Giant Step. As soon as a match is found then we can find the private key a; i.e. a = i + mj (mod o(p )). Example 4. Consider E : Y 2 = X X as an elliptic curve over the finite field F Let P = (1049, 1968) and Q = (725, 1836). We have Q = ap and we want to compute m. The order of P is Now we start to generate the first list which is the Baby Step by multiplying the point P by i = 1, 2,, m 1 where m is calculated as m = = 61. Behnaz Kouchaki Barzi 29

31 Baby Step. i ip = (1049, 1968) 1 P = (1049, 1968) 2 2P = (2161, 625) 3 3P = (1509, 565) P = (384, 744).. Table 2: Multiple of the point P. We also generate the Giant Step as the following: Giant Step. j Q jmp 0 Q = (725, 1836) 1 Q mp = (2879, 3415) 2 Q 2mP = (3465, 2958). 60 Q 60mP = (384, 744). Table 3: List of Q jmp. Now that we have found a match, we can compute a. Since the position of the match in the first list is 37 and for the second one is 60, then we have: a = i + mj = m = = 181 (mod 1758). Therefore, we have found the private key or in other word the integer which is multiplied by P and gives us Q. Q = ap (725, 1836) = 181 (1049, 1968). Behnaz Kouchaki Barzi 30

32 5.2 Pollard s Rho Attack. Pollard s Rho attack has an advantage in comparison to the Baby Step, Giant Step attack which is about the storage of data. Baby Step, Giant Step method requires a storage of N however Pollard s Rho attack needs less storage [36]. There are several papers about Pollard s Rho method namely, [3], [1], [34], [38]. In the last two mentioned papers, there are some random walks through the Pollard s Rho method in order to speed up the entire process and we will explain some of it later in this section. The Pollard s Rho method is an improvement of the Baby Step, Giant Step method which was first proposed by Pollard [32]. It is called Pollard s Rho method since the shape of the points within its algorithm looks like the Greek letter ρ. First, we explain the Pollard s Rho method by its original walk then we mention a few words about the other iterating functions which is used in the algorithm [34]. Let E be an elliptic curve over a finite field F p and write G = E(F p ). Let P and Q be two points on the curve such that Q = kp where k is the private key and the order of P is n. We want to find k. Pollard s Rho Algorithm.[28]. 1. By using a hash function we divide the group of elliptic curve G into three parts; roughly equal size say S 1, S 2, S Define an iterating function f : G G such that: Q + R i, R i S 1 R i+1 = f(r i ) = 2R i, R i S 2 P + R i, R i S 3 3. Put R i = a i P + b i Q and a i, R i S 1 a i+1 = 2a i (mod n) R i S 2 a i + 1, R i S 3 and b i+1 = b i + 1, R i S 1 2b i (mod n) R i S 2 b i, R i S 3 Behnaz Kouchaki Barzi 31

33 4. Start by an initial value R 1 = P thus a 1 = 1 and b 1 = 0. Then generate pairs (R i, R 2i ) until you find a pair which is a match or R m = R 2m for some integer m. 5. As soon as a match is found then we can compute the private key k. We have: R m = a m P + b m Q R 2m = a 2m P + b 2m Q Since we have Q = kp and also we can have the order of the point P then we can do the computation modulo the order of P, hence a m P + b m Q = a 2m P + b 2m Q a m P + b m kp = a 2m P + b 2m kp (mod n). k = a 2m a m b m b 2m (mod n). Remark. In order to find a unique answer for k there must be gcd (b m b 2m, n) = 1 otherwise we will have d answers for it where gcd (b m b 2m, n) = d. Remark. There are always a match in the sequences in both Baby Step, Giant Step method and Pollard s Rho method since there are finitely many points on an elliptic curve thus soon or later we end up in a cycle. Behnaz Kouchaki Barzi 32

34 Example 5. Assume that E : Y 2 = X X is an elliptic curve over the finite field F 307. Let P = (159, 207) and Q = (72, 10). We compute the order of P which is 31. Now, we are ready to start the process of Pollard s Rho method. We will generate two lists however we do not have to store the lists since we always have to only compare the last element of each list to each other; i.e. we have to compare R i to R 2i where R i is R i = a i P + b i Q. First, we split E(F 307 ) into three subsets: S 1 = {R = (x, y) E(F 307 ) 0 x < }. S 2 = {R = (x, y) E(F 307 ) x < }. S 3 = {R = (x, y) E(F 307 ) x < 307}. Next step is to generate the lists. We start by the initial value R 1 = P thus, a 1 and b 1 = 0 then we will compute R i = a i P + b i Q. i (α i, β i ) R i 1 (1, 0) R 1 = P 2 (2, 0) R 2 = (153, 204) 3 (4, 0) R 3 = (295, 156) 4 (4, 140) R 4 = (270, 165) 5 (4, 267) R 5 = (168, 214). Table 4: The table of Pollard s Rho example. If we keep doing the above process, we will end up having a match which is 4P = 16P + 4Q = (295, 156). Now that we know the coefficients, we can compute the private key k as the following: k = = 28 (mod 31). In the above example, we have used the original Pollard s Rho method in which we have the function f in a way that we only add 1 in the definition of the coefficients a i+1 and b i+1. This function (f) is not random enough since it is following somehow a pattern to generate a i+1 and b i+1 therefore, in order to get a proper result out of Pollard s Rho method, we need to make it as random as we can. Teske has worked on this concept in [34] and we will explain one of the methods that Teske presented, in order to do our implementation within the next section. Behnaz Kouchaki Barzi 33

35 6 Implementation on Baby Step, Giant Step and Pollard s Rho method. The main idea is to find points of high order which seem to be a probable good point in order to generate the digital signature with. A probable good point on an elliptic curve in our case means a point that increases the security of the ECDSA which is made by the mentioned point and by the word probable we try to mention that when we want to find a collision, we do not want to run the algorithm forever! Therefore we have to abort the program after a while and in that case even if we could not find the collision and we say that the point is secure to generate the ECDSA, it would happen that after even one second more that the program would have run, we would have had the collision. This is the reason that we call this point a probable good point. 6.1 Baby Step, Giant Step Implementation. The problem is to find the private key a when Q = ap. We start to explain the Baby Step, Giant Step implementation with our Mathematica codes by an example. We generate 100 elliptic curves and choose 100 points P i on them such that we have one point P on each. Then by random, first, we take 30 points Q ij such that Q ij = ap i for j = 1,, 30 for each curve, second, we take only one point Q i for each curve i. In the third step, we take eleven different intervals to choose the prime number p i from and apply the Baby Step, Giant Step attack with only one point of Q i. Remark. Since the points Q i are randomly chosen, it might be quite quick to solve the ECDLP in some cases although the points P i are the points of high order; i.e. the private key a can be found quicker as you will see later in this section. 1. First, we have done our experiment by choosing 30 points of Q i,j for j = 1, 2,, 30 for each curve. Assume that we have chosen 100 elliptic curves by random and let P i be the 100 points on them in a way that was explained above. We will calculate the order of each P i by the Mathematica codes we have provided as you can see at the end of this section. The curves have been chosen between the primes of 10 6 and 10 7 and below you can see the chart of the points P i and their order. Behnaz Kouchaki Barzi 34

36 P i Order Of Point P i P i Order Of Point P i P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Table 5: Order Of Points P i. Behnaz Kouchaki Barzi 35

37 P i Order Of Point P i P i Order Of Point P i P P P P P P P P P P P P P P P P Table 6: Order Of Points P i. Now we get 30 randomly chosen points Q ij for i = 1, 2,, 100 and j = 1, 2,, 30 and for each different Q we solve the ECDLP. The steps we are taking from now on start by fixing the integer m for each curve as it is explained in the section Attacks on ECDSA and the subsection of Baby Step, Giant Step Attack according to Hasse s theorem. Then we generate the two lists of Baby Step and Giant Step. (All is done by the Mathematica codes.) By means of a command in Mathematica which is called Timing, we can calculate the time which takes to get an intersection between the two lists of Baby Step and Giant Step. We get the time of intersection for each Q ij i.e. for each Q ij = ap i where a is a random integer that plays the role of the private key for each turn. Then we have plotted the graph of the order of the points P i according to the times which have taken for each Q ij in order to get the intersection between the two lists. For instance, for P 1 we have 30 different time due to 30 different Q 1j. For our example, we have plotted the graph as you can see the figure 6. Time.Of.Intersection Order.Of.Point Figure 6: Baby Step, Giant Step for 30 different Q. Behnaz Kouchaki Barzi 36

38 In the above graph, each color presents a same point P i but different times for different Q ij. As we have mentioned it earlier, since the points Q are chosen randomly, they might have been multiplied with small integers which is the reason that we get the intersection quickly although sometimes the order of the related point P is high. 2. In this part, we generate 100 elliptic curves as we have done for the previous part. Then, we take only one Q randomly for each curve in order to have Q i = ap i. We calculate the order of each point P i and compute the time of each intersection. Eventually, we plot the graph of time of intersection based on the order of point P i, figure 7. P i Order Of Point P i Point Q i Time Of Intersection P 1 = (34319, 34302) (8578, 15104) P 2 = (32692, 3356) (20732, 21022) P 3 = (9152, 9119) 7315 (3449, 25209) P 4 = (8882, 3674) 7407 (15724, 21439) P 5 = (3141, 4261) 9962 (4269, 2083) P 6 = (18027, 19771) (11011, 5070) P 7 = (35037, 17916) (38386, 33691) P 8 = (6396, 6644) 5174 (2246, 7812) P 9 = (26919, 16796) (10817, 17379) P 10 = (30911, 26839) (19702, 19846) Table 7: The Table of Bs.Gs. for 100 Curves with Only One Q. We keep finding the time of intersection for all of the 100 curves and then we plot the graph as the following, figure 7: TimeOfIntersection OrderofPoint Figure 7: Baby Step, Giant Step for Only One Q. Behnaz Kouchaki Barzi 37

39 By observing the last two graphs, we can say that the time of intersection increases as the order of the point P increases. However, we could observe that since we have chosen the points Q randomly, then the choice of a good point of P might be in relation to the point Q as well, since even if the order of the point P is high enough, we might have had an integer which is multiplied by P and we have got a not so good point Q and this is the reason why some of the intersection times are short although the order of the point P is high. Nevertheless, we conclude that as long as the order of the point P increases the time of intersection increases as well but how and in which manner? It will be explained later on. 3. In the following we have worked on eleven different intervals in which the elliptic curves are chosen in between them in order to do the Baby Step, Giant Step attack. As we have done before, we choose 100 elliptic curves over finite fields F pi and for each eleven times, these p i are chosen from one of those eleven different intervals. Then we take only one point Q i for each P i E(F pi ) and apply the Baby Step, Giant Step method. After, we have applied the method, we plot the graph of the time of intersection of each P i E(F pi ) with Q i. By observing the graph, there is a time for each graph that there are only a couple of points above it; which means that we can stop running the algorithm of Baby Step, Giant Step from that certain time and say that we have found a time limit i.e. we always can find the intersection below this time limit and after that, we might be able to find the intersection or might not! It totally depends on the point Q in this case. Below comes the graphs of the above process. In figure 8, we have those 100 elliptic curves which were chosen among the primes between and and as we can observe from the graph, we can always find the intersection under 0.5 seconds or else we might not find the intersection i.e, most of the intersections have been found under the time of 0.5 seconds. Behnaz Kouchaki Barzi 38

40 TimeOfIntersection OrderofPoint Figure 8: Time Limit/ Baby Step, Giant Step. Here, we will have some more graphs of our investigation and we will see the final graph of all eleven attempts at the end; the graph 12. TimeOfIntersection OrderofPoint Figure 9: Time Limit/ Baby Step, Giant Step. Behnaz Kouchaki Barzi 39

41 TimeOfIntersection OrderofPoint Figure 10: Time Limit/ Baby Step, Giant Step. TimeOfIntersection OrderofPoint Figure 11: Time Limit/ Baby Step, Giant Step. The graph 12 shows that the time limit based on the order of the point P grows exponentially. Behnaz Kouchaki Barzi 40

42 TimeOfIntersection OrderofPoint Figure 12: Final Time Limit/ Baby Step, Giant Step. All of the above three items shows that the order of the point increases as the time of intersection increases and this growth is exponential. By means of the FindFit command in Mathematica (which finds numerical values of the parameters that makes the function give a best fit to the data as a function of variables) we have found the function with the input of the order of the point and the output of the time of intersection as an estimation of finding a probable good point. The function is: f(x) = log x In order to understand the work which has been done, first we will plot the graph of the data, graph 13 and then the graph of the function that has been found according to the data via the FindFit command, graph Figure 13: The graph of the Bs.Gs. according to the real data. Behnaz Kouchaki Barzi 41

43 Figure 14: The graph of the data according to the function (Bs.Gs). Finally, we have combined the both graphs by means of the Show command in Mathematica, in order to see that how close they are and in some sense, how accurate the function is, graph Figure 15: The combination of the last two graphs (Bs.Gs). 6.2 Pollard s Rho Implementation. Here again, the problem is to find the private key a if we have Q = ap. For the Pollard s Rho implementation, we have also used the same method as for Behnaz Kouchaki Barzi 42

44 the Baby Step and Giant Step but this time only for one point of Q or in other word, we have only applied the item three of the Baby Step and Giant Step Implementation. To apply the Pollard s Rho method, we need to have the iterating function f as random as possible. Thus, instead of adding 1 to the sequence of a i and b i according to their definitions, we find two random number t and s and then add it to the sequence a i and b i respectively [34] i.e., a i+1 = a i + t and b i+1 = b i + s. We work with eleven different intervals in which the primes are chosen from and then we do our implementation for only one point Q to find the time of intersection. For instance the first interval is between and After we have applied the Pollard s Rho method - in a way that has been explained for the third item of Bs.Gs. attack- we will have the following graphs: TimeOfIntersection OrderofPoint Figure 16: Time Limit/ Pollard s Rho. Moreover, we will have the following graph for the second interval which is between and Behnaz Kouchaki Barzi 43

45 TimeOfIntersection OrderofPoint Figure 17: Time Limit/ Pollard s Rho. Likewise, we plot the other ninth graph according to the observation we have from the data derived by applying the Pollard s Rho method and then we will see the final graph of all eleven attempts we have done at the end; the graph 18. TimeOfIntersection OrderofPoint Figure 18: Final Time Limit/ Pollard s Rho. As we see from the above graph, the time of intersection grows exponentially as the order of the point grows. It is important to mention that for this investigation, the Pollard s Rho method we have applied is not random enough and that is why we have got longer time to catch the intersection in comparison to Bs.Gs. attack however this process can be applied for sufficiently random Pollard s Rho method and get some useful result out of it. Furthermore, we have found the function with the input of the order of the point and the output of the time of intersection as an estimation of finding a probable good point which can be used in creating a safe digital signature against the Behnaz Kouchaki Barzi 44

46 Pollard s Rho attack. In order to find the function, we have done the same process as in Bs.Gs. therefore, we have used the FindFit command again and then we have found the two parameters a, b which are needed to have a function in the form of a log x + b. The function is: f(x) = log x Below, there are three graphs namely the graph of the real data, graph 19, the graph of the data according to the function which has been found, graph 20 and the last graph is the combination of the first two graphs, graph 21 as we have done for the Bs.Gs attack as well Figure 19: The graph of the Pollard s Rho according to the real data Figure 20: The graph of the data according to the function (Pollard s Rho). Behnaz Kouchaki Barzi 45

47 Figure 21: The combination of the last two graphs (Pollard s Rho). Behnaz Kouchaki Barzi 46

48 7 Performance Evaluation Of Implementation. As we have explained so far in this thesis, the time of intersection increases as the order of the point increases in both types of attacks; Baby Step, Giant Step and Pollard s Rho attack. Now the question is if the method which has been explained before in order to find a time limit for the mentioned attacks can be applied to the ECDSA in which there are larger primes as in reality? In reality, in order to create a digital signature based on elliptic curve we need a quite large prime therefore the primes which have been used in this thesis are considered to be very small primes. The result of the thesis shows that the time of intersection grows exponentially as the order of the prime grows and the large primes will most possibly follow the same function. The main goal of the thesis was to find the probable good point which can be used to create a digital signature based on elliptic curves in a safer way. The time limits which has been found by observing the graphs indicates that under the certain time limit we are able to find the intersection therefore the ECDSA is forged otherwise we might not find the intersection which means that the point which has been used for ECDSA is considered to be a good point or a safer point. However, we might find the intersection right after the time limit we have been expecting, for example the intersection might be found half a second later than the time limit. In other words, assume that we have a certain time limit to see if we can find the intersection. Since we have a certain time limit then the attack has to be stopped when the time limit is over. Here we have two different results. First is the result when the intersection is found within the certain time limit we had. Second is the result when the intersection is not found within the time limit. In the second case we never know the time of intersection which is obviously later than the time limit we have already had, maybe half a second later than the time limit or even one hour later. That is the reason we say those points are probably good points because if the intersection is not found within a certain time limit then we do not know that how long does it take to find the intersection after the time limit, maybe even less than half a second or maybe one hour after the time limit we have estimated. Therefore, if an adversary waits just half a second more then he or she may forge the ECDSA. The above estimation can help us to have a safer ECDSA and have a hint about the point which we better use to create the digital signature we need. There are deterministic methods of finding the generators of elliptic curves over finite fields [19], [29], [31]. Therefore one may ask why not using the deterministic method in order to find the proper elliptic curve which is safe enough for the cryptography purpose? Behnaz Kouchaki Barzi 47

49 The fact is that, the deterministic methods are practically too slow. The deterministic method in [19] computes the group structure of an elliptic curve over a finite field F p under the time of O(p o(1)) [31]. Hence we want to speed up the process as much as possible. The method which has been presented in this thesis has a benefit in comparison to the deterministic methods. The benefit is that, we can decide about the time limit i.e. we can put a time limit ourselves. Since we put the time limit ourselves, we may save some times in order to find the proper elliptic curve according to a certain purpose of a cryptography concept. There is only one important fact that it has been already mentioned couple of times within the thesis and it is that our Pollard s Rho attack is not random enough and therefore in comparison to Bs.Gs. attack it takes more time to be accomplished however if the Pollard s Rho method is random enough then of course it takes less time to find the intersection and to forge the ECDSA. This would be as a future work to find out how the function of order of the point and the time limit will look like with the random enough Pollard s Rho method and the assumption is that it will be exponentially as well. This thesis has the potential of several future works such as working on the larger primes and do the same process or find a way to estimate how fast this method which has been presented within this thesis is. In addition, one can work on the deterministic methods more and see if we can speed up the process. Behnaz Kouchaki Barzi 48

50 8 Appendix. Here comes the Mathematica codes which have been used to implement the goals of the thesis. If we want to add two points on an elliptic curve, we use the following codes: addpoints [ { x1, y1 }, { x2, y2 }, a, b, p ] := Module [ { \ [ Lambda ], x3, y3 }, Quiet [ I f [Mod[ 4 aˆ b ˆ2, p ] == 0, Print [ The curve i s s i n g u l a r! ] ; Abort [ ] ] ; I f [Mod[ y1 ˆ2 x1ˆ3 a x1 b, p ]!= 0 Mod[ y2ˆ2 x2ˆ3 a x2 b, p ]!= 0, Print [ Error : Point ( s ) not on curve! ] ; Abort [ ] ] ; I f [ { x1, y1} == { \ [ I n f i n i t y ], \ [ I n f i n i t y ] }, Return [ { x2, y2 } ] ; Break [ ] ] ; I f [ { x2, y2} == { \ [ I n f i n i t y ], \ [ I n f i n i t y ] }, Return [ { x1, y1 } ] ; Break [ ] ] ; I f [ x1 == x2 && y1 == Mod[ y2, p ], Return [ { \ [ I n f i n i t y ], \ [ I n f i n i t y ] } ] ; Break [ ] ] ; I f [ { x1, y1} == {x2, y2 }, \ [ Lambda ] = Mod[ ( 3 x1ˆ2 + a ) PowerMod [ 2 y1, 1, p ], p ], \ [ Lambda ] = Mod [ ( y2 y1 ) PowerMod [ x2 x1, 1, p ], p ] ] ; x3 = Mod [ \ [ Lambda ] ˆ 2 x1 x2, p ] ; y3 = Mod [ \ [ Lambda ] ( x1 x3 ) y1, p ] ; {x3, y3 } ] ] In order to multiply a point on an elliptic curve with an integer, we use the following codes: multpoint [ n, { x, y }, a, b, p ] := Module [ { double, base2, rounds, x2, y2, neg }, neg = n < 0 ; {x2, y2} = {x, y } ; Behnaz Kouchaki Barzi 49

51 double = { } ; base2 = Reverse [ I n t e g e r D i g i t s [ Abs [ n ], 2 ] ] ; Do [ AppendTo [ double, {x2, y2 } ] ; {x2, y2} = addpoints [ { x2, y2 }, {x2, y2 }, a, b, p ], { Length [ base2 ] } ] ; {x2, y2} = { \ [ I n f i n i t y ], \ [ I n f i n i t y ] } ; Do [ I f [ base2 [ [ i ] ] == 1, {x2, y2} = addpoints [ { x2, y2 }, double [ [ i ] ], a, b, p ] ], { i, Length [ base2 ] } ] ; I f [ neg, Return [ { x2, p y2 } ], Return [ { x2, y2 } ] ] ] In order to subtract two points i.e., (x 1, y 1 ) (x 2, y 2 ): s u b t r a c t p o i n t s [ { x1, y1 }, { x2, y2 }, a, b, p ] := Module [ { }, I f [ x2 == \ [ I n f i n i t y ], Return [ { x1, y1 } ] ] ; I f [ x1 == \ [ I n f i n i t y ], I f [ x2 == \ [ I n f i n i t y ], Return [ { \ [ I n f i n i t y ], \ [ I n f i n i t y ] } ], Return [ { x2, Mod[ y2, p ] } ] ] ; I f [ { x1, y1} == {x2, y2 }, Return [ { \ [ I n f i n i t y ], \ [ I n f i n i t y ] } ] ] ] ; addpoints [ { x1, y1 }, {x2, Mod[ y2, p ] }, a, b, p ] ] In order to find the order of the curve: OrderOfCurve [ a, b, p ] := I f [Mod[ 4 aˆ bˆ2 + b, p ] == 0, Print [ The curve i s s i n g u l a r! ], p Sum [ JacobiSymbol [ xˆ3 + a x + b, p ], {x, 0, p 1 } ] ] We can find the order of a point by using the following codes: OrderOfPoint [ { x, y }, a, b, p ] := Module [ { c a n d i d a t e s }, I f [Mod[ 4 aˆ b ˆ2, p ] == 0, Print [ The curve i s s i n g u l a r! ] ; Abort [ ] ] ; I f [Mod[ yˆ2 xˆ3 a x b, p ]!= 0, Print [ Error : Point not on curve! ] ; Abort [ ] ] ; Behnaz Kouchaki Barzi 50

52 c a n d i d a t e s = D i v i s o r s [ OrderOfCurve [ a, b, p ] ] ; Do [ I f [ multpoint [ c a n didates [ [ i ] ], {x, y }, a, b, p ] == { \ [ I n f i n i t y ], \ [ I n f i n i t y ] }, Return [ candidates [ [ i ] ] ] ; Break [ ] ], { i, Length [ c a n d idates ] } ] ] If we want to find some random elliptic curves which their primes are chosen from an interval such as [A, B] where A, B N then we will use the following codes: RandomElliptic [ s e e d ] := Module [ { p, a, b, x, y, pointp, pointq }, SeedRandom [ seed ] ; p = RandomPrime [ {A, B } ] ; {a, b} = {0, 0 } ; While [Mod[ 4 aˆ b ˆ2, p ] == 0, {a, x, y} = RandomChoice [ Range [ 0, p 1 ], 3 ] ; b = Mod[ yˆ2 xˆ3 a x, p ] ] ; pointp = {x, y } ; pointq = multpoint [ RandomInteger [ Floor [ p Sqrt [ p ] ] ], pointp, a, b, p ] ; {a, b, p, pointp, OrderOfPoint [ { x, y }, a, b, p ], pointq } ] Now we have two more codes; Bs.Gs. and Pollard s Rho codes respectively: c u r v e l i s t = Table [ RandomElliptic [ h ], {h, 1, } ] ; l i s t o f r e s u l t 1 = { } ; Do[ { a, b, p, P, order, Q} = c u r v e l i s t [ [ i ] ] ; m = C e i l i n g [ Sqrt [ Floor [ p Sqrt [ p ] ] ] ] ; AppendTo [ l i s t o f r e s u l t 1, Timing [ I n t e r s e c t i o n [ Table [ multpoint [ l, P, a, b, p ], { l, 1, m 1 } ], Table [ s u b t r a c t p o i n t s [Q, multpoint [m j, P, a, b, p ], a, b, p ], { j, 0, m 1 } ] ] ] ], { i, } ] ; AND Behnaz Kouchaki Barzi 51

53 c u r v e l i s t = Table [ RandomElliptic [ h ], {h, 1, } ] ; l i s t o f r e s u l t 1 = { } ; Do[ { a, b, p, P, order, Q} = c u r v e l i s t [ [ i ] ] ; {t, s } = RandomSample [ Range [ order ], 2 ] ; AppendTo [ l i s t o f r e s u l t 1, Timing [ { \ [ Alpha ], \ [ Beta ] } = {1, 0 } ; j = 1 ; { \ [ Alpha ], \ [ Beta ] } = Mod[ nextpoint [ a, b, p, P, Q, { \ [ Alpha ], \ [ Beta ] }, {t, s } ], order ] ; R1 = g e t p o i n t [ { \ [ Alpha ], \ [ Beta ] }, P, Q, a, b, p ] ; { \ [Gamma], \ [ Delta ] } = Mod[ nextpoint [ a, b, p, P, Q, { \ [ Alpha ], \ [ Beta ] }, {t, s } ], order ] ; R2 = g e t p o i n t [ { \ [Gamma], \ [ Delta ] }, P, Q, a, b, p ] ; While [ R1!= R2 && j <= 1000, { \ [ Alpha ], \ [ Beta ] } = Mod[ nextpoint [ a, b, p, P, Q, { \ [ Alpha ], \ [ Beta ] }, {t, s } ], order ] ; R1 = g e t p o i n t [ { \ [ Alpha ], \ [ Beta ] }, P, Q, a, b, p ] ; Do [ { \ [Gamma], \ [ Delta ] } = Mod[ nextpoint [ a, b, p, P, Q, { \ [Gamma], \ [ Delta ] }, {t, s } ], order ] ; R2 = g e t p o i n t [ { \ [Gamma], \ [ Delta ] }, P, Q, a, b, p ], { 2 } ] ; j ++]; I f [ R1 == R2, { \ [ Alpha ], \ [ Beta ], \ [Gamma], \ [ Delta ] } ] ] ], { i, 100}] where the codes of getpoint and nextpoint are the following: g e t p o i n t [ { \ [ Alpha ], \ [ Beta ] }, P, Q, a, b, p ] := addpoints [ multpoint [ \ [ Alpha ], P, a, b, p ], multpoint [ \ [ Beta ], Q, a, b, p ], a, b, p ] ; ( computes \ [ Alpha ]P + \ [ Beta ]Q on the curve ) AND nextpoint [ a, b, p, pointp, pointq, {m, n }, { t, s } ] := Module [ { nextx }, nextx = F i r s t [ g e t p o i n t [ {m, n }, pointp, pointq, a, b, p ] ] ; I f [ nextx == \ [ I n f i n i t y ], Return [ { 0, 0 } ], Which [ 0 <= nextx < p /3, Return [ {m + t, n } ], p/3 <= nextx < 2 p /3, Return [ { 2 m, 2 n } ], 2 p/3 <= nextx < p, Return [ {m, n + s } ] ] ] ] Behnaz Kouchaki Barzi 52

54 References [1] Bai, S. and Brent, R.P., 2008, January. On the efficiency of Pollard s rho method for discrete logarithms. In Proceedings of the fourteenth symposium on Computing: the Australasian theory-volume 77 (pp ). Australian Computer Society, Inc. [2] Blake, I., Seroussi, G. and Smart, N., Elliptic Curves in Cryptography, volume 265 of London Mathematical Society Lecture Note Series. Vancouver [3] Blumenfeld, A., Pollard s Rho Algorithm for Elliptic Curves. [4] Brumley, B.B. and Tuveri, N., Remote timing attacks are still practical. In Computer Security ESORICS 2011 (pp ). Springer Berlin Heidelberg. [5] Damico, T. (2009). A Brief History of Cryptography. Student Pulse, [online] 1(11). Available at: [Accessed 29 Apr. 2016]. [6] Diffie, W. and Hellman, M. (1976). New directions in cryptography. IEEE Trans. Inform. Theory, 22(6), pp [7] Diffie, W 1992, The first ten years of public key cryptology, Contemporary Cryptology. [8] Ellis, JH 1999, THE HISTORY OF NON-SECRET ENCRYPTION, Cryptologia, 23, 3, p. 267, Publisher Provided Full Text Searching File. [9] Fangguo, Z, & Ping, W 2013, Speeding up elliptic curve discrete logarithm computations with point halving, Designs, Codes And Cryptography, 67, 2, pp [10] Fraleigh, J, & Katz, V 2003, A First Course In Abstract Algebra, n.p.: Boston, Mass. : Addison-Wesley, cop [11] Goos, G, Hartmanis, J, Barstow, D, Brauer, W, Brinch Hansen, P, Gries, D, Luckham, D, Moler, C, Pnueli, A, Seegmüller, G, Stoer, J, Wirth, N, Williams, H, & Miller, V 1986, Use of Elliptic Curves in Cryptography, Advances in Cryptology - CRYPTO 85 Proceedings p. 417 n.p.: Supplemental Index. [12] Guajardo, J, & Paar, C 1997, Efficient algorithms for elliptic curve cryptosystems, Advances In Cryptology CRYPTO 97 (Santa Barbara, CA, 1997). [13] Hoffstein, J, Pipher, J, & Silverman, J 2008, An Introduction To Mathematical Cryptography. [Electronic Resource], n.p.: New York ; London : Springer, Behnaz Kouchaki Barzi 53

55 [14] Johnson, D.B. and Menezes, A.J., 1998, January. Elliptic curve DSA (ECDSA): an enhanced DSA. In Proceedings of the 7th conference on USENIX Security Symposium (Vol. 7, pp ). [15] Johnson, D., Menezes, A. and Vanstone, S., The elliptic curve digital signature algorithm (ECDSA). International Journal of Information Security, 1(1), pp [16] Kahn, D 1967, The Code Breakers: The Story Of Secret Writing, London: Weidenfeld & Nicolson, MLA International Bibliography [17] Koblitz, N 1987, Elliptic Curve Cryptosystems, Mathematics of Computation, 177, p. 203, JSTOR Journals [18] Koblitz, N, & Menezes, A 1998, Algebraic Aspects Of Cryptography, n.p.: Berlin : Springer, cop [19] Kohel, D.R. and Shparlinski, I.E., 2000, July. On exponential sums and group generators for elliptic curves over finite fields. In International Algorithmic Number Theory Symposium (pp ). Springer Berlin Heidelberg. [20] Medwed, M. and Oswald, E., Template attacks on ECDSA. In Information Security Applications (pp ). Springer Berlin Heidelberg. [21] Menezes, A., Qu, M., Stinson, D. and Wang, Y., Evaluation of Security Level of Cryptography: ECDSA Signature Scheme. Certicom Research. January, 15. [22] Menezes, A.J., Elliptic curve public key cryptosystems (Vol. 234). Springer Science & Business Media. [23] Menezes, A.J., Van Oorschot, P.C. and Vanstone, S.A., Handbook of Applied Cryptography. Series on discrete mathematics and its applications. [24] Pagni, D 2007, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cyrptography, Journal Of Chemical Education, 84, 6, p [25] Pfitzmann, B. (1996). Digital signature schemes. Berlin: Springer. [26] Pollard, J.M., Monte Carlo methods for index computation (mod p). Mathematics of computation, 32(143), pp [27] Rashidi, B, Sayedi, S, & Farashahi, R 2016, High-speed hardware architecture of scalar multiplication for binary elliptic curve cryptosystems, Microelectronics Journal, 52, pp [28] Seet, M.Z., ELLIPTIC CURVE CRYPTOGRAPHY (Doctoral dissertation, School of Mathematics and Statistics, The University of New South Wales). Behnaz Kouchaki Barzi 54

56 [29] Schoof, R., Elliptic curves over finite fields and the computation of square roots mod p. Mathematics of computation, 44(170), pp [30] Shanks, D., Class number, a theory of factorization, and genera. In Proc. Symp. Pure Math (Vol. 20, pp ). [31] Shparlinski, I.E. and Voloch, J.F., Generators of elliptic curves over finite fields. Preprint. [32] Silverman, J.H., Elliptic curves and cryptography. In PROCEED- INGS OF SYMPOSIA IN APPLIED MATHEMATICS (Vol. 62, p. 91). [33] Singh, S., The code book: the science of secrecy from ancient Egypt to quantum cryptography. Anchor. [34] Teske, E., Speeding up Pollard s rho method for computing discrete logarithms (pp ). Springer Berlin Heidelberg. [35] Wang, X., Yin, Y.L. and Yu, H., 2005, August. Finding collisions in the full SHA-1. In Advances in Cryptology CRYPTO 2005 (pp ). Springer Berlin Heidelberg. [36] Washington, LC 2008, Elliptic Curves. Number Theory And Cryptography, n.p.: Boca Raton, Fla. [u.a.] CRC Press [37] Woei-Jiunn, T, & Chih-Ho, C 2005, Efficient algorithms for speeding up the computations of elliptic curve cryptosystems, Applied Mathematics And Computation, 168, 2, pp [38] Zhang, F. and Wang, P., Speeding up elliptic curve discrete logarithm computations with point halving. Designs, codes and cryptography, 67(2), pp Behnaz Kouchaki Barzi 55

57 !! Faculty of Technology SE Kalmar SE Växjö Phone +46 (0) Lnu.se/faculty-of-technology?l=en

Elliptic curves: Theory and Applications. Day 4: The discrete logarithm problem.

Elliptic curves: Theory and Applications. Day 4: The discrete logarithm problem. Elliptic curves: Theory and Applications. Day 4: The discrete logarithm problem. Elisa Lorenzo García Université de Rennes 1 14-09-2017 Elisa Lorenzo García (Rennes 1) Elliptic Curves 4 14-09-2017 1 /

More information

Public-key Cryptography and elliptic curves

Public-key Cryptography and elliptic curves Public-key Cryptography and elliptic curves Dan Nichols University of Massachusetts Amherst nichols@math.umass.edu WINRS Research Symposium Brown University March 4, 2017 Cryptography basics Cryptography

More information

Lecture 1: Introduction to Public key cryptography

Lecture 1: Introduction to Public key cryptography Lecture 1: Introduction to Public key cryptography Thomas Johansson T. Johansson (Lund University) 1 / 44 Key distribution Symmetric key cryptography: Alice and Bob share a common secret key. Some means

More information

CRYPTOGRAPHY AND NUMBER THEORY

CRYPTOGRAPHY AND NUMBER THEORY CRYPTOGRAPHY AND NUMBER THEORY XINYU SHI Abstract. In this paper, we will discuss a few examples of cryptographic systems, categorized into two different types: symmetric and asymmetric cryptography. We

More information

Public-key Cryptography and elliptic curves

Public-key Cryptography and elliptic curves Public-key Cryptography and elliptic curves Dan Nichols nichols@math.umass.edu University of Massachusetts Oct. 14, 2015 Cryptography basics Cryptography is the study of secure communications. Here are

More information

CPSC 467b: Cryptography and Computer Security

CPSC 467b: Cryptography and Computer Security CPSC 467b: Cryptography and Computer Security Instructor: Michael Fischer Lecture by Ewa Syta Lecture 13 March 3, 2013 CPSC 467b, Lecture 13 1/52 Elliptic Curves Basics Elliptic Curve Cryptography CPSC

More information

CPSC 467: Cryptography and Computer Security

CPSC 467: Cryptography and Computer Security CPSC 467: Cryptography and Computer Security Michael J. Fischer 1 Lecture 13 October 16, 2017 (notes revised 10/23/17) 1 Derived from lecture notes by Ewa Syta. CPSC 467, Lecture 13 1/57 Elliptic Curves

More information

MATH 158 FINAL EXAM 20 DECEMBER 2016

MATH 158 FINAL EXAM 20 DECEMBER 2016 MATH 158 FINAL EXAM 20 DECEMBER 2016 Name : The exam is double-sided. Make sure to read both sides of each page. The time limit is three hours. No calculators are permitted. You are permitted one page

More information

Elliptic Curves. Giulia Mauri. Politecnico di Milano website:

Elliptic Curves. Giulia Mauri. Politecnico di Milano   website: Elliptic Curves Giulia Mauri Politecnico di Milano email: giulia.mauri@polimi.it website: http://home.deib.polimi.it/gmauri May 13, 2015 Giulia Mauri (DEIB) Exercises May 13, 2015 1 / 34 Overview 1 Elliptic

More information

One can use elliptic curves to factor integers, although probably not RSA moduli.

One can use elliptic curves to factor integers, although probably not RSA moduli. Elliptic Curves Elliptic curves are groups created by defining a binary operation (addition) on the points of the graph of certain polynomial equations in two variables. These groups have several properties

More information

Public-Key Cryptosystems CHAPTER 4

Public-Key Cryptosystems CHAPTER 4 Public-Key Cryptosystems CHAPTER 4 Introduction How to distribute the cryptographic keys? Naïve Solution Naïve Solution Give every user P i a separate random key K ij to communicate with every P j. Disadvantage:

More information

Introduction to Elliptic Curve Cryptography

Introduction to Elliptic Curve Cryptography Indian Statistical Institute Kolkata May 19, 2017 ElGamal Public Key Cryptosystem, 1984 Key Generation: 1 Choose a suitable large prime p 2 Choose a generator g of the cyclic group IZ p 3 Choose a cyclic

More information

Introduction to Elliptic Curve Cryptography. Anupam Datta

Introduction to Elliptic Curve Cryptography. Anupam Datta Introduction to Elliptic Curve Cryptography Anupam Datta 18-733 Elliptic Curve Cryptography Public Key Cryptosystem Duality between Elliptic Curve Cryptography and Discrete Log Based Cryptography Groups

More information

Arithmétique et Cryptographie Asymétrique

Arithmétique et Cryptographie Asymétrique Arithmétique et Cryptographie Asymétrique Laurent Imbert CNRS, LIRMM, Université Montpellier 2 Journée d inauguration groupe Sécurité 23 mars 2010 This talk is about public-key cryptography Why did mathematicians

More information

Chapter 8 Public-key Cryptography and Digital Signatures

Chapter 8 Public-key Cryptography and Digital Signatures Chapter 8 Public-key Cryptography and Digital Signatures v 1. Introduction to Public-key Cryptography 2. Example of Public-key Algorithm: Diffie- Hellman Key Exchange Scheme 3. RSA Encryption and Digital

More information

Lecture Notes, Week 6

Lecture Notes, Week 6 YALE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE CPSC 467b: Cryptography and Computer Security Week 6 (rev. 3) Professor M. J. Fischer February 15 & 17, 2005 1 RSA Security Lecture Notes, Week 6 Several

More information

L7. Diffie-Hellman (Key Exchange) Protocol. Rocky K. C. Chang, 5 March 2015

L7. Diffie-Hellman (Key Exchange) Protocol. Rocky K. C. Chang, 5 March 2015 L7. Diffie-Hellman (Key Exchange) Protocol Rocky K. C. Chang, 5 March 2015 1 Outline The basic foundation: multiplicative group modulo prime The basic Diffie-Hellman (DH) protocol The discrete logarithm

More information

The Elliptic Curve in https

The Elliptic Curve in https The Elliptic Curve in https Marco Streng Universiteit Leiden 25 November 2014 Marco Streng (Universiteit Leiden) The Elliptic Curve in https 25-11-2014 1 The s in https:// HyperText Transfer Protocol

More information

Public Key Cryptography

Public Key Cryptography Public Key Cryptography Introduction Public Key Cryptography Unlike symmetric key, there is no need for Alice and Bob to share a common secret Alice can convey her public key to Bob in a public communication:

More information

8 Elliptic Curve Cryptography

8 Elliptic Curve Cryptography 8 Elliptic Curve Cryptography 8.1 Elliptic Curves over a Finite Field For the purposes of cryptography, we want to consider an elliptic curve defined over a finite field F p = Z/pZ for p a prime. Given

More information

Discrete Logarithm Problem

Discrete Logarithm Problem Discrete Logarithm Problem Çetin Kaya Koç koc@cs.ucsb.edu (http://cs.ucsb.edu/~koc/ecc) Elliptic Curve Cryptography lect08 discrete log 1 / 46 Exponentiation and Logarithms in a General Group In a multiplicative

More information

Definition: For a positive integer n, if 0<a<n and gcd(a,n)=1, a is relatively prime to n. Ahmet Burak Can Hacettepe University

Definition: For a positive integer n, if 0<a<n and gcd(a,n)=1, a is relatively prime to n. Ahmet Burak Can Hacettepe University Number Theory, Public Key Cryptography, RSA Ahmet Burak Can Hacettepe University abc@hacettepe.edu.tr The Euler Phi Function For a positive integer n, if 0

More information

Chapter 4 Asymmetric Cryptography

Chapter 4 Asymmetric Cryptography Chapter 4 Asymmetric Cryptography Introduction Encryption: RSA Key Exchange: Diffie-Hellman [NetSec/SysSec], WS 2008/2009 4.1 Asymmetric Cryptography General idea: Use two different keys -K and +K for

More information

Asymmetric Cryptography

Asymmetric Cryptography Asymmetric Cryptography Chapter 4 Asymmetric Cryptography Introduction Encryption: RSA Key Exchange: Diffie-Hellman General idea: Use two different keys -K and +K for encryption and decryption Given a

More information

CPSC 467b: Cryptography and Computer Security

CPSC 467b: Cryptography and Computer Security CPSC 467b: Cryptography and Computer Security Michael J. Fischer Lecture 11 February 21, 2013 CPSC 467b, Lecture 11 1/27 Discrete Logarithm Diffie-Hellman Key Exchange ElGamal Key Agreement Primitive Roots

More information

9 Knapsack Cryptography

9 Knapsack Cryptography 9 Knapsack Cryptography In the past four weeks, we ve discussed public-key encryption systems that depend on various problems that we believe to be hard: prime factorization, the discrete logarithm, and

More information

Elliptic Curve Cryptography

Elliptic Curve Cryptography Elliptic Curve Cryptography Elliptic Curves An elliptic curve is a cubic equation of the form: y + axy + by = x 3 + cx + dx + e where a, b, c, d and e are real numbers. A special addition operation is

More information

Week 7 An Application to Cryptography

Week 7 An Application to Cryptography SECTION 9. EULER S GENERALIZATION OF FERMAT S THEOREM 55 Week 7 An Application to Cryptography Cryptography the study of the design and analysis of mathematical techniques that ensure secure communications

More information

b = 10 a, is the logarithm of b to the base 10. Changing the base to e we obtain natural logarithms, so a = ln b means that b = e a.

b = 10 a, is the logarithm of b to the base 10. Changing the base to e we obtain natural logarithms, so a = ln b means that b = e a. INTRODUCTION TO CRYPTOGRAPHY 5. Discrete Logarithms Recall the classical logarithm for real numbers: If we write b = 10 a, then a = log 10 b is the logarithm of b to the base 10. Changing the base to e

More information

Polynomial Interpolation in the Elliptic Curve Cryptosystem

Polynomial Interpolation in the Elliptic Curve Cryptosystem Journal of Mathematics and Statistics 7 (4): 326-331, 2011 ISSN 1549-3644 2011 Science Publications Polynomial Interpolation in the Elliptic Curve Cryptosystem Liew Khang Jie and Hailiza Kamarulhaili School

More information

Elliptic Curve Cryptology. Francis Rocco

Elliptic Curve Cryptology. Francis Rocco Elliptic Curve Cryptology By Francis Rocco Submitted in partial fulfillment of the requirements for Honors in the Department of Mathematics Union College March, 2017 ABSTRACT ROCCO, FRANCIS Elliptic Curve

More information

CIS 6930/4930 Computer and Network Security. Topic 5.2 Public Key Cryptography

CIS 6930/4930 Computer and Network Security. Topic 5.2 Public Key Cryptography CIS 6930/4930 Computer and Network Security Topic 5.2 Public Key Cryptography 1 Diffie-Hellman Key Exchange 2 Diffie-Hellman Protocol For negotiating a shared secret key using only public communication

More information

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculty of Mathematics and Computer Science Exam Cryptology, Friday 25 January 2019

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculty of Mathematics and Computer Science Exam Cryptology, Friday 25 January 2019 Faculty of Mathematics and Computer Science Exam Cryptology, Friday 25 January 2019 Name : TU/e student number : Exercise 1 2 3 4 5 total points Notes: Please hand in all sheets at the end of the exam.

More information

Other Public-Key Cryptosystems

Other Public-Key Cryptosystems Other Public-Key Cryptosystems Raj Jain Washington University in Saint Louis Saint Louis, MO 63130 Jain@cse.wustl.edu Audio/Video recordings of this lecture are available at: http://www.cse.wustl.edu/~jain/cse571-11/

More information

Signatures and DLP-I. Tanja Lange Technische Universiteit Eindhoven

Signatures and DLP-I. Tanja Lange Technische Universiteit Eindhoven Signatures and DLP-I Tanja Lange Technische Universiteit Eindhoven How to compute ap Use binary representation of a to compute a(x; Y ) in blog 2 ac doublings and at most that many additions. E.g. a =

More information

Number theory (Chapter 4)

Number theory (Chapter 4) EECS 203 Spring 2016 Lecture 12 Page 1 of 8 Number theory (Chapter 4) Review Compute 6 11 mod 13 in an efficient way What is the prime factorization of 100? 138? What is gcd(100, 138)? What is lcm(100,138)?

More information

Public Key Algorithms

Public Key Algorithms Public Key Algorithms Raj Jain Washington University in Saint Louis Saint Louis, MO 63130 Jain@cse.wustl.edu Audio/Video recordings of this lecture are available at: http://www.cse.wustl.edu/~jain/cse571-09/

More information

Lemma 1.2. (1) If p is prime, then ϕ(p) = p 1. (2) If p q are two primes, then ϕ(pq) = (p 1)(q 1).

Lemma 1.2. (1) If p is prime, then ϕ(p) = p 1. (2) If p q are two primes, then ϕ(pq) = (p 1)(q 1). 1 Background 1.1 The group of units MAT 3343, APPLIED ALGEBRA, FALL 2003 Handout 3: The RSA Cryptosystem Peter Selinger Let (R, +, ) be a ring. Then R forms an abelian group under addition. R does not

More information

Slides by Kent Seamons and Tim van der Horst Last Updated: Oct 1, 2013

Slides by Kent Seamons and Tim van der Horst Last Updated: Oct 1, 2013 RSA Slides by Kent Seamons and Tim van der Horst Last Updated: Oct 1, 2013 Recap Recap Number theory o What is a prime number? o What is prime factorization? o What is a GCD? o What does relatively prime

More information

during transmission safeguard information Cryptography: used to CRYPTOGRAPHY BACKGROUND OF THE MATHEMATICAL

during transmission safeguard information Cryptography: used to CRYPTOGRAPHY BACKGROUND OF THE MATHEMATICAL THE MATHEMATICAL BACKGROUND OF CRYPTOGRAPHY Cryptography: used to safeguard information during transmission (e.g., credit card number for internet shopping) as opposed to Coding Theory: used to transmit

More information

Public Key 9/17/2018. Symmetric Cryptography Review. Symmetric Cryptography: Shortcomings (1) Symmetric Cryptography: Analogy

Public Key 9/17/2018. Symmetric Cryptography Review. Symmetric Cryptography: Shortcomings (1) Symmetric Cryptography: Analogy Symmetric Cryptography Review Alice Bob Public Key x e K (x) y d K (y) x K K Instructor: Dr. Wei (Lisa) Li Department of Computer Science, GSU Two properties of symmetric (secret-key) crypto-systems: The

More information

Public Key Cryptography

Public Key Cryptography Public Key Cryptography Spotlight on Science J. Robert Buchanan Department of Mathematics 2011 What is Cryptography? cryptography: study of methods for sending messages in a form that only be understood

More information

Cryptography IV: Asymmetric Ciphers

Cryptography IV: Asymmetric Ciphers Cryptography IV: Asymmetric Ciphers Computer Security Lecture 7 David Aspinall School of Informatics University of Edinburgh 31st January 2011 Outline Background RSA Diffie-Hellman ElGamal Summary Outline

More information

Question: Total Points: Score:

Question: Total Points: Score: University of California, Irvine COMPSCI 134: Elements of Cryptography and Computer and Network Security Midterm Exam (Fall 2016) Duration: 90 minutes November 2, 2016, 7pm-8:30pm Name (First, Last): Please

More information

Elliptic Curves Cryptography and factorization. Part VIII. Elliptic curves cryptography and factorization. Historical Remarks.

Elliptic Curves Cryptography and factorization. Part VIII. Elliptic curves cryptography and factorization. Historical Remarks. Elliptic Curves Cryptography and factorization Part VIII Elliptic curves cryptography and factorization Cryptography based on manipulation of points of so called elliptic curves is getting momentum and

More information

International Electronic Journal of Pure and Applied Mathematics IEJPAM, Volume 9, No. 1 (2015)

International Electronic Journal of Pure and Applied Mathematics IEJPAM, Volume 9, No. 1 (2015) International Electronic Journal of Pure and Applied Mathematics Volume 9 No. 1 2015, 37-43 ISSN: 1314-0744 url: http://www.e.ijpam.eu doi: http://dx.doi.org/10.12732/iejpam.v9i1.5 ON CONSTRUCTION OF CRYPTOGRAPHIC

More information

SEMINAR SECURITY - REPORT ELLIPTIC CURVE CRYPTOGRAPHY

SEMINAR SECURITY - REPORT ELLIPTIC CURVE CRYPTOGRAPHY SEMINAR SECURITY - REPORT ELLIPTIC CURVE CRYPTOGRAPHY OFER M. SHIR, THE HEBREW UNIVERSITY OF JERUSALEM, ISRAEL FLORIAN HÖNIG, JOHANNES KEPLER UNIVERSITY LINZ, AUSTRIA ABSTRACT. The area of elliptic curves

More information

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculty of Mathematics and Computer Science Exam Cryptology, Tuesday 30 October 2018

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculty of Mathematics and Computer Science Exam Cryptology, Tuesday 30 October 2018 Faculty of Mathematics and Computer Science Exam Cryptology, Tuesday 30 October 2018 Name : TU/e student number : Exercise 1 2 3 4 5 total points Notes: Please hand in all sheets at the end of the exam.

More information

Course 2BA1: Trinity 2006 Section 9: Introduction to Number Theory and Cryptography

Course 2BA1: Trinity 2006 Section 9: Introduction to Number Theory and Cryptography Course 2BA1: Trinity 2006 Section 9: Introduction to Number Theory and Cryptography David R. Wilkins Copyright c David R. Wilkins 2006 Contents 9 Introduction to Number Theory and Cryptography 1 9.1 Subgroups

More information

Elliptic Curve Cryptography

Elliptic Curve Cryptography The State of the Art of Elliptic Curve Cryptography Ernst Kani Department of Mathematics and Statistics Queen s University Kingston, Ontario Elliptic Curve Cryptography 1 Outline 1. ECC: Advantages and

More information

Elliptic Curve Cryptography with Derive

Elliptic Curve Cryptography with Derive Elliptic Curve Cryptography with Derive Johann Wiesenbauer Vienna University of Technology DES-TIME-2006, Dresden General remarks on Elliptic curves Elliptic curces can be described as nonsingular algebraic

More information

Cryptography. P. Danziger. Transmit...Bob...

Cryptography. P. Danziger. Transmit...Bob... 10.4 Cryptography P. Danziger 1 Cipher Schemes A cryptographic scheme is an example of a code. The special requirement is that the encoded message be difficult to retrieve without some special piece of

More information

Lecture V : Public Key Cryptography

Lecture V : Public Key Cryptography Lecture V : Public Key Cryptography Internet Security: Principles & Practices John K. Zao, PhD (Harvard) SMIEEE Amir Rezapoor Computer Science Department, National Chiao Tung University 2 Outline Functional

More information

Security Issues in Cloud Computing Modern Cryptography II Asymmetric Cryptography

Security Issues in Cloud Computing Modern Cryptography II Asymmetric Cryptography Security Issues in Cloud Computing Modern Cryptography II Asymmetric Cryptography Peter Schwabe October 21 and 28, 2011 So far we assumed that Alice and Bob both have some key, which nobody else has. How

More information

Introduction to Modern Cryptography. Benny Chor

Introduction to Modern Cryptography. Benny Chor Introduction to Modern Cryptography Benny Chor RSA Public Key Encryption Factoring Algorithms Lecture 7 Tel-Aviv University Revised March 1st, 2008 Reminder: The Prime Number Theorem Let π(x) denote the

More information

Eindhoven University of Technology MASTER. Kleptography cryptography with backdoors. Antheunisse, M. Award date: 2015

Eindhoven University of Technology MASTER. Kleptography cryptography with backdoors. Antheunisse, M. Award date: 2015 Eindhoven University of Technology MASTER Kleptography cryptography with backdoors Antheunisse, M. Award date: 2015 Disclaimer This document contains a student thesis (bachelor's or master's), as authored

More information

Candidates must show on each answer book the type of calculator used. Only calculators permitted under UEA Regulations may be used.

Candidates must show on each answer book the type of calculator used. Only calculators permitted under UEA Regulations may be used. UNIVERSITY OF EAST ANGLIA School of Mathematics May/June UG Examination 2010 2011 CRYPTOGRAPHY Time allowed: 2 hours Attempt THREE questions. Candidates must show on each answer book the type of calculator

More information

Introduction to Cryptography. Lecture 8

Introduction to Cryptography. Lecture 8 Introduction to Cryptography Lecture 8 Benny Pinkas page 1 1 Groups we will use Multiplication modulo a prime number p (G, ) = ({1,2,,p-1}, ) E.g., Z 7* = ( {1,2,3,4,5,6}, ) Z p * Z N * Multiplication

More information

CIS 551 / TCOM 401 Computer and Network Security

CIS 551 / TCOM 401 Computer and Network Security CIS 551 / TCOM 401 Computer and Network Security Spring 2008 Lecture 15 3/20/08 CIS/TCOM 551 1 Announcements Project 3 available on the web. Get the handout in class today. Project 3 is due April 4th It

More information

1 Recommended Reading 1. 2 Public Key/Private Key Cryptography Overview RSA Algorithm... 2

1 Recommended Reading 1. 2 Public Key/Private Key Cryptography Overview RSA Algorithm... 2 Contents 1 Recommended Reading 1 2 Public Key/Private Key Cryptography 1 2.1 Overview............................................. 1 2.2 RSA Algorithm.......................................... 2 3 A Number

More information

Public Key Encryption

Public Key Encryption Public Key Encryption KG October 17, 2017 Contents 1 Introduction 1 2 Public Key Encryption 2 3 Schemes Based on Diffie-Hellman 3 3.1 ElGamal.................................... 5 4 RSA 7 4.1 Preliminaries.................................

More information

1 Number Theory Basics

1 Number Theory Basics ECS 289M (Franklin), Winter 2010, Crypto Review 1 Number Theory Basics This section has some basic facts about number theory, mostly taken (or adapted) from Dan Boneh s number theory fact sheets for his

More information

Introduction to Modern Cryptography. Lecture RSA Public Key CryptoSystem 2. One way Trapdoor Functions

Introduction to Modern Cryptography. Lecture RSA Public Key CryptoSystem 2. One way Trapdoor Functions Introduction to Modern Cryptography Lecture 7 1. RSA Public Key CryptoSystem 2. One way Trapdoor Functions Diffie and Hellman (76) New Directions in Cryptography Split the Bob s secret key K to two parts:

More information

2. Cryptography 2.5. ElGamal cryptosystems and Discrete logarithms

2. Cryptography 2.5. ElGamal cryptosystems and Discrete logarithms CRYPTOGRAPHY 19 Cryptography 5 ElGamal cryptosystems and Discrete logarithms Definition Let G be a cyclic group of order n and let α be a generator of G For each A G there exists an uniue 0 a n 1 such

More information

Elliptic Curve Crytography: A Computational Science Model

Elliptic Curve Crytography: A Computational Science Model Digital Kenyon: Research, Scholarship, and Creative Exchange Faculty Publications Mathematics and Statistics 12-2011 Elliptic Curve Crytography: A Computational Science Model Nuh Aydin Kenyon College,

More information

Public Key Cryptography. All secret key algorithms & hash algorithms do the same thing but public key algorithms look very different from each other.

Public Key Cryptography. All secret key algorithms & hash algorithms do the same thing but public key algorithms look very different from each other. Public Key Cryptography All secret key algorithms & hash algorithms do the same thing but public key algorithms look very different from each other. The thing that is common among all of them is that each

More information

CHALMERS GÖTEBORGS UNIVERSITET. TDA352 (Chalmers) - DIT250 (GU) 11 April 2017, 8:30-12:30

CHALMERS GÖTEBORGS UNIVERSITET. TDA352 (Chalmers) - DIT250 (GU) 11 April 2017, 8:30-12:30 CHALMERS GÖTEBORGS UNIVERSITET CRYPTOGRAPHY TDA35 (Chalmers) - DIT50 (GU) 11 April 017, 8:30-1:30 No extra material is allowed during the exam except for pens and a simple calculator (not smartphones).

More information

Elliptic Curve Cryptosystems

Elliptic Curve Cryptosystems Elliptic Curve Cryptosystems Santiago Paiva santiago.paiva@mail.mcgill.ca McGill University April 25th, 2013 Abstract The application of elliptic curves in the field of cryptography has significantly improved

More information

CPSC 467: Cryptography and Computer Security

CPSC 467: Cryptography and Computer Security CPSC 467: Cryptography and Computer Security Michael J. Fischer Lecture 11 October 7, 2015 CPSC 467, Lecture 11 1/37 Digital Signature Algorithms Signatures from commutative cryptosystems Signatures from

More information

Attacks on Elliptic Curve Cryptography Discrete Logarithm Problem (EC-DLP)

Attacks on Elliptic Curve Cryptography Discrete Logarithm Problem (EC-DLP) Attacks on Elliptic Curve Cryptography Discrete Logarithm Problem (EC-DLP) Mrs.Santoshi Pote 1, Mrs. Jayashree Katti 2 ENC, Usha Mittal Institute of Technology, Mumbai, India 1 Information Technology,

More information

Intro to Public Key Cryptography Diffie & Hellman Key Exchange

Intro to Public Key Cryptography Diffie & Hellman Key Exchange Introduction to Modern Cryptography Lecture 5 Number Theory: 1. Quadratic residues. 2. The discrete log problem. Intro to Public Key Cryptography Diffie & Hellman Key Exchange Course Summary - Math Part

More information

Cryptography. pieces from work by Gordon Royle

Cryptography. pieces from work by Gordon Royle Cryptography pieces from work by Gordon Royle The set-up Cryptography is the mathematics of devising secure communication systems, whereas cryptanalysis is the mathematics of breaking such systems. We

More information

Discrete Logarithm Problem

Discrete Logarithm Problem Discrete Logarithm Problem Finite Fields The finite field GF(q) exists iff q = p e for some prime p. Example: GF(9) GF(9) = {a + bi a, b Z 3, i 2 = i + 1} = {0, 1, 2, i, 1+i, 2+i, 2i, 1+2i, 2+2i} Addition:

More information

CRYPTOGRAPHY AND LARGE PRIMES *

CRYPTOGRAPHY AND LARGE PRIMES * CRYPTOGRAPHY AND LARGE PRIMES * B. Hartley University of Manchester, England, and National University of Singapore The word "cryptography" derives from Greek and means "secret writing". Since ancient times,

More information

My brief introduction to cryptography

My brief introduction to cryptography My brief introduction to cryptography David Thomson dthomson@math.carleton.ca Carleton University September 7, 2013 introduction to cryptography September 7, 2013 1 / 28 Outline 1 The general framework

More information

Topics in Cryptography. Lecture 5: Basic Number Theory

Topics in Cryptography. Lecture 5: Basic Number Theory Topics in Cryptography Lecture 5: Basic Number Theory Benny Pinkas page 1 1 Classical symmetric ciphers Alice and Bob share a private key k. System is secure as long as k is secret. Major problem: generating

More information

Lecture 7: ElGamal and Discrete Logarithms

Lecture 7: ElGamal and Discrete Logarithms Lecture 7: ElGamal and Discrete Logarithms Johan Håstad, transcribed by Johan Linde 2006-02-07 1 The discrete logarithm problem Recall that a generator g of a group G is an element of order n such that

More information

Other Public-Key Cryptosystems

Other Public-Key Cryptosystems Other Public-Key Cryptosystems Raj Jain Washington University in Saint Louis Saint Louis, MO 63130 Jain@cse.wustl.edu Audio/Video recordings of this lecture are available at: 10-1 Overview 1. How to exchange

More information

Digital Signatures. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Digital Signatures. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay Digital Signatures Saravanan Vijayakumaran sarva@ee.iitb.ac.in Department of Electrical Engineering Indian Institute of Technology Bombay July 24, 2018 1 / 29 Group Theory Recap Groups Definition A set

More information

Lecture 17 - Diffie-Hellman key exchange, pairing, Identity-Based Encryption and Forward Security

Lecture 17 - Diffie-Hellman key exchange, pairing, Identity-Based Encryption and Forward Security Lecture 17 - Diffie-Hellman key exchange, pairing, Identity-Based Encryption and Forward Security Boaz Barak November 21, 2007 Cyclic groups and discrete log A group G is cyclic if there exists a generator

More information

AN INTRODUCTION TO THE UNDERLYING COMPUTATIONAL PROBLEM OF THE ELGAMAL CRYPTOSYSTEM

AN INTRODUCTION TO THE UNDERLYING COMPUTATIONAL PROBLEM OF THE ELGAMAL CRYPTOSYSTEM AN INTRODUCTION TO THE UNDERLYING COMPUTATIONAL PROBLEM OF THE ELGAMAL CRYPTOSYSTEM VORA,VRUSHANK APPRENTICE PROGRAM Abstract. This paper will analyze the strengths and weaknesses of the underlying computational

More information

Final Exam Math 105: Topics in Mathematics Cryptology, the Science of Secret Writing Rhodes College Tuesday, 30 April :30 11:00 a.m.

Final Exam Math 105: Topics in Mathematics Cryptology, the Science of Secret Writing Rhodes College Tuesday, 30 April :30 11:00 a.m. Final Exam Math 10: Topics in Mathematics Cryptology, the Science of Secret Writing Rhodes College Tuesday, 0 April 2002 :0 11:00 a.m. Instructions: Please be as neat as possible (use a pencil), and show

More information

YALE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE

YALE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE YALE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE CPSC 467a: Cryptography and Computer Security Notes 13 (rev. 2) Professor M. J. Fischer October 22, 2008 53 Chinese Remainder Theorem Lecture Notes 13 We

More information

Practice Assignment 2 Discussion 24/02/ /02/2018

Practice Assignment 2 Discussion 24/02/ /02/2018 German University in Cairo Faculty of MET (CSEN 1001 Computer and Network Security Course) Dr. Amr El Mougy 1 RSA 1.1 RSA Encryption Practice Assignment 2 Discussion 24/02/2018-29/02/2018 Perform encryption

More information

Public Key Cryptography

Public Key Cryptography T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A Public Key Cryptography EECE 412 1 What is it? Two keys Sender uses recipient s public key to encrypt Receiver uses his private key to decrypt

More information

Asymmetric Encryption

Asymmetric Encryption -3 s s Encryption Comp Sci 3600 Outline -3 s s 1-3 2 3 4 5 s s Outline -3 s s 1-3 2 3 4 5 s s Function Using Bitwise XOR -3 s s Key Properties for -3 s s The most important property of a hash function

More information

CODING AND CRYPTOLOGY III CRYPTOLOGY EXERCISES. The questions with a * are extension questions, and will not be included in the assignment.

CODING AND CRYPTOLOGY III CRYPTOLOGY EXERCISES. The questions with a * are extension questions, and will not be included in the assignment. CODING AND CRYPTOLOGY III CRYPTOLOGY EXERCISES A selection of the following questions will be chosen by the lecturer to form the Cryptology Assignment. The Cryptology Assignment is due by 5pm Sunday 1

More information

Course MA2C02, Hilary Term 2013 Section 9: Introduction to Number Theory and Cryptography

Course MA2C02, Hilary Term 2013 Section 9: Introduction to Number Theory and Cryptography Course MA2C02, Hilary Term 2013 Section 9: Introduction to Number Theory and Cryptography David R. Wilkins Copyright c David R. Wilkins 2000 2013 Contents 9 Introduction to Number Theory 63 9.1 Subgroups

More information

Cryptography and RSA. Group (1854, Cayley) Upcoming Interview? Outline. Commutative or Abelian Groups

Cryptography and RSA. Group (1854, Cayley) Upcoming Interview? Outline. Commutative or Abelian Groups Great Theoretical Ideas in CS V. Adamchik CS 15-251 Upcoming Interview? Lecture 24 Carnegie Mellon University Cryptography and RSA How the World's Smartest Company Selects the Most Creative Thinkers Groups

More information

CPE 776:DATA SECURITY & CRYPTOGRAPHY. Some Number Theory and Classical Crypto Systems

CPE 776:DATA SECURITY & CRYPTOGRAPHY. Some Number Theory and Classical Crypto Systems CPE 776:DATA SECURITY & CRYPTOGRAPHY Some Number Theory and Classical Crypto Systems Dr. Lo ai Tawalbeh Computer Engineering Department Jordan University of Science and Technology Jordan Some Number Theory

More information

Cryptography and Security Final Exam

Cryptography and Security Final Exam Cryptography and Security Final Exam Serge Vaudenay 17.1.2017 duration: 3h no documents allowed, except one 2-sided sheet of handwritten notes a pocket calculator is allowed communication devices are not

More information

Network Security Technology Spring, 2018 Tutorial 3, Week 4 (March 23) Due Date: March 30

Network Security Technology Spring, 2018 Tutorial 3, Week 4 (March 23) Due Date: March 30 Network Security Technology Spring, 2018 Tutorial 3, Week 4 (March 23) LIU Zhen Due Date: March 30 Questions: 1. RSA (20 Points) Assume that we use RSA with the prime numbers p = 17 and q = 23. (a) Calculate

More information

LECTURE 5: APPLICATIONS TO CRYPTOGRAPHY AND COMPUTATIONS

LECTURE 5: APPLICATIONS TO CRYPTOGRAPHY AND COMPUTATIONS LECTURE 5: APPLICATIONS TO CRYPTOGRAPHY AND COMPUTATIONS Modular arithmetics that we have discussed in the previous lectures is very useful in Cryptography and Computer Science. Here we discuss several

More information

Notes 10: Public-key cryptography

Notes 10: Public-key cryptography MTH6115 Cryptography Notes 10: Public-key cryptography In this section we look at two other schemes that have been proposed for publickey ciphers. The first is interesting because it was the earliest such

More information

CPSC 467b: Cryptography and Computer Security

CPSC 467b: Cryptography and Computer Security CPSC 467b: Cryptography and Computer Security Michael J. Fischer Lecture 9 February 6, 2012 CPSC 467b, Lecture 9 1/53 Euler s Theorem Generating RSA Modulus Finding primes by guess and check Density of

More information

Winter 2008 Introduction to Modern Cryptography Benny Chor and Rani Hod. Assignment #2

Winter 2008 Introduction to Modern Cryptography Benny Chor and Rani Hod. Assignment #2 0368.3049.01 Winter 2008 Introduction to Modern Cryptography Benny Chor and Rani Hod Assignment #2 Published Sunday, February 17, 2008 and very slightly revised Feb. 18. Due Tues., March 4, in Rani Hod

More information

Information Security

Information Security SE 4472 / ECE 9064 Information Security Week 12: Random Number Generators and Picking Appropriate Key Lengths Fall 2015 Prof. Aleksander Essex Random Number Generation Where do keys come from? So far we

More information

An Introduction to Probabilistic Encryption

An Introduction to Probabilistic Encryption Osječki matematički list 6(2006), 37 44 37 An Introduction to Probabilistic Encryption Georg J. Fuchsbauer Abstract. An introduction to probabilistic encryption is given, presenting the first probabilistic

More information

Elliptic Curves and an Application in Cryptography

Elliptic Curves and an Application in Cryptography Parabola Volume 54, Issue 1 (2018) Elliptic Curves and an Application in Cryptography Jeremy Muskat 1 Abstract Communication is no longer private, but rather a publicly broadcast signal for the entire

More information

Number Theory: Applications. Number Theory Applications. Hash Functions II. Hash Functions III. Pseudorandom Numbers

Number Theory: Applications. Number Theory Applications. Hash Functions II. Hash Functions III. Pseudorandom Numbers Number Theory: Applications Number Theory Applications Computer Science & Engineering 235: Discrete Mathematics Christopher M. Bourke cbourke@cse.unl.edu Results from Number Theory have many applications

More information