Public-Key Cryptanalysis

Transcription

1 To appear in Recent Trends in Cryptography, I. Luengo (Ed.), Contemporary Mathematics series, AMS-RSME, Public-Key Cryptanalysis Phong Q. Nguyen Abstract. In 1976, Diffie and Hellman introduced the revolutionary concept of public-key cryptography, also known as asymmetric cryptography. Today, asymmetric cryptography is routinely used to secure the Internet. The most famous and most widely used asymmetric cryptosystem is RSA, invented by Rivest, Shamir and Adleman. Surprisingly, there are very few alternatives known, and most of them are also based on number theory. How secure are those asymmetric cryptosystems? Can we attack them in certain settings? Should we implement RSA the way it was originally described thirty years ago? Those are typical questions that cryptanalysts have tried to answer since the appearance of public-key cryptography. In these notes, we present the main techniques and principles used in public-key cryptanalysis, with a special emphasis on attacks based on lattice basis reduction, and more generally, on algorithmic geometry of numbers. To simplify our exposition, we focus on the two most famous asymmetric cryptosystems: RSA and Elgamal. Cryptanalysis has played a crucial rôle in the way cryptosystems are now implemented, and in the development of modern security notions. Interestingly, it also introduced in cryptology several mathematical objects which have since proved very useful in cryptographic design. This is for instance the case of Euclidean lattices, elliptic curves and pairings. 1. Introduction Public-key cryptography, also called asymmetric cryptography, was invented by Diffie and Hellman [DH76] more than thirty years ago. In public-key cryptography, a user U has a pair of related keys (pk, sk): the key pk is public and should be available to everyone, while the key sk must be kept secret by U. The fact that sk is kept secret by a single entity creates an asymmetry, hence the name asymmetric cryptography, to avoid confusion with symmetric cryptography where a secret key is always shared by at least two parties, whose roles are therefore symmetric. The alternative (and perhaps more common) name public-key cryptography comes from the very existence of a public key: in conventional cryptography, all keys are secret Mathematics Subject Classification. Primary 94A60, 11T71; Secondary 11H06, 14G50, 68P25. Key words and phrases. Cryptanalysis, Security, Public-Key Cryptography, Asymmetric Cryptography, Euclidean Lattices, Geometry of Numbers. 1 c 0000 (copyright holder)

2 2 PHONG Q. NGUYEN Today, public-key cryptography offers incredibly many features ranging from zero-knowledge to electronic voting (see the handbook [MOV97]), but we will restrict to its main goals defined in [DH76], which are the following two: Asymmetric encryption (also called public-key encryption): anyone can encrypt a message to U, using U s public key pk. But only U should be able to decrypt, using his secret key sk. Digital signatures: U can sign any message m, using his secret key sk. Anyone can check whether or not a given signature corresponds to a given message and a given public key. Such basic functionalities are routinely used to secure the Internet. For instance, digital signatures are prevalent under the form of certificates (which are used everyday by Internet browsers), and asymmetric encryption is used to exchange session keys for fast symmetric encryption, such as in the TLS (Transport Layer Security) protocol Hard problems. Both keys pk and sk are related to each other, but it should be computationally hard to recover the secret key sk from the public key pk, for otherwise there would be no secret key. As a result, public-key cryptography requires the existence of hard computational problems. But is there any provably hard computational problem? This is a very hard question underlying the famous P NP conjecture from complexity theory. Instead of trying to settle this major open question, cryptographers have adopted a more down-to-earth approach by trying various candidates over the years: if a computational problem resists the repeated assaults of the research community, then maybe it should be considered hard, although no proof of its hardness is known or sometimes, even expected. Furthermore, it is perhaps worth noting that the P NP conjecture refers to worst-case hardness, while cryptography typically requires average-case hardness. The (potentially) hard problems currently in consideration within public-key cryptography can be roughly classified into two families. The first family of hard problems involves problems for which there are very few unknowns, but the size of the unknowns must be rather large to guarantee hardness, which makes the operations rather slow compared to symmetric cryptography. The main members of this family are: Integer factorization, popularized by RSA [RSA78]. The current factorization record for an RSA number (i.e. a product of two large primes) is the following factorization [BBFK05] of a 200-digit number (663 bits), obtained with the number field sieve (see the book [CP01]): = A related (and not harder) problem is the so-called e-th root problem, which we will discuss when presenting RSA. The discrete logarithm problem in appropriate groups, such as:

3 PUBLIC-KEY CRYPTANALYSIS 3 Multiplicative groups of finite fields, especially prime fields, like in the DSA signature algorithm [Nat94]. The current record for a discrete logarithm computation in a general prime field is 160 digits [Kle07], obtained with the number field sieve. Additive groups of elliptic curves over finite fields. There are in fact two kinds of elliptic curves in consideration nowadays: Random elliptic curves for which the best discrete logarithm algorithm is the generic square root algorithm. It is therefore no surprise that the current discrete logarithm record for those curves is 109 bits [HDdL00]. Special elliptic curves (e.g. supersingular curves) for which an efficient pairing is available. On the one hand, this decreases the hardness of the discrete logarithm to the case of finite fields (namely, a low-degree extension of the base field of the curve), which implies bigger sizes for the curves, but on the other hand, it creates exciting cryptographic applications such as identitybased cryptography (see [Men08] and the book [BSS04]). Interestingly, these problems would theoretically not resist to large-scale quantum computers (as was famously shown by Shor [Sho99]), but the feasibility of such devices is still open. The second family of hard problems involves problems for which there are many small unknowns, but this number of small unknowns must be rather large to guarantee hardness. Such problems are usually related to NP-hard combinatorial problems for which no efficient quantum algorithm is known. The main examples of this family are: Knapsacks and lattice problems. In the knapsack problem, the unknowns are bits. The Merkle-Hellman cryptosystem [MH78], an early alternative to RSA, was based on the knapsack (or subset sum) problem. Although knapsack cryptosystems have not been very successful (see the survey [Odl90]) due to lattice attacks, they have in some sense enjoyed a second coming under the disguise of lattice-based cryptosystems (see the survey [NS01]). Of particular interest is the very efficient NTRU cryptosystem [HPS98], which offers much smaller keys than other latticebased or knapsack-based schemes. Knapsacks and lattice problems are tightly connected. Coding problems. The McEliece cryptosystem [McE78] is a natural cryptosystem based on the hardness of decoding, which has several variants depending on the type of code used. The lattice-based Goldreich- Goldwasser-Halevi cryptosystem [GGH97, Ngu99] can be viewed as a lattice-based analogue of the McEliece cryptosystem. Systems of multivariate polynomial equations over small finite fields. The Matsumoto-Imai cryptosystem [MI88] is the ancestor of what is now known as multivariate cryptography (see the book [Kob98]). In order to prevent general attacks based on Gröbner bases, the security parameter must be rather large. All constructions known use a system of equations with a very particular structure, which they try to hide. Like knapsack cryptography, many multivariate schemes have been broken due to their

