FR3081652A1 - METHOD FOR ESTABLISHING KEYS FOR CONTROLLING ACCESS TO A SERVICE OR A RESOURCE - Google Patents

METHOD FOR ESTABLISHING KEYS FOR CONTROLLING ACCESS TO A SERVICE OR A RESOURCE Download PDF

Info

Publication number
FR3081652A1
FR3081652A1 FR1854504A FR1854504A FR3081652A1 FR 3081652 A1 FR3081652 A1 FR 3081652A1 FR 1854504 A FR1854504 A FR 1854504A FR 1854504 A FR1854504 A FR 1854504A FR 3081652 A1 FR3081652 A1 FR 3081652A1
Authority
FR
France
Prior art keywords
key
supplier
user
partial
common
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1854504A
Other languages
French (fr)
Other versions
FR3081652B1 (en
Inventor
Nouha Oualha
Christophe Janneteau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1854504A priority Critical patent/FR3081652B1/en
Priority to PCT/EP2019/063061 priority patent/WO2019228853A1/en
Publication of FR3081652A1 publication Critical patent/FR3081652A1/en
Application granted granted Critical
Publication of FR3081652B1 publication Critical patent/FR3081652B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Abstract

L'invention porte sur une méthode d'établissement de clés permettant le contrôle d'accès à un service ou une ressource en utilisant les mécanismes de chiffrement basés sur les attributs ou ABE ("attribute-based encryption", en anglais).A key establishment method for controlling access to a service or resource using attribute-based encryption (ABE) mechanisms.

Description

METHODE D’ETABLISSEMENT DE CLES POUR LE CONTROLE D’ACCES A UN SERVICE OU UNE RESSOURCEMETHOD OF ESTABLISHING KEYS FOR CONTROLLING ACCESS TO A SERVICE OR RESOURCE

L’invention se situe dans le domaine de la protection des données, et en particulier le domaine de la sécurité dans les réseaux informatiques ou les réseaux de télécommunications à connectivité intermittente, indisponible, ou coûteuse. Des exemples de ces réseaux sont les réseaux à faibles ressources émergents avec des communications machine-à-machine, l’Internet des objets, les réseaux de capteurs sans-fil, et les réseaux véhiculaires, où les dispositifs contraints qui fournissent des ressources ou des services protégés sont déployés et laissés sans surveillance dans des emplacements difficiles d’accès. L’invention s’applique aussi à des réseaux d’urgence pour les systèmes de protection du public et de secours en cas de catastrophe (en anglais, Public Protection and Disaster Relief ou PPDR) quand l'infrastructure des réseaux et des communications n’est plus fiable à cause d’un désastre.The invention is in the field of data protection, and in particular the field of security in computer networks or telecommunications networks with intermittent, unavailable, or expensive connectivity. Examples of these networks are emerging low resource networks with machine-to-machine communications, the Internet of Things, wireless sensor networks, and vehicular networks, where constrained devices that provide resources or Protected services are deployed and left unattended in locations that are difficult to access. The invention also applies to emergency networks for public protection and disaster relief systems (in English, Public Protection and Disaster Relief or PPDR) when the network and communications infrastructure does not is more reliable because of a disaster.

Plus précisément, l’invention porte sur une méthode d’établissement de clés permettant le contrôle d’accès à un service ou une ressource en utilisant les mécanismes de chiffrement basés sur les attributs ou ABE (attribute-based encryption, en anglais).More specifically, the invention relates to a method for establishing keys allowing access control to a service or a resource by using attribute-based encryption (ABE).

Un des points clés pour garantir la sécurité des applications informatiques est la protection des données sensibles. Les données peuvent être protégées au moyen d’algorithmes cryptographiques de chiffrement de données, nécessitant des clés cryptographiques pour déchiffrer les données. Les clés doivent être distribuées aux utilisateurs autorisés à déchiffrer les données. Pour gérer d’une manière sélective différents types d’utilisateurs qui réalisent différentes tâches sur les données, un contrôle d’accès aux données fin et flexible est nécessaire. Les mécanismes de chiffrement basés sur les attributs permettent de fournir à la fois la confidentialité des données et le contrôle d’accès aux données, en combinant de manière cryptographique les clés de déchiffrement aux permissions d’accès aux données. Les données ainsi chiffrées ne nécessitent pas d’être transmises sur un canal sûr ou d’être stockées dans un serveur de confiance. Pour déchiffrer les données chiffrées, les utilisateurs doivent désormais satisfaire une politique d’accès qui est définie sur des attributs qui peuvent être associés aux utilisateurs des données, aux éléments de données, et à l’environnement. A titre d’exemple, un attribut peut concerner le rôle d’un utilisateur, par exemple sa profession, ou des caractéristiques personnelles de l’utilisateur, par exemple sa fonction ou un niveau de priorité qui lui est assigné pour l’accès aux données sensibles.One of the key points to guarantee the security of computer applications is the protection of sensitive data. Data can be protected using cryptographic data encryption algorithms, requiring cryptographic keys to decrypt the data. Keys must be distributed to users authorized to decrypt the data. To selectively manage different types of users who perform different tasks on the data, fine and flexible data access control is required. Attribute-based encryption mechanisms provide both data privacy and data access control, cryptographically combining decryption keys with data access permissions. The encrypted data does not need to be transmitted over a secure channel or stored on a trusted server. To decrypt encrypted data, users must now satisfy an access policy that is defined on attributes that can be associated with data users, data elements, and the environment. For example, an attribute can concern the role of a user, for example his profession, or personal characteristics of the user, for example his function or a level of priority assigned to him for access to data. sensitive.

La publication de Bethencourt et autres [1] décrit une méthode de chiffrement basée sur les attributs particulière, appelée méthode de chiffrement CP-ABE « Ciphertext-Policy Attribute-Based Encryption >>.The publication by Bethencourt et al. [1] describes a particular attribute-based encryption method, called the CP-ABE “Ciphertext-Policy Attribute-Based Encryption” encryption method.

Cette méthode est une construction d’une méthode de chiffrement basée sur les attributs ayant la politique d’accès incorporée dans les données chiffrées et les attributs détenus par les utilisateurs de données. De cette façon, si la politique d’accès change régulièrement, le contrôle d’accès est plus flexible que le schéma de base ABE, puisqu’il est nécessaire seulement de changer la politique d’accès qui sera incorporée dans les données chiffrées, plutôt que de distribuer de nouvelles clés aux utilisateurs.This method is a construction of an encryption method based on the attributes having the access policy incorporated in the encrypted data and the attributes held by the data users. In this way, if the access policy changes regularly, the access control is more flexible than the basic ABE scheme, since it is only necessary to change the access policy which will be incorporated into the encrypted data, rather than distributing new keys to users.

Le document [2] décrit une autre méthode de chiffrement basée sur les attributs, appelée méthode de chiffrement KP-ABE «Key-Policy AttributeBased Encryption >>. Cette méthode utilise un ensemble d’attributs pour décrire la donnée chiffrée et construit la politique de sécurité dans la clé privée de l’utilisateur. Si les attributs de la donnée chiffrée satisfont la structure d’accès définie dans la clé privée de l’utilisateur, l’utilisateur peut déchiffrer la donnée chiffrée. L’algorithme considère principalement trois acteurs : l’expéditeur (p. ex., le propriétaire des données), le récepteur (p. ex. l’utilisateur des données), et l’autorité (également, appelée service de gestion des clés) dont le rôle est de générer les clés publiques et privées du récepteur. Ainsi, seules les personnes qui ont les attributs qui satisfont à la politique d’accès peuvent accéder aux données chiffrées.Document [2] describes another encryption method based on attributes, called the KP-ABE "Key-Policy AttributeBased Encryption" encryption method. This method uses a set of attributes to describe the encrypted data and builds the security policy in the user's private key. If the attributes of the encrypted data satisfy the access structure defined in the user's private key, the user can decrypt the encrypted data. The algorithm mainly considers three actors: the sender (eg, the data owner), the receiver (eg the data user), and the authority (also known as the key management service ) whose role is to generate the public and private keys of the receiver. In this way, only people who have the attributes that meet the access policy can access the encrypted data.

L’invention est compatible à la fois des méthodes de chiffrement CPABE et KP-ABE.The invention is compatible with both CPABE and KP-ABE encryption methods.

Assurer l’authentification et l'autorisation est primordial pour sécuriser l’accès à des ressources et services protégés. Généralement, les deux fonctions de sécurité sont réalisées en s'appuyant sur une ou plusieurs autorités de confiance en ligne. Les autorités de confiance contrôlent l’accès aux ressources et services conformément à une politique de sécurité, en particulier en participant directement à la procédure d’authentification pour établir un canal sécurisé, ou en distribuant des jetons d’accès temporaires aux utilisateurs autorisés permettant l’accès aux ressources et services. Cependant, l'indisponibilité de ces autorités de confiance ou leurs coûts importants associés rend difficile l'authentification et la mise en application des politiques d'autorisation sur des ressources et services protégés.Ensuring authentication and authorization is essential to secure access to protected resources and services. Generally, the two security functions are performed by relying on one or more online trust authorities. Trusted authorities control access to resources and services in accordance with a security policy, in particular by participating directly in the authentication procedure to establish a secure channel, or by distributing temporary access tokens to authorized users allowing 'access to resources and services. However, the unavailability of these trusted authorities or their significant associated costs makes it difficult to authenticate and enforce authorization policies on protected resources and services.

Tout comme les schémas à clés publiques (p. ex., les signatures numériques) qui peuvent être utilisés comme primitives pour élaborer des protocoles d'authentification sans avoir à recourir à une autorité de confiance en ligne, les schémas de chiffrement à base d'attributs de type ABE peuvent aussi être utilisés pour construire des protocoles d'autorisation, puisque ces schémas permettent à la fois de garantir la confidentialité, mais aussi un contrôle d'accès de granularité fine sur les données chiffrées. Les protocoles d’autorisation basés sur ABE permettent donc de se passer d’une autorité de confiance en ligne.Like public key schemes (eg, digital signatures) that can be used as primitives to develop authentication protocols without having to rely on an online trusted authority, encryption schemes based on ABE type attributes can also be used to build authorization protocols, since these schemes allow both to guarantee confidentiality, but also fine-grained access control on encrypted data. ABE-based authorization protocols therefore do without a trusted online authority.

Cependant, ces mécanismes ne permettent pas de sécuriser les échanges confidentiels des utilisateurs d’un même groupe qui partagent les mêmes attributs. Ainsi, plusieurs utilisateurs qui sont autorisés à accéder à une même ressource ou un même service, selon ce mécanisme ABE, ne seront pas protégés en confidentialité les uns vis-à-vis des autres.However, these mechanisms do not make it possible to secure the confidential exchanges of users of the same group who share the same attributes. Thus, several users who are authorized to access the same resource or the same service, according to this ABE mechanism, will not be protected in confidentiality from one another.

Il existe des protocoles d'échange de clés de chiffrement conçus en utilisant le mécanisme ABE. Le protocole de Gorantla et autres décrit dans le document [3] permet à un groupe de pairs associés à des ensembles d'attributs satisfaisants à la même politique d'accès, de partager une clé de session. Dans la même optique, le protocole de Steinwandt et autres décrit dans le document [4] permet à un groupe de pairs ayant tous des attributs qui satisfont la même politique de sécurité de partager une clé commune.There are encryption key exchange protocols designed using the ABE mechanism. The protocol of Gorantla and others described in the document [3] allows a group of peers associated with sets of attributes satisfying the same access policy, to share a session key. In the same vein, the protocol of Steinwandt and others described in the document [4] allows a group of peers having all attributes which satisfy the same security policy to share a common key.

Un inconvénient commun à ces deux protocoles est que n’importe quel pair qui n’appartient pas au groupe mais qui détient le bon ensemble d'attributs peut récupérer la clé de groupe établie.A common disadvantage of these two protocols is that any peer who does not belong to the group but who has the right set of attributes can retrieve the established group key.

Le protocole de Kolesnikov et autres décrit dans le document [5] est basé sur des interactions client / serveur qui permettent à un serveur d'établir une clé partagée avec un client uniquement lorsque les attributs de ce dernier satisfont une politique d'accès. Pour ce faire, le protocole combine des notions de chiffrement ABE avec des éléments des circuits brouillés (en anglais, garbled circuits). Le protocole n'utilise pas le chiffrement ABE en soi, mais un nouveau concept, appelé chiffrement sélectif d'attributs, qui permet au client de déchiffrer uniquement les valeurs brouillées des fils d'entrée du circuit brouillé, qui sont associées à ses attributs. Le protocole de Kolesnikov et autres offre des garanties de confidentialité fortes à la fois pour le client et le serveur, y compris la confidentialité des attributs du client et la non associativité (en anglais, unlinkability) de ses sessions. Le protocole vise à cacher l’identité des utilisateurs des données, et nécessite au minimum deux échanges de messages (i.e., 4 messages), sans tenir compte de la phase d’établissement de clés qui est basée sur un protocole de tirage au sort bitpar-bit (en anglais, coin tossing).The protocol of Kolesnikov and others described in the document [5] is based on client / server interactions which allow a server to establish a shared key with a client only when the attributes of the latter satisfy an access policy. To do this, the protocol combines concepts of ABE encryption with elements of scrambled circuits (in English, garbled circuits). The protocol does not use ABE encryption per se, but a new concept, called selective attribute encryption, which allows the client to decrypt only the scrambled values of the input wires of the scrambled circuit, which are associated with its attributes. The protocol of Kolesnikov and others offers strong guarantees of confidentiality for both the client and the server, including the confidentiality of the attributes of the client and the non-associativity (in English, unlinkability) of its sessions. The protocol aims to hide the identity of the users of the data, and requires at least two exchanges of messages (ie, 4 messages), without taking into account the key establishment phase which is based on a bitpar draw protocol -bit (in English, coin tossing).

L’invention propose de résoudre les inconvénients précités en proposant un mécanisme cryptographique basé sur les attributs mais qui comprend en outre un protocole d’échanges de clés permettant de garantir la confidentialité des échanges entre un utilisateur et un fournisseur de services.The invention proposes to resolve the aforementioned drawbacks by proposing a cryptographic mechanism based on attributes but which also comprises a key exchange protocol making it possible to guarantee the confidentiality of exchanges between a user and a service provider.

L’invention apporte plusieurs avantages, notamment en termes de sécurité et de performance. L’invention permet d’établir une clé de session tout en contrôlant l’accès aux ressources et services. L’invention permet de réaliser l’établissement de clés et de contrôler l’accès selon une politique d’accès en un seul échange de messages. Ceci permet de réaliser un contrôle d’accès rapide et avec un coût d’implémentation limité.The invention brings several advantages, in particular in terms of safety and performance. The invention makes it possible to establish a session key while controlling access to resources and services. The invention makes it possible to carry out the establishment of keys and to control access according to an access policy in a single exchange of messages. This allows for quick access control and with a limited implementation cost.

L’invention permet de dispenser l’utilisateur de s’authentifier et ainsi d’accéder aux ressources ou services d’une manière anonyme (protégeant ainsi la vie privée de l’utilisateur vis-à-vis du fournisseur) mais autorisée.The invention makes it possible to exempt the user from authenticating and thus to access resources or services in an anonymous manner (thus protecting the privacy of the user vis-à-vis the supplier) but authorized.

Une variante de l’invention permet à l’utilisateur de vérifier si les ressources ou services accédés sont légitimes en rapport à un ensemble d’attributs ou à une politique d’accès.A variant of the invention allows the user to verify whether the resources or services accessed are legitimate in relation to a set of attributes or to an access policy.

L’invention a pour objet une méthode, mise en œuvre par ordinateur, d’établissement d’au moins une clé commune pour le contrôle d’accès à un service ou une ressource proposé par un fournisseur pour des utilisateurs ayant au moins un attribut appartenant à un premier ensemble prédéterminé d’attributs utilisateurs, la méthode étant exécutée par le fournisseur et comprenant les étapes de :The subject of the invention is a method, implemented by computer, of establishing at least one common key for controlling access to a service or a resource offered by a supplier for users having at least one attribute belonging to a first predetermined set of user attributes, the method being executed by the supplier and comprising the steps of:

- Générer une première clé partielle de fournisseur K1f,- Generate a first partial supplier key K 1 f,

- Chiffrer la première clé partielle de fournisseur K1 F, à partir d’une clé dérivée dudit premier ensemble d’attributs utilisateurs,- Encrypt the first partial supplier key K 1 F , from a key derived from said first set of user attributes,

- Transmettre, à l’utilisateur, la première clé partielle de fournisseur chiffrée ctF,- Transmit, to the user, the first partial supplier key encrypted ct F ,

- Recevoir, de l’utilisateur, une première clé partielle d’utilisateur K1 u,- Receive, from the user, a first partial user key K 1 u,

- Déterminer, à partir de la première clé partielle d’utilisateur K1u, une première clé K1dh commune au fournisseur et à l’utilisateur,- Determine, from the first partial user key K 1 u, a first key K 1 dh common to the supplier and the user,

- Etablir un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1 DH commune.- Establish a secure communication channel between the supplier and the user from the first common K 1 DH key.

Selon un aspect particulier de l’invention, la première clé partielle d’utilisateur est une clé chiffrée ctu et la méthode comprend en outre une étape de déchiffrer la première clé partielle d’utilisateur chiffrée ctu à partir d’une clé dérivée d’un attribut fournisseur skF que possède le fournisseur.According to a particular aspect of the invention, the first partial user key is an encrypted key ctu and the method further comprises a step of decrypting the first partial user key encrypted ctu from a key derived from a supplier attribute sk F that the supplier has.

Selon un aspect particulier de l’invention :According to a particular aspect of the invention:

- la première clé partielle de fournisseur K1 F est obtenue (201) à partir d’une opération entre un générateur g d’un groupe et une première variable aléatoire secrète sF du fournisseur et,the first partial supplier key K 1 F is obtained (201) from an operation between a generator g of a group and a first secret random variable s F of the supplier and,

- la première clé K1DH commune est obtenue (204) à partir d’une opération entre la première clé partielle d’utilisateur K1u et la première variable aléatoire secrète sF du fournisseur.- The first common key K 1 DH is obtained (204) from an operation between the first partial user key K 1 u and the first secret random variable sF of the supplier.

Dans une variante particulière de réalisation, la méthode selon l’invention comprend en outre les étapes de :In a particular variant embodiment, the method according to the invention further comprises the steps of:

- Générer une seconde clé partielle de fournisseur K2 F et la transmettre à l’utilisateur,- Generate a second partial supplier key K 2 F and transmit it to the user,

- Recevoir, de l’utilisateur, une seconde clé partielle d’utilisateur K2u,- Receive, from the user, a second partial user key K 2 u,

- Déterminer, à partir de la seconde clé partielle d’utilisateur K2u, une seconde clé K2 DH commune au fournisseur et à l’utilisateur,- Determine, from the second partial user key K 2 u, a second key K 2 DH common to the supplier and the user,

- Etablir un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh commune et de la seconde clé K2 DH commune.- Establish a secure communication channel between the supplier and the user from the first common K 1 dh key and the second common K 2 DH key.

Selon un aspect particulier de l’invention :According to a particular aspect of the invention:

- la première clé partielle de fournisseur K1 F est obtenue à partir d’une opération entre un générateur gF d’un premier groupe et une première variable aléatoire secrète sF du fournisseur,the first partial supplier key K 1 F is obtained from an operation between a generator g F of a first group and a first secret random variable s F of the supplier,

- la première clé K1dh commune est obtenue à partir d’une opération entre la première clé partielle d’utilisateur K1u et une seconde variable aléatoire secrète x du fournisseur,the first common key K 1 dh is obtained from an operation between the first partial user key K 1 u and a second secret random variable x of the supplier,

- la seconde clé partielle de fournisseur K2f est obtenue à partir d’une opération entre un générateur gu d’un second groupe et la seconde variable aléatoire x secrète du fournisseur et,the second partial supplier key K 2 f is obtained from an operation between a generator gu of a second group and the second random random variable x of the supplier and,

- la seconde clé K2 DH commune est obtenue à partir d’une opération entre la seconde clé partielle d’utilisateur K2u et la première variable aléatoire secrète sf du fournisseur.the second common key K 2 DH is obtained from an operation between the second partial user key K 2 u and the first secret random variable sf of the supplier.

L’invention a aussi pour objet une méthode, mise en œuvre par ordinateur, d’établissement d’au moins une clé commune pour le contrôle d’accès à un service ou une ressource proposé par un fournisseur pour des utilisateurs ayant au moins un attribut appartenant à un premier ensemble prédéterminé d’attributs utilisateurs, la méthode étant exécutée par un utilisateur possédant au moins un attribut utilisateur et comprenant les étapes de :The subject of the invention is also a method, implemented by computer, of establishing at least one common key for controlling access to a service or a resource offered by a supplier for users having at least one attribute. belonging to a first predetermined set of user attributes, the method being executed by a user having at least one user attribute and comprising the steps of:

- Générer une première clé partielle d’utilisateur K1u et la transmettre au fournisseur,- Generate a first partial user key K 1 u and transmit it to the supplier,

- Recevoir, du fournisseur, une première clé partielle de fournisseur chiffrée cîf,- Receive, from the supplier, a first partial encrypted supplier key cîf,

- Déchiffrer la première clé partielle de fournisseur chiffrée cîf à partir d’une clé dérivée de l’attribut que possède l’utilisateur, pour obtenir une première clé partielle de fournisseur K1 F,- Decrypt the first partial supplier key encrypted cîf from a key derived from the attribute that the user has, to obtain a first partial supplier key K 1 F ,

- Déterminer, à partir de la première clé partielle de fournisseur K1f, une première clé K1dh, K2dh commune au fournisseur et à l’utilisateur,- Determine, from the first partial supplier key K 1 f, a first key K 1 dh, K 2 dh common to the supplier and the user,

- Etablir un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh, K2dh commune.- Establish a secure communication channel between the supplier and the user from the first key K 1 dh, K 2 dh common.

Dans une variante particulière de réalisation, la méthode selon l’invention comprend en outre une étape de chiffrer la première clé partielle d’utilisateur K1u à partir d’une clé dérivée d’un second ensemble d’attributs fournisseur, avant de la transmettre au fournisseur.In a particular variant embodiment, the method according to the invention further comprises a step of encrypting the first partial user key K 1 u from a key derived from a second set of supplier attributes, before the forward to supplier.

Selon un aspect particulier de l’invention :According to a particular aspect of the invention:

- la première clé partielle d’utilisateur K1u est obtenue à partir d’une opération entre un générateur d’un groupe gp et une première variable aléatoire secrète su,y de l’utilisateur et,the first partial user key K 1 u is obtained from an operation between a generator of a group gp and a first secret random variable su, y of the user and,

- la première clé K1dh commune est obtenue à partir d’une opération entre la première clé partielle de fournisseur K1f et la première variable aléatoire secrète su,y de l’utilisateur.- The first common key K 1 dh is obtained from an operation between the first partial supplier key K 1 f and the first secret random variable su, y of the user.

Dans une variante particulière de réalisation, la méthode selon l’invention comprend en outre les étapes de :In a particular variant embodiment, the method according to the invention further comprises the steps of:

- Générer une seconde clé partielle d’utilisateur K2u et la transmettre au fournisseur,- Generate a second partial user key K 2 u and transmit it to the supplier,

- Recevoir, du fournisseur, une seconde clé partielle de fournisseur K2f,- Receive, from the supplier, a second partial supplier key K 2 f,

- Déterminer, à partir de la seconde clé partielle de fournisseur K2f, une seconde clé K1 DH commune au fournisseur et à l’utilisateur,- Determine, from the second partial key of supplier K 2 f, a second key K 1 DH common to the supplier and to the user,

- Etablir un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh commune et de la seconde clé K2dh commune.- Establish a secure communication channel between the supplier and the user from the first common key K 1 dh and the second common key K 2 dh.

Selon un aspect particulier de l’invention :According to a particular aspect of the invention:

- la première clé partielle d’utilisateur K1u est obtenue à partir d’une opération entre un générateur gu d’un premier groupe et une première variable aléatoire secrète su de l’utilisateur,the first partial user key K 1 u is obtained from an operation between a generator gu of a first group and a first secret random variable su of the user,

- la première clé K2DH commune est obtenue à partir d’une opération entre la première clé partielle de fournisseur K1F et une seconde variable aléatoire secrète y de l’utilisateur,the first common key K 2 DH is obtained from an operation between the first partial supplier key K 1 F and a second secret random variable y of the user,

- la seconde clé partielle d’utilisateur K2u est obtenue à partir d’une opération entre un générateur gF d’un second groupe et la seconde variable aléatoire secrète y du fournisseur et,the second partial user key K 2 u is obtained from an operation between a generator g F of a second group and the second secret random variable y of the supplier and,

- la seconde clé K1dh commune est obtenue à partir d’une opération entre la seconde clé partielle de fournisseur K2 F et la première variable aléatoire secrète Su du fournisseur.- The second common key K 1 dh is obtained from an operation between the second partial supplier key K 2 F and the first secret random variable Su of the supplier.

Selon un aspect particulier de l’invention, l’opération est un calcul d’exponentiation modulaire et le groupe est un groupe multiplicatif fini.According to a particular aspect of the invention, the operation is a modular exponentiation calculation and the group is a finite multiplicative group.

L’invention a aussi pour objet un programme d'ordinateur comportant des instructions pour l'exécution de l’une des méthodes d’établissement d’au moins une clé commune selon l’invention, lorsque le programme est exécuté par un processeur.The invention also relates to a computer program comprising instructions for the execution of one of the methods for establishing at least one common key according to the invention, when the program is executed by a processor.

L’invention a aussi pour objet un support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution de l’une des méthodes d’établissement d’au moins une clé commune selon l’invention, lorsque le programme est exécuté par un processeur.The subject of the invention is also a recording medium readable by a processor on which is recorded a program comprising instructions for the execution of one of the methods for establishing at least one common key according to the invention, when the program is executed by a processor.

L’invention a aussi pour objet un dispositif de chiffrement comprenant un calculateur configuré pour exécuter les étapes de l’une quelconque des méthodes d’établissement d’au moins une clé commune selon l’invention.The subject of the invention is also an encryption device comprising a computer configured to execute the steps of any of the methods for establishing at least one common key according to the invention.

D’autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit en relation aux dessins annexés qui représentent :Other characteristics and advantages of the present invention will appear better on reading the description which follows in relation to the appended drawings which represent:

- La figure 1, un schéma illustrant un protocole de contrôle d’accès par un utilisateur à un service proposé par un fournisseur, selon un premier mode de réalisation de l’invention,FIG. 1, a diagram illustrating a protocol for controlling access by a user to a service offered by a supplier, according to a first embodiment of the invention,

- La figure 2, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par le fournisseur, au cours d’un protocole de contrôle d’accès selon le premier mode de réalisation de l’invention,FIG. 2, a flow diagram of the steps of a method for establishing encryption keys, executed by the supplier, during an access control protocol according to the first embodiment of the invention,

- La figure 3, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par l’utilisateur, au cours d’un protocole de contrôle d’accès selon le premier mode de réalisation de l’invention,FIG. 3, a flow diagram of the steps of a method for establishing encryption keys, executed by the user, during an access control protocol according to the first embodiment of the invention,

- La figure 4, un schéma illustrant un protocole de contrôle d’accès par un utilisateur à un service proposé par un fournisseur et de contrôle de la légitimité du fournisseur, selon un deuxième mode de réalisation de l’invention,FIG. 4, a diagram illustrating a protocol for controlling access by a user to a service offered by a supplier and for controlling the legitimacy of the supplier, according to a second embodiment of the invention,

- La figure 5, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par le fournisseur, au cours d’un protocole de contrôle d’accès et de contrôle de légitimité selon le deuxième mode de réalisation de l’invention,FIG. 5, a flow diagram of the steps of a method for establishing encryption keys, executed by the supplier, during an access control and legitimacy control protocol according to the second embodiment of FIG. 'invention,

- La figure 6, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par l’utilisateur, au cours d’un protocole de contrôle d’accès et de contrôle de légitimité selon le deuxième mode de réalisation de l’invention,FIG. 6, a flow diagram of the steps of a method of establishing encryption keys, executed by the user, during an access control and legitimacy control protocol according to the second embodiment of the invention,

- La figure 7, un schéma illustrant un protocole de contrôle d’accès par un utilisateur à un service proposé par un fournisseur et de contrôle de la légitimité du fournisseur, selon un troisième mode de réalisation de l’invention,FIG. 7, a diagram illustrating a protocol for controlling access by a user to a service offered by a supplier and for controlling the legitimacy of the supplier, according to a third embodiment of the invention,

- La figure 8, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par le fournisseur, au cours d’un protocole de contrôle d’accès et de contrôle de légitimité selon le troisième mode de réalisation de l’invention,- Figure 8, a flow diagram of the steps of a method of establishing encryption keys, executed by the supplier, during an access control and legitimacy control protocol according to the third embodiment of the 'invention,

- La figure 9, un organigramme des étapes d’une méthode d’établissement de clés de chiffrement, exécutée par l’utilisateur, au cours d’un protocole de contrôle d’accès et de contrôle de légitimité selon le troisième mode de réalisation de l’invention.FIG. 9, a flow diagram of the steps of a method of establishing encryption keys, executed by the user, during an access control and legitimacy control protocol according to the third embodiment of the invention.

Les figures 1,2 et 3 schématisent un mécanisme de contrôle d’accès selon un premier mode de réalisation de l’invention.Figures 1,2 and 3 show schematically an access control mechanism according to a first embodiment of the invention.

L’invention permet à un fournisseur de services ou de ressources de contrôler l’accès à ces services ou ressources par un utilisateur non authentifié. Le contrôle d’accès est réalisé en fonction d’une politique d’accès. Un utilisateur est autorisé s’il possède des attributs qui satisfont la politique d’accès. On rappelle qu’un attribut peut concerner l’utilisateur, les ressources ou services protégés, ou le contexte (p. ex., date, lieu, etc.). La notion d’attribut permet de définir des groupes d’utilisateurs qui possèdent un attribut commun. Chaque utilisateur peut appartenir à un ou plusieurs groupes. Une politique d’accès est définie comme une combinaison de portes logiques de seuil sur des attributs. Un attribut peut être affecté à un utilisateur temporairement ou de façon permanente. A son niveau le plus simple, une politique d’accès peut consister à autoriser l’accès aux individus possédant un attribut prédéterminé. Par exemple, dans le contexte d’un incendie dans un bâtiment intelligent, les primo-intervenants (p. ex. pompiers, police, ...) possède des attributs i.e., des matériels cryptographiques : les attributs « A >> leur permettant d’accéder à tout le bâtiment, les attributs « B >> permettant de contrôler les actionneurs du système CVC (i.e., chauffage, ventilation et climatisation), et les attributs « C >> permettant de réinitialiser le système d’alarme incendie après l’extinction de l’incendie. En revanche, les compagnies d'électricité et d'approvisionnement auront juste les attributs « B >> leur permettant de contrôler les actionneurs du système CVC qu’ils gèrent, mais aussi des attributs « D >> permettant de lire les compteurs du système CVC à distance. Ce dernier service fournit par système CVC demande des attributs qui vérifient la politique (« B >> ET « D »).The invention allows a service or resource provider to control access to these services or resources by an unauthenticated user. Access control is carried out according to an access policy. A user is authorized if he has attributes which satisfy the access policy. Remember that an attribute can relate to the user, the resources or services protected, or the context (e.g., date, place, etc.). The notion of attribute makes it possible to define groups of users who have a common attribute. Each user can belong to one or more groups. An access policy is defined as a combination of threshold logical gates on attributes. An attribute can be assigned to a user temporarily or permanently. At its simplest level, an access policy can be to allow access to individuals with a predetermined attribute. For example, in the context of a fire in an intelligent building, the first responders (eg firefighters, police, etc.) have attributes, ie cryptographic materials: the attributes "A" allowing them to '' access to the whole building, the attributes «B >> allowing to control the actuators of the HVAC system (ie, heating, ventilation and air conditioning), and the attributes« C >> allowing to reset the fire alarm system after extinction of the fire. On the other hand, the electricity and supply companies will have just the attributes “B” allowing them to control the actuators of the HVAC system that they manage, but also attributes “D >> allowing to read the meters of the HVAC system remotely. This last service provided by HVAC system requests attributes that verify the policy ("B >> AND" D ").

L’invention se base sur un mécanisme de chiffrement basé sur les attributs. Elle est compatible à la fois d’un mécanisme de chiffrement de type CP-ABE pour lequel un fournisseur contrôle l’accès aux ressources/services qu’il propose selon une politique d’accès, mais aussi d’un mécanisme de chiffrement de type KP-ABE pour lequel un fournisseur contrôle l’accès aux ressources/services qu’il propose directement en fonction d‘une liste d’attributs autorisés.The invention is based on an attribute-based encryption mechanism. It is compatible both with an encryption mechanism of the CP-ABE type for which a supplier controls access to the resources / services it offers according to an access policy, but also with an encryption mechanism of the type KP-ABE for which a supplier controls access to the resources / services it offers directly according to a list of authorized attributes.

Dans ce premier mode de réalisation de l’invention, le fournisseur et l’utilisateur connaissent les paramètres publics du mécanisme de chiffrement ABE utilisé. Par ailleurs, l’utilisateur possède un ensemble de clés secrètes associées à une liste d’attributs qu’il possède (pour un mécanisme de type CP-ABE) ou à une politique de sécurité (pour un mécanisme de type KPABE).In this first embodiment of the invention, the supplier and the user know the public parameters of the ABE encryption mechanism used. In addition, the user has a set of secret keys associated with a list of attributes which he has (for a mechanism of the CP-ABE type) or a security policy (for a mechanism of the KPABE type).

Dans la suite de la description, le terme « utilisateur » est utilisé pour désigner un terminal utilisé par un utilisateur pour accéder au service ou à la ressource proposé(e) par le fournisseur. Le terme « fournisseur » est utilisé pour désigner l’équipement qui met en œuvre le service ou héberge la ressource. Un service peut être un service hébergé sur un serveur distant et proposé par un fournisseur sur Internet. Il peut s’agir d’une application logicielle. Une ressource peut être un calculateur ou un processeur ou une mémoire dans un serveur distant ou sur le terminal de l’utilisateur lui-même. Par exemple, l’invention peut être utilisée pour permettre à un utilisateur de déverrouiller son ordinateur ou pour lui permettre d’accéder à une ressource particulière de la machine qu’il utilise.In the following description, the term "user" is used to designate a terminal used by a user to access the service or the resource offered by the supplier. The term "provider" is used to refer to the equipment that implements the service or hosts the resource. A service can be a service hosted on a remote server and offered by a provider on the Internet. It can be a software application. A resource can be a computer or a processor or a memory in a remote server or on the user’s terminal. For example, the invention can be used to allow a user to unlock their computer or to allow them to access a particular resource on the machine they are using.

On décrit à présent, en préalable à la description de l’invention, deux exemples de protocoles d’échanges de clés de chiffrement sur lesquels l’invention peut se baser.We will now describe, before describing the invention, two examples of encryption key exchange protocols on which the invention can be based.

Le document [3] introduit un mécanisme d’encapsulation de clés basé sur les attributs avec une politique d’encapsulation (en anglais, encapsulation-policy attribute-based key encapsulation mechanism, ou EPAB-KEM). Un protocole de type EP-AB-KEM est une technique de chiffrement conçue pour générer et sécuriser la transmission d’une clé symétrique par le biais d’algorithmes de chiffrement basés sur les attributs et avec une politique associée au texte chiffré. Un protocole de type EP-ABKEM est composé d’au moins les quatre algorithmes suivants.Document [3] introduces an attribute-based key encapsulation mechanism with an encapsulation policy (in English, encapsulation-policy attribute-based key encapsulation mechanism, or EPAB-KEM). An EP-AB-KEM protocol is an encryption technique designed to generate and secure the transmission of a symmetric key by means of attribute-based encryption algorithms and with a policy associated with the encrypted text. An EP-ABKEM type protocol consists of at least the following four algorithms.

Un algorithme de configuration, Configuration (1A) (pk, msk) génère une clé publique pk et une clé secrète maître msk, qui sont retournées en sortie.A configuration algorithm, Configuration (1 A ) (pk, msk) generates a public key pk and a secret master key msk, which are returned as output.

Un algorithme de génération de clés, Génération des clés (msk,S) -F>sk : à partir de la clé secrète maître msk et d’un ensemble d’attributs S associés à un utilisateur, cet algorithme retourne l’ensemble sk des clés correspondant aux attributs dans l’ensemble S. Ces clés sont fournies aux utilisateurs qui possèdent les attributs correspondants.A key generation algorithm, Key generation (msk, S) -F> sk: from the master secret key msk and a set of attributes S associated with a user, this algorithm returns the set sk of keys corresponding to the attributes in set S. These keys are supplied to users who have the corresponding attributes.

Un algorithme d’encapsulation de clés, Encapsulation (pk,r)—>(ct,K) qui génère à la fois une clé aléatoire K comme élément de GT et la même clé chiffrée et, l’opération de chiffrement étant associée à une politique d’accès Γ. Les deux sont retournés en sortie. L’opération d’encapsulation comprend donc la génération d’une clé aléatoire et son chiffrement pour produire une clé chiffrée.A key encapsulation algorithm, Encapsulation (pk, r) -> (ct, K) which generates both a random key K as an element of G T and the same encrypted key and, the encryption operation being associated with an access policy Γ. Both went back out. The encapsulation operation therefore comprises the generation of a random key and its encryption to produce an encrypted key.

Un algorithme de décapsulation de clés, Décapsulation (pk, ct,sk) Cet algorithme est exécuté par un utilisateur possédant certains attributs S et les clés secrètes sk associées. Si l’ensemble S des attributs associés à la clé secrète sk ne satisfait pas la politique d’accès utilisée pour chiffrer la clé et, alors l’algorithme retourne une constante 1 associée à l’évènement “faux”. Autrement dit, cette constante 1 est retournée par l’algorithme pour signifier que l’utilisateur n’est pas autorisé à accéder aux ressources ou services définis par la politique d’accès. Sinon, il déchiffre et pour retrouver la clé symétrique K’ et la retourner en sortie.A key decapsulation algorithm, Decapsulation (pk, ct, sk) This algorithm is executed by a user with certain attributes S and the associated secret keys sk. If the set S of attributes associated with the secret key sk does not satisfy the access policy used to encrypt the key and, then the algorithm returns a constant 1 associated with the "false" event. In other words, this constant 1 is returned by the algorithm to signify that the user is not authorized to access the resources or services defined by the access policy. Otherwise, it decrypts and to find the symmetric key K ’and return it to the output.

Le protocole d’échange de clés proposé dans le document [3] permet à un groupe d’utilisateurs ayant des attributs qui satisfont une politique d’accès donnée, de partager une clé de groupe commune. Le protocole se déroule de la manière suivante. Tout d’abord, chaque utilisateur i exécute l’algorithme d’encapsulation Encapsulation^, Γ)-> (ctj.Kj) pour générer une clé symétrique et son chiffré selon la politique d’accès Γ, et ensuite diffuse le texte chiffré ctj. A la réception d’un texte chiffré et,, chaque utilisateur i exécute l’algorithme de décapsulation Décapsulation(pk, ctpsk,) K, pour retrouver la clé associée en utilisant sa clé secrète skj qui vérifie la politique d’accès. Finalement, chaque utilisateur calcule l’identifiant de la session sid = (ct-J ... | ctn) et la clé du groupe composé de n utilisateurs: K = fKi(sid) φ... φ fKn(sid) où f est une fonction pseudo-aléatoire à clé.The key exchange protocol proposed in document [3] allows a group of users with attributes that satisfy a given access policy to share a common group key. The protocol proceeds as follows. First, each user i runs the Encapsulation algorithm Encapsulation ^, Γ) -> (ctj.Kj) to generate a symmetric key and its encrypted according to the access policy Γ, and then broadcasts the encrypted text ctj . Upon receipt of an encrypted text and ,, each user i executes the decapsulation algorithm Decapsulation (pk, ctpsk,) K, to find the associated key using his secret key skj which verifies the access policy. Finally, each user calculates the session identifier sid = (ct-J ... | ct n ) and the key of the group composed of n users: K = f Ki (sid) φ ... φ f Kn (sid ) where f is a key pseudo-random function.

