Chiffrement
Le principal objectif du chiffrement consiste à garantir la confidentialité des données numériques stockées sur des systèmes informatiques ou transmises via Internet ou d’autres réseaux. Les algorithmes de chiffrement modernes jouent un rôle crucial dans la sécurité des systèmes informatiques et des communications, car ils assurent non seulement la confidentialité, mais également les éléments de sécurité essentiels suivants :
- Authentification : permet de vérifier l’origine d’un message.
- Intégrité : apporte la preuve que le contenu d’un message n’a pas été modifié depuis son envoi.
- Non-répudiation : empêche l’expéditeur d’un message de nier avoir envoyé ce message.
Historique du chiffrement
Le chiffrement relève de la cryptographie, terme dérivé du grec kryptos, signifiant caché ou secret.
L’utilisation du chiffrement est aussi ancienne que l’art de la communication elle-même. Déjà en 1900 av. J.-C., un scribe égyptien utilisait des hiéroglyphes non standard pour masquer la signification d’une inscription. À une époque où très peu de gens savaient lire, il suffisait souvent de rédiger un message écrit, mais des systèmes de chiffrement se sont rapidement développés, convertissant les messages en groupes illisibles de chiffres afin d’en protéger la confidentialité pendant leur transport d’un point à un autre. Le contenu d’un message était réorganisé (transposition) ou remplacé (substitution) par d’autres caractères, symboles, chiffres ou images, afin d’en dissimuler le sens.
En 700 av. J.-C., les Spartiates écrivaient des messages confidentiels sur des lanières de cuir enroulées autour de bâtons. Une fois la bandelette déroulée, la suite de caractères n’avait plus aucun sens, mais en utilisant un bâton du même diamètre, le destinataire pouvait recréer (déchiffrer) le message.
Par la suite, les Romains utilisèrent ce qu’on a appelé le chiffre de César, ou chiffrement par décalage, un code monoalphabétique dans lequel chaque lettre est remplacée par une autre, située à une distance fixe dans l’alphabet. Par exemple, si la distance convenue est de trois positions, le message, « Soyez là à six heures » deviendrait « Vrbhc od d vla khxuhv ». À première vue, cela peut sembler difficile à déchiffrer, mais il ne faut pas très longtemps pour juxtaposer le début de l’alphabet jusqu’à ce que les lettres aient un sens. En outre, on peut rapidement déduire les voyelles et les autres lettres couramment utilisées comme le T et le S par une analyse de fréquences. Ces informations peuvent ensuite servir à déchiffrer le reste du message.
Le Moyen Âge a vu l’émergence de la substitution polyalphabétique, qui utilise plusieurs alphabets de substitution, limitant ainsi l’utilisation de l’analyse de fréquences pour déchiffrer un code. Cette méthode de chiffrement est restée populaire malgré de nombreuses mises en œuvre qui ne masquaient pas correctement le changement de substitution, ou progression de la clé. La plus célèbre mise en œuvre d’un chiffre de substitution polyalphabétique est sans doute la machine électromécanique à cylindre Enigma utilisée par les Allemands pendant la Seconde Guerre mondiale.
C’est cependant au milieu des années 1970 que le chiffrement a fait un véritable bond en avant. Jusqu’à cette époque, en effet, tous les systèmes de chiffrement utilisaient le même code secret pour chiffrer et déchiffrer un message : une clé symétrique.
En 1976, l’article de B. Whitfield Diffie et Martin Hellman intitulé « New Directions in Cryptography » a résolu l’un des problèmes fondamentaux de la cryptographie, c’est-à-dire comment communiquer de façon sûre la clé de chiffrement à ceux qui en ont besoin. Cette avancée a été peu après suivie par RSA, une mise en œuvre cryptographique à clé publique utilisant des algorithmes asymétriques, ce qui a ouvert une nouvelle ère dans le chiffrement.
Utilisation actuelle du chiffrement
Jusqu’à l’avènement de l’échange de clés Diffie-Hellman et des algorithmes RSA, les États et leurs armées étaient les seuls à utiliser véritablement le chiffrement.
Cependant, les mécanismes Diffie-Hellman et RSA ont contribué à répandre le chiffrement dans les domaines commerciaux et grand public dans le but de protéger les données tant pendant leur envoi sur un réseau (données en transit) que pendant leur stockage, par exemple sur un disque dur, un smartphone ou une clé USB (données au repos).
Des dispositifs tels que modems, décodeurs, cartes à puce et cartes SIM utilisent tous le chiffrement ou dépendent de protocoles tels que SSH, S/MIME et SSL/TLS pour chiffrer les données sensibles.
Le chiffrement permet de protéger les données en transit envoyées depuis une multitude d’appareils sur toutes sortes de réseaux, pas seulement Internet ; que ce soit lors de l’utilisation d’un guichet automatique, d’un achat en ligne à l’aide d’un smartphone, d’un appel téléphonique mobile ou de l’ouverture d’un véhicule avec une clé électronique, le chiffrement protège les informations transmises.
Les systèmes de gestion de droits numériques, qui empêchent toute utilisation non autorisée ou reproduction de documents sous copyright, constituent encore un exemple de chiffrement protégeant des données.
Fonctionnement du chiffrement
Les données, souvent désignées comme texte en clair, sont chiffrées à l’aide d’un algorithme et d’une clé de chiffrement. Ce processus génère un texte chiffré, ou cryptogramme, qui ne peut être affiché dans sa forme d’origine que s’il est déchiffré à l’aide de la bonne clé.
Le déchiffrement est simplement le contraire du chiffrement, suivant les mêmes étapes, mais dans l’ordre inverse de l’application des clés. Les algorithmes de chiffrement actuels relèvent de deux catégories : symétriques et asymétriques.
Les cryptogrammes symétriques utilisent la même clé, ou le même code secret, pour le chiffrement et le déchiffrement d’un message ou fichier. Le plus couramment utilisé est AES, créé à l’origine pour protéger les informations confidentielles du gouvernement des États-Unis. Le chiffrement à clé symétrique est beaucoup plus rapide que son homologue asymétrique, mais l’expéditeur doit échanger la clé utilisée pour chiffrer les données avec le destinataire pour que ce dernier puisse les déchiffrer.
Dans la mesure où il y a obligation de distribuer et de gérer en toute sécurité de grands nombres de clés, les processus cryptographiques utilisent généralement un algorithme symétrique pour chiffrer efficacement les données, mais un algorithme asymétrique pour échanger la clé secrète.
La cryptographie asymétrique, également appelée cryptographie à clé publique, utilise deux clés différentes, mais mathématiquement liées, une publique et l’autre privée.
La clé publique peut être partagée avec quiconque, tandis que la clé privée doit rester secrète. RSA est l’algorithme asymétrique le plus répandu, notamment parce que tant la clé publique que la clé privée peuvent servir à chiffrer un message. Dans ce cas, c’est la clé opposée à celle ayant servi au chiffrement qui est utilisée pour le déchiffrement. Cette caractéristique offre une méthode permettant d’assurer non seulement la confidentialité, mais aussi l’intégrité, l’authenticité et la non-répudiabilité des communications électroniques et des données au repos, par le biais de signatures électroniques.
Fonctions de hachage cryptographique
Une fonction de hachage joue un rôle quelque peu différent des autres algorithmes cryptographiques. Les fonctions de hachage sont largement utilisées dans de nombreux domaines de la sécurité, tels que les signatures numériques et les contrôles d’intégrité des données.
Elles consistent à prendre un fichier électronique, un message ou un bloc de données et à générer une empreinte numérique courte du contenu, appelée également condensé de message ou valeur de hachage. Les propriétés principales d’une fonction de hachage cryptographique sont les suivantes :
- Longueur de la sortie réduite par rapport à l’entrée
- Calcul rapide et efficace, quelle que soit l’entrée
- Toute modification de l’entrée affecte de nombreux bits de sortie
- Valeur unidirectionnelle : l’entrée ne peut pas être déduite de la sortie
- Forte résistance à la collision : deux entrées différentes ne peuvent pas créer la même sortie
En 2012, le National Institute of Standards and Technology (NIST) a désigné Keccak comme gagnant de son concours de hachage cryptographique (Cryptographic Hash Algorithm Competition) qui visait à sélectionner un algorithme de nouvelle génération. L’algorithme Keccak (prononcer « ketchak ») sera connu sous le nom de SHA-3 et viendra compléter les algorithmes SHA-1 et SHA-2 définis dans la norme FIPS 180-4, Secure Hash Standard. Pour l’instant, bien que le concours ait été organisé à la suite d’attaques réussies contre les algorithmes MD5 et SHA-0 et de l’émergence d’attaques théoriques contre le SHA-1, le NIST affirme que le SHA-2 est toujours sûr et adapté à un usage général.
Les cryptogrammes des fonctions de hachage sont élaborés spécifiquement pour cette opération : ils utilisent des clés et des blocs de grande taille, peuvent changer de clé à chaque bloc et ont été conçus et évalués pour leur résistance à des attaques liées aux clés.
En revanche, la conception des cryptogrammes génériques utilisés pour le chiffrement répond généralement à des objectifs différents. Par exemple, le code par blocs de clés symétriques AES pourrait également servir à générer des valeurs de hachage si les tailles de ses clés et blocs ne le rendaient pas compliqué et inefficace.
Problèmes contemporains de chiffrement
Quel que soit le code, la méthode la plus élémentaire d’attaque est l’attaque en force, qui consiste à essayer chaque clé jusqu’à trouver la bonne. La longueur de la clé détermine le nombre de combinaisons possibles et, par conséquent, l’efficacité de ce type d’attaque. La puissance du chiffrement est directement liée à la taille de la clé, mais plus cette dernière augmente, plus il faut de ressources pour effectuer le calcul.
Les attaques par canal auxiliaire constituent d’autres méthodes permettant de percer un code. Elles ne portent pas sur le cryptogramme lui-même, mais sur sa mise en œuvre. Une erreur dans la conception ou l’exécution du système peut permettre à ces attaques d’aboutir.
Une autre approche consiste à déchiffrer le code par cryptanalyse, c’est-à-dire à détecter une faiblesse du chiffrement qui peut être exploitée de façon moins complexe qu’une attaque en force. Bien entendu, il est plus facile de venir à bout d’un cryptogramme si celui-ci présente des failles dès le départ.
Ainsi, la NSA (National Security Agency) a toujours été soupçonnée d’ingérences ayant affaibli l’algorithme Data Encryption Standard et, à la suite des révélations d’Edward Snowden, ancien analyste consultant de la NSA, nombreux sont ceux qui pensent que cet organisme a tenté d’affaiblir des produits de chiffrement et de contourner des normes cryptographiques.
Malgré ces problèmes, l’algorithme AES doit notamment sa popularité et sa longévité au fait que sa procédure de sélection était entièrement ouverte à l’examen et aux commentaires du public, garantissant ainsi une analyse rigoureuse et transparente de sa conception.
Quoiqu’il en soit, de plus en plus de gouvernements ne souhaitent pas que certaines entités au sein et à l’extérieur de leurs pays aient accès à des moyens de réception et d’envoi d’informations masquées, qui peuvent représenter une menace pour les intérêts du pays. Dans ce contexte, la cryptographie a subi diverses restrictions dans de nombreux pays, allant de freins à l’utilisation et à l’exportation de logiciels jusqu’à l’interdiction de diffuser des concepts mathématiques susceptibles de permettre le développement de systèmes de chiffrement. Internet a cependant favorisé la diffusion de puissants programmes de cryptographie et, plus important encore, des techniques sous-jacentes de la cryptographie. De fait, aujourd’hui, la plupart des systèmes et des concepts de chiffrement évolués appartiennent au domaine public.