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.
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.
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”
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 :
- Générer une paire de clés privée/publique
- Chiffrer du texte à l’aide de votre clé publique
- 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).
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).