Xavier LeroyChaire Sciences du logicielAnnée 2025-2026Collège de FranceSéminaire - Pierrick Gaudry : Outils cryptographiques pour le vote électroniquePierrick GaudryCNRSLe vote par Internet est un exemple où la cryptographie avancée est requise, et déployée en pratique, afin de garantir de bonnes propriétés de sécurité. Dans cet exposé, nous présenterons ce contexte du vote électronique, ainsi que le protocole de vote Belenios (simplifié), afin d'illustrer les besoins en preuves zero-knowledge (ZKP).Ensuite, nous décrirons le fonctionnement de ces ZKP utiles au vote, en partant des plus basiques, pour aller progressivement vers des constructions complexes qui relèvent plutôt du calcul multipartite. Nous expliquerons comment ceci permet d'aller plus loin que le vote classique en termes de secret du vote, grâce à la notion de dépouillement en aveugle (tally-hiding).
Xavier LeroyChaire Sciences du logicielAnnée 2025-2026Collège de France02 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Chiffrement totalement homomorphe : calculer sur des données chiffrées (1)RésuméCe cours a commencé par des rappels sur les algorithmes de chiffrement et la manière de spécifier et de démontrer leur sécurité. Nous avons ensuite introduit la notion de chiffrement semi-homomorphe : les chiffrements qui sont homomorphes pour l'addition ou la multiplication de textes clairs mais pas pour les deux opérations. Nous en avons montré quatre exemples : les chiffrements RSA, d'ElGamal, d'ElGamal exponentiel, et de Paillier. Mais l'objectif ultime est d'obtenir un chiffrement qui soit homomorphe pour l'addition et pour la multiplication, ce qui permettrait d'évaluer de manière homomorphe des circuits booléens arbitraires, via un encodage des portes logiques par des polynômes.Comme première étape dans cette direction, nous avons introduit la notion de chiffrement faiblement homomorphe, c'est-à-dire homomorphe pour un nombre limité d'additions et de multiplications. Nous avons présenté la construction, due à van Dijk, Gentry, Halevy et Vaikuntanathan (2010), d'un tel chiffrement utilisant uniquement des nombres entiers. Ce chiffrement peut être rendu totalement homomorphe en le combinant avec la procédure de bootstrap introduite par Gentry en 2009. Cette procédure repose sur l'évaluation homomorphe d'un circuit qui réalise le déchiffrement. Elle permet de supprimer la limite sur le nombre d'additions et de multiplications successives, et donc d'évaluer des circuits arbitraires, à condition que le circuit de déchiffrement soit suffisamment simple pour être évalué par un chiffrement faiblement homomorphe, ce qui est difficile à réaliser.
Xavier LeroyChaire Sciences du logicielAnnée 2025-2026Collège de France01 Le calcul sécurisé : calculer sur des données chiffrées ou privées : Sécuriser le calcul : introduction et étude de casCe premier cours sur le calcul sécurisé a introduit deux approches pour calculer sur des données privées sans les révéler aux opérateurs du calcul : le chiffrement homomorphe, qui permet d'effectuer certains calculs sur des données chiffrées et de produire des résultats également chiffrés, sans donner les clés de déchiffrement au calculateur ; et le calcul multipartite sécurisé, dans lequel plusieurs participants coopèrent pour calculer une fonction de leurs données privées, sans jamais révéler ces données aux autres participants. Ces deux approches seront étudiées de manière plus approfondie dans la suite du cours.Pour compléter ce premier cours, nous avons étudié trois exemples d'utilisation de ces techniques. La première étude de cas est le calcul multipartite d'une moyenne, permettant par exemple à un groupe d'amis de déterminer leur salaire moyen sans que chacun révèle son salaire aux autres. La deuxième étude de cas porte sur le dépouillement d'un vote électronique simplifié, utilisant du chiffrement homomorphe pour totaliser les votes sans avoir à déchiffrer les bulletins individuellement, ainsi que des preuves à divulgation nulle de connaissance pour garantir que les votes sont bien formés sans avoir à les divulguer. La troisième étude de cas concerne le calcul bipartite de l'intersection de deux ensembles privés, un algorithme qui permet par exemple de découvrir des contacts sur un réseau social sans révéler de données personnelles.
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Daan Leijen : Design and Compilation of Efficient Effect Handlers in the Koka LanguageDaan LeijenMicrosoft Research
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202408 - Structures de contrôle : de « goto » aux effets algébriques : 08 - Structures de contrôle : de « goto » aux effets algébriques : Logiques de programmes pour le contrôle et les effets
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Matija Pretnar : Effect handlers and mathematically inspired language constructsMatija PretnarUniversité de Ljubljana
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202407 - Structures de contrôle : de « goto » aux effets algébriques : Typage et analyse statique des effets
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Olivier Danvy : Les continuations : cinq minutes pour les apprendre, toute une vie pour les comprendreOlivier DanvyNational University of Singapore
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202406 - Structures de contrôle : de « goto » aux effets algébriques : Théorie des effets : des monades aux effets algébriques
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Andrew Kennedy : Compiling with ContinuationsAndrew KennedyMeta
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202405 - Structures de contrôle : de « goto » aux effets algébriques : Pratique des effets : des exceptions aux gestionnaires d'effets
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202404 - Structures de contrôle : de « goto » aux effets algébriques : Programmer ses structures de contrôle : continuations et opérateurs de contrôle
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Delphine Demange : Représentations intermédiaires pour la compilation : s'affranchir du graphe de flot de contrôleDelphine DemangeUniversité de Rennes
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-2024Séminaire - Caroline Collange : Comment concilier parallélisme et contrôle ? Approches des architectures de processeurs généralistes et graphiquesCaroline CollangeInria
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202403 - Structures de contrôle : de « goto » aux effets algébriques : Chassez le contrôle... : la programmation déclarative
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202402 - Structures de contrôle : de « goto » aux effets algébriques : Structures de contrôle avancées : des subroutines aux coroutines et au parallélisme
Xavier LeroyCollège de FranceScience du logicielAnnée 2023-202401 - Structures de contrôle : de « goto » aux effets algébriques : Naissance des structures de contrôle : du « goto » à la programmation structurée
Xavier LeroyCollège de FranceScience du logicielAnnée 2022-2023Structures de données persistantesSéminaire - Pierre-Etienne Meunier : Une algèbre de modifications, ou : le contrôle de versions pour tous
Xavier LeroyCollège de FranceScience du logicielAnnée 2022-2023Structures de données persistantesÀ la recherche du vecteur perdu : limites théoriques et conclusionsJusqu'à quel point une structure de données persistante peut être efficace ? Y a-t-il forcément un surcoût par rapport à une structure transiente ? Le dernier cours essaiera de répondre à ces questions, d'abord en passant en revue les meilleures implémentations connues des tableaux persistants, purement fonctionnelles ou non, puis en étudiant les bornes inférieures sur l'efficacité des modèles de calcul « LISP pur » et « LISP impur » établies par Ben-Armarm, Galil, et Pippenger.
Xavier LeroyCollège de FranceScience du logicielAnnée 2022-2023Structures de données persistantesSéminaire - Arthur Charguéraud : Comment allier persistance et performanceCet exposé explore trois approches permettant d'optimiser les performances de programmes exploitant des structures persistantes. La première approche consiste à optimiser les structures purement fonctionnelles en augmentant l'arité des feuilles et des nœuds des arbres. La deuxième approche consiste à exploiter les effets de bords pour réaliser la persistance. La troisième approche consiste à modifier l'interface en autorisant des versions transitoires non persistantes, selon la technique dite de « transience ». Je montrerai comment mettre en pratique ces trois approches sur des diverses structures : piles, files, tableaux, et séquences sécables et concaténables.