4 4 PHONG Q. NGUYEN exceptional structure. The latest example is the spectacular cryptanalysis [DFSS07] of the SFLASH signature scheme. The main drawback with this second family of problems is the overall size of the parameters. Indeed, apart from NTRU [HPS98], the size of the parameters for such problems grows at least quadratically with the security parameter. NTRU offers a smaller keysize than the other members of this family because it uses a compact representation, which saves an order of magnitude Cryptanalysis. Roughly speaking, cryptanalysis is the science of codebreaking. We emphasized earlier that asymmetric cryptography required hard computational problems: if there is no hard problem, there cannot be any asymmetric cryptography either. If any of the computational problems mentioned above turns out to be easy to solve, then the corresponding cryptosystems can be broken, as the public key would actually disclose the secret key. This means that one obvious way to cryptanalyze is to solve the underlying algorithmic problems, such as integer factorization, discrete logarithm, lattice reduction, Gröbner bases, etc. Here, we mean a study of the computational problem in its full generality. Alternatively, one may try to exploit the special properties of the cryptographic instances of the computational problem. This is especially true for the second family of hard problems: even though the underlying general problem is NP-hard, its cryptographic instances may be much easier, because the cryptographic functionalities typically require an unusual structure. In particular, this means that maybe there could be an attack which can only be used to break the scheme, but not to solve the underlying problem in general. This happened many times in knapsack cryptography and multivariate cryptography. Interestingly, generic tools to solve the general problem perform sometimes even much better on cryptographic instances (see [FJ03] for Gröbner bases and [GN08b, NS01] for lattice reduction). However, if the underlying computational problem turns out to be really hard both in general and for instances of cryptographic interest, this will not necessarily imply that the cryptosystem is secure. First of all, it is not even clear what is meant exactly by the term secure or insecure. Should an encryption scheme which leaks the first bit of the plaintext be considered secure? Is the secret key really necessary to decrypt ciphertexts or to sign messages? If a cryptosystem is theoretically secure, could there be potential security flaws for its implementation? For instance, if some of the temporary variables (such as pseudo-random numbers) used during the cryptographic operations are partially leaked, could it have an impact on the security of the cryptosystem? This means that there is much more to cryptanalysis than just trying to solve the main algorithmic problems. In particular, cryptanalysts are interested in defining and studying realistic environments for attacks (adaptive chosen-ciphertext attacks, side-channel attacks, etc.), as well as the goals of attacks (key recovery, partial information, existential forgery, distinguishability, etc.). This is very much related to the development of provable security, a very popular field of cryptography. Overall, cryptanalysis usually relies on three types of failures: Algorithmic failures: The underlying hard problem is not as hard as expected. This could be due to the computational problem itself, or to special properties of cryptographic instances. Design failures: Breaking the cryptosystem is not as hard as solving the underlying hard problem.

5 PUBLIC-KEY CRYPTANALYSIS 5 Implementation failures: Exploiting additional information due to implementation mistakes or side-channel attacks. This is particularly relevant to the world of smartcards, and is not well covered by provable security. Thirty years after the introduction of public-key cryptography, we have a much better understanding of what security means, thanks to the advances of public-key cryptanalysis. It is perhaps worth noting that cryptanalysis also proved to be a good incentive for the introduction of new techniques in cryptology. Indeed several mathematical objects now invaluable in cryptographic design were first introduced in cryptology as cryptanalytic tools, including: Euclidean lattices, whose first cryptologic use was the cryptanalysis [Adl83, Sha82] of the Merkle-Hellman cryptosystem [MH78]. Besides cryptanalysis, they are now used in lattice-based cryptosystems (see the survey [NS01]), as well as in a few security proofs [Sho01, FOPS01, CNS02]. Elliptic curves. One might argue that the first cryptologic usage of elliptic curves was Lenstra s ECM factoring algorithm [Len87], before the proposal of cryptography based on elliptic curves [Kob87, Mil87]: both articles [Kob87, Mil87] mention a draft of [Len87] in their introduction. Pairings, whose first cryptologic use was cryptanalytic [MOV93], to prove that the discrete logarithm problem in certain elliptic curves could be reduced efficiently to the discrete logarithm problem in finite fields. See [Men08] and the book [BSS04] for positive applications of pairings Road Map. In these notes, we intend to survey the main principles and the main techniques used in public-key cryptanalysis. As a result, we will focus on the two most famous (and perhaps simplest) asymmetric cryptosystems: RSA [RSA78] and Elgamal in prime fields [El 85], which we will recall in Section 2. Unfortunately, this means that we will ignore the rich cryptanalytic literature related to the second family of hard problems mentioned in Section 1.1, as well as that of elliptic-curve cryptography. Another important topic of cryptanalysis which we will not cover is side-channel cryptanalysis (as popularized by [Koc96, BDL97]). In Section 3, we review the main security notions, which we will illustrate by simple attacks in Section 4. In Section 5, we present a class of rather elementary attacks known as square-root attacks. In Section 6, we introduce the theory of lattices, both from a mathematical and a computational point of view, which is arguably the most popular technique in public-key cryptanalysis. This will be needed for Section 7 where we present the vast class of lattice attacks. 2. Textbooks Cryptosystems In order to explain what is public-key cryptanalysis, it would be very helpful to give examples of attacks. Although plenty of interesting cryptanalyses have been published in the research literature (see the collections of proceedings [MZ98, IAC04]), many require a good understanding of the underlying cryptosystem, which may not be very well-known and may be based on unusual techniques. To simplify our exposition, we only present attacks on the two most famous cryptosystems: RSA [RSA78] and Elgamal over prime fields [El 85]. Both cryptosystems have the additional advantage of being very easy to describe. We refer to these cryptosystems as textbook cryptosystems, because we will consider the original

6 6 PHONG Q. NGUYEN description of those schemes, the one that can be found in most cryptography textbooks, but not the one which is actually implemented in practice nowadays. Cryptanalysis has played a crucial role in the way cryptosystems are now implemented. We now recall briefly how RSA and Elgamal work RSA. The RSA cryptosystem [RSA78] is the most widely used asymmetric cryptosystem. It is based on the hardness of factoring large integers Key generation. The user selects two large primes p and q (of the same bit-length) uniformly at random, so that N = pq is believed to be hard to factor. As previously mentioned, the factoring record for such numbers is currently a 663-bit N. In electronic commerce, the root certificates used by Internet browsers typically use a N of either 1024 or 2048 bits. Next, the user selects a pair of integers (e, d) such that: (2.1) ed 1 (mod φ(n)), where φ(n) = (p 1)(q 1) is Euler s function: φ(n) is the number of integers in {1,..., N 1} which are coprime with N. The integers e and d are called the RSA exponents: e is the public exponent, while d is the secret exponent. The RSA public key is the pair (N, e), and the RSA secret key is d. The primes p and q do not need to be kept. There are essentially three ways to select the RSA exponents: Random exponents: The user selects an integer d {2,..., φ(n) 1} uniformly at random among those which are coprime with φ(n). The public exponent e is chosen as the inverse of d modulo φ(n). Low Public Exponent: To speed up public exponentiation, the user selects a very small e, possibly with low Hamming weight. If e is not invertible modulo φ(n), then the user selects a new pair (p, q) of primes, otherwise, the secret exponent d is chosen as the inverse of e modulo φ(n). The most popular choices are e = 3 and e = = Note that e must be odd to have a chance of being invertible modulo φ(n). Short Secret Exponent: To speed up private exponentiation, the user selects this time a short d, with a sufficiently long bit-length so that it cannot be exhaustively searched. If d is not invertible modulo φ(n), a new d is picked. Otherwise, the public exponent e is chosen as the inverse of d modulo φ(n). This choice of d is however not recommended: it is known that it is provably insecure [Wie90] if d N 1/4, and it is heuristically insecure [BD99] if d N 1 1/ 2 N In such attacks (which we will describe in later sections), one may recover the factorization of N, given only the public key (N, e). If one knows the factorization of N, then one can obviously derive the secret exponent d from the public exponent e. In fact, it is well-known that the knowledge of the secret exponent d is equivalent to factoring N. More precisely, it was noticed as early as in [RSA78] that if one knows the secret key d, then one can recover the factorization of N in probabilistic polynomial time. It was recently proved in [CM04] that this can actually be done in deterministic polynomial time. Hence, recovering the RSA secret key is as hard as factoring the RSA public modulus, but this does not necessarily mean that breaking RSA is as hard as factoring.

