Vantaggi di un time pad

4

Ho sempre sentito dire che una volta che stai suonando qualcosa è così bello perché non saprai se hai decodificato correttamente i dati. Capisco l'idea che è possibile XOR di tutti i bit uguali a tutti gli altri bit e che non sarà intrinsecamente "allertato" dal fatto che hai usato i bit giusti, ma non è vero per altri algoritmi / concetti di crittografia?

Ad esempio, se provi a forzare i dati forzati che sono stati simmetricamente crittografati in SSL / TLS (che NON è un one time pad), immagino che non saprai se il tuo attacco di forza bruta ha effettivamente trovato risultati rilevanti a meno che tu non controlli quei risultati contro qualcosa che stavi cercando (metadati, PDF valido, Word valido, ecc.)

Quindi, se quello che ho detto è vero, allora qual è il vantaggio di un time pad? È semplicemente la lunghezza della chiave utilizzata (il fatto che debba essere lunga quanto i dati)?

    
posta tau 14.04.2014 - 10:27
fonte

5 risposte

8

Si tratta di ridondanza di informazioni .

Un utente malintenzionato vuole decrittografare alcuni dati, perché è interessato in quei dati e quindi dispone di informazioni sul contesto . Ad esempio, supponendo una connessione HTTPS , l'utente malintenzionato sa che ciò che è crittografato è una richiesta HTTP e una risposta HTTP, entrambe con intestazioni HTTP sintatticamente corrette. È altamente improbabile che una sequenza di bit casuali sia sintatticamente corretta. Concettualmente parlando, la sequenza di bit che codifica la richiesta HTTP è ridondante , il che significa che alcune informazioni potrebbero essere state omesse poiché possono essere ricostruite (ad esempio l'intestazione è ASCII semplice, quindi ogni 8 bit è ridondante , poiché è sempre 0).

Se l'utente malintenzionato tenta di eseguire una forza bruta su, ad esempio, una chiave DES a 56 bit (presupponiamo che SSL sia protetto con tale algoritmo, in modo che la forza bruta sia effettivamente possibile, con una chiave AES a 128 bit , questo supera di gran lunga la tecnologia esistente e la domanda diventa priva di qualsiasi significato). Ci sono 2 56 tali chiavi. Tuttavia, non tutte le chiavi di decrittografia possibili produrranno un testo chiaro che "ha senso" (cioè "è una richiesta HTTP sintatticamente corretta"). In effetti, le probabilità sono tali che lì (molto probabilmente) non ci sarà una chiave sbagliata che restituisca comunque qualcosa che assomiglia a una richiesta HTTP. In altre parole, se il risultato della decrittografia produce un testo chiaro che ha il formato corretto, allora l'attaccante sa che ha trovato sia la chiave giusta che il messaggio cleartext corretto.

Non è così con il one-time pad. Con il pad singolo, ogni testo chiaro sintatticamente corretto è possibile, con pari probabilità. L'attaccante non può escludere alcun testo chiaro che abbia senso "perché tutti i testi chiari che hanno senso sono possibili. Il modo teorico dell'informazione per esprimerlo è che il testo cifrato non può fornire ulteriori informazioni all'attaccante oltre ciò che già conosce. Per riassumere, tutto ciò che l'attaccante impara è che i possibili testi chiari sono chiari e comprensibili, e lo sapeva già.

    
risposta data 14.04.2014 - 16:23
fonte
11

Un one time pad offre sicurezza delle informazioni . Ciò significa in sostanza che il time pad non può essere rotto anche se l'avversario ha una potenza di calcolo illimitata. Questo perché XOR -ingare dati su una chiave veramente casuale garantirà che l'output sia casuale anche perché stai semplicemente capovolgendo i bit.

    
risposta data 14.04.2014 - 10:33
fonte
2

È estremamente importante capire che "One Time Pad" è un elemento del codice effettivo utilizzato, non un particolare protocollo. Ad esempio, SSL o TLS che utilizzano RC4 sta, in effetti, implementando un One Time Pad digitale, mentre SSL o TLS che utilizzano DES o AES non ne utilizzano uno.

One Time Pad si riferisce alla tecnica crittografica della vecchia scuola di stampare i pad di codice ... le cose reali di carta ... che potrebbero essere utilizzate per crittografare e decrittografare i messaggi. Il pad era effettivamente la chiave da utilizzare per crittografare un messaggio.

La forza di un One Time Pad deriva dal fatto che i tuoi messaggi sono generalmente brevi e la chiave viene utilizzata una volta sola. Ciò rende difficili gli attacchi statistici contro il testo cifrato. Tuttavia, se dovessi riutilizzare la chiave, inizierai immediatamente a compromettere la sicurezza generale dei dati, rendendo la crittanalisi statistica più praticabile.

