Domanda:
Perché non utilizzare chiavi di cifratura più grandi?
Koning
2012-12-13 17:48:53 UTC
view on stackexchange narkive permalink

RSA Security utilizza comunemente chiavi di dimensioni 1024 bit, 2048 bit o anche 3072 bit. E la maggior parte degli algoritmi simmetrici solo tra 112 bit e 256 bit. Mi rendo conto che le chiavi attuali sono abbastanza sicure per l'hardware di oggi, ma man mano che i computer diventano più veloci, non dovremmo considerare una chiave di dimensioni folle come un milione bit o giù di lì per proteggerci da super computer che non sono stati ancora inventati?

Quindi, in altre parole, quali sono le conseguenze della scelta di una chiave di cifratura troppo grande e perché tutti ne limitano le dimensioni?

C'è la pagina 32 di questo [documento] (http://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report/at_download/fullReport "Algorithms, Key Sizes and Parameters Report") da [enisa] (http://www.enisa.europa.eu "Agenzia dell'Unione europea per la sicurezza delle reti e dell'informazione") sul valore delle chiavi più lunghe nel caso di RSA.
Otto risposte:
lynks
2012-12-13 21:53:26 UTC
view on stackexchange narkive permalink

Ho tirato fuori la mia copia di Crittografia applicata per rispondere a questa domanda riguardante la crittografia simmetrica, 256 è abbondante e probabilmente lo sarà per molto tempo. Schneier spiega;

Lunghezze di chiave più lunghe sono migliori, ma solo fino a un certo punto. AES avrà lunghezze di chiave di 128 bit, 192 bit e 256 bit. Questo è molto più lungo del necessario per il prossimo futuro. In effetti, non possiamo nemmeno immaginare un mondo in cui siano possibili ricerche di forza bruta a 256 bit. Richiede alcune scoperte fondamentali in fisica e la nostra comprensione dell'universo.

Una delle conseguenze della seconda legge della termodinamica è che una certa quantità di energia è necessaria per rappresentare le informazioni. Per registrare un singolo bit modificando lo stato di un sistema è necessaria una quantità di energia non inferiore a kT , dove T è la temperatura assoluta del sistema e k è la costante di Boltzman. (Rimani con me; la lezione di fisica è quasi finita.)

Dato che k = 1,38 × 10 −16 erg / K, e che il la temperatura ambiente dell'universo è di 3,2 Kelvin, un computer ideale che funziona a 3,2 K consumerebbe 4,4 × 10 −16 erg ogni volta che si imposta o si cancella un po '. Far funzionare un computer più freddo della radiazione cosmica di fondo richiederebbe energia extra per far funzionare una pompa di calore.

Ora, la produzione annuale di energia del nostro sole è di circa 1,21 × 10 41 erg. Questo è sufficiente per alimentare circa 2,7 × 10 56 modifiche a bit singolo sul nostro computer ideale; abbastanza cambiamenti di stato per mettere un contatore a 187 bit attraverso tutti i suoi valori. Se costruissimo una sfera di Dyson attorno al sole e catturassimo tutta la sua energia per 32 anni, senza alcuna perdita, potremmo alimentare un computer per contare fino a 2 192 . Ovviamente, non avrebbe l'energia residua per eseguire calcoli utili con questo contatore.

Ma questa è solo una stella, e anche misera. Una tipica supernova rilascia qualcosa come 10 51 erg. (Circa cento volte più energia verrebbe rilasciata sotto forma di neutrini, ma lasciateli andare per ora.) Se tutta questa energia potesse essere incanalata in una singola orgia di calcolo, un contatore da 219 bit potrebbe essere ciclato attraverso tutto dei suoi stati.

Questi numeri non hanno nulla a che fare con la tecnologia dei dispositivi; sono i massimi consentiti dalla termodinamica. E implicano fortemente che attacchi di forza bruta contro chiavi a 256 bit non saranno fattibili finché i computer non saranno costruiti da qualcosa di diverso dalla materia e occuperanno qualcosa di diverso dallo spazio.

L'audacia è una mia aggiunta.

Nota: si noti che questo esempio presuppone che esista un algoritmo di crittografia "perfetto". Se riesci a sfruttare i punti deboli dell'algoritmo, lo spazio della chiave potrebbe ridursi e ti ritroveresti con effettivamente meno bit della tua chiave.

Si presume anche che la generazione della chiave sia perfetta, producendo 1 bit di entropia per bit di chiave. Questo è spesso difficile da ottenere in un ambiente computazionale. Un meccanismo di generazione imperfetto potrebbe produrre 170 bit di entropia per una chiave a 256 bit. In questo caso, se il meccanismo di generazione della chiave è noto, la dimensione dello spazio di forza bruta è ridotta a 170 bit.