7 PUBLIC-KEY CRYPTANALYSIS Trapdoor permutation. We denote by Z N the ring Z/NZ, which we represent by {0, 1,..., N 1}. The main property of the RSA key generation is the congruence (2.1) which implies, thanks to Fermat s little theorem and the Chinese remainder theorem, that the modular exponentiation function x x e is a permutation over Z N. This function is called the RSA permutation. It is well-known that its inverse is the modular exponentiation function x x d, hence the name trapdoor permutation: if one knows the trapdoor d, one can efficiently invert the RSA permutation. Without the trapdoor, the inversion problem is believed to be hard, and is known as the e-th root problem (also called the RSA problem): given an integer y Z N chosen uniformly at random, find x Z N such that y x e mod N. The RSA assumption states that no probabilistic polynomial-time algorithm can solve the RSA problem with non-negligible probability. It is however unknown if the knowledge of d is necessary to solve the e-th root problem. Maybe there could be an alternative way to invert the RSA permutation, other than raising to the power d. In fact, the work [BV98] suggests that the e-th root problem with a small e might actually be easier than factoring. An important property of the RSA permutation is its multiplicativity. More precisely, for all x and y in Z N : (2.2) (xy) e x e y e (mod N). This homomorphic property will be very useful for certain attacks Asymmetric encryption. Textbook-RSA encryption is a simple application of the RSA trapdoor permutation, in which encryption is achieved by applying the RSA permutation. More precisely, the set of messages is Z N = {0, 1,... N 1}. To encrypt a message m, one simply raises it to the power e modulo N, which means that the ciphertext is: (2.3) c = m e mod N. To decrypt the ciphertext c, one simply inverts the RSA permutation: (2.4) m = c d mod N. This is the way the RSA public-key encryption scheme was originally described in [RSA78], and is still described in many textbooks, but this is not the way RSA is now implemented in various products or standards due to security problems, even though the basic principle remains the same. It is now widely accepted that a trapdoor permutation should not be directly used as a public-key encryption scheme: a preprocessing of the messages is required, e.g. OAEP (optimal asymmetric encryption) [BR95, Poi05]. The attacks we will present in these notes explain why. It is worth noting that Textbook-RSA encryption is multiplicative like the RSA permutation. If m 1 are m 2 are two messages in Z N encrypted as c 1 and c 2 using (2.3), then their product m 3 = (m 1 m 2 ) mod N is encrypted as c 3 = (c 1 c 2 ) mod N. In other words, the ciphertext of a product is the product of the ciphertexts Digital signature. The magical property of RSA is its trapdoor permutation: most public-key cryptosystems known involve a trapdoor one-way function instead (see [MOV97]). Fortunately, it is very easy to derive a digital signature scheme from a trapdoor permutation.

8 8 PHONG Q. NGUYEN In the original description [RSA78], the set of messages to sign is Z N = {0, 1,..., N 1}. The signature of a message m Z N is simply its preimage through the RSA permutation: (2.5) s = m d mod N. To verify that s is the signature of m with the public key (N, e), one checks that s Z N and that the following congruence holds: (2.6) m s e (mod N). Similarly to the asymmetric encryption case, this is not the way RSA signatures are now implemented in various products or standards due to security problems, even though the basic principle remains the same. Again, we will present attacks which explain why. A trapdoor permutation should not be directly used as a digital signature scheme: a hashing-based preprocessing of the messages is required, e.g. FDH (full-domain hash) [BR96, Poi05] or PSS (probabilistic signature scheme) [BR96, Poi05]. It is worth noting that the preprocessing now in use in asymmetric encryption or digital signatures involves a cryptographic hash function. However, when [RSA78] was published, no cryptographic hash function was available! This is why many ad hoc solutions were developed (and sometimes deployed) in the eighties, with various degrees of success. We will describe attacks on some of those. The RSA standards [Lab] currently advocated by the RSA Security company are: RSA- OAEP for asymmetric encryption and RSA-PSS for signatures Elgamal. While there is essentially only one RSA cryptosystem, there is much more flexibility with the Elgamal cryptosystem [El 85] based on the hardness of the discrete logarithm problem: it has many variants depending on the group or subgroup used, as well as the encoding of messages and ciphertexts. Here, we only consider the so-called Textbook Elgamal, that is, the basic Elgamal cryptosystem over a prime field Z p, as originally described in [El 85]. Another significant difference with RSA is the gap between the Elgamal asymmetric encryption scheme and the Elgamal digital signature scheme. In RSA, asymmetric encryption and signatures are the two facets of the RSA trapdoor permutation. Because the Elgamal asymmetric encryption scheme involves a trapdoor one-way function based on the Diffie-Hellman key exchange [DH76], rather than a trapdoor permutation, it does not naturally lead to an efficient digital signature scheme. The Elgamal signature scheme is quite different from its asymmetric encryption counterpart: it is the ancestor of most discrete-log based signature schemes, such as DSA, ECDSA or Schnorr s signature (see [MOV97]) Key generation. The user selects a large random prime p, in such a way that p 1 has at least one large prime factor and has known factorization. It is then believed that the discrete logarithm problem in Z p is hard. Thanks to the factorization of p 1, the user can compute a generator g of the multiplicative group Z p. There are essentially two ways to select the generator g: Random generators: This is the recommended option: the generator g is selected uniformly at random among all generators of Z p. Small generators: One tries small values for g, such as g = 2, to speed up exponentiation with base g. If none works, one picks another prime p.

