Confronto tra DES, Triple DES, AES, crittografia Blowfish per i dati


Risposte:


245

Usa AES.

Più in dettaglio:

  • DES è il vecchio "standard di crittografia dei dati" degli anni Settanta. La sua dimensione della chiave è troppo corta per una sicurezza adeguata (56 bit efficaci; questo può essere forzato, come è stato dimostrato più di dieci anni fa ). Inoltre, DES utilizza blocchi a 64 bit, il che solleva alcuni potenziali problemi durante la crittografia di diversi gigabyte di dati con la stessa chiave (un gigabyte non è così grande al giorno d'oggi).
  • 3DES è un trucco per riutilizzare le implementazioni DES, mettendo in cascata tre istanze di DES (con chiavi distinte). Si ritiene che 3DES sia sicuro fino ad almeno una sicurezza " 2 112 " (che è molto, e abbastanza lontano nel regno di "non infrangibile con la tecnologia di oggi"). Ma è lento, specialmente nel software (DES è stato progettato per un'implementazione hardware efficiente, ma fa schifo nel software e 3DES fa schifo tre volte di più).
  • Blowfish è un codice a blocchi proposto da Bruce Schneier e distribuito in alcuni software. Blowfish può usare chiavi enormi e si ritiene sicuro, tranne per quanto riguarda la dimensione del blocco, che è 64 bit, proprio come DES e 3DES. Blowfish è efficiente nel software, almeno su alcune piattaforme software (utilizza tabelle di ricerca dipendenti dalla chiave, quindi le prestazioni dipendono da come la piattaforma gestisce la memoria e le cache).
  • AES è il successore di DES come algoritmo di crittografia simmetrica standard per le organizzazioni federali statunitensi (e come standard per quasi tutti gli altri). AES accetta chiavi da 128, 192 o 256 bit (128 bit è già molto indistruttibile), utilizza blocchi a 128 bit (quindi nessun problema lì) ed è efficiente sia nel software che nell'hardware. È stato selezionato attraverso un concorso aperto che ha coinvolto centinaia di crittografi per diversi anni. Fondamentalmente, non puoi avere di meglio.

Quindi, in caso di dubbio, utilizzare AES.

Si noti che un codice a blocchi è una casella che crittografa i "blocchi" (blocchi di dati a 128 bit con AES). Quando si crittografa un "messaggio" che può essere più lungo di 128 bit, il messaggio deve essere suddiviso in blocchi e il modo effettivo in cui si esegue la divisione viene chiamato modalità di funzionamento o "concatenamento". La modalità ingenua (divisione semplice) si chiama BCE e presenta problemi. L'uso corretto di un codice a blocchi non è facile ed è più importante che scegliere tra, ad esempio, AES o 3DES.


4
Essendo un po 'fuori di testa, raccomanderei quasi sempre AES256
hdost

2
Santo cielo, l'NSA potrebbe decifrare DES nel 1976, ma ha continuato a incoraggiarne l'uso fino al 2002! Chiamami paranoico ma ho paura della spinta per AES
Dr Deo,

25

Tutti questi schemi, ad eccezione di AES e Blowfish, presentano vulnerabilità note e non devono essere utilizzate.
Tuttavia, Blowfish è stato sostituito da Twofish .


11

I metodi di crittografia descritti sono cifre simmetriche a blocchi di chiavi.

Data Encryption Standard (DES) è il predecessore, che crittografa i dati in blocchi a 64 bit utilizzando una chiave a 56 bit. Ogni blocco è crittografato in modo isolato, il che rappresenta una vulnerabilità della sicurezza.

Triple DES estende la lunghezza della chiave di DES applicando tre operazioni DES su ciascun blocco: una crittografia con chiave 0, una decrittografia con chiave 1 e una crittografia con chiave 2. Queste chiavi possono essere correlate.

DES e 3DES si incontrano di solito quando si interfaccia con prodotti e servizi commerciali legacy.

AES è considerato il successore e lo standard moderno. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Credo che l'uso di Blowfish sia scoraggiato.

Si consiglia vivamente di non tentare di implementare la propria crittografia e di utilizzare un'implementazione di alto livello come GPG per i dati a riposo o SSL / TLS per i dati in transito. Ecco un video eccellente e che fa riflettere sulle vulnerabilità della crittografia http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
Perché l'uso del pesce palla è scoraggiato? Non è quello più sicuro?
Yogsma,

5
@yogsma: Blowfish ha una dimensione di blocco di soli 64 bit (poiché era inteso come sostituzione drop-in per DES nei protocolli), e quindi diventa problematico dopo alcuni GB di dati crittografati con la stessa chiave.
Paŭlo Ebermann,

@rohannes, perché BlowFish è scoraggiato, ho letto da qualche parte in termini di prestazioni BlowFish è meglio di AES, guarda questo articolo su brighthub.com
Yogesh,

9

AES è un algoritmo crittografico simmetrico, mentre RSA è un algoritmo crittografico asimmetrico (o chiave pubblica). La crittografia e la decrittografia vengono eseguite con una singola chiave in AES, mentre si utilizzano chiavi separate (pubbliche e private) in RSA. La forza di una chiave AES a 128 bit equivale all'incirca alla chiave RSA a 2600 bit.


7
puoi fornire la matematica a sostegno di questa risposta o di una fonte? Sarei interessato a sapere come sei arrivato alla conclusione che AES a 128 bit è all'incirca equivalente a RSA a 2600 bit (mi rendo conto che questa è una vecchia risposta)
Russell Uhl

3
@RussellUhl - Concordo sul fatto che la storia di quei numeri sia una domanda interessante, anche dopo altri 2 anni di silenzio. :) Quei numeri sembrano essere derivati ​​da questo documento PDF: eprint.iacr.org/2013/635.pdf intitolato Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm,

4

Sebbene TripleDESCryptoServiceProvider sia un metodo sicuro e valido, ma è troppo lento. Se vuoi fare riferimento a MSDN, riceverai questo consiglio di usare AES piuttosto che TripleDES. Si prega di controllare il link seguente: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx vedrai questa attenzione nella sezione delle osservazioni:

Nota È disponibile un nuovo algoritmo di crittografia simmetrica, Advanced Encryption Standard (AES). Prendi in considerazione l'utilizzo della classe AesCryptoServiceProvider invece della classe TripleDESCryptoServiceProvider. Utilizzare TripleDESCryptoServiceProvider solo per la compatibilità con applicazioni e dati legacy.

In bocca al lupo


3
Questo è divertente dato che Microsoft utilizza ancora attivamente TripleDES in alcuni dei suoi prodotti per la crittografia ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard,

@Tom hai ragione, ma non dimenticare che molti software usano vecchie tecnologie e questo richiede del tempo per adattarsi con nuovi metodi. Specialmente per grandi aziende come Microsoft, anche se sono d'accordo con te sulla necessità di essere aggiornato e questo è un male quando la nostra azienda suggerisce alcune cose e fa altre cose.
QMaster,

1
Microsoft è nota per la compatibilità con le versioni precedenti. Il loro uso di TripleDES rientra direttamente in "solo per compatibilità con applicazioni e dati legacy".
Dan Bechard,

1

inserisci qui la descrizione dell'immagine

DES è il vecchio "standard di crittografia dei dati" degli anni Settanta.


0

AES è l'algoritmo standard attualmente accettato da utilizzare (da qui il nome Advanced Encryption Standard ).

Il resto no.


3
Da qui il nome? In che modo il nome "AES" indica che dovrebbe essere usato?
CodyBugstein,

15
Che dire di Data Encryption Standard ? La tua logica "ha <standard> nel nome - quindi questo è ciò che dovrebbe essere usato" è piuttosto imperfetta.
Zlatin Zlatev,

0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow

AES è più veloce di 3DES, soprattutto su CPU che supportano AES-NI. (ma anche senza che - DES è stato progettato per implementazioni hardware veloce, non implementazioni software) (Normale DES è leggermente più veloce in alcuni punti di riferimento , ma le chiavi 56bit rendono inadatta per qualsiasi uso attuale)
Gert van den Berg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.