Sélectionner une page

Les Romains et la cybersécurité

Salut c’est Val, bienvenue dans cette nouvelle vidéo portant sur la relation entre les romains et la cybersécurité. Mais tout d’abord, est-ce que vous vous êtes déjà demandé, qu’est-ce que ça voulait vraiment dire sécuriser un système, donc un ordinateur ou un système d’exploitation ? En fait, il s’agit de lister les fonctionnalités d’un système, donc ce que l’on peut faire avec un système en anglais, on va appeler ça le live in properties et on va aussi lister les fonctionnalités que l’on ne pourrait pas faire avec ce système. Et ici on appellera ça le Safety Property. 

Donc pour résumer, pour exploiter les failles d’un système, il faut tout d’abord comprendre comment le système en question fonctionne, comme par exemple pour exploiter une vulnérabilité pour faire une injection SQL. Il faut tout d’abord comprendre le fonctionnement au préalable d’une base de données. Le sujet de cette vidéo se portera donc sur la cryptologie, qui veut dire étymologiquement écrire de manière cachée. Et ça tombe bien puisque dans l’Antiquité, Jules César donc l’empereur, a utilisé une de ces méthodes de chiffrement par substitution le chiffrement par décalage. 

L’histoire du chiffrement de César

Alors, le chiffrement de César n’est pas la toute première trace de chiffrement dans l’Antiquité. Je vous renvoie d’ailleurs vers le chiffrement Atbash. Mais dans cette vidéo, nous allons parler du chiffrement par décalage de César. Et bien que cette méthode n’est certainement pas été inventée par le célèbre empereur, elle lui doit son nom en raison à un passage de la vie des douze César de Suétone. Pour nous, ce chiffrement est très simple, mais pour Jules César, ce chiffrement était utilisé dans ses correspondances secrètes et notamment il utilisait l’alphabet grec qui à l’époque était intelligible pour la plupart des Gaulois, mais c’était une langue qui était maîtrisée par les élites de la dirigeante romaine.

Fonctionnement

Donc vous allez voir que le fonctionnement du chiffrement par décalage de César est très simple puisqu’il s’agit de chiffrer des messages comportant uniquement des lettres majuscules, donc de A à Z. Et pour chiffrer un message, il va falloir décaler toutes les lettres d’un certain nombre de positions. Dans mon exemple, je vais prendre trois. Donc par exemple, si on prend A, B, C, D, la lettre A deviendra D. Et donc c’est un système cyclique puisque quand on arrive à la fin de l’alphabet, donc X, Y, Z, on reprend au début de l’alphabet A, B, C, D. 

Représentation théorique

Pour mieux comprendre, je vous ai fait une représentation. Donc dans cette représentation, on aura l’utilisateur A et l’utilisateur B qui veulent s’échanger un message chiffré, donc transformer un texte en clair, donc c’est-à-dire un texte que l’on peut lire. Alors tout d’abord, on va vouloir chiffrer donc le message qui sera représenté par M. On veut chiffrer le message « Salut » Et donc pour ça, on va inclure une fonction et on va prendre le message. Donc M et on va le transformer en chiffré, donc qui va être C dans notre cas, et vous allez voir qu’on va décaler de trois positions. Donc si vous vérifiez « salut » devient VDOXW. Ce message va passer à l’utilisateur B, donc lui il va recevoir le texte chiffré, donc VDOXW.

On va reprendre la fonction de chiffrement ou ici on va décaler de trois positions, mais de manière négative puisqu’on a décalé juste avant de manière positive. Et donc on va reprendre la fonction de chiffrement avec notre message qui va nous donner « Salut », donc le texte original puisqu’on aura décalé de manière négative. Donc par exemple si on prend V, ça deviendra S, donc le premier S de salut. 

Les désavantages de cette méthode

Dans cette représentation, l’attaquant ne connaît pas le décalage. Il faut que par avance, l’utilisateur A et l’utilisateur B se rencontre pour décider du nombre de positions à décaler. Et en fait, ce qu’on va appeler le décalage. C’est tout simplement la clé de chiffrement et de déchiffrement puisque, comme on a pu le voir, on utilise exactement la même fonction qui va nous permettre de chiffrer et de déchiffrer le message original, donc le texte en clair. 

