8192+ bit RSA keys in OS X
shizmob.tumblr.com
shizmob.tumblr.com
I propose such a key actually decreases security because it is less compatible with existing software, training the users to further ignore warnings or dangerously tinker with their security settings.
Which one is more likely? NSA being able to break 4096 keys, but not 8192, or your user accepting an invalid certificate because "the key is probably just too big", or "it drains too much battery"? Which one will have more impact down the line?
Besides, if you are worried about such sophisticated attackers, your priority should be securing side channels and protecting yourself from rubber-hose cryptanalysis (http://en.wikipedia.org/wiki/Rubber-hose_cryptanalysis).
"Using encryption on the Internet is the equivalent of arranging an armored car to deliver credit card information from someone living in a cardboard box to someone living on a park bench." — Gene Spafford
(Hat tip to schoen: http://www.loyalty.org/~schoen/rsa/)
Though he notes that his armored car quip is approaching 20 years old, dating back to the dark days of Windows 95. Perhaps the better way to think about it is: encryption is necessary but not sufficient. If the NSA has extruded its tentacles into sufficient endpoints (operating systems? firmware? antivirus software?) that's a problem that encryption won't by itself solve.
Hey, I'm channeling RMS: free software is the real solution! Unless the NSA's tentacles extend to the compiler you use to compile the free software. :)
(Lather. Rinse. Repeat.)
There's also a nice answer on the crypto stack exchange: http://crypto.stackexchange.com/a/1982
Reviewing the sources, I admit "many more decades" might be an overestimation, maybe "a couple decades" would be a more accurate statement.
Still, the current factorization record is only 768 bit, and even the lowly 1024 bit key is orders of magnitude stronger than that.
Not After : Jan 14 16:29:17 2007 GMT
Not After : Aug 13 23:59:00 2018 GMT
Not After : Aug 22 16:41:51 2018 GMT
Not After : Dec 9 19:47:26 2018 GMT
Not After : Dec 10 18:40:23 2018 GMT
Not After : Feb 20 14:08:11 2019 GMT
Not After : Feb 20 14:10:22 2019 GMT
Not After : May 25 16:39:40 2019 GMT
Not After : Jun 23 12:14:45 2019 GMT
Not After : Jun 25 22:23:48 2019 GMT
Not After : Jun 26 00:19:54 2019 GMT
Not After : Jun 26 00:22:33 2019 GMT
Not After : Jun 21 04:00:00 2020 GMT
Not After : Jun 21 04:00:00 2020 GMT
Not After : Dec 31 23:59:59 2020 GMT
Not After : Dec 31 23:59:59 2020 GMT
Not After : Aug 1 23:59:59 2028 GMT
Not After : Aug 1 23:59:59 2028 GMT
Not After : Aug 1 23:59:59 2028 GMT
Not After : Aug 2 23:59:59 2028 GMT
Not After : Aug 2 23:59:59 2028 GMT
It's somewhat surprising that one of the certificates has already expired, but is still in ca-certificates. Method Date Symmetric Asymmetric Discrete Key Logarithm Group Elliptic Curve Hash
Lenstra/Verheul 2023 88 2054 1632 155 2054 166 175
Lenstra Updated 2030 88 1698 2063 176 1698 176 176
ECRYPT II 2016-2020 96 1776 192 1776 192 192
NIST 2011-2030 112 2048 224 2048 224 224
ANSSI 2010-2020 100 2048 200 2048 200 200
RFC3766 - 103 2056 206 2056 192 -
BSI (sig. only) > 2020 - 1976 256 2048 250 256
Source: http://www.keylength.com/I agree that 8192 is overkill. GNUtls 3.0.28: certtool -p --sec-param=high comes out to 3248 bits.
sign verify sign/s verify/s
rsa 512 bits 0.000192s 0.000014s 5209.8 72185.6
rsa 1024 bits 0.000909s 0.000037s 1100.4 27318.3
rsa 2048 bits 0.004911s 0.000109s 203.6 9180.2
rsa 4096 bits 0.030147s 0.000413s 33.2 2419.1Be sure to take note of which curves to use as only some are supported by the TLS standard: http://stackoverflow.com/questions/16334662/some-elliptic-cu...
/Library/Preferences/com.apple.security
OSX 10.9
If a preferences domain doesn't exist (or if the key doesn't exist within the domain), the app or system default is used.
I also found that TLS1.2 is not supported in Mail.app on Mavericks, even though it is supported in Safari. I wanted to see if I could enable TLS1.2-only AES-GCM on everything and quickly found the SMTP/IMAP TLS support is lacking.
That's easy to test:
a = 2^8192 ≅ 1.09 * 10^2466 (http://www.wolframalpha.com/input/?i=2%5E8192)
b = 10^100 universes
If we assume one universe can only crack one value, then we need many more than 10^100 universes. But it's reasonable to assume that one universe can crack more than one encrypted value. Let's say that each universe can crack a million values. Then 10^100 universes is too many.