Cryptographie (II) : approfondir ce monde

Criptografía

Comme nous l'avons vu dans l'article précédent sur la cryptographie, il s'agit d'une branche très importante de nos jours pour effectuer des tâches de manière sécurisée. Dans cette deuxième partie, nous allons approfondir un peu plus le fonctionnement des deux algorithmes les plus utilisés. En outre, nous aborderons certains types d'attaques courantes dans ce domaine. 

Types d'algorithmes de cryptage

Comme nous l'avons vu dans l'article précédent, la cryptographie utilise deux méthodes de chiffrement dans ses procédures, qui se différencient principalement par le type de clé utilisé dans chacune d'elles. D'une part, nous avons la méthode de cryptage symétrique, qui utilise la même clé pour effectuer le processus de cryptage et de décryptage. Comme nous l'avons vu, cette méthode se divise en deux catégories : le chiffrement par blocs et le chiffrement par flux. Nous allons nous concentrer sur le chiffrement par blocs.

Le chiffrement par blocs, comme son nom l'indique, permet de chiffrer le message original en le séparant en blocs d'une taille donnée. Cette méthode comporte plusieurs algorithmes de cryptage :

  • DES (Data Encryption Standard) : Il s'agit d'un algorithme de chiffrement par blocs, créé par IBM et accepté par le NIST (National Institute of Standards and Technology) en 1976. Cet algorithme a une clé de 64 bits, 56 bits sont utilisés par l'algorithme lui-même pour la clé et le reste peut être utilisé pour vérifier la parité et corriger d'éventuelles erreurs ou être écarté, la longueur effective de la clé est donc de 56 bits. Aujourd'hui, il ne s'agit plus d'une norme cryptographique car elle a été rompue en 1999.
  • 3DES (Triple - Data Encryption Standard) : Comme il est désormais relativement facile de casser l'algorithme DES, IBM a développé son successeur en 1998. Cet algorithme est simplement basé sur l'utilisation de l'algorithme DES 3 fois de manière ordonnée. Tout d'abord, nous chiffrons le texte en clair avec une clé, le résultat obtenu est à nouveau chiffré, mais avec une nouvelle clé, et le résultat de cette opération est à nouveau chiffré avec une autre clé, ce qui donne une clé de 192 bits, même si seulement 168 serait efficace. Malgré tout, il s'agit d'un algorithme qui disparaît progressivement et qui est de plus en plus remplacé par AES, bien qu'il soit encore utilisé pour effectuer certains paiements en ligne.
  • AES (Advanced Encryption Algorithm) : Il s'agit en fait d'un "concours" lancé par le NIST pour sélectionner le successeur de DES et 3DES. L'algorithme qui a remporté l'AES est Rijndael, un algorithme créé par deux cryptographes belges, Daemen et RijmenDaemen et Rijmen. Les caractéristiques que devait avoir l'algorithme qui allait devenir l'algorithme utilisé par le gouvernement américain pour chiffrer les informations sensibles, par le secteur privé aux États-Unis et, par extension, dans le reste du monde, étaient les suivantes : 

                 ▪ Qu'il devrait être dans le domaine public
                 ▪ Il doit être symétrique et supporter un minimum de blocs de 128 bits.
                 ▪ que les clés pourraient être de 128, 192 et 256 bits
                 ▪ Qu'il pourrait être mis en œuvre dans le matériel et les logiciels.

Cet algorithme est basé sur une combinaison de plusieurs substitutions, variations et transformations, qui sont répétées plusieurs fois, chacune étant appelée "round". À chaque tour, une clé est calculée à partir de la clé de chiffrement et incorporée dans les calculs. Il s'agit d'un algorithme dans lequel la modification d'un seul bit, soit dans la clé, soit dans un bloc de texte en clair, donne un bloc de texte chiffré complètement différent, de sorte que même le superordinateur le plus puissant ne pourrait pas casser une clé AES.

De l'autre côté, nous avons la méthode de cryptage asymétrique, dans laquelle une clé publique et une clé privée sont utilisées pour les processus de cryptage et de décryptage, qui sont complémentaires. Cette méthode utilise différents algorithmes de cryptage :

❖ RSA (Rivest, Shamir et Adleman) : est un algorithme cryptographique qui a été développé en 1977 par 3 cryptographes, dont les noms de famille donnent son nom à l'algorithme. Cet algorithme est actuellement considéré comme l'un des plus sûrs, car il consiste à afficher des messages à l'aide de nombres, qui sont le résultat de la multiplication de deux grands nombres premiers préalablement choisis au hasard et tenus secrets. En travaillant avec deux clés différentes, qui sont complémentaires, le message qui est crypté avec la clé publique du récepteur ne peut être décrypté qu'avec la clé privée du récepteur. 

L'une des forces de cet algorithme est qu'il doit traiter la factorisation de grands nombres. Pour minimiser les risques de casser l'algorithme, le nombre de clés privées appariées est réduit au minimum. 

❖ Diffie-Hellman : c'est le début des systèmes à clé publique, et consiste à pouvoir partager des informations secrètes par des canaux non sécurisés, sans qu'il soit mathématiquement impossible pour quelqu'un de découvrir la clé privée, même s'il l'intercepte. L'illustration suivante montre la procédure suivie pour obtenir la clé secrète, qui sera généralement utilisée pour un futur cryptage.

Illustration 1. Fonctionnement de l'algorithme de Diffie-Helman.  Auteur : Javier Campos

Attaques sur les différents algorithmes

Comme nous l'avons vu, il existe des algorithmes permettant de préserver la confidentialité et la sécurité des informations, mais il existe également des techniques ou des méthodes qui tentent de briser la sécurité de ces algorithmes pour accéder aux informations. 

Nous pouvons appeler cette action la cryptanalyse, qui est l'ensemble des techniques qui tentent de décrypter des messages chiffrés sans connaître les clés nécessaires. Certains objectifs pourraient être de découvrir le message original, de le modifier de manière à ce que le récepteur l'accepte en le croyant authentique, ou d'établir une communication avec la victime et de faire en sorte que celle-ci catalogue l'attaquant comme un expéditeur autorisé. 

Nous allons maintenant aborder quelques-unes des attaques les plus courantes qui sont menées.

  • Les attaques par force brute : elles consistent à essayer toutes les clés possibles une par une jusqu'à ce que la bonne soit trouvée. Normalement, ces attaques ne sont pas efficaces et parfois elles ne sont même pas réalisables lorsqu'il y a trop de clés à essayer.
  • Attaques par le cryptogramme : la personne qui tente de décrypter le message ne sait rien de son contenu original et travaille sur le cryptogramme en essayant de trouver un élément qui se répète fréquemment lors du cryptage de certains types de documents ou d'informations.
  • Attaque de type "Man-in-the-middle" : consiste à se placer entre l'émetteur et le récepteur de l'information et à l'intercepter. Il se produit dans les communications qui utilisent, par exemple, le système Diffie-Helman, dans lequel l'adversaire chiffre chaque partie de la communication avec une clé différente. 
  • Attaque par dictionnaire : avec cette attaque, l'objectif est d'obtenir le texte clair dès le début. Selon le CCN-CERT, elle consiste à "briser la sécurité des systèmes basés sur des mots de passe dans lesquels l'attaquant tente de trouver la bonne clé en essayant tous (ou presque tous) les mots possibles ou contenus dans un dictionnaire idiomatique. Des programmes spéciaux sont généralement utilisés à cet effet".

Janira Pérez Sánchez, Sec2Crime