9 PUBLIC-KEY CRYPTANALYSIS 9 We will later see that the choice g = 2 has dramatic consequences on the security of the Elgamal signature scheme [Ble96]. The parameters g and p are public. They can be considered as central parameters, since they can be shared among several users, but if that is the case, it is important that all users are convinced that the parameters have been generated in a random way so that they have no special property. The user s secret key is an integer x chosen uniformly at random over Z p 1 = {0, 1,..., p 2}. The corresponding public key is the integer y Z p defined as: (2.7) y = g x (mod p). Many variants of Elgamal alternatively use a prime order subgroup, rather than the whole group Z p. More precisely, they select an element g Z p of large prime order q p: the secret key x is then chosen in Z q Asymmetric encryption. The Elgamal asymmetric encryption scheme can be viewed as an application of the Diffie-Hellman key exchange protocol [DH76]. In the well-known basic Diffie-Hellman protocol, Alice and Bob do the following to establish a shared secret key: Alice selects an integer a Z p 1 uniformly at random, and sends A = g a mod p to Bob. Bob selects an integer b Z p 1 uniformly at random, and sends B = g b mod p to Alice. The secret key shared by Alice and Bob is s = g ab mod p. Alice may compute s as s = B a mod p, while Bob may alternatively compute s as s = A b mod p. To transform this key exchange protocol into a probabilistic asymmetric encryption scheme, let us view Alice as the user who possesses the pair of keys (x, y) defined in (2.7), so that (a, A) = (x, y), and let us view Bob as the person who wishes to encrypt messages to the user. Bob knows the public key y = g x mod p. The set of plaintexts is Z p. To encrypt a message m Z p : Bob selects an integer k Z p 1 uniformly at random. The ciphertext is the pair (c, d) Z p Z p defined as (2.8) (2.9) c = g k (mod p) d = my k (mod p) To see how decryption works, notice that thanks to the Diffie-Hellman trick, Alice may compute the (virtual) secret s = g xk = y k mod p from her secret key x and the first half c of the ciphertext. This is because s = c x mod p, as if Bob s pair (b, B) in the Diffie-Hellman protocol was (k, c). Once y k mod p is known, Alice may recover the message m from the second half d of the ciphertext, by division. In other words, the first half (2.8) of the ciphertext sets up a one-time Diffie- Hellman secret key y k = g kx. The second half (2.9) of the ciphertext can be viewed as a one-time pad (using modular multiplication rather than a xor) between the the message and the one-time key. Decryption works by recovering this one-time key using the user s secret key, thanks to the Diffie-Hellman trick. Since Elgamal encryption [El 85] is very much related to the Diffie-Hellman key exchange [DH76], one may wonder why it did not already appear in [DH76]. Perhaps one explanation is that, strictly speaking, public-key encryption as defined in [DH76] was associated to a trapdoor permutation, so that it would be easy to

10 10 PHONG Q. NGUYEN derive both encryption and signature: it was assumed implicitly that the set of ciphertexts had to be identical to the set of plaintexts. But Elgamal encryption does not use nor define a trapdoor permutation. The closest thing to a permutation in Elgamal encryption is the following bijection between Z p Z p 1 and Z p Z p : (m, k) (c, d) = (g k, my k ). But the secret key x only helps to partially invert this bijection: given an image (c, d), one knows how to efficiently recover the corresponding m, but not the second half k, which is a discrete logarithm problem. Thus, it cannot be considered as a trapdoor permutation. In some sense, it could be viewed as a partial trapdoor permutation. We saw two significant differences between Textbook-Elgamal encryption and Textbook-RSA encryption: Elgamal is probabilistic rather than deterministic, and it is not based on a trapdoor permutation. Nevertheless, there is one noticeable thing in common: Elgamal is multiplicative too. Indeed, assume that two plaintexts m 1 and m 2 are encrypted into (c 1, d 1 ) and (c 2, d 2 ) (following (2.8) and (2.9)) using respectively the one-time keys k 1 and k 2. In a natural way, one could define the product of ciphertexts as (c 3, d 3 ) where: c 3 = c 1 c 2 Z p d 3 = d 1 d 2 Z p Then it can be easily checked that (c 3, d 3 ) Z p Z p would be decrypted as m 3 = (m 1 m 2 ) mod p because it is the ciphertext of m 3 with the one-time key k 3 = (k 1 + k 2 ) mod p. Thus, in Textbook-Elgamal as well as Textbook-RSA, the product of ciphertexts is a ciphertext of the product Digital signature. Surprisingly, the Elgamal signature scheme [El 85] has nothing to do with the Elgamal asymmetric encryption scheme [El 85]. The only thing in common is the key generation process and the fact that the scheme is probabilistic. The set of messages is Z p. To sign a message m Z p : (2.10) (2.11) The user selects uniformly at random a one-time key k Z p 1, that is an integer in {0,..., p 2} coprime with p 1. The signature of m is the pair (a, b) Z p Z p 1 defined as: a = g k (mod p) b = (m ax)k 1 (mod p 1). To verify a given signature (a, b) of a given message m, one checks that (a, b) Z p Z p 1 and that the following congruence holds: (2.12) g m y a a b (mod p) The previous congruence can be equivalently rewritten as: (2.13) m ax + b log a (mod p 1), where log denotes the discrete log in Z p with respect to the base g. This rewriting will prove particularly useful when presenting attacks. Note that if the pair (a, b) has been generated according to (2.10) and (2.11), then k = log a, so that (2.13) follows easily from (2.11).

11 PUBLIC-KEY CRYPTANALYSIS Security Notions Perhaps one of the biggest achievements of public-key cryptography is the introduction of rigorous and meaningful security notions for both encryption and signatures. Rigorous, because these notions can be formally defined using the language of complexity theory. Meaningful, because the relatively young history of public-key cryptography seems to indicate that they indeed capture the right notion of security, as various attacks have shown that (even slightly) weaker notions of security would be insufficient. However, it should be noted that security notions do not take into account implementation issues: in particular, side-channel attacks are not currently covered by provable security. Since our focus is on cryptanalysis, rather than provable security, we will not properly define all the security notions: we will content ourselves with informal definitions, to convey intuitions more easily, and to keep our presentation light. We refer the interested reader to the lecture notes [Poi05] for a more technical treatment. We would like to insist on the following point. Some of the security notions widely accepted today may look a bit artificial and perhaps too demanding at first sight. In fact, it could be argued that it is the discovery of certain realistic attacks which have convinced the community of the importance of such strong notions of security. In other words, public-key cryptanalysis has helped to find the right notion of security, but it has also helped in the acceptance of strong security notions. For instance, it is arguably Bleichenbacher s practical attack [Ble98] which triggered the switch to OAEP for RSA encryption in the PKCS standards [Lab], even though chosen-ciphertext attacks on RSA had appeared long before. Roughly speaking, it is now customary to define security notions using games (see the survey [Sho04]): a cryptographic scheme is said to be secure with respect to a certain security notion if a specific game between a challenger and an attacker cannot be won by the attacker with non-negligible probability, where the attacker is modeled as a probabilistic polynomial-time Turing machine with possibly access to oracles: the security notion defines exacly which oracles the attacker has access to. Informally, a security notion consists of two definitions: The goal of the attacker. This defines the rules of the game: what is the purpose of the attacker (that is, when is the game won or lost), and how the game is run. The means of the attacker. This is where the access to oracles is defined. For instance, in chosen-ciphertext security, the attacker has access to a decryption oracle, which may decrypt any ciphertext apart from the challenge ciphertext. The oracles may also depend on the security model. For instance, in the well-known random oracle model, a hash function is modeled as an oracle which behaves like a random function Digital Signatures. We start with digital signatures because the right security notion is fairly natural here. Of all the possible goals of the attacker, the most important are the following ones: Key recovery: The attacker wants to recover the secret key sk of the signer. Universal forgery: the attacker wants to be able to sign any message. This is also called a selective forgery.

