Résumé
La première partie de ce cours a étudié l'utilisation d'une mémoire à accès direct dans le cadre d'un calcul sécurisé, afin d'aller plus loin que les modèles de calcul à base de circuits booléens ou arithmétiques utilisés dans les cours précédents. Le modèle de la mémoire inconsciente (ORAM, Oblivious RAM) permet à un processeur sécurisé d'accéder à une RAM externe sans que les données échangées ni les motifs d'accès à la RAM ne révèlent quoi que ce soit sur le calcul réalisé par le processeur. Nous avons présenté la première réalisation de ce concept : l'algorithme « square-root ORAM » de Goldreich et Ostrovsky (1996). Nous avons ensuite envisagé le cas où les adresses des accès mémoire sont produites par un circuit évalué de manière homomorphe. Lin, Mook et Wichs (2023) ont appliqué à ce scénario leur approche « DEPIR » (Doubly-Efficient Private Information Retrieval), dans laquelle la mémoire, représentée par un tableau multidimensionnel, est d'abord chiffrée avec un chiffrement faiblement homomorphe algébrique (contenu et adresses), puis représentée de manière relativement compacte et avec des accès en temps polylogarithmique à l'aide de la technique de factorisation rapide de polynômes de Kedlaya et Umans (2008).
La deuxième partie du cours était consacrée à l'obfuscation de programmes : comment rendre le code d'un programme incompréhensible au point où il ne fournit aucune information supplémentaire par rapport à celles obtenues en exécutant le programme. Des techniques peu sécurisées d'obfuscation sont fréquemment utilisées pour compliquer la rétro-ingéniérie et le piratage de logiciels. De manière beaucoup plus ambitieuse, une obfuscation de qualité cryptographique telle que l'obfuscation indistinguable (IO, indistinguishability obfuscation, Barak et al, 2001) permettrait de réaliser facilement presque toutes les primitives cryptographiques connues, du chiffrement à clé publique au chiffrement homomorphe et bien plus encore. Nous avons tenté d'expliquer l'extrême difficulté de réalisation d'un obfuscateur indistinguable, avec plusieurs propositions utilisant des formes multilinéaires qui se sont révélées non sûres, et une seule proposition (Jain, Lin et Sahai, 2021) qui résiste encore.