Vous êtes sur la page 1sur 11

Chapitre 2

Mathéma ques u lisées dans les crypto-systèmes

Le principe de Kerckhoffs exprime que la sécurité d'un système cryptographique doit être basée uniquement sur le secret de la clé
et que tous les autres paramètres doivent être supposés être publiquement connus.

o Autrement dit, comme le reformule Claude Shannon : « l'adversaire connaît le système ».

 Cette formulation est connue sous le nom de maxime de Shannon.

 Elle est considérée aujourd'hui comme un principe fondamental par les cryptologues, et s'oppose à la sécurité par
l'obscurité qui repose sur la non-divulgation d'informations relatives à la structure, au fonctionnement et à la mise
en œuvre du l’algorithme de cryptage pour assurer la sécurité.

1. Arithmétique Modulaire

Presque tous les algorithmes cryptographiques, à la fois les chiffrements symétriques et les chiffrements asymétriques, sont basés
sur l'arithmétique dans un nombre fini d'éléments.

La plupart des ensembles de nombres auxquels nous sommes habitués, tels que l'ensemble des nombres naturels ou l'ensemble des
nombres réels, sont infinis.

Dans ce qui suit, nous introduisons l'arithmétique modulaire, qui est une manière simple d'effectuer l'arithmétique dans un ensemble
fini d'entiers.

1
Exemple :

On considère l'ensemble des neuf nombres : {0,1,2,3,4,5,6,7,8}.

Nous pouvons faire de l'arithmétique régulière tant que les résultats sont inférieurs à 9.

o Par exemple : 2 × 3 = 6 et 4 + 4 = 8 ainsi de suite.

Mais qu'en est-il du 8 + 4 ?

Nous essayons alors la règle suivante : effectuez une arithmétique régulière sur les entiers et divisez le résultat par 9, c.-à-d.
considérez que le reste plutôt que le résultat d'origine.

o Comme 8 + 4 = 12, et que 12 / 9 a un reste de 3, on écrit alors : 8 + 4 ≡ 3 mod 9 qui est l’opération modulo.

Définition exacte de l'opération modulo est comme suit :

o Soit a, r, m ∈ Z (où Z est un ensemble de tous les entiers) et m >0.


Nous écrivons : a ≡ r mod m, si m divise a −r.
« m » est appelé le modulo et « r » est appelé le reste.

Calcul du Reste

Il est toujours possible d'écrire a ∈ Z, tel que a = q·m + r pour 0 ≤ r < m

o Puisque a − r = q·m (m divise a − r) on peut maintenant écrire : a ≡ r mod m.

o Donc on a toujours r ∈ {0,1,2,...,m−1}.

2
o Exemple
 Soit a = 42 et m = 9. Alors 42 = 4·9 + 6 et donc 42 ≡ 6 mod 9.

Le reste n'est pas unique : pour chaque modulo « m » et nombre « a » donnés.

Prenons un autre exemple : On veut réduire 12 modulo 9.

o Voici quelques résultats corrects selon la définition :

 12 ≡ 3 mod 9, 3 est un reste valide puisque 9 | (12−3)

 12 ≡ 21 mod 9, 21 est un reste valide puisque 9 | (21−3)

 12 ≡ −6 mod 9, −6 est un reste valide puisque 9 | (−6−3)

o où le "x|y" signifie "x divise y".

Il y a un système derrière ce comportement.

L'ensemble des nombres {...,−24,−15,−6,3,12,15,24,...} forme ce qu'on appelle une classe d'équivalence.

Il existe huit autres classes d'équivalence pour le modulo 9 :

o {...,−27,−18,−9, 0, 9,18,27,...}

o {...,−26,−17,−8, 1, 10,19,28,...}

o ...

o {...,−19,−10,−1, 8, 17,26,35,...}

3
2. Application dans la cryptographie

Pour un modulo « m » donné, peu importe quel élément d'une classe nous choisissons pour un calcul donné, car tous les membres
d'une classe d'équivalence donnée se comportent de manière équivalente.

Dans les algorithmes asymétriques, où la clé de chiffrement est publique, l'opération de base dans le calcul de cette clé publique est
une exponentiation modulaire de la forme « xe mod m », où x, e, m sont de très grands nombres entiers, disons, 2048 bits chacun.

Exemple :

o Nous pouvons démontrer deux façons de faire une exponentiation modulaire.

o Nous voulons calculer 38 mod 7.

