OVH Cloud OVH Cloud

Théorie de l'échange de secret : Est-ce prouvé possible, ou impossible ?

48 réponses
Avatar
Patrick 'Zener' Brunet
Bonjour.

A force d'étudier des algorithmes et des protocoles visant à le résoudre en
pratique, j'en viens à me poser la question de la séparation entre la
difficulté théorique et la difficulté technologique du problème :

Soient A et B deux stations disposant chacune d'une enceinte protégée, mais
ne pouvant communiquer qu'à travers un canal non sécurisé :
- le canal est écoutable, enregistrable, non synchronisé,
- des messages peuvent être insérés par un usurpateur par rapport à A et/ou
à B,
- mais on suppose que le canal n'est pas interruptible : un message peut
toujours tôt ou tard parvenir à passer.

On suppose que A et B ne possèdent au départ aucun référentiel sémantique,
même élémentaire, qui soit un secret partagé par eux seuls. Seuls sont
partagés des référentiels publics.

Alors le problème consiste pour A et B, uniquement à travers des échanges
ainsi possibles mais non secrets, à construire ensemble un secret partagé
(même un simple booléen).

Et la question est là :

En ignorant toute contrainte d'ordre pratique (technologique, calculatoire,
etc.), et donc d'un point de vue purement théorique,
Est-il possible de démontrer que c'est possible, ou au contraire que c'est
impossible ?

