La cryptographie est une technique qui permet de sécuriser les informations et les communications en utilisant un ensemble de calculs basés sur des règles, appelés algorithmes, et certains concepts mathématiques, de sorte que seule la bonne personne puisse les comprendre.

Elle est utile pour empêcher l’accès non autorisé à l’information.

Le mot “cryptographie” est dérivé du mot grec kryptos, qui signifie “caché”. Le mot “crypto” signifie “caché” et “graphie” signifie “écriture”.

Dans cet article, j’aborderai les principes de base de la cryptographie, j’explorerai les différents types de cryptographie à l’aide d’exemples, je discuterai des défis à relever et je me pencherai sur les tendances futures. Mon objectif est de fournir une vue d’ensemble complète, couvrant à la fois les concepts majeurs et mineurs.

La cryptographie sécurise les communications et les informations numériques dans divers systèmes et applications, en garantissant la confidentialité et la sécurité des données. Elle protège les données contre tout accès non autorisé.

cryptography.drawio-1-1

Voyons ce qui se passe en cryptographie :

  1. Le processus commence avec l’expéditeur qui a un message ou des données à envoyer.
  2. Le texte en clair (message original) est ensuite converti dans un format illisible à l’aide d’une méthode appelée cryptage.
  3. Le destinataire utilise une clé pour reconvertir le texte chiffré (format illisible) en un format lisible, un processus connu sous le nom de décryptage.
  4. Le message décrypté est à nouveau en clair et est identique au message original envoyé par l’expéditeur.
  5. Le destinataire dispose à présent du message original.

Examinons maintenant les principes fondamentaux de la cryptographie.

Principes de base de la cryptographie

La cryptographie repose sur quatre grands principes :

#1. La confidentialité: Seul le destinataire prévu peut accéder à l’information ; celle-ci reste privée pour les autres.

#2. Intégrité: L’information ne peut pas être modifiée pendant le stockage ou la transmission sans que les changements soient détectés.

#3. Non-répudiation: L’expéditeur ne peut pas nier avoir envoyé l’information ultérieurement.

#4. Authentification: Elle confirme l’identité de l’expéditeur et du destinataire et vérifie la source et la destination des informations.

Avant de poursuivre, passons en revue le vocabulaire de base.

Glossaire :

MotSignification
CryptographieIl s’agit d’une technique permettant de sécuriser les informations et les communications en utilisant un ensemble de calculs basés sur des règles, appelés algorithmes, et certains concepts mathématiques afin que seule la bonne personne puisse les comprendre.
ChiffreUn chiffre est une méthode ou un algorithme utilisé pour crypter et décrypter des données
ChiffrementProcessus de conversion d’un texte en clair en texte chiffré
Texte en clairForme originale, non chiffrée, des données ou du texte
Texte chiffréDonnées chiffrées (forme codée des données) ou texte
DécryptageProcessus inverse consistant à reconvertir le texte chiffré en texte clair à l’aide de la clé de déchiffrement
CléUne clé est un élément d’information, généralement une séquence de bits, qui est utilisé pour contrôler le processus de cryptage et de décryptage.
Échange de clésTransfert sécurisé de clés de chiffrement entre l’expéditeur et le destinataire.
Glossaire de la cryptographie

Il existe trois types fondamentaux de cryptographie :

  1. La cryptographie à clé symétrique
  2. Cryptographie à clé asymétrique
  3. Fonction de hachage

Cryptographie à clé symétrique

La cryptographie à clé symétrique, également appelée cryptage à clé unique, est une technique de cryptage qui repose sur une clé secrète unique pour le cryptage et le décryptage des données.

Dans cette méthode, l’expéditeur et le destinataire doivent utiliser exactement la même clé secrète pour comprendre les données. Elle consiste à transformer des données normales en code secret (texte chiffré) à l’aide de la clé secrète et d’un processus mathématique spécifique.

