Sujet ASTRAN REDOCS’23

L’innovation ASTRAN : un stockage sécurisé décentralisé sans clé

ASTRAN développe des solutions de stockage de données sécurisées, pour garantir la confidentialité, l’intégrité, la conformité et la disponibilité des données dans un environnement cloud, qu’il soit privé ou public. La solution utilise simultanément plusieurs clouds et repose sur une combinaison de secret sharing et de cryptographie pour atteindre un niveau de sécurité élevé et une multi-conformité, y compris avec le RGPD, sans nécessiter une gestion de clés.

Calcul Non Interactif efficace et sûr d’une fonction linaire privée

Dans le cadre de la solution sans clé, un proxy est en charge de faire les différents calculs cryptographiques permettant d’assurer la confidentialité vis à vis des fournisseurs clouds. Le besoin de confidentialité est donc transféré sur le proxy.

Ce besoin est comblé via l’utilisation d’un chiffrement homomorphe. Ici notre problématique est de s’assurer que le proxy ne puisse pas faire un calcul autre que celui requis par notre solution (ce qui pourrait lui permettre de briser la confidentialité s’il s’allie avec un fournisseur).

Notons qu’ici le problème n’est pas d’assurer que le proxy fait la bonne fonction (ce qui peux se faire à l’aide de ZKP) mais bien de garantir que le proxy ne puisse pas « à coté » calculer d’autres valeurs (intermédiaires) liées.

Contexte technique

— Soit Ui un utilisateur voulant stocké un objet di

— Soit S1, · · · , Sn n serveurs de stockage

— Soit P un proxy de fragmentation qui à partir d’un objet dit le fragmente en n morceau fj(di). (eg en utilisant un algorithme de Reed-Solomon)

— soit Ki une clé de chiffrement homomorphique connu de l’utilisateur

— soit Kjune clé de dechiffremement homomorphique du serveur Sj

— P possède les clés de rechiffrement KS(Ki, Kj) pour j ∈ [1..n]

— P ne doit pas avoir d’infos sur di. Il doit donc calculer fj de manière homomorphique.

— P fait un keyswitch sur chaque sur morceau pour l’envoyer vers le serveur respectif

Problématique

— P ne doit pas pouvoir apprendre d’info sur di ni sur un quelconque morceau fj(di)

— Si P corrompt un serveur de stockage Sj, cela ne doit pas lui permettre d’apprendre d’autres d’info que fj(di)

Ainsi si P corrompt Sj il ne doit pas être capable de faire un keyswitch vers Kj pour tout les morceaux.

Objectif

Trouver un algorithme permettant de calculer les morceaux chiffré avec la bonne clé sans que P puissent calculer des morceaux chiffré avec une mauvaise clé.

La solution doit être non interactive.

note : Une solution interactive serait d’utiliser du Multi-Key FHE avec un déchiffrement à seuil.