Perché abbiamo delle chiavi così grandi?

7

Nel Capitolo 7 di Crittografia applicata , Bruce Schneier afferma che, a causa delle limitazioni termodinamiche, "gli attacchi a forza bruta contro le chiavi [simmetriche] a 256 bit saranno impossibili finché i computer non saranno costruiti da qualcosa di diverso che importa e occupi qualcosa di diverso dallo spazio. " Guardando a pochi altro 256-bit-key-in-a-anno "> domande , sembra che non sia diventato possibile in qualche modo.

Come per questa risposta , potremmo perdere alcuni bit di entropia in uno scenario del mondo reale, ma penserei che ciò implicherebbe che anche una persona veramente paranoica sarebbe ancora più che adeguatamente protetta da una chiave a 512 bit.

Quindi perché vedo spesso le chiavi in uso che sono lunghe 1024 o anche 2048 bit? È per proteggere contro qualche altro tipo di attacco? O siamo solo paranoici?

    
posta KnightOfNi 13.06.2015 - 16:36
fonte

3 risposte

17

La tua citazione descrive la forza della chiave simmetrica , ma i tuoi esempi di contatore (1024, 2048 bit) usati per la crittografia asimmetrica . Il numero di bit richiesti per la forza è diverso tra i due.

La tua citazione proviene dalla sezione 7.1 di Crittografia applicata; se vai avanti alla sezione 7.2, ad esempio, vedrai le previsioni di Schneier su quali lunghezze saranno necessarie per avere chiavi asimmetriche sicure nel tempo:

Stampatonel1994,lesueprevisionisisonorivelateragionevolmentesolidetrannenellamisuraincuièpiùpiattatraisegmenti(adesempio,gliindividuinonaccettanolelunghezzedellechiaviminori).(Perscopinonstorici,dovresticercareconsiglipiùaggiornati,come NIST come riepilogato da KeyLength.com )

    
risposta data 13.06.2015 - 17:03
fonte
7

Ci sono alcuni motivi per usare chiavi più grandi.

La tua citazione menziona solo gli attacchi brute-force contro le chiavi simmetriche . Se c'è un punto debole nell'algoritmo, allora ci sono attacchi più veloci della forza bruta. Questa è una buona ragione per progettare algoritmi con un margine di sicurezza tale da non rompersi non appena qualcuno trova un po 'di debolezza nell'algoritmo.

Gli algoritmi asimmetrici hanno necessariamente una struttura molto più complessa rispetto agli algoritmi simmetrici. E quella struttura aggiuntiva significa chiavi più grandi per raggiungere lo stesso livello di sicurezza. In alcuni casi è possibile quantificare con precisione le dimensioni di una chiave addizionale. Ad esempio è possibile costruire uno schema di firma usando un hash crittografico come unica primitiva. La dimensione della chiave necessaria per soddisfare la sicurezza di un hash crittografico a 256 bit sottostante può essere calcolata in modo molto preciso.

In altri casi la relazione tra la forza dell'algoritmo asimmetrico e quello simmetrico si basa su stime calcolate dagli attacchi più noti. Non è possibile confrontare direttamente la sicurezza di una determinata dimensione della chiave per RSA con una determinata lunghezza di output di un hash SHA2. Ma puoi calcolare quanta potenza di calcolo ci vorrebbe per rompere dato gli attacchi pubblicati più efficienti.

Inoltre c'è un calcolo quantistico da tenere a mente. La nostra attuale comprensione del calcolo quantistico suggerisce che per le chiavi simmetriche è necessario raddoppiare la dimensione della chiave in modo che rimangano sicure se il calcolo quantistico diventa una realtà. Non so se la cifra a 256 bit dovrebbe essere prima o dopo questo raddoppio.

    
risposta data 13.06.2015 - 18:34
fonte
3

La chiave con una forza di 128 bit o superiore è attualmente considerata impossibile da interrompere. Tuttavia, ciò non significa necessariamente che la chiave stessa sia a 128 bit. La dimensione della chiave è legata alla forza della chiave, ma non deve nemmeno essere lineare con la forza della chiave. Prendiamo ad esempio RSA; hai bisogno di una chiave da 15K bit per essere vicino alla sicurezza a 256 bit. Il modo migliore per vedere come le dimensioni e la forza della chiave si correlano tra loro è dare un'occhiata a keylength.com ( scorri verso il basso fino alla seconda tabella).

Questa è solo la dimensione della chiave correlata alla forza però. Se codifica una chiave RSA privata hai bisogno di almeno due volte la dimensione della chiave, per modulo e chiave privata (a meno che tu non voglia generare di nuovo l'intera coppia di chiavi da zero, allora potresti fare con un 128 a 256 bit di seed per un generatore di numeri casuali e un sacco di tempo CPU). Se si includono i parametri CRT, l'overhead ASN.1 e l'armatura ASCII, la codifica della chiave aumenta rapidamente. Le chiavi segrete sono generalmente codificate come byte non elaborati. Quindi una chiave segreta codificata di 128 bit può effettivamente richiedere solo 16 byte.

Si noti che, a meno che la dimensione della chiave non sia chiaramente sufficiente, altri attacchi potrebbero essere molto più fattibili. Pensa agli errori del protocollo, agli attacchi ai canali laterali, agli errori di generazione chiave - la lista continua. Penso che circa il 10% delle domande poste su StackOverflow mostri un'implementazione che potrebbe fare affidamento su pratiche crittografiche valide. Scegliere la giusta dimensione della chiave è probabilmente la parte più semplice di qualsiasi sistema sicuro.

    
risposta data 13.06.2015 - 17:35
fonte

Leggi altre domande sui tag