Encodage, chiffrement ou hachage ? Différences et explications

PrimFX Boris ('PrimFX') Le 17 août 2020

Le chiffrement (encryption)

Principe

Bien que l’on utilise souvent en français l’anglicisme encryption pour parler de chiffrement, c’est bien la même technique que ces deux termes décrivent : transformer des données pour qu’elles ne soient déchiffrables (lisibles) que par certaines personnes spécifiques.

Concrètement, le chiffrement consiste à encoder des données à l’aide d’un algorithme et d’une clé secrète. Ainsi, seules les personnes ayant connaissance de l’algorithme utilisé et possédant la clé secrète sont en mesure de chiffrer ou déchiffrer des données ! On appelle cela le chiffrement symétrique.

Une fois les données d’origines chiffrées, on obtient ce que l’on appelle un “texte chiffré”, en anglais encrypted text ou ciphertext.

Fonctionnement du chiffrement symétrique

 

On appelle également la clé secrète “clé privée” : ces deux termes sont synonymes. On peut aussi parler de “clé partagée”, puisque la clé est partagée entre les utilisateurs qui chiffrent et déchiffrent les données.

Il existe une technique un peu plus complexe, appelée chiffrement asymétrique, qui consiste à utiliser non pas une seule clé privée mais deux clés : une publique et une privée. Le principe est que n’importe qui soit capable de chiffrer des données à l’aide de la clé publique, mais seules les personnes possédant la clé privée seront capables de les déchiffrer.

Fonctionnement du chiffrement asymétrique

 

Par souci de simplicité d’échange des données, il est très fréquent que les algorithmes de chiffrement et d’encodage soient utilisés de façon complémentaires. Certains algorithmes de chiffrement produiront ainsi un résultat, par exemple, encodé en Base64.

 

Petit point sur le vocabulaire :

  • Chiffrement : c'est l'opération de chiffrer des données à l'aide d'une clé de chiffrement.
  • Cryptage : il s'agit d'un anglicisme souvent utilisé comme synonyme de "chiffrement". Cependant, « crypter » signifie plutôt « rendre des données incompréhensibles sans avoir de clé ». Son sens reste donc très ambiguë : mieux vaut éviter de l'utiliser.
  • Chiffrage : fréquemment utilisé à tort comme synonyme de « chiffrement », le « chiffrage » est en réalité « l'action d'évaluer un montant » (voir définition L'Internaute) : rien avoir avec l'informatique !
  • Déchiffrement : le déchiffrement est le fait de déchiffrer des données préalablement chiffrées à l'aide d'une clé (i.e. clé secrète, clé de déchiffrement, etc.).
  • Décryptage : « décrypter » est, en cryptographie, le fait de déchiffrer des données sans avoir de clé ! Il est toutefois fréquemment utilisé comme synonyme de « déchiffrement ».

Exemples

Le chiffrement AES (Advanced Encryption Standard)

AES, pour Advanced Encryption Standard, est comme son nom l’indique un standard de chiffrement; plus particulièrement de chiffrement symétrique.

Admettons que je souhaite chiffrer le texte “Hello :-)” à l’aide de la clé secrète “abcdefghijklmnop” : AES me donnera le texte chiffré suivant encodé en Base64 : “3j+SdBVW/w522X5ygyC4eQ==

Pour que quelqu’un soit en mesure de déchiffrer ce texte, il faudra qu’il ait connaissance :

  • De l’algorithme utilisé : AES
  • De la clé secrète : “abcdefghijklmnop

AES128 Encrypt & Decrypt

 

L’algorithme AES comporte de nombreux “sous-types”. J’ai utilisé AES 128 bits dans le cadre de cet exemple.

Le chiffrement RSA (Rivest Shamir Adleman)

RSA, de ses créateurs R. Rivest, A. Shamir et L. Adleman, est un exemple largement connu de cryptage asymétrique. Celui-ci se base donc sur deux clés : une privée et une publique.

Si vous souhaitez expérimenter un chiffrement et déchiffrement à l’aide de RSA, vous pouvez faire un tour sur cet outil qui vous permettra de :

  1. Générer une paire de clés privée/publique
  2. Chiffrer du texte à l’aide de votre clé publique
  3. Déchiffrer le texte chiffré à l’aide de votre clé privée

Au passage, si vous aimez les mathématiques (entre autre les nombres premiers et l’arithmétique modulaire), je vous recommande fortement de jeter un coup d’oeil au fonctionnement détaillé de l’algorithme RSA qui est assez impressionnant (je trouve).

 

Lorsque l’on parle de chiffrement de données, il peut aussi bien s’agir de données textuelles que des fichiers (images, vidéos, etc.). En informatique, tout prend la forme de 0 et de 1 (binaire). On peut donc facilement encoder ou chiffrer une image, une vidéo ou tout autre type de fichier.

Vulnérabilités

Un risque important est le vol de la clé secrète permettant le déchiffrement des informations. C’est pourquoi il est extrêmement important de porter une attention particulière à la sécurisation des clés. Dans la même idée, il est également primordial d’utiliser des clés complexes afin d’éviter toute attaque de type brute-force qui pourrait permettre de forcer une clé secrète.

Enfin, de manière générale, ces algorithmes reposent sur des concepts mathématiques complexes. L’algorithme RSA, par exemple, restera très fiable tant que personne n’aura trouvé de formule permettant de décomposer n’importe quel nombre en produit de facteurs premiers de façon triviale (voir Décomposition en produit de facteurs premiers : État actuel de l’art).

 

Cette approche est évidemment extrêmement simplifiée pour rester un minimum compréhensible; mais elle vous permet d’avoir un ordre d’idée de ce sur quoi reposent ces algorithmes 😉


A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 21 ans et je suis passionné d'informatique. Actuellement en MSc Computer Science à Trinity College Dublin, j'ai co-fondé en 2019 l'entreprise Single Quote et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles sur PrimFX.com 😃