pgpfan:rsabad
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
pgpfan:rsabad [2020/07/08 23:36] – created b.walzer | pgpfan:rsabad [2024/07/31 20:12] (current) – Provided a bit of context. b.walzer | ||
---|---|---|---|
Line 1: | Line 1: | ||
======Seriously, | ======Seriously, | ||
- | This article criticizes the use of the RSA encryption system: | + | This article criticizes the use of the RSA encryption |
* [[https:// | * [[https:// | ||
- | Since many PGP implementations use RSA by default some comments | + | Basically the argument here is that RSA is too simple and straightforward. Therefore there is a temptation to implement it and make bonehead errors while doing so. The claim is made that other, more complicated, |
- | The writer mostly talks about common implementation errors. PGP has been using RSA for a very long time now. There is no real chance that there are any of those errors in the PGP code. | + | I don't think the author of this article |
- | There is no incentive to incorrectly optimize for performance in the PGP case because of the PGP [[pgpfan: | + | Since many PGP implementations use RSA by default some comments are in order. |
- | The writer has a section on padding oracle attacks. Such attacks are [[pgpfan: | + | >//Prime Selection// |
- | The writer ends with a discussion | + | >// |
- | > ... the math behind ECC is so complicated that very few people feel confident enough to actually implement it. In other words, it intimidates people into using libraries built by cryptographers who know what they’re doing. | + | From a recent (2022) study (([[https:// |
- | In other words; | + | >I applied |
+ | > | ||
+ | > | ||
- | [[pgpfan: | + | The study ended up showing that this particular bonehead error was rare. It was found in a single very obscure library. |
+ | |||
+ | >//In fact, even the choice of primality testing algorithm can have [[https:// | ||
+ | |||
+ | Perhaps, but the link is to a study with no obvious applicability to RSA. So it is not clear exactly what the claimed issue is here. | ||
+ | |||
+ | >It’s important to recognize that in none of these cases is it intuitively obvious that generating primes in such a way leads to complete system failure. | ||
+ | |||
+ | Normally for RSA you pick 2 random numbers and then find a prime close to each. All of these cases involved generating RSA keys in ways quite different than normal. So sure, your super clever method might have weaknesses that are not obvious, but what rational person would not consider the possible existence of such weaknesses when doing something entirely different from what everyone else is doing? Why is RSA singled out here? Doing weird stuff will usually produce strange results in any context. | ||
+ | |||
+ | >// | ||
+ | |||
+ | >// Instead, developers are encouraged to choose a large d such that Chinese remainder theorem techniques can be used to speed up decryption. However, this approach’s complexity increases the probability of subtle implementation errors, which [[https:// | ||
+ | |||
+ | The linked article doesn' | ||
+ | |||
+ | Almost all RSA implementations check generated signatures to prevent, say, a cosmic ray induced bit flip, from creating the possibility of a secret key leak. So the " | ||
+ | |||
+ | >// | ||
+ | |||
+ | >// | ||
+ | |||
+ | A quick check of a RSA key generated by GnuPG revealed the use of 65537 for the public exponent. | ||
+ | |||
+ | >// | ||
+ | |||
+ | Padding oracle attacks are [[pgpfan: | ||
+ | |||
+ | >//So what should you use instead?// | ||
+ | |||
+ | >//First of all, a common misconception is that ECC is super dangerous because choosing a bad curve can totally sink you.// | ||
+ | |||
+ | Alternatively, | ||
+ | |||
+ | Note all the conditional bits covered by the linked article in the previous paragraph. Different curves have different properties and different issues. There are a bunch of different curves in common use while RSA pretty much always uses 65537 for the one and only implementer controlled parameter (public exponent). | ||
+ | |||
+ | [[pgpfan: | ||
+ | [[em: | ||
pgpfan/rsabad.1594251417.txt.gz · Last modified: 2020/07/08 23:36 by b.walzer