12 12 PHONG Q. NGUYEN Existential forgery: The attacker wants to exhibit a new signature. By a new signature, one usually means a signature of a new message, but it may also mean a new signature of a message for which a signature was already known, which is meaningful for a probabilistic signature. Attacks on signature schemes are also classified based on the means available to the attacker: No-message attacks: the attacker only knows the public key pk of the signer. Known-message attacks: the attacker knows a list of valid random pairs (message,signature). Chosen-message attacks: the attacker may ask for signatures of messages of his/her choice. If the requests are not independent, the chosen-message attack is said to be adaptive. Of course, depending on the goal of the attacker, there is a natural restriction over the requests allowed: for instance, in a universal forgery, the attacker cannot ask for the signature of the challenge message he has to sign. We will see that the original description of the main signature schemes only satisfy very weak notions of security. To achieve the strongest notions of security under appropriate assumptions, a preprocessing of the message is required, using hash functions, but it is not mandatory to have a probabilistic signature scheme, which is a noteworthy difference with the situation of asymmetric encryption Asymmetric Encryption. It took cryptographers significantly longer to define the strongest security notions for asymmetric encryption than for digital signatures, which is a sign that things are arguably more complex with encryption. Of all the possible goals of the attacker, the most important are the following ones: Key recovery: The attacker wants to recover the secret key sk of the user. Decryption: the attacker wants to be able to decrypt any ciphertext. The encryption scheme is said to be one-way if no efficient attacker is able to decrypt a random ciphertext with non-negligible probability. By a random ciphertext, we mean the ciphertext of a plaintext chosen uniformly at random over the plaintext space. Malleability: Given a list of ciphertexts, the attacker wants to build a new ciphertext whose plaintext is related to the plaintexts of the input ciphertexts. Distinguisher: The attacker wants to output two distinct messages m 0 and m 1 such that if a challenger encrypts either m 0 or m 1 into c, the attacker would be able to tell which message was encrypted, just by looking at the challenge ciphertext c. Clearly, if the encryption scheme is deterministic, there is always a trivial distinguisher: one could select any pair of distinct messages m 0 and m 1, and by encrypting both m 0 and m 1, one could tell which one corresponds to the challenge ciphertext. This implies that probabilistic encryption is necessary to satisfy strong security notions. Attacks on encryption schemes are also classified based on the means available to the attacker: Chosen-plaintext attacks: the attacker only knows the public key pk of the user, which implies that he may encrypt any plaintext of his choice.

13 PUBLIC-KEY CRYPTANALYSIS 13 Valid-ciphertext attacks: the attacker can check whether a given ciphertext is valid, that is, that there exists a plaintext which may be encrypted into such a ciphertext. This makes sense when the set of ciphertexts is bigger than the set of plaintexts. Plaintext-checking attacks: the attacker can check whether a given ciphertext would be decrypted as a given plaintext. Chosen-ciphertext attacks: the attacker may ask for decryption of ciphertexts of its choice: if the ciphertext is not valid, the attacker will know. If the requests are not independent, the chosen-message attack is said to be adaptive. Of course, depending on the goal of the attacker, there is a natural restriction over the requests allowed: for instance, in a chosen-ciphertext distinguisher, the attacker cannot ask for the decryption of the challenge ciphertext. 4. Elementary Attacks The goal of this section is to illustrate the security notions described in Section 3 by presenting very simple attacks on textbook cryptosystems Digital Signatures. We first start with elementary attacks on textbook digital signatures Textbook-RSA. We first consider Textbook-RSA. Like any trapdoor permutation used directly as a signature scheme, Textbook-RSA is vulnerable to a no-message existential forgery. Indeed, anyone can select uniformly at random a number s Z N, and compute: (4.1) m = s e mod N. Then s is a valid signature of the message m Z N. But this existential forgery is far from being a universal forgery, since there is very limited freedom over the choice of m. However, in the particular case of Textbook-RSA, it is easy to obtain an adaptive chosen-message universal forgery, thanks to the multiplicativity of the RSA permutation. Indeed, assume that we would like to sign a message m Z N. Select m 1 Z N uniformly at random. If m 1 is not invertible mod N (which is unlikely), then we have found a non-trivial factor of N, which allows us to sign m. Otherwise, we may compute: m 2 = mm 1 1 (mod N). We ask the oracle the signatures s 1 and s 2 of respectively m 1 and m 2. Then it is clear by multiplicativity that s = (s 1 s 2 ) mod N is a valid signature of m. A well-known countermeasure to avoid the previous attacks is to hash the message before signing it, that is, we assume the existence of a cryptographic hash function h from {0, 1} to Z N. Instead of signing a message m Z N, we sign an arbitrary binary message m {0, 1} and replace m by h(m) in both the signing process (2.5) and the verification process (2.6). The resulting RSA signature scheme is known as FDH-RSA for full-domain hash RSA [BR96], and it is provably secure in the random oracle model (roughly speaking, this assumes that the hash function is perfect: behaving like a random function), under the RSA assumption. To make sure that the hash function does not create obvious security failures, the hash function is required to be at least collision-free, that is, it should be computationally hard to output two distinct messages m 0 and m 1 such that h(m 0 ) = h(m 1 ).

14 14 PHONG Q. NGUYEN In the case of Textbook-RSA, the use of a hash function prevented elementary forgeries and even provided a security proof in the random oracle model, but hash functions do not necessarily solve all the security problems by magic, as we will now see with Textbook-Elgamal Textbook-Elgamal. First, let us see an elementary existential forgery on Textbook-Elgamal. To forge a signature, it suffices to find a triplet (m, a, b) Z p Z p Z p 1 satisfying (2.13): m ax + b log a (mod p 1). Given an arbitrary m, the signer finds a valid pair (a, b) because he/she selects an a for which he/she already knows log a (this logarithm is the one-time key k) and makes sure it is invertible modulo p 1. Then because the signer knows the secret exponent x, he/she can solve (2.13) for b. But the attacker does not know the secret exponent x in (2.13), so he/she cannot do the same. One way to solve that problem would be to select a in such a way that ax cancels out with b log a. For instance, if we select an a of the form: where B and C are integers, then a = g B y C (mod p), ax + b log a x(a + bc) + bb (mod p 1). So if we select a C coprime with p 1, we can choose b such that: Finally, we select the message m as: a + bc 0 (mod p 1). m bb (mod p 1). Our choice of (m, a, b) then satisfies (2.13). We thus have obtained a no-message existential forgery on Textbook-Elgamal. But this forgery, which was first described in [El 85], has almost no flexibility over m: we can obtain many forgeries thanks to different choices of (B, C), but each choice of (B, C) gives rise to a unique m. This means that this forgery will be prevented if we hash the message before hashing, like in FDH-RSA. We now describe another existential forgery on Textbook-Elgamal, which can also be prevented by hashing. However, as opposed to the previous existential forgery, we will later see that this existential forgery can be transformed into a clever universal forgery found by Bleichenbacher [Ble96], which cannot therefore be prevented by hashing. This alternative existential forgery finds a triplet (m, a, b) Z p Z p Z p 1 satisfying (2.13) by solving the congruence by Chinese remainders separately. Thus, we decompose the modulus p 1 as p 1 = qs where s is smooth (that is, it has no large prime factor, see [Sho05]). The reason why we choose s to be smooth is that it is easy to extract discrete logarithm in a group of smooth order, using Pohlig- Hellman s algorithm (see [MOV97, Sho05]). In particular, we do not know how to compute efficiently the discrete-log function log over Z p, but for any z Z p, we can efficiently compute (log z) mod s. We do not know the secret key x, but because we know the public key y = g x mod p, we may compute the smooth part x mod s. Since p 1 is always even, the smooth part s is at least 2.

