5

I know and I have understood the details of RSA, elliptic curve cryptography, (EC)DH and (EC)DSA.

I keep reading everywhere that (if we don't consider non-deterministic computers) "ECC can achieve the same level of security as RSA, but with lower key sizes". While I can guess why this is true, how do we mathematically prove that?

Here's what I think:

Here $b$ is the bit-length of the key/of the group order.

Therefore, an ECC key of $b_1$ bits has the same strength of an RSA key of $b_2$ bits when: $2^{b_1/2} \approx \exp((64 b_2 / 9)^{1/3} \cdot (\log b_2)^{2/3})$.

Using that formula I can calculate that if I have a 2048-bit RSA key, I can achieve the same level of security with a 273-bit ECC key. But this number (273) is too high.

My question is: is my reasoning wrong? Where is the mistake?

user16538
  • 153
  • 1
  • 4
  • 3
    Your reasoning is in the good direction. Maybe Chapter 6 of this ECRYPT report is useful for you. – cygnusv May 11 '15 at 14:57
  • 3
  • The number can't be right. 2048 bits RSA roughly corresponds to a 112 bit symmetric key or a 224 bit ECC key. 2) You wrote a + in the RSA formula where it should be a *. 3) The RSA formula is asymptotic, but you need concrete cost for the comparison.
  • – CodesInChaos May 11 '15 at 14:58
  • you can find something here (3 links): https://gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096 https://certsimple.com/blog/measuring-ssl-rsa-keys https://crypto.stackexchange.com/questions/8687/security-strength-of-rsa-in-relation-with-the-modulus-size – ddddavidee May 11 '15 at 15:00
  • @CodesInChaos: using * instead of + I get that a 2048-bit RSA key corresponds to a 273-bit key, which is still incorrect, but is better. I know that I need to use the concrete cost, however I do not have it (and I am interested in an approximation, not the exact value). – user16538 May 11 '15 at 15:21
  • well lenstra and verheul analysed this quite well in 2000. Their goal was to give numbers on the developement of keysizes but for this they needed some sort of model. The text is worth reading and then you may understand. – SEJPM May 11 '15 at 15:23
  • well you also have to note that this is asymptotic notation. You need a reference point, as O(f(x))<k*f(x). So you need a point at which you consider both equal (like they need some computation effort to be broken) – SEJPM May 11 '15 at 15:26
  • Of course for an extreme shortcut you could have a look at keylength.com and the referenced papers from Lenstra, NIST and ECRYPT II. – Maarten Bodewes May 11 '15 at 16:56