Académique Documents
Professionnel Documents
Culture Documents
I. Fonctions
Soit X un ensemble d'objets : X= {a, b, c}
Définition 1: Une fonction est définie par deux ensembles X et Y et une règle ( une
application ou une transformation) qui à chaque élément de X associe un élément de Y.
X: appelé le domaine
Y: appelé le codomaine
Si x 𝜖 X, l'image de x est l'élément de Y associé par la règle ( 𝑦 = 𝑓(𝑥) ).
- Si y 𝜖 Y alors une pré image de y est un élément x 𝜖 X vérifiant 𝑓(𝑥) = 𝑦
- l'ensemble des éléments de Y qui ont au moins une pré image est appelé image de f ou
Im(f) 1
Exemple1:
X={a, b, c} , Y={1, 2, 3, 4}
𝑓
𝑋 𝑌:
f(a)=2, f(b)=4, f(c)=1
f
a 1 Im(f) = {1, 2, 4}
B 2
C 3
3
1) Fonctions 1-1
Définition 2: une fonction est 1-1 (one to one) si chaque élément du codomaine Y
est une image d'au plus un élément du domaine X.
Définition 3: une fonction est une application (onto) si chaque élément du codomaine
est une image d'au moins un élément du domaine.
f:𝑿 𝒀 est onto si Im(f)=y
Définition 4: Si une fonction f est 1-1 et Im(f)=y alors f est une bijection.
Définition 5 : si f : 𝑿 𝒀 est une bijection alors
on peut définir g: 𝒀 𝑿 telle que: g(y) = x , x∈ 𝑿 et f(x)=y.
g: appelée fonction inverse, notée: g= f-1
∀ 𝒚 ∈ 𝒀 , ∃ 𝒙 !, x∈ 𝑿/ f(x)=y. (!: 𝒖𝒏𝒊𝒒𝒖𝒆)
On peut définir : x= f-1(y)= g(y) 4
Exemple:
X= {a, b, c, d, e} , Y={1, 2, 3, 4, 5}
a. .1
b. .2
X c. .3 Y 1. .a
d. .4 2. .b
e. .5
Y 3. .c
4. .d
Si f est une bijection, f-1 n'est aussi: utilisées par le
chiffrement et le déchiffrement de messages. 5. .e
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
Etant donné un nombre tel que 7, il est difficile de trouver x tel que
f(x)=7.
Si on prend 3; f(x)=3=3xmod 17, il est facile de trouver x=1.
6
Exemple2: Manipulation de grands nombres.
- Soient p et q : deux nombres premiers.
p=48611, q=53993, on forme: pq=2624653723 mais factoriser ce
nombre est difficile
- Soit : X= {1, 2, 3, ..., n-1}
Soit f définie par: f(x)=x3 mod n
Si x =2489991 alors f(2489991)=1981394214
Puisque 24899913=5881949859.n+1981394214
Trouver y=f(x) est facile à calculer mais l'inverse est difficile
Remarque: La facilité peut être vue comme étant un compromis entre
la puissance de calcul et le temps. 7
Exemple3: Calcul du logarithme discret
Soit y=f(x), l'inverse existe: x=f-1(y) sachant que f est une fonction inversible
Si f est une fonction à sens unique, il est facile de calculer y à partir de x mais
impossible (difficile) de calculer x à partir de y.
la fonction forme : y=ax mod p p: grand nombre premier
a,x ∈ ℕ (entiers positifs)
possède La fonction inverse :
x=loga y mod p est appelée logarithme discret
Remarque: Il est impossible de calculer la fonction inverse sur les machines actuelles car
les nombres manipulés sont codés sur plus de 512 bits.
Autres exemples de fonction à sens unique : fonctions de hachage utilisant des
nombres de longueur 80 à 160 bits. 8
Par abus de langage la fonction y=ax mod p est appelée log discret
* calcul de a16 mod p
peut être calculé par 4 modules multiplicatifs
a16 mod p= ((((a) 2) 2) 2)2 mod p au lieu de 15 multiplications
On introduit la quantité t=log2 x (la partie entière de log2 x)
Donc on calcule:
𝑡
2
a, a2, a4, a8,..., 𝑎 (mod p) ici, chaque nombre est obtenu en prenant
le carré du nombre précédent modulo p.
(x)2=(xtxt-1.....x1x0)2
𝑡 𝑥 .2𝑖
y= a mod p s'écrit alors: 𝑦 =
x ς𝑖=0 𝑎 𝑖 𝑚𝑜𝑑 𝑝
9
Application: Calculer 374 mod 100
𝑡 = log 74 = 6
On calcule la série des nombres
3 32 34 38 316 332 364 6 multiplications
3 9 81 61 21 41 81 mod 100
On écrit (74)2=(1001010)2
.2 𝑖
On calcule 𝑦 = ς6
𝑖 =0 𝑎
𝑥𝑖
𝑚𝑜𝑑 100
364 38 32 mod 100
𝑡 = log 74 ≤ log 𝑥
Remarque: Le bon sens impose que x<p.
Définition 7: c'est une fonction à sens unique avec des propriétés additionnelles (information en extra)
facile de trouver y à partir de x mais difficile de trouver x à partir de y sauf si on connaît une information additionnelle.
Si p et q codés sur dix décimales, aucun ordinateur au monde ne peut trouver de tels nombres.
Remarques:
Les one way and trapdoor one way functions ne sont pas encore définies.
les fonctions à sens unique avec ou sans brèches secrètes sont à la base des systèmes cryptographiques à clé publique.
Pour ce type de systèmes, la clé privée est la brèche secrète 11
4) Permutations
Ce sont des fonctions souvent utilisées pour construire des systèmes cryptographiques.
Définition 8: Soit S un ensemble fini d'éléments, une permutation p sur S est une
bijection de S sur lui-même.
Autrement dit:
La permutation est une fonction un-à-un bijective où les éléments du domaine et du
codomaine appartiennent au même ensemble.
12
Exemple 1:
Soit S={1, 2, 3, 4, 5}
p: 𝑆 𝑆 est définie comme suit:
p(1)=3, p(2)=5 , p(3)=4 , p(4) =2, p(5)=1.
1 2 3 4 5
𝑝 −1 =
5 4 1 2 3
Exemple 2:
Soit X= {0, 1, 2, ..., pq-1} où p et q sont de très grands nombres premiers. On suppose
que (p-1) et (q-1) ne sont pas divisibles par 3.
Alors
la fonction: P(x)=x3 mod pq est une permutation
Trouver la permutation inverse est impossible avec les standards d'ordinateurs à moins
13
de connaître p et q.
5) Involution
Les involutions ont la propriété d'avoir leurs propres inverses.
Définition 9: Soit S un ensemble fini. f est une bijection de 𝑆 𝑆.
La fonction f =f-1 est appelée involution.
Exemple 3:
Si j est l'image de i alors i est l'image de j.
1. .1
2. .2
S 3. .3
Une involution sur un ensemble de 5 éléments.
4. .4
5. .5
14
Opérateur binaire OU exclusif (XOR)
Très utilisé dans les algorithmes de chiffrement symétrique (à clé secrète).
XOR retourne 1 si les deux bits sont différents sinon 0.
A B 𝐴⊕𝐵
Propriétés importantes 0 0 0
𝐴⊕𝐴 = 0
𝐴⊕𝐵 = 𝐶 ⟹𝐶⊕𝐵 =𝐴 0 1 1
𝐴⊕𝐵⊕𝐵 =𝐴 1 0 1
1 1 0
Décalage binaire
Chaque caractère peut être représenté par un octet de huit bits. Il suffit de décaler vers
la droite ou vers la gauche.
15
2. Eléments de base de la théorie des nombres
Définition 2.1: un entier positif p est premier s'il n'a pas de diviseurs sauf 1 et lui-même
Exemple: 11, 31, 7
Théorème 2.1: Tout nombre entier positif peut être décomposé en un produit de nombres
premiers.
Ce produit est unique.
Exemple:
27=3*3*3, 33=3*11
Définition 2.2: Deux nombres sont co-premiers s’ils n’ont aucun diviseur commun sauf
1.
Exemple: 27 et 28. 16
Définition 2.3: Fonction d'Euler
Soit N≥1, la fonction d'Euler de N noté 𝜑(𝑁) est la quantité de nombres parmi les nombres
{1, 2, 3, ... , N-1} qui sont co-premiers à N.
Appelée aussi ensemble restreint des résidus modulo N.
Exemple:
𝜑(12) => {1, 5, 7, 11} sont co-premiers à 12 donc 𝜑 12 = 4
𝜑(10) => {1, 3, 7, 9} sont co-premiers à 10 donc 𝜑 10 = 4
17
Théorème 2.2: (FERMAT)
Soit p premier et 0<a<p alors ap-1 modp =1
Exemple: p=13, a=2
212 mod 13=(22)2.((22)2)2 mod 13
=((24 mod 13).( 28 mod 13)) mod 13
=( 3 . 9) mod 13=1
p=11, a=10
1010 mod 11 =102.((102)2)2 mod 11= 1. 1=1
18
Théorème 2.3: (EULER)
Soient a et b deux nombres co-premiers Alors 𝒂𝝋 𝒃 𝒎𝒐𝒅 𝒃 = 𝟏
Remarques:
Le théorème de Fermat est un cas particulier du théorème d'Euler où b est premier.
Exemple: 𝜑 12 = 4
54 mod 12=(52)2 mod 12=(52 mod 12)2 mod 12
=1 mod 12 =1
𝜑 21 = 2 . 6 =12 b= 21 premier
212 mod 21=24 .(24)2 mod 21 =16 . 4 mod 21
19
=1
Théorème 2.4: Si p et q sont deux nombres premiers distincts (p≠q) et 𝜅 : un entier
quelconque alors:
𝒂𝜿𝝋 𝒑𝒒 +𝟏
𝒎𝒐𝒅 𝒑𝒒 = 𝒂
20
Vérification
9 et 23 son co-premiers avec pq=35 par le théorème de d'Euler :
a 28 4 4 a contient le pgcd.
b 8 8 0
R 4 0
Une version plus complète de l’algorithme d’Euclide est L'Algorithme d'Euclide étendu : est
utilisé dans beaucoup de systèmes cryptographiques.
Théorème 2.5: Soient a et b deux entiers positifs, il existe deux nombres (non nécessairement
23
Algorithme: Euclide étendu
Input: a et b entiers, a≥ b
Output: pgcd (a, b), x et y satisfaisant a . x+ b . y=pgcd(a, b)
1. U← = (a, 1, 0)
2. V← (b, 0, 1)
3. while v1 ≠ 0 Do
4. q← u1 div v1
5. T← (u1 mod v1, u2 - qv2, u3 - qv3)
6. U← V, V← T.
Return U=( pgcd(a,b), x, y)
Le vecteur U contient le résultat
a div b= 𝑎/𝑏 partie entière 24
Exemple:
a=28, b=19 programmer avec Matlab. (Dérouler l'algorithme)
26
Remarque:
d existe si seulement si c et m sont premiers entre eux (copremiers)
Exemple:
3×4 mod 11=1 donc 4=3-1 mod 11
calculons 5-2 mod 11 ?
1) 5-2 mod 11=(52 mod 11) -1 mod 11=3-1 mod 11=4
2) 5-2 mod 11= (5-1 mod 11) 2 mod 11 = 92 mod 11= 4
Ici on utilise l’équation 5-1 mod 11= 9 En effet on a : 5.9 mod 11= 45 mod11=1
On cherche : 5x =11k+1 => x=9
k=4
(5-1 mod 11) 2 mod 11=92 mod 11=4
27
Donc le problème revient à résoudre: cd-km=1 (calcul l'inverse) en utilisant l'algorithme
d'Euclide étendu:
En effet l’équation c . d mod m=1 signifie que pour un entier k quelconque, on peut
écrire :
c.d-km=1
En prenant en compte que c et m sont co-premiers, on réécrit cette équation en
appliquant le théorème 2.5 ( A.E.E) :
m(-k)+cd=(gcd(m,c), -k, d)=(gcd(a,b), x, y)
Sous l'hypothèse: m et c co-premiers et d<m
si le résultat est négatif, rajouter le modulo
28
o Calculer de l'inverse par le théorème d'Euler
𝑎𝜑 𝑏 𝑚𝑜𝑑 𝑏 = 1
x= a-1 mod b peut être calculé par: 𝒙 = 𝒂𝝋 𝒃 −𝟏 𝒎𝒐𝒅 𝒃
Exemple:
7-1 mod 11 ou 5-1 mod 7
5-1 mod 7=5𝜑 7 −1 𝑚𝑜𝑑 7=56-1 mod 7
=55 mod 7=3
7-1 mod 11=7𝜑 11 −1 𝑚𝑜𝑑 7=79 mod 11
=8
Remarque: En cryptographie à clé publique, l'exponentiation modulaire y=ax mod p
est une opération très importante. 29
Algorithme 1 : Exponentiation modulaire (Droite →Gauche)
Input : Nombres entiers a, x=(xt xt-1………x1x0), p
Output : Nombre y = axmod p
1. y ←1 ; s← a ;
2. FOR i= 0, 1,…, t DO;
3. IF xi=1 THEN y← y.s mod p;
4. s ← s.s mod p;
5. Return y.
Exemple: Dérouler l’algorithme pour x = 74 =(1001010)2
30
Algorithme 2 : Exponentiation modulaire (Gauche→Droite)
Input : Nombres entiers a, x=(xt xt-1………x1x0), p
Output : Nombre y = ax mod p
1. y← 1 ;
2. FOR i = t, t-1, …., 1, 0 DO
3. y← y.y mod p;
4. IF xi=1 THEN y← y.a mod p
5. RETURN y.
Exemple: Dérouler l’algorithme pour x = 74 =(1001010)2
31
CONGRUENCES
Définition 2.6 : Quand on dit que m divise b-a, on dit que a est
congru à b modulo m, et on écrit a≡b mod m :