C'è qualche ragione per cui qualcuno non userebbe una chiave più lunga?

17

Si dice che le dimensioni delle chiavi più grandi siano più difficili da bruteforce; c'è qualche ragione per cui qualcuno dovrebbe decidere di usare una chiave più piccola?

C'è qualche effetto negativo nell'usare una dimensione della chiave più grande, come le prestazioni, o scarsa compatibilità con le versioni precedenti del software di crittografia / decrittografia?

    
posta IQAndreas 13.06.2014 - 04:27
fonte

4 risposte

17

Ogni bit di una chiave aumenta la difficoltà di un attacco di forza bruta in modo esponenziale, ma c'è un compromesso. L'aggiunta di più bit alla chiave influirà negativamente sulla velocità di crittografia / decrittografia. La quantità effettiva di questa perdita di velocità dipende dall'algoritmo, ad esempio in RSA (in teoria) per una chiave n-bit , lo sforzo computazionale per la crittografia è proporzionale a n^2 , mentre lo sforzo per la decifratura è proporzionale a n^3 , quindi raddoppiando la chiave in RSA significa che la crittografia sarà quattro volte più lenta e la decrittografia sarà (quasi) otto volte più lenta.

Un'altra cosa che penso merita di essere menzionata e ringrazia per Perseids per averlo indicato. C'è un limite in cui più tempo necessario per rompere l'algoritmo diventa privo di significato, perché per scopi pratici è già "per sempre". Come un'analogia del "mondo reale", immagina di preparare razioni per un breve viaggio nel deserto e stai decidendo quanta acqua vuoi portare con te. Per una piccola quantità di acqua "più è meglio" è un approccio ragionevole, perché potrebbe essere necessario rimanere più a lungo del previsto o versare dell'acqua. Ma quando porti già con te l'intera Amazzonia, aumentare quella quantità di acqua sul pianeta non aiuta. Queste sono le dimensioni di cui stiamo parlando quando qualcuno cerca di convincerti a usare RSA a 8192 bit.

RSA Decryption time by key length

(Diagramma da Javamex )

Per gli algoritmi di curva ellittica, assumiamo che non sia possibile trovare il logaritmo discreto di un elemento di curva ellittica casuale rispetto a un punto base noto pubblicamente. Il vantaggio principale di ECC è in effetti la dimensione della chiave più piccola, ad esempio una chiave pubblica ECC a 256 bit dovrebbe fornire una sicurezza comparabile a una chiave pubblica RSA a 3072 bit. Sulla base del fatto che i principali algoritmi utilizzati per risolvere ECDLP (ad es. Passo gigante passo bambino) necessitano di n ^ (1/2) passi, l'aumento / diminuzione in n-bit influirà sulle velocità di de / encrption.

Per quanto riguarda la tua domanda a parte, non mi preoccuperei troppo ma, considerando che stai parlando di lunghezza, è preferibile "più a lungo".

    
risposta data 13.06.2014 - 04:53
fonte
8

