1. logo anssi - retour au site
  2. Chapitre ICryptologie : art ou science du secret ?
  3. Chapitre IICrypto sensu
  4. Chapitre IIISécurité, secret et légalité
  5. Chapitre IVBonus

Chapitre IICrypto sensu

Cryptologie, cryptologue, cryptographie, cryptanalyse, cryptosystème, cryptogramme, cryptopériode... Perdu ? Voilà de quoi y voir plus clair.

La cryptologie se divise en deux branches :

Deux disciplines exercées par une petite communauté de professionnels présents aux quatre coins du monde : les cryptologues.

cryptographie

La cryptographie permet la transformation, au moyen d’un algorithme de chiffrement, d’un message dit clair en un message chiffré. Grâce à ce procédé, deux interlocuteurs peuvent échanger de manière confidentielle et sécurisée, pourvu qu’ils possèdent la clé leur permettant de chiffrer et/ou de déchiffrer leurs messages. La cryptographie sert aussi d’autres applications telles que l’authentification et la signature (numérique) des messages, ayant toutes pour finalité – chiffrement compris – le traitement, le stockage ou la transmission sécurisée de données. La sécurité des systèmes d’information toute entière – et donc la cryptographie – poursuit quatre objectifs essentiels qui, lorsqu’ils sont tous atteints, garantissent une sécurité optimale à l’utilisateur :

  • confidentialité : l’information ne peut être lue par une personne non autorisée.
  • authenticité : l’information est attribuée à son auteur légitime.
  • intégrité : l’information ne peut être modifiée par une personne non autorisée.
  • non-répudiation : l’information ne peut faire l’objet d’un déni de la part de son auteur.

On distingue deux grandes familles de cryptosystèmes : les cryptosystèmes symétriques (ou à clé secrète) et les cryptosystèmes asymétriques (ou à clé publique).

Cryptographie symétrique

En cryptographie symétrique (ou à clé secrète), deux individus souhaitant communiquer de manière confidentielle vont utiliser une même clé pour chiffrer et déchiffrer leurs messages.

Prenons l’exemple d’un coffre sécurisé par une serrure. Si vous voulez y cacher un secret, il vous faudra posséder la clé vous permettant d’ouvrir le coffre pour y déposer votre secret et ensuite le refermer avec cette même clé.

Maintenant, imaginons que vous souhaitiez partager votre secret avec quelqu’un en lui donnant accès au coffre. Pour cela, il vous faut donc transmettre la clé à cette autre personne. Et pour que vous soyez seuls à connaitre le contenu du coffre, la clé doit donc rester secrète.

Voici énoncé à travers cet exemple le principe de Kerckhoffs (1835-1903) précisant que la sécurité d’un cryptosystème ne doit reposer que sur le secret de la clé. Autrement dit, l’algorithme - ou la méthode (ici, le système de fermeture par serrure) - peut être connu mais pas la clé.

Les +

Le chiffrement symétrique tel que nous venons de l’étudier a pour principal avantage d’être rapide (enfin, pour une machine entendons-nous bien !) et robuste s’il est bien conçu.

Les -

Mais il présente aussi certains inconvénients non négligeables. La nature même du système n’est pas sans risques. En effet, le fait que la sécurité repose sur le secret de la clé pose le problème de la transmission de cette clé. En d’autres termes, comment faire pour que la clé passe d’un individu à l’autre sans risque d’être interceptée par un tiers ?

Autre limite, le chiffrement symétrique suppose le partage d’autant de clés qu’il y a de paires de correspondants… Imaginez un peu la complexité que représente la gestion d’un tel réseau !

 
Advanced Encryption Standard (AES)

Advanced Encryption Standard (AES)

Le standard de chiffrement symétrique actuel AES est le résultat d’un concours académique lancé en 1997 par le National Institute of Standards and Technology (NIST) américain. 16 équipes de cryptologues venues du monde entier ont participé à cette compétition publique. En 2000, l’algorithme proposé par une équipe belge remporte la compétition et vient donc remplacer Data Encryption Standard (DES), le standard précédent.