Le protocole proposé dans le document [3] est destiné à sécuriser les communications de groupe et n’offre pas une solution permettant un contrôle d’accès individuel et protégé en confidentialité vis-à-vis d’autres utilisateurs ayant des attributs satisfaisant la politique d’accès associée aux communications protégées, ainsi que vis-à-vis de l’autorité de séquestre qui génère les clés secrètes ABE.The protocol proposed in document [3] is intended to secure group communications and does not offer a solution allowing individual access control and protected in confidentiality vis-à-vis other users with attributes satisfying the policy access associated with protected communications, as well as vis-à-vis the escrow authority which generates the secret ABE keys.

Un autre exemple de protocole de type EP-AB-KEM est dérivé du schéma de Waters décrit dans le document [6]. Dans cet exemple, le protocole est composé des algorithmes suivants par défaut avec une variation apportée aux paramètres de sortie de l’algorithme d’encapsulation.Another example of an EP-AB-KEM type protocol is derived from the Waters scheme described in document [6]. In this example, the protocol is composed of the following algorithms by default with a variation made to the output parameters of the encapsulation algorithm.

Un algorithme de configuration Configuration (1A) ~^(pk,msk): cet algorithme définit trois groupes G1; G2, et GT d’ordre premier p = Θ(λ) avec Gi et G2 ayant respectivement deux générateurs P et Q, et supportant une application bilinéaire non dégénérée, efficace et calculable e : Gj x G2 GT. L’algorithme choisit deux valeurs aléatoires a, a eZP, ainsi qu’un ensemble d’éléments aléatoires Hn H2,..,HU e G-ι qui seront associés à l’ensemble de U attributs. Par la suite, l’algorithme calcule une clé publique pk = (P,Q,a.P,e(P,Q)“,H1(..,Hu) et une clé secrète maître msk = (α.P), qui sont retournées en sortie.A configuration algorithm Configuration (1 A ) ~ ^ (pk, msk): this algorithm defines three groups G 1; G 2 , and G T of first order p = Θ (λ) with Gi and G 2 having respectively two generators P and Q, and supporting a bilinear map not degenerate, efficient and calculable e: Gj x G 2 G T. The algorithm chooses two random values a, a eZ P , as well as a set of random elements H n H 2 , .., H U e G-ι which will be associated with the set of U attributes. Subsequently, the algorithm calculates a public key pk = (P, Q, aP, e (P, Q) “, H 1 ( .., Hu) and a secret master key msk = (α.P), which returned to output.

Un algorithme de génération de clés Génération des clés (msk,S) -xsk·. cet algorithme choisit une valeur aléatoire te ZP. Ensuite, à partir de la clé secrète maître msk et d’un ensemble d’attributs S associés à un utilisateur, l’algorithme calcule K= a. P+ t. (a. P), L = t. Q, et Vy e S ç U: Ky = t. Hy comme étant la clé secrète sk qui est retournée en sortie.A key generation algorithm Key generation (msk, S) -xsk ·. this algorithm chooses a random value te Z P. Then, from the master secret key msk and a set of attributes S associated with a user, the algorithm calculates K = a. P + t. (a. P), L = t. Q, and Vy e S ç U: K y = t. H y as the secret key sk which is returned on exit.

Un algorithme d’encapsulation de clés, Encapsulation (pk,r}->(ct,sy. cet algorithme convertit la politique d’accès en une matrice MSP (en anglais, Monotone Span Program), (M, p), où p est une fonction qui fait correspondre chaque ligne de la matrice M à un attribut de U. Un exemple de techniques de conversion est décrit dans l’annexe G du document [7], Pour une matrice M de m lignes et d colonnes, l’algorithme choisit les valeurs aléatoires s,y2, ->yd>ri>-->rm e zp· Considérant le vecteur v = (s,y2, ...,ym), l’algorithme calcule VI < i < m: μ, =< (M)i;v > où (M)j est la iième ligne de M et <.,. > dénote un produit scalaire. Ensuite, l’algorithme calcule C' = s.Qetvl < i < m: Cj = pj.(a.P) + (-η).Ηρ(ί) et Di = rj.Q comme étant le texte chiffré et. L’algorithme retourne en sortie (et = ((M, p), C',V1 < i < m: Cj, Dj), s).A key encapsulation algorithm, Encapsulation (pk, r} -> (ct, sy. This algorithm converts the access policy into an MSP matrix (in English, Monotone Span Program), (M, p), where p is a function that maps each row of the matrix M to an attribute of U. An example of conversion techniques is described in appendix G of the document [7], For a matrix M of m rows and d columns, the algorithm chooses random values s, y 2 , ->yd> r i>-> r m ez p · Considering the vector v = (s, y 2 , ..., y m ), the algorithm calculates VI < i <m: μ, = <(M) i; v> where (M) j is the i-th line of M and <.,.> denotes a scalar product, then the algorithm calculates C '= s.Qetvl < i <m: Cj = pj. (aP) + (-η) .Ηρ (ί) and Di = rj.Q as the ciphertext and. The algorithm returns as output (et = ((M, p), C ', V1 <i <m: Cj, Dj), s).

