http://www.math.jussieu.fr/~miw/ SMF Promenade Mathématique Un code secret peut-il permettre une transaction sécurisée? Michel Waldschmidt 14 novembre 2011 Collège Jean-Jaurès, Pantin.

Download Report

Transcript http://www.math.jussieu.fr/~miw/ SMF Promenade Mathématique Un code secret peut-il permettre une transaction sécurisée? Michel Waldschmidt 14 novembre 2011 Collège Jean-Jaurès, Pantin.

http://www.math.jussieu.fr/~miw/
SMF Promenade Mathématique
Un code secret peut-il permettre
une transaction sécurisée?
Michel Waldschmidt
14 novembre 2011
Collège Jean-Jaurès, Pantin
Quand vous retirez de l'argent à un distributeur de
billets de banque, quand vous faites une
transaction sécurisée par internet, plus
généralement quand vous voulez vous identifier à
distance en utilisant un réseau public, vous
indiquez un code qui vous est personnel. Quel est
le processus qui permet à votre correspondant de
vous identifier, sans que les échanges de messages
ne permettent de révéler votre mot de passe ? La
théorie des nombres est l'élément clé de la
solution.
2
http://www.math.jussieu.fr/~miw/
Codes correcteurs d’erreurs:
Pour faciliter la transmission de données
Cryptographie:
Pour sécuriser la transmission de données
3
http://www.math.jussieu.fr/~miw/
Aspects mathématiques
de la théorie des codes en France:
Les principales équipes de recherche sont
regroupées dans le réseau
C2 '’Théorie des codes et cryptographie '' ,
qui fait partie du groupe de recherche (GDR)
'’Informatique Mathématique''.
http://www.gdr-im.fr/
4
http://www.math.jussieu.fr/~miw/
Recherche en théorie des codes
Principaux centres:
INRIA Rocquencourt
Université de Bordeaux
ENST Télécom Bretagne
Université de Limoges
Université de Marseille
Université de Toulon
Université de Toulouse
5
http://www.math.jussieu.fr/~miw/
INRIA
Brest
Limoges
Bordeaux
Toulouse
Marseille
Toulon
6
Codes correcteurs d’erreurs et
transmission de données
• Transmissions par
satellites
• CD’s & DVD’s
• Téléphones
cellulaires
7
Mariner 2 (1971) et 9 (1972)
Le Mont Olympus sur la planète
Mars
Le pôle nord de la planète Mars
Voyager 1 et 2 (1977)
Trajet: Cap Canaveral, Jupiter, Saturn, Uranus, Neptune.
8
Mariner 9 (1979)
Photographies en noir et blanc de Mars
Voyager (1979-81)
Jupiter
Saturne
9
NASA : mission Pathfinder
sur Mars (1997)
• 1998: perte de contrôle du
satellite Soho
Récupération grâce à une
double correction par un turbo
code.
Les transmissions par radio sur ces engins spatiaux n’utilisent
que quelques watts. Malgré l’importance du bruit qui vient
perturber les messages, les transmissions sur des centaines de
millions de km se font sans perte d’information.
10
Un CD de haute qualité a facilement
plus de 500 000
erreurs!
• Le traitement du signal permet de corriger ces
erreurs et d’annuler le bruit.
• Sans code correcteur d’erreurs, il n’y aurait ni
CD ni DVD.
11
1 seconde de signal audio
= 1 411 200 chiffres 0 ou 1
• 1980 : accord entre Sony et Philips pour une
norme concernant les disques CD audio.
• 44 100 fois par seconde, 16 chiffres pour
chacun des deux canaux stéréos
12
Codes et Mathématiques
• Algèbre
(mathématiques discrètes,
algèbre linéaire,…)
• Géométrie
• Probabilités et statistiques
13
Corps finis et théorie des codes
• Résolutions d’équations
par radicaux: théorie des
corps finis (Galois fields)
Evariste Galois (1811-1832)
• Construction de polygones réguliers par la
règle et le compas
• Théorie des groupes
14
Codes et Géométrie
• 1949: Marcel Golay (specialiste des radars): trouve deux
codes remarquablement efficaces.
• Eruptions de Io (planète volcanique de Jupiter)
• 1963 John Leech utilise les idées de Golay pour étudier
les empilements de sphères en dimension 24 classification des groupes finis simples.
• 1971: il n’y a pas d’autre code parfait corrigeant plus
d’une erreur que les deux trouvés par Golay.
15
Empilement de sphères
“kissing number” 12
16
Empilement de sphères
• Problème de Kepler: densité maximale
d’un pavage de l’espace par des
sphères identiques
p /  18= 0.740 480 49…
Conjecturé en 1611.
Démontré en 1999 par Thomas Hales.
• Lien avec la cristallographie.
17
Géométrie projective finie
Deux points déterminent une ligne (« droite »),
deux droites se coupent en un point.
18
Plan de Fano
Trois points sur chaque droite,
par chaque point passent trois droites.
Matrice d’incidence:
p1 p2 p3 p4 p5 p6 p7
L1
L2
L3
L4
L5
L6
L7
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
19
Quelques codes utiles
• 1955: Codes de convolution.
• 1959: Bose-Chaudhuri-Hocquenghem (codes
BCH).
• 1960: Reed-Solomon.
• 1970: Goppa.
• 1981: Géométrie algébrique
20
Messages
•
Alphabet: lettres ou chiffres
•
Exemple fondamental: {0,1}
•
Mots: suites de lettres ou de chiffres
21
Corriger une erreur
en répétant trois fois
• On envoie chaque lettre
trois fois
2 mots dans le code
sur 8 possibles
(1 lettre pour les données, 2
lettres de contrôle)
Mots du code
(longueur trois)
000
111
Taux:221/3
• Corriger
• Corriger
• Corriger
et
• Corriger
• Corriger
• Corriger
0 0 1 en 0 0 0
0 1 0 en 0 0 0
1 0 0 en 0 0 0
1 1 0 en 1 1 1
1 0 1 en 1 1 1
0 1 1 en 1 1 1
23
Principe des codes corrigeant une erreur
Deux mots distincts dans le code
ont au moins trois lettres différentes
24
Distance de Hamming entre
deux mots:
= nombre de lettres où les deux mots
diffèrent
Exemples
(0,0,1) et (0,0,0) sont à distance 1
(1,0,1) et (1,1,0) sont à distance 2
(0,0,1) et (1,1,0) sont à distance 3
Richard W. Hamming (1915-1998)
25
Distance de Hamming égale à 1
Mots obtenus
en changeant une
lettre
26
La sphère unité de Hamming
La sphère unité
autour d’un mot
• La sphère unité de centre le mot bleu comporte
les mots à distance 0 ou 1
27
Au plus une erreur
Mots qui
peuvent être
reçus avec au
plus une erreur
Mot
envoyé
Le canal
28
Mots à distance au moins 3
Ces mots sont à
distance au moins 3
Les deux sphères
unités sont disjointes
29
Décoder
Le mot erroné reste dans
la sphère de Hamming
initiale, le centre est le
mot du code.
30
31
Cryptographie:
Pour sécuriser la transmission de données
32
http://www.math.jussieu.fr/~miw/
Crypter pour la sécurité
33
Mathématiques en cryptographie
• Algèbre
• Arithmétique, théorie
des nombres
• Géométrie
• Topologie, tresses
• Probabilités
34
Échange de valises
• Alice a une valise, un cadenas et une clé; elle veut
envoyer la valise à Bob sans que Charlie ne puisse
savoir ce qu’il y a dedans.
• Bob possède aussi un cadenas et une clé, mais qui ne
sont pas compatibles avec ceux d’Alice.
35
Le protocole
• Alice ferme la valise avec son cadenas et sa clé et
l’envoie à Bob.
• Bob y met son propre cadenas et renvoie à Alice la
valise avec les deux cadenas.
• Alice enlève son cadenas grâce à sa clé et renvoie la
valise à Bob.
• Finalement Bob peut ouvrir la valise grâce à sa clé.
• But: en donner une traduction mathématique.
36
Cartes à puce
ATM: Automated
Teller Machine
37
La carte à puce a été inventée par deux ingénieurs
français,
Roland Moreno (1974) et Michel Ugon (1977)
• La sécurité des cartes à puces fait intervenir trois
processus différents; le code NIP, le protocole RSA et
le code DES.
• PIN = Personal Identification Number
• NIP = Numéro d’Identification Personnel
http://www.cartes-bancaires.com
38
Code secret d’une carte bancaire
• Vous devez vous identifier auprès de la banque. Vous
avez deux clés: une publique que tout le monde
connaît, une secrète (le code NIP) que personne d’autre
que vous ne connaît.
39
La carte à puce.
• Les messages que vous envoyez ou que vous recevez
ne doivent pas révéler votre code secret.
• Tout le monde (y compris la banque) ayant accès aux
messages échangés peut vérifier que vous connaissez
ce code secret, mais cela ne leur permet pas de le
connaître.
• L’ordinateur de la banque envoie un message aléatoire.
• Votre réponse dépend de ce message et de votre code secret.
40
Cryptographie:
aperçu historique
Transpositions alphabétiques et substitutions
• Jules César: remplacer une lettre par une autre dans
le même ordre (décalage)
• Exemple: (décaler de 3) remplacer
ABCDEFGHIJKLMNOPQRSTUVWXYZ
par
DEFG HIJ KLMN OPQRSTUVWXYZABC
• Exemple:
CRYPTOGRAPHIE devient FUBSWRJUDSKLH
• Exemples plus sophistiqués: prendre une permutation
quelconque (ne respectant pas forcément l’ordre).
41
• 800-873, Abu Youssouf Ya qub Ishaq Al
Kindi
Manuscrit sur le décryptage des
messages.
Vérification de l’ authenticité des textes
sacrés de l’Islam.
• XIIIè siècle, Roger Bacon: sept méthodes
pour chiffrer des messages.
42
•1586, Blaise de Vigenère
(clé: «table of Vigenère»)
Cryptographe, alchimiste, écrivain, diplomate
• 1850, Charles Babbage (fréquence
lettres)
Machine de Babbage (ancêtre de l’ordinateur)
Ada, comtesse de Lovelace: premier programme
of des
43
Frequency of letters
in english texts
44
45
Alphabet
International de
Morse
Samuel Morse,
1791-1872
46
Déchiffrage des hiéroglyphes
• Jean-François
Champollion
1832)
(1790-
• Pierre de Rosette (1799)
47
Transmission des données
• Pigeons voyageurs : première croisade –
Siège de Tyr, Sultan de Damas
• Guerre franco-allemande de 1870, siège de Paris
• Centres militaires pour l’étude des
pigeons voyageurs : Coëtquidan et Montoire.
48
Transmission des données
• James C. Maxwell
(1831-1879)
• Électromagnétisme
Herz, Bose: radio
49
Auguste Kerckhoffs
«La cryptographie militaire»,
Journal des sciences militaires, vol. IX,
pp. 5–38, Janvier 1883,
pp. 161–191, Février 1883 .
Toute méthode de chiffrement doit être supposée
connue par l'ennemi: la sécurité du système doit
dépendre uniquement du choix de clés, qui doivent
être changées régulièrement.
50
1917, Gilbert Vernam (masque jetable)
Exemple: le téléphone rouge entre le Kremlin et la
Maison Blanche
Message Original:
Clé
Message envoyé
011000101…
0 0 1 1 0 1 0 0 1…
0 1 0 1 0 1 1 0 0…
=
+
+
=
1950, Claude Shannon pour garantir la sécurité, il faut une
clé secrète au moins aussi longue que le message à
envoyer.
51
Alan Turing
Déchiffre les messages de
la machine Enigma
Début de l’informatique
52
Colossus
Max Newman,
premier ordinateur électronique programmable
(Bletchley Park, avant1945)
53
Théorie de l’information
Claude Shannon
A mathematical theory of communication
Bell System Technical Journal, 1948.
54
Claude E. Shannon
" Communication Theory of Secrecy Systems ",
Bell System Technical Journal ,
28-4 (1949), 656 - 715.
55
Sécurité
Sécurité inconditionnelle: le message codé ne révèle
aucune information sur le message source, la seule
méthode est d’essayer toutes les clés possibles.
En pratique, aucun système utilisé dans la réalité ne
satisfait cette condition.
Sécurité pratique: le message codé ne donne aucune
information sur le message source en un temps
raisonnable.
56
DES:
Data Encryption Standard
•
•
•
•
En 1970, le NBS (National Board of Standards)
lance un appel d’offre au Federal Register pour définir
un algorithme de cryptage
ayant un niveau de sécurité élevé qui ne dépend pas de
la confidentialité de l’algorithme mais seulement des
clés secrètes,
qui fait intervenir des clés secrètes pas trop grandes,
rapide, robuste, bon marché,
facile à implémenter.
Le DES a été approuvé en 1978 par le NBS
57
L’algorithme DES:
combinaisons, substitutions et permutations entre
le texte et la clé
•
•
•
•
Le texte est découpé en blocs de 64 lettres
Les blocs sont permutés
Ils sont coupés en deux: droite et gauche
On effectue 16 fois un cycle de permutations et de
substitutions faisant intervenir la clé secrète
• On regroupe les parties gauche et droite puis on
effectue les permutations inverses.
58
Diffie-Hellman:
Cryptographie à clé publique
• Whit Diffie and
Martin E. Hellman,
New directions in
cryptography,
IEEE Transactions
on Information Theory,
22 (1976), 644-654
59
Cryptographie
Symétrique versus Asymétrique
• Symétrique (clé secrète):
• Asymétrique (clé publique)
• Alice et Bob ont chacun une • Alice trouve l’adresse de Bob
clé de la boîte aux lettres.
dans un annuaire public, elle
Alice utilise sa clé pour
envoie sa lettre à Bob, qui
déposer sa lettre dans la
utilise sa clé secrète pour la
boîte. Bob utilise sa clé pour
lire.
récupérer la lettre.
• Alice et Bob sont les seuls à • Tout le monde peut envoyer
pouvoir ouvrir la boîte aux
un message à Bob, lui seul
lettres.
peut les lire.
60
RSA
(Rivest, Shamir, Adleman - 1978)
61
R.L. Rivest, A. Shamir,
et L.M. Adleman
A method for obtaining digital signatures and publickey cryptosystems,
Communications of the ACM
(2) 21 (1978), 120-126.
62
Fonction trappe
x y
est une fonction trappe – à sens unique si
 Étant donné x, il est facile de calculer y
 Étant donné y , il est difficile de trouver x, sauf si on
connaît une clé.
Les exemples font intervenir des problèmes
mathématiques connus pour être difficiles.
63
Exemple d’une
fonction trappe:
le logarithme discret
(version simplifiée)
On part d’un nombre à trois chiffres x.
On calcule le cube de x, à savoir : x x x = x3.
On ne conserve que les trois derniers chiffres = reste de
la division par 1000: c’est y.
• Partant de x, trouver y est facile.
• Connaissant y, retrouver x est difficile.
64
Le logarithme discret
modulo 1000
• Exemple: sachant que les trois derniers chiffres de x3 sont
631, ce que l’on écrit x3  631 modulo 1000, trouver x.
• Solution brutale: essayer toutes les valeurs de x=001,
002, …
on trouve ainsi x=111 – c’est la seule solution.
• Vérification: 111  111 = 12 321
• On ne garde que les trois derniers chiffres:
1112  321 modulo 1000
• Puis 111  321 = 35 631
65
Racine cubique modulo 1000
Résoudre x3  631 modulo 1000.
• Autre méthode: utiliser une clé secrète.
La clé publique est 3, car on calcule x3.
Une clé secrète est 67.
• Cela signifie que si on calcule la puissance 67 de 631,
on trouve x:
63167  x modulo 1000.
• (x3)67  x modulo 1000
66
Racine 7ème modulo 1000
•
•
•
•
•
Pour une clé publique 3, une clé secrète est 67.
Autre exemple: clé publique 7, clé secrète 43.
Sachant x7  871 modulo 1000
on calcule 87143  111 modulo 1000
donc x = 111.
67
Protocole de l’échange de valises
• Alice a une valise, un cadenas et une clé; elle veut
envoyer la valise à Bob sans que Charlie ne puisse
savoir ce qu’il y a dedans.
• Bob possède aussi un cadenas et une clé, mais qui ne
sont pas compatibles avec ceux d’Alice.
68
Échange de valises
111
7
1117  871
3
43
67
31143  631
8713  311
63167  111
111
69
Cartes à puce
70
ATM
message
aléatoire
Code
NIP
631
67
63167  111
Clé
Publique
3
1113  631
Connaissant la clé publique 3 et le message 631
envoyé par la banque, on vérifie que la réponse 111
est correcte, mais cela ne permet pas de deviner le
code secret 67.
71
Message modulo n
• On choisit un entier n (à la place of 1000): c’est la
taille des messages qui seront échangés.
• Tous les calculs seront faits modulo n : on remplace
chaque entier par le reste de sa division par n.
• n sera un entier avec environ 300 chiffres.
72
Il est plus facile de vérifier une
démonstration que de la trouver
Multiplier deux nombres, même un peu grands,
est facile.
Si on sait qu’un nombre donné est le produit de
deux nombres, trouver les facteurs peut être
difficile.
2047 est-il le produit de deux nombres plus
petits?
Réponse: oui 2047=2389
73
Exemple
p=111395432514882798792549017547702484
4070922844843
q=191748170252450443937578626823086218
0696934189293
pq=21359870359209100823950227049996287
9705109534182641740644252416500858395
7746445088405009430865999
74
Choix de n
On prend pour n le produit de deux nombres
premiers de 150 chiffres chacun
Le produit a environ 300 chiffres: les ordinateurs
ne peuvent pas actuellement trouver les
facteurs.
75
http://www.math.jussieu.fr/~miw/
Un code secret peut-il permettre
une transaction sécurisée?
Michel Waldschmidt
14 novembre 2011
Collège Jean-Jaurès, Pantin