Donc vous vous rendez bien compte que c’est un système qui est très fragile puisqu’il n’y a que 26 lettres dans l’alphabet et donc 25 décalages possibles. Et donc aujourd’hui, un humain pourrait aisément déchiffrer le message. Il y a encore pire si vous connaissez la langue d’origine qui a été utilisée pour chiffrer le message, vous allez pouvoir calculer ce qu’on appelle la fréquence d’apparition de certaines lettres, comme par exemple dans les textes français. C’est la lettre E qui apparaît le plus souvent. Donc si vous avez un texte avec la lettre J, et bien tout simplement vous allez pouvoir le remplacer.

On pourrait supposer que c’est la lettre E, donc on va remplacer le J par le E et donc ça fait cinq points de décalage. C’est ce qu’on va appeler l’analyse fréquentielle et donc tout simplement le cinq, ça va être notre clé de déchiffrement et donc il suffira tout simplement de décaler toutes les lettres du texte de cinq positions pour retrouver le message original. 

Démonstration par la pratique

Ok, on va mettre tout ça en pratique via des scripts. Et donc pour ça, j’ai créé deux scripts en python, un pour chiffrer et un autre pour déchiffrer et je vais vous expliquer leur fonctionnement. Donc en gros, le script qui chiffre il a une première variable donc qui s’appelle shift, donc qui veut dire décalage en anglais et qui va être deux ou trois. Donc on va faire un décalage de trois, on va avoir notre variable texte, donc ici on va avoir notre texte en clair. Donc il va s’appeler Salut. On va avoir un autre variable en cryptions qui va être tout simplement la suite du texte en clair une fois qui sera chiffré et ensuite ici on va commencer à créer une condition. Alors, je ne vais pas aller loin dans les détails puisque sinon la vidéo durerait 20 minutes. 

Le but est vraiment de comprendre le mécanisme. Et donc en fait, ça va reprendre exactement ce que je vous disais juste avant. Donc c’est à dire. On a un texte en clair au début, on va utiliser une fonction de chiffrement qui va nous permettre de chiffrer le texte en clair, avec tout simplement un décalage de trois positions pour avoir un texte chiffré.

Ici, j’ai juste fait une petite vérif, donc c’est pour voir si notre texte est bien en majuscule. Si l’on met en minuscule, ça fonctionne aussi, c’est juste pour moi. Pour le script, je l’ai fait de cette manière. Ensuite on va chercher la position entre 0 et 25 puisque comme je vous l’ai dit, il y a 26 lettres dans l’alphabet, donc 25 possibilités de décalage. Ici, on va effectuer le décalage, donc positif. Donc c’est-à-dire qu’ici par exemple, si on est A et qu’on veut le décaler de trois positions, ça va être D. Donc on va faire un décalage positif ici, on va avoir notre conversion et enfin on va ajouter le résultat à la chaîne chiffré, donc pour avoir notre résultat. Et ici, j’ai juste mis en gros c’est un. Sinon, pour reprendre depuis le début, si nos lettres ne sont pas en majuscules. 

Donc c’est un script qui est très basique. Il y a rien de très sophistiqué là-dedans, mais c’est vraiment pour vous expliquer le fonctionnement global. Et donc après on va afficher le texte en clair et le texte chiffré juste pour se faire un petit rappel. Donc en gros, ici on a notre texte « Salut », donc celui qu’on a vu juste avant lors de la représentation et vous allez voir que ça va nous donner le même résultat.

Que je vous ai présenté juste avant dans la présentation. Donc voilà. Donc le texte « salut » donc le texte en clair. Salut ! Se présente sous la forme VDOXW et donc ça le transforme en texte chiffré. Et donc on va prendre celui-ci, on va fermer ça et on va tout simplement le mettre dans mon texte. Donc je vais le mettre juste ici, euh, je vais le prendre et l’ajouter dans mon script de déchiffrement. Alors donc, ça va reprendre exactement les mêmes principes. Pour ça, je vais vous les mettre l’un à côté de l’autre, comme ça vous verrez très clairement à quoi ça ressemble. 

