Vous êtes sur la page 1sur 79

Master Algèbre Géométrie et Application

Thème :

Blind Signature: Etude des


schémas de signature aveugle

Présenté et soutenu par : Encadreur :


M. Mouhamadou Lamine BA Dr Demba Sow
Soutenu le : 09 Janvier 2023

Jury :
President : Pr. Amadou Lamine FALL UCAD
Membres : Pr. Demba SOW UCAD
Dr. Alassane DIOUF UCAD
Dr. Mohamed TRAORE UCAD
Table des matières

Avant Propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

Dédicaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

Remerciement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Table des figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Chapitre 1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1 Rappels mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


1.1.1 Théorie des nombres[14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1.1 Divisibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1.2 Congruences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.2 Théorie des groupes[15] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


1.1.2.1 Sous-groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2.2 Groupe cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.3 Logarithme discret[1][19] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


1.1.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3.3 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.4 Machine de Turing[17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9


1.1.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.4.2 Machine de Turing interactive . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1
2

1.1.4.3 Machine de Turing probabiliste . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Rappels cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


1.2.1 Notions de cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.2 La cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.3 Cryptosystème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.4 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.2 Les objectifs de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


1.2.2.1 La confidentialite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2.2 L’integrité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2.3 L’authenticité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2.4 La non-répudiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.2.5 L’anonymat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.3 Cryptosystème symètrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14


1.2.3.1 Les cryptosystèmes alphabétiques . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3.2 Les chiffrements par blocs : le DES . . . . . . . . . . . . . . . . . . . . 14
1.2.3.3 Le standard de chiffrement A.E.S : . . . . . . . . . . . . . . . . . . . . 15

1.2.4 Cryptosystème asymètrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


1.2.4.1 Cryptosysteme à clé publique (PKC) . . . . . . . . . . . . . . . . . . . 16
1.2.4.2 L’échange de clés de Diffie-Hellman . . . . . . . . . . . . . . . . . . . 17
1.2.4.3 Crytosysteme RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.4.4 Cryptosytème EL-GAMAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2.5 Cryptographie symétrique vs. Cryptographie asymétrique . . . 19


1.2.5.1 Les avantages des cryptosystèmes symétriques . . . . . . . . . 19
1.2.5.2 Les inconvenients des cryptosystèmes symétriques . . . . . . 19
1.2.5.3 Les avantages des cryptosystèmes asymétriques . . . . . . . . 19
1.2.5.4 Les inconvénients des cryptosystèmes asymétriques . . . . 19

1.2.6 Attaques contre les cryptosystemes . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


1.2.6.1 Les attaques passives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.6.2 Les attaques par force brute (exhaustives) . . . . . . . . . . . . . . 20

1.2.7 Hachage et signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


1.2.7.1 Hachage[26][2][30] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.7.2 Signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Chapitre 2 Anonymat et Signature numérique . . . . . . . . . . . . . . . . 25

2.1 Anonymat[20] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.1 Définition de l’anonyamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2 Le pseudonymat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.3 La non chaınabilité (non-reliabilité) . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.4 Revocation d’anonymat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3

2.1.5 La protection de la vie privée (confidentialité) . . . . . . . . . . . . . . . 28


2.1.6 L’identité numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2 Signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29


2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2 Principes des signatures numériques . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.2.1 Signature sans hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.2.2 Signature avec hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2.3 Schéma de signature numérique et sécurités . . . . . . . . . . . . . . . . . . 32


2.2.3.1 Schéma de signature numérique . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3.2 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.2.4 Attaques sur la signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . 33


2.2.5 Quelques exemples de signatures numérique . . . . . . . . . . . . . . . . . . 33
2.2.5.1 Signature numérique RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.5.2 La signature numérique EL-GAMAL . . . . . . . . . . . . . . . . . . 35
2.2.5.3 Schéma de signature Schnoor[28] . . . . . . . . . . . . . . . . . . . . . . 36
2.2.5.4 La signature digitale DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Chapitre 3 Etude des schémas de signature aveugle . . . . . . . . . . . 39

3.1 Idées de bases de la signature aveugle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


3.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.2 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.3 Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.4 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2 Schéma de signature aveugle et sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42


3.2.1 Schéma de signature aveugle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.2 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3 Attaque des schémas de signature aveugle . . . . . . . . . . . . . . . . . . . . . . . . . . 46


3.3.1 L’attaque séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.2 L’attaque parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.4 Quelques exemples de schémas de signature aveugle. . . . . . . . . . . . . . .47


3.4.1 Signature aveugle RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.1.1 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.1.2 Analyse de la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4.1.3 Attaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4.1.4 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4

3.4.2 Signature aveugle de la modification DSA . . . . . . . . . . . . . . . . . . . . 53


3.4.2.1 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.2.2 Analyse de la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.4.3 Signature aveugle de Schnoor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55


3.4.3.1 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.3.2 Analyse de la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.4.4 Signature aveugle basée sur Schnoor et RSA . . . . . . . . . . . . . . . . . 57


3.4.4.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4.4.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4.4.3 Analyse de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.4.4 Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.5 Domaines d’application des signatures aveugles . . . . . . . . . . . . . . . . . . . 59


3.5.1 Utilisation dans les votes électroniques . . . . . . . . . . . . . . . . . . . . . . . 59
3.5.2 Utilisation avec la monnaie electronique : . . . . . . . . . . . . . . . . . . . . 61

CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

BIBLIOGRAPHIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
i

Avant Propos
Le laboratoire d’ALGEBRE, de CRYPTOLOGIE, de GEOMETRIE ALGEBRIQUE
ET APPLICATIONS (L.A.C.G.A.A) fait partie intégrante du Département de Mathé-
matique et Informatique de la Faculté des Sciences et Technique de l’Université Cheikh
Anta diop de Dakar (UCAD).

Mise en place, sous la direction du professeur Mamadou SANGHARE en 2004 , le


L.A.C.G.A.A est un laboratoire de la sous région spécialisé dans la formation et la
recherche en cryptographie et dans les domaines de la sécurité de l’information .Le
L.A.C.G.A.A a ouvert une licence ,un master et une formation doctorale.

Le laboratoire L.A.C.G.A.A a pour objectifs :

1. d’une part, la formation à la recherche fondamentale et appliquée dans les do-


maines de La Cryptographie, de la Théorie des codes, de l’Algèbres et de leurs
applications (en logique, en informatique, en sécurité de l’information, en biologie,
en robotique etc.)
2. d’autre part, l’organisation de la recherche par la mise en place d’un cadre appro-
prié pour l’épanouissement des chercheurs et le développement de la recherche.
A la sortie de cette formation, les étudiants ont pour vocation d’occuper des postes
stratégiques au sein des entreprises et des sociétés de prestation informatique.
ii

Dédicaces
Je dédie cet événement marquant de ma vie à la mémoire de ma tante Houleyma-
tou Diallo disparu il y’a 1 ans 3 mois. J’espère que, du monde qui est sien maintenant,
il apprécie cet humble geste comme preuve de reconnaissance de la part d’un neveu
qui a toujours prié pour le salut de son âme. Puisse Dieu, le tout puissant, l’avoir en
sa sainte miséricorde !

Je remercie mes très chers parents, Fatoumata Diallo et Ibrahima BA, qui ont
toujours été là pour moi,« Vous avez tout sacrifié pour vos enfants n’épargnant ni
santé ni efforts. Vous m’avez donné un magnifique modèle de labeur et de persévé-
rance. Je suis redevable d’une éducation dont je suis fier ».

Je remercie mes frères , mes sœurs et toute la famille pour les encouragements.
Enfin, je remercie tous mes promotionnaires et camarades de classes que j’aime tant
pour leur sincère amitié et confiance, et à qui je dois ma reconnaissance et mon atta-
chement.
À tous ces intervenants, je présente mes remerciements, mon respect et ma gratitude.
iii

Remerciement
Je tiens à exprimé toute ma reconnaissance à mon Directeur de mémoire Dr. Demba
SOW. Je le remercie de m’avoir encadré, orienté, aidé et conseillé. Je tiens à remercier
le Pr.Amadou Lamine FALL pour avoir accepté de présider le jury de mon mémoire.
Je remercie également le Pr.Alassane DIOUF et le Dr.Mohamed TRAORE pour avoir
accepté d’être parmi le jury de mon mémoire. J’adresse mes sincère remerciements à
tous les professeurs, intervenants et toutes les personnes qui par leur paroles, leurs
écrits, leurs conseils et leurs critiques ont guidé mes réflexion et ont accepté à me
rencontrer et répondre à mes questions durant mes recherches. Je remercie toute
l’équipe pédagogique de L.A.C.G.A.A, pour nous avoir transmis leur savoir.
iv

Notations
{0, 1}k Ensemble des mots de longueur k constitués des caractères 0 et 1.

a∥b Concaténation des suites de bites de a et de b.

a ∈R E L’élément a est choisi aléatoirement dans l’ensemble E.

a−1 L’inverse multiplicatif de a modulo un nombre entier.

N Ensemble des entiers naturels.

Z Ensemble des entiers relatifs

φ(n) L’indicateur d’Euler : φ(n) = (p − 1)(q − 1) avec n = p ∗ q


v

Glossaire
AC Autorité de Certification.

ACJT Ateniese, Camenisch, Stadler, Tsudik : un schéma de signature de groupe pro-


posé en 2000.

AES Advenced Encryption System : Cryptosystème symétrique proposé en 2000.

BSZ Bellare, Shi, Zhang : un schéma de signature de groupe proposé en 2005.

CBC Cipher Bloc Chaining : Mode opératoire d’un chiffrement symétrique.

DES Data Encryption Standard : Cryptosystème symétrique proposé en 1977.

DSA Digital Signature Algorithm :Algorithme de signature numérique.

IdE Identity Escrow : Séquestre d’identité.

IGC Infrastructure de Gestion de Clés.

PK Public Key : Clé publique.

PKC Public Key Cryptosystem : Cryptosystème à clé publique.

PKI Public Key Infrastructure.

RSA Rivest, Shamir, Adleman : Cryptosystème asymétrique proposé en 1978.

SK Secret Key : Clé secrète.


Table des figures

1.1 Chiffrement symétrique . . . . . . . . . . . . . . . . . . . . . . . . . 12


1.2 Chiffrement asymétrique . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Chiffrement par blocs . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Un cryptosystème asymétrique . . . . . . . . . . . . . . . . . . . . 16
1.5 Echange de clé de Diffie-Hellman . . . . . . . . . . . . . . . . . . . 17
1.6 Signature numérique(coté émetteur) . . . . . . . . . . . . . . . . 23
1.7 Vérification de la signature (coté récepteur) . . . . . . . . . . . . 23

2.1 Schéma de signature numérique simple . . . . . . . . . . . . . . . 30


2.2 Signature numérique avec fonction de hachage . . . . . . . . . . 31
2.3 Signature numérique . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1 Un exemple de signature aveugle en action . . . . . . . . . . . . 40


3.2 flux de blind signature structure . . . . . . . . . . . . . . . . . . . 43
3.3 L’attaque séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4 L’attaque parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5 Cryptosytème blind RSA . . . . . . . . . . . . . . . . . . . . . . . 48
3.6 Blind signature de schnoor . . . . . . . . . . . . . . . . . . . . . . . 56
3.7 Vote électronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.8 Cycle de vie d’une pièce de monnaie électronique . . . . . . . . 62

vi
vii

Résumé
En cryptographie, une signature aveugle est une forme de signature numérique dans
laquelle le contenu d’un message est masqué avant d’être signé. La signature aveugle
résultante peut être vérifiée publiquement par rapport au message original non aveugle
à la manière d’une signature numérique ordinaire. Ces signatures numériques spéciales
constituent un domaine important de la cryptographie à clé publique. Il est générale-
ment utilisé dans les protocoles liés à la confidentialité où le signataire et l’auteur du
message sont des parties différentes pour garantir l’anonymat des participants. Comme
dans les systèmes de paiement électronique et les protocoles de vote.
Le concept des schémas de signature cryptographique aveugle est qu’une entité, l’utili-
sateur, souhaite obtenir une signature sur son message, sans la révéler au signataire au
cours du protocole. Ceci est similaire à l’approche de la preuve de connaissance zéro.
La méthode est généralement basée sur le développement des solutions de problèmes
mathématiques difficiles, comme la factorisation, le logarithme discret et le calcul de
la racine carrée modulo un grand nombre composé.
Mots clés : cryptographie, signature numérique, anonymat, signature aveugle.
Abstract

In cryptography, a blind signature, is a form of digital signature in which the content


of a message is disguised before it is signed. The resulting blind signature can be publi-
cly verified against the original, unblinded message in the manner of a regular digital
signature. These special digital signatures constitue an important field in public key
cryptography. It is typically used in privacy-related protocols where the signer and
message author are different parties to ensure the anonymity of the participants. Such
as in electronic payment systems and voting protocols.
The concept of cryptographic blind signature schemes is that one entity, the user, wants
to obtain a signature on his message, without revealing it to the signer during the pro-
tocol. This is similar to the approach of zero-knowledge proof.
The method is generally based on developing the solutions of hard mathematical pro-
blems, like factoring, discrete logarithm and computing square root modulo a large
composite number.
Key words : cryptography, digital signature, anonymity, blind signature.
INTRODUCTION

La cryptologie est une science très encienne ayant pour essence l’art de cacher une
information au sein d’un message chiffré. Mais elle a véritablement éclos avec l’avéne-
ment de l’informatique et la généralisation des télécommunications. Longtemps fermée
et réserver aux militaires et à la diplomatie elle touche tout le monde depuis l’explosion
d’internet.

La cryptologie a connu une mutation importante avec l’apparition de la cryptogra-


phie dite à clés publique qui a ouvert un domaine de recherche très riche avec tout
les problèmes de sécurité : authentification confidentialités commerce vote enchères et
toute autre forme d’échange de données nécessitant l’intégrité la non répudiation ou
l’anonymat.

Ce dernier concepte qui peut être défini comme la propriété qu’un ensemble de su-
jet est appelé groupe anonyme. Il est important de remarquer que cette définition de
l’anonymat n’est pas absolue mais relative à un groupe en particulier à sa taille. Ainsi
il est très difficile d’être anonyme au sein d’un groupe de deux cent ou de dix mille
utilisateurs.

A partir de cela on peut distinguer plusieur types d’anonymats pour les communi-
cations. On peut citer l’anonymat d’émission et l’anonymat de réception et l’anonymat
relationnnel.

Il est important de remarquer que ces trois types d’anonymat ne procurent par eux
même la confidentialité du contenu des messages : il faut pour cela utiliser des tech-
niques appropriées comme le chiffrement. A l’inverse le chiffrement du contenu des
messages en soi ne procure pas l’anonymat des communications. Au tour du chiffre-
ment, les schémas de signature numérique font partis des techniques d’anonymisation
les plus connues.

Par définition un schéma de signature numérique permet de signer des documents


de manières à ce que chacun puisse vérifier la validité de la signature authentique mais
que personne ne puisse falsifier les signatures de nouveaux documents. La définition la
plus stricte de la sécurité pour un système de signature numérique a été proposée par
Goldwasser Micali et Rivest. Plusieurs schémas basés à la fois sur des hypothèses de
complexité spécifiques et générales se sont ensuite révéler satisfaire à cette définition
la plus forte. Une variante de la signature numérique de base connue sous le nom de

1
2

signature numérique aveugle a été proposé par Chaum.

Les schémas de signature numérique aveugle incluent l’exigence supplémentaire qu’un


signataire puisse signer un document(qui lui est remis sous une forme cryptée) sans
savoir ce que contient le document. Les signatures numériques aveugles jouent un rôle
central dans l’application anonyme d’argent électronique et de vote électronique.

Ce mémoire est agencé autour de trois chapitres dictées par la progression dans le
domaine de la cryptographie.
1. Dans le premier chapitre nous allons présenter quelques rappels mathématiques
suivies des notions générales de la cryptographie.
2. En suite le chapitre deux est consacré a l’anonymat et la signature numérique.
3. Le dernier chapitre est consacré à l’étude des schémas de signature aveugle.
Chapitre 1

Préliminaires

Dans ce chapitre nous allons d’abord faire quelques rappels mathématiques, suivie
des notions de bases de la cryptographie, qui sont en rapport avec ce mémoire.

1.1 Rappels mathématiques


1.1.1 Théorie des nombres[14]
1.1.1.1 Divisibilité
Définition 1.1.1. Soient a et b deux entiers relatifs tels que b différent de 0. On dit
que "b divise a" et on note b/a lorsqu’il existe un entier relatif k tels que a = bk.
On a les propriétés suivantes :
Soit a un un entier relatif,
1. a/a, 1/a, a/0, 0/0.
2. 0 est le diviseur de 0.
3. "/" est une relation d’équivalence.

Définition 1.1.2. (Division euclidienne)


Soient a et b des entiers relatifs tels que b différent de zéro alors il existe un unique
couple (q, r) ∈ Z×N vérifiant a = bq +r et 0 ⪯ r ≺ b, q et r sont appelés respectivement
quotient et reste de la division euclidienne de a par b .

Définition 1.1.3. Soient a et b deux entiers naturels, on dit que d est le plus grand
diviseur commun à a et b lorsque
1. d/a et d/b
2. Pour tout c différent de d vérifiant c/a et c/b alors c/d.

Définition 1.1.4. Deux entiers a et b sont dits premiers entre euxs si pgcd(a, b) = 1.

3
4

Propriétés 1.1.5. Soit a, b, r trois entiers tels que r est le reste de la division eucli-
dienne de a par b avec b non nul, alors on a les propriétés suivantes :
1. pgcd(a, 0) = a
2. pgcd(a, b) = pgcd(b, r)
Théorème 1.1.6. Soient p un nombre premier, soient a, b deux entiers naturels.
p/ab =⇒ p/a ou p/b.
Théorème 1.1.7. Identité de Bézout
Soient a et b deux entiers naturels, alors il existe u et v deux entiers relatifs tels que
au + bv = pgcd(a, b).
Théorème 1.1.8. il existe une infinité de nombres premiers.
Théorème 1.1.9. Tout nombre composé supérieur à 1 peut s’écrire comme produit de
nombres premières.
Théorème 1.1.10. Théorème fondamentale de l’arithmétique
Soient n un entier naturel supérieur à 1 , alors n peut s’écrire de façons unique comme
produit de nombre premiers.
Théorème 1.1.11. L’équation ax + by = c admet une solution (x, y) ∈ Z2 si et
seulement si pgcd(a, b)/c.

1.1.1.2 Congruences
Définition 1.1.12. Soit n un entier supérieur à 0, soient a et b deux entiers relatifs.
On dira que a est congru à b modulo n (que l’on note a ≡ b mod n) lorsque n/(b − a)(
ie b − a = kn). On a a = b + kn.

Nous avons les propriétés suivants :


1. ≡ est une relation d’équivalence.
2. Si a ≡ b mod n alors a ≡ b mod d pour tout diviseur d de n.
3. (Z/nZ,+,.) est un anneau.
Définition 1.1.13. Soit n ≥ 2 un entier naturel et soit a ∈ Z.
1. Unité : a est dit unité lorsqu’il existe b ∈ Z tels que ab ≡ 1 mod n c’est a dire
a∧n=1
2. Diviseur de zero : a est dit diviseur de zéro lorsqu’il existe b ̸= 0 tels que
ab ≡ 0 mod n
3. Intègre :(Z/nZ,+,.) est intègre lorsqu’il n’admet pas de diviseur de zéro. Z/nZ
est un corps si et seulement si n premier.
Théorème 1.1.14. Soient a, b et n ∈ N. L’équation ax ≡ b mod n admet une unique
solution modulo n lorsque pgcd(a, n) = 1.
Théorème 1.1.15. L’équation ax ≡ b mod n admet exactement d solution modulo n
lorsque d = pgcd(a, n)/b.
5

Théorème 1.1.16. L’équation ax ≡ b mod n n’admet pas de solution lorsque pgcd(a,n)


ne divise pas b.

Définition 1.1.17. Soit n ∈ N, la fonction indicatrice d’Euler nous renseigne sur le


nombre d’entier co-premier avec n.

φ: N → N∗
n → φ(n) = {1 ≤ x ≤ n : pgcd(x, n) = 1}

Nous avons les propriétés suivantes :


1. φ(p) = p − 1 pour tout nombre premier p.
2. φ(mn) = φ(m)φ(n) quand pgcd(m, n) = 1, φ est multiplicatif.
3. φ(pα ) = pα−1 (p − 1) = pα − pα − 1.

Théorème 1.1.18. (Theorème de d’Euler)


Soit n ∈ N, a ∈ N co-premier avec n ,aφ(n) ≡ 1 mod n .

Théorème 1.1.19. (Petit théorème de Fermat)


Soit p un nombre premier et soit a ∈ N, alors ap ≡ a mod p si de plus pgcd(a, p) = 1,
alors ap−1 ≡ 1 mod p

Théorème 1.1.20. (Théorème de Bézout)


On dit qu’un entier a admet un inverse modulo n s’il existe un entier b tel que ab ≡ 1
mod n.

1.1.2 Théorie des groupes[15]


Définition 1.1.21. Soit G un ensemble non vide et ∗ : G ∗ G → G, (a, b) :→ a ∗ b une
application .(G,*) est un groupe si :
1. * est associative ie . ∀ a, b, c ∈ G, a ∗ (b ∗ c) = (a ∗ b) ∗ c.
2. G possède un élément neutre e pour * c’est à dire. ∃ e ∈ G, ∀ a ∈ G, a ∗ e =
e ∗ a = a.
3. tout a ∈ G admet un symétrique ie. ∀ a ∈ G, ∃b ∈ G, a ∗ b = b ∗ a = e.

Propriétés 1.1.22. Soit (G,*) un groupe, soient a, b, c des élément de G alors nous
avons les propriétés suivantes :
1. L’élément neutre d’un groupe est unique (c = c ∗ e = e ∗ c = e).
2. Le symétrique d’un élément a est unique (b = (c ∗ a) ∗ b = c ∗ (a ∗ b) = c).
3. ∀ a, b ∈ G, (a ∗ b)−1 = b−1 ∗ a−1 .
4. L’équation a ∗ x = b a une et une seule solution x = a−1 ∗ b.
6

1.1.2.1 Sous-groupes
Définition 1.1.23. Soit H ⊂ G un sous-ensemble non vide . On dit que H est un
sous-groupe de G si :
1. a, b ∈ H =⇒ ab ∈ H.
2. a ∈ H =⇒ a−1 ∈ H.
Les conditions (1) et (2) sont évidement équivalentes à l’unique condition a, b ∈ H =⇒
ab−1 ∈ H.

Lemme 1.1.24. Toute partie stable finie H d’un groupe G est un sous-groupe de G.

Lemme 1.1.25. Les sous-groupes additifs de Z sont de la forme nZ , n ∈ N .

Lemme 1.1.26. L’intersection d’une famille de sous-groupe Hi , i ∈ I d’un groupe G


est un sous-groupe de G.

Définition 1.1.27. Soient A,B deux sous-ensembles non vides d’un groupe G ,On
pose :A.B = {ab a ∈ A, b ∈ B}.
Remarque : Si H est un sous-groupe, alors H.H = H.

Définition 1.1.28. Soit H un sous-groupe et a, b ∈ G. Alors


1. Ha = H ⇐⇒ a ∈ H.
2. Ha = Hb ⇐⇒ ab−1 ∈ H(et aH = bH ⇐⇒ a−1 b ∈ H).

Définition 1.1.29. On appelle ordre d’un groupe G son cardinal, qu’on note o(G).

Théorème 1.1.30. (Théorème de Lagrange) L’ordre o(H) d’un sous-groupe H


d’un groupe finie G divise l’ordre o(G) de G .
L’indice [G :H] divise aussi o(G) et [G :H]=o(G)/o(H).

1.1.2.2 Groupe cyclique


Définition 1.1.31. Soit X un sous ensemble d’un groupe G . L’intersection de tout
les sous groupes de G contenant X est un sous-groupe appelé sous groupe engendrée
par X , on notera gr(X). On dit que X est un système générateur de gr(X). Il est
clair que gr(X) est le plus petit sous-groupe de G contenant X (il est l’un des terme de
l’intersection !)

+
Lemme 1.1.32. gr(X) = {xα1 1 ...xαn n , xi ∈ X, αi = 1}
-

Définition 1.1.33. Soit (G,.) un groupe. (G,.) est dit monogène s’il existe un élément
x tel que pour tout élément y de (G,.), il existe un entier relatif k tel que y = xk . On
note alors G = ⟨x⟩ et l’on dit que (G,.) est engendré par x ou encore que x est un
générateur de (G,.). Si de plus, (G,.) est d’ordre fini, on dit que (G,.) est cyclique.

Théorème 1.1.34. Soit G un groupe monogène. Si G est infini, G est isomorphe à Z.


Si G est d’ordre n supérieur à 1, G est isomorphe a Z/nZ.
7

Théorème 1.1.35. Tout groupe fini d’ordre premier est cyclique.

Définition 1.1.36. Soit G un groupe quelconque et x ∈ G. S’il existe n ∈ N ∗ tel que


xn = e, n est appelé un exposant de x et on dit que x est d’ordre fini. Le plus petit
exposant de x est appelé l’ordre de x. S’il n’existe pas de n tel que xn = e, on dit que x
est d’ordre infini. Il faut bien sur adapter la définition pour une notation additive.

Lemme 1.1.37. Nous avons les propriétés suivantes :


1. Tout exposant de x est un multiple de l’ordre de x.
2. dans un groupe G, l’ordre de x est l’ordre du sous-groupe gr(x) .
3. dans un groupe G, l’ordre de tout élément divise l’ordre o(G) du groupe.
4. si f : G → B est un homomorphisme de groupes, alors, pour tout x ∈ G, l’ordre
de f(x) divise l’ordre de x.

Théorème 1.1.38. Soit G = gr(x) un groupe cyclique d’ordre n.


1. Tout sous-groupe H de G est un groupe cyclique engendrée par xk où k est le plus
petit entier strictement positif tel que xk ∈ H. De plus, k/n et o(H) = n/k.
2. Si q/n, G possède un unique sous-groupe d’ordre q, engendrée par xn = q.

Théorème 1.1.39. Soit G = gr(x) un groupe cyclique d’ordre n.


1. L’ordre de xk est n/pgcd(n,k).
2. xk engendre G ssi n et k sont premiers entre eux.

1.1.3 Logarithme discret[1][19]


En mathématiques, pour des nombres réels donnés a et b, le logarithme logb a est
un nombre x tel que bx = a. De manière analogue, dans tout groupe G , les puissances
bk peuvent être définies pour tous les entiers k, et le logarithme discret logb a est un
entier k tel que bk = a. En théorie des nombres, le terme le plus couramment utilisé
est index : on peut écrire x = indr a mod m (lire "l’indice de a à la base r modulo m
") pour rx a mod m ) si r est une racine primitive de m et pgcd(a, m) = 1

1.1.3.1 Définition
Soit G un groupe quelconque. Notons son opération de groupe par multiplication
et son élément d’identité par 1. Soit b un élément quelconque de G. Pour tout entier
positif k, l’expression bk désigne le produit de b par lui-même k fois :
bk = b.b...b
De même, soit b−k le produit de b−1 avec lui même k fois. Pour k=0 la k ième puissance
est l’identité : b0 = 1
Soit a aussi un élément de G. Un entier k qui résout l’équation bk = a est appelé
logarithme discret (ou simplement logarithme, dans ce contexte) de a à la base b. On
écrit k = logb a.
8

1.1.3.2 Propriétés

les puissances obéisse a l’identité algébrique usuelle bk+1 = bk b1 . Autrement dit la


fonction f : Z → G défini par f (k) = bk est un homomorphisme de groupe des entier
Z par addition sur le sous groupe G engendré par b. Pour tout a dans H, logb a existe.
Inversement, logb a n’existe pas pour a qui ne sont pas dans H.

Si H est infini, alors logb a est également unique, et le logarithme discret équivaut
à un isomorphisme de groupe
logb : H → Z.
D’autre part, si H est fini d’ ordre n, alors logb a n’est unique que jusqu’à la congruence
modulo n, et le logarithme discret revient à un isomorphisme de groupe
logb : H → Zn , où Zn désigne le groupe additif d’entiers modulo n.
La formule de changement de base familière pour les logarithmes ordinaires reste va-
lable : si c est un autre générateur de H, alors logc a = logc b logb a.

1.1.3.3 Algorithmes

Problème non résolu en informatique :

Le logarithme discret peut-il être calculé en temps polynomial sur un ordinateur clas-
sique ?

Le problème du logarithme discret est considéré comme insoluble par calcul. Autre-
ment dit, aucun algorithme classique efficace n’est connu pour calculer les logarithmes
discrets en général.

Un algorithme général pour calculer logb a dans des groupes finis G consiste à éle-
ver b à des puissances de plus en plus grandes k jusqu’à ce que le a souhaité soit
trouvé. Cet algorithme est parfois appelé multiplication d’essai. Il nécessite un temps
d’exécution linéaire dans la taille du groupe G et donc exponentiel dans le nombre de
chiffres de la taille du groupe. Il s’agit donc d’un algorithme en temps exponentiel,
pratique uniquement pour les petits groupes G.

Il existe des groupes pour lesquels le calcul des logarithmes discrets est apparemment
difficile. Dans certains cas(par exemple, de grands sous-groupes d’ordre premier de
groupes Z∗p , non seulement il n’y a pas d’algorithme efficace connu pour le pire des cas,
mais la complexité du cas moyen peut s’avérer à peut prés aussi difficile que le pire des
cas en utilisant aléatoire autoréductibilité.

En même temps, le problème inverse de l’exponentiation discrète n’est pas difficile(il


peut être calculé efficacement en utilisant l’exponentiation au carré, par exemple).
Cette asymétrie est analogue à celle entre la factorisation entière et la multiplication
entière. Les deux asymétries(et d’autres fonctions éventuellement à sens unique) ont
été exploitées dans la construction de systèmes cryptographiques.
9

Les choix populaires pour le groupe G en cryptographie à logarithme discret (DLC)


sont les groupes cycliques Z∗p (par exemple le cryptage ElGamal , l’échange de clés
Diffie-Hellman et l’ algorithme de signature numérique) et les sous-groupes cycliques
de courbes elliptiques sur des champs finis(voir Cryptographie à courbe elliptique).

1.1.4 Machine de Turing[17]


1.1.4.1 Définition
Définition 1.1.40. Une machine de Turing est définie par :
1. un ensemble fini (alphabet)
P

2. un symbole particulier □ :case vide


3. un ensemble fini Q(les étapes)
4. un état initial q0 ∈ Q
5. un état final q0 ∈ Q
6. une table de transition δ :Q × → Q × ×{−1, 0, 1}
P P

δ(q, a) = (q ′ , b, d) signifie Si je suis dans l’état q et si je vois la lettre a, alors je passe


dans l’état q’, j’écris la lettre b et je me déplace dans la direction d.

Définition 1.1.41. Une configuration d’une telle machine est définie par
1. un état q ∈ Q,
2. un entier p ∈ Z(la position),
3. une fonction r : Z → (l’état du ruban) avec f (x) = □ pour presque tout x
P

La configuration initiale utilise l’état q0 , la position 0, et porte sur le ruban une


certaine entrée m(un suite de symboles de l’alphabet).
La table de transition dit comment on passe d’une configuration à une autre.
Le résultat du calcul est le contenu du ruban quand on atteint l’état final qf (si jamais
on l’atteint).

1.1.4.2 Machine de Turing interactive


Définition 1.1.42. Une machine de Turing interactive (ITM) avec k bandes de travail
est un 6-uplet M = ( , Ω, Q, I, qin , δ), où Σ et Ω sont des alphabets finis non vides,
P

Q est un ensemble d’états, I est un sous-ensemble de Q, qin est un état de Q − I et


δ : Q × Σk × (Σ{λ}) → Q × Σk × {gauche, aucune, droite}k × (Ω{λ}) est une fonction
de transition (partielle). Σ est l’alphabet d’entrée et Ω est l’alphabet de sortie. λ est un
symbole spécial. On appelle qin l’état initial, I l’ensemble des états internes et Q − I
l’ensemble des états externes.
Définition 1.1.43. (Phases internes et externes) Une configuration avec un
état interne est une configuration interne et une configuration avec un état externe
une configuration externe. Une phase interne est une partie maximale d’un calcul qui
consiste uniquement en des configurations internes consécutives.
10

Définition 1.1.44. (Entrées et sorties) On dit que M peut traiter x si ce qui suit
est vrai :
1. qj est défini pour tout j ≤ 1 + |x|,
2. si qj est une configuration interne, alors il existe un i ≻ j tel que qi est une
configuration externe
Dans ce cas, la sortie non filtrée de M sur x est la chaîne y ∈ (Ω ∪ {λ})∞ tel que
yj = π2 (δ(qj , xj )), pour tout 1 ≤ j ≤ |x|. La sortie de x est la chaîne dans Ω∞ que l’on
obtient après filtrage de y.
Il découle de la définition que si M traite une chaîne x alors toute phase interne est
finie. La première configuration de la séquence est externe. De plus, si x est fini, alors
la dernière configuration doit aussi être externe.

1.1.4.3 Machine de Turing probabiliste


Une machine de Turing probabiliste est un type de machine de Turing non dé-
terministe dans laquelle chaque étape non déterministe est un "coin-flip", c’est-à-dire
qu’à chaque étape, il y a deux mouvements suivants possibles et la machine de Turing
sélectionne de manière probabiliste le mouvement à prendre
Définition 1.1.45. Définition formelle Une machine de Turing probabiliste peut
être formellement définie comme le 7-uplets M = (Q, Σ, Γ, q0 , A, δ1 , δ2 ), où
1. Q est un ensemble fini d’états
2. Σ est l’alphabet d’entrée
3. Γ est un alphabet de bande, qui comprend le symbole vide ♯
4. q0 ∈ Q est l’état initial
5. A ⊆ Q est l’ensemble des états d’acceptation (finaux)
6. δ1 : Q × Γ → Q × Γ × {L, R} est la première fonction de transition probabiliste.
L est un mouvement une cellule vers la gauche sur la bande de la machine de
Turing et R est un mouvement d’une cellule vers la droite.
7. δ2 : Q × Γ → Q × Γ × {L, R} est la deuxième fonction de transition probabiliste.
A chaque étape, la machine de Turing probabiliste applique soit la fonction de tran-
sition δ1 ou la fonction de transition δ2 . Ce choix est fait indépendamment de tous les
choix antérieurs. De cette façon, le processus de sélection d’une fonction de transition
à chaque étape du calcul ressemble à un tirage au sort.

La sélection probabiliste de la fonction de transition à chaque étape introduit une


erreur dans la machine de Turing ; c’est-à-dire que les chaînes que la machine de Tu-
ring est censée accepter peuvent à certaines occasions être rejetées et que les chaînes
que la machine de Turing est censée rejeter peuvent à certaines occasions être accep-
tées. Pour accommoder cela, un langage L est dit reconnu avec une probabilité d’erreur
ε par une machine de Turing probabiliste M si :
1. un mot w dans L implique que Pr [M accepte w] ≥ 1 − ϵ
2. un mot w qui n’est pas dans L implique que Pr [M rejette w] ≥ 1 − ϵ
11

1.2 Rappels cryptographiques


1.2.1 Notions de cryptographie
1.2.1.1 Définition
La cryptologie est un concept grec composé de kryptos et logos qui signifie la
connaissance de ce qui est caché, qui est devenu une discipline, dont les origines remon-
teraient au XVI eme siècle avant J-C. Elle peut être définie comme étant la science des
messages secrets. Restreinte depuis longtemps aux usages diplomatiques et militaires,
elle est maintenant une discipline scientifique à part entière, dont les applications sont
si vastes aujourd’hui qu’il est difficile de définir à priori ce qui révèle ou non de la cryp-
tologie [25]. Cette science se divise en deux branches étroitement liées, opposées mais
complémentaires : celle qui consiste à protéger l’information la cryptographie, et l’autre
qui cherche à étudier la sécurité apportée par les mécanismes de la cryptographie et à
faire échouer la cryptanalyse.

1.2.1.2 La cryptographie
La cryptographie est l’étude des méthodes mathématiques liées aux aspects de sé-
curité de l’information, tel que : la confidentialité, l’intégrité et l’authentification, de
manière à transformer des informations compréhensibles (textes claires) en informa-
tions inintelligibles (textes chiffrés) pour des tierces n’ayant pas la connaissance du
secret, d’un côte, ou d’inverser l’opération d’un autre coté a l’aide d’outils spéciale-
ment conçus à cet effet(fonctions et clés).
D’un autre angle, la cryptographie peut être vue comme l’étude d’un protocole sécurisé
d’échange d’informations, utilisant certaines données qui doivent rester secrètes entre
les parties communicantes, dont on peut cité : clés de cryptage et la fonction utilisée.
Ce protocole est communément connu sous le nom de cryptosystème.

1.2.1.3 Cryptosystème
Un cryptosystème est défini par un quintuplet : P =(M,C,K,E,D). Où :
1. M : l’ensemble des textes clairs ;
2. C : l’ensemble des textes chiffrés ;
3. K : l’ensemble des clés ;
4. E : l’ensemble des fonctions de chiffrement (les fonctions chargées de transformer
les textes clairs en textes chiffrés) ;
5. D : l’ensemble des fonctions de déchiffrement(l’opération inverse du chiffrement).
Sur la base des différences de chiffrement, nous pouvons classer les cryptosystèmes dans
les deux types suivantes
1. Cryptosystème symétrique
2. Cryptosystème asymétrique
12

La différence fondamentale entre eux est que le cryptosystème symétrique n’implique


qu’une seule clé que le système utilise pour le chiffrement et le déchiffrement. Le cryp-
tosystème asymétrique utilise deux clés(privée et publique)pour chiffrement et le dé-
chiffrement.

1.2.1.4 Chiffrement

Le chiffrement est la transformation de l’information échangée de telle sorte que


seule le destinataire l’égitime pourra la visualiser. Il se divise en deux axes différents,
selon la technologie choisie : chiffrement symétrique et chiffrement asymétrique.

1. Chiffrement symétrique : Dit aussi : cryptosystème à clé secrète. C’est la plus


ancienne des techniques, qui consiste à utiliser la même clé(dite clé de session)
pour le chiffrement ainsi que pour le déchiffrement.

Figure 1.1 – Chiffrement symétrique

Ce chiffrement a pour inconvénients :


(a) Le devoir de partager la même clé entre utilisateurs alors que sa transmission
elle-même n’est pas sécurisée.
(b) La nécessité d’avoir plus d’une clé à chaque utilisateur pour pouvoir com-
muniquer avec différents groupes en privé.
2. Chiffrement asymétrique : Il est dit : chiffrement à clé publique : la clé de
chiffrement (clé publique) diffère de celle de déchiffrement (clé privée), et aucune
d’entre elles ne pourra être découverte à partir de l’autre. Cette paire de clés est
dite indissociable : le texte chiffré avec l’une ne pourra pas être déchiffré que par
l’autre.
Ce type de chiffrement résout le problème de sécurité d’échange de clé car la clé
publique n’est pas nécessairement confidentielle (généralement, publiée sur une
base de données réservée à ce genre d’opérations).
13

Figure 1.2 – Chiffrement asymétrique

1.2.2 Les objectifs de la cryptographie


Une méthode cryptographique sûre doit répondre à certaines propriétés, dites les
propriétés de sécurité, prédéfinies comme objectifs :

1.2.2.1 La confidentialite
Historiquement, la confidentialité est l’un des plus anciens objectifs de la cryptogra-
phie. C’est un service utilisé pour cacher le contenu des messages de toute personne non
autorisée, à l’exception de son réel destinataire. Donc, un cryptosystème est choisi afin
de transformer le message de sa forme intelligible ; utilisant une clé et un algorithme
de chiffrement ; en une forme inintelligible pour une tierce personne qui tente de l’in-
tercepter et qui doit avoir connaissance de l’algorithme utilisé et la clé de chiffrement
pour pouvoir le lire.

1.2.2.2 L’integrité
Si jamais le message envoyé chiffré tombe entre les mains d’une tierce personne
malveillante, qui a connaissance de la clé de déchiffrement, il découvre son contenu, le
modifie, le chiffre de nouveau puis le renvoie a son destinataire. Ce dernier ne pourra pas
découvrir que le message a été altéré en route. Et la cryptographie rencontre un nouveau
défit à assurer à savoir, l’intégrité. A fin de défier les malfaiteurs, les cryptographes
utilisent une nouvelle technique, dite le hachage pour garantir l’intégrité des échanges.

1.2.2.3 L’authenticité
Cette notion regroupe deux choses importantes : l’authentification des données qui
permet de garantir que les données transmises proviennent bien d’un émetteur dési-
gné, et l’authentification de l’émetteur lui-même qui consiste à prouver son identité.
L’authenticité est, alors, faite de façon interactive ou non interactive. Le scénario non
interactif pour l’authentification des données utilise la signature numérique simple qui
nécessite la connaissance d’une clé privée pour signer le document et elle est vérifiable
par tout le monde en possession de la clé publique. L’authentification de l’émetteur,
repose sur le scénario interactif, qui est un dialogue entre deux entités, où le prouveur
montre sa connaissance d’un secret, similaire à un controle d’accés par mot de passe,
14

comme par exemple montrer au verificateur la connaissance de la clé privée couplée


à une clé publique sans avoir recours a dévoiler sa clé privée(le concept de preuve de
connaissance).

1.2.2.4 La non-répudiation
La non-répudiation permet d’obtenir la preuve de l’émission d’une information ou
la preuve de sa réception. L’émetteur ou le récepteur ne peut ainsi en nier l’envoi ou
la réception. Ce service peut être garanti avec le concept de la signature électronique.
Où, seul le vrai émetteur peut signer avec sa clé privée et seul le vrai destinataire peut
également le déchiffrer avec sa clé privée.

1.2.2.5 L’anonymat
La problématique de l’anonymat concerne aussi bien les données directement nomi-
natives (nom,prénom,date de naissance,...) que celle qui le sont indirectement(matricule,
adresse, N° de téléphone,...). Alors l’anonymat consiste en la possibilité de suivre une
personne unique dans la durée caractéristiques, comportements...) sans avoir la moindre
possibilité de connaitre sa véritable identité. Sur le plan technique, la démarche consiste
à transformer des données nominatives via un algorithme de hachage permettant d’ob-
tenir un identifiant(a priori) unique et surtout irréversible.

1.2.3 Cryptosystème symètrique


Le principe des cryptosystèmes symétriques est de pouvoir envoyer des messages
d’une longueur éventuellement grande de plusieurs milliers de caractères en utilisant
une clé secrète à longueur fixe, ne dépassant pas quelques centaines de bits.

Dans cette partie, nous allons étudier, certains protocoles qui historiquement parlant,
sont les plus célèbres.

1.2.3.1 Les cryptosystèmes alphabétiques


Ils sont appelés également, chiffrement par substitution. Ce type de chiffrement
consiste à remplacer des caractères par d’autres caractères afin de construire le texte
chiffré[25].

1.2.3.2 Les chiffrements par blocs : le DES


Ce nouveau procédé de chiffrement manipule cette fois des mots binaires (afin de
pouvoir exécuter des opérations du où-exclusif (XOR) entre le texte en clair et la clé ;
le résultat sera toujours un caractère bien défini dans l’alphabet utilisé. Il consiste
à découper le texte en clair en blocs de taille constante et chaque bloc est chiffré
indépendamment des autres blocs [18].
Dans le cas du DES (Data Encryption System), il manipule des blocs de 64 bits en
utilisant une clé de 56 bits (pour compléter la clé à 64 bits, une information supplé-
mentaire est ajoutée et qui peut être connue sans difficulté comme par exemple : 8 bits
15

Figure 1.3 – Chiffrement par blocs

de parité). En utilisant la même clé sur les différents blocs et sachant qu’un bloc peut
se répéter plusieurs fois, cela peut donner des blocs chiffres similaires qui pourra aider
les cryptanalystes à casser ce cryptosystèmes. Alors un nouveau mode d’utilisation a
été introduit : le CBC.

CBC (Cipher block Chaining) où le nouveau cryptogramme d’un bloc ne dépend pas
seulement du texte en clair et de la clé mais aussi du cryptogramme du bloc déjà chiffré
précédemment (le bloc qui précède le bloc actuel, et pour le premier bloc, un vecteur
d’initialisation est utilisé). De cette manière, le texte en clair ne donne jamais deux fois
le même cryptogramme.

Le triple DES (3-D.E.S) La longueur de la clé du DES était un vrai défi pour les
cryptanalystes. Mais vu le développement des pouvoirs calculatoires des ordinateurs,
une clé de 56 bits n’est plus d’une grande force à battre. A cela, le triple DES fait ap-
parition. Ayant les mêmes caractéristiques du DES, sauf qu’il fait trois opérations : un
chiffrement, un déchiffrement et un chiffrement. C’est avec une clé de 168 bits (3*56)
qu’il procède. Pour générer un cryptogramme, l’émetteur chiffre le texte en clair avec la
première clé, il le déchiffre ensuite avec la deuxième clé puis le chiffre avec la troisième
clé.

Le destinataire, alors, déchiffre le cryptogramme reçu à l’aide de la troisième clé, chiffre


le résultat avec la deuxième clé pour finalement le déchiffrer avec la première clé.

1.2.3.3 Le standard de chiffrement A.E.S :


Le DES étant obsolète et le 3-DES trop couteux en ressources, le NIST a mis au
point une nouvelle norme : le standard de chiffrement avance AES (Advanced Encryp-
tion Standard) qui opère avec trois tailles possibles de clé : 128, 192, 256 en rem-
placement du DES. Il est capable d’opérer sur différentes plateformes et facilement
implémentable sur des cartes à puce.

1.2.4 Cryptosystème asymètrique


Les années 70 ont vu un changement révolutionnaire dans la manière de manipula-
tion des clés cryptographiques. C’était dans le sens de rendre la cryptographie publique.
L’idée est parvenue de Whitfield Diffie et Martin Hellman [7], qui ont conçu une mé-
thode, pour deux entités qui ne se sont jamais rencontrés avant ou échange de clés,
16

d’établir une clé secrète partagée en échangeant des messages sur un canal ouvert (non
sécurisé).

Avant cette idée, tous les cryptosystèmes, y inclus DES, cherchaient un mécanisme
sécurisé de distribution de clés secrètes. Car c’est connu que si la clé de chiffrement
symétrique est découverte, la déduction de la clé de déchiffrement est facile, et le crypto-
système n’est plus sécurisé. Maintenant, avec l’introduction de l’idée de Diffie-Hellman,
connue par : l’échange de clé Diffie Hellman, deux entités peuvent échanger des clés
d’une manière confidentielle sur un canal non sécurisé.

1.2.4.1 Cryptosysteme à clé publique (PKC)


Un cryptosystème à clé publique est défini par trois algorithmes :
1. PKC.KGen : c’est un algorithme de génération de clés qui prend en entré un
paramètre de sécurité L (longueur de la clé) et donne une paire de clés sk,pk.
2. PKC.Enc : c’est un algorithme de chiffrement qui prend en entrée un message M
a chiffrer et la clé publique pk du destinataire, et donne en sortie un cryptogramme
C.
3. PKC.Dec : un algorithme de déchiffrement qui prend en entré un message chiffré
C et la clé privée du destinataire et donne en sortie le message en clair M .

Figure 1.4 – Un cryptosystème asymétrique


17

1.2.4.2 L’échange de clés de Diffie-Hellman


Algorithme créé en 1976 par Diffie et Hellman, il est utilisé pour l’échange de clé
à travers une liaison non sécurisée, et non pour le chiffrement et le déchiffrement des
messages. Il repose sur la difficulté du problème de logarithme discret. Néanmoins, sa
sécurité dépend aussi de la taille de l’exposant secret [33]. Son principe est d’établir un
accord sur certains paramètres :
1. p : un nombre entier premier.
2. g : un générateur d’un groupe multiplicatif qui doit être infêrieur à p (g est dit
générateur si et seulement si il peut générer chaque élément de l’intervalle [1..p-1]
quand il est multiplié par soit même un certain nombre de fois, le résultat modulo
p).

Figure 1.5 – Echange de clé de Diffie-Hellman

1.2.4.3 Crytosysteme RSA


RSA est probablement le premier cryptosystème à clé publique, le plus fréquem-
ment utilisé, proposé par Rivest, Shamir et Adleman en 1978. Il repose sur la quasi
impossibilité d’inverser une fonction puissance et est considéré comme sûr quand la clé
est suffisamment longue. Il permet d’utiliser des clés de :
1. 512 bits : peu sûr
2. 768 bits : légèrement sûr
3. 1024 bits : sûr pour la plupart des utilisations
4. 2048 bits : sûr encore pour 10 ans.
Sa sécurité, alors, repose sur la taille de sa clé (la difficulté de factorisation des grands
nombres entiers). Le cryptosystème RSA utilise les trois algorithmes suivants :
1. La génération des clés RSA
(a) Bob doit choisir d’abord aléatoirement deux nombres premiers suffisamment
grands ayant à peu prés la même taille et calculer n = p ∗ q et φ(n) =
(p − 1)(q − 1).
18

(b) Il choisi ensuite aléatoirement aussi un nombre naturel e ∈ N tel que 1 ≺


e ≺ φ(n) et pgcd(e, φ(n)) = 1 ( e : est premier avec φ(n)).
(c) En utilisant l’algorithme d’Euclid étendu, il calcule d ∈ N tel que 1 ≺ d ≺
φ(n) et ed ≡ 1 mod φ(n).
(d) Il publie alors sa clé publique (n, e) dans une base de données et garde d, p,
q et φ(n) privés.
i. n : est appelé le module de RSA
ii. e : l’exposant de chiffrement
iii. d : l’exposant de déchiffrement.
2. Le chiffrement RSA
Le message m a chiffrer étant en forme numérique, Alice peut commencer :
(a) Elle cherche la clé publique de Bob (n, e) dans la base de données(annuaire
spécialisé).
(b) Elle chiffre le message m en calculant : c ≡ me mod n.
(c) Elle envoie le message a Bob.
3. Le déchiffrement RSA
Une fois le cryptogramme reçu, Bob utilise sa clé privée d et calcule m ≡ cd
mod n.

1.2.4.4 Cryptosytème EL-GAMAL


Portant le nom de son concepteur, le cryptosysteme El-Gamal permet l’échange
sécurisé des messages chiffrés. Comme tout cryptosystème à clé publique, il comporte
les trois algorithmes suivants :
1. La génération de clé El-Gamal : l’algorithme de génération des clés est le
suivant :
(a) Bob choisi un nombre premier p(aussi large qu’il peut) et générateur g mo-
dulo p.
(b) Il choisi ensuite aléatoirement un entier a ∈ [2..p − 1] et calcule : g a mod p.
(c) La clé publique de Bob est (p, g, g a ) et sa clé privée est a.
2. Le chiffrement El-Gamal : Le chiffrement comporte trois étapes :
(a) Alice obtient la clé publique de Bob (p, g, g a ).
(b) Elle choisi un nombre b ≺ p − 1 aléatoirement.
(c) Elle calcule ensuite : g b mod p et mg ab mod p. Elle envoie alors le crypto-
gramme c = (g b , mg ab ) à Bob.
3. Le Déchiffrement El-Gamal : Bob ayant reçu le cryptogramme c, il procède
comme suit :
(a) Il utilise sa clé privée pour calculer : (g b )−a ≡ (g b )p−1−a mod p.
(b) Il déchiffre ensuite m en calculant :(g b )−a mg ab mod p.
19

1.2.5 Cryptographie symétrique vs. Cryptographie asymétrique


Cryptographie symétrique ou cryptographie asymétrique, laquelle choisir ? Le choix
est difficile surtout entre des cryptosystèmes qui ont prouvé leur force contre les diffé-
rentes attaques et ceux qui ont des points communs. Cette partie souligne les principaux
avantages et inconvénients des deux techniques.

1.2.5.1 Les avantages des cryptosystèmes symétriques

Les chiffrements symétriques peuvent être conçus pour avoir des taux élevés du
flux de données. Certaine implémentations matérielles réalisent un taux de chiffrement
de centaines de méga-octets par seconde, tandis que les implémentations logicielles
peuvent atteindre des taux de sortie en méga-octets par microsecondes. Les clés de
chiffrement sont relativement courtes (de petite taille). Les cryptosystèmes symétriques
peuvent être utilisé comme primitives de construction de mécanismes cryptographiques
comme la signature électronique. Ils peuvent être composés de façon à construire des
cryptosystèmes plus forts (utilisation de DES en trois étapes pour le 3-DES).

1.2.5.2 Les inconvenients des cryptosystèmes symétriques

La clé doit rester secrète entre deux entités communicantes. Sur un grand réseau
de communication, il doit y avoir plusieurs paires de clés.
Dans une communication bipartite entre les entités A et B, une pratique cryptogra-
phique saine exige que la clé doit changer fréquemment, et peut-être pour chaque
session de communication.

1.2.5.3 Les avantages des cryptosystèmes asymétriques

Seule la clé privée doit être gardée secrète. La paire de clés (clé publique/clé privée)
peut rester inchangeable pour une période considérablement longue. Certains schémas
de cryptographie asymétrique peuvent produire des mécanismes de signature électro-
nique relativement efficace. Sur un réseau suffisamment large, le nombre de clés néces-
saires peut être plus petit que le nombre exigé dans les scénarios à clé secrète.

1.2.5.4 Les inconvénients des cryptosystèmes asymétriques

La plus populaire des méthodes à clé publique est très lente par rapport aux cryp-
tosystèmes symétriques. La taille des clés doit être plus grande que celle des cryp-
tosystèmes symétriques. Pour conclure cette comparaison, on peut dire que ces deux
concepts peuvent être complémentaires, comme par exemple : la cryptographie asymé-
trique peut servir à l’échange de clé symétrique entre deux entités communicantes A et
B. Et pour être juste avec les deux techniques, on peut dire que chacune est meilleure
dans un domaine particulier : La cryptographie à clé publique est efficace pour les si-
gnatures (non-répudiation) et la gestion des clés, et La cryptographie à clé symétrique
est efficace pour la confidentialité et l’intégrité des données.
20

1.2.6 Attaques contre les cryptosystemes


Une attaque contre un cryptosystème est tout processus de recherche d’informations
de transformation du texte chiffré en un texte claire. Le but final d’une telle méthode
est de déterminer la clé privée de déchiffrement ainsi que le texte en claire.
On peut déterminer deux types d’attaques : les attaques passives où le cryptanalyste
détourne le canal de communication(attaque contre la confidentialité de données), et
attaques actives : où le cryptanalyste cherche à modifier le message(ajout ou suppres-
sion d’informations) ; autrement dit : attaque contre l’integrité et l’authenticité des
données [25].

1.2.6.1 Les attaques passives


Les attaques passives peuvent être subdivisées en quatre classes principales :
1. Les attaques à texte clair choisi : Avec cette attaque, le cryptanalyste choisi
un texte clair, il le chiffre avec une clé publique de chiffrement donnée puis, il
analyse les résultats afin de déduire certaines informations pouvant lui servir â
découvrir le texte clair correspondant à un chiffré non vu précédemment.
2. Les attaques à texte chiffré choisi : Dans cette attaque, le cryptanalyste
choisi un texte chiffré, et trouve son texte en clair, correspondant. Cela ne peut
se faire sans avoir accés aux équipements de chiffrement. Après, le cryptanalyste
peut utiliser de tel équipement pour déduire le texte clair correspondant à un
chiffré intercepté, puisque l’équipement ne donne pas la clé de déchiffrement.
3. Les attaques à texte clair connu : Cette attaque est plus pratique que celle
à texte clair choisi, car l’attaquant a un certain nombre de paires constituées de
texte clair et de texte chiffré. Même une petite quantité d’information dans ce
type d’attaque suffira pour trouver la clé.
4. Les attaques à texte chiffré seul : L’attaquant ne connait que le texte chiffré
et il cherche le texte clair et si possible la clé. Tout cryptosystème vulnérable à
ce type d’attaque est considéré non sûr.

1.2.6.2 Les attaques par force brute (exhaustives)


L’attaquant essaie toutes les clés possibles afin de déterminer laquelle a été utilisée
par les parties communicantes, dans le but d’avoir la clé de déchiffrement pour des fins
de modification. Ce type d’attaque peut prendre un temps considérablement long.

1.2.7 Hachage et signature numérique


1.2.7.1 Hachage[26][2][30]
Le hachage est une fonction mathématique qui consiste à compresser un message
de longueur variable et donner une empreinte appelée condensé(condensat haché), qui
est d’une taille beaucoup plus petite que le message lui-même.
Une fonction de hachage cryptographique est une fonction de hachage qui, à une don-
née de taille arbitraire, associe une image de taille fixé, et dont une propriété essentielle
21

est qu’elle est pratiquement impossible à inverser, c’est-à-dire que si l’image d’une don-
née par la fonction se calcule très efficacement, le calcul inverse d’une donnée d’entrée
ayant pour image une certaine valeur se révèle impossible sur le plan pratique. Pour
cette raison, on dit d’une telle fonction qu’elle est à sens unique.

La plupart des fonctions de hachage cryptographiques sont conçues pour prendre une
suite de bits de longueur quelconque en entrée(éventuellement la longueur est bornée,
mais la borne est très élevée) et produire une valeur de hachage de longueur fixe en sor-
tie.Dans leur définition formelle, les fonctions de hachages cryptographiques possèdent
dans le modèle standard différents niveaux de sécurités qui peuvent être requis, définis
par les propriétés suivantes :
1. résistance à la préimage(en anglais, preimage resistance) pour toute valeur de
hachage h, il devrait être difficile de trouver un message m tel que hachage(m) =
h. Cette notion est liée à la notion de fonction à sens unique. Les fonctions qui
n’ont pas cette propriété sont vulnérables aux attaques de préimage (en anglais,
preimage attacks) ;
2. résistance à la seconde préimage (en anglais, second preimage resistance)
pour tout message m1 , il devrait être difficile de trouver un message différent m2
tel que hachage(m1 ) = hachage(m2 ). Les fonctions qui n’ont pas cette propriété
sont vulnérables aux attaques de seconde préimage (en anglais, second-preimage
attacks) ;
3. résistance aux collisions il doit être difficile de trouver deux messages différents
m1 et m2 tels que hachage(m1 ) = hachage(m2 ). Une telle paire de messages est
appelée une collision de hachage cryptographique. Pour obtenir cette propriété, il
faut une valeur de hachage au moins deux fois plus longue que celle requise pour
obtenir la résistance à la préimage. Si la clé n’est pas assez longue, une collision
peut être trouvée par une attaque des anniversaires.
On peut noter qu’un algorithme permettant de trouver une préimage peut aussi
être utilisé pour fournir une collision ; par contraposée, l’absence d’attaque efficace en
collision implique l’absence d’attaque efficace en préimage. En pratique, les fonctions
de hachages cryptographiques utilisées sont conçues pour être résistantes aux collisions,
cette propriété impliquant les deux autres. Et même si en cryptographie théorique il est
parfois nécessaire d’utiliser des fonctions de hachages sur des hypothèses plus faibles
pour des raisons d’efficacité calculatoire théoriques, on leur préférera en pratique les
fonctions standardisées possédant les propriétés de sécurité les plus fortes.

Informellement, ces propriétés signifient qu’un adversaire malveillant ne peut pas rem-
placer ou modifier les données d’entrée sans changer son empreinte numérique. Ainsi,
si deux chaînes ont la même empreinte numérique, on peut être très confiant dans le
fait qu’elles sont identiques.

Une fonction de hachage cryptographiquement sûre peut tout de même avoir des
propriétés indésirables. Actuellement, des fonctions populaires de hachage cryptogra-
phique(MD5, SHA-1 et la plupart des SHA-2) sont vulnérables à des attaques qui
allongent la longueur du message : en effet, si hachage(m1 ) et la longueur de m1 sont
22

connus, en choisissant un m2 approprié, un attaquant peut calculer hachage(m1||m2)


où || désigne la concaténation. Cette particularité peut être utilisée pour briser des
algorithmes d’authentification fondés sur des fonctions de hachage. Les HMAC(en an-
glais Keyed-Hash Message Authentication Code) permet de corriger cette faiblesse.

On pourrait augmenter la sécurité des fonctions de hachage cryptographiques en exi-


geant des propriétés additionnelles pour ces fonctions. Par exemple,

1. il est impossible de trouver deux messages ayant des empreintes numériques sem-
blables ;
2. il est impossible de déduire quelque information que ce soit d’un message à partir
de son empreinte numérique.
23

1.2.7.2 Signature numérique


C’est un procédé cryptographique qui assure l’authentification des origines des in-
formations échangées ainsi que sa non-répudiation, il garantie aussi l’intégrité des infor-
mations grâce à la combinaison des deux techniques précédemment citées (chiffrement
et hachage).

Figure 1.6 – Signature numérique(coté émetteur)

Figure 1.7 – Vérification de la signature (coté récepteur)

Les figures ci-dessus (figure 1.6 et figure 1.7) illustrent une technique de signature
électronique. Cette signature consiste à hacher le message puis le chiffrer à l’aide de la
clé privée de l’émetteur, pour l’envoyer(le haché signé) accompagné du texte original
à son destinataire qui aura besoin de la clé publique de l’émetteur afin de déchiffrer le
haché signé et le comparer au message original après l’avoir haché à son tour(avec bien
entendu, le même algorithme de hachage que celui, utilisé la première fois).
24

Par la suite, nous allons étudier la notion d’anonymat et quelque notions de base
sur les signatures numériques.
Chapitre 2

Anonymat et Signature numérique

Dans ce chapitre d’abord nous allons définir la notion d’anonymat : afin d’atteindre
cette objectif nous allons étudier les différentes notions en rapport avec l’anonymat.
Ensuite nous allons étudier quelques notions de base sur les signatures numériques, qui
nous servirons par la suite, pour la compréhension de notre mémoire.

2.1 Anonymat[20]
Face aux nombreuses menaces contre la vie privée qui existent du fait de l’utilisation
d’internet(profiling, traces électroniques, ...), plusieurs solutions techniques tendant à
préserver l’identité invisible des utilisateurs, en leur permettant de ne pas dévoiler leur
véritable identité, ont été développées. Certaines de ces techniques font objet de notre
travail.
Le problème de l’anonymat ne réside pas en un seul terme, mais il se distingue en
plusieurs notions. Afin d’aboutir à une définition exacte(ou proche du but) il faut
passer par certaines expositions qui commencent par la protection de la vie privée
(confidentialité) des individus, l’identité des personnes, ainsi que l’utilisation d’autres
concepts dérivants.

2.1.1 Définition de l’anonyamat


Le concept d’anonymat peut être défini comme ≪ l’état de ne pas être connu, non
nommé, ou non identifié ≫. Dans le domaine des systèmes d’information, l’anonymat
peut être défini par rapport à un ensemble d’individus, aux entités communicantes où
à l’évidence résultante d’une transaction.
Détailler cette définition, mène à étudier les différentes notions en rapport avec l’ano-
nymat :
1. L’anonymat au milieu d’un groupe : Si on prend la définition de Pfitz-
mann où l’anonymat est défini par ≪ l’état d’être non identifiable au milieu d’un
ensemble d’individus, l’ensemble d’anonymat ≫. L’ensemble d’anonymat est l’en-
semble de tous les sujets pouvant causer une action, par exemple, l’ensemble de
tous les utilisateurs d’un système. Cette définition exprime brièvement le but
principal de l’anonymat, la question d’être identifiable ou non. L’anonymat est la

25
26

propriété fondamentale de cacher l’identité, procurant une totale élimination des


informations pouvant identifier un individu. Toute information d’identification
exigée par une entité communicante pourra être ajouté à un canal de données
sur un système anonyme. L’anonymat procure, alors, la liberté du choix du taux
d’informations d’identification révélées si nécessaire.
2. L’ensemble d’anonymat : La méthode traditionnelle de mesurer l’anonymat
est l’utilisation de la taille de l’ensemble d’anonymat qui est l’ensemble de tous
les participants qui auraient pu exécuter une action. Cette approche a été uti-
lisée pour analyser l’anonymat obtenu par les systèmes de communication ano-
nyme, où : de plus la taille de l’ensemble des participants ayant pu exécuter une
opération est large, le plus l’anonymat obtenu par un système est fort. Cette
technique de mesure de la force de l’anonymat, la plus utilisée, n’est pas idéale.
L’inconvénient majeur de l’ensemble d’anonymat est qu’il suppose une distribu-
tion uniforme de probabilité entre les participants de l’ensemble. Cette hypothèse
est plutôt injuste dans un groupe d’utilisateurs hétérogène. En réponse à cette
faiblesse, un certain nombre de méthode de mesure de d’anonymat a été proposé
pour gérer les différents problèmes rencontrés avec l’ensemble d’anonymat.
3. L’anonymat des entités communicantes : Dans un système de communica-
tion traditionnelle, il doit y avoir deux participants : un émetteur et un récepteur,
où l’un où l’autre peut être un groupe d’individus. Alors, à qui l’anonymat doit
être appliqué ? L’anonymat vu du coté système de communication, peut être
subdivisé en trois parties : anonymat de l’émetteur, anonymat du récepteur et
anonymat des deux parties. L’anonymat de l’émetteur signifie qu’un observateur
ne pourra jamais lier un message particulier à un émetteur précis (mais le ré-
cepteur peut être connu). L’anonymat du récepteur signifie qu’un observateur
ne pourra pas lier un message particulier a un récepteur précis (l’émetteur peut
être connu). En fin, il est peut être désirable que les deux entités communicantes
soient anonymes afin de rester loin de toute observation et le message devient
non chainable.
4. L’anonymat des transactions Une transaction est souvent documentée par un
enregistrement électronique. Une transaction anonyme est telle qui ne pourra pas
être attribuée à un individu particulier et un enregistrement qui documente une
transaction est anonyme s’il ne peut pas être associé a un sujet de transaction.
Dans ce cas l’anonymat de l’émetteur ne suffira pas pour assurer l’anonymat d’une
transaction. Et le message lui-même ne devra pas contenir des informations qui
lient l’évidence d’une transaction à un citoyen existant. Donc, un utilisateur doit
rester anonyme à égard des communications et les enregistrements résultants des
transactions.

2.1.2 Le pseudonymat
Un pseudonyme est un nom fictif ou une fausse identité que chaque individu peut
choisir afin de l’utiliser comme un identificateur au lieu d’utiliser son vrai nom.

Le pseudonymat est la propriété d’utiliser un pseudonyme comme identificateur. Un


27

individu peut avoir plusieurs pseudonymes afin d’utiliser un pseudonyme distinct pour
accéder à chaque système pour éviter d’être lié aux données transactionnelles accumu-
lées dans chaque système (une opération qui pourra servir dans l’identification de la
personne).

Une transaction pseudonyme est celle qui peut être liée à un pseudonyme mais pas
à un individu particulier. La différence entre l’anonymat et le pseudonymat est que le
pseudonyme permet à un fournisseur de service de lier toutes les transactions impli-
quant le même pseudonyme.

Les pseudonymes peuvent être classés selon la façon dont ils étaient créés et leurs
relations avec l’identité réelle de l’utilisateur :
1. Pseudonyme personnellement généré : un pseudonyme généré par son pro-
priétaire, est le seul à pouvoir établir le lien entre ce pseudonyme et l’identité
réelle(ex : les pseudonymes utilisés pour le chat sur internet).
2. Pseudonyme de référence : c’est un pseudonyme qui peut être transformé
en une identité réelle à l’aide d’une liste de références qui est protégée par une
autre entité dite troisième partie confiante ≪ trusted third party ≫ (numéro de
sécurité sociale).
3. Pseudonyme cryptographique : un pseudonyme généré en appliquant une
fonction cryptographique sur des données d’identification. Cette fonction peut
être à sens unique, ce qui donne un pseudonyme à sens unique.

2.1.3 La non chaınabilité (non-reliabilité)


La non chainabilité représente l’impossibilité(pour d’autre utilisateurs) d’établir
un lien entre différentes opérations réalisées par le même utilisateur, par exemple, en
interdisant la fusion ou le croisement d’informations partir de différentes fichiers ou
bases de données.

2.1.4 Revocation d’anonymat


Dans les transactions anonymes ou pseudonymes, un individu ne divulgue pas son
identité aux autres parties. Cela est indésirable car une personne anonyme ne pourra
être responsabilisée de ces actions. Dans ce cas, un système anonyme doit être di-
visé : dans des circonstances normales, un individu peut communiquer d’une manière
anonyme sans être obliger de divulguer son identité, mais dans des circonstances ex-
ceptionnelles, cette identité ne doit pas rester cachée non plus.

Afin d’accomplir une telle procédure, il faut introduire une troisième partie qui se
chargera de dévoiler l’identité d’un individu sous certaines conditions spécifiques : c’est
la notion de révocation d’anonymat. Le concept permettant la révocation d’anonymat
où du pseudonymat est dit : séquestre d’identité (identity escrow)

Dans un tel système à anonymat révocable, un utilisateur doit disposer d’un certificat
28

qui lui est remis par une autorité de certification. Ce certificat permet à l’utilisateur
de prouver ces droits d’accés aux différents services proposés, cette phase d’authenti-
fication est anonyme(l’anonymat est considéré par rapport à un groupe de personne
possédant les droits d’accés à ce service). Et il doit y avoir une troisième entité capable
de lever cet anonymat si nécessaire appelée agent de séquestre (l’agent séquestre peut
être différent de l’autorité de certification).

Un schéma de séquestre d’identité IdE est défini par quatre algorithmes :

1. IdE.KGen : un algorithme de génération de clés, il calcule les paramètres publics


du système pk et donne les clés secrètes skA et skS respectivement à l’autorité
et à l’agent de séquestre.
2. IdE.Reg ≪ R(U ; A(skA))(pk) ≫ un protocole d’émission de certificat. un pro-
tocole interactif entre un utilisateur U et l’autorité A permettant de délivrer un
certificat C à l’utilisateur U.
3. IdE.Verif ≪ V (U (C); V )(pk) ≫ un protocole de vérification. Un protocole in-
teractif entre l’utilisateur U et un vérificateur V où l’utilisateur persuade le vérifi-
cateur qu’il connait un certificat C délivré par l’autorité et lui donne un certificat
de séquestre(escrow certificat).
4. IdE.Open algorithme d’ouverture. L’agent de séquestre lève l’anonymat en re-
trouvant l’identité de l’utilisateur à partir du certificat de séquestre.

2.1.5 La protection de la vie privée (confidentialité)


Le concept de protection de la vie privée est une notion très vaste. Et comme il est
perçu différemment, il est ouvert à l’interprétation indépendamment des individus et
du type de société.
La confidentialité(la protection de la vie privée) peut être définie comme la délivrance
de toutes intrusions non autorisées, où le droit de garder les affaires personnelles et les
relations de l’individu secrètes.
Cette notion n’est pas seulement large, mais elle peut aussi apparaitre sous différentes
dimensions, tel que la confidentialité des personnes, la confidentialité du comportement
personnel, la confidentialité des communications et la confidentialité des données : La
confidentialité des personnes se refère à l’intégrité du corps de l’individu,

1. La confidentialité du comportement personnel concerne le comportement


de l’individu, en particulier, ses attitudes socioculturelles dans les lieus privés ou
publiques,
2. La confidentialité des communications repose sur le but de communiquer
avec d’autres entités sans qu’il y ait le controle habituel des communications par
d’autres individus ou organisations,
3. La confidentialité des données personnelles concernant l’objectif d’interdire
autres personne ou organisation de manipuler les données personnelles d’un in-
dividu.
29

2.1.6 L’identité numérique


La notion d’identité devient très importante avec l’émergence des sciences. Princi-
palement, on peut mentionner deux différents types d’identité : identité physique et
identité numérique :
1. L’identité physique désigne les caractéristiques où la personnalité d’un indi-
vidu. Alors, l’identité ne réside pas en un nom seulement, mais aussi en un en-
semble de caractéristiques décrivant une personne. Ces caractéristiques peuvent
inclure, entre autres, les caractéristiques physiques inchangeables d’une personne,
ces préférences, où les perceptions d’autres personnes sur la personnalité d’un in-
dividu.
2. L’identité numérique est un terme assez difficile à définir. A un niveau général,
l’identité numérique peut être définie comme une représentation lisible par une
machine d’une identité humaine utilisée dans les systèmes électroniques permet-
tant d’interagir avec d’autres machines ou individus.
Le but de l’identité numérique est de permettre la fonctionnalité du controle
d’accés ou de lier une transaction particulière où un ensemble de données dans
un système informatique à un individu identifiable.
A l’aide de l’identité numérique, un individu peut être identifié, authentifié, et
autorisé d’accéder à un service où une ressource donnée. La sécurité des systèmes
informatiques repose sur le pouvoir d’identification et l’authentification des uti-
lisateurs. Selon l’organisation ou la personne a qui un individu communique ses
informations personnelles, il a un controle partiel sur les données qui constituent
sont identité numérique comme il peut choisir la quantité d’information à divul-
guer à un fournisseur de service.
A partir de cette quantité de données que l’individu peut données à une autre
personne où à une organisation sur son identité, l’identité numérique peut être
anonyme, pseudonyme, identifiable ou identité de groupe. Une identité avec iden-
tification totale, permet à un fournisseur de service de lier une transaction à un
individu. Une transaction pseudonyme peut être liée à un pseudonyme mais pas
à un individu identifiable. Une transaction impliquant une identité anonyme ne
pourra jamais être liée à un individu identifiable. En fin pour l’identité du groupe,
une transaction est liée à un groupe d’utilisateur, mais il est impossible de la lier
à un membre bien précis de ce groupe.

2.2 Signature numérique


2.2.1 Définition
Une signature numérique est un schéma mathématique permettant de vérifier l’au-
thenticité de messages ou de documents numériques. Une signature numérique valide,
lorsque les conditions préalables sont remplies, donne au destinataire une très grande
confiance dans le fait que le message a été créé par un expéditeur connu(authenticité)
et que le message n’a pas été altéré en transit(intégrité).
30

Les signatures numériques sont un élément standard de la plupart des suites de proto-
coles cryptographiques et sont couramment utilisées pour la distribution de logiciels,
les transactions financières, les logiciels de gestion de contrats et dans d’autres cas où
il est important de détecter la falsification.

De manière informelle, un schéma de signature permet à un utilisateur disposant d’une


clé publique et d’une clé privée correspondante de signer un document de manière à ce
que chacun puisse vérifier la signature du document(à l’aide de sa clé publique) mais
que personne d’autre ne puisse falsifier la signature d’un autre document. Les signa-
tures numériques étaient défini à l’origine par Diffie et Hellman [34], et la première
implémentation a été basé sur la fonction de trappe RSA [27]. Goldwasser, Micali et
Rivest [31] ont défini la plus puissante ≪ attaque de message choisi adaptatif exis-
tentiel ≫ contre les schémas de signature numérique. Ils ont également démontré le
premier schéma qui est sécurisé contre une telle attaque en supposant l’existence de
permutations sans griffes, qui à son tour peut être basée sur la dureté de l’affacturage.
Par la suite, des signatures sécurisées contre les attaques de messages choisis adaptatifs
existentiels ont été affichées en supposant l’existence de permutations trappes [21], per-
mutations à sens unique [23], et les fonctions générales à sens unique [16]. Des schémas
plus efficaces contre une telle attaque ont été montrés dans [3].

2.2.2 Principes des signatures numériques


2.2.2.1 Signature sans hachage
Pour atteindre ces objectifs, au lieu de crypter un message avec la clé publique du
destinataire, le signataire doit les crypter avec sa propre clé privée. Et si des messages
peuvent être décryptés avec la clé publique d’une personne bien définie, c’est que c’est
cette personne qui les a vraiment créés.

Figure 2.1 – Schéma de signature numérique simple

Un tel schéma de signature est dit signature simple : un signataire signe des informa-
tions avec sa clé privée, il prouve l’authenticité et la non-répudiation des informations.
31

2.2.2.2 Signature avec hachage

Le système décrit précédemment comporte certains problèmes. Il est lent et produit


un volume important de données(au moins le double de la taille des informations d’ori-
gine). L’ajout d’une fonction de hachage à sens unique dans le processus permet d’amé-
liorer le schéma ci-dessus. Cette fonction traite une entrée de longueur variable(dans
ce cas, un message pouvant contenir indifféremment des milliers ou des millions de
bits), afin d’obtenir en sortie un élément de longueur fixe, à savoir 160 bits. En cas
de modification des données(même d’un seul bit), la fonction de hachage garantit la
production d’une valeur de sortie complètement différente.

Avant de signer son message, le signataire, doit utiliser une fonction de hachage qui
génère un élément de données de longueur fixe, appelé le condensé. En outre, toute
modification apportée aux messages entraine un résumé complètement différent.

Ensuite, il peut utiliser sa clé privée pour signer le condensé, il le joigne à son texte
clair original et l’envoi sur un canal de transmission. A la réception du message, le des-
tinataire peut procéder à la vérification. Il déchiffre de condensé avec la clé publique du
signataire, hache le message original avec la même fonction de hachage et compare les
deux : le haché obtenu avec le haché reçu. La signature est vérifiée si les deux hachés
sont égaux.

Si la fonction de hachage utilisée est sécurisée, il est impossible de récupérer la si-


gnature d’un document pour la joindre à un autre document ou d’altérer un message
signé. Ainsi, la moindre modification apportée à un document signé entraine l’échec du
processus de vérification.

Figure 2.2 – Signature numérique avec fonction de hachage


32

2.2.3 Schéma de signature numérique et sécurités


2.2.3.1 Schéma de signature numérique
Le schéma de signature numérique standard est un triplet d’algorithme (Gen, Sign, V erif y),
où :
1. Gen(1k ) est un algorithme de génération de clé probabiliste en temps polynomiale,
qui prend en entré un paramètre de sécurité 1k et sort une paire de clé publique
et secrète (pk , sk ).
2. L’algorithme de signature Sign(pk, sk, m) est un algorithme probabiliste en temps
polynomiale qui prend en entrée une clé publique pk , une clé secrète sk , un mes-
sage m qui sera signé et sort une signature du message σ(m) et aussi qu’une
nouvelle clé secrète s′k (c’est-à-dire, mis à jour). Dans un schéma de signature
sans mémoire la clé secrète sk reste la même tout au long du processus.
3. Un algorithme de vérification V erif y(pk, m, σ(m)) est un algorithme détermi-
niste en temps polynomial qui prend en entré une clé publique pk un message m
et une prétendue signature σ(m) et sort accept/reject. Nous exigeons, bien sûr,
pour toutes les signatures calculées en exécutant d’abord un algorithme de géné-
ration de clé puis signer une séquence de messages selon le processus ci-dessus,
que l’algorithme de vérification affiche toujours accept.
Comme mentionné ci-dessus, sécurité contre l’attaque de message choisi adaptatif
existentiel de Goldwasser, Micali, et Rivest est la mesure de sécurité connue la plus
puissante pour les signatures.

Figure 2.3 – Signature numérique

2.2.3.2 Sécurité
Dans cette attaque, un adversaire A, qui est un machine à temps polynomial pro-
babiliste, reçoit une clé publique pk générée par l’algorithme de génération de clé.
33

L’adversaire A peut demander de façon adaptative une nombre polynomial de signa-


tures de son choix. A doit alors apposer une signature valide sur un document pour
lequel il n’a pas encore vu de signature. S’il peut produire un tel couple document/si-
gnature accepté par l’algorithme de vérification, alors l’attaque est réussie. Un schéma
de signature est défini comme étant sûr si pour toutes les constantes c, et pour tout
temps polynomial probabiliste A, il existe un paramètre de sécurité kc,A tel que pour
tout k ≻ kc,A la probabilité (prise en compte des lancers de pièces de l’adversaire) que A
réussisse est inférieur à 1/k c . Nous utiliserons le terme polynomialement borné dans ce
mémoire pour désigner une quantité qui est polynomial dans le paramètre de sécurité.
De même, on notera par 1/poly l’inverse d’une quantité polynomialement bornée.

2.2.4 Attaques sur la signature numérique


Le but d’un adversaire est de casser une signature, de façon qu’il puisse produire
une signature valide qui sera acceptée par d’autres personnes. Nous décrivons ici les
trois types d’attaques les plus couramment utilisées contre les schémas de signature.
1. Attaque sans message Dite aussi attaque a clé publique connue. Dans ce type
d’attaque, la seule donnée à la disposition de l’attaquant est la clé publique du
signataire. Ce type d’attaque est le plus faible que l’on puisse considérer.
2. Attaque à message Ici, l’adversaire est capable d’examiner des signatures soit
à messages connus où à messages choisis. Ce type d’attaque peut être subdivisé
en deux classes principales :
(a) Attaque à message connu : dans ce type d’attaque, l’adversaire dispose
de la clé publique du signataire et une liste de paires de messages/signatures.
Cette liste de message n’est pas choisie par l’adversaire.
(b) Attaque à message choisi : dans ce type d’attaque, l’adversaire peut
demander à un signataire de lui signer un ensemble de messages choisis par
lui-même. Cette attaque peut être subdivisée elle aussi en deux sous types :
attaque générique et attaque orientée :

i. Pour l’attaque générique, l’adversaire choisie la liste indépendamment


de la clé publique du signataire(la liste sera la même pour toutes les clés
attaquées).
ii. Et l’attaque orientée, où le choix de la liste est fait après avoir eu la
clé publique du signataire(l’attaque est orientée contre un signataire
spécifique).

2.2.5 Quelques exemples de signatures numérique


Comme il existe plusieurs schémas de cryptosystèmes, il y a aussi plusieurs autres
schémas de signatures qui différent l’un de l’autre dans l’un des algorithmes, que se
soit celui de la génération de la paire de clés, de signature, de vérification ou du coté
de la signature. D’après ces différences on distingue certains algorithmes de signature
numérique.
34

2.2.5.1 Signature numérique RSA


RSA est le plus célèbre et le plus utilisé des algorithmes cryptographiques a clé pu-
blique depuis sa publication en 1978. Il peut être utilisé pour le cryptage ainsi que pour
la signature. Sa sécurité se base sur la difficulté de factorisation des grands nombres
entiers.
L’idée est de calculer un module N comme le produit des deux nombres premiers p et
q et l’exposant e co-premier avec φ(N ). Le schéma de signature RSA peut être d’écrit
comme suit :
1. La génération de clés : un générateur de clé RSA, prend comme paramêtre la
longueur de clé K et choisie aléatoirement deux nombres premiers distincts p et
q dont leur produit donne le module : N = pq.
Ensuite, il choisit(aléatoirement aussi) un autre nombre e ∈ [1..φ(N )] qui sera
l’exposant de cryptage et calcule son exposant correspondant d, l’exposant de
décryptage tel que : ed ≡ 1 mod φ(N ).
En sortie on aura : (N, e, d) où :
(a) (N, e) : est la clé publique.
(b) (N, d) : est la clé privée.
2. La signature : ressemble beaucoup au procédé de cryptage mais cette fois, on
utilise la clé privé pour signer le message m : le signataire calcule alors :

s ≡ md mod N

.
3. La vérification : pour vérifier une signature, le vérificateur a besoin de la clé
publique (N,e) pour calculer :

m ≡ se mod N.

Un tel schéma ne peut pas être utilisé seul en pratique, il ne pourra pas résister aux
attaques à message choisi. Un adversaire qui veut obtenir une signature sur un
message m doit trouver deux messages m1 et m2 tel que : m ≡ m1 m2 mod N , il
demande au signataire une signature sur m1 puis sur m2 puis il calcule m :

s(m) ≡ md mod N ≡ (m1 d m2 d ) mod N ) ≡ s(m1 )s(m2 ) mod N


La solution à ce problème est d’utiliser une fonction de hachage h sur le message
avant de le signer. Donc le schéma de signature change partiellement dans les deux
dernières phases :
1. La signature : le signataire doit d’abord calculer le condensé du message h(m)
puis il signe :
s ≡ (h(m))d mod N.
2. La vérification : Le vérificateur vérifie la signature du condensé :

h(m) ≡ se mod N
35

2.2.5.2 La signature numérique EL-GAMAL


Soit M un bloc d’un message M qu’Alice veut transmettre en le signant à Bob.
1. Alice choisit elle-aussi un grand nombre premier pa tel que le problème du loga-
rithme discret dans (Z/pa Z)∗ soit difficile.
2. Elle choisit aussi un générateur g a de (Z/pa Z)∗ et un entier 0 ⪯ αa ⪯ pa − 2 et
elle calcule
βa = ga αa
Elle dispose ainsi elle aussi d’une clef publique (pa , ga , βa ) et d’une clef privée(secrète)
αa . Pour signer le message M, Alice réalise les opérations suivantes :
1. elle choisit ka ∈ (Z/pa Z)∗ secret et premier pa − 1.
2. elle calcule :
γ a ≡ g ka mod pa )

δa ≡ (M − αa γa )ka−1 mod (pa − 1)


3. la signature du bloc M est alors signK a (M, ka ) avec

signKa(M, ka ) = (γa , δa )

4. Puis elle envoie le couple (eK b (M, ka ), signK a (M, ka )), c’est à dire le quadruplet
(y1 , y2 ), (γa , δa ).
On constate que
βa γa γa δa ≡ ga M mod pa
Remarque : La condition ka premier à pa − 1 est necessaire car Alice utilise pour
calculer δa la quantité k −1 mod (pa−1 )
Cette procédure réalise bien une signature du bloc M. Pour vérifier la signature et
décoder Bob suit le protocole suivant :
1. Bob reçoit le couple constitué par le message crypté par Alice et la signature de
ce message c’est à dire le quadruplet (y1 , y2 ), (γa , δa)
2. Il décode le message à l’aide de sa clé secrète et récupère M.
3. Il calcule
βaγa γaδa mod pa
et vérifie que
βaγa γaδa ≡ ga M
S’il en est ainsi il est sûr que l’expéditeur du message est bien Alice.
On constate que cette procédure réalise bien une signature du message M car
pour fabriquer le couple (γa , δa ) Alice a utilisé sa clef secrète et si l’on remplace
dans la formule donnant δa la clé secrète αa par un autre nombre compris entre
0 et pa−1 on n’aura plus l’égalité

βaγa γaδa ≡ ga M mod pa


36

2.2.5.3 Schéma de signature Schnoor[28]


1. KeyGen : C’est la même chose que le cryptage El-gamal classique des manuels.
Il produit un groupe algébrique, un élément g d’ordre premier r, une clé publique
h = g a et une clé privée 1 ≤ a < r où a est uniformément choisi.
2. Sign(g, a, m) : Choisir uniformément au hasard 0 ≤ k < r, calculer s0 = g k ,
s1 = H(m∥s0 )
et s2 ≡ k + as1 mod r, où la chaîne binaire s1 est interprétée comme un entier
de la manière habituelle. La signature est (s1 , s2 ).
3. Verify(g, h, m, (s1 , s2 )) : s’assurez que h est une clé publique valide pour
l’utilisateur en question puis tester si

s1 = H(m ∥ g s2 h−s1 ).

2.2.5.4 La signature digitale DSA


La signature digitale DSA est l’une des techniques de signature les plus utilisée où la
fonction de hachage est un outil indispensable ainsi que certains nouveaux paramètres
dont on peut citer :
1. p : un module premier, où 2L−1 ≺ p ≺ 2L et L est la longueur en bits de p.
2. q : un nombre premier diviseur de (p-1), où 2N −1 ≺ q ≺ 2N et N est la longueur
en bits de q.
3. g : un générateur de sous-groupe d’ordre q mod p tel que 1 ≺ g ≺ p.
4. x : la clé privée qui doit rester secrète ; x est un entier généré aléatoirement, tel
que 0 ≺ x ≺ q(x ∈ [1..q − 1])
5. y : la clé publique, où y = g x mod p.
6. k : un entier choisi aléatoirement tel que 0 ≺ k ≺ q. k est secret et unique pour
chaque message.
7. k − 1 : l’inverse multiplicatif de k modulo q. k − 1 ∈ [1..q − 1] et kk −1 = 1 mod q.
p , q et g sont dits les paramètres du domaine.
1. Génération de signature DSA La signature d’un message M consiste aux
deux nombres r et s calculés comme suit :

r = (g k mod p) mod q.

z = les N premiers bits les plus à gauche du condensé h(M).

s = (k −1 (z + xr)) mod q.

Pour calculer s, le condensé doit être convertis en entier.

Les valeurs de r et s doivent être vérifiées afin de déterminer si r = 0 ou s = 0.


Si r = 0 ou s = 0, une nouvelle valeur de k doit être recalculée. Il n’est pas
37

souhaitable d’avoir r = 0 ou s = 0 si la signature est calculée proprement.

Maintenant, la signature (r,s) peut être transmise avec le message au vérifica-


teur.
2. Vérification et validation de la signature DSA
La vérification de la signature peut être réalisée par n’importe quelle entité(le
signataire lui-même, le récepteur légitime, où un adversaire(intercepteur de la
signature)) utilisant la clé publique du signataire. Le signataire voudrait vérifier
que sa signature est correcte avant sa transmission, et le récepteur(ou autre per-
sonne) voudra vérifier l’authenticité de la signature.

Avant de procéder à la vérification, les paramètres de domaine p, q et g et la clé


publique du signataire doivent être obtenus d’une manière authentifiée comme
par exemple depuis un certificat numérique(donné par une autorité de certifica-
tion).

Soit : M’, r’ et s’ : les versions reçues de M, r et s,

y : la clé publique du signataire,

N : la longueur de q, donnée en nombre de bits.


(a) Le vérificateur doit vérifier que 0 ≺ r′ ≺ q et 0 ≺ s′ ≺ q. si une des conditions
des n’est pas vérifiée, la signature sera rejetée comme invalide ;
(b) Si les deux conditions précédentes sont vérifiées, le vérificateur calcule ce qui
suit :

w = (s′ )−1 mod q, où (s′ )−1 est l’inverse multiplicatif de s’ modulo q,

z = les N premiers bits les plus à gauche du condensé h(M’),

u1 = (zw) mod q,

u2 = ((r′ )w) mod q,

v = (((g)u1 (y)u2 ) mod p) mod q.


(c) Si v = r′ , alors la signature est vérifiée,
(d) Si v ̸= r′ , alors soit le message soit la signature a été altéré (il y a eu une
erreur dans le processus de génération de signature ou alors une troisième
personne a tenté de falsifier la signature). La signature est considérée comme
invalide.
Les exemples de signature électronique ne se restreignent pas dans les schémas cités
mais s’étendent et se distinguent sur plusieurs domaines d’application, en satisfaisant
plusieurs critères de sécurité comme la confidentialité, l’intégrité et l’anonymat.
38

Après tout ces rappels dans le domaine cryptographique et mathématique, nous avons
les baguages nécessaire qui vont nous permettre de comprendre la suite du mémoire.
Ainsi nous pouvons maintenant étudier les schémas de signature aveugle dans le cha-
pitre suivant.
Chapitre 3

Etude des schémas de signature


aveugle

3.1 Idées de bases de la signature aveugle


3.1.1 Définition
En cryptographie, une signature aveugle, telle qu’introduite par David Chaum, [4]
est une forme de signature numérique dans laquelle le contenu d’un message est dé-
guisé(aveuglé) avant d’être signé. La signature aveugle résultante peut être vérifiée
publiquement par rapport au message original non aveugle à la manière d’une signa-
ture numérique ordinaire. Les signatures aveugles sont généralement utilisées dans les
protocoles liés à la confidentialité où le signataire et l’auteur du message sont des par-
ties différentes. Les exemples incluent les systèmes d’élection cryptographiques et les
systèmes d’argent numérique.

Une analogie souvent utilisée avec la signature aveugle cryptographique est l’acte phy-
sique d’un électeur joignant un bulletin de vote anonyme rempli dans une enveloppe
spéciale doublée de papier carbone sur laquelle les informations d’identification de
l’électeur sont préimprimées à l’extérieur. Un fonctionnaire vérifie les pouvoirs et signe
l’enveloppe, transférant ainsi sa signature sur le bulletin de vote à l’intérieur via le pa-
pier carbone. Une fois signé, le colis est rendu à l’électeur, qui transfère le bulletin de
vote ainsi signé dans une nouvelle enveloppe normale non marquée. Ainsi, le signataire
ne visualise pas le contenu du message, mais un tiers peut ultérieurement vérifier la
signature et savoir que la signature est valide dans les limites du schéma de signature
sous-jacent.

39
40

Figure 3.1 – Un exemple de signature aveugle en action

Les signatures aveugles peuvent également être utilisées pour assurer la non-liabilité,
ce qui empêche le signataire de lier le message aveugle qu’il signe à une version ulté-
rieure non aveugle qu’il peut être appelé à vérifier. Dans ce cas, la réponse du signataire
est d’abord "non masquée" avant la vérification de telle manière que la signature reste
valide pour le message non masqué. Cela peut être utile dans les schémas où l’ anony-
mat est requis.

Les schémas de signature aveugle peuvent être mis en œuvre à l’aide d’un certain
nombre de schémas de signature à clé publique courants, par exemple RSA et DSA.
Pour effectuer une telle signature, le message est d’abord "aveuglé", généralement en le
combinant d’une certaine manière avec un "facteur d’aveuglement" aléatoire. Le mes-
sage masqué est transmis à un signataire, qui le signe ensuite à l’aide d’un algorithme de
signature standard. Le message résultant, ainsi que le facteur d’aveuglement, peuvent
ensuite être vérifiés par rapport à la clé publique du signataire. Dans certains schémas
de signature aveugle, tels que RSA, il est même possible de supprimer le facteur aveu-
glant de la signature avant qu’elle ne soit vérifiée. Dans ces schémas, la sortie finale
(message/signature) du schéma de signature aveugle est identique à celle du protocole
de signature normal.

Les schémas de signature aveugle sont très utilisés dans les applications où la confi-
dentialité de l’expéditeur est importante. Cela comprend divers schémas de ≪ cash
numérique ≫ et protocoles de vote.

Par exemple, l’intégrité de certains systèmes de vote électronique peut nécessiter que
chaque bulletin de vote soit certifié par une autorité électorale avant de pouvoir être
accepté pour le dépouillement ; cela permet à l’autorité de vérifier les informations
d’identification de l’électeur pour s’assurer qu’il est autorisé à voter et qu’il ne soumet
pas plus d’un bulletin de vote. Parallèlement, il est important que cette autorité n’ap-
prenne pas les choix de l’électeur. Une signature aveugle non liée offre cette garantie,
car l’autorité ne verra pas le contenu des bulletins de vote qu’elle signe et ne pourra
pas relier les bulletins de vote en aveugle qu’elle signe aux bulletins de vote non en
aveugle qu’elle reçoit pour le dépouillement.
41

Des schémas de signature aveugle existent pour de nombreux protocoles de signature


de clé publique. Plus formellement, un schéma de signature aveugle est un protocole
cryptographique qui implique deux parties, une utilisatrice Alice qui souhaite obtenir
des signatures sur ses messages et un signataire Bob qui est en possession de sa clé
de signature secrète. A la fin du protocole, Alice obtient la signature de Bob sur m
sans que Bob n’apprenne quoi que ce soit sur le message. Cette intuition de ne rien
apprendre est difficile à saisir en termes mathématiques. L’approche habituelle consiste
à montrer que pour chaque signataire (contradictoire), il existe un simulateur qui peut
produire les mêmes informations que le signataire. Ceci est similaire à la façon dont la
connaissance zéro est définie dans les systèmes de preuve à connaissance zéro .

Un schéma de signature aveugle de confiance doit répondre aux propriétés suivants :

Exactitude : N’importe qui peut vérifier la validité de la signature d’un message


signé par le signataire en utilisant la clé publique du signataire.

Infalsifiable : le signataire est le seul à pouvoir donner une signature valide pour
le message associé, et personne d’autre ne peut atteindre toute signature falsifiée et la
faire passer par la phase de vérification.

Cécité : Le contenu du message doit être aveugler afin que personne ne puisse voire
le contenu du message

Intraçabilité : Assure que le signataire du message n’est pas en mesure d’établir


un lien du couple message-signature après que la signature a été divulguée au public.

3.1.2 Fonction

les systèmes de signature aveugle peuvent être considérés comme incluant les carac-
téristiques de véritables systèmes de signature numérique à deux clés combinés d’une
manière spéciale avec des systèmes à clé publique de style commutatif. Les trois fonc-
tions suivantes constituent le cryptosystème de signature aveugle :

1. Une fonction de signature s′ n’est connue que du signataire, et l’inverse connu


publiquement correspondant á s, tel que s(s′ (x)) = x et s ne donnent aucune
idée sur s′ .

2. Une fonction commutative c et son inverse c′ , tous deux connus uniquement du


fournisseur, tel que c′ (s′ (c(x))) = s′ (x), et c(x) et s′ ne donne aucune idée sur x.

3. Un prédicat de contrôle de redondance r, qui vérifie une redondance suffisante


pour rendre impossible la recherche de signatures valides.
42

3.1.3 Protocole
La façon dont ces fonctions sont utilisées rappelle la façon dont les enveloppes
doublées en papier carbone ont été utilisées dans l’exemple décrit ci-dessus :
1. Le fournisseur choisit x au hasard de sorte que r(x), forme c(x) et fournit c(x)
au signataire.
2. Le signataire signe c(x) en appliquant s′ et renvoie la matière signée s′ (c(x)) au
fournisseur.
3. Le fournisseur supprime la matière signée par l’application de c′ , ce qui donne
c′ (s′ (c(x))) = s′ (x)
4. N’importe qui peut vérifier que la matière dépouillée s′ (x) a été formée par
le signataire, en appliquant la clé publique s du signataire et en vérifiant que
r(s(s′ (x)) = r(x)

3.1.4 Propriétés
Les propriétés de sécurité suivantes sont souhaitées pour le système de signature
aveugle comprenant les fonctions et protocoles ci-dessus :
1. Signature numérique : n’importe qui peut vérifier qu’une signature dépouillée
s′ (x) a été formée à l’aide de la clé privée s′ du signataire.
2. Blind signature : Le signataire ne sait rien de la correspondance entre les
éléments de l’ensemble de la matière signée dépouillée s′ (xi ) et les éléments de
l’ensemble de la matière signée non dépouillée s′ (c(xi )).
3. Conservation de la signature : le fournisseur peut créer au plus une si-
gnature dépouillée pour chaque élément signé par le signataire(i.e. même avec
s′ (c(x1 ))...s′ (c(xn )) et le choix de c, c′ , et xi , il n’est pas pratique de produire
s′ (y), tel que r(y) et y différent de xi .
comme c’est courant dans le travail cryptographique, la possibilité que le même nombre
aléatoire puisse être généré indépendamment est ignorée.

3.2 Schéma de signature aveugle et sécurité


Nous sommes prêts à donner une définition formelle d’une signature aveugle et
de sa sécurité. Dans la définition ci-dessous, les signatures numériques sont traitées
comme un protocoles entre deux joueurs : un Signataire (qui signe ≪aveuglément≫ un
document m) et l’Utilisateur (qui obtient la signature de son document m). Nous nous
appuyons sur le formalisme des machines de Turing interactives, défini par Goldwasser,
Micali et Rackoff [29]. La sécurité d’une signature numérique aveugle consiste en deux
exigences : la propriété de cécité(blindness) et la non-falsification (non-forgeability)
des signatures supplémentaires. On dit que le schéma de signature numérique aveugle
est sûr s’il satisfait les deux propriétés, tel que défini ci-dessous. (Nous remarquons
que notre définition de non-falsification suit la définition de “one-more” forgery par
Pointcheval et Stern [9])
43

3.2.1 Schéma de signature aveugle


Un schéma de signature numérique aveugle est un quadruplet, composé de deux
machines de Turing interactives (Signer,User) et de deux algorithmes (Gen, Vérifier).
1. Gen(1k ) est un algorithme de génération de clé en temps polynomial probabiliste
qui prend en entrée un paramètre de sécurité 1k et délivre en sortie une paire
(pk , sk ) de clés publique et secrète.
2. Signer(pk , sk ) et U ser(pk , m) sont une paire de machines de Turing interactives
probabilistes polynomialement bornées, où les deux machines ont les bandes sui-
vantes (séparées) : bande d’entrée en lecture seule, bande de sortie en écriture
seule, une bande de travail en lecture/écriture, une bande aléatoire en lecture
seule, et deux bandes de communication, une bande en lecture seule et une bande
en écriture seule. Ils reçoivent tous les deux (sur leurs bandes d’entrée) comme
entrée commune un pk produit par un algorithme de génération de clé. De plus,
le signataire reçoit sur sa bande d’entrée une clé privée correspondante sk et l’uti-
lisateur reçoit sur sa bande d’entrée un message m, où la longueur de toutes les
entrées doit être polynomiale dans la sécurité du paramètre 1k de l’algorithme
de génération de clé. L’utilisateur et le signataire s’engagent dans le protocole
interactif d’un nombre polynomial (dans le paramètre de sécurité) de tours. À la
fin de ce protocole les sorties du signataire sont terminées ou non terminées et
les sorties utilisateur sont échec ou σ(m).
3. Le Verify(pk , m, σ(m)) est un algorithme déterministe en temps polynomial, qui
produit des sorties accept/reject avec l’exigence que pour tout message m, et
pour tous les choix aléatoires d’algorithme de génération de clé si le signataire
et l’utilisateur suivent le protocole, le signataire affiche toujours terminé, et la
sortie de l’utilisateur est toujours accepter par l’algorithme de vérification.

Figure 3.2 – flux de blind signature structure


44

Nous allons maintenant décrire la sécurité d’un schéma de signature aveugle

3.2.2 Sécurité
un schéma de signature numérique aveugle est sécurisé si pour toutes les constantes
c, et pour tous les algorithmes probabilistes en temps polynomial A, il existe un pa-
ramètre de sécurité kc,A tel que pour tout k ≻ kc,A les deux propriétés suivantes sont
vérifiées :
1. Blindness proporty : Soit b ∈R {0, 1}(c’est-à-dire que b est un bit aléatoire
qui est un secret conservé de A). A exécute l’expérience suivante(où A contrôle
le "signataire", mais pas "l’utilisateur", et essaie de prédire b) :
(a) étape 1 : (pk , sk ) ←− Gen(1k )
(b) étape 2 : {m0 , m1 } ←− A(1k , pk , sk )(c’est-à-dire que A produit deux docu-
ments, polynôme en 1k , où {m0 , m1 } sont par convention ordonnés lexico-
graphiquement et peuvent même dépendre de pk et sk ).
(c) étape 3 : On note {mb , m1−b } les deux mêmes documents {m0 , m1 }, ordonné
selon la valeur du bit b, où la valeur de b est cachée à A. A(1k , pk , sk , m0 , m1 )
s’engage dans deux protocoles interactifs parallèles(et arbitrairement entre-
lacés), le premier avec U ser(pk , mb ) et le second avec U ser(pk , m1−b ).
(d) étape 4 : Si le premier utilisateur sort sur sa bande privée σ(mb )(i.e n’échoue
pas en sortie) et le deuxième utilisateur sort sur sa bande privée σ(m1−b )(i.e
n’échoue pas non plus en sortie) alors A est donné comme entrée supplémen-
taire {σ(mb ), σ(m1−b )} ordonné selon l’ordre (m0 , m1 ) correspondant. (Nous
remarquons que nous n’insistons pas pour que cela se produise, et l’un ou
les deux utilisateurs peuvent échouer).
(e) étape 5 : A sort un bit b̃ (compte tenu de son point de vue des étapes 1 à
3, et si les conditions de l’étape 4 sont également satisfaites).
Alors la probabilité, reprise sur le choix de b, sur les lancers de pièces de l’algo-
rithme de génération de clé, les lancers de pièces de A, et les lancers de pièces
(privés) des deux utilisateurs (à partir de l’étape 1), que b=b̃ est au plus

1 1
+ c
2 k

2. Non forgeability proporty : A exécute l’expérience suivante(Où A contrôle


l’"Utilisateur"("User"), mais pas le "Signrataire"(Signer), et essaie d’obtenir en-
core une signature) :
(a) étape 1 : (pk , sk ) ←− Gen(1k )
(b) étape 2 : A(pk ) s’engage dans plusieurs polynômes (en k) adaptatifs, pro-
tocoles interactifs parallèles et entrelacés avec plusieurs copies polynomiales
du Signataire(pk , sk ), où A décide de manière adaptative quand s’arrêter.
Soit l le nombre d’exécutions, où la sortie du signataire s’est terminée à la
fin de l’étape 2.
45

(c) étape 3 : A sort une collection {(m1 , σ(m1 )), ...(mj , σ(mj ))} sous la contrainte
tous les (mi , σ(mi )) pour 1 ≤ i ≤ j sont tous acceptés par V erif y(pk , mi , σ(mi )).

Alors la probabilité, prise en compte sur des lancers de pièces de l’algo-


rithme de génération de clés, des lancers de pièces de A, et sur les lancers
de pièces (privés) du Signataire, que j ≻ l est au plus
1
kc
Remarque sur la "Blindness Proporty"
1. Nous soulignons que nous n’exigeons pas de l’adversaire qu’il suive le protocole
de signature, ni que le protocole se termine par la signature valide. De plus,
nous exigeons que la borne de probabilité soit valable même si le protocole est
interrompu au milieu de l’exécution.
2. Par des arguments hybrides standards, la définition ci-dessus est aussi générale
que la définition dans laquelle de nombreuses signatures polynomiales sont obte-
nues, laissant A faire la distinction entre les deux dernières signatures.
3. Enfin, nous notons que puisque l’utilisateur n’a pas d’identifiant spécial ou d’autre
identification spéciale(ou bien intègre ces informations dans le message à signé),
nous restreignons notre vision à un seul programme utilisateur.
46

3.3 Attaque des schémas de signature aveugle


Comme d’habitude, plusieurs scénarios peuvent être envisagés. Nous nous concen-
trons sur deux types d’attaques qui proviennent naturellement de l’utilisation de si-
gnatures aveugles dans la monnaie électronique :

3.3.1 L’attaque séquentielle


l’attaquant interagit séquentiellement avec le signataire. Cette attaque peut être
effectuée par un utilisateur qui retire des pièces les unes après les autres.
Il est clair que, dans des situations pratiques, de nombreux utilisateurs pourraient
être autorisés à retirer de l’argent en même temps. L’attaque suivante doit alors être
envisagée.

Q= nombre de requêtes posées par l’attaquant C à l’oracle f

Figure 3.3 – L’attaque séquentielle

3.3.2 L’attaque parallèle


l’attaquant interagit l fois en parallèle avec le signataire. Cette attaque est plus
puissante. En effet, l’attaquant peut initier de nouvelles interactions avec le signataire
avant que les précédentes ne soient terminées. Cette attaque peut être effectuée par un
groupe d’utilisateurs qui retirent plusieurs pièces en même temps.

Q= nombre de requêtes posées par l’attaquant C à l’oracle f


Figure 3.4 – L’attaque parallèle
47

3.4 Quelques exemples de schémas de signature aveugle


3.4.1 Signature aveugle RSA
3.4.1.1 Construction
Le premier schéma de signature aveugle proposé par Chaum a été fondé sur la si-
gnature traditionnelle RSA qui donne une signature s en calculant l’exponentiation du
hache h d’un message m avec l’exposant secret d, le tout modulo un module publique
n, s(h(m)) ≡ (h(m))d mod n.

La validité de la signature s est vérifiée en calculant l’exponentiation de la signature


s avec l’exposant publique e, le tout modulo le module n et comparer le résultat au
hache original du message m : (s(h(m)))e ≡ h(m) mod n. La version aveugle de RSA
comporte les trois phases suivantes :
1. Setup : la génération des clés de signature :
(a) Choisir aléatoirement deux entiers premiers p et q
(b) Calculer n = pq, le module de RSA
(c) Choisir e : un entier premier avec φ(n) = (p − 1)(q − 1)
(d) Calculer d ≡ e−1 mod φ(n)
La paire de clés de signature (sks, pks) est (d, (n, e)).
2. Sign : la phase de signature se compose de trois étapes :
(a) Blind : l’aveuglement du message :
i. L’utilisateur U choisi aléatoirement un nombre r tel que r soit premier
avec n.
ii. Il calcule h′ ≡ h(m)re mod n
iii. Il envoie h′ au signataire S
(b) BSign : Le signataire S signe alors le message aveugle :
i. Il calcule s′ ≡ h′ d mod n ≡ (h(m)re )d mod n ≡ h(m)d r mod n
ii. Il envoie s′ à U
(c) Unblind : le désaveuglement de s′ : U reçois la signature s′ , il calcule
ensuite s ≡ s′ r−1 mod n ≡ h(m)d mod n. il envoie après le couple (s, m)
à son destinataire.
3. Verify : La vérification :
Le destinataire vérifie que se ≡ h(m) mod n
48

Figure 3.5 – Cryptosytème blind RSA

3.4.1.2 Analyse de la sécurité


Le schéma fonctionne sous l’hypothèse que le problème RSA est irréalisable(c’est-
à-dire qu’il n’y a pas d’algorithme PPT qui, étant donné une clé publique RSA valide
arbitraire et y ∈R Z∗n , peut produire y d mod n avec une probabilité non négligeable).
1. Completeness : On voit clairement que si U et S suivent honnêtement le pro-
tocole, alors σ e ≡ (σ ′ r−1 )e ≡ (m′de )(r−e ) ≡ (m′ r−e ) ≡ H(m) mod n. Ainsi,
l’algorithme de vérification de signature produit toujours "true"
2. Blindness : L’utilisation du facteur aveuglant aléatoire r garantit que le couple
(m, σ) est statistiquement indépendant du couple (m′ , σ ′ ) visible par le signataire
au cours du protocole, impliquant ainsi indissociabilité/aveuglement("unlinkability/blindness.").
3. Unforgeability : On ne sait pas si l’infalsibilité est valable pour le schéma de
signature aveugle de Chaum sous l’hypothèse standard d’infaisabilité RSA. [24]
montre que l’on peut obtenir avec succès une contrefaçon de plus si la fonction de
hachage est mal implémentée. Si nous supposons qu’il s’agit d’un oracle aléatoire
et que le problème d’inversion de cible connue RSA(décrit dans [22]) est difficile,
il est possible de prouver que ce schéma est infalsifiable. Nous omettons ici la
longue preuve par manque de place. Les lecteurs intéressés peuvent se référer à
[22].
Chaum a ensuite étendu cette idée dans [10] et a obtenu des schémas similaires
aux schémas aveugles basés sur RSA pour pièces introuvables et chèques introuvables.
Ils garantissaient l’anonymat du client si la pièce/le chèque était utilisé une seule fois
par le client, mais permettaient la traçabilité s’il essayait de dépenser deux fois. Les
schémas basés sur le RSA de Chaum étaient assez inefficaces, mais ils ont jeté les bases
des futures recherches dans le domaine des signatures aveugles.

3.4.1.3 Attaque
RSA est soumis à l’attaque aveuglante RSA par laquelle il est possible d’être amené
à déchiffrer un message en signant aveuglément un autre message. Étant donné que le
49

processus de signature équivaut à déchiffrer avec la clé secrète du signataire, un atta-


quant peut fournir une version aveuglée d’un message m chiffré avec la clé publique
du signataire, m′ pour qu’ils signent. Le message crypté serait généralement une infor-
mation secrète que l’attaquant a observée être envoyée cryptée sous la clé publique du
signataire sur laquelle l’attaquant souhaite en savoir plus. Lorsque l’attaquant supprime
l’aveuglement de la version signée, il aura le texte clair :

m” ≡ m′ re mod n
m” ≡ (me mod n.re ) mod n
m” ≡ (mr)e mod n
où m′ est la version cryptée du message. Lorsque le message est signé, le texte en
clair m s’extrait facilement :

s′ ≡ m”d mod n
s′ ≡ ((mr)e )d mod n)
s′ ≡ (mr)ed mod n
s′ ≡ m.r mod n
puisque ed = 1

Notez que φ(n) fait référence à la fonction indicatrice d’Euler. Le message est
maintenant facilement obtenu.

m ≡ s′ .r−1 mod n
Cette attaque fonctionne car dans ce schéma de signature aveugle, le signataire
signe directement le message. En revanche, dans un schéma de signature non aveugle,
le signataire utiliserait généralement un schéma de remplissage(par exemple en signant
à la place le résultat d’une fonction de hachage cryptographique appliquée au message,
au lieu de signer le message lui-même), mais puisque le signataire ne connaît pas le
véritable message, tout schéma de remplissage produirait une valeur incorrecte lorsqu’il
n’était pas masqué. En raison de cette propriété multiplicative de RSA, la même clé
ne doit jamais être utilisée à la fois à des fins de chiffrement et de signature.
50

3.4.1.4 Implémentation

1
2 from math import gcd
3
4 d e f prod ( p , q ) :
5 n=p∗q
6 return n
7
8 d e f mod( a , b , c , d ) :
9 f= a ∗pow ( b , c ) % d
10 return f
11
12 #1 . Setup : l a g é n é r a t i o n d e s c l é s de s i g n a t u r e :
13
14 p r i n t ( " l a g é n é r a t i o n d e s c l é s de s i g n a t u r e " )
15
16 #( a ) C h o i s i r a l é a t o i r e m e n t deux e n t i e r s p r e m i e r s p e t q
17
18 p=i n t ( i n p u t ( " En trez un nombre p r e m i e r p " ) )
19 i =2
20 w h i l e i <p and p%i ! = 0 :
21 i=i +1
22 i f i==p :
23 p r i n t ( " p=" ,+p )
24 else :
25 p r i n t ( " l e nombre que vous avez donnez n ’ e s t pas p r e m i e r " )
26 p=i n t ( i n p u t ( " En trez un nombre p r e m i e r p " ) )
27
28 q=i n t ( i n p u t ( " En trez un nombre p r e m i e r q " ) )
29 j =2
30 w h i l e j <q and q%i ! = 0 :
31 j=j +1
32 i f j==q :
33 p r i n t ( " q=" ,+q )
34 else :
35 p r i n t ( " l e nombre que vous avez e n t r e z n ’ e s t pas p r e m i e r " )
36 q=i n t ( i n p u t ( " En trez un nombre p r e m i e r q " ) )
37

38 #( b ) C a l c u l e r n=pq , l e module de RSA


39
40 p r i n t ( " n =" ,+ prod ( p , q ) )
41
42 #( c ) C h o i s i r e : un e n t i e r p r e m i e r avec ( n ) =(p−1) ( q−1)
43

44 p r i n t ( " Phi ( n ) =" ,+ prod ( p−1,q−1) )


45
46 e=i n t ( i n p u t ( " c h o i s i s s e z e un e n t i e r p r e m i e r à p h i ( n ) " ) )
47
48 w h i l e gcd ( e , prod ( p−1,q−1) ) ! = 1 :
49 try :
50 e=i n t ( i n p u t ( " c h o i s i s s e z e un e n t i e r p r e m i e r à p h i ( n ) " ) )
51 except :
52 p r i n t ( " e=" ,+ e )
51

53 p r i n t ( " e=" ,+ e )
54
55 #( d ) C a l c u l e r d=e ^{−1} mod (n)
56
57 d e f find_mod_inv ( a ,m) :
58
59 f o r x i n r a n g e ( 1 ,m) :
60 i f ( ( a%m) ∗ ( x%m) % m==1) :
61 return x
62 r a i s e E x c e p t i o n ( " L ’ i n v e r s e m o d u l a i r e n ’ e x i s t e pas . " )
63 try :
64 d=s t r ( find_mod_inv ( e , prod ( p−1,q−1) ) )
65 p r i n t ( " d ="+d )
66 except :
67 p r i n t ( " L ’ i n v e r s e m o d u l a i r e n ’ e x i s t e pas " )
68
69 #La p a i r e de c l é s de s i g n a t u r e ( sks , pks ) e s t ( d , ( n , e ) ) .
70
71 p r i n t ( " l a c l é p u b l i q u e de l a s i g n a t u r e pks e s t l e c o u p l e ( n , e ) =" ,+ prod (
p , q) , e)
72

73 p r i n t ( " l a c l é p r i v é de l a s i g n a t u r e s k s e s t d =" ,+find_mod_inv ( e , prod ( p


−1,q−1) ) )
74
75 #2 . S i g n : l a phase de s i g n a t u r e s e compose de t r o i s é t a p e s :
76

77 p r i n t ( " Phase de s i g n a t u r e " )


78
79 #( a ) B l i n d : l aveuglement du message :
80
81 p r i n t ( " L ’ aveuglement du message " )
82 m=s t r ( i n p u t ( " Entre z un message m à s i g n e r " ) )
83 p r i n t ( "m=" ,m)
84 p r i n t ( " h (m)= " , hash ( ’m’ ) )
85
86 #i . L utilisateur U c h o i s i a l é a t o i r e m e n t un nombre r t e l
87 que r s o i t p r e m i e r avec n .
88

89 r=i n t ( i n p u t ( " C h o i s i s s e z un nombre a l é a t o i r e r t e l q u e r p r e m i e r avec n " ) )


90 w h i l e gcd ( r , prod ( p , q ) ) ! = 1 :
91 try :
92 r=i n t ( i n p u t ( " C h o i s i s s e z un nombre a l é a t o i r e r t e l q u e r p r e m i e r
avec n " ) )
93 except :
94 p r i n t ( " r=" ,+ r )
95 p r i n t ( " r=" ,+ r )
96
97 #i i . I l c a l c u l e h =h (m) r ^ e mod n
98
99 p r i n t ( " h’= " ,+mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) )
100
101 #i i i . I l envoie h au s i g n a t a i r e S
102
103 p r i n t ( " l e s i g n a t a i r e r e ç o i t h’= " ,+mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) )
104
52

105 #( b ) BSign : Le s i g n a t a i r e S s i g n e a l o r s l e message a v e u g l e :


106
107 p r i n t ( " S i g n a t u r e du message a v e u g l é " )
108
109 #i . I l c a l c u l e s = h ^d mod n = ( h (m) r ^ e ) ^d mod n
110 =h (m) ^d r mod n
111
112 d=s t r ( find_mod_inv ( e , prod ( p−1,q−1) ) )
113 p r i n t ( " s ’= " ,+ i n t (mod ( 1 , mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) , find_mod_inv ( e , prod (
p−1,q−1) ) , prod ( p , q ) ) ) )
114
115 #i i . I l e n v o i e s à U
116
117 p r i n t ( " l ’ u t i l u s a t e u r r e ç o i t s ’= " ,+ i n t (mod ( 1 , mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) ,
find_mod_inv ( e , prod ( p−1,q−1) ) , prod ( p , q ) ) ) )
118 #( c ) Unblind : l e d é s a v e u g l e m e n t de s : U re ç ois la signature
s , i l calcule ensuite
119
120 p r i n t ( " phase de d é s a v e u g l e m e n t " )
121 p r i n t ( " s=" ,+ i n t (mod(mod ( 1 , mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) , find_mod_inv ( e ,
prod ( p−1,q−1) ) , prod ( p , q ) ) , r , −1 , prod ( p , q ) ) ) )
122
123 p r i n t ( " Le d e s t i n a t a i r e a r e ç u l e c o u p l e ( s ,m)=" ,+ i n t (mod(mod ( 1 , mod( hash ( ’
m’ ) , r , e , prod ( p , q ) ) , find_mod_inv ( e , prod ( p−1,q−1) ) , prod ( p , q ) ) , r , −1 , prod (
p , q ) ) ) ,m)
124

