Aperçu de la cryptographie moderne

Publié par

La cryptographie est essentielle pour toutes les activités sensibles sur Internet. La communication serveur doit être aussi sécurisée que le stockage de données.

La cryptographie, ou science de la communication secrète, permet de relever ce défi. L'étymologie du terme « cryptographie » puise sa source dans les termes grecs « crypto », qui signifie « caché » ou « secret », et « graphie », qui désigne un processus ou une forme de dessin, d'écriture ou de description.

Avec l'explosion des paris en ligne et des besoins en sécurité sur Internet, la cryptographie est devenue un sujet multi-facettes. Le fait d'utiliser du chiffrement en tant que processus ou un algorithme pour assurer la confidentialité n'est qu'une fonction de la cryptographie. La cryptographie doit en outre offrir une protection contre les écoutes clandestines, les attaques à texte clair choisi et les attaques à texte chiffré choisi, ainsi qu'assurer les éléments suivants :

Confidentialité : se définit en tant qu'intention de conserver le secret.

Intégrité : moyen de confirmer l'absence de corruption des données.

Authentification : moyen de prouver que l'appareil avec lequel vous communiquez est réellement celui qu'il prétend être, et pas un attaquant tiers.

Autorisation : affectation correcte de l'autorisation à effectuer une action.

La cryptographie moderne a été développée après la 2nde guerre mondiale. En 1949, Claude Shannon a conceptualisé les informations à la base de la sécurité théorique. Son principe directeur était le suivant : un texte chiffré ne doit révéler aucune information sur le texte brut. En mathématiques, l'écriture est la suivante :

La sécurité parfaite par Shannon

 ∀ messages m0 et m1 ϵ M (espace de tous les messages) de sorte que longueur (m0) = longueur(m1) et ∀ c ϵ C (espace de tous les textes chiffrés)

Pr[E(k, m0) = c] = Pr[E(k,m1) = c]

où k est uniforme dans K (espace de toutes les clés)

En d'autres termes, dans un texte chiffré donné, un attaquant ne peut pas déterminer si le message chiffré est m0 ou m1 pour tous les messages m0 et m1 possibles. Ainsi, même l'adversaire le plus puissant ne peut rien apprendre sur le texte brut à partir du texte chiffré et, par conséquent, aucune attaque de texte chiffré n'est possible.

Dans notre monde numérique, la cryptographie s'effectue par ordinateur. La fonction logique XOR est le bloc de construction de base des algorithmes cryptographiques en raison d'une propriété importante, exprimée par le théorème suivant :

Si Y est une variable aléatoire sur {0,1}n et X est une variable uniforme indépendante sur {0,1}n, alors Z = Y XOR X est une variable uniforme sur {0,1}n

Ceci empêche l'analyse de fréquence, qui était la faiblesse des méthodes utilisées jusqu'au milieu du XXe siècle.

L'algorithme de masque jetable

Le masque jetable est un algorithme qui prend un message m et une clé k (les longueurs de m et k sont égales) et applique la fonction logique XOR à m et k. k étant une variable uniforme, Z est également une variable uniforme et une écoute clandestine ne peut effectuer aucune attaque de texte chiffré. Malheureusement, pour une sécurité parfaite, la clé doit être plus longue que le message (|K| > |M|), ce qui est quasiment impossible dans la pratique. En effet, si nous obtenons deux messages chiffrés avec la même clé k, l'application de la fonction logique XOR à ces deux textes chiffrés donne pour résultat m1 XOR m2, et une simple analyse de statistiques sur ce résultat permettra de découvrir de nombreuses informations sur le texte brut.

Pour que le masque jetable soit pratique, la clé aléatoire est remplacée par une clé « pseudo-aléatoire » avec la compréhension suivante : si l'on connaît toutes les clés précédemment générées, il n'existe qu'une probabilité minimale (≤1/280) de découvrir la nouvelle clé.  D'autre part, au lieu de l'égalité parfaite utilisée pour décrire la sécurité parfaite de Shannon, nous avons une sécurité sémantique si 2 textes chiffrés possèdent des distributions impossibles à distinguer. Encore une fois, c'est une question de probabilités. La génération de clé est la pierre angulaire d'une bonne sécurité. Comme l'a démontré le protocole WEP, un mauvais choix de clé anéantit la sécurité.

Le WEP n'est pas sécurisé, car la longueur du vecteur d'initialisation (IV, Initial Vector) est de 24 bits, ce qui signifie que la même clé est utilisée tous les 16 millions de trames environ. De plus, les clés sont apparentées ; la clé de la trame 1 était 1||k, celle de la trame 2 était 2||k. De plus, l'IV est réinitialisé à 0 après un cycle d'alimentation. Un attaquant peut donc récupérer la clé après seulement 40 000 trames, ce qui n'offre pas une bonne sécurité dans le climat actuel. Pour surmonter cette faiblesse, une nouvelle clé doit être négociée à chaque session dans le cadre du trafic réseau. Dans les chiffrements de flux modernes, une graine et un nonce (une valeur ne se répétant pas pour une clé donnée) sont utilisés pour générer la clé, et la paire (graine, nonce) n'est jamais utilisée plus d'une fois. Les plus célèbres de ces chiffrements de flux sont RC4, Salsa ou Sosemanuk.

N'oubliez pas que le masque jetable convient à la communication dans un réseau, mais pas au stockage de données. En effet, le masque jetable ne possède pas d'intégrité car il est malléable, ce qui signifie que la modification du texte chiffré est indétectée et exerce un impact prévisible sur le texte brut.

Chiffrements par bloc

