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.

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

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.

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
) 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
; -
n = 2 pk, où p est un nombre premier impair et
.
.
tel que
, 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
et envoie A à Bob.Bob calcule
et envoie B à Alice.
-
Calcul de la clé secrète partagée :
-
Alice reçoit B et calcule la clé secrète
.Bob reçoit A et calcule la clé secrète
.
Ces deux calculs donnent le même résultat :
et
.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 :
,
et
.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.
).a. Intuition géométrique (sur les réels)

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