125 #3 . V e r i f y : La v é r i f i c a t i o n :
126
127 #Le d e s t i n a t a i r e vé r i f i e que s e = h (m) mod n
128
129 #p r i n t ( " s ^ e mod n=" +i n t (mod ( 1 , mod(mod ( 1 , hash ( ’m ’ ) , find_mod_inv ( e , prod
( p−1,q−1) ) , prod ( p , q ) ) , r , −1 , prod ( p , q ) ) , e , prod ( p , q ) ) ) )
130
131 #p r i n t ( " h (m) mod n=",+ i n t (mod( hash ( ’m ’ ) , 1 , 1 , prod ( p , q ) ) ) )
132
133 d e f som ( a , b ) :
134 z=a−b
135 return z
136
137
138
139 p r i n t ( "V="+i n t (mod( som(+ i n t (mod(mod ( 1 , mod( hash ( ’m’ ) , r , e , prod ( p , q ) ) ,
find_mod_inv ( e , prod ( p−1,q−1) ) , prod ( p , q ) ) , r , −1 , prod ( p , q ) ) ) , hash ( ’m’ ) )
, 1 , 1 , prod ( p , q ) ) ) )

Listing 3.1 – implémentation de la blind signature RSA sur python


53

1 l a g é n é r a t i o n d e s c l é s de s i g n a t u r e
2 Ent rez un nombre p r e m i e r p 3
3 p= 3
4 Ent rez un nombre p r e m i e r q 7
5 q= 7
6 n = 21
7 Phi ( n ) = 12
8 c h o i s i s s e z e un e n t i e r p r e m i e r à p h i ( n ) 5
9 e= 5
10 d =5
11 l a c l é p u b l i q u e de l a s i g n a t u r e pks e s t l e c o u p l e ( n , e ) = 21 5
12 l a c l é p r i v é de l a s i g n a t u r e s k s e s t d = 5
13 Phase de s i g n a t u r e
14 L ’ aveuglement du message
15 Ent rez un message m à s i g n e r MAGA
16 m=MAGA
17 h (m)= −8521232061215085932
18 C h o i s i s s e z un nombre a l é a t o i r e r t e l que r p r e m i e r avec n 4
19 r= 4
20 h ’= 16
21 l e s i g n a t a i r e r e ç o i t h ’= 16
22 S i g n a t u r e du message a v e u g l é
23 s ’= 4
24 l ’ u t i l i s a t e u r r e ç o i t s ’= 4
25 phase de d é s a v e u g l e m e n t
26 s= 1
27 Le d e s t i n a t a i r e a r e ç u l e c o u p l e ( s ,m)= 1 MAGA
28 V= 0

