« Cryptage » n’est pas un gros mot – 2 ̷₄

Sommaire général ⇒


2 – Rendre à l’information sa forme intelligible –
Déchiffrement et décryptage


Pour retrouver l’information en clair à partir de sa forme chiffrée, deux possibilités se présentent :

      • le déchiffrement – que l’on réalise lorsque l’on dispose de la clé ad hoc – ;
      • et le décryptage – que l’on tente lorsque l’on n’en dispose pas.

Notons que la langue française marque clairement la distinction fondamentale entre déchiffrement et décryptage. Il n’en va pas de même dans la langue anglaise, laquelle utilise :
– les verbes to encrypt , cipher et encipher pour traduire chiffrer (##),
– les verbes to decrypt et to decipher pour traduire indistinctement (ou respectivement !) déchiffrer et décrypter (##).

2.1 – Le déchiffrement

C’est la première méthode qui vient à l’esprit. Le déchiffrement consiste en effet à retrouver la forme initiale du texte en réalisant une nouvelle série de calculs, appliqués à la fois aux caractères du texte chiffré et à ceux de la clé de (dé)chiffrement.

Autrement dit, pour déchiffrer, il faut la clé.

Illustrons cela avec notre Cube Rubik. On se souvient que, dans l’article précédent, on avait soigneusement noté la série de mouvements effectués pour mélanger le Cube. Cette suite de caractères est ce qu’on peut appeler la clé de mélange. Dès lors, pour reconstituer le Cube, il suffit de refaire chacun des mouvements notés, mais cette fois en sens inverse et dans l’ordre inverse.

Dans cet exemple, la clé de reconstitution est la même que la clé de mélange : elle est simplement appliquée à l’envers. Il existe donc une symétrie mélange/reconstitution du Cube.

Il en va de même avec une forme de chiffrement : quand la clé de déchiffrement est la même que la clé de chiffrement. Les calculs cryptographiques de déchiffrement sont effectués de la même façon mais dans l’ordre inverse de ceux du chiffrement. On parle alors de chiffrement symétrique.

Notons qu’il existe un mode de chiffrement dans lequel la clé de chiffrement est différente de la clé de déchiffrement. On parle ici de chiffrement asymétrique. Mais je n’irai pas plus loin à ce (vaste et complexe) sujet. Pour le reste de cette série d’articles, je me situerai uniquement dans le domaine du chiffrement symétrique.

Pour déchiffrer, il faut donc appliquer la clé au texte chiffré. Mais cela signifie deux choses :

    1. il faut disposer de la clé, condition absolument nécessaire… mais non suffisante ;
    2. il faut que cette clé soit exploitable. En effet, une clé de déchiffrement est généralement protégée par un mot de passe. Lequel mot de passe chiffre la clé ! Le mot de passe est en effet la propre clé de chiffrement… de la clé de chiffrement.

Si l’on ne dispose pas de la clé ou si l’on dispose de la clé mais pas de son mot de passe, il est alors impossible d’effectuer un déchiffrement. Il faut dès lors se tourner vers le décryptage.

2.2 – Le décryptage

Le décryptage est l’opération par laquelle on tente d’obtenir l’information en clair, quand on ne dispose pas de la clé de déchiffrement. Il existe plusieurs méthodes de décryptage – qui peuvent d’ailleurs être combinées. On ne citera ici que les principales, en les catégorisant selon qu’elles visent à obtenir la clé – ou son mot de passe – (2.2.1) ou qu’elles entendent la contourner (2.2.2).

2.2.1 – Le décryptage axé sur la clé

On recensera ici les méthodes de décryptage qui, :

  • dans un premier temps, visent à obtenir la clé (ou son mot de passe) afin, 
  • dans un deuxième temps, d’appliquer cette clé et donc de déchiffrer le texte.

Le décryptage est ici un préalable au déchiffrement.

2.2.1.1 – la force brute
2.2.1.1.1 – Attaque par force brute sur la clé

Il s’agit de décrypter le texte chiffré en appliquant au texte successivement TOUTES les clés possibles jusqu’à trouver la bonne.

C’est en quelque sorte comme si vous tentiez de reconstituer votre Cube Rubik en essayant chacune de ses 4,3.1019 configurations possibles. C’est virtuellement impossible.

Eh bien, trouver LA bonne configuration d’une clé de chiffrement de 128 bits, c’est bien plus compliqué : il existe 2128 soit 3,34.1038 possibilités. On pourrait se dire : « ça fait beaucoup, mais avec un ordinateur un peu costaud, on doit pouvoir faire ça en quelques jours.»

En fait, non. Pas du tout. 3,34.1038 possibilités, c’est énorme. Cela revient à essayer de :

Et même dans le futur, lorsque l’on disposera d’ordinateurs quantiques fiables (repassez dans 15-20 ans), trouver une clé de chiffrement symétrique de 128 bits par force brute prendra encore des millénaires. Si les ordinateurs actuels sont capables de casser en quelques jours des clés de 80 bits, une clé au standard AES-128 bits n’a rien à craindre d’une attaque par force brute ; pas avant des lustres.

2.2.1.1.2 – Attaque par force brute sur le mot de passe

Une autre attaque par force brute peut être réalisée non pas sur la clé mais sur le mot de passe qui la protège.

Il est rare en effet que ledit mot de passe présente une complexité comparable à celle de la clé. Or, il ne sert à rien de chiffrer un texte avec une clé AES-128 (virtuellement incassable) si le mot de passe de la clé (dé)chiffrement est :

    • « 12345 » (mot de passe faible qui sera cassé par force brute en une fraction de seconde)
    • ou le nom de son animal de compagnie (que l’on peut trouver aisément par une investigation traditionnelle).

Le mot de passe doit idéalement offrir une robustesse équivalente à celle de la clé elle-même. Or, une clé 128 bits présente 2128, soit 3,4.1038 possibilités.

Un mot de passe n’est pas libellé en code binaire mais en code ASCII, qui compte 256 caractères. Pour obtenir 3,4.1038 possibilités, en piochant dans un catalogue de 256 caractèresEn réalité, un peu moins que 256, car certains caractères ASCII ne sont pas facilement accessibles depuis un clavier d’ordinateur classique. possibles, il faudra un mot de passe de 16 caractères : 2128 = 25616 = 3,4.1038.

Encore faudra-t-il que ces 16 caractères soient soigneusement choisis pour résister à des attaques dictionnaire.

Par exemple, le mot « dextrométhorphane » compte 17 caractères, mais c’est un mot usuel de la langue française. Une attaque dictionnaire (qui consiste à essayer tous les combinaisons de mots usuels) permettra de trouver « dextrométhorphane » en une fraction de seconde. Tandis qu’une série de 16 caractères apparemment aléatoires sera immensément plus efficace.

Mais comment se souvenir d’un mot de passe fort de 16 caractères ? Personnellement, j’utilise la méthode de l’acrostiche, qui consiste à prendre les premières lettres de chaque mot d’une phrase secrète aisément mémorisable. J’y applique ensuite de menues modifications pour introduire des types de caractères plus variés.

Prenons pour exemple les deux premiers vers des paroles de la chanson Sympathy for the Devil des Rolling Stones :

Please allow me to introduce myself,
I’m a man of wealth and taste

devient :

Pam2im,I’m1mow&t

16 caractères, des lettres capitales, des lettres minuscules, des chiffres, des caractères spéciaux. Autant d’éléments qui tiennent en échec une attaque par force brute (notamment une attaque-dictionnaire).

2.2.1.2 – La clé de secours

En matière de décryptage, on peut découvrir une faille dans le code du logiciel de chiffrement, de telle sorte que l’on soit capable de récupérer la clé de déchiffrement (et/ou son mot de passe), conservée dans un endroit secret mais peu sécurisé.

Même si elle a été imaginée avec les meilleures intentions du monde, cette clé de secours n’en constitue pas moins une importante vulnérabilité – qui peut éventuellement être signalée (moyennant finances) aux autorités étatiques ou à des organisations criminelles.

Ainsi, on a découvert en 2008 (et confirmé en 2016) que BitLocker, le logiciel de chiffrement de disque dur de Microsoft, créait deux « clés » de secours. En effet, un mot de passe alternatif de la clé, généré par BitLocker, était :

    1. automatiquement (et discrètement) envoyé et stocké sur le compte SkyDrive/OneDrive de l’utilisateur,
    2. stocké sur l’ordinateur de l’utilisateur.

On apprit également que Microsoft formait les forces de police à la récupération de ces clés de secours.

2.2.2 – Le décryptage qui contourne la clé : la cryptanalyse

Ici, le décryptage s’affranchit totalement de la clé.

2.2.2.1 – La porte dérobée

Si vous n’avez pas noté la succession des mouvements que vous avez effectués pour mélanger votre Cube Rubik, vous pouvez tout de même le reconstituer : il s’agit d’utiliser une méthode alternative de résolution, indépendante de la clé de mélange.

Pour ce faire, vous allez vous procurer un livre, ou un guide sur le web, qui propose une méthode de résolution étape par étape.

Pour le professeur en architecture Ernö Rubik, son cube était à l’origine un projet pédagogique, axé sur le mécanisme de rotation des pièces. Aussi, quand il décida d’en faire un casse-tête, il n’en connaissait pas la solution. Mais bientôt, des méthodes de résolution apparurent. Le Cube Rubik cessa alors d’être un puzzle parfait : il existait bel et bien des failles permettant de le reconstituer.

En matière de décryptage, on peut découvrir une faille dans l’algorithme de chiffrement ou dans le code du logiciel qui le met en œuvre, de telle sorte que l’on soit capable de récupérer l’information sous sa forme initiale sans avoir à récupérer la clé.

Cette backdoor peut être découverte incidemment, ou avoir été implantée à dessein par le développeur – lequel peut éventuellement la révéler à toute personne ou organisation intéressée.

Les portes dérobées sont de plus en plus rares. En vertu du principe de Kerckhoffs (le secret ne doit pas résider dans la méthode de chiffrement mais dans la clé) et en raison de la publication de plus en plus fréquente du code source des logiciels, de telles vulnérabilités sont plus faciles à découvrir.

Par ailleurs, la communauté des cryptographes a appris à se méfier des logiciels et algorithmes de chiffrement dont le code source n’est pas ouvert. Ainsi, en 1973-74, la NSA aurait intercédé auprès d’IBM afin que le futur standard de chiffrement symétrique, l’algorithme DES, soit affaibli par ses concepteurs pour faciliter le décryptage

2.2.2.2 – L’ingénierie inversée

Pour reconstituer le Cube Rubik quand on ne dispose pas de la clé de mélange, une autre façon de faire est d’étudier la structure physique interne du cube afin de déterminer s’il est possible de le démonter (sans le briser…) et de le remonter dans la bonne configuration.

L’ingénierie inversée, c’est un peu la même chose. Il s’agit ici d’étudier précisément le code informatique du programme de chiffrement et de son algorithme, afin de comprendre comment le logiciel s’y prend pour chiffrer un texte. Mais à la différence du Cube Rubik, l’ingénierie inversée du chiffrement se révèle extrêmement compliquée car la plupart des algorithmes cryptographiques ont aujourd’hui pour fondement le principe de Kerckhoffs (cf. infra).

2.2.2.3 – l’attaque sur le texte

Il s’agit ici d’analyser le texte chiffré afin d’y déceler la logique sous-jacente de l’algorithme de chiffrement utilisé. Cette méthode utilise souvent comme références des messages chiffrés et leur équivalent en clair, afin de développer des hypothèses, testées ensuite sur un cryptogramme que l’on n’a pas pu déchiffrer. C’est notamment cette méthode (combinée à l’ingénierie inversée) qui, durant la Seconde Guerre mondiale, permit au renseignement militaire britannique de casser le chiffrement de la machine Enigma utilisée par l’armée allemande.

2.3 – Schéma récapitulatif

Cliquez sur l’image pour l’agrandir.

Nous savons donc maintenant ce que sont le chiffrement et le déchiffrement. Nous savons également ce qu’est le décryptage. Reste alors à aborder le cryptage.

3 – Le cryptage, un chiffrement non réversible  >>>

À propos de Arnaud Palisson

Arnaud Palisson, Ph.D. fut pendant plus de 10 ans officier de police et analyste du renseignement au Ministère de l'intérieur, à Paris (France). Installé à Montréal (Canada) depuis 2005, il y a travaillé dans le renseignement policier puis en sureté de l'aviation civile. Il se spécialise aujourd'hui dans la sécurité de l'information et la protection des renseignements personnels.