UNIVERSITÉ LIBRE DE BRUXELLES
Faculté des Sciences
Les protocoles de non-répudiation
Thèse présentée en vue de l’obtention
du grade de Docteur en Sciences
Olivier MARKOWITCH
Année académique 2000-2001
Remerciements
Je tiens à remercier Elena, mes parents, ma soeur, mes beaux-parents, mes
beaux-frères, ma belle-soeur et aussi ma petite nièce, qui m’ont supporté dans
tous les sens du terme durant ces dernières années.
J’exprime toute ma gratitude à Yves Roggeman pour m’avoir accueilli au sein
de son service, pour m’avoir suivi tout au long de ces années, pour avoir dirigé
et maintes fois relu cette thèse et enfin pour l’excellente ambiance de travail
qu’il crée au sein de son service.
Ma reconnaissance va aussi à Raymond Devillers qui a consacré un temps non
négligeable à de nombreuses relectures très attentives de mon manuscrit. Sa
rigueur scientifique et son ouverture d’esprit sont pour moi des exemples.
Je remercie bien entendu tous les membres de mon jury.
Un grand merci à Dieter Gollmann pour avoir accepté sans hésiter de faire partie
de mon jury, pour avoir patienté avant de recevoir le manuscrit et pour avoir
accepté de lire cette thèse en français.
Je remercie Guy Louchard pour avoir toujours répondu promptement et avec
intérêt aux questions que j’ai été amené à lui poser au cours de ma recherche.
Merci à Jean-Jacques Quisquater d’avoir accepté de faire partie de mon jury et
d’avoir accepté de recevoir cette thèse si tardivement.
Je tiens à ce que Steve et Shahrokh sachent tout le plaisir que j’ai à collaborer
avec eux. Un grand merci aussi à Jianying Zhou pour les multiples, fructueux
et chaleureux contacts que nous avons eus.
Je remercie mes collègues assistants, professeurs, chercheurs et secrétaires pour
avoir créé une atmosphère de travail incomparable et tellement agréable au cours
de ces années.
Je voudrais remercier (dans le désordre) Gregg, Laurent dit Récu, Joël, Marco,
Steve, Jean, Jean-Yves, Christian, les Anthony, Antony, les Laurent, Frédéric,
Christophe, Eric, Nicolas, Shahrokh, Abdelaziz, Malek, Gilles, Frank, Ismaël et
tout récemment Ana, Manu et Gabriel pour tous ces moments de camaraderie
qui ont épicé nos journées de travail. Un merci aussi à Pascaline qui m’a contacté
dès qu’une place d’assistant s’est libérée au département d’Informatique.
Je veux à nouveau exprimer mon affection à ma famille et mes amis pour l’amour
qu’ils me témoignent.
À Jacques Markowitch
Table des matières
Glossaire
1
Notations
3
Liste des protocoles
5
1 Introduction
2 La répudiation
7
13
2.1
Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3
Le service de non-répudiation . . . . . . . . . . . . . . . . . . . . 15
2.3.1
Les tierces parties de confiance . . . . . . . . . . . . . . . 16
2.3.2
Les preuves de non-répudiation . . . . . . . . . . . . . . . 18
2.3.3
Les disputes . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.4
Le temps . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4
L’équité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5
Les protocoles de non-répudiation . . . . . . . . . . . . . . . . . . 23
2.6
Protocoles de non-répudiation et équité
2.7
Le courrier électronique recommandé . . . . . . . . . . . . . . . . 24
2.8
Les protocoles d’échange équitable . . . . . . . . . . . . . . . . . 25
2.9
Protocoles d’échange équitable et de non-répudiation . . . . . . . 26
. . . . . . . . . . . . . . 23
2.10 Les types d’information . . . . . . . . . . . . . . . . . . . . . . . 27
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 Formalisation et propriétés
29
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2
La communication . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ii
Table des matières
3.3
Les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4
Les protocoles d’échange . . . . . . . . . . . . . . . . . . . . . . . 37
3.5
Vérification de protocoles d’échange . . . . . . . . . . . . . . . . 43
3.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4 Non-répudiation avec tierce partie de confiance
45
4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2
Méthodes avec tierce partie de confiance in-line . . . . . . . . . . 47
4.2.1
4.3
4.4
4.5
4.6
4.7
Le protocole de non-répudiation de Coffey et Saidha . . . 47
Méthodes avec tierce partie de confiance on-line . . . . . . . . . . 53
4.3.1
Le protocole de non-répudiation par balises . . . . . . . . 54
4.3.2
Le protocole de non-répudiation de Zhang et Shi . . . . . 61
4.3.3
Le protocole de non-répudiation de Zhou et Gollmann . . 67
4.3.4
Le protocole de Zhou et Gollmann avec révocation des
clés de signature . . . . . . . . . . . . . . . . . . . . . . . 73
Méthodes avec tierce partie de confiance off-line . . . . . . . . . . 74
4.4.1
Le protocole optimiste d’échange équitable d’Asokan . . . 74
4.4.2
Le protocole optimiste de non-répudiation de Zhou et Gollmann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4.3
Un protocole optimiste et efficace de non-répudiation . . . 89
4.4.4
La révocation des clés de signature dans un protocole optimiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
L’équité véritable . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5.1
Le protocole générique d’échange équitable de Boyd et Foo 98
4.5.2
Le protocole concret d’échange équitable de Boyd et Foo . 105
Notre approche de l’équité véritable
. . . . . . . . . . . . . . . . 108
4.6.1
Le protocole générique d’échange équitable . . . . . . . . 109
4.6.2
Notre premier protocole concret . . . . . . . . . . . . . . . 113
4.6.3
Notre second protocole concret . . . . . . . . . . . . . . . 116
4.6.4
Le protocole de non-répudiation . . . . . . . . . . . . . . . 119
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5 Non-répudiation sans tierce partie de confiance
127
5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2
L’approche calculatoire . . . . . . . . . . . . . . . . . . . . . . . . 127
5.3
L’approche probabiliste de la signature digitale de contrat . . . . 130
Table des matières
5.4
5.5
5.6
iii
La mise en gage faible . . . . . . . . . . . . . . . . . . . . . . . . 132
5.4.1
Un protocole d’échange rationnel . . . . . . . . . . . . . . 132
5.4.2
Un protocole d’échange équitable . . . . . . . . . . . . . . 134
5.4.3
Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Notre protocole probabiliste de non-répudiation . . . . . . . . . . 136
5.5.1
Le protocole générique . . . . . . . . . . . . . . . . . . . . 136
5.5.2
Le protocole concret . . . . . . . . . . . . . . . . . . . . . 142
5.5.3
Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6 Non-répudiation de groupe
149
6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.2
Les échanges cycliques . . . . . . . . . . . . . . . . . . . . . . . . 150
6.3
Un protocole d’échange équitable de groupe . . . . . . . . . . . . 150
6.4
Un protocole avec tierce partie de confiance on-line . . . . . . . . 153
6.5
6.4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.4.2
Le protocole . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.4.3
Un chiffrement de groupe . . . . . . . . . . . . . . . . . . 159
Un protocole avec tierce partie de confiance off-line . . . . . . . . 160
6.5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.6
Protocoles sans tierce partie de confiance . . . . . . . . . . . . . . 171
6.7
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7 Conclusion
177
Glossaire
Chiffrement et déchiffrement
Un système cryptographique est un quintuplet (M, E, K, C, D) tel que M
est l’ensemble des messages « clairs », E l’ensemble des chiffrés, K l’ensemble
des clés, C l’ensemble des fonctions de chiffrement et D l’ensemble des fonctions
de déchiffrement.
Une fonction de chiffrement C ∈ C : M × K → E, et la fonction de déchiffrement
associée D ∈ D : E × K → M sont telles que pour tout message m ∈ M et
toute clé de chiffrement k ∈ K associée à sa clé de déchiffrement k ′ ∈ K nous
avons e = C(m, k) ∈ E et m = D(e, k ′ ).
Un système cryptographique est sûr s’il est calculatoirement impossible 1 à partir
de la plupart des chiffrés e ∈ E de retrouver le message m ∈ M correspondant
et/ou la clé k ∈ K utilisée.
Un schéma de chiffrement symétrique est un schéma de chiffrement tel que
la clé de déchiffrement peut être calculée facilement à partir de la clé de chiffrement. Ainsi les deux clés doivent demeurer secrètes ; seules les entités habilitées
à chiffrer et à déchiffrer les possèdent. On parle aussi dans ce contexte de chiffrement à clés secrètes.
Un schéma de chiffrement asymétrique est un schéma de chiffrement tel que
la clé de chiffrement associée à une entité est publique et connue de tous ; on
l’appelle la clé publique de cette entité ; et tel que la clé de déchiffrement
associée ne peut être facilement déduite de la clé publique ; on l’appelle la clé
privée de déchiffrement, connue uniquement de l’entité habilité à déchiffrer.
Toute entité désirant envoyer confidentiellement un message à une autre entité
utilisera la clé publique de cette dernière pour chiffrer le message. Le destinataire
d’un message ainsi chiffré utilisera sa clé privée pour le déchiffrer.
Les signatures digitales
Un schéma de signature digitale consiste en un algorithme de génération de
signature et un algorithme de vérification associé.
1
Calculatoirement impossible signifie que les délais nécessaires afin de retrouver un message
clair ou une clé dépassent la durée de validité du message et/ou de la clé, et ce sur base de la
technologie actuelle et celle supposée par extrapolation pendant cette durée.
2
Glossaire
Un algorithme de génération de signature produit, sur base de la clé privée 2 du
signataire et pour un message donné, un string binaire qui associe ce message
au signataire, ou plus précisément à sa clé publique de signature.
L’algorithme de vérification est une méthode qui vérifie, au moyen de la clé
publique de signature du signataire, si une signature donnée sur un message est
valide.
Un schéma de signature est dit avec appendice si l’algorithme de vérification
se base sur la signature digitale produite ainsi que sur le message correspondant
pour déterminer la validité de cette signature. Le message peut ainsi être dissocié
de la signature.
Un schéma de signature est dit avec recouvrement si l’algorithme de vérification ne se base que sur la signature digitale produite pour déterminer sa
validité. La procédure de vérification extraira en outre de cette signature digitale
le message qui a été signé (le message est donc intégré dans la signature). Ces
techniques utilisent des fonctions de redondance afin de s’assurer de la validité
des signatures.
Les fonctions de hachage
Une fonction de hachage est une fonction qui accepte des données binaires de
tailles quelconques et qui produit des résultats binaires de taille fixe (propriété
de compression). L’évaluation de cette fonction doit être aisée (la complexité de
l’algorithme d’évaluation de cette fonction doit s’exprimer polynomialement, et
de préférence linéairement, en fonction de la taille des données).
Une fonction de hachage peut être paramétrée ou non par une clé secrète, les
fonctions de hachage s’appellent alors respectivement message authentication
code (MAC) ou manipulation detection code (MDC)3 .
Une fonction de hachage est dite résistante à la préimage si pour la plupart des
valeurs produites par cette fonction il est calculatoirement impossible de trouver
une donnée de départ produisant cette valeur de résultat.
Une fonction de hachage est dite résistante à la seconde préimage si à partir
d’une donnée de départ connue il est calculatoirement impossible de trouver
une donnée de départ distincte produisant le même résultat.
Une fonction MDC est dite à sens unique si elle respecte les propriétés de résistance à la préimage et de résistance à la seconde préimage.
Une fonction MDC à sens unique est résistante aux collisions, s’il est calculatoirement impossible de trouver deux valeurs de départ distinctes produisant le
même résultat. Une telle fonction de hachage sera dite sûre 4 .
2
Les schémas de signatures utilisent aussi des clés publiques et privées. La clé privée est
utilisée pour générer la signature et la clé publique est utilisée pour la vérifier.
3
Ces fonctions de hachage peuvent aussi s’appeler CRC ou checksum dans la littérature.
4
Les fonctions de hachage sont parfois classées en deux catégories : les fonctions de hachage
fortement à sens unique, que nous appelons ici fonctions de hachage sûres ; et les fonctions de
hachage faiblement à sens unique, que nous appelons ici fonctions de hachage à sens unique.
Notations
Les entités
A, B, O, C : Alice, Bob, Oscar et Colin
TPC : une tierce partie de confiance
AGT : une autorité de gestion du temps
X et Y : deux entités génériques
β : un ensemble d’entités
Les clés
KX : la clé5 publique de l’entité X
′
KX
: la clé privée de X associée à la clé publique KX
KX1 ...Xn : la clé secrète de session partagée par les n entités X1 . . . Xn
K ou k : une clé de session échangée au cours d’un protocole
Le chiffrement et déchiffrement
K̃ : une clé d’un des types décrits ci-dessus
CK̃ (m) : le chiffrement du message m au moyen de la clé K̃
DK̃ (m) : le déchiffrement du message m au moyen de la clé K̃
Cβ (m) : le chiffrement du message m pour les membres de β
Les signatures digitales et fonctions de hachage
SigX (m) : la signature digitale avec appendice réalisée par X sur le message m
f X (m) : la signature digitale avec recouvrement réalisée par X sur le message
Sig
m
h(m) : une fonction de hachage cryptographiquement sûre 6 sans clé sur le
message m
Les envois
A → B : Alice envoie un message à Bob
5
Par souci de lisibilité, les clés publiques, privées et secrètes seront indistinctement notées
en majuscules ou en minuscules (certains protocoles usant parfois de la lettre K majuscule
pour représenter d’autres concepts qu’une clé publique).
6
Voir le glossaire.
4
Glossaire
A ↔ B : Bob prend une information sur un répertoire public 7 d’Alice
A ⇔ B : Alice et Bob exécutent un protocole
A ⇒ β : Alice diffuse8 un message vers un groupe de récipiendaires β
7
Certains protocoles que nous étudions font usage d’un répertoire public (un répertoire
géré par une entité et accessible en lecture à d’autres entités au travers d’un réseau). Dans
la littérature, les consultations dans ces répertoires sont notées par ↔, nous conservons ainsi
cette notation qui peut cependant ne pas être intuitive.
8
multicast en anglais.
Liste des protocoles
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
5.1
5.2
5.3
5.4
6.1
6.2
6.3
6.4
Le protocole de Coffey et Saidha . . . . . . . . . . . . . . . .
Le protocole par balises de Rabin . . . . . . . . . . . . . . . .
Le protocole de Zhang et Shi . . . . . . . . . . . . . . . . . .
Le protocole de Zhou et Gollmann . . . . . . . . . . . . . . .
Le protocole modifié de Zhou et Gollmann . . . . . . . . . . .
Le protocole d’Asokan et. al . . . . . . . . . . . . . . . . . . .
Le protocole optimiste de Zhou et Gollmann . . . . . . . . . .
Un protocole optimiste et efficace de non-répudiation . . . . .
Le protocole générique de Boyd et Foo . . . . . . . . . . . . .
Le protocole générique modifié de Boyd et Foo . . . . . . . .
Le protocole concret de Boyd et Foo . . . . . . . . . . . . . .
Un protocole générique implémentant l’équité véritable . . . .
Un premier protocole concret implémentant l’équité véritable
Un second protocole concret implémentant l’équité véritable .
Un protocole de non-répudiation respectant l’équité véritable
Le protocole d’échange rationnel de Syverson . . . . . . . . .
Le protocole d’échange équitable de Syverson . . . . . . . . .
Un protocole générique sans tierce partie de confiance . . . .
Un protocole concret sans tierce partie de confiance . . . . . .
Le protocole d’échange équitable de groupe d’Asokan et. al . .
Un protocole de non-répudiation de groupe avec TPC on-line
Un protocole de non-répudiation de groupe avec TPC off-line
Un protocole d’échange sans tierce partie de confiance . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
48
54
61
67
74
75
85
90
100
102
105
109
114
117
120
133
134
136
142
151
154
161
172
Chapitre 1
Introduction
Ce travail est consacré à l’étude des protocoles de non-répudiation. Le but de
tels protocoles est simple : des entités qui communiquent désirent s’assurer que
les messages qu’elles envoient soient bien reçus et veulent connaître avec certitude l’origine des messages qu’elles reçoivent. Les informations produites au
cours de ces protocoles devront aussi permettre à ces entités de prouver à des entités tierces qu’elles ont reçu un message d’une entité ou qu’un message qu’elles
ont envoyé a été reçu. Si ces buts paraissent simples et leur utilité évidente, il
a cependant fallu attendre la deuxième moitié des années nonantes pour que
l’étude des protocoles de non-répudiation débute réellement.
Dans un contexte informatisé, les entités en communication peuvent se trouver
à de grandes distances, les réseaux utilisés pour les connecter offrent des qualités
de service variables en terme de rapidité, fiabilité et de confidentialité. Ainsi les
mécanismes à mettre en œuvre, afin de s’assurer du succès des communications
et de la non-répudiabilité des envois, ne sont pas élémentaires.
L’étude des protocoles de non-répudiation est intéressante, en outre, à plusieurs
titres. Tout d’abord, un intérêt pratique est induit par l’essor du commerce
électronique. Ensuite, comme nous le verrons tout au long de cette étude, de
nombreux outils cryptographiques sont utilisés pour mettre au point les protocoles de non-répudiation. Les protocoles de non-répudiation sont en effet, entre
autres, basés sur des mécanismes d’intégrité, les signatures digitales, le chiffrement symétrique et asymétrique. . .
Ces outils seront cependant souvent utilisés de manière générique : la plupart
des protocoles étudiés ou proposés supposeront l’existence de ces outils, mais
ne seront pas dépendants d’un algorithme précis. La sécurité des protocoles ne
dépendra donc pas de la robustesse (sécuritaire) d’un algorithme particulier,
mais plutôt de l’existence (même théorique) d’un tel algorithme robuste.
Enfin, le sujet n’étant étudié que depuis peu de temps, nous présenterons dans
ce travail la quasi totalité des résultats en relation avec les protocoles de nonrépudiation au moment de sa rédaction.
Notre but a été triple. Nous nous sommes, dans un premier temps, proposé de
présenter la somme des connaissances existantes liées aux protocoles de non-
8
Chapitre 1 : Introduction
répudiation. Cette présentation de l’existant est faite au-travers des différents
chapitres et est itérative. En effet, au cours des années, les desiderata liés aux
protocoles de non-répudiation ont évolué. Au sein de chaque chapitre nous suivons cette évolution comme fil conducteur. La plupart des protocoles existants
font usage d’une tierce partie de confiance qui assure la bonne marche du protocole. Nous présentons les contraintes de plus en plus restrictives imposées aux
tierces parties de confiance. D’un autre côté, nous décrivons les rares protocoles sans tierce partie de confiance existant dans des domaines connexes à la
non-répudiation.
Dans un deuxième temps, nous présentons de nouveaux protocoles en relation
avec chaque évolution « clé ». Nous proposons des protocoles avec tierce partie de
confiance, le premier protocole de non-répudiation sans tierce partie de confiance
ainsi que les premiers protocoles de non-répudiation à plus de deux parties.
Enfin, dans un troisième temps, nous modélisons les protocoles d’échange et
nous nous basons sur ce modèle pour définir la notion d’équité. Les protocoles
d’échange d’information qui respectent la propriété d’équité sont tels qu’ils empêchent des entités malhonnêtes impliquées dans le protocole de nuire aux entités
honnêtes. Les définitions basées sur le modèle proposé sont utilisées tout au long
de l’étude afin de vérifier la validité des protocoles.
Chaque protocole de non-répudiation sera étudié sous plusieurs aspects :
– Nous vérifierons tout d’abord le respect de la propriété d’équité.
– Nous nous assurerons aussi que le protocole se termine en un temps fini (le
protocole sera alors dit temporellement fini).
– Nous considérerons par la suite les disputes qui peuvent survenir après la réalisation du protocole. En effet, le but des protocoles de non-répudiation est
de faire en sorte qu’aucune des entités en communication ne puisse affirmer
quelque chose de faux à propos des échanges de messages. Ainsi, après le protocole, si des entités ne sont pas d’accord sur l’origine ou la réception d’un
message, elles pourront présenter le différent à un juge qui sera en mesure de
déterminer objectivement, pour peu que le protocole utilisé lors de l’échange
de messages soit correct, ce qui s’est passé au cours du protocole.
– Nous verrons aussi dans quelle mesure le protocole réalise l’échange des informations avec succès lorsque toutes les entités en communication sont honnêtes. Cette propriété, appelée viabilité, n’est pas automatiquement impliquée
par la propriété d’équité : un protocole d’échange équitable peut être tel qu’aucun échange n’ait lieu au cours du protocole même si les entités participantes
sont toutes honnêtes. Nous verrons que cette propriété toute simple ne sera
parfois vérifiée que si des contraintes additionnelles sont greffées au protocole.
– Certains protocoles font usage d’une tierce partie de confiance pour assurer
l’équité. Cette tierce partie intervient dans le protocole pour aider les entités
à échanger les informations et est considérée comme étant toujours honnête.
9
Pour chaque protocole utilisant une telle tierce partie nous ébaucherons cependant l’étude de l’impact d’une déviance du comportement de cette tierce
partie de confiance. Pour chaque cas de déviance identifié, nous déterminerons
dans quelle mesure les entités peuvent le détecter.
L’étude est composée des cinq chapitres principaux suivants, numérotés de deux
à six.
Au chapitre 2, nous introduisons les concepts propres aux protocoles de nonrépudiation. Nous situons les protocoles de non-répudiation dans le cadre des
protocoles d’échange. Nous introduisons la propriété d’équité, la notion de preuve
de non-répudiation et le rôle éventuel des tierces parties de confiance.
Le chapitre 3 reprend les différentes formalisations que nous proposons. Nous y
modélisons un acteur, une communication, un protocole, un protocole d’échange
et un protocole de non-répudiation. Sur base ce modèle, nous proposons une
définition de l’équité, de la borne dans le temps et de la viabilité.
L’étude des protocoles de non-répudiation à deux entités faisant usage de tierces
parties de confiance est réalisée au chapitre 4. Ce chapitre reprend la quasi totalité des protocoles de non-répudiation existants. Ces protocoles sont étudiés à la
lumière du modèle et des définitions proposés au chapitre précédent. Nous progressons au cours de ce quatrième chapitre en suivant l’évolution qu’ont connue
les protocoles de non-répudiation ces dernières années. Nous mettons ainsi en
évidence l’effort réalisé pour diminuer la lourdeur induite par les tierces parties
de confiance, tout en ne s’en passant jamais tout à fait :
– Les premiers protocoles de non-répudiation font usage d’une tierce partie de
confiance comme intermédiaire à chaque envoi de message ; nous présentons
dans ce contexte le protocole de Coffey et Saidha.
– Puis les protocoles ont été voulus tels que la tierce partie de confiance intervienne mais plus comme intermédiaire obligé. Nous illustrons cela par le
protocole par balises de Rabin, le protocole de Zhang et Shi, et le protocole
de Zhou et Gollmann.
– Une évolution des protocoles de non-répudiation avec tierce partie de confiance a été réalisée en proposant que la tierce partie de confiance n’intervienne
plus qu’en cas de problème au cours du protocole. Ainsi des entités honnêtes
réaliseraient le protocole sans intervention de la tierce partie. Nous présentons
à ce propos les protocoles d’Asokan et al., et de Zhou et Gollmann, ainsi qu’un
nouveau protocole que nous avons conçu en collaboration avec Steve Kremer
et qui corrige certains manquements des protocoles précédents. Ce protocole
a été développé indépendemment d’un autre protocole réalisé par Zhou et al.
lequel corrige d’une manière assez proche les manquements existants.
– Nous introduisons alors la notion d’équité véritable qui impose que, quelle que
soit la manière dont se déroule le protocole, les informations échangées soient
10
Chapitre 1 : Introduction
toujours les mêmes (que la tierce partie de confiance soit intervenue ou non).
Nous évoquons les travaux de Chen et présentons les protocoles proposés par
Boyd et Foo. Nous proposons alors trois nouveaux protocoles dans cette famille, dont un protocole de non-répudiation respectant l’équité véritable. Ces
protocoles résultent de travaux réalisés en grande partie en collaboration avec
Shahrokh Saeednia.
Au chapitre 5 sont abordés les protocoles de non-répudiation à deux entités
sans tierce partie de confiance. Aucun protocole de non-répudiation n’avait été
proposé dans ce contexte. Nous présentons les travaux existants les plus proches
de nos besoins de non-répudiation et décrivons les premières techniques allant
dans cette direction, proposées au cours des années quatre-vingts, mais qui ont
des exigences trop sévères en terme de puissance de calcul des diverses entités
pour être réalistes. Nous étudions ensuite une approche probabiliste de l’équité
dans les protocoles d’échange de signatures digitales sur un contrat, qui ne s’applique cependant pas aux protocoles de non-répudiation. Nous présentons alors
une approche originale de Syverson qui permet une brisure de l’équité afin de
s’affranchir de la tierce partie de confiance. Enfin nous proposons un protocole générique de non-répudiation permettant de se passer de la tierce partie
de confiance au risque d’une perte probabiliste d’équité. La probabilité que le
protocole ne soit pas équitable peut être paramétrée et être rendue aussi petite
que voulue au prix d’une augmentation des échanges et des calculs à réaliser.
Nous proposons alors un protocole concret basé sur ce protocole générique et qui
est performant dans le sens où, si on désire réduire le risque de perte d’équité,
seule la quantité d’information à transmettre augmente et non la quantité de
calcul à réaliser. Ce travail a été réalisé en collaboration avec Yves Roggeman.
Les protocoles proposés sont à l’heure actuelle les seuls protocoles connus de
non-répudiation sans tierce partie de confiance.
Le sixième chapitre étudie les protocoles de non-répudiation où plus de deux entités désirent communiquer. Nous examinons l’unique protocole d’échange existant s’approchant de nos besoins. Nous mettons en évidence les manques de
ces protocoles par rapport aux protocoles de non-répudiation de groupe et nous
proposons deux nouveaux protocoles de non-répudiation de groupe avec tierce
partie de confiance. Ces travaux résultent également d’une collaboration avec
Steve Kremer. Nous évoquons alors la non-répudiation de groupe sans tierce
partie de confiance basée sur les protocoles définis au cinquième chapitre, puis
nous proposons un protocole d’échange de groupe sans tierce partie de confiance au cours duquel l’équité peut être brisée à tout moment en connaissance
de cause par les entités en communication (d’une manière similaire à celle proposée par Syverson au cinquième chapitre). Aucune généralisation à plus de deux
entités en communication n’avait préalablement été proposée dans le cadre des
protocoles de non-répudiation.
Nous concluons alors et identifions quelques travaux qui pourraient être réalisés
dans un proche futur.
Ce travail s’articule autour de la modélisation des protocoles d’échange, propo-
11
sée au troisième chapitre. Ces formalismes servent de canevas aux analyses de
protocoles réalisées dans tous les chapitres suivants.
L’apport de ce travail est donc étroitement lié aux buts que nous nous étions
fixés. À savoir, proposer un modèle à la lumière duquel tous les protocoles existants ou proposés sont abordés et critiqués ; présenter, au sein de cette mise en
forme, l’ensemble des protocoles de non-répudiation connus au moment de la
rédaction de cette thèse, offrant ainsi au lecteur une vision globale et structurée
du sujet ; enfin, proposer plusieurs protocoles de non-répudiation innovants, ou
généralisant des notions existantes. Ainsi, la notion de points de complétude
définis à la section 3.4 est à la base du principe de la démonstration d’équité
exposée à la section 3.5 et utilisée aux chapitres 4 à 6. D’un autre côté, tout au
long des chapitre 4 et 6, nous avons systématiquement envisagé différents comportements malhonnêtes de la tierce partie de confiance. Notre travail original
démontre aussi la faisabilité de plusieurs généralisations ainsi que de la réduction de contraintes irréalistes. À la section 4.4.3 nous proposons un protocole de
non-répudiation avec tierce partie de confiance qui allège les contraintes pesant
sur les canaux de communication nécessaires au protocole qui était précédemment le plus abouti. À la section 4.6, dans le cadre de protocoles respectant
une propriété d’équité dite véritable, nous présentons un protocole d’échange
équitable plus efficace (en termes de calculs et de communications) que les protocoles existants. Nous proposons, à la même section, le premier protocole de
non-répudiation respectant l’équité véritable. Un protocole de non-répudiation
ne nécessitant pas de tierce partie de confiance et respectant la propriété d’équité
de manière probabiliste est proposé et décrit à la section 5.5. Enfin, différentes
généralisations des protocoles de non-répudiation à plus de deux entités (outre
l’éventuelle tierce partie de confiance) sont envisagées aux sections 6.4 et 6.5.
Nous y présentons deux protocoles de non-répudiation, utilisant une tierce partie de confiance, au cours desquels une entité communique simultanément avec
n autres entités.
Ceci sera à nouveau développé dans notre septième et dernier chapitre en guise
de conclusion.
Chapitre 2
La répudiation
2.1
Préambule
Au cours de ce chapitre nous allons introduire les différents concepts nécessaires à la compréhension des protocoles de non-répudiation. Ces notions seront
décrites informellement ici et seront pour la plupart d’entre elles reprises formellement au chapitre 3. Cependant certaines définitions de moindre importance,
dans le cadre de ce travail, ne seront décrites que dans ce chapitre (tels les types
d’information, etc.).
2.2
Introduction
La répudiation est un des écueils sur lesquels un protocole de communication
peut échouer, et ce pour diverses raisons qui seront abordées dans ce chapitre.
Informellement, nous pouvons dire que, dans le contexte de la sécurité informatique, la répudiation est le comportement d’une partie qui a été impliquée dans
une communication au travers d’un réseau et qui, par la suite, nie malhonnêtement avoir pris part à cette communication (en niant avoir reçu et/ou envoyé
certaines informations au cours de celle-ci).
La répudiation n’est évidemment pas le seul obstacle au bon déroulement d’une
telle communication. D’autres besoins sécuritaires sont éventuellement à gérer :
la confidentialité des informations émises, l’identification des parties en présence,
l’authenticité des informations. . .
Les outils de sécurité envisagés pour résoudre ces difficultés sont appelés « services de sécurité ». Nous trouvons comme tels services [20] :
– l’intégrité des données1 . Ce service permet de détecter toutes modifications, insertions, duplications ou suppressions d’informations qui auraient été
opérées sur des données transmises.
1
Il est à noter que le service de sécurité assurant l’intégrité des données se nomme parfois
authentification de données.
14
Chapitre 2 : La répudiation
– l’authentification des entités2 . L’authentification des entités consiste en
la vérification de l’identité des parties en communication.
– les signatures digitales. Une signature digitale associée à une information
assure les récipiendaires de l’origine et de l’authenticité des informations reçues. L’auteur des données réalise une transformation de son message telle
que le résultat obtenu lie son identité au contenu du message. Ainsi toute
modification du message ou de l’identité de l’auteur devra être détectée. En
conséquence, ce service de sécurité utilise, entre autres, des solutions apportées pour assurer l’intégrité des données.
– la confidentialité. Ce service fournit des mesures de protection contre une
révélation non-autorisée d’informations.
– le contrôle d’accès offre des outils permettant d’empêcher l’usage nonautorisé de ressources.
– la non-répudiation est le service de sécurité qui propose des solutions aux
problèmes posés par les risques de répudiation.
Contrairement à la non-répudiation, les services d’intégrité, d’authentification,
de confidentialité et de contrôle d’accès ont été et sont toujours largement étudiés
[54, 66, 67].
Nous notons cependant depuis quelques années un intérêt croissant pour l’étude
de la non-répudiation. Cet intérêt est principalement motivé par l’émergence et
le développement rapide du commerce (et en corollaire du paiement) électronique. Ces applications doivent protéger les clients, les banques et les fournisseurs de services d’un éventuel comportement malhonnête de l’une ou l’autre
partie impliquée. Actuellement, en pratique, beaucoup de paiements dits électroniques sont des paiements différés. Le client sélectionne et commande un produit
via Internet, puis lorsque le produit est livré, la carte de crédit, dont le numéro
est indiqué par le client au moment de la commande, est débitée. L’organisme
gestionnaire des cartes de crédit garantit le succès de l’opération. Les applications basées sur les mécanismes d’échange correspondent plutôt à des gestions
en-ligne des opérations. Le client commande un produit qui peut directement
lui être livré digitalement en échange d’un paiement valide. Les aspects de nonrépudiation de ces mécanismes permettent aux clients et aux fournisseurs de
s’assurer non seulement de l’identité des uns et des autres, mais aussi du succès
de l’envoi des produits commandés et des paiements correspondants.
Souvent, les mécanismes utilisés pour offrir des services de sécurité au cours
d’une communication prennent place dans le cadre d’un protocole. Un protocole
est informellement une succession de messages envoyés et reçus par des entités
qui communiquent au travers d’un réseau.
Au cours de cette étude nous nous placerons volontairement dans un cadre le plus
général possible (englobant au besoin le contexte de commerce électronique).
Nous nous intéresserons au travers de l’étude du service de non-répudiation à
un aspect important de la sécurité informatique impliqué dans les problèmes de
répudiation : les protocoles de non-répudiation.
2
Ce service porte aussi le nom d’identification.
2.3 Le service de non-répudiation
2.3
15
Le service de non-répudiation
Il est important que les parties impliquées dans une communication au travers
d’un réseau ne puissent déclarer à tort avoir été étrangères à tout ou partie de la
communication. Comme nous l’avons vu à la section précédente, pour empêcher
de tels comportements, des méthodes particulières de sécurité peuvent être mises
sur pied, regroupées au sein du « service de non-répudiation ».
Au cours d’une communication, une partie peut affirmer avoir reçu un message provenant d’une autre partie impliquée dans la communication (cette dernière répudiant éventuellement être à l’origine de ce message). Une partie peut
aussi affirmer avoir envoyé avec succès un message à une autre partie (cette
dernière répudiant avoir reçu ce message). Les mécanismes de non-répudiation
permettent de s’assurer de la véracité de telles affirmations en obligeant chacune
des parties à émettre des preuves statuant sur l’état de la communication (ce
qui a été émis et reçu) au moment de l’envoi de ces preuves (la poursuite de la
communication étant subordonnée au succès de la vérification des preuves par
la partie concernée).
Outre la négation d’être à l’origine d’un message ou de l’avoir reçu 3 , une répudiation peut porter sur le moment où le message est émis ou reçu. D’une
manière tout à fait générale une partie impliquée dans une communication peut
nier qu’un événement particulier ait pris place à un moment précis.
Il est donc important de noter que, contrairement à la plupart des autres services de sécurité, le but essentiel du service de non-répudiation est d’assurer
une protection vis à vis d’une autre partie impliquée dans la communication
(ou d’une panne du médium de communication qui les relie), plutôt que d’un
attaquant extérieur4 .
Un service de non-répudiation fournit donc des preuves permettant de gérer ultérieurement les éventuelles disputes entre les parties à propos d’un événement
ou du moment où cet événement aurait pris place au cours d’une communication. Les mécanismes mis en œuvre pour assurer la non-répudiation doivent
donc générer, maintenir et valider ces éléments de preuves dans le but de résoudre des disputes. Les preuves fournies par les mécanismes de non-répudiation
permettront de convaincre une tierce partie de la réalité de l’occurrence (et éventuellement du moment de l’occurrence) d’événements passés.
Il faut cependant, et surtout dans le contexte de la non-répudiation, se méfier
du terme « tierce partie ». Nous rencontrerons par la suite des tierces parties
impliquées de manières diverses dans les protocoles de communication. Leur
rôle peut être actif ou plus passif au sein de la communication en cours. Nous
devrons faire la distinction entre d’une part une tierce partie de confiance (TPC 5
en abrégé), qui aidera les parties honnêtes à transmettre les preuves de nonrépudiation ainsi que les informations (et qui sera donc activement impliquée),
3
denial of sending or receiving en anglais.
Les mécanismes de non-répudiation assurent aussi la détection de messages venant de
parties extérieures et potentiellement hostiles.
5
TTP : Trusted Third Party en anglais.
4
16
Chapitre 2 : La répudiation
et d’autre part un juge6 qui, à l’image d’un arbitre, statuera dans le cadre
d’une dispute, évaluant la validité des preuves de non-répudiation présentées
par les parties en dispute (ayant ainsi un comportement passif par rapport à la
communication).
2.3.1
Les tierces parties de confiance
Une tierce partie de confiance est une entité ayant les prérogatives d’une autorité. Cette reconnaissance d’autorité est basée sur un concept informel de
confiance.
À l’image des organisations humaines (le notaire rendant possible une vente,
un prêt hypothécaire. . . ) nous ne pouvons pas (toujours) nous passer de tierce
partie de confiance dans les communications au travers de réseaux. Une tierce
partie de confiance peut être [45, 50, 54, 75] :
– une autorité de certification qui génère, maintient et révoque des certificats
attestant de l’authenticité des clés utilisées lors des communications ;
– un notaire qui produit et/ou vérifie des éléments de communication (preuve,
cachet temporisé7 , signature. . . ) à la place de l’une ou l’autre partie impliquée
dans une communication. Ce genre d’autorité intervient donc activement dans
la communication8 ;
– une autorité de livraison9 qui, à l’image de la poste, assure le transport et la
livraison de messages10 ;
– un juge qui résout les disputes pouvant survenir après la fin d’une communication, sur base des preuves produites lors de la communication. Un juge
ne prend donc pas une part active dans la communication, mais statue sur
ce qui s’y est passé. Un tel comportement est dit passif par rapport à la
communication.
Quatre attitudes existent par rapport au concept de tierce partie de confiance.
La plupart des méthodes ayant recours à une tierce partie lui accordent une
confiance absolue, dans le sens où, à moins d’une remise en cause publique de
la tierce partie de confiance ou d’un problème les concernant directement, leur
confiance en la tierce partie de confiance reste entière. [23, 27, 29, 12, 74, 75]
Quelques méthodes ont été mises sur pied afin d’être à même de pouvoir se passer
complètement d’une tierce partie de confiance activement impliquée dans une
communication. Une telle approche est adoptée au cinquième chapitre. Le prix
à payer pour éviter le risque, difficilement mesurable, que représente une tierce
partie de confiance, ainsi que pour éliminer l’étranglement des communications
6
adjudicator en anglais dans le contexte de la non-répudiation.
Un cachet temporisé, time stamp en anglais, est une information temporelle (heure,
date. . . ) signée digitalement par une partie de confiance.
8
Si l’usage actif d’une autorité est nécessaire à chaque exécution du protocole, l’autorité
est dite on-line ; si l’autorité est optionnellement invoquée activement dans le protocole, elle
est dite off-line.
9
delivrery authority en anglais.
10
Une telle autorité est dite in-line quand elle intervient à chaque exécution du protocole
comme intermédiaire obligé lors d’envois de messages entre les parties.
7
2.3 Le service de non-répudiation
17
qu’elle génère, consiste bien souvent en une augmentation de la complexité en
calculs et/ou en communications des protocoles proposés, combinée à un risque
mesurable d’échec du protocole (qu’il faut mettre en regard du risque nonmesurable représenté par la tierce partie de confiance). [35, 52]
Enfin, depuis peu, il est proposé [5] de tenter de mesurer la fiabilité de la tierce
partie de confiance. Les protocoles doivent être conçus de manière à ce que si la
tierce partie de confiance ne se comporte pas honnêtement, il doit être possible
de le détecter sur base des informations qu’elle produit. Un tel mécanisme n’est
pas toujours réalisable ; de plus la confiance qu’une partie en communication
porte à une tierce partie de confiance n’est évaluable qu’après détection d’un
éventuel comportement malhonnête. Cette mesure de fiabilité offre donc des
moyens de détection mais non de prévention (comme il est proposé, en partie,
dans [39]).
Abadi et Needham décrivent [1] la notion de confiance comme étant, en toute
généralité, « diffuse » et « insaisissable ». Ils précisent que la vérification du
comportement d’une partie de confiance est souvent difficile ou impossible. Une
confiance pourrait être éventuellement mesurée lorsque la partie de confiance
agit sur le contenu d’un message provenant d’une autre partie. Ils énoncent
le principe suivant : « le concepteur de protocoles doit avoir conscience des
relations de confiance dont dépend son protocole et en quoi ces relations de
confiance sont nécessaires. Les raisons rendant l’usage de telles relations de
confiance acceptables doivent être explicites, bien que fondées sur un jugement
plutôt que sur la logique » ([1], page 19).
L’usage d’une tierce partie de confiance est souvent justifiée par l’affirmation
que les méthodes n’en usant pas nécessitent que les diverses parties en communication aient la même puissance de calcul. Cette contrainte, en effet peu réaliste
en pratique et qui était présente dans des protocoles d’échange [15, 69, 70], n’est
plus de mise actuellement (comme nous le verrons au cinquième chapitre).
D’un autre côté, de nombreuses méthodes usant d’une tierce partie de confiance [5, 75] nécessitent que les canaux reliant la tierce partie de confiance et
les diverses entités en communication soient sûrs, les messages y circulant ne
pouvant être ni observés, ni modifiés. Une telle contrainte nécessite donc l’usage
de mécanismes de confidentialité et d’intégrité. D’autres méthodes, avec tierce
partie de confiance, souffrent de faiblesses de sécurité lorsqu’un tricheur bloque
temporairement une information [46, 79]. De manière générale, l’usage d’une
tierce partie de confiance impose qu’une information ne puisse être définitivement bloquée sur les canaux de communication la reliant aux autres parties en
communication. En pratique, il n’est donc pas aisé de mettre en œuvre des mécanismes avec tierce partie de confiance, les grands réseaux existants n’offrant
pas une qualité de service empêchant le blocage d’informations et assurant que
les messages émis sont bien délivrés à une entité précise.
18
2.3.2
Chapitre 2 : La répudiation
Les preuves de non-répudiation
À la section précédente, nous avons vu qu’un juge peut statuer sur ce qui s’est
passé au cours d’une communication passée, sur base de preuves 11 échangées
lors de celle-ci. Le but des méthodes réalisant le service de non-répudiation est
d’amener les parties en communication à échanger ces preuves.
Nous distinguons quatre types de preuves utilisées dans le cadre de la nonrépudiation : les preuves de
–
–
–
–
non-répudiation
non-répudiation
non-répudiation
non-répudiation
à
à
à
à
l’origine12
la réception13
la livraison14
la soumission15
Nous retrouvons les deux premiers types de preuves dans toutes les méthodes
assurant la non-répudiation. La preuve de non-répudiation à l’origine permet
au récipiendaire d’un message d’apporter la preuve (à un juge) de l’identité de
l’auteur du message (comme argument contre une tentative de ce dernier de nier
en être l’auteur). La preuve de non-répudiation à la réception permet à l’auteur
d’un message de prouver (à un juge) que le récipiendaire a bien reçu le message
(comme argument contre une tentative de ce dernier de nier l’avoir reçu).
Certaines méthodes assurant la non-répudiation au moyen d’une tierce partie de
confiance assurent aussi l’émission des deux dernières preuves. Les preuves de
non-répudiation à la soumission puis à la livraison permettent à l’auteur d’un
message de prouver (à un juge) que le message a bien été soumis (et accepté)
à l’autorité de livraison puis délivré par l’autorité de livraison au récipiendaire.
Comme souvent la tierce partie de confiance génère ces deux preuves, le problème
de leur émission ne relève pas d’un problème d’échange mutuel entre deux parties
potentiellement malhonnêtes. En se basant sur le concept de confiance nous
pouvons être sûrs que la tierce partie générera et transmettra ces preuves. Aucun
mécanisme particulier d’échange ne devra dès lors être mis en œuvre.
Dans [75], une preuve de non-répudiation est définie comme étant une information qui permet d’établir, seule ou en conjonction avec d’autres informations,
la réalité de l’occurrence d’un événement. Une telle preuve doit attester de son
origine, de son intégrité, de sa validité ; elle doit être non falsifiable et ne peut
être niée.
Diverses techniques cryptographiques peuvent être utilisées pour construire des
preuves de non-répudiation. Dans le cadre de preuves de non-répudiation à l’origine, deux techniques sont usuellement proposées.
La première technique, basée sur les cryptosystèmes symétriques, utilise les « enveloppes sécurisées ». La preuve qui lie l’identité de l’auteur au message est
le résultat du chiffrement du hachage du message au moyen d’une clé connue
11
evidence en anglais.
non-repudiation of origin en anglais.
13
non-repudiation of receipt en anglais.
14
non-repudiation of delivery en anglais.
15
non-repudiation of submission en anglais.
12
2.3 Le service de non-répudiation
19
par la tierce partie de confiance16 ; l’enveloppe sécurisée est donc Envk (info) =
info, Ck (h(info)). En conséquence la tierce partie de confiance devra être sollicitée chaque fois qu’une vérification de la preuve devra être faite. Comme la
clé ne peut être partagée par les deux entités communicantes sans permettre
à chacune d’elles de modifier l’origine ou le contenu, seule la tierce partie de
confiance peut générer et vérifier l’enveloppe, sur base d’une clé connue par elle
seule. Cette méthode est inutilement contraignante et le processus décrit infra
évite l’usage de la tierce partie de confiance à la génération de l’enveloppe tout
en assurant une vérification adéquate.
La deuxième technique se base sur les techniques asymétriques et fait usage de
signatures digitales. Au moyen de cette technique, la génération de la preuve
est réalisée (et ne peut être réalisée que) par l’auteur et cette preuve est directement vérifiable par le récipiendaire. La clé utilisée pour la vérification doit être
certifiée par une autorité adéquate. Cependant ce contrôle de validité, bien que
devant être réalisé régulièrement, ne doit pas nécessairement l’être au cours de
la communication en cours.
Une preuve de non-répudiation (de l’occurrence d’un événement) contient usuellement, outre l’identification de l’occurrence de l’événement concerné, le type de
non-répudiation proposé (cf. supra), l’identité de l’auteur, l’identité du récipiendaire et l’identité de l’entité ayant généré la preuve (si elle est différente de
celle de l’auteur). Les protocoles faisant usage d’une tierce partie de confiance
préciseront l’identité de cette tierce partie de confiance. Enfin, si les preuves
de non-répudiation concernent aussi les moments où les actions non-répudiables
ont pris place, il faut adjoindre à ces preuves un cachet temporisé indiquant le
moment de la génération de la preuve ainsi que le moment où l’événement a eu
lieu (par exemple, le moment de l’envoi du message).
Un protocole de non-répudiation est cassé si une fausse preuve (ne correspondant
pas à la réalité de la communication ou forgée par une partie extérieure) est
acceptée. La sécurité repose aussi fortement sur la sécurité des clés utilisées.
Il doit ainsi être possible de les révoquer. Par mesure de sécurité, il est donc
bienvenu de leur imposer une limite de validité dans le temps.
Une méthode réalisant le service de non-répudiation suit souvent le canevas
suivant. Les preuves sont générées puis transférées. Lors de leur réception elles
sont vérifiées puis stockées. Un protocole de résolution de disputes est prévu en
coordination avec un juge.
Mis à part la gestion d’une preuve reçue mais incorrecte, il faut aussi gérer le
problème de preuves n’arrivant pas à destination. Une telle situation est liée à
l’état du réseau mis en conjonction avec le comportement honnête ou non des
parties en communication. Les différentes méthodes doivent gérer les différents
cas de figures. La situation la plus complexe à gérer étant, bien entendu, un
contexte où les parties sont éventuellement malhonnêtes et le réseau potentiel16
Une autre technique permettant de construire des enveloppes digitales consiste à utiliser
des fonctions de hachage à sens unique verrouillées par une clé (keyed one-way hash function
en anglais) ou des codes d’authentification de message (message authentication code - MAC en anglais) : Envk (info) = info, h(info, k).
20
Chapitre 2 : La répudiation
lement incertain.
Deux hypothèses sont parfois imposées au réseau. Le réseau est dit opérationnel17 pour indiquer qu’un message transmis arrivera dans un délai fixé. Un
réseau réactif18 est tel que les messages transmis arriveront après avoir été éventuellement bloqués un temps fini, raisonnable mais non prévisible.
2.3.3
Les disputes
Les preuves ayant été échangées, il peut arriver qu’une des parties en communication décide de requérir les services d’un juge pour arbitrer un différent.
Nous insistons sur le fait que le juge n’intervient pas activement dans la communication. Il n’aidera pas à échanger des messages ou à terminer la communication. Il se bornera à indiquer qui est en droit et/ou qui est en faute sur base
des preuves présentées par les parties.
La manière dont les disputes sont résolues (i.e. la procédure à suivre ainsi que
les calculs qui seront réalisés par le juge) doit être connue par les parties. En
pratique, le service de non-répudiation inclut une police 19 décrivant la manière
dont les disputes se résolvent grâce au juge. Notons aussi qu’un juge peut faire
appel à une autre tierce partie de confiance (par exemple un notaire, pour obtenir
un cachet temporisé).
Sur base de la description des preuves (voir la section précédente) nous rappelons
qu’une dispute peut porter sur l’occurrence d’un événement mais aussi sur le
moment de cette occurrence.
2.3.4
Le temps
Comme précisé dans la section 2.3.2, il est raisonnable d’imposer une durée de
vie aux clés utilisées pour générer les preuves de non-répudiation (la sécurité
des preuves produites reposant entièrement sur ces clés).
Remarquons que l’expiration et la révocation de clés ne concernent que la génération et la vérification de la date de génération de la preuve de non-répudiation.
En effet, il est possible de devoir vérifier une preuve dont la clé privée utilisée
lors de la génération de la signature digitale, est expirée ou révoquée depuis.
Dans ce cas il faut cependant envisager qu’une preuve, dont la clé de génération
est expirée, puisse avoir été générée malhonnêtement, après l’expiration de la clé
de signature, par une entité malhonnête ayant retrouvé après un certain temps
la clé privée de génération de signatures d’une autre entité 20 .
Le temps peut être à la source de problèmes lors de l’écriture de protocoles
proposant le service de non-répudiation. Tout d’abord si un cachet temporisé
17
operational channel en anglais.
resilient channel en anglais.
19
Dans le sens de police d’assurance ou convention.
20
Il peut donc être nécessaire qu’au moment de la révocation de la clé de signature, une
autorité, signe à nouveau la preuve en y incluant un cachet temporisé.
18
2.4 L’équité
21
est généré et envoyé par une des parties en communication, cela n’apporte que
peu d’information sur la réalité des faits. Si le cachet est généré par une tierce
partie de confiance, il faut que cette tierce partie de confiance, outre cette fonction de notaire, soit aussi une autorité de livraison qui transmettra la preuve
contenant le cachet temporisé demandé. En effet, une entité pourrait demander
très à l’avance à la tierce partie de confiance un cachet temporisé et l’envoyer à
discrétion plus tard (enlevant une partie de sa sémantique à ce cachet).
Ce cas de figure est un des problèmes liés à l’arrivée tardive d’un message (et
donc éventuellement d’une preuve). Un autre problème apparaît lorsqu’un délai
maximum est fixé quant à l’émission d’un message. Il est difficile de différencier
un message émis trop tard d’un message émis à temps mais reçu en retard.
Nous observerons au cours des prochains chapitres la manière dont les protocoles
proposés gèrent ces différents problèmes.
2.4
L’équité
L’équité21 est une propriété fondamentale devant être respectée par les protocoles offrant le service de non-répudiation.
Intuitivement, il apparaît que la mise en place de méthodes assurant la nonrépudiation pose comme principal problème le fait que les parties en présence
doivent s’échanger des preuves. Dans un système composé de deux parties en
communication (contexte le plus étudié), sans tierce partie de confiance in-line,
nous nous rendons compte que l’auteur d’un message n’a pas intérêt à envoyer
la preuve de non-répudiation à l’origine avant d’avoir reçu la preuve de nonrépudiation à la réception du récipiendaire (lequel une fois la preuve de nonrépudiation à la réception reçue n’aurait plus de raison - à part l’honnêteté
- d’émettre sa preuve, puisqu’il est sûr de pouvoir gagner une dispute). Pour
les mêmes raisons le récipiendaire ne désirera pas émettre la preuve de nonrépudiation à la réception avant d’avoir reçu la preuve de non-répudiation à
l’origine.
Un protocole de communication ayant la propriété d’équité est tel qu’il assure
à une partie honnête, ayant émis l’information qui est attendue d’elle, de recevoir l’information qu’elle-même escompte (notons qu’il ne faut pas amalgamer
la propriété d’équité dans notre contexte d’échange d’information avec les propriétés d’équité que l’on peut déduire des modélisations de systèmes concurrents
[37]).
Toujours dans notre contexte, nous pouvons catégoriser l’équité selon plusieurs
formes (malheureusement l’usage veut que certaines de ces différentes formes
portent les mêmes noms que ceux utilisés dans le contexte des systèmes concurrents22 ).
Nous définissons pour chaque partie honnête impliquée dans une communica21
22
fairness en anglais.
Où l’équité faible est aussi appelée justice et l’équité forte est aussi appelée compassion.
22
Chapitre 2 : La répudiation
tion :
– l’équité forte23
– l’équité faible24
– l’équité probabiliste25
Si le protocole est équitable pour toutes les parties en communication (qui se
comporteraient honnêtement) alors le protocole est dit équitable.
Un protocole d’échange assure une équité forte si, soit toutes les parties honnêtes
reçoivent l’information attendue soit aucune partie ne reçoit rien de significatif
à propos de l’information attendue.
Un protocole d’échange vérifiant l’équité faible est tel que, si l’échange n’est pas
accompli pour toutes les parties, les parties flouées peuvent non seulement prouver à un juge jusqu’où le protocole a été exécuté mais aussi que les informations
qu’elles devaient émettre ont été ou seront reçues sans plus d’intervention de
leur part.
Un protocole est équitable de manière probabiliste si, soit les parties reçoivent
les informations attendues, soit la probabilité de perdre l’équité au cours du
protocole est inférieure à une valeur donnée.
Il faut cependant considérer les deux situations suivantes. Soit le protocole s’exécute entièrement jusqu’à une de ses fins possibles, soit le protocole est arrêté
brutalement en cours d’exécution.
En pratique, l’équité n’est assurée que lorsqu’une partie honnête arrive à une des
fins possibles du protocole. Certains protocoles d’échange prévoient de pouvoir
entamer un protocole de recouvrement26 avec une tierce partie de confiance offline qui restaure l’équité du protocole d’échange, si ce dernier est brutalement
interrompu.
Les méthodes assurant l’équité en supposant l’usage d’une tierce partie de confiance en cas d’arrêt brutal de protocole sont telles que l’équité repose entièrement sur la confiance que l’on porte à la tierce partie de confiance. Dans « le
monde réel » une tierce partie de confiance n’est pas toujours sûre ; en conséquence il peut être adéquat de distribuer la confiance entre différentes tierces
parties de « confiance », en morcelant les informations secrètes nécessaires à
l’accomplissement de la tâche des tierces parties de confiance et en usant de
méthodes basées sur le partage de secret27 et/ou sur les schémas à seuils28 . La
mise en œuvre de tels mécanismes est lourde et coûteuse en performance (de la
même manière que les méthodes n’usant pas de tierce partie de confiance).
23
strong fairness en anglais.
weak fairness en anglais.
25
probabilistic fairness en anglais.
26
recovery protocol en anglais.
27
secret sharing en anglais.
28
threshold schemes en anglais.
24
2.5 Les protocoles de non-répudiation
2.5
23
Les protocoles de non-répudiation
Cette section et les suivantes décrivent des catégories de protocoles proposant
le service de non-répudiation. Nous verrons dans les chapitres qui suivent des
exemples concrets de tels protocoles. Nous nous contenterons ici d’en observer
les caractéristiques.
Tout d’abord, rappelons que dans le cadre du problème de la non-répudiation,
l’aspect de confidentialité des données échangées n’est pas requise. L’anonymat des parties en présence vis-à-vis des observateurs extérieurs n’est pas non
plus, a priori, à considérer (l’anonymat entre parties en communication étant
bien entendu exclu par la nature même du service de non-répudiation). Notons
cependant qu’il est tout à fait envisageable de greffer les techniques assurant
ces aspects de sécurité aux techniques utilisées pour assurer la non-répudiation.
Au cours des prochains chapitres nous étudierons des variantes de protocoles
d’échange offrant de tels ajouts de mécanismes de sécurité. Nous nous forcerons
cependant à rester génériques et nous veillerons à ne pas verser dans le particularisme propre aux applications tout à fait précises de protocoles d’échange.
Les protocoles de non-répudiation offrent le service de non-répudiation dans la
situation précise suivante : une entité prend l’initiative d’envoyer un message
et désire recevoir la preuve de non-répudiation à la réception, tandis que le
récipiendaire désire recevoir la preuve de non-répudiation à l’origine (relative au
message reçu). Eventuellement les preuves de non-répudiation à la soumission
et à la livraison seront aussi transmises.
Zhou [75] affirme que, dans le cadre des protocoles de non-répudiation, il est
inutile de se préoccuper des problèmes de ré-émission d’information 29 . Nous
remarquons cependant que la sécurité d’un protocole d’échange est remise en
question lorsqu’une exécution sûre du protocole met en cause la sécurité d’une
exécution ultérieure. Il faut en effet s’assurer que les informations émises au
cours d’une exécution du protocole ne puissent être réutilisées ultérieurement
par une des parties en communication ou par un observateur extérieur lors d’une
autre exécution de ce protocole.
2.6
Protocoles de non-répudiation et équité
Les protocoles de non-répudiation prévoient l’échange de preuves entre les parties en communication. Nous nous attendons donc à ce que ces protocoles respectent une des propriétés d’équité définies à la section 2.4, afin de ne pas léser
une ou plusieurs parties.
Dans [75] un protocole de non-répudiation est dit équitable s’il fournit à l’émetteur et au récipiendaire des preuves irréfutables après exécution complète du
protocole tout en ne donnant aucun avantage à l’une ou l’autre partie, à aucun
moment de l’exécution du protocole.
29
replay attack en anglais.
24
Chapitre 2 : La répudiation
Cette définition est fort restrictive car, en cas d’arrêt du protocole avant la fin de
son exécution, il semble difficile de n’assurer aucun avantage à l’une ou l’autre
partie, l’une des parties devant s’engager avant l’autre au cours du protocole.
Ainsi trois approches sont usuellement proposées dans la littérature pour gérer
le problème de la priorité lors des échanges. Soit les preuves à échanger sont
révélées petit à petit. Dans ce cas, si le protocole s’arrête avant sa fin, il y
aura bien une partie en communication ayant reçu une partie, même infime,
de la preuve attendue avant d’avoir émis sa portion de preuve. Les méthodes
basées sur une divulgation progressive de l’information attendue, comme nous
en étudierons au cinquième chapitre, ont comme contrainte que les parties en
communication doivent avoir une puissance de calcul comparable.
Soit l’équité est assurée de manière probabiliste, mais alors on ne peut affirmer avec certitude qu’en cas d’arrêt subit du protocole aucune partie n’aura
d’avantage. La prise ou non d’avantages en cas d’arrêt du protocole devra ici
être exprimée en fonction d’une probabilité.
Enfin, une tierce partie de confiance peut être utilisée pour assurer l’équité. Si
cette tierce partie est off-line, alors il est du ressort des parties en communication
d’engager, en cas d’arrêt du protocole avant sa fin, un protocole de recouvrement
afin de rétablir une situation équitable. Entre l’arrêt du protocole de communication principal et la fin du protocole de récupération (pour peu qu’il soit initié)
un déséquilibre existe entre les parties (une partie est désavantagée par rapport
à l’autre).
Nous pensons que la propriété d’équité ne peut se définir que relativement à une
des fins possibles du protocole d’échange. Il est du ressort des parties de mener
le protocole à une de ses fins en fonction de la situation.
2.7
Le courrier électronique recommandé
Une catégorie de protocoles assez proches des protocoles de non-répudiation
sont les protocoles de courrier électronique recommandé 30 . Le principe en est
que l’auteur d’un message le soumet à une tierce partie de confiance qui servira
d’autorité de livraison et de notaire en terme d’assignation de cachets temporisés. La tierce partie de confiance délivrera le message au récipiendaire si celui-ci
accuse préalablement réception (ce qui est envisageable s’il fait confiance à la
tierce partie de confiance). L’accusé de réception sera délivré à l’émetteur comme
preuve de non-répudiation à la réception. Si on s’en tient à la définition d’un
courrier recommandé, l’identité de l’émetteur ne peut être connue avant la réception du message (ce qui n’interfère pas avec le service de non-répudiation
pour peu que l’assurance de la distribution de cette identité soit finalement assurée par la tierce partie de confiance). Remarquons enfin que ces protocoles
assurent aussi la distribution des preuves de non-répudiation à la soumission et
à la livraison. De nombreux travaux ont été consacrés à ce sujet [10, 31, 60, 78]
30
certified mail en anglais.
2.8 Les protocoles d’échange équitable
25
Les protocoles de non-répudiation n’imposent pas l’usage d’une autorité de livraison et permettent au récipiendaire d’une information de connaître l’identité
de l’initiateur du protocole avant l’émission des preuves de non-répudiation (permettant ainsi au récipiendaire de décider s’il continue ou non le protocole sur
base de cette identité).
L’usage d’une autorité de livraison dans les protocoles de courrier électronique
recommandé est requise car, bien souvent, ces protocoles sont copiés sur le service postal traditionnel, où une tierce partie de confiance était indispensable,
puis sur le protocole de courrier électronique SMTP, où un serveur de mails
est utilisé. Remarquons que les services de non-répudiation remplissent la plupart31 des desiderata du courrier électronique recommandé ; les protocoles de
non-répudiation peuvent donc présenter une alternative pratique pour assurer
la distribution du courrier électronique recommandé.
2.8
Les protocoles d’échange équitable
Les protocoles d’échange équitable32 sont utilisés pour permettre à une ou plusieurs parties de s’échanger de l’information de même nature ou de nature différente au-travers d’un réseau.
Il existe de nombreuses formes d’échange d’information :
– la signature digitale de contrat33 : deux parties (ou plus) désirent s’échanger
leur signature sur un contrat déterminé et connu des parties, sans que l’une
ou l’autre partie se retrouve seule à avoir signé le contrat ;
– le troc34 où deux parties s’échangent de l’information après accord sur la
nature de cette dernière ;
– le paiement électronique où de l’information est échangée contre un paiement ;
– l’échange de signatures sur des documents différents ;
– ...
Outre l’aspect « échange », le point commun à tous ces types d’échange est bien
sûr le respect de la propriété d’équité.
Il existe de nombreuses propositions de protocoles d’échange équitable assurant
de plus la confidentialité vis-à-vis d’entités extérieures. De la même manière que
pour les protocoles de non-répudiation, nous pouvons dire que la confidentialité
et l’anonymat ne sont pas indispensables lors de la conception théorique de
protocoles d’échange équitable. L’étude de tels protocoles ne doit, à notre sens,
pas se focaliser sur ces aspects. Ce sont bien les applications précises de ces
protocoles qui doivent, en fonction des situations et des besoins, prévoir l’un ou
l’autre mécanisme de sécurité supplémentaire.
31
En pratique, lors de la remise d’un courrier recommandé non-électronique, l’anonymat de
l’émetteur est assuré tant que l’accusé de réception (la signature manuelle) n’est pas produit
par le destinataire. Nous verrons que les protocoles de non-répudiation ne vérifient pas toujours
cette contrainte.
32
fair exchange protocol en anglais.
33
digital contract signing en anglais.
34
barter en anglais.
26
Chapitre 2 : La répudiation
La gestion de la vie des clés utilisées ainsi que la protection vis à vis de réémissions éventuelles d’informations transmises doivent par contre être envisagées.
2.9
Protocoles d’échange équitable et de non-répudiation
Plusieurs différences sont à noter entre les protocoles de non-répudiation et les
protocoles d’échange équitable.
Une première différence fondamentale apparaît vis-à-vis de l’attitude du récipiendaire d’un message. Les protocoles de non-répudiation sont prévus pour forcer (entre autres) le récipiendaire d’un message à accuser réception de celui-ci,
quel que soit le message. Le récipiendaire ne contrôle aucun critère du message
qu’il va recevoir (à l’extrême il accuse réception d’un message incohérent, et les
preuves de non-répudiation échangées statueront de l’envoi et de la réception de
ce message incohérent). Dans un protocole d’échange équitable, par contre, les
parties devant recevoir un message ont conscience de ce qu’elles vont recevoir.
Chaque partie s’attend à une information précise. Bien souvent au cours de protocoles d’échange équitable les parties font une demande concrète de ce qu’elles
désirent recevoir sur base d’une description de l’information (un exemple serait la consultation d’un catalogue électronique de logiciels, l’acheteur choisirait
le logiciel qu’il désire et le recevrait en échange de l’envoi de l’information de
paiement électronique vers le vendeur - qui s’attendrait lui aussi à cette information).
Une autre différence concerne le nombre d’échanges potentiellement réalisés.
Au cours d’un protocole de non-répudiation nous échangeons un message et sa
preuve de non-répudiation à l’origine contre la preuve de non-répudiation à la
réception. Dans le cadre des protocoles d’échange équitable, la non-répudiation
est un service qui éventuellement se greffe en plus de l’échange prévu afin de
résoudre les éventuelles disputes. Ce qui est échangé consiste alors en les deux
informations qui sont attendues de part et d’autre, ainsi que les preuves de
non-répudiation qui doivent elles-aussi être émises vers chaque partie.
Cependant un exemple dégénéré d’échange équitable apparaît dans certains protocoles de commerce électronique [5] où l’acheteur reçoit l’information et la
preuve de non-répudiation à l’origine, alors que le vendeur reçoit de l’acheteur
un accusé de réception contenant la description du message demandé. Ce schéma
ressemble donc aux protocoles de non-répudiation, excepté que le client sait ce
qu’il va recevoir et peut donc inclure dans la preuve de non-répudiation à la
réception la description de ce qu’il attend.
Les propriétés d’équité et de gestion du temps décrites respectivement aux sections 2.4 et 2.3.4 doivent être vérifiées de la même manière par les protocoles de
non-répudiation et d’échange équitable à partir du moment où tous deux offrent
potentiellement le service de non-répudiation.
2.10 Les types d’information
2.10
27
Les types d’information
Asokan [5] caractérise les informations susceptibles d’être émises ou échangées
de la manière suivante.
– Une information est idempotente si le fait de la renvoyer en répétant le protocole est sans danger.
– Une information est retransférable35 si elle est vérifiable par la tierce partie
de confiance et idempotente.
– Une information peut être révocable si, une fois émise, l’information peut
perdre sa validité. Dans ce cas, l’équité forte peut toujours être obtenue (puisqu’en cas de déséquilibre à la fin du protocole d’échange, les informations
surnuméraires émises peuvent être révoquées).
– Une information peut aussi être engendrable36 s’il est possible de la générer
à nouveau en cas de besoin. Dans ce cas, l’équité forte est aussi toujours
obtenue (une tierce partie pouvant, par exemple, générer les éléments devant
être échangés mais n’ayant pas été reçus).
Cependant l’équité forte assurée lors de l’usage d’informations révocables ou
générables peut en pratique être remise en question si une partie ayant reçu
une information, et n’émettant pas celle qui est attendue d’elle, a la possibilité
de comptabiliser l’information reçue à un moment précis. Après ce moment,
l’information unilatéralement reçue peut ne plus être révoquée et sa régénération
sans plus de valeur. Ces aspects temporels ne doivent jamais être oubliés lors de
la conception pratique de protocoles offrant le service de non-répudiation.
Typiquement, considérant les preuves de non-répudiation, ces remarques prennent tout leur sens. Une preuve de non-répudiation sera parfois générable, cependant la validité de cette preuve étant limitée dans le temps, il faudra s’assurer
que sa régénération intervienne dans les délais adéquats.
2.11
Conclusion
Au cours de ce chapitre, nous avons défini informellement les concepts de répudiation, de protocole de non-répudiation, de protocole d’échange équitable.
Nous avons mis en évidence la finalité du service de non-répudiation qui, pour
permettre un arbitrage des éventuelles disputes entre les parties en communication, oblige ces parties à s’échanger des preuves de non-répudiation attestant
les différents événements intervenus au cours du protocole.
Notons enfin que les preuves de non-répudiation peuvent aussi concerner des
concepts autres que l’origine et la réception. Il peut, par exemple, être utile
de générer des preuves lors de consultation d’informations auprès d’une base
de données ou lors d’accès à des ressources. Ces aspects, ne concernant pas
directement les protocoles d’échange, ne seront pas abordés ici 37 .
35
forwardable en anglais.
generatable en anglais.
37
En pratique, les systèmes d’exploitation sécurisés réalisent des opérations d’archivage et
36
28
d’audit sur les ressources [42, 57].
Chapitre 2 : La répudiation
Chapitre 3
Formalisation et propriétés
3.1
Introduction
Nous allons à présent formaliser différents éléments décrits au chapitre précédent. Notre volonté étant d’unifier les définitions relatives aux protocoles
d’échange, permettant ainsi d’exprimer au moyen d’un même formalisme les
différentes techniques existantes, nous avons pris la liberté d’utiliser d’autres
termes pour définir plus précisément certaines notions afin de construire un
cadre cohérent.
Nous évoluerons par étapes. Nous commencerons par étudier le concept de communication, nous définirons ensuite la notion de protocole pour finalement aboutir à la formalisation d’un protocole d’échange.
3.2
La communication
À la base d’une communication se trouve ce que nous avons appelé jusqu’ici les
« parties en communication ». Nous les appellerons dorénavant les acteurs.
Nous définissons assez classiquement un acteur au moyen d’une machine de
Turing interactive probabiliste. Pour ce faire nous allons suivre les formalismes
proposés dans [2] et [40].
Afin de définir une telle machine de Turing nous allons, à présent, en définir les
composantes.
Définition 3.1 Une machine de Turing déterministe à k bandes1 , où
k ≥ 2, consiste en :
– un ensemble fini d’états Q ;
– des états distincts q0 et qf ∈ Q, correspondant respectivement à l’état initial
et à l’état final de la machine ;
1
deterministic k-tapes Turing machine en anglais.
30
Chapitre 3 : Formalisation et propriétés
– un contrôleur2 qui se trouve à tout moment dans un état de Q et qui détermine
les opérations à réaliser ;
– k bandes infinies à droite et à gauche, composées de cellules numérotées séquentiellement par un entier de Z et accessibles en lecture et/ou en écriture ;
– un ensemble fini Γ de symboles utilisés sur les bandes de la machine ;
– un sous-ensemble Σ ⊂ Γ de symboles de données de départ ;
– un symbole particulier (blanc, null. . . ) b ∈ Γ \ Σ ;
– une tête par bande qui lit et/ou écrit un symbole dans la cellule sur laquelle
elle est positionnée ;
– une fonction de transition δ : (Q−{qf })×Γk → Q×(Γ × {−1, 0, +1})k utilisée
par le contrôleur (-1, 0 et +1 représentant respectivement à un mouvement
d’une tête vers la gauche, le maintien d’une tête à sa place, ou le mouvement
d’une tête vers la droite).
Le nombre de symboles ∈ Γ \ {b} présents sur les bandes est fini.
Nous définissons donc une machine de Turing déterministe par le septuple
(Q, Γ, Σ, δ, k, q0 , qf ).
¤
La fonction δ de transition se comprend de la manière suivante. Avant la transition le contrôleur de la machine de Turing est dans un état (∈ Q) autre que
final et sous chacune des k têtes se trouve un symbole (∈ Γ). Sur base de l’état
du contrôleur et des symboles présents sous les têtes (ou de certains de ces symboles3 ), le contrôleur peut changer d’état, en atteignant éventuellement l’état
final. Après cette transition, chacune des k têtes écrit un symbole de Γ (éventuellement le symbole lu), puis bouge d’une position vers la droite, vers la gauche
ou reste en place.
Par exemple, soit une machine de Turing à deux bandes dont le contrôleur se
trouve dans l’état q1 ∈ Q et sous les têtes (représentées par ▽ dans les figures
ci-dessous) de laquelle se trouvent respectivement les symboles β et µ ∈ Γ :
▽
Bande 1 : . . .
Contrôleur :
α
β
γ
...
ν
...
q1
▽
Bande 2 : . . .
λ
µ
Si δ(q1 , β, µ) = (q2 , (β, 0), (ρ, +1)), la machine réalise une transition (q1 , β, µ) ⊢
(q2 , (β, 0), (ρ, +1)) et change donc d’état pour se retrouver dans l’état q 2 ∈ Q,
la deuxième tête écrivant le symbole ρ ∈ Γ avant de bouger d’une position vers
la droite :
2
finite state control en anglais.
La transition peut, en effet, être indépendante de la valeur des symboles sous certaines
têtes ; la transition sera identique quels que soient ces symboles.
3
3.2 La communication
31
▽
Bande 1 : . . .
Contrôleur :
α
β
γ
...
q2
▽
Bande 2 : . . .
λ
ρ
ν
...
Remarquons que la première tête ne bouge pas et n’écrit pas, ce qui est modélisé
par la réécriture du symbole lu en cette position et un « non-déplacement » (noté
0).
Il est possible de modéliser le fait que le symbole µ n’est pas lu en spécifiant
que δ(q1 , β, µ) = δ(q1 , β, µ′ ) ∀µ, µ′ ∈ Γ.
Parmi les k bandes possibles de la machine, nous en utilisons une comme bande
de données de départ et une autre comme bande de résultat 4 .
– Une bande est dite accessible uniquement en lecture, si les symboles qu’elle
contient peuvent être lus, mais ne sont jamais modifiés, c’est-à-dire que la
fonction de transition, δ, est telle que le contrôleur y réécrit tel quel tout
symbole lu sur cette bande ; on peut s’y déplacer sans restriction.
– Une bande est accessible uniquement en écriture, si la fonction de transition
est telle que le contrôleur y écrit des symboles 6= b les uns à la suite des autres,
toujours vers la droite, sans que le résultat produit par la machine ne dépende
des symboles qui y ont été lus5 .
– Une bande est accessible en lecture et en écriture si la fonction de transition
est telle que des symboles peuvent y être lus et écrits, en s’y déplaçant sans
restriction.
Au départ, les k têtes sont positionnées sur la cellule numéro 1 des bandes. La
bande de données de départ contient, au démarrage, un string x ∈ Σ ∗ placé
sur les cellules 1 à |x| (un symbole par cellule), les autres cellules contenant
le symbole b. La bande de résultat contient, au démarrage, des symboles b sur
toutes ses cellules. Les k − 2 autres bandes contiennent un nombre fini (et éventuellement nul) de symboles 6= b de Γ et des symboles b sur les autres cellules
(ces symboles de Γ ne doivent pas nécessairement se trouver sur des cellules
numérotées à partir de 1).
La machine évolue pas à pas en suivant la fonction de transition δ. À chaque
pas, chacune des k têtes réalise éventuellement une lecture et/ou une écriture
d’un symbole dans la cellule se trouvant sous elle et bouge éventuellement d’une
position vers la gauche ou vers la droite. La machine change alors éventuellement
d’état.
La machine s’arrête lorsque l’état qf est atteint. Le résultat des opérations se
trouve alors sur la bande résultat, dont le contenu dépend du string x de départ
4
input tape et output tape en anglais.
à l’exception du maintien de la tête à sa place, auquel cas le symbole présent dans la
cellule sous la tête est réécrit dans la cellule.
5
32
Chapitre 3 : Formalisation et propriétés
et des autres symboles 6= b des bandes intermédiaires ; il peut aussi dépendre du
comportement d’autres machines de Turing, si des bandes sont partagées entre
celles-ci.
Définition 3.2 Une machine de Turing interactive est une machine de
Turing déterministe à k ≥ 4 bandes, avec une bande de données de départ
accessible en lecture uniquement, une bande de résultat accessible en écriture
uniquement, une bande de travail accessible à la fois en lecture et en écriture,
une bande d’aléas6 accessible uniquement en lecture, un certain nombre (≥ 0)
de bandes de communication accessibles uniquement en lecture et un certain
nombre (≥ 0) de bandes de communication accessibles uniquement en écriture.
¤
Lorsqu’une machine de Turing interactive démarre (dans l’état q 0 ), à l’exception
des bandes de données de départ, d’aléas et éventuellement de communication
accessibles uniquement en lecture, toutes les bandes sont initialisées avec des
symboles b.
Deux machines de Turing interactives pourront se partager des bandes de communication de la manière suivante : une bande de communication accessible
uniquement en écriture de la première machine peut être mise en commun avec
la deuxième machine de Turing interactive, qui considère cette bande comme
une bande de communication accessible uniquement en lecture. On supposera
toujours qu’une machine ne peut lire sur une bande, à un endroit, pendant
qu’une autre machine y écrit, au même endroit ; les accès conflictuels sont séquentialisés.
Au démarrage, une machine de Turing interactive écrit sur chaque bande de
communication accessible uniquement en écriture, lorsqu’elle déplace la tête, à
partir de la cellule numéro 1. Elle n’écrit que des symboles 6= b, permettant
ainsi à la machine de Turing interactive qui utilise cette bande comme bande
de communication accessible en lecture de détecter le début et la fin de ce qui
y est écrit et d’« attendre » l’écriture d’un symbole 6= b .
Remarquons que, dans ce cas, le comportement d’une machine de Turing interactive ne peut être déterminé indépendamment des autres machines avec
lesquelles elle partage des bandes de communication, puisque le contenu des
bandes de communication en lecture peut changer au cours du temps au gré
des écritures des autres machines. C’est ainsi le système composé par toutes
les machines communicantes qui détermine le comportement de chacune d’entre
elles ; ce comportement pourra être non déterministe si les machines ne sont pas
synchronisées (c’est-à-dire si elles évoluent chacunes à des vitesses variables).
Définition 3.3 Une machine de Turing interactive est probabiliste si le
contenu de sa bande d’aléas est initialisé, suivant une distribution de probabilité
fixée, indépendamment du contenu de la bande d’aléas de toutes les autres
machines de Turing interactives probabilistes considérées dans le système. ¤
6
random tape en anglais.
3.2 La communication
33
Les machines probabilistes sont donc indépendantes entre elles. Toutefois, cette
dernière définition n’empêche pas que les éléments de la bande d’aléas d’une
machine de Turing interactive probabiliste puissent être corrélés entre eux.
Définition 3.4 Un canal de communication entre deux machines de Turing interactives probabilistes, A et B, est une machine de Turing interactive
probabiliste à deux bandes de communication dont la première, accessible uniquement en lecture, correspond à une des bandes de communication accessible
uniquement en écriture de la machine A, et la deuxième bande, accessible uniquement en écriture, correspond à une des bandes de communication accessible
uniquement en lecture de la machine B. Cette machine de Turing interactive
probabiliste lit les symboles présents sur sa bande de communication accessible
uniquement en lecture et, éventuellement, sur base du contenu des bandes de
données de départ, de travail et d’aléas, écrit des symboles sur sa bande de communication accessible uniquement en écriture. La fonction de transition, δ, d’un
canal de communication est telle que si, lors d’un pas de la machine, un symbole non blanc est écrit sur sa bande de communication accessible uniquement
en écriture cela implique que la machine change d’état à ce pas, et si la machine
change d’état alors un symbole non blanc est écrit, lors de ce pas, sur sa bande
de communication accessible uniquement en écriture (ce qui nous permettra de
modéliser la qualité du canal de communication).
¤
Donc, pour un canal de communication, changer d’état est équivalent à écrire
sur sa bande de communication accessible uniquement en écriture un symbole
non blanc.
En toute généralité, aucun synchronisme n’est supposé entre les trois machines
considérées dans la définition précédente. Le comportement de B dépend donc,
non seulement, des symboles transmis par A, mais aussi des instants où ces
symboles sont transmis et où le canal de communication et B effectuent leurs
propres transitions. On ne peut donc, en toute généralité, déterminer la probabilité d’un résultat. Ainsi la bande d’aléas peut sembler inutile puisque l’évolution
du système est non déterministe. Cependant nous verrons que dans certaines
situations (i.e. le cas de protocoles bien formés) le comportement du système
(ou du moins de morceaux nous intéressant) est déterministe et une probabilité
liée à la distribution des bandes d’aléas trouve alors son sens.
Considérons, par exemple, un canal de communication C, entre deux machines
de Turing interactives probabilistes, M1 et M2 , ayant chacune deux bandes de
communication. La figure ci-dessous reprend les bandes de communication de
ces différentes machines (les bandes de données de départ, de résultat, d’aléas
et de travail étant omises pour plus de clarté) :
r1
→ M1 →
w1 /rC
→
C
→
wC /r2
→ M2 →
w2
où r indique une bande de communication en lecture seule, w représente une
bande de communication en écriture seule et les indices 1, C et 2 se réfèrent aux
34
Chapitre 3 : Formalisation et propriétés
machines M1 , C et M2 pour lesquelles ces rôles sont joués.
À chaque pas, la machine de Turing interactive probabiliste modélisant le canal
de communication lit éventuellement les symboles se trouvant sous les têtes de
la bande d’aléas, de la bande de données de départ et de la bande de communication accessible uniquement en lecture, où M1 a pu écrire séquentiellement des
informations. Sur base de ces lectures, le contrôleur modifiera ou non l’état de la
machine. Lorsque la machine change d’état, et uniquement lorsque la machine
change d’état, elle écrit un symbole sur la bande de communication accessible
uniquement en écriture, à la suite des précédents ; ce symbole pourra ultérieurement être lu par M2 .
Définition 3.5 Si le nombre de pas effectués par un canal de communication,
dès qu’un symbole non blanc est présent sur sa bande de communication accessible uniquement en lecture, sans changer d’état est fini, constant et ne dépend
que de la bande de données de départ, si chaque symbole écrit sur la bande de
communication accessible uniquement en écriture est le dernier symbole lu, à
ce moment, sur la bande communication accessible uniquement en lecture, et si
la tête correspondant à la bande de communication accessible uniquement en
lecture ne se déplace pas vers la gauche et réalise un et un seul déplacement
vers la droite entre deux changements d’état, le canal de communication est dit
opérationnel.
¤
Le nombre de pas effectués par un canal de communication opérationnel entre
deux changements d’état, ainsi que les écritures qu’il réalise sur sa bande de
communication accessible uniquement en écriture ne dépendent donc pas de la
bande d’aléas.
Intuitivement, un canal opérationnel correspond à une « ligne de retard » où
toute information émise d’un côté de la ligne, arrive à l’autre extrémité après
un délai constant (du moins si le canal est cadencé de manière constante).
Définition 3.6 Si le nombre de pas effectués par un canal de communication,
dès qu’un symbole non blanc est présent sur sa bande de communication accessible uniquement en lecture, sans changer d’état, tout en restant fini, dépend
des différentes bandes décrites (y compris la bande d’aléas), si le symbole écrit
sur la bande de communication accessible uniquement en écriture est le dernier
symbole lu, à ce moment, sur la bande communication accessible seulement en
lecture, et si la tête correspondant à la bande de communication accessible uniquement en lecture ne se déplace pas vers la gauche et réalise un et un seul
déplacement vers la droite entre deux changements d’état, le canal de communication est dit réactif.
¤
Définition 3.7 Si un canal de communication n’est ni opérationnel, ni réactif,
il est dit incertain7 .
¤
7
unreliable en anglais.
3.2 La communication
35
La plupart des réseaux existants en pratique aujourd’hui sont incertains.
La bande d’aléas d’un canal de communication peut intervenir au niveau du
contrôleur, à la fois pour déterminer les changements d’état, mais aussi, dans
le cas d’un canal incertain, sous forme de bruit pour éventuellement altérer la
communication (la bande d’aléas étant utilisée par la fonction de transition pour
positionner les têtes correspondant aux bandes de communication et pour déterminer le symbole à écrire sur la bande de communication accessible uniquement
en écriture).
Définition 3.8 Une machine de Turing interactive probabiliste connectée, au
moyen de ses bandes de communication, à un ou plusieurs canaux de communication est appelée un acteur.
¤
Définition 3.9 Le triplet composé par un canal de communication et des deux
acteurs associés se nomme un axe de communication.
¤
Nous avons à présent tous les éléments nécessaires à la définition d’une communication.
Définition 3.10 Une communication consiste en un graphe orienté dont les
n (> 1) sommets sont des acteurs et dont les arcs sont les canaux de communication (le sens du trafic des symboles transitant d’un acteur à l’autre correspondant
au sens de l’arc du graphe orienté).
¤
En pratique, il sera requis que les graphes soient au moins faiblement connexes.
La définition d’une communication regroupe donc une multitude de topologies
possibles :
– un anneau, où chaque acteur appartient à deux axes de communication
– une « étoile », où seul un des acteurs membres de la communication appartient
à tous les axes de communication
– ...
Les acteurs membres d’un axe de communication s’échangent, via le canal de
communication, des messages au cours d’envois et de réceptions successifs.
Définition 3.11 Un message est une suite non vide de symboles 6= b de Γ
entourée par deux symboles particuliers qui n’apparaissent jamais dans les messages et qui servent de sentinelles indiquant le début et la fin du message. Les
deux symboles particuliers délimitant le message ne sont pas considérés comme
en faisant partie.
¤
Définition 3.12 Un envoi consiste en l’écriture par un acteur d’un message
sur une de ses bandes de communication accessibles uniquement en écriture. ¤
Définition 3.13 Une réception consiste en la lecture par un acteur d’un message sur une de ses bandes de communication en lecture seule.
¤
36
Chapitre 3 : Formalisation et propriétés
Aucun symbole b n’apparaissant dans et entre les messages, le lecteur sait, s’il
lit un symbole b sur la bande de communication, que le symbole suivant du
message courant n’est pas encore écrit sur cette bande.
Le modèle présenté ne prévoit pas l’observation (par un ou plusieurs opposants)
des informations transitant sur un canal. Nous pouvons cependant considérer
qu’une telle observation se modélise en considérant que la machine de Turing
interactive probabiliste modélisant l’épieur possède une tête sur la bande de la
machine de Turing interactive probabiliste modélisant le canal épié. L’épieur
passif n’écrit jamais de symbole sur la bande épiée, l’épieur actif peut éventuellement la modifier.
3.3
Les protocoles
Nous allons, à présent, définir successivement les éléments nécessaires à la formalisation de la notion de protocole.
Définition 3.14 Une étape correspond à un envoi réalisé par un acteur, sur
base éventuellement d’une ou plusieurs réceptions et du contenu des autres
bandes de l’acteur.
¤
Définition 3.15 Un protocole local consiste en la définition d’une séquence
finie d’étapes associées à un acteur membre d’une communication. Le début d’un
protocole local est identifié par la lecture d’un string particulier sur la bande de
données de départ de l’acteur. La fin du protocole est déterminée par l’écriture
d’un string de fin de protocole sur la bande de résultat de l’acteur.
¤
Un protocole local peut ainsi être modélisé par (un morceau d’) une machine de
Turing interactive probabiliste.
Définition 3.16 Un protocole consiste en n (> 1) protocoles locaux associés
aux n acteurs distincts membres d’une communication.
¤
Lors de l’exécution du protocole8 , un acteur détermine, à chaque étape de son
protocole local et sur base du contenu de ses bandes, ce qu’il va envoyer et à qui
cet envoi sera destiné.
Dans le cadre d’études sécuritaires de protocoles de communication, il est nécessaire de déterminer le comportement des acteurs impliqués dans ces protocoles.
Définition 3.17 Un acteur est honnête s’il réalise les étapes du protocole local
auquel il est associé, sinon il est dit malhonnête.
¤
8
Appelée aussi instance ou session du protocole.
3.4 Les protocoles d’échange
3.4
37
Les protocoles d’échange
Un protocole d’échange est un protocole au cours duquel des informations
doivent être échangées par des acteurs. Une information sera le contenu d’un
envoi (donc un message). Notons qu’un protocole quelconque peut servir, par
exemple, à transmettre une information d’un acteur à un autre (nous pouvons
imaginer un protocole au cours duquel un acteur transmet sa clé publique à un
acteur tiers), par contre un protocole d’échange implique que certains acteurs
(que nous appellerons par la suite acteurs cibles), non seulement transmettent
des informations, mais aussi en reçoivent.
Définition 3.18 Une information cible est un message particulier 9 explicitement lié à un acteur cible émetteur qui envoie cette information, ainsi qu’à un
acteur cible receveur qui doit obtenir le message sur une de ses bandes de communication accessibles uniquement en lecture. Cette information cible est telle
qu’il existe un algorithme (un accepteur) qui, sur base de l’information cible et
de l’identité de l’émetteur et du receveur (fournies comme données de départ),
produit comme résultat, en un temps exprimé polynomialement en fonction de
la taille des données de départ, un string de succès si l’information cible est
bien associée aux acteurs cibles précisés comme données de départ et un string
d’échec sinon. Ces deux strings sont fixés, distincts et constants.
¤
Une preuve de non-répudiation sera ainsi une information cible. L’information
cible de l’émetteur d’un message est la preuve de non-répudiation à la réception
et les informations cibles d’un récipiendaire sont le message et la preuve de
non-répudiation à l’origine associée.
Définition 3.19 Un protocole d’échange, auquel participent n acteurs, est
un protocole au cours duquel m ≤ n de ces acteurs, s’ils sont honnêtes, s’échangent, entre autres, des informations cibles, l’échange étant tel qu’au cours du
protocole, chacun des m acteurs reçoit une ou plusieurs de ces informations
cibles et envoie une ou plusieurs informations cibles relatives à un ou plusieurs
des m acteurs. Aucun acteur ne s’envoie de l’information à lui-même, ni ne
reçoit d’information de lui même. Les n − m acteurs non concernés par les informations cibles, participent au protocole comme intermédiaires lors des envois.
Au cours du protocole d’échange, des informations non cibles peuvent aussi être
transmises.
¤
Définition 3.20 Les m acteurs d’un protocole d’échange devant s’échanger de
l’information sont appelés acteurs cibles. Les n−m autres acteurs sont appelés
acteurs participants.
¤
Définition 3.21 Les échanges d’informations cibles réalisés au cours du protocole d’échange sont décrits par un ensemble Π de graphes d’échange πi ,
9
Les informations cibles seront essentiellement les preuves de non-répudiation dans les
protocoles que nous étudierons dans les prochains chapitres.
38
Chapitre 3 : Formalisation et propriétés
1 ≤ i ≤ |Π|, dont les sommets sont les acteurs cibles et dont les arcs sont les
envois d’informations cibles tels que ∀ 1 ≤ i 6= j ≤ |Π| : πi ∩ πj = ∅ en terme
d’arcs. Chaque acteur cible du protocole d’échange se retrouve dans au moins un
graphe d’échange πi ∈ Π. Chaque graphe d’échange πi est fortement connexe.
Au cours d’un protocole d’échange auquel participent des acteurs honnêtes, tous
les échanges décrits par Π sont réalisés (une seule fois chacun).
¤
En fait, Π peut être vu comme le graphe résultant de la somme (unions disjointes) des graphes d’échange.
Les graphes d’échange ne spécifient ni la manière (ni l’ordre) dont doivent être
conduits les échanges à réaliser au cours du protocole, mais correspondent à une
formalisation de ce qui doit être échangé une fois le protocole terminé (quelle
qu’en soit la manière). Ainsi, plusieurs protocoles différents peuvent vérifier un
même ensemble de graphes d’échange.
Définition 3.22 On appelle matrice d’échange une matrice d’adjacence (reprenant, outre l’information d’adjacence, les informations cibles) d’un graphe
d’échange πi associé à un protocole d’échange.
¤
Une matrice d’échange décrit donc les échanges à réaliser mais ne donne aucune
indication sur la manière de réaliser ces échanges.
Au cours d’un protocole d’échange, il peut arriver qu’un acteur cible envoie des
informations à des acteurs participants, qui servent alors d’intermédiaires. Ainsi,
un acteur cible peut donc recevoir ses informations cibles d’un acteur, qu’il soit
cible ou participant.
Considérons le protocole d’échange, informellement décrit ci-dessous, auquel
participent l’acteur cible Alice, A, l’acteur cible Bob, B, et l’acteur participant10 Colin, C. Le protocole prévoit, suivant le graphe d’échange représenté
par la matrice d’échange décrite ci-après, l’envoi par Alice de l’information cible
iA et l’envoi par Bob de l’information cible iB . La matrice d’échange, M , est,
dans ce cas ci, une matrice 2 × 2 dont les lignes et les colonnes correspondent
respectivement à Alice et Bob. Les deux entrées non vides de la matrice sont
M [A, B] = iA et M [B, A] = iB . Alice et Bob sont donc deux acteurs cibles et
Colin est un acteur participant honnête qui sert, ici, d’intermédiaire entre Alice
et Bob :
1. A → C : iA
2. C → B : A
3. B → C : iB
4. C → A : iB
5. C → B : iA
10
Par exemple une tierce partie de confiance.
3.4 Les protocoles d’échange
La matrice d’échange, indicée dans l’ordre par A et B, sera donc :
39
µ
∅ iA
iB ∅
¶
Remarquons que le deuxième envoi, correspondant à Colin signalant à Bob
« Alice m’envoie une information à votre intention », n’apparaît pas dans la
matrice d’échange (puisque ce n’est pas une information cible).
Définition 3.23 La description d’une information cible est une suite unique
de symboles 6= b de Γ entourée par deux symboles particuliers qui n’apparaissent
jamais dans la description et qui servent de sentinelles indiquant le début et la
fin de la description (ces symboles particuliers ne sont pas considérés comme
faisant partie de la description), tel qu’un algorithme sur base de l’information
cible et de sa description (fournies comme données de départ) produit comme
résultat, en un temps exprimé polynomialement en fonction de la taille des
données de départ, un string de succès si la description correspond de manière
univoque à l’information cible, et un string d’échec sinon. Ces deux strings sont
fixés, distincts et constants.
¤
Nous pouvons voir les descriptions et leur vérification comme un langage récursif
associé à un accepteur.
Définition 3.24 Un protocole d’échange est dit avec préaccords mutuels si
chacun des m acteurs cibles connaît la description de chacune des informations
cibles qu’il devrait recevoir au cours du protocole.
Un protocole d’échange sera dit sans préaccords mutuels si seuls les membres
d’un sous-ensemble, éventuellement vide, des m acteurs cibles connaissent la description des informations cibles qu’ils devraient recevoir au cours du protocole.
¤
Pour définir les propriétés liées aux protocoles d’échange, nous allons introduire
la notion de point de complétude d’un protocole d’échange.
Définition 3.25 Un point de forte complétude pour un acteur cible A,
honnête, dans un protocole d’échange, correspond à un envoi d’une étape du
protocole après lequel :
– si A a reçu certaines de ses informations cibles, alors tous les acteurs cibles
(y compris A) appartenant aux graphes d’échange de Π reprenant les informations cibles reçues par A, ont aussi reçu leurs informations cibles présentes
dans les graphes d’échange considérés et aucune autre information cible des
autres graphes d’échange auxquels appartient A n’a été reçue par un acteur
cible impliqué dans ces graphes,
– si A n’a reçu aucune de ses informations cibles, alors aucune information cible
n’a été reçue par un acteur cible impliqué dans les graphes d’échange auxquels
il appartient.
¤
40
Chapitre 3 : Formalisation et propriétés
Par exemple, considérons le protocole d’échange suivant, impliquant les acteurs
cibles Alice et Bob et au cours duquel Alice envoie à Bob l’information cible
(destinée à Bob) iA . Bob envoie en échange à Alice l’information cible (destinée
à Alice) iB . Le canal de communication entre Alice et Bob est supposé réactif :
1. A → B : iA
2. B → A : iB
Remarquons que la matrice d’échange relative à ce protocole est la même que la
matrice d’échange de l’exemple précédent, alors que le protocole est différent.
Le deuxième envoi de ce protocole d’échange est un point de forte complétude
pour Alice et pour Bob. Par contre, après le premier envoi nous n’avons ni un
point de forte complétude pour Alice car elle n’a (encore) rien reçu 11 , alors que
Bob a reçu l’information cible iA ; ni un point de forte complétude pour Bob, car
alors qu’il a reçu l’information cible iA , Alice n’a pas encore reçu son information
cible iB .
Définition 3.26 Un point de forte complétude universel d’un protocole
d’échange correspond à un envoi d’une étape du protocole qui est un point de
forte complétude pour tous les acteurs cibles, s’ils sont honnêtes.
¤
Définition 3.27 Un point de faible complétude d’un protocole d’échange,
correspond à un envoi d’une étape du protocole après lequel 0 < m′ < m acteurs
cibles n’ont pas reçu une ou plusieurs de leurs informations cibles présentes dans
les graphes d’échange de Π, alors qu’ils ont tous envoyé, à des acteurs cibles ou
participants, toutes les informations cibles, présentes dans ces mêmes graphes
d’échange. Cependant le protocole sera tel que ces m′ acteurs cibles « floués »
peuvent prouver à un acteur particulier (appelé juge), au moyen d’un autre
protocole, que les informations cibles qu’ils ont envoyées peuvent être reçues
par les acteurs cibles concernés sans plus d’intervention de leur part.
¤
Considérons le protocole d’échange suivant impliquant les acteurs cibles Alice et
Bob, et un acteur intermédiaire honnête, Colin (noté C). Le protocole prévoit
l’envoi par Alice de l’information cible iA à Bob, et l’envoi par Bob de l’information cible iB à Alice :
1. A → C : iA
2. C → A : preuve 12
3. C → B : iA
4. B → A : iB
11
12
Nous nous préoccupons de la disponibilité de l’information et non de sa lecture effective.
Cette preuve est une information non cible.
3.4 Les protocoles d’échange
41
Au cours du protocole, Colin n’envoie la preuve que s’il a reçu l’information i A
d’Alice. Si les canaux de communications entre Colin et Alice d’une part et entre
Colin et Bob d’autre part, sont réactifs ou opérationnels 13 , le deuxième envoi
est un point de faible complétude. En effet, si Alice arrête sa participation au
protocole après cet envoi, Bob recevra de Colin l’information cible i A et Alice
pourra prouver cela au moyen de la preuve reçue de Colin au deuxième envoi.
Un autre scénario consiste en Bob n’envoyant pas iB à Alice, alors qu’Alice,
honnête, a transmis iA ; Alice pourra, alors, à nouveau utiliser la preuve reçue
de Colin pour prouver avoir envoyé iA , tout en n’ayant éventuellement14 pas
reçu iB de Bob.
Définition 3.28 Un point de complétude probabiliste dans un protocole
d’échange correspond à un envoi d’une étape du protocole après lequel la probabilité, suivant la distribution de probabilité jointe des bandes d’aléas des acteurs et des canaux, d’être en un point de forte complétude, universel ou non,
est ≥ 1 − ε (où ε est connu et inférieur à 1). Nous parlerons aussi d’un point
d’ε-complétude.
¤
Nous sommes maintenant à même de définir les différentes notions d’équité vues
au chapitre précédent.
Définition 3.29 Un protocole d’échange est fortement équitable pour un
acteur cible honnête quand cet acteur, en suivant les étapes du protocole,
arrive toujours à atteindre un point de forte complétude relatif aux acteurs cibles
des graphes d’échange le concernant, universel ou non, que les autres acteurs
cibles soient honnêtes ou non. Le comportement (honnête ou non) des acteurs
intermédiaires et la qualité (opérationnel, réactif ou incertain) des différents
canaux de communication doivent être précisés.
¤
Définition 3.30 Un protocole d’échange est fortement équitable si le protocole est fortement équitable pour chacun des m acteurs cibles impliqués, s’ils
sont honnêtes15 .
¤
Définition 3.31 Un protocole d’échange est dit faiblement équitable pour
un acteur cible honnête quand cet acteur, en suivant les étapes du protocole,
arrive toujours à atteindre soit un point de forte complétude relatif aux acteurs
cibles des graphes d’échange le concernant, universel ou non, soit un point de
faible complétude relatif aux acteurs cibles des graphes d’échange le concernant, que les autres acteurs cibles soient honnêtes ou non. Le comportement
(honnête ou non) des acteurs intermédiaires et la qualité (opérationnel, réactif
ou incertain) des différents canaux de communication doivent être précisés. ¤
13
La qualité des canaux de communication devra toujours, au cours des prochains chapitres,
être précisée lors de la description des protocoles.
14
Alice ne sera, cependant, pas en mesure de prouver qu’elle n’a pas reçu iB .
15
Il n’est pas nécessaire que les acteurs cibles soient tous honnêtes pour que le protocole
soit fortement équitable.
42
Chapitre 3 : Formalisation et propriétés
Définition 3.32 Un protocole d’échange est faiblement équitable si le protocole est faiblement équitable pour au moins un des m acteurs cibles impliqués,
s’il est honnête, et faiblement ou fortement équitable pour chacun des autres
acteurs cibles, s’ils sont honnêtes.
¤
Définition 3.33 Un protocole d’échange est équitable de manière probabiliste pour un acteur cible honnête quand cet acteur, en suivant les étapes
du protocole, arrive toujours à atteindre soit un point de forte complétude relatif
aux acteurs cibles des graphes d’échange le concernant, universel ou non, soit
un point de faible complétude relatif aux acteurs cibles des graphes d’échange le
concernant, soit un point de complétude probabiliste relatif aux acteurs cibles
des graphes d’échange le concernant. Le protocole sera alors dit ε-équitable pour
cet acteur cible honnête, où ε est le maximum des probabilités (de non-équité)
liées aux différents points de complétude probabiliste que peut atteindre l’acteur
cible (par convention, le maximum d’un ensemble vide sera 0).
¤
Comme ε correspond à la probabilité que le protocole d’échange ne soit pas
équitable, si le protocole est tel que plusieurs points de complétude probabiliste
peuvent être atteints, nous prenons le maximum des probabilités pour exprimer
le risque le plus grand de perte d’équité induit par le protocole (nous verrons, au
chapitre 5, que la perte d’équité, dans ce contexte, sera consécutive au comportement d’un acteur malhonnête qui tente d’atteindre un point de complétude
probabiliste tel qu’il a le plus de chance de briser l’équité).
Définition 3.34 Un protocole d’échange est équitable de manière probabiliste si le protocole est équitable de manière probabiliste pour au moins un
des m acteurs cibles impliqués, s’il est honnête, et respecte un des trois types
d’équité pour chacun des autres acteurs cibles, s’ils sont honnêtes. Le protocole
sera alors dit ε-équitable, où ε est le maximum des probabilités (de non-équité)
liées aux différents points de complétude probabiliste de tous les acteurs cibles.
¤
Définition 3.35 Un protocole d’échange est viable16 si, la qualité des canaux
de communication et l’honnêteté des intermédiaires étant fixées, lorsque tous les
acteurs cibles sont honnêtes et qu’ils ont tous soit envoyé, soit reçu au moins un
message (cible ou non), ces acteurs cibles, en suivant les étapes du protocole,
arrivent toujours à atteindre un point de complétude tel que toutes les informations cibles présentes dans tous les graphes d’échange de Π ont été reçues.
¤
Cette propriété a surtout un intérêt théorique. En pratique peu de protocoles
d’échange la respectent si les canaux utilisés pour faire transiter les informations
n’ont pas de contrainte en terme de qualité de service assurant le succès des
transmissions dans un délai fixé (à savoir, un canal opérationnel).
16
viability ou completeness en anglais.
3.5 Vérification de protocoles d’échange
43
Remarquons, par exemple dans le cas d’un protocole d’échange entre deux acteurs cibles, que si le canal de communication entre les deux acteurs cibles n’est
pas réactif ou opérationnel, le premier message du protocole peut ne jamais arriver à son destinataire. Le protocole n’aura en fait commencé que pour un seul
des deux acteurs cibles. Nous considérerons dès lors, toujours dans le contexte de
protocoles d’échange entre deux acteurs cibles, que la viabilité ne sera considérée
qu’après la réception correcte du premier message émis.
Définition 3.36 Un protocole d’échange est temporellement fini17 si, la qualité des canaux de communication et l’honnêteté des intermédiaires étant fixées,
les acteurs cibles honnêtes, en suivant les étapes du protocole, arrivent toujours à atteindre un point de complétude relatif aux acteurs cibles des graphes
d’échange les concernant en un nombre fini18 de transitions de leur contrôleur.
¤
Cette dernière définition assure que le protocole finira, pour tous les acteurs
cibles honnêtes, en un temps fini, que les échanges aient eu lieu ou non (l’équité
étant cependant assurée par le point de complétude).
3.5
Vérification de protocoles d’échange
Sur base de ces définitions, nous vérifierons au cours des prochains chapitres si les
protocoles d’échange étudiés respectent une des propriétés d’équité proposées.
Les points de complétudes représentent le mécanisme pivot des preuves d’équité.
Lors de l’étude de l’équité d’un protocole d’échange, nous commencerons par
identifier tous les points de complétude. Nous isolerons donc ainsi les parties
du protocole qui sont à risque (les étapes du protocole ne correspondant pas à
un point de complétude), puis nous vérifierons que chaque acteur cible pourra
toujours, s’il est honnête, atteindre l’un ou l’autre point de complétude, universel
ou non, du protocole.
Pour démontrer l’équité, nous supposerons que l’hypothèse de conservation définie ci-dessous est toujours vérifiée.
L’hypothèse de conservation d’un acteur honnête suppose qu’un acteur
honnête réalise toujours des étapes d’un protocole d’échange qui lui permettent
d’atteindre, si cela est possible, un point de complétude (universel ou non).
3.6
Conclusion
Nous voyons donc, en jetant un pont entre ce chapitre et le chapitre précédent,
qu’une tierce partie de confiance sera un acteur participant. Par contre un juge
17
18
timeliness en anglais.
de borne non nécessairement connue.
44
Chapitre 3 : Formalisation et propriétés
ne fait pas partie du protocole d’échange et la résolution de disputes se réalise
au cours d’un protocole distinct.
Nous utiliserons ces définitions pour démontrer les propriétés de non-répudiation
et d’équité des protocoles d’échange que nous allons étudier aux cours des prochains chapitres. Les machines de Turing, ainsi que les graphes et matrices
d’échange, ne seront plus utilisées en tant que tels dans la suite. Ils nous ont
servi à modéliser les acteurs et les canaux puis les protocoles et enfin nous avons
pu formaliser les propriétés d’équité, viabilité et fin de protocole. Nous allons à
présent toujours décrire les protocoles, informellement, au moyen de notations
fléchées.
Notons enfin que la notion de protocole de non-répudiation se rattache au
concept de protocole d’échange sans préaccord mutuel 19 , alors que les protocoles d’échange équitable sont vus comme des protocoles d’échange avec préaccord mutuel.
19
Au cours d’un protocole de non-répudiation, l’envoi d’une information est réalisée à l’initiative de l’émetteur ; les receveurs ne s’attendent pas à une information particulière et accusent
réception de ce qu’ils reçoivent.
Chapitre 4
Non-répudiation avec tierce
partie de confiance
4.1
Introduction
Nous allons, au cours de ce chapitre, étudier chronologiquement les principaux
protocoles d’échange faisant usage de tierces parties de confiance (TPC). Cette
approche chronologique correspond aux évolutions logiques opérées sur les protocoles. Nous observerons au cours de cette étude l’évolution de l’activité de
l’autorité de confiance. D’agent de synchronisation, elle deviendra signataire
mandatée par les acteurs cibles. Il sera aussi intéressant de noter l’évolution
des besoins au cours des échanges. Les premiers protocoles d’échange assurant
la non-répudiation permettent à la TPC d’émettre des signatures en son nom
propre. Ces signatures sont considérées aussi valides 1 , même si structurellement
différentes, que celles qui auraient dû être émises par les acteurs cibles euxmêmes. Les protocoles les plus récents assurent aux acteurs cibles de recevoir
en toute circonstance la signature attendue (et non plus la signature de remplacement produite par la TPC).
Nous ne considérerons dans un premier temps que les acteurs impliqués dans la
communication au cours de laquelle l’échange aura lieu. En cas de dispute, le
juge sera un acteur d’une autre communication au cours de laquelle la dispute
sera résolue.
La plupart des protocoles seront des protocoles d’échange, où interagiront Alice
(qui sera à l’origine de l’échange), Bob (le récipiendaire) et une TPC. Le protocole 4.1, détaillé à la section 4.2.1, sera exceptionnellement un protocole
d’échange dans lequel interviendront deux autorités de confiance.
Remarquons qu’une TPC est dite neutre si l’aide qu’elle apporte à la bonne
réalisation d’un protocole d’échange n’est pas conditionnée par sa connaissance
des informations à échanger. Comme nous le verrons, les TPC utilisées dans les
1
Cette signature de remplacement est appelée affidavit, terme juridique anglais, ensuite
adopté dans de nombreuses langues, provenant du latin affidare (il a attesté).
46
Chapitre 4 : Non-répudiation avec tierce partie de confiance
prochains protocoles de non-répudiation seront souvent neutres.
La réalisation pratique du service de non-répudiation (et donc de l’équité qu’il
assure) impose aux acteurs de s’accorder sur une « police 2 de non-répudiation »
décrivant les preuves, la manière de les générer, de les vérifier ainsi que la procédure de résolution des disputes. Les acteurs cibles choisissent aussi les autorités
de confiance à utiliser : agent de livraison, autorité assurant l’équité, juge, notaire. . .
Enfin, toutes les clés nécessaires à l’aboutissement de l’échange doivent être
échangées avant et/ou au cours des protocoles [54, 71, 24, 14]. Nous ne décrirons
que les échanges de clés devant se dérouler au cours des protocoles. Si une
clé, correspondant à un schéma de chiffrement symétrique, est supposée être
préalablement partagée par divers acteurs, nous ne décrirons pas cet échange
préalable. Nous ne décrirons pas non plus les échanges satellites nécessaires à
la transmission des certificats produits par des autorités de certification qui
associent une clé publique à l’acteur possédant la clé secrète correspondante
[54, 32, 41, 36, 56, 34]. Enfin, nous supposerons que les aléas et nonces 3 utilisés
au cours des protocoles sont produits par des générateurs adéquats (en terme de
production des valeurs), mais nous n’étudierons pas le fonctionnement de tels
générateurs [54, 1, 4, 81, 72, 17]. Lorsqu’au cours des protocoles il est dit « choisir
une valeur aléatoire » il sera souvent entendu de choisir aléatoirement une valeur
selon une distribution uniforme sur le domaine fini des valeurs admissibles.
Nous détaillerons chaque protocole étudié sous ses aspects d’équité, nous vérifierons si le protocole est temporellement fini et s’il respecte la propriété de
viabilité. Nous envisagerons enfin les problèmes pouvant résulter d’une déviance
du comportement non seulement des protagonistes mais également de la TPC.
Toutes les preuves présentées pour vérifier ces propriétés sont basées sur le modèle que nous avons proposé au chapitre précédent. Certaines de ces propriétés
ont parfois aussi été prouvées, au moyen de raisonnements hétéroclites, par les
auteurs des protocoles dans la littérature.
Chaque protocole sera, avant d’être analysé, présenté de manière concise au sein
d’une figure reprenant les envois et une représentation des points de complétude.
Nous utiliserons les conventions suivantes :
– ¨ : point de forte complétude universel
– ¨X : point de forte complétude pour un acteur cible X
– ♦ : point de faible complétude
– P ♦ : point de complétude probabiliste
Dans tous les protocoles qui vont suivre, impliquant les acteurs cibles Alice et
Bob, les informations cibles seront les preuves de non-répudiation à l’origine et
à la réception, ainsi que le message qu’Alice désire faire parvenir à Bob, auquel
se rapportent ces preuves.
2
Toujours dans le sens de convention.
Un « nonce », mot anglais provenant de « no more than once », désigne une valeur, souvent
aléatoire, qui ne peut être utilisée qu’une seule fois pour un même usage. Son but consiste
essentiellement à éviter les attaques par réémission.
3
4.2 Méthodes avec tierce partie de confiance in-line
47
Enfin, nous supposerons que les juges connaissent le protocole utilisé par les
acteurs. Un acteur sollicite un juge afin de prouver qu’un autre acteur nie avoir
pris part à une communication. Pour réaliser cela, l’acteur plaignant présente au
juge des preuves émises par l’acteur répudiant la communication. Ces preuves
n’ont de sens que dans le cadre de l’usage d’un protocole précis, l’acteur plaignant n’a donc aucun intérêt à mentir au juge sur le protocole utilisé.
4.2
Méthodes avec tierce partie de confiance in-line
La classe de protocoles que nous allons à présent aborder est celle des protocoles
faisant usage de TPC lors de chaque transmission d’un message, la TPC est alors
dite in-line.
Ces méthodes, plus anciennes, présentent plusieurs inconvénients. Tout d’abord
elles requièrent la gestion de grandes bases de données par la TPC. En effet,
cette dernière doit conserver les messages transitant par elle, ainsi que les moments de chaque événement. Elle devra de plus gérer les clés utilisées au cours
du protocole. La gestion d’une telle base de donnée centralisée représente un
risque sécuritaire important. En effet, si une telle TPC vient à être attaquée
avec succès, la somme d’informations accessibles est plus importante qu’elle ne
le serait avec une TPC moins omnisciente. Il convient donc de veiller tout particulièrement à la protection des informations gérées par une telle partie de
confiance. Enfin, l’effet d’étranglement, dû au flux d’informations qui transitent
en masse par la TPC, est maximum.
Une TPC in-line requiert, en conséquence, une confiance particulièrement importante de la part des acteurs ainsi qu’une quantité de ressources centralisées
considérable.
4.2.1
Le protocole de non-répudiation de Coffey et Saidha
Ce protocole d’échange, proposé en 1996, illustre bien l’usage de TPC in-line.
Coffey et Saidha [29] utilisent la TPC comme serveur de non-répudiation. Les
preuves de non-répudiation ne sont retransmises par la TPC que lorsqu’Alice
et Bob les lui ont fournies. La TPC va donc collecter les preuves et ne les
transmettre que par la suite.
Nous faisons l’hypothèse que les canaux de communication entre chaque entité
et les tierces parties de confiance sollicitées sont réactifs.
Le protocole fait usage de cachets temporisés émis par une autorité de confiance
gardienne du temps4 (autorité de gestion du temps, AGT en abrégé). L’autorité
de gestion des cachets temporisés ne se préoccupe pas du contenu des messages
qui lui sont soumis (contrairement à ce qui est parfois attendu d’une TPC), elle
se contente d’ajouter un cachet temporisé à un message signé par l’acteur avec
lequel elle communique.
4
time stamping authority en anglais.
48
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Protocole 4.1 Le protocole de Coffey et Saidha
1.
A → AGT : CKAGT (NRO PS )
2.
AGT → A : CKA (NRO)
3.
A → TPC : requête d’un transfert non-répudiable
4.
TPC → A : CKA (n³
1)
´
f A (n1 , NRO, NRR P )
5.
A → TPC : CKTPC Sig
´
³
f TPC (n2 , NRR P )
6.
TPC → B : CKB Sig
7.
8.
9.
B → AGT : CKAGT (NRR PS )
AGT → B : CKB (NRR)
´
³
f B (n2 , NRR)
B → TPC : CK
Sig
¨
¨
¨
¨
¨B
¨B
¨B
¨B
TPC
10.
11.
TPC → B : CKB (NRO)
TPC → A : CKA (NRR)
¨
Les preuves
Le protocole assure l’échange de preuves de non-répudiation à l’origine ainsi qu’à
la réception, mais pour ce faire, il utilise des messages intermédiaires qui sont
des preuves partielles de non-répudiation. De telles preuves sont dites partielles
car elles entrent dans la composition des preuves de non-répudiation.
La preuve partielle de non-répudiation à l’origine signée est :
f A (fNRO , A, B, m)
NRO PS = Sig
où fNRO est un code indiquant le but du message (à savoir apporter la preuve de
non-répudiation à l’origine), A et B sont des strings désignant respectivement
Alice et Bob et m est le message, concerné par les preuves de non-répudiation,
transmis par Alice à Bob. Les virgules dénotent des concaténations.
La preuve de non-répudiation à l’origine5 est :
f AGT (NRO PS , AGT , ct1 )
NRO = Sig
où ct1 est un cachet temporisé, assurant la fraîcheur du message, apposé par
l’autorité de gestion du temps.
La preuve partielle de non-répudiation à la réception non signée consiste en :
NRR P = fNRR , B, A, h (NRO)
où fNRR indique que le but de cette preuve est d’apporter la non-répudiation à
la réception.
La preuve partielle de non-répudiation à la réception signée :
5
f B (NRR P )
NRR PS = Sig
NRO pour non-repudiation of origin evidence en anglais.
4.2 Méthodes avec tierce partie de confiance in-line
49
Enfin, la preuve de non-répudiation à la réception6 est :
f AGT (NRR PS , AGT , ct2 )
NRR = Sig
où ct2 est, comme ct1 , un cachet temporisé apposé par l’autorité de gestion du
temps.
Le protocole
À chaque pas du protocole décrit ci-dessous, la réception d’un message incorrect
(invalidité d’une signature, etc.) entraîne l’arrêt du protocole par le récipiendaire.
1. Alice initie le protocole en soumettant à l’autorité de gestion du temps
la preuve partielle signée de non-répudiation à l’origine pour qu’elle soit
datée et signée par cette autorité :
A → AGT : CKAGT (NRO PS )
2. L’autorité de gestion du temps, si la signature d’Alice est valide, répond
par la preuve de non-répudiation à l’origine, chiffrée pour qu’elle ne soit
accessible qu’à Alice :
AGT → A : CKA (NRO)
3. Si la preuve de non-répudiation est valide (y compris le cachet temporisé), Alice demande à la TPC l’initialisation d’une communication nonrépudiable :
A → TPC : requête d’un transfert non-répudiable
4. Si la TPC reçoit une telle requête, elle répond par l’envoi chiffré d’un nonce
aléatoire, n1 (utilisé donc exclusivement pour cette session du protocole).
Cette valeur aléatoire, temporairement conservée par la TPC, ne pourra
être obtenue que par Alice qui, seule, peut déchiffrer ce message :
TPC → A : CKA (n1 )
5. Alice inclut dans sa réponse à la TPC ce nombre aléatoire n1 (garantissant
à la TPC que ce message ne provient pas d’une autre session du protocole). Elle envoie la preuve complète de non-répudiation à l’origine et la
preuve partielle de non-répudiation à la réception. La TPC pourrait calculer cette preuve partielle de non-répudiation à la réception, mais Alice
le réalise pour diminuer la charge de la tierce partie :
6
NRR pour non-repudiation of receipt evidence en anglais.
50
Chapitre 4 : Non-répudiation avec tierce partie de confiance
´
³
f A (n1 , NRO, NRR P )
A → TPC : CKTPC Sig
6. Si le message envoyé par Alice et sa signature sont valides, la TPC initie
la génération de la preuve de non-répudiation à la réception. Pour ce faire
elle envoie à Bob un deuxième nonce aléatoire, n2 , propre à cette session
du protocole, ainsi que la preuve partielle de non-répudiation à la réception :
´
³
f TPC (n2 , NRR P )
TPC → B : CKB Sig
7. Bob signe la preuve partielle de non-répudiation à la réception et l’envoie
à l’autorité de gestion du temps pour que celle-ci y appose un cachet temporisé signé :
B → AGT : CKAGT (NRR PS )
8. Si le message est reçu et si sa signature est correcte, Bob reçoit en retour la
preuve de non-répudiation à la réception signée et datée, le tout formant
la preuve complète de non-répudiation à la réception :
AGT → B : CKB (NRR)
9. Bob soumet la preuve obtenue, si cette dernière est valide, à la TPC en
incluant le nombre aléatoire n2 :
´
³
f B (n2 , NRR)
B → TPC : CKTPC Sig
10. La TPC peut « oublier » n1 et n2 , et envoie la preuve de non-répudiation
à l’origine à Bob :
TPC → B : CKB (NRO)
11. Puis elle envoie la preuve de non-répudiation à la réception à Alice :
TPC → A : CKA (NRR)
Remarquons que l’ordre des deux derniers envois n’a pas d’importance.
L’équité
Rappelons que les autorités intervenant dans le protocole, l’AGT et la TPC,
sont supposées honnêtes. Les raisonnements qui vont suivre se baseront, entre
autres, sur la certitude d’un comportement adéquat de leur part.
Théorème 4.1 Le dernier envoi du protocole ainsi que les envois du protocole
précédant le cinquième envoi sont des points de forte complétude universels.
4.2 Méthodes avec tierce partie de confiance in-line
51
Preuve : Si Alice arrête le protocole avant le cinquième envoi, la TPC ne reçoit
pas la preuve de non-répudiation à l’origine et ne continue pas le protocole.
Bob n’a donc plus d’autre choix que d’arrêter aussi le protocole (il ne sera pas
contacté par la tierce partie). Ni Alice, ni Bob n’ont les preuves attendues. De
même si Bob arrête le protocole avant le cinquième envoi, Alice pourra contacter
la TPC lors du sixième envoi. Mais cette dernière, n’obtenant aucune réponse
de Bob, ne pourra rien transmettre en retour à Alice.
Après le onzième envoi, les preuves sont reçues par les acteurs cibles et le protocole prend fin naturellement.
¤
Théorème 4.2 Les cinquième, sixième, septième et huitième envois sont des
points de fortes complétudes pour Bob.
Preuve : Si Bob met fin au protocole avant le neuvième envoi (et après le
cinquième envoi), il ne fournit pas la preuve de non-répudiation à la réception à
la TPC, qui ne peut donc la transmettre à Alice, et ne reçoit donc pas la preuve
de non-répudiation à la réception. Alice n’a plus d’autre choix que d’arrêter
aussi le protocole.
Par contre Alice ne peut spontanément arrêter de prendre part au protocole
après le cinquième envoi car elle ne peut prévoir le comportement de Bob, qui
s’il réalise le neuvième envoi, recevra la preuve de non-répudiation à l’origine.
¤
Théorème 4.3 Le protocole est fortement équitable.
Preuve : Avant le neuvième envoi, le protocole peut être arrêté sans risque
(puisque chacun de ces envois correspond à un point de complétude).
Si Bob réalise le neuvième envoi, la TPC y répondra aux envois dix et onze : le
point de complétude universel correspondant à l’exécution du onzième envoi est
donc atteint.
Par l’hypothèse de conservation, Alice n’abandonnera plus le protocole après le
cinquième envoi ; de même Bob ne l’abandonnera plus après le neuvième envoi.
Puisque, par hypothèse, les canaux entre la TPC et respectivement Alice et Bob
sont réactifs, les preuves de non-répudiation attendues seront reçues par Alice
et Bob.
¤
La fin du protocole
Les auteurs n’ont pas proposé d’user de délais maxima après lesquels on considère un message comme perdu. Tel que présenté par les auteurs, le protocole ne
peut donc être prouvé temporellement fini.
Théorème 4.4 Si un délai maximum d’attente ti est fixé pour chaque envoi i,
le protocole est temporellement fini.
52
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Preuve : Puisque les canaux de communication entre les tierces parties de
confiance (TPC et AGT) et respectivement Alice et Bob sont réactifs, les envois
2, 4, 6, 8, 10 et 11 sont réalisés et arrivent en un temps fini non prévisible.
Les autres envois i (qui ne sont pas émis par une autorité de confiance) sont
éventuellement reçus avant ti unités de temps ; si ce n’est pas le cas, le protocole
est arrêté. Le protocole se termine ainsi en un temps fini.
¤
Les disputes
Si Alice affirme avoir envoyé avec succès le message m à Bob, le juge lui demande
ou demande à la TPC la preuve de non-répudiation à la réception ainsi que la
preuve de non-répudiation à l’origine. Si ces preuves ne peuvent être fournies,
le juge rejette l’affirmation d’Alice. Dans le cas contraire, le juge vérifie les
signatures d’Alice et de l’autorité de gestion du temps sur la preuve de nonrépudiation à l’origine. Puis il vérifie si le hachage de cette preuve de nonrépudiation à l’origine correspond au hachage présent dans la preuve de nonrépudiation à la réception7 . Enfin, il vérifie les signatures de Bob et de l’autorité
de gestion du temps sur la preuve de non-répudiation à la réception. Si toutes
ces vérifications réussissent l’affirmation est acceptée.
Si Bob affirme avoir reçu le message m d’Alice, le juge demande à Bob ou à
la TPC la preuve de non-répudiation à l’origine. Si cette preuve ne peut être
fournie, l’affirmation est rejetée. Sinon, le juge vérifie si le message précisé dans la
preuve de non-répudiation à l’origine correspond au m annoncé par Bob. Puis
il vérifie les signatures d’Alice et de l’autorité de gestion du temps sur cette
preuve de non-répudiation. Si toutes ces vérifications réussissent l’affirmation
est acceptée.
La viabilité
Théorème 4.5 Le protocole est viable.
Preuve : Par hypothèse, puisque les acteurs sont tous honnêtes et comme
aucun message n’est définitivement bloqué, tous les envois du protocole sont
réalisés, les preuves sont émises par la TPC et finalement reçues par Alice et
Bob. Notons que, sans canaux réactifs, un message pourrait être perdu lors de
sa transmission, mettant ainsi fin au protocole malgré l’honnêteté des acteurs.
¤
Le comportement de la tierce partie de confiance
Un protocole in-line est très sensible à une déviance de comportement d’une
autorité de confiance.
7
Rappelons que la preuve de non-répudiation à la réception NRR est basée sur la preuve
partielle de non-répudiation à la réception signée NRR PS qui est composée de la preuve partielle de non-répudiation non signée contenant le hachage de la preuve de non-répudiation à
l’origine NRO.
4.3 Méthodes avec tierce partie de confiance on-line
53
La TPC peut s’allier avec Alice et lui envoyer un n1 déjà utilisé et/ou accepter
un cachet temporisé dépassé et le transmettre à Bob en fin de protocole. Elle
peut accepter une signature non valide d’Alice et finalement la transmettre à
Bob. Ces attitudes résulteront en une perte de l’équité au profit d’Alice. Si elle
s’allie avec Bob, les mêmes comportements à l’avantage de Bob mèneront à
déséquilibrer le processus.
Tous ces comportements sont détectables par Alice et Bob s’ils reçoivent une
signature non valide (dont la vérification échoue ou encore réalisées sur base de
clés révoquées). Cependant il ne semble pas aisé, pour une partie flouée par une
TPC, de le prouver à des tiers.
La tierce partie peut aussi faire échouer l’échange en ne transmettant rien en fin
de protocole ou en transmettant des signatures non valides à la fin du protocole.
À nouveau, ce comportement se détecte aisément.
Remarques
La confidentialité est assurée tout au long du protocole. Le message m est inclus
dans NRO ainsi que dans NRO P S , lesquels sont toujours transmis chiffrés.
Les cachets temporisés ct1 et ct2 apposés par l’AGT sont aussi nécessaires pour
distinguer les preuves de non-répudiation produites par différentes sessions du
protocole. En effet, les valeurs n1 et n2 émises au cours du protocole ne sont
pas reprises dans les preuves de non-répudiation.
L’autorité de gestion du temps et la TPC interagissent directement avec Alice et
Bob, et de plus la TPC vérifie des signatures provenant d’Alice et Bob : aucun
anonymat n’est donc possible à cet endroit. Un observateur extérieur ne voit
que des messages chiffrés ; il ne peut donc en déduire l’origine. L’anonymat est
donc garanti vis à vis de cet observateur.
Remarquons que pour un même niveau de sécurité, des techniques plus légères
pourraient être utilisées. Ne tentons pas de modifier ce protocole, mais étudions
plutôt les protocoles suivants qui font usage d’une TPC on-line, dont deux (sections 4.3.2 et 4.3.3) peuvent être vus comme des améliorations de ce protocole-ci.
4.3
Méthodes avec tierce partie de confiance on-line
Les protocoles basés sur des TPC on-line sont tels que la tierce partie n’agit plus
comme une autorité de livraison des messages (en tant qu’intermédiaire lors de
chaque échange entre les acteurs), mais intervient à un moment ou un autre à
chaque session du protocole.
Nous allons à présent étudier trois protocoles de non-répudiation représentatifs
de l’usage qui peut être fait d’une telle TPC.
54
4.3.1
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Le protocole de non-répudiation par balises
Pour introduire pratiquement cette section sur les protocoles de non-répudiation
avec TPC on-line, nous allons exceptionnellement faire un retour dans le temps
et présenter un protocole proposé par Rabin [59] en 1983. Il propose une méthode
originale, appelée méthode par balises8 , permettant de réaliser l’échange d’une
information contre un accusé de réception. Cette approche, par l’usage qui est
fait de la TPC, est fort différente des méthodes traditionnellement développées.
La balise est une TPC qui, au moyen d’un canal radio ou via un réseau, diffuse 9 ,
à intervalle de temps régulier et fixé ∆, un message :
f TPC (p1 , . . . , pk , d, j, t)
Sig
Ce message est composé du moment t de transmission de ce signal, de k clés
publiques de chiffrement pi choisies aléatoirement10 et d’une clé de déchiffrement
d correspondant à la j ième clé publique p′j (j choisi aléatoirement entre 1 et k)
transmise lors de l’émission précédente, au moment t − ∆.
Les prémices
Un protocole de mise en accord est préalablement réalisé entre les acteurs. Si
Alice désire envoyer à Bob le message m, elle lui enverra préalablement ce message m chiffré pour Bob, puis à nouveau chiffré au moyen d’une clé de session
K choisie par Alice (avec un schéma de chiffrement symétrique) :
CK (CKB (m))
ainsi que :
(4.1)
digest = h (CK (CKB (m)))
Protocole 4.2 Le protocole par balises de Rabin
Un tour du protocole consiste en :
1. B → A : i
f B (digest, i, t + ∆)
2. B → A : Sig
¢
¡
f A digest, Cp′ (K) , i, t
3. A → B : Sig
i
f TPC (p1 , . . . , pk , d, j, t + ∆)
4. TPC diffuse Sig
8
entre t et t + ∆
6
entre t + ∆
et
t+
6
∆
entre t + 3 et t +
au moment t + ∆
∆
3
2∆
3
¨
P♦
¨
beacons en anglais.
Diffusion dans le sens de broadcasting en anglais.
10
Exceptionnellement dans cette sous-section, pour respecter les notations originales de
Rabin, nous n’utiliserons pas k comme une clé.
9
4.3 Méthodes avec tierce partie de confiance on-line
55
Les preuves
La preuve de non-répudiation à l’origine du message m, composable après le
moment t + ∆, est :
(
¢
¡
f A digest, Cp′ (K) , i, t
Sig
i
NRO =
(4.2)
f TPC (p1 , . . . , pk , d, i, t + ∆)
Sig
pour un moment t, un entier i et une clé de session K chiffrée au moyen de la
clé publique de chiffrement p′ i .
La preuve de non-répudiation à la réception du message m, composable après
le moment t + ∆ est :
(
f B (digest, i, t + ∆)
Sig
(4.3)
NRR =
f TPC (p1 , . . . , pk , d, i, t + ∆)
Sig
pour un moment t et un entier i.
Le protocole
Un protocole d’échange s’engage entre Alice et Bob (A et B) de la manière
suivante :
1. Bob envoie à Alice, entre le moment t et t +
rement (au moment t) ∈ [1, k] :
∆
6,
un entier i choisi aléatoi-
B→A:i
2. Bob envoie à Alice, entre le moment t +
∆
6
et t +
∆
3,
sa signature :
f B (digest, i, t + ∆)
B → A : Sig
f TPC (p′ , . . . , p′ , d′ , j ′ , t) de la balise,
3. Si Alice a reçu i et le message Sig
1
k
ième
elle extrait alors la i
clé publique p′i de l’envoi de la balise, et calcule
2∆
Cp′i (K) qu’elle envoie a Bob, entre le moment t + ∆
3 et t + 3 au moyen
du message :
³
´
f A digest, Cp′ (K) , i, t
A → B : Sig
i
D’un autre côté, si Alice n’a pas reçu la signature de Bob (du deuxième
∆
envoi) entre t + ∆
6 et t + 3 , elle ne continue pas le protocole.
4. Bob attend jusqu’au moment t + ∆ le message suivant émis par la balise
(s’il n’a rien reçu, il arrête le protocole) :
f TPC (p1 , . . . , pk , d, j, t + ∆)
Sig
56
Chapitre 4 : Non-répudiation avec tierce partie de confiance
À ce moment, si j = i alors le protocole se termine. En effet, d est la clé
de déchiffrement de p′i et dans ce cas Bob peut utiliser d pour retrouver la
clé de session K incluse dans la signature d’Alice (du troisième envoi) et
ainsi retrouver le message m. De son côté Alice a déjà obtenu la signature
de Bob sur le message prouvant qu’il l’a bien reçu.
Si j 6= i le protocole décrit est itéré et ce jusqu’à ce qu’une clé valide de
déchiffrement soit émise par la balise.
Remarquons que le protocole prévoit l’envoi à deux reprises de i (aux deux premiers envois). La raison en est « historique » ; en effet ce protocole fut réalisé par
Rabin sur base d’un protocole d’échange de signatures digitales sur un contrat,
présenté dans le même article. Dans ce protocole, deux valeurs i1 et i2 sont
émises aux premiers envois pour fixer la valeur de i = i1 + i2 . Rabin, n’ayant
plus besoin de deux valeurs distinctes dans le protocole d’échange présenté ici,
a néanmoins conservé les deux envois.
L’équité
Théorème 4.6 À chaque tour du protocole, le premier et le dernier envoi sont
des points de forte complétude universels.
Preuve : Nous pouvons considérer que le premier envoi de chaque tour du
protocole est équivalent au premier envoi du premier tour, puisque si un nouveau
tour doit être initié cela signifie que la balise n’a pas émis la clé de déchiffrement
attendue et que les informations échangées au tour précédent sont obsolètes.
Après le premier envoi, Bob a envoyé l’entier i qui sera utilisé lors des prochains
échanges. Sur base de cette valeur, Alice ne peut contrefaire la signature du
digest générée par Bob (puisqu’elle ne connaît pas la clé secrète que Bob utilise
pour générer ses signatures). Ni Alice, ni Bob n’ont reçu l’information attendue.
Si Bob arrête le protocole après ce premier envoi, Alice ne recevant plus rien
arrêtera le protocole. Si Alice arrête le protocole, Bob ne recevant plus rien et
n’ayant encore rien obtenu, arrêtera aussi le protocole.
Après le quatrième envoi, la balise a émis son message et il ne reste plus qu’à
comparer i et j. Soit les preuves de non-répudiation sont échangées soit aucun
des messages envoyé n’a la valeur d’une telle preuve.
¤
Théorème 4.7 À chaque tour du protocole, le deuxième envoi est un point de
complétude probabiliste. Cet envoi est un point de k1 -complétude.
Preuve : Après le deuxième envoi, si Alice arrête le protocole et si la balise
émet au moment t + ∆ un j 6= i alors le protocole reste équitable. Mais si le j
émis par la balise est égal au i choisi par Bob à ce tour du protocole alors l’équité
est brisée et seule Alice reçoit la preuve attendue. Une telle situation survient
avec une probabilité égale à k1 . Si Alice arrête le protocole après ce deuxième
4.3 Méthodes avec tierce partie de confiance on-line
57
envoi, Bob ne recevant plus rien arrêtera le protocole. Par contre, si Bob ne
prend plus part au protocole après le deuxième envoi, Alice peut quant à elle
éventuellement obtenir de la TPC la preuve de non-répudiation à la réception
(avec une probabilité égale à k1 ).
¤
Théorème 4.8 Si les canaux de communication entre la TPC et respectivement
Alice et Bob sont réactifs, le protocole implémente une équité probabiliste : le
protocole est k1 -équitable.
Preuve : À chaque tour du protocole, seul le troisième envoi n’est pas un point
de complétude (probabiliste ou non).
Cependant, si Alice ou Bob décident d’arrêter le protocole après le troisième
envoi, il y a un risque de perte d’équité en l’unique défaveur de l’acteur ayant
arrêté le protocole. Ainsi, aucune partie n’a intérêt à arrêter le protocole (tous
les messages ont été échangés entre Alice et Bob, et la validité de ceux-ci se
décide sur base du message qui va être émis par la balise au quatrième envoi).
Par l’hypothèse de conservation le protocole continuera.
Ainsi, avec une probabilité 1 − k1 , il est toujours possible d’atteindre un des trois
points de complétude énoncés aux théorèmes 4.6 et 4.7.
¤
Remarquons que même si le message émis par la TPC n’est pas arrivé à temps
et si les parties entament un nouveau tour11 , lorsque ce message-balise arrive
finalement, il reste valide (les acteurs ont donc tout intérêt à ne pas « jeter »
les informations reçues avant d’avoir reçu le message de la balise).
La fin du protocole
Théorème 4.9 Le protocole de Rabin ne peut être prouvé temporellement fini.
Preuve : Si Alice et Bob sont honnêtes et si les messages envoyés sont reçus
dans les délais attendus, alors le protocole se termine avec succès en moyenne
en k · ∆ unités de temps.
Dans tous les autres cas de figure le protocole se termine avant ce moment.
Cependant, le protocole ne peut être prouvé temporellement fini car la probabilité que, après n tours du protocole, nous ayons toujours i 6= j, bien que
diminuant quand n grandit, ne s’annule jamais (cela est dû au comportement
asymptotique de la distribution géométrique).
¤
Les disputes
Si Alice prétend avoir envoyé avec succès le message m à Bob, la preuve de
non-répudiation à la réception est acceptée par toutes les parties, pour autant
que les signatures de Bob et de la TPC soient valides, que les preuves soient de
11
Les deux premiers envois d’un tour peuvent être réalisés indépendamment du tour précédent. Le troisième envoi nécessite une des clés émises par la balise au tour précédent.
58
Chapitre 4 : Non-répudiation avec tierce partie de confiance
la forme indiquée en 4.2 et 4.3, que i = j et que i et t + ∆ soient présents dans
les messages signés.
Remarquons que cette résolution de dispute ne permet pas de s’assurer que le
message m indiqué par Alice correspond à celui reçu par Bob. En effet, si Alice
a chiffré, au cours des prémices, le message m avec une clé K̄ différente de la clé
K qu’elle transmet à Bob au cours du protocole, ce dernier peut alors présenter
au juge la signature d’Alice :
³
´
f A digest, Cp′ (K) , i, t
Sig
(4.4)
i
avec K̄ 6= K, ce qui invalidera l’affirmation d’Alice (le juge se rendra compte
aussi que le digest ne peut être reconstruit avec la clé K). Dans cette situation,
ni Alice, ni Bob n’auront de preuve mais Alice est alors reconnue malhonnête.
Si Bob prétend avoir reçu le message m d’Alice, il présente au juge la preuve
de non-répudiation à l’origine. Le juge vérifie si les signatures d’Alice et de la
TPC sont correctes et si i = j, si les t sont les mêmes et si la clé K extraite de
la signature d’Alice permet de reconstruire le digest de m.
La sécurité
Alice ou Bob ne peuvent utiliser à mauvais escient un message d’une session du
protocole lors d’une session ultérieure puisque les messages signés qu’ils reçoivent
contiennent le moment t ou t + ∆ de leur émission.
Nous mettons cependant en évidence un cas de figure qui, à notre connaissance
n’avait pas encore été identifié, au cours duquel un opposant, Oscar (O), peut
perturber le protocole en tirant éventuellement un bénéfice de cette perturbation
au détriment d’Alice et Bob. Supposons qu’Oscar soit en mesure d’intercepter
un message provenant d’Alice ou Bob et de le bloquer (le canal entre Alice et
Bob est incertain). Considérons alors la séquence d’échange suivante, durant
laquelle Alice veut envoyer un message m à Bob :
1’. A → O → B : CK (CKB (m))
2’. A → O → B : digest = h (CK (CKB (m)))
1. B → O : i
f B (digest, i, t + ∆)
2. B → O : Sig
Si le message de la balise en t + ∆ est tel que j = i, alors la preuve de nonrépudiation à la réception émise par Bob et obtenue uniquement par Oscar est
acceptée par tous. Une telle situation survient avec une probabilité égale à k1 .
Un tour du protocole de Rabin peut être très aisément modifié pour se prémunir
d’une telle attaque (les contraintes temporelles sont les mêmes que celles décrites
plus haut, nous les omettons ici par souci de lisibilité) :
1. B → A : i
f B (A, digest, i, t + ∆)
2. B → A : Sig
4.3 Méthodes avec tierce partie de confiance on-line
59
³
´
f A B, digest, Cp′ (K) , i, t
3. A → B : Sig
i
f TPC (p1 , . . . , pk , d, j, t + ∆)
4. La TPC émet Sig
Ces modifications sont inspirées des recommandations d’Abadi et de Needham
[1]. Les messages 2 et 3 incluent le nom des récipiendaires. La présence du nom
du récipiendaire A dans le deuxième message empêche Oscar de présenter la
preuve comme en étant le récipiendaire. Les autres protocoles étudiés dans ce
chapitre sont plus récents que celui de Rabin, aussi de telles attaques par un
homme au milieu ne seront pas réalisables.
Le comportement de la tierce partie de confiance
Un comportement malhonnête de la TPC peut s’exprimer de plusieurs façons.
Alliée avec Alice, elle peut lui fournir la preuve de non-répudiation à la réception
tout en empêchant Bob de recevoir la preuve de non-répudiation à l’origine. Pour
ce faire, il suffit à la TPC d’indiquer au début d’un tour de protocole que l’envoi
de balise qu’elle va réaliser sera celui où j = i, ainsi Alice arrête le protocole
après le deuxième envoi. Alice reçoit sa preuve alors que Bob ne reçoit rien. Un
tel comportement occasionnel de la TPC est indétectable.
Si la TPC s’allie avec Bob, elle peut lui transmettre la clé de déchiffrement d
puis émettre un message balise tel que j 6= i, Bob arrête le protocole à la fin
de ce tour du protocole. Il possède alors le message m, mais ne peut prétendre
avoir reçu ce message d’Alice puisqu’il n’a pas la preuve de non-répudiation à
l’origine (il ne pourrait prouver à un juge posséder une telle preuve puisqu’il
ne peut présenter une signature d’Alice et une signature de la TPC telles que
i = j). La TPC peut encore envoyer personnellement à Bob le message balise
attendu qui contient la clé de déchiffrement d attendue par Bob puis arrêter
le protocole pour qu’Alice ne reçoive rien. Bob possède alors seul la preuve
de non-répudiation, mais ce comportement de la tierce partie est évidemment
directement détectable.
Sans être alliée à un acteur cible, la TPC peut observer à chaque tour du protocole le i choisi par Bob et transmettre chaque fois un j 6= i ; le protocole reste
équitable mais ne se termine jamais. Une telle situation survient normalement
avec une probabilité infime mais non nulle ; si la tierce partie se comporte ainsi
de manière répétée, cela pourra être détecté par observations.
La viabilité
Théorème 4.10 Si les canaux de communication entre tous les acteurs sont
réactifs, le protocole est viable.
Preuve : Si Alice et Bob sont honnêtes, lorsque l’entier i choisi et émis par
Bob est égal au j choisi et émis par la TPC, alors le point de complétude
correspondant à la réalisation du dernier envoi d’un tour de protocole est atteint
60
Chapitre 4 : Non-répudiation avec tierce partie de confiance
et le protocole se termine puisque les preuves de non-répudiation à l’origine (4.2)
et à la réception (4.3) sont reçues respectivement par Bob et Alice.
L’événement i = j correspond à l’expérience consistant à tirer aléatoirement,
suivant une distribution uniforme entre 1 et k, et indépendemment, deux valeurs
identiques. La probabilité qu’au
nième
¡
¢ tirage, les deux valeurs soient pour la
1
1 n−1
première fois égales vaut k · 1 − k
. Cette probabilité, paramétrée par k
et n, s’exprime par une distribution géométrique en n dont le facteur de succès
vaut k1 . La moyenne d’une telle distribution vaut 11 = k. Ainsi l’événement i = j
est attendu en moyenne après k tours.
k
Si le canal de communication entre les parties n’est pas réactif, un message émis
par la TPC pourrait être intercepté et définitivement bloqué. Par contre un
retard n’a pas de conséquence fâcheuse.
¤
Remarques
Ce protocole, présenté comme un protocole d’échange équitable 12 , s’apparente à
notre définition d’un protocole de non-répudiation. Si Alice triche et envoie une
« fausse » clé K̃ de déchiffrement13 , la preuve de non-répudiation à la réception
porte bien sur un message résultant du déchiffrement D K̃ (CK (CKB (m))) au
moyen de cette clé14 .
Le protocole est tel que le message m reste confidentiel et n’est récupérable
que par Bob. Cette confidentialité n’est a priori pas requise par un protocole de
non-répudiation.
Cette approche probabiliste de l’équité doit être mise en regard avec la méthode
5.5 proposée au chapitre suivant.
Comme pour toutes les méthodes basées sur les TPC, la sécurité du protocole
repose entièrement sur la confiance que l’on porte à cette dernière.
La TPC ne recevant aucun message d’Alice ou de Bob, l’anonymat vis à vis
d’elle est assuré. Un observateur, Oscar, du protocole voit des messages signés
par Alice et Bob circuler sur le réseau. Si ces signatures digitales sont classiques,
elles sont universellement vérifiables. L’anonymat n’est donc formellement pas
assuré face à un observateur. Notons cependant que si Oscar ignore l’identité du
signataire, il ne peut savoir quelle clé publique utiliser pour vérifier la signature.
La version modifiée n’assure pas d’anonymat face à un observateur.
Notons enfin que la nécessité de synchronisation est une contrainte lourde à
réaliser. Aussi le délai ∆ doit être paramétré de manière à ce que l’acteur ayant
la plus petite puissance de calcul puisse fournir les messages nécessaires dans
les délais attendus.
12
appelé confidential disclosure. dans [59]
Alice chiffrerait donc le message m au moyen de la clé K et transmettrait au cours du
protocole une clé K̃.
14
En supposant que le digest soit aussi basé sur cette clé K̃ : digest =
h (CK̃ (CKB (DK̃ (CK (CKB (m)))))).
13
4.3 Méthodes avec tierce partie de confiance on-line
4.3.2
61
Le protocole de non-répudiation de Zhang et Shi
Zhang et Shi ont proposé [74] en 1996 un protocole où une TPC publie (au moment adéquat et en le rendant accessible à quiconque à la manière d’un panneau
d’affichage15 ) les clés de session, et maintient une base de donnée contenant les
clés de session utilisées au cours des sessions de ce protocole ainsi que les moments où ces clés ont été déposées dans la base de données 16 . Cette base de
données n’est accessible qu’en lecture.
Soit Alice l’auteur du message m qu’elle désire envoyer à Bob ; elle choisit une
clé de session (basée sur un cryptosystème symétrique) et envoie à Bob le chiffré
du message au moyen de cette clé de session. Ce chiffrement s’apparente à une
mise en gage de m plutôt qu’à une recherche de confidentialité. Bob accusera
réception de ce chiffré en envoyant une signature qui ne sera considérée comme
valable que si la clé de session est rendue publique au plus tard à un moment
fixé et à la condition que cette clé de session déchiffre correctement le message.
Lorsque cette signature « conditionnelle » est reçue par Alice, elle transmet la
clé de session à la TPC, qui la publie. Bob obtiendra cette clé en consultant le
répertoire public de la TPC.
Protocole 4.3 Le protocole de Zhang et Shi
f A (h (CK (m)) , nA )
1. A → B : CKB (CK (m)) , Sig
f B (h (CK (m)) , nA , nB , tB )
2. B → A : Sig
f A (h (CK (m)) , K, tB )
3. A → TPC : CK
(label , tB ) , Sig
¨
¨A
TPC
4.
TPC ↔ B : label , IA
¨
Les preuves
La preuve de non-répudiation à l’origine est :
(
f A (h (CK (m)) , K, tB )
Sig
NRO =
CK (m)
(4.5)
où K est une clé secrète finalement partagée par Alice et Bob, relative à un
schéma de chiffrement symétrique, et tB est une information temporelle précisant le moment auquel les preuves doivent être consultables auprès de la TPC.
Cette signature d’Alice sera extraite d’un message signé par la TPC :
³
´
f TPC label , Sig
f A (h (CK (m)) , K, tB )
Sig
où le label (construit au cours du protocole) identifie de manière unique le message m.
15
public board en anglais.
Contrairement aux protocoles suivants, le juge doit consulter la TPC pour déterminer si
une preuve est acceptable. La TPC ne peut donc pas effacer les informations de la base de
données à la fin du protocole. Cette base de données grandit donc indéfiniment.
16
62
Chapitre 4 : Non-répudiation avec tierce partie de confiance
La preuve de non-répudiation à la réception est :
(
f B (h (CK (m)) , nA , nB , tB )
Sig
NRR =
CK (m)
(4.6)
où nA et nB sont des nonces aléatoires associés à la session du protocole.
Le protocole
Si un message est incorrect ou si un message attendu n’arrive pas, le récipiendaire
potentiel arrête le protocole.
1. Alice choisit un nonce aléatoire, nA , qui permet de ne rendre la signature
valide que pour une seule session du protocole. Alice transmet à Bob le
message m chiffré avec la clé de session K et à nouveau chiffré au moyen
de la clé publique de Bob, ainsi que sa signature sur le nonce nA et sur le
hachage de m chiffré au moyen de la clé de session K :
f A (h (CK (m)) , nA )
A → B : CKB (CK (m)) , Sig
2. Bob déchiffre la première partie du message reçu, en utilisant sa clé secrète
K ′ B . Il vérifie l’identité d’Alice (en vérifiant la validité de la signature de
la deuxième partie du message). Bob calcule h (CK (m)) et le compare au
hachage extrait de la signature d’Alice. Si les deux hachages ne sont pas
identiques ou si la signature n’est pas valide, le protocole est arrêté. Sinon,
l’authenticité et l’intégrité de CK (m) sont prouvés.
Bob choisit alors un nonce aléatoire nB (prévenant une éventuelle tricherie de la part d’Alice qui utiliserait un nA utilisé lors d’une précédente
session), et fixe tB , un délai maximum précisé à l’intention de la TPC. tB
représente le moment limite avant lequel Alice doit avoir fourni la clé de
session K à la TPC, laquelle devra la publier avant ce moment si Alice
veut obtenir un accusé de réception valide. Ce mécanisme permet à Bob
de s’assurer qu’Alice ne peut retarder indéfiniment la publication de la clé
de session :
f B (h (CK (m)) , nA , nB , tB )
B → A : Sig
3. Alice vérifie la signature de Bob et détermine si CK (m) et nA extraits
de la signature sont identiques aux premiers envoyés. Si ce n’est pas le
cas la session du protocole prend fin et le protocole peut être éventuellement relancé. Ensuite Alice évalue si elle peut transmettre la clé K dans
les délais prescrits. Si elle pense ne pas pouvoir le faire, elle met fin au
protocole et en informe Bob (et relance éventuellement une nouvelle session du protocole). Si tout est en ordre, Alice calcule le label qui identifie
l’information qui doit être publiée par la TPC. Ce label est calculé sur
base de nA , nB et tB (valeurs auxquelles Alice et Bob ont chacun contribué) : label = f (nA , nB , tB ) où f réaliserait, par exemple, une addition
4.3 Méthodes avec tierce partie de confiance on-line
63
modulo 2 bit à bit. tB est inclus à la fois dans le message et la signature
afin de permettre à la TPC de confirmer l’intégrité et l’origine du message.
f A (h (CK (m)) , K, tB )
A → TPC : CKTPC (label , tB ) , Sig
4. Le message d’Alice reçu, la TPC enregistre le moment d’arrivée du message, puis vérifie la signature d’Alice ainsi que l’intégrité du message reçu
en comparant tB du message à celui de la signature. Si une vérification
échoue, la session est arrêtée. Si tout est en ordre, la TPC rend public le
message IA .
Si le moment d’arrivée du message de A est plus tardif que tB , alors :
f TPC (label , late)
IA = Sig
(4.7)
f TPC (label , tr , null )
IA = Sig
(4.8)
Si la TPC reçoit une requête de consultation et que rien ne lui est parvenu
à ce propos (sur base du label reçu), alors :
où tr correspond au moment où la TPC répond à la requête.
Sinon :
³
´
f TPC label , Sig
f A (h (CK (m)) , K, tB )
IA = Sig
(4.9)
Une fois tB passé, Bob utilise le label pour obtenir l’information publique
via la TPC (en consultant le répertoire public de la TPC 17 ). Il peut réaliser
cette opération avant ce délai pour peu qu’Alice ait déjà soumis l’information adéquate à la TPC.
TPC ↔ B : label , IA
Ensuite la TPC sauvegarde le message, la signature et le moment d’arrivée
du message d’Alice dans une base de données qui sera consultée en cas de
disputes. Bob vérifie le label signé, consulte la TPC et s’assure que la clé
de session a bien été publiée à temps (par l’absence de late ou null dans
la signature). Il vérifie alors la signature d’Alice, afin de s’assurer qu’elle
contient un hachage correct et le tB correspondant à cette session. Enfin
Bob utilise la clé K pour déchiffrer le message m reçu lors de la première
transaction.
L’information temporelle tB doit tenir compte du décalage des horloges entre
Alice, Bob et la TPC. Les auteurs précisent que de tels décalages sont au plus
de l’ordre de la seconde lors de l’utilisation de mécanismes actuels de synchronisation au travers de réseaux.
17
Un risque de collision existe si f est mal choisi. L’addition bit à bit modulo 2 suggérée
par Zhang et Shi semble inadéquate à cet égard.
64
Chapitre 4 : Non-répudiation avec tierce partie de confiance
L’équité
Théorème 4.11 Les points de forte complétude universels du protocole correspondent au premier et au dernier envois.
Preuve : Après le premier envoi, si le protocole s’arrête (pour quelque raison
que ce soit), Alice ne pourra recevoir de Bob les informations nécessaires afin de
construire le message attendu par la TPC à l’envoi 3. Le protocole se termine
donc sans aucune information échangée (ni 4.5, ni 4.6 ne sont émis).
Après le dernier envoi, la TPC a publié IA et en fonction du contenu de ce
message, les preuves de non-répudiation (4.5 et 4.6) prennent toutes deux leur
sens ou non.
¤
Théorème 4.12 Le deuxième envoi du protocole est un point de forte complétude pour Alice.
Preuve : Après le deuxième envoi, Bob a envoyé sa signature. Si Alice arrête
le protocole après cet envoi, elle enlève toute valeur à cette signature puisque,
en cas de dispute, sa preuve de non-répudiation à la réception ne sera prise
en compte que combinée avec la signature émise par la TPC au quatrième
envoi (4.6). Si le protocole s’arrête ici, Alice n’obtient pas une preuve de nonrépudiation à la réception « complète » et Bob n’obtient pas la preuve de nonrépudiation à l’origine. Si Bob arrête le protocole après le deuxième envoi, Alice
peut continuer le protocole et elle obtient seule la preuve de non-répudiation. ¤
Théorème 4.13 Si le canal de communication entre la TPC et Bob est réactif,
alors le protocole est fortement équitable.
Preuve : Après le troisième envoi, il est sûr que la TPC va émettre un message qui validera ou non les preuves de non-répudiation. Bob, par hypothèse de
conservation, n’arrêtera donc pas le protocole à cet endroit. Il consultera donc la
TPC et atteindra le point de complétude correspondant à l’exécution du dernier
envoi du protocole.
Le canal de communication réactif assure la disponibilité du verdict de la TPC
quant à la validité des preuves de non-répudiation.
Par hypothèse de conservation, Bob n’arrêtera plus le protocole après le deuxième
envoi ; si Alice a arrêté le protocole à ce moment, il atteint le point de complétude d’Alice, sinon il atteint le point de complétude correspondant au troisième
envoi.
¤
La fin du protocole
Le protocole ne peut être prouvé temporellement fini : en effet rien n’indique
combien de temps Alice doit attendre avant de décider que le deuxième envoi
n’arrivera jamais.
4.3 Méthodes avec tierce partie de confiance on-line
65
Théorème 4.14 Si le protocole est modifié afin de préciser le temps maximum
d’attente du deuxième message, et si le canal de communication entre Bob et la
TPC est réactif, alors le protocole est temporellement fini.
Preuve : Si les acteurs n’agissent pas honnêtement ou si, suite à un retard, la
TPC ne reçoit pas le message d’Alice à temps, alors la TPC publiera un message
IA contenant late (à partir du moment tB ) ou null et le protocole se termine à
ce moment.
Si les parties agissent honnêtement et si la TPC reçoit à temps les informations
nécessaires, elle publie en tB un message IA contenant la clé K. Le canal entre
Bob et la TPC étant réactif, lorsque Bob fera la demande de consultation du
répertoire public, il finira par retrouver IA , mais ce moment ne peut être prévu.
¤
Les disputes
En cas de dispute, si Alice prétend avoir envoyé avec succès le message m à
Bob, alors le juge concerné demande à Alice sa preuve de non-répudiation à la
réception. Le juge vérifie la signature de Bob contenue dans cette preuve. La
preuve de non-répudiation contient aussi le chiffré C K (m).
Si Bob prétend avoir reçu le message m′ d’Alice, il transmet au juge sa preuve de
non-répudiation à l’origine. Le juge y vérifie la validité de la signature d’Alice.
Cette preuve de non-répudiation contient aussi le chiffré du message m.
Sur base des informations reçues, il calcule le label et l’utilise pour interroger la
TPC.
– Si la TPC envoie un message IA de type (4.9), alors il vérifie la signature du
message émis par la TPC et en extrait la clé de session K̆ 18 . Puis il compare
le résultat du hachage de ce chiffré avec celui présent dans les preuves de
non-répudiation. Il utilise alors la clé de session K̆ pour déchiffrer CK (m) et
obtient le message m′ . Le juge atteste alors que les preuves de non-répudiation
échangées correspondent au message m′ . Si Alice a envoyé à la TPC une clé
K̆ 6= K alors m′ 6= m et Alice reçoit une preuve de non-répudiation à la réception correspondant à m′ (si elle prétend que la preuve de non-répudiation
à la réception doit correspondre à m, elle doit reconnaître avoir triché en soumettant une mauvaise clé de session à la TPC).
– Si la TPC envoie un message IA de type (4.7), alors le juge concluera à la
non-validité des preuves de non-répudiation. Une telle situation peut arriver
si Alice retarde malhonnêtement son envoi vers la TPC.
– Si la TPC envoie un message IA de type (4.8), alors le juge concluera aussi à
la non-validité des preuves de non-répudiation. Une telle situation peut arriver si Alice n’envoie aucune information à la TPC ou si elle utilise lors de cet
18
Nous notons ici K̆ la clé présente dans (4.9) pour la distinguer de la clé K utilisée par
Alice pour chiffrer m. Si Alice est honnête, K̆ = K.
66
Chapitre 4 : Non-répudiation avec tierce partie de confiance
envoi un « faux » label.
Le comportement de la tierce partie de confiance
Si la TPC est malhonnête, elle peut s’allier avec Bob, lui transmettre l’information, contenant la clé de session, qui devrait être publiée et ne rien publier
ou publier une information inexacte. Bob bénéficie ainsi du message m, mais
s’il désire prouver à un juge sa bonne foi il devra montrer qu’il possède un I A
différent de celui obtenu par le juge au cours d’une résolution de dispute. De
plus ce IA qu’il présenterait validerait aussi la preuve de non-répudiation à la
réception d’Alice (perdant ainsi tout le bénéfice de la coalition).
Si la TPC s’allie avec Alice, elle peut accepter une soumission de la clé de session
en retard par rapport à tB . Alice bénéficierait alors d’un éventuel avantage
temporel. Ce comportement est de plus difficilement détectable.
Enfin, la tierce partie peut émettre un message IA qui ne correspond pas à la
réalité, de manière à ce que ni Alice ni Bob ne reçoivent leur preuve. Un tel
comportement malhonnête est difficile à détecter, car Bob peut supposer que le
responsable en est Alice qui n’a pas transmis ou a transmis trop tard le message
attendu.
Les auteurs soulignent que les problèmes liés à l’éventuel comportement malhonnête de la TPC, doublé éventuellemement d’un canal de communication
perturbé, peuvent être prévenus par l’usage de plusieurs TPC qui publieraient
en même temps les informations afin d’augmenter la fiabilité du protocole 19 .
La viabilité
Théorème 4.15 Si le canal de communication est réactif entre la TPC et Bob,
et opérationnel entre Alice et Bob d’une part, et entre Alice et la TPC d’autre
part, alors le protocole est viable.
Preuve : Si tous les acteurs sont honnêtes, le deuxième envoi est reçu par Alice
après un délai connu (grâce au canal opérationnel) de manière à ce que le temps
tB (déterminé par Bob qui, honnête, le choisit réaliste) soit accepté par Alice
qui poursuit le protocole. Le troisième envoi est réalisé par Alice et est reçu
après un délai connu (grâce au canal opérationnel) par la TPC. Celle-ci publie
alors (4.9) qui sera finalement accessible par Bob (grâce au canal réactif). ¤
Remarques
Le protocole assure la confidentialité du message transmis (même une fois la clé
de session dévoilée, puisque le message chiffré est à nouveau chiffré au moyen
19
En alourdissant aussi considérablement les procédures et en générant de multiples goulets
d’étranglement.
4.3 Méthodes avec tierce partie de confiance on-line
67
de KB ). Le protocole assure la confidentialité du message m aussi vis-à-vis de
la TPC.
La TPC ne reçoit qu’un hachage du message m chiffré, ce qui réduit l’effet
d’étranglement.
Un opposant, Oscar, ne peut intercepter la preuve de non-répudiation à l’origine
et prétendre avoir reçu le message m d’Alice, car il ne possède pas le chiffré
CK (m) qui lui sera demandé si il présente devant un juge une telle affirmation.
De même, Oscar, ne peut s’attribuer la preuve de non-répudiation à la réception
car dans le message rendu disponible par la TPC se trouve la signature d’Alice
et non d’Oscar.
Le protocole n’assure que l’anonymat de Bob par rapport à la TPC (puisqu’Alice
lui envoie un message signé). Bob reste anonyme puisque seule la connaissance
du label est nécessaire pour interroger la TPC. Vis à vis de l’extérieur, l’anonymat n’est garanti que si aucune information sur les signataires des messages
n’est transmise.
4.3.3
Le protocole de non-répudiation de Zhou et Gollmann
Un protocole majeur proposé en 1996 et résultant des travaux [75] de Zhou,
sous la direction de Gollmann, consiste en un protocole avec TPC on-line. L’idée
consiste à alléger au maximum le travail de la TPC.
Alice et Bob réalisent chacun une mise en gage20 des preuves et du message.
Cette mise en gage sera considérée comme une déclaration d’intention vis à vis
de la TPC, qui terminera alors le protocole en émettant les preuves attendues
tout en assurant l’équité.
Ce protocole, tout comme celui de Coffey et Saidha (section 4.2.1), use à chaque
message d’un indicateur qui précise l’objet du message envoyé. Un label fixe
l’instance du protocole et le récipiendaire est spécifié dans chaque message signé,
règles de « bonne pratique » d’écriture de protocole recommandées par Abadi
et Needham [1].
Protocole 4.4 Le protocole de Zhou et Gollmann
1. A → B : fEOO , B, label , t, Ck (m) , EOO ¨
2. B → A : fEOR , A, label , EOR
¨A
3. A → TPC : fsub k , B, label , t, k, sub k
4. TPC ↔ B : fcon k , A, B, label , k, con k
5. TPC ↔ A : fcon k , A, B, label , k, con k
¨
Les preuves
Dans le protocole, les preuves suivantes sont échangées :
20
commitment en anglais.
68
Chapitre 4 : Non-répudiation avec tierce partie de confiance
La preuve de non-répudiation à l’origine du chiffré 21 :
EOO = SigA (fEOO , B, label , t, Ck (m))
(4.10)
où fEOO est une information qui indique la nature du message 22 , B indique que
Bob est le récipiendaire du message signé par Alice, label est une valeur associée
à la session du protocole, t est le moment à partir duquel les informations (la
preuve de non-répudiation à la réception de la clé k) nécessaires à la construction
des preuves « finales » de non-répudiation sont accessibles auprès de la TPC
(voir 4.13, ci-dessous) et Ck (m) est le chiffré du message m au moyen de la clé
de session k.
La preuve de non-répudiation à la réception du chiffré 23 :
EOR = SigB (fEOR , A, label , t, Ck (m))
(4.11)
La preuve de non-répudiation à l’origine de la clé de session k utilisée pour
chiffrer symétriquement le message m (preuve considérée ici comme une preuve
de non-répudiation de la soumission par Alice de la clé de session k à la TPC) :
sub k = SigA (fsub k , B, label , t, k)
(4.12)
la preuve24 de non-répudiation à la réception de la clé de session k fournie par
la TPC :
con k = SigTPC (fcon k , A, B, label , t, k)
(4.13)
La preuve de non-répudiation à l’origine du message m sera, logiquement, la
preuve de non-répudiation à l’origine du chiffré c combinée à la preuve de nonrépudiation à la réception, par la TPC, de la clé de session k :
NRO = (EOO, con k )
(4.14)
De la même manière la preuve de non-répudation à la réception du message
m sera la preuve de non-répudiation à la réception du chiffré c combiné, de la
même façon que pour la preuve ci-dessus, à la preuve de non-répudiation à la
réception, par la TPC, de la clé de session k :
NRR = (EOR, con k )
(4.15)
Le protocole
Si un message est incorrect ou si un message attendu n’arrive pas, le récipiendaire
potentiel arrête le protocole.
21
EOO pour evidence of origin en anglais.
Nous retrouverons aussi ces indicateurs de messages dans certains autres protocoles que
nous étudierons. Ils se présenteront toujours sous la forme f... , où l’indice est en rapport avec
la nature du message, en reprenant souvent le nom de la preuve convoyée par le message.
23
EOR pour evidence of receipt en anglais.
24
Cette preuve est aussi appelée preuve de confirmation de la réception, par la TPC, de la
clé de session k.
22
4.3 Méthodes avec tierce partie de confiance on-line
69
1. Alice initie le protocole en envoyant directement à Bob le chiffré du message m par une clé de session k de son choix, le label (label = h(m, k))
qui sera associé à cette session du protocole, le moment t à partir duquel
la TPC peut être consultée par Alice et Bob afin d’obtenir la preuve de
non-répudiation à la réception de la clé de session k, ainsi que la preuve
de non-répudiation à l’origine du chiffré :
A → B : fEOO , B, label , t, Ck (m) , EOO
2. Si Bob accepte le moment t proposé par Alice, il envoie la preuve de nonrépudiation à la réception du chiffré :
B → A : fEOR , A, label , EOR
3. Alice envoie alors à la TPC la clé de session k, ainsi que la preuve de
non-répudiation à l’origine de cette clé. La TPC n’accepte, au cours d’une
session d’un protocole, qu’une seule soumission de la part d’une entité et,
lors d’une soumission, elle vérifie si les signatures sont valides ainsi que la
cohérence du message reçu (en s’assurant que le moment t spécifié n’est
pas dépassé) :
A → TPC : fsub k , B, label , t, k, sub k
4. Bob peut alors aller chercher, après l’instant t, la preuve de non-répudiation
à la réception de la clé de session qui lui est nécessaire pour construire sa
preuve de non-répudiation à l’origine du message m :
TPC ↔ B : fcon k , A, B, label, k, con k
5. Alice fait de même afin d’obtenir la preuve de non-répudiation à la réception NRR (4.15) :
TPC ↔ A : fcon k , A, B, label , k, con k
Aux cours des envois 4 et 5, ce sont donc bien Alice et Bob qui vont chercher
la clé de déchiffrement et la preuve de non-répudiation à la réception de la clé
k auprès de la TPC. Ainsi, de la même manière que le mécanisme de répertoire
public utilisé par Zhang et Shi, les acteurs cibles consultent, le moment venu,
un répertoire public géré par la TPC et uniquement accessible en lecture depuis
l’extérieur. Comme dans le protocole de Zhang et Shi, si un acteur cible ne va
pas chercher les évidences auprès de la TPC, il perdra une éventuelle dispute
future à ce propos.
L’activité de la TPC est ainsi réduite en rejetant la responsabilité de l’obtention
des informations gérées par la TPC sur les acteurs cibles concernés. Le protocole
nécessite pour sa bonne marche un canal de communication réactif entre la TPC
et chacun des acteurs cibles.
70
Chapitre 4 : Non-répudiation avec tierce partie de confiance
L’équité
Théorème 4.16 Le premier envoi et le dernier envoi sont des points de forte
complétude universels du protocole.
Preuve : Après le premier envoi, Bob n’a rien reçu d’utilisable (seulement
le chiffré du message m). Ni Alice, ni Bob n’ont reçu les preuves attendues.
De même, si Bob n’a pas réalisé le deuxième envoi, Alice n’a aucun intérêt à
continuer le protocole (même si elle possède toutes les informations nécessaires
à l’émission du troisième envoi) car elle obtiendrait le con k mais, n’ayant pas le
EOR, elle n’obtiendrait pas la preuve de non-répudiation à la réception (NRR).
De son côté, si Alice cesse de prendre part au protocole, elle ne réagit pas au
deuxième envoi, Bob ne retrouve rien auprès de la TPC (cette dernière n’ayant
rien reçu d’Alice).
Après le cinquième envoi, les preuves sont échangées et Bob peut retrouver m.
¤
Théorème 4.17 Le deuxième envoi est un point de forte complétude d’Alice.
Preuve : Après le deuxième envoi, le protocole peut être arrêté par Alice. Si
Bob a émis son EOR, il n’intervient plus dans le protocole que si Alice réalise
le troisième envoi. Si elle ne le fait pas, Bob ne trouve rien auprès de la TPC et
ne peut donc pas composer la preuve de non-répudiation à l’origine. De même,
Alice qui a reçu le EOO, ne soumettant rien à la tierce partie, ne reçoit pas non
plus con k et ne peut donc composer la preuve de non-répudiation à la réception.
Dans tous les cas, Bob doit consulter la TPC (au cours du cinquième envoi) car il
ne peut prévoir le comportement d’Alice ; Bob ne peut donc arrêter le protocole.
¤
Théorème 4.18 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, alors le protocole est fortement équitable.
Preuve : Après le deuxième envoi, par hypothèse de conservation, Bob n’arrête
plus le protocole spontanément. Si Alice ne prend plus part au protocole juste
après le deuxième envoi, alors Alice et Bob atteignent le point de complétude
d’Alice. Sinon ils continuent après le troisième envoi.
Après le troisième envoi, ni Bob ni Alice n’ont intérêt à arrêter le protocole
(et donc ne pas aller consulter la TPC à partir du moment t) sous peine, non
seulement, de ne pas retrouver la preuve de non-répudiation attendue, mais
aussi de perdre une éventuelle dispute. Alice et Bob ne peuvent s’empêcher
mutuellement de consulter la TPC (grâce à la réactivité des canaux).
Après le quatrième envoi, Alice n’arrêtera pas le protocole puisque Bob possède
la preuve complète de non-répudiation à l’origine et qu’il ne peut l’empêcher de
consulter la TPC pour obtenir la preuve de non-répudiation à la réception.
4.3 Méthodes avec tierce partie de confiance on-line
71
La réactivité des canaux entre la TPC et chaque acteur cible assure que lorsque
ces derniers consulteront le répertoire public de la TPC, ils obtiendront l’information (les preuves) qui s’y trouve sans qu’elle soit modifiée.
¤
La fin du protocole
Théorème 4.19 Si les canaux de communication, entre la TPC et respectivement Alice et Bob, sont réactifs alors le protocole est temporellement fini.
Preuve : Si, du fait de la malhonnêteté des acteurs ou suite à un retard de
transmission, la TPC ne reçoit pas un message à temps, alors elle ne publie rien
à l’instant t et le protocole se termine à ce moment.
Si les parties agissent honnêtement et si la TPC reçoit à temps les informations
nécessaires à la publication de la clé et de la preuve de non-répudiation à la
réception de cette clé, alors elle les publie au moment t. Par leur canal réactif,
lorsqu’Alice et Bob feront la demande de consultation du répertoire public, ils
finiront par retrouver les informations attendues, mais ce moment ne peut être
prévu.
¤
Les disputes
Si Alice prétend avoir envoyé avec succès le message m à Bob, le juge lui demande
m, Ck (m), k, t et label , ainsi que la preuve de non-répudiation à la réception
NRR. Si Alice ne peut fournir tout cela, le juge décide qu’elle a tort. Si elle
fournit toutes les informations demandées, le juge vérifie la signature de Bob sur
le EOR puis la signature de la TPC sur le con k et teste si label = h(Dk (C) , k).
Puis il vérifie si m = Dk (Ck (m)). Pour que les signatures puissent être vérifiées,
il faudra aussi que le moment t transmis par Alice au juge et ceux transmis à
la TPC et à Bob au cours du protocole soient les mêmes. Si tous les tests et
vérifications se concluent avec succès, le juge déclare que l’affirmation d’Alice
est correcte.
Si Bob prétend avoir reçu le message m′ d’Alice, le juge lui demande m′ , Ck (m′ ),
k, t et label ainsi que la preuve de non-répudiation à l’origine NRO. Si Bob ne
peut fournir tout cela, le juge décide qu’il a tort. S’il fournit toutes les informations demandées, le juge vérifie la signature d’Alice sur le EOO puis la
signature de la TPC sur le con k et teste si label = h(Dk (C) , k). Puis il vérifie si
m′ = Dk (Ck (m)). A nouveau les signatures pourront être vérifiées si le moment
t présent dans les preuves correspond au moment t transmis par Bob au juge.
Si tous les tests et vérifications se sont déroulés avec succès, le juge déclare que
l’affirmation de Bob est correcte.
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Alice, elle peut retarder ou annuler la publication de
k de manière à ce que Bob ne puisse retrouver sa preuve de non-répudiation
72
Chapitre 4 : Non-répudiation avec tierce partie de confiance
à l’origine, alors que la tierce partie transmet uniquement à Alice le dernier
message, lui permettant d’obtenir la preuve de non-répudiation à la réception.
Ce comportement de la tierce partie est détectable par Bob.
Si la tierce partie s’allie à Bob, lui transmet la clé k et publie une autre clé,
Bob peut alors récupérer m mais ne pourrait prouver que m vient d’Alice. Si
la tierce partie transmet directement k et con k à Bob, et ne dépose que très
tard ou pas du tout ces informations sur le répertoire public, alors Bob reçoit la
preuve de non-répudiation à la réception tandis qu’Alice ne reçoit rien. Un tel
comportement est détectable par Alice.
La tierce partie peut rendre disponible une information inadéquate sur le répertoire public. Ni Alice, ni Bob ne recevront leur preuve, et si ce comportement
est occasionnel, il ne peut être détecté.
Il est aussi difficile de détecter (et surtout de prouver) un dépôt tardif par la
TPC d’informations sur le répertoire public. Ainsi si Alice ou Bob consultent
la TPC et ne trouvent rien dans le répertoire public (correspondant au label)
et s’ils sont méfiants vis à vis cette tierce partie, Alice ou Bob devront consulter régulièrement le répertoire pour s’assurer que les informations ne sont pas
déposées plus tard (à la manière d’un polling dans un système client-serveur).
La viabilité
Théorème 4.20 Si le canal de communication entre les acteurs est opérationnel, alors le protocole est viable.
Preuve : Si Alice et Bob sont honnêtes et répondent sans perdre de temps,
alors Alice envoie un premier message avec un délai t raisonnable et elle soumet
au plus tôt à la TPC la clé k de déchiffrement. Cette clé arrive sans délai à
la TPC qui la reçoit avant t et rend publique cette information. Alice et Bob
tentent à partir du moment t d’obtenir cette clé k et le con k auprès de la tierce
partie, ce qui sera réalisé avec succès grâce au réseau opérationnel.
Si le réseau est seulement réactif les messages émis aux troisième et quatrième
envois peuvent prendre trop de temps pour arriver et ne pas permettre à la
TPC de rendre disponible la clé k ainsi que la preuve de non-répudiation à la
réception de la clé k à partir du moment t.
¤
Remarques
Le protocole ne propose pas de mécanisme assurant la confidentialité. La clé
k peut être accessible à tout observateur, tout comme Ck (m). Le chiffrement
du message n’a donc pas pour but la confidentialité mais bien la réalisation
d’une mise en gage du message m. Ce protocole est donc un protocole de nonrépudiation « brut ». Remarquons cependant que si une nécessité de confidentialité apparaît lors de l’usage d’un tel protocole, il reste possible de chiffrer le
message à envoyer de manière à ce que seul le récipiendaire puisse le déchiffrer,
4.3 Méthodes avec tierce partie de confiance on-line
73
et ce sera ce chiffré qui sera à nouveau chiffré au moyen de la clé k lors du
protocole.
Comme chaque message signé contient le nom du récipiendaire, un opposant,
Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la
tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur
m venant d’Alice, car c’est bien B et non O qui est indiqué dans le message
signé. Le raisonnement est identique vis à vis de Bob pour la preuve de nonrépudiation à la réception. Oscar ne peut prétendre avoir cette preuve car le
EOR est signé par Bob et B apparaît dans les messages signés par Bob et par
la TPC.
S’il ne peut bloquer la TPC, Oscar ne peut briser l’équité du protocole.
La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi le
nom des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation
est identique face à un observateur extérieur.
4.3.4
Le protocole de Zhou et Gollmann avec révocation des
clés de signature
Il peut arriver qu’une clé de génération de signatures soit compromise. Il faut
alors révoquer le certificat de cette clé de signature ([55, 64]). Dans le contexte
des protocoles de non-répudiation, il faut donc pouvoir identifier si une signature
(présente dans une preuve de non-répudiation) a été générée avant ou après la
révocation.
Une solution classique [3, 19] consiste à utiliser une autorité de confiance apposant des cachets temporisés sur les preuves générées au cours des protocoles
(comme le font Coffey et al., cf. section 4.2.1). La date présente dans un cachet
est alors comparée à la date de révocation.
You et al. ont proposé [73] un mécanisme où une telle autorité n’est pas nécessaire. L’approche consiste, au cours d’un protocole de non-répudiation, à lier les
preuves entre elles et à ne valider toutes ces preuves qu’à la fin du protocole.
Cette idée s’applique au protocole de Zhou et Gollmann, que nous venons de
décrire, où la TPC finit par envoyer la clé k de déchiffrement. Cette clé sera
émise au cours du protocole par Alice vers la TPC de manière chiffrée, sinon
Bob peut l’intercepter et révoquer son certificat de clés de signature. Les preuves
de non-répudiation du protocole de Zhou et Gollmann sont alors modifiées de
manière à ce que EOO se trouve dans EOR, EOR ainsi que le certificat de la clé
de signature de Bob, Cert B , se trouvent dans sub k . La TPC inclura dans con k
non seulement EOR mais aussi un moment T à partir duquel toutes les preuves
prennent leur sens. Bob pourra révoquer Cert B jusqu’au moment où la TPC
génère con k . La TPC vérifiera la validité du certificat Cert B avant de produire
con k ; Bob peut donc révoquer son certificat avant ce moment : la TPC arrêtera
alors le protocole sans publier d’information.
Le protocole de Zhou et Gollmann peut ainsi être transformé de la manière
suivante.
74
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Les preuves sont donc :
EOO = SigA (fEOO , B, label , Ck (m))
EOR = SigB (fEOR , A, label , Ck (m) , EOO)
sub k = SigA (fsub k , B, label , k, EOR, Cert B )
con k = SigTPC (fcon k , A, B, label , k, EOR, T )
Les preuve de non-répudiation à l’origine et à la réception du message m restant :
NRO = (EOO, con k )
et
NRR = (EOR, con k )
Le protocole modifié est décrit à la figure 4.5.
Protocole 4.5 Le protocole modifié de Zhou et Gollmann
1. A → B : fEOO , B, label , Ck (m) , EOO
2. B → A : fEOR , A, label , EOR
3. A → TPC : fsub k , B, label , CKTPC (k) , EOR, Cert B , sub k
4. TPC ↔ B : fcon k , A, B, label , k, T, con k
5. TPC ↔ A : fcon k , A, B, label , k, T, con k
En cas de dispute, l’acteur (Alice ou Bob) qui contacte le juge lui fournit le
message m, le chiffré c, la clé k, le label, le cachet temporisé T , les certificats de
clés de signature, ainsi que les preuves EOO, EOR et con k .
Nous pensons que ces derniers protocoles de non-répudiation à deux parties avec
TPC on-line sont, actuellement, les plus aboutis 25 .
4.4
4.4.1
Méthodes avec tierce partie de confiance off-line
Le protocole optimiste d’échange équitable d’Asokan
Asokan est, en 1997, un des premiers à proposer l’approche dite optimiste 26
dans les protocoles d’échange [5].
L’idée consiste à alléger le travail de la TPC en supposant que les acteurs cibles
ont « tendance » à être honnêtes. On considère donc que seuls les rares comportements malhonnêtes mèneront à user d’une TPC, qui interviendra alors dans le
protocole afin d’assurer l’équité. Si les acteurs suivent honnêtement le protocole,
la tierce partie ne sera pas du tout impliquée.
Asokan propose une série d’applications possibles usant de cette approche. Nous
étudierons ici le protocole d’échange équitable.
25
26
C’est la raison pour laquelle nous les qualifions de « majeurs ».
optimistic approach en anglais.
4.4 Méthodes avec tierce partie de confiance off-line
75
Notations
Soient :
– commit un mécanisme de mise en gage ;
– verifcomm un mécanisme de vérification, après la révélation de la mise en
gage, de la validité de cette dernière27 ;
– descr une fonction produisant une description unique d’une information. Cette
description unique, qui ne peut laisser « transpirer » aucun bit de l’information, peut s’obtenir de diverses façons, cela peut être un string de description
associé à un identificateur unique (qui peut être séquentiel), cela peut aussi
être le résultat d’un hachage (cryptographiquement sûr) de l’information à
décrire.
Protocole 4.6 Le protocole d’Asokan et. al
Le protocole principal :
f A (A, B, TPC , hA , com A , dA , dB )
1. A → B : m1 = Sig
f B (m1 , com B , hB )
2. B → A : m2 = Sig
3. A → B : m3 = iA , kA
4. B → A : m4 = iB , kB , rB
5. A → B : m5 = rA
¨B
¨
Le protocole de recouvrement :
(X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible)
1. X → TPC : mr 1 = m1 , m2 , iX , kX , rX
f TPC (aborted, ma1 ) et STOP, ou
2. TPC → X : ma2 = Sig
TPC ⇔ Y : recouvrement
f TPC (affidavit, mr1 ), ou
3. TPC → X : Sig
TPC → X : mr2 = iY , kY , rY
♦
Le protocole d’abandon :
f A (aborted, m1 )
1. A → TPC : ma1 = Sig
2. TPC ⇔ A : recouvrement, ou
f TPC (aborted, ma1 )
TPC → A : ma2 = Sig
¨A
Le protocole principal
Ce protocole décrit les échanges réalisés tant qu’Alice et Bob ne trichent pas 28 .
Alice et Bob s’échangent les informations iA et iB dont les descriptions respec27
Stinson définit [66] la mise en gage d’un bit de la manière suivante : Alice désire s’engager,
vis à vis de Bob, sur un bit b ; pour ce faire elle transmet à Bob le résultat de f (b, x) où x ∈ X
et f : {0, 1} × X → Y ; X et Y étant des ensembles finis. La fonction f doit être telle que pour
tout bit b, Bob ne puisse déterminer la valeur de b à partir de f (b, x) et lorsqu’Alice « ouvre »
la mise en gage, en révélant la valeur x utilisée dans la fonction f , elle ne puisse l’ouvrir à la
fois sur un bit à 0 et sur un bit à 1.
28
Un tel protocole est dit faultless en anglais.
76
Chapitre 4 : Non-répudiation avec tierce partie de confiance
tives sont préalablement connues par les acteurs29 . Nous sommes donc bien
confrontés à un protocole d’échange équitable et non un protocole de nonrépudiation.
Si un message n’arrive pas ou arrive mais est incorrect (la vérification d’une
signature échoue, le format du message ne correspond pas à ce qui est prévu
par le protocole. . . ), le récipiendaire peut, en exécutant le protocole adéquat,
soit abandonner le protocole soit recouvrer les informations si suffisamment
d’échanges ont eu lieu. Un temps limite d’attente est spécifié à chaque envoi.
1. Alice choisit aléatoirement un entier rA et calcule :
com A = commit (iA , kA )
(4.16)
puis hA = h(rA ), et dA = descr (iA ). Elle utilise aussi dB qu’elle sait être
la description de iB . Elle envoie à Bob :
f A (A, B, TPC , hA , com A , dA , dB )
A → B : m1 = Sig
2. Si le message reçu est correct (la signature d’Alice est correcte, la description de iB correspond au dB reçu et dA correspond à la description de
l’information attendue), Bob choisit aléatoirement un entier r B et évalue
hB = h(rB ), puis calcule com B = commit (iB , kB ). Il envoie à Alice :
f B (m1 , com B , hB )
B → A : m2 = Sig
3. Alice répond en envoyant la clé kA utilisée lors de la mise en gage de l’information iA ainsi que l’information elle-même :
A → B : m3 = iA , kA
4. Si l’information iA reçue correspond à sa description et si la clé kA correspond à la mise en gage 4.16 réalisée par Alice (verifcomm(com A , iA , kA ) =
vrai si iA et kA ouvrent la mise en gage com A ), alors Bob obtient sa preuve
de non-répudiation à l’origine. Il répond en envoyant l’information i B attendue par Alice, la clé qu’il a utilisée pour la mise en gage kB et l’entier
aléatoire rB utilisé par Bob pour identifier la session.
B → A : m4 = iB , kB , rB
5. Si le message envoyé par Bob est correct, alors Alice a non seulement
sa preuve de non-répudiation à l’origine, mais aussi sa preuve de nonrépudiation à la réception puisqu’elle a aussi reçu rB . Elle envoie alors rA
29
Dans le cadre d’un protocole d’échange équitable, un accord préalable sur les informations
à échanger est réalisé par les acteurs cibles. On peut imaginer une situation où les acteurs
cibles ont à leur disposition un catalogue décrivant les informations offertes par l’autre acteur
cible (une information peut être un logiciel. . . ). Ces descriptions comprendraient une partie
textuelle ainsi que la description mathématique utilisée dans le protocole.
4.4 Méthodes avec tierce partie de confiance off-line
77
à Bob pour que ce dernier puisse construire sa preuve de non-répudiation
à la réception30 :
A → B : m 5 = rA
Le protocole d’abandon
Au cours du protocole principal, seule Alice a la possibilité d’abandonner le
protocole (si Bob arrête sa participation au protocole ou s’il envoie des messages
incorrects). Dans ce cas, elle doit en avertir la TPC au moyen d’un protocole
adéquat afin que, si Bob désire demander à la TPC de mener le protocole à son
terme, cette dernière refuse en indiquant que le protocole est abandonné avant
son aboutissement.
Si Alice lance le protocole d’abandon après que Bob ait réalisé un protocole de
recouvrement, alors la TPC indique à Alice qu’elle ne peut abandonner cette
session du protocole et elles entament ensemble le protocole de recouvrement 31 .
1. Alice transmet à la TPC le message m1 préalablement envoyé ainsi que sa
requête d’abandon (le tout signé) :
f A (aborted, m1 )
A → TPC : ma1 = Sig
2. Si le protocole de recouvrement, décrit ci-dessous, a été préalablement initié par Bob, la tierce partie exécute ce protocole de recouvrement avec
Alice32 :
TPC ⇔ A : recouvrement
Sinon, si la requête d’abandon est acceptée par la tierce partie, la signature
d’Alice sur la requête d’abandon étant valide et le protocole de recouvrement n’ayant pas encore été réalisé par Bob, la TPC répond à la requête
par sa signature sur le message reçu :
f TPC (aborted, ma1 )
TPC → A : ma2 = Sig
Le protocole ne prévoit pas d’envoi vers Bob au cours du protocole d’abandon : il
faudra que celui-ci fasse un recouvrement (décrit ci-après) pour se faire notifier,
par la TPC, l’abandon du protocole. Aussi, seule Alice est habilitée à faire un
abandon car le protocole prévoit que ce soit elle qui initie le protocole principal ;
elle se trouve donc, jusqu’à un certain point du protocole, en désavantage par
30
Ce protocole, bien que n’étant pas un protocole de non-répudiation, offre bien des services
de non-répudiabilité.
31
Alice peut bien sûr refuser de réaliser ce recouvrement. Bob recevra alors l’affidavit de la
TPC, ce qui lui indique, en outre, le refus d’Alice de participer au recouvrement.
32
La TPC retient, pour chaque session des protocoles au cours desquels elle est invoquée,
quel protocole elle a déjà réalisé (abandon ou recouvrement) et qui a initié ce protocole.
78
Chapitre 4 : Non-répudiation avec tierce partie de confiance
rapport à Bob. Ce désavantage est compensé par le privilège qui lui est accordé
de pouvoir abandonner le protocole.
Remarquons que, dans le protocole proposé dans [8], la TPC vérifie lors d’un
abandon si Bob n’a pas fait précédemment un recouvrement. Il serait cependant
adéquat de vérifier aussi si Alice n’a pas fait elle-même un recouvrement avant sa
procédure d’abandon (détectant ainsi un comportement malhonnête d’Alice qui
tenterait d’obtenir à la fois une signature finale et une preuve d’abandon ; Alice
présentant, en fonction de la situation, l’une ou l’autre preuve). Remarquons
aussi que si le protocole principal se déroule sans problème, rien n’empêche
Alice de réaliser malgré tout un abandon et d’à nouveau bénéficier à la fois de
la signature de Bob et de la preuve d’abandon.
Le protocole de recouvrement
Si soit Alice soit Bob, désirant mener l’échange à son terme, ne reçoit pas un des
messages attendus au cours du protocole principal, alors il/elle requiert l’aide
de la TPC, au moyen du protocole de recouvrement. Celle-ci interviendra, pour
peu qu’Alice n’ait pas préalablement réalisé un abandon du protocole. En effet,
si le protocole d’abandon a été préalablement réalisé, la TPC transmet à l’acteur
demandant un recouvrement un message signé signalant l’abandon.
Dans ce protocole de recouvrement, X représente la partie (Alice ou Bob) initiant le protocole de recouvrement, Y sera dès lors l’autre acteur cible,{X, Y } =
{A, B} :
1. L’acteur demandant le recouvrement transmet à la TPC les messages m 1
et m2 , l’information iX qui est attendue par l’autre partie, sa clé kX et le
nonce rX :
X → TPC : mr 1 = m1 , m2 , iX , kX , rX
2. Si Alice a préalablement réalisé avec succès un abandon, que X soit Alice
ou Bob, la TPC répond que le protocole est abandonné en utilisant le
message ma1 émis lors de l’abandon33 :
f TPC (aborted, ma1 )
TPC → X : ma2 = Sig
Si l’acteur Y n’a pas encore exécuté un recouvrement, alors la TPC l’invite
à le réaliser (au moyen du présent protocole) et permet ainsi à Y d’obtenir
iX , kX et rX :
TPC ⇔ Y : recouvrement
33
Dans le protocole 4.6, STOP signifie que la TPC arrête l’exécution du protocole de recouvrement. Elle examinera cependant toutes requêtes futures de recouvrement concernant le
protocole en cours.
4.4 Méthodes avec tierce partie de confiance off-line
79
3. Si le protocole de recouvrement réalisé avec Y n’a pas abouti, la tierce
partie envoie à X une signature de remplacement, l’affidavit, attestant de
l’envoi par X de ses preuves et de son information, et prouvant jusqu’où
le protocole s’est déroulé :
f TPC (affidavit, mr1 )
TPC → X : Sig
Par contre, si le recouvrement réalisé avec Y est un succès, la TPC envoie
à X la clé kY , le nonce rY et l’information attendue iY :
TPC → X : mr2 = iY , kY , rY
Lors de l’invite à Y par la TPC de réaliser le protocole de recouvrement, la TPC
attend au plus un délai précis avant de décider que Y ne collaborera pas.
Les preuves
Dans ce protocole d’échange équitable, Alice et Bob reçoivent tous deux une
information, ils reçoivent donc aussi chacun une preuve de non-répudiation à
l’origine (correspondant à l’information reçue) et une preuve de non-répudiation
à la réception (correspondant à l’information qu’ils envoient).
Les preuves de non-répudiation à obtenir sont :
La preuve de non-répudiation à l’origine qu’Alice doit obtenir :
NRO A = m1 , m2 , kB , com B
La preuve de non-répudiation à l’origine que Bob doit obtenir :
NRO B = m1 , m2 , kA , com A
La preuve de non-répudiation à la réception qu’Alice doit obtenir :
NRR A = m1 , m2 , rB , h(rB )
La preuve de non-répudiation à la réception que Bob doit obtenir :
NRR B = m1 , m2 , rA , h(rA )
L’équité
Théorème 4.21 Le dernier envoi du protocole principal est un point de forte
complétude universel.
Preuve : Après ce dernier envoi du protocole principal, les informations et
les preuves sont échangées, il n’a donc plus aucun risque pour Alice et Bob de
80
Chapitre 4 : Non-répudiation avec tierce partie de confiance
ne plus prendre part à l’un ou l’autre protocole de cette suite de protocoles. Si
Alice présente malgré tout une preuve d’abandon, et que Bob peut présenter
NRO A et NRR A cela signifie qu’Alice est bien allée jusqu’au bout du protocole
(puisque c’est elle qui réalise le dernier envoi) et cela prouve une tentative de
malhonnêteté de la part d’Alice. La possession des preuves de non-répudiation à
l’origine et à la réception d’Alice sont une preuve que le protocole a été jusqu’à
son terme et que l’échange a été réalisé.
¤
Théorème 4.22 Le dernier envoi du protocole de recouvrement est un point de
faible complétude.
Preuve : Après cet envoi du protocole de recouvrement, la TPC permet à
l’échange de se finaliser ou transmet sa signature sur le message attestant que X
a transmis l’information désirée mais sans avoir reçu l’information de Y au cours
du protocole de recouvrement. Dans ce deuxième cas de figure nous sommes bien
en présence d’un point de faible complétude.
¤
Théorème 4.23 Le dernier envoi du protocole d’abandon est un point de forte
complétude pour Alice.
Preuve : Après le dernier envoi du protocole d’abandon, Alice reçoit la preuve
de l’abandon du protocole et Bob, lorsqu’il réalisera un recouvrement, le recevra
aussi. Alice arrête alors de prendre part au protocole sans briser l’équité.
¤
Théorème 4.24 Le premier envoi du protocole principal est un point de forte
complétude pour Bob.
Preuve : Si Alice arrête le protocole, Bob peut réaliser un recouvrement et
obtenir les informations attendues. Par contre si Bob arrête le protocole, Alice
ne peut réaliser le recouvrement, car elle a besoin du message m2 pour initier
le protocole de recouvrement.
¤
Cette dernière preuve met en évidence le problème suivant :
Théorème 4.25 La suite de protocoles ne vérifie pas la propriété d’équité.
Preuve : Si Alice exécute le protocole d’abandon alors que Bob a préalablement
réalisé un recouvrement, la TPC demandera à Alice de faire un recouvrement.
Pour ce faire, elle demandera à Alice les messages m1 et m2 . Cependant m2
peut ne pas être arrivé (ou ne pas être envoyé par Bob) ; Alice n’a alors ni le
message d’abandon signé par la TPC, ni la signature de remplacement émise
aussi par la tierce partie. Comme Alice ne peut répondre correctement, la TPC
envoie à Bob une signature de remplacement et l’équité est brisée.
¤
Ce problème a été identifié pour la première fois par Zhou et al. dans [77]. Une
proposition de correction consiste à ce que la TPC transmette, en cas de besoin,
m2 et kB à Alice au début du protocole de recouvrement.
4.4 Méthodes avec tierce partie de confiance off-line
81
Théorème 4.26 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, la suite de protocoles modifiée (afin de permettre
à Alice de réaliser un recouvrement après le premier envoi) est faiblement équitable.
Preuve : Au cours du protocole principal, après le premier envoi et jusqu’après
le quatrième envoi, nous identifions les situations suivantes.
– Soit Alice et Bob peuvent continuer honnêtement le protocole et ainsi atteindre le point de forte complétude universel correspondant au dernier envoi.
– Soit Alice peut réaliser un abandon et se retrouver après le premier envoi du
protocole d’abandon, au cours duquel la TPC, honnête, répondra :
– soit par une confirmation d’abandon, point du protocole qui correspond à
un point de forte complétude pour Alice ;
– soit par l’exécution d’un recouvrement avec Alice qui, si elle s’y prête, lui
permettra d’obtenir les informations attendues signées par Bob. Ce point
du protocole de recouvrement correspond au point de faible complétude
universel décrit au théorème 4.22.
– Ou encore, Alice et Bob peuvent réaliser le recouvrement, se retrouver après le
premier envoi de ce protocole et recevoir en retour soit un message d’abandon,
soit l’information attendue, ce qui est dans tous les cas un point de complétude. Ce point de complétude est fort si la réponse est un message d’abandon
ou l’information signée par le deuxième acteur cible, et il est faible si la TPC
répond par sa signature sur un message attestant à la fois de l’honnêteté de
l’acteur cible réalisant le recouvrement et du fait que le protocole n’a pas pu
aboutir pour cet acteur cible.
¤
La fin du protocole
Théorème 4.27 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, la suite de protocoles est temporellement finie.
Preuve : Si un acteur décide de ne pas transmettre un message, l’acteur
« récipiendaire » attend le délai prévu et arrête le protocole ou initie le protocole
d’abandon ou le protocole de recouvrement. Ces protocoles se termineront grâce
aux délais d’attente et aux canaux réactifs entre la TPC et respectivement Alice
et Bob.
¤
Les disputes
Si Alice prétend avoir envoyé iA avec succès à Bob, elle présente iA et NRR A
au juge qui, sur base de m1 et m2 , vérifie si la fonction de hachage appliquée
sur rB correspond au h(rB ) du message m2 . Grâce à m2 , le juge peut vérifier si
m1 est valide et si rB est bien celui annoncé. Si Alice possède un rB valide, cela
prouve que Bob a reçu l’information iA adéquate, et nous avons donc bien une
preuve de non-répudiation à la réception.
82
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Si Bob prétend avoir reçu iA d’Alice, il présente iA et NRO B au juge qui vérifie
si Bob possède kA qu’Alice a dû lui transmettre en même temps que l’information iA . Le juge vérifie alors la signature d’Alice sur m1 , ce qui assure la
non-répudiation à l’origine.
L’affirmation d’Alice prétendant avoir reçu iB de Bob ainsi que l’affirmation de
Bob d’avoir envoyé iB avec succès à Alice se résolvent de la même manière que
ci-dessus.
Il n’est pas inutile de préciser que les preuves de non-répudiation prennent le
pas sur une preuve d’abandon. Supposons qu’alors qu’Alice et Bob exécutent
le protocole principal, mais que parallèlement Alice réalise un abandon tout en
continuant le protocole principal. Si ce dernier se termine correctement, Alice et
Bob possèdent respectivement les preuves de non-répudiation à la réception et
à l’origine. Si une preuve d’abandon primait sur une preuve de non-répudiation
en l’annulant, alors Bob devrait à chaque session du protocole réaliser un recouvrement pour s’assurer qu’Alice ne va pas brandir à tout moment une preuve
d’abandon. Le protocole ne serait alors plus off-line.
Le comportement de la tierce partie de confiance
Si la TPC et Bob s’allient et développent ensemble une stratégie au cours de
laquelle il est prévu que Bob ne réalise pas le quatrième envoi du protocole
principal, puis exécute le protocole de recouvrement, Alice sera alors sollicitée
par la TPC pour réaliser ce recouvrement. Les informations émises par Alice
vers la tierce partie seront transmises à Bob alors que rien ne sera émis pour
Alice. Bob aura ses preuves de non-répudiation alors qu’Alice ne les aura pas.
Bob est sûr de gagner une dispute. Un tel comportent de la TPC est détectable
par Alice qui ne peut suspecter que la TPC.
Une coalition de la tierce partie avec Alice, qui n’exécuterait pas le deuxième
envoi, se déroulerait de la même manière.
La viabilité
Théorème 4.28 Si Alice et Bob se savent mutuellement honnêtes, et si les
canaux de communication entre la TPC et, respectivement, Alice et Bob sont
opérationnels, le protocole est viable.
Preuve : Si Alice et Bob sont honnêtes et si seul le protocole principal est
réalisé, ils atteignent le point de complétude qui clôture le protocole principal.
Cependant si un message se perd entre Alice et Bob, ils réalisent le protocole
de recouvrement qui aboutit avec succès grâce aux canaux opérationnels.
Si le premier message envoyé par Bob au cours du protocole principal n’arrive
pas à Alice, celle-ci sachant Bob honnête attendra qu’il initie le protocole de
recouvrement et ne tentera pas d’exécuter le protocole d’abandon.
Remarquons que, si les canaux entre la TPC et respectivement Alice et Bob
4.4 Méthodes avec tierce partie de confiance off-line
83
sont réactifs, lors du protocole de recouvrement réalisé, par exemple, par Alice,
Bob est contacté par la TPC. Ce dernier, honnête, se prête au protocole de
recouvrement. Cependant si les informations qu’il envoie prennent trop de temps
pour arriver à la TPC, cette dernière peut décider d’envoyer à Alice l’affidavit
qui ne contient pas iB .
¤
Si Alice et Bob sont honnêtes, mais ignorent le comportement de l’autre, si le
premier message de Bob du protocole principal n’arrive pas, Alice initiera le
protocole d’abandon. Il faut donc que le canal de communication entre Alice et
Bob soit opérationnel : seul le protocole principal sera dès lors exécuté.
Remarques
Ce protocole ne propose pas de mécanisme assurant la confidentialité ; nous
avons donc bien à faire à un protocole d’échange équitable « brut ».
Si aucun abandon ni recouvrement n’est réalisé, la TPC n’a aucune interaction
avec Alice et Bob, et l’anonymat de ces derniers est assuré si aucun indice
n’est fourni sur les signataires des messages qui sont envoyés. Si un protocole
d’abandon ou de recouvrement est réalisé, la TPC reçoit des messages signés :
il n’y a donc plus d’anonymat vis à vis d’elle. Un observateur extérieur voit des
messages signés. Si aucun indice à propos de l’auteur (certificat en clair. . . ) ne
lui est fourni, l’anonymat est conservé.
Asokan a réalisé de nombreuses variations basées sur son idée optimiste ; il propose, entre autres, un protocole d’échange de signatures sur un contrat ainsi
qu’un protocole de courrier recommandé [5].
4.4.2
Le protocole optimiste de non-répudiation de Zhou et
Gollmann
Après la présentation par Asokan de l’approche optimiste, Zhou et Gollmann
ont modifié, en 1998, leur protocole de non-répudiation 4.3.3 afin de l’adapter
au critère d’optimisme.
Les preuves
Dans le protocole, les preuves suivantes sont échangées :
La preuve de non-répudiation à l’origine du chiffré du message :
EOO = SigA (fEOO , B, label , t, Ck (m))
où f est un indicateur du type de message qui est transmis, B est le récipiendaire,
label = h(m, k) identifie la session du protocole, t est le moment où l’information
attendue est disponible sur le répertoire public de la TPC et C k (m) est le chiffré
du message m au moyen de la clé de session k (réalisant ainsi une mise en gage
de m).
84
Chapitre 4 : Non-répudiation avec tierce partie de confiance
La preuve de non-répudiation à la réception du chiffré du message :
EOR = SigB (fEOR , A, label , t, Ck (m))
La preuve de non-répudiation à l’origine de la clé de session k utilisée pour
chiffrer symétriquement le message :
EOO k = SigA (fEOO k , B, label , k)
La preuve de non-répudiation à la réception de la clé de session k :
EOR k = SigB (fEORk , A, label , k)
La preuve de non-répudiation à l’origine de la clé de session k utilisée pour
chiffrer symétriquement le message :
sub k = SigA (fsub k , B, label , t, k)
La preuve de non-répudiation à la réception de la clé de session k fournie par la
TPC :
con k = SigTPC (fcon k , A, B, label , t, k)
Ce protocole, s’il aboutit correctement, produit les preuves suivantes :
la preuve de non-répudiation à l’origine consiste en :
NRO = (EOO, EOO k ) ou NRO = (EOO, con k )
La preuve de non-répudiation à la réception consiste en :
NRR = (EOR, EOR k ) ou NRR = (EOR, con k )
Le protocole
Le protocole décrivant les échanges entre Alice et Bob dans la situation optimiste
se trouve à la figure 4.7.
Le protocole de recouvrement décrit comment Alice demande à la TPC de mener
le protocole à son terme en cas de comportement malhonnête de Bob ou si
une information attendue n’arrive pas. Dans le contexte d’un protocole de nonrépudiation, seule Alice lance un tel protocole de recouvrement puisque Bob est
en position avantageuse.
Notons que cette suite de protocoles ne prévoit pas un protocole d’abandon 34 .
Seule Alice peut initier le protocole de recouvrement puisqu’à partir du troisième
envoi Alice a tout transmis à Bob (le message et la preuve de non-répudiation
34
L’absence d’un protocole d’abandon induira d’ailleurs, en partie, une faiblesse du protocole
comme nous le verrons en vérifiant l’équité de la suite de protocoles et en étudiant le protocole
de la section 4.4.3.
4.4 Méthodes avec tierce partie de confiance off-line
85
Protocole 4.7 Le protocole optimiste de Zhou et Gollmann
Le protocole principal :
1. A → B : fEOO , B, label , t, Ck (m) , EOO ¨
2. B → A : fEOR , A, label , EOR
¨A
3. A → B : fEOO k , B, label , k, EOO k
4. B → A : fEORk , A, label , EOR k
¨
Le protocole de recouvrement :
1. A → TPC : fsub k , B, label , t, k, sub k
2. TPC ↔ B : fcon k , A, B, label , k, con k
3. TPC ↔ A : fcon k , A, B, label , k, con k
¨
à l’origine associée) alors que Bob doit encore transmettre le dernier morceau
de sa preuve de non-répudiation à la réception de ce message. Ce déséquilibre
est corrigé par la possibilité offerte à Alice de recouvrer un protocole incomplet.
Aussi, si une session du protocole principal ne se termine pas, Bob, s’il n’a
pas obtenu les informations du troisième envoi du protocole principal, devra
consulter spontanément, après le moment t, la tierce partie de confiance, comme
prévu dans le protocole de recouvrement afin de vérifier35 si Alice n’a pas initié
un recouvrement avant le moment t.
L’équité
Théorème 4.29 Le premier envoi du protocole principal, le dernier envoi du
protocole principal et le dernier envoi du protocole de recouvrement sont des
points de forte complétude universels.
Preuve : Après le premier envoi du protocole principal, si Alice arrête le
protocole, comme il n’est pas prévu que Bob puisse initier le protocole de recouvrement, le protocole est donc aussi terminé pour lui, et ni l’un, ni l’autre n’ont
obtenu l’information attendue. Après le quatrième envoi du protocole principal,
l’échange est réalisé. Après le troisième envoi du protocole de recouvrement, les
informations sont échangées si elles sont soumises avant le moment t, puisque la
TPC publie alors la preuve con k (qui avec EOO et EOR, déjà reçus par respectivement Bob et Alice, forment les preuves de non-répudiation à l’origine et à la
réception). Si les informations sont reçues par la tierce partie après le moment
t, la tierce partie ne dépose rien sur son répertoire public et aucune preuve de
non-répudiation finale n’est obtenue puisqu’elles dépendent de la publication de
con k . Nous avons donc bien un point de complétude dans tous les cas.
¤
Théorème 4.30 Le deuxième envoi du protocole principal est un point de forte
complétude pour Alice.
35
Bob sait si Alice a réalisé un recouvrement en consultant le répertoire public de la TPC
et en y retrouvant ou non les informations : fcon k , A, B, label , k, con k .
86
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Preuve : Si Alice arrête le protocole, ni elle ni Bob ne peuvent plus rien obtenir,
tandis que si Bob arrête le protocole, Alice peut réaliser un recouvrement. ¤
Théorème 4.31 Si les canaux de communication entre la TPC et respectivement Alice et Bob ne sont pas opérationnels, le protocole n’est pas équitable.
Preuve : Le canal de communication entre la TPC et Alice n’étant pas opérationnel, si le protocole principal n’a pu aboutir, mais a été réalisé jusqu’à l’avant
dernier envoi (Bob ayant ainsi le message m et la preuve de non-répudiation à
l’origine), le premier envoi du protocole de recouvrement réalisé par Alice peut
arriver après l’instant t. La TPC ne publiera pas les éléments de preuves nécessaires et l’équité sera alors brisée.
¤
Zhou [79] propose d’utiliser des canaux réactifs et suggère de choisir un t suffisamment grand pour éviter ce problème d’équité. Cependant, il est théoriquement impossible de choisir un tel t, puisque le comportement d’un canal réactif,
en terme de délai avant la livraison d’un message, est imprévisible.
Pour obtenir l’équité, une hypothèse plus forte est nécessaire sur les canaux de
communication qu’utilisent Alice et Bob pour communiquer avec la TPC. En
effet, nous pouvons prouver que si ces canaux sont opérationnels 36 , la suite de
protocoles respecte la propriété d’équité.
Théorème 4.32 Si le canal communication entre la TPC et Alice est opérationnel, et celui entre la TPC et Bob est réactif, le protocole est fortement équitable37 .
Preuve : Après le deuxième envoi, par l’hypothèse de conservation, Bob n’arrête pas le protocole. Il attend jusqu’en t la réponse d’Alice. Si la réponse arrive
il continue le protocole et finira par atteindre le point de complétude correspondant au dernier envoi. Si rien n’arrive, il attend jusqu’au moment t et il consulte
la TPC (où il trouve, ou non, les informations attendues) et il atteint le point
de complétude correspondant au dernier envoi du protocole de recouvrement.
Après le troisième envoi, Bob possède une preuve de non-répudiation complète,
mais s’il arrête le protocole, Alice réalisera un recouvrement. Par l’hypothèse de
conservation, Alice n’arrêtera pas le protocole. Lorsqu’Alice initie le protocole de
recouvrement, son premier envoi arrivera avant un temps fixé et connu d’Alice.
36
Dans notre modèle, nous n’avons prévu que trois types de canaux de communication
(incertains, réactifs et opérationnels). Dans le cas du protocole optimiste de Zhou et Gollmann,
un canal de communication assurant une borne au délai avant lequel les messages émis à une
extrémité du canal arrivent à l’autre extrémité serait suffisant pour assurer l’équité.
37
Une attaque ayant comme objectif de paralyser la TPC peut en pratique être envisageable
si un canal non adéquat est utilisé entre Alice et la TPC. Une telle attaque consiste à « noyer »
la machine serveur de la tierce partie sous les requêtes (flooding attack en anglais). La requête
légitime de consultation est alors noyée dans les requêtes submergeant la TPC, empêchant
éventuellement la TPC de traiter une requête d’initiation du protocole de recouvrement avant
le moment t.
4.4 Méthodes avec tierce partie de confiance off-line
87
Alice peut donc éviter de se trouver dans une situation telle que le premier envoi
du protocole de recouvrement arrive après l’instant t38 .
Après le deuxième envoi du protocole de recouvrement, Alice, par l’hypothèse
de conservation, n’arrêtera pas le protocole et atteindra le point de complétude
qui correspond au troisième envoi du protocole de recouvrement.
Si le canal de communication entre la TPC et Alice n’est pas opérationnel, le
premier envoi du protocole de recouvrement peut arriver après le moment t. Si
ceci arrive alors que le troisième envoi du protocole principal est réalisé, l’équité
est brisée.
¤
La fin du protocole
Théorème 4.33 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont opérationnels, le protocole est temporellement fini.
Preuve : Si le premier message n’arrive pas, le protocole se termine pour Alice
au moment t. Pour les messages suivants du protocole principal, si un message
n’arrive pas, Alice peut faire un recouvrement. Le protocole se termine alors,
pour Alice et Bob, après le moment t (avec ou sans succès), après qu’ils aient
consulté, au travers du canal opérationnel qui les relie à la TPC, le répertoire
public de cette dernière.
¤
Les disputes
Si Alice prétend avoir envoyé avec succès le message m à Bob, le juge lui demande
m, Ck (m), k, t et label ainsi que EOR et EOR k ou con k . Si Alice ne peut fournir
tout cela, le juge décide qu’elle a tort. Si elle fournit toutes les informations
demandées, le juge vérifie la signature de Bob sur le EOR et la signature de
Bob sur EOR k ou la signature de la TPC sur le con k (si le t indiqué lors du
recouvrement est différent de celui proposé par Alice lors du protocole principal,
la vérification de ces signatures échoue) et teste si label = h(D k (Ck (m)) , k).
Puis il vérifie si m = Dk (Ck (m)). Si tous les tests et vérifications se déroulent
avec succès, le juge déclare que l’affirmation d’Alice est correcte.
Si Bob prétend avoir reçu le message m d’Alice, le juge lui demande m, Ck (m),
k, t et label ainsi que EOO et EOO k ou con k . Si Bob ne peut fournir tout cela,
le juge décide qu’il a tort. S’il fournit toutes les informations demandées, le juge
vérifie la signature d’Alice sur le EOO et soit la signature d’Alice sur EOO k ou
la signature de la TPC sur le con k (la correspondance entre le t indiqué dans le
protocole principal et celui envoyé à la TPC lors du protocole de recouvrement
est ainsi vérifié), et teste si label = h(Dk (Ck (m)) , k). Puis il vérifie si le message
m reçu de Bob correspond au message obtenu par Dk (Ck (m)). Si tous les tests
38
Remarquons aussi que si Alice envoie à la TPC, lors du protocole de recouvrement, un t ′
différent du t négocié avec Bob, cette modification sera détectée par observation des preuves
complètes de non-répudiation. En effet, con k émis par la TPC contiendra t′ alors que EOR
contiendra t.
88
Chapitre 4 : Non-répudiation avec tierce partie de confiance
et vérifications se sont passés avec succès, le juge déclare que l’affirmation de
Bob est correcte.
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Alice ou Bob, elle peut ne rien publier ou publier les
informations après le moment t et transmettre directement les informations à
Alice (ou à Bob). Alice (ou Bob) aurait alors sa preuve de non-répudiation alors
que Bob (ou Alice) n’aurait rien.
La tierce partie peut rendre disponible une information inadéquate en fin de
protocole. Ni Alice, ni Bob ne recevront leur preuve, et si ce comportement est
occasionnel, il ne peut être détecté.
Il est difficile de détecter (et surtout de prouver) que la TPC dépose les informations sur le répertoire public un certain temps après le moment t. Ainsi si Alice
ou Bob consultent la TPC et ne trouvent rien dans le répertoire public (correspondant au label) et s’ils sont méfiants vis à vis cette tierce partie, Alice ou Bob
devront consulter régulièrement le répertoire pour s’assurer que les informations
ne sont pas déposées plus tard.
La viabilité
Théorème 4.34 Si tous les canaux de communication sont opérationnels, le
protocole est viable.
Preuve : Comme Alice et Bob sont honnêtes, seul le protocole principal est
exécuté et tous les messages arrivent.
Si le canal entre Alice et Bob n’est pas opérationnel, alors le deuxième message
peut arriver après le moment t et le protocole se termine sans échange malgré
l’honnêteté des acteurs.
¤
Remarques
Le protocole ne propose pas de mécanisme assurant la confidentialité. La clé
k peut être accessible à tout observateur, tout comme Ck (m). Le chiffrement
du message n’a donc pas pour but la confidentialité, mais bien la réalisation
d’une mise en gage du message m. Ce protocole est donc aussi un protocole de
non-répudiation « brut ».
Si un acteur ne va pas chercher les évidences auprès de la TPC, il perdra une
future dispute à ce propos.
Comme chaque message signé contient le nom du récipiendaire, un opposant,
Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la
tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur
m venant d’Alice, car c’est bien B et non O qui est spécifié dans le message
4.4 Méthodes avec tierce partie de confiance off-line
89
signé. Le raisonnement est identique vis à vis de Bob pour la preuve de nonrépudiation à la réception. Oscar ne peut prétendre avoir cette preuve car le
EOR est signé par Bob et B apparaît dans les messages signés par Bob et par la
TPC. Remarquons que l’on suppose qu’un acteur ne peut empêcher d’envoyer
de l’information (k et sig (k)) à la TPC. Par contre, s’il peut bloquer la TPC,
Oscar peut briser l’équité du protocole. Une telle attaque peut être obtenue au
moyen d’une attaque par inondation, en noyant la TPC sous des requêtes, et
ainsi, si Bob a atteint le point après le troisième envoi du protocole principal
et qu’Alice ne peut initier le recouvrement avant le moment t, alors l’équité est
brisée.
La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi le
nom des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation
est identique face à un observateur extérieur.
Zhou et Gollmann ont proposé des versions de leur protocole, qu’il soit optimiste
ou non, qui ne font pas usage du moment t à partir duquel Alice et Bob peuvent
consulter le répertoire public de la TPC. Ne sachant pas quand les informations
sont disponibles, Alice et Bob réalisent alors des consultations successives (à la
façon d’un polling dans un système client-serveur).
4.4.3
Un protocole optimiste et efficace de non-répudiation
Nous proposons [48] ici une modification originale du protocole de Zhou et
Gollmann avec TPC off-line, qui ne requiert pas un canal opérationnel entre la
TPC et Alice pour que le protocole soit équitable, mais bien seulement un canal
réactif.
L’attitude passive39 de la TPC est une particularité des protocoles de Zhou et
Gollmann (observée aussi dans le protocole non optimiste de Zhang et Shi). Si
nous désirons conserver cette passivité tout en permettant l’usage d’un canal
réactif entre la TPC et Alice, le protocole de recouvrement devrait être modifié
de manière à ce que, lorsqu’Alice initie le protocole de recouvrement, si le premier envoi arrive après l’instant t, la TPC révoque les clés correspondant aux
signatures utilisées dans les preuves de non-répudiation, et ainsi, si Bob possède
la preuve de non-répudiation à l’origine, Alice n’est pas lésée.
Mis à part la position avantageuse d’Alice qui peut révoquer à sa guise les
preuves de non-répudiation, ce mécanisme souffre toujours d’un risque de perte
d’équité, si Bob a fait usage de ses preuves avant qu’Alice n’ait eu l’occasion de
les révoquer.
Nous proposons en conséquence un nouveau protocole qui se base sur une TPC
active. La tierce partie ne maintient donc plus un répertoire public accessible
aux acteurs cibles, mais envoie à la demande des messages spécifiques à Alice
et Bob au travers de canaux réactifs.
39
La TPC a une attitude passive car elle n’envoie aucun un message, mais gère un répertoire
public accessible en lecture, qui est consulté par les acteurs cibles. Seuls les acteurs ont donc
un comportement actif.
90
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Un protocole similaire à celui que nous allons à présent décrire a été proposé
(de façon partiellement incorrecte) par Zhou et al. [76]. Étant donnés les délais
de publication, notre protocole, réalisé indépendemment, a été publié [48] un an
après celui de Zhou et al.
Protocole 4.8 Un protocole optimiste et efficace de non-répudiation
Le protocole principal :
1. A → B : fEOO , fsub , B, label , c, CKTPC (k) , EOO, sub ¨B
2. B → A : fEOR , A, label , EOR
3. A → B : fEOO k , B, label , k, EOO k
4. B → A : fEORk , A, label , EOR k
¨
Le protocole de recouvrement :
(X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible)
1. X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO
2. TPC → A : fcon k , A, B, label , k, con k , EOR
3. TPC → B : fcon k , A, B, label , k, con k
Le protocole d’abandon :
1. A → TPC : fabort , label , B, abort
2. TPC → A : fcon a , A, B, label , con a
3. TPC → B : fcon a , A, B, label , con a
¨
¨
Les preuves
Au cours du protocole, de nombreuses preuves de non-répudiation seront utilisées.
La preuve de non-répudiation à l’origine du chiffré c :
EOO = SigA (fEOO , B, label , h(c))
où, de la même manière que pour le protocole de Zhou et Gollmann, les labels
utilisés résultent du hachage du message m et de la clé k utilisée pour mettre
ce message en gage : label = h(m, k). Une instance du protocole est identifiée
par le triplet (label , A, B).
La preuve de non-répudiation à la réception du chiffré c :
EOR = SigB (fEOR , A, label , h(c))
La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la
TPC :
sub = SigA (fsub , B, label , CKTPC (k))
La preuve de non-répudiation à l’origine de la clé k :
EOO k = SigA (fEOO k , B, label , k)
4.4 Méthodes avec tierce partie de confiance off-line
91
La preuve de non-répudiation à la réception de la clé k :
EOR k = SigB (fEORk , A, label , k)
La preuve de non-répudiation à l’origine de la demande de recouvrement :
rec X = SigX (frec X , Y, label )
où X est soit Alice, soit Bob.
La preuve de non-répudiation à l’origine de la clé k envoyée par la TPC :
con k = SigTPC (fcon k , A, B, label , k)
La preuve de non-répudiation à l’origine de la demande d’abandon du protocole :
abort = SigA (fabort , B, label )
La preuve de non-répudiation à l’origine de la confirmation par la TPC de
l’abandon du protocole :
con a = SigTPC (fcon a , A, B, label )
La preuve de non-répudiation à l’origine du message m :
NRO = (EOO, EOO k ) ou (EOO, con k )
La preuve de non-répudiation à la réception du message m :
NRR = (EOR, EOR k ) ou (EOR, con k )
Le protocole principal
Le protocole suit le canevas classique : le message chiffré est d’abord échangé
contre un accusé de réception, puis la clé de déchiffrement est émise et un autre
accusé de réception est attendu.
Les envois sont associés à des délais d’attente après lesquels le récipiendaire
potentiel suppose que l’information attendue n’arrivera pas et initie soit le protocole de recouvrement, soit le protocole d’abandon.
1. Alice envoie à Bob le chiffré c, la preuve de non-répudiation à l’origine de
c, ainsi que la clé k de déchiffrement, elle-même chiffrée au moyen de la
clé publique de chiffrement de la TPC :
A → B : fEOO , fsub , B, l, c, CKTPC (k) , EOO, sub
2. Bob accuse réception du chiffré c, en envoyant sa preuve de non-répudiation
à la réception de c :
B → A : fEOR , A, label , EOR
92
Chapitre 4 : Non-répudiation avec tierce partie de confiance
3. Alice envoie alors la clé k qui permettra à Bob de déchiffrer c, ainsi que
la preuve de non-répudiation à l’origine de cette clé k (cette preuve, associée à la preuve de non-répudiation à l’origine de c, forme la preuve de
non-répudiation à l’origine de m) :
A → B : fEOO k , B, label , k, EOO k
4. Bob envoie, pour finir, un accusé de réception de la clé k (cette preuve
de non-répudiation à la réception de k, associée à la preuve de nonrépudiation à la réception de c, forme la preuve de non-répudiation à
la réception de m) :
B → A : fEORk , A, label , EOR k
Le protocole d’abandon
Si Alice ne reçoit pas le deuxième envoi dans les délais prévus, elle initie le protocole d’abandon. Remarquons qu’Alice ne peut initier à ce moment le protocole
de recouvrement qui, lui, prévoit l’envoi de la preuve de non-répudiation à la
réception de c, EOR, qu’elle n’a pas encore reçu.
1. Alice envoie donc une requête d’abandon signée à la TPC :
A → TPC : fabort , label , B, abort
2. Si le protocole de recouvrement ou d’abandon n’a pas déjà été initié 40 , la
TPC envoie à Alice une confirmation signée de l’abandon du protocole :
TPC → A : fcon a , A, B, label , con a
3. Puis la TPC envoie le même message d’abandon à Bob :
TPC → B : fcon a , A, B, label , con a
Remarquons qu’Alice peut ne pas spécifier le bon B dans sa requête d’abandon,
le vrai Bob ne recevra donc pas la confirmation de la TPC au cours de la session
du protocole d’abandon. Cependant, comme nous le verrons, il pourra réaliser
le protocole de recouvrement.
40
La TPC retient, pour chaque session des protocoles au cours desquels elle est invoquée,
quel protocole elle a déjà réalisé (abandon ou recouvrement) et qui a initié ce protocole.
4.4 Méthodes avec tierce partie de confiance off-line
93
Le protocole de recouvrement
Bob peut, à tout moment après avoir reçu le premier envoi du protocole principal, si un message n’arrive pas dans les délais attendus, initier le protocole
de recouvrement. De même, Alice, à partir du moment où elle a reçu de Bob
le deuxième envoi du protocole principal (car il lui faut EOR envoyé par Bob),
peut aussi initier le protocole de recouvrement.
1. Le protocole est initié par Alice ou Bob, noté X. X envoie à la TPC le hachage du chiffré c, la clé k chiffrée à l’intention de la tierce partie, le label
label , l’identité du deuxième acteur cible Y , la preuve de non-répudiation
à l’origine de c (EOO), la preuve de non-répudiation à l’origine de la clé k
(sub), la preuve de non-répudiation à la réception de c (EOR), ainsi que
la preuve de non-répudiation à l’origine de la requête de recouvrement
(rec X ) :
X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO
Remarquons que X ne peut envoyer une identité qui ne correspond pas
au « vrai » Y puisque la TPC vérifie les signatures de X et de Y .
2. La TPC s’assure de la validité des informations reçues, puis, si le protocole
d’abandon ou le protocole de recouvrement a déjà été réalisé, la TPC arrête
le protocole de recouvrement.
Sinon, le protocole continue et la TPC déchiffre la clé k chiffrée à son
intention. Elle envoie alors à Alice sa preuve de non-répudiation à l’origine de la clé k (con k ) qui sera combinée à EOR afin d’obtenir la preuve
de non-répudiation à la réception de m. Si Bob a initié le protocole de
recouvrement, il peut ne pas encore avoir envoyé le EOR à Alice ; comme
ce EOR doit être envoyé à la TPC au premier envoi de ce protocole de
recouvrement, celle-ci la transmettra aussi à Alice :
TPC → A : fcon k , A, B, label , k, con k , EOR
3. Puis la TPC envoie à Bob sa preuve de non-répudiation à l’origine de la
clé k (con k ) qui sera combinée à EOO afin de produire la preuve de nonrépudiation à l’origine de m :
TPC → B : fcon k , A, B, label, k, con k
L’équité
Théorème 4.35 Les derniers envois du protocole principal et du protocole de
recouvrement sont des points de forte complétude universels.
94
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Preuve : Après ces deux derniers envois le message m est transmis et les
preuves de non-répudiation sont échangées.
¤
Théorème 4.36 Le dernier envoi du protocole d’abandon est un point de forte
complétude universel.
Preuve : Après le troisième envoi du protocole d’abandon, qui ne peut être
initié que par Alice, le protocole se termine alors qu’aucune preuve finale de
non-répudiation, ni le message, n’ont été transmis. En effet, par l’hypothèse de
conservation, Alice ne réalisera le protocole d’abandon que si cela ne donne pas
d’avantage à Bob, et donc initiera le protocole d’abandon avant le troisième envoi. Ce protocole n’atteindra le troisième envoi que si Bob n’a pas préalablement
réalisé un recouvrement.
¤
Théorème 4.37 Le premier envoi du protocole principal est un point de forte
complétude pour Bob.
Preuve : Après avoir reçu le premier envoi d’Alice, si Bob arrête le protocole,
Alice n’ayant pas le EOR ne peut qu’arrêter le protocole (en initiant le protocole d’abandon). Ni Alice, ni Bob n’auront de preuve et le message m ne sera
pas transmis. Alice ne peut spontanément arrêter de prendre part au protocole
(sans exécuter le protocole d’abandon) car Bob peut réaliser un recouvrement
et obtenir le message m et la preuve de non-répudiation à l’origine.
¤
Théorème 4.38 Le protocole est fortement équitable.
Preuve : Après le premier envoi, le protocole principal peut s’arrêter, ou
le protocole d’abandon peut être initié par Alice, ou encore le protocole de
recouvrement peut être initié par Bob. Après le deuxième envoi, le protocole de
recouvrement peut être initié par Alice et Bob ; Alice a, quant à elle, toujours la
possibilité d’initier, sans risque de perte d’équité, le protocole d’abandon. Après
le troisième envoi, Alice et Bob ont tous deux la possibilité de lancer le protocole
de recouvrement, et avec le dernier envoi le point de forte complétude universel
est atteint.
Après le premier envoi du protocole d’abandon, la tierce partie honnête enverra,
si aucun recouvrement n’a été réalisé, l’information d’abandon à Alice et Bob,
atteignant ainsi le point de forte complétude universel de ce protocole.
Après le premier envoi du protocole de recouvrement, la tierce partie, honnête,
envoie les informations attendues à Alice et Bob, si un recouvrement ou un
abandon n’ont pas encore eu lieu, et le point de forte complétude universel du
protocole de recouvrement est atteint.
¤
La fin du protocole
Théorème 4.39 Le protocole est temporellement fini.
4.4 Méthodes avec tierce partie de confiance off-line
95
Preuve : Trois cas de figure sont à considérer. Soit le protocole principal
se termine naturellement avant que les délais d’attente ne soient expirés. Soit
Alice réalise le protocole d’abandon et Alice et Bob sont avertis de l’abandon
du protocole par un message signé par la TPC transitant au travers d’un canal
réactif ; le protocole se termine donc en un temps fini. Soit encore le protocole
de recouvrement est réalisé par Alice ou Bob ; dans ce cas Alice et Bob reçoivent
les informations et les preuves attendues aussi en un temps fini (toujours grâce
aux canaux réactifs).
Un dernier cas est à considérer : supposons qu’Alice initie, après le premier envoi
du protocole principal, le protocole de recouvrement en indiquant à la TPC un
mauvais nom de récipiendaire (B̃ plutôt que B). Bob ne recevra donc rien de la
TPC. Cependant, Bob peut à tout moment réaliser un protocole de recouvrement. Comme une session du protocole est identifiée par le triplet (label , A, B),
l’abandon réalisé par Alice ne concerne pas le protocole auquel participe Bob,
et le protocole de recouvrement est réalisé. Le protocole se termine donc pour
Bob, dans ce cas, au cours du protocole de recouvrement.
¤
Les disputes
Si Bob affirme avoir reçu le message m d’Alice, il doit présenter au juge la preuve
de non répudiation à l’origine de c (EOO), le label label , le chiffré c, le message
m, la clé de déchiffrement k et soit la preuve de non-répudiation à l’origine de
la clé k générée par Alice (EOO k ) soit celle générée par la TPC (con k ). Si Bob
présente toutes ces informations au juge, celui-ci accepte l’affirmation de Bob si
les tests suivants sont vérifiés :
– EOO = SigA (fEOO , B, label , c),
– EOO k = SigA (fEOO k , B, label , k) ou con k = SigTPC (fcon k , A, B, label , k),
– label = h(m, k),
– c = Ck (m).
alors le juge accepte l’affirmation de Bob.
Si Alice prétend avoir envoyé avec succès le message m à Bob, elle doit présenter
au juge la preuve de non-répudiation à la réception de c (EOR) , la preuve de
non-répudiation à la réception de la clé k générée par Alice (EOR k ) ou la preuve
de non-répudiation à l’origine de la clé k générée par la TPC (con k ) ainsi que
le label label , le chiffré c, le message m et la clé k de déchiffrement. S’il reçoit
toutes ces informations, le juge accepte l’affirmation d’Alice à la condition que :
– EOR = SigB (fEOR , A, l),
– EOR k = SigB (fEORk , A, label , k) or con k = SigTPC (fcon k , A, B, label , k),
– label = h(m, k),
– c = Ck (m).
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Bob, elle peut exécuter avec lui un recouvrement et envoyer un message d’abandon à Alice. Cette dernière détectera directement le
96
Chapitre 4 : Non-répudiation avec tierce partie de confiance
méfait, puiqu’elle est seule habilitée à réaliser un abandon. De plus la supercherie est détectée par l’incohérence des preuves en possession des acteurs cibles.
La TPC peut aussi, lorsqu’Alice réalise un abandon, contacter Bob pour réaliser
un recouvrement, puis envoyer (ou non) à Alice les informations de recouvrement (si elle envoie les informations à Alice, le protocole reste équitable et Alice
ne détecte rien ; sinon Alice, ne recevant rien de la TPC, peut supposer une
tricherie).
Enfin, la situation est semblable si la tierce partie s’allie avec Alice.
La viabilité
Théorème 4.40 Si Alice et Bob se savent mutuellement honnêtes, le protocole
est viable.
Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et respectivement
Alice et Bob, le protocole peut être prouvé viable. En effet, Alice et Bob étant
honnêtes, soit le protocole principal s’exécute jusqu’à son terme, soit le protocole
de recouvrement est exécuté par Alice ou Bob. Ce protocole de recouvrement se
terminera avec succès grâce aux canaux réactifs utilisés. Remarquons que si le
deuxième envoi du protocole principal n’arrive pas à Alice, cette dernière plutôt
que d’initier le protocole d’abandon, attendra, sachant Bob honnête, qu’il réalise
le protocole de recouvrement pour recevoir de la TPC les informations nécessaires. Après le deuxième envoi, Alice et Bob peuvent réaliser le recouvrement.
¤
Remarquons que si Alice et Bob sont honnêtes, mais ignorent le comportement
de l’autre, Alice risque d’initier le protocole d’abandon si le premier message
venant de Bob dans le protocole principal n’arrive pas. Ainsi, pour respecter
la propriété de viabilité, il est nécessaire que le canal de communication entre
Alice et Bob soit opérationnel, et ainsi seul le protocole principal s’exécutera.
Remarques
Le protocole proposé étant un protocole de non-répudiation brut, aucun mécanisme de confidentialité n’est prévu. De même, par la présence des noms des
acteurs cibles dans les messages, aucun anonymat n’est non plus assuré.
4.4.4
La révocation des clés de signature dans un protocole
optimiste
Comme nous l’avons déjà évoqué dans la section sur les protocoles avec TPC
on-line, il peut arriver qu’une clé de génération de signatures soit compromise.
Il faut alors révoquer le certificat de cette clé de signature et, dans le contexte
des protocoles de non-répudiation, il est nécessaire de pouvoir identifier si une
signature (présente dans une preuve de non-répudiation) a été générée avant ou
après la révocation. La méthode proposée à la section 4.3.4 nécessite une TPC
4.5 L’équité véritable
97
on-line qui finit par apposer un cachet temporisé validant toutes les preuves.
L’approche optimiste complique le problème.
La solution classique consistant à utiliser une autorité de confiance apposant
des cachets temporisés sur les preuves générées au cours des protocoles, où la
date présente dans un cachet est alors comparée à la date de révocation, pose
le problème de l’usage on-line de cette autorité dans le contexte optimiste.
Zhou et al. proposent [80] un mécanisme où l’on distingue des clés de signatures
révocables et irrévocables. Les premières sont des clés de signatures classiques
distribuées par une autorité de certification. Les secondes sont distribuées par
le signataire et sont frappées d’un cachet temporisé. Ces dernières signatures ne
pourront être révoquées jusqu’à leur expiration (information présente dans les
certificats de clés). Les clés révocables sont considérées comme des clés à long
terme, les clés irrévocables sont temporaires.
Chaque acteur possède une clé révocable de signature. En dehors du protocole
de non-répudiation, ces acteurs obtiennent un cachet temporisé qu’ils intègrent
dans le certificat d’une clé irrévocable qu’ils génèrent. L’autorité apposant les
cachets temporisés vérifie si la clé de signature classique et révocable de l’acteur
est utilisable. L’acteur fixe dans son certificat de clé irrévocable une date d’expiration qui ne peut dépasser la date d’expiration de la clé révocable de signature.
Le certificat de la clé irrévocable est signé par l’autorité apposant les cachets
temporisés.
Lors d’un protocole de non-répudiation, les acteurs signeront les messages au
moyen de leur clé irrévocable (et transmettront aussi le certificat associé). Si
un acteur reçoit un message signé par une clé irrévocable et estime la date
d’expiration trop éloignée dans le temps, il peut décider d’arrêter le protocole.
Même si une clé de signature irrévocable est compromise 41 , on ne se réfère pas
à une liste de certificats révoqués (CRL) à chaque vérification. Les risques qui
en découlent sont réduits, puisque seules quelques signatures ont éventuellement
été générées après la compromission de la clé (la vie de la clé étant courte).
4.5
L’équité véritable
L’équité véritable42 est la dernière évolution des protocoles d’échange avec TPC
off-line.
Précédemment, en cas de problème, la preuve de non-répudiation à la réception
pouvait ne pas être signée par Bob mais par la TPC off-line. La volonté ici est
d’obtenir dans tous les cas de figure une preuve signée par l’acteur cible adéquat
et non une signature de remplacement acceptée comme étant aussi valable que
celle attendue. C’est cela que nous nommons l’équité véritable.
Cette idée a été proposée par Micali. Ensuite, Bao et al. ont été parmi les
premiers à avoir développé un protocole sur cette idée [12]. En se basant sur les
41
42
La clé secrète de signature est connue par une partie tierce, par exemple.
true fairness en anglais.
98
Chapitre 4 : Non-répudiation avec tierce partie de confiance
protocoles d’échange off-line, ils proposent deux protocoles off-line vérifiant une
forme d’équité véritable.
La lourdeur de leur première proposition la rend impraticable. Leur seconde
proposition a été cassée par Boyd et al. [23] peu de temps après.
Dans un premier temps, la seule méthode envisagée pour permettre de générer,
dans toutes les situations, les signatures d’Alice et de Bob, consistait à réaliser
un chiffrement de la signature qui soit vérifiable par le récipiendaire [5]. Cette
technique permet de vérifier si le message chiffré contient la signature attendue
sans pour autant pouvoir déchiffrer ce message et donc sans être à même de
récupérer cette signature. Le chiffrement doit être déchiffrable par la TPC ; ainsi
si Alice (par exemple) ne transmet pas la signature qui est attendue d’elle par
Bob, celui-ci enverra la signature d’Alice chiffrée, qu’il a préalablement reçue et
vérifiée, à la TPC qui la déchiffrera et la transmettra en clair en retour à Bob.
Le problème [23] de cette technique est aussi la lourdeur des calculs à réaliser,
ces techniques étant en conséquence peu utiles en pratique.
En conséquence, Chen [27] a proposé, en 1998, d’utiliser une primitive cryptographique développée par Chaum [25], appelée signature confirmable. Cette
technique permet de vérifier qu’une signature temporaire pourra être rendue
valide avec l’aide d’un « confirmeur » qui dans le cas de l’équité véritable est la
TPC. Cette méthode, qu’il greffe sur l’approche optimiste, permet de réaliser un
échange de signatures traditionnelles dans les cas de figure où aucune faute n’intervient au cours d’une session du protocole. Par contre, si la TPC est contactée,
elle va générer une signature de Bob qui est différente de celle que Bob aurait
émise si tout s’était bien passé. Cependant cette signature est bien une signature
de Bob (elle est non-falsifiable et assure la non-répudiation à l’origine). Ainsi,
la signature finale présente, par sa forme, une indication sur la manière dont le
protocole s’est déroulé (ce qui peut être indésirable en pratique). C’est cela que
les prochains protocoles que nous allons étudier vont tenter d’éviter.
4.5.1
Le protocole générique d’échange équitable de Boyd et
Foo
Boyd et Foo [23] ont amélioré en 1998 la technique d’équité véritable, en générant, en cas de problème, via la TPC, une signature identique à celle que Bob
aurait émise dans une situation sans faute.
Boyd et Foo désirent que la signature intermédiaire, traditionnellement émise
lors des mises en gage, ne soit pas universellement vérifiable (elle aurait, sinon,
valeur de signature traditionnelle et indiquerait que l’acteur s’est engagé dans
le protocole).
L’idée proposée consiste à utiliser des signatures convertibles. Alice devra alors
pouvoir vérifier si, le cas échéant, elle pourra, avec l’aide de la TPC, convertir
la signature intermédiaire de Bob en une signature universellement vérifiable.
4.5.1.1 Signatures incontestables et convertibles
4.5 L’équité véritable
99
Les auteurs utilisent une évolution dans le domaine des signatures, entamé par
Chaum [26] avec les signatures incontestables43 où la vérification de la signature
ne peut se faire qu’avec la participation du signataire (lequel ne peut cependant
pas réfuter une de ses signatures valides).
Un exemple de protocole implémentant un tel schéma de signature incontestable
peut être le suivant : un générateur44 g public de Z∗p , où p est un grand premier,
est choisi, et une clé secrète x, tel que x soit premier avec p − 1, ainsi qu’une clé
publique y = g x mod p sont associées au signataire45 .
La signature, inspirée du schéma de signature RSA, du message m 6= 1 est
s = mx mod p
La vérification de la signature se fait au cours du protocole de vérification suivant
(où S est le signataire et V est le vérificateur) :
Le vérificateur choisit aléatoirement et indépendamment a et b ∈ {1, . . . , p − 2}
et envoie
r = sa y b mod p
au signataire :
V →S :r
Le signataire répond à cette question en envoyant t = r x
teur46 :
−1
dans Z∗p au vérifica-
S→V :t
Le vérificateur compare alors t à ma g b mod p et si les valeurs sont identiques, le
vérificateur accepte la signature.
Si l’égalité n’est pas établie, le vérificateur répète le protocole de vérification
avec deux nouvelles valeurs a′ et b′ (à la place de a et b), et obtient ainsi une
′
′
′
réponse t′ à la question r ′ = sa y b mod p. Le vérificateur compare alors (tg −b )a
′
′
à (t′ g −b )a et si les valeurs sont identiques (et vallent maa mod p), cela signifie
que le signataire est honnête et que la signature s n’est pas la sienne 47 .
43
undeniable signature en
˘ anglais.
¯
Z∗p = {1, . . . , p − 1} = g 1 , . . . , g p−1 = g 0 = 1 mod p.
45
Calculer x = log g (y) à partir de y, p et g est une instance du logarithme discret modulo
44
p.
46 −1
x mod p − 1 = 1.
Un opposant, qui ne connaît pas x−1 pourrait falsifier une telle signature en répondant
correctement à la question r, mais pour ce faire, ne connaissant pas x−1 , il devrait connaître
a et b ce qui n’est pas le cas. Une signature invalide ne peut être prouvée valide car si on
suppose deux couples de valeurs distinctes, (a, b) et (a′ , b′ ), produisant une même question
′
′
′
′
′ ′
′
r = sa y b = sa y b , alors si s = mx avec x 6= x′ , nous avons sa y b = mx a g xb = mx a g xb =
′
′
′
′
′
sa y b , donc mx (a−a ) = g x(b −b) ; mais si de plus la réponse est correcte pour les deux paires,
′
′
′
′
nous avons ma g b = ma g b , donc ma−a = g b −b , ce qui contredit x 6= x′ . Enfin si le signataire
47
100
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Sur base des signatures incontestables ont été développées par la suite les signatures convertibles [21, 30] qui ne peuvent être vérifiées qu’avec la participation du
signataire qui, de plus, à cette occasion, peut les transformer en signatures traditionnelles (à savoir vérifiables par le récipiendaire de la signature s’il possède
la clé publique associée) ; puis une dernière évolution [25] a mené aux signatures à convertisseur désigné 48 avec lesquelles la transformation de la signature
incontestable en signature traditionnelle peut être réalisée par le signataire ou
par une tierce partie désignée (qui est le convertisseur désigné). Le protocole
proposé par Boyd et Foo, et décrit ci-après, illustre cette technique.
4.5.1.2 Le protocole initial de Boyd et Foo
L’avancée majeure consiste en la volonté de générer, en cas de faute, une signature identique à celle qui aurait été émise lors d’une session sans faute.
Ainsi, ne pouvant distinguer une signature émise par la TPC d’une signature
émise par Bob, les signatures générées au cours d’une session du protocole ne
laissent transpirer aucune information sur la manière dont s’est déroulée cette
session et ne permettent donc pas de tirer l’une ou l’autre conclusion au sujet
des acteurs cibles, à propos de leur honnêteté. . .
Protocole 4.9 Le protocole générique de Boyd et Foo
Le protocole principal :
1. B → A : descr (m), SBA (descr (m))
¨A
2. A ⇔ B : vérification de SBA (descr (m)) ¨A
3. A → B : CKB (m)
4. B → A : SigB (descr (m))
¨
Le protocole de recouvrement :
f A (SB (descr (m)) , CK
1. A → TPC : descr (m), Sig
(m))
TPC
A
2. TPC → A : SigB (descr (m))
3. TPC → B : CKB (m)
¨
Le protocole générique principal
Le protocole d’échange entre Alice et Bob d’un message m contre une signature
de la description de m suppose que Bob connaît la description de m : descr (m).
Il la connaît, par exemple, après avoir eu une interaction préalable avec Alice.
tente de nier une signature valide, il doit produire des réponses t et t′ incorrectes telles que
′
′
(tg −b )a est égal à (t′ g −b )a , mais après avoir répondu à la première question, et en supposant
−1
−1
′
′
−1
−1
que le signataire connaisse a et b, nous avons t′ = (ta g −ba )a g b et ta g −ba est fixé à
′
ce moment, et donc produire un tel t revient à être à même de faire accepter une signature
non valide.
48
designated converter signature en anglais.
4.5 L’équité véritable
101
Dans le protocole, SBA (descr (m)) est une signature partielle49 (ou temporaire)
générée par Bob de la description du message m, qui est telle que seule Alice peut
en vérifier sa validité. Cependant la TPC peut la transformer en une signature
définitive qui est universellement vérifiable.
1. Pour commencer Bob génère une signature partielle (à convertisseur désigné, à savoir la TPC) de la description de l’information qu’il désire et
l’envoie à Alice :
B → A : descr (m), SBA (descr (m))
2. Alice et Bob réalisent un protocole sans apport de connaissance 50 qui tente
de convaincre Alice que la TPC pourra si nécessaire terminer le protocole :
A ⇔ B : vérification de SBA (descr (m))
3. Si la preuve est passée et qu’Alice est convaincue, elle envoie le message
m chiffré à Bob :
A → B : CKB (m)
4. Bob répond en émettant sa signature traditionnelle sur la description de
m:
B → A : SigB (descr (m))
Le protocole générique de recouvrement
En cas de dispute, un protocole de recouvrement est réalisé. La TPC, à partir
de la signature partielle, calculera la signature traditionnelle de Bob.
1. La TPC reçoit d’Alice le message m (chiffré à son intention) ainsi que la
signature temporaire de Bob :
f A (SB (descr (m)) , CK
A → TPC : descr (m), Sig
(m))
TPC
A
2. Si la signature d’Alice et la signature temporaire de Bob sont valides, la
TPC transforme la signature temporaire de Bob en sa signature traditionnelle et la transmet à Alice :
TPC → A : SigB (descr (m))
49
Nous introduisons cette notation afin de bien distinguer une signature partielle d’une
signature « classique ».
50
zero knowledge proof en anglais.
102
Chapitre 4 : Non-répudiation avec tierce partie de confiance
3. Puis la TPC transmet à Bob le message m :
TPC → B : CKB (m)
Les preuves
Ce protocole a été conçu dans l’idée d’échange d’un message m contre une
signature de la description de ce message m. Le message m est vu comme un
bien à vendre, la signature sur la description de m (description qui peut inclure
le prix) est considérée comme un paiement.
La preuve de non-répudiation à la réception est donc : NRR = SigB (descr (m)).
Cependant, les auteurs n’ont pas prévu de preuve de non-répudiation à l’origine.
Bob n’a donc aucune certitude quant à l’origine du message m et ne peut donc
prouver à personne l’origine de m (dans le contexte du commerce électronique,
Bob ne peut prouver avoir acheté un bien à un vendeur, et ne peut faire valoir
sa garantie sur le produit, par exemple).
4.5.1.3 Le protocole modifié
Nous proposons, en conséquence, au protocole 4.10, une modification du protocole de Boyd et Foo qui permet à Bob de recevoir cette preuve qui s’exprimerait
par :
NRO = SigA (descr (m))
Protocole 4.10 Le protocole générique modifié de Boyd et Foo
Le protocole principal :
1. B → A : descr (m), SBA (descr (m))
¨A
2. A ⇔ B : vérification de SBA (descr (m)) ¨A
3. A → B : CKB (m) , SigA (descr (m))
4. B → A : SigB (descr (m))
¨
Le protocole de recouvrement :
f A (SB (descr (m)) , CK
f A (descr (m))
1. A → TPC : Sig
(m)) , Sig
TPC
A
2. TPC → A : SigB (descr (m))
3. TPC → B : CKB (m) , SigA (descr (m))
¨
L’équité
Les preuves exposées à présent concernent le protocole modifié ci-dessus. Ces
preuves sont aussi valables pour le protocole initialement présenté par Boyd et
Foo en enlevant les références à la preuve de non-répudiation à l’origine.
4.5 L’équité véritable
103
Théorème 4.41 Les derniers envois du protocole principal et du protocole de
recouvrement sont des points de forte complétude universels.
Preuve : Dans les deux cas les preuves sont échangées et le message m transmis.
¤
Théorème 4.42 Les premier et deuxième envois du protocole principal sont
des points de forte complétude pour Alice.
Preuve : Si Alice arrête le protocole après le premier envoi ou pendant la
preuve interactive de la validité de la signature temporaire de Bob, Bob ne
peut plus continuer le protocole, car il n’a plus aucun moyen de recevoir ni la
signature d’Alice qui fait office de preuve de non-répudiation à la réception, ni
le message m.
Par contre, si Bob a émis une signature temporaire valide, il ne peut arrêter le
protocole, car il ne peut empêcher Alice d’éventuellement réaliser un recouvrement avec sa signature temporaire (même si elle n’a pas encore la certitude de
sa validité).
¤
Théorème 4.43 Si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, le protocole est fortement équitable.
Preuve : Après le troisième envoi du protocole principal, Bob possède la preuve
de non-répudiation à l’origine d’Alice, et peut ainsi mettre fin au protocole.
Alice n’ayant pas la preuve de non-répudiation à la réception, si elle ne reçoit
pas la preuve de Bob, initiera un recouvrement en réalisant le premier envoi du
protocole de recouvrement.
Après le premier envoi du protocole de recouvrement, la TPC réalise les deuxième
et troisième envois de ce protocole et le point de complétude correspondant à la
fin du protocole de recouvrement est alors atteint.
Les canaux doivent être réactifs pour permettre à Alice de réaliser un recouvrement après le troisième envoi si Bob arrête le protocole après avoir obtenu m et
la preuve de non-répudiation à l’origine.
¤
La fin du protocole
Théorème 4.44 Le protocole n’est pas temporellement fini.
Preuve : Si Alice arrête le protocole après le deuxième envoi du protocole
principal51 , Bob ne peut savoir si Alice arrête de prendre part au protocole ou si
elle va tenter plus tard de réaliser un recouvrement. Ainsi Bob ne peut arrêter
le protocole tant qu’il n’a pas reçu un message d’Alice ou de la TPC.
¤
51
Le deuxième envoi du protocole principal représente l’exécution d’un protocole de vérification de la signature partielle de Bob. Ce protocole est supposé temporellement fini.
104
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Les disputes
Si Alice affirme avoir envoyé un message m à Bob, elle présente la preuve de nonrépudiation à la réception ainsi que ce message m au juge. Celui-ci va vérifier la
signature de Bob sur la description du message m et accepte l’affirmation si les
tests sont concluants.
Dans le protocole original, Bob ne reçoit aucune preuve ; il ne peut donc affirmer
quoi que se soit devant un juge. Cependant, dans le protocole modifié, Bob reçoit
une preuve de non-répudiation à l’origine. Si Bob affirme alors avoir reçu un
message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine
ainsi que m au juge. Celui-ci vérifiera la signature d’Alice sur la description de
m et acceptera l’affirmation de Bob, si tout est correct.
La sécurité
La signature temporaire ainsi que la signature classique de Bob peuvent être
utilisées par quiconque désirant émettre, à un moment quelconque, le message
m. Afin d’empêcher cela, ces signatures doivent être liées à la session en cours
du protocole au moyen d’un label unique (basé par exemple sur le hachage du
message et d’une clé propre à la session en cours du protocole) et d’un identifiant
de l’origine du message m. Il est aussi de bonne pratique d’identifier le but et
la destination de chaque envoi.
Le comportement de la tierce partie de confiance
Si la TPC envoie la signature de Bob sur la description de m à Alice et ne
transmet pas m à Bob, ce dernier ne peut rien prouver mais Bob le détecte, si
le canal est réactif, lorsqu’il prend conscience qu’Alice utilise sa preuve. Inversement, si la tierce partie envoie m à Bob et mais n’envoie rien à Alice, celle-ci
n’obtient pas la preuve de non-répudiation à la réception. Ceci n’est détectable,
si le canal est réactif, que si Alice se rend compte que Bob utilise sa preuve.
La viabilité
Théorème 4.45 Si les canaux de communication sont réactifs, le protocole est
viable.
Preuve : Si Alice et Bob sont honnêtes, ils exécutent le protocole principal.
Chaque récipiendaire attend l’arrivée d’un message puis continue le protocole.
Le protocole se terminera ainsi, réalisant l’échange avec succès.
¤
Remarques
L’anonymat n’est assuré, dans le protocole de Boyd et Foo, que si aucune indication sur l’identité des signataires des messages n’est transmise.
4.5 L’équité véritable
4.5.2
105
Le protocole concret d’échange équitable de Boyd et Foo
Nous allons à présent décrire une proposition d’instantiation du protocole générique proposée par Boyd et Foo. Cette instantiation se base sur le chiffrement
et la signature RSA [61].
Protocole 4.11 Le protocole concret de Boyd et Foo
Les prémices :
1. B → TPC : CertB (n, e)
2. TPC → B : CKB (d1 )
3. B → TPC : ω, SBA (ω)
4. TPC → B : SigTPC (CertB (n, e), ω, SBA (ω))
Le protocole principal :
1. B → A : descr (m) , SBA (descr (m)) , SigTPC (CertB (n, e), ω, SBA (ω))
2. A → B : Q
3. B → A : commit (D)
4. A → B : i, j
5. B → A : D
6. A → B : CKB (m)
7. B → A : SigB (descr (m))
¨A
¨A
¨A
¨A
¨A
¨
Le protocole de recouvrement :
1. A → TPC : CertB (n, e), descr (m) , SigA (SBA (descr (m)) , CKTPC (m))
2. TPC → A : SigB (descr (m))
3. TPC → B : CKB (m)
Les prémices du protocole concret
Dans un premier temps, les récipiendaires potentiels doivent s’enregistrer auprès
de la TPC.
1. Bob possède une paire de clés publique et privée RSA composée d’une clé
secrète d et d’une clé publique e ainsi que d’un modulus n = pq composé
de deux premiers forts52 distincts mais approximativement de la même
taille. Bob connaît e, d, p et q. Les deux clés sont certifiées par une autorité de certification qui produit un certificat CertB (n, e)53 que Bob envoie
à la TPC :
B → TPC : CertB (n, e)
2. Quand la TPC reçoit ce certificat, elle génère aléatoirement un nombre impair d1 plus petit que n et tel que pgcd (d1 , φ (n)) = 1 ; comme φ (n) = 4p′ q ′
52
53
où p = 2p′ + 1 et q = 2q ′ + 1 avec p, p′ , q, q ′ premiers de grande taille.
L’autorité de certification signe les informations publiques de Bob.
¨
106
Chapitre 4 : Non-répudiation avec tierce partie de confiance
cette contrainte est généralement respectée (d1 doit être différent des multiples de p′ et q ′ ) malgré le fait que la TPC ignore φ(n) (il n’est cependant
pas possible pour la TPC de vérifier si elle utilise un d1 adéquat).
La TPC devra être capable de reconstruire d1 à partir de l’identité de
Bob. Une manière, non aléatoire, de réaliser cela consiste à choisir d 1 =
2h(K, B) + 1 où K est un secret de la TPC.
La TPC envoie donc cette clé d1 chiffrée à Bob :
TPC → B : CKB (d1 )
3. Bob va alors calculer54 d2 tel que d1 d2 e = 1 mod φ (n). Il choisit alors un
message dit « de référence » ω et calcule la signature de référence (que
nous appelons signature temporaire) SBA (ω) = ω d2 .
Ce message de référence et la signature de référence seront utilisés par
Alice pour vérifier que la TPC connaît d1 et pourra ainsi, le cas échéant,
finir le protocole.
Bob transmet à la TPC sa signature temporaire sur ω :
B → TPC : ω, SBA (ω)
4. Lorsque la TPC reçoit le message et la signature de référence, elle vérifie
leur validité en testant si (SBA (ω))d1 e mod n = ω.
La TPC produit alors ce que Boyd et Foo appellent un ticket, qui sera
utilisé par Bob lors de la réalisation du protocole. Ce ticket est composé
du certificat de sa clé publique ainsi que du message et de la signature de
référence, le tout signé par la TPC :
TPC → B : SigTPC (CertB (n, e), ω, SBA (ω))
Le protocole concret principal
Le protocole d’échange, entre Alice et Bob, d’un message m contre une signature de la description de m, suppose qu’Alice connaisse la description de m :
descr (m), par exemple suite à une interaction préalable avec Bob.
La méthode concrète proposée est basée sur les signatures et le chiffrement RSA.
Dans le protocole, SBA (descr (m)) est une signature partielle (ou temporaire)
qui ne peut être vérifiée qu’interactivement avec Bob. Cependant la TPC peut
la transformer en une signature définitive qui est universellement vérifiable.
1 Pour commencer, Bob génère une signature partielle de la description de
l’information qu’il désire : SBA (descr (m)) = descr (m)d2 mod n et l’envoie à Alice :
B → A : descr (m) , SBA (descr (m)) , SigTPC (CertB (n, e), ω, SBA (ω))
54
Ce qui est toujours possible puisque, par RSA [61], nous avons (e, φ (n)) = 1 et qu’il est
imposé que (d1 , φ (n)) = 1.
4.5 L’équité véritable
107
2 Alice et Bob réalisent un protocole sans apport de connaissance (en quatre
mouvements) qui tente de convaincre Alice que la TPC pourra si nécessaire
terminer le protocole.
2.1 Pour ce faire, Alice choisit i et j aléatoirement et uniformément dans
l’intervalle [1, . . . , n] et calcule :
Q = SBA (descr (m))2i SBA (ω)j mod n
qu’elle envoie à Bob :
A→B :Q
2.2 Bob calcule D = Qd1 e et utilise une fonction de mise en gage commit
(cf. 4.4.1) pour transmettre D à Alice :
B → A : commit (D)
2.3 Alice transmet alors à Bob les i et j qu’elle a utilisés pour calculer Q :
A → B : i, j
2.4 Bob « ouvre » alors sa mise en gage et révèle D :
B→A:D
3 Alice vérifie si D = descr (m)2i ω j (mod n) et, dans ce cas55 , elle envoie
m à Bob :
A → B : CKB (m)
4 Bob répond en émettant sa signature traditionnelle sur la description de
m:
B → A : SigB (descr (m))
Le protocole concret de recouvrement
En cas de problème, le protocole de recouvrement est réalisé.
1. Alice envoie :
A → TPC : CertB (n, e), descr (m) , SigA (SBA (descr (m)) , CKTPC (m))
2. La TPC, à partir du contenu du message reçu après le premier envoi,
calcule d1 = 2h (K, C) + 1 et SBA (descr (m))d1 . Elle vérifie si
SBA (descr (m))d1 = SigA (descr (m))
55
D = Qd1 e = descr (m)d1 d2 e2i ω d1 d2 ej = descr (m)2i ω j .
108
Chapitre 4 : Non-répudiation avec tierce partie de confiance
puisque, avec la signature RSA, SigA (descr (m)) = descr (m)d1 d2 . La TPC
vérifie aussi si la description descr (m) correspond à m. Si les vérifications
qui précèdent sont positives, la TPC envoie :
TPC → A : SigB (descr (m))
3. Puis elle envoie :
TPC → B : CKB (m)
Remarques
Le message m n’est accessible qu’aux acteurs cibles et à la TPC (si elle intervient
dans le protocole) ; la confidentialité vis à vis d’un observateur est assurée.
Si le protocole de recouvrement n’est pas exécuté, la TPC ne connaît que Bob
qui s’y est enregistré. Par contre après un recouvrement, la TPC connaît Alice
et Bob.
4.6
Notre approche de l’équité véritable
Nous proposons ici un nouveau type de protocole avec TPC off-line, qui permet l’échange d’une information contre une signature qui sera la preuve de
non-répudiation à la réception. Nos protocoles respectent la propriété d’équité
véritable.
Nous proposons une méthode basée sur un schéma de signature digital traditionnel exploitant le problème du logarithme discret. Nos propositions concrètes
utilisent le schéma de signature de Schnorr [65].
Comme cela était le cas dans les protocoles d’échange avec TPC off-line récemment proposés, Alice doit pouvoir vérifier la validité des signatures temporaires
mises en gage sans être capable d’en extraire la signature finale. Plus précisément, Alice, ayant reçu une mise en gage de la signature de Bob, doit pouvoir
être sûre que cette signature engagée est d’une forme telle que la TPC pourra,
si nécessaire, ouvrir cette mise en gage et en extraire la signature traditionnelle
de Bob.
Dans [23], Boyd et Foo précisent que la signature mise en gage par Bob doit être
d’une forme telle que seule Alice puisse en vérifier l’exactitude. Pour réaliser
cela ils utilisent, comme nous l’avons vu, un protocole interactif qui tente de
convaincre Alice que la TPC pourra convertir la signature mise en gage par
Bob, en une signature finale qui sera universellement vérifiable.
Nous ne suivons pas ce point de vue. Nous estimons que l’usage d’une vérification
interactive augmente inutilement les communications et ne produit rien d’utile
en échange.
Ce qui est désiré est la sécurité d’Alice et de Bob. Ainsi, si la signature finale
4.6 Notre approche de l’équité véritable
109
(celle qui est acceptée comme valide par tout le monde), produite par Bob
ou résultant d’une conversion (réalisée par un convertisseur désigné, la TPC,
cf. sous-section 4.5.1), est différente de la signature mise en gage au cours du
protocole (on ne peut donc pas faire passer la signature mise en gage comme
signature finale) et si cette signature mise en gage ne peut être ni contrefaite ni
convertie en une signature finale par un acteur qui n’est ni Bob ni la TPC, alors
la sécurité d’Alice et de Bob est assurée. Cette sécurité n’est pas compromise
par l’universalité de la vérification de la signature mise en gage.
Nous nous concentrerons dans un premier temps sur la propriété d’équité véritable. Nous proposerons ainsi des protocoles d’échange équitable génériques et
concrets qui ne sont pas temporellement finis (propriété nécessaire en pratique).
Ce sont pour des raisons « historiques »56 que nous présentons pour commencer
un protocole d’échange équitable. De plus, nous faisons dans un premier temps
abstraction des propriétés assurant que le protocole se termine en un temps fini
afin d’alléger sensiblement les protocoles présentés et de nous focaliser sur les
techniques permettant l’obtention de l’équité véritable. Nous proposons enfin
à la section 4.6.4 un protocole de non-répudiation respectant lui aussi l’équité
véritable (et qui est temporellement fini).
4.6.1
Le protocole générique d’échange équitable
Nous proposons ici un protocole générique d’échange équitable d’un message
m, dont l’unique description est publiquement connue, et de sa preuve de nonrépudiation à l’origine contre la preuve de non-répudiation à la réception qui
fait office d’accusé de réception.
Les notations
–
–
–
–
m est le message qu’Alice transmet à Bob.
descr (m) est la description de m.
ComSig B (.) est une signature temporaire mise en gage par Bob.
SigB (descr (.)) est une signature finale de Bob attendue par Alice.
Protocole 4.12 Un protocole générique implémentant l’équité véritable
Le protocole principal :
1. B → A : fcom , A, label , descr (m) , CNRR ¨A
2. A → B : fmsg , B, label , m, NRO
3. B → A : fack , A, label , NRR
¨
Le protocole de recouvrement :
1. A → TPC : frec , A, B, label , m, descr (m) , CNRR, NRO
2. TPC → A : fack , A, label , NRR
3. TPC → B : fmsg , B, label , m, NRO
56
Le procédé a été pensé dans ce contexte.
¨
110
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Les preuves
La preuve de non-répudiation à la réception mise en gage par Bob est :
CNRR = ComSig B (fack , A, label , descr (m))
où label est le label unique associé à une session du protocole.
La preuve de non-répudiation à la réception est :
NRR = SigB (fack , A, label , descr (m))
La preuve de non-répudiation à l’origine est :
NRO = SigA (fmsg , B, label , descr (m))
Le protocole principal
1. Bob prépare descr (m) correspondant à l’information désirée et signe cette
description de manière à la mettre en gage :
B → A : fcom , A, label , descr (m) , CNRR
2. Une fois la requête reçue, Alice vérifie la consistance et l’exactitude de
descr (m) et vérifie57 si la signature mise en gage pourra être ouverte en
cas de besoin par la TPC. Si tout est en ordre, Alice transmet le message
m attendu, ainsi que la preuve de non-répudiation à l’origine :
A → B : fmsg , B, label , m, NRO
3. Si le message reçu correspond à la description qu’il a signée, et si la preuve
de non-répudiation à l’origine est correcte, Bob envoie sa signature finale :
B → A : fack , A, label , NRR
Le protocole de recouvrement
Si Alice ne reçoit pas la signature finale de Bob ou si celle reçue n’est pas valide
(si elle n’est pas acceptée par l’algorithme de vérification de signatures), elle
initie le protocole de recouvrement suivant avec la TPC.
1. Alice transmet à la TPC le message m, la description de ce message, la
preuve de non-répudiation à l’origine, ainsi que la signature temporaire de
Bob :
57
Une description concrète des vérifications sera détaillée dans les protocoles concrets que
nous détaillerons au cours des pages suivantes.
4.6 Notre approche de l’équité véritable
111
A → TPC : frec , B, label , m, descr (m) , CNRR, NRO
2. La TPC vérifie si la preuve de non-répudiation et la signature temporaire
sont valides ; elle extrait alors de cette signature temporaire la signature
finale de Bob et la transmet à Alice :
TPC → A : fack , A, label , NRR
3. Elle transmet à Bob le message attendu ainsi que la preuve de nonrépudiation à l’origine :
TPC → B : fmsg , B, label , m, NRO
L’équité
Théorème 4.46 Les derniers envois du protocole principal et du protocole de
recouvrement sont des points de forte complétude universels.
Preuve : Dans les deux cas le protocole est terminé après avoir réalisé l’échange
attendu.
¤
Théorème 4.47 Le premier envoi du protocole principal est un point de forte
complétude pour Alice.
Preuve : Si Alice arrête le protocole après le premier envoi, Bob ne reçoit pas
le message m et le protocole de recouvrement n’étant pas initié, le protocole est
terminé de manière équilibrée.
Ce point n’est pas un point de complétude pour Bob puisque, s’il arrête le
protocole, Alice a toujours le loisir de réaliser un protocole de recouvrement
avec ce qu’elle a reçu de Bob au premier envoi.
¤
Théorème 4.48 Si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, le protocole est fortement équitable.
Preuve : Après le deuxième envoi du protocole principal, Alice n’arrêtera pas
le protocole (par hypothèse de conservation) car, alors que Bob a reçu toutes les
informations, il lui manque encore la preuve de non-répudiation à la réception.
Si Bob continue le protocole, le point de complétude universel correspondant au
troisième envoi du protocole principal est atteint.
Si Bob ne réalise pas le troisième envoi du protocole principal ou si cet envoi est
incorrect, Alice initie le protocole de recouvrement58 .
58
Alice est sûre de pouvoir réaliser le recouvrement si la signature mise en gage par Bob au
début du protocole principal est correcte (c’est-à-dire si l’algorithme de vérification accepte
cette signature).
112
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Après le premier envoi du protocole de recouvrement, la TPC, honnête, envoie
les informations attendues aux envois deux et trois du protocole de recouvrement
et atteint le point de complétude universel (grâce à la réactivité des canaux). ¤
En cas de problème, Alice n’envoie pas m à Bob ou, si le m ne correspond pas
à la description émise, alors Bob arrête le protocole qui reste équitable. En fait,
si Alice malhonnête décide de lancer malgré tout le protocole de recouvrement
(décrit plus haut) en utilisant la signature mise en gage par Bob, elle aura à
fournir à la TPC le message m adéquat (correspondant à la description émise
par Bob) qui le transmettra à Bob : le protocole reste donc équitable.
Si Alice décide de lancer le protocole de recouvrement juste après avoir mis
NRO en gage, l’équité est toujours garantie puisque Bob recevra m (transmis
par la TPC).
La fin du protocole
Théorème 4.49 Le protocole ne peut être prouvé temporellement fini.
Preuve : Après le premier envoi du protocole principal, si Bob ne reçoit plus
de message, il ne peut savoir si Alice va réaliser ou non un recouvrement et ne
peut donc savoir quand ne plus prendre part au protocole.
¤
Les disputes
Si Alice affirme avoir envoyé avec succès le message m à Bob, elle présente m,
descr (m), ainsi que la preuve de non-répudiation à la réception au juge. Ce
dernier vérifiera la validité de la description de m et de la signature de Bob sur
cette description. Si la description et la signature sont correctes, l’affirmation
d’Alice est acceptée.
De même, si Bob affirme avoir reçu le message m d’Alice, il présente m, descr (m),
ainsi que la preuve de non-répudiation à l’origine au juge. Ce dernier vérifiera
la description du message m et la signature d’Alice sur cette description. Si la
description et la signature sont correctes l’affirmation de Bob est acceptée.
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Alice, elle peut ne rien envoyer à Bob ou lui envoyer des
informations fausses. Bob ne peut rien prouver mais détecte ce comportement
s’il constate qu’Alice possède sa preuve de non-répudiation à la réception. De
même, si la TPC s’allie avec Bob, lorsqu’Alice fait un recouvrement, elle peut
ne transmettre que la preuve de non-répudiation à l’origine à Bob. À nouveau,
Alice détectera la supercherie si elle surprend Bob utilisant sa preuve de nonrépudiation, mais elle ne peut rien prouver à un tiers.
4.6 Notre approche de l’équité véritable
113
La viabilité
Théorème 4.50 Si un délai maximum d’attente est prévu pour chaque envoi
du protocole principal et si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, alors le protocole est viable .
Preuve : Le premier envoi du protocole principal arrive correctement, le protocole est alors initié et il peut soit se terminer au cours du protocole principal,
soit le protocole de recouvrement sera réalisé et aboutira grâce aux canaux de
communication réactifs utilisés.
¤
Remarque
Le protocole n’assure aucune confidentialité (le message m circulant en clair sur
le canal de communication), ni d’anonymat.
4.6.2
Notre premier protocole concret
Nous proposons à présent, un protocole concret d’échange équitable basé sur le
schéma de signature de Schnorr.
Les prémices
Comme indiqué précédemment, nous supposons l’existence d’une TPC qui connaît
des informations secrètes. Dans une phase préalable au protocole d’échange, la
TPC choisit :
– un entier n = pq, où p et q sont de grands premiers forts distincts pris au
hasard et de taille comparable (tels que p = 2p′ + 1 et q = 2q ′ + 1 pour p′ et
q ′ grands premiers).
– une base59 α d’ordre s = p′ q ′ ,
– un entier c 6= 1 tel que pgcd (s, c) = 1, et
– une fonction de hachage h.
La TPC calcule d tel que cd ≡ 1 (mod s) et β = αc (mod n). Puis la TPC rend
n, β, c, h et α publics, garde d secret, et enfin détruit p et q.
Pour préparer une paire de clés, Bob choisit un entier x au hasard comme clé
secrète et calcule sa clé publique y :
y = αx mod n
59
αs mod n = 1 et αu mod n 6= 1 pour u < s.
114
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Protocole 4.13 Un premier protocole concret implémentant l’équité véritable
Le protocole principal :
1. B → A : fcom , A, label , descr (m) , t, z
¨A
2. A → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m))
3. B → A : fack , A, label , t′
¨
Le protocole de recouvrement :
1. A → TPC : frec , A, B, label , m, descr (m) , t, z, SigA (fmsg , B, label , descr (m))
2. TPC → A : fack , A, label , t′
3. TPC → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m)) ¨
Le protocole principal
1. Lorsque Bob désire recevoir une information m d’Alice contre une signature de la description de m, il choisit aléatoirement un nombre r et calcule :
(
t = β r mod n,
′
ComSig(m ) =
z = cr + h (t, m′ ) x
où m′ = fack , A, label , descr (m). La paire (t, z) correspond à la signature
mise en gage : CNRR = (t, z). Bob envoie à Alice :
B → A : fcom , A, label , descr (m) , t, z
2. Alice va alors vérifier si descr (m) correspond à la description de l’information qu’elle attend, et si
′
αz ≡ t · y h(t,m )
(mod n)
(4.17)
Si ce n’est pas le cas Alice arrête le protocole, sinon Alice envoie m et
la preuve de non-répudiation à l’origine à Bob, composée d’une signature
traditionnelle (de Schnorr ou autre) qu’elle réalise sur la description du
message m (NRO = SigA (fmsg , B, label , descr (m))) :
A → B : fmsg , B, label , m , SigA (fmsg , B, label , descr (m))
3. Lorsque m est reçu et vérifié correct (par rapport à descr (m)), Bob calcule :
t′ = αr mod n
et l’envoie à Alice pour composer la signature finale. La paire NRR = (t ′ , z)
compose la signature finale :
B → A : fack , A, label , t′
Alice vérifie alors si
c
αz ≡ t′ · y h(t
′c
mod n,m′ )
(mod n)
4.6 Notre approche de l’équité véritable
115
et accepte alors la signature finale, de la même manière qu’elle sera acceptée par toute partie externe au protocole.
Le protocole de recouvrement
Si Bob n’envoie rien après le deuxième envoi ou si sa signature finale est invalide,
alors Alice initie le protocole de recouvrement avec la TPC afin de recouvrer la
signature finale du client.
1. Alice envoie, entre autres, à la TPC la signature mise en gage :
A → TPC : frec , B, label , m, descr (m) , t, z, SigA (fmsg , B, label , descr (m))
La TPC s’assure que le message m reçu correspond bien à la description
descr (m), elle vérifie la validité de la signature (t, z) basée sur descr (m),
en suivant l’équation 4.17, et elle contrôle la validité de la signature de
la preuve de non-répudiation à l’origine. Si toutes ces vérifications sont
réussies, la TPC calcule et envoie t′ = td mod n à Alice :
TPC → A : fack , A, label , t′
2. Puis envoie m ainsi que la preuve de non-répudiation à l’origine à Bob :
TPC → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m))
Comme précédemment, si un message reçu n’est pas conforme à ce qui est attendu ou si une signature n’est pas valide, l’acteur qui le détecte arrête le protocole (ou initie, si cela concerne Alice et si cela est possible, un recouvrement).
La sécurité
Nous avons déjà brièvement traité de la sécurité du point de vue d’Alice. En
effet, nous avons envisagé, en étudiant l’équité du protocole, le cas où Bob, après
avoir reçu l’information m voulue, n’envoie pas la signature finale adéquate.
Nous avons vu que dans ce cas Alice peut récupérer la signature de Bob avec
l’aide de la TPC. D’un autre côté, Bob ne peut créer un couple (t, z) qui n’est
pas une signature temporaire mais qui est acceptée par la fonction de vérification
4.17. En effet, si Bob choisit une valeur pour t, il doit résoudre un logarithme
discret modulo n pour obtenir z ; et réciproquement s’il fixe z, il doit inverser
la fonction de hachage h pour obtenir t.
Nous allons maintenant considérer la sécurité du point de vue de Bob.
Pour commencer, il faut s’assurer qu’il n’est pas possible de contrefaire une
signature mise en gage ou finale.
Remarquons que le schéma de signature mise en gage que nous proposons est
semblable au schéma de signature de Schnorr avec un modulus composite (les
116
Chapitre 4 : Non-répudiation avec tierce partie de confiance
opérations se font modulo une valeur résultant de la multiplication de nombres
premiers). L’usage d’un modulus composite ne diminue pas la sécurité du schéma
de signature. En effet, Bach [9] a montré que calculer un logarithme discret avec
un modulus composite est équivalent à factoriser le composite et à calculer le
logarithme discret sur chaque facteur premier du modulo initial.
Comme la valeur r utilisée dans la signature est aléatoire, cr dans z peut être
vu comme une valeur aléatoire r ′ choisie uniformément dans l’intervalle [1, p′ q ′ [,
′
et ce malgré la valeur c fixée et connue. Ainsi, t est égal à αr mod n et la paire
(t, z) constitue alors une signature de Schnorr avec un modulus composite. La
sécurité d’une telle signature de Schnorr avec un modulus composite est discutée
en détail, et montrée sûre, dans [58] par Poupard et Stern.
D’un autre côté, créer une signature finale uniquement à partir de la clé publique
et de signatures existantes, sans se baser sur la signature mise en gage, est au
moins aussi dur que de contrefaire une signature mise en gage. S’il est possible
de produire une telle signature (t′ , z), alors il est possible de créer la signature
mise en gage (t = t′ c mod n, z), ou plus généralement une signature de Schnorr
avec un modulus composite sur le message m′ (ce qui contredit la sécurité de la
signature étudiée dans [58]).
Il faut, ensuite, s’assurer qu’il n’est pas possible de convertir une signature mise
en gage en une signature finale sans connaître r ou d.
Pour calculer t′ , il faut connaître soit r (comme dans le cas du signataire) ou
d (comme lorsque la TPC réalise le conversion). Un falsificateur, ignorant r et
d, calculerait donc une signature finale (tˆ′ , ẑ) à partir d’une signature mise en
c
gage (t, z) telle que soit ẑ 6= z ce qui implique que tˆ′ 6= t, soit ẑ = z mais
c
avec tˆ′ 6= t. Cela signifie donc que l’on crée une signature de Schnorr avec un
c
modulus composite (t̂ = tˆ′ , ẑ) sur m′ depuis une autre signature de Schnorr
(t, z) sur le même message. Cependant, Poupard et Stern ont montré dans [58]
que créer une nouvelle signature depuis une signature existante sur un même
message est équivalent à produire une signature sur un message m depuis des
signatures connues sur d’autres messages. Ainsi, dans les deux cas, établir une
signature finale depuis (t, z) est équivalent à falsifier une signature de Schnorr
avec un modulus composite.
4.6.3
Notre second protocole concret
Nous proposons à présent une modification du protocole d’échange équitable
précédent telle que la signature temporaire mise en gage par Bob ne sera plus
universellement vérifiable et ne pourra être vérifiée que par Alice. Nous pensons
que cette propriété n’est pas indispensable, mais nous montrons ainsi que notre
protocole s’adapte aux différents cas existant dans la littérature ;
4.6 Notre approche de l’équité véritable
117
Protocole 4.14 Un second protocole concret implémentant l’équité véritable
Le protocole principal :
1. B → A : fcom , A, label , descr (m) , t, z
¨A
2. A → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m))
3. B → A : fack , A, label , t′
¨
Le protocole de recouvrement :
1. A → TPC : frec , B, label , m, descr (m) , s, t, z, SigA (fmsg , B, label , descr (m))
2. TPC → A : fack , A, label , t′
3. TPC → B : fmsg , B, label , m, SigA (descr (fmsg , B, label , m)) ¨
Les prémices
Une autorité de certification génère un entier n égal au produit de deux grands
nombres premiers forts. Elle choisit un générateur α de Z∗n , puis elle :
– choisit, aléatoirement dans l’intervalle ]1, φ(n)[, un d premier avec φ(n)
– calcule c tel que c · d ≡ 1 (mod φ(n))
La clé publique de l’autorité est : (n, α, c), sa clé secrète est d.
Pour chaque entité enregistrée auprès d’elle, la TPC choisit aléatoirement une
clé secrète x (qu’elle transmet confidentiellement à l’entité qui s’enregistre) et
−1
calcule la clé publique associée y = αx mod n.
Les clés secrètes d’Alice et Bob seront notées respectivement xA et xB . Les clés
publiques étant respectivement yA et yB .
Le protocole principal
1. Lorsque Bob désire recevoir une information m d’Alice contre une signature de la description de m, il choisit aléatoirement un nombre r, calcule
s = αcr mod n et :
(
cr mod n,
t = yA
′
ComSig(m ) =
z = xB (rc + h (s, m′ ))
où m′ = fack , A, label , descr (m). La signature temporaire de Bob est le
couple (t, z), qu’il envoie à Alice :
B → A : fcom , A, label , descr (m) , t, z
2. Alice va alors vérifier si descr (m) correspond bien à la description attendue, puis calcule :
s = txA mod n
et enfin elle vérifie si :
′
z
yB
≡ s · αh(s,m )
(mod n)
118
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Si ce n’est pas le cas, Alice arrête le protocole, sinon Alice envoie m et la
preuve de non-répudiation à l’origine à Bob :
A → B : fmsg , B, label , m , SigA (fmsg , B, label , descr (m))
3. Si m correspond à sa description, Bob calcule :
t′ = αr mod n
et l’envoie à Alice pour composer la signature finale (t′ , z) :
B → A : fack , A, label , t′
Alice vérifie alors si
c
z
yB
≡ t′ · αh(t
′c
mod n,m′ )
(mod n)
(4.18)
et accepte, le cas échéant, la signature finale de la même manière qu’elle
sera acceptée par toute partie externe au protocole.
Remarquons que la signature temporaire de Bob ne peut être vérifiée que par
Alice au moyen de sa clé secrète xA qui est utilisée pour calculer s à partir de
cr à αcr , sans connaître r. Toute autre entité,
t, permettant ainsi de passer de yA
ne connaissant ni xA ni r, ne peut évaluer αcr qui est nécessaire à la vérification
de la signature temporaire de Bob.
La signature finale (t′ , z) peut être universellement vérifiée. En effet le mécanisme de vérification (cf. 4.18) ne nécessite que des informations publiques : y B ,
α, c, m′ et n.
Le protocole de recouvrement
Si Bob n’envoie rien après le deuxième envoi ou si sa signature finale est invalide,
alors Alice initie le protocole de recouvrement avec la TPC afin de recouvrer la
signature finale du client.
1. Alice calcule s = txA mod n puis envoie, entre autres, à la TPC la signature mise en gage :
A → TPC : frec , B, label , m, descr (m) , s, t, z, SigA (fmsg , B, label , descr (m))
La TPC vérifie que le message m reçu correspond à la description descr (m)
et vérifie (cf. 4.18) la validité de la signature (s, t, z) à partir de descr (m)
ainsi que celle de la signature de la preuve de non-répudiation à l’origine.
Si toutes ces vérifications sont réussies, la TPC calcule et envoie
t′ = sd mod n
à Alice :
4.6 Notre approche de l’équité véritable
119
TPC → A : fack , A, label , t′
2. Puis envoie m ainsi que la preuve de non-répudiation à l’origine à Bob :
TPC → B : fmsg , B, label , m, SigA (descr (fmsg , B, label , m))
La sécurité
Les signatures utilisées dans ce deuxième protocole sont moins proches des signatures de Schnorr avec modulus composite que celles du protocole précédent.
Si nous posons t̃ = txA , r′ = crxA −1 et r′′ = xB cr ; alors les valeurs r ′ et r′′ ,
basées sur la valeur r aléatoire, peuvent être vues comme des valeurs aléatoires.
Nous avons donc une signature de Schnorr où t̃ et z ne sont pas basés sur la
même valeur aléatoire. Nous pensons cependant que la sécurité du schéma de
signature de Schnorr avec modulus composite ne dépend pas de l’égalité de ces
deux valeurs aléatoires ; elles ne permettent pas de retrouver les informations
secrètes permettant de produire une signature (xB et r). Ainsi, nous pensons
que le raisonnement réalisé lors de l’étude de la sécurité du protocole précédent
est valable pour les signatures utilisées dans ce protocole-ci.
4.6.4
Le protocole de non-répudiation
Nous allons à présent modifier le protocole générique d’échange équitable afin
de réaliser un protocole complet de non-répudiation.
Le protocole proposé suppose l’usage d’un canal réactif entre la TPC et, respectivement, Alice et Bob. De plus, un temps maximum d’attente est supposé
associé à chaque envoi du protocole principal.
Les preuves
La preuve partielle de non-répudiation à l’origine du message m est :
EOO = ComSig A (fNRO , B, label , h(c), h(k))
où fNRO indique le but de l’envoi, B indique que Bob est le récipiendaire et
label est le label associé à la session du protocole : label = h(m, k). Une session
du protocole est identifiée par le triplet (label , A, B).
La preuve temporaire de non-répudiation à la réception est :
EOR = ComSig B (fNRR , A, label , h(c), h(k))
Avant la réalisation du protocole, Alice et/ou Bob 60 communiquent avec la TPC
60
Si le schéma de signature choisi correspond à notre premier protocole concret implémentant l’équité véritable, seul Bob réalise les prémices. Si le protocole se base sur le second
protocole concret, Alice et Bob devront alors réaliser les prémices.
120
Chapitre 4 : Non-répudiation avec tierce partie de confiance
Protocole 4.15 Un protocole de non-répudiation respectant l’équité véritable
Le protocole principal :
1. A → B : fEOO , fsub , B, label , h(k), c, CKTPC (k) , EOO, sub ¨B
2. B → A : fEOR , A, label , EOR
3. A → B : fNRO , B, label , k, NRO
4. B → A : fNRR , A, label , NRR
¨
Le protocole de recouvrement :
(X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible)
1. X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO
2. TPC → A : fNRR , A, label , NRR
3. TPC → B : fNRO , B, label , k, NRO
¨
Le protocole d’abandon :
1. A → TPC : fabort , label , B, abort
2. TPC → A : fcon a , A, B, label , con a
3. TPC → B : fcon a , A, B, label , con a
¨
afin d’obtenir les clés nécessaires à la composition des signatures temporaires
(cf. 4.6.2 et 4.6.3).
La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la
TPC est :
sub = SigA (fsub , B, label , CKTPC (k))
La preuve de non-répudiation à l’origine est :
NRO = SigA (fNRO , B, label , h(c), h(k))
La preuve de non-répudiation à la réception est :
NRR = SigB (fNRR , A, label , h(c), h(k))
La preuve de non-répudiation à l’origine de la demande de recouvrement :
rec X = SigX (frec X , Y, label )
où X est soit Alice, soit Bob, et Y l’autre acteur cible.
La preuve de non-répudiation à l’origine de la demande d’abandon du protocole :
abort = SigA (fabort , B, label )
La preuve de non-répudiation à l’origine de la confirmation par la TPC de
l’abandon du protocole :
con a = SigTPC (fcon a , A, B, label )
4.6 Notre approche de l’équité véritable
121
Le protocole principal
1. Alice transmet à Bob un premier message contenant le résultat c du chiffrement Ck (m) du message m au moyen de la clé k :
A → B : fEOO , fsub , B, label , h(k), c, CKTPC (k) , EOO, sub
2. Bob vérifie les signatures d’Alice (EOO et sub) et envoie, si elles sont correctes, sa signature temporaire :
B → A : fEOR , A, label , EOR
3. Si la signature temporaire est valide (suivant l’une des méthodes de vérification précédemment développées, cf. 4.17 ou 4.18), Alice transmet la clé
k de déchiffrement :
A → B : fNRO , B, label , k, NRO
4. Si le message reçu est correct (toutes les informations attendues sont présentes, k correspond au h(k) mis en gage par Alice et la signature est
valide), Bob envoie sa signature finale :
B → A : fNRR , A, label , NRR
Le protocole de recouvrement
Bob peut, à tout moment après avoir reçu le premier envoi du protocole principal, si un message n’arrive pas dans les délais attendus, initier le protocole de
recouvrement. De même, Alice, après avoir reçu de Bob le deuxième envoi du
protocole principal, peut aussi initier le protocole de recouvrement (par exemple
si Bob ne réalise pas le quatrième envoi du protocole principal).
1. Le protocole est initié par Alice ou Bob, noté X, le deuxième acteur cible
étant noté Y :
X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO
2. Si le protocole d’abandon ou de recouvrement a déjà été réalisé 61 , la tierce
partie arrête le protocole.
Sinon, la TPC vérifie si les preuves de non-répudiation mises en gage sont
valides (sur base de la fonction de vérification des signatures) ; si la clé k
déchiffrée ne correspond pas à la clé k mise en gage par Alice au début du
61
La TPC retient, pour chaque session du protocole, si un abandon ou un recouvrement a
été initié.
122
Chapitre 4 : Non-répudiation avec tierce partie de confiance
protocole principal, la TPC peut envoyer un message d’abandon du protocole (celui envoyé au cours du protocole d’abandon), sinon elle extrait des
signatures mises en gage les signatures finales d’Alice et Bob et transmet
à Alice la preuve de non-répudiation à la réception :
TPC → A : fNRR , A, label , NRR
3. Elle transmet à Bob la clé k, déchiffrée, ainsi que la preuve de nonrépudiation à l’origine :
TPC → B : fNRO , B, label , k, NRO
Le protocole d’abandon
Si Alice ne reçoit pas le deuxième envoi dans les délais prévus, elle initie le
protocole d’abandon. Remarquons qu’Alice ne peut initier à ce moment le protocole de recouvrement, car il prévoit l’envoi de la preuve de non-répudiation à
la réception de c, EOR, qu’elle n’a pas encore reçu.
1. Alice envoie donc une requête d’abandon signée à la TPC :
A → TPC : fabort , label , B, abort
2. Si le protocole de recouvrement ou d’abandon n’a pas déjà été initié, la
TPC envoie à Alice une confirmation signée de l’abandon du protocole
(sinon, la TPC arrête le protocole d’abandon) :
TPC → A : fcon a , A, B, label , con a
3. Puis la TPC envoie le même message d’abandon à Bob :
TPC → B : fcon a , A, B, label , con a
Alice peut ne pas spécifier le bon B dans sa requête d’abandon, le vrai Bob ne
recevra donc pas la confirmation de la TPC au cours de la session du protocole
d’abandon. Cependant, comme nous le verrons, il pourra réaliser le protocole de
recouvrement.
L’équité
Théorème 4.51 Les derniers envois du protocole principal et du protocole de
recouvrement sont des points de forte complétude universels.
Preuve : Après ces deux envois, le message m est transmis et les preuves de
non-répudiation sont échangées.
¤
4.6 Notre approche de l’équité véritable
123
Théorème 4.52 Le dernier envoi du protocole d’abandon est un point de forte
complétude universel.
Preuve : Après le troisième envoi du protocole d’abandon, qui ne peut être
initié que par Alice, le protocole se termine alors qu’aucune preuve finale de
non-répudiation, ni le message n’ont été transmis. En effet, par l’hypothèse de
conservation, Alice ne réalisera le protocole d’abandon que si cela ne donne pas
d’avantage à Bob, et donc initiera le protocole d’abandon avant le troisième envoi. Ce protocole n’atteindra le troisième envoi que si Bob n’a pas préalablement
réalisé un recouvrement.
¤
Théorème 4.53 Le premier envoi du protocole principal est un point de forte
complétude pour Bob.
Preuve : Après avoir reçu le premier envoi d’Alice, si Bob arrête le protocole,
Alice n’ayant pas le EOR ne peut qu’arrêter le protocole (en initiant le protocole d’abandon). Ni Alice, ni Bob n’auront de preuve et le message m ne sera
pas transmis. Alice ne peut spontanément arrêter de prendre part au protocole
(sans exécuter le protocole d’abandon) car Bob peut réaliser un recouvrement
et obtenir le message m et la preuve de non-répudiation à l’origine.
¤
Théorème 4.54 Le protocole est fortement équitable.
Preuve : Après le premier envoi, le protocole principal peut s’arrêter, ou
le protocole d’abandon peut être initié par Alice, ou encore le protocole de
recouvrement peut être initié par Bob. Après le deuxième envoi, le protocole de
recouvrement peut être initié par Alice et Bob ; Alice a, quant à elle, toujours la
possibilité d’initier, sans risque de perte d’équité, le protocole d’abandon. Après
le troisième envoi, Alice et Bob ont tous deux la possibilité de lancer le protocole
de recouvrement, et enfin après le dernier envoi, le point de forte complétude
universel est atteint.
Après le premier envoi du protocole d’abandon, la tierce partie honnête enverra,
si aucun recouvrement n’a été réalisé, l’information d’abandon à Alice et Bob,
atteignant ainsi le point de forte complétude universel de ce protocole.
Après le premier envoi du protocole de recouvrement, la tierce partie, honnête,
envoie les informations attendues à Alice et Bob, si aucun abandon ni de recouvrement n’ont été préalablement réalisés, et le point de forte complétude
universel du protocole de recouvrement est atteint.
¤
La fin du protocole
Théorème 4.55 Le protocole est temporellement fini.
Preuve : Trois cas de figure sont à considérer. Soit le protocole principal se
termine naturellement dans un temps fini. Soit Alice réalise le protocole d’abandon et Alice et Bob sont avertis de l’abandon du protocole par un message signé
124
Chapitre 4 : Non-répudiation avec tierce partie de confiance
par la TPC transitant au travers d’un canal réactif ; le protocole se termine
donc en un temps fini. Soit encore le protocole de recouvrement est réalisé par
Alice ou Bob ; dans ce cas Alice et Bob reçoivent les informations et les preuves
attendues aussi en un temps fini, grâce aux canaux réactifs. Nous devons encore considérer le cas suivant : supposons qu’Alice initie, après le premier envoi
du protocole principal, le protocole de recouvrement en indiquant à la TPC un
mauvais nom de récipiendaire (B̃ plutôt que B). Bob ne recevra donc rien de
la TPC. Cependant, Bob peut à tout moment réaliser avec succès un protocole
de recouvrement, puisque le protocole d’abandon ne correspond pas à l’instance
du protocole en cours qui est identifié par le triplet (label , A, B). Le protocole
se termine donc pour Bob, dans ce cas, au cours du protocole de recouvrement.
¤
Les disputes
Si Bob affirme avoir reçu le message m d’Alice, il présente au juge la preuve de
non-répudiation à l’origine du message m, NRO, qui, si la preuve est correcte
(la signature et le format de la preuve sont corrects), accepte l’affirmation de
Bob.
De même si Alice peut présenter une preuve de non-répudiation à la réception
de m, NRR, correcte, le juge reconnaîtra qu’elle a envoyé avec succès m à Bob.
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Bob, elle peut exécuter avec lui un recouvrement et envoyer un message d’abandon à Alice. Cette dernière détectera directement le
méfait puiqu’elle est seule habilitée à réaliser un abandon. La TPC peut aussi,
lorsqu’Alice réalise un abandon, contacter Bob pour réaliser un recouvrement,
puis envoyer (ou non) à Alice les informations de recouvrement (si elle envoie les
information à Alice, le protocole reste équitable et Alice ne détecte rien, sinon
Alice se rendra compte de l’alliance lorsque Bob exhibera sa preuve). Enfin, la
situation est semblable si la tierce partie s’allie avec Alice.
La viabilité
Théorème 4.56 Si Alice et Bob se savent mutuellement honnêtes, le protocole
est viable.
Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et, respectivement,
Alice et Bob, le protocole peut être prouvé viable. En effet, Alice et Bob étant
honnêtes, soit le protocole principal s’exécute jusqu’à son terme, soit le protocole
de recouvrement est exécuté par Alice ou Bob. Ce protocole de recouvrement,
exécuté dans un cadre honnête, se terminera avec succès grâce aux canaux réactifs utilisés. Remarquons que si le deuxième envoi du protocole principal n’arrive
pas à Alice, cette dernière plutôt que d’initier le protocole d’abandon, attendra
4.7 Conclusion
125
(Alice et Bob étant honnêtes et le sachant) que Bob réalise le protocole de recouvrement pour recevoir de la TPC les informations nécessaires. Après le deuxième
envoi, Alice et Bob peuvent réaliser le recouvrement.
¤
Si Alice et Bob sont honnêtes, mais ignorent qu’ils le sont tous les deux, alors si
le premier message de Bob du protocole principal n’arrive pas assez vite, Alice
initiera le protocole d’abandon, ce qui va à l’encontre de la propriété de viabilité
qui, si elle est vérifiée, impose la réussite de l’échange lorsque les acteurs sont
honnêtes. Il faut donc alors que le canal de communication entre Alice et Bob
soit opérationnel : ainsi le premier message du protocole sera reçu par Alice, qui
n’initiera pas le protocole d’abandon, et seul le protocole principal sera dès lors
exécuté.
Remarques
Le protocole proposé étant un protocole de non-répudiation brut, aucun mécanisme de confidentialité n’est prévu. De même, par la présence des noms des
acteurs cibles dans les messages, aucun anonymat n’est assuré. En cas de besoin,
des mécanismes additionnels assurant la confidentialité et l’anonymat peuvent
être greffés sur le protocole.
4.7
Conclusion
Au cours de ce chapitre, nous avons suivi l’évolution des protocoles de nonrépudiation faisant usage de TPC. Nous avons présenté de nouveaux protocoles
d’échange, dont deux protocoles de non-répudiation utilisant, en cas de besoin,
une TPC, respectant ou non la propriété d’équité véritable.
Dans le chapitre suivant, nous étudions les protocoles de non-répudiation ne
requérant pas de TPC afin d’assurer le respect de l’équité.
Chapitre 5
Non-répudiation sans tierce
partie de confiance
5.1
Introduction
Nous allons à présent nous intéresser aux protocoles de non-répudiation ne faisant pas usage d’une tierce partie de confiance (TPC) pour assurer l’équité.
Aucun protocole de non-répudiation n’a été jusqu’ici proposé dans ce contexte.
Des protocoles d’échange équitable sans TPC existent et seront abordés, mais
la plupart d’entre eux imposent des contraintes de réalisation peu réalistes. Un
protocole d’échange équitable de signatures digitales sur un contrat, levant la
plupart de ces contraintes, a été proposé au milieu des années 80 [15], mais
n’est, malheureusement, pas utilisable comme tel pour réaliser un protocole de
non-répudiation. Nous présenterons aussi des résultats existants basés sur la
cryptographie dite « faible » dans le contexte des protocoles d’échange. Nous
proposerons alors un nouveau type de protocole de non-répudiation sans tierce
partie de confiance où l’équité sera respectée de manière probabiliste.
5.2
L’approche calculatoire
Historiquement1 , bien avant l’apparition des techniques vues au chapitre précédent, des protocoles permettant l’échange d’informations sans TPC ont été
proposés. Malheureusement, ces premières techniques font de fortes hypothèses
sur la puissance de calcul des acteurs cibles, comme nous allons le voir.
Le principe de base de ces méthodes est que, si Alice et Bob désirent s’échanger équitablement deux informations (supposées de même taille), ils peuvent
transmettre tour à tour et bit par bit ces informations et cela jusqu’à ce que
le dernier bit de chaque information soit envoyé ou jusqu’à ce qu’un des deux
acteurs cibles ne prenne plus part au protocole. La difficulté, en terme de calcul
pour chaque acteur cible, de retrouver le reste de l’information attendue décroît
1
Dès la première moitié des années quatre-vingts.
128
Chapitre 5 : Non-répudiation sans tierce partie de confiance
au fur et à mesure que le protocole avance et que les informations sont petit à
petit dévoilées2 .
Si le protocole est arrêté avant l’émission du dernier bit de chaque information,
par Alice par exemple, et ce avant qu’elle n’envoie le bit suivant de l’information
attendue par Bob, alors si Alice et Bob ont la même puissance de calcul, il faudra
à Alice deux fois moins de temps qu’à Bob pour retrouver les bits restants.
Tedrick [69, 70], en 1983 et 1984, a fait remarquer qu’il est possible de ne transmettre qu’une fraction d’un bit. Plutôt que de transmettre tour à tour un bit
de chaque information, Alice et Bob envoient tour à tour un string de n bits
différent du string composé par les n bits correspondant de l’information à
transmettre. Si Alice (par exemple) arrête le protocole, après avoir reçu i fois
un string de n bits différent du string des n bits correspondant de l’information,
1
il lui prendra 1 − 2n −i−1
du temps qu’il faudra à Bob pour retrouver les n bits
attendus. Lorsque l’avantage d’Alice (dans ce cas-ci) devient trop grand (i se
rapproche de 2n ), un (n + 1)ième bit est ajouté et le protocole continue sur n + 1
bits, et ainsi de suite.
Que ce soit en échangeant un bit ou une fraction d’un bit à chaque échange,
il faut aussi, dans une certaine mesure, être capable de détecter une tentative
de tricherie. Diverses méthodes ont été proposées pour empêcher les acteurs
de tricher. Nous pouvons citer historiquement l’utilisation du problème de la
prise de racine carrée modulo un composite [18, 69]. Mais la méthode la plus
générique, proposée en 1985 par Even et al. [35], se base sur la technique des
transferts oublieux3 .
Définition 5.1 Un protocole de transfert oublieux pour Alice, Bob et un
message M, OT (A, B, M ), est tel que si Alice suit le protocole, la probabilité
que Bob obtienne M vaut 21 et, dans le cas où il n’obtient pas M , il ne peut
extraire aucune information sur M de ce qu’il reçoit. Si Alice et Bob suivent
le protocole, la probabilité qu’Alice devine si Bob a reçu le message M vaut
aussi 12 . De plus, si Alice triche (en tentant de diminuer la probabilité que Bob
obtienne M ou en tentant d’augmenter la probabilité de deviner si Bob a obtenu
M ) alors Bob peut détecter une telle tentative de tricherie avec une probabilité
¤
≥ 21 .
Définition 5.2 Un protocole de transfert oublieux d’un message parmi
deux, OT 12 (A, B, M1 , M2 ) est un protocole au cours duquel Bob reçoit d’Alice
un message parmi deux messages possibles, sans savoir lequel des deux messages
est transmis. Un OT 12 (A, B, M1 , M2 ) est tel que, si Alice suit le protocole, alors
Bob obtient soit M1 , soit M2 avec une probabilité égale à 12 alors qu’aucune
information n’est obtenue sur l’autre message. Si Alice et Bob ont suivi le protocole, la probabilité pour Alice que Bob ait obtenu M1 vaut 21 . Si Alice triche,
en tentant d’augmenter la probabilité de deviner quel message a été obtenu par
Bob, alors Bob peut détecter une telle tentative de tricherie avec une probabilité
¤
≥ 12 .
2
3
Nous supposons l’absence de redondances dans les messages ainsi transmis.
oblivious transfer en anglais.
5.2 L’approche calculatoire
129
Notons que les transferts oublieux d’un message parmi deux sont une généralisation des transferts oublieux « simples », puisque nous retrouvons ces derniers
si un des deux messages, M1 ou M2 , est un message standard connu de tous.
Les auteurs de [35] proposent d’utiliser les transferts oublieux d’un message
parmi deux de la manière suivante. Dans un premier temps, Alice et Bob choisissent chacun n couples de valeurs secrètes et s’échangent un élément de chaque
couple au moyen d’un protocole de transfert oublieux d’un message parmi deux
(où les deux messages du protocole sont les deux valeurs d’un couple). À ce
stade, ils ignorent quels morceaux de chaque couple de message l’autre a obtenu. La connaissance des deux messages d’un couple permet de reconstruire un
secret4 . Ensuite, chacune des 2n valeurs qu’ils ont chacun choisies est dévoilée
bit à bit, alternativement par Alice et Bob.
La probabilité qu’Alice, par exemple, devine quelles valeurs ont été reçues par
Bob au cours de la première partie du protocole vaut 21n . Si le protocole s’arrête
avant la fin avec, par exemple, Bob ayant reçu un bit de plus qu’Alice, Alice
aura deux fois plus de travail que Bob pour obtenir une paire complète.
Les auteurs ont aussi proposé une implémentation de leur protocole de transfert
oublieux d’un message parmi deux sur base du cryptosystème RSA 5 .
Soient eA , dA et nA respectivement les clés publique, secrète et le modulus
composite d’Alice associé au cryptosystème RSA. Un OT 12 (A, B, M0 , M1 ) peut
être réalisé ainsi :
1. Alice choisit deux messages m0 et m1 (distincts des messages M0 et M1 )
et les transmet à Bob :
A → B : m0 , m1
2. Bob choisit aléatoirement un r binaire, ainsi qu’une valeur k, puis calcule
q = (k eA + mr ) mod nA où k eA mod nA correspond au chiffrement de k
pour Alice. Bob envoie q à Alice :
B→A:q
3. Alice calcule k ′ i = ((q − mi ) mod nA )dA mod nA pour i = 0 et i = 1, où
(. . . )dA correspond à une opération de déchiffrement (qui ne peut être)
réalisée (que) par Alice. Elle choisit aléatoirement un s binaire et calcule
(sur base des message M0 et M1 cette fois) :
(
x0 = (M0 + k ′ s ) mod nA
x1 = (M1 + k ′ s⊕1 ) mod nA
4
Alice, par exemple, détermine une clé k secrète qu’elle désire échanger contre la clé secrète
de Bob. Elle calcule n couples (ai , an+i ), où 1 ≤ i ≤ n, de telle façon que an+i = k ⊕ ai . Ainsi
la connaissance d’un couple complet permet de retrouver la clé k.
5
Une description générique de ce protocole ne se basant que sur l’hypothèse de l’existence
des cryptosystèmes à clé publique se trouve dans [35].
130
Chapitre 5 : Non-répudiation sans tierce partie de confiance
Elle envoie alors x0 , x1 et s à Bob :
A → B : x0 , x1 , s
Bob retrouvera le message Mr⊕s en calculant (xr⊕s − k) mod nA , car k ′ r⊕s = k.
Alice a une chance sur deux de deviner la valeur de r et d’ainsi connaître k. Elle
peut, dans ce cas, construire un xr⊕s qui n’est basé ni sur M0 , ni sur M1 .
5.3
L’approche probabiliste de la signature digitale
de contrat
Dans le contexte de l’échange de signatures digitales sur un contrat, Ben-Or et
al. [15] proposent, en 1990, d’échanger non pas les signatures directement mais
des privilèges. Un acteur est plus privilégié qu’un autre lorsqu’il est plus à même
de convaincre un juge que le contrat est signé par tous les acteurs cibles.
Le protocole proposé est tel que tour à tour un des deux acteurs cibles impliqués
dans le protocole est privilégié alors que l’autre ne l’est pas. Insistons sur le fait
que le privilège accordé à un acteur ne peut mener qu’à forcer le juge à déclarer
le contrat signé par les deux acteurs cibles.
Les prémices
Le protocole concerne un contrat C qu’Alice et Bob doivent signer. Alice et Bob
conviennent d’un moment D auquel le protocole doit être terminé et se mettent
d’accord sur celui qui va commencer le protocole. Supposons que ce soit Alice
qui débute le protocole.
Alice commence par choisir une probabilité v, non nulle, qu’elle considère comme
négligeable pour initier le protocole. Elle choisit alors une valeur α > 1. Bob
choisit de la même façon β > 1. Enfin les valeurs λA et λB sont initialisées à 0.
Aucune de ces valeurs n’est secrète.
Le protocole
Soit p la probabilité mentionnée dans le dernier message reçu par Alice. Si aucun
message n’a encore été reçu, p vaut 0. Alice vérifie si p ≥ λA . Si ce n’est pas le cas
elle arrête le protocole, sinon elle calcule λA = max(v, min(1, pα)). Elle envoie
alors à Bob le message « Avec une probabilité λA , le contrat C sera valide »
qu’elle signe digitalement.
Bob, au moyen de la probabilité p mentionnée dans le dernier message qu’il a
reçu, vérifie si p ≥ λB ; si ce n’est pas le cas, Bob arrête le protocole, sinon il
calcule λB = min(1, pβ). Il envoie à Alice le message « Avec une probabilité λB ,
le contrat C sera valide » qu’il signe digitalement.
5.3 L’approche probabiliste de la signature digitale de contrat
131
Si tout se passe bien, le protocole se poursuit, par envois successifs d’Alice et
de Bob comme décrit ci-dessus, jusqu’au moment D ou jusqu’à ce qu’Alice et
Bob aient envoyé ou reçu le message signé « Avec une probabilité 1, le contrat
C sera valide »
Si pour une raison ou une autre le contrat n’est pas complété au moment D,
chaque partie peut invoquer le juge.
Les disputes
Le juge ne fait rien avant D. Après D, il examine le message qu’il reçoit du
plaignant X : « Avec une probabilité p le contrat C sera valide » signé digitalement par Y . Le juge vérifie alors la signature de Y et, si elle est valide, il
s’assure qu’il n’est pas déjà intervenu à propos de ce contrat C. Si le juge n’a
pas encore été sollicité à propos de ce contrat, il choisit aléatoirement suivant
une distribution uniforme dans l’intervalle [0, 1] une valeur ρ C . Par contre, si le
contrat a déjà été examiné par le juge, il retrouve la valeur ρC déjà utilisée (un
juge ne tire un ρC qu’une seule fois par contrat, sinon un plaignant pourrait
le solliciter à répétition jusqu’au moment où le juge tire une valeur validant le
contrat). Si p ≥ ρC , le juge déclare les acteurs cibles liés au contrat C et le
notifie à ces derniers. Sinon, il les avertit qu’un message concernant le contrat
C a été examiné mais que la probabilité contenue dans ce message était trop
petite pour que le contrat soit considéré comme valide.
Remarques
Si ne fut-ce qu’une partie X incrémente d’une quantité constante à chaque tour
du protocole sa probabilité λX , alors le protocole se terminera avec succès (si
D n’est pas trop proche), même si l’autre partie Y n’incrémente jamais (ni ne
décrémente) sa probabilité λY .
Rappelons encore que le privilège d’Alice, par
ter au juge un message signé par Bob le liant
plus grande que celle contenue dans le dernier
Cependant la validité du contrat sera toujours
exemple, est de pouvoir présenau contrat avec une probabilité
message signé envoyé par Alice.
liée aux deux acteurs cibles.
Si le juge décide qu’un message ne contient pas une probabilité assez élevée, cela
n’empêche pas Alice ou Bob de présenter au juge un autre message avec une
probabilité plus élevée qui pourrait le faire changer d’avis. Cela n’entre pas en
contradiction avec le fait que le juge ne choisit qu’une seule fois la probabilité
à laquelle sont comparées les probabilités émises par Alice et Bob. En effet, le
juge ne rend pas public la valeur ρC qu’il a choisie.
Il est nécessaire que le juge, s’il est invoqué par Alice ou Bob, informe les deux
parties de sa décision ; car si la valeur choisie par le juge se trouve entre la
dernière probabilité émise par Alice et la dernière probabilité émise par Bob et
que le juge ne transmet sa décision qu’à l’acteur cible le consultant, il répondra
au premier qu’ils sont tous les deux liés au contrat alors qu’il répondra au second
qu’aucun des deux n’est lié au contrat.
132
5.4
Chapitre 5 : Non-répudiation sans tierce partie de confiance
La mise en gage faible
Syverson [68] propose, en 1998, de réaliser des protocoles d’échange en envoyant
les informations chiffrées accompagnées de la mise en gage de la clé de déchiffrement. Cette mise en gage sera cependant particulière dans le sens où elle sera
en pratique cassable si le récipiendaire investit une quantité de temps connue
sur base d’une puissance de calcul connue. Cette mise en gage est dite faible 6 .
Une fonction w réalisant une mise en gage faible respecte :
1. la résistance à la seconde préimage : étant donné x, il doit être calculatoirement infaisable de trouver x′ 6= x tel que w(x) = w(x′ ).
2. la résistance faible à la préimage : pour la plupart des valeurs de y connues
et produites par w, il doit être modérément7 difficile de calculer un x tel
que y = w(x).
3. la facilité de calcul : connaissant x et y, il doit être facile de vérifier si
y = w(x).
Au moyen d’une séquence de calcul, qui est telle qu’un calcul de cette séquence
nécessite le résultat du calcul précédent, l’auteur définit aussi les mises en gage
temporaires qui respectent la propriété de résistance à la deuxième préimage
mais où la propriété de résistance faible à la préimage est remplacée par la
résistance temporaire à la préimage où pour toute valeur y connue et produite
par w, trouver un x tel que y = w(x) doit nécessiter une séquence de calcul dont
la longueur se trouve dans des bornes spécifiées.
Syverson ne propose pas de méthode pratique pour réaliser une mise en gage
faible, mais propose une méthode pratique, inspirée de [62], pour réaliser une
mise en gage temporaire. Pour commencer le message m est chiffré, classiquement, au moyen de la clé k. Puis une valeur entière aléatoire et connue de tous,
est mise au carré modulo un composite, de manière répétée. Le résultat de ces
mises au carré sera utilisé comme clé pour chiffrer la clé k. Le chiffré de k ainsi
que le nombre de mises au carré forment w(k). Pour retrouver k à partir de son
chiffré, il est nécessaire de réaliser toutes les mises au carré. Ces opérations ne
semblent pas être parallélisables. Connaissant la puissance de calcul de l’acteur
réalisant ces mises au carré, le temps de calcul peut être prévu.
L’auteur parle d’échange rationnel plutôt que d’échange équitable lorsqu’à chaque
envoi il doit être dans l’intérêt des acteurs de continuer le protocole.
5.4.1
Un protocole d’échange rationnel
Le protocole décrit ci-dessous permet l’échange d’un message m envoyé par Alice
contre un accusé de réception transmis par Bob. Les signatures utilisées sont
des signatures avec recouvrement de l’information signée (voir le glossaire).
6
weakly secret bit commitment en anglais.
La complexité du calcul permettant de retrouver un x tel que y = w(x) doit être telle que
le coût, basé sur la quantité de temps à investir étant donné la puissance de calcul disponible,
soit trop important par rapport à la valeur de l’information x obtenue.
7
5.4 La mise en gage faible
133
Protocole 5.1 Le protocole d’échange rationnel de Syverson
f A (descr(m), Ck (m) , w(k))
1. A → B : m1 = Sig
f B (ack, m1 )
2. B → A : m2 = Sig
f A (k, m2 )
3. A → B : Sig
1. Alice prépare, puis envoie à Bob, un message m1 composé de sa signature
sur la description du message m qu’elle désire envoyer à Bob, le chiffré
de ce message au moyen de la clé de session k, ainsi que la mise en gage
temporaire de la clé k au moyen de la fonction w :
f A (descr(m), Ck (m) , w(k)).
m1 = Sig
A → B : m1
2. Si le message m1 est correct (la signature est valide et la description correcte et les deux chiffrés présents), Bob produit et envoie à Alice le message m2 qui est sa signature d’un accusé de réception et du message m1 ,
f B (ack, m1 ).
m2 = Sig
B → A : m2
3. Alice vérifie le message m2 reçu et, s’il est correct (la signature est correcte et contient l’accusé de réception et le message m1 ), envoie à Bob sa
signature sur la clé k et le message m2 :
f A (k, m2 )
A → B : Sig
Un tel protocole est utile si l’information m à envoyer a peu de valeur ; ainsi,
après le premier envoi, le temps nécessaire et/ou le coût de calcul pour casser
la fonction w et retrouver m peuvent être trop importants.
Si Alice envoie m′ (6= m prévu) chiffré ou une fausse clé k au premier message,
Bob retrouvera la clé émise après un certain temps et déchiffrera le message
chiffré reçu. Il pourra ainsi prouver sur base de la signature d’Alice que cette
dernière a envoyé un message m′ .
Par contre, remarquons que rien n’oblige Alice à réaliser le troisième envoi et
donc à émettre la clé k. Cette clé sera alors retrouvée après un certain temps
par Bob, qui aura investi un temps et un coût qui dépréciera, éventuellement
complètement, m.
Il faut donc non seulement que le message m n’ait pas trop de valeur, mais
aussi qu’Alice ait une raison de réaliser le dernier envoi. L’auteur indique que si
Alice est une commerçante, ne pas envoyer k de manière récurrente ruinerait sa
réputation et donc son affaire.
Nous ne partageons pas cette analyse car, en suivant le raisonnement qu’Alice
n’a pas intérêt à tricher, il n’est pas nécessaire de mettre en œuvre de tels
mécanismes. Un protocole plus simple pourrait, dans le même esprit, être réalisé
134
Chapitre 5 : Non-répudiation sans tierce partie de confiance
au cours duquel Bob commence par envoyer un accusé de réception sur un
message qu’il ne recevra que par la suite, considérant qu’Alice n’a pas intérêt
à tricher. Aucun mécanisme de mise en gage n’est alors nécessaire, il suffit
d’accepter de considérer Alice comme une partie de confiance.
5.4.2
Un protocole d’échange équitable
Alice et Bob désirent s’échanger deux informations, respectivement i A et iB .
Les signatures utilisées sont aussi des signatures digitales avec recouvrement de
l’information signée.
Protocole 5.2 Le protocole d’échange équitable de Syverson
f A (descr(iA ), Ck (iA ) , w1 (k1 ))
1.
A → B : m1 = Sig
1
f B (descr(iB ), Ck (iB ) , w2 (k2 ), m1 )
2.
B → A : m2 = Sig
2
..
.
f A (w2n (k1 ), m2n )
2n+1. A → B : m2n+1 = Sig
f B (w2n+1 (k2 ), m2n+1 )
2n+2. B → A : m2n+2 = Sig
Alice et Bob utiliseront au cours du protocole une succession de fonctions de
mise en gage temporaire wi telles que chaque fonction utilisée est cassable plus
facilement (plus rapidement) que la précédente.
1. Alice prépare un message m1 signé qui contient la description de iA , iA
chiffré au moyen de la clé de session k1 et la mise en gage temporaire
f A (descr(iA ), Ck (iA ) , w1 (k1 )), puis Alice envoie ce
w1 (k1 ), m1 = Sig
1
message m1 à Bob :
A → B : m1
2. Après la réception d’un m1 correct (signature valide, description valide
et présence des chiffrés) Bob construit m2 constitué de sa signature sur
la description de iB , le chiffré de iB au moyen de la clé de session k2 ,
la mise en gage de k2 au moyen de la fonction w2 et le message m1 ,
f B (descr(iB ), Ck (iB ) , w2 (k2 ), m1 ). Bob envoie alors m2 à Alice :
m2 = Sig
2
B → A : m2
Puis, pour 1 ≤ i ≤ n,
2i + 1. Alice envoie à Bob un message signé contenant w2i (k1 ) ainsi que le
dernier message signé reçu de Bob :
f A (w2i (k1 ), m2i )
A → B : m2i+1 = Sig
5.4 La mise en gage faible
135
2i + 2. Bob envoie à Alice le message correspondant à Alice :
f B (w2i+1 (k2 ), m2i+1 )
B → A : m2i+2 = Sig
Par exemple [68], si Alice et Bob s’échangent deux informations qui perdent
toutes deux leur valeur après trois jours, le protocole peut être configuré de
manière à ce que le premier envoi contienne une mise en gage qui soit cassable
par Bob en quatre jours, un second envoi dont la mise en gage est cassable
par Alice en un jour, un troisième envoi cassable par Bob en quatre heures,
un quatrième envoi cassable par Alice en quarante minutes, un cinquième envoi
cassable par Bob en une minute et un sixième où la clé est révélée à Alice.
Les disputes
Alice (par exemple) peut affirmer auprès d’un juge que le protocole a été arrêté
par Bob avant son aboutissement, après qu’elle ait réalisé le iième envoi (Bob
n’aurait pas envoyé le (i + 1)ième message). Alice présente alors au juge les i premiers messages. Le recours de Bob si cette affirmation est fausse est de présenter
le (i + 2)ième message qu’il aurait reçu d’Alice.
5.4.3
Remarques
Nous avons déjà mis en évidence les aspects de confiance que Bob doit porter à
Alice au cours du premier protocole. Cependant, indépendemment de la valeur
de l’information que Bob a reçue d’Alice, la signature de Bob sur l’accusé de
réception est bien une preuve de non-répudiation à la réception sur le message
m. Bob a bien reçu ce message, qu’Alice ait envoyé ou non la clé de déchiffrement
k1 . De même, Bob possède la signature d’Alice sur le message m chiffré et sur la
mise en gage temporaire de k1 , et donc il possède une preuve de non-répudiation
à l’origine de m.
Enfin, au cours du second protocole il existe toujours un moment où un acteur cible, arrêtant le protocole, reçoit un message déchiffrable en utilisant des
ressources impliquant un coût inférieur à la valeur de l’information à obtenir,
alors que l’autre acteur devrait investir des moyens d’un coût supérieur à celui
de l’information qu’il obtiendrait. En ce sens, la propriété d’équité n’est pas
respectée. De plus, le processus de gestion de dispute est tel que si Bob reçoit le
iième message, qui est le premier dont le coût nécessaire pour en extraire la clé
k1 est inférieur au coût de iA , alors Bob peut arrêter le protocole et déclarer au
juge qu’Alice a arrêté prématurément le protocole lors de l’envoi i − 1. Alice ne
pourra nier cette affirmation : elle ne peut en effet présenter le (i + 1) ième envoi
(provenant de Bob), le juge confirmera donc la version de Bob.
136
5.5
Chapitre 5 : Non-répudiation sans tierce partie de confiance
Notre protocole probabiliste de non-répudiation
Nous présentons ici un nouveau type de protocole sans TPC [52]. Nous décrirons dans un premier temps un protocole générique, puis nous présenterons un
protocole concret basé sur ce protocole générique.
Le but de notre protocole est de respecter la propriété d’équité, mais de manière probabiliste. Nos protocoles ne sont basés sur aucune hypothèse quant au
comportement des acteurs cibles, contrairement à l’approche optimiste. Aussi,
contrairement à l’approche de Syverson, l’équité est assurée (de manière probabiliste) quelle que soit la valeur du message. De plus, le protocole ne doit être
paramétré qu’en fonction de la puissance de calcul du plus puissant des deux
acteurs cibles (et non des deux acteurs cibles).
5.5.1
Le protocole générique
Nous proposons un protocole itératif tel qu’à chaque itération, mis à part la
dernière, aucun acteur n’est plus privilégié que l’autre. Comme nous allons le
voir, Alice n’aura aucun intérêt à arrêter le protocole avant sa fin. De même,
si Bob arrête le protocole avant le dernier couple d’envois, son gain sera nul.
Le seul moyen pour Bob d’obtenir le message qu’Alice veut lui envoyer sans en
accuser réception (sans envoyer une preuve de non-répudiation à la réception)
est de deviner le nombre d’itérations du protocole. Ce nombre d’itérations est
choisi aléatoirement et secrètement par Alice.
À chaque itération du protocole, la probabilité que Bob obtienne le message et la
preuve de non-répudiation à l’origine sans envoyer la preuve de non-répudiation
à la réception sera plus petite ou égale à une quantité notée ε.
Protocole 5.3 Un protocole générique sans tierce partie de confiance
1.
A → B : fEOO 1 , B, label , 1, g1 (m), EOO 1 ¨
2.
B → A : fEOR1 , A, label , 1, EOR 1
¨
..
.
2n-1.
2n.
A → B : fEOO n , B, label , n, gn (m), EOO n
B → A : fEORn , A, label , n, EOR n
P♦
¨
Les prémices
Alice, qui désire envoyer le message m à Bob, commence par choisir aléatoirement, suivant une distribution géométrique8 (par exemple), un nombre n qui déterminera le nombre d’itérations du protocole. Cette valeur n est gardée secrète
par Alice et ne devra pas pouvoir être déduite par Bob au cours du protocole.
8
Une distribution géométrique est ici proposée afin d’éviter une situation où une borne
supérieure au nombre de tours possibles du protocole est connue.
5.5 Notre protocole probabiliste de non-répudiation
137
Alice choisit alors n fonctions gi : M → M où M est l’espace des messages
clairs.
Les preuves
Au cours du protocole les preuves de non-répudiation suivantes sont générées.
La preuve de non-répudiation à l’origine du résultat de l’application de la fonction gi sur le message m :
EOO i = SigA (fEOO i , B, label , i, gi (m))
où fEOO i indique le but du message (à savoir apporter la preuve de nonrépudiation à l’origine) et où label dépend du message m et identifie la session
du protocole en cours.
Semblablement, la preuve de non-répudiation à la réception du résultat de l’application de la fonction gi sur le message m est :
EOR i = SigB (fEORi , A, label , i, gi (m))
où fEORi indique que le but du message est d’apporter la preuve de nonrépudiation à la réception.
La preuve de non-répudiation à l’origine du message m est :
NRO = {EOO i | i = 1, . . . , n}
La preuve de non-répudiation à la réception du message m est :
NRR = {EOR i | i = 1, . . . , n}
Le protocole générique
Si Alice ou Bob reçoivent un envoi incorrect (signature incorrecte ou information
manquante), ils arrêtent le protocole.
1. Alice envoie alors à Bob la fonction g1 appliquée à m :
A → B : fEOO 1 , B, label , 1, g1 (m), EOO 1
2. Bob répond alors par un accusé de réception signé de ce premier envoi :
B → A : fEOR1 , A, label , 1, EOR 1
..
.
138
Chapitre 5 : Non-répudiation sans tierce partie de confiance
2n − 1. Alice envoie à Bob la fonction gn appliquée à m :
A → B : fEOO n , B, label , n, gn (m), EOO n
2n.
Bob répond par le nième accusé de réception :
B → A : fEORn , A, label , n, EOR n
Une fonction F, M × · · · × M → M, publiquement connue, est alors appliquée
aux valeurs produites par les n fonctions gi . Cette fonction publique doit être
telle que
F(g1 (m), . . . , gn−1 (m), gn (m)) = m
Il est important que la fonction F ne soit évaluable que connaissant toutes les
valeurs produites par les n fonctions gi ; aucun calcul intermédiaire réalisé sur
base de la connaissance d’une partie des valeurs produites par les fonctions g i
ne doit pouvoir aider à l’évaluation de m.
Si Bob ne répond pas directement aux messages d’Alice en envoyant la preuve
EOR i attendue, Alice supposera que Bob tente de tricher, en tentant de retrouver m au moyen des valeurs déjà reçues, et dès lors elle arrête le protocole (en
n’envoyant pas la valeur produite par la fonction suivante). Le protocole nécessite donc que l’application de la fonction F aux valeurs déjà reçues (de façon
à se rendre compte si on à déjà atteint le dernier tour, et dès lors éviter d’envoyer le dernier accusé de réception) prenne plus de temps que la transmission
d’un message fEORi , A, l, i, EOR i par Bob. Il doit être assuré à Alice que Bob ne
puisse réaliser l’application de F sur les valeurs reçues entre deux transmissions.
Bob, s’il triche, va tenter de deviner quel est le dernier message envoyé par Alice
afin de la priver de la preuve de non-repudiation à la réception correspondante.
Le choix de la fonction F est donc basé sur la puissance de calcul de Bob.
Nous devons déterminer des délais après lesquels les acteurs décident de ne plus
prendre part au protocole. Nous proposons deux manières de le réaliser.
Premièrement et classiquement, un délai connu de tous peut être considéré lorsqu’un acteur attend un envoi. Lorsque le délai est expiré, il est supposé que
l’acteur qui est sensé réaliser l’envoi tente de tricher ou que le réseau est surchargé (ou encore que l’on est arrivé à la fin du protocole), le protocole est alors
arrêté. Un tel mécanisme permet d’utiliser un réseau incertain.
Une autre solution consiste en l’utilisation d’un canal de communication opérationnel entre les deux acteurs cibles. Ainsi, si Bob ne reçoit pas un nouveau
message dans le délai assuré par le canal, il comprend que le protocole est terminé. D’un autre côté, si Alice ne reçoit pas d’accusé de réception de Bob dans
ce délai fixé par le canal, elle constate que Bob tente de retrouver m sur base
des valeurs déjà obtenues ; Alice arrête alors le protocole.
Lorsque Bob envoie à Alice l’accusé de réception correspondant à la valeur produite par la dernière fonction, toutes les informations nécessaires à la composi-
5.5 Notre protocole probabiliste de non-répudiation
139
tion des preuves de non-répudiation ainsi qu’à l’obtention par Bob du message
m sont transmises. Alice peut alors envoyer à Bob un message confirmant la fin
du protocole9 .
Bob, ignorant n, ne peut déterminer, au moment où il reçoit un message d’Alice,
s’il reçoit le dernier message contenant la valeur produite par g n (il faut qu’aucun indice sur n ne puisse être déduit des envois d’Alice). Nous noterons θ la
probabilité que Bob devine la valeur de n et n’envoie pas la preuve EOR i précisément lorsque i = n, sachant que n a été choisi secrètement suivant une distribution géométrique. Si Bob n’envoie pas EOR n , Alice aura envoyé toutes les
informations nécessaires à Bob pour obtenir m et la preuve de non-répudiation
à l’origine de m, alors qu’elle n’obtient pas la preuve de non-répudiation à la
réception de m.
L’équité
Les preuves suivantes supposeront que la valeur de n a été choisie suivant une
distribution géométrique.
Théorème 5.3 Tous les envois précédant le (2n − 1)ième envoi, ainsi que le
dernier envoi, sont des points de complétude universels.
Preuve : Si Alice ou Bob arrête le protocole avant le (2n − 1)ième envoi, ni l’un
ni l’autre n’obtiennent tous les éléments nécessaires à l’obtention des preuves de
non-répudiation.
Si Alice arrête le protocole avant le (2n − 1)ième envoi, elle ne reçoit qu’une
partie des accusés de réception et ne peut donc composer une preuve de nonrépudiation à la réception du message m puisque sur base des valeurs produites
par les fonctions contenues dans les signatures de Bob, il n’est pas possible de
retrouver le message m. De même Bob ne reçoit pas toutes les valeurs nécessaires
à l’obtention de m, et ne peut composer la preuve de non-répudiation de m.
Si Bob arrête le protocole avant le (2n − 1)ième envoi, il ne peut composer la
preuve de non-répudiation à l’origine du message m, ni obtenir m puisqu’il lui
manque la dernière valeur produite par gn (m). Alice ne pourra pas composer la
preuve de non-répudiation à la réception, le dernier accusé de réception signé
par Bob lui manquant.
Après le dernier envoi Alice a reçu tous les accusés de réception nécessaires à la
composition de la preuve de non-répudiation à la réception. De même, Bob peut
constituer la preuve de non-répudiation à l’origine correspondant au message m
qu’il obtient au moyen des n valeurs produites par les n gi (m) qu’il a reçues. ¤
Théorème 5.4 Le (2n − 1)ième envoi est un point de complétude probabiliste
(avec une probabilité d’être en un point de complétude égal à 1 − θ).
9
Si le canal de communication entre Alice et Bob n’est pas opérationnel, Bob ne peut
distinguer la fin du protocole induit par l’arrêt des envois d’Alice, d’un problème réseau qui
retarderait la réception par Bob d’un message émis par Alice.
140
Chapitre 5 : Non-répudiation sans tierce partie de confiance
Preuve : Si Bob ne réalise pas le (2n)ième envoi, le protocole n’est plus équitable
puisque Bob a reçu les n valeurs nécessaires à l’obtention du message m, ainsi
que les signatures composant la preuve de non-répudiation à l’origine de m.
Alice de son côté n’a obtenu que n − 1 accusés de réception signés par Bob,
et ne peut donc produire la preuve de non-répudiation à la réception de m. La
probabilité que Bob, ignorant la valeur de n, décide, correctement, d’arrêter le
protocole10 au (2n)ième envoi vaut θ, le paramètre de succès de la distribution
géométrique utilisée par Alice pour choisir n.
¤
Théorème 5.5 Le protocole est θ-équitable
Preuve : Tous les envois du protocole sont des points de complétude. Ainsi
comme un de ces points est un point de complétude probabiliste, le protocole
est θ-équitable, avec θ le paramètre de succès de la distribution géométrique
utilisée par Alice pour choisir n.
¤
Nous proposons ici une solution basée sur une distribution géométrique lors du
choix de n (ainsi, à tout moment dans le protocole, la probabilité pour Bob
qu’il y ait une prochaine itération n’est jamais nulle 11 ). Bien entendu d’autres
distributions, offrant cette même caractéristique, peuvent être utilisées.
La fin du protocole
Théorème 5.6 Le protocole est temporellement fini.
Preuve : Que se soit au moyen d’un canal opérationnel entre Alice et Bob,
ou en faisant usage de délais d’attente, chaque acteur cible pourra, à chaque
envoi du protocole, décider, dans un délai fini, si le protocole est terminé 12 . En
moyenne le protocole est fini après 1θ itérations.
¤
Les disputes
Si Alice affirme avoir envoyé avec succès le message m à Bob, elle présente au juge
la preuve de non-répudiation à la réception, le NRR, ainsi que le label label , le
message m, la valeur n et les n valeurs produites par les fonction g i appliquées à
m. Le juge vérifie si les signatures de Bob sont correctes, si le message annoncé
par Alice peut-être retrouvé au moyen des n valeurs gi (m), puis si le label
label dépend bien du message m annoncé (cette dernière vérification permet
de s’assurer que n est correct). Si une de ces vérifications échoue, l’affirmation
d’Alice est refusée.
Si Bob affirme avoir reçu le message m d’Alice, il présente au juge la preuve de
non-répudiation à l’origine, le NRO, le label label , le message m, la valeur n et
10
Il faut donc que Bob ne puisse avoir le temps, avant d’envoyer son accusé de réception, de
tenter l’évaluation de la valeur du message m et de confirmer cette valeur sur base du label.
11
Bien entendu, plus θ est choisi petit, plus le protocole peut être long.
12
n, non borné, peut être grand mais pas infini.
5.5 Notre protocole probabiliste de non-répudiation
141
les n valeurs gi (m). Le juge vérifie les signatures d’Alice, retrouve le message à
partir des fonctions, le compare au m reçu et vérifie si le label dépend du même
message m. Si une de ces vérifications échoue, l’affirmation de Bob est refusée.
Si Alice arrête le protocole avant le nième envoi (après n′ envois par exemple) et
affirme avoir envoyé un message m′ à Bob, elle présente au juge le message m′ ,
la preuve de non-répudiation composée des n′ preuves EOR i reçues de Bob, le
label label , la valeur n′ et les n′ valeurs gi (m). Le juge vérifie les n′ signatures de
Bob, compare m′ à ce qui est produit par les n′ valeurs gi (m). Si le label dépend
de m et non de m′ le juge détectera un problème. Si le label est indépendant de
m, Bob accuse effectivement réception du message m′ qu’il a bien reçu. Dans
le contexte d’un protocole de non-répudiation, cette situation est acceptable
(puisqu’ainsi Bob accuse réception de ce qu’il a reçu. La situation est différente
avec les protocoles d’échange équitable, où Bob attend une information précise
d’Alice).
Cependant, si Bob arrête le protocole avant le nième envoi, il peut produire
un message m′ et une preuve de non-répudiation à l’origine de ce message m′ ,
alors qu’Alice peut ne pas pouvoir produire la preuve de non-répudiation à la
réception correspondante (si Bob a arrêté le protocole après avoir reçu un envoi
d’Alice et avant d’accuser réception). Ainsi nous recommandons que le label
utilisé pour identifier une session dépende toujours du message m initial (et ne
corresponde pas à plusieurs messages simultanément).
Alice peut, après la « fin » du protocole envoyer un message supplémentaire
à Bob. De cette manière il ne retrouvera pas le message m, mais Alice pourra
prouver l’avoir envoyé. Pour prouver avoir envoyé le message, Alice devra annoncer quels envois ont été utilisés pour construire les preuves ; Bob pourra non
seulement à ce moment retrouver m mais aussi prouver au juge qu’Alice a tenté
de tricher en lui envoyant des messages inutiles.
La viabilité
Théorème 5.7 Si à chaque envoi un délai maximum d’attente est utilisé, le
protocole n’est pas viable.
Preuve : Malgré l’honnêteté d’Alice et Bob, les messages émis peuvent prendre
plus de temps pour être délivrés au destinataire que le délai prévu, le protocole
se terminant ainsi prématurément, l’échange non accompli.
¤
Théorème 5.8 Si le canal entre Alice et Bob est opérationnel, le protocole est
viable.
Preuve : Alice et Bob étant honnêtes, tous les messages envoyés sont reçus
à temps et le protocole se termine par l’envoi par Bob de l’accusé de réception
correspondant à la nième valeur produite par gn (m).
¤
142
Chapitre 5 : Non-répudiation sans tierce partie de confiance
Remarque
La probabilité de perte d’équité étant faible mais non exponentiellement (par
rapport au nombre d’itérations du protocole), le protocole est en pratique à
utiliser pour des messages n’ayant pas une trop grande valeur (quelle que soit la
taille du message). Il faut aussi se rendre compte que puisque le nombre d’étapes
du protocole est non borné, il se pourrait que le message perde sa valeur avant
la fin du protocole ou que le coût de l’échange soit trop important.
5.5.2
Le protocole concret
Nous présentons à présent un protocole concret basé sur le protocole générique
que nous venons de décrire.
Ce protocole, qui utilise (n + 1) fonctions, est inspiré du protocole générique de
la manière suivante : g1 est une fonction de chiffrement utilisant une clé k de
session, g2 jusqu’à gn sont des générateurs de nombres aléatoires qui produisent
des valeurs entières de même taille que la clé de session k, la fonction g n+1
retourne la clé de déchiffrement k en clair, et la fonction F(g1 (m), . . . , gn+1 (m))
consiste en le déchiffrement de g1 (m) au moyen de gn+1 (m).
Protocole 5.4 Un protocole concret sans tierce partie de confiance
1.
A → B : fEOO , B, label , c, EOO
¨
2.
B → A : fEOR , A, label , EOR
¨
3.
A → B : fEOO k,1 , B, label , 1, r1 , EOO k,1
¨
4.
B → A : fEORk,1 , A, label , EOR k,1
¨
..
.
2n-1.
2n.
2n+1.
2n+2.
A → B : fEOO k,n−1 , B, label , n − 1, rn−1 , EOO k,n−1
B → A : fEORk,n−1 , A, label , EOR k,n−1
A → B : fEOO k,n , B, label , n, k, EOO k,n
B → A : fEORk,n , A, label , EOR k,n
¨
¨
P♦
¨
Les preuves
La preuve de non-répudiation à l’origine du chiffré c est :
EOO = SigA (fEOO , B, label , c)
où label = h(m, k) est un label associé à une session du protocole.
La preuve de non-répudiation à la réception du chiffré est :
EOR = SigB (fEOR , A, label , c)
La preuve de non-répudiation à l’origine de la valeur vi envoyée par Alice au
(2i + 1)ième envoi :
¢
¡
EOO k,i = SigA fEOO k,i , B, label , i, vi
5.5 Notre protocole probabiliste de non-répudiation
143
La preuve de non-répudiation à la réception de cette valeur vi , preuve que Bob
transmet au (2i + 2)ième envoi est :
¢
¡
EOR k,i = SigB fEORk,i , A, label , i, vi
La preuve de non-répudiation à l’origine du message m :
NRO = {EOO, EOO k,n }
La preuve de non-répudiation à la réception du message m :
NRR = {EOR, EOR k,n }
Les prémices
Alice choisit aléatoirement, suivant une distribution géométrique (par exemple),
un nombre n qui détermine le nombre d’itérations du protocole.
Elle choisit alors n − 1 valeurs aléatoires indépendantes et équidistribuée r i et
une clé k (tous de même taille).
Le protocole
Si Alice ou Bob reçoivent un message incorrect, ils arrêtent de prendre part au
protocole.
1. Alice initie le protocole en envoyant à Bob le chiffré c = Ck (m), ainsi que
la preuve de non-répudiation à l’origine associée :
A → B : fEOO , B, label , c, EOO
2. Bob accuse réception de ce chiffré :
B → A : fEOR , A, label , EOR
3. Alice envoie la première des n − 1 valeurs aléatoires qu’elle a choisies,
ainsi que la preuve de non-répudiation à l’origine de cette valeur :
A → B : fEOO k,1 , B, label , 1, r1 , EOO k,1
4. Bob confirme la réception de cette valeur r1 :
B → A : fEORk,1 , A, label , EOR k,1
..
.
144
Chapitre 5 : Non-répudiation sans tierce partie de confiance
2n-1. Alice envoie la dernière valeur aléatoire rn−1 et la preuve de
non-répudiation à l’origine correspondante :
A → B : fEOO k,n−1 , B, label , n − 1, rn−1 , EOO k,n−1
2n. Bob envoie la preuve de non-répudiation à la réception de cette
valeur r1 :
B → A : fEORk,n−1 , A, label , EOR k,n−1
2n+1. Alice transmet la clé k de déchiffrement du chiffré c
A → B : fEOO k,n , B, label , n, k, EOO k,n
2n+2. Bob accuse réception de cette clé indistingable des valeurs aléatoires déjà reçues :
B → A : fEORk,n , A, label , EOR k,n
Après le délai de garde ou une notification d’Alice, Bob calcule alors m = D k (c).
Avant le dernier envoi d’Alice, Bob n’a rien reçu d’utilisable. De plus, il ne
peut détecter s’il a reçu la clé k qu’en réalisant le déchiffrement de c en utilisant
comme clé la valeur reçue d’Alice. Cette opération sera supposée trop longue par
rapport au délai avant lequel Alice doit avoir reçu la preuve de non-répudiation à
la réception de cette valeur (en utilisant un cryptosystème dont les performances,
en fonction de la taille du message, conviennent aux délais prévus).
Au cours de ce protocole concret, Bob doit recevoir tous les envois d’Alice pour
pouvoir retrouver le message m ainsi que la preuve de non-répudiation à l’origine
de m. Alice doit obtenir EOR k,n pour obtenir la preuve de non-répudiation à la
réception de m.
Les disputes
Si Alice affirme avoir envoyé avec succès le message m à Bob, elle transmet au
juge la preuve de non-répudiation, le NRR, ainsi que le label label , le message
m, la clé k, le chiffré c et le nombre d’itération n. Le juge vérifie les signatures de
Bob sur EOR et EOR k,n , puis il vérifie si le message m transmis par Alice correspond à Dk (c) et si label = h(m, k). Si toutes ces vérifications sont correctes,
l’affirmation d’Alice est acceptée.
Si Bob déclare avoir reçu le message m d’Alice, il présente au juge la preuve de
non-répudiation à l’origine, le NRO, ainsi que le label label , le message m, la clé
k, le chiffré c et le nombre d’itération n. Le juge vérifie les signatures d’Alice sur
5.5 Notre protocole probabiliste de non-répudiation
145
EOO et EOO k,n , puis il vérifie si le message m transmis par Bob correspond
à Dk (c) et enfin si label = h(m, k). Si toutes ces vérifications sont correctes,
l’affirmation de Bob est acceptée.
Le chiffrement
Si le cryptosystème utilisé est de type bloc, Alice doit chiffrer son message, quel
que soit le cryptosystème utilisé, au moyen d’un mode où tous les blocs du texte
chiffré doivent être déchiffrés pour pouvoir obtenir les blocs du texte clair. De
cette manière un déchiffrement partiel du message chiffré envoyé par Alice au
début du protocole, ne permet pas de décider rapidement si la clé est obtenue
ou non.
Par exemple, si le message est composé de t blocs mi , nous calculons m′i =
mi ⊕ mt ∀i ∈ [1, t − 1], m′t = m1 ⊕ · · · ⊕ mt−1 ⊕ mt si t est impair et m′t =
m1 ⊕ · · · ⊕ mt−1 si t est pair. ∀i ∈ [1, t] Bob reçoit, au début du protocole, les
chiffrements ci des m′i au moyen de la clé k. Pour retrouver le message original,
Bob doit déchiffrer tous les ci , et avec les m′i obtenus il calcule mt = m′1 ⊕· · ·⊕m′t
et avec mt il retrouve mi = m′i ⊕ mt ∀i ∈ [1, t − 1].
Si les différents blocs composant le message m étaient chiffrés indépendamment,
ci = Ck (mi ), il suffirait à Bob de déchiffrer, entre deux envois, un ou deux blocs
pour se rendre compte si ces déchiffrements produisent des valeurs correspondant
à un message ayant un sens (mots d’un langage ou motifs reconnaissables d’un
code binaire. . .) et ainsi il pourrait décider s’il arrête ou non le protocole (en
ayant toujours le temps de réaliser l’envoi suivant dans les délais prévus).
En pratique
Au cours du protocole concret, nous devons nous assurer que le temps de calcul
d’un déchiffrement est plus important que le temps nécessaire à l’obtention par
Alice de l’accusé de réception envoyé par Bob.
Supposons que les envois réalisés après que Bob ait accusé réception du chiffré c
soient composés d’un indicateur de message (f... ) codé sur un octet, de l’identité
du récipiendaire codé sur huit octets, du label de 160 bits (taille des hachages
produits par SHA-1), du numéro d’envoi sur huit octets, de la valeur aléatoire ou
de clé sur 1024 bits et de la signature sur 320 bits (taille des signatures produites
par DSA). La taille de l’envoi fait donc 205 octets. Arrondissons à 256 octets
(un quart de kilo-octets) la taille maximum de ces envois et supposons que des
paquets de cette taille puissent (toujours, si le canal est opérationnel, et souvent
sinon) être envoyés et délivrés entre Alice et Bob dans un délai de l’ordre de la
seconde. Le cryptosystème utilisé pour chiffrer le message m doit être choisi en
fonction de la taille de m. Supposons que |m| (la taille de m) soit x kilo-octets
et que le cryptosystème déchiffre y kilo-bits par seconde, si nous désirons que le
déchiffrement ne prenne pas plus de cinq minutes et pas moins de trente
secondes
£ 2x 4x
¤
(par exemple), nous devons choisir un cryptosystème tel que y ∈ 75 , 15 .
Nous pouvons utiliser, par exemple, RSA pour chiffrer un message de 5 Moctets,
146
Chapitre 5 : Non-répudiation sans tierce partie de confiance
les implémentations les plus efficaces de RSA, en 1999, réalisant un déchiffrement
de 600 kilo-bits par secondes au moyen d’une clé de 512 bits. Pour un message
de 50 méga-octets, IDEA est adéquat ; triple-DES peut être utilisé pour chiffrer
un message de 500 méga-octets et DES pour un message de 1 giga-octets. . . [66].
5.5.3
Remarques
Remarquons que nos protocoles ne font aucune hypothèse sur le comportement
des acteurs cibles.
Contrairement aux protocoles de Syverson (de la section 5.4) qui doivent être
paramétrés sur base de la puissance de calcul de chaque acteur cible, notre
protocole se base sur la puissance de calcul de Bob uniquement.
Par rapport aux protocoles avec TPC, nos protocoles réalisent plus de calcul et
plus de communications, mais cela doit être mis en regard avec l’étranglement
des communications induit par l’introduction d’une TPC dans le schéma. De
plus, le protocole concret réduit de manière significative les calculs à réaliser.
Être exempt d’une TPC au cours des échanges permet non seulement de s’affranchir d’un risque d’étranglement dans les communications mais aussi de ne
plus considérer la notion de confiance, difficilement évaluable, que l’on doit porter à la TPC. Au cours des protocoles proposés ici, le risque est connu et peut
être paramétré (par Alice qui choisit θ et qui est la seule à subir les conséquences
éventuelles de ce choix).
Notons aussi que la probabilité de perte d’équité de notre protocole est égale
à la probabilité de perte d’équité du protocole de Rabin, présenté au troisième
chapitre (à la section 4.3.1). Cependant les infrastructures à mettre en œuvre
dans notre protocole sont moins lourdes que celles nécessaires au fonctionnement
du protocole de Rabin. Nous n’usons pas de tierce partie de confiance, nous ne
nécessitons pas de synchronisme entre les acteurs et le protocole concret que
nous proposons est plus économe en quantité de données à transmettre que
celui de Rabin (pour un même nombre de messages en moyenne).
Le protocole concret peut être aisément transformé afin d’allonger les temps de
calculs que Bob doit réaliser (si le message à transmettre est petit, par exemple).
Pour ce faire le chiffré c envoyé à Bob au début du protocole serait le résultat
de n chiffrements successifs du message m au moyen de n clés de session distinctes (n étant le nombre d’itérations choisi par Alice) : c = C kn (. . . Ck1 (m)).
Puis Alice envoie à Bob successivement les clés de session k1 à kn . À la fin du
protocole Bob calcule : m=Dk1 (. . . Dkn (c)). Pour pouvoir déchiffrer c, Bob doit
donc commencer par utiliser la dernière clé de session reçue (kn ). Il ne peut
donc réaliser des calculs intermédiaires au cours du protocole afin d’accélérer le
déchiffrement.
Pour terminer, remarquons que le protocole de non-répudiation proposé peut
aisément se transformer en un protocole d’échange équitable d’une information
voulue par Bob contre un accusé de réception. En effet, le protocole peut débuter
par une demande d’information émanant de Bob et envoyée à Alice, composée
5.6 Conclusion
147
par exemple par la signature digitale de Bob sur l’unique description de l’information voulue. Puis le protocole continue tel que présenté dans le protocole de
non-répudiation. Lors d’une dispute, le juge vérifie si l’information fournie par
Alice correspond à la description signée par Bob.
5.6
Conclusion
Les principaux résultats associés aux protocoles d’échange d’informations sans
TPC ont été examinés. Nous avons alors présenté le premier protocole de nonrépudiation dans ce contexte.
Remarquons que Han [43] propose un protocole sans tierce partie de confiance,
mais qui prévoit qu’Alice soit en possession d’un système, le pub, accessible
publiquement et qui enregistre automatiquement toutes les opérations (accès,
modification. . . ) sur les données qu’elle contient (les enregistrements d’opération
ne pouvant être ni effacés, ni modifiés). Le protocole prévoit assez classiquement
l’envoi par Alice du message chiffré, puis la divulgation de la clé de déchiffrement
via le pub. Bob et le juge (qui trancherait en cas de dispute) doivent donc être
sûrs de la validité des informations enregistrées dans le pub. Cela revient donc à
avoir autant de tierces parties de confiance on-line que d’émetteurs de messages
(Alice). Il faut aussi avoir confiance en Alice qui possède le pub et qui peut
éventuellement simuler son fonctionnement. Enfin le protocole proposé nécessite
une synchronisation entre les acteurs.
Nous allons à présent nous intéresser à la non-répudiation de groupe.
Chapitre 6
Non-répudiation de groupe
6.1
Introduction
Comme nous l’avons vu au cours des précédents chapitres, les recherches existantes ont essentiellement porté sur les protocoles de non-répudiation à deux
acteurs cibles, l’accent étant par ailleurs mis sur les protocoles faisant usage de
tierce partie de confiance (TPC).
Il est intéressant de noter que malgré l’essor de l’étude des protocoles de nonrépudiation depuis près de cinq ans, aucun protocole pour plus de deux acteurs
cibles n’a été proposé jusqu’ici.
Dans le contexte des protocoles d’échange équitables, quelques propositions
existent ; cependant aucun de ces protocoles, que nous allons à présent brièvement décrire, ne convient à l’approche de la non-répudiation que nous allons
considérer.
Pour une première approche des protocoles de non-répudiation de groupe, le
contexte qui nous semble adéquat consiste en un émetteur désirant envoyer
simultanément un même message à un ensemble de récipiendaires. L’émetteur
doit envoyer, outre le message, une preuve de non-répudiation à l’origine de ce
message. De même chaque récipiendaire doit, s’il a reçu le message, transmettre
à l’émetteur une preuve de non-répudiation à la réception.
Il est attendu des protocoles de non-répudiation de groupe, les mêmes assurances
qu’apportent les protocoles de non-répudiation à deux acteurs cibles, à savoir
la non-répudiation à l’origine d’un message qui a été transmis à un ensemble
de récipiendaires et la non-répudiation à la réception du message assurée par
chacun des récipiendaires.
Un aspect propre aux protocoles de non-répudiation de groupe est la nécessité
de confidentialité. Si les protocoles de non-répudiation avec deux acteurs cibles
ne requièrent, a priori, aucune confidentialité, les protocoles de non-répudiation
de groupe, comme nous allons les considérer, imposent l’usage de techniques de
chiffrement de groupe. De tels chiffrements permettent à un émetteur de chiffrer
un message de manière à ce qu’un ensemble déterminé de récipiendaires puissent
150
Chapitre 6 : Non-répudiation de groupe
retrouver le message clair à partir du même chiffré.
Bien entendu, les protocoles proposés devront respecter une des propriétés d’équité que nous avons définies. Enfin, les protocoles devront être temporellement fini.
6.2
Les échanges cycliques
Dans [38], en 1998, une classification des échanges à plusieurs acteurs cibles est
proposée. Mis à part le nombre d’informations qu’émet et reçoit chaque acteur
cible, les auteurs différencient les échanges cycliques et généraux.
Un échange cyclique est tel qu’un acteur cible numéroté i (où 0 ≤ i ≤ n − 1)
désire recevoir une information d’un autre acteur numéroté i ⊟ 1 et est sensé
envoyer une information à un acteur numéroté i ⊞ 1, où ⊞ et ⊟ dénotent respectivement l’addition et la soustraction modulo n.
Dans le cas des échanges généraux, une matrice décrivant la topologie des
échanges est utilisée, comme décrit à la section suivante. Ainsi l’échange cyclique est une des topologies qui peut être représentée par une telle matrice.
Parmi les quelques articles traitant de l’échange équitable d’informations au
travers d’un groupe, [38] et [11], en 1999, se concentrent sur la topologie en
anneau, implémentant ainsi un échange cyclique.
Au cours d’un protocole de non-répudiation, recevoir un message d’un acteur
et en accuser réception à un autre ne correspond pas à nos besoins. Une telle
topologie en anneau ne nous convient donc pas. Une première généralisation
des protocoles de non-répudiation à deux acteurs cibles, qui nous semble la plus
naturelle, consiste donc en un acteur émetteur qui envoie un message à n − 1
récipiendaires qui répondent à cet émetteur (topologie en étoile).
6.3
Un protocole d’échange équitable de groupe
Asokan et al. proposent [7, 6], en 1996 puis en 1998, un protocole générique
d’échange équitable de groupe. Ils proposent que l’échange se base sur une matrice de descriptions dont les lignes correspondent aux émetteurs et les colonnes
aux récipiendaires. Un élément de la matrice est donc la description d’une information qu’un émetteur (indice de ligne) veut envoyer à un récipiendaire (indice
de colonne).
Le principe du protocole est tel que soit toutes les informations présentes dans
la matrice sont échangées, soit aucune.
Sur base du protocole générique, les auteurs proposent quelques instantiations
(signature d’un contrat, échange d’informations. . . ). Le principe de la matrice
de descriptions est suffisamment souple pour permettre un échange de groupe
suivant une multitude de topologies (un anneau, une étoile, un graphe complètement interconnecté. . . ).
Une topologie possible qui correspond à nos besoins est l’étoile avec la séman-
6.3 Un protocole d’échange équitable de groupe
151
tique « un émetteur, n récipiendaires ». Asokan et al. proposent une instantiation proche des protocoles de non-répudiation et respectant la topologie voulue,
nommée diffusion certifiée1
Au cours de ce protocole, qui se base sur une TPC off-line, Alice désire envoyer
un message à un ensemble β de récipiendaires, qui devront en accuser réception.
Les signatures considérées dans ce protocole sont avec recouvrement.
Protocole 6.1 Le protocole d’échange équitable de groupe d’Asokan et. al
Le protocole principal :
f A (β, t, commit(m, k))
1. A ⇒ β : Sig
f B (β, t, commit(m, k), h(rB ))
2. ∀B ∈ β → A : Sig
3. A ⇒ β : m, k
4. ∀B ∈ β → A : rB
Le protocole de recouvrement :
f B (β, t, commit(m, k), h(rB ))
1. A → TPC : A, B, Sig
2. A → B : m, k
3. B → A : rB , ou
B → A : preuve que m et k n’ouvrent pas commit(m, k), ou
TPC → A : affidavit
1. Alice initie le protocole en diffusant, de manière signée, une mise en gage
commit(m, k) du message m au moyen de la clé k, tout en précisant l’ensemble β des récipiendaires visés et le délai t après lequel le protocole sera
terminé :
f A (β, t, commit(m, k))
A ⇒ β : Sig
2. Les B ∈ β accusent (s’ils le désirent) réception de ce premier envoi. Les
membres de β répondent en envoyant la mise en gage reçue, ainsi que le
hachage d’une valeur aléatoire rB qui servira à la construction de la preuve
de non-répudiation à la réception du message m :
f B (β, t, commit(m, k), h(rB ))
∀B ∈ β → A : Sig
3. Si, à un moment fixé par elle, Alice n’a pas reçu une réponse de tous les
membres de β, elle arrête le protocole, sinon elle diffuse le message m
ainsi que la clé k qui permet d’ouvrir la mise en gage et de vérifier si le
message m reçu correspond au message mis en gage lors du premier envoi :
A ⇒ β : m, k
1
certified broadcast en anglais.
152
Chapitre 6 : Non-répudiation de groupe
4. Chaque membre B de β est alors sensé accuser réception du message en
transmettant la valeur aléatoire rB dont le hachage a été envoyé lors du
deuxième envoi :
∀B ∈ β → A : rB
Si le troisième envoi a eu lieu, et si tous les membres de β n’ont pas réalisé le
dernier envoi dans les délais impartis, Alice fait appel à la TPC et réalise un
protocole de recouvrement différent avec chaque récipiendaire fautif.
1. Alice initie chaque protocole de recouvrement en précisant à la TPC l’ensemble, β, des récipiendaires visés, ainsi que le deuxième envoi du protocole principal provenant de B ∈ β ′ où β ′ est l’ensemble des récipiendaires
n’ayant pas réalisé le dernier envoi du protocole principal :
f B (β, t, commit(m, k), h(rB ))
A → TPC : A, B, Sig
2. Alice continue en envoyant à B, de manière observable2 par la TPC, le
troisième envoi du protocole principal :
A → B : m, k
3. Soit B accuse réception, de manière observable par la TPC :
B → A : rB
Soit B montre, par un message envoyé à Alice et observable par la TPC,
que le message m et la clé k ne permettent pas d’ouvrir la mise en gage
(par exemple, en transmettant à la fois la mise en gage signée par Alice et
la mise en gage, réalisée a posteriori par Bob, basée sur le m et le k reçus) :
B → A : preuve que m et k n’ouvrent pas commit(m, k)
Soit, B n’ayant rien envoyé, la TPC accuse réception à sa place en envoyant un affidavit basé sur sa propre signature à Alice :
TPC → A : affidavit
Remarquons que ce protocole, ainsi que le protocole générique proposé par les
auteurs et donc toutes leurs instantiations, nécessitent que tous les canaux de
communication soient opérationnels.
L’obligation de l’échange complet des informations et la contrainte d’opérationnalité des canaux de communication, sont des contraintes qui ne sont pas
2
La tierce partie de confiance peut, sans intervenir activement, observer les informations
circulant entre Alice et Bob.
6.4 Un protocole avec tierce partie de confiance on-line
153
compatibles avec notre vision d’un protocole de non-répudiation de groupe.
Un protocole de signature de contrat de groupe se basant sur des canaux réactifs
a été proposé, en 1998, dans [13], mais le protocole proposé n’est pas générique
et son contexte de signature de contrat est très éloigné de nos protocoles de
non-répudiation.
6.4
6.4.1
Un protocole avec tierce partie de confiance online
Introduction
Nous proposons [47] à présent un protocole de non-répudiation de groupe basé
sur des cryptosystèmes de groupe.
Un cryptosystème de groupe (voir la section 6.4.3) consiste en une fonction
de chiffrement C : M × K × · · · × K → C, et une fonction de déchiffrement
D : M × K′ → M, où M est l’espace des messages clairs, K est l’espace des
clés de chiffrement, K′ est l’espace des clés de déchiffrement et C est l’espace des
messages chiffrés. La fonction de chiffrement transforme un message de M et les
clés de K correspondant aux récipiendaires visés en un chiffré de C. Chacun des
récipiendaires d’un chiffré peut retrouver le message clair initial en appliquant
la fonction de déchiffrement au chiffré et à sa clé personnelle de déchiffrement de
K′ . Pour ne pas être ambiguë, la fonction de déchiffrement paramétrée par la clé
de déchiffrement doit être telle qu’un chiffré ne peut être projeté vers plusieurs
messages clairs acceptables distincts.
Alice désire envoyer un message m et sa preuve de non-répudiation à l’origine associée à un ensemble de récipiendaires, en échange d’une preuve de nonrépudiation à la réception de m provenant de ces récipiendaires. Le protocole
est tel qu’il permet que l’échange n’aboutisse que pour un sous-ensemble des
récipiendaires initialement prévus par Alice, alors que pour les autres récipiendaires potentiels rien ne soit échangé, ni reçu. Il est laissé au choix d’Alice de
continuer le protocole avec un sous-ensemble des récipiendaires ou d’arrêter le
protocole si tous les récipiendaires ne s’engagent pas dans le protocole.
6.4.2
Le protocole
Le protocole proposé est une généralisation du protocole de Zhou et Gollmann
avec TPC on-line et passive (cf. section 4.3.3). Nous supposons que les canaux
de communication entre chaque acteur cible et la TPC sont réactifs.
Au cours du protocole, Alice désire envoyer un message m à un ensemble β de
récipiendaires. Les membres de β sont nommés Bi avec 1 ≤ i ≤ |β|.
154
Chapitre 6 : Non-répudiation de groupe
Protocole 6.2 Un protocole de non-répudiation de groupe avec TPC on-line
1. A ⇒ β : fEOO , β, label , t, c, EOO
¨
2. Bi → A : fEOR , A, Bi , label , EOR i
¨A
3. A → TPC : fsub , β ′ , label , t, Cβ ′ (k) , sub k
4. TPC ↔ Bj′ : fcon , A, β ′ , label , Cβ ′ (k) , con k
5. TPC ↔ A : fcon , A, β ′ , label , Cβ ′ (k) , con k
¨
Les preuves
Le protocole génère les preuves suivantes :
La preuve de non-répudiation à l’origine du résultat c du chiffrement du message
m au moyen de la clé de session k :
EOO = SigA (fEOO , β, label, t, c)
où label = h(m, k) est le label associé à une session du protocole, t le moment
après lequel la clé k est accessible sur le répertoire public de la TPC.
La preuve de non-répudiation à la réception du chiffré c, apportée par le récipiendaire Bi :
EOR i = SigBi (fEOR , A, label , t, c)
La preuve de non-répudiation à l’origine de la clé k soumise à la TPC :
¡
¢
sub k = SigA fsub , β ′ , label , t, Cβ ′ (k)
où β ′ est un sous-ensemble, éventuellement vide, de β.
La preuve de non-répudiation à la réception de la clé k fournie par la TPC :
¡
¢
con k = SigTPC fcon , A, β ′ , label , t, Cβ ′ (k)
La preuve de non-répudiation à l’origine du message m :
NRO = (EOO, con k )
De la même manière, la preuve de non-répudiation à la réception du message
m:
NRR = (EOR, con k )
Le protocole
1. Alice initie le protocole en diffusant à l’attention du groupe β de récipiendaires le résultat du chiffrement du message m au moyen de la clé k,
ainsi que le label et le moment t à partir duquel les informations seront
accessibles auprès de la TPC :
A ⇒ β : fEOO , β, label , t, c, EOO
6.4 Un protocole avec tierce partie de confiance on-line
155
2. Des membres Bi de β répondent, éventuellement, en transmettant à Alice
la preuve de non-répudiation à la réception du chiffré c :
Bi → A : fEOR , A, Bi , label , EOR i
3. Après un délai qu’elle se fixe, Alice décide si elle arrête le protocole ou
si elle continue avec les récipiendaires ayant réalisé un envoi correct précédemment. Les membres de β ayant réalisé le second envoi forment un
sous-ensemble β ′ ⊆ β. Si elle décide de continuer, Alice envoie à la TPC
la clé k chiffrée au moyen d’un cryptosystème de groupe déchiffrable par
les membres de β’ :
A → TPC : fsub , β ′ , label , t, Cβ ′ (k) , sub k
4. Si l’envoi d’Alice est arrivé avant le moment t, la TPC rend publiques,
après t, les informations reçues. La TPC n’accepte qu’une seule demande
par session (identifiée par le label et l’identité des acteurs cibles). Les
membres Bj′ de β ′ peuvent donc consulter le répertoire public pour obtenir la clé de déchiffrement de c, elle-même chiffrée mais accessible pour les
membres de β ′ :
TPC ↔ Bj′ : fcon , A, β ′ , label , Cβ ′ (k) , con k
5. De même, Alice consulte le répertoire afin d’obtenir les éléments nécessaires à l’obtention de la preuve de non-répudiation à la réception de m :
TPC ↔ A : fcon , A, β ′ , label , Cβ ′ (k) , con k
Si des membres de β réalisent le deuxième envoi du protocole après qu’Alice ait
initié l’envoi suivant, ces envois ne seront pas considérés.
Remarquons que la clé de déchiffrement de c ne doit être accessible qu’aux
membres de β ′ . Si un membre de β\β ′ obtient la clé, sur le répertoire public
de la TPC ou par observation des données circulant sur les canaux, il possède
alors non seulement le message m, mais aussi une preuve de non-répudiation à
l’origine du message, alors qu’Alice n’obtient pas la preuve de non-répudiation
à la réception associée. Il en résulte ainsi une violation de l’équité. Se contenter
de limiter l’accès au répertoire public de la TPC n’est pas suffisant puisque
la clé, si elle est transmise telle quelle, peut être observée. Nous proposons en
conséquence d’utiliser un chiffrement de groupe qui rend la clé accessible aux
membres de β ′ , qui seuls peuvent réaliser le déchiffrement. Le chiffrement de
groupe de la clé doit être tel que tout acteur puisse vérifier si un acteur donné
peut obtenir la clé à partir du chiffré.
156
Chapitre 6 : Non-répudiation de groupe
L’équité
Théorème 6.1 Les premier et dernier envois sont des points de forte complétude universels du protocole.
Preuve : Après le premier envoi, les membres de β n’ont rien reçu d’utilisable
(le chiffré du message m uniquement). Ni Alice, ni les membres de β n’ont
reçu les preuves attendues. Rien n’oblige Alice à continuer le protocole après ce
premier envoi. Et si Alice arrête de prendre part au protocole, les récipiendaires
ne retrouvent rien auprès de la TPC (cette dernière n’ayant rien reçu d’Alice).
Après le cinquième envoi, les preuves sont échangées et les membres de β ′
peuvent retrouver m.
¤
Théorème 6.2 Le deuxième envoi est un point de forte complétude d’Alice.
Preuve : Après le deuxième envoi, le protocole peut être arrêté par Alice. Si
des membres de β ont émis leur EOR i , ils n’interviennent plus dans le protocole
que si Alice réalise le troisième envoi. Si elle ne le fait pas, ces récipiendaires ne
trouvent rien auprès de la TPC et ne peuvent donc pas composer la preuve de
non-répudiation à l’origine. De même Alice, qui a reçu le EOO i , ne soumettant
rien à la tierce partie, ne reçoit pas non plus con k et ne peut donc composer la
preuve de non-répudiation à la réception. Si Alice compose un β ′ en excluant
certains membres de β qui ont émis leur EOR i , alors ni ces derniers, ni Alice
n’auront de preuves finales de non-répudiation puisque ces preuves finales sont
basées sur l’ensemble β ′ présent dans con k . Dans tous les cas, les membres de
β qui ont réalisé le second envoi doivent consulter la TPC (au cinquième envoi)
car ils ne peuvent prévoir le comportement d’Alice (même si elle a reçu leur
message à temps) ; les membres de β ′ ne peuvent donc arrêter le protocole. ¤
Théorème 6.3 Le protocole est fortement équitable, si les canaux reliants la
TPC aux acteurs cibles sont réactifs.
Preuve : Après le deuxième envoi, par hypothèse de conservation, les membres
de β ′ n’arrêtent plus le protocole spontanément. Si Alice ne prend plus part au
protocole juste après le deuxième envoi, alors tous les acteurs cibles atteignent
le point de complétude d’Alice. Sinon ils continuent après le troisième envoi.
Après le troisième envoi, ni les membres de β ′ , ni Alice n’ont intérêt à arrêter
le protocole (et donc ne pas aller consulter la TPC à partir du moment t)
sous peine, non seulement, de ne pas retrouver la preuve de non-répudiation
attendue mais aussi de perdre une éventuelle dispute. Les acteurs cibles ne
peuvent s’empêcher mutuellement de consulter la TPC, car les canaux sont
réactifs.
Remarquons aussi qu’une fois le troisième envoi réalisé, il se peut qu’Alice reçoive des messages correspondant au deuxième envoi du protocole provenant
de membres de β\β ′ . Alice possède alors les preuves de non-répudiation à la
6.4 Un protocole avec tierce partie de confiance on-line
157
réception du chiffré c pour ces récipiendaires. Cependant comme con k produit
par la TPC contient la description de l’ensemble des récipiendaires pouvant déchiffrer la clé k (l’ensemble β ′ ), la preuve de non-répudiation qui est en partie
composée de con k n’est valide que si les EOR i qui composent la preuve de nonrépudiation à la réception du message m, correspondent à des récipiendaires
présents dans β ′ que l’on trouve dans con k . Alice n’obtient donc aucune preuve
de non-répudiation à la réception de ces récipiendaires, et ces derniers n’obtiennent ni la preuve de non-répudiation à l’origine, ni le message m. Il en est
de même si Alice ne transmet à la TPC qu’un sous-ensemble des membres de β
dont elle a obtenu un EOR i à temps après le deuxième envoi du protocole.
Après le quatrième envoi, Alice n’arrêtera pas le protocole puisque les membres
de β ′ possèdent chacun la preuve complète de non-répudiation à l’origine et
qu’ils ne peuvent l’empêcher de consulter la TPC pour obtenir les preuves de
non-répudiation à la réception (les canaux reliant les acteurs cibles à la TPC
étant réactifs).
¤
La fin du protocole
Théorème 6.4 Le protocole est temporellement fini.
Preuve : Si les acteurs cibles n’agissent pas honnêtement ou si, dû à un retard,
la TPC ne reçoit pas un message à temps, alors la TPC ne publie rien à l’instant
t et le protocole se termine à ce moment.
Si les parties agissent honnêtement et si la TPC reçoit à temps les informations
nécessaires à la publication de la clé et de la preuve de non-répudiation à la
réception de cette clé, alors elle les publie au moment t. Par leur canal réactif,
lorsque les acteurs cibles feront la demande de consultation du répertoire public,
ils finiront par retrouver les informations attendues, mais ce moment ne peut
être prévu.
¤
Les disputes
Si un acteur affirme avoir reçu le message m d’Alice, il présente au juge le
message m, la clé k, le chiffré c, le label ainsi que EOO et con k . Remarquons
que le message m et la clé k doivent être transmis au juge au moyen d’un canal
assurant la confidentialité, sinon un membre de β\β ′ peut retrouver le message.
Si l’acteur ne peut fournir ces informations au juge, son affirmation est rejetée.
Sinon le juge vérifie les signatures d’Alice sur EOO et de la TPC sur con k , puis
il vérifie si label = h(m, k) et enfin si c est bien le résultat du chiffrement de
m au moyen de la clé k. Si toutes les vérifications sont satisfaisantes, le juge
confirme l’affirmation de l’acteur
Si Alice affirme avoir envoyé avec succès le message m au récipiendaire Bi ,
elle envoie au juge m, c, k, label , EOR i et con k (m et k devant être transmis
confidentiellement). Si le juge reçoit ces informations, il vérifie les signatures
de Bi sur EOR i et de la TPC sur con k , il vérifie que Bi appartient à β ′ , que
158
Chapitre 6 : Non-répudiation de groupe
label = h(m, k), que la clé k est bien chiffrée pour Bi dans con k et enfin que
c est bien le résultat du chiffrement de m au moyen de la clé k. Si toutes les
vérifications sont satisfaisantes, le juge confirme l’affirmation d’Alice.
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Alice, elle peut retarder ou annuler la publication de
k de manière à ce que les membres de β ′ ne puissent retrouver la preuve de
non-répudiation à l’origine de la clé k, alors que la tierce partie transmet uniquement à Alice le dernier message, lui permettant d’obtenir la preuve de nonrépudiation à la réception. Ce comportement de la tierce partie est détectable
par les membres de β ′ .
Si la tierce partie s’allie à des β ′ , leur transmet la clé k et publie une autre clé,
ces alliés peuvent ainsi récupérer m mais ne pourraient prouver que m vient
d’Alice. Si la tierce partie leur transmet directement k et con k , et ne dépose que
tard ou pas du tout ces informations sur le répertoire public, alors ces membres
de β ′ , alliés à la TPC, reçoivent la preuve de non-répudiation à la réception
tandis qu’Alice ne reçoit rien. Un tel comportement est détectable par Alice.
Ces raisonnements se généralisent directement à une alliance entre la TPC, Alice
et certains récipiendaires.
La tierce partie peut rendre disponible une information inadéquate en fin de
protocole. Ni Alice, ni les membres de β ′ ne recevront leur preuve, et si ce
comportement est occasionnel, il ne peut être détecté.
Il est difficile de détecter (et surtout de prouver) un dépôt tardif par la TPC d’informations sur le répertoire public. Ainsi si Alice ou les membres de β ′ consultent
la TPC et ne trouvent rien dans le répertoire public (correspondant au label)
et s’ils sont méfiants vis à vis cette tierce partie, ils devront consulter régulièrement le répertoire pour s’assurer que les informations ne sont pas déposées plus
tard (à la façon d’un polling dans un système client-serveur). Afin d’assurer aux
acteurs de ne devoir consulter qu’une seule fois la TPC, nous recommandons
que lorsque la TPC est consultée, elle réponde par un message signé indiquant
l’information ou l’absence d’information, le moment de l’émission de ce message
et le label associé.
La viabilité
Théorème 6.5 Si le canal de communication entre les acteurs est opérationnel
alors le protocole est viable.
Preuve : Si Alice et les membres de β sont honnêtes et répondent sans perdre
de temps alors Alice envoie un premier message avec un délai t raisonnable et
elle soumet au plus tôt à la TPC la clé k de déchiffrement. Cette clé arrive sans
délai à la TPC qui la reçoit avant t et rend publique cette information. Alice
et les membres de β tentent à partir du moment t d’obtenir cette clé k et le
6.4 Un protocole avec tierce partie de confiance on-line
159
con k auprès de la tierce partie, ce qui sera réalisé avec succès grâce au réseau
opérationnel.
Si le réseau est réactif les messages émis aux troisième et quatrième envois
peuvent prendre trop de temps pour arriver et ne pas permettre à la TPC de
rendre disponible la clé k ainsi que la preuve de non-répudiation à la réception
de la clé k à partir du moment t.
¤
Remarques
Comme chaque message signé contient le nom du récipiendaire, un opposant,
Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la
tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur m
venant d’Alice, car c’est bien le nom du récipiendaire visé par Alice et non Oscar
qui est indiqué dans le message signé. Le raisonnement est identique vis à vis
d’un récipiendaire pour la preuve de non-répudiation à la réception. Oscar ne
peut prétendre avoir cette preuve car les noms des récipiendaires apparaissent
dans la preuve con k signée par la TPC.
Comme Oscar ne peut bloquer la TPC (les canaux que cette dernière utilise
étant réactifs), Oscar ne peut briser l’équité du protocole.
La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi les
noms des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation
est identique face à un observateur extérieur.
Notons, enfin, qu’aucune coalition entre des membres de β, avec ou sans Alice,
ne peut nuire (en brisant l’équité) à des acteurs cibles extérieurs à la coalition.
En effet, la coalition ne peut ni falsifier une signature d’autres acteurs cibles, ni
bloquer un message venant de la TPC.
6.4.3
Un chiffrement de groupe
Le choix d’un cryptosystème adéquat, parmi les nombreux cryptosystèmes de
groupes existant [44, 33, 28, 22, 16], est crucial pour la sécurité du protocole
proposé.
Par exemple, Boyd a présenté une généralisation de RSA [22] où, pour un groupe
de n acteurs, n clés sont nécessaires et où chaque acteur i connaît n − 1 clés, la
clé manquante étant différente pour chaque acteur. Le chiffrement est possible
« à destination » d’un sous-ensemble quelconque des n acteurs. Le problème
est que ce cryptosystème ne résiste à aucune coalition3 , tout couple d’acteurs
alliés peut déchiffrer tous les messages produits pour tous les sous-ensembles
des n acteurs, puisqu’ensemble, les deux acteurs connaissent les n clés. Notre
protocole doit pouvoir résister à de telles coalitions.
Nous proposons, par exemple, d’utiliser le mécanisme générique proposé par
Chiou et al. [28] et décrit ci-après.
3
Il est 1-resilient en anglais.
160
Chapitre 6 : Non-répudiation de groupe
Le principe de la méthode se base à la fois sur les cryptosystèmes à clés publiques, ainsi que sur le lemme Chinois4 [53, 63]. La méthode générique décrite
par les auteurs peut être instanciée au moyen de tout cryptosystème à clés
publiques sûr.
Soit n le nombre initial de récipiendaires, n = |β|, et soit n′ le nombre de
récipiendaires ayant réalisé à temps le deuxième envoi du protocole, n ′ = |β ′ |.
Nous notons Ki et K̃i respectivement les clés publique et privée d’un membre i
de β, où 1 ≤ i ≤ n. Ce membre choisit un entier Ni plus grand que les chiffrés
produits par le cryptosystème utilisé ; de plus, tous les Ni doivent être premiers
entre eux5 . Pour chaque acteur i, les informations publiques sont donc N i et Ki .
Pour chiffrer la clé k pour les n′ membres, ji , de β ′ , Alice calcule cji = CKji (k)
où 1 ≤ i ≤ n′ . Alice utilise alors le lemme Chinois pour trouver l’unique solution
au système X ≡ cji (mod Nji ) (1 ≤ i ≤ n′ ). Les Ni étant relativement premiers
deux à deux, nous avons alors Cβ ′ (k) = X. Chaque membre ji de β ′ (1 ≤
i ≤ n′ ) déchiffre Cβ ′ (k) en calculant cji = Cβ ′ (k) mod Nji et DK̃j (cji ) =
i
³
´
DK̃j CKji (k) = k.
i
Lorsqu’un juge doit vérifier que le chiffré Cβ ′ (k) est déchiffrable par un acteur
Bi particulier, il calcule CKi (k) et vérifie que Cβ ′ (k) mod Ni = CKi (k). Ainsi
le juge peut réaliser cette vérification de manière efficace sans avoir à calculer
lui-même Cβ ′ (k).
6.5
6.5.1
Un protocole avec tierce partie de confiance offline
Introduction
Nous allons à présent considérer l’approche optimiste dans le cadre des protocoles de non-répudiation de groupe.
Nous [51] allons cette fois généraliser le protocole de non-répudiation avec tierce
partie off-line et active que nous avons décrit à la section 4.4.3. Nous supposons ici aussi que les canaux de communication entre chaque acteur cible et la
TPC sont réactifs, alors qu’ils peuvent être incertains entre les acteurs cibles.
Aussi, Alice gère, à la manière d’une tierce partie passive, un répertoire public
accessible en lecture uniquement.
Afin de ne pas nuire à la lisibilité du protocole, la figure 6.3 ne présente pas,
exceptionnellement, les points de complétude (car les points de complétude ne
concernent parfois que certains acteurs cibles).
4
ou encore théorème du reste Chinois, chinese remainder theorem en anglais.
Une autorité de certification des clés publiques doit être ici utilisée. C’est cette dernière
qui vérifie et assure la primalité relative des Ni .
5
6.5 Un protocole avec tierce partie de confiance off-line
161
Protocole 6.3 Un protocole de non-répudiation de groupe avec TPC off-line
Le protocole principal :
1. A ⇒ β : fEOO , fsub , β, label, t, c, CKTPC (k) , EOO, sub
2. Bi → A : fEOR , A, label , EOR i
3. A ⇒ β ′ : fEOO k , β ′ , label , Cβ ′ (k) , EOO k
4. Bj′ → A : fEORk , A, label , EOR j,k
Le protocole de recouvrement :
(X est l’acteur cible initiant le recouvrement)
1. X → TPC : frec X , fsub , A, β, label, t, h(c), CKTPC (k) , rec X , sub, EOO
2. TPC → X : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k et STOP, ou
TPC → X : fearly , early et STOP, ou
A ↔ TPC : fset , β ′ , label , set
3. TPC → A : fcon k , A, β ′ , label , con k
4. TPC ⇒ β ′ ∪ {X}\{A} : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k
Les preuves
Les preuves générées au cours du protocole sont :
La preuve de non-répudiation à l’origine du chiffré c :
EOO = SigA (fEOO , β, label , t, h(c))
où β est l’ensemble des récipiendaires visés du chiffré, t désigne le moment après
lequel le protocole de recouvrement peut être initié, et le label qui résulte du
hachage du message m et de la clé k utilisée pour mettre ce message en gage.
Une instance du protocole est identifiée par le couple (label , A).
La preuve de non-répudiation à la réception du chiffré c émise par un membre
Bi ∈ β :
EOR i = SigBi (fEOR , A, label , h(c))
La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la
TPC :
sub = SigA (fsub , β, label , CKTPC (k))
La preuve de non-répudiation à l’origine de la clé k :
¡
¢
EOO k = SigA fEOO k , β ′ , label , h(k)
où β ′ est un sous-ensemble de β.
La preuve de non-répudiation à la réception de la clé k produite par un membre
Bi ∈ β ′ :
EOR i,k = SigBi (fEORk , A, label , h(k))
La preuve de non-répudiation à l’origine de la demande de recouvrement :
rec X = SigX (frec X , A, β, label)
162
Chapitre 6 : Non-répudiation de groupe
où X est un acteur quelconque.
La preuve de non-répudiation à l’origine de la clé k envoyée par la TPC :
¡
¢
con k = SigTPC fcon k , A, β ′ , label , h(k)
La preuve de non-répudiation à l’origine émise par la TPC signifiant à un acteur
qu’un recouvrement a été initié trop tôt :
early = SigTPC (fearly , label )
La preuve de non-répudiation à l’origine émise par Alice pour l’ensemble des
récipiendaires avec lesquels elle est prête à mener le protocole jusqu’à son terme :
¡
¢
set = SigA fset , β ′ , label
La preuve de non-répudiation à l’origine du message m :
NRO = (EOO, EOO k ) ou (EOO, con k )
La preuve de non-répudiation à la réception du message m produite par l’acteur
Bi :
NRR = (EOR i , EOR i,k ) ou (EOR i , con k )
Le protocole principal
Au cours de ce protocole principal, Alice désire envoyer de manière non-répudiable le message m à un ensemble β de récipiendaires.
1. Alice diffuse un premier message destiné à tous les membres de β. Ce
message contient le chiffré c du message m sous la clé k, le label label =
h(m, k), un délai t indiquant qu’un recouvrement ne peut se faire qu’après
ce délai, ainsi que la clé k chiffrée à l’intention de la TPC :
A ⇒ β : fEOO , fsub , β, label , t, c, CKTPC (k) , EOO, sub
2. Chaque membre Bi de β, s’il a accepté le délai t, peut (s’il désire continuer
le protocole) accuser réception du premier envoi :
Bi → A : fEOR , A, label , EOR i
3. Alice maintient, sur un répertoire accessible publiquement en lecture, une
information décrivant l’ensemble des récipiendaires accusant réception de
son premier envoi). Après un moment décidé par elle (mais qui, d’après
elle, précède t), Alice décide si elle continue le protocole avec les Bi qui
lui ont déjà répondu. Alice peut donc soit décider d’arrêter le protocole
principal, soit de continuer avec l’ensemble β ′ des membres de β ayant
6.5 Un protocole avec tierce partie de confiance off-line
163
réalisé le deuxième envoi du protocole. Dans ce cas, Alice leur envoie alors
la clé k chiffrée à leur intention :
A ⇒ β ′ : fEOO k , β ′ , label , Cβ ′ (k) , EOO k
4. Les membres Bj de β ′ peuvent alors confirmer la réception de la clé k :
Bj′ → A : fEORk , A, label , EOR j,k
Il est évidemment crucial que la clé k transmise par Alice au troisième envoi
du protocole soit chiffrée à l’intention des membres de β ′ , ce qui n’était pas
nécessaire dans le protocole à deux acteurs cibles. En effet, les membres de
β n’ayant pas réalisé le deuxième envoi ne doivent pas pouvoir obtenir la clé
de déchiffrement du chiffré c. Ainsi pour ne chiffrer qu’une seule fois la clé
(et non séparément pour chaque membre de β ′ , et pour alors pouvoir diffuser
un seul message, Alice utilise un chiffrement de groupe. Des exemples de tels
chiffrements (comme décrits à la section 6.4.3 supra) peuvent être trouvés dans
[44] et [28].
Le protocole de recouvrement
Au cours du protocole principal, Alice et les récipiendaires ont la possibilité
d’initier le protocole de recouvrement avec la TPC. Un membre de β ′ initie le
protocole de recouvrement si Alice ne diffuse pas la clé de déchiffrement de c. De
même, Alice initie le recouvrement si tous les membres de β ′ n’ont pas envoyé
le dernier message du protocole principal.
Rappelons ici que l’approche optimiste s’envisage dans un contexte où les acteurs
cibles sont supposés se comporter, la plupart du temps, honnêtement. Ainsi, la
tierce partie n’interviendrait pas à chaque exécution du protocole. Cependant,
malgré l’honnêteté potentielle des acteurs cibles, un message émis peut ne pas
arriver, ce qui implique l’exécution du protocole de recouvrement, si ce message
correspond au quatrième envoi du protocole principal. Aussi, si le nombre de
récipiendaires envisagés par Alice est grand, il peut être fréquent qu’un récipiendaire malhonnête ou une connexion défaillante nécessite la réalisation du
recouvrement. Il peut ainsi apparaître que la tierce partie n’est pas réellement
off-line, puisque le risque de s’y référer peut, dans certaine circonstance, être non
négligeable. Remarquons alors que le protocole de recouvrement, que nous allons à présent décrire, ne nécessite pas la participation de tous les récipiendaires
appartenant à β ′ (même si tous les membres de β ′ reçoivent, par diffusion, un
message de la TPC à la fin du protocole de recouvrement, ceux qui ont terminé
le protocole principal avec succès ne doivent pas nécessairement être à l’écoute
de ce message). Seule Alice, la TPC et certains membres de β ′ seront concernés
par le recouvrement, si ce dernier a lieu.
Avant le moment t (t est spécifié par Alice au cours du premier envoi du protocole
principal), le recouvrement ne peut être initié. Si un acteur tente de réaliser un
164
Chapitre 6 : Non-répudiation de groupe
recouvrement avant t, la TPC lui notifie que le recouvrement ne peut encore
être commencé.
1. Un acteur X (qui peut être Alice ou n’importe lequel des Bi ∈ β) initie
le recouvrement en envoyant à la TPC le label, le hachage du chiffré c,
la clé k chiffrée à l’intention de la TPC, la preuve de non-répudiation à
l’origine de la demande de recouvrement, la preuve de non-répudiation à
l’origine de la clé k chiffrée à l’intention de la TPC ainsi que la preuve de
non-répudiation à l’origine du message chiffré c :
X → TPC : frec X , fsub , A, β, label, t, h(c), CKTPC (k) , rec X , sub, EOO
2. Si un recouvrement a déjà été complété au sujet de cette session du protocole (ce qui est identifié par le couple (label , A)), alors la TPC envoie à
X la clé k ainsi que sa signature sur cette clé, et le tout chiffré à l’intention des membres de β ′ (l’ensemble des récipiendaires avec lesquels Alice
a déclaré vouloir terminer le protocole6 ) :
TPC → X : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k
Après cet envoi le protocole se termine.
Si aucun recouvrement n’a encore eu lieu à propos de cette session du
protocole, alors si le premier envoi de ce protocole de recouvrement arrive
à la TPC avant le moment t (qui se trouve signé par Alice dans EOO),
alors elle répond à X que c’est encore trop tôt :
TPC → X : fearly , early
et le protocole se termine.
Sinon la TPC consulte le répertoire public d’Alice qui contient, à partir du moment t qu’elle a elle-même fixé, l’ensemble β ′ des récipiendaires
avec lesquels elle désire continuer le protocole. Dès que la TPC a consulté
le répertoire public d’Alice, cette dernière considère que le protocole de
recouvrement est initié et arrête de prendre part au protocole principal :
A ↔ TPC : fset , β ′ , label , set
3. Une fois le répertoire public d’Alice consulté, la TPC envoie à Alice sa
preuve de non-répudiation à l’origine de la clé k, qui sera pour Alice un
substitut de EOR i,k (avec i tel que Bi ∈ β ′ ) :
T P C → A : fcon k , A, β ′ , label , con k
6
La TPC doit donc retenir ces informations.
6.5 Un protocole avec tierce partie de confiance off-line
165
4. Puis elle diffuse à l’intention des membres de l’ensemble β ′ , obtenu auprès
d’Alice ainsi qu’à l’intention de l’acteur X ayant initié le recouvrement (si
X n’est pas Alice), la clé k ainsi que sa signature sur cette clé, mais le
tout chiffré à l’intention des membres de β ′ . Elle transmet aussi sa preuve
de non-répudiation à l’origine sur la clé k, qui remplace EOO k :
TPC ⇒ β ′ ∪ {X}\{A} : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k
La première fois que le protocole est initié après le moment t, la TPC consulte
donc le répertoire public accessible uniquement en lecture auprès d’Alice afin
d’y lire β ′ . Si ce répertoire ou l’information attendue n’est pas accessible, la
TPC suppose que β ′ = ∅.
Si un membre Bi ∈ β \β ′ réalise un recouvrement, il reçoit le même message que
celui diffusé au dernier envoi du protocole de recouvrement. Ce message ne lui
sera cependant d’aucune utilité puisque k est chiffrée à l’intention des membres
de β ′ . Cet envoi lui permettra cependant d’être informé qu’il ne fait pas partie
de β ′ .
Si Alice n’arrête pas de prendre part au protocole principal dès que la TPC
consulte son répertoire public, alors les membres de β peuvent profiter d’un
éventuel décalage entre les horloges de la TPC et d’Alice, associé à un effet de
course dans les transmissions. En effet, si l’horloge de la TPC indique que le
moment t est arrivé alors que ce n’est pas encore le cas sur l’horloge d’Alice,
un membre B̃ de β qui n’a pas encore réalisé le deuxième envoi du protocole
principal, peut initier le protocole de recouvrement. La TPC consultera le répertoire public d’Alice et obtiendra un ensemble β ′ ne contenant pas B̃. Si ce
dernier réalise alors le second envoi du protocole principal avant que l’horloge
d’Alice n’indique que le moment t est arrivé et avant que le message envoyé
par la TPC au troisième envoi du protocole de recouvrement n’arrive à Alice,
celle-ci inclura alors B̃ dans β ′ , qui est dès lors différent de celui obtenu par la
TPC. Alice réalise, toujours avant de recevoir le message envoyé par la TPC, le
troisième envoi du protocole principal, B̃ possède ainsi le message m et la preuve
de non-répudiation à l’origine de m. Si B̃ ne réalise pas le dernier envoi du protocole principal, alors Alice recevra de la TPC une preuve de non-répudiation à
la réception concernant un ensemble de récipiendaires dont B̃ ne fait pas partie.
L’équité serait ainsi brisée.
L’équité
Théorème 6.6 Le premier envoi du protocole principal est un point de forte
complétude universel.
Preuve : Si, après ce premier envoi, Alice arrête de prendre part au protocole,
les membres de β pourront tenter d’initier le protocole de recouvrement. Cependant, Alice ne participant plus au protocole, ne déposera rien sur son répertoire
166
Chapitre 6 : Non-répudiation de groupe
public, la TPC décidera alors que β ′ est vide et aucun membre de β ne recevra
d’information.
Si après le premier envoi du protocole principal, un membre de β arrête le
protocole, Alice n’aura aucun intérêt à le considérer comme un membre de β ′ .
Ainsi ce membre de β ne recevra rien d’utilisable d’Alice ou de la TPC, de même
Alice n’obtiendra rien de lui, puisqu’il arrête le protocole avant d’émettre une
information.
¤
Théorème 6.7 Le dernier envoi du protocole principal est un point de forte
complétude pour tous les Bi′ ayant réalisé ce quatrième envoi.
Preuve : Tous les Bi′ ayant réalisé l’envoi ont obtenu le message m, ainsi que
la preuve de non-répudiation à l’origine associée, et ont transmis la preuve de
non-répudiation à la réception du message. Ils peuvent donc arrêter de prendre
part au protocole.
Ce dernier envoi n’est cependant pas un point de complétude pour Alice, car si
tous les membres de β ′ n’ont pas réalisé le quatrième envoi du protocole principal, Alice devra initier le protocole de recouvrement pour obtenir les preuves
de non-répudiation à la réception manquantes.
¤
Théorème 6.8 Le dernier envoi du protocole de recouvrement lors d’un premier recouvrement, et le deuxième envoi du protocole de recouvrement, si un
recouvrement a déjà été réalisé avec succès, sont deux points de forte complétude universels.
Preuve : Après le dernier envoi du protocole de recouvrement, la TPC a
transmis aux membres de β ′ les informations nécessaires à la composition des
preuves de non-répudiation associées au message m. Le message m est accessible
aux membres de β ′ grâce à la clé k qui leur est fournie par la TPC.
Les membres de β\β ′ n’ont pas envoyé (quatrième envoi du protocole principal)
la preuve de non-répudiation à la réception du message m et n’ont reçu ni le
message m, ni sa preuve de non-répudiation à l’origine (par le troisième envoi
du protocole principal ou par le quatrième envoi du protocole de recouvrement).
Lorsque le protocole de recouvrement est initié après avoir été déjà réalisé, son
initiateur recevra soit une information déjà obtenue s’il fait partie de β ′ , soit
un message inexploitable (ce qui n’est pas gênant puisqu’il n’a pas transmis de
preuve de non-répudiation à la réception du message m, s’il ne fait pas partie
de β ′ ).
¤
Théorème 6.9 Le deuxième envoi du protocole principal et le deuxième envoi
du protocole de recouvrement, s’il est initié trop tôt, sont des points de forte
complétude d’Alice.
Preuve : Si Alice arrête de prendre part au protocole après le deuxième envoi
du protocole principal, les membres de β pourront tenter d’initier le protocole de
6.5 Un protocole avec tierce partie de confiance off-line
167
recouvrement. Cependant, Alice ne participant plus au protocole, ne déposera
rien sur son répertoire public, la TPC décidera alors que β ′ est vide et aucun
membre de β ne recevra d’information.
Par contre, aucun des Bi ayant réalisé le deuxième envoi du protocole principal
ne peut arrêter le protocole, car Alice peut alors initier un recouvrement en
incluant ce Bi dans β ′ (elle obtiendrait alors une preuve de non-répudiation à
la réception de ce Bi et ce dernier, ayant arrêté le protocole, ne recevrait pas la
preuve de non-répudiation à l’origine correspondante).
Après le deuxième envoi du protocole de recouvrement, s’il est initié trop tôt,
Alice peut décider d’arrêter de prendre part au protocole. Après le moment t, la
TPC considérera que β ′ est vide, ne trouvant rien sur le répertoire public d’Alice.
Aucun membre de β ′ ne peut cependant arrêter le protocole, puisqu’Alice peut
réaliser, à nouveau, par la suite un recouvrement et obtenir une preuve de nonrépudiation à la réception pour tous les membres de β ′ .
¤
Théorème 6.10 Les envois qui suivent le troisième envoi du protocole principal
sont des points de forte complétude pour les membres de β\β ′
Preuve : Les membres de β\β ′ ne participent plus au protocole après le troisième envoi (soit parce que ce troisième envoi ne leur est pas parvenu, soit parce
qu’ils constatent qu’ils ne sont pas dans le β ′ indiqué dans le troisième envoi),
et les preuves de non-répudiation échangées ne les concernent donc pas.
Alice ne peut s’arrêter après le troisième envoi du protocole principal si β ′ est
non vide, car elle doit obtenir les preuves de non-répudiation provenant des
membres de β ′ . De même, les membres de β ′ continueront le protocole jusqu’à
obtenir le message m et la preuve de non-répudiation associée.
¤
Théorème 6.11 Le protocole est fortement équitable (pour Alice et les membres
de β).
Preuve : Après le deuxième envoi du protocole principal, Alice peut déterminer
β ′ . Si elle ne réalise pas le troisième envoi du protocole principal, les membres
de β peuvent initier un recouvrement. Alice et les membres de β ′ , déterminé
par Alice, recevront les informations attendues en atteignant un des points de
complétude universel du protocole de recouvrement.
Si Alice réalise le troisième envoi, mais ne reçoit pas tous les EOR i,k attendus,
elle initie le recouvrement et obtient le con k nécessaire de la part de la TPC en
atteignant un des points de complétude universel du protocole de recouvrement.
Après le premier envoi du protocole de recouvrement, on atteint soit le point
de complétude universel correspondant au deuxième envoi dans la situation où
un recouvrement a déjà été exécuté, soit le point de complétude d’Alice si le recouvrement est réalisé trop tôt, soit la tierce partie consulte le répertoire public
d’Alice et, comme elle est honnête, elle transmet aux troisième et quatrième envois les informations attendues, atteignant ainsi le point de complétude universel
correspondant au quatrième envoi du protocole de recouvrement.
168
Chapitre 6 : Non-répudiation de groupe
Si, après qu’Alice ait réalisé le troisième envoi du protocole principal, des membres
de β envoient tardivement leur preuve de non-répudiation à la réception de
c, Alice ne sera pas avantagée puisqu’elle n’obtiendra pas la preuve de nonrépudiation à la réception de la clé k de la part de ces acteurs, puisqu’ils ne font
pas partie de β ′
¤
Remarquons que, si Alice tente de tricher en soumettant une mauvaise clé k ′ ,
les preuves ne seront plus valables puisque le label ne pourra plus être vérifié
(label 6= h(m, k ′ )).
Alice peut aussi essayer de tricher en publiant (via son répertoire public) un faux
ensemble βe′ . Remarquons cependant que, si elle publie un ensemble plus petit
que β ′ , elle n’obtiendra pas de preuve de non-répudiation à la réception de la
clé des membres de β ′ \βe′ . Ainsi si le troisième envoi du protocole principal a été
exécuté, ces derniers ont obtenu m et la preuve de non-répudiation à l’origine,
alors qu’Alice n’obtient pas les preuves de non-répudiation à la réception correspondantes. Si βe′ est plus grand que β ′ , Alice permettrait potentiellement à des
acteurs n’ayant pas envoyé de preuves de non-répudiation à la réception du chiffré c d’obtenir la clé k de déchiffrement ainsi que la preuve de non-répudiation à
l’origine (alors qu’Alice n’obtiendrait pas la preuve de non-répudiation à la réception pour m de la part de ces acteurs, n’ayant pas reçu l’accusé de réception
du premier envoi du protocole principal). Enfin, ces argumentations couvrent
aussi le cas où Alice publierait un βe′ contenant à la fois un sous-ensemble de β ′
et des acteurs qui n’appartiennent pas à β ′ , ou encore si βe′ ne serait composé
que d’acteurs qui n’appartenant pas à β ′ . Alice n’a donc aucun intérêt de ne pas
publier un β ′ correct.
Ainsi, Alice a l’avantage de pouvoir contrôler le contenu de β ′ tant que le troisième envoi n’a pas été réalisé ; elle peut retirer des membres de cet ensemble,
sans prendre de risque et sans flouer le ou les acteurs cibles évincés. Cependant,
son but consiste, si elle désire envoyer le message m, à obtenir les preuves de
non-répudiation à la réception des récipiendaires. À moins de ne plus désirer
qu’un membre de β ne reçoive m, elle n’a aucun intérêt à réduire β ′ .
La fin du protocole
Théorème 6.12 Le protocole est temporellement fini.
Preuve : Alice peut soit finir le protocole principal, avant t, ou réaliser après
t un recouvrement qui se terminera en un temps fini grâce aux canaux réactifs
reliant les acteurs cibles à la TPC.
Un acteur cible récipiendaire Bi peut aussi soit finir le protocole principal, soit
initier le recouvrement. S’il initie le recouvrement avant le moment t, la TPC
l’invitera à réessayer après t. Sinon, le protocole de recouvrement est réalisé et
se termine en un temps fini grâce aux canaux réactifs.
¤
6.5 Un protocole avec tierce partie de confiance off-line
169
Les disputes
Si un acteur cible de β affirme avoir reçu le message m d’Alice, il présente au juge
le label, le message m, la clé k, le chiffré c, les ensembles des récipiendaires β et
β ′ (qui se trouvent respectivement aux premier et troisième envois du protocole
principal et qui sont signés, aux mêmes envois, par Alice dans EOO et EOO k )
ainsi que EOO, EOO k ou con k . Le message m et la clé k doivent être transmis
confidentiellement, pour qu’un acteur Bi ∈ β\β ′ ne puisse obtenir le message
m. Sur base de toutes ces informations, le juge vérifie si le plaignant ∈ β ′ et si c
est le chiffré de m au moyen de la clé k, puis après avoir calculé le hachage de c,
il vérifie les signatures des EOO et EOO k et si nécessaire de con k , puis vérifie
si label = h(m, k).
Si Alice affirme avoir envoyé avec succès le message m à un récipiendaire Bi , elle
présente au juge m, label , c, k, Bi , β ′ ainsi que EOR i , EOR i,k ou éventuellement
con k . À nouveau m et k doivent parvenir confidentiellement au juge. Le juge
vérifie si le chiffré c correspond au chiffrement de m au moyen de k, si Bi ∈ β ′
puis il vérifie, au moyen du hachage de c, les différentes signatures reçues ainsi
que la validité du label (label = h(m, k)).
Le comportement de la tierce partie de confiance
Si la TPC s’allie avec Alice, lors d’un recouvrement, la tierce partie peut lui
transmettre con k et ne rien envoyer de valide aux membres de β ′ . De plus, si
les membres de β ′ font alors un recouvrement, la tierce partie peut à nouveau
soit ne rien leur transmettre, ou leur transmettre des informations erronées. S’il
n’est pas possible de prouver que la tierce partie a un tel comportement, il est
cependant détectable si elle répond toujours early ou si elle n’envoie rien ou
envoie des informations fausses alors que les canaux qu’elle utilise sont réactifs.
De même, si la TPC s’allie avec certains membres de β ′ , elle peut leur transmettre personnellement con k et ne rien diffuser ou diffuser des informations
incorrectes aux autres acteurs cibles (y compris Alice). À nouveau, un recouvrement n’apporterait rien de plus aux acteurs cibles floués. Ce comportement de
la TPC est détectable mais non prouvable.
Si la TPC s’allie avec un membre de β\β ′ , elle peut lui procurer une preuve de
non-répudiation à l’origine complète en lui transmettant un con k composé de la
signature de la TPC sur un ensemble de récipiendaires contenant l’acteur cible
allié. La preuve de non-répudiation à l’origine est composée de EOO qui contient
β auquel il appartient et de con k qu’il reçoit de la tierce partie. Une telle action
de la tierce partie est cependant détectable et prouvable si la TPC est mise au
défi de présenter le message signé par Alice, obtenu au cours du protocole de
recouvrement lorsque la TPC a consulté le répertoire public d’Alice. En effet,
ce message signé par Alice ne contiendra pas le récipiendaire allié.
Si la TPC s’allie avec un acteur n’appartenant pas à β, elle ne peut lui faire
obtenir une preuve de non-répudiation à l’origine valide puisque la tierce partie
génère un con k basé sur un ensemble de récipiendaire incluant cet acteur cible
170
Chapitre 6 : Non-répudiation de groupe
allié, alors que le EOO émis par Alice ne le contient pas. La preuve de nonrépudiation est alors invalide.
Remarquons enfin, que la tierce partie peut réaliser une coalition avec Alice et
certains récipiendaires de β en cumulant les comportements décrits ci-dessus.
La viabilité
Théorème 6.13 Si les acteurs cibles se savent honnêtes, le protocole est viable.
Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et les acteurs cibles,
le protocole peut être prouvé viable. En effet, les acteurs cibles étant honnêtes,
soit le protocole principal s’exécute jusqu’à son terme, soit le protocole de recouvrement est exécuté par les acteurs cibles. Ce protocole de recouvrement se
terminera avec succès grâce à la réactivité des canaux utilisés. Remarquons que
si, au deuxième envoi du protocole principal, certains messages n’arrivent pas
à Alice, cette dernière attendra, sachant tous les membres de β honnêtes, qu’ils
réalisent le protocole de recouvrement pour recevoir de la TPC les informations
nécessaires.
¤
Remarquons que si les acteurs cibles sont honnêtes, mais ignorent le comportement les uns des autres, Alice risque d’exclure de β ′ un membre de β si elle
ne reçoit pas toutes les confirmations au deuxième envoi du protocole principal.
Ainsi pour respecter la propriété de viabilité, il est nécessaire que le canal de
communication entre les acteurs cibles soit opérationnel, et ainsi seul le protocole principal s’exécutera.
Remarques
Par la présence des noms des acteurs cibles dans les messages, aucun anonymat
n’est assuré.
Un aspect important de la sécurité des deux derniers protocoles présentés consiste
en la prévention de coalitions entre certains acteurs cibles qui voudraient exclure
un ou plusieurs autres acteurs cibles du protocole. Comme les Bi ne coopèrent
pas au cours des protocoles proposés, mais communiquent chacun directement
avec Alice et la TPC, à moins d’empêcher physiquement un récipiendaire de
communiquer, une coalition de Bi ne peut isoler un acteur cible. De son côté,
Alice peut toujours composer l’ensemble β ′ (reprenant les Bi avec lesquels elle
désire mener le protocole à son terme) à sa guise. Elle n’a cependant, comme
nous l’avons vu, aucun intérêt à tricher sur la composition de cet ensemble. De
la même manière, une coalition entre Alice et certains Bi ne peut briser l’équité
vis à vis d’acteurs extérieurs à la coalition. Enfin, le chiffrement de groupe, que
nous avons proposé, ne se base que sur des informations publiques, donc, à nouveau, les récipiendaires n’intervenant pas lors de la réalisation de ce chiffrement,
une coalition de Bi ne permet pas d’exclure un récipiendaire.
Les protocoles de non-répudiation implémentant l’équité véritable, présentés à
la section 4.6, ne sont pas aisément transposables en des protocoles de non-
6.6 Protocoles sans tierce partie de confiance
171
répudiation de groupe. En effet, le protocole principal débute par l’envoi, réalisé
par Alice, d’une mise en gage de la preuve de non-répudiation à l’origine sur le
message m qu’elle désire transmettre. Cette signature mise en gage d’Alice, peut
être transformée en sa signature finale, et donc en une preuve de non-répudiation
à l’origine, par elle-même ou par la TPC. Le problème est qu’au premier envoi,
Alice ignore quels membres de β vont répondre à son envoi et poursuivre le
protocole. Les membres concernés par la preuve de non-répudiation à l’origine
sont, en effet, nommés dans cette preuve de non-répudiation à l’origine. Alice
ne peut donc au premier envoi composer la mise en gage de la preuve de nonrépudiation7 .
6.6
Protocoles sans tierce partie de confiance
Les techniques de chiffrement de groupe évoquées au cours de ce chapitre peuvent
aussi être utilisées pour réaliser un protocole de non-répudiation de groupe sans
TPC, basé sur le protocole de non-répudiation décrit à la section 5.5.
Au cours du protocole, Alice transmet une valeur aléatoire ou la clé de déchiffrement, chiffrée pour l’ensemble des récipiendaires ayant accusé réception de la
valeur aléatoire précédemment envoyée par Alice. La première valeur aléatoire
serait donc chiffrée pour l’ensemble des récipiendaires, et les valeurs suivantes
chiffrées pour le sous-ensemble des récipiendaires accusant réception dans les
délais prescrits par le protocole. Finalement, la clé sera envoyée à un ensemble
de récipiendaires qui auront accusé à chaque fois réception des messages reçus
dans les délais prescrits. Ces derniers devront accuser réception une dernière fois
pour permettre à Alice d’obtenir sa preuve de non-répudiation à la réception.
Si le sous-ensemble de récipiendaires ayant reçu la clé au nième envoi est de taille
m, la probabilité pour qu’au moins un acteur cible n’accuse pas réception est,
dans un contexte optimiste où les acteurs sont indépendants, 1 − (1 − θ) m (θ
étant le paramètre de succès de la distribution géométrique que nous proposons
d’utiliser à la section 5.5).
Un tel protocole souffre cependant de nombreuses contraintes. Tout d’abord
Alice doit chiffrer différemment les valeurs aléatoires (puis la clé de déchiffrement) au cours du protocole (puisque avant de recevoir les accusés de réception
de l’envoi précédent, elle ignore à qui il faudra envoyer la valeur suivante). Ce
chiffrement de groupe devra être réalisé en tenant compte de la qualité de service des canaux opérationnels ou des délais maximum d’attente prévus. Aussi, le
protocole devra être configuré sur base de canaux n’ayant éventuellement pas les
mêmes caractéristiques en terme de délais de transmission d’un message. Il faut,
de plus, éviter les coalitions de récipiendaires qui pourraient mettre en commun
des ressources afin de détecter, entre deux envois de valeurs provenant d’Alice,
si la dernière valeur reçue est la clé ou non (en profitant, éventuellement, du
7
Il pourrait cependant être intéressant d’imaginer un protocole tel qu’aucun récipiendaire
ne puisse rester sourd à la transaction, à moins d’émettre un message signé indiquant son
abandon du protocole et son renoncement à la preuve de non-répudiation à l’origine que la
TPC pourrait éventuellement produire.
172
Chapitre 6 : Non-répudiation de groupe
maillon le plus faible, à savoir le canal assurant la transmission la plus lente).
D’un autre côté, en cas de tentative de tricherie, le travail des récipiendaires est
plus important que dans le contexte du protocole à deux acteurs cibles ; chaque
message reçu doit être déchiffré pour obtenir la valeur transmise par Alice, puis
seulement le déchiffrement du message chiffré reçu au début du protocole peut
commencer.
Une autre approche envisageable consiste à découper le message à transmettre
en morceaux et à émettre successivement ces morceaux au risque de ne pas recevoir un accusé de réception. Ainsi, si un morceau du message est émis sans
qu’un accusé de réception correspondant ne soit transmis, le morceau suivant
n’est pas envoyé, seul ce morceau est « perdu » et à tous les morceaux précédents correspondent un accusé de réception. Dans le cadre de la non-répudiation
en groupe il peut aussi être intéressant de pouvoir non seulement émettre des
messages à destination de plusieurs acteurs cibles, mais aussi de pouvoir émettre
des messages différents lors d’une même émission. Nous pouvons combiner ces
deux derniers aspects (envois à risque de messages et « multi-diffusion ») pour
mettre sur pied un protocole non équitable de non-répudiation de groupe sans
TPC.
Au cours du protocole, Alice désire envoyer une série de messages à un ensemble
d’acteurs récipiendaires. Chacun de ces messages devra être de peu de valeur, de
manière à ce que, si Alice n’en obtient pas un accusé de réception, son préjudice
soit minime. Alice commencera par diffuser le premier message, les récipiendaires
accusant réception recevront le message suivant, et ainsi de suite. Cependant
si des récipiendaires envoient un accusé de réception tardivement, Alice leur
enverra tout de même, après réception de leur accusé de réception, le message
qui suit le dernier message qu’ils ont chacun reçu. Ainsi Alice peut être amenée
à devoir envoyer un message mi à un ensemble de récipiendaires, ainsi qu’un
message mj avec j 6= i à un autre ensemble de récipiendaires. Notre volonté est
qu’Alice ne réalise qu’une seule diffusion à chaque étape contenant les différents
messages à envoyer.
Protocole 6.4 Un protocole d’échange sans tierce partie de confiance
Les deux envois répétés du protocole sont :
1. A ⇒ β : c
2. Bj → A : fNRRBj ,i , A, label , NRR Bj ,i
Les prémices
Soit M = (m1 , . . . , mn ) la série de messages qu’Alice désire diffuser. Chaque acteur cible récipiendaire potentiel, Bi , partage secrètement avec Alice un premier
pi distinct et une graine8 ri . Tous les acteurs cibles connaissent aussi le nombre
n (= |M |) de messages de la série de messages qu’Alice s’apprête à diffuser.
Alice et l’acteur récipiendaire i initialisent alors tous deux une variable n i à n.
8
seed en anglais.
6.6 Protocoles sans tierce partie de confiance
173
Les preuves
La preuve de non-répudiation à l’origine du message m′ i produit par Alice est :
¡
¡ ¢¢
NRO δ,i = SigA fNRO δ,i , δ, label, Cδ m′i
où δ est l’ensemble des récipiendaires du message m′i , et label le label choisi par
Alice et associé à la session du protocole.
La preuve de non-répudiation à la réception du message m′ i produit par le
récipiendaire Bj est :
³
´
NRR Bj ,i = SigBj fNRRBj ,i , A, label , NRO δ,i
où Bj est un des membres de δ
Le protocole
Soit β l’ensemble des récipiendaires auxquels Alice désire envoyer les messages
m1 à mn . Le protocole consiste en une succession de phases telles que, à chaque
phase :
1. Alice désire diffuser le message m1 à un ensemble de récipiendaires β1
n’ayant pas encore reçu ce message, m2 à un ensemble de récipiendaire
β2 ayant accusé réception du message m1 et n’ayant pas encore reçu le
message m2 ,. . . , le message mn à un ensemble de récipiendaires βn ayant
accusé réception du message mn−1 et n’ayant pas encore reçu le message
mn , avec :
– β = β0 ∪ β1 ∪ · · · ∪ βn ∪ βn+1 ,
– ∀i 6= j : βi ∩ βj est vide,
– β0 composé des récipiendaires ayant reçu un message mi mais dont
l’accusé de réception correspondant n’est pas (encore) parvenu à Alice,
– βn+1 composé des récipiendaires ayant reçu les n messages et accusé
réception de ceux-ci9 ,
– le message m′i composé du message mi (information cible qu’Alice désire
transmettre), du label et de NRO βi ,i :
m′i = fNRO βi ,i , βi , label , mi , NRO βi ,i
Pour ce faire, elle résout les systèmes suivants au moyen du lemme Chinois
(cf. section 6.4.3) :
(
x1 ≡ hni (ri ) (mod pi ) ∀Bi ∈ β1
x1 ≡ 0 (mod ps )
∀Bs ∈ β\β1
..
.
(
n
xn ≡ h j (rj ) (mod pj ) ∀Bj ∈ βn
xn ≡ 0 (mod pt )
∀Bt ∈ β\βn
9
Au départ, tous les βi (avec i 6= 1, 0 ≤ i ≤ n + 1) sont vides, sauf β1 qui contient tous les
récipiendaires avec lesquels Alice veut communiquer.
174
Chapitre 6 : Non-répudiation de groupe
où hx (y) correspond à x hachages successifs de y.
Alice calcule alors (arithmétiquement) :
c=
n
X
i=1
¡ ¢
xi · Cβi m′i
et diffuse c à l’intention des membres de β :
A⇒β :c
Remarquons qu’au début du protocole, lors du premier envoi, tous les
récipiendaires sont dans β1 (tous les autres ensembles étant vides).
2. Un récipiendaire Bj d’un ensemble βi retrouve mi en déchiffrant le résultat
de :
c · (hnj (rj ))−1 mod pj
Les membres de β\βn+1 sont sensés accuser réception du dernier message
qu’ils ont reçu d’Alice :
Bj → A : fNRRBj ,i , A, label , NRR Bj ,i
Alice et Bj mettent alors à jour nj : nj = nj − 1.
Alice collecte les accusés de réception et recompose les ensembles βi avec
les récipiendaires ayant accusé réception du message mi−1 lors de la phase
en cours, pour 1 < i ≤ n ; βn+1 est composé des récipiendaires ayant accusé
réception de mn , β1 est vidé, et les récipiendaires n’ayant pas envoyé un
accusé de réception relatif au dernier message reçu se retrouvent dans β 0 .
En effet, un récipiendaire n’ayant pas accusé réception d’un message ne
recevra plus de message (les récipiendaires appartenant à β0 ne reçoivent
aucun message) tant qu’il n’aura pas envoyé l’accusé de réception attendu.
En particulier, lors du premier envoi du protocole, lors de la première
phase, tous les membres de β ont reçu le premier message (β1 = β et
tous les βi , avec i 6= 1 et 0 ≤ i ≤ n + 1, sont vides), Alice ne doit donc
plus envoyer ce premier message à nouveau. Les récipiendaires n’ayant
accusé réception d’aucun message ne peuvent rester dans β1 sous peine de
recevoir à chaque envoi le message m1 , ils sont ainsi mis, après le premier
envoi, dans β0 .
Remarques
Le protocole n’offre évidemment aucune équité, puisqu’un message et sa preuve
de non-répudiation à l’origine peuvent être émis, au cours d’une étape du protocole, sans certitude que la preuve de non-répudiation à la réception correspondante sera transmise. Le principe ressemble par certains aspects aux protocoles proposés par Syverson pour se passer d’une TPC. À tout moment un
récipiendaire peut obtenir un message sans en accuser réception. Aussi Alice
6.7 Conclusion
175
peut décider d’exclure un récipiendaire de ses prochains envois, même si celui-ci
a accusé réception des messages précédents.
Un défaut est la taille de c qui est composé des xi résultants des résolutions des
systèmes d’équations dont les solutions peuvent être aussi grandes que le produit
de tous les pi ∀i ∈ [1, n]. Un des buts recherchés est la diffusion de messages
et non l’envoi par Alice de messages séparés pour chaque récipiendaire. Il n’y a
donc pas de gain en quantité d’informations transmises, mais bien en simplicité
de communication (en permettant une diffusion plutôt que plusieurs envois à
chaque étape du protocole).
Remarquons enfin que chaque message mi doit être plus petit que tous les
premiers pj des récipiendaires de β, ∀i, j.
6.7
Conclusion
Nous terminons ainsi notre étude des protocoles de non-répudiation par les protocoles de non-répudiation de groupe. Nous avons considéré des généralisations
des protocoles avec TPC on-line et off-line. Puis nous avons discuté de protocoles de non-répudiation de groupe sans TPC. Nous avons alors pu nous rendre
compte que la difficulté que nous avons rencontrée pour obtenir des protocoles
de non-répudiation à deux acteurs cibles sans TPC est sensiblement amplifiée
pour obtenir des protocoles de non-répudiation de groupe sans TPC.
Chapitre 7
Conclusion
Pour conclure ce travail, nous nous proposons de récapituler brièvement ses
différents aspects et contributions originales.
Nous avons, dans un premier temps, proposé un modèle de protocoles d’échange.
Nous avons formalisé itérativement les acteurs ou entités en communication,
les canaux de communication, les qualités de ces canaux (incertain, réactif, et
opérationnel) puis les protocoles et en particulier les protocoles d’échange.
Sur base de ce modèle, nous avons formalisé, entre autres, les notions d’équité
(équité forte, faible et probabiliste). Pour ce faire nous avons introduit la notion
de point de complétude.
Cette modélisation nous a permis d’uniformiser notre approche des différents
protocoles.
Le second objectif de ce travail a consisté à présenter, sur base du modèle proposé, une vision globale et structurée des protocoles de non-répudiation connus
au moment de la rédaction. Beaucoup de résultats épars existaient et une mise
en forme structurée de ceux-ci apparaissait nécessaire. La quasi totalité des protocoles de non-répudiation existants se basant sur une tierce partie de confiance,
l’évolution des contraintes pesant sur celle-ci apparaît clairement au travers de
la compilation structurée proposée.
Nous avons alors proposé de nouveaux protocoles de non-répudiation pour chaque
évolution clé identifiée : protocoles avec tierce partie de confiance off-line (à la
section 4.4.3), protocoles avec tierce partie de confiance respectant l’équité véritable (à la section 4.6), protocoles sans tierce partie de confiance (à la section
5.5), protocoles de groupe avec et sans tierce partie de confiance (aux sections
6.4 et 6.5).
Nous avons commencé par considérer les protocoles de non-répudiation à deux
acteurs cibles avec tierce partie de confiance. Au cours de cette étude nous avons
évoqué les protocoles de non-répudiation avec tierce partie de confiance in-line
(au cours desquels la TPC agit à tout moment comme intermédiaire entre les
entités en communication), on-line (la TPC intervient à chaque session du protocole, mais pas nécessairement comme intermédiaire obligé entre les entités) puis
178
Chapitre 7 : Conclusion
off-line (où la TPC n’intervient dans le protocole que lors d’un problème ; cette
approche est dite optimiste). Nous avons alors étudié les protocoles d’échange
respectant l’équité dite véritable. Au cours de tels protocoles, la TPC off-line, si
elle intervient dans le protocole, ne peut produire des informations distinguables
de celles qui auraient été produites au cours d’une exécution du protocole à laquelle elle n’aurait pas pris part. Nous avons proposé un protocole corrigeant
certains manquements des protocoles existants, puis nous avons proposé des
protocoles d’échange, dont un de non-répudiation, vérifiant l’équité véritable.
Nous avons, par la suite étudié, les protocoles de non-répudiation à deux acteurs
cibles sans tierce partie de confiance. Constatant l’absence de résultats significatifs, nous avons proposé un premier protocole de non-répudiation sans TPC
assurant l’équité de manière probabiliste.
L’étude des protocoles de non-répudiation à deux acteurs cibles terminée, nous
avons considéré la généralisation naturelle des approches précédentes, à savoir les
protocoles de non-répudiation de groupe. Aucun protocole de non-répudiation de
groupe n’existant, nous avons proposé une topologie de communication distincte
des topologies utilisées dans les quelques résultats existant dans le domaine des
protocoles d’échange équitable. Nous proposons les premiers protocoles de nonrépudiation de groupe avec tierce partie on-line et off-line puis décrivons un
protocole d’échange de groupe sans tierce partie de confiance.
L’étude réalisée peut bien sûr être poursuivie dans diverses directions.
Tout d’abord une mise en œuvre pratique des protocoles existants ou proposés
a été en partie réalisée par Steve Kremer dans [46] et doit encore être étoffée.
Une approche systématique de la vérification des protocoles doit aussi être réalisée. Les premiers résultats dans ce domaine viennent tout récemment d’être
proposés [49] à l’aide d’un outil de vérification formel basé sur la théorie des
jeux.
Nous avons ébauché, dans le cadre des protocoles de non-répudiation avec tierce
partie de confiance, l’étude de l’impact d’une déviance de comportement de la
tierce partie de confiance. Cette étude devra encore être raffinée et systématisée
pour aboutir à la modification éventuelle des protocoles existants. En pratique,
une tierce partie de confiance sera souvent un serveur répondant aux requêtes
des entités désirant communiquer. Ce serveur sera bien entendu vulnérable, les
protocoles devant alors pouvoir continuer à assurer l’équité aux entités honnêtes malgré une tierce partie de confiance se comportant malhonnêtement. Le
respect de l’équité n’imposerait évidemment pas, dans ce cas, l’aboutissement
de l’échange des preuves de non-répudiation, mais assurerait plutôt l’arrêt du
protocole sans qu’aucune preuve ne soit échangée.
Notons aussi, qu’en pratique, il faut se méfier des situations où l’une des parties
en communication et la tierce partie de confiance ne font qu’un. Nous avons, au
cours de ce travail, systématiquement évoqué le danger de coalitions entre Alice
ou Bob et la TPC.
L’étude réalisée a aussi mis en évidence que nombre de protocoles de non-répudiation nécessitent l’usage de canaux réactifs (souvent pour les connexions
179
avec la tierce partie de confiance). En pratique, les réseaux actuels n’offrent que
rarement une telle qualité de service. Si l’étude de protocoles de non-répudiation
ne nécessitant pas de tels canaux est encore à réaliser, nous remarquons cependant que dans les protocoles de non-répudiation les plus aboutis, l’équité n’est
pas remise en question si les canaux ne sont pas opérationnels, seule la viabilité
peut en être affectée. Une qualité de service aussi restrictive sur les canaux est
nécessaire afin de ne pas risquer de perdre l’équité (même sous l’hypothèse de
l’éventuelle honnêteté des parties en communication) au cours de certains protocoles (en particulier, les protocoles avec tierce partie de confiance). Remarquons
cependant que le protocole que nous proposons à la section 5.5, s’il est gourmand en communication, ne nécessite pas, dans sa version avec délais, de réseau
opérationnel ou même réactif. En ce sens, il est le seul protocole étudié offrant
cette possibilité.
Enfin, si les protocoles de non-répudiation ont dès aujourd’hui un intérêt pratique dans le cadre du commerce électronique, il nous semble qu’ils auront encore
d’autres rôles à jouer. Par exemple, les protocoles de courrier électronique actuels
prévoient de transiter par des serveurs de courrier, y compris donc pour réaliser
les courriers électroniques recommandés. Il faut cependant envisager l’usage des
protocoles de non-répudiation où les correspondants peuvent potentiellement
communiquer directement entre eux et obtenir les aspects de non-répudiabilité
désirés.
Les procédures de votes électroniques peuvent aussi trouver une source d’inspiration dans les protocoles de non-répudiation. Les électeurs doivent recevoir une
preuve de non-répudiation à la réception de leur vote, empêchant ainsi un tiers
de nier qu’ils aient voté. Et si un électeur affirme ne pas avoir voté, une preuve de
non-répudiation à l’origine du vote peut être présentée. Remarquons cependant
que les protocoles de non-répudiation ne peuvent évidemment pas être utilisés
tel quels, le vote devant souvent être anonyme, des mécanismes additionnels
doivent donc être greffés sur les protocoles bruts de non-répudiation.
Une extension des protocoles de votes électroniques consiste en tous les protocoles réalisant des mécanismes participatifs : sondages, référendum, pétition. . . Et
à nouveau chaque usage requiert éventuellement l’un ou l’autre outil sécuritaire
supplémentaire.
Bibliographie
[1] M. Abadi and R. M. Needham. Prudent engineering practice for cryptographic protocols. In IEEE Computer Society Symposium on Research in
Security and Privacy, pages 122–136, 1994.
[2] A. V. Aho, J. E. Hopcroft, and J. D. Ullman. The design and analysis of
computer algorithms. Addison-Wesley, 1974.
[3] S. G. Akl. Digital Signatures : A Tutorial Survey. IEEE Computer,
16(2) :15–24, Feb. 1983.
[4] R. Anderson and R. Needham. Robustness principles for public key protocols. In Advances in Cryptology : Proceedings of Crypto 95, Lecture Notes
in Computer Science, pages 1–14. Springer-Verlag, Aug. 1995.
[5] N. Asokan. Fairness in Electronic Commerce. PhD thesis, University of
Waterloo, May 1998.
[6] N. Asokan, B. Baum-Waidner, M. Schunter, and M. Waidner. Optimistic
synchronous multi-party contract signing. Research Report RZ 3089, IBM
Research Division, Dec. 1998.
[7] N. Asokan, M. Schunter, and M. Waidner. Optimistic protocols for multiparty fair exchange. Research Report RZ 2892, IBM Research, Dec. 1996.
[8] N. Asokan, V. Shoup, and M. Waidner. Asynchronous protocols for optimistic fair exchange. Research Report RZ 2976, IBM Research, Nov. 1997.
[9] E. Bach. Discrete logarithms and factoring. Technical Report UCB/CSD
84/186, Computer Science Division (EECS), University of California, Berkeley, California, 1984.
[10] A. Bahreman and J. D. Tygar. Certified electronic mail. In Proceedings of
the Symposium on Network and Distributed System Security, pages 3–19.
Internet Society, Feb. 1994.
[11] F. Bao, R. Deng, K. Q. Nguyen, and V. Varadharajan. Multi-party fair
exchange with off-line trusted neutral party. In DEXA 99 Workshop on
Electronic Commerce Security, pages 858–863. IEEE Press, 1999.
[12] F. Bao, R. H. Deng, and W. Mao. Efficient and practical fair exchange
protocols with off-line TTP. In Proceedings of the 19th IEEE Symposium
on Security and Privacy, pages 77–85, May 1998.
[13] B. Baum-Waidner and M. Waidner. Optimistic asynchronous multi-party
contract signing. Research Report RZ 3078, IBM Research Division, Nov.
1998.
182
Bibliographie
[14] M. Bellare, D. Pointcheval, and P. Rogaway. Authenticated key exchange
secure against dictionary attacks. In Advances in Cryptology : Proceedings
of Eurocrypt 2000, volume 1807 of Lecture Notes in Computer Science,
pages 139–155. Springer-Verlag, May 2000.
[15] M. Ben-Or, O. Goldreich, S. Micali, and R. Rivest. A fair protocol for
signing contracts. IEEE Transaction on Information Theory, 36(1) :40–46,
Jan. 1990.
[16] S. Berkovits. How to broadcast a secret. In Advances in Cryptology :
Proceedings of Eurocrypt 91, volume 547 of Lecture Notes in Computer
Science, pages 535–541. Springer-Verlag, Apr. 1991.
[17] L. Blum, M. Blum, and M. Shub. A simple unpredictable pseudo-random
number generator. SIAM Journal on Computing, 15(2) :364–383, May 1986.
[18] M. Blum. How to exchange (secret) keys. ACM Transactions on Computer
Systems, 1(2) :175–193, May 1983. Previously published in ACM STOC 83
proceedings, pages 440–447.
[19] K. S. Booth. Authentication of signatures using public key encryption.
Communications of the ACM, 24(11) :772–774, Nov. 1981.
[20] A. Bosselaers and B. Preneel. Integrity primitives for secure information systems : final RIPE report of RACE Integrity Primitives Evaluation
(R1040), volume 1007 of Lecture Notes in Computer Science. SpringerVerlag, 1995.
[21] J. Boyar, D. Chaum, I. Damgård, and T. Pedersen. Convertible undeniable
signatures. In Advances in Cryptology : Proceedings of Crypto 90, volume
537 of Lecture Notes in Computer Science, pages 189–205. Springer-Verlag,
Aug. 1990.
[22] C. Boyd. Some applications of multiple key ciphers. In Advances in Cryptology : Proceedings of Eurocrypt 88, volume 330 of Lecture Notes in Computer
Science, pages 455–467. Springer-Verlag, May 1988.
[23] C. Boyd and E. Foo. Off-line fair payment protocols using convertible
signatures. In Proceedings of Asiacrypt 1998, volume 1514, pages 271–285.
Springer-Verlag, 1998.
[24] C. Boyd and W. Mao. Designing secure key exchange protocols. In Proceedings of Esorics 94, volume 875 of Lecture Notes in Computer Science,
pages 93–106. Springer-Verlag, Nov. 1994.
[25] D. Chaum. Designated confirmer signatures. In Advances in Cryptology :
Proceedings of Eurocrypt 94, volume 950 of Lecture Notes in Computer
Science, pages 86–91. Springer-Verlag, May 1994.
[26] D. Chaum and H. V. Antwerpen. Undeniable signatures. In Advances
in Cryptology : Proceedings of Crypto 89, volume 435 of Lecture Notes in
Computer Science, pages 212–216. Springer-Verlag, Aug. 1989.
[27] L. Chen. Efficient fair exchange with verifiable confirmation of signatures.
In Proceedings of Asiacrypt 1998, volume 1514, pages 286–299. SpringerVerlag, 1998.
Bibliographie
183
[28] G.-H. Chiou and W.-T. Chen. Secure broadcasting using the secure lock.
IEEE Transactions on Software Engineering, 15(8) :929–934, Aug. 1989.
[29] T. Coffey and P. Saidha. Non-repudiation with mandatory proof of receipt.
ACM Computer Communication Review, 26(1) :6–17, 1996.
[30] I. Damgård and T. Pedersenr. New convertible undeniable signature
schemes. In Advances in Cryptology : Proceedings of Eurocrypt’96, volume
1070 of Lecture Notes in Computer Science, pages 372–386. Springer-Verlag,
1996.
[31] R. H. Deng, L. Gong, A. A. Lazar, and W. Wang. Practical protocols
for certified electronic mail. Journal of Network and System Management,
4(3) :279–297, 1996.
[32] D. E. Denning. Protecting public keys and signature keys. IEEE Computer,
Feb. 1983.
[33] Y. Desmedt. Society and group-oriented cryptography : a new concept. In
Advances in Cryptology : Proceedings of Crypto 87, volume 293 of Lecture
Notes in Computer Science, pages 120–127. Springer-Verlag, 1987.
[34] C. M. Ellison, B. Frantz, B. Lampson, R. Rivest, B. M. Thomas, and T. Ylonen. Simple public key certificate. Internet Engineering Task Force Draft
IETF, July 1997.
[35] S. Even, O. Goldreich, and A. Lempel. A randomized protocol for signing
contracts. Communications of the ACM, 28(6) :637–647, June 1985.
[36] B. Fox and B. LaMacchia. Certificate revocation : Mechanics and meaning.
In International Conference on Financial Cryptography, volume 1465 of
Lecture Notes in Computer Science. Springer-Verlag, 1998.
[37] N. Francez. Fairness.
Springer-Verlag, 1986.
Texts and Monographs in Computer Science.
[38] M. Franklin and G. Tsudik. Secure group barter : Multi-party fair exchange
with semi-trusted neutral parties. In Proceedings of Financial Cryptography, volume 1465. Springer-Verlag, 1998.
[39] M. K. Franklin and M. K. Reiter. Fair exchange with a semi-trusted third
party. In 4th ACM Conference on Computer and Communications Security,
pages 1–5. ACM Press, Apr. 1997.
[40] M. R. Garey and D. S. Johnson. Computers and Intractability : A Guide
to NP-Completeness. W.H. Freeman and Company, 1979.
[41] I. Gassko, P. S. Gemmell, and P. MacKenzie. Efficient and fresh certification. In International Workshop on Practice and Theory in Public Key
Cryptography 2000, Lecture Notes in Computer Science, pages 342–353.
Springer-Verlag, Jan. 2000.
[42] D. Gollmann. Computer Security. John Wiley-Sons, 1st edition edition,
1999.
[43] Y. Han. Investigation of non-repudiation protocols. In ACISP : Information
Security and Privacy : Australasian Conference, volume 1172 of Lecture
Notes in Computer Science, pages 38–47. Springer-Verlag, 1996.
184
Bibliographie
[44] T. Hwang. Cryptosystem for group oriented cryptography. In Advances in
Cryptology : Proceedings of Eurocrypt 90, volume 473 of Lecture Notes in
Computer Science, pages 352–360. Springer-Verlag, May 1990.
[45] N. Jefferies, C. Mitchell, and M. Walker. A proposed architecture for trusted
third party services. In International conference on Cryptography : policy
and algorithms, volume 1029, pages 98–104. Springer-Verlag, 1996.
[46] S. Kremer. A study of several non-repudiation protocols. Master’s thesis,
Université Libre de Bruxelles, 1999.
[47] S. Kremer and O. Markowitch. A multi-party non-repudiation protocol. In
SEC 2000 : 15th International Conference on Information Security, IFIP
World Computer Congress, pages 271–280. Kluwer Academic, Aug. 2000.
[48] S. Kremer and O. Markowitch. Optimistic non-repudiable information exchange. In 21st Symposium on Information Theory in the Benelux, pages
139–146. Werkgemeenschap Informatie en Communicatietheorie, May 2000.
[49] S. Kremer and J.-F. Raskin. Formal verification of non-repudiation protocols. A game approach. In Proceedings of the Workshop on Formal Methods
and Computer Security, pages 1–15, July 2000.
[50] P. Landrock. TTPs overview — concepts and review of the state of the art
from a technical point of view. In State of the Art in Applied Cryptography,
volume 1528, pages 241–263. Springer-Verlag, June 1998.
[51] O. Markowitch and S. Kremer. An optimistic multi-party non-repudiation
protocol. In Icisc 2000 : 3rd International Conference on Information Security and Cryptology, Lecture Notes in Computer Science. Springer-Verlag,
Dec. 2000.
[52] O. Markowitch and Y. Roggeman. Probabilistic non-repudiation without
trusted third party. In Second Workshop on Security in Communication
Network 99. University of Salerno, September 1999.
[53] L. Matthiessen. Le problème des restes dans l’ouvrage chinois Swang-King
de Sum-Tzi et dans l’ouvrage Ta Sen Lei Schu de Yihhing. Comptes rendus
de l’Académie de Paris, 92 :291–294, 1881.
[54] A. J. Menezes, P. C. V. Oorschot, and S. A. Vanstone. Handbook of applied
cryptography. Series on discrete mathematics and its applications. CRC
Press, 1997.
[55] M. Naor and K. Nissim. Certificate revocation and certificate update.
In Proceedings of the 7th USENIX Security Symposium (SECURITY-98),
pages 217–228. Usenix Association, Jan. 1998.
[56] M. Naor and K. Nissim. Certificate revocation and certificate update. Technical Report CS99-05, Weizmann Institute of Science, Faculty of Mathematics and Computer Science, Jan. 1, 1999.
[57] C. Pfleeger. Security in computing. Prentice Hall, 2nd edition edition, 1997.
[58] G. Poupard and J. Stern. Security analysis of a practical “on the fly” authentication and signature generation. In Advances in Cryptology : Proceedings
of Eurocrypt’98, volume 1403 of Lecture Notes in Computer Science, pages
422–436. Springer-Verlag, 1998.
Bibliographie
185
[59] M. O. Rabin. Transaction protection by beacons. Journal of Computer and
System Sciences, 27(2) :256–267, Oct. 1983.
[60] J. Riordan and B. Schneier. A certified E-mail protocol. In ACM, editor,
Proceedings of the 14th Annual Computer Security Applications Conference,
pages 347–351, 1998.
[61] R. Rivest, A. Shamir, and L. Adleman. On digital signatures and public
key cryptosystems. Communication of the ACM., 21 :120–126, 1978.
[62] R. L. Rivest, A. Shamir, and D. A. Wagner. Time-lock puzzles and timedrelease crypto. Technical Report MIT/LCS/TR-684, Massachusetts Institute of Technology, Feb. 1996.
[63] K. Rosen. Elementary number theory and its applications. Addison-Welsey,
3rd edition, 1993.
[64] R. Rueppel. Revocation and revocation certificates. In Proceedings of the
Trusted Third Party Workshop, Barcelona, Spain, pages 1–8, Feb. 1995.
[65] C. P. Schnorr. Efficient identification and signatures for smart cards. In
Advances in Cryptology : Proceedings of Crypto 89, volume 435, pages 239–
252. Springer-Verlag, Aug. 1989.
[66] D. R. Stinson. Cryptography Theory and Practice. CRC Press, 1995.
[67] D. R. Stinson and R. Wei. Bibliography on authentication codes.
http ://cacr.math.uwaterloo.ca/˜dstinson/acbib.html, October 1998.
[68] P. Syverson. Weakly secret bit commitment : Applications to lotteries
and fair exchange. In Proceedings of the 1998 IEEE Computer Security
Foundations Workshop (CSFW11), pages 2–13, june 1998.
[69] T. Tedrick. How to exchange half a bit. In Advances in Cryptology :
Proceedings of Crypto 83, pages 147–151. Plenum Press, New York and
London, 1984, Aug. 1983.
[70] T. Tedrick. Fair exchange of secrets. In Advances in Cryptology : Proceedings of Crypto 84, volume 196 of Lecture Notes in Computer Science,
pages 434–438. Springer-Verlag, 1985.
[71] J. V. Tilburg. Secret-key exchange with authentication. In Computer Security and Industrial Cryptography, volume 741 of Lecture Notes in Computer
Science, pages 71–86. Springer-Verlag, 1993.
[72] C. S. Wallace. Physically random generator. Computer Systems Science
and Engineering, 5(2) :82–88, Apr. 1990.
[73] C. You, J. Zhou, and K. Lam. On the efficient implementation of fair nonrepudiation. Computer Communication Review, 28(5) :50–60, Oct. 1998.
[74] N. Zhang and Q. Shi. Achieving non-repudiation of receipt. The Computer
Journal, 39 :844–853, 1996.
[75] J. Zhou. Non-repudiation. PhD thesis, University of London, Dec. 1996.
[76] J. Zhou, R. Deng, and F. Bao. Evolution of fair non-repudiation with
TTP. In ACISP : Information Security and Privacy : Australasian Conference, volume 1587 of Lecture Notes in Computer Science, pages 258–269.
Springer-Verlag, 1999.
186
Bibliographie
[77] J. Zhou, R. Deng, and F. Bao. Some remarks on a fair exchange protocol.
In Proceedings of 2000 International Workshop on Practice and Theory
in Public Key Cryptography, volume 1751 of Lecture Notes in Computer
Science, pages 46–57. Springer-Verlag, Jan. 2000.
[78] J. Zhou and D. Gollmann. Certified electronic mail. In ESORICS : European Symposium on Research in Computer Security, volume 1146, pages
160–171. Springer-Verlag, 1996.
[79] J. Zhou and D. Gollmann. An efficient non-repudiation protocol. In Proceedings of the 10th Computer Security Foundations Workshop, pages 126–132.
IEEE Computer Society Press, June 1997.
[80] J. Zhou and K. Lam. Securing digital signatures for non-repudiation. Computer Communications, 22(8) :710–716, May 1999.
[81] D. Zuckerman. General weak random sources. In Proceedings of the 31st
IEEE Symposium on Foundations of Computer Science, pages 534–543,
1990.