Listing 3.2 – Résultat du code

3.4.2 Signature aveugle de la modification DSA


3.4.2.1 Construction
1. Initialisation : Le signataire S choisit au hasard un grand nombre premier p,
un facteur premier q de p − 1 et un générateur g ∈ Z∗p d’ordre q, sa clé secrète
est x ∈R Zq et la clé publique correspondant est y ≡ g x mod p. On signe un
message m ou pgcd(m, q) = 1. En plus S sélectionne un entier k̃ aléatoirement et
calcule R̃ ≡ g k̃ mod p. S vérifie ensuite si pgcd(R̃,q) = 1. Si cela tient alors S
envoi R̃ au demandeur U.
2. Demande :
(a) U vérifie que pgcd(R̃,q) = 1
(b) U choisi a, b ∈R Zq et calcule R ≡ R̃a g b mod p.
(c) U vérifie si pgcd(R, q) = 1. Sinon, il revient à (b). Sinon, U calcule m′ ≡
amR̃R−1 mod q et envoi m′ à S.
3. Signature : S calcule la signature σ ′ ≡R̃x+k̃m′ mod q et l’envoi a U.
4. Dévoilement et vérification U dévoile σ ′ en calculant σ ≡ σ ′ RR̃−1 + bm
mod q. U calcule aussi r ≡ R mod q. Le couple (m,σ) est la signature de m. U
54

