Sunteți pe pagina 1din 49

Chiffrement par Bloc

Cryptographie et Sécurité informatique


Introduction

• Même clé pour les processus de chiffrement et de déchiffrement ; cette clé


est le plus souvent appelée "secrète" (en opposition à "privée")

• La cryptographie symétrique est très utilisée et se caractérise par une


grande rapidité et par des implémentations aussi bien software que
hardware ce qui accélère nettement les débits et autorise son utilisation
massive.

Par Dr RIAHLA Mohamed Amine


Introduction

• L’idée générale du chiffrement par blocs est la suivante :

– 1. Remplacer les caractères par un code binaire


– 2. Découper cette chaîne en blocs de longueur donnée
– 3. Chiffrer un bloc en l’"additionnant" bit par bit à une clef.
– 4. Déplacer certains bits du bloc.
– 5. Recommencer éventuellement un certain nombre de fois l’opération 3.
– 6. Passer au bloc suivant et retourner au point 3 jusqu’à ce que tout le
message soit chiffré.

Par Dr RIAHLA Mohamed Amine


Introduction
• On distingue trois catégories de chiffrement par bloc :
• Chiffrement par substitution : Remplacer des symboles ou des groupes
de symboles par d’autres symboles ou groupes de symboles pour créer de
la confusion.

• Chiffrement par transposition : Mélanger les symboles ou les groupes


de symboles d’un message clair suivant des règles prédéfinies pour créer
de la diffusion. Ces règles sont déterminées par la clé de chiffrement. Une
suite de transpositions forme une permutation.

Par Dr RIAHLA Mohamed Amine


Introduction
• Chiffrement par produit : C’est la combinaison des deux. Pour obtenir un
chiffrement plus robuste. La plupart des algorithmes à clés symétriques
utilisent le chiffrement par produit. On dit qu’un « round » est complété
lorsque les deux transformations ont été faites une fois (substitution et
transposition).

Succession de rondes

• Ces successions des rondes portent également le nom de réseaux S-P de


Shannon.

Par Dr RIAHLA Mohamed Amine


Effet d’avalanche
• C’est une propriété des chiffrements par blocs composés de couches
(layers) ou "rounds" caractérisés par un petit changement à l’entrée.
• Le changement d’un simple bit d’entrée produit généralement de multiples
changements de bits après un round, plusieurs autres changements de
bits après un autre round jusqu’au changement éventuel de la moitié du
bloc.

Par Dr RIAHLA Mohamed Amine


Effet d’avalanche

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel
• Cette structure fut décrite en 1973 (par Feistel, employé chez IBM).

• La plupart des chiffrements de la fin du XXè siècle sont basés sur cette
structure.

• Elle découle des réseaux S-P de Shannon.

• Il adapte la structure de Shannon afin de la rendre inversible ce qui permet


de réutiliser le matériel de chiffrement pour déchiffrer un message.

• La seule modification s’opère dans la manière dont la clé est utilisée.

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel

Structure de Feistel

Dans une construction de Feistel (figure), le bloc d’entrée d’un round est
séparé en deux parties.
La fonction de chiffrement est appliquée sur la première partie du bloc et
l’opération binaire OU-Exclusif (⊕) est appliquée sur la partie sortante de la
fonction et la deuxième partie.

Ensuite les deux parties sont permutées et le prochain round commence.

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel
L’avantage est que la fonction de chiffrement et la fonction de déchiffrement
sont identiques. Ainsi la fonction n’a pas à être inversible, c’est la structure
qui l’est.

La structure est inversible

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel
A partir d’une table de correspondance, on peut déterminer le résultat du
chiffrement d’un bloc après passage dans une structure de Feistel.
C’est ce qui est illustré aux figures

Table de correspondance de fonctions

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel

Exécution d’un schéma de Feistel

Par Dr RIAHLA Mohamed Amine


1, Les structures de Feistel
Choix des paramètres
La réalisation d’un tel réseau dépend des choix effectués pour les
paramètres suivants :

– Taille du bloc : si elle augmente, la sécurité augmente également


