Are there any known attacks that try to use statistical models in this way to break encryption?
Sì. Come notato da gowenfawr, sono in genere efficaci contro una vecchia classe di algoritmi di crittografia chiamati cifrari di sostituzione monoalfabetici. In questi codici una lettera dell'alfabeto viene scambiata con un simbolo. La stessa lettera viene sempre sostituita con lo stesso simbolo. Ad esempio, sostituire ogni a con i e sostituire ogni b con l e così via. Questa semplice sostituzione conserva la natura statistica di ogni lettera. Per attaccare un codice sostitutivo monoalfabetico è sufficiente conoscere la lingua originale utilizzata e la frequenza statistica di ogni lettera. Trova il simbolo più comune nel testo cifrato e sostituiscilo con la lettera più comune nella lingua originale. Per l'inglese la lettera più comune è e.
La prossima progressione dalla sostituzione monoalfabetica è la sostituzione polifabbrica. Questo tipo di cifratura utilizza una tabella di alfabeti per scegliere un symol da sostituire con una lettera di testo semplice. Ciò può efficacemente smussare un attacco statistico (se la chiave è abbastanza lunga) rendendo la sostituzione una funzione della chiave e della lettera invece della sola lettera originale.
Più algoritmi moderni rendono la cifratura di ogni lettera una funzione di molti input che rende molto più difficile il rilevamento di uno schema statistico. Uno degli input è una chiave che di solito è un pezzo di dati casuali. L'uso della casualità come input azzera la capacità di un criptoanalista di rilevare un pattern.
Tuttavia l'analisi statistica può ancora svolgere un ruolo nell'analisi dei dati crittografati. Questo di solito si presenta sotto forma di quello che viene chiamato un attacco di canale laterale. Un canale laterale è una trasmissione di dati che è un effetto collaterale della trasmissione dei dati crittografati. Un recente articolo "Scoprire le frasi parlate nelle conversazioni VoIP crittografate" descrive come la codifica a bit rate variabile ha prodotto un canale laterale per i dati vocali crittografati.
Codifica bit rate variabile
Quando il suono viene convertito in dati diventa bit di informazione. Non tutte le parole e i suoni richiedono la stessa quantità di dati per rappresentarli. Un modo per trasmettere i dati vocali è il bit rate costante. FIl codificatore vocale (non crittografato) converte i suoni in dati che vengono quindi crittografati e trasmessi. Per bit rate costante ogni secondo del suono produce la stessa quantità di dati. Se i suoni prodotti durante quel secondo producono meno bit di quelli che devono essere trasmessi, l'encoder riempie i bit rimanenti con silenzio. Quindi, il bit rate costante ha molti dati privi di significato. Il bit rate variabile consente all'encoder di inviare tanti bit quanti sono stati generati dal suono in base alla dimensione di ciascun campione / frame di suoni che devono essere indicati dai dati. Alcuni algoritmi di crittografia producono dati crittografati che hanno esattamente le stesse dimensioni dei dati in chiaro. Se si utilizza un algoritmo di crittografia che preserva la lunghezza con codifica a bit rate variabile, un utente malintenzionato può visualizzare la lunghezza di ciascun campione sonoro e lunghezze campionarie e utilizzare le statistiche sul modo in cui le persone parlano per selezionare alcune frasi.
Are they effective? What are their short-comings?
Le statistiche possono essere efficaci in casi speciali. L'ordinamento delle statistiche è che tendono ad essere limitate a speach e plain text che sono una componente più piccola delle comunicazioni oggi di quelle che erano in passato.