La cryptographie est une discipline essentielle dédiée à la protection des informations et des communications. Elle emploie un ensemble de calculs régis par des algorithmes et s’appuie sur des concepts mathématiques pour assurer que seules les personnes autorisées puissent accéder aux données.
Son rôle est de prévenir toute intrusion non autorisée dans les données sensibles.
Le terme « cryptographie » tire son origine du grec « kryptos », signifiant caché. Ainsi, « crypto » fait référence à « caché », tandis que « graphie » désigne l' »écriture ».
Dans cet article, nous allons explorer les fondements de la cryptographie, en examinant divers types, en illustrant avec des exemples, en abordant les enjeux et en anticipant les évolutions futures. Notre objectif est de fournir une vue d’ensemble complète, en couvrant les concepts principaux comme les détails plus spécifiques.
La cryptographie assure la sécurité des communications et des informations numériques dans de multiples systèmes et applications, garantissant la confidentialité et la protection des données contre tout accès illégitime.
Décortiquons le fonctionnement de la cryptographie :
- L’expéditeur initie le processus avec un message ou des données à transmettre.
- Le texte clair (message original) est ensuite transformé en un format illisible par une opération appelée chiffrement.
- Le destinataire utilise une clé pour reconvertir le texte chiffré (format illisible) en un format compréhensible, un processus nommé déchiffrement.
- Le message déchiffré est alors redevenu du texte clair, identique au message initialement envoyé par l’expéditeur.
- Le destinataire reçoit ainsi le message d’origine.
Examinons maintenant les principes fondamentaux de la cryptographie.
Principes de base de la cryptographie
Il existe quatre piliers fondamentaux de la cryptographie :
1. Confidentialité : Seul le destinataire prévu a accès aux informations, qui demeurent secrètes pour les autres.
2. Intégrité : Les informations ne doivent pas être altérées durant leur stockage ou leur transmission, et toute modification doit être détectable.
3. Non-répudiation : L’expéditeur ne peut pas nier avoir envoyé les informations.
4. Authentification : Elle vérifie l’identité de l’expéditeur et du destinataire, validant ainsi la source et la destination des informations.
Avant d’aller plus loin, clarifions certains termes essentiels.
Lexique :
Terme | Définition |
Cryptographie | Méthode pour sécuriser informations et communications via algorithmes et concepts mathématiques, assurant l’accès exclusif aux personnes autorisées. |
Chiffre | Algorithme utilisé pour chiffrer et déchiffrer des données. |
Chiffrement | Processus de conversion du texte clair en texte chiffré. |
Texte clair | Forme originale et non chiffrée de données ou de texte. |
Texte chiffré | Données chiffrées (forme codée des données) ou texte. |
Déchiffrement | Processus inverse de conversion du texte chiffré en texte clair à l’aide d’une clé de déchiffrement. |
Clé | Information, souvent une séquence de bits, contrôlant le processus de chiffrement et de déchiffrement. |
Échange de clés | Transfert sécurisé des clés de chiffrement entre l’expéditeur et le destinataire. |
Il existe trois grandes catégories de cryptographie :
- Cryptographie symétrique
- Cryptographie asymétrique
- Fonctions de hachage
Cryptographie à clé symétrique
La cryptographie à clé symétrique, aussi appelée chiffrement à clé unique, emploie une seule clé secrète pour chiffrer et déchiffrer les données.
Dans cette approche, l’expéditeur et le destinataire utilisent la même clé secrète pour interpréter les données. Elle transforme les données brutes en un code secret (texte chiffré) à l’aide de la clé et d’un processus mathématique spécifique.
Le destinataire, connaissant également la clé, utilise le même processus mathématique pour restaurer les données à leur forme originale. Il obtient ainsi les informations initiales à partir du code secret.
Cryptographie symétrique
Voici les étapes du processus :
- Un algorithme utilise une clé secrète pour convertir le texte clair en texte chiffré.
- L’expéditeur transmet ce texte chiffré au destinataire via un canal de communication, qu’il soit privé ou public.
- Le destinataire déchiffre le texte chiffré avec la même clé, le restaurant ainsi en texte clair.
Ce mécanisme assure la sécurité de la communication, mais exige la confidentialité de la clé secrète.
Les deux parties doivent gérer et protéger cette clé avec soin pour maintenir la confidentialité et l’intégrité des échanges.
Les chiffrements symétriques se divisent en deux types :
- Chiffrement par flux
- Chiffrement par bloc
Chiffrement par flux | Chiffrement par bloc |
Crypte les données bit par bit ou octet par octet. | Crypte les données en blocs de longueur fixe. |
Les données sont chiffrées au fur et à mesure, sans attendre que des blocs entiers soient remplis. | Le système attend que les blocs soient complets avant de les traiter. |
Utilise 8 bits de la clé. | Utilise une clé de 64 bits ou plus. |
Plus complexe que le chiffrement par bloc. | Plus simple que le chiffrement par flux. |
Lent et adapté aux applications hors ligne. | Utilise les modes ECB et CBC. |
Utilise les modes CFB et OFB. |
Exemples d’algorithmes de chiffrement symétrique :
- AES (Advanced Encryption Standard) : Apprécié pour sa sécurité et son efficacité, il protège les données sensibles telles que la sécurité sans fil, le cloud, les transactions bancaires et le commerce électronique.
- DES (Data Encryption Standard) : Une méthode ancienne remplacée par AES et 3DES. Elle utilise une clé de 56 bits.
- IDEA (International Data Encryption Algorithm) : Il emploie une clé de 128 bits et est utilisé dans diverses applications.
- Blowfish : Conçu pour remplacer DES ou IDEA.
- RC4 (Rivest Cipher 4) : Connu pour sa simplicité et sa rapidité, mais présentant des faiblesses de sécurité dans certaines implémentations.
- RC5 (Rivest Cipher 5) : Conçu pour l’efficacité et la sécurité, avec des tailles de bloc et de clé variables.
- RC6 (Rivest Cipher 6) : Améliore la sécurité et les performances par rapport aux versions antérieures.
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 petite taille des clés permet de générer des chiffres plus puissants.
- La production de clés robustes pour le chiffrement est relativement économique.
- AES est un algorithme réputé sûr.
Inconvénients de la cryptographie à clé symétrique
- Le partage sécurisé des clés entre les parties communicantes est un défi majeur.
- La sécurité du système est menacée si la clé est interceptée par un attaquant.
- Les systèmes exigent une gestion rigoureuse des clés (génération, stockage, mise à jour, révocation). Une mauvaise gestion peut engendrer des failles de sécurité.
- Les attaquants peuvent intercepter les clés échangées sur un canal non sécurisé, compromettant la communication.
Malgré ces inconvénients, le chiffrement symétrique est une composante clé de la cryptographie moderne, largement utilisée dans de nombreuses applications.
Des pratiques solides de gestion des clés et des méthodes d’échange sécurisées permettent de surmonter certains défis.
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. La clé publique permet de chiffrer un message, qui ne peut être déchiffré qu’avec la clé privée correspondante.
Cette méthode améliore la sécurité numérique en permettant une communication sécurisée sans partage de clés secrètes, ce qui est essentiel dans le monde en ligne.
Elle est avantageuse pour une communication sécurisée, car les destinataires n’ont besoin que de votre clé publique, éliminant ainsi le risque lié au partage d’une clé secrète.
Ces algorithmes « à clé publique » utilisent une paire de clés pour sécuriser les données.
Voici une explication simplifiée :
Cryptographie symétrique ou asymétrique
- Il y a deux clés : une publique, accessible à tous, et une privée, gardée secrète.
- La clé publique sert à chiffrer ou verrouiller les données.
- La clé privée sert à déchiffrer ou déverrouiller les données.
Il est essentiel de comprendre que la clé privée ne peut être déduite de la clé publique. Les clés publiques sont souvent liées aux identités par des organisations appelées autorités de certification.
La communication sécurisée permet aux parties d’échanger des messages sans compromettre leurs clés privées.
Ces algorithmes reposent sur des problèmes mathématiques, tels que la factorisation entière et les logarithmes discrets, pour créer des signatures numériques et établir/distribuer des clés de session, comme dans le protocole TLS.
Exemples d’algorithmes de chiffrement asymétrique :
- RSA (Rivest-Shamir-Adleman) : Un des algorithmes les plus utilisés, basé sur les propriétés mathématiques des grands nombres premiers. Il est couramment employé pour l’échange sécurisé de clés et les signatures numériques.
- Cryptographie de courbe elliptique (ECC) : Basée sur la structure algébrique de courbes elliptiques sur des champs finis. ECC offre l’avantage de clés plus courtes par rapport à la cryptographie non-EC. ECC est principalement utilisée pour générer des nombres pseudo-aléatoires et des signatures numériques.
- Échange de clés Diffie-Hellman : Utilisé pour l’échange sécurisé de clés. Une clé créée avec cette méthode peut être utilisée pour le chiffrement avec un algorithme symétrique. Son objectif est de permettre à deux parties de créer une clé secrète partagée via un canal non sécurisé.
Avantages de la cryptographie asymétrique
- Elle offre une sécurité plus élevée que la cryptographie symétrique.
- Le destinataire peut vérifier l’identité de l’expéditeur.
- Elle résout le problème de la distribution des clés, posé par la cryptographie symétrique.
- Les destinataires du message peuvent détecter toute modification du message durant la transmission.
Inconvénients de la cryptographie à clé asymétrique
- Le chiffrement asymétrique est plus lent que la cryptographie symétrique.
- Le chiffrement et le déchiffrement nécessitent plus de ressources informatiques que la cryptographie symétrique.
- La gestion des clés publiques et privées peut être complexe, notamment dans les systèmes à grande échelle.
- Elle est vulnérable aux ordinateurs quantiques, qui pourraient résoudre les problèmes mathématiques sur lesquels elle repose beaucoup plus rapidement que les ordinateurs classiques.
Cependant, des recherches sont en cours pour développer des techniques cryptographiques résistantes aux attaques quantiques.
Passons à la catégorie suivante :
Fonction de hachage
Les fonctions de hachage cryptographiques sont différentes des autres types. Elles ne chiffrent pas les données, mais les transforment en un code unique, composé de lettres et de chiffres, en utilisant des mathématiques complexes.
Ces codes sont appelés codes de hachage, valeurs de hachage ou résumés de message. Ils permettent de vérifier la sécurité des données. Quand des données sont envoyées ou stockées, leur code de hachage est calculé et transmis ou conservé avec les données.
Le destinataire peut recalculer le code des données reçues et le comparer à celui envoyé. La correspondance des codes indique que les données n’ont pas été altérées durant la transmission et le stockage.
Voici une explication pas à pas :
Fonction de hachage
Côté expéditeur :
- L’expéditeur utilise une fonction de hachage pour créer une valeur de hachage unique des données.
- Après avoir créé la valeur de hachage, l’expéditeur envoie le message original et le code de hachage au destinataire via un canal non sécurisé.
Côté récepteur :
- Le destinataire reçoit le message et le code de hachage.
- Il utilise la même fonction de hachage pour générer un nouveau code de hachage pour le message reçu.
- Il compare ensuite ce nouveau code de hachage avec celui envoyé par l’expéditeur.
Résultat :
- La correspondance des codes de hachage indique que le message n’a pas été modifié durant la transmission.
- La non-correspondance suggère que le message a peut-être été altéré.
Les propriétés qui rendent les fonctions de hachage utiles :
Propriétés de la fonction de hachage :
- Déterministe : une même entrée produit toujours le même résultat.
- Uniformité et absence de collision : une bonne fonction de hachage doit produire des sorties uniformément distribuées pour éviter les collisions.
- Efficacité : les fonctions de hachage sont conçues pour être rapides et traiter de grandes quantités de données.
- Sortie de taille fixe : elle produit une sortie de taille fixe, quelle que soit la taille de l’entrée. Ceci est essentiel pour un stockage et une récupération efficace des données.
Les fonctions de hachage ont de nombreuses applications en informatique et en sécurité de l’information, notamment dans la cryptographie, la vérification de l’intégrité des données, l’indexation, le stockage des mots de passe, la criminalistique numérique et la blockchain.
Les fonctions de hachage cryptographiques courantes comprennent :
Il existe deux familles de fonctions de hachage largement utilisées : la famille MD et la famille SHA.
- SHA-1 (Secure Hash Algorithm 1) : Était l’une des fonctions de hachage les plus populaires. Cependant, elle est maintenant considérée comme faible en raison de vulnérabilités qui permettent des attaques par collision. Elle n’est plus utilisée dans la plupart des applications de sécurité.
- MD5 (Message Digest Algorithm 5) : Était populaire, mais est maintenant considérée comme faible à cause de vulnérabilités. Elle n’est généralement pas utilisée pour les applications sensibles en matière de sécurité.
- SHA-3 : Nouvelle famille de fonctions de hachage sélectionnées lors d’un concours organisé par le National Institute of Standards and Technology (NIST). Elle offre une sécurité renforcée et est conçue pour résister à certains types d’attaques.
Bien que les fonctions de hachage ne chiffrent pas les messages, elles sont indispensables à la cryptographie, car elles jouent un rôle essentiel dans la protection et l’authentification des données.
Avantages de la fonction de hachage
- Une fonction de hachage sécurisée garantit une résistance élevée aux collisions.
- L’égalité de deux fichiers peut être facilement vérifiée par le hachage.
- Les fonctions de hachage sont extrêmement rapides et efficaces.
- Dans les SGBD, le hachage est utilisé pour rechercher l’emplacement des données sans structure d’index.
Inconvénients de la fonction de hachage
- Les fonctions de hachage peuvent être moins efficaces en cas de nombreuses collisions.
- Aucune valeur nulle n’est autorisée.
- La mise en œuvre de tables de hachage peut être complexe.
- Il est impossible d’empêcher entièrement les collisions de hachage lorsqu’il s’agit d’un grand ensemble de clés potentielles.
À lire aussi : Comment se protéger d’une attaque de Rainbow Table
Applications concrètes de la cryptographie
- Authentification/Signatures numériques : l’authentification confirme l’authenticité des données, vérifie la source d’un document, valide l’identité de l’expéditeur et l’exactitude de l’horodatage, et garantit la légitimité de l’identité de l’ordinateur ou de l’utilisateur. Les signatures numériques, utilisant des méthodes cryptographiques impliquant une fonction de hachage et une clé privée, valident et signent les documents en toute sécurité.
- Cryptage du stockage dans le cloud : la cryptographie sécurise les fichiers stockés dans le cloud et lors de leur transmission vers et depuis les services cloud.
- Monnaie électronique : implique des transferts électroniques de fonds entre parties, qui peuvent être débiteurs ou créditeurs, et anonymes ou identifiés. Elle utilise le chiffrement, les signatures numériques et la cryptographie à clé publique pour la sécurité, permettant ainsi divers types de transactions.
- Cryptage/déchiffrement des e-mails : le cryptage des e-mails sécurise leur contenu contre tout accès non autorisé à l’aide de la cryptographie à clé publique. Chaque utilisateur a une paire de clés publique et privée, la publique étant utilisée pour le cryptage, et la privée pour le déchiffrement.
- Cryptage dans WhatsApp : WhatsApp utilise le protocole Signal pour le cryptage, combinant cryptographie symétrique et asymétrique pour la confidentialité, l’intégrité, l’authentification et la non-répudiation. Des algorithmes basés sur Curve25519 sont utilisés pour l’échange de clés.
- Cryptage sur Instagram : La communication Instagram est cryptée via SSL/TLS sur le port 443, empêchant ainsi l’écoute clandestine des données échangées entre l’utilisateur et les serveurs Instagram.
- Authentification de la carte SIM : L’authentification de la carte SIM vérifie son accès au réseau en générant un nombre aléatoire et en utilisant des algorithmes comme A3 avec la clé secrète Ki. Le chiffrement repose sur l’algorithme A8 et la clé de session KC, utilisés avec l’algorithme A5 pour le chiffrement/déchiffrement des données.
Les défis de la cryptographie
- La gestion des clés reste un défi, car leur distribution et leur gestion sécurisée sont complexes, surtout 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 quand de nombreux utilisateurs doivent communiquer en toute sécurité, chaque paire d’utilisateurs nécessitant une clé unique, ce qui peut être lourd à gérer.
- La cryptographie asymétrique nécessite généralement des clés plus longues pour atteindre le même niveau de sécurité, ce qui peut entraîner des traitements plus lents et des besoins en ressources accrus.
- La découverte de vulnérabilités ou de faiblesses dans les fonctions de hachage peut engendrer des failles de sécurité. La communauté cryptographique doit analyser et adapter continuellement ces fonctions pour atténuer ces risques.
- Dans les applications où les fonctions de hachage sont utilisées pour stocker les mots de passe, un salage approprié est nécessaire pour empêcher les attaques par table arc-en-ciel. Il est crucial que les sels soient uniques et secrets.
- L’émergence de l’informatique quantique pose un défi majeur. Les ordinateurs quantiques, grâce aux principes de la physique quantique, sont exceptionnellement rapides pour résoudre des problèmes mathématiques spécifiques.
Cette rapidité menace les fondations des systèmes cryptographiques actuels, qui reposent sur la complexité de certains problèmes mathématiques. Les ordinateurs quantiques ont la capacité de résoudre ces problèmes plus rapidement que les ordinateurs classiques, compromettant potentiellement nos méthodes de chiffrement.
Les principes de la mécanique quantique donnent aux ordinateurs quantiques un pouvoir de calcul inédit.
Il est donc crucial de développer de nouvelles techniques cryptographiques capables de résister aux attaques quantiques, ce qui représente un défi permanent.
Tendances futures de la cryptographie
- Le développement et l’adoption d’algorithmes de cryptographie post-quantique, résistant aux attaques quantiques, constituent une tendance importante. Les algorithmes basés sur un réseau sont en cours d’étude.
- Le chiffrement et la gestion des clés basés sur le cloud sont de plus en plus acceptés, notamment dans le secteur financier. Le chiffrement homomorphe permet des calculs sur des données chiffrées sans les déchiffrer, améliorant la confidentialité dans le cloud computing et le traitement des données.
- La cryptographie joue un rôle essentiel dans la sécurisation de la technologie blockchain, et les deux continueront d’être étroitement liées à l’avenir.
- Avec le renforcement des réglementations en matière de protection des données, la tokenisation est utilisée plus fréquemment dans les soins de santé, les services financiers et les entreprises. Elle remplace les données réelles par un jeton sans valeur pour les pirates.
Derniers mots
La cryptographie est un vaste domaine, et cet aperçu n’a fait qu’effleurer sa surface en abordant ses fondements.
Nous avons exploré la cryptographie, ses principes, ses types, les fonctions de hachage, ses défis, ses tendances futures et ses applications pratiques.
Il reste encore beaucoup à découvrir.
Ensuite, Cryptographie Cloud : un guide d’introduction et une étude de cas Google Cloud.