Was ist der Unterschied zwischen SHA- und AES-Verschlüsselung? [geschlossen]

Antworten:

118

SHA ist keine Verschlüsselung, sondern eine Einweg-Hash-Funktion. AES (Advanced_Encryption_Standard) ist ein symmetrischer Verschlüsselungsstandard.

AES-Referenz

Skaffman
quelle
85

SHA ist eine Familie von "Secure Hash-Algorithmen", die von der National Security Agency entwickelt wurden. Derzeit gibt es einen Wettbewerb unter Dutzenden von Optionen für SHA-3 , den neuen Hash-Algorithmus für 2012+.

Sie verwenden SHA-Funktionen, um ein großes Dokument zu erstellen und einen "Digest" (auch "Hash" genannt) der Eingabe zu berechnen. Es ist wichtig zu erkennen, dass dies ein Einwegprozess ist. Sie können keinen Auszug machen und das Originaldokument wiederherstellen.

AES , der Advanced Encryption Standard, ist ein symmetrischer Blockalgorithmus. Dies bedeutet, dass 16-Byte-Blöcke benötigt und verschlüsselt werden. Es ist "symmetrisch", da der Schlüssel sowohl Verschlüsselung als auch Entschlüsselung ermöglicht.

UPDATE: Keccak wurde am 2. Oktober 2012 zum SHA-3-Gewinner ernannt.

Jeff Moser
quelle
64

SHA und AES dienen unterschiedlichen Zwecken. SHA wird verwendet, um einen Hash von Daten zu generieren, und AES wird verwendet, um Daten zu verschlüsseln.

Hier ist ein Beispiel dafür, wann ein SHA-Hash für Sie nützlich ist. Angenommen, Sie möchten ein DVD-ISO-Image einer Linux-Distribution herunterladen. Dies ist eine große Datei, und manchmal geht etwas schief. Sie möchten also überprüfen, ob das, was Sie heruntergeladen haben, korrekt ist. Sie würden sich an eine vertrauenswürdige Quelle wenden (z. B. den offiziellen Download-Punkt für die Distribution), auf der normalerweise der SHA-Hash für das ISO-Image verfügbar ist. Sie können jetzt den vergleichbaren SHA-Hash (mit einer beliebigen Anzahl offener Tools) für Ihre heruntergeladenen Daten generieren. Sie können jetzt die beiden Hashs vergleichen, um sicherzustellen, dass sie übereinstimmen. Dies würde bestätigen, dass das heruntergeladene Bild korrekt ist. Dies ist besonders wichtig, wenn Sie das ISO-Image von einer nicht vertrauenswürdigen Quelle (z. B. einem Torrent) erhalten oder wenn Sie Probleme mit der Verwendung der ISO haben und überprüfen möchten, ob das Image beschädigt ist.

Wie Sie in diesem Fall sehen können, wurde der SHA verwendet, um Daten zu validieren, die nicht beschädigt wurden. Sie haben das Recht, die Daten in der ISO zu sehen.

AES hingegen wird verwendet, um Daten zu verschlüsseln oder um zu verhindern, dass Personen diese Daten mit Kenntnis eines Geheimnisses anzeigen.

AES verwendet einen gemeinsam genutzten Schlüssel. Dies bedeutet, dass zum Verschlüsseln der Daten derselbe Schlüssel (oder ein zugehöriger Schlüssel) verwendet wird, mit dem die Daten entschlüsselt werden. Wenn ich beispielsweise eine E-Mail mit AES verschlüsselt und diese E-Mail an Sie gesendet habe, müssen Sie und ich beide den gemeinsamen Schlüssel kennen, der zum Ver- und Entschlüsseln der E-Mail verwendet wird. Dies unterscheidet sich von Algorithmen, die einen öffentlichen Schlüssel wie PGP oder SSL verwenden.

Wenn Sie sie zusammenstellen möchten, können Sie eine Nachricht mit AES verschlüsseln und dann einen SHA1-Hash der unverschlüsselten Nachricht senden, damit sie die Daten beim Entschlüsseln validieren können. Dies ist ein etwas erfundenes Beispiel.

Wenn Sie mehr über diese Wikipedia-Suchbegriffe (über AES und SHA hinaus) erfahren möchten, möchten Sie Folgendes einschließen:

Symmetric-Key-Algorithmus (für AES) Kryptografische Hash-Funktion (für SHA) Public-Key-Kryptografie (für PGP und SSL)

Robert Horvick
quelle
9

SHA ist eine Hash-Funktion und AES ist ein Verschlüsselungsstandard. Bei einer gegebenen Eingabe können Sie SHA verwenden, um eine Ausgabe zu erzeugen, bei der es sehr unwahrscheinlich ist, dass sie von einer anderen Eingabe erzeugt wird. Außerdem gehen beim Anwenden der Funktion einige Informationen verloren. Selbst wenn Sie wissen, wie eine Eingabe mit derselben Ausgabe erstellt wird, ist diese Eingabe wahrscheinlich nicht dieselbe, die ursprünglich verwendet wurde. Andererseits soll AES alle Daten, die zwischen zwei Parteien mit demselben Verschlüsselungsschlüssel gesendet werden, vor der Weitergabe an Dritte schützen. Dies bedeutet, dass Sie, sobald Sie den Verschlüsselungsschlüssel und die Ausgabe (und die IV ...) kennen, nahtlos zur ursprünglichen Eingabe zurückkehren können. Bitte beachten Sie, dass für SHA nur eine Eingabe erforderlich ist, während für AES mindestens 3 Thins erforderlich sind: Was Sie verschlüsseln / entschlüsseln, ein Verschlüsselungsschlüssel und der Initialisierungsvektor (IV).

em70
quelle
7

SHA steht für Secure Hash Algorithm, während AES für Advanced Encryption Standard steht. SHA ist also eine Reihe von Hashing-Algorithmen. AES hingegen ist eine Chiffre, die zum Verschlüsseln verwendet wird. SHA-Algorithmen (SHA-1, SHA-256 usw.) nehmen eine Eingabe entgegen und erzeugen einen Digest (Hash). Dies wird normalerweise in einem digitalen Signaturprozess verwendet (erzeugt einen Hash von einigen Bytes und signiert mit einem privaten Schlüssel). .

François P.
quelle
3

Für SHA muss nur eine Eingabe angewendet werden, während für AES mindestens drei Dinge erforderlich sind: das, was Sie verschlüsseln / entschlüsseln, ein Verschlüsselungsschlüssel und der Initialisierungsvektor.

Chen
quelle
1
[Dies wurde als "späte Antwort auf eine alte Frage, die von einem neuen Benutzer bereitgestellt wurde, gekennzeichnet. Mein Kommentar befindet sich in diesem Kontext.] Dies scheint keine Informationen darüber hinzuzufügen, was bereits in anderen Antworten auf diese Frage bereitgestellt wurde.
danfuzz
Das ist falsch. Sie benötigen keinen Initialisierungsvektor (IV), um AES zu verwenden. Einige Betriebsarten für AES erfordern eine IV (was völlig anders ist).
Hilder Vitor Lima Pereira