– Taille de clé : si elle augmente, la sécurité aussi
– Nombre de cycle : plus il y en a, plus la sécurité est renforcée
– Algorithme de génération des sous-clés : plus il est complexe, plus la
compréhension est rendue difficile.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
• Standard mondial depuis la fin des années 1970,
• pour limiter la prolifération d’algorithmes différents ne pouvant pas
communiquer entre eux.
• Pour résoudre ce problème, L’Agence Nationale de Sécurité américaine
(N.S.A.) a lancé des appels d’offres.
• La société I.B.M. a développé alors un algorithme nommé Lucifer,
relativement complexe et sophistiqué.
• Après quelques années de discussions et de modifications (applications
de S-Boxes et réduction à des clés de 56 bits), cet algorithme, devenu
alors D.E.S., fut adopté au niveau fédéral le 23 novembre 1976.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Avantages
• il possède un haut niveau de sécurité,
• il est complètement spécifié et facile à comprendre,
• la sécurité est indépendante de l’algorithme lui-même,
• il est rendu disponible à tous, par le fait qu’il est public,
• il est adaptable à diverses applications (logicielles et matérielles),
• il est rapide et exportable,
• il repose sur une clé relativement petite, qui sert à la fois au chiffrement
et au déchiffrement,
• il est facile à implémenter.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme de chiffrement
• Le D.E.S. est un cryptosystème agissant par blocs.
• Cela signifie que D.E.S. ne chiffre pas les données à la volée quand les
caractères arrivent, mais il découpe virtuellement le texte clair en blocs
de 64 bits qu’il code séparément, puis qu’il concatène.
• Un bloc de 64 bits du texte clair entre par un coté de l’algorithme et un bloc
de 64 bits de texte chiffré sort de l’autre coté.
• L’algorithme est assez simple puisqu’il ne combine en fait que des
permutations et des substitutions.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme de chiffrement
• C’est un algorithme de chiffrement à clef secrète.

• La clef sert donc à la fois à chiffrer et à déchiffrer le message.

• Cette clef a ici une longueur de 64 bits, c’est-à-dire 8 caractères, mais


dont seulement 56 bits sont utilisés.

• On peut donc éventuellement imaginer un programme testant l’intégrité


de la clef en exploitant ces bits inutilisés comme bits de contrôle de
parité.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme de chiffrement
• L’entière sécurité de l’algorithme repose sur les clefs puisque
l’algorithme est parfaitement connu de tous.

• La clef de 64 bits est utilisée pour générer 16 autres clefs de 48 bits


chacune qu’on utilisera lors de chacune des 16 itérations du D.E.S..

• Ces clefs sont les mêmes quel que soit le bloc qu’on code dans un
message.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme de chiffrement
• Cet algorithme est relativement facile à réaliser matériellement et
certaines puces chiffrent jusqu’à 1 Go de données par seconde.

• Pour les industriels, c’est un point important notamment face à des


algorithmes asymétriques, plus lents, tels que l’algorithme R.S.A.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme de chiffrement Algorithme principal du DES
L’algorithme repose principalement sur 3 étapes, en plus
de la gestion spécifique de la clé :

1. Permutation initiale
2. Calcul médian (16 fois) : application d’un algorithme
complexe appliqué en fonction de la clé
3. Permutation finale

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
a, La permutation initiale
• Les 64 bits du bloc d’entrée subissent la permutation de la figure

Matrice de permutations initiale

• Cette "matrice" permet d’effectuer des changements internes au bloc (i.e. il


n’y a pas d’apport de données extérieures). Le premier bit sera le bit 58, le
second le bit 50, etc

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
b, Le calcul médian
• Les 64 bits initiaux de données sont divisés en 2 blocs (L et R).
• Itérations :
– Ln = Rn−1
– Rn = Ln−1 ⊕ F(Rn−1, Kn)
– Kn = G(K, n)

– Tn = LnRn
– Ln = t1...t32
– Rn = t33...t64

Etape générale du calcul médian


Par Dr RIAHLA Mohamed Amine
2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fonction F détaillée
• Le calcul médian s’effectue en 16 itérations.
• Le détail de la fonction F est donné à la figure.
• On traite 2 blocs simultanément : un bloc de 32 bits (données) et un bloc
de 48 bits (clés).
• Le résultat forme un bloc de 32 bits.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fonction F détaillée: Expansion
• Les 32 bits sont étendus à 48 bits grâce à une table d’expansion
(également appelée matrice d’extension).
• On retrouve ici un effet d’avalanche.

Matrice d’expansion

Phase d’expansion
Par Dr RIAHLA Mohamed Amine
2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fct F : Addition de la sous-clé

• Le résultat de l’expansion est additionné (par une


opération XOR) à la sous-clé Kn correspondant à l’itération
selon la formule :
• E(Ri−1) ⊕ Ki = B1B2 . . .B8
• Les B1,B2, ...,B8 sont des blocs de 6 bits :
• Bj = b1b2b3b4b5b6.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fct F : Transformations par S-Boxes

• Chaque bloc Bj constitue ensuite l’entrée de l’opération de


substitution réalisée sur base des S-Box.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fct F : Transformations par S-Boxes

• L’opération de substitution consiste pour chaque S-box à calculer :


– b1 b6 = n°de ligne
– b2 b3 b4 b5 = n°de colonne

S-Box particulière Exercice:


