Optimisation d’une librairie de code

IBM a réécrit sa librairie C ++ pour le chiffrement homomorphe, et affirme qu’elle est jusqu’à 75 fois plus rapide qu’auparavant. Elle a également le mérite de réduire la taille de certains paramètres, jusqu’à 25 fois.

Cette librairie, HElib, est disponible sur GitHub. Elle s’appuie sur la librairie NTL, une librairie primée spécialisée dans la théorie des nombres.

Les idées derrière les améliorations sont détaillées dans un article de recherche financé par la DARPA (Agence pour les projets de recherche avancée de défense) et l’ARO (Office de recherche de l’Armée), Faster Homomorphic Linear Transformations in HElib par Shai Halevi d’IBM Research et Victor Shoup de l’Université de New York.

Il intéressera surtout les spécialistes de transformations linéaires.

Chiffrement homomorphe

Un chiffrement homomorphe est un chiffrement qui permet d’effectuer des traitements sur des données chiffrées, et d’obtenir exactement les mêmes résultats que s’ils avaient été effectués sur les données en clair, sans avoir besoin de connaître la clé ou le mot de passe.

Une propriété éminemment intéressante pour qui ne fait pas confiance.

Un laboratoire pharmaceutique souhaitant effectuer des modélisations moléculaires, qui pourraient révolutionner un traitement médical, mais qui ne dispose pas des moyens informatiques nécessaires, pourrait ainsi chiffrer son modèle et externaliser les calculs à un service public d’informatique en nuage.

La confidentialité de ses données n’est ainsi jamais mise en cause, et le laboratoire obtient par déchiffrement les mêmes résultats que si les calculs avaient été effectués en interne.

Le chiffrement homomorphe peut aussi servir à développer d’autres systèmes sûrs, comme un système de vote électronique, où la récupération d’une information privée, i.e. la possibilité de récupérer une information stockée sur la base de données d’un serveur, sans que ce serveur sache quelle information a été récupérée.

Le chiffrement homomorphe est une jeune discipline, toujours très coûteuse en temps de calcul par rapport à un chiffrement habituel, d’où la nécessité d’optimiser les algorithmes.