Académique Documents
Professionnel Documents
Culture Documents
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.
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 :
Nous pouvons faire de l'arithmétique régulière tant que les résultats sont inférieurs à 9.
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.
Calcul du Reste
2
o Exemple
Soit a = 42 et m = 9. Alors 42 = 4·9 + 6 et donc 42 ≡ 6 mod 9.
L'ensemble des nombres {...,−24,−15,−6,3,12,15,24,...} forme ce qu'on appelle une classe d'équivalence.
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 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.
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 :
6 + 8 = 14 ≡ 5 mod 9
6 × 8 = 48 ≡ 3 mod 9
o Nous pouvons additionner et multiplier deux nombres quelconques et le résultat est toujours dans l'anneau.
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.
Si un inverse existe pour « a », on peut diviser par cet élément puisque b/a ≡ b·a−1 mod m.
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 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.).
Soient x, y, k ∈ Z26.
Chiffrement : ek(x) ≡ x+k mod 26.
Déchiffrement : dk(y) ≡ y−k mod 26.
Exemple :
7
Le chiffrement par décalage n'est pas du tout sécurisé.
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.
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 :
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.
o Pour l'instant, pour un « a » donné on essaie simplement toutes les valeurs possibles « a−1 » jusqu'à obtenir :
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 :
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.
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