Ci sono diversi punti da prendere in considerazione:

  • "Dimensione chiave" non è necessariamente flessibile. In algoritmi di crittografia simmetrica (ad esempio AES), una chiave è "un mucchio di bit" che deve avere una lunghezza specifica. AES non è un algoritmo ma una famiglia di tre, che accetta chiavi rispettivamente di 128, 192 e 256 bit. Non ci sono altre dimensioni della chiave adattabili.

  • Le implementazioni possono avere limitazioni. Se consideriamo RSA, le cui chiavi sono grandi numeri interi (con qualche struttura matematica), l'algoritmo è di per sé abbastanza flessibile, ma le implementazioni hanno vincoli: alcuni non supporteranno chiavi più lunghe di 2048 bit; alcuni richiedono che la dimensione della chiave sia "rotonda" (ad esempio, più di 32). Lavoro con le smart card che possono eseguire RSA a 1024 bit e 2048 bit, ma senza altre dimensioni della chiave.

  • I costi aumentano con le dimensioni della chiave. I costi della CPU sono stati citati in altre risposte; ma anche le dimensioni contano: una firma RSA a 4096 bit è due volte più lunga di una firma RSA a 2048 bit. Stiamo parlando della larghezza di banda della rete qui; questo può essere più importante della CPU.

  • Esistono, o almeno una volta, limitazioni legali per le lunghezze delle chiavi crittografiche (specialmente per l'esportazione), a seconda del paese. Ciò ha portato a implementazioni ampiamente implementate che non possono elaborare chiavi oltre una certa dimensione. Ad esempio, alcuni software possono utilizzare AES-128 ma non AES-256. Anche quando i regolamenti vengono rimossi, il software distribuito non viene aggiornato durante la notte.

  • Anche se alle persone piace avere chiavi più grandi, a un certo punto diventa privo di significato. Vogliamo le chiavi "abbastanza forti" per sconfiggere qualsiasi attaccante che non disponga della tecnologia extraterrestre a sua disposizione. Per la crittografia simmetrica, questo è abbastanza veloce: le chiavi simmetriche sono un mucchio di bit n senza una struttura specifica, quindi l'interruzione di tale chiave ha un costo medio 2 n-1 , quindi le chiavi a 128 bit sono più che sufficienti per essere al sicuro. Per la crittografia asimmetrica, gli attacchi sono non "forza bruta", ma piuttosto lavorano sulla struttura matematica della chiave, che dipende dall'algoritmo; per RSA, 2048 bit sono (molto) più che sufficienti per sconfiggere i tuoi avversari (sì, anche la NSA / FSB / Illuminati o chiunque sia la tua nemesi preferita).

    Crescere le chiavi oltre questi valori non ha quindi alcun impatto sulla sicurezza (nessun impatto positivo , almeno - chiavi più grandi possono comportare una diminuzione delle prestazioni, quindi incentivo per gli utenti a non usarle, il che a sua volta diminuisce sicurezza). Le persone che insistono su RSA a 4096 bit o AES-256 sono fuorviate, o lo fanno per altri motivi (l'altro Orso direbbe che le chiavi più grandi sono un display di corteggiamento per rituali di accoppiamento, nella stessa categoria delle auto sportive rosse).

In pratica :

  • Per la crittografia simmetrica, ti consigliamo AES-128. AES-256 è leggermente meno supportato e comporta un costo CPU del + 40% (il costo extra non è molto importante in genere, ma può accadere).

  • Per la crittografia asimmetrica o le firme con RSA, vai alle chiavi da 2048 bit. Le chiavi a 1024 bit non sono ancora spezzate, ma sono teoricamente alla portata della tecnologia umana (che implica una macchina per scopi speciali che non è stata ancora costruita perché costerebbe molto di più di quanto non facciano le migliori università a spendere). Esistono implementazioni implementate che non possono elaborare chiavi più grandi di 2048 bit, e alcune non possono elaborare neanche le dimensioni della chiave tra 1024 e 2048. Le chiavi da 2048 bit ottimizzano quindi l'interoperabilità e vanno bene per la sicurezza.

  • Con ECDSA o altri algoritmi con curve ellittiche, la struttura matematica è diversa, quindi anche le cifre sono diverse. Una chiave EC a 256 bit è fine come AES-128 e, in effetti, la curva NIST P-256 è la la curva supportata ovunque viene gestito ECDSA affatto.

risposta data 13.06.2014 - 13:49
fonte
3

A recent Citrix Netscaler PR release points out that that the doubling of the key size from 1024-bit to 2048-bit increases CPU computational requirements from 4x to 8x.

(da un Articolo di Network Computing )

Le chiavi più grandi / più lunghe (credo siano intercambiabili) richiedono più lavoro computazionale - cicli del processore - durante l'uso. Poiché le chiavi vengono spesso utilizzate in architetture asimmetriche (ad esempio un server Web per molti client Web) l'effetto delle chiavi più grandi ha un impatto cumulativo maggiore sul server, il che a sua volta riduce le prestazioni e / o costringe il proprietario del server a lanciare più risorse e denaro per il problema (server farm più grande, scaricatori SSL, ecc. ecc.)

Pertanto, le dimensioni delle chiavi tendono ad essere abbastanza grandi da fornire una protezione efficace, ma non più grande.

    
risposta data 13.06.2014 - 04:49
fonte
1

La quantità di risorse CPU disponibili nei tipici computer degli utenti finali è diminuita di in basso negli ultimi cinque anni, non in aumento, a causa della prevalenza di dispositivi mobili (smartphone e tablet). C'è contesa se la tendenza sarà più o meno risorse per l'utente media , in quanto i prodotti meno costosi (cioè i lettori di E-ink) entrano il mercato, ma è generalmente accettato il software ad alta intensità di calcolo (come Lastpass ) dovrebbe almeno supportare i dispositivi con CPU inferiori.

Una conseguenza di ciò è la lunghezza della chiave e le relative operazioni computazionalmente costose. Come un solo esempio, Lastpass consiglia meno Iterazioni password (PBKDF2) per gli utenti che utilizzano dispositivi mobili. Non riesco a trovare un collegamento Web, ma quando si modifica la password Lastpass nell'interfaccia in, questo è menzionato.

    
risposta data 13.06.2014 - 09:42
fonte

Leggi altre domande sui tag