Chiffrement par attributs
Le chiffrement par attributs (en anglais : attribute-based encryption ou ABE) est une primitive de chiffrement asymétrique dans lequel la clé de chiffrement d’un utilisateur dépend d’attributs qui lui sont propres, par exemple: sa position dans une entreprise ou sa nationalité. Dans ce type de chiffrement, le déchiffrement du message secret n’est possible que si les attributs de la clé du destinataire correspondent aux attributs du message chiffré[1]. Le chiffrement par attributs permet la mise en place de contrôle d'accès à base de rôles.
Pour les articles homonymes, voir ABE.
Le concept de chiffrement par attributs a été proposé la première fois par Amit Sahai et Brent Waters[2] et plus tard repris par Vipul Goyal, Omkant Pandey, Amit Sahai et Brent Waters[3]. Depuis 2007, plusieurs chercheurs ont proposé des schémas de chiffrement par attributs utilisant plusieurs autorités pour générer les clés privées des utilisateurs[4],[5],[6],[7],[8],[9].
Principes
Le chiffrement par attributs est une généralisation des schémas de chiffrement asymétriques. Dans un schéma chiffrement asymétrique, un message est chiffré pour un destinataire particulier par le biais de sa clé publique.
Dans le cas du chiffrement par attributs, l’identité du destinataire est vue comme un ensemble d’attributs. On peut envisager le chiffrement par attributs de deux manières : par politique d’accès sur le message chiffré ou politique d’accès sur la clé. Dans tous les cas, une nouvelle autorité est nécessaire pour générer les clés de déchiffrement, à l'aide d'une clé maîtresse, qui appartient soit à un tiers de confiance, soit à l'émetteur des messages chiffrés.
Description
La formalisation de Boneh, Sahai et Waters[10] sera utilisée ici. Un chiffrement par attributs est la donnée de quatre algorithmes efficaces : (Initialiser, Dériver, Chiffrer, Déchiffrer), se comportant comme suit.
- Initialiser, va prendre en entrée un paramètre de sécurité écrit en unaire et va délivrer une clé publique pk et une clé maîtresse msk.
- Dériver, qui étant donné un ensemble d'attributs et la clé maîtresse msk, va générer une clé secrète pour cet ensemble d'attributs
- Chiffrer, qui partant d'un message M et d'une politique φ (par exemple une formule booléenne), va produire un chiffré Cφ.
- Déchiffrer, qui à partir d'une clé secrète , et d'un message chiffré Cφ sort ou bien un message, ou bien une erreur « ⊥ ».
Associés à ces algorithmes, nous avons différentes notions de sécurité, la première étant celle d'un schéma de chiffrement classique, construite sur une notion d'indistinguabilité, qui traduit le fait qu'il est difficile de dériver un bit d'information sur le message initial, en faisant varier la puissance de l'attaquant.
Le modèle décrit ci-dessus est à politique d'accès sur les messages chiffrés, puisque l'algorithme qui prend en compte la politique est Chiffrer et non Dériver, pour passer à un modèle pour une politique d'accès sur clés, Chiffrer prend désormais un ensemble d'attributs, et Dériver une politique d'accès. Finalement, Déchiffrer n'est censé renvoyer le message initial que si est vérifiée, cela reste inchangé.
Politique d’accès sur le message chiffré
La politique d’accès sur le message chiffré (en anglais : Ciphertext-policy attribute based encryption (CP-ABE)) consiste à définir une politique d’accès dans le message lui-même. Un utilisateur doit être capable de déchiffrer un message si les attributs associé à son identité correspondent à la politique d’accès définie pour le message. Cette politique d’accès est par exemple un ensemble de conjonctions, disjonctions d’attributs ou la règle de seuil qui se décrit comme « au moins attributs parmi » et est associé au message[1].
Exemple
Si l’ensemble des attributs est défini par : , un message est envoyé avec la politique , un utilisateur qui possède l’attribut peut déchiffrer le message, alors qu’un utilisateur qui possède les attributs ne le peut pas.
Politique d’accès sur la clé
La politique d’accès sur la clé (en anglais : Key-policy attribute based encryption (KP-ABE)) est le pendant de la politique d’accès sur le message chiffré. Dans ce cas, la politique d’accès est directement lié à la clé secrète.
Exemple
En reprenant les notations précédentes, l’ensemble des attributs est défini par : , dans ce cas un utilisateur possède une clé avec la politique . Il est capable de déchiffrer un message chiffré avec les attributs , mais pas avec les attributs .
Résistance aux collusions
Un aspect essentiel de la sécurité du chiffrement par attributs est la résistance aux collusions, c'est-à-dire que des utilisateurs ne doivent pas être capable de mettre en commun leurs clés secrètes pour déchiffrer des messages qu’aucun d’entre eux n’est capable de déchiffrer seul. Par exemple, pour le message envoyé avec la politique , un utilisateur possédant l’attribut et un utilisateur possédant l’attribut ne peuvent pas mettre en commun leurs informations pour déchiffrer le message.
Usage
Le chiffrement par attributs est un mécanisme récent et n’est pas encore largement répandu, mais de nombreuses applications sont possibles. Il peut être utilisé pour le chiffrement des journaux systèmes[3] : au lieu de chiffrer un message pour chaque destinataire, le message est chiffré avec certains attributs ce qui réduit la quantité de clés à utiliser.
Le chiffrement par attributs est aussi utile dans un contexte pair-à-pair où il n’y a pas de serveur central pour gérer les politiques d’accès[11].
Défis
Les recherches actuelles autour du chiffrement par attribut s'axent autour de deux objectifs d'optimisation :
- Améliorer l’efficacité, c'est-à-dire le temps et la mémoire nécessaires pour chiffrer/déchiffrer/déléguer. Les méthodes actuelles utilisant soit des couplages[2], soit des réseaux euclidiens[12], ne sont pas à l'heure actuelle aussi efficaces que les chiffrement sur les courbes elliptiques par exemple.
- Améliorer l’expressivité, c'est-à-dire la classe de complexité des attributs. Informellement, il est plus difficile de réaliser (à efficacité équivalente) un chiffrement qui prend en compte une plus large diversité d'attributs possibles.
- La révocation d'attributs, en effet, les privilèges des utilisateurs évoluent dans le temps, un utilisateur peut gagner des attributs et en perdre d'autres. La difficulté de mettre à jour les clés des utilisateurs est liée au fait qu'un même attribut peut être partagé par plusieurs utilisateurs en même temps, c'est difficile de le révoquer pour un utilisateur en particulier sans affecter les autres utilisateurs partageant ce même attribut. Plusieurs solutions sont proposées dans la littérature [13],[14],[15],[16].
Notes et références
- What is Attribute-Based Encryption, Cryptography Stack Exchange Crypto SE (2014)
- Sahai et Waters 2005.
- Vipul Goyal, Omkant Pandey, Amit Sahai and Brent Waters, Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data ACM CCS (2006)
- Chase 2007.
- Chase et Chow 2009.
- Jung et al. 2013.
- Jung et al. 2015.
- Lewko et Waters 2011.
- Müller, Katzenbeisser et Eckert 2009.
- Boneh, Sahai et Waters 2011.
- Koll, Li et Fu 2014.
- Gorbunov, Vaikuntanathan et Wee 2013.
- L. Touati et Y. Challal, « Mediator-Based Immediate Attribute Revocation Mechanism for CP-ABE in Multicast Group Communications », 2017 IEEE Trustcom/BigDataSE/ICESS, , p. 309–314 (DOI 10.1109/Trustcom/BigDataSE/ICESS.2017.252, lire en ligne, consulté le )
- L. Touati et Y. Challal, « Instantaneous Proxy-Based Key Update for CP-ABE », 2016 IEEE 41st Conference on Local Computer Networks (LCN), , p. 591–594 (DOI 10.1109/LCN.2016.100, lire en ligne, consulté le )
- L. Touati et Y. Challal, « Efficient CP-ABE Attribute/Key Management for IoT Applications », 2015 IEEE International Conference on Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing, , p. 343–350 (DOI 10.1109/CIT/IUCC/DASC/PICOM.2015.49, lire en ligne, consulté le )
- L. Touati et Y. Challal, « Batch-based CP-ABE with attribute revocation mechanism for the Internet of Things », 2015 International Conference on Computing, Networking and Communications (ICNC), , p. 1044–1049 (DOI 10.1109/ICCNC.2015.7069492, lire en ligne, consulté le )
Annexes
Bibliographie
- [Sahai et Waters 2005] (en) Amit Sahai et Brent Waters, « Fuzzy Identity-Based Encryption », Advances in Cryptology – EUROCRYPT 2005, Springer Berlin Heidelberg, lecture Notes in Computer Science, vol. 3494, , p. 457–473 (ISBN 978-3-540-25910-7 et 978-3-540-32055-5, ISSN 0302-9743, DOI 10.1007/11426639_27, lire en ligne, consulté le )
- [Chase 2007] (en) Melissa Chase, « Multi-authority Attribute Based Encryption », Theory of Cryptography, Springer Berlin Heidelberg, lecture Notes in Computer Science, vol. 4392, , p. 515–534 (ISBN 978-3-540-70935-0 et 978-3-540-70936-7, ISSN 0302-9743, DOI 10.1007/978-3-540-70936-7_28, lire en ligne, consulté le )
- [Chase et Chow 2009] Melissa Chase et Sherman S.M. Chow, « Improving Privacy and Security in Multi-authority Attribute-based Encryption », Proceedings of the 16th ACM Conference on Computer and Communications Security, ACM, cCS '09, , p. 121–130 (ISBN 9781605588940, DOI 10.1145/1653662.1653678, lire en ligne, consulté le )
- [Jung et al. 2013] Taeho Jung, Xiang-Yang Li, Zhiguo Wan et Meng Wan, « Privacy preserving cloud data access with multi-authorities », 2013 Proceedings IEEE INFOCOM, , p. 2625–2633 (DOI 10.1109/INFCOM.2013.6567070, lire en ligne, consulté le )
- [Jung et al. 2015] Taeho Jung, Xiang-Yang Li, Zhiguo Wan et Meng Wan, « Control Cloud Data Access Privilege and Anonymity With Fully Anonymous Attribute-Based Encryption », IEEE Transactions on Information Forensics and Security, vol. 10, , p. 190–199 (ISSN 1556-6013, DOI 10.1109/TIFS.2014.2368352, lire en ligne, consulté le )
- [Lewko et Waters 2011] (en) Allison Lewko et Brent Waters, « Decentralizing Attribute-Based Encryption », Advances in Cryptology – EUROCRYPT 2011, Springer Berlin Heidelberg, lecture Notes in Computer Science, vol. 6632, , p. 568–588 (ISBN 978-3-642-20464-7 et 978-3-642-20465-4, ISSN 0302-9743, DOI 10.1007/978-3-642-20465-4_31, lire en ligne, consulté le )
- [Boneh, Sahai et Waters 2011] (en) Dan Boneh, Amit Sahai et Brent Waters, « Functional Encryption: Definitions and Challenges », Dans les actes de Theory of Computer Science,
- [Koll, Li et Fu 2014] (en) David Koll, Jun Li et Xiaoming Fu, « SOUP: An Online Social Network by the People, for the People », Proceedings of the 15th International Middleware Conference, ACM, middleware '14, , p. 193–204 (ISBN 9781450327855, DOI 10.1145/2663165.2663324, lire en ligne, consulté le )
- [Gorbunov, Vaikuntanathan et Wee 2013] (en) Sergey Gorbunov, Vinod Vaikuntanathan et Hoeteck Wee, « Attribute-Based Encryption for Circuits », Dans les actes de Symposium on Theory of Computing, (lire en ligne)
- [Müller, Katzenbeisser et Eckert 2009] (en) Sascha Müller, Stefan Katzenbeisser et Claudia Eckert, « On Multi-Authority Ciphertext-Policy : attribute-Based Encryption », Bulletin of the Korean Mathematical Society, The Korean Mathematical Society, vol. 46, no 4, , p. 803–819 (DOI 10.4134/BKMS.2009.46.4.803, résumé, lire en ligne [PDF])
Articles connexes
- Portail de la cryptologie