SHA1 VS RSA: quelle est la différence entre eux?

Quelles sont les différences entre SHA1 et RSA? Sont-ils simplement différents algorithmes ou sont-ils fondamentalement différents (c.-à-d. Utilisés pour des choses différentes) à certains niveaux.

Fondamentalement différent.

SHA1 est un algorithme de hachage, qui est une fonction à sens unique, transformant une entrée de n’importe quelle taille en une sortie de longueur fixe (160 bits dans ce cas). Une fonction de hachage cryptographique est une fonction pour laquelle il ne devrait pas être possible de trouver deux entrées donnant la même sortie, sauf par force brute (par exemple, avec une fonction à 128 bits, vous devriez essayer un message “collision” due à quelque chose appelé le paradoxe de l’anniversaire – Google pour plus).

En fait, pour SHA1, ce n’est plus le cas – l’algorithme est (en termes cryptographiques au moins) maintenant cassé, avec une attaque par collision décrite par Xiaoyun Wang et al. Qui bat une attaque d’anniversaire classique. La famille SHA2 n’est pas rompue et le NIST met en place un processus pour s’accorder sur un algorithme SHA3 ou une famille d’algorithmes.

Edit – Google a maintenant généré et publié une collision SHA1 réelle.

RSA est un algorithme de chiffrement asymésortingque, qui crypte une entrée dans une sortie qui peut ensuite être déchiffrée (contraste avec un algorithme de hachage qui ne peut pas être inversé). Il utilise une clé différente pour le chiffrement (le public) que pour le déchiffrement (le privé). Cela peut donc être utilisé pour recevoir des messages chiffrés d’autres personnes – vous pouvez publier votre clé publique, mais vous seul avec la clé privée pouvez alors déchiffrer les messages qui ont été chiffrés avec elle.

Si vous inversez les clés pour RSA, il peut être utilisé pour générer une signature numérique – en chiffrant quelque chose avec votre clé privée, tout le monde peut le déchiffrer avec la clé publique et, s’il est sûr que la clé publique confiance que vous étiez celui qui a crypté l’original. Cela se fait normalement en conjonction avec une fonction de hachage – vous hachez votre entrée, puis cryptez-la avec votre clé privée, en donnant une signature numérique de longueur fixe pour votre message d’entrée.

Les réponses précédentes sont déjà des explications suffisantes. Mais je pense que vous posez cette question simplement parce que SHA et RSA sortent souvent ensemble. Alors laissez-moi vous expliquer pourquoi.

Tout d’abord, gardez à l’esprit que

RSA n’est pas efficace, mais SHA l’est.

Supposons que vous téléchargez Windows 7 et que vous voulez vous assurer qu’il s’agit de Windows 7 original de Microsoft. Si Microsoft ne fait que chiffrer Windows 7 par RSA, il faudra beaucoup de temps pour le faire, nous ne le pouvons pas du tout. Ainsi, Microsoft utilise SHA1 sur Windows 7 et génère des données de 128 bits. Et puis Microsoft crypte ces données longues de 128 bits avec RSA (utilisez sa clé privée).

Il vous suffit ensuite de vous assurer que votre clé publique provient de Microsoft. Ensuite, utilisez SHA1 pour générer des données de 128 bits. Et puis utilisez la clé publique de RSA pour décrypter la signature de Microsoft. Ensuite, il vous suffit de comparer les deux données de 128 bits pour voir si elles correspondent.

SHA1 est un algorithme de hachage (signature de document et de certificateion) tandis que RSA est un algorithme de chiffrement / déchiffrement (communications sécurisées).

SHA1 est une fonction de hachage cryptographique, alors que RSA est un algorithme de chiffrement.

Une fonction de hachage prend un morceau de données et renvoie une chaîne de longueur fixe. Dans une fonction de hachage cryptographique, toutes les chaînes de retour ont la même probabilité. Etant donné que seul le nombre de hachage est disponible, vous ne pouvez pas déterminer l’entrée, vous ne pouvez pas non plus trouver une autre entrée qui donne le même hachage (excès avec une très faible probabilité). Sha1 a des failles de sécurité.

Un algorithme de cryptage prend un morceau de données, mais le résultat n’est pas de longueur fixe – votre cryptage. Étant donné la sortie (le cryptage), vous pouvez (si vous avez les bonnes clés) déterminer l’entrée.

Comme d’autres l’ont dit, ce sont des choses fondamentalement différentes qui remplissent différentes fonctions. Vous utilisez RSA pour brouiller des informations dans un format apparemment aléatoire, tandis que vous utilisez SHA1 pour garantir l’intégrité du message (c.-à-d. Qu’aucun des bits n’a été modifié). Dans une application de sécurité, vous en utiliserez une ou les deux, selon les fonctionnalités dont vous avez besoin.

L’algorithme SHA (Secure Hash Algorithm) prend un message de moins de 264 bits de longueur et produit un résumé de message de 160 bits. L’algorithme est légèrement plus lent que MD5, mais le résumé de message plus volumineux le rend plus sécurisé contre les attaques par collision et inversion de force brute. L’algorithme spécifié dans Secure Hash Standard (SHS, FIPS 180) a été développé par le NIST. SHA-1 est une révision du SHA publiée en 1994; la révision a corrigé une faille non publiée dans SHA. Sa conception est très similaire à la famille de fonctions de hachage MD4 développée par Rivest. SHA-1 est également décrit dans la norme ANSI X9.30.

RSA est un algorithme de cryptographie à clé publique. Il s’agit du premier algorithme connu pour être compatible avec la signature et le cryptage, et l’un des premiers grands progrès de la cryptographie à clé publique. RSA est largement utilisé dans les protocoles de commerce électronique, et on pense qu’il est sécurisé avec des clés suffisamment longues et des mises à jour à jour.

La différence la plus notable est que SHA est un algorithme de chiffrement alors que RSA est à la fois un algorithme de chiffrement et de signature.

Le 16/08/2005, il a été annoncé qu’il est possible de trouver une collision dans SHA-1 en 2 ^ 63 opérations. Ce résultat de la recherche est dû au professeur Xiaoyun Wang de l’Université Tsinghua à Beijing, en collaboration avec les professeurs Andrew Yao et Frances Yao. Il étend les travaux de Wang, Yin et Yu, qui démontrent qu’une collision peut se produire dans 2 ^ 69 opérations. Cela signifie qu’il est plus facile pour une collision de se produire dans SHA que dans RSA – mais, en particulier, aucune clé similaire n’a été trouvée qui soit entrée en collision.