Les Forums

Les Forums

Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer

Cryptographie & Diffie-hellman & javacard

Bonjour,

J’essaye d’implémenter une solution de diffie-hellman sur une java card. Mon problème est que l’API javacard est très limitée et me propose de traiter une telle solution avec une courbe elliptique. Apres certaines recherches sur internet j’ai eu le scenario suivant :

1) Un client choisit un point P aléatoirement sur une courbe elliptique E et un entier n.
2) Le client calcule n.P et transmet le résultat au serveur.
3) Le serveur calcule la clé secrète K=m.(n.P) et transmet m.P au client (m étant un nombre aléatoire).
4) Le client calcule K= n.(m.P)

Sur ce scenario mon problème vient de la phase n°3, le serveur à besoin de connaitre le point P pour calculer m.P . Il faut donc que le client transmette ce point lors de la phase n°1 (de ce fait on perd toute la sécurité car si un pirate écoute la conversation il va avoir m.P et P, il pourra connaitre alors m…).
Faut-il que le client transmette plutôt les données requises pour la reconstruction de la même courbe elliptique sur le serveur ? Et que celui-ci sélectionne un point P’ sur la courbe E’ ? (mais la clé sera donc différente ?)

Une fois la clé secrète et la clé DES obtenues, comment obtenir une clé DES secrète au deux parties ? (la clé secrète intervient lors du cryptage ou alors elle sert à obtenir une clé DES secrète ?) .

Merci de votre aide
Cordialement
Bonsoir,

Je ne m'y connais pas en Java et en mathématiques mais dit comme ça, Messieurs Diffie & Hellman n'ont plus aucun mérite !

En fait, la génération de clé par Diffie-Hellman est basé sur un calcul de nombres premiers. En échangeant certaines valeurs, les deux parties peuvent calculer chacune de leur côté un secret partagé sans qu'une tierce partie puisse deviner la clé. Attention, cela reste sensible à une attaque d'homme du milieu (A et B se parlent mais C se fait passer pour B auprès de A et pour A auprès de B). Le procédé de Diffie-Hellman nécessite donc une authentification.

G (Générateur), P (Premier) / Valeurs publiques tirées
Xa, Xb / Valeurs aléatoires tirées gardées secrètes

A envoie Ya = [G^Xa (mod P)] à B
B envoie Yb = [G^Xb (mod P)] à A

A calcule K = [Yb^Xa (mod P)]
B calcule K = [Ya^Xb (mod P)]

P, G, Ya et Yb ne permettent pas de déduire K si Xa et Xb sont gardés secrets.

http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
bonjour,

Effectivement c'est la méthode de diffie-hellman, mais je ne peux avoir ces données au niveau de la programmation, j'ai juste accés au données de la courbe elliptique (ECDH -> elliptic curve for diffie-hellman). de ce fait je ne peux pas utiliser :



Ya = [G^Xa (mod P)]


quel lien y a t-il entre:
Ya = [G^Xa (mod P)] (méthode DH de base) et y² = x^3 +Ax +B (courbe elliptique)
Là... Je ne sais pas mais j'ai trouvé ça :

http://fr.wikipedia.org/wiki/Cryptographie_sur_les_courbes_elliptiques#.C3.89change_de_cl.C3.A9s

http://fr.wikipedia.org/wiki/%C3%89change_de_cl%C3%A9s_Diffie-Hellman#Principe
merci pour votre aide (j'ai trouvé un bout de réponse a ma question).


Si Eve a espionné leurs échanges, elle connaît E(a,b,p),P,dAP,dBP. Pour pouvoir calculer dAdBP, il faut pouvoir calculer dA connaissant P et dAP. C'est ce que l'on appelle résoudre le logarithme discret sur une courbe elliptique. Or, actuellement, si les nombres sont suffisamment grands, on ne connaît pas de méthode efficace pour résoudre ce problème en un temps raisonnable.


Par contre ce que je ne comprend pas c'est en quoi calculer dA connaissant P et dAP est difficile... j'ai du rater un cours de math sur les courbes elliptiques dans ma formation...
Je ne m'y connais pas en Java et en mathématiques mais dit comme ça, Messieurs Diffie & Hellman n'ont plus aucun mérite !

En fait, la génération de clé par Diffie-Hellman est basé sur un calcul de nombres premiers. En échangeant certaines valeurs, les deux parties peuvent calculer chacune de leur côté un secret partagé sans qu'une tierce partie puisse deviner la clé. Attention, cela reste sensible à une attaque d'homme du milieu (A et B se parlent mais C se fait passer pour B auprès de A et pour A auprès de B). Le procédé de Diffie-Hellman nécessite donc une authentification.
e dois trouver le moyen de se logger au serveur 2008 avec double authentification sur le même profil. C'est à dire à la demande de login, je présente un fingerprint puis j'insère une smart