Memoire
Memoire
Memoire
Mémoire de Master
De Master
En:
Systèmes électroniques complexes
Par :
Melle.HADDOUCHE Khalissa
Thème
Amélioration de la génération des sous clés de
l’algorithme cryptographique DES
Soutenu le 25/09/2017 devant le jury composé de :
Nous remercions Dieu le tout puissant de nous avoir accordé la santé, le courage et la
volonté d’arriver au terme de ce travail.
Ainsi que tous nos enseignent qui nous ont enseigné durant nos études au département
de Génie Electriques.
À nos familles, notamment nos chers parents qui nous ont imbibés d’amour et
d’affection et à nos frères qui nous ont donnés un coup de main et ils ont contribué à ce que ce
modeste travail voie le jour.
Nous tenons à remarcier tous nous collégues d’étude, partculiérement notre promotion
Enfin, nous tenons aussi à exprimer notre profonde gratitude à toute personne de près
ou de loin, ceux qui nous ont encouragés.
Merci
Dédicaces
Je dédie ce modeste travail à :
entoure de sa bénédiction.
A ma chère
chè grand-mère : Fatima
de courage et de générosité
A ma belle famille
A ma binôme ASMA
KHALISSA
Table des matières
Introduction générale……………………...………………...…………………………………… 1
1.1 Introduction………………………………………………………………………………........ 3
1.3 La cryptographie…………………………………………………………………………....... 3
1.6 La cryptanalyse…..…………………………………………………………………………… 10
1.7Conclusion…………………………………………………………………………….……. … 12
i
Chapitre 2 : Principe de chiffrement par DES
2.4.7 Le déchiffrement…………………………………………………………………….......... 19
2.8 Conclusion…………………………………………………………………………………….. 22
3.1 Introduction…………………………………………………………………………………… 23
3.7 Conclusion…………………………………………………………………………………….. 31
4.1 Introduction…………………………………………………………………………………… 32
4.2 Implémentation VHDL de la génération des sous clés de l’algorithme DES …………….. 32
ii
4.3 Synthèse et Résultats d’implémentation de la génération des sous clés de DES classique.. 33
4.8 Conclusion…………………………………………………………………………………….. 57
Conclusion générale………………………………………………………………………………. 58
Références…………………………………………………………………………………………... 60
Annexe B : Code MATLAB de la génération des sous clés de DES amélioré …………………. 65
Annexe C : Code VHDL de la génération des sous clés de DES classique …………………….. 66
Annexe D : Code VHDL de la génération des sous clés de DES amélioré …………………….. 70
iii
Liste des figures
Chapitre 1
Fig1.1 : Schéma générale de la cryptologie……………………………………………………... 03
Fig.1.2 : Terminologies de la cryptographie…………………………………………………….. 04
Fig.1.3 : Les méthodes de la cryptographie moderne…………………………………………… 06
Fig.1.4 : Principe de cryptographie symétrique…………………………………………………. 07
Fig.1.5 : Principe de cryptographie asymétrique……………………………………………........ 08
Chapitre 2
Fig.2.1 : L’Algorithme de DES…………………………………………………………………. 14
Fig.2.2 : Schéma de la fonction f……………………………………………………………....... 16
Fig.2.3 : La génération de la clé………………………………………………………………… 19
Fig.2.4 : Double DES…………………………………………………………………………… 21
Fig.2.5 : Algorithme de TDES………………………………………………………………….. 21
Chapitre 3
Fig.3.1 : Diagramme de la génération des sous clés de l’algorithme de DES amélioré………... 24
Fig.3.2 : Résultat d’implémentation de DES classique sur MATLAB…………………………. 25
Fig.3.3 : Résultat d’implémentation de DES amélioré sur MATLAB………………………….. 26
Chapitre 4
Fig.4.1 : Diagramme de la génération des sous-clés de l’algorithme DES classique..……….... 33
Fig.4.2: Résultat de simulation avec K= (01010101 01010101)16……………………………… 34
Fig.4.3: Résultat de simulation avec K= (FEFEFEFE FEFEFEFE) 16………………………….. 35
Fig.4.4: Résultat de simulation avec K= (E0E0E0E0 F1F1F1F1)16……………….……………. 36
Fig.4.5: Résultat de simulation avec K= (1F1F1F1F 0E0E0E0E) 16……………….…………… 37
Fig.4.6: Résultat de simulation avec K= (01 FE 01 FE 01 FE 01 FE) 16………………………... 38
Fig.4.7: Résultat de simulation avec K= (1F E0 1F E0 1F E0 1F E0) 16…………………….….. 39
Fig.4.8: Résultat de simulation avec K= (01 E0 01 E1 01 F1 01 F1) 16………………………… 40
Fig.4.9: Résultat de simulation avec K= (1F FE 1F FE 0E FE 0E FE) 16……………………….. 41
Fig.4.10: Résultat de simulation avec K= (01 1F 01 1F 01 0E 01 0E) 16……………………….. 42
Fig.4.11: Résultat de simulation avec K= (E0 FE E0 FE F1 FE F 1FE) 16……………………… 43
Fig.4.12: Le schéma RTL le la génération des sous clés de l’algorithme DES classique………. 44
Fig.4.13: Diagramme de la génération des sous clés de l’algorithme DES amélioré…………… 45
Fig.4.14: Résultat de simulation avec K= (01010101 01010101)16.............................................. 46
Fig.4.15: Résultat de simulation avec K= (FEFEFEFE FEFEFEFE) 16………………………… 47
Fig.4.16: Résultat de simulation avec K= (E0E0E0E0 F1F1F1F1)16…………………………… 48
iv
Fig.4.17: Résultat de simulation avec K= (1F1F1F1F 0E0E0E0E) 16…………………………... 49
Fig.4.18: Résultat de simulation avec K= (01 FE 01 FE 01 FE 01 FE) 16………………………. 50
Fig.4.19: Résultat de simulation avec K= (1F E0 1F E0 1F E0 1F E0) 16………………………. 51
Fig.4.20: Résultat de simulation avec K= (01 E0 01 E1 01 F1 01 F1) 16……………………….. 52
Fig.4.21: Résultat de simulation avec K= (1F FE 1F FE 0E FE 0E FE) 16……………………… 53
Fig.4.22: Résultat de simulation avec K= (01 1F 01 1F 01 0E 01 0E) 16……………………….. 54
Fig.4.23: Résultat de simulation avec K= (E0 FE E0 FE F1 FE F 1FE) 16.................................... 55
v
Liste des tableaux
Chapitre 1
Chapitre 2
Chapitre 3
Chapitre 4
vi
Liste des abréviations
Abréviation Signification
AES Advanced Encryption Standard.
ANSI American National Standards Institute.
CLB Configurable logic block.
CPU Central Processing Unit.
DES Data Encryption Standard.
ECC Elliptic Curve Cryptography.
FPGA Field Programmable Gate Array.
GCLK Global Clock.
IBM International Business Machines.
FP Final Permutation.
IOB Input Output Bloc
IP Initial Permutation.
ISE Integrated Software Environment.
LUT Look Up Table.
NBS National Bureau of Standards.
NIST National Institute of Standards and Technology.
NSA National Security Agency.
PC1 Permuted Choice 1.
PC2 Permuted Choice 2.
RAM Random Access Memory.
ROM Read Only Memory.
RSA Rivest Shamir Adelman cryptosystem.
RTL Register Transfer Level.
S-Box Substitution Box.
TDES Triple DES.
VHDL Very height speed integrated circuit Hardware Description Language.
XOR Exclusive OR.
vii
Introduction Générale
L'information est un élément constitutif et déterminant dans tous les domaines. Depuis
l'invention de l'écriture, l'humanité exprime le besoin de transmettre leurs informations de manière
sécurisée en les rendant inintelligibles pour toute personne étrangère à l'échange, c'est-à-dire que les
messages ne peuvent pas être compris par l’ennemi, même s’ils sont interceptés. Ils se servaient
donc d’outils permettant de garder leurs confidences hors d’atteinte des yeux indiscrètes : signes et
symboles intelligibles, figures ou couleurs, usage d’expressions ou phrases convenues d’avoir un
sens spécifique qui diffère de l’ordinaire, etc. La progression de ces outils primitifs à travers le
temps, a permis de concevoir des règles de sécurité plus efficaces et plus logiques qui ont donné
naissance à la cryptologie.
La cryptologie est une science mathématique qui étudie les communications secrètes. Elle est
composée de deux domaines d’étude complémentaires : la cryptographie et la cryptanalyse [1], le
rôle des cryptographes est de construire des systèmes de chiffrement, l’objectif des cryptanalyses
est de " casser" ces systèmes [2].
1
Cette mémoire est organisée en quatre chapitres répartis comme suit :
Le Chapitre 1 amène un aperçu des techniques de cryptographie classique et moderne et de
ses deux types à savoir cryptographies symétrique et asymétrique tout en définissant les algorithmes
de chiffrement les plus connus.
Le chapitre 2 présente une discussion de l'algorithme cryptographique DES avec une
explication détaillée de son principe de fonctionnement.
Le Chapitre 3 propose d’un DES amélioré avec l’implémentation de deux versions (classique
et améliorée) de DES sur MATLAB dans le but de la validation et la vérification des résultats.
Le Chapitre 4 montre l’implémentation du DES classique et amélioré sur FPGA ainsi que les
résultats expérimentaux compilés. Nous terminons ce rapport par une conclusion et la présentation
de perspectives.
2
Chapitre 1
Généralités sur la cryptologie
3
Chapitre I : Généralitéss sur la cryptologie
1.1. Introduction
L'information est un élément
ment constitutif
constitut et déterminant
terminant dans tous les domaines. Tout au long de
l'histoire, l'humanité a essaye d'envoyer des informations d'une façon sécurisée.
sécurisé Alors comment
assurer la sécurité d’échange d’information ?
La cryptologie est un moyen approprié pour assurer la sécurité de l'information en utilisant les
le
mathématiques pour atteindre des objectifs tels que : la confidentialité, l’authenticité et l’intégrité
l’in
des messages échangés à travers des voies de communication. Dans ce chapitre, nous donnons un
aperçu des techniques de cryptographie classique et moderne et de ses deux types à savoir
cryptographies symétrique et asymétrique tout en définissant les algorithmes de chiffrement les plus
connus.
1.2. Domaines de cryptologie
1.3. La cryptographie
La cryptographie, partie intégrante de la cryptologie, une science au croisement des
mathématiques, de l'informatique, et de la physique, qui étudie l’ensemble de techniques permettant
de chiffrer un message et de le rendre inintelligible
inintelligible sauf pour son destinataire : cette opération
s’appelle le chiffrement [3] [4].. Elle fournit un message chiffré ou cryptogramme (en anglais
ciphertext),
), à partir d’un message en clair (en anglais plaintext). Inversement, le déchiffrement est
l’action de reconstruire le texte en clair à partir du texte chiffré. Ces fonctions de chiffrement et
3
Chapitre I : Généralitéss sur la cryptologie
4
Chapitre I : Généralités sur la cryptologie
La plupart des méthodes de cryptographie classique reposent sur deux principes essentiels : la
substitution et la transposition [10].
1.3.2.1. La cryptographie par substitution
La substitution consiste à remplacer certaines entités (généralement des lettres) par d'autres
ou par des symboles dans un message [10]. On distingue généralement plusieurs types de crypto
systèmes par substitution [1] [3]:
La substitution mono-alphabétique : est le plus simple à imaginer consiste à remplacer
chaque lettre du message par une autre lettre de l’alphabet. Comme le chiffrement par décalage.
La substitution poly alphabétique : Consiste à utiliser une suite de chiffres mono
alphabétique réutilisée périodiquement.
La substitution homophonique: Permet de faire correspondre à chaque lettre du message en
clair un ensemble possible d'autres caractères.
La substitution de poly grammes : Consiste à substituer un groupe de caractères (poly
gramme) dans le message par un autre groupe de caractères.
5
Chapitre I : Généralités sur la cryptologie
6
Chapitre I : Généralités sur la cryptologie
Le chiffrement symétrique se divise en deux parties : chiffrement par bloc (block ciphers) et
chiffrement par flot (stream ciphers) [9].
Chiffrement par flot : dans un crypto système par flots, le cryptage des messages se fait caractère
par caractère ou bit par bit, au moyen de substitutions générées aléatoirement, la taille de la clé est
donc égale à la taille du message [9] [15].
Chiffrement par bloc : dans un algorithme de chiffrement par bloc, chaque message clair est
découpé en blocs de taille fixe de même longueur et chiffré à l’aide d’une clé unique. Ces
algorithmes sont en général construits sur un modèle itératif. Il utilise une fonction F qui prend une
clé secrète k et un message M de n bits. La fonction F est itérée un certain nombre de fois (nombre
de tours). Lors de chaque tour, la clé k est différente et on chiffre le message qui vient d’être obtenu
de l’itération précédente. Les différentes clés k(i) qui sont utilisées sont déduites de la clé secrète k.
Les algorithmes les plus connus des systèmes cryptographique symétriques sont : le DES et l’AES
[2].
1.3.3.1.1. DES (Data Encryption Standard)
La norme DES (Data Encryption Standard) est adoptée par NSA en 1967. C’est un
algorithme de chiffrement par bloc qui rassemble les deux techniques de base : la confusion
(substitution) et la diffusion (permutation) [17]. Et consiste à chiffrer un bloc de texte de 64 bits
pour produire un cryptogramme de 64 bits a partir d’une clé de 56 bits [3].
7
Chapitre I : Généralités sur la cryptologie
L’AES est un algorithme de chiffrement par bloc utilisant des clés de 128, 192 ou 256 bits. Le
nombre de rondes dépend de la taille des clés : 10 rondes pour des clés de 128 bits, 12 rondes pour
des clés de 192 bits et 14 rondes pour des clés de 256 bits. Enfin, la taille des blocs est de 128 bits.
Chaque ronde d’un bloc est constituée d’une succession de XOR avec la sous-clé correspondante,
d’une fonction de substitution et de permutation [10]. Les fonctions de substitution et de
permutation sont utilisées pour garantir la confusion (aucune propriété statique ne peut être déduite
du message chiffré) et la diffusion (toute modification du message en clair se traduit par une
modification complète du chiffré). Le choix des clés dépend du niveau de protection que l’on
souhaite attribuer aux documents ; c’est ainsi que la NSA recommande l’emploi des clés de 192 ou
256 bits pour des documents top-secrets [18]. Enfin, les algorithmes de chiffrement par bloc sont
plus rapides que les algorithmes par flot à cause de leur parallélisme. Sans oublier que tout secret
doit être dans la clé et pas dans l’algorithme car les algorithmes de chiffrement sont connus par tout
le monde [9].
8
Chapitre I : Généralités sur la cryptologie
L’algorithme à clef publique RSA (Rivest, Shamir et Adleman) a été inventé en 1977 par
Ronald Rivest, Adi Shamir et Leonard Adleman. Sa sécurité réside dans la difficulté à factoriser le
produit de deux grands nombres premiers [19] [21].
Le principe de l’algorithme RSA est le suivant :
Le destinataire choisit deux grands nombres premiers p et q de même ordre et calcule leur
produit N= p×q est (représente le module public). Il choisit également un nombre e tel que e et
(p- 1) ×(q-1) soient premiers entre eux. La clef publique est le couple (N, e) La clef privée d est
quant à elle calculée comme : e. d = ((p-1). (q-1)). N et e sont rendus publics.
La sécurité de l'algorithme RSA repose sur la difficulté de factoriser les grands nombres :
factoriser un grand nombre N en deux nombres premiers p et q et retrouver la clef privée d à partir
de N et e [4] [19].
Les courbes elliptiques sont un sujet très à la mode en mathématiques, très complexes et très
riches en même temps. Elles sont à l'origine de nouveaux algorithmes de cryptographie très sûrs, et
on entrevoit les prémices de leur utilisation pour la factorisation de grands nombres entiers [23]. En
cryptographie, les courbes elliptiques peuvent être utilisées pour des opérations asymétriques
comme des échanges de clés sur un canal non-sécurisé ou un chiffrement asymétrique.
Les clés employées pour un chiffrement par courbe elliptique sont plus courtes qu'avec un
système fondé sur le problème de la factorisation comme La cryptographie à clé publique du RSA
(une clé de 160 bits lorsque RSA utilise une clé de 1024 bits, à un niveau de sécurité équivalent)
Cela signifie des calculs plus rapides et une consommation d'énergie plus faible ainsi que des
9
Chapitre I : Généralités sur la cryptologie
1.6. La cryptanalyse
La cryptanalyse, a l’inverse de la cryptographie, est l’étude des procédés cryptographiques
dont le but est de reconstruire les messages en clair correspondant à des messages chiffrés dons on
n’est pas destinataire à l’aide de méthodes et techniques mathématiques sans connaître la clef de
chiffrement [4] [7] [12] [27] [28].
10
Chapitre I : Généralités sur la cryptologie
Une tentative de cryptanalyse d'un système est appelée une attaque, et elle peut conduire à
différentes résultats :
Cassage complet : le cryptanalyste retrouve la clef de déchiffrement.
Obtention globale : le cryptanalyste trouve un algorithme équivalent à l'algorithme de
déchiffrement, mais qui ne nécessite pas la connaissance de la clef de déchiffrement.
Obtention locale : le cryptanalyste retrouve le texte en clair correspondant à un message
chiffré.
Obtention d'information : le cryptanalyste obtient quelques indications sur le texte en clair ou
la clef (certains bits de la clef, un renseignement sur la forme du texte en clair,...) [21].
Une attaque cryptanalytique se caractérise selon des données dont elle dispose, ainsi on peut
trouver quatre situations de cryptanalyse :
Attaque sur texte chiffré seul : disposition seulement d’un nombre fini de textes chiffrés pour
retrouver la clef de déchiffrage.
Attaque à texte clair connu : disposition de couple de message (clairs, chiffrés).
Attaque à texte clair choisi : l'attaquant a accès à l'algorithme de chiffrement et il l’utilise pour
générer le couple (clairs, chiffrés).
Attaque à texte chiffré choisi : Le cryptanalyste peut choisir les textes à déchiffrer sans
connaître la clef [29].
1.6.1. Cryptanalyse différentielle
L’idée de la cryptanalyse différentielle revient à (Biham & Shamir, 1991) Il s’agit d’une
attaque basée sur des données claires choisies [5] [30]. La cryptanalyse différentielle est un type
d'attaques qui peut-être utilisé contre les algorithmes de chiffrement par blocs itératifs. Elle utilise
une attaque à texte en clair choisi et se base sur l'observation de l'évolution des différences entre
deux textes lorsqu'ils sont chiffrés avec la même clef. En analysant ces différences entre paires de
textes, il est possible d'attribuer des probabilités à chaque clef possible. A force d'analyser des
paires de textes, on finit soit par trouver la clef recherchée, soit par réduire suffisamment le nombre
de clefs possibles pour pouvoir mener une attaque exhaustive rapide [21].
Fût proposée par (H. Gilbert et par M. Matsui 1993) et destinée à casser les chiffrements
symétriques [5] [30], La cryptanalyse linéaire utilise une attaque à texte en clair connu et consiste à
modéliser l'algorithme de chiffrement par blocs par une approximation linéaire. Avec un nombre
suffisant de paires (texte en clair, texte chiffré), on peut deviner certains bits de la clef [21].
11
Chapitre I : Généralités sur la cryptologie
Comme la plupart des attaques aux chiffrements par blocs, la cryptanalyse linéaire cible le
dernier tour de l’algorithme de chiffrement et tente de déterminer un ensemble de positions des bits
, ,.., du texte clair et un autre ensemble de positions , ,.., des bits du texte chiffré
(avec m pas forcément égal à n) tel que la somme de chaque série de bits prend la même valeur pour
la plupart des textes clairs utilisés [5] [30].
1.7. Conclusion
Dans ce chapitre, nous avons définit la cryptologie et ses deux domaines d’étude
complémentaires : la cryptographie et la cryptanalyse. Après nous avons présenté les deux
différents types de chiffrement moderne symétrique tel que AES et DES (clé secrète) et
asymétrique tel que le RSA (clé publique) et enfin une comparaison (avantages et inconvénients)
entre ces deux types. Dans le chapitre qui suit nous parlerons en détails sur l’un des protocoles de
chiffrement symétrique (DES) avec une explication détaillée sur son principe de fonctionnement.
12
Chapitre 2
Principe de chiffrement par
DES
13
Chapitre II principe de chiffrement par DES
2.1. Introduction
Après avoir présenté des généralités sur la cryptographie, nous avons remarqué que la
cryptographie symétrique est rapide et simple à implémenter car elle nécessite des clés de petites
tailles. L'algorithme DES figure parmi les algorithmes les plus utilisés pour la sécurité de
l’information. Dans ce chapitre, nous allons décrire le principe de fonctionnement de DES tout en
définissant ses différentes étapes ainsi que son algorithme et la cryptanalyse réalisée sur lui.
DES signifie Data Encryption Standard, selon la dénomination de l’ANSI (American National
Standards Institute) [6]. Le développement de ce standard a été lancé en 1972 ; il s’agissait de
proposer un algorithme efficace, implantable facilement sur du matériel à bas coût, versatile, et
suffisamment sûr pour être proposé comme algorithme « universel » de chiffrement pour l’industrie
et l’administration américaines (sauf les communications classées secrètes, dont l’utilisation et le
transfert sont beaucoup plus encadrés). Le NBS (National Bureau of Standards, devenu ensuite le
NIST, National Institute of Standards and Technology) a lancé deux appels d’offre, en 1973 et 1974
; IBM a envoyé comme réponse au second l’algorithme Lucifer [3]. Le NBS, IBM et la NSA
(National Security Agency) ont ensuite collaboré pour modifier l’algorithme (afin, officiellement,
d’augmenter sa sécurité) et régler quelques détails juridiques (IBM avait un brevet sur Lucifer).
L’algorithme obtenu a été publié en 1975, et la norme elle-même a été rendue publique en 1977
[31].
Le DES est un algorithme de chiffrement symétrique par bloc de 64 bit [3]. C’est notamment
celui qui est encore en vigueur pour chiffrer les mots de passe sur les systèmes Unix. Et pour être
un système de chiffrement à clé secrète « calculatoirement sûr » [32] [33]
Il a certains domaines d’utilisations très vastes telles que les cartes magnétiques et les cartes à
puces [3].
13
Chapitre II principe de chiffrement par DES
Le DES a été construit pour fonctionner aussi bien de façon logicielle que matérielle.
L’algorithme utilise une clé K de 56 bits, pour chiffrer des blocs de 64 bits, et fournit un
cryptogramme C de 64 bits en sortie [32].
Le bloc de texte clair subit d’abord à M une permutation initiale IP donnant le message
′
« permuté » est en suite divisé en deux mots de 32bits : (L pour left) qui représente la partie
′
gauche de et (R pour right) pour la partie droite [32], puis on itère 16 fois une procédure où
la moitié droite est recopié telle quelle à gauche et la moitié gauche et transmise à droite en
subissant au passage une modification dépendant de la clé [27]. A la fin, on inverse les moitié
gauches et droites (ou bien supprime le croisement de la dernière étape comme il est présent dans la
figure 2.1), et on applique l’inverse de la permutation initiale pour obtenir le bloc chiffré. Le
schéma général de DES est donc le suivant (on a seulement représenté quelques-unes des 16 étapes)
[34]: 56-bits Key
Plaintext
PC-1
IP
f K1
PC-2
f K2 PC-2
= = ( , )
K16 PC-2
f
= ( , ) =
IP-1
Ciphertext
Figure.2.1 : L’Algorithme de DES [6].
14
Chapitre II principe de chiffrement par DES
La structure de Feistel garanti que le cryptage et le décryptage sont des procédés similaires.
La seule différence c'est que les sous-clés sont appliquées dans l'ordre inverse pendant le
décryptage. Cela simplifie l'implantation, notamment en matériel, car il n'est point question de
séparer les modules de cryptage et de décryptage [34].
Dans un premier temps, chaque bit d'un bloc est soumis à la permutation initiale, pouvant être
représentée par la matrice de permutation initiale (notée PI).
A la fin des itérations, les deux blocs G et D sont obtenus, puis soumis à la permutation
initiale inverse [34].
La permutation initiale et son inverse sont décrits par (la figure2.1). Les tableaux se lisent de
gauche à droite et de haut en bas, le n-iéme nombre est la position avant permutation du bit qui se
trouve en n-iéme position après permutation [11].
Une fois la permutation initiale réalisée, le bloc de 64 bits est scindé en deux blocs de 32
bits, notés respectivement G et D (pour gauche et droite. On note Go et Do l'état initial de ces deux
blocs. Il est intéressant de remarquer que Go contient tous les bits possédant une position paire dans
le message initial, tandis que Do contient les bits de position impaire [34].
15
Chapitre II principe de chiffrement par DES
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
G0
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
D0 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
′
Le texte permuté de 64 bits, chiffre en 16 tours, suivis par l'inverse de la permutation
initiale (IP-1). A chaque tour, les 32 bits du côté droit ( ) du bloc sont transformées avec la
fonction marquée (F) et une sous-clé, puis OU exclusif (XOR) avec le côté gauche ( ) de 32 bits.
Après chaque tour, les deux côtés du bloc de données sont inversés et l'algorithme continue de la
même façon pour les autres tours [6] [32].
2.4.4. fonction f
D i-1
Ki
32
48
Expansion
48
6 48
6 6
4 4 4
32
Permutation
32 Si Fonction F
16
Chapitre II principe de chiffrement par DES
et précisée par la figure 2.2. Ensuit, on calcule le ou exclusif de cet argument expansé avec le
deuxième argument (qui n’est autre que la clé ) [3]. La fonction f est défini en utilisant huit
permutation appelées s-boxes pour substitution en anglais [10], qui associent à 6 bits d’entrée 4 bit
de sortie le résultant possède 48 = 8×6 bits et est transformé en une chaîne de 32 = 8×4 bits,
chaque clé de tour contient un sous-ensemble différent des 56 bits de la clé. En fin on applique la
′
permutation d’écrit par le tableau 2.3 à ces 32 bits (pré-cryptogramme =( , )) pour obtenir
la valeur de f (le cryptogramme final c) [32].
2.4.5. Boîtes S
Le DES utilise huit boîtes de substitution (les S-Boxes) différentes ( qui furent l’objet de
nombreuses controverses quant à leur contenu [20]. On les représente par des tableaux à 32 ligne et
16 colonnes.les premiers et derniers bits de l’entrée déterminent une ligne du tableau, les autres bits
déterminent une colonne [4]. La sélection de la colonne se faisant sur 4 bits, il y a 16 possibilités (0
à 15). Grâce à cette information, la fonction de sélection sélectionne une valeur codée sur 4 bits
[34].
17
Chapitre II principe de chiffrement par DES
S0 S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
4 1 14 8 13 6 2 11 15 12 9 7 8 10 5 0 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S2 S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 7 0 9 3 4 6 10 2 8 5 14 12 12 15 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S4 S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 4 8 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S6 S7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 3 1 13 2 8 12 6 15 11 1 10 9 3 14 5 0 12 7
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
La clé initiale de 64 bits subit, dans un premier temps une première permutation (une
réduction de 8 bits les bits de parité de chaque octet).La chaîne de caractère résultante de 56 bits est
alors divisée en 2 blocs de 28 bits ( et ). Chacun d’eux subira alors un décalage à gauche. Les
deux nouveaux blocs ( et ) seront alors concaténé avec une nouvelle permutation (une
outre réduction de 8 bits). On obtient alors une clé partielle de 48 bits [6] [10]. On réitérera ces
opération 15clés ( , ,…, ). La différence résidera dans l’incrémentation des paramètres des
deux permutations [11].
Permutation Permutation
57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 21 6 15 28 3 5 1 24 11 17 14
10 2 59 51 43 35 27 19 11 3 60 52 44 36 2 13 20 27 7 16 8 26 4 12 19 23
63 55 47 39 31 23 15 7 62 54 46 38 30 22 48 33 45 51 40 30 55 47 37 31 52 41
14 6 61 53 45 37 29 21 13 5 28 20 12 4 32 29 36 50 42 46 53 34 56 39 49 44
Ensuit, pour chaque itération, les bits de la clé principale subiront des décalages circulaires à
gauche d’un ou deux bits selon chaque itération de la manière suivante :
18
Chapitre II principe de chiffrement par DES
Itération 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Nombre de 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
décalages
i =1
Permutation CP1
56bit
28 bits 28 bits
56 bits
Permutation CP2
i i+1
Non
i >16 ?
2.4.7. Déchiffrement
Le déchiffrement est effectué par le même algorithme, mais cette fois-ci en inversant l’ordre
d’application des clés, c'est-à-dire en utilisant à la première itération, à la seconde…de à
la seizième. Cela est dû ou fait que la permutation final est l’inverse de la permutation initiale et
= ; = ⊕ ( , )
19
Chapitre II principe de chiffrement par DES
Observons que si l’ordre des clés de tour est inversé, l’algorithme, quant à lui, reste identique
[10] [11].
– La recherche exhaustive par force brute : on teste toutes les clés possibles, l’une après l’autre, afin
de déchiffrer un bloc de données. On a besoin, en moyenne, de 2 55 essais [35].
– Une machine dédiée au calcul des clés : Deep Crack (Des Cracker, élaboré par l’Electronic
Frontier Foundation) a coûté moins de 250’000 dollars. Elle disposait de 1850 processeurs en
parallèle pour un temps de recherche de 56 heures (1998) [35].
– Le calcul distribué : un regroupement d’ordinateurs par Internet qui partagent leur puissance de
calcul. En 1998, Distributed.net a pu décrypter un message en 39 jours. Le 19 janvier 1999, EFF et
Distributed.net ont cassé en travaillant conjointement une clé en 22 heures et 15 minutes [35].
– Depuis 2006, un autre ordinateur dédié, nommé COPACABANA2, permet de casser une clé DES
en 9 jours. En 2008, des améliorations logicielles ont même permis de diminuer le temps de
recherche à 6,4 jours. Son avantage est son coût : 10.000$. On peut donc facilement en acquérir
plusieurs et donc diminuer le temps de recherche en conséquence. Par exemple, pour 4 machines
acquises (=40,000$), il faudra compter 1,6 jour de recherche [35].
– Cryptanalyse linéaire : Pour casser l’algorithme DES, Mitsuri Matsui a conçu en 1993 cette
technique de cryptanalyse linéaire. Cet algorithme est une attaque à texte clair connu [10].Son
principe tire profit des probabilités élevées des occurrences des expressions linéaires déduites du
texte clair et du texte chiffré. Ces expressions linéaires sont construites à partir d’approximation
linéaire de l’algorithme à crypter. Pour crypter l’algorithme DES, une bonne implémentation aura
20
Chapitre II principe de chiffrement par DES
besoin à peu près de 239 couples chiffrés par la même clé. La faille du DES réside à une certaine
caractéristique linéaire de ses S-Box (table de substitution) qui doivent être normalement non
linéaires. Chaque algorithme de cryptage doit résister à cette attaque [17] [35].
– Il existe d’autres attaques spécifiques au DES (Davie’s attack, ou des attaques sur des versions
simplifiées du DES) mais qui n’entrent pas dans le cadre de cette mémoire [35].
Suite aux failles du DES, quelques modifications ont été apportées, mais pas toujours avec
succès. Ce fut notamment le cas avec le 2DES.
Il faut tout d’abord choisir deux clefs et . Le principe du 2DES est de chiffrer deux fois le
message :
E( ,E( , m))
Il a été prouvé que 2DES était équivalent à un DES avec une clé de 57 bits. Il faut donc seulement
deux fois plus de travail pour le briser (257 = 2 ∗256).
K1 K2
X
P E E C
Encryption
K2 s K1
X
D D P
C
Décryptions
Le 2DES est sensible à l’attaque Meet-in-the-middle, autrement dit, un intrus peut s’introduire dans
l’échange et retrouver la clé utilisée [35].
Avec la technologie actuelle (des CPU très rapides et moins chers), il est hautement possible
de cracker DES. La solution a été au premier temps d’adopter le triple DES (TDES ou 3DES) : 3
applications de DES à la suite avec 2 clés différentes (112 bits) (Figure 2.5) [1].
21
Chapitre II principe de chiffrement par DES
Le TDES est une variante du DES qui consiste à appliquer l'algorithme trois fois à chaque
bloc : chiffrement, déchiffrement puis de nouveau chiffrement. Les clefs utilisées pour chaque
application du DES peuvent être toutes les trois distinctes, ou bien on peut utiliser seulement deux
clefs distinctes : une pour le chiffrement et une pour le déchiffrement. Dans tous les cas, la longueur
efficace de la clef du Triple DES ne dépasse pas 112 bits [21] [36]. Le TDES permet d’augmenter
significativement la sécurité du DES, toutefois il a l’inconvénient majeur de demander également
plus de ressources pour le chiffrement et le déchiffrement [11].
2.8. Conclusion
22
Chapitre 3
Proposition d'un DES
amélioré
23
Chapitre III : Proposition d'un DES amélioré
3.1. Introduction
Dans le chapitre précédent nous avons étudié le principe de fonctionnement du DES. Nous
avons vu que la sécurité de cette algorithme repose sur la génération de sous clés. Ces dernières sont
parfois redondantes à cause de l'utilisation de certaines clés faibles.
Dans ce chapitre, nous allons proposés une approche pour avoir des sous clés non redondantes
ainsi que pour augmenter la complexité de génération de sous clés. Par la suite, nous allons
implémenter de deux versions du DES avec/ et sans l’approche proposée.
DES utilise 16 sous clés de 48 bits générées à partir d'une clé principale de 56 bits (64 bits si
l'on considère également les bits de parité).
- 01010101 01010101
- FEFEFEFE FEFEFEFE
- E0E0E0E0 F1F1F1F1
- 1F1F1F1F 0E0E0E0E
-01 FE 01 FE 01 FE 01 FE
-1F E0 1F E0 1F E0 1F E0
-01 E0 01 E1 01 F1 01 F1
-1F FE 1F FE 0E FE 0E FE
-01 1F 01 1F 01 0E 01 0E
-E0 FE E0 FE F1 FE F1FE
-Étendant le DES aux chemins de données de 128 bits et aux clés de 112 bits.
23
Chapitre III : Proposition d'un DES amélioré
Nous avons proposé une approche pour avoir des sous-clés non redondantes, cette approche
expose l’utilisation de ou exclusif entre les 64 bits de la clé initiale KK comme il est bien expliqué
dans la figure 3.1
Tout d’abord nous avons appliqué une rotation par bit qui implique que : RK = rotation de
KK par 1bit.
⊕ (K) = Clé de 64
bits
Permutation PC1
(RK) = rotation de KK
par bit
<<< <<<
Sous-clé1 (48 bits)
Permutation PC2
<<< <<<
Sous-clé2 (48 bits)
Permutation PC2
<<< <<<
Sous-clé16 (48 bits)
Permutation PC2
Programmation:
Nous allons faire une programmation en deux langages différents pour les raisons. Nous
utilisons MATLAB pour vérifier la validité de l'algorithme (présentée dans ce chapitre) et VHDL
pour les matérielles de réalisation du protocole (présenté dans le chapitre 4).
24
Chapitre III : Proposition d'un DES amélioré
Figure.3.2 : Résultat
Résultat d’implémentation de DES classique sur MATLAB.
MATLAB
25
Chapitre III : Proposition d'un DES amélioré
- Résultat d’implémentation
implémentation de DES amélioré sur MATLAB :
26
Chapitre III : Proposition d'un DES amélioré
27
Chapitre III : Proposition d'un DES amélioré
Tab.3.1 : Résultats d’implémentation des clés faibles de la génération des sous clés de DES
classique et amélioré.
D’après la simulation des clés faibles dans les 2 programmes classique et amélioré .nous avons
remarqué que : notre approche proposée réduite la faiblesse dans les 2 clés faibles
(FEFEFEFEFEFEFEFE) 16 et (01010101 01010101)16. Et pour les autre clé nous avons obtenue des
très bons résultats.
- Résultat d’implémentation de DES classique et amélioré des sous clés demi-faibles :
clé Classique Amélioré
1) 9153E5 431BBD 1) 000000 222183
01 FE 01 FE 01 FE 01 FE 2) 6EAC1A BCE642 2) 000000 262183
3) 6EAC1A BCE642 3) 000000 260143
4) 6EAC1A BCE642 4) 000000 468142
5) 6EAC1A BCE642 5) 000000 448548
6) 6EAC1A BCE642 6) 000000 489448
7) 6EAC1A BCE642 7) 000000 48D428
8) 6EAC1A BCE642 8) 000000 085C28
28
Chapitre III : Proposition d'un DES amélioré
29
Chapitre III : Proposition d'un DES amélioré
D’après la simulation des clés demi-faibles dans les deux programmes classique et amélioré
nous avons remarqué que notre aproche proposé réduit la faiblesse dans certaine clés comme la clé
30
Chapitre III : Proposition d'un DES amélioré
k = (01FE01FE 01FE01FE) 16 et la clé (1FE01FE0 0EF10EF1)16. Et pour les restes clés nous avons
obtenue des trés bonne résultats car notre approche proposée éliminé définitivement le redondantes.
Remarques
- Pour l’implémentation de DES classique (les 4 clés faibles), toutes les sous-clés produites
sont identique et redondantes 16 fois. Et aussi les 6 paires clés demi-faibles produites des
sous clés redondantes.
- Dans l’implémentation de DES amélioré nous remarquons qu’il n’existe aucune sous-clés
redondantes pendant les 16 rondes.
- La clé faible (FFFFFFFF FFFFFFFF) 16 doit être évitée.
- L’utilisation de la clé (00000000 00000000)16 permettre la vérification et la validation du
programme.
3.7. Conclusion
Après l’étape de l’amélioration au niveau de la génération des sous clés, le DES amélioré
donner des sous clés non redondantes.
L’approche proposée, l’utilisation du "ou exclusif XOR", est une méthode utiliser pour
augmenter la complexité de génération de sous clés et l’élimination de la touche faible de DES
(réduit dans certain cas et éfficace pour les autres cas).
Nous allons entamer dans le chapitre suivant, l’implémentation des deux versions : classique et
amélioré du DES sur FPGA.
31
Chapitre 4
Implémentation du DES
amélioré sur FPGA
32
Chapitre 4 : Implémentation du DES amélioré sur FPGA
4.1. Introduction
L’implémentation de deux versions classique et amélioré de l’algorithme DES sur un circuit
FPGA (Field Programmable Gate Array) consiste en la programmation des circuits à l’aide du
langage de description de haut niveau VHDL (Very height speed integrated circuit Hardware
Description Language). Nous allons donc décrire les circuits sous la forme d’algorithme VHDL,
et ce, après avoir choisi les contraintes d’implémentation. La seconde étape consiste à effectuer une
simulation fonctionnelle des circuits à l’aide du simulateur MODELSIM. La dernière étape consiste
à comparer les résultats obtenus.
1- Les boites de permutation : réorganisent les bits d’une chaîne de bits [38].
2- les registres : Les registres (tampons de données) peuvent être mis en œuvre soit dans la logique
combinatoire, soit en utilisant des éléments de mémoire RAM. La plupart des FPGA modernes ont
des éléments RAM / ROM intégrés qui sont plus efficaces que la logique combinatoire à ces fins
[38].
3- Registres de décalage : sur laquelle les données doivent être déplacées à gauche ou bien a
droite [38].
4- Multiplexeurs : Les multiplexeurs peuvent être facilement implémentés à l'aide d'une logique
combinatoire qui permet d’aiguiller une entrée parmi 2n vers une sortie en fonction d’entrée de
sélection [38].
Tout d’abord, la clé initiale de 64 bits passe par la boite de permutation (la permutation PC1)
et le multiplexeur pour sélectionner 56 bits. Les 56 bits sont alors divisés en deux parties de 28 bits
chacune. A partir de ce moment chaque moitié est traitée séparément. Dans des itérations (rondes)
successives les deux parties de la clé sont rotationnels d’un ou deux bits (spécifique à chaque
itération) [34]. Dans cette partie nous avons besoin de registre de décalage pour les données
déplacées à gauche. Après cette partie nous avons besoin de registre (de 56 bits) pour stocker les
résultats de chaque boucle et les transmettre au multiplexeur [38]. La sortie du registre de données
32
Chapitre 4 : Implémentation du DES amélioré sur FPGA
passe par la permutation PC2 et alors une sous clés de 48 bits est choisi par le PC2, 24–bits de la
moitie gauche et 24 bit de la moitie droite [34].
Boites de permutation
Key
PC1box
Key Loop
Sub-Key
PC2box
Multiplexeur Mux56
LSHIFT_1C LSHIFT_1D
Registres
de décalage
LSHIFT_2C LSHIFT_2D
Registres reg56
Key Loop
Figure 4.1 : Diagramme de la génération des sous clés de l’algorithme DES classique [38].
- Le but principal de la synthèse est de déterminer l'efficacité de la mise en œuvre sur la carte FPGA
en vérifiant la quantité de ressources logiques nécessaires pour implémenter cette conception sur la
carte FPGA.
33
Chapitre 4 : Implémentation du DES amélioré sur FPGA
- Le but principal
cipal de la simulation est d’assurer que les résultants obtenus par MTLAB et VHDL
sont identiques.
- Les résultants de la simulation de la génération de sous clés de l’algorithme DES classique à partir
du simulateur Modèlsim sont présentées dans les figures (4.2,
4.2, 4.3, 4.4, 4.5, 4.6 4.7, 4.8, 4.9, 4.10,
4.11).
Figure.4.2: Résultat
Résulta de simulation avec K= (01010101
01010101 01010101)
01010101 16.
D’après la simulation de la clé faible (01010101 01010101)16 toutes les16 sous clés
résultants sont identiques (tout les sous clés
clé = (000000 000000)16).
34
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.3: Résultat
Résultat de simulation avec K= (FEFEFEFE FEFEFEFE) 16.
35
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.4: Résultat
Résulta de simulation avec K= (E0E0E0E0
E0E0E0E0 F1F1F1F1)
F1F1F1F1 16.
36
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.5: Résultat
Résulta de simulation avec K= (1F1F1F1F
1F1F1F1F 0E0E0E0E)
0E0E0E0E 16.
D’après la simulation de la clé faible (1F1F1F1F 0E0E0E0E)16 toutes les16 sous clés
résultants sont identiques (tout les sous clé= (000000 111111)16).
37
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.6: Résultat
Résulta de simulation avec K= (01 FE 01 FE 01 FE 01 FE) 16.
38
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.7: Résultat
Résulta de simulation avec K= (1F
1F E0 1F E0 0E F1 0E F1) 16.
39
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.8: Résultat
Résulta de simulation avec K= (01 E0 01 E1 01 F1 01 F1) 16.
40
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.9: Résultat
Résulta de simulation avec K= (1F FE 1F FE 0E FE 0E FE) 16.
41
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.10: Résultat
Résulta de simulation avec K= (01 1F 01 1F 01 0E 01 0E) 16.
42
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.11: Résultat
Résulta de simulation avec K= (E0 FE E0 FE F1 FE F 1FE) 16.
43
Chapitre 4 : Implémentation du DES amélioré sur FPGA
A travers le schéma RTL, nous avons remarqué que : la boite noire de l’implémentation de
notre algorithme représente juste les nombres des entrés/sorties (1 entré "Key" et 16 sorties
"K1…K16"). A l’interne de cette boite noire on trouve 17 boites de permutation (boite de
permutation PC1 et 16 poites de permutation PC2). Et le chemin d’interconnexion.
Le tableau 1 fournit les données d'exploitation dans le programme classique de la génération des
sous clés de DES:
Tab.4.1 : Les
es données d’exploitation
d’exploitation de l’algorithme DES classique.
classique
44
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Le tableau précédent montre les ressources matérielles occupées par les FPGA
(Spartan3(XC3S4000L), et virtex(XCV1000)) et la fréquence de simulation pour l’implémentation
de programme classique.
- Pour les ressources matérielles nous avons utilisé 825 IBOS ,32 slices, 56 luts, 56 flip flops et 1
GCLKs.
- La simulation de programme dans FPGA de type Spartan3, utilisé une fréquence maximale égale
294.291 MHZ dans un période de 3.398 (ns).et pour FPGA de type virtex utilisé moine de
fréquence qui égale 189.251(MHZ) dans une période de 5.284.
Key
PC1box
Key Loop RK= KK rotation par bit
Sub-Key
PC2box
Registre
Multiplexeurs
Mux56
K = KK RK
LSHIFT_2C LSHIFT_2D
Registres reg56
Key Loop
(a)
Figure.4.13 : a) Diagramme de la génération des sous clés de l’algorithme DES
amélioré. B) Diagramme de OU exclusif entre les éléments de la clé.
45
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.14: Résultat
Résulta de simulation avec K= (01010101
01010101 01010101)
01010101 16.
46
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.15: Résultat
Résultat de simulation avec K= (FEFEFEFE FEFEFEFE) 16.
47
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.16: Résultat
Résultat de simulation avec K= (E0E0E0E0 F1F1F1F1)16.
48
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.17: Résultat
Résultat de simulation avec K= (1F1F1F1F 0E0E0E0E) 16.
49
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.18: Résultat
Résultat de simulation avec K= (01 FE 01 FE 01 FE 01 FE) 16.
50
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.19: Résultat
Résulta de simulation avec K= (1F E0 1F E0 0E F1 0E F1) 16.
51
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.20: Résultat
Résultat de simulation avec K= (01 E0 01 E1 01 F1 01 F1) 16.
52
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.21: Résultat
Résultat de simulation avec K= (1F FE 1F FE 0E FE 0E FE) 16.
53
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.22: Résultat
Résultat de simulation avec K= (01 1F 01 1F 01 0E 01 0E) 16.
54
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Figure.4.23: Résultat
Résulta de simulation
on avec K= (E0 FE E0 FE F1 FE F1
F FE) 16.
55
Chapitre 4 : Implémentation du DES amélioré sur FPGA
Le tableau 2 fournit les données d'exploitation de la génération des sous clés de l’algorithme
DES amélioré (les ressources utilisées) pour les deux type de FPGA Spartan3 et Virtex.
Type FPGA Période Fréquence Nbr Nbr Nbr LUT Nbr Slice Nbr
(ns) Max IOBS SLICES Flip GCLKs
(MHZ) Flops
Spartan3 833 97 112 168 1
3.398 294.291
(XC3S4000L) (633) (27648) (55296) (55296) (8)
D’après l’analyse de ce tableau nous remarquons qu’il y a une augmentation dans les
ressources matériales les IOBs augmenté par 8 nombre, les slices par 65 nombre, les luts par
56nombre, les flips flops par 112 nombre et le nombre de GCLKs reste 1.
Nous avons enregistré la même fréquence pour l’implémentation, même si nous avons
consommé plus des ressources
- après la vérification des résultats, nous avons remarqué que les sous clés de l’algorithme DES
amélioré dans MATLAB sont les mêmes avec les sous clés de l’algorithme DES amélioré dans
VHDL.
- Pour comparer les résultats nous avons choisi deux types de FPGA de la famille la plus fréquente,
Spartan3 (XC3S4000L) et Virtex (XCV1000).
- A partir de l’analyse des résultats de tableaux précédant (Tab4.1 et Tab4.2), nous avons observé
que :
Dans la simulation du programme amélioré nous avons utilisé des ressources matérielles
(IOBs, slices, lut) plus que dans le programme classique.
La même fréquence utilisé dans les deux programmes classique et amélioré pour les deux
type de FPGA, même si Il ya une occupation des ressources matérielles plus para port a
56
Chapitre 4 : Implémentation du DES amélioré sur FPGA
57
Conclusion générale
La nécessité de sécuriser la transmission de données augmente chaque jour et nécessite des
dispositifs de chiffrement de données sécurisés pour préserver la confidentialité et l’authentification
des échanges des applications critiques.
Ce travail se concentre sur l'algorithme de cryptage symétrique DES qui a une clé de 64 bits.
L’intérêt de l’algorithme DES dans le domaine de la cryptographie n’est plus à démontrer, et son
intégration sur circuit numérique (FPGA) est la cible d’un grand nombre de travaux,
Nous avons étudié le DES dans le but d’amélioration de génération de sous-clés pour avoir
des sous-clés non redondance.
Nous avons d’abord fais un tour d’horizon rapide dans le domaine du cryptage et les
différentes algorithmes existant. Ensuite, nous avons abordé l'algorithme DES par son aspect
théorique et la problématique qui se pose au niveau de la génération de sous clés qui est la
redondance des sous-clés.
Par la suite, nous avons proposé l'ajout d'une étape à la génération de sous clés qui réduit le
problème de redondance de sous clés. Nous avons simulé le fonctionnement de notre approche sous
le logicielle (MATLAB) que nous avons comparé avec le DES classique.
Les architectures réalisant la génération de sous clés du DES (améliore et classique) ont été
conçue puis décrite en utilisant le langage VHDL implémentée sur un circuit FPGA de la famille
Spartan3 (XC3S4000L) et Virtex (XCV1000) de xilinx sous l’environnement ISE 9.2.
Les résultats de l’implémentation sur FPGA obtenus sont relativement satisfaisantes puisque
les fréquences dans les deux programmes (classique et amélioré) sont les mêmes; L’utilisation de
l’approche proposée a réduit la redondance dans la génération des sous-clés et elle a réduit la
vulnérabilité à l’attaque, et elle a amélioré l’efficacité du cryptage. Les résultats présentés de la mis
en œuvre fournissent un haut niveau d’assurance et d’exactitude.
Perspectives :
- l'implémentation de notre nouvel algorithme pour des applications basées sur l'echange
d'informations (images, texte ...etc).
58
-Utiliser d’autres versions plus performantes et actualisées que les versions utilisées : Spartan3
(XC3S4000L) et Virtex (XCV1000).
- L'amélioration de notre algorithme DES dans le but d’obtenir une meilleure sécurité, réduire le
temps de cryptage total...etc.
- Réduire et modifier le séquenceur (machine d’état) pour avoir une fréquence élevée.
Voila quelques idées qui peuvent être prise en compte si l’on souhaite continue dans le même axe
de recherche. Ce domaine est loin d’être fini et ne constitue que le premier jalon.
59
Références
[4] K. BOUSSELAM, ''Résistance des circuits cryptographique aux attaques en faute '', Thèse de
Doctorat, Université MONTPELLIER II, (France), 25. Septembre. 2012.
[5] T.MEKHAZNIA, ''Analyse cryptographique par les méthodes heuristiques '', Thèse de
Doctorat, Université de BATNA 2(Algérie), 25. Février. 2017.
[6] K. DICHOU, '' contribution à l’étude des cartes à puce avancées '', Thèse de Doctorat-LMD,
Université M’HAMED BOGARA-BOUMERDES, 2016.
[7] M. BOUCHEMA, ''Exploitation des transformées paramétriques dans le cryptage des images
fixes '', Mémoire de Magistère, Université FERHAT ABBAS –SETIF 1, (Algérie), 28. Décembre.
2012.
[8] S. BOUALLAGUI, ''Techniques d'optimisation déterministe et stochastique pour la résolution
de problèmes difficiles en cryptologie '', Thèse de Doctorat, Institut national des sciences appliquées
de ROUEN, 05. Juillet. 2010.
[9] M. VIDEAU, ''Critère de sécurité des algorithmes de chiffrement à clé secrète '', Thèse de
Doctorat, Université de Paris 6, (France), 10. Novembre. 2005.
[10] F. OMARY, ''Applications des algorithmes évolutionnistes à la cryptographie '', Thèse de
Doctorat d’état, Université MOHAMMED V – AGDAL RABAT (MAROC), 26. Juillet. 2006.
[11] A. K. BENHAOUA, ''Approche cryptographie base sur les algorithmes génétique pour la
sécurité des réseaux Ad hoc '', Mémoire de Magistère, Université D’ORAN ES-SENIA, (Algérie),
2005.
60
[12] O. AZZOUZI, ''Système embarqué flexible pour un chiffrement hybride
symétrique/asymétrique '', Mémoire de Magister, Ecole nationale supérieure d’informatique,
(Algérie) ,2014.
[13] A. SALHI, K.BAKIRI, ''FPGA-Based cryptosystem '', Mémoire de master, Université
M’Hamed BOUGARA-BOUMERDES, (Algérie) ,2015.
[14] T. FUHR, ''Conception, preuves et analyse de fonctions de hachage cryptographiques '',
Thèse de Doctorat, Agence national de la sécurité des systèmes d’information de Paris, (France),
03. Octobre. 2011.
[15] M.A.FILALI, ''Etude et Implémentation Pipeline sur FPGA de L’algorithme de Chiffrement
AES '', Mémoire de Magister, Université MOHAMED BOUDIAF d’ORAN, (Algérie), 29. Juin.
2015.
[16] M. ABID, ''des mécanismes d’authentification basé sur l’identité de l’utilisateur pour
renforcer la sécurité des réseaux '', Thèse de doctorat, Université de Pierre et Marie curie ,30 Mars
2012.
[17] G. ZAIDI, ''Sécurisation par dynamiques chaotiques des réseaux locaux sans fil au niveau de
la couche MAC '', Thèse de Doctorat, L’École Nationale d’Ingénieurs de Sfax, (Tunisie), 06.
Décembre. 2012.
[18] L. TING, '' Optimisation par synthèse architecturale des méthodes de partitionnement
temporel pour les circuits reconfigurables '', Thèse de doctorat, Université Henri Poincaré,
Nancy 1, Mai 2008.
[19] A. BERZATI ''Analyse cryptographique des altérations d'algorithmes '', Thèse de Doctorat,
Université de Versailles Saint-Quentin, 29. Septembre. 2010.
[20] Y. M.AIT AMEUR, ''sécurisation de communication dans les réseaux d’ordinateurs (couche
SSL) '', Mémoire de Master, Université Mohamed Khider Biskra, (Algérie), Juin. 2014.
61
[23] M. RAMDHANI, '' problème de sécurité dans les réseaux capteurs avec prise en charge de
l’énergie '', Mémoire de magistère, Université SAAD DAHLAB DE BLIDA (Algerie), Novembre
2013.
[24] H. BOUMERZOUG, ''gestion de sécurité dans les réseaux de capteurs sans fil '', Mémoire de
magistère, Université de Québec a trois rivières, Octobre 2011.
[25] B. KEBIR, S. RAHMOUNI, ''Développement d’une application pour l’échange des messages
sécurisé '', Mémoire de fin d’études, Université de Abou Bakr Belkaid, Telemcén, (Algérie), Mai
2015.
[26] A. KARRAY, ''Conception, mise en œuvre et validation d’un environnement logiciel pour le
calcul sécurisé sur une grille de cartes à puce de type Java '', Thèse de Doctorat, Université
BORDEAUX I, (France) ,10. Décembre. 2008.
[28] B. SAAD, ''intégration des problèmes de satisfaction distribués et sécurisés dans les systèmes
d’aide à la décision à base de connaissance '', Thèse de Doctorat, Université de PAUL VERLAINE
– METZ, 10.Décembre.2012.
[29] A. R. KIHEL, ''système cathodique pour la transmission sécurisée de données '', Mémoire de
Magister, Université Mohamed Khider – Biskra, (Algérie), 26.novembre. 2016.
[32] M. BRUNO, '' codage cryptologie et application '', Presse polytechniques et universitaires
romandes, Disponible sur <http//fribok.blogspot.com/>, 17.Mars.2017.
[33] L. BLOCH, C. WOLFHUGEL, '' sécurité informatique : principe et méthodes '', Paris, 2007,
ISBN : 2-212-12021-4 • ISBN 13 : 978-2-212-12021-9.
62
[34] M. AMOUD, ''Design et implémentation sur FPGA d'un algorithme DES'', Mémoire présenté à
la Faculté des études supérieures, Université de Montréal, Décembre.2008.
[36] V.S. BAGAD, I.A. DHOTRE, ''Networks and information Security '', Edition 2009, Strictly
According to the Revisted Syllabus of University of Pune (UOP)-2003 cours, ISBN 978-81-8431-
570-7.
[37] K. LOUDON, '' Algorithms With C '': useful Techniques forme sorting to encryption, 1er
Edition, published by o'reilly Media,in the united states of America, 1999, 537 p, ISBN 978-1-
56592-453-6.
[38] J.PETER KAPS, ''High speed FPGA architectures for the Data Encription Standard '', Thèse
de master on science, Worcester polytechnic institute, Mai 1998.
63
Conclusion générale
La nécessité de sécuriser la transmission de données augmente chaque jour et nécessite des
dispositifs de chiffrement de données sécurisés pour préserver la confidentialité et l’authentification
des échanges des applications critiques.
Ce travail se concentre sur l'algorithme de cryptage symétrique DES qui a une clé de 64 bits.
L’intérêt de l’algorithme DES dans le domaine de la cryptographie n’est plus à démontrer, et son
intégration sur circuit numérique (FPGA) est la cible d’un grand nombre de travaux,
Nous avons étudié le DES dans le but d’amélioration de génération de sous-clés pour avoir
des sous-clés non redondants.
Nous avons d’abord fais un tour d’horizon rapide dans le domaine du cryptage et les
différentes algorithmes existant. Ensuite, nous avons abordé l'algorithme DES par son aspect
théorique et la problématique qui se pose au niveau de la génération de sous clés qui est la
redondants des sous-clés.
Par la suite, nous avons proposé l'ajout d'une étape à la génération de sous clés qui réduit le
problème de redondance de sous clés. Nous avons simulé le fonctionnement de notre approche sous
le logiciel (MATLAB) que nous avons comparé avec le DES classique.
Les architectures réalisant la génération de sous clés du DES (amélioré et classique) ont été
conçue puis décrite en utilisant le langage VHDL implémentée sur un circuit FPGA de la famille
Spartan3 (XC3S4000L) et Virtex (XCV1000) de xilinx sous l’environnement ISE 9.2.
Les résultats de l’implémentation sur FPGA obtenus sont relativement satisfaisantes puisque
les fréquences dans les deux programmes (classique et amélioré) sont les mêmes; L’utilisation de
l’approche proposée a réduit la redondance dans la génération des sous-clés et elle a réduit la
vulnérabilité à l’attaque, et elle a amélioré l’efficacité du cryptage. Les résultats présentés de la mis
en œuvre fournissent un haut niveau d’assurance et d’exactitude.
Perspectives :
- l'implémentation de notre nouvel algorithme pour des applications basées sur l'echange
d'informations (images, texte ...etc).
58
-Utiliser d’autres versions plus performantes et actualisées que les versions utilisées : Spartan3
(XC3S4000L) et Virtex (XCV1000).
- L'amélioration de notre algorithme DES dans le but d’obtenir une meilleure sécurité, réduire le
temps de cryptage total...etc.
- Réduire et modifier le séquenceur (machine d’état) pour avoir une fréquence élevée.
Voila quelques idées qui peuvent être prise en compte si l’on souhaite continuet dans le même axe
de recherche. Ce domaine est loin d’être fini et ne constitue que le premier jalon.
59
Résumé
Abstract
Since the creation of the DES (Data Encryption Standard) as a cryptographic algorithm;
several contributions have been made to improve its security and resistance to different attacks. It
is a symmetric key algorithm whose main key is used for encryption as well as for decryption.
Based on the main key, a process can generate different sub-keys for each round of this algorithm.
The security of the DES is based on the generation of sub keys. Some sub-keys are weak or semi-
weak. Therefore it is advised against using them for encryption. Our contribution is to add a step
to the sub-keys generation process. It is the odd bit / event bit conversion, thus allowing non-
redundant subkeys, which is not the case for conventional contributions.
و &و $ ا# # ا "ھ ت ا ا. (ة تا ا ) DES ا ارز ء إ
9. * . 8 ' ى،4" 5 ح ا ا3 دا إ2 و ا. ا/0و . ح ا, "* م ھ ه ا * ارز.ا (' ت
A B أو @ 8 ا: ﺑ > ا.48 ح ا ا 3.8 DES أ " . ا * ارز <; دورة 8 ا: ا
F. . 8 ا: ا . 83 ةإE 0 @ إ40 ;D "ھ. . ( * ا2 ﺑ م ا:C / ' ، @
. .& " ھ ت ا. " ل ﺑG ھ ا, وھ ا،< رة I 8 0: ﺑ: " 4 و ا، دي0 /4 ; ﺑ زوG ﺑ