−1
peut vérifier sa validité en calculant T ≡ (g σ y −r )m mod p) et vérifie que r ≡ T
mod q.

3.4.2.2 Analyse de la sécurité


1. Completeness : Nous devons montrer que (r, σ) est une signature valide sur m
et pour cela, il suffit de montrer que T ≡ r mod q. C’est facile à montrer :

−1
T = (g σ y −r )m
′ Λ−1 −1
= (g σ RR +bm g −xr )m
Λ−1 −1
= (g σ′R R +bm−xr )m
Λ−1 −1
= (g σ′R R −xr )m g b mod p(1)

Maintenant nous savons que

k̃a + b = (σ ′ −R̃x)m′−1 a + b
= (σ ′ −R̃x)(amR̃R−1 )−1 a + b mod q
= (σ ′ −R̃x)(m−1 RR̃−1 ) + b
= σ RR̃−1 m−1 − Rxm−1 + b mod q

= (σ ′ RR̃−1 − rx)m−1 + b mod q

En remplaçant cette valeur de k̃a + b=σ ′ RR̃−1 − rx)m−1 + b mod q dans (1) on
Λ
obtient T = g ka+b mod p alors T mod q = R mod p mod q = r mod q. Par
conséquent, T = R mod q
2. Blindness : Intuitivement, il est facile de voir que les couples message-signature
(m, (r, σ)) et (m′ , (r̃, σ ′ )) où r̃=R̃ mod q, sont statistiquement indépendants les
uns des autres et ne peuvent donc pas être reliés entre eux en raison des variables
aléatoires a et b. Cependant, par souci de formalité et d’exhaustivité, nous don-
nons ici sa preuve pour donner au lecteur une idée de la manière de prouver la
propriété de cécité pour un schéma de signature.

