DiscoverSciences du logiciel - Xavier Leroy
Sciences du logiciel - Xavier Leroy
Claim Ownership

Sciences du logiciel - Xavier Leroy

Author: Collège de France

Subscribed: 63Played: 866
Share

Description

Écrire un petit programme informatique est facile. Concevoir et réaliser un logiciel complet qui soit fiable, pérenne et résistant aux attaques reste extraordinairement difficile. C'est le but des sciences du logiciel que de concevoir et développer les principes, les formalismes mathématiques, les techniques empiriques et les outils informatiques nécessaires pour concevoir, programmer et vérifier des logiciels fiables et sécurisés.

L'enseignement de la chaire Sciences du logiciel vise à explorer cette problématique et à présenter la recherche contemporaine dans ce domaine. Le cours privilégie les approches dites « formelles », par opposition à l'empirisme souvent de mise en génie logiciel. Ces approches s'appuient sur des fondements mathématiquement rigoureux, connus ou en émergence : sémantiques formelles, logiques de programmes, systèmes déductifs, équivalences de programmes, calculs de processus… Historiquement, ces concepts ont émergé de considérations de programmation très terre-à-terre avant de se parer de rigueur mathématique. Le cours s'efforce de retracer ce cheminement des idées en partant de l'intuition du programmeur et en allant jusqu'à la mécanisation de ces approches formelles.

Les premières années de cet enseignement auraient pu s'intituler « Programmer, démontrer », car ils ont exploré plusieurs modes d'interaction entre la programmation de logiciels et la démonstration d'énoncés mathématiques : programmer puis démontrer, comme dans les logiques de programmes pour la vérification déductive ; programmer pour démontrer, comme dans les logiques constructives et l'assistant à la démonstration Coq ; enfin, programmer égale démontrer, comme dans la féconde correspondance de Curry-Howard, objet de la première année du cours.

La recherche de la chaire Sciences du logiciel s'effectue dans le cadre de l'équipe-projet Cambium, commune avec l'Inria. Les travaux de l'équipe visent à améliorer la fiabilité, la sûreté et la sécurité du logiciel en faisant progresser les langages de programmation et les méthodes de vérification formelle de programmes. Les principaux thèmes de recherche sont les systèmes de types et les algorithmes d'inférence de types, la vérification déductive de programmes, le parallélisme à mémoire partagée, et les modèles mémoires faiblement cohérents. L'équipe conçoit et développe deux grands logiciels de recherche qui intègrent et font passer dans la pratique bon nombre de ses résultats : OCaml, un langage de programmation fonctionnel statiquement typé et son implémentation, et CompCert, un compilateur formellement vérifié pour logiciels embarqués critiques.

