Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RSA...DSA

16 réponses
Avatar
harry
hello !


qqun connait-il la différence entre une clé RSA et une DSA ?

l'une est-elle plus fiable que l'autre ?

10 réponses

1 2
Avatar
Laurent Fousse
Dans fr.misc.cryptologie, harry nous disait:
hello !


qqun connait-il la différence entre une clé RSA et une DSA ?


Il s'agit de deux systèmes de chiffrement asymétriques. Ils reposent
tous les deux sur une opération difficile à inverser sauf à connaitre
un certain secret.

l'une est-elle plus fiable que l'autre ?


Pour simplifier : est-ce que le problème de la factorisation (rsa) est
plus dur ou moins dur que celui du logarithme discret (dsa) ? (je n'ai
pas d'avis tranché sur la question).

Avatar
Laurent Jumet
Hello !

Laurent Fousse wrote:

l'une est-elle plus fiable que l'autre ?



LF> Pour simplifier : est-ce que le problème de la factorisation (rsa) est
LF> plus dur ou moins dur que celui du logarithme discret (dsa) ? (je n'ai
LF> pas d'avis tranché sur la question).

La différence n'est-elle pas aussi qu'il y a moyen dans le second,
d'ajouter des sous-clés?
Moi j'ai deux clés, et le grand progrès est que pour la seconde, je
peux rajouter des sous-clés sans que le KeyID principal change, de sorte
que je reste capable de lire d'anciens messages tout en cryptant les
nouveaux avec une nouvelle sous-clé.


Laurent Jumet - Point de Chat, Liège, BELGIUM
KeyID: 0xCFAF704C
[Restore address to laurent.jumet for e-mail reply.]


Avatar
Laurent Fousse
Dans fr.misc.cryptologie, Laurent Jumet nous disait:
Hello !

Laurent Fousse wrote:

l'une est-elle plus fiable que l'autre ?



LF> Pour simplifier : est-ce que le problème de la factorisation (rsa) est
LF> plus dur ou moins dur que celui du logarithme discret (dsa) ? (je n'ai
LF> pas d'avis tranché sur la question).

La différence n'est-elle pas aussi qu'il y a moyen dans le second,
d'ajouter des sous-clés?


En fait je ne connais pas assez la question des formats et des clefs
"dans la vraie vie" qui font qu'avec rsa on n'a pas de sous clef et
avec ma clef dsa j'en ai. Je ne sais pas si c'est un simple problème
de standard ou s'il y a une vraie question de sécurité. Peut-être que
quelqu'un du groupe pourra nous répondre.



Avatar
pornin
According to harry :
qqun connait-il la différence entre une clé RSA et une DSA ?


Une clé RSA est utilisée dans l'algorithme RSA alors qu'une clé DSA
est utilisée dans l'algorithme DSA. Simple, non ?


Plus précisément : RSA, c'est en fait deux algorithmes : un qui
sert pour du chiffrement asymétrique, l'autre pour la signature. Le
chiffrement asymétrique consiste à transformer une donnée en utilisant
un élément dit "clé publique" en quelque chose d'inintelligible pour
tous, sauf pour celui qui possède la "clé privée" qui correspond à la
clé publique ; en utilisant la clé privée, on peut faire l'opération
inverse, et retrouver les données. Ce système est utilisé quand on
veut envoyer un courrier électronique sécurisé, et qu'on ne veut pas
que n'importe qui puisse lire le contenu du courrier : on applique un
algorithme de chiffrement asymétrique sur le contenu du courrier, en
utilisant la clé publique du destinataire. Comme ça, le destinataire
étant le seul possesseur de la clé privée correspondante, il sera le
seul à pouvoir lire le courrier, quoi qu'il advienne.

La deuxième facette de RSA, c'est un algorithme de signature. La
signature électronique consiste à associer à un document une valeur,
unique en fonction du document et du signataire. Pour ce faire, le
signataire utilise sa clé privée dans un algorithme de signature adapté ;
ensuite, tout un chacun peut utiliser la clé publique correspondante
pour faire l'opération inverse, qui consiste à vérifier que la signature
correspond bien au document et à la clé publique.

Il s'avère que l'algorithme de signature RSA peut utiliser les mêmes clés
que l'algorithme de chiffrement RSA. Aussi, on parle de "clé RSA" sans
plus de précisions.

En interne, tout la difficulté théorique repose sur le fait que la
clé publique est publique et que la clé privée est privée. Autrement
dit, bien que les deux clés se correspondent (en chiffrement comme en
signature, on peut faire avec la clé privée l'opération "inverse" de
celle avec la clé publique), il ne faut pas qu'on puisse calculer la
clé privée à partir de la clé publique (sinon, la clé privée ne va
pas rester privée longtemps). Pour réaliser ça, on utilise des objets
mathématiques aux propriétés bien senties.


DSA est un algorithme de signature (pas de chiffrement). Son principe de
fonctionnement interne est différent. Il permet de réaliser les mêmes
fonctionnalités que RSA-signature (générer des signatures électronique
et permettre de les vérifier) mais ses clés (publiques comme privées)
utilisent des objets mathématiques différents de ceux utilisés pour RSA
(et, bien sûr, les signatures obtenues n'ont pas la même taille et ne
sont pas interchangeables).


Pour parler mathématiquement :

-- Une clé publique RSA est la donnée d'un nombre "n" de grande taille
(en général 1024 bits, soit un peu plus de 300 chiffres décimaux)
et d'un deuxième nombre, petit, dit "exposant public", qu'on note
habituellement "e". La clé privée est notée "d" et est un nombre de la
même taille que "n", lié à "e" et "n" par une relation mathématique
(e*d = 1 mod phi(n)). Pour calculer "d" à partir de "e" et "n", il faut
décomposer "n" en facteur premiers, ce qui est d'autant plus dur que "n"
est grand (il faut donc que "n" ne soit _pas_ un nombre premier).

-- Une clé publique DSA est la donnée de plusieurs nombres de plus ou
moins grande taille (p, q, g et y) et la clé privée est un autre nombre
(x), avec les propriétés suivantes :
p est un nombre premier assez grand (genre 1024 bits)
q est un nombre premier de 160 bits, tel que q divise p-1
g est un nombre entre 2 et p-1, dit "générateur" (il génère un
sous-groupe de Zp* d'ordre q)
x (la clé privée) est un nombre entre 0 et q-1
y = g^x mod p
Une caractéristique intéressante des clés DSA est que plusieurs clés
publiques distinctes peuvent se partager les mêmes paramètres p, q et
g, sans que cela pose de problème de sécurité.


l'une est-elle plus fiable que l'autre ?


DSA existe principalement parce qu'à l'époque où le gouvernement
américain a voulu définir un algorithme standard de signature
électronique pour son administration, RSA était encore protégé par un
brevet (détenu par RSA Data Security, Inc.) et ça ne faisait pas les
affaires du gouvernement américain.

Ceci étant, à sécurité égale, il s'avère que la vérification de
signature par RSA est beaucoup plus rapide que par DSA. En revanche,
grâce à la propriété de partage de paramètres des clés DSA, générer une
nouvelle paire de clés DSA peut être beaucoup plus radide que pour RSA.
Une clé publique DSA prend plus de place qu'une clé publique RSA. Une
signature RSA est plus grande qu'une signature DSA.

Dans la pratique, comme une clé RSA permet aussi le chiffrement, RSA est
nettement plus répandu que DSA. Dans les protocoles où on a besoin de
chiffrement (SSL, par exemple) et où on veut utiliser DSA, on utilise
un autre algorithme en plus, dit "Diffie-Hellman" (du nom de ses
inventeurs), qui fait la partie chiffrement.


--Thomas Pornin

PS : je sais qu'il y a quelques raccourcis dans ce que j'ai raconté,
mais ce message est déjà suffisamment kilométrique comme ça.

Avatar
Jean-Marc Desperrier
Thomas Pornin wrote:
-- Une clé publique DSA est la donnée de plusieurs nombres de plus ou
moins grande taille (p, q, g et y) et la clé privée est un autre nombre
(x), avec les propriétés suivantes :
p est un nombre premier assez grand (genre 1024 bits)
q est un nombre premier de 160 bits, tel que q divise p-1
g est un nombre entre 2 et p-1, dit "générateur" (il génère un
sous-groupe de Zp* d'ordre q)
x (la clé privée) est un nombre entre 0 et q-1
y = g^x mod p
Une caractéristique intéressante des clés DSA est que plusieurs clés
publiques distinctes peuvent se partager les mêmes paramètres p, q et
g, sans que cela pose de problème de sécurité.


Donc dans le cas de PGP/GPG, y n'est pas compris dans le KeyID, ce qui
explique qu'on ait plusieurs clé différentes avec le même KeyID ?

[...] Dans les protocoles où on a besoin de
chiffrement (SSL, par exemple) et où on veut utiliser DSA, on utilise
un autre algorithme en plus, dit "Diffie-Hellman" (du nom de ses
inventeurs), qui fait la partie chiffrement.


Précision : DH permet de partager une clé de chiffrement symétrique, DSA
faisant la partie authentification pour assurer que cette clé symétrique
provient bien de la bonne personne, et qu'on peut donc l'utiliser
ensuite en toute sécurité pour chiffrer des données confidentielles.

PS : je sais qu'il y a quelques raccourcis dans ce que j'ai raconté,
mais ce message est déjà suffisamment kilométrique comme ça.


Le mien pas encore, donc je peux en retirer un :-)

Avatar
pornin
According to Jean-Marc Desperrier :
Donc dans le cas de PGP/GPG, y n'est pas compris dans le KeyID, ce qui
explique qu'on ait plusieurs clé différentes avec le même KeyID ?


Je ne suis pas un spécialiste de PGP : je veux dire que je sais assez
bien comme ça marche dedans et quels sont les problèmes liés au courrier
sécurisé, mais que PGP a défini par ailleurs son propre vocabulaire
de façon plus ou moins indépendante du monde de la recherche en
cryptographie, et que donc je ne suis pas toujours sûr de ce que désigne
dans l'interface utilisateur de PGP un terme comme "KeyID".

Ceci étant, j'ai ouï dire qu'à chaque clé PGP est associée une valeur
de 32 bits, qui pourrait bien être ce "KeyID". Son but est de faciliter
les recherches de clés publiques sur les serveurs de telles clés.
En ce sens, cette valeur ne remplit pas de fonction de sécurité,
plutôt d'optimisation. Comme 32 bits, c'est peu, il y a forcément des
collisions ("forcément" = c'est obligé dès qu'on dépasse les 4 milliards
de clés en circulation, et en fait, si c'est calculé comme un haché de
la clé publique, des collisions doivent apparaître quand on commence à
considérer un peu plus de 60000 clés).

Pour ce qui est d'associer une valeur garantie unique à chaque clé
publique, c'est une autre valeur dite "finger print". Celle-là est plus
grande (genre 16 octets = 128 bits).


Précision : DH permet de partager une clé de chiffrement symétrique, DSA
faisant la partie authentification pour assurer que cette clé symétrique
provient bien de la bonne personne, et qu'on peut donc l'utiliser
ensuite en toute sécurité pour chiffrer des données confidentielles.


Oui. Et, dans le même genre, quand on envoie un message chiffré en RSA,
ce qu'on fait en général, c'est chiffrer le message avec un algorithme
symétrique genre AES et une clé aléatoire choisie pour l'occasion, puis
chiffrer cette clé avec RSA.


--Thomas Pornin

Avatar
harry
moi j'utilise GnuPG avec son interface graphique, GPGshell et WinPT


le gros défaut : lors du cryptage, l'original reste présent sur le disque,
en clair.... C'est un peu étonnant de la part d'un logiciel de cryptage, ça
revient à installer une porte blindée dans sa maison et laisser les fenetres
ouvertes...........

Lorsque je coche la case "Wipe original" (effacer l'original) dans win PT,ça
ne marche pas.

qqun a t-il une solution ?
Avatar
Sebastien Reister
harry wrote:

moi j'utilise GnuPG avec son interface graphique, GPGshell et WinPT


le gros défaut : lors du cryptage, l'original reste présent sur le disque,
en clair.... C'est un peu étonnant de la part d'un logiciel de cryptage, ça
revient à installer une porte blindée dans sa maison et laisser les fenetres
ouvertes...........


ça me semble normal, comme tu le dis c'est un logiciel de cryptage pas
de suppression, c'est a toi que revient le choix de supprimer par les
moyens idoine l'original en clair.

Un logiciel de cryptage qui supprime mon original sans me demander mon
avis ça me generais un peu. Je prefere le wiper moi même car on est
jamais a l'abri d'une fausse manip.

Cordialement.

Avatar
Laurent Jumet
Hello !

Sebastien Reister wrote:

SR> Un logiciel de cryptage qui supprime mon original sans me demander mon
SR> avis ça me generais un peu. Je prefere le wiper moi même car on est
SR> jamais a l'abri d'une fausse manip.

Il encrypte la comptabilité de son entreprise au nom d'un utilisateur
décédé, et s'aperçoit qu'il a oublié de mettre Encrypt_to_self.
:-)


Laurent Jumet - Point de Chat, Liège, BELGIUM
KeyID: 0xCFAF704C
[Restore address to laurent.jumet for e-mail reply.]
Avatar
gilbertf
harry wrote:

moi j'utilise GnuPG avec son interface graphique


j'ai pu lire les posts de plusieurs personnes concernant
gnupg et son absence d'interface graphique integree.
c'est un peu le but recherche a vrai dire. le binaire
de gnupg, gpg, a ete concu sans interface graphique
expres. son role est de fournir un backend de chiffrement.
son boulot c'est de chiffrer et dechiffrer et il a ete
concu depuis l'origine pour pouvoir etre utilise avec
une couche graphique par-dessus (et ya plein d'options
pour ca). la documentation technique indique en outre
clairement ce fait.

le gros d?faut : lors du cryptage, l'original reste
pr?sent sur le disque, en clair.... C'est un peu
?tonnant de la part d'un logiciel de cryptage


non. un logiciel de chiffrement chiffre. une fois
que tu as chiffre c'est a toi d'effacer l'original.
sous unix (netbsd) j'utilise srm (secure rm) avec
la methode presentee par gutmann dans son papier.

tu dois en outre considerer autre chose que l'original.
quand on utilise gnupg et que la memoire n'est pas
verrouillee il produit un avertissement. en gros,
gnupg tente de "verrouiller" la memoire pour que
certaines choses sensibles (en gros: ta phrase
passe quand tu la tapes avant qu'elle soit hachee,
ou encore les donnees decodees de ta clef privee
le temps de les utiliser) ne se retrouvent pas dans
le swap du systeme d'exploitation utilise.

sous unix, faut etre root pour que gnupg puisse
faire un tel verrouillage. on contourne ce petit
probleme en utilisant gnupg depuis le compte d'un
simple user EN chiffrant son swap. il est assez
facile sous unix de chiffrer son swap: openbsd
c'est juste un sysctl et sous netbsd c'est presque
aussi facile.

sous windows les gens ne comprenaient pas trop
la signification du message et a force il a ete
retire. c'est une erreur car si jamais ces donnees
se retrouvent dans le swap de windows (et ca arrive
tres vite sous windows qui utilise beaucoup son
swap de par la programmation de sa memoire virtuelle)
et donc utiliser gnupg sous windows c'est courir
le risque que ces donnees se retrouvent en clair
sur ton disque.

bref tu as des trucs genre bcpwipe (je dis le
nom du soft de memoire) qu'on peut installer
et qui chiffre le swap de windows via de l'aes
avec une clef au hasard generee a chaque boot.
je conseille franchement d'avoir son swap chiffre
sous windows et unix-alike bien entendu.

pour l'effacement de l'original, faut utiliser
srm ou un eventuel portage sous windows. vu le
principe de fonctionnement ca doit etre assez
facile a faire mais bon moi et windows ca fait
/dev/null

[..] laisser les fenetres ouvertes...........


ton swap est deja une fenetre bien ouverte.
et comme le swap est mis sur ton disque dur
ya surement plein de bonnes choses dedans.

--
Gilbert Fernandes

1 2