Pour la première fois, la sélection est réalisée publiquement par l’ensemble des experts du domaine selon un processus plus transparent qu’auparavant dont la finalité est de sélectionner l’algorithme présentant les meilleures garanties.

Depuis, en privilégiant davantage de transparence, les compétitions publiques se sont multipliées et ont concerné des protocoles et applications très variés.

En raison des problèmes que peut poser le recours au chiffrement symétrique de bout en bout (conservation du secret de la clé et gestion des clés), il est fréquent de voir la cryptographie symétrique associée à la cryptographie asymétrique de façon à associer le meilleur des deux méthodes.

Ainsi, une pratique courante est de recourir au chiffrement asymétrique pour échanger des clés symétriques (ou secrètes) en toute sécurité puis, une fois cette étape délicate passée, de privilégier l’usage du chiffrement symétrique pour sa plus grande rapidité permettant davantage de fluidité dans les échanges. (Bon, en réalité c’est un peu plus compliqué que ça mais c’est bien là l’idée !).

Vous avez dit chiffrement authentifié ?

Vous avez dit chiffrement authentifié ?

Une autre compétition est en cours et porte sur le chiffrement authentifié, nouveau venu dans le paysage cryptographique. Ce chiffrement authentifié repose sur l’idée d’un principe mathématique qui permettrait de chiffrer et d’authentifier un message de manière simultanée dans le cadre d’un processus unique, assurant ainsi la protection de l’information en termes de confidentialité et d’intégrité.

Avant de voir une telle application se concrétiser, les propositions formulées par les équipes participant à la compétition doivent se soumettre à un long processus d’évaluation. Une dizaine d’années peut s’écouler entre le moment où l’on identifie un besoin et celui où l’implémentation d’une solution devient effective.

Cryptographie asymétrique

En cryptographie asymétrique, au lieu de faire reposer la sécurité sur un secret partagé, c’est à dire n'avoir qu'une seule clé comme c’est le cas en cryptographie symétrique, on dispose d’un couple de clés que l’on appelle bi-clé. L’une d’elle est privée et l’autre publique. Tirant parti de propriétés mathématiques étonnantes, ce qui est chiffré avec la clé publique ne peut être déchiffré qu’avec la clé privée. À la différence de la clé publique, cette dernière doit par définition rester secrète et ne pas quitter son propriétaire.

Avant d’aller plus loin, reprenons l’exemple du coffre vu tout à l’heure. Imaginons qu’il ne puisse être utilisé qu’une seule fois et qu’il se ferme au moyen d’un cadenas.

Si vous souhaitez à nouveau confier un secret au coffre doté de ce système de fermeture, nul besoin de posséder la clé du cadenas puisqu’il suffit de le clipser. Ce procédé de fermeture manuelle étant à la portée de tous, il symbolise dans notre exemple la clé publique qui vous a préalablement été transmise par votre interlocuteur pour échanger en toute sécurité avec lui.

En revanche, seul votre interlocuteur pourra accéder au contenu du coffre grâce à une clé qu’il est seul à posséder et qui est aussi l’unique moyen de déverrouiller le cadenas et donc d’ouvrir le coffre : la clé privée.

Les +

Grâce à cette méthode, le système comporte bien moins de clés puisqu’il n’y en a plus qu’une par utilisateur et l'opération de transmission des clés secrètes est remplacée par une opération de distribution des clés publiques.

Les -

En revanche, la nature des calculs à réaliser rend l’opération bien plus longue…



RSA

Rivest Shamir Adleman (RSA)

origines

Dans les années 70, trois chercheurs du Massachusetts Institute of Technology (MIT) ont mis au point un système de cryptographie asymétrique doté d’une clé de chiffrement et d’une clé de déchiffrement distinctes l’une de l’autre.

