1 Introduction
Depuis que
j'ai écrit Cryptographie
appliquée, on m'a demandé de
recommander un livre sur la cryptanalyse. Ma malheureuse
réponse est que bien qu'il existe plusieurs bon livres sur
la cryptographie, il n'y a pas de livres, bon ou mauvais, sur la
cryptanalyse. C'est un vide que je ne vois pas comblé avant
un long moment ; la cryptanalyse est un domaine qui
évolue si rapidement qu'un livre sur ces techniques serait
obsolète avant même son impression. Et même si
le livre parvenait à rester actuel, il ne ferait que peu
pour enseigner la cryptanalyse.
Le seul moyen d'apprendre la cryptanalyse
est au travers de la pratique. Un étudiant doit simplement
briser algorithme après algorithme, inventer de nouvelles
techniques et modifier celles qui existent. Lire les
résultats des autres cryptanalyses aidera, mais il n'y a
aucun substitut à l'expérience.
Cette réponse en amène une
autre : où peut-t'on obtenir de l'entraînement?
Internet est une source sans fin de conceptions médiocres
d'algorithmes, et même certains traînent dans la
littérature académique, mais l'étudiant
apprenti en cryptanalyse n'a aucun moyen de savoir quels
algorithmes valent une étude, et quels sont ceux qui sont
au-delà de ses capacités. Essayer de briser des
algorithmes qui ont déjà été
brisés (sans regarder comment ils ont été
brisés) est la seule réponse.
Maintenant la question devient: quels
chiffrements faut-t'il essayer de briser et dans quel ordre? Ce
document est ma tentative de réponse, et dans cette
réponse, j'espère faciliter l'étude de la
cryptanalyse.
Ceci forme un apprentissage individuel de
la cryptanalyse des chiffrements par bloc. Avec, un étudiant
peut suivre un chemin ordonné au travers de la
littérature académique et ressortir de l'autre
côté en étant capable de briser de nouveaux
algorithmes et de publier de nouveaux résultats
cryptanalytiques.
Ce que j'ai fait, c'est lister les
algorithmes publiés et les cryptanalyses, dans un ordre
cohérent: par type de cryptanalyse et difficulté. La
tâche de l'étudiant est de lire les documents qui
décrivent les algorithmes, puis tenter de reproduire les
résultats cryptanalytiques (et il est beaucoup plus
difficile d'apprendre la cryptanalyse à partir des documents
académiques que de livres distillés, mais tôt
ou tard l'étudiant devra apprendre à lire les
documents académiques, et le plus tôt sera le mieux).
Les résultats, dans les documents publiés, serviront
de "clefs de réponse".
La réponse clef n'est jamais
définitive ; il est très probable qu'il existe
d'autres, et de meilleures, attaques que celles qui ont
été publiées. Certains documents
cryptanalytiques contiennent des erreurs. Les étudiants qui
vont entamer ce cours devraient finir par être capables de
publier eux-mêmes des résultats publiables.
Même le meilleur étudiant ne
sera pas capable de trouver tous les moyens de briser les
algorithmes sans consulter les documents de cryptanalyse. Beaucoup
de ces résultats ont été découverts par
les plus grands esprits de la cryptanalyse. Je pense qu'un
étudiant doit consacrer au minimum une semaine à
chaque algorithme avant de commencer à consulter le document
cryptogamique, et après avoir rapidement parcouru le
résultat ; ou avoir juste lu le résumé,
l'introduction et la conclusion il devra à nouveau chercher
à briser l'algorithme pendant encore trois jours.
Si l'étudiant ne parvient toujours
pas à briser le chiffrement, il sera temps de lire et
d'étudier la cryptanalyse publiée. Si
l'étudiant ne parvient pas à briser le moindre
chiffrement en particulier ceux qui sont faciles c'est une bonne
indication qu'il devrait trouver une autre occupation.
Les leçons sont ordonnées,
mais cet ordre reste relativement souple. Les premières
leçons sont faciles, mais je mélange un peu les
choses par la suite. Les étudiants sont libres de passer les
leçons qui leur semblent difficiles, puis d'y revenir plus
tard, et même d'en passer certaines complètement (il y
en a beaucoup). Mon intention n'est pas d'attendre de chaque
étudiant qu'il complète la leçon
complètement avant de passer à la suivante. Un
étudiant intelligent sera probablement capable de travailler
sur plusieurs leçons en même temps.
Bonne chance.
2 Que signifie "briser" un
chiffrement?
Briser un chiffrement ne signifie
pas nécessairement trouver un moyen pratique pour une
personne à l'écoute de récupérer le
texte en clair en utilisant seulement le texte chiffré. Dans
la cryptographie académique, les règles sont beaucoup
plus souples. Briser un chiffrement revient à trouver une
faiblesse dans le chiffrement qui peut être exploitée
avec une complexité inférieure à une attaque
de force brute. Peu importe que l'attaque par force brute requiert
2128 chiffrements ; une attaque demandant 2110 chiffrements sera
considérée comme un succès. Briser un
chiffrement pourrait aussi demander un nombre non-réaliste
de textes en clair choisis, 256
blocs, ou bien des quantités
irréalistes de stockage : 280. Simplement dit, briser un
algorithme peut être une "faiblesse certifiée" :
une preuve que le chiffrement ne fonctionne pas comme
prévu.
Une cryptanalyse réussie peut
signifier la révélation d'un brisement d'une forme
réduite du chiffrement, un DES de 8 rondes contre les 16
rondes formant un DES complet, par exemple ou une variante
simplifiée du chiffrement. La plupart des cryptanalyses
commencent par une cryptanalyse d'une variante aux nombres de
rondes réduites, et sont éventuellement (parfois des
années plus tard) étendues au chiffrement
complet.
3 Pourquoi les chiffrements par
blocs?
La
recherche académique sur les chiffrements par blocs ont
progressé sur une voie différente de la recherche des
chiffrements de flux. Les documents sur les chiffrements par blocs
ont traditionnellement été des conceptions
concrètes (avec des paramètres et des noms
spécifiques) ou des conceptions brisées. Les
documents sur les chiffrements de flux sont plus souvent des
conceptions générales ou des techniques d'analyse,
avec des applications et des exemples
généraux.
Bien que la cryptanalyse des
chiffrements de flux soit aussi importante que les chiffrements par
blocs, et encore plus dans le cercle militaire, il est beaucoup
plus difficile de former un cours combinant les deux à
partir des documents académiques existants. Un bon document
de survol des chiffrements de flux est disponible en-ligne à
l'adresse : http://www.rsa.com/rsalabs/pubs/html/notes.html
4 Pré-requis
Il sera
pratiquement impossible de comprendre certains résultats
cryptanalytiques sans une bonne compréhension de concepts
simples des probabilités et statistiques. Le
Handbook of Applied Cryptography dispose d'une introduction rapide sur une grande partie de la
théorie des probabilités ; toutefois, les
étudiants qui apprennent ces domaines pour la
première fois trouveront une introduction plus douce au
sujet dans un livre consacré aux probabilités et
statistiques.
D'autres sujets des mathématiques
discrètes et de la science informatique seront aussi utiles,
bien qu'ils ne soient pas strictement indispensables. Un
étudiant devrait apprendre, ou être prêt
à apprendre, l'algèbre linéaire, la
théorie des groupes, la théorie de la
complexité, le combinatoire et la théorie des
graphes. Ces domaines devraient être étudiés
profitablement avec la cryptanalyse.
Il est impossible de comprendre
réellement une attaque cryptanalytique sans
l'implémenter. Implémenter
une attaque décrite dans un document peut
être très instructif ; implémenter une
nouvelle attaque de votre cru révèle souvent des
subtilités que l'analyse théorique ne pourra
analyser. Pour cette raison, la programmation mathématique
dans un langage tel que le C est une compétence
requise.
4.1 Fond historique
La cryptanalyse des algorithmes de
chiffrement avant l'avènement des ordinateurs n'est pas
réellement applicable à la cryptanalyse des
algorithmes modernes, mais elle forme une lecture
intéressante et offre un bon exemple de l'état
d'esprit requis pour réaliser de la cryptanalyse. Je ne
considère pas cela comme un requis indispensable, mais un
étudiant appliqué devrait considérer la
lecture d'Helen Fourche Gaines, Cryptanalysis:
A Study of Ciphers and their Solution (Dover
Publications, 1939). Sont aussi intéressants: les volumes
écrits par William F. Friedman et réimprimés
par Agean Park Press:
- Elements of Cryptanalysis
- Military Cryptanalysis, parties I, II, III et IV
- The Riverbank Publications, parties I, II et III
- Military Cryptanalytics, partie I, vol.1 et 2 et partie II, vol.1 et 2.
Aegan Press se trouve à l'adresse
http://www.ageanpress.com/books/
Une lecture attentive de David
Kahn, The Codebreakers (The Macmillan Company, 1967) est indispensable pour une
compréhension de l'histoire de la cryptographie.
Je le recommande fortement.
5 Obtenir les matériaux de
cours
Les
documents utilisés dans ce cours proviennent des travaux de
plusieurs conférences différentes. J'ai tenté
d'éviter les publications obscures, mais invariablement vous
en trouverez. Ceci signifie que beaucoup de bons chiffrements ne
sont pas listés ci-dessus : CAST est le premier
exemple. S'il vous plaît ne considérez pas l'absence
d'un chiffrement de la liste comme une indication de force ou de
faiblesse, c'est tout simplement une question de
disponibilité.
Pratiquement tous les documents
proviennent des travaux des conférences Springer-Verlag,
tous publiés dans les séries Lecture Notes in Computer Science (LNCS). La plupart des librairies universitaires souscrivent aux
séries LNCS complètes. Au minimum, un étudiant
devrait disposer du cédérom contenant les travaux de
tous les Crypto et Eurocrypt (disponible chez Springer-Verlag),
ainsi que les travaux provenant des séries Fast Software Encryption (FSE). Il y a
beaucoup de documents dans ces travaux dont la lecture est
bénéfique, bien qu'ils ne soient pas listés
ici.
Je maintiens une page
à http://www.counterpane.com
avec des liens vers les documents disponibles sur
la toile. Au-travers du cédérom, des travaux FSE et
de mes ressources Internet, il est possible de réaliser
pratiquement tout ce qui est dans ce cours.
6 Le cours
6.1 Historique
Lisez au moins les livres :
- B. Schneier, Cryptographie appliquée, seconde édition
(John Wiley & Sons, 1996).
- D.R. Stinson, Cryptography: Theory and Practice (CRC
Press, 1995).
- A.J. Menezes, P.C. van Oorschot et S.A.
Vanstone, Handbook of Applied Cryptography
(CRC Press, 1997).
Concentrez-vous sur les chapitres consacrés
aux chiffrements par blocs, bien que je vous recommande fortement
la lecture complète de chaque livre.
6.2 Cryptanalyse de base
Essayez de cryptanalyser les algorithmes suivants,
simplifiés :
- RC5 à 8 rondes sans aucune rotation.
- RC5 à 8 rondes avec un nombre de rotations égal
au nombre de rondes.
- DES à 12 rondes sans aucune Table-S.
- Skipjack à 8 rondes en règle B (une description
de Skipjack peut être trouvée sur Internet)
- DES à 4 rondes.
- Un chiffrement générique qui est "fermé"
(i.e. chiffrer avec la clef A puis la clef B revient au même
qu'un chiffrement avec la clef C, pour toutes les clefs).
- DES à 6 rondes.
- Skipjack à 4 rondes en règle A suivi par 4 rondes
de Skipjack en règle B.
Tous ces
algorithmes sont décrits dans le livre de B.
Schneier, Cryptographie appliquée,
seconde édition (John Wiley & Sons,
1996) et A.J. Menezes, P.C. van Oorschot et S.A. Vanstone,
Handbook of Applied Cryptography (CRC Press, 1997).
6.3 Cryptanalyse de FEAL
Il semble que toute attaque de cryptanalyse moderne
fonctionne contre FEAL. Lisez d'abord le premier algorithme:
A. Shimizu et S. Miyaguchi, "Fast Data
Enciphering Algorithm FEAL" Advances in
Cryptology EUROCRYPT '87 Proceedings,
Springer-Verlag, 1988, pp. 267-278
Puis tentez de le briser. Certaines attaques peuvent
être trouvées dans:
B. Den Boer, "Cryptanalysis of
F.E.A.L." Advances in Cryptology
; EUROCRYPT '88 Proceedings, Springer-Verlag, 1988, pp. 275-280
H. Gilbert et P. Chasse, "A Statistical Attack
on the FEAL-8 Cryptosystem" Advances in
Cryptology CRYPTO '90 Proceedings, Springer-Verlag, 1991, pp. 22-33
A. Tardy-Cordfir et H. Gilbert, "A Known
Plaintext Attack of FEAL-4 and FEAL-6" Advances in Cryptology CRYPTO '91 Proceedings,
Springer-Verlag, 1992, pp. 172-182
Vous pouvez
aussi réinventer les cryptanalyses différentielles et
linéaires si vous travaillez assez dur.
6.4 Cryptanalyse
différentielle
Lisez les chapitres 1 à 5 de:
E. Biham et A. Shamir, Differential Cryptanalysis of the Data Encryption
Standard (Springer-Verlag,
1993).
Si vous ne trouvez pas le livre, lisez:
E. Biham et A. Shamir, "Differential
Cryptanalysis of the Full 16-Round DES", Advances in Cryptology CRYPTO '91 Proceedings,
Springer-Verlag, 1992,
pp. 487-496.
6.5 Cryptanalyse différentielle
de FEAL
Attaquez FEAL en utilisant la cryptanalyse
différentielle. Une solution, qui est le premier document
à parler des attaques différentielles, est de:
S. Murphy, "The Cryptanalysis of FEAL-4 with 20
Chosen Plaintexts", Journal of
Cryptology, v.2, n.3, 1990, pp.
145-154.
Consultez aussi le chapitre 6 de:
E. Biham et A. Shamir, Differential Cryptanalysis of the Data Encryption
Standard (Springer-Verlag,
1993).
6.6 Cryptanalyse différentielle
de LOKI-89
La première version de LOKI est
désormais appelée LOKI-89. Lisez:
L. Brown, J. Pieprzyk et J. Seberry,
"LOKI: A Cryptographic Primitive for Authentification and Secrecy
Applications", Advances in
Cryptology AUSCRYPT '90 Proceedings,
Springer-Verlag, 1990, pp. 229-236.
Trouvez une attaque différentielle; une
solution se trouve dans:
L.R. Knudsen, "Cryptanalysis of
LOKI", Advances in
Cryptology ASIACRYPT '91, Springer-Verlag, 1993, pp. 22-35.
Le livre de Biham et Shamir aborde aussi cette
cryptanalyse.
6.7 Cryptanalyse différentielle
de MacGuffin
Lisez:
M. Blaze et B. Schneier, "The MacGuffin Block
Cipher Algorithm", Fast Software
Encryption, Second International Workshop Proceedings,
Springer-Verlag, 1995, pp. 97-110.
Essayez de briser le chiffrement. Une attaque
différentielle se trouve dans:
V. Rijmen et B. Preneel, "Cryptanalysis of
MacGuffin", Fast Software Encryption,
Second International Workshop Proceedings,
Springer-Verlag, 1995, pp. 353-358.
Il y a
beaucoup plus d'attaques, dont certaines n'ont jamais
été publiées. Il est bénéfique
de consacrer du temps à cet algorithme, même s'il faut
pour cela y revenir plus tard au cours de votre apprentissage. A
mesure que vous apprendrez de nouvelles techniques, vous
découvrirez de nouvelles attaques.
6.8 Cryptanalyse différentielle
de Khafre
Lisez la description de Khafre dans:
R.C. Merkle, "Fast Software Encryption
Functions", Advances in
Cryptology CRYPTO '91 Proceedings,
Springer-Verlag, 1992, pp. 156-171
Consultez aussi le livre de Biham et Shamir.
6.9 Cryptanalyse différentielle
de PES
Le précurseur de l'IDEA fut le PES;
consultez:
X. Lai et J. Massey, "A Proposal for a New
Block Encryption Standard" Advances in
Cryptology EUROCRYPT '90 Proceedings,
Springer-Verlag, 1991, pp. 389-404
Essayez de
le briser en utilisant la cryptanalyse différentielle. Les
résultats (et une reconception) sont disponibles
dans:
X. Lai, J. Massey et S. Murphy, "Markov Ciphers
and Differential Cryptanalysis", Advances in Cryptology EUROCRYPT '91
Proceedings, Springer-Verlag, 1991,
pp. 17-38.
6.10 Cryptanalyse linéaire
Lisez:
M. Matsui, "Linear Cryptanalysis Method for DES
Cipher", Advances in
Cryptology EUROCRYPT '93 Proceedings,
Springer-Verlag, 1994, pp. 386-397
Essayez d'améliorer les résultats. Une
solution se trouve dans:
M. Matsui, "The First Experimental
Cryptanalysis of the Data Encryption Standard",
Advances in Cryptology CRYPTO '94
Proceedings, Springer-Verlag, 1994, pp.
1-11
6.11 Cryptanalyse linéaire de
FEAL
Essayez de
casser FEAL en utilisant les techniques de cryptanalyse
linéaire. Des solutions se trouvent dans:
M. Matsui et A. Yamagishi,
"A New Method for Known Plaintext Attack of FEAL
Cipher", Advances in
Cryptology EUROCRYPT '92 Proceedings,
Springer-Verlag, 1993, pp. 81-91
et:
K. Ohta et K. Aoki, "Linear Cryptanalysis of
the Fast Data Encipherment Algorithm", Advances in Cryptology CRYPTO '94
Proceedings, Springer-Verlag, 1994, pp.
12-16
Consultez aussi:
S. Moriai, K. Aoki et K. Ohta,
"Improving the Search Algorithm for the Best Linear
Expression", Advances in
Cryptology CRYPTO '95 Proceedings,
Springer-Verlag, 1995, pp. 157-170
6.12 Caractéristiques
différentielles conditionnelles
Les caractéristiques conditionnelles ont
été introduites par:
I. Ben-Aroya et E. Biham, "Differential
Cryptanalysis of Lucifer", Advances in
Cryptology CRYPTO '93 Proceedings,
Springer-Verlag, 1994, pp. 187-199
Lisez les
sections 1-3, sur Lucifer et les caractéristiques
conditionnelles. Essayez ensuite de trouver une attaque avant de
lire la section 4. Lisez le début de la section 5, sur le
RDES. Essayez de trouver l'attaque avant de lire la suite du
document.
6.13 Cryptanalyse par rotation des
clefs-liées
Lisez les résultats contre LOKI-89 et LOKI-91
dans:
E. Biham, "New Types of Cryptanalytic Attacks
Using Related Keys", Journal of
Cryptology, v.7, n.4, 1994, pp.
229-246.
Si vous ne
trouvez pas le journal, lisez la copie préliminaire
(Advances in Cryptology
EUROCRYPT '93, Springer-Verlag, 1994, pp.
398-409.
Attaquez la variante du DES
décrite dans la section 5 (la section 6 dans la version
EuroCrypt).
6.14 Cryptanalyse
différentielle-linéaire
Lisez:
S. Langford et M. Hellman, "Differential-Linear
Cryptanalysis", Advances in
Cryptology CRYPTO '94 Proceedings,
Springer-Verlag, 1994, pp. 17-26
Essayez d'appliquer ces techniques à FEAL. La
réponse se trouve dans:
K. Aoki et K. Ohta, "Differential-Linear
Cryptanalysis of FEAL-8", IEICE
Transactions: Fundamentals of Electronics, Communications, and
Computer Sciences (Japan), v. E79-A, n.1,
1996, pp. 20-27.
Bonne chance pour trouver le journal ci-dessus: c'est
un journal japonais.
6.15 Relations entre les cryptanalyses
différentielles et linéaires
Lisez:
E. Biham, "On Matsui's Linear
Cryptanalysis", Advances in
Cryptology EUROCRYPT '94 Proceedings,
Springer-Verlag, 1995, pp. 398-412
et dans:
F. Chabaud et S. Vaudenay,
"Links Between Differential and Linear Cryptanalysis",
Advances in Cryptology EUROCRYPT '94
Proceedings, Springer-Verlag, 1995, pp.
356-365
6.16 Cryptanalyse différentielle
de haut-ordre
Si vous pouvez le trouver, lisez:
X. Lai, "Higher Order Derivatives and
Differential Cryptanalysis", Communications and Cryptography, Kluwer
Academic Publishers, 1994, pp. 227-233
Lisez la section 4 de:
L.R. Knudsen, "Truncated and Higher Order
Differentials", Fast Software
Encryption, 2nd International Workshop Proceedings,
Springer-Verlag, 1995, pp. 196-211
6.17 Cryptanalyse par
différentielles de haut-ordre du chiffrement-KN
Lisez:
K. Nyberg et L.R. Knudsen, "Provable Securiy
Against Differential Cryptanalysis", Journal of Cryptology, v.8, n.1, 1995,
pp. 27-37
Le chiffrement dans la section 5 est appelé
chiffrement-KN; essayez de le briser en utilisant les
différentielles de haut-ordre. Kiefer est aussi
décrit dans:
K. Kiefer, "A New Design Concept for Building
Secure Block Ciphers", Proceedings of
Pragocrypt '96, CTU Publishing House,
1996, pp. 30-41
Une bonne solution :
T. Shimoyama, S. Moriai et T. Kaneko,
"Improving the Higher Order Differential Attack and Cryptanalysis
of the KN Cipher", Information Security,
First International Workshop ISW '97 Proceedings,
Springer-Verlag, 1998, pp. 32-42
6.18 Estimations linéaires
multiples
Lisez:
B. Kaliski Jr et M. Robshaw, "Linear
Cryptanalysis Using Multiple Approximations",
Advances in Cryptology CRYPTO '94
Proceedings, Springer-Verlag, 1994, pp.
26-39
Essayez de briser FEAL en utilisant ces techniques.
Une solution est:
B. Kaliski Jr et M. Robshaw,
"Linear Cryptanalysis Using Multiple Approximations of
FEAL", Fast Software Encryption, Second
International Workshop Proceedings, Springer-Verlag, 1995, pp. 249-264
6.19 Cryptanalyse de TWOPRIME
Lisez:
C. Ding, V. Niemi, A. Renvall et A.
Salomaa,
"TWOPRIME: A Fast Stream Ciphering Algorithm",
Fast Software Encryption, 4th International Workshop
Proceedings, Springer-Verlag, 1997, pp.
88-102
TWOPRIME est réellement un chiffrement par
blocs. Essayez de le briser; il y a toutes sortes d'attaques. Les
résultats sont dans:
D. Coppersmith, D. Wagner, B. Schneier et J.
Kelseym,
"Cryptanalysis of TWOPRIME", Fast
Software Encryption, 5th International Workshop
Proceedings, Springer-Verlag, 1998, pp.
32-48
6.20 Cryptanalyse de Blowfish
Lisez:
B. Schneier,
"Description of a New Variable-Length Key, 64-Bit Block Cipher
(Blowfish)", Fast Software Encryption,
Cambridge Security Workshop Proceedings, Springer-Verlag, 1994, pp. 191-204
Et essayez de briser Blowfish. Quelques
résultats sont publiés dans:
S. Vaudenay, "On the Weak Keys in
Blowfish", Fast Software Encryption, 3rd
International Workshop Proceedings, Springer-Verlag, 1996, pp. 27-32
Il y a aussi une attaque différentielle
contre un Blowfish à cinq rondes
dans la thèse de V. Rijmen.
6.21 Cryptanalyse de ICE
Lisez:
M. Kwan, "The Design of ICE Encryption
Algorithm", Fast Software Encryption,
4th International Workshop Proceedings, Springer-Verlag, 1997, pp. 69-82
Une attaque différentielle est dans:
B. Van Rompay, L.R. Knudsen et V. Rijmen,
"Differential Cryptanalysis of ICE Encryption
Algorithm", Fast Software Encryption,
5th International Workshop Proceedings, Springer-Verlag, 1998, pp. 270-283
6.22 Cryptanalyse de LOKI-91
LOKI a été révisé; la
nouvelle version s'appelle LOKI-91. Lisez:
L. Brown, M. Kwan, J. Pieprzyk et J.
Seberry,
"Improving Resistance to Differential Cryptanalysis and the
Redesign of LOKI", Advances in
Cryptology ASIACRYPT '91 Proceedings,
Springer-Verlag, 1993, pp. 36-50
Recherchez tout type de cryptanalyse; certains
résultats peuvent être trouvés dans:
L.R. Knudsen, "Cryptanalysis of
LOKI-91", Advances in
Cryptology AUSCRYPT '92, Springer-Verlag, 1993, pp. 196-208
Une attaque linéaire (sur LOKI-91 et LOKI-89)
peut être trouvée dans:
T. Tokita, T. Sorimachi et
M. Matsui,
"Linear Cryptanalysis of LOKI and s2DES", Advances in
Cryptology ASIACRYPT '94, Springer-Verlag, 1995, pp. 293-303
6.23 Cryptanalyse de CMEA
Lisez les sections 1 et 2 de:
D. Wagner, B. Schneier et J. Kelsey,
"Cryptanalysis of the Cellular Message Encryption
Algorithm", Advances in
Cryptology CRYPTO '97 Proceedings,
Springer-Verlag, 1997, pp. 526-537
Essayez de briser l'algorithme avant de lire le reste
du document.
6.24 Cryptanalyse d'IDEA
IDEA est décrit (sous le nom de IPES)
dans:
X. Lai, J. Massey et S. Murphy,
"Markov Ciphers and Differential Cryptanalysis",
Advances in Cryptology EUROCRYPT '91
Proceedings, Springer-Verlag, 1991, pp.
17-38
L'analyse la plus facile est de rechercher les clefs
faibles; une réponse se trouve dans:
J. Daemen, R. Govaerts et J. Vandewalle, "Weak
Keys for IDEA", Advances in
Cryptology CRYPTO '93 Proceedings,
Springer-Verlag, 1994, pp. 224-231
Recherchez d'autres attaques; des solutions se
trouvent dans:
W. Meier, "On the Security of the IDEA Block
Cipher", Advances in
Cryptology EUROCRYPT '93 Proceedings,
Springer-Verlag, 1994, pp. 371-385
et dans:
P. Haawkes et L. O'Connor, "On Applying Linear
Cryptanalysis to IDEA", Advances in
Cryptology ASIACRYPT '96, Springer-Verlag, 1996, pp. 105-115
6.25 Différentielles
tronquées
Lisez les sections 1 à 4 de:
L.R. Knudsen, "Truncated and Higher Order
Differentials", Fast Software
Encryption, 2nd International Workshop Proceedings,
Springer-Verlag, 1995, pp. 196-211
Essayez d'appliquer les techniques des
différentielles tronquées avant de lire les
résultats dans la section 5. Essayez de briser SAFER en
utilisant les différentielles tronquées. Les
résultats sont dans:
L.R. Knudsen et T.A. Berson,
"Truncated Differentials of SAFER", Fast
Software Encryption, 3rd International Workshop
Proceedings, Springer-Verlag, 1996, pp.
15-26
6.26 Cryptanalyse différentielle
à clef liées
Lisez:
J. Kelsey, B. Schneier et D. Wagner,
"Key-Schedule Cryptanalysis of IDEA, G-DES, GOST, SAFER and
Triple-DES", Advances in
Cryptology CRYPTO '96 Proceedings,
Springer-Verlag, 1996, pp. 237-251
Essayez d'appliquer les techniques à 3-Way,
DES-X et TEA avant de lire:
J. Kelsey, B. Schneier et D. Wagner,
"Related-Key Cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X,
NewDES, RC2 and TEA", Information and
Communications Security,
First International Conference Proceedings, Springer-Verlag, 1997, pp. 203-207
6.27 Généralisations de la
cryptanalyse linéaire
Lisez:
C. Harpes, G. Kramer et J. Massey,
"A Generalization of Linear Cryptanalysis and the Applicability of
Matsui's Piling-Up Lemma", Advances in
Cryptology EUROCRYPT '95 Proceedings,
Springer-Verlag, 1997, pp. 13-27
Essayez d'appliquer ces techniques au DES avant de
lire l'appendice C du second document. Lisez les sections 1
à 4 de:
B. Kaliski Jr et M. Robshaw,
"Linear Cryptanalysis Using Multiples Approximations",
Advances in Cryptology CRYPTO '94
Proceedings, Springer-Verlag, 1994, pp.
26-39
Essayez d'appliquer les techniques à LOKI-91
avant de lire la section 5.
6.28 Cryptanalyse d'Akelarre
Lisez:
G. Alvarez, D. De la Guia, F. Montoya et A.
Peinado,
"Akelarre: A New Block Cipher Algorithm", Workshop on Selected Areas in Cryptography (SAC '96)
Workshop Record, Queens University,
1996, pp. 1-4
Essayez de briser l'algorithme. Les résultats
sont dans:
L.R. Knudsen et V. Rijmen, "Two Rights
Sometimes Make a Wrong", Workshop on
Selected Areas in Cryptography (SAC '97) Workshop
Record, School of Computer Science,
Carleton University, 1997, pp. 213-223
et:
N. Ferguson et B. Schneier, "Cryptanalysis of
Akelarre", Workshop on Selected Areas in
Cryptography (SAC '97) Workshop Record, School of Computer Science, Carleton University, 1997, pp.
201-212
Une description d'Akelarre est dans le dernier
document, si vous ne trouvez pas les autres.
6.29 Blanchiement
Lisez:
J. Kilian et P. Rogaway, "How to Protect DES
Against Exhaustive Key Search", Advances
in Cryptology CRYPTO '96 Proceedings,
Springer-Verlag, 1996, pp. 252-267
6.30 Théorie des cryptanalyses
différentielles et linéaires
Lisez les documents suivants:
K. Nyberg, "Linear Approximation of Block
Ciphers", Advances in
Cryptology EUROCRYPT '94 Proceedings,
Springer-Verlag, 1995, pp. 439-444
K. Nyberg et L. Knudsen, "Provable Security Against a
Differential Attack",
Journal of Cryptology, v.8, n.1, 1995, pp. 27-37
K. Nyberg et L. Knudsen, "Provable Security
Against a Differential Cryptanalysis", Advances in Cryptology CRYPTO '92
Proceedings, Springer-Verlag, 1993, pp.
566-574
6.31 Cryptanalyse de VINO
Lisez:
A. Di Porto et W. Wolfowicz, "VINO: A Block
Cipher Including Variable Permutations", Fast Software Encryption, Cambridge Security Workshop
Proceedings, Springer-Verlag, 1994, pp.
205-210
Aucune cryptanalyse n'a été
publiée: essayez d'être le premier.
6.32 Attaque d'interpolation
Lisez les sections 1 à 3.3 de:
T. Jakobsen et L. Knudsen, "The Interpolation
Attack on Block Ciphers", Fast Software
Encryption, 4th International Workshop Proceedings,
Springler-Verlag, 1997, pp. 28-40
Lisez les modifications apportées
à SHARK dans la section 3.4 et essayez de le briser avant de
lire le reste du document.
6.33 Attaques des fonctions de rondes
non-subjectives
Lisez:
E. Biham et A. Biryukov, "An Improvement of
Davie's Attack on DES", Advances in
Cryptology EUROCRYPT '94 Proceedings,
Springer-Verlag, 1995, pp. 461-467
Une bonne lecture est aussi:
B. Rijmen, B. Preneel et E. De Win,
"On Weaknesses of Non-subjective Round Functions",
Designs, Codes, and Cryptography, v.12, n.3, 1997, pp. 253-266
6.34 Cryptanalyse de Khufu
Lisez la description de Khufu dans:
R.C. Merkle, "Fast Software Encryption
Functions", Advances in
Cryptology CRYPTO '90 Proceedings,
Springer-Verlag, 1991, pp. 476-501
Essayez de le briser. Une analyse se trouve dans:
H. Gilbert et P. Chauvaud,
"A Choosen-Plaintext Attack on the 16-Round Khufu
Cryptosystem", Advances in
Cryptology CRYPTO '94 Proceedings,
Springer-Verlag, 1994, pp. 359-368
6.35 Cryptanalyse de SAFER
Lisez:
J. L. Massey,
"SAFER K-64: A Byte-Oriented Block-Ciphering
Algorithm", Fast Software Encryption,
Cambridge Security Workshop Proceedings, Springer-Verlag, 1994, pp. 1-17
Essayez d'attaquer le chiffrement. Des
résultats peuvent être trouvés dans:
J. L. Massey, "SAFER K-64: One Year
Later", Fast Software Encryption, 2nd
International Workshop Proceedings, Springer-Verlag, 1995, pp. 212-241
S. Vaudenay, "On the Need for
Multipermutations: Cryptanalysis of MD4 and SAFER",
Fast Software Encryption, Second International
Workshop Proceedings, Springer-Verlag,
1995, pp. 286-297
et L.R. Knudsen, "A Key-Schedule Weakness in
SAFER K-64", Advances in
Cryptology CRYPTO '95 Proceedings,
Springer-Verlag, 1995, pp. 274-286
6.36 Modes de fonctionnement
Lisez:
E. Biham, "On Modes of Operation",
Fast Software Encryption, Cambridge Security Workshop
Proceedings, Springer-Verlag, 1994, pp.
116-120
et:
E. Biham, "Cryptanalysis of Multiple Modes of
Operation", Advances in
Cryptology ASIACRYPT '94 Proceedings,
Springer-Verlag, 1995, pp. 278-292
Lisez les sections 1 et 2 de:
E. Biham, "Cryptanalysis of
Ladder-DES", Fast Software Encryption,
4th International Workshop Proceeedings, Springer-Verlag, 1997, pp. 134-138
Essayez de briser la construction avant de poursuivre
votre lecture. Lisez aussi:
D. Wagner, "Analysis of Some Recently Proposed
Modes of Operation", Fast Software
Encryption, 5th International Workshop Proceedings,
Springer-Verlag, 1998, pp. 254-269
et essayez de briser les constructions avant de lire
l'analyse.
6.37 Cryptanalyse avancée
d'IDEA
Essayez de briser l'IDEA en utilisant les
différentielles tronquées et les
caractéristiques différentielles-linéaires.
Les résultats sont dans:
J. Borst, L.R. Knudsen et V. Rijmen,
"Two Attacks on Reduced IDEA", Advances
in Cryptology EUROCRYPT '97, Springer-Verlag, 1997, pp. 1-13
et:
P. Hawkes, "Differential-Linear Weak Key
Classes of IDEA", Advances of
Cryptology EUROCRYPT '98 Proceedings,
Springer-Verlag, 1998, pp. 112-126
6.38 Cryptanalyse de TEA
Lisez:
D. Wheeler et R. Needham, "TEA, a Tiny
Encryption Algorithm", Fast Software
Encryption, 2nd International Workshop Proceedings,
Springer-Verlag, 1995, pp. 363-366
Aucune cryptanalyse, hormis sur la préparation
de la clef, n'a été publiée: essayez
d'être le premier.
6.39 Cryptanalyse de RC5
Lisez:
R.L. Rivest, "The RC5 Encryption
Algorithm", Fast Software Encryption,
2nd International Workshop Proceedings, Springer-Verlag, 1995, pp. 86-96
Essayez de briser le RC5. Vous trouverez quelques
résultats dans:
B.S. Kaliski et Y.L. Yin,
"On Differential and Linear Cryptanalysis of the RC5 Encryption
Algorithm", Advances in
Cryptology CRYPTO '96 Proceedings,
Springer-Verlag, 1996, pp. 445-454
L.R. Knudsen et W. Meier, "Improved
Differential Attacks on RC5", Advances
in Cryptology CRYPTO '96 Proceedings,
Springer-Verlag, 1996, 216-228
A.A. Selcuk, "New Results in Linear
Cryptanalisys of RC5", Fast Software
Encryption, 5th International Workshop Proceedings,
Springer-Verlag, 1998, pp. 1-16
6.40 Cryptanalyse de MISTY
Lisez:
M. Matsui,
"New Structure of Block Ciphers with Provable Security Against
Differential and Linear Cryptanalysis", Fast Software Encryption, 3rd International Workshop
Proceedings, Springer-Verlag, 1996, pp.
205-218
M. Matsui, "New Block Encryption Algorithm
MISTY", Fast Software Encryption, 4th
International Workshop Proceedings, Springer-Verlag, 1997, pp. 54-68
Le seul résultat cryptanalytique publié
que je connais est japonais:
H. Tanaka, K. Hisamatsu et T. Kaneko,
"High Order Attack of MISTY without FL Functions",
The Institute of Electronics, Information and Communications
Engineers, ISEC98-5, 1998.
6.41 Cryptanalyse de Square
Lisez:
J. Daemen, L. Knudsen et V. Rijmen, "The Block
Cipher Square", Fast Software
Encryption, 4th International Workshop Proceedings,
Springer-Verlag, 1997, pp. 149-165
excepté la section 6: essayez d'attaquer le
chiffrement avant de la lire.
6.42 Propositions à l'AES
En 1998, le
National Institute of Standards and Technology a demandé des
candidats afin de remplacer le chiffrement par blocs DES. Quinze
propositions ont été reçues. Vous pouvez
consulter l'évolution et le traitement des propositions
à l'AES sur le site Internet du NIST, qui inclut des
détails sur les diverses propositions: http://www.nist.gov/aes/
Cassez ce que vous pouvez, et envoyez les
résultats au NIST.
7 Conclusion
Le seul
moyen pour devenir un bon concepteur d'algorithmes est d'être
un bon cryptanalyste: casser des algorithmes. Beaucoup. Encore et
encore. Seulement après qu'un étudiant ait
démontré ses capacités à cryptanalyser
les algorithmes des autres, il pourra voir ses propres conceptions
considérées sérieusement par les mêmes
autres.
Étant donné que beaucoup de
nouveaux algorithmes ont été créés ces
dernières années certains publiés,
certains brevetés, d'autres propriétaires
comment font les cryptanalystes pour déterminer ceux qu'ils
doivent continuer à étudier? Ils observent le
pedigree de l'algorithme. Un algorithme qui a été
inventé par quelqu'un qui a montré qu'il peut briser
des algorithmes il aura étudié la
littérature, peut-être en utilisant ce cours, et
publié quelques faits qui n'auront pas été
découverts avant lui a plus de chances d'inventer un
chiffrement sûr, qu'une personne qui n'a fait que lire les
documents disponibles, et qui a inventé son propre
algorithme. Dans les deux cas, le créateur de l'algorithme
est convaincu que son algorithme est sûr; dans le premier
cas, l'opinion de l'auteur aura une valeur.
Les cryptanalystes font aussi attention
à la documentation associée à la conception. A
nouveau, la conception est facile, et l'analyse est difficile. Les
conceptions qui sont fournies avec des analyses poussées
des variantes simplifiées cassées, des versions
à rondes réduites cassées, et des
implémentations alternatives montrent que le
créateur sait ce qu'il a fait quand il a créé
son algorithme. Une simple étude des soumissions à
l'AES révèle quelles conceptions ont
été sérieusement préparées, et
lesquelles ne l'ont pas été; une conception
sérieuse c'est donc avant tout de la cryptanalyse.
Tout le monde peut inventer un algorithme
qu'il ne pourra pas briser. Ce n'est même pas difficile. Ce
qui est difficile c'est la cryptanalyse. Et seul un cryptanalyste
expérimenté pourra concevoir un bon chiffrement.
|