decripta una stringa con una password, ma metodo sconosciuto

4

Voglio eseguire più algoritmi contro una stringa crittografata. Ho la password e la stringa crittografata ma non il metodo con cui è stata crittografata?

quale sarebbe il metodo migliore per scoprire il metodo a corto di passare attraverso ogni metodo manualmente.

    
posta TheHidden 03.03.2016 - 13:04
fonte

1 risposta

3

Modo semplice:
Scrivi uno script che tenta la decrittografia con openssl utilizzando tutte le modalità di cifratura a blocchi. Vorrei prendere in considerazione l'uso di openssl in uno script BASH o importare pyOpenSSL (o subprocess ) e usare try / except blocks in python (o l'equivalente in qualunque lingua tu sia più comodo) per ottenere rapidamente la giusta modalità.

Modo accademico:
Scrivi un oracle di rilevamento .
Se non hai ancora letto le sfide Matasano Crypto , ti consiglio di iniziare da Imposta 1 e leggi sull'implementazione e il rilevamento di BCE. Set 2 implementa / rileva CBC e crea anche un oracolo di rilevamento CBC / ECB. Una volta compreso come funzionano le modalità di cifrario a blocchi, diventa più facile capire come distinguerle l'una dall'altra.

Sfortunatamente è qui che la mia conoscenza al momento diventa confusa sull'argomento, quindi se un oracolo di rilevamento ECB / CBC non identifica il testo cifrato, ti suggerisco di dare un'occhiata a questa buona risposta a un simile domanda . L'utente spiega cosa è necessario cercare per identificare OFC / CTR ed EAX / GCM, che è possibile utilizzare per creare un oracolo di rilevamento più completo.

Aggiornamento 9-mar-2016

Ho cercato di affrontare il problema dell'identificazione delle modalità di cifratura a blocchi, in base al solo testo cifrato, nell'ultima settimana. Il problema con la risposta a cui ho fatto riferimento (in relazione a questo obiettivo) è che presuppone la conoscenza della chiave / IV per essere in grado di analizzare la propagazione dell'errore. Ho letto tutti i libri di crittografia che possiedo, ho cercato l'interwebs e ho posto una domanda specifica su crypto.SE .
Da questa ricerca fino ad ora, sono giunto alla conclusione che:

  • La BCE può essere identificata facilmente e coerentemente, dato un testo cifrato di dimensioni sufficientemente grandi.
  • I cifrari di flusso (CFB, OFB, CTR) possono essere facilmente identificati se il testo cifrato non è una lunghezza di blocco appropriata, tuttavia non ho ancora trovato un modo per differenziare i cipri di flusso l'uno dall'altro in base al solo testo cifrato.

Con questa informazione, un testo cifrato di lunghezza del blocco (AES = 128) può essere assunto con una certezza del ~ 99,22% (1/128 possibilità che il testo cifrato dello stream sia multiplo di blocklen = ~ 0,78 possibilità) di essere un codice a blocchi. Da qui, il suddetto oracolo di rilevamento sarà in grado di rilevare la BCE se viene utilizzato. Se non viene rilevato ECB, si rimane con CBC e PCBC come le due principali possibilità. Questa è la migliore analisi di rilevamento che ho trovato finora.

    
risposta data 05.03.2016 - 00:36
fonte

Leggi altre domande sui tag