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

quelles sont les différences entre SHA1 et RSA? Sont-ils simplement des algorithmes différents ou sont-ils fondamentalement différents (c.-à-d. utilisés pour des choses différentes) à un certain niveau.

40
demandé sur informatik01 2009-04-09 14:47:44

6 réponses

Fondamentalement différentes.

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 la force brute (par exemple, avec une fonction de 128 bits, vous devriez avoir besoin d'essayer en moyenne 2^64 message pour trouver une telle "collision" en raison de quelque chose appelé le paradoxe de l'anniversaire - Google plus).

en fait pour SHA1 ce n'est plus le cas - l'algorithme est (en termes cryptographiques au moins) cassé maintenant, avec une attaque de collision décrite par Xiaoyun Wang et al qui bat une attaque d'anniversaire classique. La famille SHA2 n'est pas brisée, et un processus est en cours par le NIST pour convenir d'un algorithme SHA3 ou d'une famille d'algorithmes.

Modifier - Google a maintenant généré et publié un SHA1 réel collision.

RSA est un algorithme de chiffrement asymétrique, chiffrant 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é de chiffrement (le public) que pour le décryptage (le secteur privé). Cela peut donc être utilisé pour recevoir des messages cryptés provenant d'autres - vous pouvez publier votre clé publique, mais seulement avec la clé privée peut alors déchiffrer les messages qui ont été chiffrés avec il.

si vous inversez les clés pour RSA, il peut être utilisé pour générer une signature numérique - en cryptant quelque chose avec votre clé privée, n'importe qui peut le décrypter avec la clé publique et, s'ils sont sûrs que la clé publique vous appartient, alors ils ont confiance que vous êtes celui qui a crypté l'original. Ceci est normalement fait en conjonction avec une fonction de hachage - vous de hachage votre entrée, puis chiffrer avec votre clé privée, donnant une signature numérique d'une longueur fixe pour votre message d'entrée.

80
répondu David M 2017-12-21 08:45:08

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

tout d'Abord,gardez à l'esprit que

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

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

alors, tout ce que vous devez faire est de vous assurer que votre clé publique est de Microsoft. Et puis utiliser SHA1 pour générer des données de 128 bits de long aussi. Et puis utiliser la clé publique de RSA pour décrypter la signature de Microsoft. Ensuite, il suffit de comparer les deux données de 128 bits pour voir si elles correspondent.

8
répondu demonguy 2017-06-22 15:16:08

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

7
répondu Spencer Ruport 2009-04-09 10:50:56

SHA1 est une fonction de hachage cryptographique, tandis 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 renvoyer toutes les chaînes ont la même probabilité. Étant donné seulement le nombre de hachage vous ne pouvez pas déterminer l'entrée, ni pouvez-vous trouver une autre entrée qui donne le même hachage (excpetion avec une très très faible probabilité). Sha1 a quelques défauts de sécurité.

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

5
répondu AnnaR 2009-04-09 11:14:17

comme d'autres l'ont fait remarquer, Ce sont des choses fondamentalement différentes qui remplissent des fonctions différentes. Vous utilisez RSA pour brouiller l'information dans une forme apparemment aléatoire, tandis que vous utilisez SHA1 pour assurer l'intégrité du message (c.-à-d. aucun des bits ont changé). Dans une application de sécurité, vous utiliserez une ou les deux, selon la fonctionnalité dont vous avez besoin.

4
répondu sybreon 2009-04-09 11:12:58

l'algorithme Secure Hash Algorithm (SHA) prend un message de moins de 264 bits et produit un condensé de message de 160 bits. L'algorithme est légèrement plus lent que MD5, mais le plus grand condensé de messages le rend plus sûr contre les collisions par force brute et les inversions. L'algorithme spécifié dans le Secure Hash Standard (SHS, FIPS 180), a été développé par le NIST. SHA-1 est une révision de SHA qui a été publiée en 1994; la révision a corrigé une lacune non publiée dans SHA. Son design est très similaire à la famille de fonctions de hachage MD4 développée par Rivest. SHA-1 est également décrit dans L'ANSI X9.30 standard.

RSA est un algorithme de cryptographie à clé publique. Il s'agit du premier algorithme connu pour être adapté à la signature ainsi qu'au chiffrement, et l'une des premières grandes avancées dans la cryptographie à clé publique. La RSA est largement utilisée dans les protocoles de commerce électronique et elle est considérée comme sûre si on lui donne des clés suffisamment longues et si on utilise des clés à jour. application.

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 un algorithme de signature.

Sur 8/16/2005 il a été annoncé qu'il est possible de trouver une collision en SHA-1 à 2^63 opérations. Ce résultat de recherche est dû au professeur Xiaoyun Wang de L'Université de Tsinghua à Pékin, ainsi qu'aux professeurs Andrew Yao et Frances Yao. Il étend le travail de Wang, Yin, et Yu, qui il a été démontré qu'une collision pouvait se produire dans le cadre de 2^69 opérations. Cela signifie qu'il est plus facile pour une collision de se produire dans SHA que dans RSA - mais notamment, aucune clé similaire n'a jamais été trouvé qui s'est heurté.

-5
répondu sangupta 2009-04-09 10:57:26