Puoi assolutamente dire con vari gradi di certezza se un file, o anche una stringa, è stato decrittografato con successo. La maggior parte delle sfide nei criptopali dipendono da questo . Ho iniziato a creare uno strumento per crittografare bruteforce e analisi che automatizza proprio questo compito. Puoi trovarlo qui se vuoi dare un'occhiata.
(ha bisogno di molto ripulire, non giudicarmi)
Il mio obiettivo originariamente in questo progetto era di migliorare la mia efficienza nelle sfide crittografiche CTF con un semplice strumento a forza bruta, ma sto iniziando a lavorare per implementare molte più analisi. Così com'è, può rinforzare tutto il caesar, XOR a singolo byte, atbash e alcune codifiche, con XOR a tasto ripetuto sviluppato ma non ancora integrato.
Il modo in cui funziona ora
- accetta la stringa o il file cifrato di stringhe di testo cifrato delimitate da nuova riga
- tenta di decrittografare con l'intero spazio delle chiavi delle crittografie supportate
- dopo ogni tentativo di decrittografia, esegue una funzione di rilevamento su testo chiaro per determinare se il testo decrittografato è in inglese
- mostra le ipotesi più probabili
L'unica cosa che rende complicato questo processo è come le soglie per il rilevamento inglese devono essere regolate in base alla lunghezza del ciphetext. Il valore predefinito è richiedere che il 60% del testo in chiaro sia costituito da parole e il 75% del testo in chiaro sia costituito da lettere per registrare una corrispondenza. Questa impostazione raramente fornisce falsi positivi, e anche meno frequenti falsi negativi, su testi chiari di lunghezza medio-lunga (qualsiasi cosa su poche stringhe). Tuttavia, quando vengono utilizzati in cifrari a breve durata, alcuni falsi positivi si apriranno e molti falsi negativi saranno superati. Nel test, ho dovuto abbassare le soglie del 30% o più per rilevare una corrispondenza su alcune stringhe corte e nel processo generare molti più falsi positivi che devo setacciare per trovare la corrispondenza reale.
Raccomando vivamente di utilizzare le sfide dei criptopals fin dall'inizio se sei interessato a saperne di più sulla creazione di oracoli e sulla rottura della crittografia. Inizia facile e progredisce negli attacchi del mondo reale, come fare un Oracle di Bleichenbacher , parte di ciò che rende DROWN lavoro di attacco.
tl; dr
è necessario creare un modulo che rilevi l'inglese e applicarlo al risultato di ogni tentativo di decrittografia. o solo fork mine e renderlo migliore.
nei casi in cui il testo non è inglese o un'altra lingua, è necessaria un'analisi più avanzata.