Lorsque le destinataire, qui connaît également la clé secrète, reçoit le message codé secrètement, il peut utiliser le même processus mathématique pour le retransformer en données normales. De cette manière, le destinataire obtient l’information originale à partir du code secret.

symmmetric-cryptography
Cryptographie symétrique

Comprenons le processus à travers les étapes suivantes :

  • L’algorithme convertit le texte original (texte en clair) en texte chiffré à l’aide d’une clé secrète.
  • Ensuite, l’expéditeur envoie ce texte chiffré au destinataire par le biais d’un canal de communication. Ce canal de communication peut être privé ou public.
  • Les destinataires utilisent la même clé secrète pour décrypter ce texte chiffré et le convertir en texte original.

Ce processus de cryptage symétrique garantit la sécurité de la communication entre l’expéditeur et le destinataire. Mais la clé secrète doit être confidentielle.

Pour maintenir la confidentialité et l’intégrité, les deux parties doivent gérer et protéger cette clé secrète en toute sécurité.

Il existe deux types de chiffrements symétriques :

  1. Le chiffrement par flux
  2. Chiffre en bloc
Chiffre par fluxChiffrement par bloc
Cryptage des données par blocs de longueur fixePendant que les données sont cryptées, le système les conserve en mémoire et attend que les blocs complets soient prêts à être traités
Cryptage des données un bit ou un octet à la foisCryptage des données par blocs de longueur fixe
Utilise 8 bits de la cléUtilise 64 bits ou plus de 64 bits de la clé
Plus complexe que le chiffrement par blocsPlus simple que le chiffrement par flux
Cryptage des données par blocs de longueur fixeLent et adapté aux applications hors ligne
Utilise les modes CFB et OFBUtilise les modes ECB et CBC.
Chiffrement par flux et chiffrement par bloc

Voici quelques exemples d’algorithmes de chiffrement symétrique :

  • AES (Advanced Encryption Standard): Il est connu pour sa sécurité et son efficacité. Il est couramment utilisé pour sécuriser les données sensibles telles que la sécurité sans fil, l’informatique en nuage, la banque et le commerce électronique.
  • DES (Data Encryption Standard): Il s’agit d’une ancienne méthode de cryptage qui a été remplacée par AES et 3DES. Elle utilise une clé de 56 bits.
  • IDEA (International Data Encryption Algorithm): Il utilise une clé de 128 bits et est utilisé dans diverses applications.
  • Blowfish: Algorithme conçu pour remplacer directement le DES ou l’IDEA.
  • RC4 (Rivest Cipher 4): Développé par Ron Rivest. Il est connu pour sa simplicité et sa rapidité, mais pose des problèmes de sécurité dans certaines applications.
  • RC5 (Rivest Cipher 5): Il est conçu pour être efficace et sûr, avec une taille de bloc et une taille de clé variables.
  • RC6 (Rivest Cipher 6): Il est conçu pour améliorer la sécurité et les performances par rapport aux versions précédentes.

AES, DES, IDEA, Blowfish, RC5 et RC6 sont des chiffrements par bloc.

RC4 est un chiffrement par flux.

Avantages de la cryptographie à clé symétrique

  • Elle est plus rapide et plus efficace que la cryptographie asymétrique
  • La taille de la clé est petite, ce qui permet de générer des algorithmes de chiffrement plus puissants.
  • Il est relativement rentable de produire des clés fortes pour les algorithmes de chiffrement.
  • L’AES est l’un des algorithmes les plus sûrs.

Inconvénients de la cryptographie à clé symétrique

  • Le partage sécurisé des clés de chiffrement avec toutes les parties qui doivent communiquer en toute sécurité est un défi majeur de la cryptographie symétrique.
  • La sécurité de l’ensemble du système peut être compromise si la clé est interceptée ou compromise par un attaquant au cours de la transmission.
  • Les systèmes de cryptage symétrique nécessitent une gestion rigoureuse des clés. Cela comprend la génération, le stockage, la mise à jour et la révocation des clés. Une mauvaise gestion des clés peut entraîner des failles de sécurité.
  • Les attaquants peuvent intercepter les clés échangées sur un canal non sécurisé, ce qui compromet la communication.

