Circuit ORAM et performances pratiques
Examinez les améliorations de Circuit ORAM et le surcoût réel en performances des constructions ORAM.
Circuit ORAM et performances pratiques est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Objectifs de conception de l’ORAM en circuit
L’ORAM en circuit, proposée par Wang, Chan et Shi (2015), a été conçue pour réduire au minimum le surcoût de bande passante tout en restant simple à implémenter dans les cadres de calcul sécurisé (circuits brouillés et partage de secrets). Son innovation principale consiste à réduire la taille des compartiments à Z = 2 blocs (contre Z = 5 pour l’ORAM par chemin), divisant ainsi la bande passante par deux tout en conservant une probabilité d’échec négligeable. La procédure d’éviction a été repensée pour pouvoir s’exprimer sous la forme d’un petit circuit booléen.
Réduction de la taille des compartiments
Dans l’ORAM par chemin avec Z = 5, la probabilité de débordement de la réserve est maîtrisée en plaçant plusieurs blocs par compartiment afin de prendre en charge l’attribution aléatoire des blocs aux chemins. L’ORAM en circuit démontre que Z = 2 suffit lorsqu’une procédure d’éviction déterministe (éviction en profondeur d’abord) est utilisée plutôt qu’une éviction aléatoire. Cela divise par deux le stockage du serveur et le surcoût de communication par rapport à l’ORAM par chemin avec les mêmes paramètres de sécurité.
L’ORAM en circuit pour le calcul sécurisé
L’ORAM en circuit a été spécifiquement conçue pour disposer d’une procédure d’éviction pouvant être exprimée sous la forme d’un circuit booléen efficace. Dans les protocoles de calcul sécurisé (circuits brouillés, SPDZ), l’accès à l’ORAM lui-même doit être évalué de façon oblivieuse : le serveur qui effectue le calcul ne doit pas apprendre quel emplacement mémoire est consulté. Le circuit d’éviction déterministe et simple de l’ORAM en circuit est bien plus efficace à transformer en circuit brouillé que la procédure d’éviction de l’ORAM par chemin.
Répartition du surcoût de communication
Pour une base de données de N blocs de taille B octets, l’ORAM en circuit nécessite 2 * log N * B octets par accès (lecture et écriture d’un chemin avec Z = 2 blocs par compartiment). Pour N = 2^20 blocs de 4 Ko chacun, cela représente 160 Ko par accès, contre 400 Ko pour l’ORAM par chemin (Z=5). Le surcoût de bande passante par rapport au texte en clair est d’environ 40 fois pour les paramètres courants, contre 100 fois pour l’ORAM par chemin.
Oblix : structures de données oblivieuses
Oblix (Misra, Schlegel, Sherwood, Tsudik, 2018) utilise l’ORAM en circuit pour créer des versions oblivieuses de structures de données de haut niveau : listes chaînées oblivieuses, dictionnaires oblivieux (tables de hachage) et files de priorité oblivieuses. Ces structures permettent d’effectuer des calculs oblivieux sur des données dynamiques sans révéler les schémas d’accès. Oblix s’exécute dans des enclaves Intel SGX et vise l’intersection privée d’ensembles ainsi que les requêtes privées sur des bases de données.
TaoStore : ORAM asynchrone
TaoStore (Sahin, Zhu, Gunter, Borisov, 2016) étend Path ORAM pour prendre en charge des accès asynchrones à haut débit en traitant plusieurs requêtes ORAM en parallèle et en regroupant par lots les évictions de chemins. En combinant les accès au même chemin, TaoStore atteint un débit (requêtes par seconde) nettement supérieur à celui des constructions ORAM synchrones, ce qui le rend adapté aux serveurs de stockage en nuage accueillant de nombreux clients simultanés.
Obladi : stockage transactionnel à accès dissimulé
Obladi (Crooks, Park, Alvisi, Iyengar, 2018) met en place un système complet de stockage transactionnel reposant sur Path ORAM. Obladi prend en charge les transactions ACID sur un stockage chiffré qui dissimule les schémas d’accès. Il introduit l’exécution différée : les transactions sont regroupées en époques, puis exécutées de manière à dissimuler les enregistrements précis auxquels on a accédé pendant chaque époque. Obladi s’exécute comme un mandataire de confiance entre les clients et un système de stockage en nuage non fiable.
Latence pratique d’ORAM
Pour un ORAM de 1GB (262,144 blocs de 4KB) déployé sur AWS, avec un client accédant aux blocs par Internet, la latence de Path ORAM est d’environ 50-200ms par accès (principalement en raison du temps aller-retour nécessaire aux accès aux compartiments, pour lesquels log N = 18). Des récupérations parallèles des compartiments permettent de réduire cette latence. Pour les applications SGX locales utilisant ORAM en RAM, la latence se situe entre 1 et 10ms par accès, ce qui convient à de nombreuses applications de calcul sécurisé.
Surcoût de bande passante en pratique
Le surcoût de bande passante d’ORAM dépend fortement des schémas d’accès. Pour un ORAM de stockage en nuage de 1TB avec des blocs de 1MB, chaque accès transfère environ 25MB (surcoût de 25x pour les 25 niveaux, avec log N = 25). Pour les petits blocs de 4KB, le surcoût par accès est moindre en nombre absolu d’octets, mais plus élevé en termes relatifs. Les organisations qui déploient ORAM doivent prévoir une amplification de la bande passante de 20-50x et s’assurer que leurs liaisons réseau et leurs coûts de sortie du nuage en tiennent compte.
ORAM ou matériel de confiance
Une solution de remplacement d’ORAM pour assurer la confidentialité des accès est le matériel de confiance : Intel SGX ou AMD SEV fournit un environnement d’exécution de confiance dans lequel même le système d’exploitation hôte ne peut pas observer le calcul ni les schémas d’accès à la mémoire, avec des défenses appropriées. SGX sans ORAM laisse néanmoins fuiter vers le matériel les schémas d’accès au niveau des pages ; ORAM au sein de SGX est donc nécessaire pour assurer une protection complète. Par rapport à un ORAM seul, le matériel de confiance réduit le surcoût de bande passante, mais exige de faire confiance au fabricant du matériel et à la chaîne d’approvisionnement.
Quand déployer ORAM
ORAM est approprié lorsque l’adversaire observe les schémas d’accès côté serveur (fournisseur de services en nuage, colocataire), que la sensibilité des données justifie un surcoût de bande passante de 20-50x et que le schéma d’accès lui-même révélerait des informations sensibles. Pour la plupart des applications, un chiffrement standard associé à une gestion rigoureuse des clés suffit. ORAM est un outil spécialisé pour les scénarios exigeant un haut niveau de sécurité : analyse de données médicales, apprentissage automatique privé, systèmes de négociation financière et bases de données des forces de l’ordre.
Question sur la taille des compartiments de Circuit ORAM
Quelle taille de compartiment Circuit ORAM utilise-t-il, et pourquoi s’agit-il d’une amélioration par rapport à Path ORAM ?
Récapitulatif de Circuit ORAM et de ses performances pratiques
Circuit ORAM réduit la taille des compartiments à Z=2 (contre Z=5 pour Path ORAM), divisant par deux la bande passante grâce à une éviction déterministe en profondeur d’abord. Il est conçu pour être utilisé au sein d’un calcul sécurisé par circuit brouillé. Le surcoût pratique est une amplification de la bande passante de 40x pour les paramètres courants. Les systèmes de production comprennent Oblix (SGX et structures de données à accès dissimulé), TaoStore (ORAM à haut débit avec traitement par lots) et Obladi (ORAM transactionnel). ORAM au sein de SGX est nécessaire, car SGX seul laisse fuir les schémas d’accès au niveau des pages.
Apprends Cryptology Academy avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 67
- Leçons
- 261
Questions Fréquemment Posées
La leçon « Circuit ORAM et performances pratiques » est-elle gratuite ?
Oui — le texte complet de « Circuit ORAM et performances pratiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Circuit ORAM et performances pratiques » ?
Examinez les améliorations de Circuit ORAM et le surcoût réel en performances des constructions ORAM. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Circuit ORAM et performances pratiques » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- La menace des fuites liées aux schémas d’accès
- Path ORAM : masquer les accès mémoire
- Circuit ORAM et performances pratiques
- ORAM dans le stockage infonuagique et les processeurs sécurisés