On appelle cet algorithme RSA, du nom des trois inventeurs qui en sont à l’origine : Ronald Rivest, Adi Shamir et Leonard Adleman.

applications

Aujourd’hui encore, RSA est l’algorithme le plus utilisé et on le retrouve dans de très nombreux protocoles de communication sécurisés sur Internet : messageries ; sites de e-commerce ; démarches administratives en ligne ; etc.

principe

Clé privée (ou de déchiffrement)
p et q (deux entiers premiers)

Clé publique (ou de chiffrement)
N tel que N = p x q

Dimensionnement
  1. Choisir deux très grands nombres premiers* à garder secrets : la clé privée (ou clé de déchiffrement).

    * Un nombre premier possède exactement deux diviseurs distincts : 1 et lui-même.
  2. Multiplier entre eux ces deux nombres pour en obtenir un nouveau : la clé publique (ou clé de chiffrement).

Pour obtenir un schéma sûr, il faut qu’il soit difficile de retrouver p et q à partir de N, en l’état actuel des connaissances et de la puissance de calcul disponibles. Pour ce faire, N doit être suffisamment grand, soit de l’ordre de 600 chiffres décimaux.

Certificats électroniques

Avec l’essor d’Internet, la dématérialisation croissante des données et les besoins de sécurité électronique inhérents à ces transformations sont apparus les certificats électroniques. Ces certificats, générés au terme d’un processus impliquant plusieurs acteurs, attestent de l’identité numérique des détenteurs de clés publiques, à la manière d’un passeport ou d’une carte d’identité, tout en remplissant les quatre objectifs de cybersécurité que sont la confidentialité, l’authenticité, l’intégrité et la non-répudiation.

Lorsqu’une entité telle qu’une banque (où la confiance est évidemment essentielle !) souhaite obtenir un certificat apportant les garanties vues plus haut, elle doit adresser sa demande à une infrastructure de gestion des clés (publiques) souvent désignée par son acronyme : IGC.

Son premier contact au sein de cette IGC sera l’autorité d’enregistrement chargée de la vérification de l’identité du demandeur et du traitement des demandes de certificat.

L’autorité d’enregistrement ayant validé le dossier de la banque auquel rien ne manquait, ce dernier est désormais entre les mains d’une autre composante de l’IGC : l’autorité de certification.

Mais comment savoir si le site que je consulte possède l’un de ces certificats ?
Avec Microsoft Internet Explorer

L’accès au certificat du site internet sur lequel vous naviguez (s’il en a un) se fait en cliquant sur le petit cadenas noir qui figure à droite de la barre de navigation. Ce symbole d’une navigation sécurisée permet de vérifier la validité du certificat et donc la confidentialité des informations échangées avec le site Internet visité. Résumons :

  1. L’adresse URL du site doit commencer par « https:// » * et son nom doit correspondre à l’attente de l’utilisateur.
  2. Un petit cadenas fermé doit figurer à droite de l’adresse du site

* Le protocole HTTPS correspond à la déclinaison sécurisée de HTTP encapsulé à l’aide d’un protocole de niveau inférieur nommé TLS (Transport Layer Security). Ce protocole est conçu pour protéger en confidentialité et en intégrité des communications de bout en bout (entre un client et un serveur). Il apporte également des fonctions d’authentification du serveur, mais aussi optionnellement du client. Pour aller plus loin

Dans le volet qui s’affiche, cliquez sur « Afficher les certificats » et accédez à l’ensemble des données contenues dans le certificat.

S’affiche alors une fenêtre « Certificat » à trois onglets : « Général », « Détails » et « Chemin d’accès de certification ». Là, le volet qui nous intéresse concerne les « Détails » où sont répertoriées toutes les informations personnelles évoquées tout à l’heure ainsi que la clé publique.

avec Mozilla Firefox