Je n'ai jamais trouvé une telle démonstration soit positive soit négative,
et malheureusement ça dépasse un peu mes compétences (en théorie de
l'information et/ou en logique épistémique).

Pouvez-vous m'indiquer des pistes dans ce sens, dont je me repaîtrai avec
délice et reconnaissance ?

Merci d'avance.

Cordialement,

--

/**************************************************************\
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
\**************************************************************/
<8#--X--< filtré par Avast! 4 Home

10 réponses

1 2 3 4 5
Avatar
JL
Patrick 'Zener' Brunet wrote:

Est-il possible de démontrer que c'est possible, ou au contraire que
c'est impossible ?


Oui, c'est possible, depuis l'invention du chiffrement à clef publique dans
les années 70.

Pour prendre une analogie simple, chiffrer avec une clef publique revient à
envoyer à son correspondant un cadenas _ouvert_, sur lequel on a
préalablement gravé une signature inimitable, et dont on garde la clef.
L'usurpateur peut intercepter le cadenas, ça n'a aucune importance, il ne
peut rien en tirer.

Le destinataire vérifie l'authenticité de la signature apposée sur le
cadenas (laquelle constitue une référence publique qui lui garantit qu'il
provient de l'expéditeur initial), écrit son message secret, le signe, le
place dans une boîte qu'il verrouille ensuite avec le cadenas, et renvoie le
tout à l'expéditeur. Là encore l'usurpateur peut voir passer la boîte, mais
ça ne lui est pas plus utile. L'expéditeur initial n'a plus qu'à l'ouvrir
avec la clef du cadenas pour prendre connaissance du message secret, qu'il
authentifie grâce à la signature.

Le chiffrement à clef publique fournit exactement l'équivalent logique d'un
cadenas inviolable (seule la personne disposant de la clef peut l'ouvrir,
mais n'importe qui peut le fermer), d'une boîte incassable verrouillable
avec le cadenas (il faut forcément ouvrir le cadenas pour ouvrir la boîte),
et d'une signature inimitable à la fois pour le cadenas et le message
(n'importe qui peut vérifier à partir d'une référence publique que la
signature a bien été apposée par son propriétaire et pas par quelqu'un
d'autre).

JL.

Avatar
Christophe HENRY

En ignorant toute contrainte d'ordre pratique (technologique, calculatoire,
etc.), et donc d'un point de vue purement théorique,
Est-il possible de démontrer que c'est possible, ou au contraire que c'est
impossible ?


Le système Diffie-Hellmann-Merkle permet de constituer une clé
uniquement à partir des hypothèses que tu avances :
- protocole connu de tous
- pas de secret préalable
- canal ouvert

Une clé partagé est constituée, commune à chacune des parties. Tout
est public, et pourtant ils sont les seuls à connaître la clé commune.

L'utilisation de l'exponentiation modulaire - des maths, des vraies -
permet de faire cela. Par contre, ce n'est pas _théoriquement_
inattaquable. C'est juste qu'il faut à peu près tous les ordinateurs
actuels calculant ensemble pendant une durée au moins voisine de l'âge
de l'univers...

En pratique, donc : il existe un moyen de convenir d'un
secret partagé avec seulement des données publiques.

L'autre manière, celle indiquée par JL réalise (en gros) les deux
tâches simultanément : secret partagé et envoi de message. D'ailleurs,
avec Gnupg (voir ma signature) tu peux m'envoyer un message chiffré que
moi seul pourra lire.

Une page piquée au hasard : http://www.aprogsys.com/cryInfo05.shtml

--
Christophe HENRY
(sans lkm)
GnuPG : 3922239E60036EC86BF7268A877C52AC 4883C02A

Avatar
Raymond H.
L'autre manière, celle indiquée par JL réalise (en gros) les deux
tâches simultanément : secret partagé et envoi de message. D'ailleurs,
avec Gnupg (voir ma signature) tu peux m'envoyer un message chiffré que
moi seul pourra lire.

Une page piquée au hasard : http://www.aprogsys.com/cryInfo05.shtml



Bonjour,
J'ai vu la page en question, et j'y ai lu ceci:


1.. Les 2 participants ( A et B ) choisissent 2 grands entiers N, G. Il



n'est pas nécessaire qu'ils soient secrets.
2.. A choisi un nombre entier grand aleoire X et calcule GX MOD N.
3.. B choisi un nombre entier grand aleoire Y et calcule GY MOD N.
4.. A et B s'échange les nombres calculés aux 2 étapes précédentes.
L'échange n'a pas à être secret
5.. A calcule (Gy MOD N )x MOD N = Gxy MOD N = K
6.. B calcule (Gx MOD N )y MOD N = Gxy MOD N = K
<<<

Si j'ai bien compris, chaque participant choisi un grand nombre entier:
l'un choisi N et l'autre G. Est-ce que les étapes 5 et 6 doivent absolument
être respectées dans leurs moindres détails (y compris x et y) ? Que sont
x et y? J'imagine des exposants choisis au hasard. Pourrait-on me faire un
exemple de calcul?
Mais si 5 ou 6 chiffre une clef alors quel est le moyen de
déchiffrement?
a+
r.h.



Avatar
Francois Grieu
Dans l'article <4210f351$0$20546$,
"Patrick 'Zener' Brunet" posait:

Soient A et B deux stations disposant chacune d'une enceinte protégée,
mais ne pouvant communiquer qu'à travers un canal non sécurisé :
1) le canal est écoutable, enregistrable, non synchronisé,
2) des messages peuvent être insérés par un usurpateur par rapport
à A et/ou à B,
3) mais on suppose que le canal n'est pas interruptible : un message
peut toujours tôt ou tard parvenir à passer.

On suppose que A et B ne possèdent au départ aucun référentiel
sémantique, même élémentaire, qui soit un secret partagé par eux seuls.
Seuls sont partagés des référentiels publics.

Alors le problème consiste pour A et B, uniquement à travers des échanges
ainsi possibles mais non secrets, à construire ensemble un secret partagé.



