Blog GlobalSign

30 janv. 2018

Glossaire des algorithmes cryptographiques - 1ère partie

L’essence de la cryptographie, ce sont les mathématiques pures et simples. Ce sont elles qui ont créé les algorithmes sur lesquels repose le chiffrement. Et c’est de ce chiffrement que dépendent la confidentialité et la sécurité sur Internet. Les maths sont donc nos amies ! Même si elles s’avèrent un tantinet compliquées. Ceci étant, les algorithmes ainsi créés doivent faire le poids face aux machines. Plus les ordinateurs se perfectionnent, et plus les algorithmes s’affaiblissent, nous obligeant à étudier de nouvelles solutions. C’est ainsi que la cryptographie évolue pour vaincre la cybermenace.

En pratique, vous devez tout d’abord créer un système de cryptographie à la fois confidentiel et authentique. Ce système se charge de générer la ou les clés qui serviront à chiffrer et déchiffrer les données ou le message. Au fil des ans, un certain nombre d’algorithmes de signature ont également vu le jour pour la génération de ces clés. Mais avec l’augmentation des puissances de calcul des ordinateurs, certains ont été abandonnés depuis.

Avant d’examiner certains des principaux algorithmes cryptographiques, revoyons quelques termes fréquemment utilisés dans ce billet.

Attaque par force brute

Une attaque par force brute ou par dictionnaire repose sur une méthode par tâtonnements. Son objectif : obtenir la clé privée d’un paquet de données chiffrées. Le procédé est confié à un ordinateur. Par conséquent, plus grande sera sa puissance de calcul, plus il pourra effectuer de « tentatives » sur une courte durée. À mesure que la puissance et les performances des machines augmentent, les chances de trouver la clé privée s’accroissent. Seule solution : allonger la clé afin d’augmenter le nombre de possibilités.

Taille des clés de chiffrement

La taille ou longueur des clés correspond au nombre de bits de la clé utilisée par un algorithme cryptographique. Seule la bonne clé peut déchiffrer un texte chiffré (sortie) afin de récupérer le texte clair (entrée). Plus les processeurs deviennent puissants, moins il faut de temps pour percer à jour une clé de chiffrement par force brute. Il a donc fallu allonger les clés. Pendant des années, 40 bits suffisaient. Mais, aujourd’hui, les clés en comportent jusqu’à 4 096.

Taille des blocs

Certains algorithmes reposent sur le « chiffrement par bloc », qui chiffre et déchiffre des blocs de données (groupes de bits d’une longueur fixe). Il existe un lien entre la taille des blocs et la quantité de données chiffrables sans duplication des blocs. Toutefois, l’explication de ce lien dépasse largement l’objet de ce billet. Retenons simplement que les recommandations actuelles préconisent l’utilisation de blocs d’au moins 128 bits.

Algorithmes à clé symétrique

symmetric algorithms

Un algorithme à clé symétrique (également appelé algorithme à clé secrète) s’appuie sur un système de clé et cadenas pour chiffrer du texte clair et déchiffrer les données d’un texte chiffré. La même « clé » sert à chiffrer et déchiffrer le fichier. Ces algorithmes reposent au choix sur le chiffrement par flot (également appelé « chiffrement continu ») ou par bloc. Le chiffrement par flot consiste à associer les bits d’un texte clair à une suite de chiffres pseudo-aléatoire. Le chiffrement par bloc regroupe et chiffre un certain nombre de bits (on parle de tour). Au besoin, il procède au remplissage ou bourrage du texte clair pour obtenir un multiple de la taille des blocs.

L’algorithme lui-même n’est pas confidentiel, contrairement à la clé secrète dont l’expéditeur et le destinataire doivent garder des copies en lieu sûr. L’utilisation d’une seule et même clé constitue également l’un des inconvénients de la cryptographie symétrique, car quiconque s’en empare pourra déchiffrer vos données.

DES

Le Data Encryption Standard ou DES représentait, et représente probablement encore, l’un des algorithmes les plus connus de l’ère cryptographique moderne. Aujourd’hui, la plupart le considèrent comme non sécurisé. Développé dans les années 1970 par IBM, il a ensuite été proposé au NBS, ancêtre du NIST (National Institute of Standards and Technology), et à la NSA. La participation de la NSA à sa conception a d’ailleurs éveillé des soupçons de portes dérobées, qui ont valu à DES d’être examiné sous toutes les coutures. Ce n’est qu’en 1976 que l’algorithme a été approuvé comme norme cryptographique et intégré les standards FIPS.

