Raddoppio o ciclizzazione degli algoritmi di crittografia

17

Talvolta ho letto il suggerimento per migliorare la sicurezza raddoppiando gli algoritmi di crittografia (crittografare un messaggio una volta con un algoritmo, quindi crittografare nuovamente il testo cifrato con un algoritmo di crittografia diverso) o periodicamente scorrere un elenco di algoritmi di crittografia .

Sospetto che questo non sia sensibilmente più sicuro di un singolo algoritmo di crittografia ben scelto e ben implementato, ma non sono sicuro di poter discutere il mio caso.

Il raddoppiamento o il ciclaggio degli algoritmi di crittografia migliorano la sicurezza? Perché o perché no?

    
posta Josh Kelley 05.04.2011 - 14:52
fonte

4 risposte

21

Gli algoritmi di crittografia a cascata o in bicicletta aumentano la complessità dell'implementazione e questo è davvero un problema per la sicurezza. La sicurezza intrinseca dell'algoritmo (purché si utilizzino algoritmi pubblicati e ben analizzati, non progetti fatti in casa) è invariabilmente di gran lunga maggiore della sicurezza dell'implementazione: la maggior parte delle implementazioni può perdere vari elementi, inclusi i bit della chiave segreta, attraverso il tempo di esecuzione, l'accesso alla memoria cache o il comportamento insufficiente quando incontri dati errati.

Se hai coperto tutti i rischi di implementazione, allora diventa il momento di preoccuparsi degli algoritmi stessi; a quel punto, sei un crittografo esperto e sai meglio di fare affidamento su trucchi irrazionali come il collegamento a cascata o il raddoppio. Fondamentalmente, l'unica cosa che garantisce l'algoritmo di raddoppiamento o di ciclizzazione è che chiunque faccia il suggerimento non è eccessivamente competente nell'area dell'implementazione crittografica, e quindi non si vuole usare il suo codice.

Storicamente, a cascata o in bicicletta sono i modi per far fronte agli algoritmi di crittografia debole; si tratta di presupporre che qualsiasi algoritmo sarà rotto, e tu proverai a fare il controllo del danno. Questo in qualche modo nega tutte le ricerche sulla crittografia dagli anni '70. In pratica, i problemi di sicurezza riguardano il modo in cui viene utilizzato un algoritmo (ad es. Modalità concatenamento con cifrari a blocchi), come viene implementato un algoritmo e, soprattutto, come vengono gestite le chiavi (creazione, archiviazione, distruzione ...). Per fare in modo che l'algoritmo stesso sia un punto debole, devi compiere enormi sforzi (ad esempio progettando il tuo algoritmo, dato che il consorzio DVD ha fatto ). Ad esempio, quando vengono hackerate le moderne console di gioco, gli stessi algoritmi (AES, ECDSA ...) non vengono interrotti, ma vengono aggirati (per ECDSA e Sony / PS3, si trattava di un bug di implementazione vero e proprio).

Ciò che fai vuoi è avere agilità algoritmo : definisci il protocollo in modo tale che l'algoritmo utilizzato sia un parametro configurabile. Pertanto, se un determinato algoritmo risulta sfasato (cosa che spesso non accade affatto), puoi passare a un altro.

    
risposta data 05.04.2011 - 15:30
fonte
1

Direi che concatenare cicli di crittografia è un modo legittimo per aumentare la lunghezza effettiva della chiave quando si utilizza un codice con una chiave di dimensione fissa. Rompa una chiave più lunga in parti e usa le parti in diversi turni.

È la ragione dell'esistenza del triplo DES. 56 bit sembravano sufficienti nel 1977, ma ora sono soggetti all'attacco di forza bruta sull'hardware moderno.

    
risposta data 06.04.2011 - 07:29
fonte
-1

Gli algoritmi di crittografia a cascata rendono il testo cifrato più sicuro, a patto che entrambi gli algoritmi di crittografia siano radicalmente diversi ed entrambi abbiano avuto approfondite revisioni tra pari. I miei argomenti per questo sono i seguenti:

  1. A patto che l'algoritmo di crittografia n. 1 sia realmente sicuro, la crittografia del testo in chiaro con esso produrrà un testo cifrato pseudo-casuale. A questo punto nel tempo, il testo cifrato non può essere decifrato in un ragionevole lasso di tempo.

  2. Supponendo che l'algoritmo di crittografia n. 2 sia anche in grado di crittografare in modo sicuro il testo cifrato dell'operazione precedente con l'algoritmo di codifica n. 2, produrrà un testo cifrato pseudo-casuale che non può essere violato in un ragionevole lasso di tempo. p>

  3. Se l'algoritmo di crittografia # 1 o l'algoritmo di codifica # 2 hanno dei punti deboli scoperti, in qualsiasi momento in futuro il tuo testo normale sarà comunque protetto dalla crittografia dell'altro.

  4. Si può sostenere che, anche se sia l'algoritmo di crittografia n. 1 che l'algoritmo di codifica n. 2 avessero scoperto punti deboli in essi in qualsiasi momento del futuro, il testo in chiaro potrebbe essere sicuro perché [sic, di punti 1-3? ].

La verità è che ci sono persone che non vogliono che tu o qualcuno sia in grado di collegare a cascata gli algoritmi di crittografia, perché ciò potrebbe renderli impossibili da violare. Immagina qualcuno a cascata algoritmi di crittografia come un matto, ad esempio:

AES -> Blowfish -> DES -> Serpent -> Twofish -> Triple DES

Come può qualcuno infrangere questa crittografia?

Naturalmente, altri aspetti come gli attacchi ai canali laterali e le debolezze di implementazione devono essere presi in considerazione, in quanto potresti sapere che la sicurezza è un argomento enorme.

    
risposta data 18.08.2013 - 13:55
fonte
-1

Ruota quotidianamente un semplice codice che permuta i blocchi a 2048 bit prima e dopo la normale crittografia e li archivia in una posizione separata dai dati crittografati.

Questo da solo sarà fastidioso dato che tutti andranno incontro a qualcuno che tenta di rompere il tuo cifrario indurito.

    
risposta data 19.08.2013 - 23:25
fonte

Leggi altre domande sui tag