Un algorithme de décapsulation de clés chiffrées Décapsulation (pk, ct,sk) si l'ensemble S des attributs associés à la clé secrète sk ne satisfait pas la politique d’accès utilisée pour chiffrer la clé et, alors l’algorithme retourne la constante 1 signifiant l’information logique « faux » Sinon, il existe un ensemble de constantes {Υίΐί^ι tel que ΣϊειΥϊ·(Μ)ϊ = (1,0,...,0) où I est un ensemble d’indices de lignes de la matrice Mqui correspondent à des attributs dans S. Par la suite, l’algorithme calcule la clé symétrique:An algorithm for decapsulating encrypted keys Decapsulation (pk, ct, sk) if the set S of attributes associated with the secret key sk does not satisfy the access policy used to encrypt the key and, then the algorithm returns the constant 1 signifying the “false” logical information Otherwise, there is a set of constants {Υίΐί ^ ι such that ΣϊειΥϊ · (Μ) ϊ = (1,0, ..., 0) where I is a set of indices of rows of the matrix Mqui correspond to attributes in S. Subsequently, the algorithm calculates the symmetric key:

, _ ___________e(K,C’)___________ e(niaC L).n|eIe(Kp(1),D) et retourne K’ en sortie., _ ___________ e (K, C ') ___________ e (n ia CL) .n | eI e (K p (1) , D) and returns K' as output.

La figure 1 schématise une vue d’ensemble des échanges intervenant entre un fournisseur F proposant un service et un utilisateur U souhaitant utiliser ce service. La figure 2 décrit, sur un organigramme, les étapes de la méthode selon l’invention exécutées par le fournisseur. La figure 3 décrit, sur un organigramme, les étapes de la méthode selon l’invention exécutées par l’utilisateur.Figure 1 shows schematically an overview of the exchanges between a supplier F offering a service and a user U wishing to use this service. FIG. 2 describes, on a flowchart, the steps of the method according to the invention executed by the supplier. FIG. 3 describes, on a flow diagram, the steps of the method according to the invention executed by the user.

Dans ce premier mode de réalisation de l’invention, le fournisseur et l’utilisateur connaissent et utilisent les mêmes paramètres publics Pk du mécanisme de chiffrement ABE.In this first embodiment of the invention, the supplier and the user know and use the same public parameters Pk of the ABE encryption mechanism.

Le fournisseur définit une politique d’accès Γ ou une liste d’attributs {attr} pour lesquels l’accès au service ou à la ressource qu’il propose est autorisé. Selon cette politique d’accès, le fournisseur génère, dans une première étape 201, une clé partielle K1f et la chiffre en utilisant, par exemple, un algorithme d’encapsulation de clés tel que décrit dans l’un des deux exemples précédents. La clé partielle K1 F est générée en effectuant une exponentiation modulaire entre le générateur g=e(P,Q)a d’un groupe compris dans les paramètres publics partagés par l’utilisateur et le fournisseur, et une valeur aléatoire secrète s générée par le fournisseur : Kp = e(P,Q)as = gs. Le groupe utilisé est un groupe fini qui peut être, par exemple, un groupe multiplicatif ou un groupe additif.The supplier defines an access policy Γ or a list of attributes {attr} for which access to the service or to the resource it offers is authorized. According to this access policy, the supplier generates, in a first step 201, a partial key K 1 f and encrypts it using, for example, a key encapsulation algorithm as described in one of the two previous examples . The partial key K 1 F is generated by performing a modular exponentiation between the generator g = e (P, Q) a of a group included in the public parameters shared by the user and the supplier, and a secret random value s generated by the supplier: Kp = e (P, Q) as = g s . The group used is a finite group which can be, for example, a multiplicative group or an additive group.

Ainsi, le fournisseur génère une clé partielle K1 F et sa version chiffrée cîf. Il transmet ensuite, dans une étape 202, la clé partielle chiffrée cîf à l’utilisateur.Thus, the supplier generates a partial key K 1 F and its encrypted version cîf. It then transmits, in a step 202, the encrypted partial key cîf to the user.

A réception 303 de la clé cîf, l’utilisateur exécute un algorithme de décapsulation 304 (par exemple l’un des algorithmes décrit précédemment) pour déchiffrer la clé cîf en utilisant les paramètres publics pk et la clé secrète sku associée aux attributs qu’il possède. Si les attributs que possède l’utilisateur vérifient la politique d’accès du fournisseur, alors la clé est déchiffrée et l’utilisateur récupère la clé partielle K1 F du fournisseur.Upon receipt 303 of the key cîf, the user executes a decapsulation algorithm 304 (for example one of the algorithms described above) to decrypt the key cîf using the public parameters pk and the secret key sk u associated with the attributes that he owns. If the attributes possessed by the user verify the access policy of the supplier, then the key is decrypted and the user recovers the partial key K 1 F from the supplier.

Dans une autre étape 301, l’utilisateur génère une valeur aléatoire y et calcule une autre clé partielle K1u à partir de cette valeur aléatoire et du générateur g=e(P,Q)a du groupe en effectuant une exponentiation modulaire.In another step 301, the user generates a random value y and calculates another partial key K 1 u from this random value and from the generator g = e (P, Q) a of the group by performing a modular exponentiation.

Kb = e(P, Q)ay = gy Kb = e (P, Q) ay = g y

L’utilisateur transmet 302 la clé partielle K1u au fournisseur.The user transmits 302 the partial key K 1 u to the supplier.

A réception 203 de la clé partielle K1u de l’utilisateur, le fournisseur calcule 204 une clé commune kdh = Kbs en effectuant une exponentiation modulaire entre cette clé et la valeur aléatoire secrète s utilisée pour générer la clé partielle K1 F du fournisseur.Upon reception 203 of the partial key K 1 u from the user, the supplier calculates 204 a common key k dh = Kb s by performing a modular exponentiation between this key and the secret random value s used to generate the partial key K 1 F from the supplier.

De façon similaire, l’utilisateur calcule 305 la même clé commune ΚθΗ = Kpy en effectuant une exponentiation modulaire entre la clé partielle du fournisseur et la valeur aléatoire secrète y.Similarly, the user calculates 305 the same common key Κθ Η = Kp y by performing a modular exponentiation between the partial key of the supplier and the secret random value y.

A partir de la clé commune ΚθΗ, le fournisseur et l’utilisateur peuvent établir 205,306 un canal de communication sécurisé.From the common key Κθ Η , the supplier and the user can establish 205,306 a secure communication channel.

Par exemple, ils peuvent générer chacun, à partir de cette clé commune, des clés de session pour protéger le canal de communication à travers lequel les ressources ou services seront accédés. La protection est possible en intégrité et en confidentialité.For example, they can each generate, from this common key, session keys to protect the communication channel through which the resources or services will be accessed. Protection is possible with integrity and confidentiality.

Une méthode possible pour dériver des clés de session à partir d’une clé commune est proposée dans le document [8].A possible method for deriving session keys from a common key is proposed in document [8].

L’établissement d’une clé commune à partir de clés partielles se base sur le protocole d’échange de clés Diffie-Hellman décrit dans [9]. La clé commune est généralement une clé maître utilisée pour dériver d’autres clés de chiffrement qui sont utilisées pour garantir la confidentialité ou l’intégrité. Ce protocole permet à deux parties d’établir une clé commune. Pour cela, les deux parties choisissent un groupe fini (p. ex. un groupe multiplicatif) et un générateur g de ce groupe. La première partie choisit un nombre aléatoire x, calcule gx, et envoie gx. Respectivement, la deuxième partie choisit un nombre aléatoire y, calcule gy, et envoie gy. Les deux parties calculent ensuite la clé commune gxy.The establishment of a common key from partial keys is based on the Diffie-Hellman key exchange protocol described in [9]. The common key is usually a master key used to derive other encryption keys which are used to guarantee confidentiality or integrity. This protocol allows two parties to establish a common key. For this, the two parties choose a finite group (eg a multiplicative group) and a generator g from this group. The first part chooses a random number x, calculates g x , and sends g x . Respectively, the second part chooses a random number y, calculates g y , and sends g y . The two parties then calculate the common key g xy .

Un avantage de la méthode selon l’invention est quelle permet de protéger les échanges entre un fournisseur et un utilisateur, en intégrité et en confidentialité, vis-à-vis des utilisateurs du même groupe possédant les mêmes attributs et aussi vis-à-vis de l’autorité qui délivre les paramètres publics.An advantage of the method according to the invention is that it makes it possible to protect the exchanges between a supplier and a user, with integrity and confidentiality, vis-à-vis users of the same group having the same attributes and also vis-à-vis of the authority that issues the public parameters.

Un autre avantage est que l’invention permet d’avoir une confidentialité persistante. En effet, dans le cas où les paramètres publics sont récupérés par un tiers non autorisé, ce tiers ne pourra pas retrouver la clé commune simplement en ayant accès aux échanges entre le fournisseur et l’utilisateur. En effet, l’accès à la clé partielle chiffrée ctF permet, en connaissant les paramètres publics, de retrouver la clé partielle K1F du fournisseur mais la connaissance des deux clés symétriques partielles K1F et K1u ne permet pas de retrouver la clé commune KoH.Another advantage is that the invention makes it possible to have persistent confidentiality. Indeed, in the case where the public parameters are recovered by an unauthorized third party, this third party cannot find the common key simply by having access to exchanges between the supplier and the user. Indeed, access to the encrypted partial key ct F allows, knowing the public parameters, to find the partial key K 1 F of the supplier but knowledge of the two partial symmetric keys K 1 F and K 1 u does not allow find the common key Ko H.

Aussi, l’invention permet également une confidentialité vis-à-vis de l’autorité de séquestre qui délivre les paramètres publics.Also, the invention also allows confidentiality vis-à-vis the escrow authority which issues public parameters.

L’invention conserve par ailleurs l’avantage d’un mécanisme de chiffrement basé sur les attributs qui permet d’accéder à un service en étant authentifié sur la base de ses attributs sans être identifié personnellement.The invention also retains the advantage of an attribute-based encryption mechanism which allows access to a service by being authenticated on the basis of its attributes without being identified personally.

Les figures 4,5 et 6 décrivent un deuxième mode de réalisation de l’invention. La figure 4 schématise une vue d’ensemble des échanges intervenant entre un fournisseur F proposant un service et un utilisateur U souhaitant utiliser ce service. La figure 5 décrit, sur un organigramme, les étapes de la méthode selon le deuxième mode de réalisation de l’invention exécutées par le fournisseur. La figure 6 décrit, sur un organigramme, les étapes de la méthode selon le deuxième mode de réalisation de l’invention exécutées par l’utilisateur.Figures 4,5 and 6 describe a second embodiment of the invention. Figure 4 shows schematically an overview of the exchanges between a supplier F offering a service and a user U wishing to use this service. FIG. 5 describes, on a flow diagram, the steps of the method according to the second embodiment of the invention executed by the supplier. FIG. 6 describes, on a flow diagram, the steps of the method according to the second embodiment of the invention executed by the user.

Le deuxième mode de réalisation de l’invention permet à la fois à un fournisseur de ressources ou services associés à une politique d’accès de contrôler l’accès par un utilisateur non authentifié mais également à l’utilisateur de vérifier si le fournisseur est légitime à fournir le service ou les ressources.The second embodiment of the invention allows both a provider of resources or services associated with an access policy to control access by an unauthenticated user but also the user to check whether the provider is legitimate to provide the service or resources.

Ainsi, dans cette variante de réalisation, l’invention comprend un mécanisme d’authentification, par l’utilisateur, de la légitimité du fournisseur. Le fournisseur et l’utilisateur partagent toujours les mêmes paramètres publics pk utilisés pour générer les clés symétriques partielles, qui sont connus d’eux et fournis par une autorité tierce.Thus, in this variant embodiment, the invention includes a mechanism for authentication, by the user, of the legitimacy of the supplier. The provider and user always share the same public pk parameters used to generate the partial symmetric keys, which are known to them and provided by a third-party authority.

Dans ce deuxième mode de réalisation, l’utilisateur exécute en outre une étape de chiffrement 601 de la clé partielle K1u générée à l’étape 301. Cette étape de chiffrement 601 peut être réalisée au moyen d’un algorithme d’encapsulation identique à celui utilisé par le fournisseur et qui produit en sortie une clé chiffrée ctu- L’encapsulation 601 est effectuée à partir d’une politique Γυ permettant de vérifier la légitimité du fournisseur de service pour assurer le service ou proposer les ressources. Cette politique Γυ est, par exemple, une combinaison logique de plusieurs attributs que doit vérifier un fournisseur légitime. Si le mécanisme de chiffrement KP-ABE est utilisé, la politique Γυ est remplacée par une liste d’attributs {attru}.In this second embodiment, the user also performs an encryption step 601 of the partial key K 1 u generated in step 301. This encryption step 601 can be performed using an identical encapsulation algorithm to that used by the supplier and which produces an encrypted ctu- key as output. Encapsulation 601 is carried out using a Γυ policy allowing the legitimacy of the service provider to be verified to provide the service or offer the resources. This policy Γυ is, for example, a logical combination of several attributes that a legitimate supplier must verify. If the KP-ABE encryption mechanism is used, the Γυ policy is replaced by a list of attributes {attru}.

A réception 203 de la clé chiffrée ctu, le fournisseur exécute un algorithme de décapsulation 501 pour retrouver la clé partielle K1u de l’utilisateur. Cette opération n’est possible que si le fournisseur possède les attributs qui satisfont la politique de sécurité Γυ de l’utilisateur.On reception 203 of the encrypted key ctu, the supplier executes a decapsulation algorithm 501 to find the partial key K 1 u of the user. This operation is only possible if the supplier has the attributes which satisfy the user's security policy Γυ.

Les autres étapes de la méthode sont identiques à celles décrites pour le premier mode de réalisation de l’invention.The other steps of the method are identical to those described for the first embodiment of the invention.

Un avantage de ce deuxième mode de réalisation est qu’il permet à l’utilisateur d’authentifier le fournisseur pour être sur que celui-ci est bien légitime à proposer le service ou fournir les ressources.An advantage of this second embodiment is that it allows the user to authenticate the supplier to be sure that it is legitimate to offer the service or provide the resources.

Les figures 7,8 et 9 décrivent un troisième mode de réalisation de l’invention. La figure 7 schématise une vue d’ensemble des échanges intervenant entre un fournisseur F proposant un service et un utilisateur U souhaitant utiliser ce service. La figure 8 décrit, sur un organigramme, les étapes de la méthode selon le troisième mode de réalisation de l’invention exécutées par le fournisseur. La figure 9 décrit, sur un organigramme, les étapes de la méthode selon le troisième mode de réalisation de l’invention exécutées par l’utilisateur.Figures 7,8 and 9 describe a third embodiment of the invention. Figure 7 shows schematically an overview of the exchanges between a supplier F offering a service and a user U wishing to use this service. FIG. 8 describes, on a flow diagram, the steps of the method according to the third embodiment of the invention executed by the supplier. FIG. 9 describes, on a flow diagram, the steps of the method according to the third embodiment of the invention executed by the user.

Ce troisième mode de réalisation est une variante du deuxième mode de réalisation décrit ci-dessus. Dans ce troisième mode de réalisation de l’invention, le processus d’authentification de l’utilisateur par le fournisseur utilise un premier ensemble de paramètres publics associés à un premier ensemble de clés publiques pkp, tandis que le processus de vérification de la légitimité du fournisseur par l’utilisateur utilise un second ensemble de paramètres publics associés à un second ensemble de clés publiques pku.This third embodiment is a variant of the second embodiment described above. In this third embodiment of the invention, the process of authentication of the user by the supplier uses a first set of public parameters associated with a first set of public keys pkp, while the process of verifying the legitimacy of the provider by user uses a second set of public parameters associated with a second set of pku public keys.

Les deux ensembles de paramètres publics sont, par exemple, fournis respectivement au fournisseur et à l’utilisateur par deux autorités tierces différentes. Ainsi, les groupes utilisés respectivement pour générer des clés partielles sont différents respectivement pour le processus d’authentification (décrit dans le premier mode de réalisation de l’invention) et pour le processus de vérification de légitimité (décrit dans le second mode de réalisation de l’invention).The two sets of public parameters are, for example, provided to the provider and the user respectively by two different third-party authorities. Thus, the groups used respectively to generate partial keys are different respectively for the authentication process (described in the first embodiment of the invention) and for the legitimacy verification process (described in the second embodiment of the invention).

Dans ce cas, le fonctionnement du mécanisme d’établissement de clés doit être modifié par rapport au fonctionnement décrit aux figures 4,5,6 car il n’est plus possible pour le fournisseur et l’utilisateur de calculer une seule clé commune.In this case, the operation of the key establishment mechanism must be modified compared to the operation described in Figures 4,5,6 because it is no longer possible for the supplier and the user to calculate a single common key.

Dans une première étape 201, le fournisseur génère, selon la politique d’accès ou la liste d’attributs qu’il possède, une première clé partielle K1f et la chiffre en utilisant, par exemple, un algorithme d’encapsulation de clés. La clé partielle K1f est générée à partir d’un premier ensemble de paramètres publics {Pf,Qf,c(f} en réalisant par exemple une exponentiation modulaire entre le générateur gF=e(PF,QF)aF d’un groupe compris dans ce premier ensemble et une première valeur aléatoire secrète sf générée par le fournisseur : Kp = e(PF,QF)aFSF= Qfsf· Le premier ensemble de paramètres publics est utilisée pour le mécanisme d’authentification de l’utilisateur.In a first step 201, the supplier generates, according to the access policy or the list of attributes that he has, a first partial key K 1 f and encrypts it using, for example, a key encapsulation algorithm . The partial key K 1 f is generated from a first set of public parameters {Pf, Qf, c (f} by performing for example a modular exponentiation between the generator g F = e (PF, QF) a F d ' a group included in this first set and a first secret random value sf generated by the supplier: Kp = e (PF, QF) a F S F = Qf s f · The first set of public parameters is used for the authentication mechanism of the user.

Dans une étape supplémentaire 801, le fournisseur génère aussi une seconde clé partielle K2 F à partir d’un second ensemble de paramètres publics {Pu,Qu,au} en réalisant par exemple une exponentiation modulaire entre le générateur gu=e(Pu,Qu)au d’un groupe compris dans ce premier ensemble et une seconde valeur aléatoire secrète x générée par le fournisseur : K2F = e(Pu,Qu)aux= gu*In an additional step 801, the supplier also generates a second partial key K 2 F from a second set of public parameters {Pu, Qu, au}, for example by performing a modular exponentiation between the generator gu = e (Pu, Qu) a u of a group included in this first set and a second secret random value x generated by the supplier: K 2 F = e (Pu, Qu) a u x = gu *

Le second ensemble de paramètres publics est utilisé pour le mécanisme de vérification de la légitimité du fournisseur.The second set of public parameters is used for the provider's legitimacy verification mechanism.

Ensuite, le fournisseur transmet 202, la première clé chiffrée cîf et la seconde clé partielle K2 F à l’utilisateur.Then, the supplier transmits 202, the first encrypted key cîf and the second partial key K 2 F to the user.

A réception 303 des deux clés, l’utilisateur exécute un algorithme de décapsulation 304 (par exemple l’un des algorithmes décrit précédemment) pour déchiffrer la clé cîf en utilisant les clés publiques pkF du premier ensemble de paramètres publics et la clé secrète sku associée aux attributs qu’il possède. Si les attributs que possède l’utilisateur vérifient la politique d’accès du fournisseur, alors la clé est déchiffrée et l’utilisateur récupère la première clé partielle K1F du fournisseur. Il détient par ailleurs la seconde clé partielle K2F qu’il a reçu.Upon receipt 303 of the two keys, the user executes a decapsulation algorithm 304 (for example one of the algorithms described above) to decrypt the key cîf using the public keys pk F of the first set of public parameters and the secret key sk u associated with the attributes it has. If the attributes possessed by the user verify the access policy of the supplier, then the key is decrypted and the user recovers the first partial key K 1 F from the supplier. He also holds the second partial key K 2 F that he received.

Dans une autre étape 301, l’utilisateur génère une première clé partielle K1u à partir de paramètres publics du second ensemble et d’une valeur aléatoire Su : Kjj = eCPu.Qu)0^ = guSu. Cette première clé est destinée au mécanisme de vérification de la légitimité du fournisseur. Cette première clé partielle est ensuite chiffrée 601 via un algorithme d’encapsulation pour produire une clé chiffrée ctuDans une autre étape 901, l’utilisateur génère aussi une seconde clé partielle K2u à partir de paramètres publics du premier ensemble et d’une valeur aléatoire y : Ku = e(PF,QF)ai7y = gFy. Cette seconde clé partielle est destinée au mécanisme d’authentification de l’utilisateur.In another step 301, the user generates a first partial key K 1 u from public parameters of the second set and a random value Su: Kjj = eCPu.Qu) 0 ^ = gu Su . This first key is intended for the supplier's legitimacy verification mechanism. This first partial key is then encrypted 601 via an encapsulation algorithm to produce an encrypted key ctu. In another step 901, the user also generates a second partial key K 2 u from public parameters of the first set and a value random y: Ku = e (PF, QF) ai7y = gF y . This second partial key is intended for the user authentication mechanism.

L’utilisateur transmet ensuite 302 la première clé chiffrée ctu et la seconde clé partielle K2u au fournisseur.The user then transmits 302 the first encrypted key ctu and the second partial key K 2 u to the supplier.

A réception 203 des deux clés, le fournisseur déchiffre 501 la clé chiffrée ctu via un algorithme de décapsulation.Upon receipt 203 of the two keys, the supplier decrypts 501 the encrypted key ctu via a decapsulation algorithm.

Le fournisseur détermine 803 ensuite une première clé partielle commune KqH = Kjj* en effectuant une exponentiation modulaire entre la première clé partielle déchiffrée K1u et la variable aléatoire secrète x utilisée pour calculer la seconde clé partielle du fournisseur K2 F. Cette première clé commune est calculée à partir de paramètres publics du second ensemble et sert à vérifier la légitimité du fournisseur.The supplier 803 then determines a first common partial key Kq H = Kjj * by performing a modular exponentiation between the first decrypted partial key K 1 u and the secret random variable x used to calculate the second partial key of the supplier K 2 F. This first common key is calculated from public parameters of the second set and is used to verify the legitimacy of the supplier.

Le fournisseur détermine 802 par ailleurs une seconde clé commune kdh = K&SF θη effectuant une exponentiation modulaire entre la seconde clé symétrique K2u reçue et la variable aléatoire sF secrète utilisée pour calculer la première clé partielle du fournisseur K1F. Cette seconde clé commune est calculée à partir de paramètres publics du premier ensemble et sert à authentifier l’utilisateur.The supplier also determines 802 a second common key k dh = K & SF θ η performing a modular exponentiation between the second symmetric key K 2 u received and the secret random variable sF used to calculate the first partial key of the supplier K 1 F. This second common key is calculated from public parameters of the first set and is used to authenticate the user.

De façon similaire, l’utilisateur calcule également 902 la première clé commune ΚθΗ = KF Su en effectuant une exponentiation modulaire entre la seconde clé partielle reçue K2 F et la variable aléatoire secrète Su utilisée pour calculer la première clé partielle de l’utilisateur K1u- Cette première clé commune est calculée à partir de paramètres publics du second ensemble et sert à vérifier la légitimité du fournisseur.Similarly, the user also calculates 902 the first common key Κθ Η = K F Su by performing a modular exponentiation between the second partial key received K 2 F and the secret random variable Su used to calculate the first partial key of the user K 1 u- This first common key is calculated from public parameters of the second set and is used to verify the legitimacy of the supplier.

L’utilisateur détermine aussi 305 par ailleurs une seconde clé commune ΚθΗ = Kpy en effectuant une exponentiation modulaire entre la première clé symétrique K1 F déchiffrée et la variable aléatoire y secrète utilisée pour calculer la seconde clé partielle de l’utilisateur K2u. Cette seconde clé commune est calculée à partir de paramètres publics du premier ensemble et sert à authentifier l’utilisateur.The user also determines 305 also a second common key Κθ Η = Kp y by performing a modular exponentiation between the first symmetric key K 1 F deciphered and the secret random variable y used to calculate the second partial key of the user K 2 u. This second common key is calculated from public parameters of the first set and is used to authenticate the user.

A partir de la première clé commune ΚθΗ, l’utilisateur peut vérifier la légitimité du fournisseur. A partir de la seconde clé commune ΚθΗ, le fournisseur peut authentifier l’utilisateur. A l’aide de ces deux clés de chiffrement communes, le fournisseur et l’utilisateur peuvent établir 903 un canal sécurisé pour échanger.From the first common key Κθ Η , the user can verify the legitimacy of the supplier. From the second common key Κθ Η , the supplier can authenticate the user. Using these two common encryption keys, the provider and the user can establish a secure channel 903 for exchange.

Un avantage de ce troisième mode de réalisation de l’invention est qu’il permet d’adapter la méthode d’établissement de clés communes dans le cas où l’utilisateur et le fournisseur ne partagent pas les mêmes paramètres publics pour réaliser d’une part la vérification de légitimité du fournisseur et d’autre part l’authentification de l’utilisateur. Cela est le cas, par exemple, lorsque les paramètres publics sont fournis par deux autorités tierces distinctes.An advantage of this third embodiment of the invention is that it makes it possible to adapt the method of establishing common keys in the case where the user and the supplier do not share the same public parameters to perform a on the one hand the verification of the legitimacy of the supplier and on the other hand the authentication of the user. This is the case, for example, when the public parameters are provided by two separate third-party authorities.

Dans une variante de réalisation du troisième mode de réalisation, la méthode comprend une phase de négociation préalable entre le fournisseur et l’utilisateur pour qu’ils échangent les paramètres publics respectifs qu’ils vont utiliser.In an alternative embodiment of the third embodiment, the method comprises a phase of prior negotiation between the supplier and the user so that they exchange the respective public parameters that they will use.

Dans une autre variante de réalisation de l’invention, applicable à tous ses modes de réalisation, la méthode comprend en outre une étape d’identification de l’utilisateur par le fournisseur et/ou du fournisseur par l’utilisateur par exemple au moyen d’une signature numérique par certificat numérique. Le protocole utilisant la technique SIGMA décrite dans le document [10] peut être utilisé à cette fin.In another alternative embodiment of the invention, applicable to all of its embodiments, the method further comprises a step of identifying the user by the supplier and / or the supplier by the user for example by means of '' a digital signature by digital certificate. The protocol using the SIGMA technique described in document [10] can be used for this purpose.

Cette variante offre une fonction supplémentaire d’établissement de la responsabilité par identification et journalisation des accès. En effet, rinvention permet uniquement l’authentification d’un utilisateur sur la base d’attributs qu’il possède mais ne permet pas son identification précise et la traçabilité des accès de cet utilisateur au service proposé par le fournisseur. Cette variante de réalisation permet d’ajouter une fonction d’identification supplémentaire à l’invention.This variant offers an additional function of establishing responsibility by identifying and logging access. In fact, the invention only allows the authentication of a user on the basis of attributes that it has but does not allow its precise identification and the traceability of this user's access to the service offered by the supplier. This alternative embodiment makes it possible to add an additional identification function to the invention.

La présente invention peut s’implémenter à partir d’éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d’ordinateur sur un support lisible par ordinateur. Le support peut être électronique, magnétique, optique ou électromagnétique.The present invention can be implemented using hardware and / or software elements. It may be available as a computer program product on computer-readable media. The support can be electronic, magnetic, optical or electromagnetic.

En particulier, le dispositif « fournisseur » et le dispositif « utilisateur » peuvent utiliser un ou plusieurs circuits électroniques dédiés ou un circuit à usage général. La technique de l'invention peut se réaliser sur une machine de calcul reprogrammable (un processeur ou un micro contrôleur par exemple) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).In particular, the “supplier” device and the “user” device can use one or more dedicated electronic circuits or a general-purpose circuit. The technique of the invention can be carried out on a reprogrammable calculation machine (a processor or a microcontroller for example) executing a program comprising a sequence of instructions, or on a dedicated calculation machine (for example a set of logic gates like an FPGA or ASIC, or any other hardware module).

Selon un mode de réalisation, le dispositif « fournisseur » et le dispositif « utilisateur » comprennent au moins un support de stockage lisible par ordinateur (RAM, ROM, EEPROM, mémoire flash ou une autre technologie de mémoire, CD-ROM, DVD ou un autre support à disque optique, cassette magnétique, bande magnétique, disque de stockage magnétique ou un autre dispositif de stockage, ou un autre support de stockage non transitoire lisible par ordinateur) codé avec un programme d'ordinateur (c'est-à-dire plusieurs instructions exécutables) qui, lorsqu'il est exécuté sur un processeur ou plusieurs processeurs, effectue les fonctions des modes de réalisation décrits précédemment.According to one embodiment, the “supplier” device and the “user” device comprise at least one computer-readable storage medium (RAM, ROM, EEPROM, flash memory or another memory technology, CD-ROM, DVD or a other optical disc media, magnetic cassette, magnetic tape, magnetic storage disc or other storage device, or other non-transient computer-readable storage medium) encoded with a computer program (i.e. several executable instructions) which, when executed on a processor or several processors, performs the functions of the embodiments described above.