15 PUBLIC-KEY CRYPTANALYSIS 15 Because p 1 = qs, the congruence (2.13) would imply the following two congruences: (4.2) (4.3) m ax + b log a (mod q) m ax + b log a (mod s) Reciprocally, if we could find a triplet (m, a, b) satisfying both (4.2) and (4.3), would it necessarily satisfy (2.13)? The answer would be positive if q and s were coprime, by the Chinese remainder theorem. So let us assume that we put all the smooth part of p 1 into s, so that the smooth number s is indeed coprime with q = (p 1)/s. We do not know x mod q, so the mod q-congruence (4.2) looks hard to satisfy. However, note that the triplet (m, a, b) = (m, q, 0) is a trivial solution of (4.2) whenever m 0 (mod q). So let us consider any message m such that m 0 (mod q), and set a = q. It remains to satisfy the second congruence (4.3). We can compute log a mod s, and if we are lucky, it will be invertible mod s, so that we can solve (4.3). Thus, we have obtained a probabilistic existential forgery, which is weakly universal in the sense that if log q is coprime with s, then we can forge the signature of any message m divisible by q. Like the previous existential forgery, this attack could easily be avoided using a cryptographic hash function, but Bleichenbacher [Ble96] found a trick to remove this limitation over m. We now describe Bleichenbacher s attack, with a presentation slightly different from that of [Ble96]. We restrict to the simplest form of Bleichenbacher s forgery, which requires that the generator g is smooth and divides p 1: a natural choice would be g = 2. Thus, we let s = g where p 1 = qs and we assume that s is smooth as before. However, we will no longer assume that q and s are coprime, so it will not suffice to work with (4.2) and (4.3) only. Instead, we will work with the congruence (2.13) mod p 1 directly. We can compute x 0 = x mod s, so that x = x 0 + sx 1 where x 1 is unknown. If we let a = q, then (2.13) becomes: (4.4) m ax 0 + b log a (mod p 1). This congruence looks hard to solve for b since we know log a mod s but not mod p 1. The trick is that the particular choice a = q enables us to compute log a. We claim that log a = log q is equal to the integer k = (p 3)/2 = (p 1)/2 1. To see this: g k g (p 1)/2 g 1 (mod p) ( 1)g 1 because g is generator, so its Legendre symbol is -1. qsg 1 because p 1 = qs. q because g = s. It follows that (4.4) can be rewritten as: (4.5) m ax 0 + bk (mod p 1). It is an elementary fact of number theory that this linear congruence can be solved for b if and only if gcd(k, p 1) divides m ax 0. To evaluate gcd(k, p 1), note that: k 2 = ((p 1)/2 1) 2 = ((p 1)/2) 2 (p 1) ((p 1)/2) 2 (mod p 1).

16 16 PHONG Q. NGUYEN We distinguish two cases: If p 1 (mod 4), then gcd(k, p 1) = 1 because the previous congruence becomes k 2 1 (mod p 1) as ((p 1)/2) 2 is a multiple of p 1. It follows that whatever the value of m, we can always solve (4.5) for b. Otherwise, p 3 (mod 4), and we claim that gcd(k, p 1) = 2. Indeed, this time, we have that ((p 1)/2) 2 1 (mod p 1) rather than 0, which implies that k 2 2 (mod p 1). It follows that gcd(k, p 1) = 2 because we already know that it is 2. Hence, if we assume that m is uniformly distributed modulo p 1, then the probability that gcd(k, p 1) divides m ax 0 is exactly 1/2. This means that we can solve (4.5) half of the time. Hence, if the generator is smooth and divides p 1, we can either forge a signature on every message if p 1 (mod 4), or on half of the messages if p 3 (mod 4). Bleichenbacher describes other attacks on other specific generators in [Ble96]. Surprisingly, on the other hand, Pointcheval and Stern [PS96] showed at the same conference as [Ble96] that a slight modification of the Elgamal signature scheme is provably secure in the random oracle model. Furthermore, Bleichenbacher s attack applied to that modification as well, but there is fortunately no contradiction because the Pointcheval-Stern security proof assumed that the generator g was chosen uniformly at random among all generators of Z p, in which case it is very unlikely that g will be smooth and dividing p 1. This suggests the following lesson: one should always carefully look at all the assumptions made by a security proof Asymmetric Encryption Textbook-RSA. We first consider Textbook-RSA. Like any trapdoor permutation used directly as a public-key encryption scheme, Textbook-RSA is vulnerable to brute-force attacks over the plaintext. More precisely, an attacker has access to a plaintext-checking oracle: the attacker can check whether a given ciphertext c would be decrypted as a given plaintext m, by checking if: (4.6) c m e mod N. In particular, if the set of plaintexts M (where m M) is small, one can decrypt by brute-force: one would simply enumerate all m M and check whether the ciphertext c corresponds to the plaintext m, in which case m = m. This would be for instance the case if we were encrypting English plaintexts letter by letter. In other words, when the distribution of plaintexts is very different from the uniform distribution over Z N, (such as when the set of plaintexts M is a very small subset of Z N ), attacks may arise. Another famous example is the short-message attack. Assume that the plaintexts are in fact very small: for instance, assume that the plaintext m satisfies 0 m N 1/e, (e.g. m is a 128-bit AES key, N a 1024-bit modulus, and e = 3). Then the integer m satisfies: 0 m e N, which means that the congruence (4.6) is in fact an equality over Z, c = m e. But it is well-known that solving univariate polynomial equations over Z can be done in polynomial time: extracting e-th roots over Z is simply a particular case. In other words, if 0 m N 1/e, then one can recover the plaintext m from (c, N, e)

