CRYPTO vers une cryptographie post-quantique ? - Nicolas Ollinger M1 informatique 2021/2022
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Évaluation Note finale = ½ CC + ½ CT • CT : examen de 2h sur Cours + TD + TP (une feuille A4 recto-verso + calculatrice type collège) • CC : SPRINT crypto/programmation de 36h 2021-12-09T08:00+0100 ➠ 2021-12-10T20:00+0100 • Seconde session sous forme d’un CT de 2h
Programmation en TP et SPRINT La plupart des TP et le SPRINT nécessitent l'emploi d'un langage pour scripter des calculs Les TP sont écrits et documentés pour Python Dans le langage choisi il faut savoir au moins : • parcourir et modifier des chaînes et des fichiers • manipuler et convertir vers et depuis des suites d'octets brutes, de l'UTF-8, des codages hexa, base64, ... • extraire des sous-chaînes • combiner des suites de bits à coup de XOR • faire de l'arithmétique modulaire (+, *, puissance) • utiliser une bibliothèque crypto complète et sérieuse : primitives usuelles (AES-CTR, SHA, RSA, DH, etc), entrées- sorties (formats PKCS, ASN.1, X509)
>>> "l'éléphant ondule".encode() b"l'\xc3\xa9l\xc3\xa9phant ondule" >>> b"THE CAKE IS A LIE".decode() 'THE CAKE IS A LIE' >>> bytes.fromhex('5448452043414b452049532041204c4945') b'THE CAKE IS A LIE' >>> import base64 >>> base64.b64decode(b'VEhFIENBS0UgSVMgQSBMSUU=') b'THE CAKE IS A LIE' >>> (1337).to_bytes(8,'big') b'\x00\x00\x00\x00\x00\x00\x059' >>> int.from_bytes(b'\x00\x00\x06\x80','big') 1664
Cryptographie et sécurité Étude des algorithmes et des protocoles permettant de préserver la confidentialité de l'information et de garantir son intégrité. Trois scénarii fil rouge : (1) Alice veut chiffrer des données pour assurer leur confidentialité (2) Alice et Bob veulent établir un canal de communication secret à travers un réseau public (3) Alice et Bob veulent échanger des messages électroniques signés et/ou chiffrés
Au programme 1. éléments d'histoire de la cryptologie 2. notions fondamentales et formalisation 3. chiffrement symétrique par flot et par bloc 4. modes opératoires du chiffrement par bloc 5. protocoles, authentification, contrôle d'intégrité 6. hachage et génération de nombres pseudo-aléatoires 7. chiffrement asymétrique : DH, ElGamal 8. chiffrement asymétrique : RSA, courbes elliptiques 9. signature cryptographique, certificats, confiance 10. cryptographie post-quantique !
Bibliographie J. Katz et Y. Lindell. Introduction to Modern Cryptography, second edition. N. Ferguson et al. Cryptography Engineering.
Bibliographie en français Ph. Guillot. Une introduction à la cryptologie, EDP Sciences. D. Vergnaud. Exercices et problèmes de cryptographie, 3e édition. DUNOD
Fondements de la cryptographie
Cryptographie à clé publique Idée : briser la symétrie ! Dans la vie, il existe de nombreux phénomènes asymétriques, pour lesquels l’opération inverse est plus difficile que l’opération initiale. Une clé publique distribuée librement (annuaire ?) permet de chiffrer les messages. Une clé privée, gardée secrète, permet de déchiffrer les messages. Encore plus fort que Kerckhoff !
Fonction à sens unique avec trappe Une fonction f est une fonction à sens unique à trappe si le calcul de f(x) est facile et si retrouver x à partir de f(x) est calculatoirement impossible sans connaître la trappe, une information secrète k. L’inverse g de f se calcule facilement à partir de k. Construire des couples (f,g) doit être facile. Communiquer f ne doit rien révéler sur g. On ne sait pas si de telles fonctions existent !
Les 5 mondes d'Impagliazzo De nombreuses questions sont encore ouvertes en théorie de la complexité structurelle : • Est-ce que P = NP ? • Quels sont les problèmes qui sont toujours NP-complets si on considère la complexité en moyenne plutôt que au pire ? • Existe-t-il des fonctions one-way ? Impagliazzo explore différentes hypothèses et présente 5 mondes possibles.
Algorithmica Dans ce monde, P = NP. Reconnaître une solution et résoudre un problème sont équivalents. L'IA fonctionne très bien. Pas de cryptographie à clé publique.
Heuristica Bien que P ≠ NP, les instances difficiles des problèmes NP-complets sont difficiles à trouver. En pratique ce monde ressemble beaucoup à Algorithmica. La cryptographie à clé publique n'est pas non plus possible.
Pessiland P ≠ NP et même mieux, il existe des problèmes NP-complets en moyenne. Cependant il n'existe pas de fonctions one-way. Il est facile de générer des instances difficiles mais pas de générer des instances résolues. Dans ce monde tout semble difficile.
Minicrypt Dans ce monde, il existe des fonctions one-way mais pour autant la cryptographie à clé publique n'est pas possible. Cela nous laisse la cryptographie à clé privée mais aussi des algorithme de signature.
Cryptomania Dans ce dernier monde, P ≠ NP, les fonctions one-way existent et la cryptographie à clé publique fonctionne. C'est le monde le plus proche de la situation décrite dans le cours de cryptographie. Si RSA fonctionne alors on vit dans ce monde.
Informatique quantique
Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer ∗ Peter W. Shor† Abstract A digital computer is generally believed to be an efficient universal computing device; that is, it is believed able to simulate any physical computing device with an increase in computation time by at most a polynomial factor. This may not be true when quantum mechanics is taken into consideration. This paper considers factoring integers and finding discrete logarithms, two problems which are generally thought to be hard on a classical computer and which have been used as the basis of several proposed cryptosystems. Efficient randomized algorithms are given for these two problems on a hypothetical quantum computer. These algorithms take a number of steps polynomial in the input size, e.g., the number of digits of the integer to be factored. Keywords: algorithmic number theory, prime factorization, discrete logarithms, Church’s thesis, quantum computers, foundations of quantum mechanics, spin systems, Fourier transforms
Oups... Au revoir RSA, DH, ECDH, ECDSA, ... ...enfin, dès qu'on aura un ordinateur quantique de taille suffisante. Mais c'est quoi un ordinateur quantique ?
Historique (très rapide) 1981 R. Feynman propose la première idée d'un ordinateur quantique. 1985 D. Deutsch définit le premier ordinateur quantique universel. 1994 P. Shor et son algorithme de factorisation 1996 L. Grover et son algorithme de recherche 1998 3-qubits 2000 7-qubits 2017 50-qubits (IBM) 2018 72-qubits (Google) 2021 100-qubits (IBM)
Cryptographie post-quantique
A brief survey of post-quantum cryptography D. J. Bernstein University of Illinois at Chicago
Cryptographers: How can we encrypt, decrypt, sign, verify, etc.? Functioning cryptographic systems: DES, Triple DES, AES, RSA, McEliece encryption, Merkle hash-tree signatures, Merkle–Hellman knapsack encryption, Buchmann–Williams class-group encryption, ECDSA, HFEv− , NTRU, etc. ! Pré-quantique Cryptanalysts: What can an attacker do using < 2b operations on a classical computer? Unbroken cryptographic systems: Triple DES (for b ≤ 112), AES (for b ≤ 256), RSA with b3+o(1) -bit modulus, McEliece with code length b1+o(1) , Merkle signatures with “strong” b1+o(1) -bit hash, BW with “strong” b2+o(1) -bit discriminant, ECDSA with “strong” b1+o(1) -bit curve, HFEv− with b1+o(1) polynomials, NTRU with b1+o(1) bits, etc.
Cryptographers: How can we encrypt, decrypt, sign, verify, etc.? Functioning cryptographic systems: DES, Triple DES, AES, RSA, McEliece encryption, Merkle hash-tree signatures, Merkle–Hellman knapsack encryption, Buchmann–Williams class-group encryption, ECDSA, HFEv− , NTRU, etc. Post-quantique ! Cryptanalysts: What can an attacker do using < 2b operations on a quantum computer? Unbroken cryptographic systems: AES (for b ≤ 128), McEliece with code length b1+o(1) , Merkle signatures with “strong” b1+o(1) -bit hash, HFEv− with b1+o(1) polynomials, NTRU with b1+o(1) bits, etc.
Vous pouvez aussi lire