A titre d'exemple d'architecture matérielle adaptée à mettre en œuvre l'invention, un dispositif selon l’invention peut comporter un bus de communication auquel sont reliés une unité centrale de traitement ou microprocesseur (CPU, acronyme de « Central Processing Unit » en anglais), lequel processeur peut être multi-core ou many-core; une mémoire morte (ROM, acronyme de « Read Only Memory» en anglais) pouvant comporter les programmes nécessaires à la mise en œuvre de l'invention; une mémoire vive ou mémoire cache (RAM, acronyme de « Random Access Memory » en anglais) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et une interface de communication ou E/S (I/O acronyme de « Input/ouput » en anglais) adaptée à transmettre et à recevoir des données.As an example of a hardware architecture adapted to implementing the invention, a device according to the invention may include a communication bus to which a central processing unit or microprocessor (CPU, acronym for "Central Processing Unit") is connected. in English), which processor can be multi-core or many-core; a read only memory (ROM, acronym for “Read Only Memory” in English) which may include the programs necessary for implementing the invention; a random access memory or cache memory (RAM, acronym for "Random Access Memory" in English) comprising registers suitable for recording variables and parameters created and modified during the execution of the aforementioned programs; and a communication or I / O interface (I / O acronym for "Input / ouput" in English) adapted to transmit and receive data.

