Signature
Inconvénients:
Système très lent
Les performances des systèmes asymétriques sont beaucoup moins bonnes que
celles des systèmes symétriques car ces systèmes nécessitent de pouvoir
calculer sur des grands nombres.
La taille des clés est généralement plus grande pour ces systèmes que pour les
systèmes à clé secrète.
Ali KARTIT : Docteur en Sécurité des Réseaux Informatiques alikartit@gmail.com
La cryptographie moderne asymétrique
Rappel mathématiques
Congruences
Lorsqu'on effectue une division a / m: a = k .m + b
Modulo m : je divise par m; Résidu b : le reste b de cette division.
Définition : Soit n un entier naturel non nul. On dit que les deux entiers relatifs a et b
sont congrus modulo n si a-b = kn avec kZ On écrit alors a b mod n.
Proposition : a b (mod n) indique que a = b + kn pour un certain entier k. Si a et b sont
positifs et si b est plus petit que n, vous pouvez considérer que b est le reste de la division de a
par n.
On a aussi la propriété que a et b donnent le même reste quand ils sont divisés par n. Parfois, b
est appelé le résidu de a modulo n.
On dit aussi que a est congru à b modulo n (ou a et b sont congrus modulo n) si n divise a-b
(kZ tq: a -b = kn ). Ce ne sont que différentes manières de dire la même chose.
L’ensemble des entiers de 0 à n-1 forme ce que l’on appelle l’ensemble de tous les résidus
modulo n.
Par exemple : 5 mod 3 = 2.
Lorsque vous programmez en langage C, l’opérateur % correspond à l’opération modulo,
le résultat peut être négatif si l’un des opérandes est négatif. Dans ce cas, le résultat est
compris entre -n-1 et n-1, si le résultat est négatif il ne faut pas oublier d’ajouter n pour
avoir un résultat compris entre 0 et n-1.
Ali KARTIT : Docteur en Sécurité des Réseaux Informatiques alikartit@gmail.com
La cryptographie moderne asymétrique
Rappel mathématiques
Congruences
Propriétés :
(a + b) mod n = (b+a) mod n.
(a * b) mod n = (b*a) mod n. [Commutativité]
a+ (b + c) mod n = (a+b)+c mod n
a* (b * c) mod n = (a*b)*c mod n [Associativité]
Théorème :
Soient a, b , c, d, n des entiers tels que:
a ≡ b mod n et c ≡ d mod n. On a alors les résultats suivants :
a + c ≡ b + d mod n
a c ≡ b d mod n
k N, ak ≡ bk mod n.
On peut ainsi, par exemple, calculer des exponentielles en arithmétique modulo n sans
engendrer des résultats intermédiaires démesurés.
Elever un nombre à une puissance entière modulo n,
ax mod n = (a mod n)x mod n
se fait par une série de multiplications et de divisions, mais il existe des techniques pour
effectuer cela efficacement. Une de ces techniques consiste à minimiser le nombre de
multiplications modulo n ; une autre consiste à optimiser le calcul de la multiplication
modulo n.
Comme l’arithmétique modulo n est distributive, il est plus efficace d’entrelacer les
multiplications avec les réductions modulo n à chaque étape intermédiaire.
Ali KARTIT : Docteur en Sécurité des Réseaux Informatiques alikartit@gmail.com
La cryptographie moderne asymétrique
Rappel mathématiques
Congruences
Par exemple, si vous voulez calculer a8 mod n, n’utilisez pas l’approche simpliste qui consiste
à effectuer 7 multiplications suivies d’une coûteuse réduction modulo n finale :
(a a a a a a a a) mod n
Il est plus avantageux d’effectuer 3 multiplications plus petites ainsi que 3 réductions modulo
n également plus petites :
((a² mod n)² mod n)² mod n
Casser une assiette est un bon exemple de fonction à sens unique. Il est facile de casser
l’assiette en mille morceaux. Toutefois, il est très difficile de recoller les morceaux
ensembles pour reconstruire l’assiette.
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
f(x) 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6 1
Calculer f(x) est relativement facile, mais la réciproque est plus difficile ; c’est-à-dire étant donné un reste
rx, trouver la valeur x telle que x3 = rx mod n. C’est le calcul de la racine cubique modulo n. Si n est assez
grand, on ne peut pas donner sa décomposition en nombres premiers, le problème est très difficile à
résoudre. Par contre si les facteurs p et q de n sont données, on a un algorithme efficace pour calculer les
racines cubiques modulo n.
Mais à quoi sert les fonctions à sens unique? On ne peut pas les utiliser telles quelles pour le chiffrement.
Un message chiffré à l’aide d’une fonction à sens unique n’est pas d’une grande utilité: personne ne peut
le déchiffrer. Pour la cryptographie à clef publique, nous avons besoin de ce que l’on appelle une fonction
à sens unique à brèche secrète.
Ali KARTIT : Docteur en Sécurité des Réseaux Informatiques alikartit@gmail.com
La cryptographie moderne asymétrique
Rappel mathématiques
Fonctions à sens unique et brèches secrètes
Définition : Une fonction f : X Y est une fonction à sens unique et brèche secrète
(trapdoor) si étant donné f(x) et avec une information supplémentaire (brèche secrète) il
est facile de trouver x X.
Une montre est un bon exemple de fonction à sens unique à brèche secrète. Il est facile de
démonter une montre en ses centaines de pièces. Il est très difficile de remettre les pièces
ensemble pour reconstruire une montre qui fonctionne. Toutefois, grâce à l’information
secrète que constitue le plan de montage de la montre, il est bien plus facile de reconstruire
la montre.
Exemple : L’exemple précédent [étant donné un reste rx, trouver la valeur x telle que x3
= rx mod n] illustre le concept de la fonction à sens unique avec une brèche secrète,
puisque avec une condition supplémentaire qui est la factorisation de n = 2624653723 (p =
48611 et q = 53993) il devient plus facile de trouver la racine cubique modulo n. Si on
prend p et q avec une centaine de chiffres le problème devient très difficile à résoudre,
même avec les ordinateurs les plus puissants.
Exemple : Un exemple de fonction de hachage simple est une fonction qui à partir d’une chaîne de
caractères calculerait un octet qui serait le résultat du ou exclusif de tous les caractères de la chaîne
donnée.
Une fonction de hachage à sens unique est une fonction de hachage qui est aussi une fonction à sens
unique ; il est aisé de calculer l’empreinte à partir de la chaîne d’entrée mais il est difficile
d’engendrer des chaînes qui ont une certaine empreinte.
La fonction de hachage précédente (correspondante au ou exclusif) n’est pas à sens unique : étant
donné un octet, il est trivial d’engendrer une chaîne dont le "ou exclusif" de ses caractères donne cet
octet-là. On ne peut pas faire cela pour des fonctions de hachage à sens unique. Avec une bonne
fonction de hachage à sens unique, il est aussi difficile de produire deux chaînes ayant la même
empreinte.
Si on veut vérifier que quelqu’un possède un fichier donné (que vous avez aussi) sans qu’il vous
l’envoie, vous lui demandez alors l’empreinte du fichier. S’il vous envoie la bonne empreinte, alors il
est très probable que la personne a le fichier en question. C’est particulièrement adapté aux transactions
financières où l’on ne veut pas qu’un retrait de cent dirhams devienne un retrait de mille dirhams.
Exemple
Introduction à la Cryptographie
5aa769e719f153611c3d0dbb4bb02e23
Introduction à la cryptographie
af575f3a9216b4158bdcd2c4201d6527
Ali KARTIT : Docteur en Sécurité des Réseaux Informatiques alikartit@gmail.com