Cryptage Symétrique

Un blog sur la cryptographie à clé unique

Cryptage à clé unique

Ce type de cryptographie utilise une seule clé. Ainsi, la même clé est également utilisée pour le chiffrement et le déchiffrement. C'est pourquoi on l'appelle aussi chiffrement symétrique, et son principal problème est que la clé doit être échangée au début pour chiffrer et déchiffrer le texte en clair.

Image

Chiffrement de César

Il s'agit d'une méthode de chiffrement à clé privée (chiffrement symétrique). Il a été utilisé pour la première fois par Jules César il y a 2000 ans. C'est un type de chiffrement par substitution : nous décalons chaque lettre du texte en clair avec un nombre fixe de lettres et la clé elle-même est le nombre de lettres que nous utilisons pour le décalage.

Image about Caesar Cipher
  1. Nous devons d'abord savoir que pour la partie de Cryptage nous utiliserons cette formule : En (x) = (x + n) mod 26
  2. Nous devons considérer tous les caractères du texte en clair.
  3. E(x) est la lettre chiffrée de la lettre x d'origine.
  4. Ensuite, nous devons décaler la lettre donnée avec n (où n est la clé).
  5. Maintenant pour la partie de Décryptage nous allons utiliser cette formule : En( x) = (x - n) mod 26
  6. Nous devons considérer tous les caractères du texte en clair de la même manière que la partie chiffrement.
  7. D(x) est la lettre déchiffrée (x est la lettre dans le texte chiffré).
  8. Ensuite, nous devons décaler la lettre donnée avec -n (où n est la clé).

Si vous vous demandez pourquoi utilisons-nous mod 26, alors la réponse est très simple, car la taille de l'alphabet français est 26 ce qui signifie qu'il y a 26 lettres dans l'alphabet français. De cette façon, la lettre chiffrée se situe dans [0, SIZE_ALPHABET - 1] c'est pourquoi nous utilisons mod 26.

Exemple de chiffrement César avec la clé privée = 3 :

  • Message Clair : this is an example
  • Message Chiffré : wklv lv dq hadpsoh

Chiffrement de Vigenère

Le chiffrement de Vigenère utilise un mot donné comme clé privée, les représentations numériques des lettres dans la clé définissent le nombre de caractères pour décaler la lettre réelle dans le texte en clair. Et au lieu d'utiliser une seule valeur comme clé (Caesar Cipher), nous avons autant de valeurs que le nombre de lettres dans la clé privée. On a donc : TAILLE DE TOUTES LES COMBINAISONS POSSIBLES = 26taille de la clé

Pour la partie Cryptage nous avons la même formule que nous avons utilisée pour Caesar Cipher : Ei(xi) = (xi + Ki) mod 26

Notamment xi est la lettre réelle dans le texte en clair.

De plus, Ei(xi) est la lettre chiffrée dans le texte chiffré.

Dans le chiffrement de Vigenère nous devons utiliser la i-ème lettre de la clé pour chiffrer la i-ème lettre.

Pour le Décryptage c'est assez simple il suffit d'utiliser cette formule : Di (xi) = (xi - Ki) mod 26

Exemple de chiffrement Vigenère avec la clé privée = secret :

  • Message Clair : this is just an example
  • Message Chiffré : llkj ml byuk eg wbcdtew

Chiffrement Vernam

Il a été construit pour la première fois par Frank Miller en 1882. Dans ce cryptosystème, nous utiliserons autant de lettres dans la clé que la longueur du texte en clair.

Pour empêcher la Fuite d'Informations nous allons utiliser des nombres totalement aléatoires pour décaler les lettres dans le texte en clair, donc la clé doit avoir la même taille que le texte en clair et la clé doit contenir des nombres aléatoires.

Commençons par l'algorithme, nous générons une séquence aléatoire (autant de nombres aléatoires que de lettres dans le texte en clair) ce qui signifie que nous ne devons pas réutiliser les mêmes nombres encore et encore. Enfin, nous décalons les lettres du texte en clair avec les nombres aléatoires de la même manière que dans le chiffrement de Vigenère ou le chiffrement de César.

Bien sûr, si nous analysons le texte chiffré avec la méthode de Kasiski, il n'y aura aucune fuite d'informations, car chaque lettre du texte chiffré est parfaitement équidistribuée.

Voici un exemple ci-dessous d'une analyse utilisant la méthode de Kasiski :

Image about Vernam Cipher Image about Vernam Cipher

Avant de donner quelques exemples voici les formules :

  • CRYPTAGE : Ei (xi) = (xi + VERNAMi) mod 26
  • DÉCRYPTAGE : Di (xi) = (xi - VERNAMi) mod 26
Image about Vernam Cipher Image about Vernam Cipher Image about Vernam Cipher