L’accès au certificat du site internet sur lequel vous naviguez (s’il en a un) se fait en cliquant sur le petit cadenas vert qui figure à gauche de la barre de navigation. Ce symbole d’une navigation sécurisée permet de vérifier la validité du certificat et donc la confidentialité des informations échangées avec le site Internet visité. Résumons :

  1. L’adresse URL du site doit commencer par « https:// » * et son nom doit correspondre à l’attente de l’utilisateur.
  2. Un petit cadenas fermé doit figurer à gauche de l’adresse du site

* Le protocole HTTPS correspond à la déclinaison sécurisée de HTTP encapsulé à l’aide d’un protocole de niveau inférieur nommé TLS (Transport Layer Security). Ce protocole est conçu pour protéger en confidentialité et en intégrité des communications de bout en bout (entre un client et un serveur). Il apporte également des fonctions d’authentification du serveur, mais aussi optionnellement du client. Pour aller plus loin

Dans le volet qui s’affiche, cliquez sur la flèche puis sur « plus d'informations »

S'affiche alors un premier ensemble de données techniques relatives à la sécurité proposée par le navigateur. Cliquer ensuite sur "Afficher le certificat"

Apparait alors toutes les informations personnelles évoquées tout à l’heure ainsi que la clé publique.

avec Google Chrome

L’accès au certificat du site internet sur lequel vous naviguez (s’il en a un) se fait en cliquant sur le petit cadenas vert qui figure à gauche de la barre de navigation. Ce symbole d’une navigation sécurisée permet de vérifier la validité du certificat et donc la confidentialité des informations échangées avec le site Internet visité. Résumons :

  1. L’adresse URL du site doit commencer par « https:// » * et son nom doit correspondre à l’attente de l’utilisateur.
  2. Un petit cadenas fermé doit figurer à gauche de l’adresse du site

* Le protocole HTTPS correspond à la déclinaison sécurisée de HTTP encapsulé à l’aide d’un protocole de niveau inférieur nommé TLS (Transport Layer Security). Ce protocole est conçu pour protéger en confidentialité et en intégrité des communications de bout en bout (entre un client et un serveur). Il apporte également des fonctions d’authentification du serveur, mais aussi optionnellement du client. Pour aller plus loin

Dans le volet qui s’affiche, cliquez sur « Détails »

En bas de la fenêtre du navigateur s'affiche alors un volet comportant plusieurs options dont "Sécurity". Ce volet décrit les caractéristiques techniques relatives à la sécurité proposée par le navigateur. Cliquer sur "View certificate".

Apparait alors toutes les informations personnelles évoquées tout à l’heure ainsi que la clé publique.

Grille de lecture des « détails » du certificat

Grille de lecture des « détails » du certificat

  • Version : le numéro de version renseigne sur le format du certificat.
  • Numéro de série : le numéro de série permet d’identifier le certificat parmi tous les certificats générés par une même autorité de certification.
  • Algorithme de signature : la signature numérique est un schéma de cryptographie asymétrique qui permet (à l’image de la signature manuscrite) de garantir l’intégrité et l’authenticité d’un message. La signature d’un message est générée à l’aide de la clé privée du signataire dont la correspondance entre message, signature et clé publique peut être vérifiée par tous. En vertu de ce principe, le certificat est un document signé par l’autorité de certification et indique à ce titre quel algorithme de signature a été utilisé pour créer cette signature.
  • Émetteur : il s’agit de l’entité émettrice du certificat, autrement dit l'autorité de certification.
  • Valide à partir du et Valide jusqu’au : le temps qui s’écoule entre ces deux dates est appelé cryptopériode. Elle indique la durée de validité du certificat (là encore, un peu à l’image d’une carte d’identité) à l’issue de laquelle les clés sont détruites ou archivées.
  • Objet : l’objet rassemble suffisamment d’informations personnelles pour identifier l’entité détentrice du certificat sans risque de la confondre avec une autre.
  • Clé publique : la clé publique est celle que partage la plateforme détentrice du certificat avec ses interlocuteurs pour échanger en toute sécurité avec eux.