Supponendo che i computer quantistici siano fattibili, tuttavia, qualsiasi chiave RSA verrà rotta utilizzando l'algoritmo di Shor . (Vedi https://security.stackexchange.com/a/37638/18064)

E il calcolo quantistico?
Non è solo il limite di energia per il calcolo irreversibile? Se si calcola con gate reversibili, è teoricamente possibile utilizzare molta meno energia.
@tzs la fisica coinvolta rappresenta il requisito minimo di energia necessaria solo per rappresentare le informazioni nel senso più efficiente che la meccanica quantistica consentirà, ben oltre la tecnologia teorica, senza nemmeno contare l'energia per il calcolo, i gate e tutto il resto.
È probabile che tu non abbia bisogno di scorrere tutte le possibilità.
@opensourcechris è corretto, dovresti percorrerne esattamente la metà in media, quindi è necessario controllare 2 ^ 255 chiavi, che sono ancora circa 10 ^ 12 volte più dell'energia rilasciata in una supernova.
@tylerl Il fabbisogno energetico minimo è per operazione irreversibile. Poiché i computer quantistici fanno di più con una singola operazione, è necessario raddoppiare il numero di bit. Poi c'è la questione dell'informatica reversibile. Se costruisci un computer in cui ogni operazione è reversibile, puoi andare oltre questi limiti. Ma non è del tutto chiaro se è possibile costruire computer reversibili e se possono essere applicati a problemi di crittografia come questo.
Ok a tutti, basta votare su questo. Un voto netto di +256 è perfetto!
@MichaelKjörling - Non sono disposto a downvote per qualcosa come tornare a 256, quindi immagino che sia una causa persa ... a meno che ... Ti dica una cosa: aspetterò e se mai lo noterò a 257, io lancerò un voto negativo a modo suo - spero che sia il benvenuto :-P
@tylerl: tzs e CodesInChaos sottolineano il fatto che l'analisi di Schneier sembra essere basata sul principio di Landauer che afferma, in effetti, che esiste un limite minimo alla quantità di energia richiesta per cancellare un bit di informazione.In effetti, riguarda solo la manipolazione irreversibile dei bit.Il "limite di Landauer" è stato al centro di una considerevole ricerca. Mentre Schneier è brillante, nessuno ha una sfera di cristallo.Risultati recenti di Miquel López-Suárez et al.suggeriscono che in effetti non esiste un limite inferiore all'energia richiesta per il calcolo: http://www.nature.com/articles/ncomms12068
@tylerl Il risultato di López-Suárez (sopra) ha motivato la ricerca sul "calcolo a potenza zero" e implica che gli argomenti basati sulla fisica per la sicurezza assoluta delle chiavi a 128 bit (cioè chiavi a 256 bit con riduzione quantica) potrebbero dover essererivisitato.Vedi: http://iopscience.iop.org/article/10.1088/0957-4484/26/22/222001/meta. Nessuno sa se il calcolo a potenza zero si realizzerà, ma l'argomento della termodinamica non sembra più azzeccato.
Anche AES-256 potrebbe non essere sicuro a lungo.Consulta questi due articoli: [TEMPEST Attacks Against AES] (https://www.fox-it.com/en/insights/blogs/blog/tempest-attacks-aes/) e [Experts Recover AES256 Encryption Key From a PC's ElectromagneticEmissioni] (https://www.bleepingcomputer.com/news/security/experts-recover-aes256-encryption-key-from-a-pcs-electromagnetic-emissions/).
Per inciso, questa mi sembra un'eccellente prova dell'esistenza di un Creatore, poiché anche gli organismi più "semplici" da cui l'abiogenesi propone che ci siamo tutti evoluti comprendono molto più di 256 bit di informazione.
Perché avresti bisogno di una pompa per cumuli durante il calcolo?Si potrebbe costruire una stanza, scaricarla a 0K (qui hai bisogno di HP) e quindi isolarla completamente prima dell'elaborazione (ora non hai più bisogno di HP)?Supponendo che il computer usi perfettamente l'energia che gli dai (quindi non aumenta la temperatura della stanza) significherebbe kT = 0 e quel fisico scomparirà?
Fredefl
2012-12-13 18:00:43 UTC
view on stackexchange narkive permalink

Il motivo per cui le chiavi RSA sono così piccole è che:

Con ogni raddoppio della lunghezza della chiave RSA, la decrittografia è 6-7 volte più lenta.

Quindi questo è solo un altro dei compromessi tra sicurezza e comodità. Ecco un grafico: RSA Decryption time by key length

Fonte: http://www.javamex.com/tutorials/cryptography/rsa_key_length. shtml

+1. L'uso di chiavi di lunghezze elevate per la crittografia asimmetrica "offline" (come PGP) viene spesso applicato, ma per gli scambi di chiavi "online", una chiave a 2048 bit per una sicurezza di 30 anni è sufficiente per la maggior parte delle applicazioni e non infastidisce l'utente con un'attesa di 2 minuti durante l'handshake SSL.
Tieni presente che i cifrari asimmetrici vengono solitamente utilizzati solo per proteggere le chiavi di sessione simmetriche, quindi questo aumento del tempo di decrittografia della cifratura asimmetrica non è * così * drammatico nella pratica.
Ma se tieni presente che i browser stanno già ricorrendo a trucchi sporchi come il prefetch DNS e la compilazione just-in-time di javascript, ti renderai conto che il costo per passare da chiavi a 4096 bit a chiavi a 65536 bit è importante. Inoltre, poiché gli attacchi più noti su RSA a 2048 bit sono più laboriosi della forzatura bruta della chiave AES-256, non c'è alcun vantaggio crittografico nel farlo.
@SecurityMatt Qualche fonte per tale affermazione? Le affermazioni che ho sentito sono che rompere l'RSA a 2048 bit è difficile quanto rompere un algoritmo simmetrico a 112 bit, non più difficile che rompere la crittografia a 256 bit.
@SecurityMatt * ancora ... *
Avete grafici simili per EEC e AES?
user11869
2012-12-13 18:30:42 UTC
view on stackexchange narkive permalink

Per prima cosa AES è costruito per tre dimensioni di chiave 128, 192 o 256 bit .

Attualmente, la forzatura bruta di 128 bit non è neanche lontanamente fattibile. Ipoteticamente, se una chiave AES avesse 129 bit, sarebbe necessario il doppio del tempo per forzare una chiave a 129 bit rispetto a una chiave a 128 bit. Ciò significa che chiavi più grandi di 192 bit e 256 bit impiegherebbero molto più tempo per attaccare. Ci vorrebbe così tanto tempo per forzare una di queste chiavi che il sole smetterà di bruciare prima che la chiave fosse realizzata.

2 ^ 256 = 115792089237316195423570985008687907853269984665640564039457584007913129639936

Questo è un numero enorme. Ecco quante chiavi ci sono. Supponendo che la chiave sia casuale, se la dividi per 2 allora hai quante chiavi ci vorranno in media per la forza bruta AES-256

In un certo senso abbiamo le chiavi di cifratura veramente grandi che sei parlando di. Il punto centrale di una chiave simmetrica è renderla irrealizzabile con la forza bruta. In futuro, se l'attacco a una chiave a 256 bit diventa possibile, le dimensioni della chiave aumenteranno sicuramente, ma è abbastanza lungo la strada.

Il motivo per cui le chiavi RSA sono molto più grandi delle chiavi AES è perché sono due tipi di crittografia completamente diversi. Ciò significa che una persona non attaccherebbe una chiave RSA nello stesso modo in cui attaccherebbe una chiave AES.

Attaccare le chiavi simmetriche è facile.

  1. Inizia con una stringa di bit 000...
  2. Decifra il testo cifrato con quella stringa di bit.
  3. Se riesci a leggerlo , ci sei riuscito.
  4. Se non riesci a leggerlo, incrementa la stringa di bit

Attaccare una chiave RSA è diverso ... perché la crittografia / decrittografia RSA funziona con grandi semi- numeri primi ... il processo è mathy . Con RSA, non devi provare ogni possibile stringa di bit. Provi molte meno stringhe di bit di 2 ^ 1024 o 2 ^ 2048 ... ma non è ancora possibile eseguire la forza brute. Questo è il motivo per cui le chiavi RSA e AES differiscono per dimensioni. [ 1]

Per riassumere tutto e rispondere alla tua domanda in 1 frase. Non abbiamo bisogno di chiavi simmetriche ridicolmente grandi perché abbiamo già chiavi simmetriche ridicolmente grandi. La crittografia a 256 bit suona debole rispetto a qualcosa come una chiave RSA a 2048 bit, ma gli algoritmi sono diversi e non possono essere paragonati "bit a bit" in questo modo. In futuro, se saranno necessarie chiavi più lunghe, saranno sviluppati nuovi algoritmi per gestire chiavi più grandi. E se mai volessimo diventare più grandi sull'hardware attuale, è semplicemente un compromesso temporale. Una chiave più grande significa un tempo di decrittazione più lungo significa una comunicazione più lenta. Questo è particolarmente importante per un cifrario poiché il tuo browser Internet stabilirà e quindi utilizzerà una chiave simmetrica per inviare le informazioni.

@Lightness: nel caso medio, non nel caso peggiore. E il caso migliore è così incredibilmente improbabile, che il sole smetterebbe di bruciare prima che tu lo attraversi :)
@MarkHubbart: Tranne nei casi in cui non l'ha fatto!
AJ Henderson
2012-12-13 20:09:33 UTC
view on stackexchange narkive permalink

