Qual è il problema con la crittografia multipla e come fai a sapere se hai decodificato un cifrario?

2

Ho 2 domande che sono in qualche modo correlate:

  1. Quando provi a indovinare la chiave di un programma (in un modo di forza bruta), come fa il programma a sapere se ha capito bene e ha decifrato il messaggio (non sto parlando dei file ovvi con le intestazioni, ma solo una lunga stringa di testo)?
  2. Qual è il problema con la crittografia a cascata / crittografia multipla? Se l'unico modo per rispondere alla domanda 1 è usare qualcosa come un processore di linguaggio, allora non tutte le crittografie multiple sono infrangibili usando i metodi di forza bruta?
posta shoham 25.04.2014 - 06:08
fonte

3 risposte

2

Per crittografia multipla, c'era una domanda precedente: Is crittografia multipla una buona idea?

Per sapere come si decodifica correttamente - di solito si guarda l'output e si decide se ha senso. Ad esempio, ha il formato file di un file gif / jpeg / zip? Se fosse un testo semplice, è tutto ASCII o correttamente codificato UTF-8? Ignorando i punti codice non ASCII, solo 96 dei 256 possibili valori di un byte sono stampabili. Quindi se decifrassi il messaggio di immondizia con la chiave sbagliata e il messaggio è lungo 1000 caratteri, la probabilità che tutti siano lettere ASCII stampabili per caso sarà solo (96/256) 1000 o circa 1 in 10 400 . Anche permettendo a UTF-8 i personaggi devono essere in determinate combinazioni; ad es., se il primo byte è della forma 1110xxxx (dove ogni x potrebbe essere un 1 o uno 0), ciò significa che i due caratteri successivi devono essere entrambi la forma 10xxxxxx per essere unicode appropriato). Questo genere di cose raramente accade per caso.

C'è spesso anche padding (che richiede un certo formato nel testo in chiaro), checksum o codici di autenticazione dei messaggi che aiutano a distinguere i dati inutili dalla chiave sbagliata, dai dati reali.

EDIT: Se hai crittografato un file due volte con due diversi tasti (simmetrici) k1 e k2 e hai provato a decifrare c = E (k1, E '(k2, m)), non c'è un modo in cui potresti solo brutalizzare -force indovina k1 semplicemente esaminando l'output di D (k1 ', c), che apparirà casuale per qualsiasi pattern. Dovresti forza bruta, k1 e k2 simultaneamente per capire le proprietà di m.

Tuttavia, è estremamente impossibile indovinare una chiave privata ad alta entropia dalla forza bruta. La quantità di lavoro per la forza bruta di una chiave AES a 128 bit è di circa 2 128 , ad esempio, un miliardo (10 9 ) computer che testano un trilione (10 12 ) chiavi al secondo per 1000 anni avrebbe solo 1 su 10 milioni di possibilità di trovare la chiave giusta. Quindi il guadagno derivante dalla crittografia multipla in questo scenario non sembra essere molto.

D'altra parte, se hai una crittografia asimmetrica con una chiave pubblica nota, puoi verificare rapidamente se la chiave privata indovinata è corretta - puoi crittografare un messaggio con la chiave pubblica conosciuta e quindi decrittarla con la tua chiave privata per recuperare il messaggio originale?

    
risposta data 25.04.2014 - 06:43
fonte
1

In realtà utilizziamo più tecniche di protocollo a più livelli per le nostre comunicazioni senzienti AI-AI Inferix Project. La maggior parte della gente dice che non si dovrebbe stratificare in quanto introduce debolezze sotto forma di maggiori opportunità per l'hacker.

Ma pensiamo che l'impostazione di protocolli dinamici o nascosti all'interno dei protocolli possa produrre (almeno) dubbi sul fatto che la decifrazione abbia davvero raggiunto il "livello base" della crittografia per rivelare "il vero messaggio" ... ad esempio su un semplice livello di un messaggio decrittografato su un livello potrebbe rivelare un messaggio plausibile e quindi Eve potrebbe pensare di avere origliato su quel messaggio ... ma il vero messaggio potrebbe essere sceso di qualche altro livello.

Ad ogni modo ... buona fortuna a staccare gli strati per cercare un vero ma più piccolo messaggio nascosto in un messaggio o un'immagine molto più grande nascosta da protocolli organizzati in precedenza che possono essere influenzati da diversi flussi di dati (ad es. file numerici, ecc.).

kbo me:)

    
risposta data 05.04.2018 - 02:24
fonte
1

La crittografia multipla non aumenta più la forza del bit rispetto all'utilizzo di una chiave più lunga. Sembra che tu pensi che un aggressore possa provare solo una chiave ma non lo farebbe. Proveranno più chiavi per vedere se l'output di più round produce il testo in chiaro. Potresti pensare bene che sarebbe "difficile" ma non è più difficile di una singola chiave equivalente.

Ad esempio, la crittografia simmetrica con una chiave a 256 bit richiederà in media 2 256 tentativi di trovare la chiave corretta con la forza bruta. Effettuare due round con chiavi a 128 bit richiederà anche 2 tentativi di 128 × 2 128 = 2 256 . Ora potresti dire bene che userei due round con chiavi a 256 bit. Ok, questo richiede 512 bit di chiavi. Non è più strong di un singolo round con una chiave a 512 bit.

La realtà è che qualcosa oltre il 128 va oltre la forza bruta. Non c'è energia sufficiente nella nostra stella per contare fino a 2 256 prima di bruciare molto meno forza bruta di una chiave. La crittografia strong è strong. Non è necessario inventare modi intelligenti per offuscarla.

Potresti dire Hello NSA qui è il file crittografato. Usa AES-256 in modalità blocco CBC ed ecco la IV. Prova a romperlo. La crittografia strong è strong. Riferimento obbligatorio allo scenario della chiave inglese xkcd a parte non lo violano. Potrebbero mandare in bancarotta il paese e costruire un computer di dimensioni planetarie e non lo violeranno. 2 256 è molto più grande di quanto pensi. Quindi se 2 128 o 2 256 è così grande da essere al di là della forza bruta perché dovresti aver bisogno di più di quello? Protegge da una minaccia inesistente.

Il link debole è come hai generato quella chiave. Was è derivato da una password. Forse uno debole come "P @ ssw0rd!"? Beh, è molto più facile attaccare di una chiave casuale a 256 bit? La "debolezza" nella crittografia moderna non sono i primitivi. Sono ben compresi. Sono tutti i dettagli di implementazione. Se la modalità di blocco CTR e hai riutilizzato la IV? Il tuo debole Deriva da una password debole? Il tuo debole Hai fatto un semplice hash non salato di una password invece di usare un KDF? Il tuo debole Il tuo PRN ha difetti o backdoor? Il tuo debole Nessuna forza bruta utilizza chiavi con 128 bit di entropia. Nessuno. Quindi la tua soluzione è quella in cerca di un problema. Se la tua implementazione è difettosa, molto probabilmente è difettosa anche per chiavi multiple, quindi sei ancora debole. Semplice è buono, c'è meno da sbagliare.

    
risposta data 01.07.2015 - 03:10
fonte

Leggi altre domande sui tag