Les chiffrements par bloc sont une autre approche du chiffrement. Leur implémentation est plus complexe et plus lente que les chiffrements de flux, mais ils sont plus résistants et peuvent résoudre les difficultés que soulèvent les chiffrements de flux. Contrairement aux chiffrements de flux, les chiffrements de bloc sont un bloc fixe de n bits qui est brouillé pour créer un texte chiffré de n bits. Lorsqu'un message contient moins de n bits, il est nécessaire de remplir le message pour atteindre n bits. Les chiffrements par bloc les plus courants sont AES et RSA.

Pour les chiffrements par bloc, deux modes de fonctionnement sont disponibles : le mode CBC (Cipher Block Chaining) et le mode CTR (Counter). Chaque mode a besoin d'un vecteur d'initialisation (IV, Initial Vector) pour lancer le chiffrement, mais l'implémentation diffère par la suite. Le mode CBC possède une implémentation en série, contrairement au mode CTR où elle s'effectue en parallèle.

Nous avons ici un chiffrement avec le mode CBC : un IV aléatoire est choisi, puis la sortie de chaque bloc est utilisée pour chiffrer le bloc suivant.


Nous avons ici un chiffrement avec le mode CTR : F est une fonction pseudo-aléatoire et l'IV est aléatoire pour chaque message et incrémenté pour chaque bloc. F peut être appliqué en parallèle à chaque bloc.


Toutes ces méthodes sont efficaces face aux écoutes clandestines et pour assurer la confidentialité, mais aucune ne peut encore assurer l'intégrité, l'authentification et la protection face aux attaques actives.

Code d'authentification de message

L'intégrité du message est basée sur un code d'authentification de message (MAC, Message Authentication Code). Une balise est générée d'après le message m et une clé k. Lorsque le destinataire reçoit le message, il peut effectuer une balise de vérification, dont le résultat est oui ou non. Le calcul MAC utilise une fonction pseudo-aléatoire (PRF, Pseudorandom Function), de sorte qu'un attaquant ne peut pas produire une balise valide pour un nouveau message. L'intégrité nécessite une clé secrète et ne doit pas être confondue avec un code de redondance cyclique (CRC, Cyclic Redundancy Code) qui a été conçu pour détecter les erreurs aléatoires et non malveillantes.

Les chiffrements de flux et par bloc assurent la confidentialité (en d'autres termes, ils sont efficaces face aux écoutes clandestines, mais pas face aux attaques actives) et le MAC garantit l'intégrité, mais pas la confidentialité. Cependant, si le MAC est exécuté sur du texte chiffré, nous obtenons un chiffrement authentifié. Les attaquants ne peuvent pas créer de textes chiffrés qui se déchiffrent correctement. L'intégrité, l'authentification et l'autorisation peuvent ensuite être assurées.

Toutes ces méthodes utilisent la même clé pour l'expéditeur et le destinataire et sont nommées chiffrements symétriques. Nous avons supposé que des clés étaient échangées avant le début de la communication, mais dans le monde actuel connecté à Internet, de nombreuses personnes doivent échanger des données sans se connaître, et ne peuvent donc pas s'envoyer des clés au préalable. Le chiffrement asymétrique permet de résoudre ce dilemme. Le protocole Diffie-Hellman permet de mieux le comprendre :

Si p est un grand nombre premier, g un entier dans {1,…,p} and x is chosen randomly in {1,…, p-1}, connaissant le résultat, il n'existe pas d'algorithme efficace connu pour calculer x. Avec deux nombres x et y, il est très facile d'effectuer une opération exponentielle pour parvenir à une clé, mais très difficile d'inverser l'opération pour découvrir la clé.

g^(x^y ) (mod p)=g^(y^x ) (mod p)= g^xy (mod p) = clé à utiliser pour le chiffrement

Si Alice et Bob veulent partager la clé et si une écoute clandestine se trouve entre eux, les étapes suivantes sont effectuées pour le partage de la clé.


Il existe également plusieurs variantes Diffie-Hellman, comme la résolution d'une courbe elliptique sous la forme de y² = x³ + ax + b.

Au final, malgré tous ces efforts, il n'existe pas de moyen garanti de communiquer en toute sécurité. Le théorème de Shannon offre une sécurité parfaite d'un point de vue théorique, mais dans la pratique, les attaques par canal auxiliaire peuvent être très puissantes. L'un des meilleurs exemples d'attaque par canal auxiliaire s'est produit en 2013, lorsque des chercheurs ont piraté le chiffrement le plus difficile au monde en écoutant les sons aigus (10 à 150 kHz) produits par le processeur d'un ordinateur lors du déchiffrement d'un algorithme RSA 4 096 bits. Daniel Genlin, Adi Shamir et Eran Tromer ont pu fabriquer une clé de déchiffrement en utilisant ce type d'inconnue, qui est impossible à prévoir.

Actualité

Sorry, your filter selection returned no results.

Nous avons mis à jour notre politique de confidentialité. Prenez un moment pour lire les changements. En cliquant sur "J'accepte", vous acceptez la clause de confidentialité d'Arrow Electronics ainsi que les conditions d'utilisation.

Notre site Internet place des cookies sur votre appareil pour améliorer votre expérience et pour améliorer notre site. Pour en savoir plus sur les cookies que nous utilisons et la façon de les désactiver, cliquez ici. Des cookies et des technologies de suivi peuvent être utilisés à des fins de marketing. En cliquant sur « Accepter », vous consentez au placement de cookies sur votre appareil et à notre utilisation de technologies de suivi. Cliquez sur « En savoir plus » pour de plus amples informations et instructions sur la façon de désactiver les cookies et les technologies de suivi. Même si l'acceptation des cookies et technologies de suivi est volontaire, leur désactivation peut entraîner un mauvais fonctionnement du site Internet et certaines publicités peuvent être moins pertinentes pour vous. Nous respectons votre confidentialité. Lisez notre politique de confidentialité ici.