AMHA le problème n'est PAS résoluble, même par Diffie-Hellmann.
En effet, un usurpateur, en procédant comme B, pourra se faire
passer pour B auprès de A (et de même, en procédant comme A,
l'usurpateur pourra se faire passer pour A aux yeux de B).
A peut partager un secret avec l'usurpateur en utilisant DH,
mais ce n'est pas le but. Et la condition 3) n'aide pas, car les
messages de B parvenant (avec retard) à A, ayant établi une
communication avec l'usurpateur en croyant la faire avec B,
seront indistinguables de messages d'un (autre) usurpateur.


François Grieu

Avatar
Ludovic FLAMENT
Bonjour,

1.. Les 2 participants ( A et B ) choisissent 2 grands entiers N, G. Il
n'est pas nécessaire qu'ils soient secrets.
2.. A choisi un nombre entier grand aleoire X et calcule GX MOD N.
3.. B choisi un nombre entier grand aleoire Y et calcule GY MOD N.
4.. A et B s'échange les nombres calculés aux 2 étapes précédentes.
L'échange n'a pas à être secret
5.. A calcule (Gy MOD N )x MOD N = Gxy MOD N = K
6.. B calcule (Gx MOD N )y MOD N = Gxy MOD N = K

Si j'ai bien compris, chaque participant choisi un grand nombre entier:
l'un choisi N et l'autre G.


Non pas vraiment. En fait N et G définissent le groupe dans lequel vont
s'effectuer les calculs :
- N correspond au module du groupe
- G est un générateur de ce groupe

Pour ce qui est de leur génération, elle peut-être effectué par l'un ou
l'autre des participants ou par un "arbitre" qui a la confiance des deux
participants.

Est-ce que les étapes 5 et 6 doivent absolument être respectées dans leurs moindres détails (y compris x et y) ? Que sont
x et y? J'imagine des exposants choisis au hasard. Pourrait-on me faire un exemple de calcul?


Je ne comprends pas ce que tu entends par être respectées dans leurs
moindres détails ?

Pour ce qui est de x et y, ce sont comme précisés aux étapes 2 & 3 de
grands nombres aléatoires (en fait dans la notation : x=X et y=Y).
1) A et B choisissent un groupe Diffie-Hellman définie par g
(générateur du groupe) et N (grands nombre premier)
2) A tire aléatoire x et calcule X = g^x mod N
3) B tire aléatoire y et calcule Y = g^y mod N
4) A et B s'échange X et Y
5) A calcule (Y^x mod N) = ((g^y)^x mod N) = g^(x*y) mod N = Key
6) B calcule (X^y mod N) = ((g^x)^y mod N) = g^(y*x) mod N = g^(x*y)
mod N = Key

Exemple:

1) A et B choisissent le groupe Diffie-Hellman définie par (g,N) =
(2,35963)
2) A génère aléatoirement xW52 ==> X=2^5752 mod 35963 ==> X948
3) B génère aléatoirement y866 ==> Y=2^15866 mod 35963 ==> Y469
4) A et B s'échange X et Y
5) A calcule 14469^5752 mod 35963 = 14467
6) B calcule 3948^15866 mod 3596 = 14467

A et B sont parvenus à générer un secret Key = 14467 qui peut être
utilisé pour du chiffrement par la suite.

Bien entendu dans un cas réel, le module du groupe (N) doit avoir une
taille d'au moins 1024 bits pour assurer une sécurité valable, de même X
et Y doivent être de grands nombres aléatoires (au moins 160 bits).


Mais si 5 ou 6 chiffre une clef alors quel est le moyen de
déchiffrement?
Il n'y a pas de chiffrement ou de déchiffrement. L'algorithme de

Diffie-Hellman, permet simplement de générer un secret (Key dans notre
cas) qui pourra ensuite être utilisé comme clef de chiffrement avec un
algorithme symétrique (AES par exemple).

--
Ludovic FLAMENT
http://ludovic.flament.free.fr


Avatar
Christophe HENRY


Alors le problème consiste pour A et B, uniquement à travers des échanges
ainsi possibles mais non secrets, à construire ensemble un secret partagé.