Dans le cas où l'invention est implantée sur une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) peut être stocké dans ou sur un médium de stockage amovible (par exemple une carte SD, un DVD ou Bluray, un moyen de stockage de masse tel que un disque dur e.g. un SSD) ou non-amovible, volatile ou nonvolatile, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur. Le support lisible par ordinateur peut être transportable ou communicable ou mobile ou transmissible (i.e. par un réseau de télécommunication 2G, 3G, 4G, Wifi, BLE, fibre optique ou autre).In the case where the invention is implemented on a reprogrammable computing machine, the corresponding program (that is to say the sequence of instructions) can be stored in or on a removable storage medium (for example an SD card , a DVD or Bluray, a mass storage means such as a hard disk (eg an SSD) or non-removable, volatile or nonvolatile, this storage medium being partially or totally readable by a computer or a processor. The computer-readable medium can be transportable or communicable or mobile or transmissible (i.e. by a 2G, 3G, 4G, Wifi, BLE, fiber optic or other telecommunications network).

L’invention peut également être implémentée en tant que produit programme d’ordinateur.The invention can also be implemented as a computer program product.

La référence à un programme d'ordinateur qui, lorsqu'il est exécuté, effectue l'une quelconque des fonctions décrites précédemment, ne se limite pas à un programme d'application s'exécutant sur un ordinateur hôte unique. Au contraire, les termes programme d'ordinateur et logiciel sont utilisés ici dans un sens général pour faire référence à tout type de code informatique (par exemple, un logiciel d'application, un micro logiciel, un microcode, ou toute autre forme d'instruction d'ordinateur) qui peut être utilisé pour programmer un ou plusieurs processeurs pour mettre en œuvre des aspects des techniques décrites ici. Les moyens ou ressources informatiques peuvent notamment être distribués (Cloud computing), éventuellement selon des technologies de pair-à-pair. Le code logiciel peut être exécuté sur n'importe quel processeur approprié (par exemple, un microprocesseur) ou cœur de processeur ou un ensemble de processeurs, qu'ils soient prévus dans un dispositif de calcul unique ou répartis entre plusieurs dispositifs de calcul (par exemple tels qu’éventuellement accessibles dans l’environnement du dispositif). Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur ou en mémoire morte. De manière générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif avant d'être exécutés. L'unité centrale peut commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur ou dans la mémoire morte ou bien dans les autres éléments de stockage précités. Le code exécutable peut également être téléchargeable depuis un serveur distant.The reference to a computer program which, when executed, performs any of the functions described above, is not limited to an application program running on a single host computer. On the contrary, the terms computer program and software are used here in a general sense to refer to any type of computer code (for example, application software, firmware, microcode, or any other form of computer instruction) which can be used to program one or more processors to implement aspects of the techniques described here. IT resources or resources can in particular be distributed (Cloud computing), possibly using peer-to-peer technologies. The software code can be executed on any suitable processor (for example, a microprocessor) or processor core or a set of processors, whether provided in a single computing device or distributed among several computing devices (for example example as possibly accessible in the environment of the device). The executable code of each program allowing the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk or in read-only memory. In general, the program or programs can be loaded into one of the storage means of the device before being executed. The central unit can control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk or in the read-only memory or else in the aforementioned other storage elements. The executable code can also be downloaded from a remote server.

Le programme d’ordinateur peut comprendre un code source, un code objet, un code source intermédiaire ou un code objet partiellement compilé ou toute autre forme d’instructions de code de programme adaptées pour mettre en œuvre l’invention sous la forme d’un programme d’ordinateur.The computer program may include source code, object code, intermediate source code or partially compiled object code or any other form of program code instructions adapted to implement the invention in the form of a computer program.

Un tel programme peut présenter diverses architectures fonctionnelles. Par exemple, un programme d’ordinateur selon l’invention peut être décomposé en une ou plusieurs routines qui peuvent être adaptées à exécuter une ou plusieurs fonctions de l’invention telles que décrites précédemment. Les routines peuvent être enregistrées ensemble dans un même fichier exécutable mais peuvent également être sauvegardées dans un ou plusieurs fichiers externes sous la forme de librairies qui sont associées à un programme principal de façon statique ou dynamique. Les routines peuvent être appelées depuis le programme principal mais peuvent également comprendre des appels à d’autres routines ou sous-routines.Such a program can present various functional architectures. For example, a computer program according to the invention can be broken down into one or more routines which can be adapted to execute one or more functions of the invention as described above. The routines can be saved together in the same executable file but can also be saved in one or more external files in the form of libraries which are associated with a main program in a static or dynamic way. Routines can be called from the main program but can also include calls to other routines or subroutines.

Tous les procédés ou étapes de procédés, programmes ou sousprogrammes décrits sous la forme d’organigrammes doivent être interprétés comme correspondant à des modules, segments ou portions de code de programme qui incluent une ou plusieurs instructions de code pour implémenter les fonctions logiques et les étapes de l’invention décrites.All the processes or steps of processes, programs or subprograms described in the form of flowcharts must be interpreted as corresponding to modules, segments or portions of program code which include one or more code instructions to implement the logic functions and the steps of the invention described.

L’invention s’applique au contexte général des réseaux à faibles ressources dans lequel un dispositif contraint en ressources (p. ex. CPU, mémoire, batterie) contrôle l’accès aux ressources ou services qu’il héberge. Ces réseaux peuvent être déployés dans des lieux distants difficiles d’accès où une connexion régulière à une autorité d’authentification et d’autorisation n’est pas réalisable. Dans ces conditions, le protocole proposé dans l’invention permet au dispositif d’appliquer la politique d’accès associée aux ressources ou services sans passer par l’autorité de confiance et sans relation de confiance préalablement établie avec les utilisateurs.The invention applies to the general context of low-resource networks in which a resource constrained device (eg CPU, memory, battery) controls access to the resources or services that it hosts. These networks can be deployed in remote locations that are difficult to access where regular connection to an authentication and authorization authority is not possible. Under these conditions, the protocol proposed in the invention allows the device to apply the access policy associated with the resources or services without going through the trusted authority and without a trust relationship previously established with the users.

L’invention peut également s’appliquer dans le contexte des réseaux d’urgence pour les systèmes de protection du public et de secours en cas de catastrophe. Dans ce type de réseaux, la connexion à une autorité de confiance peut être endommagée, perturbée, ou soumise à des contraintes techniques (p.ex., trafic très important). La solution proposée dans l’invention permet aux utilisateurs, notamment les primo-intervenants, d’accéder aux ressources et services déployés dans la zone sinistrée d’une manière sécurisée.The invention can also be applied in the context of emergency networks for public protection and disaster relief systems. In this type of network, the connection to a trusted authority can be damaged, disrupted, or subject to technical constraints (eg very heavy traffic). The solution proposed in the invention allows users, especially first responders, to access the resources and services deployed in the disaster area in a secure manner.

Dans un cadre général de la gestion fédérée des identités dans le domaine des technologies d’information (en anglais, federated identity) dans un ensemble d’organisations, l’invention peut permettre de simplifier la gestion des accès par des utilisateurs d’une organisation aux ressources ou services offerts par une autre organisation de l’ensemble. Ainsi, le fournisseur de ressources ou services de l’organisation n’exige plus de l’organisation de l’utilisateur, lors de la requête d’accès de l’utilisateur, 5 d’authentifier ce dernier et de fournir des informations relatives à ses droits d’accès.Within a general framework of federated identity management in the field of information technology (in English, federated identity) in a set of organizations, the invention can make it possible to simplify access management by users of an organization resources or services offered by another organization in the group. Thus, the provider of resources or services of the organization no longer requires the organization of the user, when requesting access from the user, to authenticate the latter and to provide information relating to access rights.

Références [1] J. Bethencourt, A. Sahai, and B. Waters. Ciphertext-Policy AttributeBased Encryption. In Proceedings of the 2007 IEEE Symposium on Security and Privacy (SP Ό7). 2007.References [1] J. Bethencourt, A. Sahai, and B. Waters. Ciphertext-Policy AttributeBased Encryption. In Proceedings of the 2007 IEEE Symposium on Security and Privacy (SP Ό7). 2007.

[2] V. Goyal, O. Pandey, A. Sahai, and B. Waters, Attribute-based encryption for fine-grained access control of encrypted data,” in Proceedings of the 13th ACM conference on Computer and communications security, pp. 89-98, 2006.[2] V. Goyal, O. Pandey, A. Sahai, and B. Waters, Attribute-based encryption for fine-grained access control of encrypted data, ”in Proceedings of the 13th ACM conference on Computer and communications security, pp. 89-98, 2006.

[3] M. C. Gorantla, C. Boyd, et J. M. G. Nieto, « Attribute-based authenticated key exchange >>, ACISP 2010.[3] M. C. Gorantla, C. Boyd, and J. M. G. Nieto, "Attribute-based authenticated key exchange", ACISP 2010.

[4] R Steinwandt et AS Corona, « Attribute-based group key establishment >>, Advances in Mathematics of Communications 4 (3), 381-398.[4] R Steinwandt and AS Corona, "Attribute-based group key establishment", Advances in Mathematics of Communications 4 (3), 381-398.

[5] Kolesnikov, H. Krawczyk, Y. Lindell, A. Malozemoff, et T. Rabin, « Attribute-based Key Exchange with General Policies », CCS 2016.[5] Kolesnikov, H. Krawczyk, Y. Lindell, A. Malozemoff, and T. Rabin, "Attribute-based Key Exchange with General Policies", CCS 2016.

[6] B. Waters, « Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization >>, Public Key Cryptography 2011: 53-70.[6] B. Waters, "Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization", Public Key Cryptography 2011: 53-70.

[7] A. Lewko et B. Waters, « Decentralizing attribute-based encryption >>, EUROCRYPT'11.[7] A. Lewko and B. Waters, “Decentralizing attribute-based encryption >>, EUROCRYPT'11.

[8] NIST SP 800-108 « Recommendation for Key Derivation Using Pseudorandom Functions >>, octobre 2009.[8] NIST SP 800-108 "Recommendation for Key Derivation Using Pseudorandom Functions", October 2009.

[9] W. Diffie et M. Hellman, « New directions in cryptography >>, IEEE Transactions on Information Theory, vol. 22, no 6, 1976.[9] W. Diffie and M. Hellman, "New directions in cryptography", IEEE Transactions on Information Theory, vol. 22, no 6, 1976.

[10] H. Krawczyk, « SIGMA: The ‘SIGn-and-MAc’ Approach to Authenticated Diffie-Hellman and Its Use in the IKE Protocols >>, CRYPTO 2003.[10] H. Krawczyk, "SIGMA: The‘ SIGn-and-MAc "Approach to Authenticated Diffie-Hellman and Its Use in the IKE Protocols >>, CRYPTO 2003.

Claims (14)

REVENDICATIONS 1. Méthode, mise en oeuvre par ordinateur, d’établissement d’au moins une clé commune pour le contrôle d’accès à un service ou une ressource proposé par un fournisseur pour des utilisateurs ayant au moins un attribut appartenant à un premier ensemble prédéterminé d’attributs utilisateurs, la méthode étant exécutée par le fournisseur et comprenant les étapes de :1. Method, implemented by computer, of establishing at least one common key for controlling access to a service or resource offered by a supplier for users having at least one attribute belonging to a first predetermined set user attributes, the method being executed by the supplier and comprising the steps of: - Générer (201 ) une première clé partielle de fournisseur K1 F,- Generate (201) a first partial supplier key K 1 F , - Chiffrer (201) la première clé partielle de fournisseur K1 F, à partir d’une clé dérivée dudit premier ensemble d’attributs utilisateurs,- Encrypt (201) the first partial supplier key K 1 F , from a key derived from said first set of user attributes, - Transmettre (202), à l’utilisateur, la première clé partielle de fournisseur chiffrée ctF,- Transmit (202), to the user, the first partial supplier key encrypted ct F , - Recevoir (203), de l’utilisateur, une première clé partielle d’utilisateur K1u,- Receive (203), from the user, a first partial user key K 1 u, - Déterminer (204), à partir de la première clé partielle d’utilisateur K1u, une première clé K1dh commune au fournisseur et à l’utilisateur,- Determine (204), from the first partial user key K 1 u, a first key K 1 dh common to the supplier and the user, - Etablir (205) un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh commune.- Establish (205) a secure communication channel between the supplier and the user from the first common key K 1 dh. 2. Méthode d’établissement d’au moins une clé commune selon la revendication 1 dans laquelle la première clé partielle d’utilisateur est une clé chiffrée ctu et la méthode comprend en outre une étape de déchiffrer (501) la première clé partielle d’utilisateur chiffrée ctu à partir d’une clé dérivée d’un attribut fournisseur skF que possède le fournisseur.2. Method for establishing at least one common key according to claim 1 wherein the first partial user key is an encrypted key ctu and the method further comprises a step of decrypting (501) the first partial key of user encrypted ctu from a key derived from a supplier attribute sk F that the supplier has. 3. Méthode d’établissement d’au moins une clé de commune selon l’une des revendications 1 ou 2 dans laquelle :3. Method for establishing at least one common key according to one of claims 1 or 2 in which: - la première clé partielle de fournisseur K1 F est obtenue (201) à partir d’une opération entre un générateur g d’un groupe et une première variable aléatoire secrète sF du fournisseur et,the first partial supplier key K 1 F is obtained (201) from an operation between a generator g of a group and a first secret random variable s F of the supplier and, - la première clé K1dh commune est obtenue (204) à partir d’une opération entre la première clé partielle d’utilisateur K1u et la première variable aléatoire secrète sF du fournisseur.- The first common key K 1 dh is obtained (204) from an operation between the first partial user key K 1 u and the first secret random variable s F of the supplier. 4. Méthode d’établissement d’au moins une clé commune selon l’une des revendications 1 ou 2 comprenant en outre les étapes de :4. Method for establishing at least one common key according to one of claims 1 or 2 further comprising the steps of: - Générer (801) une seconde clé partielle de fournisseur K2 F et la transmettre (202) à l’utilisateur,- Generate (801) a second partial supplier key K 2 F and transmit it (202) to the user, - Recevoir (203), de l’utilisateur, une seconde clé partielle d’utilisateur K2u,- Receive (203), from the user, a second partial user key K 2 u, - Déterminer (802), à partir de la seconde clé partielle d’utilisateur K2u, une seconde clé K2 DH commune au fournisseur et à l’utilisateur,- Determine (802), from the second partial user key K 2 u, a second key K 2 DH common to the supplier and to the user, - Etablir (804) un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh commune et de la seconde clé K2 DH commune.- Establish (804) a secure communication channel between the supplier and the user from the first common key K 1 dh and the second common key K 2 DH . 5. Méthode d’établissement d’au moins une clé commune selon la revendication 4 dans laquelle :5. Method for establishing at least one common key according to claim 4 in which: - la première clé partielle de fournisseur K1 F est obtenue (201) à partir d’une opération entre un générateur gF d’un premier groupe et une première variable aléatoire secrète sF du fournisseur,the first partial supplier key K 1 F is obtained (201) from an operation between a generator g F of a first group and a first secret random variable s F of the supplier, - la première clé K1dh commune (803) est obtenue à partir d’une opération entre la première clé partielle d’utilisateur K1u et une seconde variable aléatoire secrète x du fournisseur,the first common key K 1 dh (803) is obtained from an operation between the first partial user key K 1 u and a second secret random variable x of the supplier, - la seconde clé partielle de fournisseur K2 F est obtenue (801) à partir d’une opération entre un générateur gu d’un second groupe et la seconde variable aléatoire x secrète du fournisseur et,the second partial supplier key K 2 F is obtained (801) from an operation between a generator gu of a second group and the second random variable x secret of the supplier and, - la seconde clé K2dh commune est obtenue (802) à partir d’une opération entre la seconde clé partielle d’utilisateur K2u et la première variable aléatoire secrète Sf du fournisseur.- the second common key K 2 dh is obtained (802) from an operation between the second partial user key K 2 u and the first secret random variable Sf of the supplier. 6. Méthode, mise en œuvre par ordinateur, d’établissement d’au moins une clé commune pour le contrôle d’accès à un service ou une ressource proposé par un fournisseur pour des utilisateurs ayant au moins un attribut appartenant à un premier ensemble prédéterminé d’attributs utilisateurs, la méthode étant exécutée par un utilisateur possédant au moins un attribut utilisateur et comprenant les étapes de :6. Method, implemented by computer, of establishing at least one common key for controlling access to a service or resource offered by a supplier for users having at least one attribute belonging to a first predetermined set user attributes, the method being executed by a user having at least one user attribute and comprising the steps of: - Générer (301) une première clé partielle d’utilisateur K1u et la transmettre (302) au fournisseur,- Generate (301) a first partial user key K 1 u and transmit it (302) to the supplier, - Recevoir (303), du fournisseur, une première clé partielle de fournisseur chiffrée cîf,- Receive (303), from the supplier, a first partial supplier key, encrypted, - Déchiffrer (304) la première clé partielle de fournisseur chiffrée cîf à partir d’une clé dérivée de l’attribut que possède l’utilisateur, pour obtenir une première clé partielle de fournisseur K1f,- Decrypt (304) the first encrypted partial supplier key cîf from a key derived from the attribute that the user has, to obtain a first partial supplier key K 1 f, - Déterminer (305), à partir de la première clé partielle de fournisseur K1F, une première clé K1DH, K2 DH commune au fournisseur et à l’utilisateur,- Determine (305), from the first partial supplier key K 1 F, a first key K 1 DH, K 2 DH common to the supplier and the user, - Etablir (306) un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1dh, K2dh commune.- Establish (306) a secure communication channel between the supplier and the user from the first key K 1 dh, K 2 dh common. 7. Méthode d’établissement d’au moins une clé commune selon la revendication 4 comprenant en outre une étape de chiffrer (601) la première clé partielle d’utilisateur K1u à partir d’une clé dérivée d’un second ensemble d’attributs fournisseur, avant de la transmettre au fournisseur.7. Method for establishing at least one common key according to claim 4 further comprising a step of encrypting (601) the first partial user key K 1 u from a key derived from a second set d 'attributes supplier, before transmitting it to the supplier. 8. Méthode d’établissement d’au moins une clé commune selon l’une des revendications 6 ou 7 dans laquelle :8. Method for establishing at least one common key according to one of claims 6 or 7 in which: - la première clé partielle d’utilisateur K1u est obtenue (301) à partir d’une opération entre un générateur d’un groupe gF et une première variable aléatoire secrète su,y de l’utilisateur et,the first partial user key K 1 u is obtained (301) from an operation between a generator of a group gF and a first secret random variable su, y of the user and, - la première clé K1DH commune est obtenue (305) à partir d’une opération entre la première clé partielle de fournisseur K1F et la première variable aléatoire secrète su,y de l’utilisateur.the first common key K 1 DH is obtained (305) from an operation between the first partial supplier key K 1 F and the first secret random variable su, y of the user. 9. Méthode d’établissement d’au moins une clé commune selon l’une des revendications 6 ou 7 comprenant en outre les étapes de :9. Method for establishing at least one common key according to one of claims 6 or 7 further comprising the steps of: - Générer (901) une seconde clé partielle d’utilisateur K2u et la transmettre au fournisseur,- Generate (901) a second partial user key K 2 u and transmit it to the supplier, - Recevoir (303), du fournisseur, une seconde clé partielle de fournisseur K2f,- Receive (303), from the supplier, a second partial supplier key K 2 f, - Déterminer (902), à partir de la seconde clé partielle de fournisseur K2f, une seconde clé K1DH commune au fournisseur et à l’utilisateur,- Determine (902), from the second partial supplier key K 2 f, a second key K 1 DH common to the supplier and the user, - Etablir (903) un canal de communication sécurisé entre le fournisseur et l’utilisateur à partir de la première clé K1DH commune et de la seconde clé K2DH commune.- Establish (903) a secure communication channel between the supplier and the user from the first common K 1 DH key and the second common K 2 DH key. 10. Méthode d’établissement d’au moins une clé commune selon la revendication 9 dans laquelle :10. Method for establishing at least one common key according to claim 9 in which: - la première clé partielle d’utilisateur K1u est obtenue (301) à partir d’une opération entre un générateur gu d’un premier groupe et une première variable aléatoire secrète su de l’utilisateur,the first partial user key K 1 u is obtained (301) from an operation between a generator gu of a first group and a first secret random variable su of the user, - la première clé K2DH commune est obtenue (305) à partir d’une opération entre la première clé partielle de fournisseur K1F et une seconde variable aléatoire secrète y de l’utilisateur,the first common key K 2 DH is obtained (305) from an operation between the first partial supplier key K 1 F and a second secret random variable y of the user, - la seconde clé partielle d’utilisateur K2u est obtenue (901) à partir d’une opération entre un générateur gF d’un second groupe et la seconde variable aléatoire secrète y du fournisseur et,the second partial user key K 2 u is obtained (901) from an operation between a generator g F of a second group and the second secret random variable y of the supplier and, - la seconde clé K1dh commune est obtenue (902) à partir d’une opération entre la seconde clé partielle de fournisseur K2 F et la première variable aléatoire secrète Su du fournisseur.- The second common key K 1 dh is obtained (902) from an operation between the second partial supplier key K 2 F and the first secret random variable Su of the supplier. 11. Méthode d’établissement d’au moins une clé commune selon l’une des revendications 3,5,8 ou 10 dans laquelle l’opération est un calcul d’exponentiation modulaire et le groupe est un groupe multiplicatif fini.11. Method for establishing at least one common key according to one of claims 3,5,8 or 10 in which the operation is a modular exponentiation calculation and the group is a finite multiplicative group. 12. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes de l’une quelconque des méthodes d’établissement d’au moins une clé commune selon l’une des revendications 1 à 11, lorsque ledit programme est exécuté par un processeur.12. Computer program comprising program code instructions for the execution of the steps of any one of the methods for establishing at least one common key according to one of claims 1 to 11, when said program is executed by a processor. 13. Support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution des étapes de l’une quelconque des méthodes d’établissement d’au moins une clé commune selon l’une des revendications 1 à 11, lorsque le programme est exécuté par un processeur.13. Recording medium readable by a processor on which a program is recorded comprising instructions for the execution of the steps of any one of the methods for establishing at least one common key according to one of claims 1 to 11, when the program is executed by a processor. 14. Dispositif de chiffrement comprenant un calculateur configuré pour exécuter les étapes de l’une quelconque des méthodes d’établissement d’au moins une clé commune selon l’une quelconque des revendications 1 à 11.14. An encryption device comprising a computer configured to execute the steps of any one of the methods for establishing at least one common key according to any one of claims 1 to 11.
FR1854504A 2018-05-28 2018-05-28 METHOD OF ESTABLISHING KEYS FOR CONTROL OF ACCESS TO A SERVICE OR A RESOURCE Active FR3081652B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1854504A FR3081652B1 (en) 2018-05-28 2018-05-28 METHOD OF ESTABLISHING KEYS FOR CONTROL OF ACCESS TO A SERVICE OR A RESOURCE
PCT/EP2019/063061 WO2019228853A1 (en) 2018-05-28 2019-05-21 Method for establishing keys for controlling access to a service or a resource

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1854504 2018-05-28
FR1854504A FR3081652B1 (en) 2018-05-28 2018-05-28 METHOD OF ESTABLISHING KEYS FOR CONTROL OF ACCESS TO A SERVICE OR A RESOURCE

Publications (2)

Publication Number Publication Date
FR3081652A1 true FR3081652A1 (en) 2019-11-29
FR3081652B1 FR3081652B1 (en) 2021-09-24

Family

ID=63896262

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1854504A Active FR3081652B1 (en) 2018-05-28 2018-05-28 METHOD OF ESTABLISHING KEYS FOR CONTROL OF ACCESS TO A SERVICE OR A RESOURCE

Country Status (2)

Country Link
FR (1) FR3081652B1 (en)
WO (1) WO2019228853A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3118382A1 (en) 2020-12-21 2022-06-24 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method and device for enabling authorized and authenticated access for federated identities
US11799634B2 (en) 2020-09-30 2023-10-24 Qatar Foundation For Education, Science And Community Development Mesh network for resource-constrained devices

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Serious Games", vol. 7529, 1 January 2012, SPRINGER INTERNATIONAL PUBLISHING, Cham, ISBN: 978-3-642-37803-4, ISSN: 0302-9743, article FUGENG ZENG ET AL: "Strongly Secure Attribute-Based Authenticated Key Exchange with Traceability", pages: 231 - 238, XP055552039, 032682, DOI: 10.1007/978-3-642-33469-6_32 *
HAO WANG ET AL: "A Provably Secure Two-Party Attribute-Based Key Agreement Protocol", INTELLIGENT INFORMATION HIDING AND MULTIMEDIA SIGNAL PROCESSING, 2009. IIH-MSP '09. FIFTH INTERNATIONAL CONFERENCE ON, 1 September 2009 (2009-09-01), Piscataway, NJ, USA, pages 1042 - 1045, XP055551574, ISBN: 978-1-4244-4717-6, DOI: 10.1109/IIH-MSP.2009.92 *
UKI YONEYAMA: "Generic Construction of Two-Party Round-Optimal Attribute-Based Authenticated Key Exchange without Random Oracles", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS,COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP, vol. E96-A, no. 6, 1 June 2013 (2013-06-01), pages 1112 - 1123, XP001584422, ISSN: 0916-8508, DOI: 10.1587/TRANSFUN.E96.A.1112 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11799634B2 (en) 2020-09-30 2023-10-24 Qatar Foundation For Education, Science And Community Development Mesh network for resource-constrained devices
FR3118382A1 (en) 2020-12-21 2022-06-24 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method and device for enabling authorized and authenticated access for federated identities

Also Published As

Publication number Publication date
FR3081652B1 (en) 2021-09-24
WO2019228853A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US10776503B2 (en) System of enclaves
Zhao et al. Trusted data sharing over untrusted cloud storage providers
EP3010177A1 (en) Method for authenticating a client device with a server using a secret element
EP1427231A1 (en) Method of establishing and managing a confidence model between a SIM-card and a mobile terminal
EP3375133B1 (en) Method for securing and authenticating a telecommunication
FR3041798A1 (en) IMPROVED AUTHENTICATION METHOD AND DEVICE
Singh et al. Blockchain-enabled end-to-end encryption for instant messaging applications
WO2019228853A1 (en) Method for establishing keys for controlling access to a service or a resource
CN113365264B (en) Block chain wireless network data transmission method, device and system
EP3965361A1 (en) Data exchange between a client and a remote device, for example a secure module
EP4315741A1 (en) Management of access rights to digital files with possible delegation of the rights
FR3028369A1 (en) METHOD AND SYSTEM FOR MANAGING USER IDENTITY TO BE IMPLEMENTED DURING COMMUNICATION BETWEEN TWO WEB BROWSERS
EP4012972A1 (en) Method for selective disclosure of data via a blockchain
Singh et al. Role based security for cloud based data with data reliability
WO2017009067A1 (en) Method of secure delegation of expensive calculations for public key encryption algorithms
US11831757B2 (en) System and method for generating virtual private keys from user credential information
Nair et al. An efficient group authentication mechanism supporting key confidentiality, key freshness and key authentication in cloud computing
EP4156606A1 (en) Method for managing a user involved in a group communication
Madhuri et al. Data Migration Techniques in Cloud
Dinca et al. A framework for user-centric key sharing in personal sensor networks
WO2021074527A1 (en) Method for managing a public key database, method for authenticating public keys, and server device and client device implementing these methods
CN113315749A (en) User data uplink, user data using method, anonymous system and storage medium
EP1992104B1 (en) Authenticating a computer device at user level
Rahulamathavan et al. Smart, secure and seamless access control scheme for mobile devices
WO2016156737A1 (en) Method for obtaining a list of at least one piece of sensitive data

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20191129

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6