TH Doc Crypto Post Quantique 2023
TH Doc Crypto Post Quantique 2023
TH Doc Crypto Post Quantique 2023
Contexte Post-Quantique
Cyrius Nugier
A da p tat i o n d ’ O u t i l s C ry p t o g r a p h i q u e s
pour un Contexte Post-Quantique
JURY
Jimmy Lunceford
iii
Remerciements
Les travaux présentés dans ce manuscrit ont été effectués dans l’équipe Tolérance
aux fautes et sécurité de fonctionnement (TSF) du Laboratoire l’analyse et d’archi-
tecture des systèmes (LAAS) du Centre national de la recherche scientifique (CNRS).
Je remercie les directeurs du laboratoire M. Liviu Nicu et M. Mohamed Kaâniche,
ainsi que la responsable d’équipe Mme Hélène Waeselynck de m’avoir accueilli dans
cette structure, et m’avoir permi de mener mes travaux dans de bonnes conditions.
Je remercie sincèrement mes directeurs de thèse, « les vincents » : M. Vincent
Nicomette pour son soutien, ses encouragements, l’écoute dont il a fait preuve, et
l’énergie qu’il a déployé pour m’aider dans mes recherches. M. Vincent Migliore
pour la précision de ces connaissances techniques et la volonté qu’il a de mettre ses
compétences au service des autres, sa capacité à toujours me faire prendre du recul
sur les recherches.
Bien que trop nombreux pour les nommer ici, je tiens à remercier tous les doc-
torants de l’équipe que j’ai eu la chance de côtoyer, pour toutes les discussions
scientifiques, techniques philosophiques enrichies par nos expériences de vie diffé-
rentes, et toujours dans un esprit de recherche de la vérité passionné. Je remercie en
particulier M. Florent Galtier et M. Rémi Adelin, qui ont toujours su être à l’écoute
et dont le soutien à été précieux.
J’ai eu l’occasion de collaborer avec des membres de la communauté de la
cryptographie, ou de me tourner vers certains de ses membres pour obtenir de l’aide.
Je les remercie d’avoir été toujours ouverts et bienveillants.
Je tiens finalement à remercier tous ceux qui m’ont soutenu mentalement pendant
ce parcours d’obstacles qui est la thèse. Je pense spécialement à ma famille, ma
seconde famille de danseurs du TRAC, et par dessus tout le support précieux et
indéfectible de ma femme.
Table des matières
Remerciements iii
Introduction 1
Rappels 5
1 Contexte et Évolutions 11
1.1 Topologie en couches de la cryptographie . . . . . . . . . . . . . . . 11
1.2 Évolutions du contexte cryptographique à l’approche de l’ordinateur
quantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Conclusion 147
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Publications 153
Bibliographie 155
Résumé 169
Liste des Abréviations
Abréviations
VPN Virtual Private Network / réseau privé virtuel
TOR The Onion Router / le routeur en oignon
KEM Key Encapsulation Mechanism / mécanisme d’encapsulation de clés
ABE Attribute Based Encryption / chiffrement basé attributs
KP-ABE Key-Policy ABE / ABE avec politique dans la clé
CP-ABE Ciphertext-Policy ABE / ABE avec politique dans le chiffré
PQ-ABE Post-Quantum ABE / ABE post-quantique
IBE Identity Based Encryption / chiffrement basé identité
FIBE Fuzzy Identity Based Encryption / chiffrement basé identité floue
HABE Hyerarchical ABE / chiffrement hiérarchique basé attributs
SHA Secure Hash Algorithm / algorithme de hachage sécurité
NIST National Institute of Standards and Technology/ institut américain
des standards technologiques
DDoS Distributed Denial of Service / déni de service distribué
QoS Quality of Service / qualité de service
AES Advanced Encryption Standard / standard de chiffrement avancé
AES-GCM AES-Galois Counter Mode / AES en mode compteur de Galois
IND-CCA2 Indistinguishability against adaptative chosen ciphertext attack/ indis-
tinguabilité contre les attaques a chiffrés choisis adaptativement
IND-CPA Indistinguishability against chosen plaintext attack/ indistinguabilité
contre les attaques à clair choisi
LWE Learning With Errors / apprentissage avec erreurs
R-LWE Ring LWE / LWE dans un anneau
RSA Rivest Shamir Adleman cryptosystem/ cryptosystème Rivest Shamir
Adleman
Chapitre 1 : Notations utilisées dans le protocole QASTOR
U Distribution Uniforme
LG Liste des Groupes
G̃i Groupe initialement prévu à la profondeur i, balisé « Guard »
viii LISTE DES ABRÉVIATIONS
d’autant plus que certaines propriétés des protocoles sont elles aussi menacées par
l’ordinateur quantique.
Ces protocoles doivent aussi être adaptés au regard des évolutions observées sur
les utilisations dont ils font l’objet. Les utilisateurs semblent parfois accepter une
baisse de vie privée en échange d’un service qui leur semble meilleur. Cependant,
à service équivalent, ils souhaitent malgré tout davantage de protection de leur vie
privée. Les changements de comportement des utilisateurs dans leur consommation
de données chiffrées doivent être intégrés à la conception des protocoles, d’autant plus
que ceux-ci peuvent aussi être sujets à d’autres contraintes extérieures complexes,
légales par exemple.
On peut aussi mettre en avant les synergies entre l’étude des primitives et de
leurs supports d’exécution. D’un côté, chaque nouvelle instruction du processeur,
chaque opération vectorielle, sont autant d’opportunités d’accélérer une primitive.
De l’autre côté, certaines peuvent être ajoutées spécialement pour cette raison. Des
co-processeurs sont développés afin d’obtenir des performances maximales d’exécu-
tion. En outre, les moyens d’exploiter les fuites physiques d’informations s’améliorent
également. Bien que les technologies mémoire cherchent à mitiger celles-ci, les algo-
rithmes doivent aussi s’adapter en fonction de ce modèle de vulnérabilité.
Nous postulons donc qu’il est nécessaire dans cette période de changements, de
proposer des solutions transversales et ainsi plus poussées. Une telle vision globale
permet de se préparer à l’arrivée d’un ordinateur quantique et d’être proactif sur
les changements qui s’opèreront dans les années à venir. Nous développons dans
cette thèse des propositions sur quatre problématiques, dont une vision transversale
apporte de meilleurs résultats.
Cette thèse commence par une section de rappels, permettant de s’accorder sur
une base sémantique minimale sur les termes de cryptographie classiques utilisés dans
celle-ci. Ensuite le chapitre 1 présente plus précisément le contexte cryptographique
à l’approche d’un ordinateur quantique.
Dans le chapitre 2, nous présenterons un nouveau protocole, nommé QasTor,
inspiré du célèbre protocole Tor, et qui répond à une consommation numérique
grandissante de live-streaming de masse, tout en préservant l’anonymat de ses
utilisateurs, même face à un ordinateur quantique. Nous discuterons des compromis
anonymat/efficacité que ce protocole propose.
Dans le chapitre 3, nous étudierons l’ensemble des protocoles multipartite impli-
quant des chiffrements et/ou déchiffrements successifs et dont la sécurité est mise
en danger à cause de l’arrivée potentielle des ordinateurs quantiques. Parmi ceux-
ci se trouvent les protocoles d’interception réglementée, dont nous proposons une
adaptation basée sur des primitives post-quantiques, et illustrée par une adaptation
au contexte des voitures connectées.
Enfin, dans le chapitre 4, nous étudierons l’impact que les architectures émer-
gentes ont sur les primitives post-quantiques candidates au processus de standar-
disation, car celui-ci s’est concentré sur des architectures existantes. L’exemple qui
illustre le mieux cet impact est l’utilisation de Classic McEliece sur une architecture
incluant du calcul en cache, qui pourrait parfaitement être diffusée durant l’ère post-
Introduction 3
Ces rappels ont pour objectif de rendre le manuscrit intelligible sans pour autant
rentrer dans des détails trop techniques. Je recommande très fortement à un
lecteur curieux souhaitant avoir une compréhension plus rigoureuse des sujets
évoqués de suivre le cours en ligne de D.Boneh [Boneh 2020a], et pour aller
encore plus loin de s’aider du livre incroyablement complet (et incroyablement
long) qui y est associé [Boneh 2020b].
aisé de comprendre le message même une fois chiffré. Il faut donc se servir d’une
valeur secrète qu’on appelle clé (K pour key en anglais) qui pourra changer entre
les chiffrements. Si Alice et Bob veulent s’échanger des messages en toute sécurité,
ils commencent par se mettre d’accord sur une valeur de clé. Ensuite, Alice écrit
son message (m) et le chiffre avec la clé grâce à un algorithme nommé Encrypt, et
envoie le résultat, le chiffré (CT pour ciphertext en anglais) à Bob. Celui-ci reçoit
ce chiffré, et grâce à K et l’algorithme inverse de déchiffrement nommé Decrypt, il
peut retrouver le message.
Cryptographie Asymétrique. Il est aussi possible que la clé de chiffrement
et la clé de déchiffrement ne soient pas les mêmes. Auquel cas on utilisera les termes
de clé publique (P K) pour la clé de chiffrement et de clé secrète (SK) pour la
clé de déchiffrement. Ces clés sont créées par un algorithme de génération de clé
nommé KeyGen. Si la clé secrète ne peut pas se déduire de la clé publique, cette
dernière peut alors être diffusée sans risque (d’où son nom). On peut imaginer la clé
publique comme un cadenas à code, que Bob initialise à une certaine valeur qu’il
garde secrète. Alice peut alors utiliser ce cadenas pour fermer une boîte contenant
son message secret et seul Bob pourra l’ouvrir.
Le meilleur des deux mondes. Dans la pratique, les primitives de cryptogra-
phie asymétrique sont beaucoup plus lentes que celles de cryptographie symétrique.
On profite alors du meilleur des deux mondes grâce à un mécanisme d’échange de
clé (KEM pour Key Exchange Mechanism). La cryptographie asymétrique est alors
utilisée pour permettre à Alice d’échanger une clé avec Bob. Celle-ci sert ensuite de
clé symétrique, ce qui permet d’échanger des messages chiffrés plus longs avec des
meilleures performances.
Kerckhoffs. Un des plus grands retours sur l’expérience « Enigma » de la
seconde guerre mondiale, en cryptographie, est désormais énoncé sous le nom de
principe de Kerckhoffs. Bien que connu dès la fin du XIXe siècle, Claude Shannon
(père de la théorie de l’information) lui donne son importance en le reformulant :
« L’adversaire connaît le système ». Cela signifie que la sécurité d’une primitive
cryptographique ne doit pas se baser sur le fait que celle-ci soit méconnue. Les
algorithmes doivent être considérés comme publics et les clés doivent être les seuls
éléments considérés cachés. Ce principe veut aussi que l’on considère la stéganogra-
phie comme inefficace car elle se base justement sur l’ignorance de l’attaquant de la
présence du message.
Standards de sécurité. L’application du principe de Kerckhoffs et des autres
mesures de précaution apprises mène à deux exigences de sécurité notables. La
première est que l’attaquant ne doit pas pouvoir mener d’attaque lui permettant de
distinguer un chiffré dont il ne connaît pas la clé d’un message aléatoire, même si
l’attaquant a accès à une machine qui permet de chiffrer et déchiffrer des messages
(sécurité dite IND-CCA2). La seconde est que l’attaquant ne doit pas avoir d’attaque
qui lui permet de distinguer le chiffré du message m0 du chiffré du message m1 s’il
ne connaît pas la clé de chiffrement (sécurité IND-CPA). Toutes les primitives de
chiffrement modernes et futures doivent satisfaire au moins ces exigences.
Bits de Sécurité. Bien que travaillant avec des concepts mathématiques, la
cryptographie reste ancrée dans le monde réel. Ainsi, si une attaque existe en
théorie, mais que son temps de calcul est tellement long qu’aucun attaquant réel
Rappels 7
1. Si la loi de Moore continue (doublage de la puissance de calcul tous les 18 mois) il faudrait
30 ans pour atteindre 100 bits de sécurité, et 72 ans pour atteindre 128.
8 RAPPELS
« Top secret », « 2022 », et une personne dont la clé est par exemple « Top Secret
ou Urgent » pourra le déchiffrer. Ces ABE dans lesquels la condition est dans la
clé sont appelés KP-ABE (pour Key Policy). Parmi les propriétés très importantes
des systèmes ABE, on trouve le fait que toutes les clés soient différentes, mais aussi
la non-collusion, c’est-à-dire que deux personnes malveillantes mettant en commun
leur clé ne peuvent pas déchiffrer des messages que l’une d’entre elles n’aurait pas
pu deviner seule.
Cette liste de rappels n’a couvert que des points préliminaires. Les sujets qui
font l’objet de discussions plus approfondies au cours de cette thèse sont présentés
dans le chapitre Contexte et Évolutions, plus technique, qui suit.
Chapitre 1
Contexte et Évolutions
1. La couche la plus haute est naturellement celle que pilote l’utilisateur (et
donc la Couche Utilisation). On peut considérer dans cette couche toutes
les applications possibles des outils cryptographiques : la plus couramment
utilisée est certainement la transmission de données sur l’Internet, mais on
peut aussi penser à d’autres utilisations comme l’Internet des objets (IoT),
la création d’identités uniques ou temporaires (UIds), les cryptomonnaies, la
génération procédurale dans les jeux vidéos, l’anonymat et la dissimulation de
transactions, le traitor-tracing pour trouver qui diffuse un contenu censé être
restreint...
2. La couche juste en dessous est celle qui gère les transmissions entre les utilisa-
teurs. On peut l’appeler la Couche Protocole. Il s’agit de définir les données
transmises et donc les modes d’utilisation des outils cryptographiques, sans
pour autant spécifier ceux-ci. On peut penser à des protocoles tels que le three-
pass-protocol de Shamir [Shamir 1981], le proxy-reencryption [Ateniese 2006],
le routage en oignon TOR [Dingledine 2004], voire même les modes d’utilisa-
tions bien connus d’AES (AES-GCM) ou de RSA (RSA-OAEP). On choisit de
ne pas inscrire les couches télécommunications et réseaux dans cette topogra-
phie, en considérant que tous les échanges de données sont « parfaits » : pas
de perte de données, les acquittements de réception ne seront pas mentionnés.
3. En dessous, la Couche Primitive contient les primitives cryptographiques. Elle
s’interface avec la couche précédente en proposant des fonctions abstraites
(en boîte noire), telles que hash, encrypt, decrypt... Cette couche contient le
détail des algorithmes qui calculent le résultat de ces fonctions (AES, RSA, DH,
ECDH, SHA2, Chacha20...). De ces algorithmes dépendent donc la complexité
asymptotique. C’est dans cette couche que s’inscrit l’étude des propriétés de
sécurité des primitives et de leurs performances.
4. Finalement, ces algorithmes, bien qu’ils soient des objets mathématiques, ont
besoin d’un support physique afin de produire un résultat. Ce support est
1.1. TOPOLOGIE EN COUCHES DE LA CRYPTOGRAPHIE 13
Ici, ce sont les concepteurs des protocoles qui peuvent laisser des failles. Contre
celles-ci, des outils de preuves formelles tels que ProVerif peuvent aider à éviter
quelques erreurs connues.
3. Les cryptographes ne connaissent que trop d’exemples d’attaques sur la couche
primitive, dont la complexité devient inférieure au seuil du nombre de bits de
sécurité. On peut citer les plus connues : les attaques linéaires, différentielles,
par rencontre au milieu, les compromis temps-mémoire... Les réductions de
sécurité permettent de prouver qu’un système cryptographique est au moins
aussi sûr qu’un problème mathématique connu est dur à résoudre. Or, la diffi-
culté de résolution de ce problème se mesure avec la complexité du meilleur
algorithme qui résout celui-ci. Les attaques viennent donc du fait que les
mathématiciens et cryptographes découvrent petit à petit de meilleurs algo-
rithmes.
14 CONTEXTE
4. Les ordinateurs en tant qu’objets physiques sont eux aussi vulnérables. Lors
du déroulement de l’algorithme, on peut réaliser des mesures physiques qui
renseignent sur les variables et paramètres de celui-ci. Par exemple, on peut
mesurer le temps de calcul, la consommation de courant du processeur, ou
insérer des sondes de mesure du champ électromagnétique produit. La concep-
tion de l’architecture de l’ordinateur peut aussi créer des failles de sécurité,
comme les fameuses attaques Spectre, Meltdown, et récement HertzBleed
[Abu-Ghazaleh 2019, Wang 2022].
Si une seule des couches présente une vulnérabilité, le caractère privé du message
est compromis. Il est donc nécessaire non seulement d’étudier les outils et méthodes
disponibles à l’intérieur de chacune de ces couches, mais aussi d’étudier comment
celles-ci fonctionnent de manière transversale, une modification dans une couche
pouvant avoir des répercussions sur celles adjacentes.
peuvent être soit |0⟩, l’équivalent du 0 classique, soit |1⟩ l’équivalent du 1 classique,
soit une superposition des deux : α |0⟩ + β |1⟩ avec α, β ∈ C et |α|2 + |β|2 = 1.
La proximité de cette définition avec celle des probabilités (dont la somme doit
faire 1) peut justifier l’appellation de « probabilités complexes ». Cependant, cette
appellation est à prendre avec des pincettes, la différence entre les capacités du calcul
probabiliste et quantique ayant été prouvée théoriquement et expérimentalement
(inégalité CHSH) [Clauser 1969]. Le terme d’amplitude est alors utilisé pour décrire
α et β.
Opérations sur les qbits. A l’image des portes logiques classiques (NOT,
AND, OR, XOR...), il est possible d’effectuer des opérations sur un ou plusieurs
qbits. Sur un qbit, on trouvera par exemple la porte de Pauli (similaire à une porte
NOT), qui à α |0⟩ + β |1⟩ associera β |0⟩ + α |1⟩, ou encore la porte de Hadamard
qui y associe √12 (α + β) |0⟩ + √12 (α − β)α |1⟩. Il est démontré possible de recréer
toutes les portes classiques à l’aide de portes quantiques, qui auront alors sur |0⟩ et
|1⟩ le même fonctionnement que les classiques avec 0 et 1). Cela a notamment pour
implication que tous les circuits classiques sont reproductibles sur des ordinateurs
quantiques sans augmentation de complexité. Cependant, l’inverse n’est pas vrai :
par exemple, la porte de Hadamard ne peut pas être reproduite classiquement. Il
faut noter que la difficulté et le coût de la création des différentes portes quantiques
peuvent varier selon le support physique choisi pour les qbits.
Mesure d’un qbit. Afin de pouvoir interpréter le résultat d’un calcul quantique,
il faut observer l’état de nos qbits à la fin de celui-ci. Cependant, contrairement
aux ordinateurs classiques, ce résultat n’est pas déterministe : par exemple, le qbit
α |0⟩ + β |1⟩ s’il est observé (ou mesuré), sera dans l’état |0⟩ avec une probabilité de
|α|2 (l’appareil de mesure indiquant alors 0) et dans l’état |1⟩ avec une probabilité
de |β|2 (l’appareil de mesure indiquant alors 1).
Théorème de non-clonage. Première différence notable avec les bits clas-
siques : on peut facilement copier la valeur d’un bit dans un autre bit, mais il
n’existe pas de façon de créer une copie d’un qbit correcte pour tous les états pos-
sibles. La preuve est mathématique 1 , et seul un changement de notre modèle de la
physique pourrait justifier l’inverse. Cette propriété peut permettre de s’assurer de
« l’intégrité » d’un qbit.
BB84. Ce protocole est un exemple de ce qui peut être fait grâce à ce théorème
de non-clonage. En se basant sur de la polarisation selon deux bases différentes,
Alice et Bob peuvent échanger des qbits, et leurs mesures leur permet de partager
des bits d’information. Parmi les bits partagés, certains peuvent être « consommés »
(rendus publics) ce qui permet de s’assurer qu’une tierce personne n’a pas déjà
mesuré un qbit. Cet attaquant ayant une chance sur 4 d’être détecté à chaque bit
échangé, Alice et Bob peuvent créer une clé avec une sécurité arbitrairement haute
en complexité linéaire. Si ce protocole était universellement accessible, il stopperait
net le jeu du chat et de la souris qui oppose la cryptographie et la cryptanalyse par
une victoire de la cryptographie. Cependant, même si celui-ci a été réalisé dans des
1. Les transformations sur l’état des qbits sont représentées par des matrices unitaires, or les
fonctions permettant une copie ne peuvent pas être représentées par celles-ci.
16 CONTEXTE
phiques utilisées (RSA/DH) qui se retrouvent en danger, de même pour les systèmes
qui se reposent sur celles-ci.
On voit que la métrique de coût est plus adaptée que celle de bits de sécurité,
car elle met sur une même échelle la sécurité contre les deux types d’ordinateurs.
Le coût des attaques est bien trop grand sur ordinateur quantique, même si la
complexité est moindre.
1.2. ÉVOLUTIONS DU CONTEXTE 19
Cette standardisation étant bientôt finie et avec déjà une primitive nommée
(CRYSTALS-KYBER), les outils cryptographiques actuels vont pouvoir être mis à
jour, avec du post-quantique en « roue de secours », qui pourra être utilisé à tout
moment si la menace de la cryptanalyse quantique semble se concrétiser.
Hidden Subgroup Problem. Il est important, bien que plus technique, de pré-
senter ce pourquoi certaines primitives sont résistantes aux ordinateurs quantiques
et pas d’autres. En réalité la différence est plus faible qu’il n’y paraît : les primitives
classiques basées sur la factorisation (ex : RSA) ou le logarithme discret (DH), et des
primitives post-quantiques basées sur les réseaux euclidiens (CRYSTALS-KYBER),
ou sur les codes correcteurs d’erreur (BIKE) ont en fait un point commun. Ces pri-
mitives sont toutes des variations d’un même problème mathématique : le Hidden
Subgroup Problem.
Dans ce problème, on définit comme paramètre public un groupe G. Le secret à
deviner va être un sous-groupe H de G. Pour deviner H, l’attaquant peut choisir des
éléments g ∈ G. Cet élément subit une projection sur G/H, ce qui signifie que deux
éléments g1 , g2 ∈ G tels que g1 − g2 ∈ H auront le même résultat. Pour compliquer
les choses, le résultat n’est pas affiché tel quel, mais sous la forme d’une chaîne de
caractères qui n’a rien à voir avec sa valeur. Ces chaînes de caractères pouvant par
exemple être des couleurs, technique appelée la colorisation. Cette notion de couleur
est utilisée dans la littérature pour illustrer qu’il n’y a pas d’opération possible entre
les couleurs, à part vérifier leur égalité.
Ce que permet l’algorithme de Shor c’est de résoudre ce problème, mais à une
condition, c’est que le groupe G soit Abélien, autrement dit, commutatif. C’est de
là que vient toute la différence entre la cryptographie classique (qui utilise donc des
groupes Abéliens) et post-quantique qui utilise des groupes non-Abéliens. Parmi ces
derniers, deux types de groupes particuliers ont toute leur importance : les groupes
dihédraux D2n des rotations et symétries des polygones réguliers à n côtés, et les
groupes symétriques Sn des permutations d’ensembles à n éléments.
1.2. ÉVOLUTIONS DU CONTEXTE 21
Il a été prouvé que résoudre le HSP dans ces groupes correspond respectivement
à résoudre le problème du vecteur le plus court (SVP - Shortest Vector Problem)
[Regev 2003] et le problème des isométries de graphes [Ettinger 1999]. La difficulté
à résoudre ces deux problèmes est le fondement de la sécurité de primitives post-
quantiques. Les systèmes basés Réseaux euclidiens et Codes Correcteurs d’erreurs
dépendent de variantes du SVP (respectivement Learning With Error et Syndrome
Decoding). Le problème des isométries de graphes, moins courant, a des utilisations
dans certaines preuves Zero-Knowledge.
C’est pour cette raison qu’il existe un standard déjà nommé CRYSTALS-
KYBER, qui a été choisi comme la meilleure primitive dont la sécurité dépend
de LWE. Les primitives encore restantes sont celles basées sur le Syndrome
Decoding.
Dans les groupes dihédraux, plusieurs algorithmes inspirés de près ou de loin par
l’algorithme de Shor existent qui visent à résoudre le HSP. Au fur et à mesure des
inventions, la complexité diminue, ou des compromis temps-mémoire sont trouvés,
mais elle ne cesse d’être exponentielle, ce qui justifie la sécurité des primitives
post-quantiques actuelles [Regev 2004a, Kuperberg 2005a, Kuperberg 2011a].
Chiffrements commutatifs. Les primitives de chiffrement ne sont pas les seules
qui se servaient des groupes Abéliens. Certains protocoles profitaient aussi de la
commutativité des chiffrements entre eux pour créer des propriétés de sécurité. Ces
protocoles dits de chiffrement commutatif sont aussi sources de vulnérabilités face à
un ordinateur quantique. Notablement parmi ceux-ci, les protocoles d’interception
réglementée, permettant de concilier sécurité et vie privée sont touchés par ces
vulnérabilités.
Calcul en mémoire. Pendant que les ordinateurs quantiques deviennent pro-
gressivement une réalité, les ordinateurs classiques ne cessent eux aussi de s’améliorer.
Certes, il semble que les efforts d’augmentation de la densité de transistors com-
mencent à s’essouffler, à cause de barrières techniques comme la dissipation de
22 CONTEXTE
Pour éviter des attaques par simple analyse du temps de calcul, les primitives
cryptographiques ont des implémentations dites en temps constant : le temps de
calcul est indépendant du secret (pas de if, for, while basé sur un secret). Cela ne
suffit pas à empêcher les attaques par timing, car toutes les données de l’ordinateur
n’ont pas les mêmes temps d’accès : une donnée dans un registre du processeur est
accessible instantanément, mais une donnée en mémoire centrale prendra plus de
temps à être disponible. Il faut s’assurer que l’implémentation est aussi en adresses
constantes : les adresses mémoire des variables sont indépendantes des secrets.
Mais ce sont des contremesures limitées car l’observation du système peut se
faire selon d’autres critères que le temps. On peut comparer la quantité d’énergie
consommée lors d’un même chiffrement en changeant juste la clé ou le message. Les
variations de cette consommation peuvent donner des indices sur ceux-ci. On peut
même aller jusqu’à utiliser des sondes afin de mesurer les émissions électromagné-
tiques à des endroits très précis du processeur.
Modèle du poids de Hamming. Les bascules de transistors des mémoires
de nos ordinateurs actuels ont une particularité : leur consommation est plus faible
lors des cycles où elles conservent leurs valeurs (0 vers 0 ou 1 vers 1) que lors-
qu’elles changent de valeur (0 vers 1 ou 1 vers 0). La différence de consommation
du processeur va alors être affine au nombre de changements de valeurs (appelés
« bitflips »). Si une valeur a est remplacée par une valeur b, les bits ayant changé
de valeur sont les bits à 1 de a ⊕ b. Leur nombre, appelé poids de Hamming (HW ),
est donc HW (a ⊕ b). On voit que si a valait 0, c’est le poids de Hamming de b qui
est mesurable, ce qui est problématique si b est secret.
Ce modèle, associé à une connaissance fine de l’architecture de l’ordinateur peut
aider à trouver des vulnérabilités dans des calculs et des moyens de mieux protéger
des données d’attaques toujours plus évoluées et performantes.
Consommation de données. En devenant plus performants, nos ordinateurs
classiques permettent de supporter une consommation d’informations toujours plus
importante, autrement dit « l’offre crée la demande ». Toutes les statistiques d’uti-
lisation des plus célèbres plateformes de streaming mènent à la même conclusion :
le temps d’écran s’allonge, une proportion de plus en plus grande de celui-ci est
accordée à la vidéo, dont une part grandissante est attribuée à la vidéo en direct
[Viméo 2020]. Les plateformes de diffusion et les réseaux sociaux se sont adaptés à
cette demande.
Protection et anonymat. En contrepartie, la conscience des problématiques
de vie privée dans la navigation en ligne n’a jamais été aussi grande [Galov 2022].
La demande pour des services sécurisés et protecteurs de la vie privée tels que
des messageries chiffrées de bout-en-bout ou des services de VPN n’a jamais été
aussi forte. Cependant, ces outils d’anonymisation sont rarement conciliables avec la
demande grandissante de diffusion massive de vidéos en direct car ils demandent de
transiter par plus de noeuds du réseau, ce qui crée un supplément de charge de travail.
Et les utilisateurs d’internet sont souvent prêts à accepter un compromis entre une
partie de leur vie privée et la capacité d’accéder à de meilleures fonctionnalités.
Vue d’ensemble. On peut regrouper l’ensemble des évolutions et des avancées
des différentes couches dans un schéma-bilan présenté figure 1.5.
24
1.3 Problématique
Les évolutions de chacune des couches se font de manière isolée, mais elles
impactent nécessairement celles supérieures et inférieures. Pour minimiser les effets
de ces changements, des outils sont proposés dans chacune des couches afin d’assurer
que les interfaces avec les couches adjacentes restent autant que possible intactes.
Premièrement, les conséquences de l’arrivée éventuelle de la cryptanalyse quan-
tique et le retrait des primitives basées sur le Abelian Hidden Subgroup Problem
et les adaptations nécessaires à celles-ci sont amoindries par l’arrivée des primitives
post-quantiques. Ce changement pourra être quasiment transparent pour la plupart
des protocoles les plus simples (les appels à KeyGen, Encrypt, Decrypt, ne changeant
pas) qui s’exécuteront comme prévu sur nos machines actuelles. Cependant, le chan-
gement n’est pas parfaitement transparent : les nouvelles primitives n’ont pas les
mêmes performances, tailles de clés, tailles de chiffrés... Des réflexions dans les deux
directions doivent être engagées : selon le protocole, le choix de la primitive à utiliser
n’est plus évident, les primitives post-quantiques présentant de grandes différences
de performance. En retour cela peut motiver des changements dans les protocoles,
pour limiter le nombre d’échanges, la quantité de clés à stocker, sans compter que
des fonctionnalités de protocoles spécifiques (ex : chiffrement commutatif), si on
changeait uniquement de primitives, viendraient à disparaître.
Un autre moteur d’évolution des protocoles cryptographiques est bien sûr l’évo-
lution de leur utilisation. Des protocoles proposant aux utilisateurs des meilleurs
compromis entre vie privée, leur sécurité, et leur capacité à pouvoir échanger leurs
données contre des services font évoluer la demande de ces utilisateurs. En retour,
les protocoles doivent s’adapter à ces variations dans les demandes. Que privilégient
les utilisateurs ? Un faible temps de connexion ? Une forte bande passante ? Il faut
adapter les protocoles pour optimiser ces métriques et garantir au mieux la vie
privée des utilisateurs, tout en considérant les contraintes légales qui pèsent sur de
tels systèmes.
On peut constater aussi que les évolutions très fortes de primitives cryptogra-
phiques vont impacter et être impactées par la couche physique. D’un côté, certaines
primitives peuvent très bien s’exécuter plus rapidement sur d’autres architectures,
ainsi que de manière plus sécurisée contre les attaques physiques. De l’autre côté,
les architectures s’adaptent pour intégrer des outils d’amélioration de ces nouvelles
primitives : échantillonnage du bruit pour les systèmes LWE, ajout de nouvelles
instructions... De plus en plus de recherches adoptent une vision d’ensemble de
ces problématiques pour proposer des solutions globales, comme l’effet sur les per-
formances d’adaptation de primitives les rendant plus résilientes aux attaques par
canaux auxiliaires [Migliore 2019].
On peut observer une forte similarité entre ces précédentes remarques : le point
commun est que l’observation de plusieurs couches permet une résolution de pro-
blèmes de manière plus poussée. La problématique qui émerge globalement en cryp-
tographie dans cette période de préparation à l’arrivée des ordinateurs quantiques
est donc le besoin de synergie transversale entre les différentes couches. Il ne s’agit
plus seulement de s’assurer de l’existence d’empilements de blocs sécurisés pour
garantir la protection des données pour des utilisations simples. Il s’agit aussi de
26 CONTEXTE
proactivement étudier les liens entre ces couches et les conséquences des évolutions
attendues sur chacune des couches pour trouver des solutions meilleures aux besoins
anticipés.
Pour illustrer ce besoin et proposer de telles solutions, nous avons ciblé des
problématiques spécifiques aux interfaces entre différentes couches, et dont la réso-
lution est plus poussée par une étude transversale que de manière segmentée. Nous
traiterons celles-ci des couches les plus hautes aux plus basses. La numérotation est
similaire à la figure 1.5.
1. La consommation numérique évolue parallèlement vers une quantité grandis-
sante de livestreaming de masse, et vers des outils de protection des utilisateurs.
Des protocoles savent satisfaire chaque besoin individuellement, mais peut-on
concevoir une solution qui satisfasse les deux simultanément, tout en n’utilisant
que des primitives post-quantiques ?
2. Les utilisations que permettaient le chiffrement commutatif sont-elles toutes
perdues à cause de l’algorithme de Shor ? Il faut étudier quelles propriétés sont
transférables en utilisant des primitives post-quantiques et lesquelles ne le sont
pas, pour préserver le plus d’utilisations possibles. Les mécanismes d’inter-
ception réglementée, actuellement tous basés sur du chiffrement commutatif
peuvent-ils être post-quantiques ?
3. L’effort de standardisation du NIST s’est concentré sur des architectures
existantes. Les primitives sont donc conçues pour obtenir leurs meilleures
performances sur celles-ci. Cependant, elles risquent d’être exécutées sur de
nouvelles architectures au cours de leur durée de vie. Quelles sont les consé-
quences de ce changement sur les performances des algorithmes et la manière
de les concevoir ?
4. Les fuites d’informations par canaux auxiliaires sont de plus en plus maîtri-
sées sur les architectures classiques. Peut-on transférer ces connaissances aux
architectures de calcul en mémoire ? Quelles sont les répercussions sur les
primitives ?
Les chapitres de cette thèse répondent à ces points de notre problématique.
Chacun d’entre eux contiendra une présentation du contexte et un état de l’art qui
lui sera plus spécifique.
Chapitre 2
Sommaire
2.1 Le protocole TOR Classique . . . . . . . . . . . . . . . . . . . 30
2.2 Les faiblesses et limites de TOR . . . . . . . . . . . . . . . . 31
2.2.1 Anonymat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2 Dénis de service . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.3 Qualité de service . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.4 Évolution des utilisations . . . . . . . . . . . . . . . . . . . . 35
2.2.5 Vulnérabilité aux algorithmes quantiques . . . . . . . . . . . 36
2.3 Proposition de protocole . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 Vue d’ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.2 Protocole détaillé . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4 Discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Souvent la sécurité des personnes et leur vie privée sont présentées comme
deux objectifs inconciliables. C’est d’autant plus vrai en sécurité informatique et
en cryptographie. Dans un monde où la protection des données personnelles serait
accessible à tous, il est en effet alors possible pour des personnes mal intentionnées
de communiquer à l’abri de toute écoute. Le terrorisme, le cyber-crime, les trafics
illégaux et autres actes immoraux sont ainsi de réelles menaces, mais sont parfois
surtout utilisées de manière alarmiste, afin de faire pencher la balance du côté de
la surveillance permanente.
28 CHAPITRE 2. QASTOR - LIVESTRAMING ANONYMISÉ
Cette tendance se retrouve tout aussi bien chez nous en France, qu’au Royaume-
Uni [Tue 2022], voire plus généralement dans l’Union Européenne [Cattafesta 2021,
Fassinou 2021, Ruiz 2020]. Si le débat se retrouve régulièrement sur le devant de la
scène médiatique, c’est surtout à cause de la situation aux États-Unis [Lovejoy 2020],
où les débats ont été particulièrement houleux. Pourtant, même si tous ces pays
ont le plus souvent une forte culture du respect des droits de l’Homme et de la
défense fervente des libertés individuelles, ces derniers ne résistent pas à l’attrait de
l’argument choc : « seuls les criminels ont besoin de chiffrement ». Et il est tellement
aisé pour une personne honnête de venir confirmer « moi de toute façon je n’ai rien
à cacher », en renonçant ainsi à sa liberté de vie privée pour montrer sa bonne foi.
L’équilibre liberté/sécurité s’érode alors et glisse lentement et progressivement en
faveur de la surveillance généralisée.
Cette tendance se développe paradoxalement en symbiose avec l’accessibilité et
les performances grandissantes des services de messageries individuelles sécurisées.
Les plus connus tels que Telegram ou Signal (application portable, détenue par
un organisme non-lucratif et dont le code est open-source), connaissent un essor
certain ces dernières années [Agrawal 2021]. L’histoire racontée par la progression
en escalier de leur croissance [Gaudiaut 2021] est généralement la suivante (illustré
en figure 2.1) :
— Une grande fuite d’informations personnelles est annoncée publiquement et
prend beaucoup d’ampleur dans les médias. Les événements les plus vifs dans
les mémoires sont encore ceux liés à Facebook - nouvellement Meta - à cause
de leur impact : le scandale Cambridge Analytica [Untersinger 2018], couplé
peu après avec l’annonce de la mise à jour des conditions d’utilisation de
Whatsapp revoyant à la baisse la protection des données.
— Ces annonces ont un effet sur les utilisateurs car le nombre d’inscriptions
sur des plateformes de communication plus respectueuses de la vie privée
augmente dans les jours qui suivent.
— Le temps d’écran de ces utilisateurs ne se démultiplie pas infiniment, et les
plateformes qui travaillent à la valorisation commerciale de données privées ont
donc intérêt à limiter l’accès aux plateformes respectueuses de la vie privée.
— Cela donne alors des raisons d’invoquer l’argument du risque d’atteinte à
la sécurité nationale, et à juste titre, comme le démontre l’utilisation de
Signal dans la tentative de Coup du 6 Janvier au capitole de Washington
DC [Bump 2022]. Il peut en émerger de nouvelles propositions de lois sécurité
qui veulent limiter le chiffrement, ce qui peut être perçu en soi comme une
mise en danger de la vie privée et redémarre le cycle.
— C’est alors la différence de « confort » qui peut enrayer le cycle, les plateformes
sécurisées gardant peu leurs utilisateurs sur le long terme.
Ce qui ressort de ce fonctionnement est qu’une partie des utilisateurs ne fait pas
confiance aux organismes d’État pour la gestion du compromis vie privée/sécurité.
De toute évidence, il semble impossible de détecter les utilisateurs malveillants
sans passer par le déchiffrement des messages d’utilisateurs légitimes au cours de la
recherche. Pour cette raison, le public semble être pro-sécurité en tant que groupe,
mais en composé d’individus pro-vie privée, dans la limite d’un confort d’utilisation.
29
Utilisation
d'arguments
alarmistes
La gestion totale de la vie privée par l’État ne peut pas être envisagée, même
si on suppose l’utilisation d’algorithme « oracle » de détection des utilisateurs
malveillants qui ne se trompe jamais, et ne déchiffre aucun message d’utilisateur
légitime. Il demeure dans ces conditions des raisons de vouloir se soustraire à ce
contrôle des messages privés.
La plus importante est la possibilité d’assurer un contre-pouvoir, rôle censé
être assumé par les médias, aussi appelés « quatrième pouvoir ». Cette nécessité
est causée par le delta qui peut exister entre ce qui constitue l’action légale et
l’action morale (problème très connu des bacheliers 2022 qui ont eu à disserter sur la
question « Revient-il à l’État de décider de ce qui est juste ? »). Les dérives possibles
de l’absence de ce contre-pouvoir se sont illustrées plusieurs fois dans l’Histoire et
dans la fiction comme c’est le cas dans le roman de Georges Orwell « 1984 », ou
l’État possède à la fois un ministère de la vérité décidant des limites de la pensée
autorisée, et un outil de surveillance pour appliquer ces limites : Big Brother. Ce
n’est qu’un exemple des divers questionnements éthiques sur la surveillance et ses
contre-mesures [Macnish 2023]. Les outils de surveillance et de protection semblent
pouvoir être vus comme des éléments éthiquement neutres, et c’est leur utilisation
qui leur confère un caractère éthique ou non.
Afin de protéger les utilisateurs de cas de surveillance non éthiques, comme
justement le travail journalistique du contrôle de l’État par ses constituants, ou la
transmission de secrets commerciaux ou personnels, il convient d’avoir à disposition
des utilisateurs des outils de discussion privée et sécurisée adaptés aux moyens de
surveillance.
Cette capacité à transmettre des messages dont la lecture est protégée, bien que
nécessaire, n’est pas le seul prérequis pour assurer le travail de ce contre-pouvoir.
30 CHAPITRE 2. QASTOR - LIVESTRAMING ANONYMISÉ
Les métadonnées d’une communication peuvent souvent être tout autant signifiantes
que leur contenu. La date, l’heure, la quantité de messages transmis, leur volume,
souvent révélateurs du format des données, sont des éléments cruciaux qui sont
à protéger, mais plus que tout, il faut protéger les identités des participants à la
conversation. Cela est délicat à réaliser car les adresses IP de ceux-ci peuvent si on
ne prend pas de précautions être reliées par déduction aux utilisateurs eux-même.
C’est dans cet objectif de protéger l’identité de leurs utilisateurs que des services
d’anonymisation tels que des VPN ou TOR se mettent en place. Les VPN permettent
de créer un « tunnel » vers un tiers de confiance qui se chargera de transmettre des
informations potentiellement sensibles. Alors que l’identité de ce tiers de confiance
est exposée, celle du client ne l’est pas. Le problème majeur de ce fonctionnement
est qu’un noeud intermédiaire (le tiers de confiance) connaît à la fois l’identité de
l’émetteur et celle du destinataire. Pour palier à ce problème, TOR propose un
fonctionnement avec plusieurs noeuds intermédiaires.
Cependant, TOR est basé sur le cryptosystème RSA. Or, celui-ci est vulnérable
face à un ordinateur quantique. De plus, il est probable que les premiers ordinateurs
quantiques soient accessibles uniquement aux institutions avec le plus de moyens,
à savoir les États (armées) et éventuellement des entreprises (banques ou hautes
technologies). Face à un système de surveillance quantique, il est nécessaire d’adapter
le protocole TOR. Une telle adaptation ne sera néanmoins pas facilement adoptée
par les utilisateurs si celle-ci n’est pas adaptée aux utilisations qu’ils désirent.
Dans ce chapitre, nous présenterons le fonctionnement de TOR, rappellerons
ses limites les plus connues et proposerons un nouveau protocole plus adapté aux
nouveaux modes de communication.
1
3 2 4
src 7 6 8 5 9 dst
12 11 10
mécanisme [Dingledine 2004], nous rappelons ici les points principaux nécessaires
pour la discussion.
— Un client src veut établir une communication avec un serveur dst, qui peut
être hors du réseau TOR.
— Le client obtient un annuaire des relais du réseau auprès d’un des noeuds
stables chargés de la diffusion de l’annuaire. Celui-ci contient les adresses des
relais et leur classification.
— Dans cet annuaire, il choisit une liste de relais de taille n (souvent n = 3) dont
le relai d’entrée R1 est classifié « Guard » et le relai de sortie R3 est classifié
« Exit ».
— Il crée une connexion avec R1 et grâce à un mécanisme d’échange de clés (KEM)
basé sur le logarithme discret, il crée en un seul aller-retour de données une
clé partagée notée K 1 . Désormais, R1 déchiffrera tous les messages provenant
de src avec cette clé.
— Une fois des clés partagées entre src les i premiers relais, src envoie au relai
Ri via tous les relais R1 , . . ., Ri−1 les instructions pour transmettre les infor-
mations nécessaires à un échange de clés avec Ri+1 , chiffrées successivement
avec toutes les clés K i à K 1 . On crée ainsi en un seul aller-retour de données
une clé partagée notée K i+1 . Désormais, Ri+1 déchiffrera tous les messages
provenant de Ri avec cette clé, et Ri chiffrera tous les messages provenant de
Ri+1 avec sa clé K i .
— Une fois des clés partagées entre src et tous les relais choisis, src va indiquer
à Rn à quel serveur dst il souhaite se connecter en chiffrant des instructions
de connexion chiffrées successivement avec toutes les clés de K n à K 1 .
Ce processus est représenté par le schéma 2.2.
2.2.1 Anonymat
Il existe un grand nombre de métriques d’anonymat envisageables et autant
d’attaques visant à les diminuer. Celles-ci sont généralement probabilistes, comme
par exemple les très intuitives métriques de linkability : dans un réseau de n + 2
relais dont un src et un dst qui sont en communication, quelle est la probabilité
moyenne/maximale que les n autres relais ont de deviner la paire (src, dst) parmi
toutes les autres possibles ? Pour un bon anonymat, il faut que ces valeurs soient les
plus basses possibles. On étend aussi généralement cette métrique à une collusion
de k parmi n relais.
Pour illustrer, dans une communication protégée par un VPN, sans collusion,
1
tous les noeuds sauf le relai ont une probabilité de n(n+1) de trouver la bonne paire
parmi les noeuds restants. En effet, il y a n + 2 noeuds au total avec src et dst, et,
hormis le noeud relai, les autres noeuds savent qu’ils ne sont ni src ni dst et que src
et dst sont distincts. En revanche, le noeud relai à une probabilité de 1 de trouver
n−1
correctement. Ainsi, la métrique « moyenne » peut être bonne ( ici, n(n+1) + n1 ),
mais on désire que la métrique « max » le soit aussi.
Dans TOR avec trois relais, sans collusion, tous les noeuds sauf les relais ont
1
une probabilité de n(n+1) comme avant. Le R3 connaît dst, il a donc une probabilité
1
de n , tout comme le relai R1 qui peut reconnaître src comme n’étant pas un relai
connu 1 . En revanche, R1 ne connaît pas dst, R3 ne connaît pas src et R2 n’a pas
d’information. On a donc un compromis
qui a fait légèrement augmenter la métrique
n−2 2
« moyenne » ici, n(n+1) + n mais qui a réduit la métrique « maximum ».
Aussi utile que cette métrique soit en tant que condition nécessaire à un bon
réseau d’anonymisation, elle est loin d’être suffisante. C’est ce qui a été démontré
depuis des années en Chine [Winter 2012], où c’est le simple fait d’être repéré par
son fournisseur d’accès comme voulant se connecter à un réseau anonymisant qui
permet de bloquer cet accès. En effet, « pas d’accès à un réseau anonymisant =
pas d’anonymat ». Il a donc fallu inclure une métrique de la détectabilité d’une
connexion à un sous-réseau anonymisant.
Cette précédente métrique a pour condition une autre, encore plus élémentaire :
celle de la détectabilité du sous-réseau anonymisant lui-même. Si on ne distingue
1. Idéalement le protocole TOR fait en sorte que ce ne soit pas le cas, mais en pratique c’est
souvent faisable. On prend donc l’hypothèse que le noeud d’entrée connaît src.
2.2. LES FAIBLESSES ET LIMITES DE TOR 33
Et si toutes ces personnes avaient voulu passer par TOR ? Ce n’est pas un
exemple très réaliste, mais on peut en imaginer un plus plausible, en se concen-
trant sur une communauté plus proche du milieu informatique, et souvent plus
sensible aux problématiques de vie privée. Je pense particulièrement au public
de Twitch. Il s’agit de la première plateforme mondiale de live-streaming, le
plus souvent connue pour les jeux vidéos. Le flux présenté en première page
de Twitch atteint presque en permanence 10 000 visionnages simultanés et les
tournois des jeux vidéos les plus connus rassemblent souvent plus de 100 000
voire un million de personnes.
Si autant d’utilisateurs étaient passés par TOR, le réseau aurait été encore
plus encombré que par les attaques de déni de service présentées plus tôt tant le
volume demandé est grand. La raison est simple, pour chaque communication, les
ressources utilisées sont augmentées d’un facteur multiplicatif n. Le réseau TOR
gère les diffusions « one-to-many » comme il gérerait autant de communications
« one-to-one ».
Pour récapituler, si on souhaite améliorer TOR, il lui faut plus d’utilisateurs.
Pour en avoir plus, il faut arrêter la fuite des utilisateurs « passifs ». Pour cela, il faut
que la navigation anonyme soit aussi pratique que leur navigation habituelle. Il faut
donc d’un côté améliorer les métriques de qualité de service, et de l’autre adapter
le réseau aux nouvelles utilisations, notamment celle du live-streaming massif. Pour
tout cela, on peut
— diminuer le temps d’établissement de la communication en réduisant le nombre
d’allers-retours nécessaires,
36 CHAPITRE 2. QASTOR - LIVESTRAMING ANONYMISÉ
aussi de son côté de l’intégrité des relais en leur donnant eux aussi des défis.
Lorsque les défis sont validés, les clés redescendent vers src qui est donc ainsi
connecté à un flux déjà existant. La figure 2.3 représente tous les paquets
échangés pour ces deux premières spécifications selon leur type. Le détail du
contenu des paquets est présenté dans la prochaine section.
3. Rétablissement de communication. Le protocole permet aux noeuds d’un
groupe de prendre en charge les communications qui devaient être gérées
par un autre membre du groupe qui va se déconnecter, ou qui vient de se dé-
connecter. Pour cela, une déconnexion est détectée par un relai en aval, celui-ci
envoie une demande de reconstruction de la communication au load balancer
du groupe du relai déconnecté, qui choisira un nouveau relai responsable
et celui-ci devra s’identifier auprès des relais en amont et en aval dans la
communication. Ce mécanisme est présenté par la figure 2.4 un peu plus loin.
16
23 25
src2 24
29
15
14 22
39
possède un secret en commun avec le load balancer, noté rti et devra plus tard
confirmer la prise en charge de la connexion. Afin d’éviter la confusion en cas de
plusieurs créations de communications simultanées, une connexion vers ce relai Clbi
identifie uniquement cette tentative de création de communication.
′
Le bloc Bn+1 est construit de la manière suivante : [Ri−1 , Si−1 , Dlist , P Klist ]rti
Un nouveau paquet QAS1 est constitué et envoyé à Ri via Clbi . Il est composé de
[B1 , · · · Bn+1 ]rti .
Cet algorithme, appelé Qas1r, est exécuté lorsqu’un relai Ri reçoit un paquet
QAS1 du load balancer LBi via une connexion Clbi (p. 12).
Possédant une clé secrète rti , Ri peut alors déchiffrer le paquet. Le premier bloc
Bi est désormais en clair, ce qui permet de retrouver (cmd, h(dst, n − i), LBi+1 ,
rli , rli+1 ). Il peut accéder aussi au bloc Bn+1 et retrouver ainsi (Ri−1 , Si−1 , Dlist ,
P Klist ), et notamment P Ki , le premier élément de P Klist . Il n’est pas grave que les
autres clés publiques lui soient accessibles grâce à la sécurité du schéma asymétrique
choisi.
Il désigne une valeur Ii ∈ U et définit K Ri−1 ,h(dst,n − i) = h(Ii ,Di ). Ce sera la clé
du routage par oignon pour les communications entre Ri et les clients vers dst à
distance n − i qui transitent par Ri−1 . Afin d’éviter la confusion en cas de plusieurs
créations de communication simultanées, un token temporaire Si ∈ U est associé à
celle-ci.
Si cmd est step :
Si, de plus, l’empreinte est connue :
Si, de plus, l’empreinte identifie une communication non établie :
Il existe alors déjà une communication en cours d’établissement. La nou-
velle demande qui vient d’arriver est alors mise en attente jusqu’à ce que
la communication soit établie ou échoue à se créer. Si elle est établie, la
prochaine section est exécutée, sinon, elle a échoué à s’établir et il faudra
considérer l’empreinte comme nouvelle.
Sinon, l’empreinte identifie une communication déjà établie :
Cette communication passe par le relai Ri+1 d’un autre groupe G b i+1 via
une connexion Ci+1 , qui utilise une clé locale rli+1 . Le relai construit alors
b
un paquet QAS2 pour l’envoyer via la connexion Ci+1 . Il est construit de
la façon suivante :
[Si , Lshif tP ad(Dlist ), Lshif tP ad(P Klist )]rbl
i+1
Si au contraire, c’est une nouvelle empreinte :
On considère donc désormais cette empreinte connue. Le relai crée un paquet
QAS1 pour l’envoyer à LBi+1 . Il est construit avec :
Bi≤n = Lshif tP ad(Bi≤n )
Bn+1 = [Ri , Si , Lshif tP ad(Dlist ), Lshif tP ad(P Klist )]rli+1
2.3. PROPOSITION DE PROTOCOLE 43
Cet algorithme, appelé Saq1lb, est exécuté lorsqu’un load balancer LBi reçoit
un paquet SAQ1 d’un relai Ri de son groupe via une connexion Clbi (p. 30). Cela
lui permet de retrouver la clé rti et déchiffrer les informations correspondantes.
Le paquet est composé ainsi : [balise, Si−1 , Ti−1 , Ti , Ri , K Ri−1 ,h(dst,n − i) ]rti . Si
la balise est bien confirm, il enregistre ces nouvelles valeurs (qui permettront de
rétablir la communication si le relai est déconnecté). Si en revanche elle ne parvient
pas ou est fail, il peut tenter de relancer la phase montante (Qas1lb) ou la re-
connexion (RepairLb) en choisissant un nouveau relai du groupe, ou d’abandonner
cette communication. Suite à une reconnexion réussie, la balise update signalera de
mettre à jour des informations déjà existantes.
Cet algorithme, appelé Saq2r, est exécuté lorsqu’un relai Ri reçoit un paquet
SAQ2 d’un relai Ri+1 (qui peut être jusque là inconnu) via une connexion Ci+1 (p.
32). Le paquet est composé de la façon suivante : (Si , [Ti , Blist ]rli+1 ). Grâce à Si , le
relai retrouve la clé rli+1 dont il se sert pour retrouver Ti et Blist . Il génère un token
Ti−1 qui permettra d’identifier le remplaçant de Rn−1 si celui-ci se déconnecte.
44 CHAPITRE 2. QASTOR - LIVESTRAMING ANONYMISÉ
Cet algorithme, appelé Saq3c, est exécuté lorsqu’un client src reçoit un paquet
SAQ3 d’un relai R1 via une connexion C1 (p. 110). Le paquet déchiffré avec rl1
contient Blist . Le client inverse la liste et déchiffre grâce aux SKi correspondantes.
Il trouve toutes les clés nécessaires K 1 , . . ., K n pour exécuter l’algorithme DATAc.
Cet algorithme nommé Deco est exécuté par un client ou un relai lorsque le
relai en amont d’une communication déjà établie Ri+1 est déconnecté (p. 115). La
déconnexion des relais en aval est normale : elle a lieu soit quand le client src ne
veut plus communiquer avec dst, soit quand un relai a vu tous les relais en aval se
déconnecter. Seule la déconnexion des relais en amont est anormale.
Le relai (ou client) choisit deux tokens temporaires pour cette reconnexion Ti′ et Ti′′ .
Le premier servira à identifier le retour, le second permettra de remplacer Ti qui
va être envoyé en clair. Il envoie à LBi+1 un paquet DECO construit de la manière
suivante :
(Ti JTi′ , Ti′′ Krli )
Cet algorithme nommé RepairLb est exécuté par un load balancer lorsqu’il
reçoit un paquet DECO (p. 117). Il retrouve l’identifiant du relai en amont. Il
retrouve la clé locale associée et récupère les nouveaux identifiants. Il vérifie que ses
connexions avec le relai précédement responsable sont bien rompues.
Il désigne un nouveau relai Ri′ responsable de la communication avec lequel il partage
un secret rt′i . Il lui envoie via une connexion Clbi un paquet REP avec toutes les
informations qui étaient liées à Ti , et un nouvel identifiant Ti′ .
′ , T ′′ , R
[Ri−1 , h(dst,n − i), LBi+1 , rli−1 , rli , Ti−1 ′
i−1 i+1 , K Ri−1 ,h(dst,n − i) , Ti , Ti ]rti′
2.4 Discussions
Dans cette section, nous allons prendre petit à petit du recul et étudier le
protocole dans ses aspects plus techniques et chiffrés, puis sur ses aspects plus
généraux.
Delay. Le plus simple pour commencer est de commenter le temps d’établis-
sement de la communication. Celui-ci peut se décomposer en temps de transmis-
sion et temps de calcul. Du côté du nombre de transmissions, TOR se servait de
2 + 4 + · · · + 2n transmissions. Pour QasTor, si on considère les transmissions du
chemin critique (c’est-à-dire sans SAQ1), on ne se sert que de 3n pour une première
communication et entre 4n + 1 et 5n − 1 pour une communication partagée. Pour
n = 3, on a un gain (9 au lieu de 12) pour les premières communications et une
légère perte (entre 13 et 14 au lieu de 12) pour celles existantes. Augmenter n va
en faveur de notre protocole.
Ce compromis va dans le bon sens : des nouvelles communications sont normales
lors de navigations qui ne sont pas en direct et donc il peut y avoir une fréquence
d’établissement de communication plus élevée. Au contraire, la durée de visionnage
moyenne d’un direct étant de 28 minutes, il y a moins besoin d’échanges de clés. De
manière générale, ce profil correspond mieux aux utilisations modernes.
Par ailleurs, ce temps prend en compte qu’il n’y a pas de relations géographiques
entre les noeuds d’un groupe. Si les groupes venaient à être construits de façon à
imposer une borne supérieure au ping entre les membres (ce qui semble naturel
pour optimiser les algorithmes distribués dans le groupe), alors l’établissement des
nouvelles communications serait d’autant plus rapide.
Du côté du temps de calcul, on a un clair surcoût dû à l’utilisation de multiples
ABE et chiffrements asymétriques. Ce surcoût peut être grandement diminué par du
précalcul. Par exemple, toutes les paires de clés P Ki /SKi peuvent être préparées
avant l’instruction de l’utilisateur d’établir une nouvelle communication, car elles ne
dépendent pas de l’instruction. Cela peut aussi être fait pour les clés P K ′ /SK ′ des
relais. Pour gagner du temps sur ABE, on peut souvent selon les primitives étudiées,
précalculer une partie des variables permettant le déchiffrement. Pour les primitives
ABE basées sur les couplages de courbes elliptiques, [Costello 2010, Scott 2011]
proposent des méthodes de réduction des temps de déchiffrement.
1
2
src dst
3 4
déjà l’empreinte du flux. Bien entendu, chaque client devant se connecter à au moins
un relai, le facteur ne passera jamais sous 1, mais il tendra vers 1 à partir du moment
où tous les groupes « Guard » connaîtront l’empreinte du flux et le nombre de clients
augmente. On peut appeler ce moment la « saturation » du réseau vers ce flux.
En simulant les connexions connues entre les groupes relais, on peut évaluer le
nombre de connexions établies entre des relais avant la saturation vers un flux. Nous
avons choisi de prendre en compte plusieurs ratios de groupes « Guard ». On se rend
compte que pour n fixé, le nombre de connexions avant saturation est proportionnel
au nombre total de groupes (et donc de groupes « Guard »). En outre, plus le ratio
de groupes « Guard » est faible, moins il y a de connexions avant saturation. En
effet, le nombre de connexions avant saturation est instinctivement limité à n fois
le nombre de groupes « Guard ».
Il semble alors avantageux d’avoir un faible nombre de groupes « Guard » pour
permettre une forte économie de bande passante. Cependant, selon le mode de
fonctionnement du groupe, cela peut être aussi un inconvénient. Un des modes de
fonctionnement possible d’un groupe est un partage intégral des données (fonctionne-
ment comme un ordinateur centralisé redondé). Dans ce mode, tous les membres du
groupe peuvent faire des liens entre tous les clients dont la communication partage
la même empreinte. Il faudrait alors un mode de confiance minimum où les données
ne sont partagées qu’au nombre minimum de relais permettant la récupération des
communications, à l’aide par exemple de techniques bien connues de partages de
secret [Shamir 1979, Liu 2010]. Étant donné ce mode de fonctionnement, il est alors
avantageux pour un même nombre de relais « Guard » de regrouper ceux-ci dans
un faible nombre de groupes ayant plus de membres.
Cependant, avoir trop peu de noeuds « Guard » peut diminuer le nombre de
connexions jusqu’à un point où les relais non-« Guard » sont trop peu exploités.
La répartition dans les groupes doit donc se peaufiner expérimentalement selon des
vraies données d’utilisation afin de trouver le point de fonctionnement optimal en
équilibrant le nombre de groupes et leur balisage « Guard », le nombre de membres
des groupes et le coût de fonctionnement d’un load balancing avec partage minimal
des données.
Le coût pour dst est lui-aussi réduit. Le nombre de connexions sera désormais
majoré en fonction du nombre de groupes « Guard » et non par le nombre de clients.
Cette nouvelle configuration est donc adaptée à une forte montée en charge, en
correspondance avec nos attentes.
Memory. Contrairement à TOR, il y a un certain nombre de variables qui
doivent être stockées durant une communication pour pouvoir la rétablir. Nous
avons volontairement ignoré la gestion de la mémoire dans le protocole pour en
faciliter la lecture, mais on peut ajouter à tout algorithme attendant une réponse
(les algorithmes QAS) que si celle-ci n’arrive pas dans un certain délai, la création
de communication est considérée comme ayant échoué et est abandonnée et toutes
les variables concernées libérées.
Trust. Contrairement au protocole TOR classique, des comportements mal-
veillants peuvent être plus facilement punis. Des scores de confiance peuvent être
attribués aux noeuds et évoluer avec le temps. Ces scores peuvent être gérés de
52 CHAPITRE 2. QASTOR - LIVESTRAMING ANONYMISÉ
manière interne aux groupes, mais les relais en amont et en aval peuvent signaler
des anomalies au load balancer du groupe d’un relai suspicieux, pour pouvoir di-
minuer sa confiance si les comportements suspicieux continuent. En faisant un tel
signalement, le relai met en jeu une partie de sa propre confiance, qu’il perdrait en
signalant à tort un relai honnête. Tous ses mécanismes ont déjà eu beaucoup de
mises en pratique et s’inscrivent dans une longue lignée de réflexions inspirées du
problème des généraux byzantins.
Stability. De manière identique à la gestion de confiance, une évaluation de la
stabilité des relais peut être mise en place, pour servir d’aide au choix d’un relai
responsable d’une communication. De cette manière, on peut déjà faire diminuer la
fréquence des ruptures de communication. De plus, l’impact des déconnexions est
énormément amoindrie, car il n’y a plus besoin que de quatre échanges avant un
rétablissement de communication (au lieu de 2 + 4 + · · · + 2n pour TOR). La perte
peut être encore plus amoindrie grâce à l’utilisation de buffers. La mise en place de
ceux-ci bien qu’intéressante est à réfléchir car elle implique un coût supplémentaire
en mémoire, même si le mécanisme de timeout limite les risques.
En outre, bien que le protocole, tel que présenté, ne couvre que les déconnexions
non planifiées, on peut ajouter facilement une méthode de transfert de charge
permettant à un relai de demander le transfert de ses communications avant de se
déconnecter. Le mécanisme est similaire, en remplaçant l’algorithme DECOc du
relai en amont par un algorithme DECOr où le relai envoie lui-même un paquet
DECO à LBi . Le reste du transfert de connexion s’effectue normalement, mais cette
fois les données peuvent continuer à transiter via le relai, et donc sans perte de
données (éventuellement, on aura la création d’un léger lag si le nouveau relai a un
ping un peu plus élevé avec les relais en amont et en aval).
Directory. La gestion de l’annuaire étant répartie, elle est grandement simplifiée.
L’annuaire « global » ne concerne que les groupes, pas leurs membres. Les annuaires
internes peuvent être gérés en interne au groupe pour le bon fonctionnement du
load balancing. Les clés de chiffrement ABE peuvent être très réduites pour peu que
les attributs soient calculables plutôt que stockés. La quantité de données que doit
télécharger un noeud avant de pouvoir commencer à établir une communication est
donc désormais constante.
Une possibilité supplémentaire qui s’offre à ce système est de créer des intersec-
tions entre les groupes, ceux-ci ayant alors des noeuds en commun. Ce choix est à
double tranchant : si par hasard un noeud est aussi dans le groupe qui devrait être
son successeur, il peut simplifier le chemin d’un saut. En revanche cela crée une
perte d’anonymat en augmentant l’effet de collusions.
Cryptography. Ce protocole est basé sur des primitives cryptographiques gé-
nériques, dont le fonctionnement est similaire, que celles-ci soient classiques ou
post-quantiques. Un démonstrateur peut donc être construit avec SHA256, AES256,
RSA2048 et l’ABE d’OpenABE [Zeutro 2018] et fonctionner en attendant l’arrivée
d’ordinateurs quantiques plus menaçants. Il pourra ensuite laisser place par exemple
à SHA512, Chacha20, Crystals-KYBER et un PQ-ABE comme [Liu 2022] pour y
résister.
Bien que dans cette version du protocole, ABE soit utilisé en tant que chiffrement
2.4. DISCUSSIONS 53
des extrémités. La métrique « maximum » aussi baisse car les noeuds d’un groupe
savent que les autres membres de leur groupe, et ceux du groupe précédent (ou
suivant) ne sont pas l’origine (ou la destination) de la communication.
Notre protocole ne change malheureusement aucunement la métrique de détec-
tabilité, les attaques et les contre-mesures connues restent applicables et limitantes.
Les attaques actives sur ces métriques sont en revanche désormais limitées par le
déploiement d’une gestion de confiance.
En revanche, les conditions minimales permettant d’éviter le suivi des paquets
correspondant à un même établissement de communication sont bien respectées.
Premièrement, le format des paquets et leur longueur ne donne aucune information
sur src, dst, ou le reste du chemin. Les champs chiffrés des paquets QAS1 sont tous
déchiffrés et donc non reliables à cause de la propriété IND-CCA2. Tous les tokens
apparaissant en clair (paquets SAQ2,QAS3, et RECO), sont ensuite jetés. On peut
vérifier que pour toute information entrante d’un relai, soit un champ de la partie
chiffrée a changé, soit la clé, soit un chiffrement a été ajouté ou supprimé. On ne
peut donc pas associer des paquets par leur contenu. En revanche, comme pour
TOR classique, le timing des réceptions et des émissions de paquets permettent de
relier ceux-ci lorsqu’il y a peu de trafic et les contre-mesures impliquent souvent des
baisses de performance.
Dénis de Service. Les possibilités sont partiellement mitigées pour les raisons
déjà évoquées. De plus, la sélection du relai étant faite par le load balancer parmi
les membres du groupe et non plus par le client implique qu’il n’est plus possible de
cibler un relai spécifique, seulement un groupe, dont la résistance au DoS est donc
naturellement plus élevée.
Conclusion. Étant un protocole conçu pour les communications en direct One-
to-Many de masse, QasTor se rapproche d’une utilisation habituelle des utilisateurs
qui gagne en popularité. Les améliorations en termes de qualité de service devrait
permettre de maintenir les pics de nombre d’utilisateurs plus longtemps dans la
durée, ce qui améliorera la protection de la vie privée proposée et la capacité du
réseau. Nous espérons que ce nouveau protocole permettra à TOR de retrouver un
nouvel effet boule-de-neige pour protéger la vie privée du plus grand nombre.
Cependant, les protocoles complexes et multipartites comme QasTor sont in-
quiétés par la menace de l’arrivée d’ordinateurs quantiques. Ceux-ci vont impacter
directement la sécurité de certaines primitives. Nous allons donc dans le prochain
chapitre consacrer du temps à étudier quel est l’impact de ces changements sur
l’ensemble des protocoles pouvant être mis en place de manière sécurisée.
Chapitre 3
Ce chapitre cherche à définir quels protocoles basés sur la commutativité des chif-
frements peuvent être préservés lors du passage au post-quantique afin de garantir
des utilisations telles que l’interception réglementée.
Sommaire
3.1 Contexte et Définitions . . . . . . . . . . . . . . . . . . . . . 60
3.1.1 Chiffrement Commutatif . . . . . . . . . . . . . . . . . . . . . 60
3.1.2 Définitions génériques des systèmes à chiffrement commutatif 63
3.1.3 Familles de chiffrement les plus connues . . . . . . . . . . . . 63
3.1.4 Le chiffrement commutatif contre l’ordinateur quantique . . . 66
3.2 Étude générique du chiffrement commutatif . . . . . . . . . 68
3.2.1 Propriétés de sécurité des schémas commutatifs et de sur-
chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.2 Propriétés d’ordonnancement d’un schéma commutatif ou de
sur-chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.3 Écriture factorisée des Valid Sets. . . . . . . . . . . . . . . . . 79
3.2.4 Avantages du chiffrement commutatif sur le sur-chiffrement . 80
3.3 LIQUoRICE - Lawful Interception with post-QUantum Re-
sIstant Commutative Encryption . . . . . . . . . . . . . . . 84
3.3.1 Schémas d’encapsulations commutatives . . . . . . . . . . . . 84
56 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
Depuis le début du XXIeeme siècle, les systèmes connectés améliorent notre qua-
lité de vie en prenant une part toujours plus grande de notre vie quotidienne. Presque
tous les éléments de nos vies peuvent être accompagnés par des objets connectés.
Parmi ceux-ci, on retrouve des objets mobiles (montres connectées, smartphones...),
ou bien fixes (domotique, climatisations connectées...) et de tailles variées, allant de
la discrète caméra de sécurité connectée, aux aspirateurs connectés, aux frigos, et
aux voitures connectées. Ces objets ont pu changer la façon de percevoir à la fois
l’espace domestique, l’espace professionnel et l’espace public.
L’espace urbain, avec l’arrivée de voitures connectées et de plus en plus auto-
nomes, voit de fortes perspectives d’évolution. On peut même être rêveur sur la
façon dont ceux-ci vont changer la ville : des voitures pouvant aller se garer seules
permettraient de séparer les espaces résidentiels de ceux dédiés au stationnement.
L’auto-partage permettrait de rentabiliser les voitures qui sont garées en moyenne
23 heures sur 24. La communication entre véhicules permettrait de synchroniser les
freinages et accélérations afin de réduire les embouteillages. La centralisation du
calcul d’itinéraire pourrait éviter l’encombrement de voies à la circulation réduite
et donc amener à repenser les rues en laissant plus de places aux mobilités dites
« douces ».
L’amélioration de la conduite et la diminution du coût du transport et des
conséquences écologiques associées ne sont même pas les seuls gains promis par
la voiture connectée. La présence de multiples capteurs permet de centraliser des
informations (l’état de la route pour des réparation plus rapides, la disponibilité de
places de parking), voire de reporter les données des accidents et participer à leur
analyse.
Ces aspects peuvent sembler aujourd’hui encore hors d’atteinte, mais il y a fort
à parier que le renouvellement progressif du parc automobile pour des voitures de
plus en plus « intelligentes » accélérera ces améliorations. Ce qui est certain, c’est
que ces évolutions passent par la multiplication progressive des capteurs à bord
des voitures. Notamment des capteurs qui décrivent l’état mécanique de la voiture
(pression des pneus, état des freins...), des capteurs de navigation (radar, GPS...)
mais aussi des capteurs internes (« infotainment », présence sur les sièges, caméras
anti-sommeil...). Ces derniers sont par conception amenés à émettre des données qui
concernent directement les passagers, mais certains (dashcams, radars...) peuvent
aussi en émettre qui concernent les personnes dans l’environnement de la voiture.
Il faut alors pouvoir maîtriser qui accède à ces données. Les données internes
seraient intéressantes pour un constructeur automobile ou un garagiste, les données
urbaines pour une mairie, les enregistrements d’accidents pour la police ou la justice,
les données de navigation pour le conducteur... Le traitement de ces données est
déjà très complexe à cause entre autres de leur variété et de la diversité de leurs
destinataires, mais la gestion de celles-ci est rendue encore plus délicate avec les
contraintes matérielles.
En effet, les voitures ne sont pas que des ordinateurs à roues. Leur tâche princi-
pale est de garantir la sécurité des passagers et de leur environnement. Les calculs
tenant à la sécurité (« safety ») sont alors prioritaires et le traitement des données
à valeur ajoutée est facultatif. De plus, un véhicule en déplacement peut avoir plus
de mal à trouver un destinataire pour ses données. Les connexions ne sont pas
toujours stables et des protocoles peuvent prévoir des transmissions d’un véhicule à
un autre véhicule, ou bien à une infrastructure de bord de route (bornes VANET).
Il s’agit donc de choisir pour les données des méthodes de protection qui intègrent
ces contraintes.
Pour venir couronner le tout, le traitement des données automobiles, tout comme
celui de toutes les données personnelles, est sujet à des régulations elles-même
sujettes à des évolutions dans le temps. On peut penser à l’exemple le plus marquant
en France, celui de la RGPD (« Règlement Général sur la Protection des Données »),
qui donne des consignes de gestion des données, mais qui nécessite une collaboration
étroite entre des experts juristes et des experts en sécurité pour une application
efficace. Ces régulations comportent des notions de consentement au partage des
données personnelles. Pour les personnes à l’intérieur du véhicule, cela peut être
déjà délicat à gérer, mais cela semble presque impossible à faire pour les personnes
à l’extérieur, d’autant plus si on prend en compte les possibilités d’inférence en
recoupant des données.
Ce sujet est au coeur du travail de R.Adelin [Adelin 2022], avec qui j’ai eu le
plaisir de collaborer et dont la thèse démontre la difficulté de ces traitements.
Il propose des méthodes de traduction des contraintes légales en méthodes de
chiffrement et de gestion des données et dont il prouve la sécurité.
58 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
n’est pas important, il est totalement naturel d’utiliser des chiffrements commu-
tatifs (Commutative Encryption ou CE en anglais). Ces chiffrements ont une très
forte adaptabilité et peuvent être utilisés pour concevoir des systèmes dans lesquels
une entité ne peut pas par elle-même appliquer toutes les restrictions d’accès. Ils
ont comme avantage de pouvoir subir de multiples chiffrements et déchiffrements
successifs dans plusieurs ordres différents et sont donc parfaits dans notre contexte
fortement évolutif où les politiques de contrôle d’accès doivent se conformer à de
multiples obligations, nationales, commerciales, contractuelles...
Cependant, les chiffrements commutatifs actuels sont fragiles face à l’arrivée
prochaine d’ordinateurs quantiques. Avec les algorithmes quantiques tels que celui
de Shor, les problèmes du logarithme discret ou Diffie Hellman Bilinéaire deviennent
polynomiaux (faciles à résoudre). Les protocoles de chiffrements commutatifs basés
sur ElGamal et Diffie Hellman, dont la sécurité était garantie par la complexité de ces
problèmes sont alors exposés à la cryptanalyse quantique. Même les schémas les plus
modernes d’interception réglementée avec dépôt de clé [Nuñez 2019, Arfaoui 2021,
Bultel 2022] voient leur sécurité menacée.
Or, on ne trouve à l’heure actuelle aucune étude générique permettant d’adapter
des schémas de chiffrement commutatifs pour les rendre résistants à l’ordinateur
quantique. De plus, il n’y a aucun mécanisme d’interception réglementée résistant
à l’ordinateur quantique que nous ayons pu trouver dans la littérature.
Notre objectif est donc de fournir une adaptation du mécanisme d’interception
réglementée avec dépôt de clés qui soit post-quantique. Comme la littérature sur
les chiffrements commutatifs est principalement composée de schémas conçus pour
une situation très précise, nous choisissons de prendre l’approche opposée et de
proposer une étude générique, qui permet de définir les propriétés fondamentales
des schémas de chiffrement commutatif, comme leurs propriétés de sécurité. Grâce
à cela nous chercherons à proposer une méthode pour adapter des systèmes de haut
niveau comme ceux de l’interception réglementée à dépôt de clés pour qu’ils soient
post-quantiques.
Ce chapitre s’articulera donc de la manière suivante :
— Tout d’abord, nous établirons les définitions relatives au chiffrement com-
mutatif et au sur-chiffrement, sa version simplifiée. Nous présenterons une
classification des schémas de chiffrement commutatif existants et nous préci-
serons ce que l’état de l’art dit actuellement de leur résistance à l’ordinateur
quantique.
— Ensuite, nous établirons un formalisme, des définitions et propriétés mathé-
matiques ayant tous pour objectif de décrire l’ensemble des constructions
cryptographiques à chiffrement commutatif ou à sur-chiffrement (Super En-
cryption ou SE en anglais). Nous prendrons en compte les propriétés de sécurité
attendues de l’utilisation de ces schémas dans des systèmes multi-utilisateurs
afin de délimiter mathématiquement quelles sont les constructions qui sont
possibles et sécurisées avec une méthode mais pas avec l’autre.
— Ce formalisme pourra ensuite être étendu progressivement. D’abord en inté-
grant des encapsulations pour remplacer des chiffrements. Puis en intégrant
des primitives post-quantiques parmi ces encapsulations, enfin en ajoutant un
60 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
valise dans une valise encore plus grande, et verrouiller celle-ci, alors que pour
le chiffrement commutatif, cela correspond à ajouter un verrou à une valise
déjà verrouillée.
On voit bien que pour le sur-chiffrement, seul le dernier verrou est acces-
sible, alors qu’on peut enlever les verrous dans n’importe quel ordre pour le
chiffrement commutatif. Les objets mathématiques qui représentent ces fonc-
tionnements sont respectivement une pile et un ensemble.
L’usage de chiffrement commutatif est alors adapté pour des applications mul-
tipartites, dont le nombre de chiffrements et de déchiffrements est grand, mais
dont l’ordre de ces étapes est quelconque. Deux définitions formelles du chiffrement
commutatif peuvent être trouvées dans l’état de l’art. Cependant, bien que très
similaires, elles n’ont pas du tout les mêmes conséquences.
définition la plus utilisée [Khayat 2008, Huang 2012, Liu 2018b]. Elle est notamment
étudiée dans [Shamir 1980], où elle est associée à plusieurs diagrammes commutatifs
différents. Ils sont présentés ci-dessous :
fk 1 fk1
A B A B
fk2 fk 2 fk−1 fk 2
2
fk1
C D C D
fk−1
1
La définition « restreinte » est certainement privilégiée car elle est plus simple,
mais elle exclut certaines constructions, comme les schémas cryptographiques pro-
posés dans [Moldovyan 2019, Dai 2010], qui répondent à la définition « étendue »
mais pas à la définition « restreinte ». La raison pour laquelle ces deux schémas
sont ainsi est qu’ils incorporent une part d’aléatoire au chiffrement que le déchiffre-
ment est capable d’ignorer. Ainsi, chaque chiffrement avec une probabilité écrasante
sera unique et par conséquent fk1 ◦ fk2 (m) sera en pratique toujours différent de
fk2 ◦ fk1 (m).
La différence est que la valeur de deux chiffrements consécutifs doit être égale
selon la définition « restreinte » (il y a une contrainte sur l’égalité dans D), mais
peut différer selon l’ordre des chiffrements d’après la définition « étendue ».
Dans les deux cas, après les déchiffrements et peu importe leur ordre, on
retrouve le bon clair (contrainte sur l’égalité dans A).
Les systèmes de ce genre sont principalement conçus pour permettre des calculs
sur des données chiffrées sans avoir besoin de les déchiffrer au préalable. Cela permet
par exemple à des utilisateurs de confier leurs données chiffrées à un tiers pour
du traitement algorithmique, sans craindre que leurs données personnelles soient
connues.
Les systèmes GHE ont été prouvés comme ne pouvant pas être résistants face
à un ordinateur quantique [Armknecht 2014] si le groupe des chiffrés est Abélien.
Cependant, des méthodes de chiffrement totalement homomorphe (FHE), c’est-à-
dire homomorphe pour l’addition et la multiplication, sont elles considérées comme
pouvant être post-quantiques tant qu’elles évitent les attaques connues sur les GHE.
3.1. CONTEXTE ET DÉFINITIONS 63
gk−1 −1
′ ◦ fk ′ ◦ gk1 ◦ fk2 (m) = m (3.4)
1 2
Comme il arrive, surtout pour les primitives post-quantiques, que les algorithmes
de chiffrement ou de déchiffrement ne soient pas déterministes, cette notion doit
être élargie aux schémas où cette égalité est vérifiée avec une probabilité écrasante.
Pour étudier les propriétés exclusives à ces familles, nous avons besoin d’un point
de comparaison sans commutativité, c’est-à-dire les « familles de sur-chiffrement ».
Un exemple bien connu avec lequel le lecteur est désormais bien familier est
celui de TOR, dans lequel RSA-OAEP est utilisé récursivement par plusieurs
relais (Cf. chapitre 2).
∀m, k1 , k2 , (m ⊕ k1 ) ⊕ k2 = (m ⊕ k2 ) ⊕ k1
Les cas d’utilisation de Xor CEF (hors one-time pad) sont typiquement les tech-
niques de dissimulation de données ou de watermarking (application de filigranes)
qui commutent avec le chiffrement. Cela permet par exemple de produire une vidéo,
la chiffrer, et la confier à un distributeur qui pourra ajouter un filigrane sans pour
autant pouvoir lire la vidéo [Zhang 2013, Zhang 2011, Xu 2019].
Prime modulo exponentiation CEF : Schémas de type ElGamal
Étant donné un nombre premier p :
.
Les exemples les plus célèbres dans cette famille sont le RSA et ses variantes
(PKCS, OAEP), et le protocole à trois échanges de Shamir, parfois appelé protocole
sans clé, ou « Mental Poker ». L’utilisation de RSA dans un protocole de chiffrement
commutatif n’est pas sécurisé pour plus que deux participants : pour former un CEF,
il faut que tous les schémas de la famille partagent le même n. Or, il est désormais
bien connu que d’avoir plusieurs instances de RSA qui partagent le même modulo
crée des failles de sécurité majeures [Boneh 1998, Hinek 2010, SIMMONS 1983]. De
même, tout schéma multipartite dans cette famille est compromis tant que la sécurité
est basée sur la factorisation du modulo.
Prime modulo multiplication CEF : Schémas basés sur les couplages
Étant donné p un nombre premier :
.
La plupart des schémas de chiffrement basés attributs (ABE) appartiennent à la
famille des multiplications modulo un premier. Pour illustrer, un très large éventail
de schémas ABE sont construits à partir d’une fonction bilinéaire e sur deux groupes
d’ordre p G1 et G2 qui ont pour générateurs g1 et g2 qui sont parfois publics ou
secrets, une clé maître α ∈ Zp et Ek (m) = m · e(g1 , g2 )αk , Dk (c) = c · e(g1 , g2 )−αk .
La valeur e(g1 , g2 )αk peut être retrouvée par l’information contenue dans un
schéma de partage de clé uniquement si les attributs valident les conditions de
3.1. CONTEXTE ET DÉFINITIONS 65
contrôle d’accès [J. Bethencourt 2007, Goyal 2006]. Les deux catégories principales
d’ABE (CP et KP) ont été présentées dans le Chapitre 2. Dans les schémas basés
sur les couplages, la sécurité est basée sur la difficulté du problème Diffie-Hellman
bilinéaire, c’est-à-dire que e(g1 , g2 )αk n’est pas trouvable par un attaquant.
Isogénies CEF
Les isogénies sont des objets mathématiques de haut niveau qui représentent des
transformations d’une courbe elliptique en d’autres courbes elliptiques. Cette action
de transformation est commutative, et des schémas comme [Costello 2016] étaient
supposés résistants à l’ordinateur quantique jusqu’à récemment où le candidat SIKE
basé sur SIDH à la standardisation de cryptographie post-quantique du NIST a été
découvert vulnérable à une attaque qui peut s’exécuter en une heure [Castryck 2022].
[Smith 2018] donne les connaissances mathématiques nécessaires pour comprendre
le calcul des isogénies des courbes elliptiques.
FNAA CEF : Finite Non-commutative Associative Algebras
Des formes de chiffrements commutatifs qui correspondent à la définition « éten-
due » mais pas à la définition « restreinte » émergent suite aux efforts liés à la
création d’instances dures du Hidden Discrete Logarithm Problem (qui sont ainsi
des instances non-Abéliennes du Hidden Subgroup Problem sans contraintes sur
l’ordre des déchiffrements). Par exemple, une proposition a été faite pour se servir
de l’algèbre des quaternions [Moldovyan 2010], mais ce schéma a par la suite été
réduit polynomialement au problème du logarithme discret classique [Kuzmin 2017].
Cependant, dans [Moldovyan 2019], les auteurs utilisent une algèbre finie à m
dimensions, dans laquelle l’opération de multiplication est non commutative, d’où
le nom de FNAA. Dans ce schéma, selon l’ordre des chiffrements, le chiffré ne sera
pas le même, mais le déchiffrement sera correct dans n’importe quel ordre.
66 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
F
P Q
F
P Q G
G·F
G
(a) Vectorisation F
R S
(b) Parallelisation
Par exemple, dans Xor CEF et Prime modulo multiplication CEF, le problème
de vectorisation est facile, même pour un ordinateur quantique : (F ⊕ x) ⊕ x = F et
(F · x) · x−1 = F , où x−1 est facilement trouvé grâce à l’algorithme d’Euclide étendu.
Les schémas basés sur la difficulté de la factorisation ou du problème du logarithme
discret ont leur problème de vectorisation dur pour un ordinateur classique, mais
facile pour un ordinateur quantique grâce à l’algorithme de Shor [Shor 1999]. Ainsi
tous ces PHS (qui ne sont donc pas des HHS), ne peuvent pas être utilisés dans des
schémas de chiffrement commutatif où les résultats des étapes de chiffrement ou de
déchiffrement sont rendus publics les uns après les autres.
3.1. CONTEXTE ET DÉFINITIONS 67
Par ailleurs, lorsque le problème de vectorisation n’est pas basé sur un pro-
blème facile à résoudre pour un ordinateur quantique, il peut tout de même
parfois être réduit comme une instance du Abelian Hidden Shift Problem (à
partir de F, G Tels que ∀x, F (x + s) = G(x) trouver s). Kuperberg a trouvé
une réduction supplémentaire comme une instance du Dihedral Hidden Sub-
group Problem. Donc dans ce cas, √ le problème de vectorisation hérite d’une
complexité quantique de L(1/2, 2) avec de nombreux compromis entre com-
plexité quantique, complexité classique et complexité mémoire proposées dans
[Regev 2004b, Kuperberg 2005b, Kuperberg 2011b, Childs 2014].
Cependant, le seul schéma basé sur le Abelian Hidden Shift Problem qui n’était
pas réduit à un problème sur le logarithme discret, SIKE, a été récemment victime
d’une attaque avec un ordinateur classique [Castryck 2022]. Si une adaptation per-
mettait de palier à cette vulnérabilité, ce serait le seul candidat à la standardisation
à être (potentiellement) post-quantique tout en répondant à la définition « res-
treinte ». Mais on peut maintenant supposer cette définition de la commutativité et
la sécurité post-quantique comme étant inconciliables.
Les schémas qui correspondent à la définition « étendue » mais pas à la définition
« restreinte » de la commutativité, ne sont donc pas dans le framework des PHS.
À l’heure actuelle, il n’y a pas d’attaque quantique sur ces schémas. Par exemple
le schéma [Moldovyan 2019], basé sur des FNAA, est une instance non Abélienne
du Hidden Discrete Logarithm Problem, et donc est supposé post-quantique. Ce
schéma est cependant distant mathématiquement des autres schémas du NIST, et
donc moins étudié et optimisé.
Voici une intuition qu’il serait intéressant de formaliser : même si les FNAA de
[Moldovyan 2019] ne peuvent pas être qualifiés de PHS, ils ne s’en différencient
uniquement que par la partie aléatoire du premier chiffrement, les chiffrements
suivants étant déterministes. Ils valident l’équation suivante :
Définition 3.2.1. Le schéma est dit correct si pour tout clair m, l’équa-
tion suivante est vérifiée avec une probabilité écrasante : ∀k ∈ KS , ∀k ′ ∈
ϕ(k), Dk′ (Ek (m)) = m.
comme c’est par exemple le cas pour les chiffrements IBE, FIBE, ABE, HABE et
toutes leurs autres variations.
Deuxièmement, il faut aussi que seule la possession d’une clé de déchiffrement
correspondante à la clé de chiffrement utilisée permette de retrouver le clair. La
définition standard de sécurité IND-CPA sera utilisée. On préférera utiliser dans
le reste de ce chapitre le terme de schéma individuellement sûr pour mieux la
distinguer de la sécurité de la composition de plusieurs schémas dans un chiffrement
commutatif ou un sur-chiffrement.
Dans le jeu de sécurité suivant, l’adversaire représente un attaquant essayant de
distinguer de quel message le chiffré provient. On aurait pu aller plus loin et exiger
que les chiffrés soient indistinguables d’une chaîne de bits choisis uniformément,
mais ce n’est pas nécessaire pour la suite et la plupart des schémas IND-CPA ont
déjà cette propriété.
Une des définitions classique d’un graphe est G = (V, E) ou V est l’ensemble
des noeuds (Vertices) et E l’ensemble des arêtes (Edges) reliant les noeuds. Ici,
la définition est sur-chargée pour prendre en compte un ordre entre les arcs
et un schéma qui leur est associé (on incorpore ainsi l’ordre des schémas à la
définition).
Propriété 1. L’ensemble de tous les SES est inclus dans l’ensemble de tous
les CES. Il y a une application triviale d’un SES vers CES (dont l’ordre partiel
sera aussi total). La réciproque est fausse.
Algorithm 1 Keys(v)
Encryption_keys ← ()
List_enc ← Sorted ({(w, v) ∈ E}, Oe,v )
for (w, v) ∈ List_enc do
Encryption_keys ← Append(Encryption_keys, kWV ∈ KWV )
end for
Decryption_keys ← ()
List_dec ← Sorted ({(v, w) ∈ E}, Od,v )
for (v, w) ∈ List_dec do
′
Encryption_keys ← Append(Encryption_keys, kVW ′
∈ KVW )
end for
Give Encryption_keys and Decryption_keys to v
Algorithm 2 Activate(v, M )
C ← ()
for m ∈ M do
c←m
for k ′ ∈ Decryption_keys do
ct ← Dk′ (ct)
end for
for k ∈ Encryption_keys do
c ← Ek (ct)
end for
C ← Append(C, c)
end for
Output C
Algorithm 3 Run(node_list, m)
for v ∈ E do
Keys(v)
end for
M = ()
out = ()
for v ∈ node_list do
if v ∈ S then
M ← Append(M, Activate(v, m))
else if v ∈ R then
M ← Append(M, Activate(v, M ))
else if v ∈ T then
out ← Append(out, Activate(v, M ))
end if
end for
Output out
72 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
2
r2 r3
1 1 2
2 1
r1 r4
3 2
2 1
3
4
s1 t1
1
sécurité du clair. La seconde est la capacité à limiter les listes de noeuds permettant
aux noeuds cibles d’accéder au clair. L’ensemble de ces listes sera ainsi appelé Valid
Set. Les CES/SES limitant l’accès à m à ces listes seront dits respectant le Valid
Set.
On peut supposer qu’un utilisateur n’est pas à la fois source et cible, car il
pourrait s’envoyer le message à lui-même sans contrôle d’accès.
différents.
On peut aussi étendre la notion d’activation d’un noeud à celle d’activation d’un
utilisateur en donnant user_list en paramètre à Run à la place de node_list et en
ajoutant ces lignes au début de l’algorithme :
node_list = ()
for U ∈ user_list do
s_list ← (v ∈ S|ρ(v) = U )
r_list ← (v ∈ R|ρ(v) = U )
t_list ← (v ∈ T |ρ(v) = U )
node_list ← Append(node_list, s_list, r_list, t_list)
end for
On peut aussi étendre l’idée d’ensemble de séquences de noeuds valides dans
la définition d’un CES/SES correct à des listes d’utilisateurs valides. On utilisera
la notation V S pour Valid Set en anglais, avec V S = {X1 , X2 , · · · , Xm } et Xi =
(Ui,1 , · · · , Ui,n ). Un schéma correct doit alors avoir Xi ∈ V S ⇒ m ∈ Run(Xi , m).
L’idée de cette partie est d’étudier quand l’implication est vraie dans l’autre
sens : m ∈ Run(X, m) ⇒ X ∈ V S. Comme remarqué plus tôt, l’activation de
noeuds supplémentaires est possible sans changer l’accès à m. Nous utiliserons donc
la notion d’ensemble de sous-listes.
n
[
X = (xi )1≤i≤n = {X} ∪ (x1 , · · · , xi−1 , xi+1 , · · · , xn ) and () = ∅
i=0
1
Définition 3.2.8. On dira d’un CES/SES qu’il respecte V S si A < 2λ
contre
un adversaire en temps polynomial avec λ le paramètre de sécurité.
Lemme 3. Pour chaque Valid Set contenant une seule user_list, V S = {X},
il y a toujours au moins un CES/SES correct qui garantit la sécurité du clair
et respecte V S.
G1 ∪ G2 ⇐⇒
((u(S1 ) ∪ u(S2 ), u(R1 ) ∪ u(R2 ), u(T1 ) ∪ u(T2 )), E1 ∪ E2 , Oe1 ∪ Oe2 , Od1 ∪ Od2 )
(3.7)
Le graphe résultant est donc une union de sous-graphes disjoints. Chacun d’eux
garantit la sécurité du clair grâce à l’existence d’un arc correspondant à un schéma
individuellement sûr entre son noeud source et son noeud cible. De même, comme
chaque sous-graphe est un CES/SES correct, après activation des relais dans un
ordre respectant une des séquences, au moins un noeud cible peut retrouver le
message correct.
Il reste donc à prouver que l’union de G1 et G2 , respectant respectivement V S1
et V S2 garantit le respect de V S1 ∪ V S2 .
Soit un graphe construit selon le Lemme 3 pour faire respecter V S1 . Si on ajoute
au graphe un sous-graphe disjoint, la preuve du respect de V S1 ne peut rester
correcte que si aucune séquence composée uniquement des noeuds ainsi ajoutés peut
permettre à Adv d’avoir un avantage malgré une séquence non valide.
On peut appliquer symétriquement le même raisonnement au sous-graphe que
l’on vient d’ajouter si celui-ci fait respecter V S2 . Ainsi, soit l’ordre des activations
choisi par l’adversaire valide V S1 , soit il valide V S2 , soit aucun avantage n’est gagné
lors de l’union des graphes. En répétant l’union de graphes deux à deux, on peut
conclure que l’union d’une quantité dénombrable de CES/SES garantit le respect
de l’union des Valid Sets dont ils garantissent individuellement le respect. Cette
construction par union donne donc pour tout V S un CES/SES qui respecte V S.
Propriété 5. A ∧ B ⇐⇒ (A → B) ∨ (B → A)
Cette propriété peut être lue comme « Un message qui doit passer par A et B,
doit soit passer par A puis par B, soit par B puis par A ».
A → (B ∨ C) ⇐⇒ (A → B) ∨ (A → C)
(B ∨ C) → A ⇐⇒ (B → A) ∨ (C → A)
Ces deux propriétés permettent de factoriser les Valid Sets pour pouvoir décrire
de manière efficace des cas complexes. Il est possible de faire l’inverse en écrivant
toutes ces expressions dans une forme « canonique » (A1 → · · · → An )∨(B1 → · · · →
Bm )∨· · · dans laquelle on voit bien l’équivalence avec la liste de listes {(A1 , · · · , An ),
(B1 , · · · , Bn ), · · · }. Cela prouve au passage l’équivalence de ces notations.
La figure 3.5 propose un exemple de CES/SES qui respecte V S = S → (A∨B) →
(C ∧ D) → T . Pour trouver ce graphe, nous avons écrit V S en forme canonique
puis utilisé la construction de la preuve de la Proposition 4. Remarquez bien que
dans cette figure, chaque noeud a un nom unique grâce à un indiçage, alors que les
utilisateurs sont identifiés grâce à la couleur des noeuds.
Alors que la Proposition 2 garantit que l’on pourra toujours construire un
CES/SES fonctionnel pour chaque Valid Set, on a bien pour intuition en regardant
la figure 3.5 que cette construction n’est pas optimale. Le fait qu’une notation
factorisée des Valid Sets existe nous suggère que d’autres graphes d’ordres ou de
tailles plus basses respectant les mêmes Valid Sets pourraient aussi exister.
a1 c1 d1
s1 t1
a2 d2 c2
s2 t2
b3 c3 d3
s3 t3
b4 d4 c4
s4 t4
b1 c1
b c
a1 d1
c2 b2
a d a2 d2
(a) Le plus petit graphe "problématique". (b) Le plus petit graphe de SES correct équi-
valent.
Lemme 7. Le graphe présenté en Figure 3.6 ne peut pas être le graphe d’un
SES correct si ses schémas de chiffrement appartiennent à un SEF dont aucune
sous-famille n’est commutative.
Démonstration. Supposons que F est un SEF dont aucune sous-famille n’est com-
mutative. Le graphe respecte V S = A → (B ∧ C) → D. On peut donc dire que
(a, d)Oe,a (a, b) et (a, d)Oe,a (a, c). Sans perte de généralité, supposons (a, b)Oe,a (a, c).
Durant Activate(a, M ), le noeud chiffre donc dans AD puis dans AB, puis dans AC.
Plusieurs cas sont ensuite possibles.
82 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
Proposition 8. Le plus petit graphe (en ordre et en taille) qui soit « problé-
matique » pour les SES (ne peut pas être correct peu importe l’ordre choisi) est
celui en figure 3.6a. Cela peut être vérifié par énumération de tous les graphes
plus petits.
Conséquence 1 : Soit (V, E) le graphe d’un SES. Si on enlève tous les noeuds
appartenant à des mineurs isomorphes au graphe problématique et tous leurs pré-
décesseurs directs et indirects, on donne aux noeuds cibles exactement les mêmes
capacités d’accès au clair que le graphe d’origine.
Conséquence 2 : Un algorithme itératif permet de générer tous les SES ayant
un seul noeud source s et un seul noeud cible t et qui ne contienne pas le graphe
« problématique ». On construit progressivement un graphe en commençant par le
graphe (0) de la Figure 3.7 : on remplace un par un les arcs en pointillé par les
graphes (1), (2), ou (3) jusqu’à ce qu’il n’y ait plus de graphes en pointillé. On peut
vérifier que le graphe ainsi construit est un SES qui peut être correct car le point
de départ est un SES qui peut être correct et chaque modification n’a créé aucun
mineur problématique (deux chemins ou plus, de longueur deux ou plus reliant deux
noeuds). Cette construction couvre toutes les possibilités pour des SES corrects :
on peut le prouver visuellement en arrangeant les noeuds de manière chronologique
(début d’un arc toujours à gauche et la fin à droite) et en mettant toujours le noeud
c de la modification (2) au dessus de l’arc (a, b) pour pouvoir suivre l’évolution de
la pile (« stack ») des chiffrements.
Conséquence 3 : Pour un même V S, le plus petit graphe d’un SES qui respecte
VS et qui admet un ordre qui lui permet d’être correct ne peut pas être plus petit
que le plus petit graphe d’un CES qui est correct et respecte V S.En effet, si un SES
(V, E, Oe , Od ) est le plus petit à respecter ces critères, alors le CES (V, E, ∅, ∅) les
respecte aussi.
De plus, le plus petit SES correct, qui respecte le même V S que le graphe
problématique, est obtenu en dupliquant le graphe mais en ne gardant qu’un des
deux chemins de longueur 2 ou plus entre a et d. Si le graphe problématique est un
mineur d’un graphe d’un SES, on peut appliquer cette transformation sur le mineur
et la reproduire jusqu’à ce qu’il n’y ait plus de mineur problématique.
LIQUORICE 83
(2) c
a b
(0) a b
s t (3)
(1)
a c b a b
r5
r2 r4
r1 r3 r6
s t
Ainsi, les graphes des CES peuvent n’être que plus petits ou de même taille pour
un même V S. Aussi, plus le graphe d’un CES contient des mineurs problématiques,
plus le graphe d’un SES qui respecte V S sera gros. Cette différence n’a pas d’impact
sur la sécurité. Outre que de diminuer l’efficacité, ne pas pouvoir gérer les mineurs
problématiques limite les cas d’utilisations des SES.
Conséquence 4 : Le Lemme 2 implique que « A applique un contrôle d’accès
sur B, C, et D » et « B et C appliquent un contrôle d’accès sur D » ne peuvent
pas être vrais en même temps pour un schéma de sur-chiffrement correct. Ainsi,
étant donné le respect d’un même Valid Set, seul un schéma de chiffrement commu-
tatif permettrait des situations de confiance entre les relais, c’est-à-dire permettre
à plusieurs d’entre eux de s’assurer de l’identité des autres et des destinataires.
Il se distingue ainsi une réponse claire à notre question : « Quels sont les schémas
de chiffrement commutatif qui, pour un Valid Set fixé, sont corrects, garantissent
la sécurité du clair et respectent le Valid Set, qui ne puissent pas être remplacés
par un schéma de sur-chiffrement sans qu’une de ces propriétés soient invalidée ? ».
Il s’agit de ceux qui contiennent un mineur problématique, ce qui correspond aux
situations où deux relais ou plus doivent s’assurer de l’identité des autres partici-
pants du schéma, ce qui est indispensable pour assurer un mécanisme d’interception
réglementée.
84 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
F
P Q
G·F
G
S
F i g u r e 3 . 9 – Problème dur malgré des oracles de parallélisation et vectorisation.
Les éléments connus sont en vert, ceux à trouver en rouge.
On peut s’assurer que cette contrainte soit satisfaite par construction pour
garantir qu’un CES ne soit pas vulnérable à une attaque par vectorisation en
choisissant le graphe de façon à ce que tous les relais soient de degré au moins deux.
Cela n’a pas d’impact sur l’ensemble des V S que les schémas peuvent respecter car
la construction du Lemme 3 vérifie cette propriété.
Les noeuds sources ne sont pas obligés d’avoir un degré d’au moins deux : le
message, s’il s’agit d’une clé d’encapsulation, est lui-même uniformément aléatoire.
On peut reprendre la figure 3.9 avec P = 1G , Q = w et S = w + H1 (r1 ) pour
constater que la sécurité du clair n’est pas non plus remise en question, tous les
noeuds source devant avoir au moins un chiffrement vers un noeud cible. Ainsi,
86 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
malgré toutes les informations que puissent mettre en commun les relais, ceux-ci
pourront au mieux obtenir w + mST et ne pourront pas en déduire w si ST est
individuellement sûr.
d’un relai de confiance. Il faut adapter le jeu de sécurité pour que les clés de a ne
soient pas données à Ad v. De plus, si H résiste à la recherche de collisions, il n’y
a pas d’avantage à trouver wsa à partir de wsa + H(wsa ), donc ce choix n’est pas
problématique.
Ainsi a a un accès permanent au message. Il faut maintenant le limiter aux situa-
tions d’interception réglementée, à savoir après la décision d’une autorité juridique.
Pour ceci, il va falloir transformer des relais en dépôts de clés en partageant
celles-ci grâce à un schéma de partage de secret. Nous allons présenter un exemple où
la clé est séparée en deux parties, la seconde étant donnée à un relai n. Cependant,
toutes les méthodes plus avancées, basées sur des interpolations (pour faire du « k
parmi n ») [Shamir 1979], ou toutes les méthodes linéaires (Linear Secret Sharing
Scheme ou LSSS en anglais, permettant de créer des conditions booléennes de « et »
ou « ou » entre des utilisateurs) fonctionneront aussi [Liu 2010]. Cela permettra
de créer des façons plus flexibles de répondre aux problématiques d’interception
réglementée.
Le prérequis à cette transformation est bien sûr que les relais qui ont des segments
de la clé ne vont pas céder ceux-ci à a, sauf sous obligation légale. La confiance en
ces relais n’est pas nécessaire, mais la non-collusion avec a l’est, ce qui est plus facile
à garantir et aussi une hypothèse de base des systèmes de dépôt de clés.
s commence par choisir aléatoirement de manière uniforme mSA et mSN dans les
espaces de clairs de schémas individuellement surs et corrects SA et SN . Il calcule
wSA = HSA (mSA ) et wSN = HSN (mSN ). Puis il fixe w = H(wSA ) + H(wSN ). Le
schéma de chiffrement commutatif continue alors normalement mais avec les valeurs
choisies pour ces deux schémas.
Il faudra ainsi que a demande légalement à n l’accès à H(wsn ) afin de pouvoir
reconstruire la clé w et ainsi accéder aux données. n cependant ne sera jamais
capable d’accéder aux données étant donné que a est de confiance.
De cette manière, nous avons à notre disposition la première méthode d’in-
terception réglementée basée sur du chiffrement commutatif, grâce à l’utilisation
d’une primitive post-quantique standardisée. Contrairement au sur-chiffrement, elle
permet aux forces de l’ordre de contrôler quels sont les dépôts des autres parties
de la clé. Notre étude formelle du chiffrement commutatif se conclut ainsi, mais il
nous reste à étudier les impacts de notre construction sur la couche protocole, ce
que nous allons faire en illustrant l’utilisation de notre formalisme dans le domaine
des voitures connectées.
comme ils sont sujets aux contraintes de résilience des systèmes critiques temps-réel,
aux contraintes de sécurité et de respect de la vie privée liée à la manipulation
de données utilisateurs, et aux contraintes commerciales de valorisation de ces
données. Les voitures ayant une espérance de vie pouvant dépasser une dizaine voire
une quinzaine d’années, il est crucial que les systèmes de protection des données
adoptés par celles-ci puissent s’adapter à des changements législatifs et de nouvelles
contraintes sur chacun de ces sujets.
Les entités qui vont interagir dans ce scénario sont les suivantes :
— Le constructeur du véhicule, qui doit s’assurer que les données émises soient
protégées ou accessibles selon la loi (par exemple : si les données moteur
devaient être accessibles par le constructeur du véhicule).
— Le véhicule, V qui va essayer quand sa connexion le permet de transmettre les
données qu’il crée. Le conducteur peut émettre des réserves sur les données
qui sont rendues accessibles et par qui elles le sont, dans la limite de la loi.
— Un relai fixe de bord de route P , part d’un réseau VANET (Vehicular Ad-Hoc
Network), récolte ces données et les renvoie sur le réseau classique. Il sert de
proxy pour s’assurer que les prochains participants soient bien impliqués dans
le schéma cryptographique.
— Le fournisseur d’accès au réseau N est désigné comme dépôt de clés.
— Les forces de l’ordre A ont des droits d’interception (par exemple en cas de
litige, accident grave, vol...)
— Un serveur Cloud C va stocker les données pour les rendre disponibles. Il
pourra donc appliquer du contrôle d’accès supplémentaire au moment de la
demande d’une donnée.
— Des consommateurs de données D vont chercher au près du cloud des données
qui les intéressent. Ces consommateurs peuvent être des mairies, des services
météo, des services de recommandation d’itinéraire, des assureurs... Les conduc-
teurs et les constructeurs peuvent eux aussi agir comme des consommateurs
auprès du cloud.
L’ordre dans lesquels on souhaite que ces participants interviennent est : véhicule,
puis proxy, puis fournisseur de réseau et forces de l’ordre (peu importe l’ordre), puis
cloud et finalement consommateurs de données. Cela donne V S = V → P →
(A ∧ N ) → C → D.
Quelles sont les différentes relations de contrôle d’accès entre les participants ? La
réponse nous permet d’établir le graphe G. Tout d’abord, le véhicule doit transmettre
des parties des clés au dépôt de clés et aux forces de l’ordre. Le conducteur veut
appliquer un contrôle sur les consommateurs de ses données, et le véhicule a un
chiffrement vers le proxy pour s’assurer du passage des données par celui-ci. Le
proxy est garant qu’un chiffrement a bien été effectué pour les forces de l’ordre et
pour le fournisseur de réseau. Il peut en plus désigner un cloud pour l’hébergement
des données. Les forces de l’ordre et le fournisseur du réseau étant impliqués dans le
système de dépôt de clé doivent vérifier mutuellement leur identité. De plus, les forces
de l’ordre pourraient limiter le lieu où les données peuvent être hébergées, pour des
questions de souveraineté nationale des données par exemple. Et finalement, le cloud
90 CHAPITRE 3. CHIFFREMENTS COMMUTATIFS
N1 A2
A1 C1 N2 C2
V1 P1 D1 V2 P2 D2
Nous allons utiliser le groupe (F2512 , ⊕) avec H = SHA3 pour être résistant
à la recherche de collisions par un ordinateur quantique. Nous nous servirons de
AES pour l’encapsulation des données, et sur tous les schémas où des clés sont
préalablement partagées entre les parties (A1 N1 , N2 , A2 , éventuellement P1 , N1 et
P2 , N2 ). Pour la plupart des autres schémas, devant utiliser de la cryptographie
asymétrique, nous utiliserons CRYSTALS-KYBER. Cependant, certains schémas
peuvent être choisis avec plus de précautions : les schémas VD peuvent se servir
d’un ABE post-quantique [Wang 2020] afin de profiter de la dérivation à partir de
la loi proposée dans [Adelin 2022], et CD peut aussi être un ABE géré par une autre
autorité. Si la bande passante devait être réduite, comme les clés publiques de N
et de A ne devraient pas changer régulièrement, VN et VA pourraient plutôt être
Classic McEliece, qui a les chiffrés les plus petits des schémas post-quantiques en
standardisation.
Au début du CES, pour permettre l’interception, le véhicule détermine aléatoire-
ment de manière uniforme rVA , rVN dans l’espace des clairs des schémas VA et VN
et calcule wVA = HVA (rVA ) et wVN = HVN (rVN ). Il peut alors chiffrer les données
m avec CT = AESw (m), w = H(wVA ⊕ wVN ). Suite aux encapsulations dans les
deux autres schémas, le véhicule va alors envoyer w ⊕ wVP ⊕ wVA ⊕ wVN ⊕ wVD
et les éléments d’encapsulation (EkVP (rVP ), · · · ) au proxy, suite à quoi le CES se
déroule normalement.
Comme tous les schémas choisis sont corrects, individuellement surs, qu’il y en
a un reliant les noeuds sources à un noeud cible, et que tous les noeuds sont de
degré au moins deux, la sécurité du clair est garantie, même dans un groupe dans
lequel la vectorisation est facile. Le graphe impose bien le respect de V S. De plus,
cette construction n’aurait pas été possible avec un schéma de sur-chiffrement, le
graphe comportant plusieurs mineurs problématiques. Aussi, l’encapsulation permet
de créer de la commutativité entre des schémas (AES, CRYSTALS-KYBER, ABE)
qui n’avaient pas de commutativité au préalable.
Cet exemple devrait permettre d’étendre des protocoles tels que [Adelin 2022] à
des cas d’utilisations plus complexes, là où les protocoles avec une seule étape de
chiffrement trouvent des limites.
FONCTIONNALITÉS DES SCHÉMAS DE CHIFFREMENT COMMUTATIF 91
C’est la plus grosse différence entre les capacités des schémas ABE et les
CES. ABE permet certes des politiques d’accès qui dépendent du temps, mais
elles sont appliquées au chiffrement. Grâce au chiffrement commutatif, celles-ci
peuvent être déterminées à l’accès et donc avoir évolué depuis le chiffrement.
Cette différence majeure a en partie motivé la combinaison de ABE et de
sur-chiffrement dans la publication avec R. Adelin.
Équilibrage des charges dans le réseau : Lorsque les relais sont des groupes
de noeuds, il est possible que les noeuds du groupe s’accordent pour déterminer
lequel sera responsable du calcul afin d’optimiser le ping, la bande passante et le
temps de calcul des noeuds. De plus les V S offrant de multiples chemins possibles
permettent aussi d’optimiser les charges et les routes entre les groupes relais.
Il s’avère que ces trois propriétés ne peuvent pas utiliser une construction « Xor-
Kyber » car leurs graphes sont tous celui de la figure 3.11 dans lequel des relais n’ont
pas un degré au moins deux et seraient donc sujets à une attaque par vectorisation.
b1 b2
a1 a2
3.6 Conclusion
Dans ce chapitre, nous avons proposé le premier schéma d’interception régle-
mentée post-quantique, et des outils applicables à des scénarios complexes où des
utilisateurs et des noeuds de natures variés sont impliqués pour permettre un contrôle
d’accès fin et dynamique.
Nous avons commencé par une étude des propriétés déjà connues du chiffrement
commutatif et de sa résistance aux ordinateurs quantiques. En étudiant générique-
ment et de manière formelle les constructions possibles avec du chiffrement commu-
tatif et du sur-chiffrement, nous avons pu montrer que les constructions nécessitant
des vérifications entre les relais ne peuvent pas se baser sur le sur-chiffrement.
La transformation de chiffrements en encapsulations permet l’utilisation de
n’importe quelle primitive post-quantique pour créer un schéma post-quantique de
chiffrement commutatif, sous seules contraintes que les relais effectuent au moins
deux opérations et que chaque source ait un chiffrement direct vers une cible. Cela
permet aussi de choisir les encapsulations de manière à ce que la clé protégeant les
données puisse être reconstruite à partir de fragments gardés par des dépôts jusqu’à
ce que les forces de l’ordre les récupèrent sur ordre de justice.
Nous avons illustré l’utilisation de nos outils dans un scénario de véhicules
connectés ou les contraintes en temps de calcul, bande passante, et contrôle d’accès
sont complexes, et changeants.
Nous avons pu restreindre le besoin de primitives spécialisées telles les FNAA
à des cas similaires au protocole sans clé, et permis la combinaison de primitives
standardisées plus loin que par sur-chiffrement. Naturellement, des schémas de
chiffrement commutatif impliquant plusieurs étapes de chiffrement et déchiffrement
sont ceux qui peuvent bénéficier le plus de chaque amélioration de performance qui
peut être apportée à ces standards.
Chapitre 4
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.2 Calcul en Mémoire : Background et Atouts en cryptographie100
4.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.2.2 Definitions et Notations . . . . . . . . . . . . . . . . . . . . . 102
4.2.3 Calcul en Mémoire pour la Cryptographie . . . . . . . . . . . 105
4.3 Considérations de design pour l’Accélération de Classic
McEliece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.3.1 Le Cryptosystème Classic McEliece . . . . . . . . . . . . . . . 105
4.3.2 Accélérer Classic McEliece avec le Calcul en Cache . . . . . . 109
4.4 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4.1 Banc d’essais RISC-V . . . . . . . . . . . . . . . . . . . . . . 117
4.4.2 Résultats d’Implémentation . . . . . . . . . . . . . . . . . . . 118
4.5 Applicabilité aux autres candidats du NIST . . . . . . . . . 125
4.5.1 Candidats du Round 4 et CRYSTALS-KYBER . . . . . . . . 126
4.5.2 Candidats du Round 3 . . . . . . . . . . . . . . . . . . . . . . 127
4.5.3 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.6 Évaluation des Impacts sur la Sécurité des Canaux Auxi-
liaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.6.1 Attaques par canaux auxiliaires et modèle du poids de Hamming131
4.6.2 Modèle d’attaquant, entropie des calculs . . . . . . . . . . . . 134
4.6.3 Impact de la taille des opérandes et des variables . . . . . . . 138
4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
96 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
4.1 Introduction
La caractérisation, la création et l’optimisation de primitives cryptographiques
post-quantiques sont des défis dont l’importance augmente à chaque fois qu’une
nouvelle avancée de l’ordinateur quantique est annoncée. En 2019, Google annonçait
avoir atteint la « suprématie quantique » [Arute 2019, Lesage 2019] et en 2021 IBM
égalait cette prétention [IBM 2021]. Si ce terme est très bien choisi sur un plan
publicitaire afin de motiver des levées de fonds, la réalité - même si elle correspond
à des avancées scientifiques impressionnantes - est bien moins grandiose que ce qu’il
laisse paraître.
En effet, « suprématie quantique » indique la capacité d’un ordinateur quantique
à effectuer un calcul qu’un ordinateur classique est incapable d’effectuer. Cependant,
le calcul choisi pour l’expérience menée par Google peut dans les grandes lignes être
résumé à la simulation d’un ordinateur quantique. Simplifié ainsi à « nous avons
construit un ordinateur quantique qui simule un ordinateur quantique plus facile-
ment qu’un ordinateur classique », l’accomplissement semble moindre. L’ordinateur
quantique peut donc actuellement être parfois meilleur qu’un ordinateur classique,
mais pas encore plus utile.
En ce qui concerne l’utilisation des deux algorithmes quantiques redoutés par les
cryptographes (ceux de Shor et de Grover [Shor 1999, Grover 1997]), l’ordinateur
quantique tarde encore à faire ses preuves. Par exemple en 2018, l’ordinateur quan-
tique savait au mieux factoriser 4 088 459 [Dash 2018]. Ce chiffre pouvant s’écrire sur
22 bits, on est encore bien loin des 1024 ou 2048 bits des modulos des chiffrements
RSA. Néanmoins, certains se posent la question alarmiste « L’apocalypse quantique
est-elle pour demain ? » [SemiColonWeb 2019].
Les avis sur la menace quantique pesant sur les systèmes cryptographiques sont
alors tout sauf unanimes. Certains voient RSA cassé dans un assez court terme,
d’autres peut-être dans quelques dizaines d’années et encore d’autres signalent que
ce ne sera peut-être jamais le cas, à cause des contraintes de températures ou de
pureté de matériaux utilisés [Buffoni 2022, de Leon 2021]. Malgré tout, il est certain
que les efforts de recherche dans l’ordinateur quantique se multiplient aujourd’hui,
ne serait-ce que pour leur capacité de distribution quantique de clés, qui peut être
faite avec un niveau de sécurité arbitrairement haut. Il convient donc au moins
par précaution d’être prêts à l’arrivée d’un ordinateur quantique pouvant effectuer
efficacement des attaques sur nos moyens de chiffrement actuels.
Les efforts les plus concrets sur le sujet sont menés par le NIST qui a entraîné
la communauté cryptographique globale dans la recherche des meilleures primitives
post-quantiques pour une standardisation. Les standards nommés en résultat de
ce processus seront très certainement dans un premier temps intégrés aux toolkits
cryptographiques en tant que recommandation, puis en tant qu’option par défaut
puis en tant qu’obligation au fur et à mesure que la menace quantique se fera sentir
de plus en plus proche.
L’avantage de ce genre de compétition internationale est le respect le plus di-
ligent du principe de Kerckhoffs, l’idée étant que si la communauté des experts
cryptographiques dans sa plus grande partie n’arrive pas à trouver de vulnérabilités
sur un système, il y a d’autant moins de chances qu’une vulnérabilité soit trouvée
INTRODUCTION 97
dans l’intérêt d’une comparaison des performances équitable sur le long terme, et
d’un co-design plus poussé entre les primitives et les architectures.
Dans ce chapitre, nous allons donc proposer la première évaluation de primitives
post-quantiques sur une architecture comportant du calcul en mémoire et notamment
en cache. Nos résultats montreront qu’en comparaison à une implémentation sur un
processeur classique, le temps de calcul de la génération de la clé peut être réduit
de 59% (voire jusqu’à 92% pour la clé publique seule) et le temps de chiffrement
peut être réduit de 76% avec l’algorithme actuellement utilisé dans la primitive,
mais jusqu’à 98% si on adapte l’algorithme pour profiter plus de l’architecture en
stockant la clé publique de manière transposée.
Pour une comparaison juste et plus éclairée, nous allons aussi proposer des
résultats dans une architecture qui inclut des calculs vectoriels. Toutes les expériences
ont été réalisées grâce à un simulateur de puce RISC-V personnalisée, qui inclut
à la fois un module de vectorisation, un cache permettant du calcul en mémoire,
et des compteurs de performance matériels adaptés pour analyser précisément le
comportement du coeur de processeur et du cache. A notre connaissance, c’est le seul
simulateur à l’heure actuelle qui permet à la fois l’utilisation d’opérations vectorielles
et en mémoire. De plus, le simulateur est publiquement disponible, et présenté de
manière à ce que nos expériences soient facilement reproductibles [Migliore 2022].
informations de localité nécessaires pour les calculs sur des bit-lines. Les adresses
ont la structure suivante, avec la taille des champs dépendant de la géométrie du
cache :
| TAG | SET IN BP | BANK | BP | OFFSET |
Dans la configuration de référence, pour des adresses de 32 bits, les champs sont
de longueurs respectives 22,1,2,1,6.
Cache Aligned Data : Deux bits sont dits alignés en cache si dans leurs adresses,
les champs BANK, BP, et OFFSET sont identiques et qu’ils partagent la même position
au sein de leur octet.
Bit-Line Operation : A notre connaissance, les opérations de calcul en cache
sont uniquement des opérations binaires. Les Bit-Line Operations sont effectuées
simultanément sur toutes les bit-lines de la même Bank Partition la ou les lignes
activées sont définies par les adresses (addr_a et addr_b) passées en paramètre. Le
résultat est aussi stocké dans une ligne de cache de la même Bank Partition où
l’écriture est autorisée, ou dans un registre (addr_dst ou ret).
La même opération peut être effectuée dans un, plusieurs ou tous les BPs
simultanément. Le nombre de BPs dans lesquels le calcul sera effectué en simultané
est indiqué dans n_lines pour le décodage de l’instruction. Il s’agit d’une puissance
de deux. Nous considérons les opérations suivantes :
CCPY(addr_dst, addr_a, n_lines)
CCMP(ret, addr_a, addr_b, nb_lines)
CAND(addr_dst, addr_a, addr_b, n_lines)
COR(addr_dst, addr_a, addr_b, n_lines)
CXOR(addr_dst, addr_a, addr_b, n_lines)
CNOT(addr_dst, addr_a, n_lines)
CSET(addr_dst, val, n_lines)
L’opération CCMP fixe le registre ret à 0 si les opérandes sont identiques, 1 sinon.
L’opération CSET remplira une ligne de zeros si val = 0, et sinon avec des 1. Il ne
diffère du cc_buz de Compute Caches que par une porte not conditionnelle.
Bit-Array operation : Il s’agit d’une composition d’opérations bit-line qui permet
à une fonction d’être effectuée sur des entrées de taille arbitraire grâce à leur
représentation via un circuit binaire. Cela signifie que tous les bits d’un même
élément sont alignés en cache. On dit aussi que l’élément est stocké verticalement.
Le nombre d’opérations bit-line dépend du nombre de portes du circuit binaire,
mais toutes les bit-lines peuvent être impliquées en même temps. On supposera
deux opérations bit-array principales pour la somme et la multiplication (on peut
supposer des variantes pour un calcul avec retenue ou modulaire).
C_ADD(addr_dst, addr_a, addr_b, size, n_lines)
C_MUL(addr_dst, addr_a, addr_b, size, n_lines)
Le niveau de parallélisme atteignable entraîne un meilleur débit pour des opé-
rations de complexité binaire faible sur des nombres d’opérandes très grands et
multiples de la taille d’une ligne de cache. Les opérations bit-array peuvent néces-
siter un ou plusieurs bits de mémoire. Ceux-ci peuvent être pris dans la mémoire
principale du cache, mais pour accélérer et faciliter les calculs, ils peuvent aussi
être placés juste à côté des portes logiques des opérations bit-line, au bout des
104 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
capteurs verticaux, dans une zone appelée Column Peripheral, qui ne contient que
les variables temporaires de calculs en bit-array, et qui est donc plus facile à gérer
que la mémoire du cache.
Transpose Gateway Units : Une mémoire SRAM dotée de moyens bi-
dimmensionels d’accès aux données. Cela permet de charger des données écrites
horizontalement et de les lire verticalement ou vice-versa. Ainsi des calculs bit-array
en cache et des calculs classiques du processeur peuvent être alternés sur les mêmes
données avec une perte de temps minimale à l’exécution.
Bank
Set
Bank
Partition
16
64 Activators
16 Line Byte
Bit-line
Sensors
Column Peripheral
F i g u r e 4 . 1 – Exemple de géométrie d’un cache L1 adapté aux calculs en mémoire.
Écrits sur 12 bits, 33 et 11 sont souvent représentés sur quatre octets (0x00,
0x21, 0x00, 0x0B) alors qu’ils peuvent l’être sur trois (0x02, 0x10, 0x0B).
4 12
2 bytes
a) Classical 16 bit integer representation
42 + 8/12 42 + 8/12 14 + 8/12
... ... ... ...
12 12
3 bytes
b) With bitpacking
1 byte
10
10
...
10
...
...
...
12
...
10
c) With bitpacking and cache alignment d) Vertical representation with cache alignment
CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
F i g u r e 4 . 2 – Plusieurs façons de représenter en mémoire une matrice 10 × 10 d’éléments de 12 bits. Les grand rectangles noirs
sont les Sets de la mémoire, en rouge les données.
ACCÉLÉRATION DE CLASSIC MCELIECE 107
et d’améliorer les chances que le décodeur puisse identifier les erreurs et retrouver
le message correct.
L’idée du cryptosystème Classic McEliece est que si le décodeur est gardé secret
et qu’il ne peut pas être déduit de l’encodeur, cela transforme les codes correcteurs
d’erreurs en fonctions à trappe : pour chiffrer, l’émetteur encode son message et
ajoute le maximum de bits de bruit que le code puisse débruiter. Le destinataire
possédant le décodeur est le seul à pouvoir enlever ces erreurs avec une probabilité
forte.
Classic McEliece a été conçu à base de codes de Goppa, pour la vitesse de
l’algorithme de décodage. Jusqu’à présent, ce cryptosystème ne présente pas de
vulnérabilité. Quelques années après, Niederreiter proposa son propre cryptosystème
basé sur les codes de Goppa binaires [Niederreiter 1986], mais les deux ont ensuite
été prouvés équivalents [Li 1994].
Les codes de Goppa sont des généralisations des codes de Reed-Solomon, dont
le principe général est de sur-échantillonner un polynôme. Par exemple pour
définir un polynôme de degré 5, il faut 6 points. Si on envoie donc 8 points
à la place, on pourra toujours retrouver le polynôme de départ si 2 points
contiennent des erreurs.
1 0 · · · 0 a1,m · · · a1,n
0 1 · · · 0 a2,m · · · a2,n
. . . .. ..
. . .. ..
. . . .. . . .
0 0 · · · 1 am,m · · · am,n
LD1 de 16 Kb (256 lines de 64 bytes), une ligne de la matrice prend 16 lignes (6.25 %)
du cache et il en faut au moins quatre pour les opérations de systématisation (deux
lignes de cache, un masque et une variable auxiliaire). Dans notre configuration de
référence minimale (issue de [Aga 2017]), les performances ne sont pas limitées par
la taille du cache mais par la vitesse de chargement des données dans le cache.
Des paliers d’efficacité sont atteints lorsque la taille d’une ligne est un multiple de
la taille maximale d’un opérande en cache (nombre de BPs du cache multiplié par la
taille d’une ligne). Par exemple avec 8 BPs, le jeu de paramètres « 8192128 » (dans
lequel une ligne de matrice est écrite sur exactement 8 lignes de cache) n’a même
pas besoin de padding et les opérations en cache ont un parallélisme maximal. Pour
« 348864 », il faudra un peu de padding, et on n’exploite pas tout le parallélisme.
Le jeu de paramètres le moins adapté est « 460896 », qui aura besoin de 7 lignes de
cache de padding et aura besoin de 2 opérations, la seconde sur relativement peu
de données.
Sachant par exemple qu’il faudra le même nombre de calculs en cache par ligne
pour le jeu de paramètres « 348864 », que les lignes fassent 3488 ou 4096 bits, on
pourrait chercher si des lignes plus longues mais moins nombreuses ne permettraient
pas de garantir la même sécurité (tout en gardant GFBITS bas et en dessous de 16
pour un traitement efficace du polynôme dans le coeur de processeur et minimiser
controlbits().
Il faut aussi noter que des processeurs haut de gamme peuvent souvent être
équipés avec un cache L3 très large (10 MB et parfois même plus). Dans ce genre
de cas, il est possible d’y stocker la matrice entière. Cela annule la limitation de la
vitesse du chargement des données dans le cache (accès à la mémoire) et ne laisse
plus que le temps des opérations arithmétiques. Dans le reste du chapitre, nous
supposerons l’utilisation d’un cache petit comme défini plus tôt en sachant qu’il
s’agit ainsi d’un pire cas, et que plus de capacités de calcul en mémoire (plus de
BPs, plus de lignes par set) ne feront qu’améliorer les performances.
ACCÉLÉRATION DE CLASSIC MCELIECE 111
4.3.2.2 KeyGen
sk_gen() :
La première partie de KeyGen, sk_gen ne peut pas particulièrement être accélé-
rée avec du calcul en mémoire car elle est principalement composée de l’expansion
d’une graine aléatoire et d’opérations entre des éléments de Fq qui ne bénéficient
ainsi pas d’opérandes plus grands avec des jeux d’instructions classiques. Ce n’est
pas en réalité un problème puisque sk_gen représente un temps de calcul négligeable
dans KeyGen, Nous ne nous tentons donc pas de l’optimiser.
pk_gen() :
Dans pk_gen, comme évoqué précédemment, nous devons changer la représen-
tation de mat en mémoire pour pouvoir se servir de calcul en cache. En langage
C, l’attribut __attribute__((aligned (CACHE_ROW))) permet de ne pas gérer
manuellement le padding.
Initialization, Roots, et Inversion :
Ces trois étapes créent la première ligne de la matrice (inv) alors que les éléments
de Fq sont encore stockés horizontalement. Identiquement, comme ces étapes ne
sont pas parallélisables et de durée négligeable (comme confirmé dans nos résultats
expérimentaux), nous ne chercherons pas à les optimiser.
Zeroing :
La remise à zéro de la mémoire est très directe avec le calcul en cache, en
réduisant le nombre d’opérations d’un facteur de r/(lsize × nBP ), où ls est la taille
d’une ligne de cache, nBP est le nombre de lignes calculées en parallèle et r la taille
d’un registre.
1 f o r ( i = 0 ; i < PK_NROWS; i ++)
2 f o r ( j = 0 ; j < SYS_N/ 8 ; j ++)
3 mat [ i ] [ j ] = 0 ;
4 /∗ Can be o p t i m i s e d a s ∗/
5 f o r ( i = 0 ; i < PK_NROWS; i ++)
6 CSET( mat [ i ] , 0 , 8 ) ;
Ainsi, les données des 8 lignes de cache dont les adresses coïncident avec l’adresse
de mat[i] sauf dans leurs 9 derniers bits (6 bits d’offset, 1 de BP, et 2 de bank dans
notre exemple) vont être chargées dans le cache (et progressivement verrouillées en
attendant la présence de toutes les autres), puis mises à zéro simultanément. Tout
cela a évité le chargement dans des registres et a laissé le processeur libre de faire
d’autres calculs pendant ce temps.
Filling :
(i−1)
Il n’y a pas de parallélisme immédiat dans cette étape, le calcul des αj /g(αj )
ne profitent pas d’opérandes plus grands car ils requièrent des multiplications consé-
cutives dans Fq . Comme précédemment, ce n’est pas un souci puisque les temps de
calcul sont faibles.
Gaussian :
C’est l’étape la plus gourmande en temps de calcul, mais c’est heureusement
aussi celle avec le plus de parallélisme. Le pivot de Gauss (adapté pour être effectué
en temps constant selon les exigences de sécurité side-channel du NIST) consiste à
créer un masque de 1 ou de 0 selon la comparaison de l’élément diagonal avec celui
112 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
à éliminer. Ce masque est appliqué par un and sur la ligne de l’élément diagonal et
ce résultat temporaire permet d’appliquer un xor à la ligne de l’élément à éliminer.
Comme évoqué plus haut, on ne calcule pas vraiment sur toute la ligne, dans un
premier temps on élimine le triangle inférieur, puis on ne procède sur le reste de la
matrice que si elle admet bien une forme systématique.
Sur ces caches à correspondance directe, des problèmes peuvent survenir lorsque
plusieurs opérandes et/ou la destination d’un calcul en cache partagent un même
emplacement dans le cache. Pour éviter ces collisions et augmenter le débit de calcul,
nous proposons de fixer l’espace du cache pris par les deux variables « permanentes »
(aux et mask dans le snippet de code précédent). Ces variables sont utilisées pour
toutes les lignes de la matrice. En contrepartie, nous adaptons les adresses des lignes
de la matrice pour qu’elles ne correspondent jamais à ces deux lignes. Cela améliore
les performances en évitant d’avoir parfois à faire les opérations de manière classique
et tous les cache miss que cela aurait causé. Cependant, cela augmente le padding
nécessaire et l’espace total de la matrice d’un ratio de 2/number_cache_ways.
ACCÉLÉRATION DE CLASSIC MCELIECE 113
Copying :
Augmenter la taille de la matrice avec du padding ne ralentit pas le calcul puisque
le temps d’accès reste le même. Le résultat en sortie doit être une clé bitpackée,
la plus petite possible. Le calcul en cache ne permet pas ce genre de déplacement,
transversal aux bit-lines. Le code de référence copie registre par registre la matrice,
sauf les bits du carré principal devenu l’identité (ils n’amènent aucune information
au déchiffrement). Lorsque la matrice est paddée pour le calcul en cache, le nombre
d’opérations de copie restent inchangées.
Sur toutes ces opérations, le calcul en cache donne donc une réduction du nombre
total d’opérations arithmétiques et en mouvement de données, en échange de plus
de mémoire requise pour le calcul.
4.3.2.3 Encrypt
Error Vector
Multiplication
AND Accumulator Syndrome
Identity Public Key
XOR
Parity
NoId :
La matrice n’a pas à être étendue pour être de nouveau dans sa forme systéma-
tique. A la place, nous nous contenterons de copier les premiers octets (correspon-
dants à l’identité) du vecteur d’erreurs directement dans le résultat et l’accumulation
commencera à partir de ces valeurs. Du temps devrait être gagné car les lignes sont
plus courtes à parcourir. Nous avons appliqué cette modification à toutes les autres
variations. L’algorithme est illustré dans la figure 4.5.
Error Vector
Multiplication
AND Accumulator Syndrome
Public Key
XOR
Parity
Error Vector
Multiplication
Cache AND Accumulator Syndrome
Public Key
XOR
Parity
Transposed : Calculer les multiplications colonne par colonne plutôt que ligne
par ligne permet de faire une accumulation dans un bit plutôt que dans un octet,
ce qui enlève le besoin de calcul de parité. Pour permettre cette méthode de calcul,
nous supposerons que la matrice est donnée dans sa forme transposée. Pour la ligne
i de la matrice transposée (colonne i de la matrice d’origine), il n’y a plus qu’à fixer
un octet selon le ieme bit du vecteur d’erreurs (255 si c’est un 1, 0 sinon), multiplier
et accumuler directement le résultat. L’algorithme est illustré dans la figure 4.7.
Transposed with cache operations :
Pour augmenter le parallélisme, il est possible d’effectuer les multiplications sur
plus d’une ligne de la matrice transposée en même temps. Par exemple, avec le
jeu de paramètres le plus petit, les lignes de la matrice transposée font 768 bits.
C’est-à-dire qu’ils peuvent être contenus dans deux lignes de cache, et donc deux
BPs. Dans le petit cache que nous avons pris en exemple, qui a 8 BPs, on peut alors
avoir en même temps quatre lignes de la matrice chacune à l’adresse du début d’une
paire de BPs. On peut fixer séparément les quatre éléments de multiplication selon
les bits du vecteur d’erreur, et ensuite procéder à la multiplication et l’accumulation
simultanément pour les quatre lignes. Il faudra cependant penser à la fin à agréger
les accumulateurs de chaque paire de BPs dans un seul résultat. L’algorithme est
illustré dans la figure 4.8.
Une transposition classique durant Encrypt pourrait cependant complètement
défaire toutes les économies de temps faites sur la multiplication matrice vecteur.
Ainsi, si le gain en performances le justifie, on pourrait envisager de « préparer »
la clé publique de manière transposée dans le KeyGen, de la même manière que
controlbits() prépare la clé secrète, ou alors on pourrait transposer la clé lors de
sa réception, avant le chiffrement dans des scénarios dans lesquels ce temps n’a pas
à être minimisé.
Une architecture de calcul en mémoire plus évoluée comme celle de Neural
Cache [Eckert 2018] et qui inclurait des Transpose Gateway Units pourrait rendre
la transposition plus efficace et enlever l’implication du coeur dans ce processus.
Dans ces architectures, le calcul de manière transposée devrait donc être plus rapide
et plus intéressant.
116 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
Bit Copied
AND
Multiplication
XOR
Syndrome
4.3.2.4 Decrypt
La seule autre partie où une accélération grâce à des Bit-Line Operations est
clairement visible est le zeroing des grandes variables à l’instar de r, qui fait la taille
d’une ligne de la matrice et de laquelle le mot de code le plus proche est recherché.
Toutes les autres opérations sont sur de petits opérandes tels que des éléments de
Fq .
Nous n’évaluerons pas ces gains minimes de gestion de données, car ceux-ci
sont attendus de manière transversale sur toutes les applications, et ne sont pas
spécifiques à la cryptographie. Les articles de calcul en mémoire présentent eux-
mêmes ces résultats.
EXPÉRIMENTATION 117
Error Vector
Cache SET
Transposed Public Key Transposed Public Key Transposed Public Key Transposed Public Key
Rows 4×k Rows 4×k+1 Rows 4×k+2 Rows 4×k+3
Cache AND
Multiplication
Cache XOR
Accumulator
XOR
Syndrome
4.4 Expérimentation
4.4.1 Banc d’essais RISC-V
Avant de pouvoir évaluer l’efficacité des optimisations que nous proposons, nous
avons étés confrontés au défi de trouver un banc d’essai adapté à nos expériences.
Il faut à la fois qu’il implémente le coeur RISC-V, les extensions de calcul vectoriel,
une hiérarchie de cache, et soit adaptable à des opérations en cache. La communauté
RISC-V est très active [Brown 2022] et il est possible de trouver pour chacun de
ces points un simulateur adapté, même pour les calculs vectoriels, supportés par le
simulateur Spike par exemple. Cependant, à notre connaissance, il n’existe aucune
implémentation qui prenne en compte le calcul en mémoire ou en cache.
Une solution que nous avions envisagée dans un premier temps était l’intégration
des opérations en cache à un outil déjà existant. Cela est rendu difficile car les
opérations doivent être intégrées à un niveau micro-architectural pour permettre
une gestion spécifique de la géométrie du cache (en bank partitions), la gestion
des Bit-Line Operations et des conflits qu’elles peuvent amener, le verrouillage des
données dans le cache et les transferts des données entre la RAM et le cache.
Après un premier essai infructueux qui a consisté à intégrer un contrôleur cache
dans le simulateur Chipyard, nous nous sommes penchés sur la conception de notre
propre simulateur en langage C, qui implémente un RISC-V mono-coeur, avec
support des jeux d’instructions RV32I et RV32M et une partie de l’extension de calcul
vectoriel (les opérations nécessaires pour l’évaluation de McEliece). Il intègre une
hiérarchie de caches à correspondance directe, à géométrie entièrement configurable,
et des instructions pour toutes les Bit-line Operations basiques (celles listées dans
[Aga 2017]). Pour avoir une estimation précise du nombre de cycles de calcul, nous
avons intégré la gestion de quelques éléments micro-architecturaux, tels que la
118 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
gestion des aléas du flot de contrôle, le contrôleur mémoire entre le cache et la RAM,
ainsi que les micro-opérations internes exécutées pendant les instructions de calcul
en cache.
Le simulateur est disponible sur GitLab [Migliore 2022]. Nous y avons mis des
implémentations de la version de référence de Classic McEliece, une version accélérée
par vectorisation et une version se servant du calcul en cache. Il est mis en place et
documenté de manière à ce que les expériences détaillées ci-dessous puissent être
reproduites le plus facilement possible.
Afin de mieux comprendre les interactions entre le RISC-V, le cache et la RAM,
nous avons intégré des compteurs de performance matérielle :
— Compteurs d’instructions
— Nombre d’instructions
— Nature des instructions
— Compteurs de cycles
— Cycles d’horloge globale
— Cycles RISC-V
— Cycles d’opérations cache
— Cycles dûs aux aléas du flot de contrôle
— Compteurs Mémoire
— Nombre de transferts entre le cache et la RAM
— Utilisation du tas et de la pile
— Allocations Mémoires
La liste complète des fonctionnalités est accessible dans la documentation sur le
dépôt.
De plus, l’approche qui a été utilisée pour l’interconnexion des composants
matériels est très flexible pour permettre des reconfigurations très rapides. Par
exemple, si un cache n’est pas utile dans une expérience, le RISC-V peut être
directement connecté à la RAM avec très peu d’édition de code. Cela est aussi
vrai s’il y a besoin d’évaluer les performances d’un accélérateur matériel dans une
architecture complète. De fait, le contrôleur qui nous permet les calculs en cache
est vu comme un accélérateur matériel par le simulateur.
de baser nos expériences sur le plus petit jeu de paramètres de Classic McEliece
« 348864 » (voir table 4.2) et de configurer le cache comme celui proposé dans
Compute Cache [Aga 2017]. Rappel : lignes de 64 octets, 16 lignes par set, 2 sets
par BP, 2 BP par bank, 4 banks au total.
Cependant, pour aussi pouvoir isoler les effets du déplacement des données de la
variation du temps de calcul, nous allons aussi faire varier le nombre de lignes par
set, de 16 à 1024, taille à laquelle la matrice peut entrer entièrement dans le cache,
et qui nous place dans un scénario très semblable à du calcul effectué directement
dans la RAM.
4.4.2.1 KeyGen
Comme évoqué dans la section 4.3, KeyGen est l’algorithme qui bénéficie le plus
de calcul en mémoire. Le tableau 4.10 offre une vision globale des besoins en temps
et en mémoire de chacune des routines et algorithmes de KeyGen (avec un cache
de 1024 par set, optimisation GCC avec l’option -O3). On peut voir en effet que
Gaussian et Zeroing sont les deux étapes qui présentent une forte accélération à
l’aide du calcul en cache.
Le tableau 4.3 présente de manière plus précise le nombre de cycles de l’étape
Gaussian pour des nombres de lignes par set qui varient. Nous avons aussi représenté
ces données sous forme de graphes comme une fonction du nombre de lignes par set
de cache, avec pour référence 16 lignes par set, pour les trois façons de conduire les
opérations arithmétiques, dans la figure 4.9.
On peut voir que la forme des courbes est très similaire. La vectorisation divise
approximativement le temps de calcul en deux par rapport à l’implémentation de
référence (450 millions de cycles en moins dans toutes les configurations) et passer
au calcul en cache divise encore le temps de calcul par deux (300 millions de cycles
supplémentaires sont gagnés). Cette expérience est faite pour isoler la contribution
du mouvement des données dans le temps de calcul. Ainsi, la différence de perfor-
mance entre deux colonnes du tableau est principalement l’effet de gain de vitesse
en opérations arithmétiques et la différence entre deux lignes est principalement la
différence de temps passé à charger les données en mémoire.
On en conclut ainsi par exemple que dans un cache avec 64 lignes par set, 20%
120 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
·108
0
reference
vector
cache
Cycles (baseline 16 ways)
−1
−2
Le tableau 4.10 montre que la phase Zeroing aura pu être accélérée d’un ratio de
20, et le passage de la matrice sous forme systématique d’un ratio de 46.4. Au total
le calcul de pk_gen a été 12.6 fois plus rapide. En proportion des temps de calcul
de pk_gen, l’étape Gaussian qui représentait 94.4% en représente désormais 25.7%.
Measure Cycles RAM Used (Bytes) RAM Allocated (Bytes)
Architecture Reference Vector Cache Reference Vector Cache Reference Vector Cache
EXPÉRIMENTATION
SKgen 26 683 052 26 683 052 26 683 052 42 549 42 549 42 549 51 042 51 042 51 042
Initialization 5 053 223 5 167 998 5 053 223 64 582 64 582 64 586 424 106 424 090 1 007 782
Roots 14 089 820 14 089 820 14 089 820 14 114 14 114 14 114 14 146 14 146 14 146
Inversion 2 005 620 2 005 620 2 005 620 7 100 7 100 7 100 14 238 14 238 14 238
Zeroing 335 772 338 076 16 614 334 848 334 852 0 334 850 390 922 0
Filling 25 421 134 25 448 910 27 876 551 348 804 348 804 348 800 381 726 390 926 440 068
Gaussian 793 189 167 329 896 718 17 098 761 334 860 344 069 73 728 381 726 390 934 392 802
Copy 456 603 458 908 508 421 522 244 522 248 552 244 691 554 700 746 1 142 442
PKgen 840 551 389 377 406 084 66 463 458 667 722 676 931 667 718 691 678 700 894 1 242 574
Controlbits 449 397 559 449 397 559 449 424 663 56 948 56 948 56 948 90 854 90 854 90 854
KeyGen 1 316 632 015 853 486 710 542 756 873 691 375 700 584 733 323 691 662 700 584 1 242 558
F i g u r e 4 . 1 0 – Génération des clés : comparaison des performances sur trois architectures et leurs jeux d’instructions :
RISC-V standard, avec opérations vectorielles et des opérations en cache. Balise d’optimisation du compilateur -O3.
121
122 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
De telles opérations devraient être très rapides avec des opérations en cache.
Cependant, d’autres opérations nécessitent d’échanger de multiples éléments de
place, par exemple pour les trier, ce qui ne peut pas être fait efficacement à cause
des contraintes du calcul bit-line.
La solution proposée dans la littérature, est comme attendu un co-processeur, car
il a été prouvé que ceux-ci permettent une implémentation très performante de ces
opérations d’échange et de tri [Kohútka 2017]. Pour se tenir à notre approche généra-
liste, on peut imaginer évaluer la capacité des mémoires à accès multi-dimensionnel
pour résoudre ce problème. Cependant, la taille des données qu’il faudrait transposer
de multiples fois au cours du calcul pourrait se révéler bien trop grand pour atteindre
des performances intéressantes. De plus, des architectures avec des mémoires à accès
multi-dimensionnel larges ne semblent pas être accessibles dans un futur proche.
Par ailleurs, on peut évaluer l’impact sur les besoins d’allocation de mémoire :
la matrice bitpackée du code de référence utilisait 768 × 3488 bits, mais pour l’ali-
gnement en cache, elle doit utiliser 768 × 8 × 512 bits. L’augmentation théorique
est donc de 17.4%. Cependant, nous avons ajouté des contraintes sur les adresses
EXPÉRIMENTATION 123
3488×16
L
GF_mul ...
inv
12 16
...
3488
transpose
Public Key
12×8 8×12
64×12
(repeat 64 times)
L 12
3488
inv 12
...
12
BA_MUL
12
pour éviter les collisions empêchant les calculs en cache. De plus, le compilateur
semble vouloir séparer les opérandes de calcul en cache des autres variables et l’aug-
mentation d’allocation mémoire mesurée est de 79.7%. Un contrôle plus précis de
l’emplacement devrait pouvoir réduire ce problème.
4.4.2.2 Encrypt
Les résultats de nos expériences sur le chiffrement sont présentés dans le tableau
4.4. On peut y voir qu’en effet, le fait de retirer le calcul de la multiplication sur
la partie identité de la matrice retire 22% du temps de calcul, ce qui correspond
parfaitement à la réduction de 22% de la taille des lignes de la matrice. Les variations
suivantes sont basées sur celle sans l’identité. Le calcul en cache permet de retirer
67% supplémentaires du temps de calcul. Si à la place, on décide de transposer les
calculs, on gagne 64% de temps de calcul. Cependant, si on transpose la matrice et
qu’on répartit les lignes pour augmenter l’efficacité du calcul en cache, on arrive à
un calcul 47.6 fois plus rapide (64 fois plus rapide que le code de référence).
Tout comme avec KeyGen, nous observons dans le tableau 4.5 que le nombre de
cycles économisés par le calcul en cache est stable autour de 2.25 millions de cycles,
et 700 000 cycles supplémentaires sont économisés grâce à la version transposée avec
calcul en cache. La conclusion est aussi la même : plus l’algorithme est optimisé
et plus les opérations arithmétiques sont rapides, plus le goulot d’étranglement de-
vient le mouvement des données entre la mémoire et le cache et les performances
sont ainsi bien meilleures dans des mémoires larges.
Cela indique clairement que si on ne trouve pas de réduction majeure du temps
de calcul de l’algorithme controlbits() grâce au changement d’architecture, la
clé publique aurait toutes les raisons d’être transposée et paddée durant KeyGen,
qui est de toute façon lent (à cause de controlbits()). Notre simulation a montré
qu’une transposition très naïve (bit à bit) coûte 29 542 317 cycles, et que le nombre
de cycles gagnés dans le chiffrement est de 687 607 cycles. Ce compromis donne
pour un grand cache un chiffrement 15.5 fois plus rapide, contre un ralentissement
de la génération de clé de 5.4% uniquement, qui pourrait être bien moindre avec
une transposition optimisée voire accélérée matériellement. De plus KeyGen ne doit
être exécuté qu’une fois, contrairement à Encrypt. En suivant la même logique, la
transposition devrait aussi être faite pour les architectures classiques, sans impact
sur la taille de clé, le bitpacking étant toujours possible.
4.5.1.2 BIKE
BIKE [teambikesuite.org 2022] est une troisième primitive basée sur les codes
correcteurs d’erreurs. Plus précisément, elle est basée sur les codes Quasi-Cycliques
à matrices de contrôle de parité modérément denses. Les deux opérations cruciales
APPLICABILITÉ AUX AUTRES CANDIDATS DU NIST 127
pour cette primitive sont une inversion modulaire et une multiplication polynomiale.
Nous n’avons pas trouvé de stratégie directe permettant une accélération de l’inver-
sion modulaire. Cependant, dans sa forme actuelle, la multiplication est implémentée
selon l’algorithme de Karatsuba, qui a un mode portable et un mode vectoriel. Il
pourrait être envisagé de remplacer la multiplication par la même que HQC, si
celle-ci était appuyée par un opérateur matériel de décalage entre des opérandes très
grands (la longueur des éléments multipliés h1 et h−10 vont de 12 323 bits à 40 973
selon le jeu de paramètres).
4.5.1.3 SIKE
La primitive SIKE [Azarderakhsh 2017] est basée sur des isogénies de courbes
elliptiques de Montgomery avec le corps Fp2 , où p est de la forme 2e2 3e3 − 1 et est
codé sur un nombre de bits allant de 434 à 751 bits selon le jeu de paramètres.
Comme les additions et multiplications de points de courbes elliptiques sont des
opérations de grands nombres, ce sont précisément l’inverse de ce pourquoi le calcul
en mémoire est adapté (beaucoup d’opérations sur de petits éléments). Il n’y a
aucun gain possible grâce à l’amélioration du parallélisme dû au calcul en cache.
4.5.1.4 CRYSTALS-KYBER
Ces polynômes ont des degrés allant de N = 509 à 821 selon le jeu de paramètres.
Les coefficients appartiennent à Zq avec log2 (q) = 11, 12 ou 13 et sont donc écrits
sur 11 à 13 bits et stockés sur 2 octets. Dans leur méthode de stockage actuel, très
peu d’opérations pourraient bénéficier de calculs en bit-line, comme par exemple
une parallélisation de l’application du masque, qui permet de passer à 0 les bits
supplémentaires dans l’écriture sur deux octets des éléments de Zq , pour faire ainsi
les opérations de modulo en fin d’opération.
Pour aller plus loin, il serait possible d’écrire les coefficients verticalement en
mémoire. Cela débloquerait des améliorations possibles sur plusieurs sub-routines
avec une architecture capable d’opérations bit-array, notamment sur les routines
poly_Z3_to_Zq, poly_trinary_Zq_to_Z3, ainsi que sur les autres applications pa-
rallèles sur les coefficients.
On s’attend à ce que ces opérations aient une latence augmentée due à la pro-
fondeur de leur circuit binaire pour les opérations bit-array, mais celle-ci serait
compensée sur l’algorithme complet par l’augmentation du débit (à l’image des
résultats présentés dans [Eckert 2018]). Cette latence ne devrait pas être probléma-
tique dans des environnements mono-thread « in order » où le calcul est effectué sur
tous les coefficients des polynômes avant de démarrer la prochaine routine. Dans le
cas de NTRU, cette transformation doit être évaluée car le niveau de parallélisme
(821 bits dans le meilleurs cas) ne permet pas forcément de compenser les opérations
supplémentaires.
Cependant, si on combine ceci avec les opérateurs de décalage entre lignes que
nous avons évoqué plus tôt, il est possible de changer l’algorithme de calcul de
convolution de polynômes. Pour simplifier le code, nous allons supposer que N est
un multiple de la taille d’une ligne de cache, disons 1024 (pour garder l’ordre de
grandeur), et que les éléments sont stockés verticalement.
1 f o r ( k =0; k<NTRU_N; k++){
2 r−>c o e f f s [ k ] = 0 ;
3 f o r ( i =1; i <NTRU_N−k ; i ++)
4 r−>c o e f f s [ k ] += a−>c o e f f s [ k+i ] ∗ b−>c o e f f s [NTRU_N−i ] ;
5 f o r ( i =0; i <k+1; i ++)
6 r−>c o e f f s [ k ] += a−>c o e f f s [ k−i ] ∗ b−>c o e f f s [ i ] ;
7 }
Ainsi, si le débit est suffisamment amélioré, cela créerait une motivation pour
réévaluer les paramètres de sécurité au profit d’éléments plus petits mais en plus
grand nombre, avec un degré alors proche mais inférieur à un multiple de la taille
d’une ligne de cache.
4.5.2.3 Saber
Saber [KULeuven-COSIC 2021] est une primitive basée sur le problème Learning
With Rounding. Tout comme pour NTRU, les éléments principaux du cryptosystème
sont des polynômes et l’opération cruciale est la multiplication de ces polynômes,
nécessaire à la multiplication rapide de matrices et vecteurs de polynômes.
La multiplication est faite avec une combinaison des algorithmes Toom-Cook,
Karatsuba et la multiplication classique. La transposition des données avec leur
taille et nombre actuels ne permettrait aucun gain de calcul en mémoire, comme
aucun opérande ne serait plus grand que le degré du polynôme c’est-à-dire 256 bits
(taille plus adaptée au calcul vectoriel) et les coefficients étant écrits sur 13 bits pour
tous les jeux de paramètres (c’est la taille de la matrice et du vecteur qui varie).
Il faudrait une transformation très forte de la primitive pour lui permettre de
profiter de calcul bit-array, soit des paramètres beaucoup plus grands ou réévalués
au profit de degrés plus grands et d’éléments plus petits.
4.5.2.4 FrodoKEM
FrodoKEM [Bos 2016] est un cryptosystème classique basé sur le problème LWE
avec pour objectif la simplicité de son implémentation. La clé publique est générée
via une expansion de graine aléatoire : soit SHAKE soit AES. Elle possède n =
640/976/1344 lignes et colonnes d’éléments de Zq , avec log2 (q) = 15/16/16, chacun
étant alors stocké sur deux octets. Tout comme pour les autres primitives basées sur
des variantes de LWE, l’opération la plus importante est la multiplication matrice-
vecteur.
En bref rappel, KeyGen génère une grande matrice A de taille n-par-n, une
matrice verticale S de taille n-par-8, une matrice d’erreurs E verticale de taille n-
par-8 et calcule B ← AS + E. Les graines permettant de générer A et B deviennent
les clés publiques et S la clé secrète. Encrypt choisit une matrice horizontale S ′
de taille 8-par-n, une matrice d’erreurs E ′′ de taille 8-par-n, et pour un message
130 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
... ...
CSET
Matrix
BA_MUL
i BA_ADD
Vector Result
4.5.3 Récapitulatif
De la même manière que toutes les primitives ont été par le passé revisitées
afin de profiter du calcul vectoriel, elles devraient être à nouveau repensées afin de
prendre en compte un accès à du calcul parallèle en mémoire. En résumé : on préfère
avoir plus d’éléments si les calculs sur ceux-ci sont plus simples. Pour l’application
des différentes améliorations évoquées du calcul en mémoire, elles sont regroupées
sur le tableau 4.6.
Cycles Keys tried during attack Impossible keys for SCA measures
for one
Execution
All possible keys
(b) Lorsque l’architecture fait fuiter une moitié de la clé.
Le nombre de cycles, en tant que mesure des capacités de l’attaquant, est une
bonne métrique, mais je maintiens qu’une métrique sur le coût monétaire de
l’attaque serait plus approprié, surtout quand le matériel pour des attaques par
canaux auxiliaires peut en avoir un très élevé. En effet l’efficacité de l’attaque
dépend de la précision de la mesure. Il y a un compromis entre le prix de
l’appareil de mesure et le nombre de mesures. Il en faudra plus pour établir des
statistiques permettant de compenser un matériel moins précis (quand c’est
possible). Ou, à l’inverse il faudra payer un prix d’entrée très élevé pour un
appareil de mesure à la pointe.
physiquement, mais demandent un outillage précis, d’autant que des facteurs exté-
rieurs peuvent plus facilement créer des variations dans les mesures.
Défensivement, il y a des pistes de recherche en cours d’exploration pour rendre
les architectures de plus en plus hermétiques aux attaques par canaux auxiliaires
[Standaert 2010]. Il est possible que les mesures proposées ne soient pas adaptées
à toutes les situations (light-weight, temps réel, low-cost...). On peut donc par
précaution ne pas se reposer sur la sécurité fournie par la technologie mémoire pour
une primitive se voulant généraliste.
L’autre défense envisagée suppose que des fuites auront inévitablement lieu. Il
convient alors de faire en sorte que celles-ci ne soient pas exploitables par l’attaquant
(masquage des variables secrètes). Ces méthodes étant coûteuses en performance,
nous allons d’abord étudier les moyens avec lesquels l’attaquant pourrait exploiter
ces informations.
128 1 0, 1
(a) Début de l’algorithme, aucune information
16 1 0, 1
17-24 0 1111 1111
.. .. ..
. . .
opération, la somme de la colonne entropie H est plus petite que le nombre d’essais
que peut faire l’attaquant avec sa capacité d’attaque.
Pour rappel, l’entropie d’une distribution a pour propriété notable que pour une
distribution sur n valeurs, elle est maximale et vaut log2 (n) si cette distribution
est uniforme. Elle vaut à l’inverse 0 sur une distribution concentrée sur une
seule valeur. Un dé à 8 faces a une entropie de 3 s’il est équilibré. Si le dé
est truqué, son entropie sera plus basse. C’est une mesure d’« uniformité » de
la distribution. Si l’entropie est très faible, on peut « parier » avec plus de
confiance sur le résultat. Similairement le brute-force peut se faire en « pariant »
en premier sur les clés les plus probables.
Il n’y a donc pas à suivre quelles sont les valeurs possibles des variables secrètes,
mais uniquement leur nombre. On peut reprendre les tableaux précédents sans liste
des valeurs, en travaillant de manière uniquement statistique. Tant que l’entropie
totale de la clé (somme de la colonne) est supérieure à la capacité de l’attaquant,
même un attaquant « parfait » n’a pas d’attaque. Si ce n’est pas le cas, il faut que
la somme des entropies des opérandes de certaines opérations soit supérieure à la
limite de calcul pour que l’attaquant « réel » n’ait pas d’attaque.
Ces modèles d’attaquants sont similaires à celui trouvé dans [Köpf 2007], il
cherche à minimiser l’entropie de partitions de la clé. Nous supposons juste en
plus que l’information est le poids de Hamming des bit-flips de toutes les variables
au cours du calcul, ce qui enlève la complexité théorique de gérer une attaque
adaptative.
En vue de la création d’un outil d’analyse de résistance aux canaux auxiliaires,
le travail à entreprendre serait d’établir l’entropie perdue pour chaque opération
d’une architecture connue, par exemple les opérations binaires classiques :
— Xor(r1 , r2 ) → r3
— And(r1 , r2 ) → r3
— Or(r1 , r2 ) → r3
— Not(r1 ) → r2
— Copy(r1 ) → r2
ÉVALUATION DES IMPACTS SUR LA SÉCURITÉ DES CANAUX AUXILIAIRES 137
— AddWithCarry(r1 , r2 ) → r3
— AddWithoutCarry(r1 , r2 ) → r3
— ModMult(r1 , r2 ) → r3
— Mult(r1 , r2 ) → (r3 , r4 )
Ainsi que des opérations plus complexes ou composées comme :
— AddMult(r1 , r2 , r3 ) → (r4 , r5 )
— ModAddMult(r1 , r2 , r3 ) → r4
Ces entropies doivent être évaluées pour chacune de ces opérations, pour chaque
taille de registre, pour plusieurs modes possibles, tout en prenant en compte pour
chacun des registres si la variable qu’il contient est secrète (H > 0) ou publique
(H = 0), ainsi que si certains des registres d’entrée sont aussi des registres de sortie.
Pour certaines de ces opérations comme Xor, des formules analytiques peuvent
être trouvées facilement pour donner des formules faciles à calculer selon la taille
des registres. La figure 4.14 ci-dessous montre que l’entropie de r1 perdue lors de
Xor(r1 , r2 ) → r2 est linéaire dans le logarithme de la taille du registre. Mais pour
d’autres fonctions moins évidentes, on peut recourir à l’énumération et l’application
directe de la formule de l’entropie de Shannon. Lorsque ce n’est pas possible, par
exemple pour AddMult qui implique un total de 5 registres (si ce sont des registres
de 32 bits c’est déjà 2160 possibilités), on peut au moins chercher à donner une
approximation de la quantité d’information apprise en extrapolant les statistiques
obtenues sur un nombre réduit de calculs avec des registres tirés aléatoirement.
7
30
25
Percentage of Entropy lost
6
20
Entropy loss
5
15
4 10
5
3
0
24 26 28 210 212
Size of registers
F i g u r e 4 . 1 4 – Entropy loss during Xor(r1 , r2 ) → r2 in the Hamming Weight
model
138 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
1.5
1.0
0.5
0.0
21 22 23 24 25 26
Size of registers
On voit bien ainsi que lors du traitement d’une donnée, plus il y a de bruit
traité en même temps que la donnée, moins des informations sur celle-ci vont fuiter.
Cependant, on sera contraint pour certaines opérations de laisser aussi des champs
inoccupés pour garder la justesse du calcul, comme pour la multiplication par
exemple.
Variables plus grandes que les opérandes : Ce mode de traitement bruité
peut être transposé aux variables plus grandes que la taille de l’opérande. L’objectif
est de répartir le calcul en divisant la variable sur plusieurs opérandes, de la manière
dont opérations d’addition et de multiplication sont gérées dans les bibliothèques
de traitement de grands nombres.
Classiquement, dans ces librairies les nombres sont écrits en remplissant entière-
ment des registres à partir des bits les plus faibles. Par exemple, sur une architecture
64 bits, une variable de 80 bits aura ses 16 bits de poids fort écrits sur 16 bits parmi
64 et les 64 bits de poids faible remplissent entièrement un autre mot mémoire.
3.0
2.5
2.0
1.5
20 30 40 50 60
Data bits in last 64-bit register
7
Entropy loss
3
20 30 40 50 60
Data bits in last 64-bit register
tionnelle permet de vérifier cela par exemple pour le xor et indique que la fuite
totale d’information est minimale quand les données sont réparties équitablement
entre les opérandes (pour un nombre d’opérandes fixe). En effet on comprend qu’à
l’inverse, une partie de données fortement bruitée fuite très peu d’informations, mais
en contrepartie la partie peu bruitée en perd beaucoup.
Il reste donc à évaluer quel est le nombre de registres optimal pour représenter
une certaine donnée. On remarque sur la figure 4.17 qu’il y a un compromis : soit la
proportion des registres réservés aux données est forte et il peut y en avoir peu mais
beaucoup d’informations fuitent, soit elle est faible et peu d’informations fuitent,
mais le nombre de registres nécessaires explose. Comme ce nombre contraint aussi
les performances de calcul, il vaut certainement mieux pencher pour plutôt peu
de bruit. Par exemple avec 75% de données, on n’a plus qu’un tiers de la fuite
d’information pour les architectures 64 bits.
Percentage of entropy loss (base: 0 noise bits)
40 20
10
20 0
0 20 40 60 80 100
Percentage of register allocated to data
...
Data Noise
16 16
(a) Bruit positionné après les données (b) Bruit réparti avec les données
Dans notre modèle où l’attaquant n’est limité que par la déduction de quelles
valeurs sont possibles pour les variables secrètes, le calcul en mémoire semble donc
constituer un avantage majeur. En effet, il permet une fuite d’information moindre
en proportion et de créer plus d’information mutuelle entre les variables. Cela crée
des opérations à partir desquelles l’attaquant ne peut pas déduire d’information
à cause de leur taille. Cela permet aussi d’inclure des bits de bruit au calcul, qui
réduit les fuites de certaines opérations sur des variables plus petites, ou réparties
sur plusieurs opérandes. Ces principes nécessitent cependant des études et outils
de simulation beaucoup plus poussés et leur incorporation progressive au niveau
matériel afin, comme les calculs en mémoire, de devenir petit à petit transparents
pour un développeur.
4.7 Conclusion
Le point le plus important à retenir de ce chapitre est que l’évolution des
architectures et l’intégration d’accélérateurs matériels génériques tels que le calcul
en mémoire auront des effets secondaires positifs sur les performances de certaines
primitives post-quantiques et leur sécurité par canaux auxiliaires.
En particulier, nous nous sommes concentrés sur Classic McEliece, un chiffrement
asymétrique post-quantique qui est connu pour sa sécurité avec des petits chiffrés,
mais pour son temps de génération de clés plus grand que ses compétiteurs. Nos
résultats ont montré que KeyGen et Encrypt peuvent être améliorés grâce au calcul
en mémoire.
Pour pk_gen, être capable de calcul en cache permet une accélération pouvant
aller jusqu’à 12.6 fois. En conséquence, nous avons appris que des étapes de la
génération de la clé telles que Filling, qui pouvaient précédemment être considérées
comme négligeables pourraient bénéficier d’une adaptation de leur conception à ces
nouvelles architectures.
Pour Encrypt, nous avons montré que lorsque la clé publique est fournie dans
la forme transposée, ce nouveau type d’architecture peut entraîner une accélération
144 CHAPITRE 4. PIM ET PRIMITIVES POST-QUANTIQUES
Conclusion
Au travers de la présente thèse, nous avons cherché à étudier l’évolution des diffé-
rentes couches de la sécurité cryptographique à l’approche de l’ordinateur quantique.
Nous avons identifié les changements qui seront propres à chaque couche, chacune
constituant un cœur de sujets de recherche en tant que tel.
1. Au niveau de la couche utilisation, nous avons identifié une demande des utili-
sateurs d’avoir à la fois des services d’accès à une grande quantité de données
en simultané ainsi qu’une vie privée toujours plus protégée, notamment par
l’intraçabilité de la navigation.
2. Au niveau des protocoles, ceux d’entre eux qui étaient basés sur la commuta-
tivité des chiffrements peuvent subir des attaques d’ordinateurs quantiques,
capables de résoudre le Hidden Subgroup Problem dans les groupes Abéliens.
En conséquence, les protocoles d’interception réglementée ne sont plus sécuri-
sés, à l’image d’une grande partie des systèmes multipartites complexes.
3. Au niveau des primitives, c’est la cryptographie asymétrique qui est à changer.
La standardisation de nouvelles primitives est en cours. Il est certain que des
optimisations très poussées des nouveaux standards seront proposées.
4. Au niveau des architectures, on note l’arrivée de nouvelles techniques permet-
tant de doter les mémoires de capacités de calcul. D’un autre côté, les mesures
par canaux auxiliaires sont de plus en plus précises et permettent l’accès à de
plus en plus de variables secrètes des algorithmes.
Les modifications qui ont lieu dans chaque couche ont nécessairement un impact
sur les couches supérieures et inférieures. Nous avons donc cherché à illustrer le
besoin de cohérence transversale entre les différentes couches. Pour cela, nous avons
choisi un problème lié spécifiquement à chaque interface entre deux couches. Les
contributions que nous avons apporté au cours de cette thèse ont été représentées
sur la figure 4.19.
Protocoles adaptés aux futures utilisations et aux futures primitives.
L’évolution de la consommation numérique implique la conception de nouveaux
protocoles, plus adaptés aux demandes. Les besoins d’anonymat et de livestreaming
mutualisé pouvaient sembler contradictoires. Nous avons choisi de développer un
protocole nouveau sur la base de Tor, conçu pour concilier ces exigences et aussi
prendre en compte la nécessité d’adapter les primitives utilisées au milieu post-
quantique.
Les primitives de chiffrements par attributs permettent la gestion du routage par
des groupes de noeuds. Cette transformation permet de se détacher de nombreuses
limites de Tor : la gestion complexe du Directory, la qualité de service limitée et la
possibilité de déconnexion, ainsi que le manque de capacités à lutter contre un noeud
malveillant. De plus, le changement de mode d’établissement de la connexion permet
148
QasTor
Mental with
Poker encapsulation
Specialized Standard PQ-ABE
Primitives Primitives
(FNAA)
Big Operands
Noisy Operations
et notamment l’intégration de calcul en mémoire, ont un impact fort sur les per-
formances des primitives. Parmi les plus étudiées actuellement, Classic McEliece
présente un parallélisme idéal à l’application de calcul en cache. Et nous avons pu
mettre en valeur les gains de performances très forts possibles avec celui-ci. Ces nou-
velles architectures vont jusqu’à permettre une nouvelle conception des primitives
autour de celles-ci et peuvent faire changer les jeux de paramètres optimaux. Pour
illustrer ce genre de répercussions, nous avons montré qu’un changement très fort
du chiffrement de Classic McEliece ainsi que du stockage de la clé est nécessaire
pour optimiser celui-ci pour le calcul en cache.
Inversement, les primitives et leurs problématiques de sécurité indiquent les
évolutions que peuvent prendre les architectures : nous avons montré qu’un grand
nombre de primitives post-quantiques profiteraient fortement de calcul vertical
en mémoire, ainsi que de moyens efficaces de transposer de grandes quantités de
données. De plus, pour réduire les fuites d’informations sur les variables secrètes
de ces architectures, celles-ci et les algorithmes devraient être adaptés à la gestion
d’opérandes plus grands, et contenant un mélange de données et de bruit. De
tels changement architecturaux auront par rebond des conséquences au niveau des
algorithmes, qui devront adapter la gestion de leurs variables pour profiter au plus
des défenses proposées tout en optimisant les performances.
Perspectives.
Au cours des recherches, nous avons trouvé plusieurs pistes d’exploration propres
à chacun des sujets.
— QasTor est encore à l’état de preuve de concept. Il y a encore des algorithmes
du protocole qui doivent être améliorés, mais cela nécessite de disposer de
données de test, tels que des moyennes d’utilisation de bande passante, des
valeurs précises de temps d’exécution des algorithmes, etc.
— Notre méthode de transfert de protocoles de chiffrement post-quantique
manque d’un exemple concret. Certes, nous avons grâce à nos outils pu dé-
velopper un nouveau protocole pour les voitures connectées, mais il serait
certainement plus intéressant de reprendre un protocole déjà existant et de le
transformer pour le rendre post-quantique.
— Notre évaluation des primitives post-quantiques sur les architectures intégrant
du calcul en mémoire est limitée par le manque de calcul vertical et de mémoires
multi-dimensionnelles. Incorporer ceux-ci ainsi que la gestion de l’entropie des
variables secrètes dans notre simulateur permettrait de pousser la discussion
vers de nouvelles pistes d’amélioration.
Cette manière d’isoler les sujets n’est pas idéale, comme nous l’avons déjà illustré,
il faudrait intégrer ces améliorations dans une vision encore plus globale : l’adoption
éventuelle d’un protocole comme QasTor, comme déjà évoqué, est très dépendant de
la qualité de service proposée, et donc notamment des performances des primitives
choisies, et celles-ci sont aussi dépendantes des architectures. Pourrait-on essayer
de construire la primitive PQ-ABE la plus adaptée à QasTor ? Si des architectures
CONCLUSION 151
[Bos 2016] Bos, J., Costello, C., Ducas, L., Mironov, I., Naehrig, M., Nikolaenko,
V., Raghunathan, A. et Stebila, D. Frodo : Take off the ring ! practical,
quantum-secure key exchange from LWE. Dans Proceedings of the 2016
ACM SIGSAC conference on computer and communications security, pages
1006–1018, 2016. (Cité en pages 129 et 144.)
[Brown 2022] Brown, S. RISC-V Is Thriving : Here’s What You Need to Know.
novembre 2022. [Online] (Cité en page 117.)
https://community.cadence.com/cadence_blogs_8/b/corporate/pos
ts/riscv.
[Bub 2016] Bub, J. Bananaworld : Quantum mechanics for primates. Oxford
University Press, 2016. (Cité en page 14.)
[Buffoni 2022] Buffoni, L., Gherardini, S., Zambrini Cruzeiro, E. et Omar, Y.
Third Law of Thermodynamics and the Scaling of Quantum Computers.
Phys. Rev. Lett., vol. 129, page 150602, Oct 2022. [Online] (Cité en
page 96.)
https://link.aps.org/doi/10.1103/PhysRevLett.129.150602.
[Bultel 2022] Bultel, X. et Onete, C. Pairing-free secure-channel establishment in
mobile networks with fine-grained lawful interception. Dans Proceedings of
the 37th ACM/SIGAPP Symposium on Applied Computing, pages
968–970, 2022. (Cité en page 59.)
[Bump 2022] Bump, P. Analysis | Timeline : How two extremist groups planned
for Jan. 6. Washington Post, 2022. [Online] (Cité en page 28.)
https://www.washingtonpost.com/politics/2022/03/15/timeline-ho
w-two-extremist-groups-planned-jan-6/.
[Canada 2019] Canada. Criminal Code R.S., 1985, c.C-46, s.184 1993, c.40, s.3
2004, c.12, s.4 2019, c.25, s.64. 2019. [Online] (Cité en page 58.)
https:
//laws-lois.justice.gc.ca/eng/acts/C-46/page-26.html#s-184.2.
From : Government of Canada, Accessed : 2023-01-14.
[Castryck 2022] Castryck, W. et Decru, T. An efficient key recovery attack on
SIDH (preliminary version). 2022. [Online] (Cité en pages 65 et 67.)
https://eprint.iacr.org/2022/975.
https://eprint.iacr.org/2022/975.
[Cattafesta 2021] Cattafesta, F. Une nouvelle loi européenne veut la peau du
chiffrement des messageries. 2021. [Online] (Cité en page 28.)
https://www.macg.co/services/2021/07/une-nouvelle-loi-europeen
ne-veut-la-peau-du-chiffrement-des-messageries-122913.
[Cayre 2021] Cayre, R., Galtier, F., Auriol, G., Nicomette, V., Kaâniche, M. et
Marconato, G. InjectaBLE : Injecting malicious traffic into established
Bluetooth Low Energy connections. Dans 2021 51st Annual IEEE/IFIP
International Conference on Dependable Systems and Networks (DSN),
pages 388–399. IEEE, 2021. (Cité en page 13.)
158 BIBLIOGRAPHIE
[Jia 2011] Jia, H.-Y., Wen, Q.-Y., Song, T.-T. et Gao, F. Quantum protocol for
millionaire problem. Optics communications, vol. 284, no. 1, pages 545–549,
2011. (Cité en page 94.)
[Kent 1979] Kent, S. T. Protocol design considerations for network security. Dans
Interlinking of Computer Networks, pages 239–259. Springer, 1979. (Cité en
page 58.)
[Khayat 2008] Khayat, S. H. Using commutative encryption to share a secret.
Electrical Engineering Department, Ferdowsi University of Mashhad, Iran,
2008. (Cité en pages 62 et 64.)
[Kohútka 2017] Kohútka, L. et Stopjaková, V. A new efficient sorting architecture
for real-time systems. Dans 2017 6th Mediterranean Conference on
Embedded Computing (MECO), pages 1–4, juin 2017. (Cité en page 122.)
[KULeuven-COSIC 2021] KULeuven-COSIC. SABER - SABER is a Module-LWR
based KEM submitted to NIST, Dec 2021. (Cité en page 129.)
[Kumar 2015] Kumar, S. Fundamental limits to Moore’s law. arXiv preprint
arXiv :1511.05956, 2015. (Cité en page 100.)
[Kuperberg 2005a] Kuperberg, G. A subexponential-time quantum algorithm for
the dihedral hidden subgroup problem. SIAM Journal on Computing, vol. 35,
no. 1, pages 170–188, 2005. Publisher : SIAM. (Cité en page 21.)
[Kuperberg 2005b] Kuperberg, G. A subexponential-time quantum algorithm for
the dihedral hidden subgroup problem. SIAM Journal on Computing, vol. 35,
no. 1, pages 170–188, 2005. (Cité en page 67.)
[Kuperberg 2011a] Kuperberg, G. Another subexponential-time quantum algorithm
for the dihedral hidden subgroup problem. arXiv preprint arXiv :1112.3333,
2011. (Cité en page 21.)
[Kuperberg 2011b] Kuperberg, G. Another subexponential-time quantum algorithm
for the dihedral hidden subgroup problem. arXiv preprint arXiv :1112.3333,
2011. (Cité en page 67.)
[Kuzmin 2017] Kuzmin, A., Markov, V., Mikhalev, A., Mikhalev, A. et Nechaev, A.
Cryptographic algorithms on groups and algebras. Journal of Mathematical
Sciences, vol. 223, no. 5, pages 629–641, 2017. (Cité en page 65.)
[Köpf 2007] Köpf, B. et Basin, D. An information-theoretic model for adaptive
side-channel attacks. Dans Proceedings of the 14th ACM conference on
Computer and communications security - CCS ’07, page 286, Alexandria,
Virginia, USA, 2007. ACM Press. (Cité en page 136.)
[Larsson 1957] Larsson, C. Telecom Companies as Crime Investigators. Stockholm
Institute for Scandianvian Law 1957-2010, 1957. (Cité en page 58.)
[Lesage 2019] Lesage, N. Qu’est-ce que la « suprématie quantique » que Google
aurait atteinte ? septembre 2019. [Online] (Cité en page 96.)
https://www.numerama.com/tech/550760-quest-ce-que-la-supremati
e-quantique-que-google-aurait-atteinte.html.
162 BIBLIOGRAPHIE
[Migliore 2019] Migliore, V., Gérard, B., Tibouchi, M. et Fouque, P.-A. Masking
Dilithium. Dans Deng, R. H., Gauthier-Umaña, V., Ochoa, M. et Yung, M.,
editeurs, Applied Cryptography and Network Security, pages 344–362,
Cham, 2019. Springer International Publishing. (Cité en pages 25 et 142.)
[Migliore 2022] Migliore, V. et Nugier, C. RISC-V simulator with PIM operations.
2022. [Online] (Cité en pages 99 et 118.)
https://gitlab.laas.fr/vmiglior/risc-v-simulator.
[Moldovyan 2010] Moldovyan, D. Non-commutative finite groups as primitive of
public key cryptosystems. Quasigroups and Related Systems, vol. 18, no. 2,
pages 165–176, 2010. (Cité en page 65.)
[Moldovyan 2019] Moldovyan, D. N., Moldovyan, A. A., Phieu, H. N. et Nguyen,
M. H. Post-quantum commutative encryption algorithm. Dans
Context-Aware Systems and Applications, and Nature of Computation and
Communication, pages 205–214. Springer, 2019. (Cité en pages 62, 65
et 67.)
[Moore 1998] Moore, G. E. Cramming more components onto integrated circuits.
Proceedings of the IEEE, vol. 86, no. 1, pages 82–85, 1998. (Cité en
page 100.)
[Müller 2008] Müller, S., Katzenbeisser, S. et Eckert, C. Distributed
Attribute-Based Encryption. Dans ICISC, 2008. (Cité en page 53.)
[Nayak 2008] Nayak, C., Simon, S. H., Stern, A., Freedman, M. et Sarma, S. D.
Non-Abelian Anyons and Topological Quantum Computation. Reviews of
Modern Physics, vol. 80, no. 3, pages 1083–1159, septembre 2008. [Online]
(Cité en page 14.)
http://arxiv.org/abs/0707.1889. arXiv :0707.1889 [cond-mat].
[Newlin 2016] Newlin, M. MouseJack, KeySniffer and Beyond : Keystroke Sniffing
and Injection Vulnerabilities in 2.4 GHz Wireless Mice and Keyboards.
DEFCON, 2016. (Cité en page 13.)
[Niederreiter 1986] Niederreiter, H. Knapsack-type cryptosystems and algebraic
coding theory. Prob. Contr. Inform. Theory, vol. 15, no. 2, pages 157–166,
1986. (Cité en page 107.)
[NIST 2019] NIST. Round 2 of the NIST PQC "Competition" - What was NIST
Thinking ?, 2019. Accessed : 2021-08-01. (Cité en page 97.)
[NIST 2022a] NIST. PQC Standardization Process : Announcing Four Candidates
to be Standardized, Plus Fourth Round Candidates, 2022. Accessed :
2022-09-6. (Cité en pages 68 et 97.)
[NIST 2022b] NIST. Submission Requirements and Evaluation Criteria for the
Post-Quantum Cryptography Standardization Process. 2022. [Online] (Cité
en page 133.)
https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptog
raphy/documents/call-for-proposals-final-dec-2016.pdf.
[NJIT 2021] NJIT. PALISADE Lattice Cryptography Library (release 1.11.2), mai
2021. (Cité en page 53.)
164 BIBLIOGRAPHIE
[Nugier 2019] Nugier, C., Remi, A., Vincent, M. et Eric, A. Multi-Locking and
Perfect Argument Order : Two Major Improvements of Attribute-Based
Encryption (Long Paper). 2019. [Online] (Cité en pages 49 et 65.)
https://eprint.iacr.org/2019/1219.
https://eprint.iacr.org/2019/1219.
[Nugier 2022] Nugier, C. et Alata, E. Brevet prioritaire France FR2205615,
10/06/2022. (Cité en page 36.)
[Nuñez 2019] Nuñez, D., Agudo, I. et Lopez, J. Escrowed decryption protocols for
lawful interception of encrypted data. IET Information Security, vol. 13,
no. 5, pages 498–507, 2019. [Online] (Cité en page 59.)
https:
//onlinelibrary.wiley.com/doi/abs/10.1049/iet-ifs.2018.5082.
_eprint : https ://onlinelibrary.wiley.com/doi/pdf/10.1049/iet-ifs.2018.5082.
[O’donnell 2018] O’donnell, R. 15-859BB : Quantum Computation and Quantum
Information 2018. 2018. [Online] (Cité en page 14.)
https://www.cs.cmu.edu/~odonnell/quantum18/.
[Panchenko 2012] Panchenko, A., Lanze, F. et Engel, T. Improving performance
and anonymity in the Tor network. Dans 2012 IEEE 31st International
Performance Computing and Communications Conference (IPCCC), pages
1–10. IEEE, 2012. (Cité en page 34.)
[Peng 2019] Peng, W., Wang, B., Hu, F., Wang, Y., Fang, X., Chen, X. et Wang,
C. Factoring larger integers with fewer qubits via quantum annealing with
optimized parameters. SCIENCE CHINA Physics, Mechanics & Astronomy,
vol. 62, no. 6, pages 1–8, 2019. (Cité en page 18.)
[Pries 2008] Pries, R., Yu, W., Fu, X. et Zhao, W. A new replay attack against
anonymous communication networks. Dans 2008 IEEE International
Conference on Communications, pages 1578–1582. IEEE, 2008. (Cité en
page 33.)
[Project 2022] Project, T. T. Welcome to Tor Metrics. 2022. [Online] (Cité en
page 30.)
https://metrics.torproject.org/.
[Regev 2003] Regev, O. Quantum Computation and Lattice Problems. avril 2003.
[Online] (Cité en page 21.)
http://arxiv.org/abs/cs/0304005. arXiv :cs/0304005.
[Regev 2004a] Regev, O. A subexponential time algorithm for the dihedral hidden
subgroup problem with polynomial space. arXiv preprint quant-ph/0406151,
2004. (Cité en page 21.)
[Regev 2004b] Regev, O. A subexponential time algorithm for the dihedral hidden
subgroup problem with polynomial space. arXiv preprint quant-ph/0406151,
2004. (Cité en page 67.)
[Rieck 2022] Rieck, K. Influential Security Papers. 2022. [Online] (Cité en
page 18.)
https://www.sec.tu-bs.de/~konrieck/topnotch/crypto_papers.html.
CONCLUSION 165
[Rosenzweig 1946] Rosenzweig, M. L. Law of Wire Tapping. Cornell LQ, vol. 32,
page 514, 1946. (Cité en page 58.)
[Ruiz 2020] Ruiz, P. Sécurité : le Conseil de l’UE s’apprête à adopter une
résolution visant à forcer l’introduction de portes dérobées au sein des
applications de messagerie chiffrées pour lutter contre la pédophilie. 2020.
[Online] (Cité en page 28.)
https://securite.developpez.com/actu/310269/Securite-le-Consei
l-de-l-UE-s-apprete-a-adopter-une-resolution-visant-a-forcer
-l-introduction-de-portes-derobees-au-sein-des-applications-de
-messagerie-chiffrees-pour-lutter-contre-la-pedophilie/.
[Sahai 2012] Sahai, A., Seyalioglu, H. et Waters, B. Dynamic credentials and
ciphertext delegation for attribute-based encryption. Dans Annual
Cryptology Conference, pages 199–217. Springer, 2012. (Cité en page 92.)
[Saleh 2018] Saleh, S., Qadir, J. et Ilyas, M. U. Shedding light on the dark corners
of the internet : A survey of tor research, volume 114. Elsevier, 2018. (Cité
en page 31.)
[Schwabe 2021] Schwabe, P. Crystals-cryptographic suite for algebraic lattices, Dec
2021. (Cité en pages 97, 127 et 144.)
[Scott 2011] Scott, M. On the Efficient Implementation of Pairing-Based Protocols.
Dans Chen, L., editeur, Cryptography and Coding, pages 296–308, Berlin,
Heidelberg, 2011. Springer Berlin Heidelberg. (Cité en page 49.)
[SemiColonWeb 2019] SemiColonWeb et Rodon, J. L’apocalypse quantique est-elle
pour demain ? juin 2019. [Online] (Cité en page 96.)
https://blog.revolve.team/2019/06/20/ordinateur-quantique-rsa/.
[Shamir 1979] Shamir, A. How to share a secret. Communications of the ACM,
vol. 22, no. 11, pages 612–613, 1979. (Cité en pages 51 et 88.)
[Shamir 1980] Shamir, A. On the power of commutativity in cryptography. Dans
International Colloquium on Automata, Languages, and Programming,
pages 582–595. Springer, 1980. (Cité en page 62.)
[Shamir 1981] Shamir, A., Rivest, R. L. et Adleman, L. M. Mental poker. Dans
The mathematical gardner, pages 37–43. Springer, 1981. (Cité en pages 12
et 94.)
[Shor 1999] Shor, P. W. Polynomial-time algorithms for prime factorization and
discrete logarithms on a quantum computer. SIAM review, vol. 41, no. 2,
pages 303–332, 1999. (Cité en pages 18, 66 et 96.)
[Shoup 2000] Shoup, V. Using hash functions as a hedge against chosen ciphertext
attack. Dans International Conference on the Theory and Applications of
Cryptographic Techniques, pages 275–288. Springer, 2000. (Cité en
page 84.)
[Siegl 2016] Siegl, P., Buchty, R. et Berekovic, M. Data-centric computing
frontiers : A survey on processing-in-memory. Dans Proceedings of the
Second International Symposium on Memory Systems, pages 295–308, 2016.
(Cité en pages 22 et 100.)
166 BIBLIOGRAPHIE
[Wang 2022] Wang, Y., Shacham, H., Paccagnella, R., Fletcher, C. W., He, E. T.
et Kohlbrenner, D. Hertzbleed : Turning Power Side-Channel Attacks Into
Remote Timing Attacks on x86, 2022. (Cité en pages 14 et 133.)
[Winter 2012] Winter, P. et Lindskog, S. How the great firewall of china is
blocking tor. USENIX-The Advanced Computing Systems Association,
2012. (Cité en page 32.)
[Witkowski 2022] Witkowski, W. ’Moore’s Law’s dead,’ Nvidia CEO Jensen Huang
says in justifying gaming-card price hike. 2022. [Online] (Cité en page 100.)
https://www.marketwatch.com/story/moores-laws-dead-nvidia-ceo-
jensen-says-in-justifying-gaming-card-price-hike-11663798618.
Section : Industries.
[Xu 2019] Xu, D. Commutative encryption and data hiding in HEVC video
compression. IEEE Access, vol. 7, pages 66028–66041, 2019. (Cité en
pages 64 et 93.)
[Zeutro 2018] Zeutro. openabe, 2018. (Cité en pages 40 et 52.)
[Zhang 2011] Zhang, X. Reversible data hiding in encrypted image. IEEE signal
processing letters, vol. 18, no. 4, pages 255–258, 2011. (Cité en pages 64
et 93.)
[Zhang 2013] Zhang, X. Commutative reversible data hiding and encryption.
Security and Communication Networks, vol. 6, no. 11, pages 1396–1403,
2013. (Cité en pages 64 et 93.)
Adaptation d’Outils Cryptographiques pour un Contexte
Post-Quantique
Résumé :
La cryptographie est utilisée pour protéger la vie privée de tous quotidiennement
lors de la navigation sur Internet. On observe de multiples changements en cours ces
dernières années, dûs en partie à la possible arrivée prochainement d’ordinateurs
quantiques capables de mettre en danger certains de nos chiffrements actuels.
On remarque quatre principaux enjeux associés à ces changements :
1. L’adaptation des primitives, qui doivent être remplacées par de nouvelles,
post-quantiques.
2. L’adaptation des protocoles, qui parfois reposent aussi sur des propriétés
vulnérables aux ordinateurs quantiques.
3. L’évolution des habitudes des utilisateurs, pour lesquels sont conçus ces proto-
coles, notamment impliquant une consommation numérique plus importante
(flux vidéos en direct) et une demande de protection accrue de la vie privée.
4. Les capacités des ordinateurs, qui évoluent en permanence (par exemple grâce
à des accélérateurs matériels), souvent à pour d’autres applications (IA, jeux),
peuvent offrir des surfaces d’attaques, notamment par canaux auxiliaires.
La présente thèse soutient que ces enjeux sont interdépendants et qu’une vision
groupée de ces problèmes aide à garantir l’adaptation de la cryptographie à l’ère
post-quantique.
Ce propos est appuyé par trois pistes de recherche :
1. Proposer un protocole anonymisant de live-streaming massif (contraintes
utilisateurs) qui soit aussi post-quantique (contraintes sur les primitives).
2. Étudier les protocoles de chiffrements commutatifs, en particulier d’intercep-
tion réglementée, ainsi que la manière de les rendre post-quantiques sans créer
de faiblesses ou être limités à des sur-chiffrements.
3. Comprendre la manière dont les architectures dotées de calcul en mémoire
vont affecter les performances des primitives post-quantiques, et comment
un co-design est possible de manière à aussi réduire les fuites par canaux
auxiliaires.
Mots clés : Anonymisation, Vie Privée, Optimisation, Calcul en mémoire,
Canaux Auxiliaires, Post-quantique.
Adapting Cryptographic Tools to a Post-Quantum Context
Abstract :
Cryptography is used to protect everyone’s privacy on a daily basis when
browsing the Internet. In recent years, several changes have been taking place,
partly due to the possible arrival of quantum computers capable of endangering
some of our current cryptographic systems.
We identify four issues associated with these changes :
1. The adaptation of primitives, which must be replaced by new, post-quantum
ones.
2. The adaptation of protocols, which sometimes also rely on properties vulne-
rable to quantum computers.
3. The evolution of the end-users habits, in their use of digital tools, as they
tend to consum more live video streams but at the same demand stronger
privacy protection.
4. Computers capabilities are constantly evolving (e.g. through hardware accele-
rators), often due to other applications (AI, games), however these evolutions
can offer attack surfaces, in particular by auxiliary channels.
This PhD thesis argues that these issues are interdependent and that a global
consideration of these problems helps to ensure that cryptography can be adapted
to the post-quantum era. For that purpose, three main contributions are proposed,
that consist in :
1. Proposing an anonymizing protocol for massive live-streaming (user
constraints) which is also post-quantum (constraints on primitives).
2. Studying commutative encryption protocols, in particular lawful interception
ones, in order to make them post-quantum without creating weaknesses or
being limited to super-encryption.
3. Understanding how architectures featuring in-memory computing will affect
the performance of post-quantum primitives, and how co-design is possible
so as to also reduce auxiliary channel leakage.
Keywords : Anonymity, Privacy, Optimization, Processing in memory, Side
Channel, Post-quantum.