Cours 6 crypto
el gamal, diffie et tout l'tralala
This commit is contained in:
parent
01272fa130
commit
087dde1558
|
@ -1,10 +1,13 @@
|
|||
Boite à outils arithmétique
|
||||
========================
|
||||
===
|
||||
|
||||
Liste outils vus en cours et bien utiles
|
||||
|
||||
- division euclidienne
|
||||
- Division euclidienne
|
||||
- Congruence modulo
|
||||
- Univers Zn (+;x)
|
||||
- Exponentiation modulaire
|
||||
- PGCD avec algo d'Euclide
|
||||
- Bachet Bezoud
|
||||
- Théorème des restes chinois
|
||||
- Indicatrice d'Euler
|
||||
|
|
Binary file not shown.
BIN
Cours Cryptographie/Ressources/Sujet2014.pdf
Normal file
BIN
Cours Cryptographie/Ressources/Sujet2014.pdf
Normal file
Binary file not shown.
BIN
Cours Cryptographie/Ressources/TD.pdf
Normal file
BIN
Cours Cryptographie/Ressources/TD.pdf
Normal file
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
À voir
|
||||
========================
|
||||
===
|
||||
|
||||
## Films
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
|||
- Les messagers du vent (Wind Talkers), parle langage Navajo
|
||||
- Ramanujan (un indien teubé qu'est en fait un génie des maths)
|
||||
|
||||
|
||||
## Livres
|
||||
|
||||
- Histoire des codes secrets, Simon Sigh
|
||||
|
@ -17,3 +16,4 @@
|
|||
- Le scarabée d'or, Edgar Allan Poe
|
||||
- Je suis né un jour bleu, Daniel Tamett
|
||||
- Petit manuel de désobéissance citoyenne
|
||||
- Ubik, Phllip K Dick
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Éléments d'arithmétique
|
||||
========================
|
||||
===
|
||||
|
||||
## Introdution
|
||||
|
||||
|
@ -49,8 +49,7 @@ Le troisième soutra indien
|
|||
il faut faire les calculs Verticalement et en diagonale
|
||||
|X|
|
||||
|
||||
|
||||
La congruence est compatibl avec addition et multiplication dans Z.
|
||||
La congruence est compatible avec addition et multiplication dans Z.
|
||||
|
||||
Si a congru à b(n), alors a^k congru à b^k(n)
|
||||
|
||||
|
@ -63,16 +62,16 @@ D'abord on utilise ce qu'on a vu : équivalence puissances, critère divisibilit
|
|||
Puis **Exponentiation modulaire** à partir de 3^15 (11)
|
||||
L'objectif là dedans c'est d'arriver à tomber sur 1, là c'est la boucle qui redémarre. L'enjeu est de se poser la question : vais-je tomber sur 1 ? Et y a il un outil mathématique qui permet de calculer ça ? => on verra ça dans la suite du cours.
|
||||
|
||||
|
||||
2 ) Tout nombre est congru à ses deux derniers chiffres modulo 100
|
||||
|
||||
## L'anneau des entiers : Z*n*
|
||||
|
||||
### Additions
|
||||
|
||||
On va commencer à parler du Z*n* : on se base dans le modulo de *n* dnas les entiers, ce sont des univers. On compte en modulo. Exmeple avc Z6 :
|
||||
On va commencer à parler du Z*n* : on se base dans le modulo de *n* dans les entiers, ce sont des univers. On compte en modulo. Exemple avec Z6 :
|
||||
|
||||
| + | 1 | 2 | 3 | 4 | 5 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 1 | 2 | 3 | 4 | 5 | 0 |
|
||||
| 2 | 3 | 4 | 5 | 0 | 1 |
|
||||
| 3 | 4 | 5 | 0 | 1 | 2 |
|
||||
|
@ -80,6 +79,7 @@ On va commencer à parler du Z*n* : on se base dans le modulo de *n* dnas les e
|
|||
| 5 | 0 | 1 | 2 | 3 | 4 |
|
||||
|
||||
Du coup l'opposé d'un chiffre est celui qui correspond au croisement avec 0 dans le tableau.
|
||||
|
||||
La loi universelle qu'on ressort est : soit *n* un chiffre et *o* son opposé, dans l'univers *U*, o = U - n .
|
||||
|
||||
Voirs cours pour la suite/règles.
|
||||
|
@ -88,24 +88,24 @@ L'univers Z2 est le concept du OU exclusif : on a 0 si valeurs identiques, 1 si
|
|||
|
||||
### Multiplication
|
||||
|
||||
Voir cours. Il faudrait faire toutes les tabls de Z5, Z6, Z7, Z9, Z11
|
||||
Voir cours. Il faudrait faire toutes les tables de Z5, Z6, Z7, Z9, Z11
|
||||
|
||||
Z6 à nouveau :
|
||||
|
||||
| x | 1 | 2 | 3 | 4 | 5 |
|
||||
| $$\times$$ | 1 | 2 | 3 | 4 | 5 |
|
||||
| ---------- | --- | --- | --- | --- | --- |
|
||||
| 1 | 1 | 2 | 3 | 4 | 5 |
|
||||
| 2 | 2 | 4 | 0 | 2 | 4 |
|
||||
| 3 | 3 | 0 | 3 | 0 | 3 |
|
||||
| 4 | 4 | 2 | 0 | 4 | 2 |
|
||||
| 5 | 5 | 4 | 3 | 2 | 1 |
|
||||
|
||||
Attention : on oublie le "si a * b = 0, a = 0 et/ou b = 0" est faux dans cet univers. (Ici 2 * 3=0)
|
||||
Attention : on oublie le "si a * b = 0, a = 0 et/ou b = 0" : c'est faux dans cet univers. (Ici 2 * 3=0)
|
||||
Si on prend 2, il a pas d'inverse (on cherche 2 * x = 1, ça n'existe pas dans cette table). En fait on a pas d'inverse à part 1 et n-1, c'est valable pour tous ls univers.
|
||||
Pour 2, 3, 4 y a pas d'inverse et c'est pas bijectif (il y a des répétitions, pas des valeurs uniques)
|
||||
|
||||
On se rend compte que ça "marche" partout pour chiffres premiers, mais que quand pas premier, les lignes des diviseurs et de leurs multiples sont foireux. Dans ces cas seules les lignes restantes auront des inverses et seront bijectives.
|
||||
|
||||
|
||||
### Exercices
|
||||
|
||||
A) Les seuls éléments inversibles dans Z10 sont 1, 3, 7 et 9
|
||||
|
@ -114,8 +114,6 @@ Z15* = {1,2,4,7,8,11,13,14} (8 éléments)
|
|||
Z12* = {1,5,7,11} (4 éléments)
|
||||
Z17* = {TOUS} (16 éléments)
|
||||
|
||||
|
||||
|
||||
Prochain cour son va voir Bachet bézout >> à utiliser dans grands univers, dans petits autant faire la table.
|
||||
|
||||
b -
|
||||
|
@ -168,7 +166,6 @@ Noté a v b
|
|||
|
||||
a v b * a ^ b = ab; donc si a ^ b = 1, a v b = ab;
|
||||
|
||||
|
||||
### Bachet Bezoud
|
||||
|
||||
**Ultra important : outil principal**
|
||||
|
@ -188,10 +185,11 @@ Modulo b : bv congruent 0 dont au = 1 (b) donc u = a^-1 (b)
|
|||
Modulo a : au congruent 0 donc bv =
|
||||
|
||||
Cette démonstration permet de :
|
||||
|
||||
- déterminer u et v dans une équation diophantiene
|
||||
- trouver facilement les éléments inversibles !
|
||||
|
||||
### Indicatif d'Euler
|
||||
### Indicatrice d'Euler
|
||||
|
||||
Z9* = {1,2,4,5,7,8} (6 éléments)
|
||||
Z15* = {1,2,4,7,8,11,13,14} (8 éléments)
|
||||
|
@ -203,10 +201,18 @@ Z17* = {TOUS} (16 éléments)
|
|||
=> Dans Z*n... on va utiliser la formule d'Eulère
|
||||
Elle permet de trouver nombre d'élémnts inversibles à partir de la factorisation d'un nombre.
|
||||
|
||||
On va relier ça à** Fermat :**
|
||||
On va relier ça à **Fermat :**
|
||||
|
||||
On note phi (n) le nombre d'éléments inversibles dans n
|
||||
|
||||
Définir Indicatrice d'Euler et justifier son utilisation dans un cryptosystème :
|
||||
|
||||
- ça sert à déterminer clef privée
|
||||
|
||||
- donne l'interface de bouclage
|
||||
|
||||
- nombre d'éléments inversibles dans modulo *n*
|
||||
|
||||
### Théorème d'Euler
|
||||
|
||||
il nous dit que si a^n, alors a^phi(n) congruent 1(n)
|
||||
|
@ -219,11 +225,66 @@ Dans un univers Z*p, n^p-1 congruent à 1 (p)
|
|||
|
||||
Dans un univers Z*n, la puissance correspond à l'indicatif d'Euler
|
||||
|
||||
|
||||
### Théorème des restes chinois
|
||||
|
||||
On l'utilise pas le théorème chinois en tant que tel, on va utiliser son corollaire : théorème des restes chinois ou lemme chinois.
|
||||
|
||||
On a vu théorème avec un système de deux, maintenant on voit la règle générale (avec plus de conditions dans le système)
|
||||
|
||||
$$
|
||||
\begin{cases}
|
||||
x_1 \equiv a \pmod p \\
|
||||
x_2 \equiv b \pmod q \\
|
||||
x_3 \equiv c \pmod r
|
||||
\end{cases}
|
||||
$$
|
||||
|
||||
On obtient
|
||||
|
||||
$$
|
||||
x = a \times y_1 \times M_1 + b \times y_2 \times M_2 + a \times y_3 \times M_3 \pmod M
|
||||
$$
|
||||
|
||||
Où
|
||||
|
||||
$$
|
||||
M = p \times q \times r \\
|
||||
M_i = \frac MM_i \\
|
||||
y_1 = M_1^{-1} \pmod p
|
||||
$$
|
||||
|
||||
### Exercices
|
||||
|
||||
Sur feuille
|
||||
|
||||
## Exam
|
||||
|
||||
On aura 6 questions :
|
||||
|
||||
Q1 : Éléments d'arithmétique - 2pts - Sera dur, le prof pense que beaucoup vont échouer, faire preuve de **logique**
|
||||
|
||||
Q2: Problème 1 - 6pts - C'est plutôt des maths
|
||||
|
||||
Q3: Histoire - 3pts - Des connaissances du cours
|
||||
|
||||
Q4: Éléments d'arithmétique - 3pts - Basé sur méthodologie (fortes chances pour restes chinois)
|
||||
|
||||
Q5: Problème 2 - 6pts - Basé sur la compréhension, faisable
|
||||
|
||||
## Algorithme de Diffie-Hellman
|
||||
|
||||
Protocole de génération de clé par canal public. Il ne s'agit pas d'un système de cryptage.
|
||||
|
||||
Repose sur le principe :
|
||||
|
||||
$$
|
||||
g^{a^b} = g^{ab} = g^{b^a}
|
||||
$$
|
||||
|
||||
Il est décidé de deux nombres g et n transmis publiquement. De chaque côté, quelqu'un fait l'opération à partir de g modulo n avec un a ou b tenu secret et transmet le résultat r. Ensuite chacun élève ce résultat r à la puissance de son a ou b, modulo n et obtient la même clé de chaque côté.
|
||||
|
||||
## El-Gamal
|
||||
|
||||
Il s'agit ici non plus d'une simple transmission de clef, mais carrément d'un message chiffré, avec le concept de clé publique qui apparait. Assez proche de Diffie-Hellman dans l'idée, puisqu'on utilise encore une fois le délire des puissances et la transmission de chiffres publics, sauf que cette fois-ci l'expéditeur utilise le bouzin pour définir une clé, puis utilise cette clef pour chiffrer le message , et renvoie le tout.
|
||||
|
||||
Exercice sur feuille
|
||||
|
|
Loading…
Reference in a new issue