Se un sistema di crittografia consente il crack dei caratteri per personaggio, è terribilmente debole e non dovrebbe essere utilizzato.
Matematicamente, i cifrari a blocchi sono definiti come permutazioni pseudocasuali . Un codice a blocchi funziona sullo spazio dei blocchi di lunghezza n bit; tale spazio ha dimensione 2 n . Ci sono 2 n ! permutazioni su quello spazio (è un fattoriale, il che significa che il numero di permutazioni possibili è enorme ). Un cifrario a blocchi sicuro è tale da non essere indistinguibile da una permutazione selezionata a caso, in modo uniforme, nello spazio delle possibili permutazioni: ogni chiave dovrebbe corrispondere a una scelta casuale di permutazione e, in modo cruciale, tutte le scelte per ogni possibile chiave i valori sono indipendenti l'uno dall'altro.
Ciò significa, nelle parole banali, che per un cifrario a blocchi sicuro, si ha l'intera chiave, esatta fino all'ultimo bit o non si ha nulla. Contrariamente alle rappresentazioni di Hollywood, una chiave "quasi buona" non risulta in un "testo in chiaro sfocato": se anche un bit di una chiave è sbagliato, dovresti ottenere una posta indesiderata casuale (cioè un'uscita che è sufficientemente indistinguibile da una junk casuale che non puoi sapere se sei vicino al tasto giusto o no).
Naturalmente, se il sistema di crittografia è debole, tutto va bene. @ Mark cita un caso di "splitting" (in WPS) che è una debolezza atroce che può, in effetti, essere sfruttata per attacchi più veloci. Gli attacchi oracle di riempimento funzionano anche su una perdita byte per byte che consente la ricostruzione byte-by-byte del testo in chiaro ( non la chiave, ma ancora).
Un altro esempio più tecnico è vecchio codice di flusso PKZip : un codice di flusso "fatto in casa" che si è rivelato, con tutte le ineluttabilità della Morte in una tragedia greca, essere debole; il codice stream si basa su diverse "chiavi" interne che possono essere sbrogliate una per una. Incoraggio le persone interessate alla crittografia a studiare quell'esempio, perché dimostra abbastanza bene il modo in cui pensa un crittanalista, e perché il semplice accumulo di operazioni non garantisce la sicurezza; e l'attacco è abbastanza leggero da essere implementato nella pratica (il costo totale è di circa 2 38 , che si trova nel raggio di poche ore di calcolo su un PC con programmazione decente, non necessariamente assemblaggio ottimizzato). / p>
Molti sistemi crittografici risalenti a prima dell'era dei computer erano irrisolvibili in base al carattere, perché dovevano essere eseguiti dal cervello umano degli operatori, e tali strumenti non sono efficaci nell'utilizzare grandi valori o fare un sacco di operazioni. I codici classici di trasposizione e sostituzione (una famiglia molto ampia) tendono a ricadere sull'analisi della frequenza dei caratteri, che è, in effetti, una rottura per carattere.