GnuPG 4096 bit hranice

hlasů
17

Proč je RSA klíče v GnuPG omezen na 4096 bitů?

To by bylo nezákonné, abych upravit zdroj pro zvýšení velikosti max?

ssh-keygen nemá toto omezení (např mohu vytvořit klíč, který je 32768 bitů). Proč tomu tak je?

Položena 16/05/2011 v 00:13
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
9

Tam je docela rozumné vysvětlení (pro podobnou otázku) podle Fire Ant na bezpečnostní fórum:

http://www.security-forums.com/viewtopic.php?p=317962#317962

Všechna práva vyhrazena tam, ale fair use citace krátký výňatek by neměl být nevhodné mám dojem:

Klíčové velikosti přes 4096 v současné době nejsou podporovány v GPG. Důvodem je to, že 8192 klíče jsou velmi pomalé. Pokud budete potřebovat klíč větší než 4096 bitů pak byste měli opravdu na tom, co používáte ten klíč?

Odpovězeno 16/05/2011 v 00:31
zdroj uživatelem

hlasů
7

Na keylength.com je toto: -

K ochraně 256bitovou symetrický klíč (například AES-256), můžete zvážit použití na minimum je 17120 bitů asymetrický systém (např RSA).

4096 bit limit může být zvýšen, jak je popsáno v krátkém článku s názvem „ Vytvářet velká tlačítka s GnuPG “, dále reprodukován. To bylo provedeno na balíčku GnuPG v homebrew umožnit 8192 bitovými klíči: PR 4201 . Pozor o přidělení paměti pro velké klávesy: comp.security.pgp.tech .

Generovat velká tlačítka s GnuPG | David Norman

Pokud byste chtěli generovat větší klíče než 4096 bitů s GnuPG si můžete sestavit novou verzi, která zvyšuje horní mez 4096. Pravděpodobně zjistíte sami vytvářet jako RSA. Stáhnout opravu vaší un-vytárované gnupg-1.4.19 adresáře a použít ji:

usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ patch -p0 < gnupg_1.4.19_large_keygen.patch
patching file g10/keygen.c
usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ ./configure --enable-large-secmem
[...]
checking whether to allocate extra secure memory... yes
[...]
usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ make -j2
usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ make check
usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ sudo make install
usbdrive@sandisk-extreme64:~/gnupg-1.4.19$ gpg --gen-key --enable-large-rsa

Bez --enable-large-rsa vlajku, bude klíčový proces generování automaticky downgrade klíč k 4096.

Kompilovat na Mac, budete muset stáhnout Xcode z App Store jako první. Náplast se zvyšuje horní hranice velikosti klíče na 15489 bitů. Bez zvýšení limitu bezpečné paměti, generuje klíče větší než asi 7680 bitů selže, protože nebude moci přidělit dostatek paměti pro proces. Generování klíče větší než okolo 7680 bitů (192-bitové symetrické ekvivalent) může také znemožnit dešifrování zpráv se standardními bezpečných paměťových limitů stanovených v době kompilace, protože gpg binární nebude moci přidělit dostatek bezpečné paměti dešifrovat poselství , dokonce i ty malé.

gnupg_1.4.19_xlarge_key_gen.patch

--- g10/keygen.c    2015-02-26 12:24:21.000000000 -0500
+++ g10/keygen.c    2015-03-02 22:12:09.028419377 -0500
@@ -1041,8 +1041,9 @@
        nbits = 2048;
        log_info(_("keysize invalid; using %u bits\n"), nbits );
     }
-    else if (nbits > 4096) {
-        nbits = 4096;
+    else if (nbits > 15489) {
+        /* fallback to RFC3766 256-bit symmetric equivalency */
+        nbits = 15489;
         log_info(_("keysize invalid; using %u bits\n"), nbits );
     }

@@ -1251,7 +1252,8 @@
     PKT_public_key *pk;
     MPI skey[6];
     MPI *factors;
-    const unsigned maxsize = (opt.flags.large_rsa ? 8192 : 4096);
+    /* New large key limit RFC3766 256-bit symmetric equivalency */
+    const unsigned maxsize = (opt.flags.large_rsa ? 15489 : 4096);

     assert( is_RSA(algo) );

@@ -1578,7 +1580,7 @@
 static unsigned int
 ask_keysize (int algo, unsigned int primary_keysize)
 {
-  unsigned nbits, min, def=2048, max=4096;
+  unsigned nbits, min, def=2048, max=15489;
   int for_subkey = !!primary_keysize;
   int autocomp = 0;

gnupg_1.4.19_xlarge_secmem.patch

--- configure   2015-02-27 03:37:52.000000000 -0500
+++ configure   2015-03-02 22:28:31.488401783 -0500
@@ -5076,7 +5076,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $large_secmem" >&5
 $as_echo "$large_secmem" >&6; }
 if test "$large_secmem" = yes ; then
-   SECMEM_BUFFER_SIZE=65536
+   SECMEM_BUFFER_SIZE=131072
 else
    SECMEM_BUFFER_SIZE=32768
 fi

Článek končí. Získaný na 2016-02-26 od archivní kopie originálu .

Odpovězeno 18/07/2013 v 02:25
zdroj uživatelem

hlasů
2

Proč to není nic většího podporu? Možná, že v době vývoje GnuPG (a pokračující rozvoj RSA na to přijde) a hlavních rozměrů, výpočetních omezení v té době, a to jak pro případy, užitných straně klienta a potenciál vládních agentur budou moci rozbít klíč 4096 vývojáři a cryptographers cítil klíčový 4096 byl dostatečně velký. Opravdu, 4096 je opravdu velký klíč a bude trvat velmi dlouho, než se rozejít se současnou technologií. V případě, že vládní agentury byl za tebou a opravdu chtěl dostat své zprávy, že by se (v USA) získat soudní příkaz k dát rootkit na svých strojích, aby ani obávat prolomení šifrování.

Teď jsem se podíval na zdrojovém kódu konkrétně, ale pokud změníte velikost klíče k ničemu většímu než 4096, můžete mít problémy s ostatními uživateli pomocí svého klíče, pokud jejich software nepodporuje větší velikost klíče. Například, mám klíč 4096, můj přítel nemůže mi posílat zprávy ze zařízení se systémem Android, protože nemůže najít aplikaci, která podporuje nic většího než 3072! Pamatuj si to.

Odpovězeno 24/07/2012 v 13:14
zdroj uživatelem

hlasů
0

Chcete-li změnit zdrojový kód, můžete tak učinit snadno na Debian Linux s tímto skriptem: Zvyšování GnuPG limity klíč velikosti a dělat ideální .conf soubory.

Zde je odkaz na bash skript, který zvyšuje limit velikosti kláves GnuPG nad 4096 bitů. Stránka také poskytuje ideální GnuPG .conf souboru. https://gist.github.com/anonymous/3d928a0bcbb3ed92c454

Uveďte, prosím, vstup a doporučených změn.

Odpovězeno 11/09/2014 v 15:44
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more