Académique Documents
Professionnel Documents
Culture Documents
Thème :
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
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapitre 1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
2
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
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).
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.
Glossaire
AC Autorité de Certification.
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
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.
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.
1
2
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.
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.
φ: N → N∗
n → φ(n) = {1 ≤ x ≤ n : pgcd(x, n) = 1}
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.
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.29. On appelle ordre d’un groupe G son cardinal, qu’on note o(G).
+
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.
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
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
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é.
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
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.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
1.2.1.4 Chiffrement
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
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.
Dans cette partie, nous allons étudier, certains protocoles qui historiquement parlant,
sont les plus célèbres.
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é.
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é.
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).
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.
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.
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
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
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
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
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.
25
26
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.
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.
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).
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.
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
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.
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
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 :
h(m) ≡ se mod N
35
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é
s1 = H(m ∥ g s2 h−s1 ).
r = (g k mod p) mod q.
s = (k −1 (z + xr)) mod q.
u1 = (zw) mod q,
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
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
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
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
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 :
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.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
(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 )).
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
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
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
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 ) ) ) )
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
−1
peut vérifier sa validité en calculant T ≡ (g σ y −r )m mod p) et vérifie que r ≡ T
mod q.
−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)
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
′
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) :
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.
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
′
elle calcule la valeur z ′ ≡ H(m, r′ ) mod (P − 1). Puis elle envoie le défi z ≡ z α+β
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
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
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
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é.
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
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é.
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
[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.
[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
[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
[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
[16] J. Rompel. “One-way Functions are Necessary and Sufficient for Secure Signa-
tures”. STOC 90.
[18] K. T. Fung, Network Security Technologies, 2nd Ed, Auerbach Publications, CRC
Press LLC, USA, 2005.
[21] M. Bellare and S. Micali. “How to Sign Given Any Trapdoor Function”. STOC 88.
[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
[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.