AMHA le problème n'est PAS résoluble, même par Diffie-Hellmann.
En effet, un usurpateur, en procédant comme B, pourra se faire
passer pour B auprès de A (et de même, en procédant comme A,
...


Effectivement. Dans mon raisonnement un peu rapide j'ai oublié qu'il
fallait aussi que les deux parties s'authentifient mutuellement. Du coup,
l'attaque dite de "l'homme du milieu" est possible.

En restant dans l'hypothèse de départ, en plus de l'algo RSA les
correspondants disposent aussi du certificat de l'Etat. Ce même
certificat qui aura servi à signer les clé publiques de chacun. Cela
résoud le problème de l'authentification et autorise donc la
communication sans secret partagé.

Evidemment, cela rajoute un maillon à la chaîne : il faut qu'un tiers de
confiance soit présent. En plus, rien n'interdit à l'attaquant d'avoir
falsifié le certificat du tiers à l'encontre de A et B.

--
Christophe HENRY
(sans lkm)
GnuPG : 3922239E60036EC86BF7268A877C52AC 4883C02A


Avatar
Patrick 'Zener' Brunet
Bonjour.

"JL" a écrit dans le message de news:
4211384c$0$6858$
Patrick 'Zener' Brunet wrote:

Est-il possible de démontrer que c'est possible, ou au contraire que
c'est impossible ?


Oui, c'est possible, depuis l'invention du chiffrement à clef publique
dans

les années 70.

Pour prendre une analogie simple, chiffrer avec une clef publique revient
à

envoyer à son correspondant un cadenas _ouvert_, sur lequel on a
préalablement gravé une signature inimitable, et dont on garde la clef.
L'usurpateur peut intercepter le cadenas, ça n'a aucune importance, il ne
peut rien en tirer.

<...>


Merci pour l'intention, mais c'est pas une bonne réponse :

J'ai déjà étudié les technologies en question.
J'insiste sur le fait que je réclame une preuve ou une contre-preuve qui
soit ***théorique et pas fondée sur une difficulté technologique***.

Tous les systèmes à clé publique reposent sur des problèmes mathématiques
réputés ***difficiles*** et donc qui le sont de moins en moins avec
l'avancée des technologies. D'où la fuite en avant dans la longueur des
clés.

Ca repose aussi sur l'utilisation de "tiers de confiance" qui ne font que
déplacer le problème et dont la mise en oeuvre poses au moins autant de
problèmes qu'elle en résout. De plus cette "confiance" (notion aberrante en
sécurité) est toute relative (noyautage, corruption, etc.).

Et c'est contre l'hypothèse de départ : deux stations isolées et sans
référentiel secret commun (même indirect).

Votre analogie de cadenas passe sous silence un problème fondamental : si un
dispositif physique (même s'il s'agit d'un simple photon pour la crypto
quantique) peut être inviolable (ie: non clonable et donc analysable
seulement par une lecture destructive), ce n'est pas le cas d'une donnée
pure qui peut être clonée à volonté.
Reprenez le protocole de la crypto quantique en supposant que C (l'intrus)
peut faire une copie exacte du photon avant de le lire et vous réduisez à
néant l'inviolabilité du système.

Et donc en reprenant le problème purement théorique ?

Merci,
Cordialement,

--

/**************************************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
**************************************************************/
<8#--X--< filtré par Avast! 4 Home


Avatar
Patrick 'Zener' Brunet
Bonjour.

"Christophe HENRY" a écrit dans le
message de news: curepj$2n33$

En ignorant toute contrainte d'ordre pratique (technologique,
calculatoire,


etc.), et donc d'un point de vue purement théorique,
Est-il possible de démontrer que c'est possible, ou au contraire que
c'est


impossible ?


Le système Diffie-Hellmann-Merkle permet de constituer une clé
uniquement à partir des hypothèses que tu avances :
- protocole connu de tous
- pas de secret préalable
- canal ouvert

Une clé partagé est constituée, commune à chacune des parties. Tout
est public, et pourtant ils sont les seuls à connaître la clé commune.

L'utilisation de l'exponentiation modulaire - des maths, des vraies -
permet de faire cela. Par contre, ce n'est pas _théoriquement_
inattaquable. C'est juste qu'il faut à peu près tous les ordinateurs
actuels calculant ensemble pendant une durée au moins voisine de l'âge
de l'univers...



Ce qui donc en fait une difficulté purement technologique.

Effectivement, le DH repose sur un problème mathématique difficile (pour les
grands nombres) et non déterminé (pour les petits), mais alors une simple
énumération permet de tabuler la fonction exponentielle et donc de supprimer
la fonction irréversible qui sert de clé de voûte au système.
D'ailleurs dans l'absolu, aucune fonction mathématique portant sur des
entiers et sur une espace fini n'est irréversible : il suffit de la tabuler
pour obtenir la liste des antécédents possibles d'une image, et ensuite de
procéder par essais exhaustifs.
Donc seule la complexité volumique s'y oppose, ce qui est une difficulté
purement technologique. Même le protocole DH réclame des nombres "assez
grands".