Mais une IGC n’a pas pour seule mission la délivrance de certificats. Il arrive également qu’elle soit amenée à les révoquer, à la demande du détenteur ou bien en raison d’une irrégularité remettant en cause sa validité. La liste des certificats révoqués, est publique et consignée dans un annuaire indépendant et fiable, permettant ainsi aux navigateurs de vérifier la validité d’un certificat.

cryptanalyse

La cryptanalyse consiste en l’étude de cryptosystèmes afin d’en évaluer la robustesse (par la recherche de failles notamment) ou plus généralement en la recherche du sens de données chiffrées dont on ignore la clé de déchiffrement. Dans ce dernier cas, nous parlerons d’attaque puisque l’on considère comme telle l’intention de pure découverte du secret.

Quelle distance sépare le savoir des uns de celui des autres ?

Compte tenu des efforts déployés en cryptographie pour toujours mieux protéger l’information, imaginez un peu les efforts dont font preuve tous ceux qui convoitent cette même information !

Le chapitre historique qui inaugure ce document laisse entrevoir ce à quoi pouvait ressembler la cryptanalyse d’alors. À force de ténacité et de déductions logiques, le cerveau humain était le plus souvent capable de venir à bout du cryptosystème. Dans le cas de Mary Stuart par exemple, la cryptanalyse du chiffre utilisé par la souveraine reposait sur une analyse de fréquence, c'est-à-dire sur l’étude de la récurrence de tel symbole dans un texte, au regard des lettres et mots d’usage courant les plus utilisés dans la langue anglaise. Mais la mécanisation des procédés cryptographiques et les capacités de calcul offertes par les ordinateurs ont depuis redistribué la donne. Ainsi, lorsque l’on construit un algorithme ou que l’on en choisit un pour un usage particulier après avoir évalué sa robustesse, il est essentiel de considérer les aspects suivants :

  • Quel est le niveau de sécurité dont j’ai besoin ?
  • Pendant combien de temps mon algorithme doit-il être capable de résister aux attaques ?
  • Quel est le rapport entre la puissance d’attaque de mon adversaire et la puissance de calcul dont je dispose ?

Ces quelques points d’attention montrent bien, au-delà de la simple étude algorithmique, à quel point la cryptanalyse s’attache à étudier les scénarii d’attaque possibles, leur réalisme et leurs objectifs (retrouver la clé de déchiffrement, obtenir tout ou partie de l’information...).

Car c’est finalement l´état de l’art en cryptanalyse qui influence en grande partie les orientations prises en cryptographie. De la même manière, la recherche cryptanalytique enrichit le champ des connaissances mathématiques et a fortiori cryptographiques.

Les mécanismes cryptographiques modernes sont dimensionnés de telle sorte que même les meilleures attaques connues* ne puissent être réalisées en raison de la puissance de calcul astronomique que cela nécessite. De plus, ces mécanismes sont conçus pour résister aux techniques de cryptanalyse les plus évoluées issues des travaux d’experts.
*Par exemple l’attaque en force brute consistant à essayer toutes les clés possibles d’un algorithme de chiffrement symétrique ou encore l’attaque en factorisation.

Les ordres de grandeur aujourd’hui considérés sont galactiques. Il faudrait autant de machines qu’il y a d’atomes dans l’univers pour y arriver.

À moins peut-être que le quantique s’en mêle…

attention quantique !

Mécanique quantique

La mécanique quantique repose sur les lois de la physique des particules élémentaires qui viennent bouleverser et remettre en question notre idée de la matière.

Selon ces lois, plusieurs objets peuvent parfois être « intriqués », c'est-à-dire former un système plus complexe que chacun des objets isolément : les propriétés mesurées sur l'un des objets dépendent alors des opérations effectuées sur tous les autres. Par exemple, si une particule peut prendre deux états (notés 0 et 1), un système de deux particules peut prendre par exemple les états 00 ou 11, ou encore une superposition de ces états : cela signifie que chacune des deux particules, considérée isolément, est mesurée aléatoirement comme un 0 ou un 1, mais que les particules sont « jumelles », c'est-à-dire que la mesure de l'une des deux force l'autre à prendre le même état. La violation d'une inégalité statistique (prédite par John Bell en 1964 et vérifiée expérimentalement, entre autres, par Alain Aspect en 1982) prouve que ceci est une caractéristique profonde de la matière à petite échelle et pas simplement le résultat d'une « conspiration » de deux particules pour prendre la même valeur de façon cachée.

 

