116 votes

Quelle est la différence entre DSA et RSA ?

Il semble qu'il s'agisse de deux algorithmes de cryptage qui nécessitent des clés publiques et privées. Pourquoi devrais-je choisir l'un plutôt que l'autre pour assurer le cryptage dans mon application client-serveur ?

3 votes

Comme mentionné par henri DSA n'est pas pour le cryptage, juste pour la signature.

0 votes

82voto

SDReyes Points 3989

Vérifiez Réponse d'AVA ci-dessous .

Mon ancienne réponse semble erronée

0 votes

Cela signifie-t-il que si la quantité de données à crypter est importante, l'utilisation de RSA sera plus rapide ?

2 votes

Non, c'est l'inverse. DSA est plus rapide pour la signature (qui est mathématiquement plus ou moins égale au cryptage), donc si vous devez crypter beaucoup et décrypter souvent, DSA est plus rapide.

0 votes

Il y a beaucoup de données à crypter du côté client, mais elles ne sont décryptées qu'une fois sur le serveur. DSA est-il toujours gagnant ?

28voto

AVA Points 118

Référencement, https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html

RSA
Le cryptage et le décryptage RSA sont commutatifs.
Il peut donc être utilisé directement comme système de signature numérique.
étant donné un schéma RSA {(e,R), (d,p,q)}
pour signer un message M, calculez :
S = M puissance d (mod R)
pour vérifier une signature, calculez :
M = S puissance e(mod R) = M puissance e.d(mod R) = M(mod R)

Le RSA peut être utilisé à la fois pour le cryptage et les signatures numériques, simplement en inversant l'ordre dans lequel les exposants sont utilisés : l'exposant secret (d) pour créer la signature, l'exposant public (e) pour permettre à quiconque de vérifier la signature. Tout le reste est identique.

DSA (Algorithme de signature numérique)
DSA est une variante des algorithmes ElGamal et Schnorr. Il crée une signature de 320 bits, mais avec une sécurité de 512-1024 bits. repose à nouveau sur la difficulté de calculer les logarithmes discrets. a été assez largement accepté.

Génération de clés DSA
Tout d'abord, les valeurs des clés publiques globales partagées (p, q, g) sont choisies :
choisir une grande puissance première p = 2 L
où L= 512 à 1024 bits et est un multiple de 64
choisir q, un facteur premier de 160 bits de p-1
choisir g = h puissance (p-1)/q
pour tout h<p-1, h(p-1)/q(mod p)>1
puis chaque utilisateur choisit une clé privée et calcule sa clé publique :
choisir x<q
calculer y = g puissance x(mod p)

La génération de clés DSA est apparentée à El Gamal, mais un peu plus complexe. Principalement à cause de l'utilisation du module secondaire de 160 bits q utilisé pour aider à accélérer les calculs et réduire la taille de la signature résultante.

Création et vérification de signatures DSA

pour signer un message M
générer une clé de signature aléatoire k, k<q
calculer
r = (g puissance k(mod p))(mod q)
s = k-1.SHA(M)+ x.r (mod q)
envoyer la signature (r,s) avec le message

pour vérifier une signature, calculez :
w = s-1(mod q)
u1= (SHA(M).w)(mod q)
u2= r.w(mod q)
v = (g puissance u1.y puissance u2(mod p))(mod q)
si v=r alors la signature est vérifiée

La création de la signature est à nouveau similaire à celle d'ElGamal avec l'utilisation d'une clé de signature temporaire k par message. clé de signature temporaire k par message, mais en faisant le calcul d'abord mod p, puis mod q pour réduire la taille du résultat. Notez que l'utilisation de fonction de hachage SHA est explicite ici. La vérification consiste également à comparer deux calculs, encore une fois étant un peu plus complexe que, mais apparentée à El Gamal.
Notez que la quasi-totalité des calculs sont mod q, et sont donc beaucoup plus rapides.
Mais, contrairement à RSA, DSA ne peut être utilisé que pour les signatures numériques.

Sécurité DSA
La présence d'un canal subliminal existe dans de nombreux schémas (tous ceux qui nécessitent le choix d'un nombre aléatoire), pas seulement DSA. Elle souligne la nécessité d'une "sécurité du système", et pas seulement d'un bon algorithme.

0 votes

Le lien vers votre référence est cassé

24voto

Henri Points 4037

En fait, vous ne pouvez pas crypter avec DSA, seulement signer. Bien qu'ils soient mathématiquement équivalents (plus ou moins), vous ne pouvez pas utiliser DSA en pratique comme schéma de cryptage, mais seulement comme schéma de signature numérique.

20voto

Serge Stroobandt Points 525

En ce qui concerne man ssh-keygen La longueur d'une clé DSA est limitée à 1024 bits exactement pour rester conforme à la norme FIPS 186-2 du NIST. Néanmoins, des clés DSA plus longues sont théoriquement possibles ; la norme FIPS 186-3 les autorise explicitement. En outre, la sécurité n'est plus garantie avec des clés RSA ou DSA de 1024 bits.

En conclusion, une clé RSA de 2048 bits est actuellement le meilleur choix.

PLUS DE PRÉCAUTIONS À PRENDRE

Établir une connexion SSH sécurisée implique davantage que de choisir une technologie de paire de clés de cryptage sûre. Compte tenu des révélations d'Edward Snowden sur la NSA, il convient d'être encore plus vigilant que ce qui était jugé suffisant auparavant.

Pour ne citer qu'un exemple, l'utilisation d'un coffre-fort algorithme d'échange de clés est tout aussi important. Voici un bon aperçu de la situation actuelle les meilleures pratiques de durcissement de SSH .

0 votes

Certaines anciennes versions de ssh-keygen permettent également d'utiliser des clés d'une autre taille (j'utilise moi-même une clé DSA de 2048 bits générée à l'aide de l'outil de gestion des clés DSA). ssh-keygen sur RHEL).

6voto

premraj Points 120

Et en plus des belles réponses ci-dessus.

  • DSA utilise le logarithme discret.
  • RSA utilise la factorisation des nombres entiers.

RSA est l'abréviation de Ron R ivest, Adi S hamir et Leonard A dleman.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X