Dans les années 1990, le calcul des 72 quadrillions de valeurs possibles d’une clé DES de 56 bits semblait très peu probable. C’était effectivement impossible pour un seul ordinateur. Mais voilà, en 1997, un groupe d’informaticiens dirigé par Rocke Verser a utilisé des milliers d’ordinateurs de volontaires pour décrypter DES en 24 heures. C’est ainsi que lui et son équipe ont remporté les 10 000 $ du fameux DES Challenge.

Depuis, de nouvelles mises à jour sont venues renforcer l’algorithme DES, rebaptisé tour à tour « Double DES » et « Triple DES ». Elles consistent tout simplement à enchaîner deux ou trois applications de l’algorithme d’origine pour imposer un déchiffrement en deux ou trois temps de chaque bloc de données. L’utilisation de Triple DES subsiste dans certains cas, mais l’algorithme AES (ci-dessous) est devenu la nouvelle norme.

De nos jours — Si DES et Double DES ne sont plus utilisés, Triple DES (basé sur trois clés) fait encore partie des algorithmes recommandés dans la publication du NIST SP 800-57. Bien que plus lent que l’algorithme AES, il subsiste dans le secteur des paiements électroniques. Vous le retrouvez également dans Microsoft OneNote et Outlook 2007 pour la protection du contenu utilisateur et des données système, ainsi que dans les navigateurs Firefox et Mozilla Thunderbird en mode CBC pour le chiffrement des identifiants de connexion aux sites web en cas d’utilisation d’un mot de passe maître.

AES

L’algorithme AES (Advanced Encryption Standard) a été établi par le NIST (National Institute of Standards and Technology) en 2001. Le gouvernement des États-Unis l’a adopté avec des longueurs de clé de 128, 192 et 256 bits.

L’algorithme AES repose sur un socle mathématique assez simple qui, selon certains, l’expose aux attaques. En 2002, des chercheurs en sécurité ont ainsi mis en évidence l’attaque théorique XSL. Depuis, d’autres comme Bruce Schneier ont découvert plusieurs moyens d’exploiter des portions de l’algorithme. Toutefois, notons que même dans son article, Bruce Schneier affirme qu’il n’y a encore aucune raison de paniquer, puisqu’ils n’ont décrypté que 11 des 14 tours de l’algorithme AES-256, et ce avec une complexité en temps de 270. Le cryptographe doit également avoir accès à des textes clairs chiffrés à l’aide des multiples clés apparentées, ce qui laisse encore à AES une marge de sécurité supérieure, bien que plus étroite qu’on pouvait le supposer.

De nos jours — L’algorithme AES est encore répandu aujourd’hui du fait de sa puissance de traitement supérieure et de sa compatibilité avec un large éventail de matériels comme les cartes à puce et les ordinateurs haute performance.

MARS

Suite à la découverte de vulnérabilités dans AES, le NIST a diffusé un appel ouvert à propositions baptisé Advanced Encryption Standard Process entre 1997 et 2000 afin de trouver une nouvelle méthode de chiffrement par bloc plus performante. MARS a su s’imposer parmi les finalistes de par son approche compartimentée multiniveau destinée à résister aux futurs progrès de la cryptographie et à la croissance des puissances de calcul.

MARS prend en charge des blocs de 128 bits et diverses tailles de clés sur plusieurs tours de noyau et mixages pour une résistance supérieure aux attaques cryptographiques. Toutefois, certains ont avancé que les sous-clés aux longues suites de 0 et de 1 risquaient d’exposer MARS à des attaques faciles et efficaces.

De nos jours — MARS n’est pas utilisé. En 2004, Bruce Schneier et John Kelsey ont cassé 21 tours de l’algorithme sur 23.

IDEA

L’algorithme IDEA (International Data Encryption Algorithm), initialement baptisé IPES (Improved Proposed Encryption Standard), nous vient de James Massey de l’École polytechnique fédérale de Zurich (ETHZ). Élaboré dans le cadre d’un contrat de recherche avec Ascom Tech AG, anciennement Fondation Hasler, sa première publication remonte à 1991. IDEA est en fait né d’une révision mineure de l’algorithme PES (Proposed Encryption Standard), développé en remplacement de DES.