Cryptographie quantique (échange de clés quantique)

La cryptographie quantique n’a quant à elle rien à voir avec l’ordinateur quantique et, à l’inverse de la cryptographie classique, ne fait pas reposer la sécurité sur des problèmes mathématiques réputés difficiles mais sur des lois physiques dont les propriétés sont directement dérivées de la mécanique quantique. Le recours à ces propriétés est utilisé au moment de l’échange de clés : ce n’est pas le chiffrement qui est quantique mais le partage des clés.
Pour réussir ce tour de force, il est fait appel à la lumière ou plus précisément aux photons, ces petites particules de lumière qui obéissent aux lois quantiques. Pour faire circuler la clé entre son émetteur et son destinataire légitime, on fait correspondre chaque photon généré par laser à un bit – 0 ou 1 – de la clé. Les photons et les bits ainsi « embarqués » poursuivent alors leur itinéraire jusqu’à destination sans qu’aucune tentative de mesure de la valeur de ces bits par un attaquant placé entre l’émetteur et le destinataire ne puisse échapper à ces derniers. Imaginez que vos caractéristiques physiques – couleurs des yeux, des cheveux, taille, etc. – changent à chaque fois que l’on vous photographie sous l’effet du flash. Eh bien, c’est un peu la même chose en cryptographie quantique puisque toute mesure relative à une particule est susceptible d’entraîner une modification détectable de son « état quantique ».

 

Ordinateur quantique

Un qubits est l'analogue quantique d'un bit, c'est-à-dire un objet quantique pouvant prendre deux états (notés 0 ou 1) ou une superposition de ceux-ci. On sait depuis les travaux de Richard Feynman en 1982 qu'il est possible de manipuler par des portes logiques des systèmes de qubits intriqués, de la même façon qu'on le fait pour les bits d'un ordinateur classique. La puissance du calcul quantique est due au fait qu'un système de n qubits intriqués est en général la superposition de 2n états différents : manipuler un objet physique de taille n permet donc dans certains cas de manipuler 2n objets mathématiques en même temps.

La puissance de l'informatique quantique est pour l'instant limitée par l'extraordinaire fragilité de l'intrication quantique : en effet, toute interaction avec un état intriqué risque de séparer ses composantes et de détruire l'intrication. Plus le système intriqué est gros, plus la manipulation est délicate. Le record obtenu en 2011 à l'université d'Innsbruck est de 14 qubits intriqués, ce qui est pour l'instant inutile d'un point de vue calculatoire. Il est pour l'instant difficile de prédire si un ordinateur quantique de taille raisonnable existera un jour.

 

Cryptographie post-quantique

De même que la programmation n'a pas attendu l'invention de l'ordinateur (classique), il existe déjà des algorithmes quantiques prévus pour être exécutés sur un ordinateur quantique. Ainsi, Peter Shor a publié en 1997 un algorithme quantique permettant de résoudre les problèmes de la factorisation et du logarithme discret, sur lesquels repose actuellement la grande majorité de la cryptographie asymétrique (signature, échange de clés, chiffrement asymétrique). L'algorithme de Shor nécessite un ordinateur quantique d'environ 8 000 qubits intriqués pour factoriser une clé RSA de 4 096 bits, et n'est donc pour l'instant pas menaçant à court terme. Cependant, la menace d'avancées rapides dans la construction d'ordinateurs quantiques a poussé les cryptographes à développer des cryptosystèmes asymétriques qui résistent à l'ordinateur quantique ou du moins à l'algorithme de Shor.