1. Livres & vidéos
  2. Maîtriser la cryptographie d’aujourd’hui et de demain
  3. Chiffrement symétrique et asymétrique
Extrait - Maîtriser la cryptographie d’aujourd’hui et de demain Des bases mathématiques aux standards post-quantiques
Extraits du livre
Maîtriser la cryptographie d’aujourd’hui et de demain Des bases mathématiques aux standards post-quantiques Revenir à la page d'achat du livre

Chiffrement symétrique et asymétrique

Les algorithmes de chiffrement symétrique

Les algorithmes de chiffrement symétrique sont une pierre angulaire de la cryptographie moderne, offrant une méthode efficace et rapide pour sécuriser les communications. Leur caractéristique principale est l’utilisation d’une seule et même clé pour les opérations de chiffrement (transformation du texte en clair en texte chiffré) et de déchiffrement (transformation du texte chiffré en texte en clair).

Autrement dit, l’expéditeur (Alice) et le destinataire (Bob) doivent connaître et partager préalablement la même clé secrète. Toute personne possédant cette clé peut à la fois chiffrer et déchiffrer les messages.

Principe de fonctionnement

  • Chiffrement : l’expéditeur (Alice) prend le message original (texte en clair), applique l’algorithme de chiffrement et utilise la clé secrète partagée pour transformer le message en un format illisible (texte chiffré).

    C = Ek(P) où :

  • C est le texte chiffré (ou ciphertext en anglais) ;

  • E est l’algorithme de chiffrement ;

  • K est la clé secrète partagée ;

  • P est le texte en clair (ou plaintext en anglais).

  • Déchiffrement : le destinataire (Bob) reçoit le texte chiffré C, applique l’algorithme de déchiffrement et utilise la même clé secrète K pour retrouver le message original.

    P = DK(C) où D est l’algorithme de déchiffrement.

La sécurité repose entièrement sur le secret de cette clé secrète K. Si un attaquant parvient à obtenir la clé secrète, il peut facilement déchiffrer tous les messages chiffrés avec cette clé secrète.

images/03DataPro02.png

Propriétés fondamentales

Les bons algorithmes symétriques vérifient quelques propriétés importantes :

  • Résistance à la cryptanalyse : il doit être pratiquement impossible de retrouver le texte en clair ou la clé sans connaître cette dernière.

  • Diffusion : une modification minime du texte en clair ou de la clé secrète entraîne un changement radical du texte chiffré.

  • Performance : ils sont généralement...

Les modes opératoires

Les modes opératoires (ou modes d’opération) sont des méthodes qui définissent la manière dont un algorithme de chiffrement par bloc (comme le DES ou l’AES) est utilisé pour chiffrer des données plus grandes que la taille d’un seul bloc. Ces modes sont cruciaux car ils ajoutent des fonctionnalités de sécurité, comme le masquage des motifs ou l’authentification des données.

Voyons en détail les principaux modes opératoires.

1. Mode ECB

Le tout premier mode opératoire a été l’ECB (Electronic Codebook), développé avec le DES dans les années 1970. Le mode ECB est le plus simple et le moins sécurisé. Il traite chaque bloc de données de 64 bits de manière indépendante.

Le fonctionnement de l’ECB est comme suit :

Le texte en clair est divisé en blocs de 64 bits, chaque bloc est chiffré individuellement avec la clé secrète. Le déchiffrement se fait en déchiffrant chaque bloc individuellement avec la même clé.

images/03DataPro31.png

a. Avantages

Le mode d’opération ECB est simple à mettre en place.

Comme chaque bloc est chiffré (ou déchiffré) individuellement, cela permet le chiffrement et le déchiffrement en parallèle, ce qui le rend rapide.

b. Inconvénient

Le mode d’opération ECB présente des faiblesses de sécurité, si deux blocs de texte en clair identiques existent, ils produiront toujours le même bloc de texte chiffré. Cela permet à un attaquant de reconnaître des motifs dans les données.

ECB est non recommandé pour la plupart des applications à cause de sa faiblesse. 

2. Mode CBC

