2009-06-13 73 views

risposta

77

SHA non è crittografia, è una funzione di hash unidirezionale. AES (Advanced_Encryption_Standard) è uno standard di crittografia simmetrica.

AES Reference

5

SHA acronimo di Secure Hash Algorithm, mentre AES acronimo di Advanced Encryption Standard. Quindi SHA è una suite di algoritmi di hashing. D'altra parte, AES è un codice crittografato che viene utilizzato per crittografare. Gli algoritmi SHA (SHA-1, SHA-256, ecc ...) prenderanno un input e produrranno un digest (hash), che viene tipicamente utilizzato in un processo di firma digitale (produce un hash di alcuni byte e firma con una chiave privata) .

67

SHA è una famiglia di "Secure Hash Algorithms" che è stata sviluppata dalla National Security Agency. Attualmente esiste una competizione tra dozzine di opzioni per chi diventerà SHA-3, il nuovo algoritmo di hash per 2012+.

Si utilizzano le funzioni SHA per prendere un documento di grandi dimensioni e calcolare un "digest" (chiamato anche "hash") dell'input. È importante rendersi conto che si tratta di un processo a senso unico. Non puoi fare un digest e recuperare il documento originale.

AES, Advanced Encryption Standard è un algoritmo di blocco simmetrico. Ciò significa che richiede 16 blocchi di byte e li crittografa. È "simmetrico" perché la chiave consente sia la crittografia che la decrittografia.

UPDATE:Keccak è stato nominato il vincitore SHA-3, il 2 ottobre 2012.

4

SHA è una funzione hash e AES è uno standard di cifratura. Dato un input, è possibile utilizzare SHA per produrre un output che è molto improbabile che venga prodotto da qualsiasi altro input. Inoltre, alcune informazioni vengono perse durante l'applicazione della funzione, quindi anche se si sapesse come produrre un input che produce lo stesso output, quell'input non sarà probabilmente lo stesso utilizzato in primo luogo. D'altro canto, AES ha lo scopo di proteggere dalla divulgazione a terzi qualsiasi dato inviato tra due parti che condividono la stessa chiave di crittografia. Ciò significa che una volta che conosci la chiave di crittografia e l'output (e l'IV ...) puoi tornare all'input originale senza problemi. Si prega di notare che SHA non richiede altro che un input da applicare, mentre AES richiede almeno 3 sottili: ciò che si sta codificando/decodificando, una chiave di crittografia e il vettore di inizializzazione (IV).

44

SHA e AES hanno scopi diversi. SHA viene utilizzato per generare un hash di dati e AES viene utilizzato per crittografare i dati.

Ecco un esempio di quando un hash SHA è utile per te. Supponiamo che tu voglia scaricare un'immagine ISO DVD di qualche distribuzione Linux. Questo è un file di grandi dimensioni e, a volte, le cose vanno storte, quindi vuoi verificare che ciò che hai scaricato sia corretto. Quello che dovresti fare è andare su una fonte attendibile (come il punto di download della distribuzione ufficiale) e in genere hanno l'hash SHA per l'immagine ISO disponibile. È ora possibile generare l'hash SHA comparabile (utilizzando qualsiasi numero di strumenti aperti) per i dati scaricati. Ora puoi confrontare i due hash per accertarti che corrispondano - il che confermerebbe che l'immagine che hai scaricato è corretta. Questo è particolarmente importante se si ottiene l'immagine ISO da una sorgente non affidabile (ad esempio un torrent) o se si riscontrano problemi nell'utilizzo della ISO e si desidera verificare se l'immagine è corrotta.

Come si può vedere in questo caso, SHA è stato utilizzato per convalidare i dati che non erano corrotti. Hai tutto il diritto di vedere i dati nell'ISO.

AES, d'altra parte, viene utilizzato per crittografare i dati o impedire alle persone di visualizzare tali dati con la conoscenza di alcuni segreti.

AES utilizza una chiave condivisa che significa che la stessa chiave (o una chiave correlata) viene utilizzata per crittografare i dati utilizzati per decodificare i dati. Ad esempio, se ho crittografato un'e-mail utilizzando AES e l'ho inviata a te, entrambi dovremmo conoscere la chiave condivisa utilizzata per crittografare e decrittografare l'e-mail. Questo è diverso dagli algoritmi che usano una chiave pubblica come PGP o SSL.

Se si desidera riunirli, è possibile crittografare un messaggio utilizzando AES e quindi inviare un hash SHA1 del messaggio non crittografato in modo che, una volta decodificato il messaggio, siano stati in grado di convalidare i dati. Questo è un esempio un po 'forzato.

Se vuoi sapere di più su questi alcuni termini di ricerca di Wikipedia (oltre AES e SHA) che si desidera desidera provare includere:

algoritmo

a chiave simmetrica (AES) funzione di hash crittografico (per SHA) Crittografia a chiave pubblica (per PGP e SSL)

2

SHA non richiede altro che un input da applicare, mentre AES richiede almeno 3 elementi: ciò che si sta crittografando/decodificando, una chiave di crittografia e l'inizializzazione vettore.

+1

[Questo è stato contrassegnato come una "risposta tardiva a una vecchia domanda, fornita da un nuovo utente." Il mio commento è in tale contesto.] Questo non sembra aggiungere informazioni su ciò che è già stato fornito in altre risposte a questa domanda – danfuzz

+0

Questo è sbagliato: non è necessario un vettore di inizializzazione (IV) per utilizzare AES. Alcune modalità di operazioni per AES richiedono una IV (che è completamente diversa). –

Problemi correlati