Petite introduction aux protocoles cryptographiques Master d informatique M2 Les protocoles cryptographiques p.1/48-1
Internet - confidentialité - anonymat - authentification (s agit-il bien de ma banque?) Les protocoles cryptographiques p.2/48-1
Signature électronique - vérifiable - authentique - non-répudiation (je n ai jamais signé ce texte...) Les protocoles cryptographiques p.3/48-1
Vote électronique Le résultat reflète les votes Chaque vote est confidentiel On ne peut pas connaître des résultats partiels Seuls les électeurs peuvent voter et une seule fois Les protocoles cryptographiques p.4/48-1
Paiement par carte bleue Est-ce qu il s agit d une vraie carte? Est-ce que le montant débité sera égal au montant crédité? Est-ce que le code secret est bien protégé? Les protocoles cryptographiques p.5/48-1
Décodeurs Vérification de l abonné Impossibilité de retransmettre les données décodées à une tierce personne Mise à jour de l abonnement Les protocoles cryptographiques p.6/48-1
Porte-monnaie électronique Pas de création de fausse monnaie Pas de création de faux porte-monnaie Les protocoles cryptographiques p.7/48-1
Bases de données sécurisées Patients Maladies Traitements Dupond rougeole... Dupont oreillons... Durand scarlatine... Seules les personnes habilitées ont accès à la vue partielle à laquelle elles ont droit. Les données peuvent être échangées entre un médecin, un laboratoire, un hôpital. Mise à jour possible des données. Les protocoles cryptographiques p.8/48-1
Propriétés de sécurité Secret: Est-ce qu un participant malhonnête peut connaître une donnée confidentielle? Authentification: À qui parle-t-on vraiment? Anonymat: Peut-on savoir qui communique avec qui? Équité: Lors de la signature d un contrat, est-ce que l un des signataires peut obtenir un avantage sur l autre?... Les protocoles cryptographiques p.9/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement Un protocole pour carte bancaire Le protocole de Needham-Schroeder Les protocoles Zero-knowledge La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.10/48-1
Chiffrement Chiffrement symétrique Bonjour Alice clef Chiffrement Obawbhe Nyvpr On utilise la même clef pour chiffrer et déchiffrer. clef Déchiffrement Bonjour Alice Les protocoles cryptographiques p.11/48-1
Chiffrement Chiffrement symétrique Bonjour Alice clef Chiffrement Obawbhe Nyvpr On utilise la même clef pour chiffrer et déchiffrer. clef Déchiffrement Bonjour Alice Chiffrement asymétrique Bonjour Alice clef Obawbhe publique Nyvpr Chiffrement clef privée Déchiffrement Bonjour Alice On chiffre avec la clef publique et on déchiffre avec la clef privée. Les protocoles cryptographiques p.11/48-1
Le chiffrement autrefois Le chiffrement de César : décalage des lettres Disque de chiffrement (Léone Battista Alberti 1466) Les protocoles cryptographiques p.12/48-1
Le chiffrement autrefois Le chiffrement de César : décalage des lettres Disque de chiffrement (Léone Battista Alberti 1466) sujet à des analyses statistiques Les protocoles cryptographiques p.12/48-1
Le chiffrement : période technique Substitutions et permutations automatiques Enigma Les protocoles cryptographiques p.13/48-1
Le chiffrement aujourd hui Utilisation de problèmes algorithmiquement durs. Fonction RSA n = pq, p et q premiers. e : exposant public x x e mod n facile (cubique) y = x e x mod n difficile x = y d où d = e 1 mod φ(n) Les protocoles cryptographiques p.14/48-1
Le chiffrement aujourd hui Utilisation de problèmes algorithmiquement durs. Fonction RSA n = pq, p et q premiers. e : exposant public x x e mod n facile (cubique) y = x e x mod n difficile x = y d où d = e 1 mod φ(n) Problème de Diffie-Hellman étant donné A = g a et B = g b, calculer DH(A, B) = g ab Les protocoles cryptographiques p.14/48-1
Estimations pour la factorisation d entiers Module Opérations (bits) (en log 2 ) 512 58 1024 80 2048 111 4096 149 8192 156 2 60 ans Bornes inférieures pour RSA et Diffie-Hellman. Les protocoles cryptographiques p.15/48-1
Exemple de chiffrement à clef publique : RSA public privé n = pq d = e 1 mod φ(n) e (clef publique) (clef privée) Chiffrement RSA E(m) = m e mod n D(c) = c d mod n Les protocoles cryptographiques p.16/48-1
Signature Bonjour Alice Signature clef privée Obawbhe Nyvpr clef publique Bonjour Alice Vérification Les protocoles cryptographiques p.17/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement. Un protocole pour carte bancaire. Le protocole de Needham-Schroeder. Les protocoles Zero-knowledge. La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.18/48-1
Échange de secret On peut utiliser la clef k = 785341006 Mon code bancaire est {3443} 785341006 Les protocoles cryptographiques p.19/48-1
Échange de secret On peut utiliser la clef k = 785341006 Mon code bancaire est {3443} 785341006 La clef est 785341006 Je déchiffre... le code secret est 3443 Les protocoles cryptographiques p.19/48-1
Chiffrement commutatif (RSA) {code : 3443} kasterix Les protocoles cryptographiques p.20/48-1
Chiffrement commutatif (RSA) {code : 3443} kasterix j{code : 3443} kasterix ff k obelix Les protocoles cryptographiques p.20/48-1
Chiffrement commutatif (RSA) Car { {code : 3443} kasterix } {code : 3443} kasterix j{code : 3443} kasterix ff k obelix {code : 3443} kobelix k obelix = { {code : 3443} kobelix }k asterix Les protocoles cryptographiques p.20/48-1
Chiffrement commutatif (RSA) {code : 3443} kasterix j{code : 3443} kasterix ff k obelix {code : 3443} kobelix Ça ne marche pas! (problème d authentification) Les protocoles cryptographiques p.20/48-1
Chiffrement commutatif (RSA) {code : 3443} kasterix j{code : 3443} kasterix ff k obelix {code : 3443} kobelix Ça ne marche pas! (problème d authentification) {code : 3443} kasterix j{code : 3443} kasterix ff k pirate {code : 3443} kpirate Les protocoles cryptographiques p.20/48-1
Attaques sur les décodeurs Kentucky Fried Chip : bloquer l ordre de désabonnement Les protocoles cryptographiques p.21/48-1
Attaques sur les décodeurs Kentucky Fried Chip : bloquer l ordre de désabonnement Renvoi de messages : n carte, {c 1,...,c k } Kcs n carte, {c 1,...,c k } Kcs Les protocoles cryptographiques p.21/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement. Un protocole pour carte bancaire. Le protocole de Needham-Schroeder. Les protocoles Zero-knowledge. La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.22/48-1
Protocole de paiement par CB L acheteur introduit sa carte. Le commerçant saisit le montant m de la transaction sur le terminal. Le terminal authentifie la carte. L acheteur donne son code à la carte. Si m dépasse 100 euros (et dans seulement 20% des cas) : Le terminal demande l authentification de la carte à la banque. La banque donne l autorisation. Les protocoles cryptographiques p.23/48-1
Plus en détails 4 acteurs : la Banque, l Acheteur, la Carte et le Terminal. Banque possède une clef de signature K 1 B, secrète, une clef de vérification K B, publique, une clef secrète pour chaque carte bancaire K CB secrète. Carte possède Data : nom, prénom, numéro de carte, date de validité, Valeur de Signature V S = {hash(data)} K 1, B clef secrète K CB. Terminal possède la clef de vérification K B des signatures de la banque. Les protocoles cryptographiques p.24/48-1
Protocole CB (résumé) Le terminal lit la carte : 1. C T : Data, {hash(data)} K 1 B Les protocoles cryptographiques p.25/48-1
Protocole CB (résumé) Le terminal lit la carte : 1. C T : Data, {hash(data)} K 1 B Le terminal demande le code : 2. T A : code secret? 3. A C : 1234 4. C T : ok Les protocoles cryptographiques p.25/48-1
Protocole CB (résumé) Le terminal lit la carte : 1. C T : Data, {hash(data)} K 1 B Le terminal demande le code : 2. T A : code secret? 3. A C : 1234 4. C T : ok Le terminal contacte la banque : 5. T B : auth? 6. B T : 7294291330572 7. T C : 7294291330572 8. C T : {7294291330572} KCB 9. T B : {7294291330572} KCB 10. B T : ok Les protocoles cryptographiques p.25/48-1
Quelques failles de la carte bancaire Initialement sécurité assurée par : Mais cartes difficilement réplicables, secret des clefs et du protocole. faille cryptographique : les clefs de 320 bits ne sont plus sûres (1988), faille logique : pas de lien entre le code secret à 4 chiffres et l authentification, réplicabilité des cartes. Les protocoles cryptographiques p.26/48-1
Quelques failles de la carte bancaire Initialement sécurité assurée par : Mais cartes difficilement réplicables, secret des clefs et du protocole. faille cryptographique : les clefs de 320 bits ne sont plus sûres (1988), faille logique : pas de lien entre le code secret à 4 chiffres et l authentification, réplicabilité des cartes. YesCard fabriquées par Serge Humpich (1998). Les protocoles cryptographiques p.26/48-1
Principe de la YesCard Faille logique 1.C T : Data, {hash(data)} K 1 B 2.T A : code secret? 3.A C : 1234 4.C T : ok Les protocoles cryptographiques p.27/48-1
Principe de la YesCard Faille logique 1.C T : Data, {hash(data)} K 1 B 2.T A : code secret? 3.A C : 2345 4.C T : ok Les protocoles cryptographiques p.27/48-1
Principe de la YesCard Faille logique 1.C T : Data, {hash(data)} K 1 B 2.T A : code secret? 3.A C : 2345 4.C T : ok Remarque : il y a toujours quelqu un à débiter. ajout d une fausse signature sur une fausse carte (Serge Humpich). Les protocoles cryptographiques p.27/48-1
Principe de la YesCard Faille logique 1.C T : Data, {hash(data)} K 1 B 2.T A : code secret? 3.A C : 2345 4.C T : ok Remarque : il y a toujours quelqu un à débiter. ajout d une fausse signature sur une fausse carte (Serge Humpich). 1.C T : XXX, {hash(xxx)} K 1 B 2.T A : code secret? 3.A C : 0000 4.C T : ok Les protocoles cryptographiques p.27/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement. Un protocole pour carte bancaire. Le protocole de Needham-Schroeder. Les protocoles Zero-knowledge. La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.28/48-1
Protocole Needham-Schroeder à clefs publiques A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Les protocoles cryptographiques p.29/48-1
Protocole Needham-Schroeder à clefs publiques A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Les protocoles cryptographiques p.29/48-1
Protocole Needham-Schroeder à clefs publiques A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Les protocoles cryptographiques p.29/48-1
Protocole Needham-Schroeder à clefs publiques A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Questions : Est-ce que N b est secret entre A et B? Les protocoles cryptographiques p.29/48-1
Protocole Needham-Schroeder à clefs publiques Questions : A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Est-ce que N b est secret entre A et B? Lorsque B reçoit {N b } pub(b), est-ce que ce message provient réellement de A? Les protocoles cryptographiques p.29/48-1
Protocole Needham-Schroeder à clefs publiques Questions : A B : {A, N a } pub(b) B A : {N a, N b } pub(a) A B : {N b } pub(b) Est-ce que N b est secret entre A et B? Lorsque B reçoit {N b } pub(b), est-ce que ce message provient réellement de A? Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole! Les protocoles cryptographiques p.29/48-1
Man in the middle attack {A,N a } pub(p ) {A,N a } pub(b) Les protocoles cryptographiques p.30/48-1
Man in the middle attack {A,N a } pub(p ) {A,N a } pub(b) { N a,n b } pub(a) { N a,n b } pub(a) Les protocoles cryptographiques p.30/48-1
Man in the middle attack {A,N a } pub(p ) {A,N a } pub(b) { N a,n b } pub(a) { N a,n b } pub(a) {N b } pub(p ) {N b } pub(b) Les protocoles cryptographiques p.30/48-1
Man in the middle attack {A,N a } pub(p ) {A,N a } pub(b) {B,N a,n b } pub(a) {B,N a,n b } pub(a) {N b } pub(p ) {N b } pub(b) Correction : ajouter l identité de B. Les protocoles cryptographiques p.30/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement. Un protocole pour carte bancaire. Le protocole de Needham-Schroeder. Les protocoles Zero-knowledge. La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.31/48-1
Mais où est Charlie? But : trouver Charlie dans une grande image Les protocoles cryptographiques p.32/48-1
Mais où est Charlie? Les protocoles cryptographiques p.33/48-1
Comment jouer? Comment prouver qu on a trouvé Charlie sans révéler où il est? Deux solutions possibles : Les protocoles cryptographiques p.34/48-1
Comment jouer? Comment prouver qu on a trouvé Charlie sans révéler où il est? Deux solutions possibles : photocopier et découper, Les protocoles cryptographiques p.34/48-1
Comment jouer? Comment prouver qu on a trouvé Charlie sans révéler où il est? Deux solutions possibles : photocopier et découper, mettre un grand cache avec un trou de la forme de Charlie. Les protocoles cryptographiques p.34/48-1
Applications Authentification Paiement par CB (pour prouver qu on connaît le code confidentiel sans le révéler). Prouver son identité / appartenance à un groupe.... Les protocoles cryptographiques p.35/48-1
La caverne d Ali Baba Les protocoles cryptographiques p.36/48-1
La caverne d Ali Baba - suite Ali Baba veut convaincre Bob qu il connaît le secret. Ali Baba se cache dans la grotte. Bob demande à Ali Baba de sortir à gauche ou à droite (il choisit). Ali Baba sort du côté demandé. Les protocoles cryptographiques p.37/48-1
La caverne d Ali Baba - suite Toute personne peut être convaincue qu Ali Baba connaît la formule magique. sans rien apprendre du secret, sans pouvoir faire croire à son tour qu il connaît la formule magique. Pb : sujet éventuellement aux attaques man-in-the-middle. Les protocoles cryptographiques p.38/48-1
Isomorphisme de graphes Définition : On dit que deux graphes G 1 et G 2 sont isomorphes s ils sont identiques au renommage σ des noeuds près, i.e. σ(g 1 ) = G 2. Pour des graphes extrêmement grands, il peut falloir plusieurs siècles pour savoir si deux graphes sont isomorphes. Comment Alice peut-elle prouver à Bob qu elle connaît un isomorphisme σ (le secret!) entre G 1 et G 2? Les protocoles cryptographiques p.39/48-1
Isomorphisme de graphes Définition : On dit que deux graphes G 1 et G 2 sont isomorphes s ils sont identiques au renommage σ des noeuds près, i.e. σ(g 1 ) = G 2. Pour des graphes extrêmement grands, il peut falloir plusieurs siècles pour savoir si deux graphes sont isomorphes. Comment Alice peut-elle prouver à Bob qu elle connaît un isomorphisme σ (le secret!) entre G 1 et G 2? Protocole 1. Alice permute au hasard les noeuds du graphe G 1 ou G 2 pour obtenir un autre graphe H, isomorphe à G 1. Alice connaît σ 1 tel que H = σ 1 (G 1 ) et σ 2 tel que H = σ 2 (G 2 ). 2. Alice envoie H à Bob. 3. Bob choisit i égal à 1 ou 2 au hasard. 4. Alice prouve que H est isomorphe à G i en envoyant σ i. Les protocoles cryptographiques p.39/48-1
Attaque de «l homme au milieu» Je connais le secret Charlie veut convaincre Bob qu il connaît le secret. Charlie demande à Ali Baba de le convaincre qu il connaît le secret! Les protocoles cryptographiques p.40/48-1
Attaque de «l homme au milieu» Je connais le secret Charlie veut convaincre Bob qu il connaît le secret. Charlie demande à Ali Baba de le convaincre qu il connaît le secret! gauche/droite gauche/droite gagné gagné Les protocoles cryptographiques p.40/48-1
Comment ça marche? Les primitives cryptographiques Quelques protocoles simples avec chiffrement. Un protocole pour carte bancaire. Le protocole de Needham-Schroeder. Les protocoles Zero-knowledge. La vérification de la sûreté des protocoles : l analyse de logiciels critiques en général. Les protocoles cryptographiques p.41/48-1
Airbus A380 500 000 lignes de code, plus gros programme jamais vérifié (Le Monde 26 avril 2005) Les protocoles cryptographiques p.42/48-1
Fusée Ariane 5 11 décembre 2002 : vol inaugural Un crash dû... à un bug logiciel! Les protocoles cryptographiques p.43/48-1
Sonde Mars Climate Orbiter 26 septembre 1999 : perte de la sonde due...... à une erreur de conversion! Les protocoles cryptographiques p.44/48-1
Autres exemples Régulateur de vitesse Régulateur cardiaque... Les protocoles cryptographiques p.45/48-1
Comment fait-on? 1. Tests à la main ou génération automatique vérification d un nombre fini de comportements Les protocoles cryptographiques p.46/48-1
Comment fait-on? 1. Tests à la main ou génération automatique vérification d un nombre fini de comportements 2. Vérification (preuve formelle) à la main ou à l aide d ordinateur vérification de tous les comportements possibles plus difficile Les protocoles cryptographiques p.46/48-1
La vérification formelle Code Modèle Les protocoles cryptographiques p.47/48-1
Plan des cours à venir 1. La modélisation des messages (aujourd hui) termes, unification, systèmes d inférence, localité 2. Vérification pour un nombre borné de sessions résolution de contraintes le secret est décidable (co-np-complet) 3. Vérification pour un nombre non borné de sessions (2 cours) impossibilité dans le cas général introduction aux clauses de Horn : définitions, modèle de Herbrand, résolutions, stratégie de résolution. retour aux protocoles cryptographiques 4. Introduction à la cryptographie Les protocoles cryptographiques p.48/48-1