Je soumets ici la deuxième version de mon protocole, la bonne j'espère. La solution consistait à tronquer à partir de la gauche, et non à partir de la droite. La clé est donnée en fin de suite et non plus au début, et augmente en fonction de g.

PROTOCOLE
Alice et Bob choisissent un nombre entier impair de taille identique, si possible premier.
X = 679114364893
Y = 276022328279
Ils le divisent par une puissance de 2 inférieure à X et Y, qui est publique.
g = 2^15
Alice divise X par g
X / g =
20724925.686431884765625
Bob divise Y par g
Y / g =
8423532.967498779296875
Ils suppriment la partie entière et conservent la partie décimale (D), qui est publique.
D1 = 686431884765625 (Alice)
D2 = 967498779296875 (Bob)
Alice multiplie D2 par X :
967498779296875 * 679114364893 =
657042319036 [9500427246093] 75
Bob multiplie D1 par Y :
686431884765625 * 276022328279 =
189470527037 [9500427246093] 75
La clé est la partie entre crochets.
NB : la partie entière (supprimée) doit comporter au moins 30 chiffres, autrement dit X et Y doivent comporter au moins 60 chiffres, avec g = 2^29 ou 2^59.
Yann JC COUDERT, 24/04/2024