METHODS AND DEVICES FOR SECURED IDENTITY-BASED ENCRYPTION SYSTEMS WITH TWO TRUSTED CENTERS
20220038267 · 2022-02-03
Inventors
Cpc classification
International classification
H04L9/08
ELECTRICITY
H04L9/30
ELECTRICITY
H04L9/32
ELECTRICITY
Abstract
A transmitter device for sending an encrypted message to a receiver device in an identity-based cryptosystem, the identity-based cryptosystem includes a transmitter trusted center connected to the transmitter device and a receiver trusted center connected to the receiver device. The transmitter device is configured to: receive, from the transmitter trusted center, two public authentication keys; check if a set of conditions related to a transmitter trusted center public key, to a receiver trusted center public key, and to a transmitter authentication key comprised in the two public authentication keys are satisfied; determine a ciphertext set comprising an encrypted message if the set of conditions are satisfied; send the ciphertext set to the receiver device.
Claims
1. A transmitter device for sending an encrypted message to a receiver device in an identity-based cryptosystem, said identity-based cryptosystem comprising a transmitter trusted center connected to said transmitter device and a receiver trusted center connected to said receiver device, wherein the transmitter device is configured to: receive, from said transmitter trusted center, two public authentication keys; check if a set of conditions related to a transmitter trusted center public key, to a receiver trusted center public key, and to a transmitter authentication key comprised in said two public authentication keys are satisfied; determine a ciphertext set comprising an encrypted message if said set of conditions are satisfied; send said ciphertext set to the receiver device.
2. The transmitter device of claim 1, wherein the transmitter trusted center is associated with a transmitter trusted center identifier, the transmitter device being configured to receive, from said transmitter trusted center, transmitter system parameters, a transmitter public key, and a transmitter private key, said transmitter system parameters comprising a prime number, two algebraic groups of order equal to said prime number, an admissible bilinear map, a first cryptographic hash function, a second cryptographic hash function, a third cryptographic hash function, and a transmitter trusted center public key associated with said transmitter trusted center identifier, said transmitter system parameters being dependent on said transmitter trusted center identifier and a transmitter trusted center security parameter held by said transmitter trusted center, said transmitter private key being dependent on said transmitter system parameters, a transmitter identifier associated with said transmitter device, and on a transmitter trusted center master key held by said transmitter trusted center.
3. The transmitter device of claim 2, wherein the transmitter device is configured to verify a transmitter trusted center public key by comparing a first value to a second value, said first value being determined by applying said bilinear map to the transmitter private key and the transmitter trusted center public key, said second value being determined by applying said bilinear map to the transmitter public key and an intermediate transmitter trusted center public key received from the receiver trusted center, the transmitter device being configured to verify the transmitter authentication key by comparing a third value to a fourth value, said third value being determined by applying said bilinear map to the transmitter trusted center public key and the transmitter authentication key, said fourth value being determined by applying said bilinear map to said intermediate transmitter trusted center public key and a receiver trusted center public key received from the receiver trusted center.
4. The transmitter device of claim 1, wherein the ciphertext set further comprises a first component, a second component, and a third component, the transmitter device being configured to: determine a random secret key; determine a receiver public key by applying the first cryptographic hash function to a receiver identifier associated with the receiver device; and determine an auxiliary value by applying the third cryptographic hash function to said random secret value and a given message.
5. The transmitter device of claim 4, wherein the transmitter device is further configured to: determine said first component by applying an exponentiation function of a basis equal to a receiver trusted center public key received from the receiver trusted center and an exponent equal to said auxiliary value; determine said second component by applying an addition operation to said random secret key and the output of the application of the second cryptographic hash function to the output of the application of the bilinear map to a first input and a second input, said first input being given by a receiver public key associated with the receiver device to the power said auxiliary value, said second input being given by the output of the application of the first cryptographic hash function to the recipient trusted center identifier associated with the receiver trusted center; determine said encrypted message by applying a cipher to said given message, said cipher using said random secret key as encryption key; determine said third component by applying the second cryptographic hash function to the output of the product between a first input and a second input to the power said auxiliary value, said first input being given by the output of the application of the bilinear map to the transmitter private key and an intermediate transmitter trusted center public key received from the receiver trusted center, said second input being given by the output of the application of the bilinear map to an intermediate receiver trusted center public key received from the receiver trusted center and to a receiver public key associated with the receiver device.
6. A receiver device for receiving, from a transmitter device, an encrypted message comprised in a ciphertext set, said ciphertext set comprising a first component, a second component, and a third component, said transmitter device being associated with a transmitter identifier, wherein the receiver device is associated with a receiver identifier, the receiver device being configured to receive, from a receiver trusted center a receiver public key and a receiver private key, said receiver trusted center being associated with a receiver trusted center identifier, the receiver device being configured to: apply a first cryptographic hash function to the transmitter identifier, which provides a transmitter public key; determine a secret key from the first component, the second component and the receiver private key; wherein the receiver device is configured to decrypt the encoded message using a decipher that uses a secret key as a decryption key.
7. The receiver device of claim 6, wherein the receiver device is further configured to receive, from the receiver trusted center, receiver system parameters, said receiver system parameters comprising a prime number, two algebraic groups of order equal to said prime number, an admissible bilinear map, said first cryptographic hash function, a second cryptographic hash function, a third cryptographic hash function, and a receiver trusted center public key associated with said receiver trusted center identifier, said receiver system parameters being dependent on said receiver trusted center identifier and a receiver trusted center security parameter held by said receiver trusted center, said receiver private key being dependent on said receiver system parameters, said receiver identifier associated with said receiver device, and on a receiver trusted center master key held by said receiver trusted center.
8. The receiver device of claim 7, wherein the receiver device is configured to: verify a receiver trusted center public key by comparing the output of the application of the bilinear map to the receiver private key and the receiver trusted center public key to the output of the bilinear map applied to a receiver public key and to an intermediate receiver trusted center public key received from the receiver trusted center; verify a receiver authentication key received from the transmitter trusted center and a transmitter trusted center public key by comparing the output of the bilinear map applied to the receiver trusted center public key and to the receiver authentication key with the output of the of the bilinear map applied to the intermediate receiver trusted center public key and to a transmitter trusted center public key, received from the transmitter trusted center; and verify a transmitter authentication key received from the transmitter trusted center by comparing: the output of the bilinear map applied to a transmitter trusted center public key and the transmitter authentication key; with the output of the bilinear map applied to an intermediate transmitter trusted center public key received from the receiver trusted center and to a receiver trusted center public key.
9. The receiver device of claim 7, wherein, the receiver device is configured to decrypt the encoded message if the receiver trusted center public key, the receiver authentication key, and the transmitter authentication key are verified, and wherein the determination of the secret key comprises applying a subtraction operation between the second component comprised in the ciphertext set and the output of the application of the second cryptographic hash function to the result of the bilinear map applied to the receiver private key and to the first component comprised in the ciphertext set, the receiver device being further configured to: determine an auxiliary value by applying the third cryptographic hash function to said secret key and said original message; and verify the transmitter identity by comparing the third component comprised in the ciphertext set to the output of the application of the second cryptographic hash function to a value to the power said auxiliary value, said value determined as the product between: the output of the bilinear map applied to the transmitter public key and to the intermediate transmitter trusted center public key; and the output of the bilinear map applied to the transmitter authentication key and to the receiver private key.
10. An identity-based cryptosystem comprising a transmitter trusted center and a receiver trusted center, wherein the transmitter trusted center is configured to receive, from a transmitter, a transmitter identifier, and to determine a transmitter private key from a transmitter trusted center master key, transmitter system parameters and the transmitter identifier, the transmitter trusted center being configured to determine a transmitter public key by applying a first hash function to the transmitter identifier and to determine a transmitter private key by applying an exponentiation function defined by a base and an exponent, the base being equal to said transmitter public key, and the exponent being equal to the inverse of the transmitter trusted center master key, transmitter trusted center being configured to transmit the transmitter private key to the transmitter device.
11. The identity-based cryptosystem of claim 10, wherein the receiver trusted center is configured to receive, from a receiver device, a receiver identifier, and to determine a receiver private key from a receiver trusted center master key, receiver system parameters and a receiver identifier, the receiver trusted center being configured to determine a receiver public key by applying the first hash function to the receiver identifier and to determine the receiver private key by applying an exponentiation function defined by a base and an exponent, the base being equal to said receiver public key, and the exponent being equal to the inverse of the receiver trusted center master key.
12. The identity-based cryptosystem of claim 10, wherein the transmitter trusted center is associated with a transmitter trusted center identifier and holds a transmitter trusted center security parameter, the transmitter trusted center being configured to determine said transmitter system parameters and said transmitter trusted center master key from said transmitter trusted center security parameter and said transmitter trusted center identifier, said transmitter system parameters comprising a prime number, two algebraic groups of order equal to said prime number, an admissible bilinear map, a first cryptographic hash function, a second cryptographic hash function, a third cryptographic hash function, and a transmitter trusted center public key associated with said transmitter trusted center identifier.
13. The identity-based cryptosystem of claim 11, wherein the receiver trusted center is associated with a receiver trusted center identifier and holds a receiver trusted center security parameter, the receiver trusted center being configured to determine said receiver system parameters and said receiver trusted center master key from said receiver trusted center security parameter and said receiver trusted center identifier, said receiver system parameters comprising a prime number, two algebraic groups of order equal to said prime number, an admissible bilinear map, a first cryptographic hash function, a second cryptographic hash function, a third cryptographic hash function, and a receiver trusted center public key associated with said receiver trusted center identifier.
14. The identity-based cryptosystem of claim 10, wherein the receiver trusted center is configured to receive, from the transmitter trusted center, a transmitter trusted center identifier, and to determine said transmitter trusted center private key from the receiver trusted center master key, the receiver system parameters and the transmitter trusted center identifier, the receiver trusted center being configured to determine an intermediate transmitter trusted center public key by applying the first hash function to the transmitter trusted center identifier and to determine the transmitter trusted center private key by applying an exponentiation function defined by a base and an exponent, the base being equal to said intermediate transmitter trusted center public key, and the exponent being equal to the inverse of the receiver trusted center master key.
15. The identity-based cryptosystem of claim 10, wherein the transmitter trusted center is configured to determine two public authentication keys comprising a transmitter authentication key and a receiver authentication key from the transmitter trusted center master key, the transmitter trusted center private key, and the receiver trusted center public key, the transmitter trusted center being configured to determine the transmitter authentication key by applying an exponentiation function of a base equal to said transmitter trusted center public key and an exponent equal to the inverse of said transmitter trusted center master key, and to determine the receiver authentication key by applying an exponentiation function of a base equal to said transmitter trusted center private key and an exponent equal to said transmitter trusted center master key.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0075] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention and, together with the general description of the invention given above, and the detailed description of the embodiments given below, serve to explain the embodiments of the invention.
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
DETAILED DESCRIPTION
[0087] Embodiments of the invention provide devices and methods for secured, confidential, and authenticated exchange of messages between a pair of users, comprising a sender (also referred to herein as a ‘transmitter’, ‘sender device’, or ‘transmitter device’) and a recipient (also referred to hereinafter as a ‘receiver’, a ‘recipient device’, or a ‘receiver device’), in an identity-based encryption cryptosystem (also referred to as a ‘cryptographic system’).
[0088] Referring to
[0089] The sender 103 and the recipient 105 may be any user, user device, equipment, object, entity, configured to operate in the cryptosystem 100. More specifically, the sender 103 may be any user device, user equipment, user object, or user apparatus configured or configurable to determine an encrypted message from original data and to transmit the encrypted message to the recipient 105. The recipient 105 may be any user device, user equipment, user object or user apparatus configured or configurable to receive the encrypted message transmitted over the link 107 and to decrypt the encrypted message to recover original data. It should be noted that in the figures, the sender 103 and the recipient 105 are labeled according to the direction of transmission and reception of encrypted messages. However, in practice, the sender 103 and the recipient 105 may be any transceivers devices capable of transmitting and receiving data in any cryptosystem 100.
[0090] In some embodiments, the sender 103 and the recipient 105 may be any cryptographic device that implement hardware and/or software cryptographic functions for ensuring data and/or signals security, encryption, authentication, protection, and privacy. As used herein, a ‘cryptographic device’ encompass any device, computer, computing machine, or embedded system, programmed and/or programmable to perform cryptographic functions for the generation and the use of cryptographic keys. Exemplary cryptographic devices include, without limitation: [0091] smartcards, tokens to store keys such as wallets, smartcards readers such as Automated Teller Machines (ATM) used for example in financial transactions, restricted access, telecommunications, military applications, secure communication equipments, and TV set-top boxes; [0092] electrical and digital electronic devices such as RFID tags and electronic keys; [0093] embedded secure elements (e.g. smart-cards, Trusted Platform Module (TPM) chip); [0094] computers (e.g. desktop computers and laptops), tablets; [0095] routers, switches, printers; [0096] mobile phones such as smartphones, base stations, relay stations, satellites; [0097] Internet of Thing (IoT) devices (used for example in smart-cities, smart-cars applications), robots, drones; and [0098] recorders, multimedia players, mobile storage devices (e.g. memory cards and hard discs) with logon access monitored by cryptographic mechanisms.
[0099] The embodiments of the invention may be implemented in a cryptosystem 100, which may be used in various applications such as in storage, information processing, or communication systems.
[0100] For example, in an application of the invention to storage systems, the cryptosystem 100 may represent a storage system, infrastructure or network, the sender 103 and/or the recipient 105 being part of such cryptosystem and comprising one or more storage devices configured to store or use encrypted data (e.g. memory cards or hard discs).
[0101] In an application of the invention to information processing, the cryptosystem 100 may be for example a computer system (e.g. a small or large area wired or wireless access network), a database, an online sale system or a financial system comprising a sender 103 and a recipient 105 configured to secure the data used and/or stored in the system (such as personal financial or medical data).
[0102] In an application of the invention to communication systems, the cryptosystem 100 may be wired/wireless/optical/radio communication network in which at least one sender 103 is configured to transmit, over a medium 107 that can be unsecure, encrypted data to at least one recipient 105.
[0103] Original data may correspond to text files, video, audio, or any other media data.
[0104] The sender 103 and/or the recipient 105 may be fixed, such as a computer operating in a wired communication system, or mobile, such as a user terminal operating in a radio or wireless network.
[0105] The link 107 may correspond to a network (e.g. Internet-based network, computer network) or to any communication medium (wired, wireless, or optical).
[0106] The sender 103 may be configured to select the sender trusted center 101 in the cryptosystem 100 and to identify the sender and recipient trusted centers by their identity information. The sender 103 may be further configured to select the recipient 105 among the users of the cryptosystem 100. The recipient 105 may be configured to select the recipient trusted center 102 in the cryptosystem 100 and to identify the sender and recipient trusted centers by their identity information.
[0107] The sender trusted center 101 may be connected to the sender 103 and the recipient trusted center 102 may be connected to the recipient 105. The sender trusted center 101 and/or the recipient trusted center 102 may be a device, an entity, or a system such as an organization (e.g. a social public organization, headquarters of a corporation, smart-cities regional authorities, smart-cars national authorities) configured or configurable to generate private keys associated with the identity information of the users when they join the cryptosystem 100.
[0108] According to some embodiments, the sender trusted center 101 and/or the recipient trusted center 102 may be a system administrator, a dedicated server, or a server that is part of a distributed network. The sender trusted center 101 and the recipient trusted center 102 according to the invention may collaborate to exchange data to be used by the sender 103 and the recipient 105 for exchange of trust.
[0109] Each user in the cryptosystem 100 may be associated with an identity information, also referred to as ‘an identifier’, that uniquely identifies the user in the cryptosystem 100. In some embodiments, an identifier may be one or a combination of two or more identifiers chosen in a group comprising an identity sequence, a name, a username, a network address, a social security number, a street address, an office number, a telephone number, an electronic mail address associated with a user, a date, an Internet Protocol address belonging to a network host. An identifier associated with each user may be any public, cryptographically unconstrained string that is used in conjunction with public data of the trusted center 101 to perform data encryption or signing.
[0110] In the following description of some embodiments, the identity information associated with the sender 103 will be also referred to as the ‘sender identifier’ or ‘transmitter identifier’, the identity information associated with the recipient 105 will be referred to as the ‘recipient identifier’ or ‘receiver identifier’, the identity information associated with the sender trusted center 101 will be also referred to as the ‘sender trusted center identifier’, and the identity information associated with the recipient trusted center 102 will be also referred to as the ‘recipient trusted center identifier’.
[0111] Each of the sender identifier, the recipient identifier, the sender trusted center identifier, and the recipient trusted center identifier may be strings that belong to the set {0,1}*.
[0112] In order to facilitate the understanding of the various embodiments of the invention, the following definitions are provided: [0113] n∈ designates a non-zero natural number; [0114] λ.sub.s∈
.sup.+ is a positive value integer number designating a sender trusted center security parameter (also referred to as a ‘transmitter trusted center security parameter’); [0115] λ.sub.r∈
.sup.+ is a positive value integer number designating a recipient trusted center security parameter (also referred to as a ‘receiver trusted center security parameter’); [0116] p∈
designates a prime number; [0117]
.sub.2=
/2
designates a Euclidean domain (also called a Euclidean ring) and
.sub.2[x] designates the ring of polynomials having coefficients that belong to the Euclidean ring
.sub.2; [0118] G and G.sub.T designate two groups of order p; [0119] e: G×G.fwdarw.G.sub.T designates a bilinear map; [0120] H.sub.1: {0,1}.sup.n.fwdarw.G designates a first cryptographic hash function; [0121] H.sub.2: G.sub.T.fwdarw.{0,1}.sup.n designates a second cryptographic hash function; [0122] H.sub.2: {0,1}.sup.n×{0,1}.sup.n.fwdarw.
.sub.p.sup.n designates a third cryptographic hash function; [0123]
={0,1}.sup.n represents a finite message space, i.e. the space to which belongs each message (also referred to as an ‘original message’ or a ‘plaintext message’, or a ‘plaintext’); [0124] M∈
designates a plaintext message; [0125]
=G*x{0,1}.sup.n represents a finite ciphertext space, i.e. the space to which belongs each encrypted message (also referred to as a ‘ciphertext’ or a ‘ciphertext message’); [0126] C(M)∈
designates a ciphertext message computed by encrypting the plaintext message M; [0127] ID.sub.TC.sub.
refers to an intermediate sender trusted center public key (also referred to as ‘an intermediate transmitter trusted center public key’);
refers to an intermediate recipient trusted center public key (also referred to as an ‘intermediate receiver trusted center public key’); [0133] g.sub.send refers to a sender public key (also referred to as a ‘transmitter public key’); [0134] g.sub.reci refers to a recipient public key (also referred to as a ‘receiver public key’); [0135] Prv.sub.send refers to a sender private key (also referred to as a ‘transmitter private key’) associated with the sender public key g.sub.send and sender identifier ID.sub.send; [0136] Prv.sub.reci refers to a recipient private key (also referred to as a ‘receiver private key’) associated with the recipient public key g.sub.reci and recipient identifier ID.sub.reci;
refers to a sender trusted center private key associated with the sender trusted center identifier ID.sub.TC.sub.
[0144] The embodiments of the invention provide a sender 103 operable to transmit an encrypted message C(M) to a recipient 105 in an identity-based cryptosystem 100 that comprises a sender trusted center 101 connected to the sender 103 and a recipient trusted center 102 connected to the recipient 105, the sender 103 and the recipient 105 being configured to communicate over the link 107 securely, independently, and without accessing the sender trusted center 101 and the recipient trusted center 102. Accordingly, the transmission of encrypted messages from the sender 103 to the recipient 105 may be completed without contacting the sender trusted center 101 and the recipient trusted center 102. In the identity-based cryptosystem 100, the sender 103 is associated with a sender identifier ID.sub.send, the recipient is associated with a recipient identifier ID.sub.reci, the sender trusted center is associated with a sender trusted center identifier ID.sub.TC.sub.
[0145] The sender trusted center 101 may be configured to manage the generation and distribution of the sender private key. Accordingly, the sender trusted center 101 may be configured to receive the sender identifier ID.sub.send from the sender 103 and to determine a sender private key Prv.sub.send from the sender identifier ID.sub.send.
[0146] Similarly, the recipient trusted center 102 may be configured to manage the generation and distribution of the recipient private key. Accordingly, the recipient trusted center 102 may be configured to receive the recipient identifier ID.sub.reci from the recipient 105 and to determine a recipient partial private key Prv.sub.reci from the recipient identifier ID.sub.reci.
[0147] The sender trusted center 101 may be further configured to send the sender private key to the sender 103. The recipient trusted center 102 may be configured to send the recipient private key to the recipient 105. Once the sender trusted center 101 and the recipient trusted center 102 delivered the private keys to the sender 103 and the recipient 105, the sender private key and the recipient private key may not need to be updated, for example if new users join the cryptosystem 100.
[0148] According to the embodiments of the invention, the sender 103 is configured to send the encrypted message to the recipient 105 securely using an authentication of the sender trusted center through the use of two authentication keys.
[0149] Accordingly, the sender 103 may be configured to receive, from the sender trusted center 101, two public authentication keys et.sub.auths and et.sub.authr. The sender trusted center 101 may be configured to determine at least one of the two public authentication keys from a sender trusted center private key
previously determined at the recipient trusted center 102 from the sender trusted center identifier ID.sub.TC.sub.
[0150] The two public authentication keys comprise a sender authentication key et.sub.auths and a recipient authentication key et.sub.authr. The sender authentication key may be used for the exchange of trust, i.e. for the sender authentication and the verification of a recipient trusted center public key. The recipient authentication key may be used at the recipient for the authentication of the sender authentication key. Key verification enables matching the key to a person/entity.
[0151] Upon reception of the two public authentication keys, the sender 103 may be configured to verify a sender trusted center public key g.sub.pub.sub.
[0152] If the sender 103 succeeds the verifications of the sender trusted center public key, the recipient trusted center public key, and the sender authentication key, the sender 103 may be configured to determine a ciphertext set C.sub.1 comprising an encrypted message C(M).
[0153] The sender 103 may then send the ciphertext set to the recipient 105, the recipient 105 being configured to receive the ciphertext set and to recover an original message by decrypting the encrypted message.
[0154] The sender trusted center 101 has secret information that enables it to compute the sender private key of the sender 103. More specifically, the sender trusted center 101 may be configured to hold a sender trusted center security parameter denoted by λ.sub.s∈.sup.+ and a sender trusted center identifier ID.sub.TC.sub.
[0155] When computed, the sender trusted center 101 makes the sender system parameters known publicly, i.e. to all the users in the cryptosystem including the sender 103, the recipient 105, and the recipient trusted center 102. The sender trusted center 101 keeps, however, the sender trusted center master key s.sub.s private and known only to the sender trusted center 101.
[0156] The sender trusted center security parameter λ.sub.s is used to determine the sender system parameters and the sender trusted center master key. In particular, the sender trusted center security parameter may allow to determine the size, in bits, of the sender trusted center master key such that s.sub.s∈.sub.p.sup.n, with n being a non-zero natural number. The sender trusted center security parameter may be also used to determine the size of the prime number in bits. For example, the prime number may be selected to be a random λ.sub.s-bits prime number.
[0157] According to some embodiments, the bilinear map e may be based on a Weil pairing or a Tate pairing defined on a subgroup of an elliptic curve. In such embodiments, the elements of the algebraic group G may be points on an elliptic curve.
[0158] According to some embodiments, the sender trusted center 101 may be configured to determine the sender system parameters PK.sub.s and the sender trusted center master key by applying a setup algorithm that takes as input the sender trusted center security parameter λ.sub.s and the sender trusted center identifier ID.sub.TC.sub.
[0159] Given the sender trusted center security parameter, the sender trusted center 101 may be configured to select, among a predefined set of cryptographic hash functions, a first cryptographic hash function H.sub.1: {0,1}.sup.n.fwdarw.G, a second cryptographic hash function H.sub.2: G.sub.T.fwdarw.{0,1}.sup.n, and a third cryptographic hash function H.sub.3: {0,1}.sup.n×{0,1}.sup.n.fwdarw..sup.n.sub.p. The cryptographic hash function H.sub.1, H.sub.2 and H.sub.3 may be random oracles.
[0160] The sender trusted center 101 may be then configured to determine a first value denoted by g by applying the first cryptographic hash function H.sub.1 to the sender trusted center identifier ID.sub.TC.sub.
[0161] The sender trusted center 101 may be further configured to randomly select a sender trusted center master secret key s.sub.s∈.sub.p.sup.+; and to determine a sender trusted center public key g.sub.pub.sub.
[0162] The recipient trusted center 102 has secret information that enables it to compute the recipient private key of the recipient 103 and the sender trusted center private key. More specifically, the recipient trusted center 102 may be configured to hold a recipient trusted center security parameter denoted by λ.sub.r ∈.sup.+, a recipient trusted center identifier ID.sub.TC.sub.
[0163] When computed, the recipient trusted center 102 makes the recipient system parameters known publicly, i.e. to all the users in the cryptosystem including the sender 103, the recipient 105, and the sender trusted center 101. The recipient trusted center 102 keeps, however, the recipient trusted center master key s.sub.r private and known only to the recipient trusted center 102.
[0164] The recipient trusted center security parameter A, is used to determine the recipient system parameters and the recipient trusted center master key. In particular, the recipient trusted center security parameter may allow to determine the size, in bits, of the recipient trusted center master key such that s.sub.r∈.sub.p.sup.n, with n being a non-zero natural number. The recipient trusted center security parameter may be also used to determine the size of the prime number in bits. For example, the prime number may be selected to be a random λ.sub.r-bit prime number.
[0165] According to some embodiments, the recipient trusted center 102 may be configured to determine the recipient system parameters PK.sub.r and the recipient trusted center master key by applying a setup algorithm that takes as input the recipient trusted center security parameter λ.sub.r, and the recipient trusted center identifier ID.sub.TC.sub.
[0166] Given the recipient trusted center security parameter, the recipient trusted center 102 may be configured to select, among a predefined set of cryptographic hash functions, a first cryptographic hash function H.sub.1: {0,1}.sup.n.fwdarw.G, a second cryptographic hash function H.sub.2: G.sub.T.fwdarw.{0,1}.sup.n, and a third cryptographic hash function H.sub.3: {0,1}.sup.n×{0,1}.sup.n.fwdarw..sub.p.sup.n. The cryptographic hash function H.sub.1, H.sub.2 and H.sub.3 may be random oracles.
[0167] The recipient trusted center 102 may be then configured to determine a value denoted by g by applying the first cryptographic hash function H.sub.1 to the recipient trusted center identifier ID.sub.TC.sub.
[0168] The recipient trusted center 102 may be further configured to randomly select a recipient trusted center master secret key s.sub.r ∈.sub.p.sup.+ and to determine a recipient trusted center public key g.sub.pub.sub.
[0169] A large part of the system parameters comprised in the sender system parameters and the recipient system parameters may coincide. In particular, according to some embodiments, the sender system parameters and the recipient system parameters may satisfy PK.sub.s\{g.sub.pub.sub.
[0170] According to some embodiments, the sender 103 may send the sender identifier ID.sub.send to the sender trusted center 101 and ask it to receive the sender private key Prv.sub.send.
[0171] Upon reception of the request sent by the sender 103, the sender trusted center 101 may be configured to determine the sender private key from the sender trusted center master key s.sub.s, the sender system parameters PK.sub.s, and the sender identifier ID.sub.send by applying a KeyGen algorithm that takes as input the sender trusted center master secret key, the sender identifier, and the sender system parameters, and outputs the sender private key.
[0172] Accordingly, the sender trusted center 101 may be configured to determine a sender public key g.sub.send by applying the first hash function H.sub.1 to the sender identifier ID.sub.send such that g.sub.send=H.sub.1(ID.sub.send) and to determine the sender private key Prv.sub.send by applying an exponentiation function defined by a base and an exponent, the base being equal to the sender public key g.sub.send and the exponent being equal to the inverse of the sender trusted center master secret key
such that
The exponentiation function may be replaced by a scalar multiplication function such that
if the sender public key corresponds to a point of an elliptic curve.
[0173] According to some embodiments, the recipient 105 may send the recipient identifier ID.sub.reci to the recipient trusted center 102 and ask it to receive the recipient private key Prv.sub.reci.
[0174] Upon reception of the request sent by the recipient 105, the recipient trusted center 102 may be configured to determine the recipient private key from the recipient trusted center master key s.sub.r, the recipient system parameters PK.sub.r, and the recipient identifier ID.sub.reci by applying a KeyGen algorithm that takes as input the recipient trusted center master secret key, the recipient identifier, and the recipient system parameters, and outputs the recipient private key.
[0175] Accordingly, the recipient trusted center 102 may configured to determine a recipient public key g.sub.reci by applying the first hash function H.sub.1 to the recipient identifier ID.sub.reci such that g.sub.reci=H.sub.1(ID.sub.reci) and to determine the recipient private key Prv.sub.reci by applying an exponentiation function defined by a base and an exponent, the base being equal to the recipient public key g.sub.reci, and the exponent being equal to the inverse of the recipient trusted center master secret key
such that
The exponentiation function may be replaced with a scalar multiplication function according to which
if the recipient public key corresponds to a point of an elliptic curve.
[0176] According to some embodiments, the sender trusted center 101 may send the sender trusted center identifier ID.sub.TC.sub.
[0177] Upon reception of the request sent by the sender trusted center 101, the recipient trusted center 102 may be configured to determine the sender trusted center private key from the recipient trusted center master key s.sub.r, the recipient system parameters PK.sub.r, and the sender trusted center identifier ID.sub.TC.sub.
[0178] Accordingly, the recipient trusted center 102 may configured to determine an intermediate sender trusted center public key
by applying the first hash function H.sub.1 to the sender trusted center identifier ID.sub.TC.sub.
and to determine the sender trusted center private key
by applying an exponentiation function defined by a base and an exponent, the base being equal to the intermediate sender trusted center public key
and the exponent being equal to the inverse of the recipient trusted center master secret key
such that
The exponentiation function may be replaced with a scalar multiplication function according to which
if the sender trusted center public key corresponds to a point of an elliptic curve.
[0179] According to some embodiments, the sender trusted center 101 may be configured to determine the two public authentication keys from the sender trusted center master key s.sub.s, the sender trusted center private key
and the recipient trusted center public key g.sub.pub.sub.
and [0181] determine the recipient authentication key et.sub.authr by applying an exponentiation function of a base equal to the sender trusted center private key
and an exponent equal to the sender trusted center master key s.sub.s such that
[0182] In embodiments in which the recipient trusted center public key corresponds to a point of an elliptic curve, the exponentiation function performed to determine the sender authentication key may be replaced with a scalar multiplication such that
[0183] In embodiments in which the sender trusted center private key corresponds to a point of an elliptic curve, the exponentiation function performed to determine the recipient authentication key may be replaced with a scalar multiplication such that
[0184] The sender trusted center 101 may be further configured to send the two public authentication keys to the sender 103 and the recipient 105.
[0185] According to some embodiments, the sender 103 may be configured to verify a sender trusted center public key by comparing a first value
to a second value
the first value
being determined by applying the bilinear map e to the sender private key Prv.sub.send and the sender trusted center public key g.sub.pub.sub.
is determined by the sender 103 by applying the bilinear map e to the sender public key g.sub.send and the intermediate sender trusted center public key
The sender 103 verifies the sender trusted center public key if the sender 103 determines that
[0186] According to some embodiments, the sender 103 may be configured to verify the sender authentication key et.sub.auths by comparing a third value e(g.sub.pub.sub.
the third value e(g.sub.pubs, et.sub.auths) being determined by applying the bilinear map e to the sender trusted center public key g.sub.pub.sub.
being determined by applying the bilinear map e to the intermediate sender trusted center public key
and the recipient trusted center public key g.sub.pub.sub.
[0187] If the sender 103 succeeds the verification of the sender trusted center public (i.e. if the sender 103 gets
and the verification of the sender authentication key (i.e. of the sender 103 gets
then the sender 103 may be configured to determine the ciphertext set C.sub.1={V, U, C(M), Y} that comprises, in addition to the encrypted message C(M), a first component denoted by V, a second component denoted by U, and a third component denoted by Y. More specifically, the sender 103 may be configured to: [0188] determine a random secret key σ; [0189] determine a recipient public g.sub.reci key by applying the first cryptographic hash function H.sub.1 to the recipient identifier ID.sub.reci such that g.sub.reci=H(ID.sub.reci); [0190] determine an auxiliary value r by applying the third cryptographic hash function H.sub.3 to the random secret value σ and a given message M such that r=H.sub.3(σ,M); [0191] determine the first component V by applying an exponentiation function of a basis equal to the recipient trusted center public key g.sub.pub.sub..sub.2[x] in which case, the addition operation is an XOR operation; [0193] determine the encrypted message C(M) by applying a cipher E.sub.σ to the given message M, the cipher E.sub.σ using the random secret key σ as encryption key, and [0194] determine the third component Y by applying the second cryptographic hash function H.sub.2 to the output
of the product between a first input
and a second input
to the power the auxiliary value r, the first input
being the output of the application of the bilinear map e to the sender private key Prv.sub.send and the intermediate sender trusted center public key
The second input
is the output of the application of the bilinear map e to an intermediate recipient trusted center public key
and the recipient public key g.sub.reci. The third component is accordingly given by
[0195] If the sender 103 fails to verify one or both of the sender trusted center public (i.e. if the sender 103 gets
and the verification of the sender authentication key (i.e. if the sender 103 gets
then the sender 103 aborts.
[0196] Upon reception of the ciphertext set, the recipient 105 may be configured to: [0197] verify a recipient trusted center public key by comparing the output e(Prv.sub.reci, g.sub.pub.sub.
of the application of the bilinear map e to the recipient public key g.sub.reci and the intermediate recipient trusted center public key
The recipient trusted center public key is verified if the recipient 105 determines that
of the application of the bilinear map e to the intermediate recipient trusted center public key
and the sender trusted center public key g.sub.pub.sub.
and [0199] verify the sender authentication key et.sub.auths by comparing the output e(g.sub.pub.sub.
of the application of the bilinear map e to the intermediate sender trusted center public key
and the recipient trusted center public key g.sub.pub.sub.
[0200] In embodiments in which the verifications of the recipient trusted center public key, the recipient authentication key, the sender trusted center public key, and the sender authentication key succeed (i.e. when
the recipient 105 may be configured to: [0201] determine a sender public key g.sub.send by applying the first cryptographic hash function H.sub.1 to the sender identifier ID.sub.send such that g.sub.send=H.sub.1(ID.sub.send); [0202] determine a secret key σ by applying a subtraction operation between the second component U comprised in the received ciphertext set and the output H.sub.2(e(Prv.sub.reci, V)) of the application of the second cryptographic hash function H.sub.2 to the result of the application of the bilinear map e to the recipient private key Prv.sub.reci and the first component V comprised in the ciphertext set. The secret key is accordingly expressed as σ=U−H.sub.2(e(Prv.sub.reci, V)). The subtraction operation may be performed over .sub.2[x] in which case, the subtraction operation is an XOR operation; [0203] determine/recover an original message M by decrypting the encoded message C(M) comprised in the received ciphertext set using a decipher D.sub.σ that uses the secret key σ as a decryption key; [0204] determine an auxiliary value r by applying the third cryptographic hash function to the secret key and the original message such that r=H.sub.3(σ, M); [0205] verify the sender identify ID.sub.send by comparing the third component Y comprised in the ciphertext set to the output
of the application of the second cryptographic hash function H.sub.2 to a value
to the power the auxiliary value r, the value being given by the product between: [0206] the output
of the application of the bilinear map e to the sender public key g.sub.send and the intermediate sender trusted center public key
and [0207] the output e(et.sub.auths,Prv.sub.reci) of the application of the bilinear map e to the sender authentication key et.sub.auths and the recipient private key Prv.sub.reci.
[0208] The recipient 105 verifies the sender identity if the recipient 105 determines that
[0209] According to some embodiments, the cipher/decipher E.sub.σ/D.sub.σ may be any symmetric encryption/decryption algorithm/protocol/function such as the AES, the Triple Data Encryption algorithm, the DES (Data Encryption Standard), the Triple DES (3DES), or the RC4 (Rivest Cipher 4). The cipher/decipher E.sub.σ/D.sub.σ may be configured to perform encryption/decryption using non-tweakable or tweakable modes of operation. Exemplary non-tweakable modes of operations comprise the Electronic Codebook mode (ECB), the Cipher Block Chaining mode (CBC), the Propagating Cipher Block Chaining mode (PCBC), the Cipher Feedback mode (CFB), the Output Feedback mode (OFB), and the Counter mode (CTR). Exemplary tweakable modes of operation comprise the XOR-Encrypt-XOR (XEX) mode and the tweakable with ciphertext stealing mode (XTS).
[0210] According to some embodiments, the sender 103 and/or the recipient 105 may be configured to generate the secret key used in the cipher algorithm and the decipher algorithm using a random number generator and/or Physically Unclonable Functions. In some embodiments, a random number generator may be chosen in a group comprising a pseudo-random number generator and a true random number generator.
[0211] There is also provided a method for sending an encrypted message M(C) from a sender 103 to a recipient 105 in an identity-based cryptosystem 100. The cryptosystem comprises a sender trusted center 101 connected to the sender 103 and a recipient trusted center 102 connected to the recipient 105. In the identity-based cryptosystem 100, the sender 103 is associated with a sender identifier ID.sub.send, the recipient is associated with a recipient identifier ID.sub.reci, the sender trusted center is associated with a sender trusted center identifier ID.sub.TC.sub.
[0212]
[0213] At step 201, sender system parameters PK.sub.s and a sender trusted center master key s.sub.s may be determined at the sender trusted center 101 from a sender trusted center security parameter λ.sub.s and a sender trusted center identifier ID.sub.TC.sub.
[0214] At step 202, recipient system parameters PK.sub.r and a recipient trusted center master key s.sub.r may be determined at the recipient trusted center 102 from a recipient trusted center security parameter λ.sub.r and a recipient trusted center identifier ID.sub.TC.sub.
[0215] At step 203, a sender private key Prv.sub.send may be determined at the sender trusted center 101 from the sender trusted center master key s.sub.s, the sender system parameters PK.sub.s, and the sender identifier ID.sub.send, by applying a KeyGen algorithm that takes as inputs the sender trusted center master secret key s.sub.s, the sender identifier ID.sub.send, and the sender system parameters PK.sub.s, and outputs the sender private key Prv.sub.send.
[0216] At step 204, a recipient private key Prv.sub.reci may be determined at the recipient trusted center 102 from the recipient trusted center master key s.sub.s, the recipient system parameters PK.sub.r, and the recipient identifier ID.sub.reci, by applying a KeyGen algorithm that takes as inputs the recipient trusted center master secret key s.sub.r, the recipient identifier ID.sub.reci, and the recipient system parameters PK.sub.r, and outputs the recipient private key Prv.sub.reci.
[0217] At step 205, sender trusted center private key Prv.sub.TC.sub.
[0218] At step 206, two public authentication keys comprising a sender authentication key et.sub.auths and a recipient authentication key et.sub.authr may be determined at the sender trusted center 101 from the sender trusted center master key s.sub.s, the sender trusted center private key
and the recipient trusted center public key g.sub.pub.sub.
and the recipient system parameters and outputs the two public encryption keys.
[0219] The sender authentication key may be used for the exchange of trust, i.e. for the sender authentication and the verification of a recipient trusted center public key. The recipient authentication key may be used at the recipient for the authentication of the sender authentication key.
[0220] At step 207, the two public authentication keys may be sent by the sender trusted center 101 to the sender 103 and the recipient 105 and received at the sender 103 and the recipient 105.
[0221] At step 208, a ciphertext set C.sub.1 comprising an encrypted message C(M) may be determined at the sender 103 if the verifications of the sender trusted center public key g.sub.pub.sub. and the sender and recipient system parameters, and outputs the ciphertext set C.sub.1.
[0222] At step 209, the ciphertext set C.sub.1 may be sent to the recipient 105.
[0223] At step 210, the ciphertext set C.sub.1 may be received at the recipient 105, the sender 103 may be authenticated, and the original message recovered, according to a DecryptET algorithm that takes as inputs the recipient identifier, the recipient private key, the sender identifier, the ciphertext set, the sender and recipient system parameters, the sender trusted center public key and the two public authentication keys, and outputs a recovered original message M.
[0224]
[0225] At step 301, input parameters of the setup algorithm may be received, including a sender trusted center security parameter denoted by λ.sub.s∈.sup.+ and a sender trusted center identifier ID.sub.TC.sub.
[0226] At step 302, a prime number p, two algebraic groups G and G.sub.T and an admissible bilinear map e may be determined by running a Bilinear Diffie-Hellman parameter generator that takes as input the sender trusted center security parameter λ.sub.s and outputs a prime number p, the description of two groups G and G.sub.T and the description of an admissible bilinear map e: G×G.fwdarw.G.sub.T.
[0227] At step 303, a first cryptographic hash function H.sub.1: {0,1}.sup.n.fwdarw.G, a second cryptographic hash function H.sub.2: G.sub.T.fwdarw.{0,1}.sup.n, and a third cryptographic hash function H.sub.3: {0,1}.sup.n×{0,1}.sup.n.fwdarw..sub.p.sup.n, may be selected, for example among a predefined set of cryptographic hash functions. The cryptographic hash function H.sub.1,H.sub.2 and H.sub.3 may be random oracles.
[0228] At step 304, a first value g1 may be determined by applying the first cryptographic hash function H.sub.1 to the sender trusted center identifier ID.sub.TC.sub.
[0229] At step 305, a sender trusted center master key s.sub.s∈.sub.p.sup.+ may be selected randomly.
[0230] At step 306, a sender trusted center public key g.sub.pub.sub.
[0231] At step 307, the sender system parameters PK.sub.s={p, G, G.sub.T, e, H.sub.1, H.sub.2, H.sub.3, g.sub.pub.sub.
[0232]
[0233] At step 311, input parameters of the setup algorithm may be received, including a recipient trusted center security parameter denoted by λ.sub.r∈.sup.+ and a recipient trusted center identifier ID.sub.TC.sub.
[0234] At step 312, a prime number p, two algebraic groups G and G.sub.T and an admissible bilinear map e may be determined by running a Bilinear Diffie-Hellman parameter generator that takes as input the recipient trusted center security parameter λ.sub.r and outputs a prime number p, the description of two groups G and G.sub.T and the description of an admissible bilinear map e: G×G.fwdarw.G.sub.T.
[0235] At step 313, a first cryptographic hash function H.sub.1: {0,1}.sup.n.fwdarw.G, a second cryptographic hash function H.sub.2: G.sub.T.fwdarw.{0,1}.sup.n, and a third cryptographic hash function H.sub.3: {0,1}.sup.n×{0,1}.sup.n.fwdarw..sub.p.sup.n may be selected, for example among a predefined set of cryptographic hash functions. The cryptographic hash function H.sub.1,H.sub.2 and H.sub.3 may be random oracles.
[0236] At step 314, a first value g2 may be determined by applying the first cryptographic hash function H.sub.1 to the recipient trusted center identifier ID.sub.TC.sub.
[0237] At step 315, a sender trusted center master key s.sub.r∈.sub.p.sup.+ may be selected randomly.
[0238] At step 316, a recipient trusted center public key g.sub.pub.sub.
[0239] At step 317, the recipient system parameters PK.sub.r={p, G, G.sub.T, e, H.sub.1, H.sub.2, H.sub.3, g.sub.pub.sub.
[0240] According to some embodiments, the sender system parameters and the recipient system parameters may satisfy:
PK.sub.s={p,G,G.sub.T,e,H.sub.1,H.sub.2,H.sub.3,g.sub.pub.sub.
[0241]
[0242] At step 401, the inputs of the KeyGen algorithm may be received, including the sender trusted center master secret key s.sub.s, the sender system parameters PK.sub.s, and the sender identifier ID.sub.send.
[0243] At step 402, a sender public key g.sub.send may be determined by applying the first hash function H.sub.1 to the sender identifier ID.sub.send such that g.sub.send=H.sub.1(ID.sub.send).
[0244] At step 403, a sender private key Prv.sub.send may be determined by applying an exponentiation function defined by a base and an exponent, the base being equal to the sender public key g.sub.send, and the exponent being equal to the inverse of the sender trusted center master secret key
such that
The exponentiation function may be replaced by a scalar multiplication function such that
if the sender public key corresponds to a point of an elliptic curve.
[0245] At step 404, the sender private key Prv.sub.send may be output.
[0246]
[0247] At step 411, the inputs of the KeyGen algorithm may be received, including the recipient trusted center master secret key s.sub.r, the recipient system parameters PK.sub.r, and the recipient identifier ID.sub.reci.
[0248] At step 412, a recipient public key g.sub.reci may be determined by applying the first hash function H.sub.1 to the recipient identifier ID.sub.reci such that g.sub.reci=H.sub.1(ID.sub.reci).
[0249] At step 413, a recipient private key Prv.sub.reci may be determined by applying an exponentiation function defined by a base and an exponent, the base being equal to the recipient public key g.sub.reci, and the exponent being equal to the inverse of the recipient trusted center master key
such that
The exponentiation function may be replaced with a scalar multiplication function according to which
if the recipient public key corresponds to a point of an elliptic curve.
[0250] At step 404, the sender private key Prv.sub.reci may be output.
[0251]
[0252] At step 421, the inputs of the KeyGen algorithm may be received, including the recipient trusted center master secret key s.sub.r, the recipient system parameters PK.sub.r, and the sender trusted center identifier ID.sub.TC.sub.
[0253] At step 422, a sender trusted center public key
may be determined by applying the first hash function H.sub.1 to the sender trusted center identifier ID.sub.TC.sub.
[0254] At step 423, a sender trusted center private key
may be determined by applying an exponentiation function defined by a base and an exponent, the base being equal to the intermediate sender trusted center public key
and the exponent being equal to the inverse of the recipient trusted center master secret key
such that
The exponentiation function may be replaced with a scalar multiplication function according to which
if the sender trusted center public key corresponds to a point of an elliptic curve.
[0255] At step 424, the sender trusted center private key Prv.sub.reci may be output.
[0256]
[0257] At step 501, the inputs of the PubKeyGenET algorithm may be received, including the sender trusted center master key s.sub.s, the sender trusted center private key
and the recipient trusted center public key g.sub.pub.sub.
[0258] At step 502, a sender authentication key et.sub.auths may be determined by applying an exponentiation function of a base equal to the recipient trusted center public key g.sub.pub.sub.
In embodiments in which the recipient trusted center public key corresponds to a point of an elliptic curve, the exponentiation function performed to determine the sender authentication key may be replaced with a scalar multiplication such that
[0259] At step 503, a recipient authentication key et.sub.authr may be determined by applying an exponentiation function of a base equal to the sender trusted center private key
and an exponent equal to the sender trusted center master key s.sub.s such that
In some embodiments in which the sender trusted center private key corresponds to a point of an elliptic curve, the exponentiation function may be replaced with a scalar multiplication according to which
[0260] The sender and recipient authentication keys may be disseminated to the sender 103 and the recipient 105.
[0261]
[0262] At step 601, the inputs of the EncryptET algorithm may be received, including the recipient identifier ID.sub.reci, a sender private key Prv.sub.send, a given message M, the sender and recipient system parameters PK.sub.s and PK.sub.r, and sender authentication key et.sub.auths.
[0263] At step 602, the sender trusted center public key may be verified by comparing a first value e(Prv.sub.send,g.sub.pub.sub.
[0264] If it is determined at step 602 that the sender trusted center public key is not verified, i.e. if it is determined at step 602 that
then the processing may end at step 603.
[0265] If it is determined at step 602 that the sender trusted center public key is verified, i.e. if it is determined at step 602 that
then the sender authentication key may be verified at step 604 by comparing a third value e(g.sub.pub.sub.
[0266] If it is determined at step 604 that the sender authentication key is not verified, i.e. if it is determined at step 604 that
then the processing may be interrupted at step 605.
[0267] If it is determined at step 604 that the sender authentication key is verified, i.e. if it is determined at step 604 that
then steps 606 to 612 may be performed to determine the ciphertext set.
[0268] At step 606, a random secret key σ may be generated.
[0269] At step 607, a recipient public key g.sub.reci may be determined by applying the first cryptographic hash function H.sub.1 to the recipient identifier ID.sub.reci such that g.sub.reci=H.sub.1(ID.sub.reci).
[0270] At step 608, an auxiliary value r may be determined by applying the third cryptographic hash function H.sub.3 to the random secret value σ and the given message M such that r=H.sub.3(σ,M).
[0271] At step 609, the first component V may be determined by applying an exponentiation function of a basis equal to the recipient trusted center public key g.sub.pub.sub.
[0272] At step 610, the second component U may be determined by applying an addition operation to the random secret key σ and the output H.sub.2(e(g.sub.reci.sup.r,H.sub.1(ID.sub.TC.sub..sub.2 [x] in which case, the addition operation is an XOR operation.
[0273] At step 611, an encrypted message C(M) may be determined by applying a cipher E.sub.σ to the given message M, the cipher E.sub.σ using the random secret key σ as encryption key.
[0274] At step 612, the third component Y may be determined by applying the second cryptographic hash function H.sub.2 to the output
of the product between a first input
and a second input
to the power the auxiliary value r, the first input
being the output of the application of the bilinear map e to the sender private key Prv.sub.send and the intermediate sender trusted center public key
The second input
is the output of the application of the bilinear map e to an intermediate recipient trusted center public key
and the recipient public key g.sub.reci. The third component is accordingly given by
[0275] At step 613, the ciphertext set C.sub.1={V, U, C(M), Y} may be output.
[0276]
[0277] At step 701, the inputs of the DecryptET algorithm may be received, including the recipient identifier ID.sub.reci, the recipient private key Prv.sub.reci, the sender identifier ID.sub.send, the ciphertext set C.sub.1={V, U, C(M), Y}, the sender and recipient system parameters PK.sub.s and PK.sub.r, the two public authentication keys et.sub.auths and et.sub.authr, and the sender trusted center public key g.sub.pub.sub.
[0278] At step 702, the recipient trusted center public key may be verified by comparing the output e(Prv.sub.reci,g.sub.pub.sub.
of the application of the bilinear map e to the recipient public key g.sub.reci and the intermediate trusted center public key
[0279] If it is determined at step 702 that the recipient trusted center public key is not verified, i.e. if it is determined at step 702 that
then the processing may be interrupted at step 703.
[0280] If it is determined at step 702 that the recipient trusted center public key is verified, i.e. if it is determined at step 702 that
then the recipient authentication key et.sub.authr and the sender trusted center public key g.sub.pub.sub.
of the application of the bilinear map e to the intermediate recipient trusted center public key
and the sender trusted center public key g.sub.pub.sub.
[0281] If it is determined at step 704 that the recipient authentication key and the sender trusted center public key are not verified, i.e. if it is determined at step 704 that
then the processing may be stopped at step 705.
[0282] If it is determined at step 704 that the recipient authentication key and the sender trusted center public key are verified, i.e. if it is determined at step 704 that
then the sender authentication key et.sub.auths may be verified at step 706 by comparing the output e(g.sub.pub.sub.
of the application of the bilinear map e to the intermediate sender trusted center public key
and the recipient trusted center public key g.sub.pub.sub.
[0283] If it is determined at step 706 that the sender authentication key is not verified, i.e. if it is determined at step 706 that
then the processing may be ended at step 707.
[0284] If it is determined at step 706 that the sender authentication key is verified, i.e. if it is determined at step 706 that
then steps 708 to 710 may be performed to determine a recovered original message.
[0285] At step 708, a sender public key g.sub.send may be determined by applying the first cryptographic hash function H.sub.1 to the sender identifier ID.sub.send such that g.sub.send=H.sub.1(ID.sub.send).
[0286] At step 709, a secret key σ=U−H.sub.2(e(Prv.sub.reci,V)) may be determined by applying a subtraction operation between the second component U comprised in the received ciphertext set and the output H.sub.2(e(Prv.sub.reci, V)) of the application of the second cryptographic hash function H.sub.2 to the result of the application of the bilinear map e to the recipient private key Prv.sub.reci and the first component V comprised in the ciphertext set. The subtraction operation may be performed over [x] in which case, the subtraction operation is an XOR operation.
[0287] At step 710, an original message M may be recovered/determined by decrypting the encoded message C(M) comprised in the received ciphertext set using a decipher D.sub.σ that uses the secret key σ as a decryption key.
[0288] At step 711, an auxiliary value r may be determined by applying the third cryptographic hash function to the secret key and the recovered original message such that r=H.sub.3 (σ, M).
[0289] At step 712, the sender identify ID.sub.send may be verified by comparing the third component Y comprised in the ciphertext set to the output
of the application of the second cryptographic hash function H.sub.2 to a value
to the power the auxiliary value r, the value being given by the product between: [0290] the output
of the application of the bilinear map e to the sender public key g.sub.send and the intermediate sender trusted center public key
and [0291] the output e(et.sub.auths,Prv.sub.reci) of the application of the bilinear map e to the sender authentication key et.sub.auths and the recipient private key Prv.sub.reci.
[0292] If it is determined at step 712 that the sender identity is not verified, i.e. if it is determined at step 712 that
then the processing may be interrupted at step 713.
[0293] If it is determined at step 712 that the sender identity is verified, i.e. if it is determined at step 712 that
then the recovered original message may be output at step 714.
[0294] A proof of exchange is presented hereinafter according to the various embodiments of the invention and the algorithms PubKeyGenET, EncryptET, and DecryptET.
[0295] The algorithm EncryptET exploits the following variables:
[0296] The verification of the validity of et.sub.auths succeeds if the following equality is satisfied:
[0297] The steps 702, 704, and 706 of the algorithm DecryptET allow to verify the identity of the sender. The DecryptET exploits the following variables:
[0298] The verification of the sender trusted center public key is successful if the following equality is satisfied:
[0299] Similarly, the verification of et.sub.authr is successful of the following equation is satisfied:
[0300] Additionally, this verification allows to verify the public key g.sub.pub.sub.
[0301] The final verification of the DecryptET algorithm is successful if the following equality is satisfied:
[0302] The original message can be recovered using the decrypting process.
[0303] Thus, the secret key σ=U−H.sub.2(e(V, sk)) allows deciphering W=E.sub.σ(M) by computing D.sub.σ(W)=D.sub.σ(E.sub.σ(M))=M.
[0304] The authentication of the sender is checked at step 712.
[0305] There is also provided a program stored in a computer-readable non-transitory medium for sending an encrypted message M(C) from a sender 103 to a recipient 105 in an identity-based cryptosystem 100. The cryptosystem comprises a sender trusted center 101 connected to the sender 103 and a recipient trusted center 102 connected to the recipient 105. In the identity-based cryptosystem 100, the sender 103 is associated with a sender identifier ID.sub.send, the recipient is associated with a recipient identifier ID.sub.reci, the sender trusted center is associated with a sender trusted center identifier ID.sub.TC.sub.
at the recipient trusted center 102 from the recipient trusted center master key s.sub.r, the recipient system parameters PK.sub.r, and the sender trusted center identifier ID.sub.TC.sub.
and the recipient trusted center public key g.sub.pub.sub.
and the recipient system parameters and outputs the two public authentication keys; [0312] send the two public authentication keys by the sender trusted center 101 to the sender 103 and received at the sender 103; [0313] determine, at the sender 103, a ciphertext set C.sub.1 comprising an encrypted message C(M) if the verifications of the sender trusted center public key g.sub.pub.sub. and the sender and recipient system parameters, and outputs the ciphertext set C.sub.1; [0314] send the ciphertext set C.sub.1 from the sender 103 to the recipient 105; [0315] receive, at the recipient 105, the ciphertext set C.sub.1, authenticate the sender 103, and recover the original message, according to a DecryptET algorithm that takes as inputs the recipient identifier, the recipient private key, the sender identifier, the ciphertext set, the sender and recipient system parameters, the sender trusted center public key and the two public authentication keys, and outputs a recovered original message M.
[0316] The methods and devices described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing elements of the different devices operating in the system 100 can be implemented for example according to a hardware-only configuration (for example in one or more FPGA, ASIC, or VLSI integrated circuits with the corresponding memory) or according to a configuration using both VLSI and Digital Signal Processor (DSP).
[0317]
[0318] As illustrated, the architecture may include various computing, processing, storage, communication, sensing, and displaying units comprising: [0319] communication circuitry comprising a transceiver 82 and a transmit/receive element 81 (e.g. one or more antennas) configured to connect the device to corresponding links in the cryptosystem 100 (e.g. connecting the sender 103 to the sender trusted center 101 or connecting the recipient 105 to the recipient trusted center 102 or connecting the recipient 105 to the sender 103 or connecting the sender trusted center 101 to the recipient trusted center 102), and to ensure transmission/reception of exchanged data (e.g. the sender identifier sent from the sender 103 to the sender trusted center 101, or the recipient identifier sent from the recipient 105 to the recipient trusted center 102, or the sender private key sent from the sender trusted center 101 to the sender 103, or the recipient private key sent from the recipient trusted center 102 to the recipient 105, or sender trusted center identifier sent from the sender trusted center 101 to the recipient trusted center 102, or the sender trusted center private key sent from the recipient trusted center 102 to the sender trusted center 101, or the sender authentication key and the recipient authentication key sent from the sender trusted center 101 to the sender 103 and to the recipient 105). The communication circuitry may support various network and air interface such as wired and wireless networks (e.g. wireless local area networks and cellular networks); [0320] a processing unit 84 configured to execute the computer-executable instructions to run the methods and algorithms according to the various embodiments of the invention for to perform the various required functions of the device such as data computation, encryption/decryption operations, generation and processing of random keys and values, and any functionalities required to enable the device to operate in the cryptosystem 100 according to the embodiments of the invention. The processing unit 84 may be a general purpose processor, a special purpose processor, a DSP, a plurality of microprocessors, a controller, a microcontroller, an ASIC, an FPGA circuit, any type of integrated circuit, and the like; [0321] a power source 83 that may be any suitable device providing power to the device 80 such as dry cell batteries, solar cells, and fuel cells; [0322] a storage unit 85 possibly comprising a random access memory (RAM) or a read-only memory used to store processed data (e.g. the sender identifier, the recipient identifier, the sender trusted center identifier, the recipient trusted center identifier, the sender system parameters, the recipient system parameters, the sender public key, the recipient public key, the sender private key, the recipient private key, the sender trusted center master key, the recipient trusted center master key, the sender authentication key, the recipient authentication key, etc.) and any data required to perform the functionalities of the device 80 according to the embodiments of the invention; [0323] Input peripherals 86; [0324] Output peripherals 87 comprising communication means such as displays enabling for example man-to-machine interaction with the device 80 for example for configuration and/or maintenance purposes.
[0325] The architecture of the device 80 may further comprise one or more software and/or hardware units configured to provide additional features, functionalities and/or network connectivity.
[0326] Furthermore, the method described herein can be implemented by computer program instructions supplied to the processor of any type of computer to produce a machine with a processor that executes the instructions to implement the functions/acts specified herein. These computer program instructions may also be stored in a computer-readable medium that can direct a computer to function in a particular manner. To that end, the computer program instructions may be loaded onto a computer to cause the performance of a series of operational steps and thereby produce a computer implemented process such that the executed instructions provide processes for implementing the functions specified herein.
[0327] It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
[0328] The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.