Malgré ses inconvénients, lechiffrement symétrique est un élément essentiel de la cryptographie moderne et est largement utilisé dans de nombreuses applications.

De solides pratiques de gestion des clés et des méthodes sécurisées d’échange de clés peuvent aider à surmonter certains des défis de la cryptographie symétrique.

Cryptographie à clé asymétrique

La cryptographie asymétrique utilise des paires de clés – une clé privée gardée secrète et une clé publique partagée ouvertement. Vous pouvez utiliser la clé publique d’une personne pour crypter un message, et elle seule peut le décrypter à l’aide de sa clé privée.

Cette méthode renforce la sécurité numérique en permettant une communication sûre sans partage des clés secrètes, ce qui est essentiel dans notre monde en ligne.

Cette méthode est utile pour communiquer en toute sécurité, car les destinataires n’ont besoin que de votre clé publique. Elle élimine le risque de partager une clé symétrique secrète.

Ces “algorithmes à clé publique” utilisent une paire de clés pour sécuriser les données.

Voici une explication plus simple :

Symmetric-vs-Asymmetric.drawio-1
Cryptographie symétrique et asymétrique
  • Il existe deux clés. Une clé publique, à laquelle tout le monde peut accéder, et une clé privée, qui est gardée secrète.
  • La clé publique est utilisée pour crypter ou verrouiller les données.
  • La clé privée est utilisée pour décrypter ou déverrouiller les données.

Il est important de comprendre qu’il est impossible de déterminer la clé privée à partir de la clé publique. En outre, les clés publiques sont généralement liées à des identités par des organisations connues sous le nom d’autorités de certification.

Communication sécurisée L’expéditeur et le destinataire ont échangé un message sécurisé sans compromettre leurs clés privées.

Ces algorithmes reposent sur des problèmes mathématiques tels que la factorisation des nombres entiers et les logarithmes discrets pour créer des signatures numériques et établir/distribuer des clés de session, comme dans le protocole TLS.

Voici quelques exemples d’algorithmes de chiffrement asymétrique:

  • RSA (Rivest-Shamir-Adleman): RSA est l’un des algorithmes de chiffrement asymétrique les plus utilisés. Il est basé sur les propriétés mathématiques des grands nombres premiers et est couramment utilisé pour l’échange sécurisé de clés et les signatures numériques.
  • Cryptographie à courbe elliptique (ECC) : Elle est basée sur la structure algébrique des courbes elliptiques sur des champs finis. L’ECC offre l’avantage d’une taille de clé plus petite par rapport à la cryptographie non EC qui repose sur des champs de Galois ordinaires. L’ECC est principalement utilisé pour générer des nombres pseudo-aléatoires et des signatures numériques.
  • Échange de clés Diffie-Hellman : Cet algorithme est utilisé pour l’échange sécurisé de clés. Une clé créée à l’aide de cette méthode peut être utilisée pour le cryptage avec un algorithme symétrique. L’objectif principal de Diffie-Hellman est de permettre à deux parties de créer une clé secrète partagée sur un canal de communication non sécurisé.

Avantages de la cryptographie asymétrique

  • Le chiffrement asymétrique offre une sécurité plus forte que la cryptographie symétrique.
  • Le destinataire peut vérifier l’identité de l’expéditeur.
  • Le chiffrement asymétrique résout le problème lié à la distribution des clés, que j’ai mentionné dans les inconvénients de la cryptographie à clé symétrique.
  • Les destinataires du message peuvent détecter si le message a été modifié en cours de route.

