it-swarm.dev

Cosa significano la dimensione della chiave e la dimensione del blocco nella crittografia?

Qualcuno può semplicemente spiegare i significati e la differenza tra chiave simmetrica e dimensione del blocco.

Perché le dimensioni di 64 blocchi non sono più sicure e aumentano a 128 (AES, ..., Serpent)? E le dimensioni delle chiavi?

18
rezx

Un algoritmo a chiave simmetrica è uno che utilizza la stessa chiave sia per la crittografia che per la decrittografia. Esempi di algoritmi chiave simmetrici sono AES, 3DES, Blowfish.

Un algoritmo di chiave asimmetrica , invece, utilizza 2 chiavi, una per la crittografia e una per la decrittazione. Un algoritmo a chiave asimmetrica è progettato in modo tale da rendere impossibile ricavare la chiave privata dalla chiave pubblica. Un algoritmo chiave asimmetrica comune è RSA.

Il termine dimensione del blocco si riferisce alla cifra del blocco. Fondamentalmente, ci sono 2 tipi di cifre.

Stream cifratura - L'algoritmo crittografa/decodifica il messaggio 1 bit alla volta.

Crittografia a blocchi - L'algoritmo crittografa/decodifica il blocco di messaggi per blocco, un blocco che fa riferimento a un gruppo di bit. I cifrari a blocchi comuni includono AES - che funziona su blocchi a 128 bit e Blowfish - che funziona su blocchi a 64 bit.

Tutte queste informazioni sono disponibili nelle rispettive voci di Wikipedia:

http://en.wikipedia.org/wiki/Symmetric-key_algorithm

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/Block_cipher

http://en.wikipedia.org/wiki/Stream_cipher

15
user10211

Fai 2 domande diverse ma correlate.

Perché una dimensione del blocco a 64 bit non è più sicura e perché l'ha aumentata a 128 bit?

In block cipher , i dati di testo normale di una dimensione fissa (la dimensione del blocco) sono crittografati in un testo cifrato della stessa dimensione. Tuttavia, il numero totale di possibili blocchi di testo cifrato è solo 2misura del bloccoe quando usi solo la radice quadrata di quel numero di blocchi hai una probabilità del 50% di avere un blocco duplicato, che perde informazioni. La radice quadrata di 264 è 232 e 232 blocchi di 23 byte = 235 Byte = 32 GiB. Quindi su un'unità da 1 TiB con crittografia dell'intero disco ci si aspetterebbe di trovare circa 1.000 blocchi di testo cifrato duplicati. (Dalla formula qui : (240/ 23)2/ 264) Ad essere onesti, un blocco di testo cifrato duplicato non è un disastro, poiché le tecniche sono utilizzate per garantire che lo stesso testo in chiaro non crittografi sempre allo stesso testo cifrato ogni volta, quindi è anche vero il contrario: i cifrati duplicati non rappresentano necessariamente dei duplicati. Il punto più grande è che la potenza di elaborazione e lo spazio di archiviazione hanno superato i blocchi di testo cifrato a 64 bit.

Quindi i cifrari a blocchi attuali usano blocchi a 128 bit che rendono improbabile la visualizzazione di un duplicato in Exbibytes (milioni di Tebibyte) di dati, che dovrebbe bastare per un po '. La maggior parte delle altre forme di attacco è resa notevolmente più difficile da questo aumento delle dimensioni del blocco.

Qual è il significato della dimensione della chiave e perché è importante la dimensione?

La dimensione della chiave è la dimensione del "segreto" utilizzato per crittografare i dati. In una cifra perfetta, dovresti testare ogni chiave possibile per garantire di poter decrittografare alcuni dati crittografati e in media dovresti provare metà delle possibili chiavi per avere successo. Quando DES è stato pubblicato, 56 bit erano uno spazio chiave abbastanza grande da essere "abbastanza duro" che la forza bruta era irragionevole nell'informatica civile. Poi, nel 1998, la Electronic Frontier Foundation ha costruito na macchina per decifrare la forza bruta DES per $ 250.000. Ora con l'esplosione della potenza di calcolo civile, in particolare sfruttando l'enorme potenza del calcolo parallelo nelle GPU, anche 128 bit sono considerati abbastanza sicuri solo per il livello più basso di informazioni classificate, SEGRETO.