101111-0111 Les 8 S-Box du DES
0110110101
Par Dr RIAHLA Mohamed Amine
2, D.E.S. - Data Encryption Standard
b, Le calcul médian: Fct F : Transformations par P-Box
(permutation du calcul médian)

• L’opération de permutation est réalisée sur le résultat de la


substitution des S-box et est basée sur la table de la figure
Le résultat de cette dernière permutation est noté F(Rn−1,Kn).

Matrice de permutation du calcul médian

Ronde détaillée du calcul médian

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
c, Permutation finale
• Une fois le calcul médian terminé, on pratique la permutation inverse de la permutation
initiale.
• Attention toutefois : il s’agit de l’inverse de la permutation initiale, en d’autres termes, cette
table permet de retrouver la position de départ. Ce n’est pas l’inverse de la "matrice" de
départ !

Permutation finale

Permutation Initiale
Par Dr RIAHLA Mohamed Amine
2, D.E.S. - Data Encryption Standard
Algorithme du calcul de la clé G(K, n)
• La clé est constituée de 64 bits dont 56 sont utilisés dans
l’algorithme.
• Les 8 autres peuvent être utilisés pour la détection
d’erreurs où chacun de ces bits sera utilisé comme bit de
parité des 7 groupes de 8 bits.
• Ainsi, le nombre total de clés est de 256.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme du calcul de la clé G(K, n)
• La clé initiale est de 64 bits. Le calcul a lieu en 4 étapes :
1, Réduction à 56 bits : les bits de parité sont enlevés. On procède
ensuite à une permutation semblable à celle de la figure

2 Division en sous-clés de 28 bits : le résultat de l’étape précédente (56 bits) est


scindé en deux sous-clés de 28 bits.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Algorithme du calcul de la clé G(K, n)
3, Rotation de la clé : à chaque itération, chaque sous-clé de 28 bits subit une
rotation d’1 ou 2 bits
4, Réduction : après concaténation des deux sous-clés
précédentes, la clé résultante (56 bits) est réduite à une
sous-clé de 48 bits sur base de la matrice de la figure,

Matrice de réduction de la cl

Rotation de la clé Le résultat de cette réduction est la sous-


clé Kn additionnée avec E(Rn−1).
Par Dr RIAHLA Mohamed Amine
2, D.E.S. - Data Encryption Standard
Déchiffrement
• Il suffit d’appliquer le même algorithme mais inversé en tenant bien compte du
fait que chaque itération du déchiffrement traite les mêmes paires de blocs
utilisés dans le chiffrement. Il viendra
– Rn−1 = Ln et
– Ln−1 = Rn ⊕ f(Ln,Kn)

• Le Chiffrement était :
– Ln = Rn−1
– Rn = Ln−1 ⊕ F(Rn−1, Kn)

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Faiblesses du D.E.S. et évolutions
• Problème des compléments
• Si c = DES(p, k), alors !c = DES(!p, !k) mais cela ne représente pas un problème sérieux.

• Les clefs faibles


• – Clefs « faibles » : telles que Ek (Ek (x)) = x. Il en existe 4.
• – Clefs « semi-faibles » : ce sont les paires de clefs (K1,K2) dont la deuxième peut décrypter
un message encrypté par la première. Ce sont les clés telles que EK1 (EK2 (x)) = x. Il existe
six paires de ce genre.
• – Clés « pouvant être faibles » : le problème est similaire aux clés semi-faibles. Il en existe
48.

Par Dr RIAHLA Mohamed Amine


»Exercice!
2, D.E.S. - Data Encryption Standard
Attaques sur le DES: 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 255 essais.
• 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).
• 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 jours1. Le 19 janvier 1999, EFF et Distributed.net ont cassé
en travaillant conjointement une clé en 22 heures et 15 minutes.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Attaques sur le DES: La recherche exhaustive par force brute
• 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.

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Attaques sur le DES: Cryptanalyse différentielle
• il s’agit de la possibilité de produire au moyen de textes
clairs choisis les textes chiffrés correspondants avec une
clé inconnue.
• On analyse les différences résultantes sur les textes
chiffrés et on donne des probabilités aux clés testées.
• En affinant, on trouve la clé la plus probable.
• La meilleure attaque différentielle connue demande 247
textes clairs choisis

Par Dr RIAHLA Mohamed Amine


2, D.E.S. - Data Encryption Standard
Attaques sur le DES: Cryptanalyse linéaire
• On dispose d’un dictionnaire de (M,C).
• On ne possède pas la « boite noire » comme dans le cas différentiel.
• L’objectif est de déterminer une équation linéaire modélisant au mieux les
transformations du cryptogramme créé par l’algorithme de chiffrement.

• 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 ce cours.

Par Dr RIAHLA Mohamed Amine


2D.E.S