Ce n'est donc pas une bonne réponse par rapport à ma question.

Et donc en reprenant le problème purement théorique ?

Merci,
Cordialement,

--

/**************************************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
**************************************************************/
<8#--X--< filtré par Avast! 4 Home


Avatar
Patrick 'Zener' Brunet
Bonjour.

La question semble intéresser du monde, mais pour l'instant je n'ai vu
passer que des rappels des systèmes connus dont aucun ne répond au problème
fondamental.

Je vais donc préciser ci-dessous :

"Patrick 'Zener' Brunet" a écrit dans
le message de news: 4210f351$0$20546$
Bonjour.

A force d'étudier des algorithmes et des protocoles visant à le résoudre
en

pratique, j'en viens à me poser la question de la séparation entre la
difficulté théorique et la difficulté technologique du problème :



C'est à dire que le fait que l'analyse exhaustive des possibilités nécessite
un temps proche de l'âge de l'univers ****selon les connaissances
actuelles**** ne constitue pas une bonne réponse : de nouveaux algorithmes
et de nouvelles technologies peuvent apparaître et changer la donne (par
exemple, ma mise au point réputée imminente d'un ordinateur quantique peut
déboulonner le RSA), et déjà nous assistons à une fuite en avant dans la
grandeur recommandée pour les paramètres.

De même, le principe selon lequel ***on ne connaît pas de solution*** à un
certain problème ne constitue pas une bonne réponse : un génie peut la
trouver du jour au lendemain. Une vraie preuve serait ***il ne peut pas
exister de solution satisfaisant certains critères précis***.

Soient A et B deux stations disposant chacune d'une enceinte protégée,
mais

ne pouvant communiquer qu'à travers un canal non sécurisé :
- le canal est écoutable, enregistrable, non synchronisé,
- des messages peuvent être insérés par un usurpateur par rapport à A
et/ou

à B,
- mais on suppose que le canal n'est pas interruptible : un message peut
toujours tôt ou tard parvenir à passer.

On suppose que A et B ne possèdent au départ aucun référentiel sémantique,
même élémentaire, qui soit un secret partagé par eux seuls. Seuls sont
partagés des référentiels publics.



Ce qui suppose notamment que A et B ne sont pas en communication par un cana
l protégé, et qu'ils ne disposent pas à l'avance d'un quelconque certificat
garanti par un quelconque tiers de confiance.
A ne sait rien de B sinon qu'il veut s'adresser à "Mr B qui habite à tel
endroit et qui est né le....", et inversement..
Bref, une identification mutuelle formelle mais publique, qui ne constitue
pas une authentification. Construire une authentification à partir de
l'élaboration d'un secret partagé est un autre problème.

Alors le problème consiste pour A et B, uniquement à travers des échanges
ainsi possibles mais non secrets, à construire ensemble un secret partagé
(même un simple booléen).

Et la question est là :



*********Et seulement là SVP :-)

En ignorant toute contrainte d'ordre pratique (technologique,
calculatoire,

etc.), et donc d'un point de vue purement théorique,
Est-il possible de démontrer que c'est possible, ou au contraire que c'est
impossible ?

Je n'ai jamais trouvé une telle démonstration soit positive soit négative,
et malheureusement ça dépasse un peu mes compétences (en théorie de
l'information et/ou en logique épistémique).



****** Ayant déjà énormément étudié les techniques, c'est de ce genre de
soutien théorique dont j'ai besoin.

Pouvez-vous m'indiquer des pistes dans ce sens, dont je me repaîtrai avec
délice et reconnaissance ?

Merci d'avance.

Cordialement,

--

/**************************************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
**************************************************************/
<8#--X--< filtré par Avast! 4 Home


Avatar
Patrick 'Zener' Brunet
"Patrick 'Zener' Brunet" a écrit dans
le message de news: 4211d1ae$0$3837$
<...>

de nouvelles technologies peuvent apparaître et changer la donne (par
exemple, ma mise au point réputée imminente d'un ordinateur quantique


Simple faute de frappe, c'est LA mise au point... (moi je travaille sur
autre chose).

1 2 3 4 5