Le mode CBC (Cipher Block Chaining) résout le problème des motifs du mode ECB en « chaînant » les blocs les uns aux autres.

images/03DataPro32.png

Le fonctionnement du CBC est comme suit :

Comme illustré dans la figure, le vecteur d’initialisation (IV), qui est un bloc aléatoire de 64 bits, est utilisé. Il doit être unique pour chaque session de chiffrement (ou déchiffrement).

  • Chiffrement : le premier bloc de texte en clair (Bloc 1) est XORé avec le vecteur d’initialisation (IV) avant d’être...

Les algorithmes de chiffrement asymétrique

Contrairement à la cryptographie symétrique, qui utilise une seule clé pour le chiffrement et le déchiffrement, la cryptographie asymétrique, également appelée cryptographie à clé publique, repose sur l’utilisation d’une paire de clés mathématiquement liées : une clé publique et une clé privée. Ce modèle révolutionnaire résout le problème fondamental de l’échange de clés, ouvrant la voie à des fonctionnalités comme la signature numérique, l’échange sécurisé de clés symétriques, et la non-répudiation.

Cette section explore le fonctionnement, les principes et fonctionnalités de la cryptographie asymétrique ainsi que le fonctionnement de l’algorithme RSA.

1. Principe et fonctionnalités

a. Principe

L’idée du principe de la clé publique et de la clé privée est simple et élégante :

  • La clé publique : elle est générée en même temps que la clé privée. Comme son nom l’indique, elle est destinée à être distribuée et partagée avec tout le monde. On l’utilise pour chiffrer un message ou pour vérifier une signature.

  • La clé privée : elle est générée en même temps que la clé publique, mais elle doit impérativement rester secrète. On l’utilise pour déchiffrer un message chiffré par la clé publique correspondante ou pour créer une signature

La force de ce système réside dans l’asymétrie : il est mathématiquement impossible de déduire la clé privée à partir de la clé publique, même si elles sont liées.

Analogie de la boîte aux lettres : imaginez une boîte aux lettres équipée d’une fente et d’un cadenas. La fente représente la clé publique : tout le monde peut y déposer un message (le chiffrer). En revanche, seul le propriétaire possède la clé privée permettant d’ouvrir le cadenas et de récupérer...

Échange de clé et chiffrement basé sur le log discret

L’algorithme RSA exploite la difficulté de la factorisation des grands nombres premiers. Les algorithmes d’échange de clés et de chiffrement basés sur le logarithme discret exploitent un autre problème fondamental : qui est le problème du logarithme discret (DLP).

1. Le problème du logarithme discret

Pour rappel le groupe multiplicatif (images/02eq28.png) est cyclique si et seulement si n est de la forme suivante :
  • n = 1 ;

  • n = 2 :

  • n = 4 :

  • n = pk, où p est un nombre premier impair et images/03eq70.png ;
  • n = 2 pk, où p est un nombre premier impair et images/03eq70.png.
Soit p un nombre premier et g un générateur du groupe cyclique images/03eq71.png.
Soit x un élément de images/03eq71.png tel que images/03eq72.png, le problème du logarithme discret consiste à retrouver x à partir de h.

g, h et p sont connus, il est facile de calculer h si on connaît x.

Cependant, si l’on ne connaît que g, h et p, il est très difficile de retrouver l’exposant x, surtout si p est un très grand nombre premier. Cette asymétrie de difficulté est la pierre angulaire de la sécurité de ces algorithmes.

2. Échange de clés Diffie-Hellman (DH)

L’échange de clés Diffie-Hellman, conçu en 1976 par Whitfield Diffie et Martin Hellman, est la première méthode publique pour permettre à deux parties, n’ayant jamais communiqué auparavant, de se mettre d’accord sur une clé secrète partagée via un canal non sécurisé.

