La sicurezza a 128 bit non è sufficiente per la maggior parte delle applicazioni pratiche?
Perché le persone acquistano auto sportive rosse ? Non vanno più veloci delle macchine sportive di qualsiasi altro colore ...
AES viene fornito con tre dimensioni di chiavi standard (128, 192 e 256 bit). Molte persone lo vedono e pensano che se ci sono tre dimensioni distinte invece di una sola, allora ci deve essere qualche differenza, e poiché la versione a 256 bit è un po 'più lenta della versione a 128 bit (di circa il 40%), deve essere "più sicuro". Quindi scelgono "il più sicuro" e scelgono chiavi a 256 bit.
In realtà, l'AES ha tre dimensioni chiave distinte perché è stato scelto come algoritmo federale statunitense adatto a essere utilizzato in varie aree sotto il controllo del governo federale statunitense, e questo include l'esercito americano. L'Esercito degli Stati Uniti ha una tradizione di lunga data dell'uso della crittografia, e quella Tradizione si è cristallizzata in un regolamento interno con tutta la flessibilità e sottigliezza che gli eserciti di tutto il mondo dimostrano costantemente (basta ascoltare un po 'di "musica militare" e capirai cosa intendo) . Sfortunatamente, questo è successo molto tempo fa, prima dell'invenzione del computer, e in quel momento la maggior parte dei sistemi di crittografia poteva essere rotta, e quelli più robusti erano anche molto difficili da usare. Quindi i bravi cervelli militari hanno avuto l'idea che ci dovrebbero essere tre "livelli di sicurezza", in modo che i segreti più importanti siano stati crittografati con i metodi pesanti che meritavano, ma i dati di valore tattico inferiore potrebbe essere crittografato con algoritmi più pratici, se più deboli.
Queste norme hanno quindi richiesto tre distinti livelli. I loro progettisti presumevano che il livello inferiore fosse necessariamente debole in qualche modo, ma la debolezza non era obbligatoria . Quindi NIST ha deciso di formalmente di seguire i regolamenti (chiedere tre dimensioni chiave) ma anche di fai la cosa intelligente (il livello più basso doveva essere infrangibile con la tecnologia prevedibile). 128 bit sono abbastanza sufficienti per la sicurezza (vedi questa risposta per i dettagli). Pertanto AES accetta chiavi a 256 bit a causa della stanchezza burocratica: era più facile chiedere qualcosa di leggermente insensato (un eccesso di dimensioni della chiave) piuttosto che modificare i regolamenti militari.
La maggior parte delle persone non sa o non si preoccupa della storia, e va semplicemente alla grande perché pensa di meritarselo.
Quando si crea un sistema di sicurezza è necessario pianificare un errore. Questa è l'idea alla base di una strategia di difesa approfondita .
I primitivi crittografici si indeboliscono nel tempo. Sebbene una primitiva a 128 bit sia abbondante, un errore potrebbe essere scoperto nel codice che riduce questo livello di sicurezza. Quindi è necessario aggiungere un margine di sicurezza quando la primitiva della sottolineatura fallisce.
Ad esempio md5 produce un hash a 128 bit, tuttavia utilizzando un prefisso scelto attaccare un attaccante può produrre una collisione con una complessità solo 2 ^ 39 .
Non ho visto questo menzionato nelle risposte o nei commenti, quindi ho pensato di aggiungere questo come risposta. La dimensione della chiave non è sempre correlata direttamente alla complessità di un algoritmo. Un errore comune è quello di supporre che un messaggio crittografato usando AES256 sia più difficile da decifrare (un avversario che ottiene qualsiasi tipo di informazione di significato data solo il testo cifrato) rispetto alle stesse informazioni protette usando AES128. È logico che una dimensione di chiave più ampia fornisca una maggiore complessità, ma come con qualsiasi sistema, le implementazioni sono soggette a debolezze.
Supponendo che tu stia parlando di AES 128 contro AES 256, c'è una nota debolezza nella funzione di espansione chiave che riguarda AES256. Fondamentalmente, la debolezza riduce la complessità di AES256 a quella inferiore a AES128. C'è anche un attacco simile per AES192, anche se in questo caso la complessità di AES192 rimane maggiore di AES128.
Morale della storia, le persone non capiscono la cripto ... j / k (non sono un matematico). La realtà è che la gente assume "grande" con "sicuro". Una pistola grande è meglio che avere una piccola pistola. Le dimensioni delle chiavi più grandi sono più sicure rispetto alle dimensioni di chiavi più piccole.
In realtà, l'implementazione della crittografia è più importante della sola dimensione della chiave.
La tua premessa mi sembra sbagliata. Non sono a conoscenza di alcuna prova che "la maggior parte delle persone usa la crittografia a 256 bit invece di 128 bit". In effetti, se dovessi indovinare, sospetto che sia vero il contrario.
Suppongo che tu stia parlando di crittografia simmetrica. La risposta è che non è mai abbastanza sicuro (anche se sospetto che l'utilizzo di chiavi da 256 bit a 128 bit sia una strategia di marketing per far sentire il cliente più sicuro).
E non dimenticare l'aumento dell'informatica quantistica, che riduce significativamente la quantità di tempo necessaria per un attacco di forza bruta.
Leggi altre domande sui tag cryptography encryption