71 Episodes
Reverse
Xavier LeroyChaire Chaire Sciences du logicielCollège de FranceMichele OrrùCNRSSéminaire - Michele Orrù : Des preuves zero-knowledge à l'anonymat en ligne
Xavier LeroyChaire Chaire Sciences du logicielCollège de FranceAnnée 2025-202606 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul vérifiable et preuves zero-knowledge
Xavier LeroyChaire Chaire Sciences du logicielCollège de FranceAnnée 2025-2026Geoffroy CouteauCNRSSéminaire - Geoffroy Couteau : Calcul sécurisé et aléa corrélé, de la théorie à la pratique
Xavier LeroyChaire Chaire Sciences du logicielCollège de FranceAnnée 2025-202605 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul multipartite sécurisé : circuits brouillés et transfert inconscient
Xavier LeroyChaire Sciences du logicielCollège de FranceAnnée 2025-2026Séminaire - Ilaria Chillotti : Chiffrement totalement homomorphe : panorama, applications et nouvelles directionsIlaria ChillottiDESILO Inc
Xavier LeroyChaire Sciences du logicielCollège de FranceAnnée 2025-202604 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul multipartite sécurisé : partager des secretsRésuméCe cours est le premier d'une série de deux cours consacrés au calcul multipartite sécurisé (en anglais : Multi-Party Computation, MPC), un mode de calcul sécurisé dans lequel plusieurs participants coopèrent pour calculer une fonction de leurs données privées, sans jamais les révéler aux autres participants. À la différence de l'approche du chiffrement homomorphe étudiée dans les deux cours précédents, l'approche multipartite sécurisée repose sur des algorithmes distribués mettant en œuvre des protocoles interactifs.Nous avons étudié plusieurs schémas de partage de données secrètes entre plusieurs participants : le schéma GMW (Goldreich-Micali-Wigderson) pour partager des bits entre deux participants ; le partage additif complet, qui généralise GMW à un nombre quelconque de participants ; le partage répliqué « deux parmi trois », qui résiste à la panne d'un des participants au prix d'un doublement de la taille des données ; et enfin le partage de Shamir, qui résiste à la panne de plusieurs participants et permet également de détecter voire de corriger les erreurs commises par certains participants. Ces différents schémas sont des instances d'une classe générale de partages linéaires de secrets (Linear Secret Sharing Scheme, LSSS) qui s'expriment élégamment en termes d'algèbre linéaire.Pour ces différents schémas, nous avons vu comment partager un secret en plusieurs parts (une par participant), comment révéler un secret partagé, et comment effectuer des opérations arithmétiques ou logiques sur les secrets partagés de manière distribuée. Si les opérations linéaires (addition, multiplication par une constante) sont simples et peuvent être effectuées de manière locale par chaque participant, la multiplication de deux secrets partagés est plus complexe et nécessite un échange d'informations entre les participants.Enfin, nous avons étudié la sécurité passive ou active de ces schémas de partage de secrets, c'est-à-dire leur capacité à résister à des attaques menées par un participant malveillant ou une collusion de plusieurs participants malveillants. En particulier, les capacités de détection et de correction d'erreurs des codes de Reed-Solomon sur lesquels repose le partage de Shamir permettent, sous certaines hypothèses, de se prémunir contre des attaques actives où les participants malveillants ne suivent pas le protocole et injectent des valeurs incorrectes dans le calcul.
Xavier LeroyChaire Sciences du logicielAnnée 2025-2026Collège de FranceSéminaire - Damien Stehlé : Chiffrement totalement homomorphe CKKSDamien StehléCryptoLabRésuméLe chiffrement homomorphe CKKS (Cheon, Kim, Kim et Song, Asiacrypt 2017) permet de calculer sur des vecteurs de nombres complexes de grande dimension, sans les divulguer. Ses opérations élémentaires sont l'addition, la multiplication et la conjugaison coordonnée par coordonnée, ainsi que la rotation cyclique des coordonnées.Nous présenterons comment effectuer ces opérations, puis comment les utiliser pour évaluer des polynômes et multiplier une matrice par un vecteur. Avec ces outils à disposition, nous décrirons le « bootstrap » de CKKS, qui permet d'effectuer des calculs arbitraires. Enfin, nous évoquerons des applications de CKKS, notamment en biométrie et en apprentissage automatique.
Xavier LeroyChaire Sciences du logicielAnnée 2025-2026Collège de France03 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Chiffrement totalement homomorphe : calculer sur des données chiffrées (2)RésuméCe cours a poursuivi l'étude du chiffrement totalement homomorphe entamée au cours précédent. Après un rappel de l'approche introduite par Gentry en 2009, qui combine chiffrement faiblement homomorphe et procédure de bootstrap, nous avons étudié trois directions pour rendre cette approche plus utilisable.La première direction est l'utilisation de chiffrements faiblement homomorphes qui reposent sur le problème LWE (Learning With Errors) et ses variantes RLWE et GLWE. Le problème LWE, introduit par Regev en 2005, est une généralisation du problème LPN (Learning Parity with Noise), bien connu en théorie du codage et en théorie de l'apprentissage statistique, ainsi que du problème CVP (Closest Vector Problem) sur les réseaux euclidiens. LWE permet de construire des schémas de chiffrement élégants, post-quantiques, et faiblement homomorphes pour l'addition et la multiplication par une constante.La deuxième direction consiste à améliorer l'opération de multiplication homomorphe pour qu'elle introduise moins de bruit dans les résultats. Nous avons détaillé l'approche BGV proposée par Brakerski, Gentry, et Vaikuntanathan en 2012, qui effectue une étape de réduction de module après chaque multiplication, afin de garder le bruit quasi-constant en valeur absolue. Cela augmente considérablement la profondeur multiplicative des circuits qui peuvent être évalués homomorphiquement sans recours à un bootstrap.La troisième direction vise à rendre la procédure de bootstrap moins coûteuse. Nous avons étudié l'approche FHEW/TFHE proposée par Chillotti, Gama, Georgieva et Izabachène en 2016, qui repose sur un accès indexé homomorphe dans une table de constantes calculées et chiffrées à l'avance. Combinée avec un changement de clé et un changement de module, cette approche à base de tables débouche sur un bootstrap programmable, qui non seulement réduit le bruit mais aussi calcule de manière homomorphe une fonction des textes clairs dans les textes clairs.
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
loading
Comments