Vous êtes sur la page 1sur 33

Préliminaires mathématiques

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

Exemple2: X={1, 2, 3,4, 5, 6 , 8, 9, 10}


et f(x)=x2 mod 11
de façon explicite :f(1)=1 f(2)=4 f(3)=9 f(4)=5 f(5)=3 f(6)=3 f(7)=5
f(8)=9 f(9)=4 f(10)=1
2
Im(f) = {1, 3, 4, 5, 9}
Exemple 3: X={1, 2, 3,4, 5, 6 , 8, 9, 105}
f(x)=x50 mod 1050+1
Ecrire explicitement f n'est pas faisable.

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

Problème: Si f n'est pas bijective ⟹ plusieurs messages de déchiffrement.


5
2) Fonctions à sens-unique (One way function)
Définition 6: On a f(x)=y est à sens unique s'il est facile de trouver y pour tout
x∈ 𝑋 mais impossible (difficile) de trouver (calculer) x à partir de y.
Exemple1: X= {1, 2,3,...,16} f(x)= 3x mod 17

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

Y= (81) (1) (1) (61) (1) (9) (1) =69 (2 multiplications)

Proposition:(complexité de l'exponentiation) le nombre de multiplication pour


calculer y= a x mod p en utilisant de blocs ne dépasse pas 2 log x.

𝑡 = log 74 ≤ log 𝑥
Remarque: Le bon sens impose que x<p.

Rappels sur les congruences:


(a+b) mod n =(( a mod n)+( b mod n)) mod n
(a-b) mod n =(( a mod n)-( b mod n)) mod n 10
(a×b) mod n =(( a mod n) × ( b mod n)) mod n
3) Fonction à sens unique avec brèche secrète (trapdoor one way functions )

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.

Exemple: Problème de la factorisation

Factorisation: N=p*q avec p, q entiers premiers toujours grands.

trouver p et q codés sur 5 digits (décimales)

 Si N=2624653723 par ordinateur: p=48611 et q=53993

 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.

Une permutation peut être décrite de différentes manières:


Une façon est:
1 2 3 4 5
𝑝 =
3 5 4 2 1

Ce sont des bijections ⟹ Ils ont des inverses


Il faut :
 interchanger les lignes
 réordonner les éléments dans la nouvelle ligne en haut si c'est désiré.
 les éléments de la ligne du bas doivent être réordonnés.

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.

f(f(x))=x pour tout 𝑥 𝜖 𝑆

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

Proposition 2.1: Si p est premier alors 𝜑 𝑝 =𝑝−1


Proposition 2.2: Soient p et q deux nombres premiers (p≠q)
Alors 𝜑 𝑝𝑞 = 𝑝 − 1 (𝑞 − 1)

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:

𝒂𝜿𝝋 𝒑𝒒 +𝟏
𝒎𝒐𝒅 𝒑𝒒 = 𝒂

Exemple: p=5, q=7, alors pq=35


𝜑 35 =4×6=24
𝜅 = 2 donc : 2× 24+1=49, Le théorème est vérifié pour a=9 et a=23

949 mod 35=9, 2349 mod 35=23

20
Vérification
 9 et 23 son co-premiers avec pq=35 par le théorème de d'Euler :

924 mod 35=1 et 2324 mod 35=28 (vérifier)

 Théorème 2.4 reste valable pour a=10 et a=28


1049 mod 35=10, 2849 mod 35=28
10 et 28 vérifient-ils le théorème d'Euler?
non car 10 et 28 ne sont pas co-premiers avec 35 .
1024 mod 35=25
2824 mod 35=21 21
Définition 2.4: Soient a et b deux entiers positifs, le plus grand diviseur commun de a et b
noté: pgcd (a, b) est le plus grand nombre c divisant a et b. c=pgcd(a,b)
Exemple:
pgcd(10,15)=5, pgcd(8,28)=4. Il est calculé par l'algorithme d'Euclide (300 A.J,C)
Input: a, b, a≥ b
Output: pgcd(a,b)
While b≠0 Do
r ← a mod b,
a ← b,
b←r
Afficher a.
22
Exemple:

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

positifs) tels que: a * x + b* y = (pgcd(a, b), x, y)


A.E.E permet de déterminer : pgcd et x et y. Pour le calcul, on introduit trois vecteurs:
U= (u1, u2, u3), V= (v1, v2, v3) et T= (t1, t2, t3).

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)

APPLICATION DE L'ALGORITHME D’EUCLIDE ÉTENDU :


CALCUL DE L’INVERSE
- Dans beaucoup de systèmes cryptographiques, on cherche à trouver pour deux nombres
spécifiques c et m, un nombre d<m et vérifiant c. d mod m =1
Remarque:
d existe si seulement si c et m sont co-premiers
Définition 2.5 : Un nombre d satisfaisant la relation c . d mod m=1 est appelé
inverse de c modulo m et, souvent noté c-1 mod m
25
Donc on peut écrire:
c . c-1 mod m=1
Multiplier par c-1 revient à diviser par c en prenant le modulo .
Donc les puissances négatives modulo m sont introduites:
c-e mod m= (ce)-1 mod m=( c-1)e mod m

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 :

Exemple : -2 ≡ 19 mod 21 et 10 ≡ 0 mod 2


On vérifie facilement que la congruence modulo m une relation
d’équivalence, ce qui signifie :
1. Tout entier est congru à lui-même modulo m (réfexivité)
2. a ≡ b mod m implique b≡ a mod m (symétrie)
3. 𝑎 ≡ b mod m et b ≡ c mod m implique a≡ c mod m (transitivité)
32
Autres caractérisations
Lemme- les assertions suivantes sont équivalentes :
1. a ≡ b mod m
2. Il existe 𝑘 ∈ ℤ avec a = b + km
3. Quand on les divise par m, les deux nombres a et b donnent le même reste.
La classe d’équivalence de a, notée a+m ℤ, est l’ensemble des entiers obtenus en ajoutant à a un
multiple entier de m ; autrement dit :
𝑏: 𝑏 ≡ 𝑎 𝑚𝑜𝑑 𝑚 = 𝑎 + 𝑚ℤ
On l’appelle la classe résiduelle de a mod m.
Exemple : la classe residuelle de 1 mod 4 est l’ensemble {1,1 ±4,1±2*4,1±3*4,...} ={1,-3,5,-7,9-
11,13,…}.
La classe résiduelle de 0 mod 2 est l’ensemble des entiers pairs.
La classe résiduelle de 1 mod 2 est l’ensemble des entiers impairs. les quatre ensembles
33
0+ 4ℤ, 1+4ℤ, 2 + 4ℤ, 3 +4ℤ , sont les classes résiduelles mod 4

Vous aimerez peut-être aussi