Aperçu des procédures de chiffrement
Le chiffrement est une méthode permettant de traduire, à l’aide d’une clé, du texte brut en une chaîne de caractères incompréhensible. Dans le meilleur des cas, le contenu du chiffrement ainsi obtenu n’est accessible qu’à ceux qui peuvent défaire le chiffrement à l’aide de la clé. Les termes « plaintext » et « cryptogramme » peuvent être considérés comme des développements historiques. En plus des messages texte, les techniques modernes de chiffrement peuvent également être appliquées à d’autres informations électroniques, comme les messages vocaux, les fichiers images ou le code d’un programme.
Le chiffrement est utilisé pour protéger les fichiers, lecteurs ou répertoires contre un accès non désiré, ou pour transmettre confidentiellement des données. Même dans l’Antiquité, on utilisait des méthodes de chiffrement simples, qui se limitaient principalement au codage de l’information à protéger. Les caractères individuels du texte en clair, des mots ou des phrases entières du message sont alors réarrangés (transposition) ou remplacés par d’autres combinaisons de caractères (substitution).
Pour décoder un texte chiffré, le destinataire doit connaître la règle selon laquelle le texte a été encodé. Les permutations dans le cadre des procédures de transposition sont généralement effectuées à l’aide d’une matrice. Pour pouvoir réécrire un chiffrement en texte clair, la matrice de transposition doit être connue ou bien reconstruite. Les procédures de substitution sont basées sur une assignation tabulaire de caractères et de chiffres en clair, sous la forme d’un livre-code secret.
L’une des premières méthodes de chiffrement de ce type remonte à Jules César. Le chiffrement César est basé sur la substitution mono alphabétique. Pour protéger sa correspondance militaire contre les espions ennemis, le commandant avisé a décalé les lettres de ses mots de trois rangs dans l’alphabet. Le résultat se présentait ainsi :
Le nombre d’étapes par lesquelles les caractères sont décalés peut être considéré comme une clé dans ce type de chiffrement. Ce n’est pas un chiffre, mais la lettre correspondante dans l’alphabet. Un décalage de trois chiffres correspond à la touche « C ».
Alors que le chiffre de César (chiffrement par décalage) est relativement facile à comprendre, les chiffrements modernes reposent aujourd’hui sur des fonctions mathématiques plus complexes, appelées algorithmes, qui combinent plusieurs substitutions et transmutations, et sont paramétrées par des clés sous forme de mots de passe ou de codes binaires. Pour les cryptoanalyseurs (code crackers), ces méthodes présentent des obstacles beaucoup plus importants. De nombreux cryptosystèmes établis sont considérés comme incassables par les moyens disponibles aujourd’hui.
Une méthode de chiffrement repose essentiellement sur deux composants : un algorithme cryptographique et au moins une clé secrète. Alors que l’algorithme décrit la méthode de chiffrement (par exemple « déplacer chaque lettre dans la séquence de l’alphabet »), la clé renvoie les paramètres (par exemple « C = trois rangs »). Le chiffrement peut donc être décrit comme un processus dans lequel un algorithme cryptographique reçoit le texte en clair et une clé, dont il résulte un chiffrement.
Dans les méthodes modernes de chiffrement, on utilise des clés numériques sous forme de séquences de bits. Un critère essentiel pour la sécurité du chiffrement est la longueur de clé en bits. Ceci spécifie la mesure logarithmique pour le nombre de combinaisons de touches possibles. C’est ce qu’on appelle aussi la salle des clés. Plus l’espace clé est grand, plus il est résistant aux attaques de force brute.
Les codes en chiffrement de César attaqués par force brute peuvent être décryptés. Leur espace de clé est de 25, ce qui correspond à une longueur de clé inférieure à 5 bits. Un codecracker n’a qu’à essayer 25 combinaisons pour déchiffrer le texte en clair. Le chiffrement de César n’est donc pas un obstacle sérieux. Les méthodes modernes de chiffrement, d’autre part, utilisent des clés qui peuvent représenter beaucoup plus d’états. La norme Advanced Encryption Standard (AES), par exemple, offre la possibilité de sélectionner des longueurs de clé de 128, 192 ou 256 bits. L’espace clé de cette procédure est donc important.
Même avec un chiffrement 128 bits, 2128 situations peuvent être représentées. Cela correspond à plus de 340 sextillions de combinaisons de touches possibles. Si AES fonctionne avec 256 bits, le nombre de clés possibles est supérieur à 115 duodécilliards. Même avec un équipement technique approprié, il faudrait une éternité pour essayer toutes les combinaisons possibles. Avec la technologie disponible aujourd’hui, les attaques par force brute ne sont donc pas réalisables sur la salle des clés AES.
La sécurité d’un chiffre ne doit pas reposer sur le secret de la méthode, mais sur le secret de la clef utilisée.
En raison des longueurs de clé communes, les attaques par force brute pour les méthodes modernes de chiffrement ne sont plus une menace. Les codebreakers recherchent plutôt des faiblesses dans l’algorithme, ce qui permet de réduire le temps de calcul pour déchiffrer les données chiffrées. Une autre approche se concentre sur ce qu’on appelle les attaques de canaux latéraux, qui visent la mise en œuvre d’un cryptosystème dans un dispositif ou un logiciel. Le secret d’une procédure de chiffrement est plutôt contre-productif pour sa sécurité.
Selon le principe de Kerckhoff, la sécurité d’un cryptosystème ne repose pas sur le secret de l’algorithme, mais sur celui de la clé. Dès 1883, Auguste Kerckhoffs a formulé l’un des principes de la cryptographie moderne : afin de chiffrer un texte clair de manière fiable, il suffit de fournir une procédure mathématique bien connue, bien décrite, avec des paramètres secrets. Cette hypothèse est globalement restée intacte à ce jour.
Comme beaucoup d’autres domaines de l’ingénierie logicielle, le développement des mécanismes de chiffrement repose sur l’hypothèse que l’open source ne compromet pas la sécurité. Au contraire, une application conséquente du principe de Kerckhoff conduit à une détection plus rapide des erreurs dans les algorithmes cryptographiques, puisque les méthodes correspondantes doivent résister aux regards critiques des experts.