Donc grosso modo, j’ai pris exactement les mêmes variables. J’ai essayé de faire au maximum pour que ce soit le plus simple pour vous et le plus compréhensible. Donc dans l’idée, on va reprendre exactement les mêmes variables. Donc pour le script de déchiffrement qui se trouve à droite, on sait que décale de trois positions parce qu’on imagine que l’utilisateur A et l’utilisateur B se sont rencontrés avant. Donc du coup on a l’info que c’est trois positions de décalage qu’on va utiliser. Ici, on va avoir donc notre variable de chiffrement ou on va prendre tout simplement notre résultat. Alors si je ne dis pas de bêtise, c’était VDOXW, je crois que c’était ça. On verra bien, on verra bien à la fin. Donc VDOXW, donc ça c’est notre variable, donc c’est notre texte chiffré et ici on laisse notre variable texte, donc texte en clair vide pour qu’on ait tout simplement le résultat à la fin.

On va reprendre exactement le même principe. La seule chose qui va changer dans notre condition, ça va être qu’ici on ne va pas faire un décalage positif, mais un décalage négatif. Vu qu’on a le texte chiffré, on va faire l’opération inverse et donc on va faire un décalage négatif. Et donc arriver à la fin, on affiche tout d’abord le texte chiffré et le texte en clair. Pour ça, je vais exécuter mon script. Et vous allez voir que ça me donne mon résultat. Donc « salut » qui était mon texte de départ donc je ne me suis pas trompé, c’est excellent. 

Maintenant, pour vraiment vous montrer qu’on peut faire ça avec n’importe quel texte, on va par exemple marquer ici Cyber Institut, on va run le script de chiffrement et donc on va voir que Cyber Institut, ça nous donne ce résultat. On va prendre ce résultat qu’on va mettre sur le script de déchiffrement, et vous allez voir que ça nous donne Cyber Institut. Voilà, donc c’est un script qui n’est pas très sophistiqué. Enfin, c’est deux scripts qui ne sont pas très sophistiqués, mais le but c’est un but pédagogique et de comprendre comment on peut appliquer le chiffrement par décalage donc de César sur directement une implémentation de programmation, donc par exemple avec le langage Python. 

Début dans la cryptographie

Le chiffrement par décalage est bien souvent le premier que nous rencontrons lorsqu’on débute dans la cybersécurité et notamment dans le domaine de la cryptographie. Aujourd’hui, il nous paraît simple à tous points de vue. Mais il faut savoir qu’à l’époque, au Iᵉʳ siècle avant Jésus-Christ, quand César a échangé des messages avec Cicéron, ça a rester bien obscur pour la plupart des personnes, et de la même manière que les messages qu’il avait pour Cléopâtre, ça a rester bien gardé. Comme on a pu le voir, le chiffrement par décalage n’est pas infaillible. Et donc ma question est la suivante connaissez-vous une méthode de chiffrement qui permet que ce soit beaucoup plus sécurisé, comme par exemple que les lettres ne soient pas chiffrées de la même manière et qui est beaucoup plus de possibilités de clés de chiffrement ? 

Conclusion

Et donc pour ça, je vous donne directement un indice. Donc ça suit justement l’Antiquité et c’est à la fin du Moyen-Âge. Je vous laisse directement me répondre en commentaire. En attendant, si vous souhaitez vous former dans le domaine de la cybersécurité, je vous renvoie vers le cyberinstitut où vous retrouverez bon nombre d’articles qui vous permettront de mieux structurer votre apprentissage et de savoir si la cybersécurité est faite pour vous. Vous retrouverez aussi des cours qui vous permettront de passer d’un apprentissage théorique à un apprentissage pratique. Pour moi, c’était tout pour cette vidéo sur les romains et la cybersécurité. N’oubliez pas de me répondre en commentaire. Quelle méthode de chiffrement surclasse la méthode de chiffrement par décalage de Jules César ? Je vous souhaite de la réussite dans vos projets c’était Val. TchaoTchao !