Inoltre, nessun codice è perfetto e molti attacchi possono recuperare parte della chiave, quindi chiavi più lunghe forniscono ulteriore sicurezza in quanto anche se parte della chiave viene recuperata, c'è ancora un enorme spazio chiave che resta da attaccare con la forza bruta.

12
Major Major

AES, 3DES, Blowfish ... sono cifra cifrata . Una cifra di blocco è una funzione che accetta come input un dato blocco di una data dimensione (un numero fisso di bit) e un chiave (che è anche un sequenza di bit, non necessariamente della stessa dimensione del blocco); e l'uscita è un altro blocco della stessa dimensione del blocco di ingresso. Inoltre, per una chiave fissa, la funzione deve essere una permutazione: due blocchi di input distinti producono due blocchi di output distinti.

Per esempio. Triple-DES (chiamato anche 3DES) usa blocchi a 64 bit e chiavi a 192 bit (succede che l'algoritmo Triple-DES ignora totalmente 24 dei 192 bit della chiave, quindi spesso diciamo che Triple-DES utilizza una chiave a 168 bit; tuttavia, l'implementazione conforme allo standard prevede una chiave a 192 bit, ovvero 24 byte).

Crittografare e decrittografare i blocchi va bene, ma di solito vogliamo crittografare "messaggi", ovvero lunghi flussi di byte di dati, con una lunghezza che non è necessariamente un multiplo della dimensione del blocco e che può essere piuttosto elevata (ad esempio è possibile crittografare diversi gigabyte valore dei dati). Per trasformare un codice a blocchi in un motore in grado di crittografare e decrittografare i messaggi, è necessario utilizzare un modalità operativa . Creare buone modalità è un'arte; ci sono molti difetti sottili che possono paralizzare la sicurezza se la modalità non è stata ben progettata. La dimensione del blocco sembra essere un fattore importante: nella maggior parte dei modi, la sicurezza diminuisce, a volte in modo piuttosto netto, quando la lunghezza del messaggio di input supera una soglia che dipende dalla dimensione del blocco; vale a dire, se il codice di blocco utilizza n - blocchi di bit e si crittografa più di 2n/2 blocchi di dati, quindi sei nei guai. Per un codice a blocchi che utilizza blocchi a 64 bit, la soglia è di circa 32 gigabyte ( 232 blocchi di 8 byte). Quando DES è stato progettato, 32 gigabyte erano fantascienza; al giorno d'oggi, 32 gigabyte sono un'unità flash USB da 20 $.

Quindi ora preferiamo i cifrari a blocchi con blocchi a 128 bit. Era un criterio di progettazione per AES .

La dimensione della chiave è un problema ortogonale. Le chiavi per i cifrari a blocchi sono sequenze di bit di una determinata lunghezza, che dipende dalla struttura interna per il cifrario a blocchi. Non è necessario che la lunghezza della chiave corrisponda in alcun modo alla dimensione del blocco; tuttavia, i crittografi sono innamorati del binario, quindi la lunghezza della chiave sarà di solito una potenza di 2 come 128 o 256, e quindi lo sarà anche la dimensione del blocco. AES è stato definito per utilizzare chiavi a 128, 192 o 256 bit.

Ciò che è necessario per la sicurezza è che ci sono due molte chiavi possibili per un attaccante per provarle tutte (provare tutte le chiavi possibili fino a quando non viene trovata una corrispondenza si chiama ricerca esaustiva). Ogni bit di chiave aggiuntivo raddoppia il numero di possibili dimensioni della chiave. Le chiavi a 128 bit sono abbastanza grande con un margine comodo; dimensioni chiave maggiori sono lì per conformità burocratica, manager paranoici e sviluppatori che si sentono minacciati nella loro virilità.

3
Thomas Pornin

Per quanto riguarda la tua domanda circa 64 bit ora sono meno sicuri di 128 bit: ad ogni aumento della potenza di elaborazione ci vuole meno tempo per craccarlo usando la forza bruta. Questo articolo fornisce un buon riferimento per il tempo impiegato per forzare una forza bruta:

http://tjscott.net/crypto/64bitcrack.htm

L'articolo presuppone che 2 processori Pentium 3.2 GHz facciano il loro lavoro. La capacità del processore aumenta continuamente e probabilmente non siamo troppo lontani dai processori disponibili in commercio a 64 core e persino a 256 core.

2
Todd Dill