Comment comprendre ce qu’est un chiffrement
Honnêtement, lorsqu’on s’intéresse à la cryptographie, la différence entre codes et chiffrements peut prêter à confusion. Mais la plupart du temps, un chiffrement est simplement un algorithme qui transforme une information lisible en quelque chose d’illisible (texte chiffré).Certains l’appellent aussi « chiffrement », une orthographe ancienne ou alternative. On utilise généralement les termes « code » et « chiffrement » comme s’ils étaient interchangeables, mais techniquement, ils sont assez différents. Les codes consistent davantage à substituer des mots ou des phrases ; ils attribuent un sens secondaire, comme pour cacher un message derrière des mots apparemment anodins. Les chiffrements, quant à eux, consistent davantage à brouiller des caractères ou des bits de données à l’aide d’un algorithme et d’une clé secrète. Tout cela peut être un casse-tête, car, en pratique, les limites sont floues. Parfois, on appelle tout « code », surtout s’il s’agit simplement d’échanger des mots, sans chiffrer quoi que ce soit. Mais s’il s’agit de chiffrement proprement dit, comme la sécurisation des e-mails ou des transferts de données, les chiffrements sont ce qu’il vous faut. Car bien sûr, la sécurité repose sur la confidentialité de cette clé. Vous ne voulez pas que quelqu’un devine votre algorithme secret ou le brise par force brute. C’est pourquoi le chiffrement moderne repose sur des algorithmes partageables, mais garde les clés secrètes. Si vous voyez les expressions « chiffrement de Vigenère » ou « chiffrement AES », il s’agit d’algorithmes spécifiques, des chiffrements dotés de méthodes particulières pour brouiller les données. Les chiffrements modernes sont conçus pour être sûrs même si l’algorithme lui-même est connu de tous, à l’exception de la clé. Cela repose sur le principe de Kerckhoff, qui stipule que la sécurité réside dans la clé, et non dans la méthode. Sachez que les chiffrements classiques, comme César ou ROT13, sont plutôt obsolètes. Ils sont bien trop simples car ils n’impliquent que des substitutions ou des transpositions élémentaires qui pourraient être craquées avec suffisamment d’efforts. La cryptographie moderne a dépassé ce stade, s’appuyant sur des algorithmes mathématiquement complexes, testés et dont la sécurité est prouvée. Ils sont aujourd’hui utilisés pour chiffrer les e-mails, les données bancaires et, plus généralement, pour protéger les secrets sur Internet. Alors oui, comprendre la différence est utile, mais dans la cryptographie quotidienne, la plupart des gens privilégient des algorithmes robustes et éprouvés (comme AES) et gardent les clés secrètes. Car, bien sûr, personne ne veut une cible facile.
Si vous souhaitez vous familiariser avec le chiffrement ou expérimenter avec des algorithmes, consultez des ressources comme le dépôt GitHub : Winhance. C’est un bon point de départ pour comprendre comment ces éléments sont assemblés, surtout si vous aimez bricoler ou apprendre les ficelles de la cryptographie. Attention : même certains algorithmes modernes peuvent être trop puissants pour des tâches basiques, alors ne vous inquiétez pas si vous êtes un peu débordé au début.
Les codes ne sont pas vraiment des chiffres
Un code décrit généralement un système dans lequel certains mots ou expressions ont une signification. Ces mots ou expressions peuvent avoir une signification légitime et bien comprise, mais le code implémente une signification secondaire que seuls les initiés peuvent comprendre. Il peut également s’agir d’une combinaison de caractères totalement dénuée de sens.
Par exemple, deux agents souhaitant confirmer leur confiance mutuelle peuvent utiliser deux phrases codées.« J’ai entendu dire qu’il fait beau à Paris à cette période de l’année.» et « J’ai toujours eu un faible pour Dublin.» pourraient constituer deux phrases codées de type « défi-réponse ».L’un des avantages de l’utilisation de phrases codées à significations établies et secondaires est qu’un observateur extérieur peut considérer la conversation comme tout à fait banale et peu susceptible de contenir un sens caché. Un tel système de phrases codées bénéficie d’une dénégation plausible.
Il faut toutefois veiller à ce que les phrases choisies ne soient pas susceptibles d’être utilisées par un passant. Si la première phrase codée est prononcée à un passant, il pourrait la trouver un peu étrange, mais sinon, ce ne sera qu’un bavardage. La réponse codée doit être choisie de manière à être compréhensible pour quiconque pourrait écouter, mais il est très peu probable qu’elle soit prononcée par une personne quelconque.
Certains codes peuvent ne pas utiliser de mots entiers. Par exemple, « UBDIBF » pourrait être un mot de code utilisé pour indiquer « mission accomplie, tous les objectifs atteints ».Quiconque verrait ou entendrait un tel code pourrait supposer qu’un message secret est transmis. Cependant, sans connaître le code, il serait incapable d’en déterminer le sens. Ces codes ont l’avantage d’être plus courts et plus faciles à transmettre. Les deux méthodes comportent également le risque que l’agent oublie le code correct.
Chiffres
Un chiffrement est un algorithme permettant de déformer un message de telle sorte que le résultat, appelé texte chiffré, soit incompréhensible. Pour éviter que le chiffrement ne devienne inopérant dès qu’on en comprend le fonctionnement, une « clé » est utilisée pour modifier le résultat.
En cryptographie moderne, il existe deux manières distinctes de définir les algorithmes. La première est le type de clé. Un chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer les données. Une clé symétrique est généralement appelée clé secrète. Un chiffrement asymétrique utilise deux clés différentes : une pour chiffrer les données et une pour les déchiffrer. Généralement, la clé asymétrique utilisée pour chiffrer les données est appelée clé publique, tandis que la clé de déchiffrement est appelée clé privée. Cette utilisation permet à quiconque de chiffrer un message, en sachant que seul le propriétaire légitime de la clé privée peut le déchiffrer et le lire.
Les chiffrements peuvent également être classés en chiffrements par flux ou par blocs. Un chiffrement par flux chiffre un flux continu de symboles. Un chiffrement par blocs chiffre des blocs de données de taille fixe ; de ce fait, un remplissage est nécessaire si les données ne correspondent pas exactement à la taille du bloc.
Chiffres classiques et modernes
Les chiffrements classiques étaient relativement simples. Cela était rendu nécessaire par leur faible niveau technologique, qui les rendait utilisables à la main ou avec des outils simples. Ces techniques impliquaient généralement une transposition ou une substitution. Un chiffrement par substitution, tel que le chiffre de César ou ROT13, substitue une lettre de l’alphabet par une autre. Dans ROT13, chaque lettre est remplacée par la lettre 13 qui la suit. Un chiffrement par transposition fonctionne de manière similaire, mais le décalage entre chaque caractère est différent. Ces techniques, même lorsque l’alphabet de transposition est modifié après chaque lettre, sont relativement faciles à déchiffrer. En effet, l’espace disponible pour les clés étant limité, le nombre de clés différentes utilisables est limité. Une fois qu’un ennemi a compris le chiffrement, il lui suffit d’essayer toutes les clés et de pirater le système.
Les chiffrements modernes reposent sur le principe de Kerckhoff. Ce principe stipule que tout système de chiffrement doit rester sécurisé même si l’ensemble du système, à l’exception de la clé, est connu de l’ennemi. De ce fait, les chiffrements modernes sont publics et rigoureusement étudiés, sans compromettre leur sécurité. Désormais, seule la clé doit être gardée secrète, un exploit bien plus facile à gérer que de garder le système secret dans son intégralité.
Conclusion
Un chiffrement est un autre nom pour un algorithme de chiffrement. Certains utilisent ce terme comme synonyme de code (par exemple, chiffré = codé).Cependant, ce n’est pas tout à fait exact. Un code repose sur le secret de sa signification. Un code peut également être choisi arbitrairement. Un chiffrement est un algorithme reproductible permettant de chiffrer des données arbitraires. La sécurité d’un chiffrement repose sur le secret de la clé.
Le terme « chiffre » vient du mot arabe signifiant zéro, صفر (sifr).Le système de numération romain ne comportait pas la notion de zéro. Ainsi, lorsque le système de numération arabe s’est répandu en Europe au Moyen Âge, le mot arabe a été adopté en latin médiéval sous le nom de « cifra ».Au fil du temps, en Angleterre, ce terme a évolué vers le mot « chiffre ».On pensait que le nouveau concept de zéro était difficile à comprendre, de sorte que ce terme a été utilisé pour désigner tout message ou communication difficile à comprendre, même s’il n’était pas réellement codé ou chiffré.