17 PUBLIC-KEY CRYPTANALYSIS 17 in polynomial time. To summarize, if the distribution of the plaintext m is the uniform distribution over Z N, no one currently knows how to recover efficiently the plaintext m from its ciphertext c = m e mod N: this is exactly the RSA assumption. But if the distribution of the plaintext m is very different, there are examples for which there exist very efficient attacks. Another elementary remark is that the RSA permutation provably leaks information. Given c = m e mod N where m has uniform distribution over Z N, one does not know how to recover m efficiently, but it is easy to recover efficiently one bit of information on the plaintext m. More precisely, because e must be odd (since it is coprime with φ(n) which is even), the congruence (4.6) implies the following equality of Jacobi symbols: ( c ) ( m ) e ( m ) = =. N N N In other words, one can derive efficiently the Jacobi symbol ( ) m N, which provides one bit of information on the plaintext m. We earlier saw an adaptive chosen-message universal forgery on Textbook-RSA signatures based on the multiplicativity of the RSA permutation. This elementary attack has an encryption analogue: it can be transformed into an adaptative chosenciphertext attack. Indeed, assume that we would like to decrypt a ciphertext c = m e mod N Z N : in other words, we would like to recover the plaintext m Z N. Select m 1 Z N uniformly at random. If m 1 is not invertible mod N (which is unlikely), then we have found a non-trivial factor of N, which of course allows us to decrypt c. Otherwise, we may compute: c 2 = cm e 1 (mod N). We ask the decryption oracle to decrypt the ciphertext c 2 : this gives the plaintext m 2 Z N defined by c 2 = m e 2 mod N. Then it is clear by multiplicativity that m = (m 1 m 2 ) mod N, which allows us to recover the initial plaintext m Textbook-Elgamal. Textbook-Elgamal is a probabilistic encryption scheme, unlike Textbook-RSA. In particular, there is no access to a plaintext-checking oracle. However, Textbook-Elgamal provably leaks one bit of information on the plaintext, just like Textbook-RSA. Indeed, if g is a generator of Z p, then its Legendre symbol must be equal to -1. In particular, the congruence (2.8) ) implies ( g p that the ciphertext (c, d) of a message m satisfies: ( ) c = ( 1) k, p which discloses the parity of the one-time key k. Furthermore, the congruence (2.9) implies that: ( ) ( ) ( ) k d m y =. p p p Because d, y and p are public, ( and ) since the parity of k is now known, one can m compute the Legendre symbol p, which discloses one bit of information on the plaintext m.

18 18 PHONG Q. NGUYEN We saw in Section an adaptive chosen-ciphertext attack on Textbook-RSA encryption based on the multiplicativity of the RSA permutation. Since Textbook- Elgamal is multiplicative as well (see Section 2.2.2), this adaptive chosen-ciphertext attack can trivially be adapted to the Elgamal setting. The fact that Textbook-RSA encryption is deterministic makes it vulnerable to several elementary attacks, but transforming it into a probabilistic encryption scheme will not prevent all the security problems by magic, as the example of Textbook-Elgamal encryption shows. 5. Square-Root Attacks Whenever an exhaustive search over a secret key or a plaintext (or any other secret value) is possible, cryptographers often look for improved attacks based on time/memory trade-offs (see [MOV97, Hel80, Oec03, BBS06]). Usually, exhaustive search requires negligible memory M and exponential time T. A time/memory trade-off tries to balance those two costs. It is often achieved by splitting the secret value in values of half-size, in which case the new time and space complexity become roughly the square root of the cost of exhaustive search: that is, if T is the running time of exhaustive search, then both the time and space complexities become roughly T. Sometimes, it is possible to further improve the space complexity of such square-root attacks to negligible memory, which is of considerable interest in practice. But among the three square-root attacks we will present, such a memory improvement is only known for the first one, which deals with the discrete logarithm problem The Discrete Logarithm Problem. As an illustration, consider the discrete logarithm problem used in Textbook-Elgamal. Let p be a prime and g be a generator of Z p. Assume that one is given an integer y satisfying: (5.1) y = g x mod p, where the integer x is secret. The discrete logarithm problem asks to recover x modulo p 1. Assume that the secret exponent x satisfies 0 x X, where the public bound X is much smaller than p: does that make the discrete logarithm easier? Obviously, the simplest method would be to exhaustive search all exponents x such that 0 x X, and find out which one satisfies (5.1). This costs X group operations with negligible space. A simple time/memory trade-off is obtained by splitting the secret exponent x in two parts. More precisely, the integer x can be written as: x = x 1 + X x 2 where x 1 are x 2 are two integers satisfying 0 x 1 X X and 0 x 2 X/ X = O( X). This enables to rewrite (5.1) as: that is: (5.2) y g x1+ X x 2 (mod p), y/g X x 2 g x1 (mod p). Reciprocally, any pair (x 1, x 2 ) satisfying (5.2) gives rise to a solution x of (5.1). This suggests the following time/memory trade-off:

19 PUBLIC-KEY CRYPTANALYSIS 19 Precompute the list L of all g x1 mod p where 0 x 1 X, and sort the list L to allow binary search. This will cost essentially O( X ln X) polynomial-time operations. For all integers x 2 such that 0 x 2 X/ X, compute y/g X x 2 mod p and find out if it belongs to the list L. If it belongs to L, output the corresponding solution x to (5.1). This will also cost essentially O( X ln X) polynomial-time operations. In other words, we have obtained a time/memory trade-off to solve (5.2) (and therefore (5.1)), which has time and space complexity roughly O( X ln X), if we ignore polynomial costs. The method we have just described is known as the babystep/giant-step method in the literature (see [MOV97]). For the discrete logarithm problem, there are improvements to this basic square-root attack which allow to decrease the space requirement to negligible memory: see for instance Pollard s ρ and kangaroo methods in [CP01, MOV97], which are based on cycle-finding algorithms such as Floyd s RSA encryption of short messages. Another simple example of squareroot attacks is given by Textbook-RSA encryption of short messages with an arbitrary public exponent e, as explained in [BJN00]. Let 0 m B be a plaintext encrypted as c = m e mod N. We assume that the plaintext is small, that is, B N. For instance, m could be a 56-bit DES, N a 1024-bit RSA modulus, and e = It might happen that m can be split as m = m 1 m 2 where m 1 and m 2 are between 0 and roughly B. Splitting probabilities (as well as theoretical results) are listed in [BJN00]: For example, if 1 m 2 64 has uniform distribution then m can be split as a product m 1 m 2 where 1 m i < 2 32 with probability Extending to 1 m i 2 33 increases the probability to 0.29, while extending to 1 m i 2 34 increases the probability to This suggests the following attack [BJN00]: Compute all the values m e 1 mod N where 1 m 1 A B for some small constant A. These values (together with the corresponding m 1 ) should be stored in a structure which is easily searched. For all values m 2 such that 1 m 2 A B, compute c/m e 2 mod N and, for each value, see if this number appears in the earlier structure. If a match is found then we have c/m e 2 m e 1 (mod N) in which case c (m 1 m 2 ) e (mod N) and therefore, the secret plaintext is m = m 1 m 2. The cost of the attack is essentially O((A+A ) B ln B) polynomial-time operations RSA with small CRT secret exponents. The square-root attacks we have described are very elementary, but sometimes, square-root attacks can be tricky. A less elementary example is given by Coppersmith s square-root attack on the discrete logarithm problem with sparse exponents: this is a particular case of the discrete logarithm problem when the secret exponent has low Hamming weight. The motivation is that such exponents allow faster exponentiation, and are therefore tempting for certain cryptographic schemes. For more details, Coppersmith s attack is described in [Sti02]: it was originally presented in the eighties as a remark on the message security of the Chor-Rivest public-key encryption scheme. Its time and

20 20 PHONG Q. NGUYEN space complexities are roughly the square root of the running time of exhaustive search over all sparse exponents. A more sophisticated square-root attack applies to RSA with small CRT secret exponent: the attack is vaguely described in [QL00] and is attributed to Richard Pinch. The motivation is the following. To speed up RSA decryption or signature generation, one could select a small secret exponent d. But we will see later (in Section 7.1.1) an attack (due to Wiener [Wie90]), which recovers the factorization of the RSA modulus N for usual parameters whenever d = O(N 1/4 ). And Wiener s attack was improved by Boneh and Durfee [BD99] to d = O(N 1 1 2/2 ) = O(N ) using lattice-based techniques which we will describe in Section 7.3. A better way to speed up RSA decryption or signature generation is to choose N = pq and e so that the integers d p and d q satisfying ed p 1 (mod p 1) and ed q 1 (mod q 1) are small. If d p and d q are both O(B), there is a simple brute-force attack which costs O(B). Namely, assume without loss of generality that 1 < d p, d q < B with d p d q, and consider the following: Choose a random 1 < m < N and set c = m e mod N. Recall that c dp = m edp m mod p. For each 1 < i < B one can compute gcd(c i m mod N, N) and see if we have factored N. When i = d p d q we have c i m mod p and c i m mod q. Hence the algorithm will succeed. The complexity is Õ(B). It is natural to seek a square-root attack in this case. Consider what happens if one tries the obvious approach: Write M = B and d p = d 1 + Md 2 with 0 d 1 < M, 0 d 2 M + 1. One would expect to compute and store a table of baby steps c i mod N for 0 i < M. Then one would expect to compute the giant steps (c M ) j mod N for 0 j M + 1. For each new giant step we must test whether there is a match, i.e., a value for i such that gcd(c i (c M ) j m, N) 1. The problem is that it seems the only way to check this is to run over the entire table of the baby steps and try each one. If this is done then the final complexity is still Õ(B) rather than the square root. The following attack reaches the square-root goal: Compute the polynomial G(x) = ((c M ) j x m) mod N. M+1 j=0 This computation takes time Õ(M) and storing G(x) requires space Õ(M). Note that G(c d1 ) 0 mod p since (c M ) d2 c d1 c d m mod p. Evaluate G(x) modulo N at c i for all 0 i < M.

Introduction Electronic transactions and activities taken place over Internet need to be protected against all kinds of interference, accidental or malicious. The general task of the information technology

RSA Attacks By Abdulaziz Alrasheed and Fatima 1 Introduction Invented by Ron Rivest, Adi Shamir, and Len Adleman [1], the RSA cryptosystem was first revealed in the August 1977 issue of Scientific American.

1 Digital Signatures A digital signature is a fundamental cryptographic primitive, technologically equivalent to a handwritten signature. In many applications, digital signatures are used as building blocks

Chapter 9 Public Key Cryptography and RSA Private-Key Cryptography traditional private/secret/single key cryptography uses one key shared by both sender and receiver if this key is disclosed communications

Chapter 1 Introduction This is a chapter from version 1.1 of the book Mathematics of Public Key Cryptography by Steven Galbraith, available from http://www.isg.rhul.ac.uk/ sdg/crypto-book/ The copyright

MATH 168: FINAL PROJECT Troels Eriksen 1 Introduction In the later years cryptosystems using elliptic curves have shown up and are claimed to be just as secure as a system like RSA with much smaller key

Family Name:... First Name:... Section:... Advanced Cryptography Final Exam July 18 th, 2006 Start at 9:15, End at 12:00 This document consists of 12 pages. Instructions Electronic devices are not allowed.

The science of encryption: prime numbers and mod n arithmetic Go check your e-mail. You ll notice that the webpage address starts with https://. The s at the end stands for secure meaning that a process

Public Key Cryptography: RSA and Lots of Number Theory Public vs. Private-Key Cryptography We have just discussed traditional symmetric cryptography: Uses a single key shared between sender and receiver

The RSA Algorithm: A Mathematical History of the Ubiquitous Cryptological Algorithm Maria D. Kelly December 7, 2009 Abstract The RSA algorithm, developed in 1977 by Rivest, Shamir, and Adlemen, is an algorithm

Software Implementation of Gong-Harn Public-key Cryptosystem and Analysis by Susana Sin A thesis presented to the University of Waterloo in fulfilment of the thesis requirement for the degree of Master

Digital Signature and Public Key Cryptosystem in a Prime Order Subgroup of Z n Colin Boyd Information Security Research Centre, School of Data Communications Queensland University of Technology, Brisbane

9 Modular Exponentiation and Cryptography 9.1 Modular Exponentiation Modular arithmetic is used in cryptography. In particular, modular exponentiation is the cornerstone of what is called the RSA system.

Cryptography Lecture 8 Digital signatures, hash functions A Message Authentication Code is what you get from symmetric cryptography A MAC is used to prevent Eve from creating a new message and inserting

Breaking The Code Ryan Lowe Ryan Lowe is currently a Ball State senior with a double major in Computer Science and Mathematics and a minor in Applied Physics. As a sophomore, he took an independent study

Cryptography: Authentication, Blind Signatures, and Digital Cash Rebecca Bellovin 1 Introduction One of the most exciting ideas in cryptography in the past few decades, with the widest array of applications,

Ch.9 Cryptography The Graduate Center, CUNY! CSc 75010 Theoretical Computer Science Konstantinos Vamvourellis Why is Modern Cryptography part of a Complexity course? Short answer:! Because Modern Cryptography

Digital Signatures Meka N.L.Sneha Indiana State University nmeka@sycamores.indstate.edu October 2015 1 Introduction Digital Signatures are the most trusted way to get documents signed online. A digital

MA2C03 Mathematics School of Mathematics, Trinity College Hilary Term 2016 Lecture 59 (April 1, 2016) David R. Wilkins The RSA encryption scheme works as follows. In order to establish the necessary public

David Harvey (joint work with Edgar Costa, NYU) University of New South Wales 25th October 2011 The obvious mathematical breakthrough would be the development of an easy way to factor large prime numbers

Part VII Digital signatures CHAPTER 7: Digital signatures Digital signatures are one of the most important inventions/applications of modern cryptography. The problem is how can a user sign a message such

CHAPTER 13 Digital Signature (Solution to Odd-Numbered Problems) Review Questions 1. We mentioned four areas in which there is a differences between a conventional and a digital signature: inclusion, verification,

Network Security 1 Professor Richard Harris School of Engineering and Advanced Technology Presentation Outline Overview of Identification and Authentication The importance of identification and Authentication

3. APPLICATIONS OF NUMBER THEORY 163 3. Applications of Number Theory 3.1. Representation of Integers. Theorem 3.1.1. Given an integer b > 1, every positive integer n can be expresses uniquely as n = a

Digital signatures Informal properties Definition. A digital signature is a number dependent on some secret known only to the signer and, additionally, on the content of the message being signed Property.

Cryptography Digital Signatures Professor: Marius Zimand Digital signatures are meant to realize authentication of the sender nonrepudiation (Note that authentication of sender is also achieved by MACs.)