Pour prouver l’aveuglement, il suffit de montrer que pour toute vue V et une
paire de signature de message valide correspondante (m, (r, σ)) il existe une paire
unique de facteurs aveuglants a et b. Étant donné que le demandeur U choisit
ces deux nombres au hasard et cette paire est unique, il n’y a aucun moyen que
le signataire S(ou n’importe qui autre, d’ailleurs) peut deviner ces deux nombres
avec une probabilité non négligeable. Personne ne peut donc lier une vue V à
sa couple correspondante (m, (r, σ)), Par conséquent, l’aveuglement du schéma
s’ensuit. Maintenant, nous montrons que a et b, pour une vue V(composé de
k̃,R̃, m’ et σ ′ ) et un couple message-signature valide (m, (r, σ)) sont uniques.
Puisque (m, (r, σ)) est une paire valide, les équations suivantes doivent tenir(par
construction du schéma) :

m′ = amR̃r−1 mod q (1)

σ = σ ′ rR̃−1 + bm mod q (2)


55

r =R̃a g b mod p mod q (3)

Vous Remarquerez que m, R̃ et r = R mod q ont été choisis au cours du pro-


gramme afin qu’ils soient tous relativement premiers à q. Par conséquent, a peut
être déterminé de manière unique par l’équation (1) et b peut uniquement être
déterminé par l’équation (2) :
a = m′ m−1 rR̃−1 mod q, b = (σ − σ ′ rR̃−1 )m−1 mod q