Tempo di elaborazione, puro e semplice. Tutto nella sicurezza è un atto di bilanciamento tra la necessità di sicurezza (tenere fuori le persone cattive) e l'usabilità (far entrare le persone buone). La crittografia è un'operazione costosa di elaborazione anche con hardware dedicato per eseguire i calcoli.

Semplicemente non vale la pena andare oltre un certo livello di sicurezza per la maggior parte degli scopi perché i compromessi diventano esponenzialmente più difficili da usare pur offrendo quasi nessun vantaggio tangibile (poiché la differenza tra un miliardo di anni e cento miliardi anni non è così significativo in termini pratici).

Inoltre, come per RSA vs AES, questa è la natura della crittografia simmetrica rispetto a quella asimmetrica. In parole povere, con la crittografia simmetrica (dove c'è una chiave condivisa), non c'è nulla da cui iniziare a indovinare, quindi è molto difficile. Per la crittografia asimmetrica come RSA, stai divulgando un'informazione (la chiave pubblica) correlata alla chiave di decrittografia (la chiave privata). Mentre la relazione è "molto difficile" da calcolare, è molto più debole che non avere informazioni su cui lavorare. Per questo motivo, sono necessarie chiavi di dimensioni maggiori per rendere più difficile il problema di ottenere una chiave privata da una chiave pubblica mentre si cerca di limitare quanto più difficili siano i problemi di matematica per la crittografia e la decrittografia.

a CVn
2012-12-13 22:20:41 UTC
view on stackexchange narkive permalink

In un certo senso, esistono già algoritmi che utilizzano chiavi "follemente grandi". Si chiama one-time pad . Nessuno li usa davvero nella pratica, tuttavia, poiché richiedono una chiave della lunghezza del messaggio che desideri crittografare e il materiale della chiave non può mai essere riutilizzato (a meno che tu non voglia che il testo cifrato diventi banalmente frangibile). Dato che lo scopo della crittografia è convertire un grande segreto (il testo in chiaro) in un piccolo segreto (la chiave), le OTP sono utili solo in scenari molto specifici e altamente specializzati. Potresti anche trasmettere il testo in chiaro in modo sicuro, perché avrai bisogno di un canale di trasmissione altrettanto sicuro per il materiale della chiave.

In tutta franchezza, le OTP hanno un caso d'uso specifico. Cioè, quando hai bisogno di sicurezza dimostrabile in un ambiente in cui hai accesso a un canale di comunicazione sicuro a un certo punto ma devi trasmettere un messaggio in modo sicuro in un secondo momento.

L'OTP è dimostrato sicuro perché utilizzato correttamente e con materiale chiave generato correttamente, qualsiasi testo in chiaro decrittografato è altrettanto probabile, e nulla su una parte del materiale chiave (si suppone che) fornisca informazioni su altre parti del materiale chiave o su come decrittografare altre parti del messaggio. È facile in teoria, ma terribilmente difficile da realizzare in pratica. Stai cercando segreti militari brevi, di alto livello o forse diplomatici, al massimo.

Per la maggior parte delle persone, simmetrici da 128 a 256 bit o da 2048 a 4096 bit (assumendo qualcosa come RSA) le chiavi asimmetriche sono sufficienti, per ragioni già descritte da Rell3oT, Alexander Shcheblikin, lynks e altri. Chiunque voglia attaccare una chiave equivalente a 256 bit attaccherà il sistema crittografico, non la crittografia, comunque. ( Collegamento XKCD obbligatorio.) Gli attacchi PRNG hanno già infranto sistemi crittografici altrimenti correttamente implementati e teoricamente sicuri, e sarebbe uno sciocco pensare che sia successo per l'ultima volta.

Cyrus
2012-12-13 20:30:01 UTC
view on stackexchange narkive permalink

Aggiungendo più prove alle risposte "perché rallenta le cose inutilmente", sembra che il tempo di esecuzione di AES non cresca alla stessa velocità di RSA quando la lunghezza della chiave aumenta (e RC6 cresce ancora più lentamente), ma è comunque Il tempo di esecuzione aumenta del 16% fino a raddoppiare la lunghezza della chiave, secondo http://www.ibimapublishing.com/journals/CIBIMA/volume8/v8n8.html.

AES-128 è di 10 round, AES-192 è di 12 round e AES-256 è di 14 round. Poiché la pianificazione chiave di AES è banale, il tempo di esecuzione scala quasi esattamente in modo lineare con il numero di round e la quantità di dati da elaborare. Quindi, passare da AES-128 a AES-256 dovrebbe ridurre il throughput (in termini di quantità di dati per periodo di tempo) di quasi esattamente il 40%.
Sull'algoritmo RSA, l'algoritmo funziona allo stesso modo indipendentemente dalla dimensione della chiave.Questo è un vantaggio comune degli algoritmi che lavorano in gruppo: basta ingrandire il campo.Per la crittografia simmetrica, la maggior parte degli algoritmi contiene passaggi che non possono essere scalati per diverse dimensioni della chiave, senza alterare in modo significativo l'algoritmo.Ad esempio, la dimensione minima della chiave AES è di 128 bit e quella massima di 256 bit.L'algoritmo AES migliorato che accettava chiavi a 512 bit potrebbe essere sostanzialmente diverso da AES (o Rijndael).
guidot
2012-12-13 21:38:01 UTC
view on stackexchange narkive permalink

Il tempo di elaborazione è già stato menzionato. Anche sotto questo aspetto il tempo necessario per generare una chiave RSA dovrebbe essere menzionato separatamente, poiché è MOLTO più costoso per chiavi più lunghe, poiché è necessario trovare numeri primi di circa la metà della dimensione della chiave RSA desiderata.

Un altro argomento è lo spazio, i. e. la quantità di dati generati. I cifrari asimmetrici e simmetrici operano su blocchi. Anche una firma su un byte richiede il numero di bit della chiave RSA, i. e. 256 byte per una chiave a 2048 bit. Stessa situazione con le dimensioni dei blocchi degli algoritmi simmetrici, che crescono anche con la lunghezza della chiave. Anche se questo non sembra un argomento a prima vista, alcuni dispositivi severamente limitati come le smart card dovrebbero gestirlo (ancora il contenitore più sicuro per la chiave privata) e ci sono molte applicazioni che devono memorizzare molte firme, certificati, crittogrammi ecc. In realtà questo è uno dei motivi per la crittografia a curva ellittica, poiché sta mettendo più sicurezza in meno bit.

* "Dimensioni dei blocchi degli algoritmi simmetrici, che crescono anche con la lunghezza della chiave" * Non è necessario. DES: chiave a 64 bit (meno otto bit ignorati), blocco a 64 bit. IDEA: chiave a 128 bit, blocco a 64 bit. AES: 128, 192, chiave a 256 bit, blocco fisso a 128 bit. Blowfish: chiave fino a 448 bit, blocco fisso a 64 bit. RC5: chiave fino a 2040 bit * simmetrica *, blocco 32/64/128 bit (selezionabile, blocco 64 bit consigliato). E così via.
@MichaelKjörling: In realtà non riesco a riconoscere il vantaggio di un argomento di dimensione del blocco se l'intera famiglia di algoritmi viene modificata. All'interno di una famiglia di algoritmi, dimensioni delle chiavi più grandi significano dimensioni dei blocchi più grandi, ma anche questo non è un aumento rigoroso. La domanda originale riguardava le dimensioni delle chiavi e non suggeriva di cambiare anche gli algoritmi, quindi qual è il tuo punto?
OK, bene, anche all'interno dello stesso identico algoritmo (e fuori dagli esempi già citati), abbiamo ancora AES che può utilizzare diverse dimensioni di chiavi ma sempre la stessa dimensione di blocco. Oppure Blowfish, che ha dimensioni della chiave variabili e dimensioni del blocco fisse.
brandtrock
2012-12-17 20:49:00 UTC
view on stackexchange narkive permalink

L'OP ha chiesto: " Quindi, in altre parole, quali sono le conseguenze della scelta di una chiave di cifratura troppo grande ...? " Una chiave a 256 bit è molto forte, come dimostrato dal commenti qui; tuttavia, una chiave molto sicura (che è una buona cosa) farà semplicemente sì che una persona malintenzionata trovi un punto debole in altre parti del sistema.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...