Un code secret peut-il permettre une transaction sécurisée? Michel Waldschmidt 14 novembre 2011 Collège Jean-Jaurès, Pantin SMF Promenade MathématiquePromenade Mathématique
2 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.
3 Codes correcteurs derreurs: Pour faciliter la transmission de données Cryptographie: Pour sécuriser la transmission de données
4 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''.
5 Principaux centres: INRIA Rocquencourt Université de Bordeaux ENST Télécom Bretagne Université de Limoges Université de Marseille Université de Toulon Université de Toulouse Recherche en théorie des codes
6 Brest Bordeaux Marseille Toulouse Limoges INRIA Toulon
7 Codes correcteurs derreurs et transmission de données Transmissions par satellites CDs & DVDs Téléphones cellulaires
8 Le pôle nord de la planète Mars Le Mont Olympus sur la planète Mars Voyager 1 et 2 (1977) Trajet: Cap Canaveral, Jupiter, Saturn, Uranus, Neptune. Mariner 2 (1971) et 9 (1972)
9 Mariner 9 (1979) Photographies en noir et blanc de Mars Voyager ( ) JupiterSaturne
: 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 nutilisent que quelques watts. Malgré limportance du bruit qui vient perturber les messages, les transmissions sur des centaines de millions de km se font sans perte dinformation. NASA : mission Pathfinder sur Mars (1997)
11 Un CD de haute qualité a facilement plus de erreurs! Le traitement du signal permet de corriger ces erreurs et dannuler le bruit. Sans code correcteur derreurs, il ny aurait ni CD ni DVD.
12 1 seconde de signal audio = chiffres 0 ou : accord entre Sony et Philips pour une norme concernant les disques CD audio fois par seconde, 16 chiffres pour chacun des deux canaux stéréos
13 Codes et Mathématiques Algèbre (mathématiques discrètes, algèbre linéaire,…) Géométrie Probabilités et statistiques
14 Corps finis et théorie des codes Résolutions déquations par radicaux: théorie des corps finis (Galois fields) Evariste Galois ( ) Construction de polygones réguliers par la règle et le compas Théorie des groupes
15 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 ny a pas dautre code parfait corrigeant plus dune erreur que les deux trouvés par Golay.
16 Empilement de sphères kissing number 12
17 Empilement de sphères Problème de Kepler: densité maximale dun pavage de lespace par des sphères identiques / 18= … Conjecturé en Démontré en 1999 par Thomas Hales. Lien avec la cristallographie.
18 Géométrie projective finie Deux points déterminent une ligne (« droite »), deux droites se coupent en un point.
19 Plan de Fano Trois points sur chaque droite, par chaque point passent trois droites Matrice dincidence: L1L2L3L4L5L6L7L1L2L3L4L5L6L7 p 1 p 2 p 3 p 4 p 5 p 6 p 7
20 Quelques codes utiles 1955: Codes de convolution. 1959: Bose-Chaudhuri-Hocquenghem (codes BCH). 1960: Reed-Solomon. 1970: Goppa. 1981: Géométrie algébrique
21 Messages Alphabet: lettres ou chiffres Exemple fondamental: {0,1} Mots: suites de lettres ou de chiffres
22 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) Taux: 1/3
23 Corriger en Corriger en Corriger en et Corriger en Corriger en Corriger en 1 1 1
24 Principe des codes corrigeant une erreur Deux mots distincts dans le code ont au moins trois lettres différentes
25 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 ( )
26 Distance de Hamming égale à 1 Mots obtenus en changeant une lettre
27 La sphère unité de Hamming La sphère unité de centre le mot bleu comporte les mots à distance 0 ou 1 La sphère unité autour dun mot
28 Au plus une erreur Mot envoyé Le canal Mots qui peuvent être reçus avec au plus une erreur
29 Mots à distance au moins 3 Les deux sphères unités sont disjointes Ces mots sont à distance au moins 3
30 Décoder Le mot erroné reste dans la sphère de Hamming initiale, le centre est le mot du code.
31
32 Cryptographie: Pour sécuriser la transmission de données
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 quil y a dedans. Bob possède aussi un cadenas et une clé, mais qui ne sont pas compatibles avec ceux dAlice. 35
Le protocole Alice ferme la valise avec son cadenas et sa clé et lenvoie à 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 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 dIdentification Personnel La carte à puce a été inventée par deux ingénieurs français, Roland Moreno (1974) et Michel Ugon (1977) 38
Code secret dune 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 dautre que vous ne connaît. 39
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. La carte à puce. Lordinateur 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 Exemples plus sophistiqués: prendre une permutation quelconque (ne respectant pas forcément lordre). 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 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 par D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Exemple: CRYPTOGRAPHIE devient FUBSWRJUDSKLH 41
, Abu Youssouf Ya qub Ishaq Al Kindi Manuscrit sur le décryptage des messages. Vérification de l authenticité des textes sacrés de lIslam. XIIIè siècle, Roger Bacon: sept méthodes pour chiffrer des messages. 42
1850, Charles Babbage (fréquence of des lettres) Machine de Babbage (ancêtre de lordinateur) Ada, comtesse de Lovelace: premier programme 1586, Blaise de Vigenère (clé: «table of Vigenère») Cryptographe, alchimiste, écrivain, diplomate 43
Frequency of letters in english texts 44
45
Alphabet International de Morse Samuel Morse,
Déchiffrage des hiéroglyphes Jean-François Champollion ( ) 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 ( ) Électromagnétisme Herz, Bose: radio 49
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. Auguste Kerckhoffs «La cryptographie militaire», Journal des sciences militaires, vol. IX, pp. 5–38, Janvier 1883, pp. 161–191, Février
1950, Claude Shannon pour garantir la sécurité, il faut une clé secrète au moins aussi longue que le message à envoyer. 1917, Gilbert Vernam (masque jetable) Exemple: le téléphone rouge entre le Kremlin et la Maison Blanche Message Original: Clé Message envoyé … … … + = = + 51
Alan Turing Début de linformatique Déchiffre les messages de la machine Enigma 52
Colossus Max Newman, premier ordinateur électronique programmable (Bletchley Park, avant1945) 53
Théorie de linformation Claude Shannon A mathematical theory of communication Bell System Technical Journal,
Claude E. Shannon " Communication Theory of Secrecy Systems ", Bell System Technical Journal, 28-4 (1949),
Sécurité Sécurité inconditionnelle: le message codé ne révèle aucune information sur le message source, la seule méthode est dessayer 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 doffre 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 lalgorithme 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
Lalgorithme 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),
Cryptographie Symétrique versus Asymétrique Symétrique (clé secrète): Alice et Bob ont chacun une clé de la boîte aux lettres. Alice utilise sa clé pour déposer sa lettre dans la boîte. Bob utilise sa clé pour récupérer la lettre. Alice et Bob sont les seuls à pouvoir ouvrir la boîte aux lettres. Asymétrique (clé publique) Alice trouve ladresse de Bob dans un annuaire public, elle envoie sa lettre à Bob, qui utilise sa clé secrète pour la lire. Tout le monde peut envoyer un message à Bob, lui seul peut les lire. 60
RSA (Rivest, Shamir, Adleman ) 61
R.L. Rivest, A. Shamir, et L.M. Adleman A method for obtaining digital signatures and public- key cryptosystems, Communications of the ACM (2) 21 (1978),
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 dune fonction trappe: le logarithme discret (version simplifiée) On part dun nombre à trois chiffres x. On calcule le cube de x, à savoir : x x x = x 3. On ne conserve que les trois derniers chiffres = reste de la division par 1000: cest 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 x 3 sont 631, ce que lon écrit x modulo 1000, trouver x. Solution brutale: essayer toutes les valeurs de x=001, 002, … on trouve ainsi x=111 – cest la seule solution. Vérification: = On ne garde que les trois derniers chiffres: modulo 1000 Puis =
Racine cubique modulo 1000 Résoudre x modulo Autre méthode: utiliser une clé secrète. La clé publique est 3, car on calcule x 3. Une clé secrète est 67. Cela signifie que si on calcule la puissance 67 de 631, on trouve x: x modulo (x 3 ) 67 x modulo
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 x modulo 1000 on calcule modulo 1000 donc x =
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 quil y a dedans. Bob possède aussi un cadenas et une clé, mais qui ne sont pas compatibles avec ceux dAlice. 68
Échange de valises
Cartes à puce 70
ATM message aléatoire 631 Code NIP 67 Clé Publique 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
Message modulo n On choisit un entier n (à la place of 1000): cest 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 quun nombre donné est le produit de deux nombres, trouver les facteurs peut être difficile est-il le produit de deux nombres plus petits? Réponse: oui 2047=
Exemple p= q= pq=
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
Un code secret peut-il permettre une transaction sécurisée? Michel Waldschmidt 14 novembre 2011 Collège Jean-Jaurès, Pantin