Che cosa significano la dimensione della chiave e la dimensione del blocco nella crittografia?

15

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

Perché 64 dimensioni del blocco non sono più sicure e aumentano a 128 (AES, ..., Serpent)? E per quanto riguarda le dimensioni della chiave?

    
posta rezx 07.06.2012 - 15:04
fonte

4 risposte

14

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

Un algoritmo di chiave asimmetrica d'altra parte, utilizza 2 chiavi, una per la crittografia e una per la decrittografia. Un algoritmo chiave asimmetrico è progettato in modo tale che non è possibile ricavare la chiave privata dalla chiave pubblica. Un algoritmo di chiave asimmetrica comune è RSA.

Il termine dimensione del blocco si riferisce al codice a blocchi. Fondamentalmente, ci sono 2 tipi di crittografia.

Codifica stream : l'algoritmo crittografa / decodifica il messaggio 1 bit alla volta.

Codifica a blocchi - L'algoritmo crittografa / decrittografa il messaggio blocco per blocco, un blocco che si riferisce a un gruppo di bit. I codici a blocchi comuni includono AES - che funziona su blocchi a 128 bit e Blowfish - che funziona su blocchi a 64 bit.

Tutte queste informazioni possono essere trovate nelle rispettive voci di Wikipedia:

link

link

link

link

    
risposta data 07.06.2012 - 15:10
fonte
10

Poni 2 domande diverse ma correlate.

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

In una cifratura a blocchi , i dati in testo semplice di una dimensione fissa (la dimensione del blocco) sono crittografati in testo cifrato di esattamente Le stesse dimensioni. Tuttavia, il numero totale di possibili blocchi di testo cifrato è solo 2 dimensione del blocco , e quando si utilizza solo la radice quadrata di quel numero di blocchi si ha una probabilità del 50% di avere un blocco duplicato, che perde informazioni . La radice quadrata di 2 64 è 2 32 e 2 32 blocchi di 2 3 byte = 2 35 Bytes = 32 GiB. Quindi su un'unità 1 TiB con crittografia dell'intero disco ci si aspetterebbe di trovare circa 1.000 blocchi di testo cifrato duplicati. (Dalla formula qui : (2 40 / 2 3 ) 2 / 2 64 ) Per essere onesti, un blocco di testo cifrato duplicato non è un disastro, poiché le tecniche vengono utilizzate per garantire che lo stesso testo in chiaro non cripta allo stesso testo cifrato ogni volta, quindi è vero anche il contrario: i duplicati dei cifrari non rappresentano necessariamente i testi in chiaro duplicati. Il punto più grande è che la potenza di calcolo e lo spazio di archiviazione hanno superato i blocchi di testo cifrato a 64 bit.

Quindi i codici a blocchi correnti utilizzano blocchi a 128 bit che rendono improbabile la visualizzazione di un duplicato in Exbibyte (milioni di Tebibyte) di dati, che dovrebbe essere sufficiente per un po 'di tempo. La maggior parte delle altre forme di attacco sono rese significativamente più difficili da questo aumento delle dimensioni del blocco.

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

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

Inoltre, nessun cifrario è perfetto, e molti attacchi possono recuperare parte della chiave, quindi chiavi più lunghe forniscono ulteriore sicurezza in questo anche se una parte della chiave viene ripristinata, c'è ancora un enorme spazio chiave che rimane essere forza bruta attaccato.

    
risposta data 08.06.2012 - 17:02
fonte
3

AES, 3DES, Blowfish ... sono codici a blocchi . Un codice a blocchi è una funzione che prende come input un blocco di dati di una determinata dimensione (un numero fisso di bit) e un tasto (che è anche una sequenza di bit, non necessariamente della stessa dimensione del blocco); e l'uscita è un altro blocco della stessa dimensione del blocco di input. Inoltre, per una chiave fissa , la funzione deve essere una permutazione: due blocchi di input distinti producono due blocchi di output distinti.

es. Triple-DES (chiamato anche 3DES) utilizza blocchi a 64 bit e chiavi a 192 bit (così accade che la Triple L'algoritmo -DES ignora totalmente 24 dei 192 bit 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 decifrare i blocchi va bene, ma di solito vogliamo crittografare "messaggi", cioè lunghi flussi di byte di dati, con una lunghezza che non è necessariamente un multiplo della dimensione del blocco e che può essere piuttosto alta (ad es. può crittografare molti gigabytes di dati). Per trasformare un cifrario a blocchi in un motore in grado di crittografare e decodificare i messaggi, devi utilizzare una modalità di funzionamento . Fare buone modalità è un'arte; ci sono molti difetti sottili che possono compromettere la sicurezza se la modalità non è stata ben progettata. La dimensione del blocco sembra essere un fattore importante: nella maggior parte delle modalità, la sicurezza diminuisce, a volte in modo piuttosto brusco, quando la lunghezza del messaggio di input supera una soglia che dipende dalla dimensione del blocco; vale a dire, se il codice a blocchi utilizza n -bit blocchi e crittografa più di 2 n / 2 blocchi di dati, allora sei nei guai . Per un codice a blocchi che utilizza blocchi a 64 bit, la soglia è di circa 32 gigabyte (blocchi 2 32 di 8 byte). Quando DES è stato progettato, 32 gigabyte erano fantascienza; al giorno d'oggi, 32 gigabyte sono una chiavetta USB da 20 $.

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

La dimensione della chiave è un problema ortogonale. I tasti per i codici a blocchi sono sequenze di bit di una determinata lunghezza, che dipende dalla struttura interna per il codice 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 di solito sarà una potenza di 2 come 128 o 256, e così sarà la dimensione del blocco. AES è stato definito per utilizzare chiavi di 128, 192 o 256 bit.

Ciò che è necessario per la sicurezza è che ci sono due possibili chiavi per un utente malintenzionato per provarle tutte (provando tutte le chiavi possibili finché non viene trovata una corrispondenza si chiama search esauriente ). Ogni bit chiave aggiuntivo raddoppia il numero di possibili dimensioni della chiave. Le chiavi a 128 bit sono abbastanza grande con un margine constrongvole; dimensioni chiave più grandi sono lì per la conformità burocratica, i manager paranoici e gli sviluppatori che si sentono minacciati nella loro virilità.

    
risposta data 30.09.2012 - 18:18
fonte
2

Riguardo alla tua domanda su 64 bit che ora sono meno sicuri di 128 bit: con 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 necessario per forzare una chiave:

link

L'articolo presuppone 2 processori Pentium da 3,2 GHz per fare il lavoro. La capacità del processore aumenta continuamente e probabilmente non siamo troppo distanti da 64 core e persino da 256 processori core disponibili in commercio.

    
risposta data 08.06.2012 - 05:55
fonte

Leggi altre domande sui tag