Académique Documents
Professionnel Documents
Culture Documents
Clés secrètes
Bruno MARTIN,
Université de Nice - Sophia Antipolis
Présentation du cours
mathématiques économie
cryptologie
informatique droit
déchiffrement
Objectifs
1
regardez-le dans les archives de l’université de tous les savoirs
http://www.canal-u.tv/content/view/videos/77714
Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptologie & sécurité 6
Généralités
Clés secrètes
(A devient d, B devient e. . . )
Âge paradoxal – DH
Pourquoi la cryptographie ?
Hier :
pour des raisons stratégiques et assurer le SECRET
(éviter qu’un l’ennemi lise un ordre de bataille)
par l’église (pour des raisons politiques)
par la diplomatie (pour les rapports d’ambassades)
Aujourd’hui :
↑ des communications (internet, phonie, rx mobiles. . . ) requiert :
confidentialité
intégrité
authentification
et un principe de minimalité ; rien n’est communiqué aux autres
parties excepté ce qui est expressément spécifié.
Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptologie & sécurité 11
Généralités
Clés secrètes
Modèles de sécurité
signal
source message- émetteur - -récepteur message-destinataire
d’info 6
source de
bruit
le codage
pour un canal non bruité (construction de codes optimaux)
pour un canal bruité (il existe de bons codes)
la compression
avec pertes
sans perte
le secret
Le codage
Compression et secret
P C C
Source Emetteur Récepteur
K K
Source de clé
{m} c c {c}
m PKB DKB m
PKB
PKB DKB
Les deux !
clés publiques : pour l’échange de clés (secrètes)
clé secrètes : pour chiffrer de grandes quantités de données
(1000× plus rapide !)
chiffre
à longueur en bloc
variable
(stream ciphers)
substitution transposition produit
simple (monoalphabétique)
polyalphabétique
homophone
polygramme
Clés secrètes
a b c d e f g h i j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12
0 2 4 6 8 10 12 14 16 18 20 22 24
n o p q r s t u v w x y z
13 14 15 16 17 18 19 20 21 22 23 24 25
0 2 4 6 8 10 12 14 16 18 20 22 24
#!/usr/bin/ruby C=codemod26("RAWFEJBANAREQSSQBDAWKRSKWK")
clair=’RAWFEJBANAREQSSQBDAWKRSKWK’ D=[]
def codemod26(texte)
tabnum=[] for i in 1..26 do
clair=texte.upcase d, x, y = euclidExtended(i,26)
for i in 0..clair.length-1 do if d == 1
tabnum[i]=clair[i].to_i - 65 j=0
end C.each do |c|
tabnum D[j] = c*x % 26 + 65
end j += 1
def euclidExtended(a, b) end
#d=ax+by D.each do |d|
d, dd, x, xx, y, yy = 0 print d.chr
if b == 0 end
return a, 1, 0 print " i=", i, "\t inv= ",x\%26,"\n"
else end
dd, xx, yy = euclidExtended(b, a % b) end
d, x, y = dd, yy, xx - a / b * yy
return d, x, y
end
end
Cryptanalyse de Vigenère
test de Kasiski
test de Friedmann
http://fr.wikipedia.org/wiki/Cryptanalyse_du_chiffre_de_Vigenere
Transposition
∀i, 0 ≤ i < 0 f : A M → AM
η : Zn → Zn
ci = f (mi ) = mη(i)
Transposition : scytale
18 14 1 8 15 12 10 16 3 19 4 11 9 17 5 7 13 6 2
l e c h i f f r e m e n t e s t l o p
é r a t i o n q u i c o n s i s t e à
t r a n s f o r m e r u n t e x t e c
l a i r o u l i b e l l é e n u n a u
t r e t e x t e i n i n t e l l i g i
b l e a p p e l é t e x t e c h i f f
r é o u c r y p t o g r a m m e
Attaques
Par analyse de la distribution des lettres, bigrammes[1],. . .
chiffre
à longueur en bloc
variable
(stream ciphers)
substitution transposition produit
simple (monoalphabétique)
polyalphabétique
homophone
polygramme
Ci = g (Ci−1 , Ki ) i = 1, . . . , r
Chiffre de Feistel
g : {0, 1}n × {0, 1}n × {0, 1}m → {0, 1}n × {0, 1}n
X , Y , Z 7→ (Y , F (Y , Z ) ⊕ X )
g de 2n × m bits dans 2n bits et ⊕ XOR sur n bits.
Fonctionnement
Pour un clair P = (P L , P R ) et r clés de tour K1 , . . . , Kr , le chiffré
(C L , C R ) est calculé en r tours.
On pose C0L = P L et C0R = P R et on calcule pour i = 1, . . . , r
Le DES
Utilité du DES
Le DES était le chiffre produit le plus utilisé.
Chiffre de Feistel qui possède des propriétés particulières.
Bruno MARTIN, Université de Nice - Sophia Antipolis Cryptologie & sécurité 40
Généralités
Clés secrètes
Fonctionnement
DES
Li = Ri−1
Ri = Li−1 ⊕ f (Ri−1 , Ki )
Fonctionnement de f (Ri−1 , Ki )
Ri−1 est étendu en 48 bits par E , table de sélection des bits.
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
S-box S1
Colonne
ligne 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 12 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Permutation P
Diversification de la clé
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
Diversification de la clé
PC-1(K )=C · D, 2 blocs de 28 bits subissent une permutation
circulaire vers la gauche pour construire chaque clé de tour Ki .
En notant Ci et Di les valeurs de C et D, on a :
itération 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
décalage 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Déchiffrement
Ri−1 = Li
Li−1 = Ri ⊕ f (Li , Ki )
Même si l’ordre des clés de tour est inversé, l’algo. reste identique.
Triple DES
Triple DES
F.L. Bauer.
Decrypted secrets.
Springer Verlag, 1997.
D. Kahn.
La guerre des codes secrets.
InterEditions, 1980.
L.R. Knudsen.
Block ciphers – a survey.
In Springer Verlag, editor, State of the art in applied cryptography, number 1528 in LNCS, pages 18–48,
1998.
C.E. Shannon and W. Weaver.
The mathematical theory of communication.
University of Illinois press, 1964.
D. Stinson.
Cryptographie, théorie et pratique.
International Thomson Publishing, 1995.