Inconvénients de la cryptographie à clé asymétrique

  • Le chiffrement asymétrique est un processus plus lent que la cryptographie symétrique.
  • Le chiffrement et le déchiffrement asymétriques nécessitent davantage de ressources informatiques que la cryptographie symétrique.
  • La cryptographie asymétrique repose sur des clés publiques et privées. La gestion sécurisée de ces clés peut s’avérer complexe et difficile, en particulier dans les systèmes à grande échelle.
  • L’inconvénient potentiel le plus important de la cryptographie asymétrique est sa vulnérabilité aux ordinateurs quantiques. Les ordinateurs quantiques ont le potentiel de résoudre certains problèmes mathématiques, comme la factorisation des nombres entiers et les logarithmes discrets, beaucoup plus efficacement que les ordinateurs classiques.

Mais ne vous inquiétez pas, les organisations et les chercheurs travaillent à la transition vers ces techniques cryptographiques résistantes à l’informatique quantique.

Passons maintenant au type de cryptographie suivant :

Fonction de hachage

Les fonctions de hachage cryptographique sont différentes des autres types de cryptographie. Elles ne chiffrent pas les données. Au contraire, elles utilisent des mathématiques complexes pour transformer n’importe quelle donnée en un code unique composé de lettres et de chiffres.

Ces codes sont appelés codes de hachage, valeurs de hachage ou condensés de messages. Ils sont importants pour vérifier la sécurité des données. Lorsque des données sont envoyées ou stockées, leur code de hachage est calculé et envoyé ou conservé avec les données.

Le destinataire peut recalculer le code des données qu’il a reçues et le comparer à celui qui a été envoyé. Si les codes correspondent, cela signifie que les données sont restées en sécurité pendant la transmission et le stockage.

Voici une explication simple, étape par étape :

Hash-Function-new.drawio-1
Fonction de hachage

Côté expéditeur :

  1. L’expéditeur utilise une fonction de hachage pour créer une valeur de hachage unique pour les données fournies.
  2. Après avoir créé les valeurs de hachage, l’expéditeur envoie le message original et le code de hachage au destinataire par un canal non sécurisé.

Côté récepteur :

  1. Le destinataire reçoit le message et le code de hachage.
  2. Il utilise également le même outil spécial (fonction de hachage) pour créer un nouveau code de hachage pour le message reçu.
  3. Le destinataire compare le nouveau code de hachage avec celui envoyé par l’expéditeur.

Résultat :

  • Si les codes de hachage correspondent, cela signifie que le message n’a pas été modifié pendant la transmission et qu’il est considéré comme sûr.
  • Si les codes de hachage ne correspondent pas, cela signifie que le message a pu être modifié et qu’il n’est pas considéré comme sûr.

Voici quelques-unes des propriétés qui rendent les fonctions de hachage utiles :

Propriétés des fonctions de hachage :

  1. Déterministe : si vous donnez la même entrée, elle produira toujours la même sortie.
  2. Uniformité et absence de collision : Une bonne fonction de hachage doit produire des sorties uniformément réparties. Cela permet d’éviter les collisions.
  3. Efficace : Les fonctions de hachage sont conçues pour être efficaces en termes de calcul, ce qui leur permet de traiter rapidement de grandes quantités de données.
  4. Sortie de taille fixe : Elle produit une sortie de taille fixe, quelle que soit la taille de l’entrée. Cette propriété est essentielle car elle permet un stockage et une récupération efficaces des données.

Les fonctions de hachage ont de nombreuses applications en informatique et en sécurité de l’information, notamment la cryptographie, la vérification de l’intégrité des données, l’indexation des données, l’empreinte digitale des données, le stockage des mots de passe, la criminalistique numérique et la blockchain.

Les fonctions de hachage cryptographiques les plus couramment utilisées sont les suivantes :

