Académique Documents
Professionnel Documents
Culture Documents
le cryptographe de Wheatstone
(alphabet clair l'extrieur, cryptographique l'intrieur)
1- INTRODUCTION
La cryptographie est aussi vieille que l'criture. Le mot cryptographie vient du grec kriptos cacher et graphein crire . L'objectif de la
cryptographie est de permettre deux personnes, appeles traditionnellement Alice et Bob, de communiquer, par l'intermdiaire d'un canal de
communication public, sans que ce qu'elles se disent soit comprhensible par une tierce personne, Oscar. Alice utilise une mthode de
chiffrement, ainsi qu'une cl, pour coder son message et Bob connat ( l'inverse d'Oscar) la mthode de dchiffrement approprie pour
dcoder le message.
On appelle cryptanalyse l'art de dcoder des textes sans connatre la cl ni la mthode de chiffrement. C'est--dire l'attaque, ou le cassage, de
la mthode de chiffrement. Il y a plusieurs types d'attaque :
attaque texte chiffr seulement (cipher text-only attack) : on ne dispose que de textes chiffrs, on cherche trouver le texte clair, et
mieux encore la mthode de chiffrement,
attaque texte clair connu (known-plaintext attack) : on dispose du texte chiffr de plusieurs messages ainsi que de textes clairs
correspondants. Ce n'est pas si rare, par exemple on sait que le message est toujours sign de l'expditeur, ou commence toujours par
mon colonel, ou ...
attaque texte clair choisi (chosen-plaintext attack) : on peut choisir les textes clairs dont on a le texte chiffr correspondant,
attaque texte chiffr choisi (adaptative-plaintext attack) : on peut choisir diffrents textes chiffrs dchiffrer qui sont alors fournis.
2 - Cryptographie ancienne
2.1 Code par substitution
2.1.1 Code de Csar
Csar dcalait chaque lettre de 3 crans dans l'alphabet. Le A devient D, le B devient E, le X devient A, le Y devient B, le Z devient C.
emple :
la phrase RENDEZ VOUS AU COLYSEE devient : UHQGHC YRXV DX FROBVHH.
Pour dcoder, il suffit d'appliquer -3 crans dans l'alphabet chaque lettre.
Cliquez ici pour voir l'exemple anim.
Lorsque la phrase crypte garde les mmes espaces que la phrase d'origine, la cryptanalyse est grandement facilite. On peut deviner les mots
courts, comme les mots d'une lettre par exemple (A, L, D, C ou S). Pour cela, on crira toujours une phrase crypte soit d'un seul bloc, soit
coupe arbitrairement en blocs de x lettres.
Par extension, on appelle code de Csar tout dcalage d'un nombre quelconque de lettres dans l'aphabet. Remarque : si on dcale de 13 crans,
la mthode est la mme pour coder et pour dcoder. Ce codage est connu sur internet sous le nom de Rot13, il ne sert pas vritablement
cacher un secret mais prolonger le suspens d' une devinette, la chute d'une blague, l'intrigue d'un film, etc.
La cryptanalyse de telles mthodes est vidente. On peut passer en revue toutes les solutions possibles, il n'y en a que 25. Mais il y a une
manire plus efficace : tenir compte de la frquence des lettres. En franais, comme dans beaucoup d'autres langues, la lettre la plus frquente
est le E (17%). Viennent ensuite le S, le A et le I (autour de 8%), puis le T, R, N (autour de 7%), enfin le U, L et O ( 6%). Ainsi, la lettre qui
apparat le plus souvent dans le texte chiffr a de grandes chances d'tre un E, ce qui permet immdiatement de calculer le dcalage choisi.
Mais attention on peut tomber sur des textes avec peu de E. Voir par exemple le livre de Georges Perec La disparition , crit sans un seul E.
2.1.2 Atbash
Les anciens hbreux utilisaient 3 chiffrements : atbash, albam et atbah.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
i h g f n d c b a r q p o e m l k j z y x w v u t s
On peut remarquer que ces trois codes, lorsqu'ils sont appliqus deux fois, redonnent le texte d'origine.
Ils sont rversibles. Le chiffrement et le dchiffrement se font de la mme manire.
En gnral, les hbreux utilisaient un surchiffrement, c'est--dire plusieurs codes la suite, par exemple albam(atbash(atbah(texte)))
2.1.3 Gnralisation
Tout texte dans lequel on remplace une lettre par un symbole, le mme tout le long du texte, est appel mthode par substitution. On peut par
exemple dcider de remplacer les A par des F, les B par des Z, et... sans aucune logique. Ou mme les A par des toiles, les B par des carrs,
etc. Le morse peut tre considr comme un chiffrement par substitution.
Lorsque l'on remplace les lettres par des lettres, les frquences des seules lettres ne suffisent plus dcrypter le texte. On prend alors en
compte aussi les frquences des digrammes et trigrammes.
Les digrammes les plus frquents sont (dans l'ordre) : ES, EN, LE, DE, ON, RE et NT. Un digramme intressant est le QU, form d'une lettre
trs peu frquente et d'une lettre frquente. Les digrammes doubles les plus frquents sont (dans l'ordre) : SS et LL, puis NN, MM, EE et PP.
Les trigrammes les plus frquents sont (dans l'ordre) : ENT, LES, ION, QUE
emple :
La cl LIBERTE: L'ordre alphabtique de succession des lettres est : 5,4, 1, 2, 6, 7, et 3. On rcrit alors l'alphabet en le rangeant dans
cet ordre :
5 4 1 2 6 7 3
e d a b f
l k h i
s r o p t
z y v w
g c
m n j
u q
x
Puis il suffit de recopier ligne par ligne pour obtenir l'alphabet de substitution :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
e d a b f g c l k h i m n j s r o p t u q z y v w x
AB a b c d e f g h i j k l m
nopqrstuvwxyz
CD a b c d e f g h i j k l m
znopqrstuvwxy
EF a b c d e f g h i j k l m
yznopqrstuvwx
GH a b c d e f g h i j k l m
xyznopqrstuvw
IL a b c d e f g h i j k l m
wxyznopqrstuv
MN a b c d e f g h i j k l m
tuvwxyznopqrs
OP a b c d e f g h i j k l m
stuvwxyznopqr
QR a b c d e f g h i j k l m
rstuvwxyznopq
ST a b c d e f g h i j k l m
qrstuvwxyznop
VX a b c d e f g h i j k l m
pqrstvxyznopq
YZ a b c d e f g h i j k l m
opqrstvxyznop
Porta dfinit un systme de 11 alphabets : alphabets AB, CD, EF, etc ou encore alphabet A qui est le mme que l'alphabet B, alphabet C qui est
le mme que l'alphabet D, etc.
On se donne un mot cl, par exemple SECRET et on chiffre la premire lettre du texte par l'alphabet S, la deuxime par l'alphabet E, la
troisime par l'alphabet C, etc, la sixime par l'alphabet T, et l'on recommence : la septime par l'alphabet S, etc... (Le U et le V sont confondus,
de mme que le I et le J).
Le problme est qu'il y a un petit nombre d'alphabet et que deux lettres peuvent correspondre au mme. Par exemple la cl BAIL de longueur 4
ne donne que deux alphabets.
emple :
soit la phrase RENDEZ VOUS A MIDI PLACE DE LA LIBERTE et le mot cl SECRET.
La phrase devient :
BPBSP HEDIB YPNOV MVQSP PXVQO TNXGD V
Pour dchiffrer :
emple :
Si l'on a la cl BAC par exemple, on place le B sous le a et on regarde ce que devient la premire lettre du texte chiffrer. Puis on met le
A sous le a et on regarde pour la deuxime lettre. Puis le C sous le a et on regarde pour la troisime lettre. Et on recommence avec le B,
ainsi de suite.
Ds 1953, Porta a imagin le mme instrument mais sous forme de deux cercles l'un dans l'autre, le grand cercle pouvant tourner autour
du petit.
Soit par exemple la cl BAC et la lettre e coder : on cherche le e sur la 1re ligne, le B dans la colonne, et on tombe sur une ligne qui a un x
ses deux extrmits. La lettre crypte est donc x.
En fait c'est exactement le systme de Vigenre/St Cyr dans lequel on aurait retourn l'alphabet.
emple :
soit coder RENDEZ VOUS PLACE DE LA LIBERTE A MIDI avec le nombre 63071. Le R plus 6 donne X. Le E plus 3 : H. Le N plus 0 :
N. Le D plus 7 : K. Le E plus 1 : F. Le Z plus 6 : F etc. Finalement on obtient : XHNKFF YOBTVO AJFJHE SJHHEY UKDMPE O.
Le seul problme est qu'on ne peut faire que des dcalages de moins de 10 crans au lieu d'aller jusqu' des dcalages de 25.
emple :
RMUUWQPMQGXHWBGGKKKNITMUXWWTMGGXHEPH
Plusieurs polygrammes se trouvent rpts : MU, GXH, GG, TM. L'intervalle sparant deux MU est de 21 lettres. Deux GHX : 21 lettres.
Deux GG : 15 lettres. Deux TM : 6 lettres.
21=3*7, 15=3*5, 6=3*2. Le facteur commun est 3, on va donc partir sur une cl de longueur 3.
Le texte devient :
RMU
UWQ
PMQ
GXH
WBG
GKK
KNI
TMU
XWW
TMG
gxh
EPH
Chaque colonne est crypte avec le mme alphabet par une substitution simple. On cherche la lettre de plus grande frquence dans
chaque colonne et on suppose que c'est un E. Cela donne le G pour la premire colonne, le M pour la 2 ime et le H pour la 3 ime. C'est-dire un dcalage de -2 pour la premire colonne (de G E), -8 pour la deuxime et -3 pour la dernire. On applique ce dcalage pour
chaque lettre et on obtient :
PER
SON
NEN
EPE
UTD
ECH
IFF
RER
VOT
RED
EPE
CHE
emple :
soit la cl INGENIEUX et la phrase RENDEZ VOUS A MIDI. On choisit une lettre de la cl, par exemple la quatrime, le E et on rajoute ce
E chaque fois que lon a envie de couper la cl :
R E N D
E Z V
O U S A M I
I N G E E I N G E I
D I
N G E N I E I N
7 2 8 4 10 9 1 3 6 5
RE NDE ZV OUS
AMI DI PL A CE
DE L AL I B E RT
EX Z AE BGDZ F
Il faut complter la grille avec des lettres quelconques. Le texte crypt est alors compos de la colonne numro 1, suivi de la colonne numro 2,
etc... On obtient ici :
VLBGEMEXOAEDDDAASETFUCRZRADENILZZPIBEILE
Entre le XXime et le VIIime sicle avant JC, les assyriens utilisaient un scytale, ou bton de Plutarque. Le texte est sur un papier que l'on
enroule autour d'un bton d'un diamtre connu par l'metteur et le rcepteur. Lorsque le papier est droul, on ne comprend pas la suite de
lettres, lorsqu'il est enroul autour du bton, on peut lire le message longitudinalement. Sur le dessin, le texte clair est COMMENT CA
MARCHE.
On crit les lettres du texte crypter dans les trous, de gauche droite et de haut en bas. Lorsque 9 lettres sont crites, on tourne la grille d'un
quart de tour sur la droite, puis on crit les 9 lettres suivantes. Ainsi de suite jusqu' crire 36 lettres. Si le texte crypter est plus court, on
complte avec des lettres quelconques, s'il est plus grand, on refait une grille. Les lettres sont ensuite crites les unes la suite des autres en
lisant la grille de haut en bas et de gauche droite.
emple :
Exemple : soit le texte : RENDEZ VOUS A MIDI PLACE DE LA LIBERTE. Cela devient :
E
E
Z
I
J
L
R
T
D
Z
A
L
C
S
E
W
I
I
E
E
M
L
P
U
R
D
E
Y
P
B
N
A
Q
D
O
Donc : ERCERNETSEDAZDEMEQIZWLYDJAIPPOLLIUBA
Cliquez ici pour voir l'exemple anim.
Son ide est de transmettre les messages de loin en loin par des torches, dans la main gauche et dans la main droite, entre une et cinq.
1 B V D G Z
2 J
S F
3 L
A R K X
4 C O I
U P
V E
5 Q N M H T
regrouper les lettres 5 par 5 en compltant si besoin par des lettres inutiles
sous chaque lettre on note les 2 coordonnes verticalement
puis on lit les coordonnes horizontalement par groupe de 5 (en haut puis en bas) pour chiffrer
emple :
RENDEZ VOUS A MIDI devient :
RENDE ZVOUS AMI DI
3 4 5 1 4 1 4 4 2 2 3 5 41 4
3 5 2 3 5 5 4 2 4 2 2 3 33 3
pas des chiffres. Ces lettres sont choisies pour tre diffrentes en morse, de faon viter les erreurs de transmission : A, D, F, G et X. George
Jean Painvin cassa ce systme en mai 1918. Ds juin, les allemands rajoutrent une lettre (le V) leur permettant de coder 36 symboles, les
lettres et les 10 chiffres. Le tableau utilis est :
A D
F G
o f
w j
a 2
0 q
u l
g z
Mais ce n'est pas tout. Aprs avoir t chiffr de cette manire (avoir not les coordonnes), on surchiffre avec une transposition par colonnes.
G.J. Painvin cassa aussi rapidement ce code ADFGVX, mais le colonel Nebel ne le sut qu'en 1967.
Thomas Jefferson, futur prsident des Etats-Unis (1743-1826), utilisait un cylindre consistant en 26 roues qui pouvaient tourner autour d'un axe.
Les 26 lettres de l'alphabet sont inscrites sur la tranche de chaque roue dans un ordre alatoire. En tournant ces roues, on peut crire un
message chiffrer. Puis on regarde une autre ligne quelconque du cylindre et c'est le texte chiffr. Pour dchiffrer, on cherche une ligne sur
laquelle le texte a un sens.
Le commandant franais Etienne Bazeries rinventa en 1891 un appareil analogue, de mme que le colonel italien Ducros en 1900. Le marquis
de Vianis proposa en 1893 une mthode pour cryptanalyser les messages chiffrs par l'appareil de Bazeries.
on regarde le C dans la grille en bas gauche, on prend n'importe quelle lettre de la colonne de C, par exemple S
on prend la lettre dans la grille du bas droite au croisement de C (grille bas gauche) avec le H (grille du haut) : on trouve Y
on regarde le H dans la grille du haut et on prend n'importe quelle lettre dans sa ligne, par exemple le T
remplacer les lettres par des chiffres : A devient 0, B devient 1, C devient 3, Z devient 25
grouper les nombres obtenus par 2
coder, calculer
, cl de la mthode
emple :
cl A=
Soit le mot CODE SECRET
On groupe par groupe de 2 lettres : CO DE SE CR ET, ce qui donne les couples de nombres 2,14 3,4 17,4 2,16 et 4,18
On calcule les combinaisons linaires :
donc
donc
c'est--dire lettres Y E
c'est--dire lettres DL
Dchiffrement : pour dchiffrer on a besoin de la cl inverse. Les mathmatiques nous disent que, si l'inverse existe, il vaut
o
est la comatrice de A. On ne rentrera pas plus dans les dtails. Retenons seulement que la cl de
dchiffrement se calcule aisment en fonction de la cl de chiffrement.
emple :
Avec un rotor :
si on tape un b, le A s'allume
Pour compliquer les choses, le rotor tourne d'un cran chaque fois que l'on tape une lettre :
La puissance de cette machine vient du gigantisme de la cl. La cl est l'ordre des rotors (6 possibilits), la position possible de dpart
des rotors (
total de l'ordre de
cls possibles.
La cl est change chaque jour. Ainsi, possder la machine (l'algorithme de chiffrement) ne permet pas de casser le chiffrement, c'est la
cl qui compte.
Une version primaire d'Enigma fut prsente un congrs en 1923, mais tait beaucoup trop chre. La marine allemande reprit le projet en
1925 et dveloppa sa propre machine. Le modle Enigma M3 fut adopt par l'arme allemande en janvier 1937. En fait, lorsque la seconde
guerre mondiale clata, les allis savaient dj dcrypter les messages d'Enigma. En Angleterre 12000 scientifiques travaillaient au cassage
d'Enigma, dont Alan Turing, que l'on peut considrer comme l'inventeur de l'ordinateur. Les allis avaient rcupr une machine dans un sousmarin. Surtout, les allemands utilisaient souvent les mmes mots dans leurs enttes ou signatures de messages, ce qui a considrablement
aid les allis casser la cl.
En fvrier 42, les allemands rajoutrent un rotor Enigma. Pendant 11 mois, les allis ne russirent plus dcrypter les messages. Puis de
nouveau ils cassrent le chiffrement.
et on obtient le texte
Afin que le dcryptage soit possible, la fonction dtage doit tre injective.
de {0,1}
{0,1}
de {1,2, ,
{1,2,,
.On applique la
emple :
soit
et la S-boite :
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1110
0100
1101
0001
0010
1111
1011
1000
Soit
et la permutation de taille
0011
1010
0110
1100
0101
1001
0000
0111
10
11
12
13
14
15
16
13
10
14
11
15
12
16
et
Remarque : le
est commutatif :
emple :
11010
01100 = 10110
Fonction dtage :
A chaque tage i, sauf le dernier on effectue :
- un ou exclusif avec la cl
-
emple :
Exemple : Avec
et
Soit la cl de 32 bits
donnes prcdemment, et
0011 1010 1001 0100 1101 0110 0011 1111
ime de
Au premier tage :
Aprs le ou exclusif on obtient : 0001 1100 0010 0011
Aprs les 4 substitutions : 1001 1000 0110 1101
Aprs la permutation : 1101 0011 0010 1001
Au troisime tage :
Aprs le ou exclusif : 1010 1010 1110 0000
Aprs les 4 substitutions : 0100 0101 1110 0000
Aprs la permutation : 0010 1110 0010 1100
Au deuxime tage :
Aprs le ou exclusif : 0111 1010 0110 0100
Aprs les 4 substitutions : 0100 0101 1111 1010
Aprs la permutation : 0011 1110 0011 0110
Au quatrime tage :
Aprs le ou exclusif : 0110 0011 0100 1111
Aprs les 4 substitutions : 1111 1101 1010 0001
Aprs le ou exclusif : 0010 1011 1001 1110
Ce SPN nest bien sr quun exemple. Un SPN raliste doit avoir des cls plus longues, des S-boites plus grandes et doit comporter plus dtages.
Pour crypter un texte de longueur quelconque, on le dcoupe en blocs de taille
qui donne le
bloc chiffr
Dans les deux derniers modes, chaque bloc, on utilise, non pas la cl, mais le chiffrement de la cl prcdente.
, des S-boites et des ou exclusifs. La cl est de 64 bits dont 8 sont utiliss pour
la dtection derreurs. Chacune de ces 8 bits est utilis comme bit de parit (il vaut 1 sil y a un nombre impair de 1 dans les 7 bits sa gauche, 0 sinon).
Les sous-cls de 48 bits sont des slections permutes de la cl. Il y a 16 tages. La fonction dtage consiste en une extension de
exclusif avec
48 bits, un ou
, des substitutions (8 S-boites) sur les 8 sous-chanes de 6 bits composants le rsultat, suivies dune permutation.
).
explor toutes les clefs possibles en 1 journe seulement. Mais le cot dune telle machine est estim 20 000 000 euros !
En 1993, on parla dune autre puce qui pouvait tester
cls par seconde et aurait cot 10 euros. En 3,5 heures, pour 1 000 000 euros, on pouvait
a gagn le concours des laboratoires RSA, le DES Challenge II-2, en trouvant une clef DES en 56 heures en juillet 98. En janvier 99, ce mme DES
Cracker , aid par un rseau mondial de 100 000 ordinateurs, a permis de trouver une cl DES en 22h15.
Une premire ide a t dappliquer DES plusieurs fois : 2DES, puis 3DES. Mais, logiquement, 3DES est trois fois plus lent que le simple DES.
Il existe galement des cls faibles. Cela est d la construction des sous-cls partir de la cl initiale. Si tous les bits de chaque moiti sont des 0, ou tous
des 1, alors la cl utilise est la mme quelque soit ltage. De plus, il existe des cls qui chiffrent un texte en clair en un mme texte chiffr. Il y a aussi des
cls qui nengendrent que 4 sous-cls diffrentes, utilises chacune 4 fois. Au total, on compte 64 cls faibles. Cest peu en comparaison du nombre de cls
totales possibles : 72.10
. Si on choisit une cl alatoire, les chances de tomber sur une cl faible sont donc ngligeables.
AES comporte 10, 12 ou 14 tages suivant la longueur de la cl (128, 192 ou 256 bits). La longueur de blocs est de 128 bits. La fonction dtage consiste en
Maintenant on parle de cryptographie cl publique, ou asymtrique : la cl de dchiffrement na rien voir avec la cl de chiffrement. La cl de
chiffrement peut tre rendue publique, ce nest pas elle lessentiel. Elle peut tre change sans secrets, se trouver mme dans une bibliothque publique.
La cl de dchiffrement par contre doit rester prive. Bob doit possder sa propre cl de dchiffrement des messages dAlice. Alice ne la connat mme pas,
donc mme Alice ne pourrait dchiffrer son propre message !
Linconvnient des systmes cl publique est quils sont plus lents que les systmes cl prive.
Le chiffrement asymtrique utilise une fonction sens unique trappe (trapdoor one-way function). Cest une fonction facile calculer, mais difficile
inverser, et qui possde une trappe, c'est--dire quavec une information supplmentaire elle devient facile inverser. Pour le RSA, il sagit de la fonction
l ensemble {0,1,2,,
laddition et la multiplication fonctionnent comme laddition et la multiplication usuelles sauf que les rsultats sont rduits modulo
.
garde le reste de la division entire par
dans
emple :
11*13 dans
? Dans les entiers ordinaires 11*13=143. 143 modulo 16 ? On fait une division entire : 143=16*8+15. Donc 143 mod
1. Choisir
et
2. Calculer
et
premier avec
4. Calculer
5. La cl publique, que lon peut donner tout le monde, est (n,b). La cl prive est (p,q,a)
6. Pour chiffrer un message
) on calcule
emple :
Bob choisit
101 et
. On a donc
et
lon a bien pgcd (3533,11200)=1, c'est--dire que les nombres sont premiers entre eux). On calcule
grce lalgorithme dEuclide tendu, que lon va tudier dans la section suivante. Donc la cl secrte de Bob est 6597. Bob publie
et
qui est difficile inverser. La trappe que Bob cache est la factorisation
(et surtout
). Pour lui, il est facile de calculer lexposant de dchiffrement a en utilisant lalgorithme tendu dEuclide. Une attaque vidente consiste chercher
cette factorisation
. Cela est impossible si p et q sont suffisamment grands, c'est--dire sils comportent plus de 512 bits chacun. Factoriser un
nombre au-del de 1024 bits est au-del des capacits des meilleurs algorithmes de factorisation actuellement connus.
On a : pgcd(a,b)=pgcd(
initialis b
)=pgcd(
)==pgcd(
)=
tant que
faire
(division entire)
fin tant
que
retourner
// le pgcd(a,b)
emple :
pgcd(16,12) ?
s
=16 div 12 = 1,
=16-12=4, m=2
=12-3*4=0, m=3
Un entier
est inversible si et seulement si pgcd(b,m)=1. Lalgorithme dEuclide permet de dire si b est inversible, mais ne permet pas de calculer
faire
tant que
div
si
fin si
fin tant que
alors
retourner
mportant :
Thorme :
si pgcd(a,b)=1, alors
est le
emple :
calculer linverse de 28 dans
(c'est--dire
a =75 et b=28
i
0
1
2
3
4
5
Donc
75
28
19
9
1
0
2
1
2
9
1
0
1
-1
3
0
1
-2
3
-8
en temps O(
),
o l est le nombre de bits de c et k celui de n, on utilise lalgorithme suivant. Cet algorithme utilise la dcomposition binaire de c :
alors
si
fin si
fin pour
retourner z
emple :
Soit n=193 et b=47. Si Alice veut chiffrer 12, elle doit calculer
On a x=12, b=47=101111=c, n=193.
i
o m est impair
Linconvnient des algorithmes cl publique, cest quils sont trs lents, de lordre de 1000 fois plus lents que les algorithmes cl prive. On a alors
recours des systmes hybrides. On change les cls dun chiffrement cl prive grce un systme cl publique, ce qui permet de scuriser la
communication de la cl. On utilise ensuite un systme cl prive.