Son brevet ayant expiré, vous pouvez utiliser l’algorithme IDEA gratuitement, bien que sa marque elle-même soit encore déposée. Basé sur une clé de 128 bits, il s’exécute sur des blocs de 64 bits et fait toujours partie des algorithmes facultatifs du standard OpenPGP. En 1996, Bruce Schneier a dit beaucoup de bien de cet algorithme. Toutefois, par la suite, les brevets ont compliqué son utilisation et les nouvelles générations de technologies ont rattrapé IDEA.

En 2011, une attaque du type « meet-in-the-middle » est pour la première fois venue à bout de tous les 8,5 tours de l’algorithme IDEA. Indépendamment, en 2012, une attaque du type « narrow-bicliques » a elle aussi cracké IDEA dans son intégralité. En mai 2005, MediaCrypt a annoncé son successeur baptisé IDEA NXT.

De nos jours — Peu répandu, il n’est plus sous brevet et peut donc être utilisé dans les applications de votre choix.

RC 2

Les algorithmes RC (pour Rivest’s Cipher ou Ron’s Code) ont tous été inventés par Ron Rivest. Toutefois, si leurs noms se forment sur la même racine, ils sont très différents les uns des autres. Pour ce billet, nous les aborderons séparément.

Tout d’abord, l’algorithme RC2 créé par Ron Rivest en 1987 repose sur un chiffrement par blocs de 64 bits, des tailles de clés variables et 18 tours, arrangés selon un réseau de Feistel multi-source déséquilibré (16 tours d’un type et deux tours d’un autre).

De nos jours — Il est déconseillé de l’utiliser. Cet algorithme est vulnérable aux attaques par clé apparentée basées sur 234 textes clairs choisis.

RC4

Tout d’abord conçu par Ron Rivest comme un secret de fabrication en 1987, RC4 a été partagé via la liste de diffusion Cypherpunks en 1994. Une fois l’algorithme publié sur le forum de discussion sci-crypt, Bob Jenkins n’a pas tardé à le casser. Bien que jamais officiellement lancé par RSA Security, RC4 a servi dans certains protocoles et normes de chiffrement comme le WEP en 1997, le WPA en 2003, SSL en 1995 et TLS en 1999, et ce jusqu’à son interdiction dans toutes les versions de TLS RFC 7465 en 2015.

De nos jours – Il est déconseillé de l’utiliser.

RC5

En 1994, Ron Rivest a conçu RC5, un algorithme aux paramètres variables : des blocs de 32, 64 ou 128 bits, des clés longues de 0 à 2 040 bits, et entre zéro et 255 tours. Les paramètres initialement suggérés étaient les suivants : blocs de 64 bits, clé de 128 bits et 12 tours.

De nos jours — Distributed.net travaille à casser RC5 par force brute. L’organisation a déjà cracké la clé de 56 bits en 250 jours et la clé de 64 bits en 1 757 jours. Elle tente encore de décrypter la clé de 72 bits, qui reste donc probablement une option sûre.

RC6

Ron Rivest et ses collègues ont conçu RC6 à partir de RC5. Pensé pour remplir les critères du concours Advanced Encryption Standard, cet algorithme figurait parmi les cinq finalistes. Il repose sur des blocs de 128 bits et des clés de 128, 192, 256 bits, et ainsi de suite jusqu’à 2 040 bits. Comme RC5, RC6 s’appuie sur des rotations dépendantes des données, des opérations d’addition modulaire et de disjonction exclusive (XOR). Cet algorithme n’a finalement pas été retenu car le site web de RSA Security suggérait qu’il n’était pas encore tombé dans le domaine public.

De nos jours — D’après certains fichiers de la NSA divulgués suite à des fuites, RC6 a été utilisé dans des implants en 2016. D’autre part, il semble qu’il compte encore deux brevets aux États-Unis : US 5 724 428 A et US 5835600 A. Toutefois, ces brevets doivent expirer entre 2015 et 2017.

Retrouvez-nous dès la semaine prochaine avec la suite des principaux algorithmes à clé symétrique, ainsi que les algorithmes à clé asymétrique !

Partager ce blog