Il existe deux familles de fonctions de hachage cryptographiques largement utilisées : la famille MD (MD = message digest) et la famille SHA (SHA = secure hash algorithm).

  • SHA-1 (Secure Hash Algorithm 1) : C’était l’une des fonctions de hachage les plus populaires. Cependant, SHA-1 est aujourd’hui considéré comme faible en raison de vulnérabilités qui permettent des attaques par collision pratiques. Il n’est plus utilisé pour la plupart des applications de sécurité.
  • MD5 (Message Digest Algorithm 5) : Le MD5 était populaire dans le passé, mais il est aujourd’hui considéré comme faible en raison de vulnérabilités liées aux collisions. Il n’est généralement pas utilisé pour les applications sensibles sur le plan de la sécurité.
  • SHA-3 : SHA-3 est une nouvelle famille de fonctions de hachage sélectionnée à l’issue d’un concours par le National Institute of Standards and Technology (NIST). Elle offre une grande sécurité et est conçue pour résister à certains types d’attaques.

Même si les fonctions de hachage ne chiffrent pas les messages, elles font partie intégrante de la cryptographie car elles jouent un rôle crucial dans la sécurisation et l’authentification des données, qui sont des objectifs clés de la cryptographie.

Avantages de la fonction de hachage

  • Une fonction de hachage sécurisée garantit une résistance élevée aux collisions.
  • Le hachage permet de comparer facilement l’égalité de deux fichiers.
  • Les fonctions de hachage sont incroyablement rapides et efficaces.
  • Dans les SGBD, le hachage est utilisé pour rechercher l’emplacement des données sans utiliser de structure d’index.

Inconvénients de la fonction de hachage

  • Les fonctions de hachage peuvent être moins efficaces lorsqu’il y a de nombreuses collisions.
  • Les valeurs nulles ne sont pas autorisées.
  • La mise en œuvre des tables de hachage peut être une tâche difficile en raison de leur complexité.
  • Dans la pratique, il est presque impossible d’éviter totalement les collisions de hachage lorsqu’on a affaire à un grand nombre de clés potentielles.

Lisez aussi : Comment se protéger d’une attaque par table arc-en-ciel ?

applications-of-cryptography-geekflare

Applications réelles de la cryptographie

  • Authentification/signatures numériques: L’authentification est le processus vital de confirmation de l’authenticité des données, de vérification de la source d’un document, de validation de l’identité de l’expéditeur, de l’exactitude de l’horodatage et de garantie de la légitimité des identités de l’ordinateur ou de l’utilisateur. Les signatures numériques utilisent des méthodes cryptographiques qui impliquent une fonction de hachage et une clé privée pour valider et signer des documents en toute sécurité.
  • Cryptage du stockage en nuage: La cryptographie est utilisée pour sécuriser les fichiers stockés dans le nuage et pendant la transmission vers et depuis les services du nuage.
  • Monnaie électronique: La monnaie électronique implique des transferts de fonds électroniques entre les parties, qui peuvent être de débit ou de crédit, et qui peuvent être anonymes ou identifiés. Elle utilise le cryptage, les signatures numériques et la cryptographie à clé publique pour la sécurité, ce qui permet différents types de transactions.
  • Cryptage/décryptage du courrier électronique: Le cryptage du courrier électronique permet de protéger le contenu du courrier électronique contre tout accès non autorisé à l’aide de la cryptographie à clé publique. Chaque utilisateur dispose d’une paire de clés publique et privée, la clé publique étant utilisée pour le cryptage et seule la clé privée pouvant décrypter le message.
  • Chiffrement dans WhatsApp: WhatsApp utilise le protocole de signal pour le chiffrement, combinant la cryptographie à clé symétrique et asymétrique pour la confidentialité, l’intégrité, l’authentification et la non-répudiation. Des algorithmes basés sur la courbe25519 sont utilisés pour l’échange de clés.
  • Cryptage sur Instagram: Les communications Instagram sont chiffrées à l’aide de SSL/TLS sur le port 443, ce qui empêche l’écoute des données échangées entre l’utilisateur et les serveurs Instagram.
  • Authentification de la carte SIM : L’authentification de la carte SIM consiste à vérifier l’accès de la carte SIM au réseau en générant un numéro aléatoire et en appliquant des algorithmes tels que A3 avec la clé secrète Ki. Le cryptage repose sur l’algorithme A8 et la clé de session KC, utilisée avec l’algorithme A5 pour le cryptage/décryptage des données.