Pour que l’aveuglement tienne, ces valeurs de a et b, lorsqu’ils sont substituées


dans (3), devraient donner r = T mod q Ceci peut être facilement vérifié via le
calcul suivant :
Λ −1
R̃a g b = g ka + b = (g σ−xr )m = T mod q

3.4.3 Signature aveugle de Schnoor


3.4.3.1 Construction

Le protocole d’identification de Schnorr [6] a également été transformé en un schéma


de signature aveugle qui a été proposé par D. Pointcheval et J. Stern dans [8]. La trans-
formation a été utilisée dans les systèmes de paiement électronique [8].

La signature aveugle Schnorr fonctionne en suivant les étapes suivantes :

1. Bob commence par sélectionner deux grands entiers premiers p et q, tels que
q|p − 1. Ils sont publiés avec un élément g de Z/pZ∗ d’ordre q. Il choisit une clé
secrète x ∈ Z/qZ, et calcule y ≡ g −x mod p. Alors ces clés publiques sont y, g ,
p, q et une fonction de hachage unidirectionnelle H.
2. Alice veut faire une signature aveugle d’un message m. Afin d’émettre cette si-
gnature, le signataire Bob choisit un nombre aléatoire k ∈ (Z/qZ),il calcule et
envoie le résultat r ≡ g k mod p. Alice aveugle le message signer avec deux élé-
ments aléatoires α, β ∈ Z/qZ, et met r′ ≡ g −α y −β mod q, puis elle calcule la
valeur e′ ≡ H(m, r′ ) mod q. Elle envoie le défi e ≡ e′ + β mod p au signataire
Bob.
3. Bob renvoie la signature s ≡ k + ex mod q.
4. Alice calcule s′ ≡ s − α mod q.
5. Puis elle vérifie que (e’,s’) est une signature valide du message m par l’équation
r′ ≡ g s′ y e′ mod p.