Le principal problème en ce qui concerne le Chiffrement de Vernam est de savoir comment générer les nombres aléatoires. Malheureusement, de nos jours, nous ne pouvons toujours pas générer de vrais nombres aléatoires, nous générons donc des nombres pseudo-aléatoires et les valeurs ne sont pas indépendantes les unes des autres, donc les nombres pseudo-aléatoires peuvent se répéter et alors être prédit. C'est pourquoi il n'est pas utilisé, car sa mise en œuvre correcte est presque impossible.

Data Encryption Standard

Au début des années 1970, il est devenu évident que le secteur commercial avait également besoin de cryptographie.

Par exemple : les secrets d'entreprise doivent être transmis de manière sécurisée, les guichets automatiques ont besoin de messages cryptés, etc.

Voici le Data Encryption Standard (DES) qui est un algorithme à clé symétrique il a été construit au début des 1970 à IBM (conçu principalement par Horst Feistel). C'est un chiffrement par bloc en d'autres termes, le texte en clair est traité en texte chiffré en nombre de blocs, hybride de chiffrement par substitution et de chiffrement par permutation et avec cela nous ne sommes pas en mesure de casser DES en utilisant l'analyse de fréquence.

  1. Nous devons d'abord diviser le texte en clair en blocs de 64 bits, ces blocs sont l'entrée pour les 16 tours.
  2. Ces soi-disant 16 tours (itérations) pendant le chiffrement/déchiffrement pour DES sont des substitutions, des opérations XOR, etc. Il est également important de noter que l'entrée pour chaque itération est un bloc de 64 bits.
  3. Chaque tour nécessite une clé différente (elle est appelée sous-clés), et ces clés sont générées à partir de la clé privée d'origine 64 bits.
  4. Ce principal avantage est que les opérations de chiffrement et de déchiffrement sont très similaires (ne nécessitant que l'inversion des clés).
  • Taille du bloc : 64 bits
  • Taille de la clé : 64 bits (56 bits pertinents sont utilisés dans l'algorithme)
  • Nombre de tours : 16
  • Nombre de sous-clés : 16 (chaque sous-clé a une longueur de 48 bits)
  • Taille du chiffrement : 64 bits

Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES Image about DES

Comme nous l'avons vu ci-dessus, la norme de chiffrement des données a une soi-disant Structure de Feistel et son principal avantage est que le cryptage est très similaire au décryptage, nous utilisons simplement le même logiciel et le même matériel, en d'autres termes, nous devons simplement utiliser la même fonction que nous avons utilisée avec le chiffrement avec les sous-clés dans un ordre inverse. Les sous-clés peuvent être générées avec des opérations circulaires de décalage vers la gauche, généralement dans l'implémentation, nous générons toutes les 16 sous-clés au début.

  • Cryptage : On commence par la première sous-clé puis la seconde et etc.
  • Décryptage : On commence par le dernier (16ème) puis le 15ème et etc.

Advanced Encryption Standard

Après quelques années, avec l'évolution des ordinateurs, DES pouvait être brutalement forcé en seulement 8 heures, il est donc devenu évident qu'il n'était plus sécurisé : alors il y avait un besoin pour un autre cryptosystème vraiment sécurisé.

AES (le nom d'origine est Rijindael) a été construit en 2001 par Vincent Rijmen et Joan Daemen. Ce cryptosystème est à la pointe de la technologie, même de nos jours. Il s'agit en fait d'un cryptosystème à clé privée avec trois longueurs de clé différentes : 128, 192 et 256. C'est un chiffrement par bloc comme DES mais cela n'a rien à voir avec la structure de Feistel.

  • Bloc de texte brut : 128 bits (4 car 1 mot est 32)
  • Taille de la clé : 128 bits (4 mots)
  • Nombre de sous-clés : 10 sous-clés
  • Nombre de tours : 10 tours (ou 12 ou 14)
  • À chaque tour, nous utilisons 1 sous-clé + nous devons utiliser la clé originale de 128 bits avant d'appliquer la fonction de tour
  • Bloc de texte chiffré 128 bits : 64 bits

Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES Image about AES

Claude Shannon a défini ces propriétés pour un chiffrement sécurisé :

  • Confusion : Chaque chiffre binaire du texte chiffré doit dépendre de plusieurs chiffres de la clé privée. Ensuite, nous voulons rendre la relation entre l'entrée (texte clair) et la sortie (texte chiffré) aussi complexe que possible. Enfin, le texte chiffré ne doit donner aucun indice sur le texte en clair, de cette façon la transformation non linéaire est préférée (ces opérations détruisent le motif dans le texte en clair) et rend difficile la recherche de la clé même si un grand nombre de pairs en clair-texte chiffré sont disponibles. C'est pourquoi nous utilisons des boîtes de substitution.
  • Diffusion : Si nous changeons un seul bit dans l'entrée (texte clair), alors la moitié des chiffres dans la sortie (texte chiffré) devraient changer. Il y a 2 états (0 et 1) donc 50% signifie également aléatoire appelé effet d'avalanche. C'est pourquoi nous utilisons des boîtes de permutation.