Académique Documents
Professionnel Documents
Culture Documents
DECHIFFREMENT AES ET
November 2023
1
Contents
1 CONTEXTE ET TECHNIQUE 5
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 MODE OPERATOIRE 6
2.1 (Electronic Codebook ECB) . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Cipher Block Chaining (CBC) . . . . . . . . . . . . . . . . . . . . 6
2
5 Application 29
5.1 Choix du Langage Python . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Conception Orientée Objet (POO) . . . . . . . . . . . . . . . . . 29
5.3 Architecture MVC . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Documentation et Distribution . . . . . . . . . . . . . . . . . . . 30
5.5 Fonctionnement de l’Application . . . . . . . . . . . . . . . . . . 30
5.6 Interface Principale de l’Application . . . . . . . . . . . . . . . . 30
5.6.1 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.6.2 AES (Advanced Encryption Standard) . . . . . . . . . . . 30
5.6.3 DES (Data Encryption Standard) . . . . . . . . . . . . . 31
5.6.4 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.7 Exemple d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 31
7 Perspectives Futures 40
3
Introduction
La cryptographie c’est l’art d’écrire de manière cacher. Sécuriser une commu-
nications revients à assurer la confidentialité, l’authentification, l’intégrité, la
disponibilité et la responsabilité.
4
Figure 1: situation du contexte
1 CONTEXTE ET TECHNIQUE
1.1 Contexte
On a un individu Alice(A) qui veut envoyer un message à un autre individu
Bob(B) en passant par un canal ou un attaquant Eve (Ev) ne doit pas voir le
message originel. Ce message M (message en clair ou plain Text). A veux donc
une fonction, un algorithme qu’on appellera E qui prend donc le message M et
le transforme en un autre message C : E(M) = C. de tel manière que C est
incompréhensible et seul B pourra retrouver M à partir de C (message chiffré
ou Cipher Text). Cette fonction E est une fonction de chiffrement (Encryptions)
ainsi, Eve voire le message mais ne peu pas lire le contenue, puis Bob voire le
message et utilise une autre fonction D : fonction de déchiffrement (Descryption)
qui prends C et le transforme en M : D(C) = M
1.2 Technique
Il existe plusieurs techniques pour construire ces deux fonctions (chiffrement
et déchiffrement) telles que le chiffrement de César, de Vigenère, Vernam, le
chiffrement par bloc, par flux et bien d’autres. Dans le cadre de ce rapport,
nous allons nous intéresser ici à la technique de chiffrement par bloc (Block
Ciphers) qui consiste à découper un message M en morceaux de taille constante
qu’on appelle des blocs, puis à utiliser la clé pour chiffrer chacun de ces blocs
et les recombiner. Il existe actuellement deux méthodes principales de Block
Ciphers :
• DES
• AES
5
2 MODE OPERATOIRE
Que ce soit la méthode DES ou AES, le mode d’opération de l’un et l’autre
peut s’appliquer au même processus de fonctionnement. Ainsi, nous distinguons
plusieurs modes parmi lesquels on peut citer :
2.1.1 Probleme
Le chiffrement de chaque bloc de manière indépendante et de la même manière
produits les mêmes blocs chiffrés. Donc avec suffisamment de block, un at-
taquant peu faire une analyse sur les blocs et essayer de deviner le bloc en
claire.
6
Figure 2: Illustration
Fin 1974, IBM a présenté ”Lucifer”, qui a été modifié le 23 novembre 1976
pour devenir le DES (Data Encryption Standard) grâce à la collaboration de la
NSA (National Security Agency). Le DES a été officiellement approuvé en 1978
par le NBS et standardisé par l’ANSI (American National Standard Institute)
sous le nom de ANSI X3.92, plus connu sous le nom de DEA (Data Encryption
Algorithm).
Le DES fonctionne comme un système de chiffrement symétrique par blocs
de 64 bits, avec 8 bits (un octet) dédiés à un test de parité pour vérifier l’intégrité
de la clé. Chaque bit de parité (1 sur 8 bits) teste un octet de la clé pour la
parité impaire, assurant ainsi un nombre impair de ’1’ dans chaque octet. La
clé est effectivement constituée de 56 bits, le reste étant utilisé pour la parité.
L’algorithme implique des combinaisons, des substitutions, et des permuta-
tions entre le texte à chiffrer et la clé, permettant des opérations bidirectionnelles
pour le chiffrement et le déchiffrement. Cette combinaison de substitutions et
de permutations est appelée ”code produit”.
La clé, formée de 16 blocs de 4 bits notés k1 à k16, est codée sur 64 bits,
bien que seuls 56 bits soient effectivement utilisés pour le chiffrement, offrant
ainsi 256 clés différentes (soit 7.2 × 1016 ).
7
Les grandes étapes de l’algorithme DES comprennent le fractionnement du
texte en blocs de 64 bits, la permutation initiale des blocs, le découpage des blocs
en deux parties (gauche et droite), des rondes de permutations et substitutions
répétées 16 fois, et enfin, le recollement des parties gauche et droite, suivi de la
permutation initiale inverse.
Fractionnement du texte
3.2.1 Permutation initiale
Dans un premier temps, chaque bit d’un bloc est soumis à la permutation ini-
tiale, pouvant être représentée par la matrice de permutation initiale (notée PI)
suivante
Cette matrice de permutation indique, en parcourant la matrice de gauche
à droite puis de haut en bas, que le 58ème bit du bloc de texte de 64 bits se
retrouve en première position, le 50ème en seconde position et ainsi de suite.
3.3 Rondes
Les blocs Gn et Dn sont soumis à un ensemble de transformation itératives
appelées rondes, explicitées dans ce schéma, et dont les détails sont donnés plus
bas :
8
9
10
Ainsi, le dernier bit de D0 (c’est-à-dire le 7ème bit du bloc d’origine) devient
le premier, le premier devient le second, ... De plus, les bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28
et 29 de D0 (respectivement 57, 33, 25, l, 59, 35, 27, 3, 6l, 37, 29, 5, 63, 39, 31
et 7 du bloc d’origine) sont dupliqués et disséminés dans la matrice.
OU exclusif avec la clé La matrice résultante de 48 bits est appelée D’0
ou bien E[D0]. L’algorithme DES procède ensuite à un OU exclusif entre la
première clé K1 et E[D0]. Le résultat de ce OU exclusif est une matrice de 48
bits que nous appelerons D0 par commodité (il ne s’agit pas du D0 de départ!).
3.6 Permutation
Le bloc de 32 bits obtenu est enfin soumis à une permutation P dont voici la
table :
Exclusif L’ensemble de ces résultats en sortie de P est soumis à un OU
Exclusif avec le G0 de départ (comme indiqué sur le premier schéma) pour
donner D1, tandis que le D0 initial donne G1.
3.6.1 Itération
L’ensemble des étapes précédentes (rondes) est réitéré 16 fois.
11
3.6.2 Permutation initiale inverse
A la fin des itérations, les deux blocs G16 et D16 sont ”recollés, puis soumis à
la permutation initiale inverse : Le résultat en sortie est un texte codé de 64
bits !
12
13
Ces deux blocs subissent ensuite une rotation à gauche, de telles façons que
les bits en seconde position prennent la première position, ceux en troisième
position la seconde, ... Les bits en première position passent en dernière position.
Les 2 blocs de 28 bits sont ensuite regroupés en un bloc de 56 bits. Celui-ci
passe par une permutation, notée CP-2, fournissant en sortie un bloc de 48 bits,
représentant la clé Ki.
Des itérations de l’algorithme permettent de donner les 16 clés K1 à K16
utilisées dans l’algortihme du DES.
14
Figure 3: Schéma général de l’AES
L’input (données entrées dans l’algorithme) est ce que l’on appelle le Plain
Text, le texte non chiffré. L’output (données en sortie de l’algorithme) est ce
que l’on appelle le Cypher Text, le texte chiffré.
Pour chiffrer, il applique sur le Plain Text 4 fonctions distinctes dans un ordre
précis et de façon répétitive, chacunes étant réversibles. La clé de chiffrement
est utilisée pour chiffrer mais aussi pour déterminer le nombre de répétition.
Les clés peuvent faire 128, 192 ou 256 bits, correspondant respectivement à 10,
12 et 14 répétitions. Avant chaque répétition, on créera ce que l’on appelle la
RoundKey, qui est une clé dérivée de la clé initiale.
Le schéma général de l’AES est le suivant :
Chaque fonction sera explicitée dans sa section propre.
15
2. Décalons la ligne.
3. Ajoutons une clé d’arrondi.
h1 = b7 · 23 + b6 · 22 + b5 · 21 + b4 · 20
h2 = b3 · 23 + b2 · 22 + b1 · 21 + b0 · 20
16
Figure 4: Tableau multiplication
17
4.2.1 ByteSub : fonction non linéaire
Dans cette seconde étape, on modifie la valeur en la multipliant par un vecteur
puis en ajoutant un terme constant, le tout modulo 2. Le fait que cette fonction
soit bijective permettra plus tard le déchiffrement de cette étape.
Ainsi : Soit B = f (B ′ ), avec la fonction f () correspondant à :
b0 10001111 b′0 1
b1 11000111 b′1 1
b2 11100011 b′2 0
b3 = 11110001 ·b′3 +02
b4 11111000 b′4 0
b5 01111100 b′5 1
b6 00111110 b′6 1
b7 00011111 b′7 0
Exemple :
On reprend B ′ = 100010002 = 0x88. Après calcul, on trouve f (B ′ ) = B =
000101002 = 0x14. ByteSub : simplification Il est possible de simplifier cette
étape. En effet, cette transformation f () est une bijection. Chaque élément de
GF (28 ) possède une image unique et un antécédent unique. De plus, l’inverse
d’un élément est unique.
En effet, soit a, b, c, e ∈ GF (28 ) avec b et c inverses de a et élément neutre. Alors
a · b = a · c = e. Donc (a · b) · b = (b · a) · c car · est associative. Donc e · b = e · c
car b est inverse de a. Donc b = c car e est neutre. L’inverse est donc unique
pour chaque élément, pour l’opération ·.
Chaque élément de GF (28 ) a donc un inverse unique et une image unique par
f (). L’ensemble GF est fini, il est donc possible de calculer ByteSub pour
chacun de ses éléments.
Cela donne la table suivante (ici en notation hexadécimale) :
18
A f (A) = B A f (A) = B A f (A) = B A f (A) = B
00 63 10 42 20 51 30 90
01 7C 11 67 21 FB 31 46
02 77 12 23 22 16 32 BF
03 7B 13 FC 23 AC 33 37
04 F2 14 D7 24 CF 34 87
05 6B 15 45 25 62 35 8D
06 6F 16 A4 26 97 36 D3
07 C5 17 E0 27 F0 37 27
08 30 18 E4 28 86 38 89
09 01 19 5D 29 A1 39 62
0A 67 1A 35 2A 6D 3A B7
0B 2B 1B 8E 2B 2D 3B 0C
0C FE 1C 1F 2C 71 3C 99
0D D7 1D 18 2D 96 3D 59
0E AB 1E 5A 2E 9A 3E 1A
0F 76 1F 7E 2F B1 3F 65
b0 10001111
b1 11000111
b2 11100011
b3 11110001 ⊕ b′3
b4 11111000
b5 01111100
b6 00111110
b7 00011111
4.2.2 Inversibilité de f () :
ByteSub étant bijective, il est possible de construire sa fonction inverse. Pour
la fonction f (), elle représente un système de 8 inconnues à 8 équations, il est
donc possible de le résoudre. Cela permet d’obtenir la fonction suivante :
b′0 : 01010010b0 : 0b′1 : 00101001b1 : 0b′2 : 10010100b2 : 0b′3 ≡ 01001010·b3 +02b′4 : 00100101b4 : 0b′5 : 10010010b5 :
19
Figure 5: f()
20
Figure 6: Tableau Multiplicatif Inverse
A1 A2 A3 A4
A5 A6 A7 A8
A=
A9 A10 A11 A12
A13 A14 A15 A16
21
22
droite et de haut en bas, est noté de 1 à 16, alors on peut utiliser un tableau de
correspondance :
1 2 3 4 6 7 8 5 11 12 9 10 16 13 14 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Exemple :
A1 A2 A3 A4 A1 A2 A3 A4
A5 A6 A7 A8 A6 A7 A8 A5
A9 A10 A11 A12 A11 A12 A10 A16
A13 A14 A15 A16 A16 A13 A14 A15
A1 A2 A3 A4 A1 A2 A3 A4
A6 A7 A8 A5 A5 A6 A7 A8
A11 A12 A10 A16 A9 A10 A11 A12
A16 A13 A14 A15 A13 A14 A15 A16
A1 A2 A3 A4
A5 A6 A7 A8
A=
A9 A10 A11 A12
A13 A14 A15 A16
C1 C2 C3 C4
C5 C6 C7 C8
C=
C9 C10 C11 C12
C13 C14 C15 C16
23
4.5.1 Explication de la fonction
La fonction MixColumn est une opération d’algèbre linéaire. Elle suit l’égalité
suivante :
C i = S × Ai
Où i est l’indice de colonne pour les matrices A et C, et S est une matrice à
coefficients fixes spécifique à MixColumn. Les coefficients de S sont des éléments
de GF(28 )etsontreprésentésenhexadécimal :
Ai = S ′ × Ci
Ai = S ′ × Ci
Ai+4 = 0x09·Ci +0x0E·Ci+4 +0x0B·Ci+8 +0x0D·Ci+12 Ai+8 = 0x0D·Ci +0x09·Ci+4 +0x0E·Ci+8 +0x0B·Ci+12 A
24
Ci = S ′ × Ai
Ci = S ′ × Ai
Ci+4 = S ′ × Ai+4
Ci+8 = S ′ × Ai+8
Ci+12 = S ′ × Ai+12
25
4.6.2 Réversibilité de AddKey
Étant donné que l’AES est un algorithme symétrique, la même clé peut être
utilisée pour le chiffrement et le déchiffrement.
Dans le cas de AddKey, cela est simple à démontrer : Lors du déchiffrement,
le processus est inversé et toutes les modifications sont supprimées les unes
après les autres. Avec l’ordre fixe, il est possible de savoir quelle RoundKey a
été utilisée pour chaque itération en les créant toutes puis en remontant de la
dernière à la première.
L’opération XOR utilisée lors du chiffrement nécessitera un XOR avec la
même clé lors du déchiffrement. Ainsi, la clé ajoutée sera compensée par elle-
même : 11101100 + 10011011 + 11101100 = 10011011
Cela est possible car l’opération XOR est associative : Avec Ki étant la
RoundKey courante, Mi le mot courant et Ci le résultat de l’opération XOR tel
que Ci = Mi +Ki Alors Ci +Ki = (Mi +Ki )+Ki AlorsCi +Ki = Mi +(Ki +Ki )
par associativité Ainsi Ci + Ki = Mi
La clé courante Ki se compense donc elle-même. L’opération XOR donnant
0x00, qui correspond à l’élément neutre de l’opération + dans GF (28 ).
4.7 RoundKey
4.7.1 Principe de ”Key Schedule”
Les clés de l’AES sont de 128, 192 ou 256 bits, correspondant à un certain nom-
bre de répétitions du chiffrement. Pour éviter certaines attaques issues de la
cryptanalyse, ces clés sont étendues, c’est-à-dire que d’autres clés sont créées
à partir de la clé initiale. Ainsi, le ”Key schedule” permet de générer une clé
différente à chaque tour de chiffrement, chaque sous-clé faisant 128 bits. On peut
donc se demander pourquoi utiliser des clés de tailles différentes et pourquoi ne
pas utiliser une clé de la taille du bloc de données multipliée par le nombre de
tours.
Les clés de 128 bits sont plus faibles que celles de 192, qui sont elles-mêmes plus
faibles que celles de 256 bits. Cela est dû au ”Key schedule”, qui permet de
contrer certaines attaques. De plus, utiliser une seule grande clé présenterait
des risques. D’abord, il y a le risque que les utilisateurs choisissent une clé facile
à retenir, donc plus facile à trouver. Ensuite, l’AES utilise en fait une seule
grande clé via le ”Key schedule”. Cela permet d’avoir une clé complexe lors du
chiffrement, mais suffisamment courte pour être retenue.
26
répétitions). Le ”Key schedule” se répète à chaque nouvelle clé, et donc la ième
clé est calculée à partir de la clé i+1.
Le schéma se répète à chaque itération du ”Key schedule” (pour la répétition
suivante, W4 devient W0, et ainsi de suite). La somme est effectuée via une
opération XOR (bit à bit) sur les deux blocs de 128 bits (somme dans GF(2)).
La fonction g() est ici importante. Elle s’applique sur un bloc de 4 octets et se
divise en 3 étapes, où g1, g2, g3 représentent les 3 étapes de la fonction g() :
1. Un décalage de 3 (similaire à un ”ShiftColumn”) :
• g1(W 3) = g1(V12 V13 V14 V15 ) = V13 V14 V15 V12
2. Ensuite, chaque octet est transformé via la transformation ”SubByte” :
• g2(V13 V14 V15 V12 ) = s(V13 )s(V14 )s(V15 )s(V12 ) = V13
′ ′
V14 ′
V15 ′
V12
3. Le premier octet est sommé avec un coefficient (puissance de 2 dans
GF(28 )) qui dépend de l’indice j de la répétition :
′ ′ ′
g3(V13 V14 V15 V12′ )=V13
′ +R ′ ′ ′
j−1 ·V14 +V15 +V12
où R = 0 · X + 0 · X + 0 · X + 0 · X 4 + 0 · X 3 + 0 · X 2 +
7 6 5
1 · X 1 + 0 · X 0.
Comme nous sommes toujours dans GF(28 ), les puissances de ce polynôme
sont restreintes par le polynôme caractéristique de l’AES, P (voir section
Maths). Ainsi, on a :
Pour résumer, les 128 bits sont regroupés par groupe de 4 octets. Le premier
octet est sommé avec le troisième, modifié par g(). Tous les autres octets sont
ensuite sommés avec l’élément précédent et l’élément équivalent dans la clé
précédente. Cela donne le schéma suivant :
Clés de 192 bits le schéma pour la création des sous-clés de 192 bits est
presque similaire :
Il y a cependant un élément à prendre en compte, il y a besoin d’aller
jusqu’à W51. Or, ont créé à chaque fois 6 nouveaux éléments (W5→W11).
On arrive donc à W47, il ne faut donc que 4 éléments supplémentaires (W48→W51).
Pour la fonction g(), il s’agit toujours du dernier élément de la ligne précédente
(le 6ème parmis 6). (Il serait possible de créer encore 6 éléments, mais 2 ne
seraient jamais utilisés.) Clés de 256 bits le schéma pour la création des-clés de
256 bits est presque similaire :
De même que pour les clés de 192 bits, lors de la dernière itération il n’est
nécessaire de créer que 4 éléments (W56→W59). On peut voir un ajout ici,
il s’agit de la deuxième étape de la fonction g(), l’opération SubByte.
27
Figure 7: Key Schedule
28
4.8.1 Réversibilité
L’AES étant symétrique, la même clé est utilisée pour le déchiffrement. Les
mêmes Round Key (clé par itération) sont donc utilisées. La différence va
résider dans la création des clés, en effet, il y a deux manières de faire :
• Toutes les créer avant le chiffrement, ce qui peut prendre du temps (selon
la taille de la clé)
• Les créer au fur et à mesure des itérations
Or, dans le cas du déchiffrement, on commence par utiliser la clé de la
dernière itération. En effet, on déchiffre dans l’ordre des couches, or la dernière
itération utilisant la dernière clé, on est obligé de créer toutes les clés avant de
pouvoir déchiffrer.
5 Application
Nous allons maintenant présenter notre Application de Cryptographie utilisant
les Algorithmes AES et DES.
Notre application de cryptographie repose sur les algorithmes avancés de
chiffrement AES (Advanced Encryption Standard) et DES (Data Encryption
Standard). Nous avons choisi d’implémenter ces algorithmes en utilisant le
langage de programmation Python en raison de sa nature de haut niveau, de
sa vaste communauté de développeurs, et de sa flexibilité pour la création de
bibliothèques personnalisées.
29
contrôleur permettant de gérer la vue sur nos objets. Cette structure suit le
modèle MVC (Modèle-Vue-Contrôleur).
5.6.1 File
L’option ”File” offre une fonctionnalité permettant de chiffrer des données sous
forme de fichiers. Actuellement, notre application prend en charge le chiffrement
de fichiers au format texte (txt) et d’images (png, jpeg, gif). Nous travaillons
activement pour étendre cette prise en charge à d’autres formats tels que les
documents (docs), les archives (zip), les vidéos (mov, avi), les présentations
(ppt), et bien d’autres.
30
5.6.3 DES (Data Encryption Standard)
Similaire à l’option AES, le bouton ”DES” propose une fonctionnalité de chiffre-
ment et déchiffrement, cette fois en utilisant l’algorithme de chiffrement DES.
Cette option est également pensée pour sécuriser les communications en chiffrant
le texte saisi au clavier. Notre implémentation s’inspire de logiciels existants tels
que Veracrypt, GpgEx, EncryptOnClick, et d’autres solutions de chiffrement
couramment utilisées.
5.6.4 Help
Le bouton ”Help” fournit un accès facile à la documentation en ligne et hors
ligne. Les utilisateurs pourront y trouver des informations détaillées sur le
fonctionnement de l’application, des tutoriels d’utilisation, et des conseils de
sécurité. Cette ressource est essentielle pour guider les utilisateurs tout au long
de leur expérience avec l’application.
Nous allons maintenant passer à un exemple d’utilisation :
31
Puis sélectionnons maintenant l’option AES
Puis nous sélectionnons le fichier contenant notre clé de chiffrement
Après cette opération nous pouvons bien vérifier que c’est effectivement le bon
fichier que nous avons sélectionné
A cette étape, nous allons passer au choix de notre fichier contenant le texte
en claire que nous voulons chiffrer
Puis
Notons que nous pouvons aussi générer des clés de chiffrement à partir du
buttons de clé suivante.
32
33
34
35
6 Limites de Notre Système
Les travaux présentés ici, réalisés sous la supervision du Dr. EBELE, expert en
sécurité informatique, dans le cadre du cours d’introduction à la cryptographie,
demeurent actuellement incomplets. Bien que notre application soit fonction-
nelle, des aspects importants nécessitent encore des développements futurs pour
la rendre plus robuste et complète.
36
37
38
39
6.3 Gestion de la Communication Interne
Une autre limite actuelle réside dans la gestion de la communication entre les
différents objets de notre application. Nous sommes conscients que pour opti-
miser le fonctionnement de notre système, il est nécessaire d’améliorer la coordi-
nation et l’échange d’informations entre ces objets. Cela inclut une optimisation
des mécanismes de communication interne pour garantir une performance opti-
male et le design pattern.
7 Perspectives Futures
Nous restons déterminés à faire évoluer notre application, en tenant compte des
retours des utilisateurs, des avancées en cryptographie et des besoins croissants
en matière de sécurité. Notre objectif est d’offrir un outil de chiffrement complet,
fiable et adaptable, contribuant ainsi à la protection des données dans divers
contextes informatiques.
Conclusion
En conclusion, ce projet de développement d’une application de chiffrement
utilisant les algorithmes AES et DES a été une aventure enrichissante dans le
domaine de la cryptographie. Sous la direction de l’honorable Dr. EBELE, nous
avons pu explorer les concepts fondamentaux de la sécurité informatique et les
mettre en pratique.
L’utilisation du langage de programmation Python, associé à la bibliothèque
PyQt5 pour l’interface graphique, a permis la création d’une application con-
viviale, capable de chiffrer et de déchiffrer des données de manière sécurisée.
L’approche de développement orientée objet (POO) et l’architecture de modèle-
vue-contrôleur (MVC) ont contribué à la structure modulaire et à la mainten-
abilité du code.
Bien que notre application soit fonctionnelle, il reste des défis à relever et
des fonctionnalités à améliorer. La gestion de différentes tailles de clés pour
l’algorithme AES et l’optimisation de la communication entre les différents com-
posants sont des axes de développement futurs.
Dans le cadre de la sécurité informatique, la sensibilisation à l’importance de
protéger les données sensibles est cruciale. Notre application vise à fournir un
40
moyen accessible de renforcer la confidentialité des informations, en particulier
dans un monde numérique en constante évolution.
En poursuivant le développement de notre application, nous espérons con-
tribuer à la démocratisation de la cryptographie et à la sensibilisation à la
sécurité des données. Nous sommes déterminés à continuer d’explorer les avancées
technologiques, à intégrer les retours des utilisateurs et à répondre aux exigences
croissantes en matière de protection des informations.
Nous exprimons notre gratitude envers le Dr. EBELE pour son encadrement
et sa guidance tout au long de ce projet, ainsi qu’à tous ceux qui ont contribué
de près ou de loin à sa réalisation. Ce travail marque le début d’un engage-
ment continu dans la recherche et le développement de solutions de sécurité
informatique robustes et accessibles.
41
List of Figures
1 situation du contexte . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Illustration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Schéma général de l’AES . . . . . . . . . . . . . . . . . . . . . . . 15
4 Tableau multiplication . . . . . . . . . . . . . . . . . . . . . . . . 17
5 f() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6 Tableau Multiplicatif Inverse . . . . . . . . . . . . . . . . . . . . 21
7 Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8 création des sous-clés de 192 bits . . . . . . . . . . . . . . . . . . 28
9 création des-clés de 256 bits . . . . . . . . . . . . . . . . . . . . . 28
42