Passa al contenuto principale

5.6. Other Factors in Choosing a Mixing Function (Altri Fattori nella Scelta di una Funzione di Miscelazione)

5.6. Other Factors in Choosing a Mixing Function (Altri Fattori nella Scelta di una Funzione di Miscelazione)

Per uso locale, AES ha i vantaggi che è stato ampiamente testato per difetti, è ragionevolmente efficiente nel software ed è ampiamente documentato e implementato con implementazioni hardware e software disponibili in tutto il mondo incluso codice open source. La famiglia SHA* ha avuto un po' meno studio e tende a richiedere più cicli CPU di AES ma non c'è ragione di credere che sia difettosa. Sia SHA* che MD5 sono stati derivati dal precedente algoritmo MD4. Tutti hanno codice sorgente disponibile [SHA*, MD4, MD5]. Sono stati trovati alcuni segni di debolezza in MD4 e MD5. In particolare, MD4 ha solo tre round e ci sono diverse rotture indipendenti dei primi due o degli ultimi due round. E alcune collisioni sono state trovate nell'output MD5.

AES è stato selezionato da un processo robusto, pubblico e internazionale. Esso e SHA* sono stati garantiti dall'US National Security Agency (NSA) sulla base di criteri che rimangono per lo più segreti, come lo era DES. Mentre questo è stato causa di molte speculazioni e dubbi, l'indagine su DES negli anni ha indicato che il coinvolgimento dell'NSA nelle modifiche al suo design, che ha avuto origine con IBM, è stato principalmente per rafforzarlo. Non c'è stato alcun annuncio di una debolezza nascosta o speciale trovata in DES. È probabile che le modifiche dell'NSA a MD4 per produrre gli algoritmi SHA abbiano allo stesso modo rafforzato questi algoritmi, possibilmente contro minacce non ancora conosciute nella comunità crittografica pubblica.

Dove le lunghezze di input sono imprevedibili, gli algoritmi hash sono più convenienti da usare rispetto agli algoritmi di crittografia a blocchi poiché sono generalmente progettati per accettare input di lunghezza variabile. Gli algoritmi di crittografia a blocchi generalmente richiedono un algoritmo di padding aggiuntivo per accogliere input che non sono un multiplo pari della dimensione del blocco.

Al momento di questo documento, gli autori non sono a conoscenza di rivendicazioni di brevetto sugli algoritmi di base AES, DES, SHA*, MD4 e MD5 diversi da brevetti per i quali è stata concessa una licenza gratuita irrevocabile al mondo. Possono, naturalmente, esserci brevetti essenziali di cui gli autori non sono a conoscenza o brevetti su implementazioni o usi o altri brevetti rilevanti emessi o da emettere.