Quoi de mieux pour les clés GPG - RSA ou DSA?

58

ssh-keygencrée par défaut des clés RSA, mais gpg --gen-keypréfère DSA / ElGamal.

Lequel - RSA ou DSA - est préférable pour GPG?

Grawity
la source
1
Voir également cette question de StackOverflow ainsi que ma réponse à une copie de cette question, qui explique pourquoi RSA est nettement plus sécurisé que DSA, à la fois en 2010 et avec les vulnérabilités connues actuelles (qui concernent toutes DSA).
Adam Katz

Réponses:

25

RSA et DSA - les idées fausses et les informations utiles comprennent
quelquesréférences RSA plus ancienneset la récenteréférence DSA ,


En 2003, RSA vs DSA Signatures - Le gagnant est ... - RSA .

Donc, fondamentalement, la génération de clés est incroyablement plus rapide pour DSA, ce qui est logique si vous comprenez les algorithmes. La signature est également plus rapide pour DSA, mais pas par un facteur aussi important. La grande force de RSA est de vérifier laquelle est beaucoup plus rapide que DSA .

Ébauche récente de l' IETF: DSA avec SHA-2 pour DNSSEC , expirant le 7 janvier 2010.
Elle a certaines raisons de promouvoir DSA sur RSA aujourd'hui.

L'utilisation de DSA avec SHA-256 dans DNSSEC présente certains avantages et inconvénients par rapport à l'utilisation de RSA avec SHA-256 lors de l'utilisation de clés à 2048 bits. Les signatures DSA sont beaucoup plus courtes que les signatures RSA ; à cette taille, la différence est de 512 bits à 2048 bits. Sur les plates-formes classiques utilisant des clés 2048 bits, la signature DSA est environ trois fois plus rapide que pour RSA, mais la vérification des signatures RSA est plus de dix fois plus rapide que pour DSA .

La force cryptographique de DSA est généralement considérée comme équivalente à RSA lorsque la clé publique DSA et les clés publiques RSA ont la même taille. Bien entendu, une telle évaluation pourrait changer à l'avenir si l'on découvrait de nouvelles attaques qui fonctionnent mieux avec l'un ou l'autre algorithme.

Il n'y a actuellement aucune attaque connue sur l'ensemble spécifique de paramètres DSA choisi pour ce document. Une telle évaluation pourrait bien sûr changer dans le futur.

Mais ce n’est qu’un brouillon pour le moment.

Tout le monde aime la vitesse de vérification de RSA (!).

nik
la source
6

Citant une discussion sur le forum :

Mon conseil serait d'utiliser une clé de signature RSA (la clé "principale" ou "principale") et une sous-clé RSA pour le chiffrement. L'utilisation de RSA pour la signature s'explique principalement par le fait que RSA vous permet d'utiliser des valeurs de hachage supérieures à celles de DSA. DSA2 vous permet également d'utiliser des hachages plus importants, mais RSA est pris en charge depuis de nombreuses années plus longtemps que DSA2.

Je pense que si vous l'utilisez de manière standard (c'est-à-dire que vous ne chiffrez pas une quantité énorme de données), ils s'en tireront tous les deux.

Personnellement, je choisirais RSA car j’ai appris l’algorithme, et c’est l’un des plus beaux algorithmes que j’ai jamais vu.

Adam Matan
la source
4

De plus, l'utilisation des algorithmes SHA-2 est possible et autorisée depuis la révision en cours de DSS; mais je n'ai pas pu savoir quelle révision GPG suivait.

En ce qui concerne la spécification DSS actuelle ( FIPS-186-3 , p. I), toute fonction de hachage spécifiée dans le SHS (FIPS-180-3, p. Iv) peut être utilisée:

DSS:

Les algorithmes de signature numérique approuvés par FIPS doivent être utilisés avec une fonction de hachage appropriée spécifiée dans l'EDM.

SHS:

Cette norme spécifie cinq algorithmes de hachage sécurisé - SHA-1, SHA-224, SHA-256, SHA-384 et SHA-512 - pour calculer une représentation condensée de données électroniques (message).


A la question: les deux algorithmes sont basés sur des problèmes mathématiques dont la sécurité n’est pas prouvée (RSA utilise le problème de la factorisation des nombres et DSA utilise le problème du logarithme discret), vous ne pouvez pas dire que l’un est plus sûr que l’autre, car problème ni l'autre n'a jamais été résolu.

Mais en utilisant DSA avec SHA-1, vous pouvez avoir un problème de sécurité, comme déjà dit par les pages .

Manuel Faux
la source
1

Le fait est que cela n'a probablement pas beaucoup d'importance pour vous :) Dans le cadre de la préparation de la génération d'une paire de clés et du maintien des paires de clés existantes - quel que soit le crypto asymétrique que vous choisissez, vous devriez: 1) vérifier le courant recommandé longueurs de clé 2) a choisi une base / modulo à optimiser pour la signature ou la vérification - en fonction de ce qui sera fait plus souvent (les clés à utiliser lors de la délivrance de certificats de serveur TLS / SSL doivent être optimisées pour la vérification car chaque navigateur Web vérifie la signature Les clés utilisées dans les logiciels de signature doivent être optimisées de la même manière) 3) assurez-vous de conserver vos clés - utilisez la même clé pour ssh-auth depuis quelques années, il est peut-être temps de vous régénérer même si vous choisissez une clé taille qui reste raisonnable pour l'application d'aujourd'hui.

RSA et DSA ont été évalués de manière substantielle; Si vous utilisez une base de code fiable (RSAREF, commercial RSA, Mozilla / Netscape, Microsoft, OpenSSL, ...), vous ne vous souciez probablement pas du système cryptographique que vous utilisez tant que vous l'utilisez correctement et que vous appliquez les meilleures pratiques actuelles.

RAM
la source