Tuttavia ci sono altre caratteristiche importanti. Poiché One Time Pad utilizza la chiave una sola volta, significa anche che ottieni Perfect Forward Secrecy gratuitamente. PFS significa che se un utente malintenzionato "interrompe" una chiave, tramite un testo in chiaro scelto, un testo in chiaro noto o altra crittanalisi, la violazione di tale chiave non fornisce assolutamente alcuna informazione su alcuna chiave precedente o chiave futura, eccetto, ovviamente, che tali chiavi non sono la chiave attuale.

In pratica, i time pad digitali non cambiano la chiave dopo ogni singolo messaggio. Se lo facessero, sarebbe fantastico, ma semplicemente non è pratico. Per compensare questa deficienza (riutilizzo delle chiavi) le implementazioni includono in genere due cose. Il primo è un protocollo o un metodo per sostituire periodicamente la parte fissa della chiave in base al tempo o alla quantità di dati inviati. Il secondo è usare un certo tipo di "vettore di inizializzazione" casuale (pensatelo come un grande sale) che viene aggiunto alla chiave prima di crittografare ogni messaggio. Piuttosto che cambiare l'intera chiave, una parte fissa (in genere una porzione relativamente grande della chiave) rimane fissa per un certo periodo di tempo mentre l'IV (sale) viene modificato con ogni messaggio. Poiché il sale sta cambiando, deve essere comunicato al partner di comunicazione e in genere viene inviato in chiaro o in modo efficace in chiaro.

Un meraviglioso esempio di one time pad digitale è RC-4. Un esempio di implementazione scarsa (ben noto, ovviamente) è WEP, che utilizza un vettore di inizializzazione a 24 bit. WPA, il primo tentativo di "risolvere" questo, ha reso la porzione fissa della chiave più grande e ha aggiunto TKIP per passare periodicamente a una chiave casuale (porzione fissa) mentre si utilizza ancora RC-4 e IV.

    
risposta data 14.04.2014 - 16:58
fonte
2

Come dice Terry, il vantaggio principale è che offre una sicurezza basata sulle informazioni. Ma su un paio di punti che hai citato nel resto della tua domanda:

La lunghezza non è un vantaggio in sé, ma il fatto che non si può mai provare ciò che si è ricavata da una chiave indovinata è che i dati decifrati lo rendono infinitamente sicuro - purché non si cada vittima del suo più grande svantaggio: DEVE essere usato una sola volta Ho scritto uno script per illustrare cosa succede quando usi due volte un OTP: link

Sembra che non ci siano indizi offerti nelle implementazioni crittografiche che hai decodificato qualcosa con successo. Questo non è corretto.

Per motivi di integrità, di solito c'è qualche indicazione che hai decodificato qualcosa con successo. Ad esempio TrueCrypt utilizza un hash dei dati correttamente decrittografati (all'interno del blocco di dati crittografato). Si presume che la chiave e l'algoritmo di crittografia siano così forti che non è importante rispetto ai vantaggi dell'integrità che produce.

    
risposta data 14.04.2014 - 17:41
fonte
1

Il vantaggio di un pad singolo è che ogni byte (assumeremo byte a 8 bit), non è collegato a nessun altro byte della chiave. La scoperta di un singolo byte della chiave non fornisce assolutamente nessuna informazione su nessun altro byte della chiave.

Semplificerò un po 'e dimenticherò cose come possibili attacchi matematici o temporali, ma confrontiamo un codice a blocchi con One Time Pad (OTP).

Forza bruta:

Se parliamo di un carico utile crittografato a 16 byte, con un codice a blocchi che ha una chiave da 8 byte, devi forzare tutte le possibilità per la chiave e ad ogni tentativo verificare se il carico utile "fa senso". Se ha senso, puoi presumere di aver trovato la chiave o continuare a provare fino a quando non ottieni qualcosa che abbia senso di nuovo. È quindi possibile rivedere tutti i payload decrittografati e sapere che uno di questi è quello reale.

Pad singolo:

Con un OTP, puoi forzare la forza bruta su ogni carattere, il che è facile poiché ci sono solo 256 tentativi con caratteri a 8 bit. Alla fine troverai una serie di combinazioni che ti danno, ad esempio, un'intestazione valida che ti aspetteresti per il carico utile crittografato. Ma nessuno di quei personaggi che hai scoperto non ti fornisce assolutamente nessuna informazione sul resto del carico utile. Non puoi brillare QUALSIASI informazione sul resto del carico utile in base ai primi caratteri. Dovresti fondamentalmente sapere cosa aspettarti dal carico utile per indovinare la chiave. E anche in questo caso puoi solo indovinare un sottoinsieme di chiavi che potrebbero creare quel carico utile.

    
risposta data 20.10.2015 - 05:30
fonte

Leggi altre domande sui tag