Voyons comment Alice et Bob peuvent échanger de clés via un canal non sécurisé :

  • Paramètres publics : Alice et Bob se mettent d’accord sur un grand nombre premier pet un générateurg. Ces nombres sont publics.

  • Clés privées (secrètes) : Alice choisit un nombre secret a et Bob choisit un nombre secret b.

  • Clés publiques échangées :

  • Alice calcule images/03eq73.png et envoie A à Bob.
    Bob calcule images/03eq74.png et envoie B à Alice.
  • Calcul de la clé secrète partagée :

  • Alice reçoit B et calcule la clé secrète images/03eq75.png.
    Bob reçoit A et calcule la clé secrète images/03eq76.png.

Ces deux calculs donnent le même résultat :

images/03eq77.png et
images/03eq78.png.
On a le même...

L’algorithme ECC (Elliptic Curve Cryptography)

La cryptographie sur les courbes elliptiques ECCrepose sur les propriétés mathématiques des courbes elliptiques définies sur des corps finis.

En ECC, le système de sécurité repose sur la difficulté à résoudre le problème du logarithme discret sur courbe elliptique (ECDLP). Elle offre le même niveau de sécurité que RSA ou Diffie-Hellman, mais avec des clés beaucoup plus petites (ex. 256 bits en ECC environ 3072 bits en RSA).

Cette efficacité explique son adoption dans de nombreux standards : TLS, Bitcoin, cartes à puce, signatures numériques, etc.

1. Définition d’une courbe elliptique

Une courbe elliptique (sur un corps fini premier Fp) est définie par l’équation de Weierstrass :

images/03eq107.png,
avec images/03eq109.png et images/03eq108.png.

L’ensemble des solutions (x , y) à cette équation, plus un point spécial dit point à l’infini 0, forme un groupe abélien avec la loi de composition interne : l’addition de points.

L’opération de base en ECC est l’addition de deux points.

Voyons d’abord comment ajouter deux points dans une courbe elliptique (sur le corps images/02eq123.png).

a. Intuition géométrique (sur les réels)

images/03DataPro55.png

Pour ajouter deux points distincts P et Q, tracez la droite passant par P et Q. Cette droite coupe la courbe en un troisième point R. On définit P +Q =R ’ avec R ’...

Applications concrètes

La sécurité des communications sur Internet repose sur des mécanismes cryptographiques qui garantissent confidentialité, intégrité et authentification. Deux grandes familles de cryptographie jouent des rôles complémentaires :

  • Cryptographie asymétrique (RSA, Diffie-Hellman, etc.) : idéale pour échanger des clés et établir la confiance.

  • Cryptographie symétrique (AES) : idéale pour chiffrer rapidement de grands volumes de données.

Le protocole SSL/TLS (Secure Sockets Layer/Transport Layer Security) illustre parfaitement cette complémentarité. C’est lui qui sécurise nos sessions HTTPS, nos e-mails chiffrés ou encore nos connexions VPN.

Dans cette section, nous allons détailler comment AES et RSA travaillent ensemble dans SSL/TLS pour sécuriser les communications modernes.

1. Utilisation conjointe d’AES et RSA

Le protocole SSL/TLS est une technologie de sécurité standard qui permet d’établir un lien chiffré entre un serveur web (comme un site d’e-commerce) et un navigateur. Ce lien garantit que toutes les données transmises entre le serveur et le client restent confidentielles et ne peuvent être ni lues ni modifiées par des tiers.

Exemple : le protocole SSL/TLS

Le protocole SSL/TLS utilise une combinaison de cryptographie asymétrique (clé publique/privée) et symétrique pour sécuriser la connexion. Ce processus, appelé « poignée de main TLS » (TLS Handshake), se déroule en plusieurs étapes. Prenons un cas classique : connexion HTTPS entre un navigateur et un serveur.

Étape 1 : bonjour du client (ClientHello)

Le navigateur (le client) envoie un message au serveur pour initier la communication. Ce message inclut la version de SSL/TLS supportée, une liste des algorithmes de chiffrement qu’il peut utiliser, et un nombre aléatoire.

Étape 2 : bonjour du serveur (ServerHello)

Le serveur répond en choisissant la version du protocole et les algorithmes de chiffrement qu’il utilisera. Il envoie son certificat numérique (pour prouver son identité) contenant sa clé publique (RSA ou ECDSA).

Étape 3 : vérification...