introduc)on*àlacryptographie - ensiwiki · – l’algorithme*n’est*pas*secretet...
Post on 10-Sep-2019
3 Views
Preview:
TRANSCRIPT
Introduc)on à la cryptographie
Karim Hossen Fabien Duchene
2011-‐2011
5MMSSI
Plan
• Historique de la cryptographie • Cryptographie moderne – Symétrique – Echanges de clés – Asymétrique – Fonc)ons de hachage – Clé et nombres aléatoires – Prochaines étapes de la cryptographie
Terminologie
• Crypto… ?
• Quels sont les mots commençant par « crypto » que vous connaissez ?
Terminologie
• Cryptographie – Du préfixe français «crypto» (« kruptos » en grec) qui signifie «caché», et du suffixe «graphie» pour «écriture».
« Art d’écrire en chiffres ou d’une façon secrète quelconque. »
Terminologie
• Cryptographie – Ensemble des méthodes perme]ant de chiffrer/déchiffrer un message dans le but d’empêcher son u)lisa)on/modifica)on.
• Cryptanalyse – L’art de retrouver un message clair à par)r du message chiffré, sans connaitre la clé.
• Cryptologie – Cryptographie + Cryptanalyse
Terminologie
• Cryptogramme – Message chiffré.
• Cryptosystème – Ensemble regroupant les méthodes cryptographiques, les textes clairs, les textes chiffrés ainsi que toutes les clés possibles. (B. Schneier)
– Ne pas u)liser pour parler des systèmes cryptographiques
Terminologie
• Décrypter – Ac)on de retrouver le message clair à par)r du message chiffré sans la clé.
• Crypter/age, Encrypter – Anglicisme à éviter. – Parler plutôt de chiffrement, déchiffrer …
Historique
• Appari)on spontanée dés qu’une grande par)e de la popula)on a su lire – Premiers indices de cryptographie en 1900 av. JC (D.Kahn)
• En 600 av. JC, des scribes hébreux me]ant par écrit le livre de Jeremy ont u)lisaient le chiffre d’Atbash (aleph, tau, beth et shin).
Historique -‐ Scytale
• En 487 av. JC, les Grecs u)lisaient un baton d’un diamètre précis, nommé “Scytale”, sur lequel ils enroulaient une bande longue et mince de cuir.
• Le message était ensuite écrit dessus. – La bande de cuir était le chiffré.
• Pour le déchiffrer, il fallait l’enrouler sur un baton du même diamètre.
Historique -‐ Polybe
• En 150 av. JC, l’historien grec Polybe inventa le “carré de Polybe” qui inspirera bien d’autres systèmes cryptographique.
• Jugé trop compliqué, il fut u)lisé qu’à par)r du XIXème siècle par les nihilistes russes enfermés en prisons par les Tsars
Historique -‐ César
• En 55 av. JC, Jules César décalait les le]res d’un certain nombre de rangs (la clé) pour les communica)ons du gouvernement.
• Moins robuste qu’Atbash mais à l’époque peu de personnes savaient lire.
• Exemple : DVWHULA = ?
Historique -‐ X
• Au 5ème siècle, le kama-‐sutra recommande que les femmes apprennent 64 arts: cuisiner, s’habiller, masser …
• Mais plus étonannt, le numéro 45 parle de l’art de l’écriture secrète qui doit leur perme]re de dissimuler leur liaisons.
Historique – Récap1
• Jusqu’à là, la cryptographie se limitait à un codage dans un alphabet par)culier, décalé, inversé ou à une transposi)on.
• On parle alors de subs)tu)on mono-‐alphabé)que, c’est à dire que pour chaque le]re, on lui associe une autre unique le]re.
• Le chiffre de César reste la plus connue de ces méthodes.
• Mais toutes ces méthodes sont vulnérables à une analyse de fréquences.
Historique – Fréquences
• Analyse de fréquence – Inventé au 9ème siècle par Al-‐Kindi dans son “Manuscrit sur le déchiffrement des messages cryptographiques”
– Principe • La subs)tu)on mono-‐alphabé)que conserve les fréquences des symboles.
• Etablir une table des fréquences pour chaque langue et faire correspondre les symboles chiffrés à ceux de la table.
– Contrainte • Avoir un texte chiffré suffisamment long
Historique – Fréquences
• Analyse des fréquences
Exercice
• « Les hommes dansants », Conan Doyle
= ?
Historique -‐ Alber)
• En 1466, Léon Bawsta Alber) invente la subs)tu)on poly-‐alphabé)que ainsi que le surchiffrement codique.
• Une classe de chiffre qui a résisté jusqu’aux années 1800.
• Jugé trop en avance sur son temps, il ne fut u)lisé que 400ans plus tard et dans des version plus simples.
Historique -‐ Alber)
• Le cadrant chiffrant d’Alber) – Deux disques
• Un fixe, au bord (majuscules) • Un mobile, au centre (minuscules)
– Le disque du centre con)ent des le]res dans le désordre
– Echange d’une posi)on ini)ale – Chiffrement en u)lisant les le]res du cadrant fixe.
Historique -‐ Alber)
• Poly-‐alphabé)que ? – Tout les X le]res, on peut changer de le]re-‐indices.
– On écrit ce]e nouvelle le]re-‐indice en majuscule dans le message.
– A par)r de là, chaque le]re aura un chiffré différent.
Historique -‐ Alber)
• Surchiffrement – Fait de chiffrer un message chiffré – U)lise les chiffres du cadran – Pour chaque groupe de chiffres, on y associe un mot.
– Chaque groupe de chiffre donnera un message clair différent selon la posi)on ini)ale.
Historique -‐ Vigenère
• Vers 1560, Blaise de Vigenère inventa, en prenant comme base les travaux d’Alber), Trithème, Bellaso et Porta, le “chiffre de Vigenère”
• Une améliora)on considérable du chiffre de César. – U)lisa)on de 26 alphabets décalés au lieu d’un seul.
Historique -‐ Vigenère
• Chiffre de Vigenère – On u)lise une clé pour connaitre le décalage. – Si la clé est trop pe)te, on la répète autant de fois que nécéssaire.
– Ensuite, on applique le décalage au message. – Exemple :
Historique -‐ Vigenère
• Et l’analyse de fréquences ?
Monoalphabé)que Polyalphabé)que
Historique -‐ Vigenère
• Il aura fallut a]endre 300 ans pour casser ce chiffre et les sub)tu)ons poly-‐alphabé)ques en général
• Méthode de Babagge et Kasiski • Méthode de Bazeries
• Comment pourrait t-‐on faire ?
Historique – Bazeries
• Méthode du commandant Bazeries – Simple et rapide – Principe
• On suppose qu’un mot donné a été chiffré (a]aque, mission, place, bombe …) • On soustrait ce mot à différentes posi)ons du chiffré jusqu’à obtenir un mo)f de le]res répétées qui sera la clé. • U)lisa)on avec des dic)onnaires
– Contrainte • Avoir le mot dans ses dic)onnaires
Historique – Bazeries
• Prenons ce cryptogramme “BILKO PFFGM LTWOE WJCFD SHKWO NKSEO VUSGR LWHGW FNVKW GGGFN RFHYJ VSGRF RIEKD CCGBH RYSXV KDIJA HCFFG YEFSG ZWG” On suppose que le mot ATTAQUE est dans le message clair.
Historique – Bazeries
• On soustrait “ATTAQUE” au début … rien
• En posi)on 2 … toujours rien
Historique – A]aques2
• En posi)on 25 … OURS
• Ce qui donne : “NOUS AVONS SUBI UNE VIOLENTE ATTAQUE CE MATIN. PERTES IMPORTANTES. DEMANDONS PILONNAGE DES POSITIONS ENNEMIES. ”
Historique – BK
• Méthode Babbage-‐Kasiski – Principe
• On cherche des mo)fs qui se répètent dans le texte chiffré : – 1er cas : Même mot clair, même par)e de la clé u)lisée. – 2ème cas : Mot clair et clé différents mais chiffré égal (rare)
• On cherche la taille de la clé – Dans une table, on stocke les facteurs premiers de la posi)on des mo)fs.
– On garde la taille qui à la plus grande probabilité. • On u)lise une analyse des fréquences pour les le]res chiffrées avec la même par)e de la clé.
Historique – BK
• Prenons ce chiffré
On remarque quelques mo)fs qui se répètent …
Historique – BK
• Remplissons la table :
Une taille de clé semble correspondre pour chaque mo)f : 5
Historique – BK • Trouvons le premier caractère de la clé :
Le “E” a souvent une grande fréquence, la même que le “W” dans ce]e exemple. Le premier caractère de la clé est donc “S”.
Historique – BK
• Trouvons les autres caractères de la clé :
La clé est donc SCUBA. Aprés déchiffrement, on ob)ent le texte de qui ?
Historique -‐ Vigenère
• Y a t’il un moyen d’améliorer le chiffre de Vigenère ? – Faiblesse 1 : la clé se répète pour chiffrer des messages assez long
– Faiblesse 2 : la clé est un mot courant, ce qui donne des informa)ons sur les caractères présents, leur fréquences …
– En 1917, une personne a crée un chiffre poly-‐alphabé)que sans ses 2 faiblesses.
Historique -‐ Vernam
• Le chiffre de Vernam – Crée par Gilbert S. Vernam – Amélioré par Joseph Mauborgne – U)lise une clé aléatoire de la taille du message à chiffrer.
– Le seul chiffre indécryptable (Shannon 1949) – Contraintes importantes :
• Produire des clé aléatoire en grande quan)té • Transport de la clé, mise en oeuvre …
Historique -‐ Vernam
• Naissance du principe de masque jetable • La clé doit être u)lisé qu’une seul fois • Sinon, un a]aquant peut en dériver des informa)ons sur les messages clairs à cause du même décalage pour les 2 chiffrés.
• Impossibilité d’avoir ce niveau de sécurité avec un “cout” moindre
• On parle alors de sécurité incondi)onnelle
Historique -‐ Vernam
• Exemple
• U)lisé par Che Guevera pour transme]re des messages au président cubain Fidel Castro.
Historique – Recap2
• La sub)tu)on poly-‐alphabé)que fut un grand pas dans les méthodes de chiffrement.
• L’essor des communica)ons et de l’informa)que, à par)r du XXème siècle, va donner une nouvelle impulsion à la cryptographie qui va entrer dans son ère moderne, plus formelle et mathéma)que.
• Appari)on des no)ons d’aléatoire, de taille de clé qui deviendront indispensables ensuite.
Cryptographie moderne
• Buts – Confiden)alité – Authen)fica)on – Intégrité – Non répudia)on
• Règles de bases – L’algorithme n’est pas secret et peut être diffusé librement – La sécurité d’un système cryptographique est égale à la sécurité du maillon le plus faible.
– La clé de chiffrement doit être tenue secrète
Moderne -‐ Buts
• Confiden)alité – Empêcher les u)lisateurs de lire une informa)on confiden)elle (sauf s’ils y sont autorisés)
– Empêcher les u)lisateurs autorisés à lire une informa)on confiden)elle de la divulguer à des u)lisateurs non autorisés à la lire
Moderne -‐ Buts
• Authen)fica)on – De l’origine des données, d’un )ers. – Appelé “forte” quand il y a au moins deux éléments ou facteurs d’authen)fica)on • One Time Password, Biométrie, ques)on secrète, système physique (carte à puce) …
Moderne -‐ Buts
• Intégrité – Empêcher une modifica)on (créa)on, mise à jour ou destruc)on) indue de l’informa)on (ou du système) • Modifica)on par des u)lisateurs non-‐autorisés • Modifica)on incorrecte par des u)lisateurs autorisés (ou faute accidentelle)
– Faire en sorte qu’aucun u)lisateur (ou faute accidentelle) ne puisse empêcher la modifica)on légi)me de l’informa)on (ou du système)
Moderne -‐ Buts
• Non répudia)on – Trés u)lisée sur internet (achats, impôts, …) – Possibilité de vérifier que l’envoyeur et le des)nataire d’un message sont bien ceux qui l’ont envoyé et reçu.
– Nécéssite l’u)lisa)on de cer)ficats numériques (cf 2ème par)e)
Moderne -‐ Base
• Principe de Kerckhoffs (fin du XIXème) – Une des 7 lois enoncées : La sécurité d’un système cryptographique doit reposer uniquement sur le secret de la clé.
– Les chiffres civiles suivent ce principe. – Certains chiffres militaires, comme le “Type1 Encryp)on” des Etats-‐Unis et cer)fié par la NSA sont plutôt pour la “sécurité par l’obscurité”.
Moderne -‐ Base
• Principe de Kerckhoffs – Interpréta)on
• Ce qui doit etre gardé secret doit être ce qui est le moins couteux à changer si le secret est divulgué. – Si la sécurité repose sur un logiciel précis alors que ce logiciel est diffusé auprés de nombreux u)lisateurs, il y a des chances pour que le logiciel ne soit pas secret trés longtemps et qu’il faille refaire des algorithmes de chiffrement …
– Alors qu’en suivant le principe de Kerckoff, seul la clé serait à changer.
• C’est encore plus vrai de nos jours, où le reverse-‐engineering est possible sur les programme (cf RC4)
Cryptographie moderne
• Deux types de cryptographie – Symétrique ou secrète
• La clé de chiffrement est la même que la clé de déchiffrement.
• Basé sur du découpage, permuta)on et xor. – Asymétrique ou publique
• Inventé en 1976 par Whithfield Diffie et Mar)n Hellman dans “New Direc)ons in Cryptography”.
• Clé de chiffrement différente de la clé de déchiffrement. • Clé de chiffrement peut être publique. • Beaucoup moins rapide que la symétrique. • Basé sur des problèmes difficiles à résoudre.
Cryptographie moderne
• Différents types de chiffrement – Par blocs
• Le message clair est découpé en morceaux de taille fixe. • Le plus souvent de la taille de la clé. • Chaque morceau est ensuite chiffré avec la clé, suivant le mode de chiffrement. • Si la taille du message n’est pas d’un mul)ple de la taille de la clé, on u)lise un padding.
– Par flot • Chaque bit est chiffré au fur et à mesure.
Cryptographie moderne
• Différents mode de chiffrement – Valables pour les chiffrements par blocs et flot
– Electronic Code Book (ECB) – Cipher Block Chaining (CBC) – Cipher Feed Back (CFB) – Output Feed Back (OFB)
– Et bien d’autres …
Moderne -‐ Mode
• ECB – Mode le plus simple – On chiffre chaque bloc avec la clé.
Moderne -‐ Mode
• ECB – Avantages
• Accés rapide à une zone quelconque du chiffré. • Possibilité de déchiffrer qu’une seule par)e.
– Désavantages • Deux blocs iden)ques auront le même chiffré. • Sensible aux a]aques par rejeu. • Permet donc de constuire un “dic)onnaire de code” avec les correspondances clair/chiffré (codebook) • A ne pas u)liser dans les applica)ons cryptographiques
Moderne -‐ Mode
• CBC – Le morceau en clair est XOR-‐é avec le bloc précédent.
– Un même bloc peut donc avoir plusieurs chiffrés. – Nécéssite un vecteur d’ini)alisa)on (IV)
Moderne -‐ Mode
• EBC vs CBC
Moderne -‐ Mode
• CFB – Pour les chiffrements par flot – Nécéssite uniquement la fonc)on de chiffrement. – Une erreur affectera les autres blocs – La perte ou ajout d’un bit est récupérable.
Moderne -‐ Mode
• OFB – Même avantages que CFB. – La perte ou l’ajout d’un bit est irrécupérable. – Une erreur d’un bit affecte uniquement ce bit.
Cryptographie moderne
• Il existe beaucoup d’algorithmes de chiffrement symétrique (~40) et asymétrique (~24), d’aprés Wikipédia.
• Dans les prochains slides, on se concentrera sur les plus u)lisés, plus connus ou ceux possédant des par)cularités interessantes.s
Moderne -‐ DES
• Data Encryp)on Standard – 56bits – Symétrique – Blocs – Concu en 1971 par Horst Feistel, l’algorithme était alors connu sous le nom de Lucifer.
– Le “Na)onal Bureau of Standards” l’a choisi pour devenir l’algorithme de chiffrement u)lisable par les entreprises
– Passage par la NSA, 128bits -‐> 56bits – S’est révélé résistant à des a]aques apparues beaucoup plus tard, alors que Lucifer ne l’était pas …
Moderne -‐ DES
• Schéma global – 64bits en input – 16 tours
• Permuta)ons (P-‐Box) • Subs)tu)on (S-‐Box) • XOR
– Les clés de tours sont dérivées de la clé de 56bits
Moderne -‐ DES
• Statut – Longtemps u)lisé sur Unix pour chiffrer les mots de passe u)lisateurs
– La clé de 56 bits était trés grande pour 1970 – Maintenant le calcul distribué permet de la retrouver en moins de 24h.
– Beaucoup analysé, des faiblesses ont été trouvé – U)lisé encore dans sa version 3DES
• EDE
Moderne -‐ DES
• A]aques – Recherche exhaus)ve : 2^55 en moyenne
• Distribué : 24h • Ordinateur à 1M$ (en 1993) : 7h • FPGA à 10k$ (en 2006) : 7 jours
– Mathéma)que • Cryptanalyse différen)elle : 2^47 • Cryptanalyse linéaire : 2^43 • Analyse de la consomma)on • Timing a]ack
Moderne -‐ AES
• Advanced Encryp)on Standard – 128, 192, 256 bits – Symétrique – Blocs – Nom original : Rijndael – Devenu le nouveau AES en remportant le concours du NIST en 2000.
– Remplacant de DES, rapide et flexible. – Nécéssite 10 à 14 tours selon la taille de la clé. – Basé sur la théorie de Galois.
Moderne -‐ AES
• A]aques – Résistant à la cryptanalyse différen)elle et linéaire – Des a]aques uniquement sur des versions simplifiées (7 tours, 128 bits)
– Heuris)ques (XL, XSL) • Efficacité pas démontrée • Entre 2^87 et 2^100 et résolu)on de 1600 équa)ons et 8000 inconnues (pour 128 bits)
– Seule vraie a]aque, en 2011, réduisant à 2^126,1 le nombre d’opéra)ons nécéssaires …
Moderne – RC4
• Rivest Cipher 4 – 40, 256bits – Symétrique – Flot – Inventé par Ronald Rivest en 1987 – Les détails furent tenues secret jusqu’a 1994 où il fut retro-‐ingénieré complétement par un anonyme.
– Simple et rapide • U)lisé dans WEP, WPA, TLS.
Moderne – RC4
• Principe – RC4 est un générateur de bits pseudo-‐aléatoires. – Les bits générés sont ensuite u)lisés pour chiffrer le flot • Pour générer le flot de bits, l'algorithme dispose d'un état interne, tenu secret, qui comprend deux par)es : – une permuta)on S de tous les 256 octets possibles – deux pointeurs i et j de 8 bits qui servent d'index dans un tableau
– La permuta)on est ini)alisée grâce à la clé et au key-‐schedule de RC4.
Moderne – RC4
• A]aques – RC4 a été beaucoup étudié. – En 1994, certains états internes ne peuvent pas se produire -‐> faiblesse dans l’algorithme.
– En 2001, Fluhrer, Man)n et Shamir ont découvert que les premiers octets du flux ne sont pas aléatoires : • Ce type d’a]aque fut u)lisé pour casser le WEP • Mais demande beaucoup de message chiffrés • Solu)on: me]re de coté les 1024 premiers octets
Moderne -‐ Recap3
• Les algorithmes de chiffrement symétriques sont rapides mais ils nécéssitent de s’être préalablement mis d’accord sur la clé secrète.
• Ces clés peuvent être échangées par de la cryptographie asymétrique que l’ont vera ensuite mais il existe un algorithme spécialement pour ça et trés u)lisé encore de nos jours.
Moderne – DH • Withfield Diffie et Mar)n Hellman – Permet de se me]re d’accord sur un nombre sans qu’une autre personne (Eve) ne puisse connaitre ce nombre même en ayant écouté la conversa)on.
– Basé sur le problème du logarithme discret (Inversion de l’exponen)a)on)
–
Moderne – DH
• Exemple
Moderne – DH
• Exemple
Moderne – DH
• Exemple – Alice et Bob choisissent un nombre premier p et une base g. Dans notre exemple, p=23 et g=3
– Alice choisit un nombre secret a=6 – Elle envoie à Bob la valeur ga [mod p] = 36 [23] = 16 – Bob choisit à son tour un nombre secret b=15 – Bob envoie à Alice la valeur gb [mod p] = 315 [23] = 12 – Alice peut maintenant calculer la clé secrète : (gb [mod p])a [mod p] = 126 [23] = 9
– Bob fait de même et ob)ent la même clé qu'Alice : (ga [mod p])b [mod p] = 1615 [23] = 9
Moderne – DH
• A]aque – Homme du milieu
• Un a]aquant peut intercepter les messages entre les 2 personnes. • Les remplacer par des valeurs qu’il chosit. • Et ainsi pour voir déchiffrer les messages envoyés.
• Solu)on – Signature
• Permet de cer)fier que l’on discute avec la bonne personne et non pas un a]aquant.
Moderne – Recap4
• La cryptographie symétrique est plutot rapide, résistante et le problème de l’echange de clé peut être résolut avec des algorithmes tel que Diffie-‐ Hellman.
• Mais il existe un autre type de cryptographie où il n’y a plus ce problème, puisque deux clés sont u)lisés : – la clé servant à chiffrer peut etre diffuser librement – la clé pour le déchiffrement reste secrète.
• C’est la cryptographie asymétrique.
Moderne -‐ RSA
• Rivest-‐Shamir-‐Adleman – Variable – Asymétrique – Blocs – Inventé en 1977, il est le premier à être solide. – U)lise une paire de clés :
• Clé publique servant à chiffrer • Clé privée servant à déchiffrer • On conseil des clés de 2048 bits
– La sécurité est basée sur la difficulté de factoriser n • Si on prend n = p*q avec p et q des grands nombres premiers
Moderne -‐ RSA
• Schéma simple
Moderne -‐ RSA
• Principe – Généra)on des clés
• On choisit 2 grand nombre premiers p et q • On calcule n = p*q, ce sera le module • On prend e, premier avec (p-‐1)*(q-‐1), ce sera l’exposant • On peut alors calculer d tel que e*d = 1 mod (p-‐1)*(q-‐1)
– (n, e) est la clé publique – (n, d), est la clé privée
Moderne -‐ RSA
• Principe – Chiffrement
• Pour un message M < n – C = M^e mod n
– Déchiffrement • Pour un message chiffré C
– M = C^d mod n
– Décryptage • Si on veut calculer d avec e et n, il nous faut p et q C’est à dire factoriser n, ce qui est trés difficile.
Moderne -‐ RSA
• Exemple – Prenons p=53 et q=97 – Prenons e=7 (premier avec 52*96) – Nous avons n=53*97=5141 – M = BONJOUR = 2 15 14 10 15 21 18 – On découpe M = 2 151 410 152 118
• C1 = 2^7 mod 5141 • C2 = 151^7 mod 5141 • …
Moderne -‐ RSA
• A]aques – Factorisa)on de n
• Sur un ordinateur classique, on peut factoriser un nombre de 256bits en quelques heures. • En 2009, un nombre de 768 bits a été factorisé par du calcul distribué • Bientot 1024 ? …
– Si un jour, un algorithme de factorisa)on rapide est trouvé …
– Existe mais pour un ordinateur quan)que ou la NSA …
Moderne -‐ RSA
• A]aques – Hastad en 1985
• Une des premières a]aques • Nécéssite l’u)lisa)on du même exposant sur plusieurs messages
– Kocher en 1995 • Déduc)on de la clé en mesurant le temps de déchiffrement (Timing A]ack)
– Bleichenbacher en 1998 • Récupéra)on de clé avec un padding pas sùr (PKCS #1) • Solu)on : OAEP, et nouvelle version de PKCS #1
Moderne -‐ ElGamal
• Taher ElGamal – Variable – Asymétrique – Blocs – Basé sur les logarithmes discrets comme Diffie-‐Hellman
– U)lisé dans GnuPG et les récentes versions de PGP
– N’a jamais été sous la protec)on d’un brevet, contrairement à RSA.
– Le chiffré fait deux fois la taille du clair.
Moderne -‐ ElGamal • Principe – Clé
• Un en)er s, la clé secrete • Un en)er p, a premier avec p et P=a^s mod p, clé privée
– Chiffrement • 0<M<p-‐1 • C1 = a^k mod p et C2=MP^k mod p
– Déchiffrement • R1 = C1^s mod p = P^k mod p • M = C2 / P^k
– Décryptage • Calculer P^k connaissant P, a, a^k = Logarithme discret
Moderne – Stats
• Comparaison de la vitesse de chiffrement de DES, AES et RSA
Moderne – Recap5
• Il existe un autre type de fonc)on cryptographique de base : les fonc)ons de hachage
• U)lisées seules, elle peuvent vérifier l’intégrité de données.
• En les combinant aux fonc)ons de chiffrement, on peut créer des mechanismes de sécurité plus complexes tel que la signature ou les cer)ficats.
Moderne -‐ Hashage
• Défini)on – Entrée : Données de taille variable – Sor)e : Une “empreinte” de taille fixe calculée à par)r des données
• Ne pas confondre avec un chiffrement !! – Ce sont des fonc)ons à sens unique alors que les chiffrements sont fait pour être déchiffré.
– Illogique avec la compression.
Moderne -‐ Hashage
• Exemple simple
• Exemples concrets – MD5(“aaaaa”) : 594f803b380a41396ed63dca39503542
– MD5(“aaaab”) : 11649b4394d09e4aba132ad49bd1e7db
Moderne -‐ Hashage
• U)lisa)on – Iden)fica)on rapide des données par son haché
• Coût de calcul négligeable • Dans les HashMap en java … • Et les tables de hachage en général
– Vérifier l’intégrité des données • Téléchargement de fichiers
– Stockage de mot de passe • Windows, Linux, Web …
Moderne -‐ Hashage
• Propriétés pour la cryptographie – Il est trés difficile de trouver le contenu du message à par)r de la signature -‐> A]aque sur la préimage
– A par)r d'un message donné, de sa signature et de la fonc)on de hachage, il est très difficile de générer un autre message qui donne la même empreinte -‐> A]aque sur la seconde préimage
– il est très difficile de trouver deux messages aléatoires qui donnent la même signature -‐> Résistance aux collisions
Moderne -‐ Hashage
• Différences avec les CRC – CRC pour Cyclic Redundancy Check
• Permet aussi de vérifier la validité des données • U)lisé sur un canal bruité pour repérer les erreurs alors qu’un hachage cryptographique doit avoir certaines propriétés qui lui permet de résister à des a]aques. • Ne doit pas être u)lisé pour de la cryptographie !
Moderne – MD5
• Message Digest 5 en 1991 – U)lise un vecteur d’ini)alisa)on – Bloc de 512bits – Fonc)on de compression destruc)ve
– Produit une empreinte sur 128bits
– MD5(“truc”) 45723a2af3788c4ff17f8d1114760e62
Moderne – MD5
• A]aques – Cryptanalyse intensive durant plus de 10 ans. – En 2004, Xiaoyun Wang et son équipe découvrent une collision complète. • Trouver un message différent ayant la même empreinte • Mais pas sur un messsage précis
– Depuis MD5 n’est pas considérée comme sùr et ne doit pas être u)lisée en cryptographie (dans les cer)ficats par exemples)
Moderne – SHA
• Secure Hash Algorithm – SHA-‐0 (160bits) en 1993
• Rapidement mis de coté par le NIST • Con)ent des failles qui abou)ssent à des collisions • Collision complète découverte par Antoine Joux (2004)
– SHA-‐1 (160 bits) en 1995 • Version modifié de SHA-‐0 par la NSA • Pas de collision complète • Mais un compléxité réduite à 2^63 par Wang.
Moderne – SHA
• Secure Hash Algorithm – SHA-‐1 (160 bits) en 1995
• Ce]e a]aque rends SHA-‐1 non-‐sùr cryptographiquement parlant. • Elle est progressivement remplacée par SHA-‐256
– Le NIST a lancé un concours pour trouver le prochain SHA-‐3. Des idées ?
– SHA-‐256 (256 bits) en 2000 • Standard recommandé
Moderne – Hachage • Des a]aques sont valables sur les haches en général – Paradoxe des anniversaires
• On calcul des haches au hasards • De 2^160 à 2^80 opéra)ons pour avoir 50% de réussite pour un hache de 160 bits.
– Base de données de haches • Il en existe des dizaines, pour tout types de hache
– Table arc-‐en-‐ciel • Structure de données inventée en 2003 par Phillipe Oehslin • Compromis temps mémoire de Hellman • Connue pour perme]re de casser les mot de passe de Windows XP en quelques secondes.
• Solu)on : ajouter une composante aléatoire (Unix)
Moderne – recap6
• Il reste un dernière composante cryptographique apparu depuis les chiffres polyalphabé)que et sur laquelle repose la sécurité des systèmes cryptographiques : la clé.
• Comment choisir une bonne clé ? • Comment tester la solidité d’un clé ? • Comment générer des nombres aléatoires ?
Moderne -‐ Clé • Une bonne clé doit être aléatoire • C’est une condi)on nécéssaire à la sécurité des systèmes cryptographiques
• Aléatoire ? – Répar))on uniforme des 1 et 0 – Pas de séquences qui se répètent – …
• Possible avec un programme ? – Non, uniquement du pseudo-‐aléatoire – Mais il existe des disposi)fs physiques qui le permet
• U)lisa)on du bruit thermique, radio ac)vité …
Moderne -‐ Clé
• Généra)on de nombres pseudo-‐aléatoires – Générateur linéaire congruent
• De la forme • Où a, b et m sont des paramètres
– Le plus connu est rand() • Mais il y a un lien entre Xn, Xn+1 et Xn+2
• Donc il ne doit pas être u)lisé en cryptographie
Moderne -‐ Clé
• Généra)on de nombres pseudo-‐aléatoires – Registres à décalage
– Où les bits à u)liser sont définis par un polynôme.
Moderne -‐ Clé
• Généra)on de nombres pseudo-‐aléatoires – Registre à décalage de A5/2
Moderne -‐ Clé
• Généra)on de nombres pseudo-‐aléatoires – Méthode de Gu]man
• Encore u)lisé par GnuPG • Prendre du “random” sur le système
– Delais entre les touches tapés – Mouvement du plateau du disque – Mouvement de la souris – Temps – …
Moderne -‐ Clé
• Test des données – Entropie (Shannon)
– Résultat sur un texte de Baudelaire • E = 4,679
– Résultat sur des “random bytes” de Random.org • E = 7,988
Moderne -‐ Clé
• Test des données – D’autres méthodes
• Loi du χ² (chi square) • Moyenne arithmé)que • Valeur de Pi avec un algorithme de type Monte Carlo • 16 tests du NIST, FIPS 800-‐22
– Toute ces méthodes sont disponibles avec l’ou)l ENT (sauf celles du NIST)
Moderne -‐ Clé
• Taille de clé / algorithme en 2011
Moderne -‐ Clé
• Taille de clé / algorithme en 2031
Cryptographie moderne
• Générer des données aléatoires n’est pas un problème facile pour un ordinateur qui est par défini)on déterministe.
• Les tailles de clé grandissantes, il a fallut trouver d’autres systèmes, u)lisant des clés moins longues mais tout aussi résistants – Un des solu)ons est d’allier la cryptographie et les courbes ellip)ques.
Moderne -‐ Ellip)que
• ECC (Ellip)c curve cryptography) – Développements récents, problèmes de brevets – Clé plus courte que RSA mais procure une sécurité au moins équivalente que les autres systèmes.
– Repose sur le logarithme discret dans le groupe de la courbe ellip)que. • Possibilité d’u)liser Diffie-‐Hellman • ElGamal • …
Moderne -‐ Ellip)que
• ECC (Ellip)c curve cryptography) – Clé de taille 200 bits >= 1024 bits de RSA – Calculs faciles à réaliser
• Idéal pour de l’embarqué
– La théorie est encore récente, il existe peut être des failles dans ce système
– Permet aussi de factoriser des grand nombres • Methode de Lenstra
Moderne – Recap7
• Rappelez vous le chiffre parfait de Vernam. – Un des difficultés était le transport de la clé qui devait être transportée en valise diploma)que.
– Mais ce canal n’était pas totalement inviolable.
• La mécanique quan)que pourrait résoudre ce problème – La sécurité ne reposerait alors plus sur les mathéma)ques mais sur des lois physiques.
Moderne -‐ Quan)que
• L’informa)on est transporté sur des photons – 4 états (polarisa)ons)
• 0°, 45°, 90°, 135° – On détecte la polarisa)on des photons par des filtres polarisants.
– Basé sur le principe d’incer)tude d’Heisenberg • Il n’est pas possible d’observer un objet quan)que sans le modifier • Si un photons est “lu”, il est modifié, on peut ensuite détecter ce]e modifica)on.
Moderne -‐ Quan)que
• Schema simple
Conclusion
• La cryptographie a connu 3 grandes ères – Ar)sanal jusqu’au XXème siècle (fin de la première guerre mondiale)
– Technique au XXème siècle – Scien)fique à par)r de 1976
• Les méchanismes de sécurité sont devenus complexes ainsi que les a]aques.
• La moindre fuite d’informa)ons peut se réveler désastreuse pour un chiffre.
• Mais la cryptographie con)nue d’évoluer …
Bibliographie • Simon Singh, "Histoire des codes secrets", LC La]ès, 1999.
• David Kahn, "La guerre des codes secrets", InterEdi)ons, 1980
• Whi2ield Diffie and Mar8n Hellman, "New Direc)ons in Cryptography", IEEE Transac)ons on Informa)on, Theory, Nov 1976.
• Rivest, Shamir and Adleman, "A method for obtaining digital signatures and public key cryptosystems", Communica)ons of the ACM, Feb. 1978, pp. 120-‐126.
Bibliographie • Bruno Mar8n, Codage, cryptologie et applica)ons, PPUR, 2004
• Niels Ferguson and Bruce Schneier, Prac)cal Cryptography, John Wiley & Sons, 2003
• Bruce Schneier, Applied Cryptography, Second Edi)on, John Wiley & Sons, 1996
• Douglas S8nson, Cryptographie : Théorie et pra)que, Vuibert, 2003
Webographie
• La cryptographie en général h]p://www.apprendre-‐en-‐ligne.net/crypto/
• Méthode de Baseries h]p://rumkin.com/tools/cipher/cryptogram-‐solver.php
• Méthode de Babbage-‐Kasiski • h]p://smurfoncrack.com/pygenere/pygenere.php
Webographie
• Bruce Schneier h]p://www.schneier.com/
• Random.org h]p://www.random.org/bytes/
• FIPS 800-‐22 h]p://csrc.nist.gov/publica)ons/PubsSPs.html
• Bibmath www.bibmath.net/crypto/
Toolographie • CrypTool h]p://www.cryptool.org/
• FindMyHash h]p://code.google.com/p/findmyhash/
• RSATool2 h]p://www.woodmann.com/collabora)ve/tools/index.php/RSA-‐Tool_2
• XorTool h]ps://github.com/hellman/xortool
• PyGenere h]p://smurfoncrack.com/pygenere/pygenere.py
Toolographie • ENT h]p://www.fourmilab.ch/random/
• OpenSSL h]p://www.openssl.org/
• Translator, Binary h]p://home2.paulschou.net/tools/xlate/
• Bouncy Castle • h]p://bouncycastle.org/ • Ophcrack h]p://ophcrack.sourceforge.net/
top related