05 Chiffsym1
05 Chiffsym1
05 Chiffsym1
L'idée générale du chiffrement par blocs est la suivante: Chiffrement par substitution
Remplacer les caractères par un code binaire Les substitutions consistent à remplacer des symboles ou des groupes de
Découper cette chaîne en blocs de longueur donnée symboles par d'autres symboles ou groupes de symboles dans le but de
créer de la confusion.
Chiffrer un bloc en l'"additionnant" bit par bit à une clef.
Chiffrement par transposition
Déplacer certains bits du bloc.
Les transpositions consistent à mélanger les symboles ou les groupes de
Recommencer éventuellement un certain nombre de fois l'opération 3. On symboles d'un message clair suivant des règles prédéfinies pour créer de
appelle cela une ronde. la diffusion. Ces règles sont déterminées par la clé de chiffrement. Une
Passer au bloc suivant et retourner au point 3 jusqu'à ce que tout le suite de transpositions forment une permutation.
message soit chiffré.
Réseaux S-P de Shannon Effet d’avalanche
Présentation - objectifs
Transformation linéaire :
transformation qui respecte la condition :
T(X[m x 1]) = Y[n x 1] =A[n x m] * X[m x 1]
ou
T(X1 ⊕ X2) = T(X1) ⊕ T(x2)
Transformation affine
transformation qui respecte la condition :
T(X[m x 1]) = Y[n x 1] =A[n x m] * X[m x 1] ⊕ B[n x 1]
D.E.S. (Data Encryption Standard)
Algorithme
Etapes de l’algorithme :
1. Diversification de la clé : fabrication de 16 sous-clés
2. Permutation initiale
3. Calcul médian (16 fois) : application d’un algorithme complexe appliqué
en fonction de la clé
4. Permutation finale
DES – principes généraux Permutation initiale (IP)
La clé Les 64 bits du bloc d’entrée subissent la
Constituée de 64 bits dont 56 sont utilisés aléatoirement permutation
dans l’algorithme
Les 8 autres peuvent être utilisés pour la détection
d’erreurs
Chacun des 8 bits est utilisé comme bit de parité des 7
groupes de 8 bits.
Nombre total de clés : 256
2. Ajout de la clé
32 1 2 3 4 5
3. Transformations 4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
(S-Box, P-Box)
16 17 18 19 20 21
20 21 22 23 24 25
4. Assemblage 24 25 26 27 28 29
28 29 30 31 32 1
« effet d’avalanche »
Addition de la sous-clé Transformations – S-box
Le résultat de l’expansion est additionné (xor) à la Chaque bloc Bj constitue ensuite l’entrée de
sous-clé Kn correspondant à l’itération l’opération de substitution réalisée sur base des S-
B → S (B )
Box
j j j
B j = b1b2 b3 b4 b5 b6
S-Box 1 S-Box 2 S-Box 3 S-Box 4 S-Box 5 S-Box 6 S-Box 7 S-Box 8
32-Bit Output
box à calculer: 3
0
15
15
12
1 2
8 2
14
4
6
9
11
1
3
7
4
5
9
11
7
3
2
14
13
10
2
0
0
6
5
13
10
1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
• b1b6 = n° de ligne 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
• b2b3b4b5 = n° de colonne 0
1
10
13
0
7
9
0
14
9
6
3
3
4
15
6
5
10
1
2
13
8
12
5
7
14
11
12
4
11
2
15
8
1
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
N° de colonne 2
3
10
3
6
15
9
0
0
6
12
10
11
1
7
13
13
8
15
9
1
4
3
5
14
11
5
12
2
7
8
2
4
14
0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1
2
14
4
11
2
2
1
12
11
4
10
7
13
13
7
1
8
5
15
0
9
15
12
10
5
3
6
9
3
8
0
6
14
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 1 6
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
N° de ligne 0
1
13
1
2
15
8
13
4
8
6
10
15
3
11
7
1
4
10
12
9
5
3
6
14
11
5
0
0
14
122
9
7
2
2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
La taille de la clef (56 bits) est elle suffisante? Clefs "semi- faibles"
originalement, Lucifer prévoyait 128 bits paires de clefs dont la deuxième peut décrypter un message
possibilité d'une attaque « force brute » réussie? encrypté par la première; p.ex. 0x01FE…01FE et 0xFE01….FE01
possibilité d'une attaque de type « parallèle » il existe six paires de ce genre
possibilité de réussite d'une attaque de type "texte en clair choisi" Existence possible de paires de clés qui génèrent le même
Toutes ces questions ont reçu des réponses satisfaisantes texte encrypté à partir du même texte en clair ("clustering")
Recherche exhaustive
DES est un algorithme capable de chiffrer un bloc de données P de 64 bits à l'aide d'une clé
secrète K de 56 bits. Le résultat est un bloc de données chiffrées de 64 bits que nous noterons
C. L'opération de déchiffrement P=DK(C) est, grâce à la structure même de l'algorithme,
quasiment identique à l'opération de chiffrement C = EK(P), la seule différence étant une
légère modification de la préparation de la clé.
Imaginons que nous disposions d'un bloc de données chiffrées C' et que nous voulions trouver
la clé secrète correspondante. Si nous disposons d'un peu d'information sur la structure ou le
contenu des données en clair (texte ASCII, image JPEG, paquet de réseau ayant une
structure connue,...), la méthode la plus simple est une recherche exhaustive de la clé
correspondante parmi les 256 ' 7,2 * 1016 possibilités. Le principe, très simple, est le suivant:
une clé après l'autre, on essaye de déchiffrer le bloc de données, l'information sur le texte clair
nous permettant de reconnaître la bonne et donc d'interrompre la recherche. Nous aurons
besoin, en moyenne, de 255 essais avant de terminer notre attaque.
Une machine dédiée
La complexité, mesurée en terme de quantité de calcul, d'une recherche exhaustive est certes
énorme, mais à présent, grâce aux progrès de la technologie des microprocesseurs depuis
1977, elle est loin d'être inaccessible. DES est un algorithme orienté hardware qui a le gros
désavantage pour le cryptanalyste d'être très lent en software. Une plate-forme PC actuelle, à
savoir un processeur Intel Pentium III 666MHz, peut examiner environ 2 millions de clés par
seconde, ce qui implique un temps de recherche moyen de 600 années pour un seul PC.
Une solution matérielle a été proposée et réalisée par l'EFF (Electronic Frontier Fundation) en
1998, dans le seul but de prouver que DES n'est pas (ou plus) du tout un algorithme sûr. Deep
Crack, tel est le nom de cette machine extraordinaire, a coûté moins de 210'000$. Elle est
constituée de 1536 chips qui sont capables de décrypter un bloc en 16 cycles d'horloge, le tout
étant cadencé à 40 MHz. Ces caractéristiques lui donnent la possibilité d'examiner 92 milliards
de clés par seconde, ce qui donne un temps de recherche moyen situé entre 4 et 5 jours.
Vu le budget modeste de l'EFF, il n'est pas difficile de tirer des conclusions alarmistes sur la
sécurité de DES vis-à-vis d'organismes gouvernementaux (tel la NSA, organe américain
chargé de l'espionnage électronique) ou d'organisations criminelles.
6 attaques sur le DES 6 attaques sur le DES
Un gigantesque cluster Cryptanalyse différentielle
Regroupement d’ordinateur sur le net qui partagent leur possibilité de produire au moyen de textes clairs choisis
puissance de calcul les textes chiffrés correspondants avec cette clé
Le 19 janvier 1999, RSA Labs, a cassé une clé en moins inconnue
de 23 heures. La meilleure attaque différentielle connue demande
actuellement 247 textes clairs choisis
Un compromis temps-mémoire
Générer un dictionnaire de paire (K,C) Cryptanalyse linéaire
besoin énorme de mémoire (1.5 milliard de Go), ainsi que l'attaque la plus efficace connue à ce jour contre DES
de beaucoup de temps pour construire cette table. dictionnaire de (M,C) → attaque à texte clair connu
Cette attaque demande environ 1000 Go de capacité de statistiques sur un flot de 243 couples de données (soit la
stockage et 5 jours de calculs sur un simple PC bagatelle de deux fois 64 To).
Un algorithme, dit de compromis temps-mémoire, a été proposé en 1980 par Hellman. Il Ainsi, il est possible d'exploiter une faiblesse d'une des briques composantes de DES en
combine à la fois une demande de mémoire moindre que celle de notre proposition, ainsi effectuant des statistiques sur un flot de 243 couples de données (soit la bagatelle de deux fois
qu'un temps de calcul inférieur à celui d'une recherche exhaustive. Cette attaque demande 64 To).
environ 1000 Go de capacité de stockage et 5 jours de calculs sur un simple PC.
DES – attaques sur le DES 2DES – 3DES
Cryptanalyse linéaire ou différentielle Double DES
Attaque impraticable pour des chiffrements correctement Choisir deux clefs k1 et k2
conçus Encrypter deux fois: E(k2, E(k1, m))
Outil parfait pour comparer la résistance de divers Il a été prouvé que 2DES était équivalent à un DES avec
chiffrements clé de 57 bits → seulement deux fois plus de travail pour
briser
Résistance contre ces attaques ne signifie pas résistance
contre toutes les autres méthodes inconnues. Attaque sur le 2DES (meet-in-the-middle)
Soit des paires (Mi,Ci)
On calcule Xz = EKz(Mi) ∀ z et YW = DKw(Ci) ∀ w
On cherche z = w
Donc X=2n opérations, Y=2n opération ⇒ attaque = 2 n+1