Quelle est la différence entre le cryptage SHA et AES? [fermé]

Réponses:

120

SHA n'est pas un cryptage, c'est une fonction de hachage à sens unique. AES (Advanced_Encryption_Standard) est une norme de chiffrement symétrique.

Référence AES

skaffman
la source
85

SHA est une famille d '«algorithmes de hachage sécurisé» qui ont été développés par la National Security Agency. Il y a actuellement une compétition parmi des dizaines d'options pour savoir qui deviendra SHA-3 , le nouvel algorithme de hachage pour 2012+.

Vous utilisez les fonctions SHA pour prendre un document volumineux et calculer un "condensé" (également appelé "hachage") de l'entrée. Il est important de comprendre qu'il s'agit d'un processus à sens unique. Vous ne pouvez pas prendre un résumé et récupérer le document d'origine.

AES , Advanced Encryption Standard est un algorithme de bloc symétrique. Cela signifie qu'il prend 16 blocs d'octets et les crypte. Elle est "symétrique" car la clé permet à la fois le cryptage et le décryptage.

MISE À JOUR: Keccak a été nommé vainqueur SHA-3 le 2 octobre 2012.

Jeff Moser
la source
64

SHA et AES ont des objectifs différents. SHA est utilisé pour générer un hachage de données et AES est utilisé pour crypter les données.

Voici un exemple de cas où un hachage SHA vous est utile. Supposons que vous vouliez télécharger une image ISO de DVD d'une distribution Linux. Il s'agit d'un fichier volumineux et parfois les choses vont mal - vous voulez donc vérifier que ce que vous avez téléchargé est correct. Ce que vous feriez est d'aller à une source de confiance (comme le point de téléchargement officiel de la distribution) et ils ont généralement le hachage SHA pour l'image ISO disponible. Vous pouvez désormais générer le hachage SHA comparable (en utilisant un nombre quelconque d'outils ouverts) pour vos données téléchargées. Vous pouvez maintenant comparer les deux hachages pour vous assurer qu'ils correspondent - ce qui validerait que l'image que vous avez téléchargée est correcte. Ceci est particulièrement important si vous obtenez l'image ISO à partir d'une source non fiable (comme un torrent) ou si vous rencontrez des problèmes lors de l'utilisation de l'ISO et souhaitez vérifier si l'image est corrompue.

Comme vous pouvez le voir dans ce cas, le SHA a été utilisé pour valider des données non corrompues. Vous avez parfaitement le droit de voir les données dans l'ISO.

AES, d'autre part, est utilisé pour crypter des données ou empêcher les gens de visualiser ces données en sachant un secret.

AES utilise une clé partagée, ce qui signifie que la même clé (ou une clé associée) est utilisée pour chiffrer les données que pour déchiffrer les données. Par exemple, si j'ai chiffré un e-mail à l'aide d'AES et que je vous ai envoyé cet e-mail, vous et moi aurions tous deux besoin de connaître la clé partagée utilisée pour chiffrer et déchiffrer l'e-mail. Ceci est différent des algorithmes qui utilisent une clé publique telle que PGP ou SSL.

Si vous souhaitez les assembler, vous pouvez crypter un message à l'aide d'AES, puis envoyer un hachage SHA1 du message non crypté afin que, lorsque le message a été décrypté, ils puissent valider les données. C'est un exemple quelque peu artificiel.

Si vous voulez en savoir plus sur ces quelques termes de recherche Wikipédia (au-delà d'AES et SHA), vous voulez essayer, notamment:

Algorithme à clé symétrique (pour AES) Fonction de hachage cryptographique (pour SHA) Cryptographie à clé publique (pour PGP et SSL)

Robert Horvick
la source
9

SHA est une fonction de hachage et AES est une norme de cryptage. Étant donné une entrée, vous pouvez utiliser SHA pour produire une sortie qui est très peu susceptible d'être produite à partir d'une autre entrée. De plus, certaines informations sont perdues lors de l'application de la fonction, donc même si vous saviez comment produire une entrée produisant la même sortie, cette entrée ne serait probablement pas la même que celle utilisée en premier lieu. D'autre part, AES est destiné à protéger contre la divulgation à des tiers des données envoyées entre deux parties partageant la même clé de cryptage. Cela signifie qu'une fois que vous connaissez la clé de cryptage et la sortie (et l'IV ...), vous pouvez revenir de manière transparente à l'entrée d'origine. Veuillez noter que SHA ne nécessite rien d'autre qu'une entrée à appliquer, tandis que AES nécessite au moins 3 minces: ce que vous cryptez / décryptez, une clé de cryptage et le vecteur d'initialisation (IV).

em70
la source
7

SHA signifie Secure Hash Algorithm tandis que AES signifie Advanced Encryption Standard. Donc SHA est une suite d'algorithmes de hachage. AES, quant à lui, est un chiffrement utilisé pour chiffrer. Les algorithmes SHA (SHA-1, SHA-256 etc ...) prendront une entrée et produiront un condensé (hachage), ceci est généralement utilisé dans un processus de signature numérique (produire un hachage de certains octets et signer avec une clé privée) .

François P.
la source
3

SHA ne nécessite rien d'autre qu'une entrée à appliquer, tandis qu'AES nécessite au moins 3 choses: ce que vous cryptez / décryptez, une clé de cryptage et le vecteur d'initialisation.

chen
la source
1
[Cela a été signalé comme une "réponse tardive à une ancienne question, fournie par un nouvel utilisateur. Mon commentaire est dans ce contexte.] Cela ne semble pas ajouter d'informations sur ce qui est déjà fourni dans d'autres réponses à cette question.
danfuzz
C'est faux. Vous n'avez pas besoin d'un vecteur d'initialisation (IV) pour utiliser AES. Certains modes de fonctionnement d'AES nécessitent un IV (ce qui est totalement différent).
Hilder Vitor Lima Pereira