Objectifs d’apprentissage ou d’entraînement et pré-requis (acquis antérieurs mobilisés)
- Notions de chiffrement symétrique, de clé partagée
- Décrire le principe d’un chiffrement symétrique avec clef partagée
- Opérateur booléen « Ou exclusif » (table de vérité)
Programmation en langage Python : compétences requises ( à acquérir, à mobiliser, à développer, à maîtriser)
- fonctions chr(), ord() et bin()
- opérateur « ou exclusif » (xor) : ^
Un exemple de chiffrement symétrique simple
Table de vérité de l’opérateur « xor »
Dans la console de langage Python, saisir les instructions suivantes :
In [1]: 0 ^ 0
In [2]: 0 ^ 1
In [3]: 1 ^ 0
In [4]: 1 ^ 1
A partir des résultats obtenus, compléter le tableau qui suit.
A | B | A xor B |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
Principe d’un chiffrement symétrique
Soit ‘M’ le message à chiffrer : il s’agit d’une chaîne de caractères.
Le chiffrement symétrique requiert une clé ‘K’ : celle-ci est également une chaîne de caractères.
Considérons que le premier caractère de ‘M’ soit ‘A’.
Chercher la valeur – en base 10 – du code Unicode de ‘A’, puis sa valeur en base 2 (binaire).
Considérons que le premier caractère de ‘K’ soit ‘e’.
Chercher la valeur – en base 10 – du code Unicode de ‘e’, puis sa valeur en base 2 (binaire).
Appliquer l’opérateur « xor » entre chacun des bits de même rang des représentations en base 2 de ‘A’ et de ‘e’ : indiquer la valeur obtenue, en base 2.
Puis convertir cette valeur en base 10.
Et enfin indiquer à quel caractère correspond cette valeur dans la table Unicode.
Appliquer l’opérateur « xor » entre chacun des bits de même rang des représentations en base 2 de ‘e’ et de ‘$’ : indiquer la valeur obtenue, en base 2.
Puis convertir cette valeur en base 10.
Et enfin indiquer à quel caractère correspond cette valeur dans la table Unicode.
Fonction de chiffrement
Écrire en langage Python, les instructions d’un fonction ‘chiffrement_symétrique( M, K)’ qui prend en argument une message ‘M’ et une clé ‘K’ et qui renvoie le message ‘M’ chiffré, en utilisant l’opérateur « xor » appliqué entre les codes Unicode des caractères de ‘M’ et ceux de ‘K’.
Des difficultés ? Coup de pouce !
Le chiffrement symétrique AES
Quelques aspects de l’histoire de l’informatique…
Rechercher l’origine et la signification des trois lettres « AES ».Rechercher l’année à laquelle le principe du chiffrement AES a été défini et dans quelle circonstance.
Principe du chiffrement AES
Animation à télécharger (source) + explication (pdf) Tester en lignePython : utilisation de la librairie PyCryptodome
Documentation – Installation – Chiffrement/Déchiffrement
Complément : Éditeur hexadécimal en ligne