Perché hai bisogno di una chiave DSA a 4096 bit quando AES è solo a 256 bit?

10

Questo è qualcosa che mi sono chiesto e ho cercato di trovare una risposta, ma ancora di venire da remoto a uno.

Perché hai bisogno di un 4096-bit chiave DSA / El-Gamal quando AES utilizza solo 256-bit chiavi?

    
posta Traven 02.06.2014 - 09:05
fonte

4 risposte

7

Questo dipende dalla progettazione dell'algoritmo.

Gli algoritmi simmetrici sono progettati per essere il più semplice e veloce possibile (per la crittografia in ogni caso) e mantengono un elevato livello di sicurezza. Una chiave AES simmetrica con 256 bit produce 256 bit di lavoro. Qual è attualmente abbastanza bit di sicurezza. La crittografia asimmetrica richiede che le dimensioni della chiave siano maggiori per fornire livelli equivalenti di sicurezza (in bit).

Image Source

    
risposta data 03.02.2015 - 18:08
fonte
21

Una chiave simmetrica è solo un mucchio di bit. Quando hai una chiave simmetrica a 128 bit, hai 128 bit, con le due seguenti importanti caratteristiche:

  1. Qualsiasi sequenza di 128 bit è una potenziale chiave, quindi ci sono 2 128 di essi.
  2. Non esiste una struttura interna a questi 128 bit.

Queste due caratteristiche significano che (a parte qualche debolezza nell'algoritmo di crittografia che usa questa chiave), se si vuole rompere una chiave del genere, non si ha altra scelta che provare tutte le chiavi potenziali finché non si è fortunati e si colpisce la destra uno, con un costo medio di 2 127 prove.

Con algoritmi asimmetrici, le cose non vanno così. Per ottenere l '"asimmetria", non puoi semplicemente mettere insieme operazioni e bit chiave in un grande pasticcio aggrovigliato, come fanno gli algoritmi simmetrici; hai bisogno di matematica. Struttura. Quindi la chiave pubblica sarà un oggetto matematico codificato con molte strutture interne:

  1. La chiave pubblica è codificata come bit n , ma non tutte le sequenze di n bit sono una chiave pubblica valida.
  2. Per rompere la chiave, è necessario svelare la struttura interna. Questo può essere fatto in modo molto più efficiente rispetto alle enumerazioni brutali, a livello di Neanderthal e brutali di chiavi private fino a quando la fortuna non avviene.

Nel linguaggio RSA, la chiave pubblica è una coppia di numeri interi: il modulo e l' esponente pubblico . L'esponente pubblico è in genere molto breve. La "lunghezza della chiave" è tradizionalmente la lunghezza (in bit) del modulo, dove la struttura matematica si nasconde: il modulo è un grande numero intero composito, e la struttura nascosta è la conoscenza dei due (o più) fattori primi del modulo . Sappiamo degli algoritmi integer factorization che possono influenzare un modulo n in molto meno di 2 n -1 prove.

La conseguenza è che le chiavi asimmetriche sono "più grandi della loro forza": la struttura matematica ha bisogno di spazio.

Un'altra conseguenza è che la "forza" ottenuta da una chiave asimmetrica dipende dal tipo di chiave: ad esempio, le chiavi ECDSA utilizzano internamente curve ellittiche, che ha molto poco a che fare con la fattorizzazione di interi. Di solito, si stima che si ottenga "forza a 128 bit" con una curva a 256 bit.

Si dà il caso che, per una strana coincidenza (beh, per lo più), gli algoritmi basati sul modulo logaritmo discreto un grande primo (Diffie-Hellman, DSA, ElGamal - non le varianti della curva ellittica) offrono una forza che è approssimativamente simile a quello di RSA per un modulo della stessa dimensione. Da qui deriva un'abitudine tradizionale (e confusa) di parlare di "forza chiave asimmetrica" come se fosse una proprietà generica della "dimensione della chiave" indipendentemente dal tipo e dall'algoritmo di chiave effettivi. Questa è una nozione errata ma diffusa.

Per i dettagli sulle stime di resistenza chiave, vedi questo sito .

Homo neanderthalensis , che, per alcuni autori, dovrebbe essere chiamato Homo sapiens neanderthalensis , era apparentemente in grado di pensare astratto e lasciava tracce di misticismo (ad esempio sepoltura riti) e alcune opere d'arte (non molto, però). Tuttavia, era ancora un "cacciatore-raccoglitore" e quando passi le tue giornate cercando di infilare una lancia in un grosso animale in modo da non morire di fame, tendi ad applicare soluzioni pratiche e prive di senso ai problemi quotidiani. Non hai matematici finché non hai agricoltura e città di dimensioni sufficienti per supportare persone che non contribuiscono direttamente alla cena di oggi.

    
risposta data 03.02.2015 - 18:33
fonte
8

Una chiave simmetrica è effettivamente considerata sicura per il futuro prevedibile a 128 bit. Mentre RSA richiede chiavi a 2048 bit per la sicurezza a 112 bit, ECC richiede solo 256 bit per la sicurezza a 128 bit.

In tutti i casi, la lunghezza della chiave è assolutamente irrilevante. Ciò che è importante è quale tipo di attacco è possibile. Con una chiave simmetrica, è essenzialmente una stringa casuale di qualunque sia la sua lunghezza; l'attaccante ha vincoli no diversi dalla lunghezza della chiave. Ciò significa che la forza bruta è un problema di ricerca generale, che richiede molto tempo molto anche su 2 ^ 128 possibili chiavi.

Per le chiavi asimmetriche, ci sono due fattori. Per prima cosa, pochissime stringhe di lunghezza appropriata sono chiavi RSA valide. Ciò significa che 2048 bit ti lasciano con molte minori possibilità di controllo rispetto a se fosse una chiave simmetrica di lunghezza simile. Inoltre, saresti un idiota a forza bruta a caso: hai una chiave pubblica e sai quale relazione ha con la chiave privata. Puoi invece utilizzare un algoritmo sofisticato e massimamente efficiente per provare a ottenere la chiave privata (ad esempio puoi provare a prendere in considerazione una chiave RSA). Con la crittografia a curva ellittica, questi hanno un impatto molto minore sulla sicurezza rispetto a RSA, che è il principale vantaggio di ECC - ECC richiede circa il doppio della chiave di un simile algoritmo simmetrico, mentre RSA, DH e altri problemi su campi finiti richiede chiavi molto più lunghe per livelli di sicurezza simili.

    
risposta data 03.02.2015 - 17:08
fonte
7

La differenza è nella natura dei tasti. AES è un cifrario simmetrico dove ogni numero a 256 bit è una chiave valida. Questo ti dà una vasta gamma di numeri tra cui scegliere. DSA , d'altra parte, è un algoritmo di firma basato su crittografia a chiave pubblica , e ci sono alcuni forti vincoli matematici sui valori coinvolti, il che rende più facile indovinare la chiave privata. Ciò significa che è necessaria una chiave molto più lunga per garantire la sicurezza.

    
risposta data 02.06.2014 - 10:13
fonte

Leggi altre domande sui tag