En effet : nous avons d’abord e′ ≡ e − β mod p et alors g s′ y e′ ≡ g s−α y e−β


mod p.
Comme s ≡ k + ex mod q on remplace dans la dernière équation, on obtient
g s′ y e′ ≡ g k+ex g −α y e y −β mod p. Puisque la clé secrète x vérifie y ≡ g −x mod p
alors g s′ y e′ ≡ g k g −α y −β g +ex g −ex mod p. D’où le résultat r′ ≡ g s′ y e′ mod p.
56

Figure 3.6 – Blind signature de schnoor

3.4.3.2 Analyse de la sécurité

La sécurité des Blind Schnorr Signatures repose sur une hypothèse de dureté sup-
plémentaire, les inhomogénéités Aléatoires dans un Surdéterminé, Système résoluble
d’équations linéaires ou problème ROS[11]. [5] La résolution du problème ROS brise
la propriété d’infalsification des signatures aveugles de Schnorr en trouvant l + 1 si-
gnatures sur l opérations de signature. David Wagner a montré dans son article que le
problème ROS peut être réduit à la somme (l + 1) problème et a donc montré qu’une
attaque est réalisable.[7] Plus de détails sur L’algorithme de ROS et de Wagner peut
également être trouvé dans l’article Blind Schnorr Signatures and Cryptage ElGamal
signé dans le modèle de groupe algébrique [12].
En raison de l’attaque possible, les signatures Blind Schnorr sont considérées comme
cassées et ne doivent pas être utilisé. [13] introduit une version modifiée pour laquelle
le problème ROS est beaucoup plus difficile à résoudre. Le problème ROS est un sujet
de recherche récent. Récemment, un article sur la (in)sécurité du ROS a été publié[11].
Le schéma introduit dans la [13] était considéré sécurisé en 2021. Il est important de
garder à l’esprit que le problème ROS est beaucoup plus récent et que des recherches
ouvertes sont en cours.
57

3.4.4 Signature aveugle basée sur Schnoor et RSA


3.4.4.1 Description
Dans cette section nous présentons une nouvelle signature aveugle sécurisée basée
sur le schéma de Schnorr et le cryptosystème RSA. Le protocole est comme suit :
1. Le signataire Bob choisit un entier premier P, tel que P = 2pq + 1 où p et q sont
deux grands nombres premiers distincts. Il publie P et garde p et q secrets. Soit g
un générateur de (Z/P Z)∗ , et e un exposant RSA public qui vérifie pgcd(e, φ(P −
1)) = 1. Les clés secrètes de Bob sont p, q, x ∈ {0, · · · , P − 1} et d tel que d ≡ 1e
mod φ(P − 1). Ses clés publiques sont P, g, e, y telles que y ≡ g −x mod P , et il
sélectionne une fonction de hachage unidirectionnelle H.
2. Alice veut signer un message m sans le révéler. A faire par le signataire Bob qui
commence par sélectionner un nombre aléatoire k ∈ {0, · · · , P − 1}, et calcule
r ≡ g k mod P . Puis il envoie le résultat à Alice. Dans la seconde tour Alice
choisit deux éléments aléatoires α, β ∈ {0, ..., P −1} Notez que pgcd(α, P −1) = 1.
Puis elle masque le message à signer de manière à ce que r′ ≡ rα y −β mod P et
e


elle calcule la valeur z ′ ≡ H(m, r′ ) mod (P − 1). Puis elle envoie le défi z ≡ z α+β
e

mod (P − 1) aux signataire Bob.


3. Bob signe le défi z proposé par Alice avec l’équation s ≡ (k + zx)d mod (P − 1),
et envoie le résultat à Alice.
4. Alice calcule s′ ≡ αs mod (P − 1).
′e
5. Puis elle vérifie la validité de la signature (z’,s’) en vérifiant si g s y z ′ ≡ r′ mod P
où pas.
′e ′e ′
En effet : l’équation de vérification est g s y z ′ ≡ r′ mod P , alors g s ≡ y −z r′
mod P .
Nous avons r′ ≡ rα y −β mod P , on remplace dans l’équation précédente alors
e

′e ′
g s ≡ rα y −β y −z mod P . Bien sûr r vérifie l’équation r ≡ g s y z mod P ,
e e

′e ′
g s ≡ g s α y z α y − y −z mod P .
e e e β

′e
De plus nous avons z ′ ≡ zαe − β mod (P − 1). Par conséquent g s ≡ g (sα)
e

mod P On obtient donc le résultat s′ ≡ αs mod (P − 1).

3.4.4.2 Exemple
Pour illustrer la méthode, nous présentons un exemple numérique.
1. Supposons que Bob sélectionne un entier premier P, tel que P = 2pq + 1 =
11579339, où p = 2011 et q = 2879 sont des nombres premiers. Il publie P et garde
p et q secrets. Bob choisit g = 2 un générateur de (Z/P Z)∗ , et e = 11. Notez que
pgcd(e, φ(P −1)) = 1. Ses clés secrètes sont d ≡ 1e ≡ 5258891 mod (φ(P −1)),x =
467. Ses clés publiques sont g, e, y telles que y ≡ g −x ≡ 826955 mod (P ), et il
sélectionne une fonction de hachage unidirectionnelle H.
2. Supposons qu’Alice veuille demander à Bob de produire une signature pour le
message m = 29281 sans la révéler. Au premier tour, le signataire Bob sélectionne
un nombre aléatoire k = 21990 et calcule r ≡ g k ≡ 7559363 mod P . Puis il
58

envoie le résultat à Alice. Elle choisit deux éléments au hasard α = 7, β = 5.


Notons que pgcd(α, P − 1) = 1. Puis elle aveugle le message signer en suivant
les étapes : elle calcule r′ ≡ rα y −β ≡ 8027424 mod P , et calcule la valeur z ′ ≡
e

