Space cardioid: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Brad7777
External links: removed ancestor and parent categories
 
en>Slawekb
Definition: disambiguated parametric
 
Line 1: Line 1:
Частное предприятие «Илигран»<br>220073, г. [http://iligran.by/%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%be%d0%b2-%d0%be%d1%80%d0%b3%d0%b0%d0%bd%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d0%b8-%d1%81%d1%82/ заказать ППРк Минск], ул. Кальварийская, дом 25, офис 424<br>Телефоны:<br><br>
'''Coppersmith's attack''' describes a class of attacks on the [[public-key cryptography|public-key cryptosystem]] [[RSA (algorithm)|RSA]] based on Coppersmith's theorem (see below). The public key in the RSA system is  a tuple of [[integer]]s <math>(N,e)</math>, where ''N'' is the product of two  primes ''p'' and ''q''. The secret key is given by an integer ''d'' satisfying <math>ed\equiv 1 \bmod\ (p-1)(q-1)</math>; equivalently, the secret key may be given by <math>d_p\equiv d \bmod (p-1)</math> and <math>d_q\equiv d \bmod (q-1)</math> if the [[Chinese remainder theorem]] is used to improve the speed of decryption, see [[RSA (algorithm)#Using_the_Chinese_remainder_algorithm|CRT-RSA]]. Encryption of a [[message]] ''M'' produces the [[ciphertext]] <math>C\equiv M^e\bmod N</math> which can be decrypted using <math>d</math> by computing <math>C^d\equiv M \bmod N</math>.


+375 44 545-67-00<br><br>[http://iligran.by/%d0%b0%d1%80%d0%b5%d0%bd%d0%b4%d0%b0-%d0%b0%d0%b2%d1%82%d0%be%d0%ba%d1%80%d0%b0%d0%bd%d0%be%d0%b2/ аренда автокрана Минск] +375 29 379-91-88<br>+375 17 204 42 28 (факс)<br>+375 17 204 42 26 (факс)<br>+375 17 204 01 72<br>Email: 2044228@mail.ru<br><br>http://iligran.by
Coppersmith's theorem has many applications in attacking RSA specifically if the public exponent ''e'' is small or if partial knowledge of the secret key is available.
 
==Low Public Exponent Attack==
In order to reduce [[RSA (algorithm)#Encryption|encryption]] or [[signature]]-[[Verification and validation|verification]] time, it is useful to use a small public [[exponent]] (<math>e</math>). In practice, common choices for <math>e</math> are 3, 17 and 65537 <math>(2^{16}+1)</math>.<ref>[http://www.thescipub.com/pdf/10.3844/jcssp.2006.665.671 Imad Khaled Salah,Abdullah Darwish and Saleh Oqeili. Mathematical Attacks on RSA Cryptosystem]</ref> These values for ''e'' are [[Fermat primes]], sometimes referred to as <math> F_0, F_2 </math> and <math> F_4 </math> respectively <math>(F_x=2^{2^x}+1)</math>. They are chosen because they make the [[modular exponentiation]] operation faster. Also, having chosen such <math>e</math>, it is simpler to test whether <math>\gcd(e, p-1)=1</math> and <math>\gcd(e, q-1)=1</math> while generating and testing the primes in step 1 of the [[RSA (algorithm)#Key_generation|key generation]]. Values of <math>p</math> or <math>q</math> that fail this test can be rejected there and then. (Even better: if ''e'' is prime and greater than 2 then the test <math>p\,\bmod\, e \ne1 </math>  can replace the more expensive test <math>\gcd(p-1,e)= 1</math>.<br/>
If the public exponent is small and the [[plaintext]] <math>m</math> is very short, then the RSA function may be easy to invert which makes certain attacks possible.
[[RSA (algorithm)#Padding schemes|Padding schemes]] ensure that messages have full lengths but additionally choosing public exponent <math>e = 2^{16} + 1 </math> is recommended. When this value is used, signature-verification requires 17 multiplications, as opposed to about 25 when a random <math>e</math> of similar size is used. Unlike low private exponent (see [[Wiener's Attack]]), attacks that apply when a small <math>e</math> is used are far from a total [[break]] which would recover the secret key ''d''.
The most powerful attacks on low public exponent [[RSA (algorithm)|RSA]] are based on the following theorem which is due to [[Don Coppersmith]].
 
== Theorem 1 (Coppersmith)<ref name=DB>[http://crypto.stanford.edu/~dabo/pubs/papers/RSA-survey.pdf D. Boneh. Twenty years of attacks on the RSA cryptosystem]</ref> ==
 
:Let ''N'' be an [[integer]] and <math>f \in {\mathbb Z}[x]</math> be a [[monic polynomial]] of degree <math>d</math> over the integers. Set <math>X=N^{ \frac{1}{d} - \epsilon}</math> for <math> \frac{1}{d} > \epsilon > 0</math>. Then, given <math>\left \langle N,f \right \rangle </math> attacker, Eve, can efficiently find all integers <math>x_0 < X</math> satisfying <math>f(x_0) = 0\,\bmod\,N</math>. The [[running time]] is dominated by the time it takes to run the [[LLL algorithm]] on a [[Lattice (group)|lattice]] of [[dimension]] [[big O notation|O]]<math>(w)</math> with <math>w = {\rm min} ( \frac{1}{\epsilon}, \log_2N)</math>.
 
This theorem states the existence of an [[algorithm]] which can efficiently find all [[Root of a function|roots]] of <math>f</math> modulo <math>N</math> that are smaller than <math>X = N^{ \frac{1}{d}} </math>. As <math> X </math> gets smaller, the algorithm's runtime will decrease. This theorem's strength is the ability to find all small roots of polynomials [[Modular arithmetic|modulo]] a composite <math>N</math>.<br/>
 
==Håstad's Broadcast Attack==
The simplest form of Håstad's attack is presented to ease understanding. The general case uses Coppersmith's theorem.
 
===How does it work?<ref name=GD>[http://theory.stanford.edu/~gdurf/durfee-thesis-phd.pdf Glenn Durfee. CRYPTANALYSIS OF RSA USING ALGEBRAIC AND LATTICE METHODS]</ref>===
Suppose one sender sends the same message <math> M </math> in encrypted form to a number of people <math> P_1;P_2;\dots ;P_k </math>, each using the same small public exponent <math>e</math>, say <math>e=3</math>, and different moduli <math> \left \langle N_i,e_i \right \rangle </math>.  A simple argument shows that as soon as <math>k \ge 3</math> ciphertexts are known, the message <math>M</math> is no longer secure: Suppose Eve intercepts <math>C_1 , C_2</math>, and <math>C_3</math>, where <math>C_i \equiv M^3\,\bmod\,N_i</math>. We may assume <math>\gcd(N_i , N_j ) = 1</math> for all <math>i, j</math> (otherwise, it is possible to compute a [[factor]] of one of the <math>N_i</math>’s by computing <math>\gcd(N_i,N_j)</math>.) By the [[Chinese Remainder Theorem]], she may compute <math>C \in \mathbb{Z}^*_{N_1N_2N_3}</math> such that <math>C \equiv C_i\, \bmod\, N_i</math>. Then <math>C \equiv M^3\, \bmod\, N_1 N_2 N_3</math> ; however, since <math>M < N_i</math> for all <math>i</math>', we have <math>M^3 < N_1N_2N_3</math>. Thus <math>C = M^3</math> holds over the integers, and Eve can compute the [[cube root]] of <math>C</math> to obtain <math>M</math>.
 
For larger values of <math>e</math> more ciphertexts are needed, particularly, <math>e</math> ciphertexts are sufficient.
 
===Generalizations===
Håstad also showed that applying a [[linear]]-[[Padding (cryptography)|padding]] to <math> M </math> prior to encryption does not protect against this attack. Assume the attacker learns that <math> C_i = f_i(M)^{e} </math> for <math> 1\leq i \leq k</math> and some linear function <math>f_i</math>, i.e., Bob applies a [[Padding (cryptography)|pad]] to the [[message]] <math>M</math> prior to [[encrypt]]ing it so that the recipients receive slightly different messages. For instance, if <math>M</math> is <math>m</math> bits long, Bob might [[encrypt]] <math> M_i=i2^m+M </math> and send this to the ''i''-th recipient.
 
If a large enough group of people is involved, the attacker can recover the [[plaintext]] <math> M_i</math> from all the [[ciphertext]] with similar methods. In more generality,
Håstad proved that a system of [[univariate]] [[equations]] [[Equivalence relation|modulo]] [[relatively prime]] composites, such as applying any fixed [[polynomial]] <math> g_1(M) = 0</math> mod <math> N_i</math>,  could be solved if sufficiently many [[equations]] are provided.  This [[cyber attack|attack]] suggests that randomized [[Padding (cryptography)|padding]] should be used in [[RSA encryption]].
 
=== Theorem 2 (Håstad) ===
:Suppose <math>N_1,\dots ,N_k</math> are [[relatively prime]] [[integers]] and set <math>N_{\rm min} = {\rm min}_i\{N_i\}</math>. Let <math> g_i (x) \in \mathbb{Z}/N_i\left [ x \right ]</math> be ''k'' [[polynomials]] of maximum [[Degree of a polynomial|degree]] <math>q</math>. Suppose there exists a unique <math> M < N_{\rm min} </math> satisfying <math> g_i(M) = 0 </math>(mod <math>N_i</math>) for all <math> i \in \left \{ 1,\dots , k \right \}</math>. Furthermore suppose <math> k > q</math>. There is an efficient [[algorithm]] which, given <math> \left \langle N_i, g_i \left ( x \right ) \right \rangle</math> for all <math>i</math>, computes <math>M</math>.
 
'''Proof''':<br/>
Since the <math>N_i</math> are [[relatively prime]] the [[Chinese Remainder Theorem]] might be used to compute [[coefficients]] <math> T_i </math> satisfying <math> T_i\equiv 1 \bmod N_i (is _1)</math> and <math> T_i \equiv 0 \bmod\  N_j </math> for all <math> i \ne j </math>. Setting <math> g(x) = \sum i \cdot T_i \cdot g_i (x) </math>  we know that <math> g(M)\equiv 0 \bmod\  \prod N_i</math>. Since the <math>T_i</math> are [[nonzero]] we have that <math>g\left(x\right)</math> is also nonzero. The degree of <math>g\left(x\right)</math> is at most <math>q</math>. By Coppersmith’s Theorem, we may compute all [[integer]] roots <math>x_0</math> satisfying <math> g (x_0)\equiv 0  \bmod \prod N_i </math> and <math> \left | x_0 \right |< \left(\prod N_i \right )^{\frac{1}{q}}</math>. However, we know that <math> M < N_{\rm min} < (\prod N_1)^{\frac{1}{k}} < (\prod N_1)^{\frac{1}{q}} </math>, so <math> M </math> is among the roots found by Coppersmith's theorem. <br/>
 
This theorem can be applied to the problem of broadcast [[RSA (algorithm)|RSA]] in the following manner: Suppose the ''i''-th plaintext is padded with a polynomial <math>f_i \left(x \right)</math>, so that <math>N_i = \left ( f_i\left ( x \right ) \right )^{e_i}-C_i \bmod\ N_i</math>. Then the polynomials <math>g_i = \left ( f_i\left ( x \right ) \right )^{e_i}-C_i \bmod N_i</math> satisfy that relation. The attack succeeds once <math> k > {\rm max}_i (e_i \cdot \deg f_i) </math>. The original result used the Håstad method instead of the full [[Coppersmith]] method. Its result was required <math> k = O (q^{2}) </math> messages, where <math> q = {\rm max}_i(e_i . \deg f_i)</math>.<ref name=GD /> <br/>
 
==Franklin-Reiter Related Message Attack==
 
Franklin-Reiter identified a new attack against [[RSA (algorithm)|RSA]] with public [[exponent]] <math>e=3</math>. If two [[messages]] differ only by a known fixed difference between the two messages and are [[RSA (algorithm)|RSA]] [[encrypted]] under the same [[RSA (algorithm)|RSA]] [[modulus]] <math>N</math>, then it is possible to recover both of them.
 
===How does it work?===
Let <math>\left \langle N; e_i \right \rangle </math> be Alice's public key. Suppose <math>M_1;M_2 \in \mathbb{Z}_N</math> are two distinct [[messages]] satisfying <math>M_1 \equiv f(M_2)\, \bmod\, N </math> for some publicly known [[polynomial]] <math>f \in \mathbb{Z}_N[x]</math>. To send <math>M_1</math> and <math>M_2</math> to Alice, Bob may naively [[encrypt]] the [[messages]] and [[transmit]] the resulting [[ciphertexts]] <math>C_1; C_2</math>. Eve can easily recover <math>M_1;M_2</math> given <math>C_1; C_2</math>, by using the following theorem:
 
===Theorem 3 (Franklin-Reiter)===
:Set <math>e = 3</math> and let <math>\left \langle N,e \right \rangle </math> be an RSA public key. Let <math>M_1 \ne M_2 \in \mathbb{Z}^*_N</math> satisfy <math>M_1 \equiv f(M_2)\, \bmod\, N</math> for some linear [[polynomial]] <math>f = ax+b \in \mathbb{Z}_N[x]</math> with <math>b \ne 0 </math>. Then, given <math>\left \langle N,e,C_1,C_2,f \right \rangle</math>, attacker, Eve, can recover <math>M_1,M_2</math> in time [[quadratic function|quadratic]] in <math>\log_2 N</math>.
 
For an [[arbitrary]] <math>e</math> (rather than restricting to <math>e=3</math>) the time required is [[quadratic function|quadratic]] in <math>e</math> and <math>\log_2 N</math>).
 
'''Proof''':<br/>
Since <math>C_1=M_1^e\, \bmod\, N</math>, we know that <math>M_2</math> is a [[root]] of the [[polynomial]] <math>g_1(x)=f(x)^e - C_1 \in \mathbb{Z}_N[x]</math>. Similarly, <math>M_2</math> is a root of <math>g_2(x)=x^e-C_2 \in \mathbb{Z}_N[x]</math>. The [[linear]] factor <math>x-M_2</math> divides both [[polynomial]]s.
Therefore, Eve calculates the [[greatest common divisor]] (gcd) of <math>g_1</math> and <math>g_2</math>, if the gcd turns out to be linear, <math>M_2</math> is found. The ''gcd'' can be computed in quadratic time in <math>e</math> and <math>\log_2 N</math> using the [[Euclidean algorithm]].
 
==Coppersmith’s Short Pad Attack==
Like Håstad’s and Franklin-Reiter’s attack, this attack exploits a weakness of [[RSA (algorithm)|RSA]] with public exponent <math>e=3</math>. Coppersmith showed that if randomized padding suggested by Håstad is used improperly then [[RSA (algorithm)|RSA]] [[encryption]] is not secure.
 
===How does it work?===
Suppose Bob sends a message <math>M</math> to Alice using a small random padding before [[encrypting]] it. An attacker, Eve, intercepts the [[ciphertext]] and prevents it from reaching its destination. Bob decides to resend <math>M</math> to Alice because Alice did not respond to his message. He randomly pads <math>M</math> again and transmits the resulting ciphertext. Eve now has two ciphertexts corresponding to two encryptions of the same message using two different random pads.
 
Even though Eve does not know the random pad being used, she still can recover the message <math>M</math> by using the following theorem, if the random padding is too short.
 
===Theorem 4 (Coppersmith) ===
:Let <math>\left \langle N,e\right \rangle</math> be a public [[RSA (algorithm)|RSA]] key where <math> N </math> is <math>n</math>-bits long. Set <math>m = \lfloor \frac{n}{e^2} \rfloor</math>. Let <math>M \in \mathbb {Z}^*_N</math> be a message of length at most <math> n-m </math> bits. Define <math>M_1 = 2^m M + r_1</math> and <math> M_2 = 2^m M + r_2</math>, where <math> r_1</math> and <math> r_2</math> are [[distinct]] [[integers]] with <math>0 \le r_1, r_2 < 2^m</math>. If Eve is given <math>\left \langle N, e\right \rangle</math> and the encryptions <math>C_1, C_2</math> of <math>M_1, M_2</math> (but is not given <math>r_1</math> or <math>r_2</math>, she can efficiently recover <math>M</math>.
 
'''Proof'''<ref name=DB /> <br/>
Define <math>g_1(x,y) = x^e - C_1</math> and <math>g_2(x,y) = x^e - C_2</math>. We know that when <math>y=r_2 - r_1</math>, these [[polynomials]] have <math>x=M_1</math> as a common root. In other words, <math>\vartriangle =r_2 - r_1</math> is a root of the [[resultant]] <math>h(y) = {\rm res}_x(g_1,g_2) \in \mathbb {Z}_N[y]</math>. Furthermore, <math>\left | \vartriangle \right | < 2^m < N^{ \frac {1}{e^2}}</math>. Hence, <math>\vartriangle </math> is a small root of <math>h</math> modulo <math>N</math>, and Eve can efficiently find it using [[Coppersmith's Attack#Theorem 1 (Coppersmith)|Theorem 1 (Coppersmith)]]. Once  <math>\vartriangle </math> is known, the Franklin-Reiter attack can be used to recover <math>M_2</math> and consequently <math>M</math>.<br/>
 
==See also==
[[Coppersmith method]]
 
==References==
{{reflist}}
 
[[Category:Asymmetric-key algorithms]]
[[Category:Cryptographic attacks]]

Latest revision as of 21:49, 14 April 2013

Coppersmith's attack describes a class of attacks on the public-key cryptosystem RSA based on Coppersmith's theorem (see below). The public key in the RSA system is a tuple of integers (N,e), where N is the product of two primes p and q. The secret key is given by an integer d satisfying ed1mod(p1)(q1); equivalently, the secret key may be given by dpdmod(p1) and dqdmod(q1) if the Chinese remainder theorem is used to improve the speed of decryption, see CRT-RSA. Encryption of a message M produces the ciphertext CMemodN which can be decrypted using d by computing CdMmodN.

Coppersmith's theorem has many applications in attacking RSA specifically if the public exponent e is small or if partial knowledge of the secret key is available.

Low Public Exponent Attack

In order to reduce encryption or signature-verification time, it is useful to use a small public exponent (e). In practice, common choices for e are 3, 17 and 65537 (216+1).[1] These values for e are Fermat primes, sometimes referred to as F0,F2 and F4 respectively (Fx=22x+1). They are chosen because they make the modular exponentiation operation faster. Also, having chosen such e, it is simpler to test whether gcd(e,p1)=1 and gcd(e,q1)=1 while generating and testing the primes in step 1 of the key generation. Values of p or q that fail this test can be rejected there and then. (Even better: if e is prime and greater than 2 then the test pmode1 can replace the more expensive test gcd(p1,e)=1.
If the public exponent is small and the plaintext m is very short, then the RSA function may be easy to invert which makes certain attacks possible. Padding schemes ensure that messages have full lengths but additionally choosing public exponent e=216+1 is recommended. When this value is used, signature-verification requires 17 multiplications, as opposed to about 25 when a random e of similar size is used. Unlike low private exponent (see Wiener's Attack), attacks that apply when a small e is used are far from a total break which would recover the secret key d. The most powerful attacks on low public exponent RSA are based on the following theorem which is due to Don Coppersmith.

Theorem 1 (Coppersmith)[2]

Let N be an integer and f[x] be a monic polynomial of degree d over the integers. Set X=N1dϵ for 1d>ϵ>0. Then, given N,f attacker, Eve, can efficiently find all integers x0<X satisfying f(x0)=0modN. The running time is dominated by the time it takes to run the LLL algorithm on a lattice of dimension O(w) with w=min(1ϵ,log2N).

This theorem states the existence of an algorithm which can efficiently find all roots of f modulo N that are smaller than X=N1d. As X gets smaller, the algorithm's runtime will decrease. This theorem's strength is the ability to find all small roots of polynomials modulo a composite N.

Håstad's Broadcast Attack

The simplest form of Håstad's attack is presented to ease understanding. The general case uses Coppersmith's theorem.

How does it work?[3]

Suppose one sender sends the same message M in encrypted form to a number of people P1;P2;;Pk, each using the same small public exponent e, say e=3, and different moduli Ni,ei. A simple argument shows that as soon as k3 ciphertexts are known, the message M is no longer secure: Suppose Eve intercepts C1,C2, and C3, where CiM3modNi. We may assume gcd(Ni,Nj)=1 for all i,j (otherwise, it is possible to compute a factor of one of the Ni’s by computing gcd(Ni,Nj).) By the Chinese Remainder Theorem, she may compute CN1N2N3* such that CCimodNi. Then CM3modN1N2N3 ; however, since M<Ni for all i', we have M3<N1N2N3. Thus C=M3 holds over the integers, and Eve can compute the cube root of C to obtain M.

For larger values of e more ciphertexts are needed, particularly, e ciphertexts are sufficient.

Generalizations

Håstad also showed that applying a linear-padding to M prior to encryption does not protect against this attack. Assume the attacker learns that Ci=fi(M)e for 1ik and some linear function fi, i.e., Bob applies a pad to the message M prior to encrypting it so that the recipients receive slightly different messages. For instance, if M is m bits long, Bob might encrypt Mi=i2m+M and send this to the i-th recipient.

If a large enough group of people is involved, the attacker can recover the plaintext Mi from all the ciphertext with similar methods. In more generality, Håstad proved that a system of univariate equations modulo relatively prime composites, such as applying any fixed polynomial g1(M)=0 mod Ni, could be solved if sufficiently many equations are provided. This attack suggests that randomized padding should be used in RSA encryption.

Theorem 2 (Håstad)

Suppose N1,,Nk are relatively prime integers and set Nmin=mini{Ni}. Let gi(x)/Ni[x] be k polynomials of maximum degree q. Suppose there exists a unique M<Nmin satisfying gi(M)=0(mod Ni) for all i{1,,k}. Furthermore suppose k>q. There is an efficient algorithm which, given Ni,gi(x) for all i, computes M.

Proof:
Since the Ni are relatively prime the Chinese Remainder Theorem might be used to compute coefficients Ti satisfying Ti1modNi(is1) and Ti0modNj for all ij. Setting g(x)=iTigi(x) we know that g(M)0modNi. Since the Ti are nonzero we have that g(x) is also nonzero. The degree of g(x) is at most q. By Coppersmith’s Theorem, we may compute all integer roots x0 satisfying g(x0)0modNi and |x0|<(Ni)1q. However, we know that M<Nmin<(N1)1k<(N1)1q, so M is among the roots found by Coppersmith's theorem.

This theorem can be applied to the problem of broadcast RSA in the following manner: Suppose the i-th plaintext is padded with a polynomial fi(x), so that Ni=(fi(x))eiCimodNi. Then the polynomials gi=(fi(x))eiCimodNi satisfy that relation. The attack succeeds once k>maxi(eidegfi). The original result used the Håstad method instead of the full Coppersmith method. Its result was required k=O(q2) messages, where q=maxi(ei.degfi).[3]

Franklin-Reiter Related Message Attack

Franklin-Reiter identified a new attack against RSA with public exponent e=3. If two messages differ only by a known fixed difference between the two messages and are RSA encrypted under the same RSA modulus N, then it is possible to recover both of them.

How does it work?

Let N;ei be Alice's public key. Suppose M1;M2N are two distinct messages satisfying M1f(M2)modN for some publicly known polynomial fN[x]. To send M1 and M2 to Alice, Bob may naively encrypt the messages and transmit the resulting ciphertexts C1;C2. Eve can easily recover M1;M2 given C1;C2, by using the following theorem:

Theorem 3 (Franklin-Reiter)

Set e=3 and let N,e be an RSA public key. Let M1M2N* satisfy M1f(M2)modN for some linear polynomial f=ax+bN[x] with b0. Then, given N,e,C1,C2,f, attacker, Eve, can recover M1,M2 in time quadratic in log2N.

For an arbitrary e (rather than restricting to e=3) the time required is quadratic in e and log2N).

Proof:
Since C1=M1emodN, we know that M2 is a root of the polynomial g1(x)=f(x)eC1N[x]. Similarly, M2 is a root of g2(x)=xeC2N[x]. The linear factor xM2 divides both polynomials. Therefore, Eve calculates the greatest common divisor (gcd) of g1 and g2, if the gcd turns out to be linear, M2 is found. The gcd can be computed in quadratic time in e and log2N using the Euclidean algorithm.

Coppersmith’s Short Pad Attack

Like Håstad’s and Franklin-Reiter’s attack, this attack exploits a weakness of RSA with public exponent e=3. Coppersmith showed that if randomized padding suggested by Håstad is used improperly then RSA encryption is not secure.

How does it work?

Suppose Bob sends a message M to Alice using a small random padding before encrypting it. An attacker, Eve, intercepts the ciphertext and prevents it from reaching its destination. Bob decides to resend M to Alice because Alice did not respond to his message. He randomly pads M again and transmits the resulting ciphertext. Eve now has two ciphertexts corresponding to two encryptions of the same message using two different random pads.

Even though Eve does not know the random pad being used, she still can recover the message M by using the following theorem, if the random padding is too short.

Theorem 4 (Coppersmith)

Let N,e be a public RSA key where N is n-bits long. Set m=ne2. Let MN* be a message of length at most nm bits. Define M1=2mM+r1 and M2=2mM+r2, where r1 and r2 are distinct integers with 0r1,r2<2m. If Eve is given N,e and the encryptions C1,C2 of M1,M2 (but is not given r1 or r2, she can efficiently recover M.

Proof[2]
Define g1(x,y)=xeC1 and g2(x,y)=xeC2. We know that when y=r2r1, these polynomials have x=M1 as a common root. In other words, =r2r1 is a root of the resultant h(y)=resx(g1,g2)N[y]. Furthermore, ||<2m<N1e2. Hence, is a small root of h modulo N, and Eve can efficiently find it using Theorem 1 (Coppersmith). Once is known, the Franklin-Reiter attack can be used to recover M2 and consequently M.

See also

Coppersmith method

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.