challenges-in-cryptography-geekflare

Les défis de la cryptographie

  • La gestion des clés reste un défi, car il est complexe de distribuer et de gérer les clés de chiffrement en toute sécurité, en particulier dans les systèmes à grande échelle. Les mécanismes de stockage et de récupération des clés doivent être robustes.
  • La cryptographie symétrique peut devenir inefficace lorsque de nombreux utilisateurs doivent communiquer en toute sécurité. Chaque paire d’utilisateurs a besoin d’une clé unique, ce qui peut devenir difficile à gérer lorsque le nombre d’utilisateurs augmente.
  • La cryptographie asymétrique nécessite généralement des clés plus longues que la cryptographie symétrique pour atteindre le même niveau de sécurité. Cela peut entraîner un ralentissement du traitement et une augmentation des besoins en ressources.
  • La découverte de vulnérabilités ou de faiblesses dans les fonctions de hachage peut entraîner des failles de sécurité. La communauté cryptographique doit continuellement analyser et adapter les fonctions de hachage afin d’atténuer ces risques.
  • Dans les applications où les fonctions de hachage sont utilisées pour le stockage des mots de passe, un salage approprié des mots de passe est nécessaire pour prévenir les attaques par table arc-en-ciel. Le défi consiste à s’assurer que les sels sont uniques et secrets.
  • L’émergence de l’informatique quantique pose un défi important au monde de la cryptographie. Les ordinateurs quantiques sont exceptionnellement rapides pour résoudre des problèmes mathématiques spécifiques, tirant parti des principes particuliers de la physique quantique pour leurs extraordinaires prouesses de calcul.

Cette rapidité menace les fondements de nos systèmes cryptographiques actuels, qui reposent sur la complexité de certains défis mathématiques pour garantir la sécurité des données. Les ordinateurs quantiques ont la capacité de résoudre ces problèmes beaucoup plus rapidement que les ordinateurs conventionnels, ce qui pourrait compromettre la sécurité de nos méthodes de cryptage.

Les principes sous-jacents de la mécanique quantique utilisés par les ordinateurs quantiques sont en effet inhabituels, mais ils leur permettent d’accomplir des tâches qui sont hors de portée des ordinateurs classiques.

Par conséquent, la nécessité de développer de nouvelles techniques cryptographiques capables de résister aux attaques quantiques se fait de plus en plus pressante, ce qui constitue un défi permanent dans le domaine de la cryptographie.

  • Le développement et l’adoption d’algorithmes de cryptographie post-quantique résistants aux attaques quantiques constitueront une tendance importante. Des algorithmes tels que la cryptographie basée sur les treillis sont à l’étude.
  • Le chiffrement et la gestion des clés basés sur l’informatique dématérialisée sont de plus en plus acceptés, en particulier dans le secteur financier. Le chiffrement homomorphique permet d’effectuer des calculs sur des données chiffrées sans les décrypter. Cela peut améliorer la confidentialité dans l’informatique en nuage et le traitement des données.
  • La cryptographie joue un rôle crucial dans la sécurisation de la technologie blockchain, et les deux continueront d’être imbriqués à l’avenir.
  • Avec le renforcement des réglementations en matière de protection des données, telles que le GDPR, la tokenisation est utilisée plus fréquemment dans les soins de santé, les services financiers et les entreprises. La tokenisation remplace les données réelles par un jeton qui n’a aucune valeur pour les pirates.

Le mot de la fin

La cryptographie est un vaste domaine qui offre beaucoup à explorer, et nous n’avons fait qu’effleurer la surface en couvrant les bases de la cryptographie.

Nous avons abordé la cryptographie, ses principes, les types de cryptographie, les fonctions de hachage, les défis, les tendances futures et les applications pratiques.

Mais il reste encore beaucoup à découvrir.

Prochainement, Cryptographie dans le nuage : guide d’introduction et étude de cas Google Cloud.