Pourquoi le cryptage RSA est-il devenu populaire pour l'échange de clés?

16

C'est une question douce. Je ne connais pas grand-chose à la cryptographie ou à son histoire, mais il semble que RSA utilise couramment l'échange de clés en chiffrant une clé symétrique pour envoyer un message plus long (par exemple, la description d'iMessage ici ). N'est-ce pas exactement la raison pour laquelle l'échange de clés Diffie-Hellman, qui est plus ancien (et me semble plus simple), est destiné? En regardant Wikipedia, ils étaient également tous les deux brevetés, donc cela n'aurait pas été responsable du choix.

Pour être clair, je ne demande pas s'il est théoriquement important que la cryptographie à clé publique soit possible. Je demande pourquoi c'est devenu une méthode standard dans la pratique pour l'échange de clés. (Pour un non-cryptographe, DH semble plus facile à implémenter et n'est pas non plus lié aux détails du groupe utilisé.)

Louis
la source
3
RSA peut également être utilisé pour la transmission sécurisée de clés dans les cas où un protocole d'échange de clés interactif tel que DH est impossible, comme lorsqu'une seule liaison unidirectionnelle est disponible, ou lorsque les temps de communication aller-retour sont excessifs. Des cas d'utilisation tels qu'un e-mail chiffré favorisent de telles approches, car l'ordinateur du destinataire peut ne pas être connecté à Internet au moment où vous souhaitez envoyer le message, il ne peut donc pas participer à un échange de clé interactif.
Kevin Cathcart
Demandez-vous pourquoi il est devenu populaire pour l'échange de clés, ou en général?
OrangeDog
@KevinCathcart DH n'est pas nécessairement interactif. L'expéditeur peut créer une paire de clés à usage unique et envoyer la clé publique le long du message. Cette approche est à la base du chiffrement ECIES / DLIES et ElGamal. Cela a une légère surcharge (128 octets pour une clé de 1024 bits).
CodesInChaos
@CodesInChaos: Mais ni l'un ni l'autre ne sont des algorithmes d'échange de clés. Une fois que vous êtes passé de l'échange de clés à la cryptographie à clé publique à part entière, le choix du problème sous-jacent difficile à inverser n'affecte pas les problèmes opérationnels tels que la garantie que l'expéditeur a une copie de la clé publique du destinataire. J'ai compris que la question se posait: "Pourquoi utilisons-nous souvent la cryptographie à clé publique pour échanger des clés plutôt qu'un algorithme d'échange de clés, ce qui est souvent plus simple?". De toute évidence, n'importe quel algorithme de clé publique peut être utilisé pour établir un secret partagé sur un canal non interactif.
Kevin Cathcart

Réponses:

14

Il n'y a pas de raison technique forte. Nous aurions pu utiliser Diffie-Hellman (avec les signatures appropriées) aussi bien que RSA.

Alors pourquoi RSA? Autant que je sache, les raisons historiques non techniques dominaient. RSA a été breveté et il y avait une entreprise derrière, qui commercialisait et défendait RSA. De plus, il y avait de bonnes bibliothèques et RSA était facile à comprendre et familier aux développeurs. Pour ces raisons, RSA a été choisi, et une fois qu'il était le choix populaire, il est resté de cette façon en raison de l'inertie.

De nos jours, le principal moteur qui a provoqué une augmentation de l'utilisation de Diffie-Hellman est le désir d'une parfaite confidentialité secrète, ce qui est facile à réaliser en utilisant Diffie-Hellman mais est plus lent avec RSA.

Incidemment: c'est l'échange de clés Diffie-Hellman, pas le partage secret Diffie-Hellman. Le partage secret est tout autre chose.

DW
la source
2
Je pensais que les brevets étaient plus une raison d' éviter le RSA?
user1686
@grawity qui dépend de la façon dont le titulaire du brevet se comporte; et il y a une génération, les détenteurs de brevets technologiques ne s'étaient pas collectivement déshonorés par le biais de procès à grande échelle et de longue durée dans la mesure où cela s'est produit pendant les guerres de smartphones ou la pêche de masse de petites entreprises.
Dan Neely
10

Diffie – Hellman n'a pas de fonctionnalité cruciale: l'authentification. Vous savez que vous partagez un secret avec quelqu'un, mais vous ne pouvez pas savoir si c'est le destinataire ou un homme au milieu. Avec RSA, vous pouvez avoir quelques parties de confiance qui stockent des clés publiques. Si vous souhaitez vous connecter à votre banque, vous pouvez demander à la partie de confiance (disons Verisign) la clé publique de la banque, car vous avez déjà la clé publique de la partie de confiance sur votre ordinateur. Vous savez donc que vous partagez un secret avec votre banque.

Avec Diffie – Hellman, lorsque vous créez un secret avec votre banque, vous pouvez en fait créer un secret avec un homme du milieu (MITM), qui en crée également un avec votre banque, et il n'a qu'à traduire d'une clé de cryptage en l'autre à rester invisible (tout en pouvant lire toute la communication).

Jacen
la source
Vous pouvez bien sûr utiliser RSA pour l'authentification puis l'échange de clés DH.
OrangeDog
4
Vous pouvez créer une paire de clés secrètes et publiques comme celle-ci: pk=gskmop. En l'utilisant correctement, vous pouvez savoir avec qui vous parlez. Ce que vous ne pouvez pas faire, c'est après coup prouver à un tiers ce que l'autre personne vous a dit. Diffie-Hellman n'a pas, à ma connaissance, la capacité de produire des signatures.
kasperd
@kasperd: Je suis surpris que cela ait autant de votes positifs.
Louis
1
Vous pouvez utiliser des clés Diffie-Hellman à long terme pour l'authentification (regardez CurveCP pour un exemple de protocole) ou vous pouvez combiner DH avec des signatures DSA / Schnorr / ElGamal (qui partagent beaucoup de mathématiques sous-jacentes avec DH), tout comme vous le pouvez combinez le chiffrement RSA avec les signatures RSA.
CodesInChaos
-2

L'algorithme RSA tel que mentionné précédemment n'est pas beaucoup mieux que Diffie – Hellman, ce dernier manque juste d'authentification, les deux algorithmes dépendent de la difficulté à trouver des logarithmes discrets, donc en termes de sécurité, ils sont tous deux assez similaires.

Ronak Khandelwal
la source
2
Merci pour votre contribution. Cependant, tout ce que vous dites a déjà été traité dans d'autres réponses. Nous préférons que vous répondiez à des questions qui n'ont pas déjà de bonnes réponses, plutôt que de dupliquer les réponses existantes. En outre, RSA dépend de la difficulté du problème de factorisation (et à proprement parler du problème RSA) plutôt que du logarithme discret en soi, tandis que Diffie-Hellman est un système basé sur un journal discret plus classique (à proprement parler, il repose sur l'hypothèse DDH ).
DW
-3

Il y a un côté sombre à cela qui ne peut être ignoré.
Le fait que le RSA a été coopté par la NSA.
La NSA a planté une porte dérobée dans le cyphère Eliptic Curve qu'elle a fourni à la RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deply-than-thought-study/

John Hoffmann
la source
1
Cette réponse est incohérente. La cryptographie à courbe elliptique est différente de RSA. Donc, une porte dérobée dans la cryptographie à courbe elliptique ne mettrait pas en danger RSA. Cette réponse est tout simplement fausse - il n'y a pas un tel côté sombre.
DW