• Suite aux failles du DES, quelques modifications ont été apportées, mais pas
toujours avec succès.
• choisir deux clefs k1 et k2 et chiffrer deux fois le Message:
E(k2,E(k1,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).

Double DES
Par Dr RIAHLA Mohamed Amine
2D.E.S : Attaque Meet-in-the-middle
• Le 2DES est sensible à l’attaque Meet-in-the-middle,un intrus peut s’introduire
dans l’échange et retrouver la clé utilisée. Imaginons la situation suivante :
• Alice transmet C = f2(f1(M)) à Bob où f1 = K1 et f2 = K2.
• Si Jack connaît M et C, il peut construire deux listes de 256 messages :
L1 = {fK(M); ¥K} et L2 = {fK-1 (C); ¥K}
• Il cherche ensuite un élément commun.
Si R = fK3 (M) = fK4-1 (C), c’est que fK4(fK3 (M)) = C.
• Jack a alors probablement retrouvé K3 = K1 et K4 = K2
• Ainsi, l’attaque nécessite X = 2n opérations, et Y = 2n opérations, ce qui
revient à 2*2n = 2n+1

Par Dr RIAHLA Mohamed Amine


3DES
• Grâce à 2 clefs, on pratique 3 opérations :
E(k1,D(k2,E(k1,m))).
• C’est équivalent au fait de doubler la taille effective de la clé (ce qui est une
longueur sûre actuellement).
• Il existe deux versions : la première utilise deux clés (cas de figure présenté
ici), la seconde trois (le dernier chiffrement utilise une troisième clé).
• Il est très robuste contre toutes les attaques faisables
connues.
• Cependant, il est beaucoup plus lent que le DES
car on triple les opérations.

Par Dr RIAHLA Mohamed Amine


Utilisation DES
Quelques applications

• Communication secrète (SSL de https, SSH, GSM,...)


• Authentification d'agents (Login, OTP, GSM,...)
• Signature de contrats électroniques
• Paiement par carte à puce
• Paiement en ligne
• Paiement hors-ligne
• TV payante
• Vote électronique

Par Dr RIAHLA Mohamed Amine


Le protocole des cartes bancaires

Par Dr RIAHLA Mohamed Amine


Le protocole des cartes bancaires

• Le protocole d'utilisation d'une carte bancaire doit permettre d'authentifier


les transactions. L'authentification concerne deux préoccupations:
– prouver que la carte utilisée a bien été émise par l'autorité légitime;
– prouver qu'une carte légitimement émise n'est pas utilisée frauduleusement.
• Chaque carte bancaire comporte un code secret PIN, garantissant que
seul la personne autorisée peut utiliser la carte. Il s'agit en général d'un
nombre de 4 chiffres.

Par Dr RIAHLA Mohamed Amine


Fabrication de la carte
• Un PIN est généré aléatoirement
• Le PIN, et d'autres informations (numéro de compte par exemple) est
chiffré par un DES triple, en utilisant une clé de travail
• Une fonction à sens unique extrait certains bits du bloc chiffré obtenu pour
construire le PIN offset
• Le PIN Offset est enregistré dans la mémoire de la carte, avec le numéro
de compte.
• Le PIN est posté au possesseur de la carte et effacé de la mémoire.
• Une fois la carte émise, seul le possesseur légitime de la carte connaît le
PIN

Par Dr RIAHLA Mohamed Amine


Fabrication de la carte

Par Dr RIAHLA Mohamed Amine


Validation d'une transaction
• La validation d'une transaction peut se faire localement à partir d'un
terminal. Elle se limite alors à un protocole d'identification du propriétaire.
– Le possesseur de la carte tape son PIN sur le terminal;
– le terminal chiffre le PIN et le numéro de compte par un DES triple, en utilisant la clé
de travail et extrait le PIN offset;
– le PIN offset est comparé avec celui enregistré sur la carte.
• Le terminal doit avoir accès à la clé de travail qui a servi à chiffrer le PIN.
• Une clé maître (TMK) est générée et installée pour chaque terminal. Le
système central télécharge les clés de travail, chiffrées avec la TMK
correspondante.

Par Dr RIAHLA Mohamed Amine


Retrait d'espèces dans un distributeur
• Un client insère sa carte dans le distributeur;
• la piste magnétique est lue;
• le client entre son code PIN; il est stocké dans un buffer inaccessible;
• le client tape la somme qu'il veut retirer;
• le message contenant le PIN et la somme est chiffré avec la TMK et
envoyé au serveur;
• Le serveur de la banque déchiffre le message et calcule le PIN Offset avec
la clé de travail correspondante. Il le compare au PIN Offset stocké dans
sa base de données.
• La transaction est approuvée.

Par Dr RIAHLA Mohamed Amine

S-ar putea să vă placă și