Vous êtes sur la page 1sur 13

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)

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
4

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

1
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
Y 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)
Exemple:
X= {a, b, c, d, e} , Y={1, 2, 3, 4, 5}
a. .1 1. .a
b. .2 2. .b
X c. .3 Y Y 3. .c
d. .4 4. .d
e. .5 5. .e

Si f est une bijection, f-1 l'est aussi: utilisées par le chiffrement et le déchiffrement de
messages.
Problème: Si f n'est pas bijective ⟹ plusieurs messages de déchiffrement.

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

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

3
Par abus de langage la fonction y=ax mod p
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:

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

y= a x mod p s'écrit alors: 𝑦 = ∏ 𝑎 .


𝑚𝑜𝑑 𝑝
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
.
On calcule 𝑦 = ∏ 𝑎 𝑚𝑜𝑑 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

(a×b) mod n =(( a mod n) × ( b mod n)) mod n


(a× (b+c)) mod n =(( a × b )mod n+( a × c )mod n) mod n

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

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 fonction un-à-un bijective où les éléments du domaine et du
codomaine appartiennent au même ensemble.

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
𝑝 =
5 4 1 2 3

5
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
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
4. .4
5. .5
Une involution sur un ensemble de 5 éléments.

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 𝐴⊕𝐵
0 0 0
Propriétés importantes 0 1 1
𝐴⊕𝐴 = 0 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.

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

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é 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)

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

7
=((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
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
=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
949 mod 35=9, 2349 mod 35=23

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 (verifier)
 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

8
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
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.
Exemple
a 28 8 4
b 8 4 0
r 4 0

a contient le pgcd.

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

9
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

Exemple:
a=28, b=19 programmer avec Matlab. (Dérouler l'algorithme)

Application de l'algorithme 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

Donc on peut écrire:


c . c-1 mod m=1 Multiplier par c-1 revient à diviser le modulo par c.
Donc on introduit les puissances négatives:
c-e= (ce)-1=( c-1)e mod m

Remarque:
d existe si seulement si c et m sont premiers entre eux (copremiers)
Exemple: 3×4 mod 11=1

10
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 .
Ici on utilise l’équation 5-1 mod 11= 9 En effet on a : 5.9 mod 11=45mod11=1
On cherche : 5x =11k+1 => x=9
k=4
(5-1 mod 11) 2 mod 11=92 mod 11=4
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.
 si le résultat est négatif, rajouter le modulo

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=56-1 mod 7
=55 mod 7=3
 7-1 mod 11=7 ( )
𝑚𝑜𝑑 7=79 mod 11
=8
Remarque:
En cryptographie à clé publique, l'exponentiation modulaire y=ax mod p
est une opération très importante.

11
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


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

Congruences

Définition 2.6 : Quand on dit que m divise b-a, on dit que a est
congruent à 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 congruent à 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é)

12
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 0+ 4ℤ, 1+4ℤ, 2 + 4ℤ, 3 +4ℤ , sont les classes résiduelles
mod 4.

13

Vous aimerez peut-être aussi