web-dev-qa-db-fra.com

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

ssh-keygen crée par défaut des clés RSA, mais gpg --gen-key préfère DSA/ElGamal.

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

57
grawity

Les responsables de GPG envisagent de modifier le paramètre par défaut en RSA (source: Traitement de la faiblesse de SHA-1 [LWN .net] ). Donc, il semble qu'ils pensent que la RSA est actuellement la meilleure option (et ils devraient en savoir plus à ce sujet que vous ou moi).

36
CesarB

RSA et DSA - idées fausses et informations utiles
a un couple d'anciennes _RSA références et de la récente DSA,


En 2003, Signatures RSA vs DSA - 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 réside dans la vérification , qui est beaucoup plus rapide que DSA .

Récent IETF Draft: DSA avec SHA-2 pour DNSSEC , expirant le 7 janvier 2010.
Il a quelques raisons de promouvoir DSA sur RSA aujourd'hui.

L'utilisation de DSA avec SHA-256 dans DNSSEC présente certains avantages et par rapport à l'utilisation de RSA avec SHA-256 lors de l'utilisation de 2048 bits clés. 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 de 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, il ne s’agit que d’un projet pour le moment.

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

24
nik

RSA. Quelques faiblesses ont été découvertes dans SHA-1 , qui est le hachage utilisé par DSA . Debian sont en train de migrertoutes leurs clés de DSA à RSA.

8
pgs

Citer une discussion de 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 hachages plus importants que ne le fait 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 réussiront 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.

5
Adam Matan

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.

Concernant la spécification actuelle DSS ( FIPS-186-3 , p. I) toute fonction de hachage spécifiée dans SHS (FIPS -180-3, page iv) peuvent être utilisés:

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 le calcul d'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 l'un est plus sécurisé que l'autre, car ni l'un ni l'autre des problèmes n'a été résolu.

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

4
Manuel Faux

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 l’émission 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 devraient ê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, RSA commercial, 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.

1
Ram