Formal Security Proofs of Cryptographic Standards Cécile Baritel-Ruet
Total Page:16
File Type:pdf, Size:1020Kb
Formal Security Proofs of Cryptographic Standards Cécile Baritel-Ruet To cite this version: Cécile Baritel-Ruet. Formal Security Proofs of Cryptographic Standards. Computer Science [cs]. Université côte d’azur, 2020. English. tel-03150443 HAL Id: tel-03150443 https://tel.archives-ouvertes.fr/tel-03150443 Submitted on 23 Feb 2021 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Preuves Formelles de la Sécurité de Standards Cryptographiques Un objectif nécessaire, possible grâce à EasyCrypt Cécile BARITEL-RUET INRIA Sophia Antipolis Présentée en vue de l’obtention du Devant le jury, composé de : grade de docteur en Informatique Manuel Barbosa, d’Université Côte d’Azur. Yves Bertot, Sandrine Blazy, Dirigée par : Yves BERTOT François Dupressoir, Co-encadrée par : Steve Kremer, Benjamin GRÉGOIRE Benjamin Grégoire, Bruno Martin Soutenue le : 02/10/2020 Preuves Formelles de la Sécurité de Standards Cryptographiques Un objectif nécessaire, possible grâce à EasyCrypt Jury : Directeurs Yves Bertot, Directeur de recherche, Inria Sophia Antipolis Méditerrannée Benjamin Grégoire, Chargé de recherche, Inria Sophia Antipolis Méditerrannée Rapporteurs Sandrine Blazy, Professeur et Chercheur, Université de Rennes 1 et IRISA Steve Kremer, Directeur de recherche, Inria Nancy Examinateurs Manuel Barbosa, Lecturer and Researcher, University of Porto and HASLab François Dupressoir, Senior Lecturer, University of Bristol Bruno Martin, Professeur et Chercheur, Université Côte d’Azur et I3S Formal Security Proofs of Cryptographic Standards A necessity achieved using EasyCrypt Jury : Advisors Yves Bertot, Research director, Inria Sophia Antipolis Méditerrannée Benjamin Grégoire, Researcher, Inria Sophia Antipolis Méditerrannée Rapporteurs Sandrine Blazy, Lecturer and Researcher, Université de Rennes 1 and IRISA Steve Kremer, Research director, Inria Nancy Examiners Manuel Barbosa, Lecturer and Researcher, University of Porto and HASLab François Dupressoir, Senior Lecturer, University of Bristol Bruno Martin, Lecturer and Researcher, Université Côte d’Azur et I3S Titre : Preuves Formelles de la Sécurité de Standards Cryptographiques Résumé : En cryptographie, Shannon a montré que le secret parfait n’existe pas. Ainsi, la cryp- tographie moderne considère des propriétés de sécurité dans lesquelles un attaquant peut briser l’algorithme cryptographique mais seulement avec une faible probabilité. Dans ce contexte, les algorithmes cryptographiques et les propriétés/hypothèses de sécurité sont ex- primés sous forme de programmes probabilistes. Les preuves de sécurité consistent à borner la probabilité d’un événement dans de tels programmes. Ces preuves sont difficiles à prou- ver et malgré le système de relecture académique des erreurs continuent d’être publiées. Nous proposons l’utilisation des preuves formelles pour assurer une fiabilité suffisante des standards cryptographiques. Ma thèse fournit les preuves formelles de sécurité de trois standards dans l’assistant de preuve EasyCrypt. Ces schémas sont CMAC (qui fournit l’authentification et l’intégrité des messages), SHA-3 (une fonction de hachage cryptographique), et ChaCha20-Poly1305 (un schéma de chiffrement authentifié avec données associées). L’objectif de la thèse n’est pas seulement de formaliser la preuve de sécurité de ces standards, mais aussi de développer des techniques génériques et des bibliothèques qui peuvent être réutilisées. Toutefois, les preuves formelles de sécurité n’assurent que la sécurité des algorithmes et non de leurs implémentations. Pour contourner cette lacune, avec mes collaborateurs, nous lions formel- lement nos implémentations sûres et efficaces avec la preuve de sécurité, ceci conduit à la première preuve de sécurité cryptographique d’implémentations. Mots clés : Cryptographie, Standards, Sécurité prouvable, EasyCrypt, Preuve formelle, CMAC, SHA-3, ChaCha20-Poly1305. ix Title: Formal Security Proofs of Cryptographic Standards Abstract: In cryptography, Shannon showed that perfect secrecy does not exist. Thus, modern cryptography considers security properties in which attackers may break the cryptographic algorithm only with a small (negligible) probability. In this context, cryptographic algo- rithms and security properties/assumptions are expressed as probabilistic programs. Secu- rity proofs consist of bounding the probability of an event in such programs. Such proofs have been peer-reviewed for some decades, but since they are difficult to prove and to verify, fallacies keep emerging. We propose to use formal proofs to provide enough trustworthiness for crypto-systems such as cryptographic standards. My thesis provides the formal security proofs of three standards that are formally verified using the proof assistant EasyCrypt. The cryptographic standards I have worked on are CMAC (that provides message authentication and integrity), SHA-3 (a cryptographic hash function), and ChaCha20-Poly1305 (an authenticated encryption scheme with associated data). The goal of the thesis is not only to provide formal proof of those standards, but also to develop generic techniques and libraries that can be reused. However, the formal security proofs only ensure the security of the algorithms and not its implementation. To circumvent this gap, with my collaborators, we have developed fast and secure implementations of the last two schemes that are also side-channel resistant. Furthermore, we formally link the implementation with the security proof, leading to the first formal security proof of an implementated standard. Keywords: Cryptography, Standards, Provable security, EasyCrypt, Formal proof, CMAC, SHA-3, ChaCha20-Poly1305. Remerciements — Acknowledgements Je souhaite remercier en tout premier lieu mes deux directeurs, Yves Bertot et Benjamin Grégoire, pour leur temps, leur soutien et leurs conseils que vous avez su m’offrir pendant ces quatre années de travail ensemble. Merci à toi Benjamin pour le soutien indéfectible et la bienveillance que tu as su témoi- gner durant notre travail ensemble. Merci de m’avoir posé toutes ces questions auxquelles je ne savais pas répondre immédiatement, m’enseignant beaucoup et en particulier cette compétence fort utile qu’est la prise de recul. Je te suis reconnaissante pour tes efforts de relecture, que j’espère savoir apprécier à leur juste valeur. Merci à toi Yves pour ton humanité, tes conseils et ton écoute pendant toute la durée de ma thèse. Malgré la différence dans nos domaines d’expertise respectifs, nos échanges ont toujours été non seulement enrichissant, mais aussi ont contribué à la prise de recul sur mon domaine de recherche et le domaine de la recherche de manière générale. Plus particulièrement, merci pour ton soutien pendant ce confinement de mars à mai 2020. I want to humbly thank my jury for accepting to review my work. In particular, I am wholeheartedly grateful to both Sandrine Blazy and Steve Kremer, who dared to be rapporteurs, even though the health crisis and the summer break would leave them little time to read this manuscript and write their report. Thank you, François Dupressoir, Manuel Barbossa, and Bruno Martin for showing enough interest in my work to participate in this jury. Je tiens à remercier tous les membres de l’équipe Marelle — maintenant l’équipe Stamp — qu’ils soient permanents ou non. L’ambiance que vous avez su maintenir est à la hauteur du temps de la région : chaleureuse, agréable et humaine. Merci Laurence, pour ta gen- tillesse, tes conseils, ta bienveillance et ton énergie. Merci à Laurent pour ses conseils sur l’Agreg, même si je ne souhaite plus m’y diriger. Merci à Reynald pour toutes les inspirations que tu m’as données à propos de la constitution de ces remerciements. Merci à Sophie et Damien pour ces discussions entre doctorants toujours très intéressantes et enrichissantes, notamment sur l’éducation. Thank you, Anders, for the pleasant co-habitation at the office. Merci à Mohammad et Adam pour la bonne humeur qu’ils ont instaurée dans le bureau. Merci à Pierre pour ces discussions autour d’un (un ?) café. Merci à Cyril pour son point de vue rafraichissant et bienveillant. Merci à Maxime et Enrico pour avoir animé les repas du midi. Merci à Nathalie pour son soutien, son humanité, sa bonne humeur et sa bienveillance. Son travail nous soulage d’un poids administratif et je pense ne pas savoir mesurer son im- portance tant elle fait bien son travail pour qu’on ne le remarque pas. Merci pour sa trilogie, que j’attends avec impatience en version électronique. Je souhaite rendre hommage à José qui nous a quitté en 2019, on pense à lui. xii Remerciements — Acknowledgements Merci à tous ceux qui ont bien voulu m’écouter parler de ma recherche. Je tiens notam- ment à remercier les deux membres de mon comité de suivi doctoral, François Dupressoir et Cinzia Di Guisto, pour vos retours, vos encouragements et vos éclairements. Merci aux enseignants Cinzia Di Guisto, Sid Touati et Étienne Lozes, pour m’avoir permis de travailler avec vous pour mon service en tant que chargé de TP/TD. Je tiens aussi à remercier mes élèves