o La première méthode est l'approche directe, et pour la seconde nous basculons entre les classes équivalentes.

 Approche directe : 38 = 6561 ≡ 2 mod 7, puisque 6561 = 937·7+2 → nous obtenons le résultat intermédiaire assez grand
6561 même si nous savons que notre résultat final ne peut pas être supérieur à 6.

 Voici une méthode beaucoup plus intelligente : nous effectuons d'abord deux exponentiations partielles : 38 = 34·34 = 81·81.

o On peut maintenant remplacer les résultats intermédiaires 81 par un autre membre de la même classe d'équivalence.

o Le plus petit membre positif modulo 7 de la classe est 4 (puisque 81 = 11·7+4).

 D'où : 38 = 81·81 ≡ 4·4 = 16 mod 7

 De là, nous obtenons facilement le résultat final sous la forme 16 ≡ 2 mod 7.

Ainsi, l'application de la réduction modulo maintient les nombres petits, d'autant plus que le résultat final de tout calcul modulo est
toujours le même, quelle que soit la classe équivalente utilisée.
4
3. Anneaux des entiers

Considérons l'ensemble des nombres entiers de « 0 » à « m− 1 » ainsi que les opérations d'addition et de multiplication.

L'anneau d'entiers Zm est constitué de : l'ensemble Zm = {0, 1, 2, ..., m−1} et de deux opérations "+" et "×" pour tout a, b ∈ Zm
telles que :

o a + b ≡ c mod m, (c ∈ Zm)

o a × b ≡ d mod m, (d ∈ Zm)

Exemple :

o Soit m = 9, c'est-à-dire qu'on a affaire à l'anneau Z9 = {0, 1, 2, 3, 4, 5, 6, 7, 8}.

o Examinons quelques opérations arithmétiques simples :

 6 + 8 = 14 ≡ 5 mod 9

 6 × 8 = 48 ≡ 3 mod 9

À ce stade, les propriétés suivantes des anneaux sont importantes :

o Nous pouvons additionner et multiplier deux nombres quelconques et le résultat est toujours dans l'anneau.

 Un anneau est dit fermé.

o L'addition et la multiplication sont associatives, par exemple, a + (b + c) = (a + b) + c, et a· (b· c) = (a· b)· c pour tout a,
b, c ∈ Zm.

5
o Il y a l'élément neutre « 0 » par rapport à l'addition, c'est-à-dire que pour tout élément a ∈ Zm il est vrai que a + 0 ≡ a mod
m.

o Pour tout élément a de l'anneau, il y a toujours l'élément négatif −a tel que a + (−a) ≡ 0 mod m, c'est-à-dire que l'inverse
additif existe toujours.

o Il y a l'élément neutre « 1 » par rapport à la multiplication, c'est-à-dire que pour tout élément a ∈ Zm il est vrai que a×1 ≡
a mod m.

o L'inverse multiplicatif n'existe que pour certains éléments, mais pas pour tous.

 Soit a ∈ Z, l'inverse « a−1 » est défini tel que : a·a−1 ≡ 1 mod m

 Si un inverse existe pour « a », on peut diviser par cet élément puisque b/a ≡ b·a−1 mod m.

4. Chiffrement par décalage (ou chiffrement de César)

Le chiffrement par décalage est en fait un cas particulier du chiffrement par substitution et a une description mathématique très
élégante.

Nous décalons simplement chaque lettre du texte en clair d'un nombre fixe de positions dans l'alphabet.

o Par exemple, si on décale de 3 positions, « a » serait remplacé par « d », « b » par « e », etc.

 Le seul problème se pose vers la fin de l'alphabet : que faire de x y, z ?

 Ils devraient "s'enrouler".

o Cela signifie que « x » doit devenir « a », « y » doit devenir « b » et « z » est remplacé par « c ».

6
Le chiffrement par décalage a également une description élégante utilisant l'arithmétique modulaire.

Pour l'énoncé mathématique du chiffrement, les lettres de l'alphabet sont codées sous forme de nombres, comme indiqué dans le
tableau suivant.

Les lettres en clair et les lettres chiffrées sont maintenant des éléments de l'anneau Z26.

De plus, la clé, c'est-à-dire le nombre de positions de changement de vitesse, se trouve également dans Z26 puisque plus de 26
changements n'auraient pas de sens (27 changements équivaudraient à 1 changement, etc.).

Le chiffrement et le déchiffrement sont mathématiquement formulés comme suit :

Soient x, y, k ∈ Z26.
Chiffrement : ek(x) ≡ x+k mod 26.
Déchiffrement : dk(y) ≡ y−k mod 26.