H(m, r′ ) mod (P − 1) en utilisant n’importe quelle fonction de hachage(comme


SHA-1 par exemple) supposons que z ′ ≡ H(m, r′ ) ≡ 6849 mod (P − 1). En fin

de compte, elle soumet le défi z ≡ z α+β e ≡ 11465250 mod (P − 1) au signataire
Bob.
3. Après avoir reçu le défi z, Bob signe avec l’équation s ≡ (k + zx)d ≡ 6883400
mod (P − 1). Puis il envoie le résultat à Alice.
4. Alice calcule s′ ≡ s ≡ 1866448 mod (P − 1).
′e
5. Elle vérifie que g s y z ′ ≡ r′ ≡ 8027424 mod P . Alors (z’,s’) est une signature
valide pour le message m.

3.4.4.3 Analyse de sécurité


Supposons qu’Oscar soit un adversaire connaissant les clés publiques de Bob. Ana-
lysons la sécurité du protocole.
1. completness : on peut clairement voir que si Alice et Bob suivent honnêtement
le protocole, alors :
′e
g (α ) y z α −β mod P
s e e
gs yz ′ ≡
′e
≡ g (α ((k+zx) ) y z α −β mod P
e d e e
gs yz ′
′e
rα y −z α y zα −β mod P
e e e
gs yz ′ ≡
′e e
gs yz ′ ≡ rα y −β
′e
gs yz ′ ≡ r′ mod P

Ainsi l’algorithme de vérification acceptera toujours la signature(z’,s’).


2. Blindness : Intuitivement, il est facile de voir que les couples message-signature
(z ,s) et (z’,s’), sont statistiquement indépendants l’un de l’autre et ne peuvent
donc pas être liés ensemble en raison des variables aléatoires α et β. Impliquant
ainsi indissociabilité/cécité.
3. Unforgeability : Puisque la factorisation de P − 1 est inconnue de tous sauf le
signataire, alors même si l’attaquant Oscar connaît la clé publique e il ne pourra
pas trouver la clé secrète d. Aussi si Oscar a accès aux entiers z’ et r, il ne peut pas
′e
forger une signature s’ en utilisant l’équation g s y z ′ ≡ r′ mod P . Par conséquent
le schéma est infalsifiable.

3.4.4.4 Complexité
Soit Tmult , Texp et TH le temps nécessaire pour exécuter respectivement une multi-
plication modulaire, une exponentiation et une fonction de hachage. Nous négligeons
le temps nécessaire pour calculer les additions, les soustractions et les comparaisons
modulaires.
59

Bob doit effectuer une exponentiation modulaire et une multiplication modulaire


pour générer ses clés publique et secrète. Dans l’étape aveuglante, Bob doit calculer
une exponentiation modulaire, et Alice calcule deux multiplications modulaires, trois
exponentiations modulaires et une fonction de hachage. Pour signer le challenge z Bob
exécute une multiplication modulaire et une exponentiation modulaire. Dans l’étape de
levée de l’insu, Alice doit calculer une multiplication modulaire. Enfin pour vérifier la
signature Alice exige une multiplication modulaire, et trois exponentiations modulaires.

Alors le temps nécessaire total est

Ttot = 6Tmult + 9Texp + TH = O((logP )2 + (logP )3 )

Ainsi, notre protocole de signature aveugle fonctionne sur un temps polylogarithmique.

Dans cet partie, nous avons proposé une nouvelle signature aveugle sécurisée inspi-
rée du schéma de Schnorr et l’algorithme RSA. Nous avons étudié sa sécurité et sa
complexité.

3.5 Domaines d’application des signatures aveugles


Les signatures aveugles permettent d’obtenir des signatures sur des documents sans
avoir la nécessité de dévoiler leurs contenus. Grace à cet avantage, elles trouvent leurs
places dans plusieurs domaines dont deux retiennent l’attention : Le vote électronique
et la monnaie électronique.

3.5.1 Utilisation dans les votes électroniques


Dans un système de vote traditionnel, l’électeur suit une certaine procédure :
d’abord, il s’identifie auprès d’une autorité, pour prouver son droit du vote. Il sé-
lectionne après son vote, cache le bulletin dans une enveloppe et le met dans l’urne.

Pareil, dans un schéma de vote électronique, un schéma de signature aveugle assure les
condition nécessaires au déroulement l’égal d’un vote. Pour cela, il doit y avoir deux
entités dans un schéma de vote électronique : un électeur et une autorité de supervision
de vote nommée : Service de Tabulation Centrale ≪ STC ≫. Et pour restreindre le
nombre de bulletins, on suppose que le vote est de la forme ≪ Oui ≫ ou ≪ Non ≫.
Le protocole de vote est, alors, divisé en deux phases :
1. Enregistrement : la phase d’enregistrement se fait en trois étapes : ´
(a) L’électeur crée deux bulletins électroniques B1 et B2 (constitués d’un numéro
de série et certaine information appropriée au vote). Le Bulletin B1 contient
le vote ≪ Oui ≫ et le bulletin B2 contient le vote ≪ Non ≫.
(b) L’électeur, ensuite, aveugle les deux bulletins B1 et B2 et envoi les versions
aveuglées au ≪ STC ≫.
(c) Le ≪ STC ≫ vérifie d’abord que cet électeur n’a pas encore voté. Si c’est
le cas, il signe, alors, les bulletins aveugles et les remet à l’électeur.
60

2. Vote : Cette phase se déroule, elle aussi, en quatre étapes :


(a) L’électeur désaveugle les deux bulletins B1 et B2 . Il obtient deux ensembles
de votes valides signés par le ≪ STC ≫.
(b) il choisi celui qu’il veut, il l’associe avec la signature du ≪ STC ≫ et le
chiffre avec la clé publique du ≪ STC ≫.
(c) il envoi son vote au ≪ STC ≫.
(d) Le ≪ STC ≫ déchiffre le vote, vérifie que la signature est valide, vérifie,
ensuite, sa base de données pour s’assurer que le numéro de série sur le vote
n’a pas été utilisé précédemment(cela empêche l’électeur d’essayer de revoter
une nouvelle fois). Si la vérification est bonne, le ≪ STC ≫ enregistre le
vote et le numéro de série associé dans sa base de données.
A la fin des élections, le ≪ STC ≫ publie les résultats des votes(les numéros de
séries des bulletins et les votes associés).

Figure 3.7 – Vote électronique


61

3.5.2 Utilisation avec la monnaie electronique :


Chaum, dans son schéma de signature aveugle, avait projeté la création d’une ver-
sion électronique d’argent. Pour atteindre ce but, il a introduit la notion de ≪ pièce
de monnaie électronique ≫ ≪ electronic coins ≫ avec les signatures aveugles.

Il signala que c’était le seul moyen d’assurer l’anonymat exigé : dans la vie réelle,
une pièce de monnaie électronique ne peut pas être facilement traçable par la banque
ou le magasin. Aussi, deux dépenses d’un même utilisateur ne peuvent pas être reliées
ensemble.

Donc, deux propriétés essentielles doivent être assurées par les pièces de monnaie élec-
tronique : la non-traçabilité et la non-reliabilité.

Comme il proposa de définir une pièce de monnaie électronique comme un numéro


avec un certificat (signature) produite par une banque. Elle est retirée d’une banque,
dépensée par un utilisateur et déposée par un magasin.
Un protocole de manipulation de monnaie électronique ( le cycle de vie d’une pièce de
monnaie électronique) se déroule en trois phases :
1. Le retrait :
(a) un utilisateur crée une pièce de monnaie électronique C. Cette pièce consiste
en une chaine de bits qui spécifie certaines informations telle qu’un numéro
de série et un montant.
(b) L’utilisateur et la banque, ensuite, s’engage dans un protocole de signature
aveugle, qui retourne à l’utilisateur une signature valide sur une pièce de
monnaie électronique.
(c) A une fin réussie du protocole, la banque retire le montant spécifié sur la
pièce du compte de l’utilisateur.
2. La dépense :
(a) L’utilisateur présente la pièce de monnaie électronique C signée par la banque
pour régler un achat.
(b) Le magasin vérifie la validité de C en vérifiant la signature avec la clé pu-
blique de la banque. Si la signature est invalide, la transaction (l’achat) est
annulée.
3. La déposition :
(a) A fin de récupérer son argent, le magassin présente la pièce C et la signature
de la banque sur C au banquier.
(b) La banque vérifie la validité de la signature sur la pièce C. si elle est valide,
la banque a besoin de vérifier que la pièce C n’a pas été dépensée avant.
Si la signature est valide et la pièce C n’a pas été déjà dépensée avant, la
banque verse le montant spécifié sur la pièce au magasin.
(c) Si les vérifications sont conformes, La transaction est finalisée par la remise
des achats à l’utilisateur.
62

Figure 3.8 – Cycle de vie d’une pièce de monnaie électronique

On observe a la fin de la transaction que l’anonymat de l’utilisateur est garantit


devant le magasinier et le banquier.
Mais, on peut extraire deux failles potentielles sur ce schéma de monnaie électro-
nique :
1. puisque la banque signe aveuglément le document, rien n’empêche l’utilisateur de
présenter à la banque un document frauduleux, comme par exemple un montant
de la pièce qui dépasse largement le solde de l’utilisateur.
2. et comme cette pièce de monnaie électronique est une chaine de bits, elle est
facilement reproductible : ce qui permet de réutiliser la pièce une nouvelle fois.
Si une transaction se termine, il est strictement impossible de poursuivre l’utili-
sateur tant que son identité est complètement anonyme. Heureusement, certaines
techniques existent pour résoudre ces failles.
Pour résoudre le problème de document frauduleux, la banque dispose de deux tech-
niques possibles :
1. La banque peut utiliser différentes clés publiques associées aux différents mon-
tants d’argent. Donc pour signer une pièce de monnaie électronique avec un mon-
tant bien précis, la banque doit utiliser la clé publique associée à ce montant. Alors
l’utilisateur ne pourra faire estimer la pièce plus que ce qu’elle vaut réellement.
2. La banque et l’utilisateur peuvent exécuter un protocole de ≪ coupe et choisi ≫.
ou l’utilisateur prépare un nombre de pièces de monnaie électronique identique à
faire signer auprès de la banque (soit disant 10 : C1 , C2 , ..., C10 ) la seule différence
entre eux est le numéro de série. Ensuite, il les aveugle et les envoie à la banque.
La banque prend toutes les pièces sauf une et demande à l’utilisateur le facteur
d’aveuglement de ces pièces. Elle désaveugle les pièces et les vérifie. Si elles sont
toutes de la forme appropriée, la banque signe la pièce restante et l’envoie à
l’utilisateur.
La banque aura une haute assurance que la pièce restante est dans le format correct,
car si l’utilisateur y introduit au milieu une pièce frauduleuse, il sera capturé avec une
probabilité de 9/10.
63

Il reste la deuxième faille : la double dépense de la pièce. Après tout, la pièce C n’est
qu’une chaine de bits qui peut être dupliquée. Donc il faut avoir un moyen de détecter
et interdire la double dépense d’une pièce C.

La solution possible est la possession d’une sorte de liste des pièces de monnaie élec-
tronique déjà dépensées au niveau de la banque. Après, et pendant chaque transaction,
à la réception d’une pièce C d’un vendeur, la banque doit vérifier si cette pièce à été
déjà dépensée. Si c’est le cas, la banque informe le vendeur, et le vendeur refuse de
donner la marchandise a l’achéteur. Ce schéma est sûr mais couteux car le vendeur
doit être relié à la banque en permanence pour vérifier la pièce C, et si l’utilisateur
double dépense la pièce il doit être capturé immédiatement, sinon il ne le sera jamais
puisque son identité est complètement anonyme.
64

CONCLUSION
Dans le monde hautement numérisé d’aujourd’hui, il est extrêmement important
que chaque système numérique utilisé publiquement fournisse le juste équilibre entre
l’anonymat numérique et la sécurité numérique. Un système complètement sécurisé
peut violer la vie privée des utilisateurs honnêtes, tandis qu’un système qui permet
un anonymat complet à ses utilisateurs peut conduire aux crimes numériques qui af-
fectent à la fois les fournisseurs de services et les utilisateurs. À cet égard, les système
de signature aveugle ont été une percée pionnière dans les technologies de l’informa-
tion. La plupart des systèmes e-cash, e-banking, e-voting dépendent fortement d’eux
pour suivre les transactions illégales, tout en s’assurant que la vie privée des clients
est violée dans une mesure minimale. Jusqu’à présent, le trajet a été assez long. Avec
l’évolution des technologies, de nouvelles attaques numériques émergent mais la théorie
des schémas de signature aveugle continue de s’adapter simultanément pour les com-
battre. D’autre part, nous avons observé que la sous-jacente théorie mathématique de
la plupart des schémas aveugles implémentables repose sur un nombre insoluble de
problèmes théoriques, ce qui peut ne pas être une solution viable à l’avenir car les
puissances de calcul devraient prendre une énorme bond avec le temps(par exemple en
cas d’avènement des ordinateurs quantiques). Cela nécessite des recherches supplémen-
taires dans le domaine des signatures aveugles avec une rigueur et une vigueur accrues,
et avec un accent particulier sur le développement techniques basées sur des problèmes
post-quantiques insolubles.
Bibliographie

[1] AJ Menezes ; PC van Oorschot ; SA Vanstone. "Chapitre 8.4 Chiffrement à clé


publique ElGamal" (PDF) . Manuel de Cryptographie Appliquée . Presse CRC.

[2] Alfred J. Menezes, Paul C. van Oorschot et Scott A. Vanstone, Handbook of Applied
Cryptography, CRC Press, 1996

[3] C. Dwork and M. Naor. “An Efficient Existentially Unforgeable Signature Scheme
and its Applications”. Crypto 94.

[4] Chaum,David Signature aveugle pour paiement introuvable ,Progrés en cryptologie


acte de crypto .82(3) :199-203,1983 http ://www.hit.bme.hu/ buttyan/courses/B-
MEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF

[5] Claus Peter Schnorr. “Security of Blind Discrete Log Signatures against Inter- ac-
tive Attacks”. In : ICICS 2001, LNCS 2229. Springer-Verlag, 2001, pp. 1–12.

[6] C.P. Schnorr, Efficient Identification and Signatures for Smart Cards. Crypto ’89,
LNCS 435, pp. 235-251, Springer Verlag, 1990

[7] David Wagner. A Generalized Birthday Problem. University of California Berkeley.


https ://www.iacr.org/archive/crypto2002/24420288/24420288.pdf. 2002.

[8] D.Pointcheval and J. Stern. Provably secure blind signature schemes. Advances in
Cryptology – Asiacrypt ’ 96. Vol. 1163, pp. 252-265. Springer-Verlag, 1996.

[9] D.Pointcheval and J. Stern. “Provably Secure Blind Signature Schemes”. Asi-acrypt
96.

[10] D. Chaum, A. Fiat and M. Naor, Untraceable Electronic Cash. Advances in Cryp-
tology – Crypto ’88. Lecture Notes in Computer Science, Volume 403/1990, pp.
319-327, 1990

[11] Fabrice Benamouda,Tancrede Lepoint,Julian Loss,On the (in)security of


ROS,Algorant fondation ,New York,NY,USA

[12] Georg Fuchsbauer, Antoine Plouviez, and Yannick Seurin. Blind Schnorr Signa-
tures and Signed ElGamal Encryption in the Algebraic Group Model. Cryptology
ePrint Archive, Report 2019/877. https : / / ia . cr / 2019 / 877 and https :
//www.youtube.com/watch ?v=W-uwVdGeUUs. 2019.

65
66

[13] Gian Demarmels, Lucien Heuzeveldt,Adding Schnorr’s Blind Signature in Ta-


ler,An improved Taler Blind Signature System,section 2.2.4,Version 1.0 of February
20, 2022

[14] Jim Hefferon,Elementery Number Theory ,St Michael’s College,2003-Dec of notes


by W.Edwin Clark,University of south Florida,2002-Dec.

[15] J.S.Milne ,Group Theory,Version 4.00,June 23,2021.

[16] J. Rompel. “One-way Functions are Necessary and Sufficient for Secure Signa-
tures”. STOC 90.

[17] Julie Parreaux ,Leçon 913 : Machines de Turing. Applications.

[18] K. T. Fung, Network Security Technologies, 2nd Ed, Auerbach Publications, CRC
Press LLC, USA, 2005.

[19] Lam ; Schparlinski ; Wang ; Xing. Cryptographie et théorie computationnelle des


nombres . Progrès en informatique et logique appliquée (1ère éd.). Birkhäuser Bâle.
p. 54–56.

[20] Melle. Kharchi Samia,Techniques de Signatures dans une Infrastructure d’Ano-


nymat,Ingénierie des Systèmes Informatiques (ISI),ECOLE DOCTORALE D’IN-
FORMATIQUE (STIC)

[21] M. Bellare and S. Micali. “How to Sign Given Any Trapdoor Function”. STOC 88.

[22] M. Bellare, C. Namprempre, D. Pointcheval, and M. Semanko, The One-More-


RSA-Inversion Problems and the Security of Chaum’s Blind Signature Scheme,
Journal of Cryptology, Volume 16(3), pp. 185 - 215, Springer,2003

[23] M. Naor and M. Yung.•“Universal One-Way Hash Functions and their Crypto-
graphic Applications”. STOC 89.

[24] M. Michels, M. Stadler, and H. Sun. The security of some variants of the RSA
signature scheme. Computer Security – ESORICS ’ 98, volume 1485, pages 85–96.
Springer-Verlag, 1998

[25] R. A. Mollin, An Introduction To Cryptography, 2nd Ed, (Discrete Mathema-


tics And Its Applications, Series Editor Kenneth H. Rosen), Chapman Hall/-
CRC,Taylor Francis Group, USA, 2007.

[26] Rogaway et Shrimpton 2004

[27] R.L. Rivest, A. Shamir, and L. Adleman. “A Method for Obtaining Digital Signa-
tures and Public Key Cryptosystems. Comm. ACM, Vol 21, No 2, 1978.

[28] Steven Galbraith,“Mathematics of Public Key Cryptography”,Cambridge Univer-


sity Press in early 2012
67

[29] S. Goldwasser, S. Micali and C. Rackoff, “The Knowledge Complexity of Interac-


tive Proof-Systems”. SIAM J. Comput. 18 (1989), pp. 186-208 ; (also in STOC 85,
pp. 291-304.)

[30] Saif Al-Kuwari, James H. Davenport et Russell J. Bradford, Cryptographic Hash


Functions : Recent Design Trends and Security Notions, 2011

[31] S. Goldwasser, S. Micali, and R. Rivest. “A Digital Signature Scheme Secure


Against Adaptive Chosen-Message Attacks”. SIAM Journal of Computing Vol.17,
No 2, (April 1988), pp. 281-308.

[32] Thai Duon and Juliana Rizzo Signature Forgery Vulnerability,2009.

[33] W. Diffie and M. E. Hellman, New Directions in Cryptography , in IEEE Tran-


sactions on Information Theory, vol. 22, 1976, p. 644–654

[34] W. Diffie and M. Hellman.“New Directions in Cryptography”. IEEE Trans. on Inf.


Theory, IT-22, pp. 644–654, 1976.

Vous aimerez peut-être aussi