Exemple :

o Soit la clé k = 17, et le texte en clair est :

o Le texte chiffré est alors calculé comme suit :

7
Le chiffrement par décalage n'est pas du tout sécurisé.

Il y a deux manières de l'attaquer :

o Puisqu'il n'y a que 26 clés différentes (positions de décalage), on peut facilement lancer une attaque par force brute en
essayant de déchiffrer un texte chiffré donné avec les 26 clés possibles.

 Si le texte brut résultant est un texte lisible, vous avez trouvé la clé.

Comme pour le chiffrement par substitution, on peut également utiliser l'analyse de fréquence des lettres.

5. Chiffrement affine

Maintenant, nous essayons d'améliorer le chiffrement par décalage en généralisant la fonction de chiffrement.

Rappelons que le chiffrement par décalage était l'ajout de la clé :

Le chiffrement affine consiste à multiplier le texte en clair par une partie de la clé, suivi de l'ajout d'une autre partie de la clé.

Algorithme :
 Soient :

 Chiffrement :

 Déchiffrement :

 Avec la clé : k = (a, b), qui a la restriction : pgcd (a, 26) = 1.

8
Le déchiffrement est facilement dérivé de la fonction de chiffrement :

La restriction pgcd (a, 26) = 1 provient du fait que le paramètre clé « a » doit être inversé pour le déchiffrement.

Nous rappelons qu'un élément « a » et le modulo doivent être relativement premiers pour que l'inverse de « a » existe.

Ainsi, « a » doit être dans l'ensemble :

Mais comment trouve-t-on « a−1 » ?

o Pour l'instant, pour un « a » donné on essaie simplement toutes les valeurs possibles « a−1 » jusqu'à obtenir :

Par exemple, si a = 3, alors a − 1 = 9 puisque 3 ·9 = 27 ≡ 1 mod 26.

o Remarquons que « a−1 » vérifie aussi toujours la condition pgcd (a −1,26) = 1 puisque l'inverse de « a−1 » existe toujours.
 En fait, l'inverse de « a−1 » est « a » lui-même.
 Par conséquent, pour la détermination par essais et erreurs de « a−1 », il suffit de vérifier les valeurs données dans
.

9
Exemple :

o Soit la clé k = (a, b) = (9, 13), et le texte en clair à chiffrer est :

o L'inverse « a−1 » de « a » existe et est donné par « a−1 = 3 ».

o Le texte chiffré est calculé est alors :

Le chiffrement affine est-il sécurisé ? Non ! L'espace de clé n'est qu'un peu plus grand que dans le cas du chiffrement par
décalage :

Un espace clé avec 312 éléments peut bien sûr toujours être fouillé de manière exhaustive, c'est-à-dire attaqué par force brute, en
une fraction de seconde avec les PC de bureau actuels.

o De plus, le chiffrement affine a la même faiblesse que le chiffrement par décalage et par substitution : la correspondance
entre les lettres du texte en clair et les lettres du texte chiffré est figée.

 Par conséquent, il peut facilement être rompu avec l'analyse de la fréquence des lettres.

10
6. Conclusions

Ne développez jamais votre propre algorithme de chiffrement à moins que vous n'ayez une équipe de cryptanalystes expérimentés
pour vérifier votre conception.

N'utilisez pas d'algorithmes cryptographiques non éprouvés (c'est-à-dire des chiffrements symétriques, des chiffrements
asymétriques, des fonctions de hachage) ou des protocoles non éprouvés.

Les attaquants recherchent toujours le point le plus faible d'un crypto-système.

o Par exemple, un grand espace de clé en lui-même ne garantit pas la sécurité d'un chiffrement ; le chiffrement pourrait encore
être vulnérable aux attaques analytiques.

 Les longueurs de clé pour les algorithmes symétriques afin d’empêcher les attaques exhaustives par recherche de clé
sont :

 64 bits : non sécurisé sauf pour les données ayant une valeur à très court terme.

 112-128 bits : sécurité à long terme de plusieurs décennies, y compris les attaques des agences de renseignement
à moins qu'elles ne possèdent des ordinateurs quantiques.

o D'après nos connaissances actuelles, les attaques ne sont réalisables qu'avec des ordinateurs quantiques.

 256 bits : comme ci-dessus, mais éventuellement contre les attaques des ordinateurs quantiques.

L'arithmétique modulaire est un outil pour exprimer des schémas de chiffrement historiques, tels que le chiffrement affin, d'une
manière mathématiquement élégante.

11

Vous aimerez peut-être aussi