Next Article in Journal
Legacy Network Integration with SDN-IP Implementation towards a Multi-Domain SoDIP6 Network Environment
Next Article in Special Issue
An Effective Phishing Detection Model Based on Character Level Convolutional Neural Network from URL
Previous Article in Journal
The Use of Time-Frequency Moments as Inputs of LSTM Network for ECG Signal Classification
Previous Article in Special Issue
VaultPoint: A Blockchain-Based SSI Model that Complies with OAuth 2.0
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Scalable Wildcarded Identity-Based Encryption with Full Security

1
Department of Information System, Hanyang University, Seoul 04763, Korea
2
Department of Security Enhanced Smart Electric Vehicle, Kookmin University, Seoul 02707, Korea
*
Authors to whom correspondence should be addressed.
Electronics 2020, 9(9), 1453; https://doi.org/10.3390/electronics9091453
Submission received: 20 July 2020 / Revised: 24 August 2020 / Accepted: 3 September 2020 / Published: 6 September 2020
(This article belongs to the Special Issue Data Security)

Abstract

:
Wildcarded identity-based encryption (WIBE) is an encryption system where one can encrypt messages to multiple users by specifying a pattern, which is a set of identity strings or wildcards. It is a useful primitive for practical applications where users are defined with multiple attributes (or affiliations), such as organization networks or IoT firmware updates. However, the ciphertext size in traditional WIBE schemes are linear to the number of wildcards in the pattern; since the ciphertext size determines the payload in network systems, it degrades the practicality when deployed in transmission-sensitive systems. In this paper, we represent scalable wildcarded identity-based encryption (SWIBE), which achieves a constant-size ciphertext regardless of the number of wildcards (or depth of patterns). the SWIBE scheme also allows the wildcard usage key derivation as well as encryption: a user with wildcarded pattern can delegate keys for the fixed pattern. Compared to the existing WIBE schemes, the SWIBE scheme is the first approach to yield constant-size ciphertext. Moreover, SWIBE also improves encryption time and decryption time while maintaining a key size of 2 L , comparable to the key size of L in WIBE schemes (where L is a depth of the pattern). The experimental results show that the decryption time is 3 to 10 times faster than the existing WIBE schemes, and 650 times faster than the attribute-based encryption with constant-size ciphertext. For the security, we first propose the selective-CPA-secure SWIBE scheme in a prime order bilinear group and extend it to be selective-CCA-secure. Then we also propose a fully-secure SWIBE scheme which can overcome the selective security.

1. Introduction

In modern IoT infrastructure, it is often essential to encrypt data to multiple devices at once on a group-basis, which let the data security require more advanced functionality of multi-encryption. Specifically, IoT devices are often defined and categorized by their own features, such as device types, manufacturers, affiliations, or locations; users (or devices) often need to send secure messages to a group of devices by specifying particular features. Some well-known examples are described as follows.
  • In smart city networks, an occupant may need to encrypt command reservations to home devices (e.g., turn-off devices of type: “lamp” and location: “living room”).
  • In secure firmware updates, the firmware is encrypted to a group of devices which satisfies specific conditions (e.g., update devices of manufacturer: “Tesla”).
  • In military communications, tactical data are encrypted to classified groups based on specific authorities (e.g., send strategy to devices of affiliation: “Air Force”).
When we apply simple encryption technique such as RSA encryption to the IoT data security, the result becomes inefficient: one should encrypt the message to each user one by one, which requires encryption process and different ciphertext as many as the number of receivers. Moreover, the RSA public key system needs to manage a public key infrastructure (PKI) to identify devices, which increases the communication and storage costs. Therefore, in the IoT data security, it is recommended to consider group-based encryption structure rather than a simple standard encryption.
Related works. Considering that the identities are often defined by attributes, attribute-based encryption (ABE) can provide a suitable functionality for secure communications. Ciphertext-policy attribute-based encryption (CP-ABE) [1,2,3] associates an access policy to each ciphertext, where the access policy is defined by logical combinations (i.e., AND and OR gates) of attribute values. In this setting, the secret key is issued for a set of attributes, and users can decrypt the message only when their attributes satisfy the access policy of the ciphertext. Unfortunately, ABE focuses on more complicated access policy based on variative attributes, while IoT devices are sufficient to handle with fixed identities. To support general access policy, existing ABE schemes either suffer from large ciphertext linearly with the number of attributes or suffer from exponential keys when the ciphertext is fixed as constant.
Identity-based encryption (IBE) [4,5,6] is a useful primitive where the user’s identity (e.g., alice@cs.univ.edu) can be utilized as a public key for encryption, which eliminates a requirement of public key certification such as public key infrastructure (PKI). The IBE can provide an interface for representing the groups or attributes, which is a building block for group-basis secure communications. Later, it advanced to hierarchical identity-based encryption (HIBE) [7], where the identity is defined by a hierarchical set of identity strings such that keys for the identity can be distributed in a hierarchical delegation, i.e., a user at level i can delegate keys for the user at level i + 1 . While traditional IBE requires the certificate authority (CA) to issue keys for the entire users, the HIBE allows each user to share the burden of key delegation to resolve the bottleneck problem. The intuition of key delegation technique in the HIBE system has been advanced to other various cryptographic primitives, such as broadcast encryption [8,9,10].
Considering the fact that many email addresses consist of affiliations, Abdalla et al. [11] extended HIBE to an advanced primitive called wildcarded identity-based encryption (WIBE) by introducing wildcard (*), which can be superceded by any identity string in a set of identity strings. A pattern (or an identity) is defined as a set of multiple identity strings and wildcards, and it efficiently determines a group of identities or a single identity. WIBE utilizes a pattern as a public key for encryption; a single ciphertext encrypted for a pattern (edu, univ, cs, *) (corresponding to *@cs.univ.edu) can be delivered to multiple identities such as alice@cs.univ.edu and bob@cs.univ.edu.
Abdalla’s group proposed three different WIBE systems by extending the existing HIBE schemes. However, all of them suffer from large ciphertext size which is at least O ( L ) where L is the maximum depth of pattern (i.e., the number of identity strings). Birkett et al. [12] devised compilation techniques called WIB-KEM, which can convert any CPA-secure WIBE into CCA-secure identity-based key encapsulation mechanisms with wildcards. They achieved more efficient CCA-secure WIBE systems by applying their techniques to the Abdalla’s CPA-secure WIBE schemes [11]. However, the ciphertext size still remains as O ( L ) , which is as large as the underlying WIBE schemes. Later, Abdalla’s group introduced IBE with wildcarded key derivation (WKD-IBE) [13], which can include wildcarded pattern in the key derivation of HIBE. They combined the WKD-IBE with their WIBE [11] construction, where wildcarded pattern can be included both in encryption and key derivation, and upgraded the notion of WIBE to WW-IBE [14]. Still, the ciphertext size in WW-IBE [14] is not improved from the original WIBE [11], which is not scalable in IoT systems.
Ciphertext size. The ciphertext size is an important factor, since ciphertext is an actual payload which is transmitted to the network in real applications. Unfortunately, ciphertext size in existing WIBE schemes [11,14] are not constant; it increases linear to the maximum depth of pattern. The main reason is that the WIBE construction let the decryptor transform the ciphertext to his own matching pattern. In brief, the ciphertext should include additional parameters for the wildcarded pattern so that the wildcard can be transformed to the matching key element, based on the key delegation technique from BBG-HIBE [7].
As an alternative approach, the authors of WIBE [11] describes a generic construction of WIBE from HIBE, which can maintain the constant-size ciphertext of the HIBE ingredient. However, this technique results in an excessive secret key size, exponential to the depth of pattern. The main idea in this generic construction is to let the user store secret keys for every possible cases for decryption, instead of transforming the ciphertext. For example, to decrypt the ciphertext encrypted for pattern ( I D 1 , I D 2 ), a user stores keys for every possible matching patterns: ( I D 1 , I D 2 ), (*, I D 2 ), ( I D 1 , *), (*, *). This leads to the secret key size exploded up to 2 L which is not reasonable to be used, e.g., in small IoT devices.
Solution. The main barrier of ciphertext size in WIBE is that the decryptor needs to delegate the ciphertext to his own matching pattern. For instance, if a decryptor with an identity ( I D 1 , I D 2 ) decrypts a ciphertext for ( I D 1 , *), he transforms the * to I D 2 by the help of additional parameters in order to match his own pattern ( I D 1 , I D 2 ). This lets the ciphertext include extra parameters related to each wildcard, which cannot be compressed to a constant value.
The problem can be resolved by reversing the transformation method: instead of delegating the wildcard to the matching pattern, the decryptor may prune his own pattern to match the wildcard. Specifically, the wildcard is considered as a distinct pattern, and additional pruning keys corresponding to the user’s patterns can be provided so that any pattern can be transformed to the wildcard pattern. For example, if a decryptor with an identity ( I D 1 , I D 2 ) decrypts a ciphertext for ( I D 1 , *), he transforms his I D 2 to * by using his own pruning key, in order to match the ciphertext pattern ( I D 1 , *). Note that the pruning key is only required for the depth of pattern L, which just doubles the secret key. As a result, the ciphertext does not require any additional parameters for delegation and the size can remain constant.
Scalable WIBE. Based on the idea, Kim et al. [15] proposed scalable wildcarded identity-based encryption (SWIBE), which achieves a constant-size ciphertext while maintaining the order of other parameters. SWIBE can efficiently cover the multi-encryption requirements in the IoT examples: with a single encryption and a constant ciphertext, one can encrypt to any group of multiple users by specifying the attributes of receivers.
SWIBE scheme also allows wildcarded patterns both in encryption and key derivation as in WW-IBE [14], i.e., one can encrypt a message to multiple users by using wildcarded patterns, or delegate keys to other users if the identity includes wildcards. Compared to the WW-IBE, SWIBE also improves decryption time, since a user in WW-IBE requires a delegation of the given ciphertext to his own pattern while SWIBE allows a user to decrypt the ciphertext immediately. The practicality of SWIBE is justified by implementing the protocol on a real IoT device, and comparing experimental results with the existing works.
Table 1 shows an overall comparison between hierarchical IBE (HIBE) [7], wildcarded IBE (WIBE) [11], wildcarded key derivation IBE (WKD-IBE) [13], WW-IBE [14], ciphertext policy ABE (CP-ABE) [3], and our proposed scalable WIBE (SWIBE) scheme. The comparison focuses on the size of public parameter (pp), secret key (SK), ciphertext (CT) and execution time of encryption (Enc), decryption (Dec), while the identity (pattern) depth is fixed as L and each identity is a q-bit string.
For the wildcard use, HIBE does not support wildcard, WIBE and CP-ABE supports wildcard only in encryption, WKD-IBE supports wildcard only in key derivation, while WW-IBE and SWIBE allow wildcard both in encryption and key derivation. For the ciphertext policy in CP-ABE, we assumed each bit in the ID as an attribute. Among the WIBE schemes which allow wildcards in encryption (WIBE, WW-IBE, SWIBE), only SWIBE has a constant-size ciphertext of 4 group elements regardless of the depth L. While supporting wildcarded pattern both in key derivation and encryption, SWIBE improves the decryption time compared to the WW-IBE.
Selective security. Despite the novel advantages, one remaining challenge is that the security of SWIBE relies on the selective security. In the selective security, the security model assumes that the target devices (i.e., devices which adversary desires to attack) are fixed before the security game. However, in real-life situation, we often cannot predict which devices are vulnerable, and which devices the attackers are planning to exploit. Therefore, for more robust security, it is recommended to advance the scheme to achieve full-security, i.e., IND-CPA secure without selective security.
Fully-secure SWIBE. In this paper, we extend selectively-secure SWIBE [15] to a fully-secure version, by modifying the SWIBE construction based on the composite order group. The composite order group sets the size of the cyclic group N as a composite number instead of a prime, to create different subgroups and let them cancel each other when computed in the pairing operation. This technique can disguise public elements while maintaining the correctness of the protocol, which can achieve the full security instead of the selective security. Based on the idea, we propose a new version of SWIBE protocol which satisfies full security, and formally prove the security under the standard assumptions.
We now summarize the main contributions of SWIBE, and SWIBE with full security.
-
Scalable wildcarded identity-based encryption (SWIBE) achieves constant-size ciphertext among the WIBE systems, without sacrificing the order of other parameters.
-
SWIBE is formally proved to satisfy IND-sID-CPA security, and it is extended to satisfy IND-sID-CCA security.
-
We provide practical experimental results based on a small IoT device with 500 MHz Atom processor.
-
This paper additionally proposes a fully secure (IND-ID-CPA-secure) SWIBE construction to overcome the selective security, and we formally prove the IND-ID-CPA security.
The rest of this paper is organized as follows. Section 2 introduces the basic definitions and complexity assumptions. In Section 3, we formally define the wildcard identity-based encryption as a universal primitive. Section 4 explains the main idea of the SWIBE scheme and how to construct it in details, along with the security proof. Section 5 extends it to be CCA secure, and Section 6 proposes a new version of SWIBE in composite order to obtain full security instead of selective security. In Section 7, we show the experimental results and in Section 8, we conclude.

2. Background

2.1. Identity-Based Encryption

Identity-based encryption (IBE) [16] is defined as a tuple of algorithm IBE = ( Setup , KeyDer , Enc , Dec ) which provides the following functionality. The authority runs Setup to generate a public parameter p p and a master secret key m s k . It publishes p p and keeps m s k in private. When a user with an identity I D needs to join the system, the authority creates a decryption key d I D $ KeyDer ( m s k , I D ) , and sends the key to the user via secure channel. To encrypt a message m to the user with an identity I D , the sender computes a ciphertext C $ Enc ( p p , I D , m ) , which is decrypted by the user as m Dec ( d I D , C ) .

2.2. Hierarchical IBE

In hierarchical IBE (HIBE) [7], users are organized in an L-level binary tree, where the root is considered as a master authority. The user’s identity at level 0 l L is given by a vector I D = ( P 1 , , P l ) ( { 0 , 1 } q ) l . HIBE is defined as a tuple of algorithms HIBE = ( Setup , KeyDer , Enc , Dec ) providing same functionalities as in IBE, except that a user I D = ( P 1 , , P l ) at level l can use his own secret key s k I D to generate a secret key for its children I D = ( P 1 , , P l , , P L ) via s k I D $ KeyDer ( s k I D , I D ) . By applying the KeyDer algorithm interactively, user I D can derive secret keys for any of its descendants I D = ( P 1 , , P l + δ ), δ 0 . We denote this process as s k I D $ KeyDer ( s k I D , ( P l + 1 , , P L + 1 ) ) . The secret key of the root at level 0 is s k ϵ = m s k . Encryption and decryption are the same as IBE, but the identity is a vector of strings instead of ordinary strings.

2.3. Bilinear Groups and Pairings

In references [16,17], the bilinear maps and bilinear map groups are defined as follows:
  • G and G 1 are two multiplicative cyclic groups of prime order p.
  • g is a generator of G .
  • e : G × G G 1 is a bilinear map.
Let G and G 1 be two groups as above. The bilinear map is defined as a map e : G × G G 1 which satisfies the following properties:
  • The map is bilinear: for all u , v G and a , b Z , e ( u a , v b ) = e ( u , v ) a b
  • The map is non-degenerate: e ( g , g ) 1 .
G is a bilinear group if the operation in G is efficient and there is a group G 1 with an efficiently computable bilinear map e : G × G G 1 .

2.4. Computational Complexity Assumptions

The security of our scheme is based on bilinear Diffie–Hellman Exponent (BDHE) assumption used in [7], which is an extension of bilinear Diffie–Hellman Inversion (BDHI) assumption previously used in [18]. Let G be a bilinear group of prime order p. The L-BDHE problem in G is defined as follows:
( h , g , g α , g ( α 2 ) , , g ( α L ) , g ( α L + 2 ) , , g ( α 2 L ) G 2 L + 1 )
Given a vector of 2 L + 1 elements above as input, output e ( g , h ) α L + 1 G 1 .
Once we specify g and α , we use y i to represent y i = g α i G . The adversary A has an advantage ϵ in solving L-BDHE in G if
P r [ A ( h , g , y 1 , , y L , y L + 2 , , y 2 L ) = e ( y L + 1 , h ) ] ϵ
where the probability is over the random bits used by A , the random choice of generators g , h in G , and the random choice of α in Z p . The decisional version of the L-BDHE problem in G is defined analogously. Let y g , α , L = ( y 1 , , y L , y L + 2 , , y 2 L ) . An algorithm B that outputs b { 0 , 1 } has advantage ϵ in solving decisional L-BDHE in G if
| P r [ B ( g , h , y g , α , L , e ( y L + 1 , h ) ) = 0 ] P r [ B ( g , h , y g , α , L , T ) = 0 ] | ϵ
where the probability is over the random choice of generators g , h in G , α in Z p , and T G 1 , and the bits consumed by B .
Definition 1.
The (decisional) ( t , ϵ , L )-BDHE assumption holds in G if no t-time algorithm has at least ϵ advantage to solve the (decisional) L-BDHE problem in G .
We may omit the t and ϵ , and refer to the (decisional) L-BDHE in G .

3. Model

SWIBE allows general key delegation and encryption to a group that is denoted by multiple identity strings and wildcards. To make the further description simple and clear, we define the following notations similarly to [11].
Definition 2.
A pattern P is a vector ( P 1 , , P L ) ( Z p * { * } ) L , where * is a special wildcard symbol, p is a q-bit prime number, and L is the maximal depth of the SWIBE scheme. We denote pattern P as in ( Z p * { * } ) L instead of ( { 0 , 1 } q { * } ) L , since { 0 , 1 } q can be easily mapped to Z p * with a hash function.
Definition 3.
A pattern P = ( P 1 , , P L ) belongs to P, denoted P * P , if and only if i { 1 , , L } , ( P i = P i ) ( P i = * ) .
Definition 4.
A pattern P = ( P 1 , , P L ) matches P, denoted P P , if and only if i { 1 , , L } , ( P i = P i ) ( P i = * ) ( P i = * ) .
Notice that a set of patterns matching P is includes patterns belonging to P. For a pattern P = ( P 1 , , P L ) , we define W ( P ) as a set of all wildcard indices in P, i.e., the indices 1 i L such that P i = * , and W ¯ ( P ) as a complementary set including all non-wildcard indices. Clearly, W ( P ) W ¯ ( P ) = and W ( P ) W ¯ ( P ) = { 1 , , L } .
Definition 5.
W ( P ) denotes a set including all wildcard indices in a pattern P.
Definition 6.
W ¯ ( P ) represents a complementary set containing all non-wildcard indices in a pattern P.
A scalable wildcarded identity-based encryption SWIBE consists of four algorithms:
Setup ( L )
takes as input the maximal hierarchy depth L. It outputs a public parameter p p and master secret key m s k .
KeyDer ( s k P , P n e w )
takes as input a user secret key s k P for a pattern P = ( P 1 , , P L ) and can derive a secret key for any pattern P n e w * P . The secret key of the root identity is m s k = s k ( * , , * ) .
Encrypt ( p p , P , m )
takes as input pattern P = ( P 1 , , P L ) , message m { 0 , 1 } * and public parameter p p . It outputs ciphertext C for pattern P.
Decrypt ( s k P , C , P )
takes as input user secret key s k P for pattern P = ( P 1 , , P L ) and ciphertext C for pattern P . Any user with the secret key for a pattern P which matches P can decrypt the ciphertext using s k P , and the algorithm outputs message m.
Correctness requires that for all key pairs ( p p , m s k ) output by Setup , all messages m Z p * , and all patterns P , P ( Z p * { * } ) L such that P P , Decrypt ( KeyDer ( m s k , P ) , Encrypt ( p p , P , m ) , P ) = m .
SECURITY. We define the security of SWIBE scheme similar to the original WIBE [11], except we also consider the key delegation property. We allow an adversary to select an arbitrary pattern and query secret keys for the corresponding pattern. The adversary is disallowed to ask a key derivation query for any pattern matching the challenge pattern. The security of SWIBE is defined by an adversary A and a challenger C via the following game. Both C and A are given the hierarchy depth L and the identity bit-length q as inputs.
Setup:
Challenger C runs Setup ( L ) to obtain public parameter p p and master secret key m s k . C gives A public parameter p p .
Key derivation queries:1:
Adversary A issues key derivation queries q K 1 , , q K m in which a key derivation query consists of a pattern P ( Z p * { * } ) L , and challenger C responds with s k P $ KeyDer ( s k P , P ) .
Query phase1:
Adversary A issues decryption queries q D 1 , , q D n in which a decryption query consists of a pattern P ( Z p * { * } ) L and ciphertext C, next challenger C responds with a message M $ Decrypt ( C , P ) .
Challenge:
A outputs two equal-length challenge messages m 0 * , m 1 * Z p * and a challenge identity P * = ( P 1 * , , P L * * ) s.t. P * P for all queried P . C runs algorithm C * Encrypt ( p p , P * , m b * ) for random bit b and gives C * to A .
Key derivation queries:2:
Attacker A continues to issue key derivation queries q K m + 1 , , q q K same as Key derivation queries : 1 where query pattern P P * . C responds as in key derivation query 1.
Query phase2:
Attacker A continues to issue decryption queries q D n + 1 , , q q D same as Query phase 1 . It should be satisfied that queried ciphertext C C * . C responds as in query phase 1.
Guess:
A outputs its guess b { 0 , 1 } for b and wins the game if b = b .
Definition 7.
A SWIBE is ( t , q K , q D , ϵ , L ) IND-ID-CCA-secure if all t-time adversaries making at most q K queries to the key derivation oracle and at most q D queries to the decryption oracle have at most advantage ϵ in the IND-ID-CCA game described above.
We also define IND-ID-CPA-secure similar as IND-ID-CCA game except forbidden all decryption queries.
Definition 8.
A SWIBE is ( t , q K , 0 , ϵ , L ) IND-ID-CPA-secure if all t-time adversaries making at most q K queries to the key derivation oracle have at most advantage ϵ in the IND-ID-CPA game described above.
SELECTIVE-IDENTITY SECURITY. A weaker selective-identity (sID) security notion IND-sID-CPA is defined analogously to the IND-ID-CPA one: every procedure is the same except that the adversary must commit to the challenge identity at the beginning of the game, before the public parameter is made available.

4. The Proposed Scheme

In this section, we describe the proposed scalable wildcarded identity based encryption scheme (SWIBE). Before presenting the formal scheme, we first describe the BBG-HIBE construction [7], which is a main building block for WIBE systems including SWIBE, along with our main idea to achieve constant-size ciphertext in Section 4.1. Then we provide SWIBE construction in Section 4.2, and show the formal security proof in Section 4.3.

4.1. Overview: BBG-HIBE and Our Idea

The BBG-HIBE scheme [7] is described as follows:
Setup(L):L indicates the maximum hierarchy depth. Select a random integer α Z p * , and O ( L ) random group elements g , g 2 , g 3 , h 1 , h 2 , , h L G , and compute g 1 = g α .
The public parameters and the master secret key are given by
p p = ( g , g 1 , g 2 , g 3 , h 1 , h 2 , , h L ) , m s k = g 2 α .
KeyDer( s k P | l 1 , P): To compute the secret key s k P for an identity P = ( P 1 , , P l ) ( Z p * ) l where l L from the master secret key, a random r $ Z p * is chosen, then secret key s k P = ( a 1 , a 2 , b l + 1 , , b L ) for P is constructed as
a 1 = g 2 α ( g 3 · i [ 1 , , l ] h i P i ) r , a 2 = g r , { b i = h i r } i [ l + 1 , , L ]
The private key for P can be generated incrementally, given a private key for the parent identity P | l 1 = ( P 1 , , P l 1 ) ( Z p * ) l 1 . Let s k P | l 1 = ( a 1 , a 2 , b l , , b L ) be the private key for P | l 1 . To generate s k P , pick a random t Z p * and output
a 1 = a 1 · ( b l ) P l · ( g 3 · i [ 1 , , l ] h i P i ) t , a 2 = a 2 · g t , { b i = b i · h i t } i [ l + 1 , , L ]
Encrypt( p p , P, M): To encrypt a message m G 1 to pattern P = ( P 1 , , P l ) , choose s $ Z p * , and compute
C = ( g s , ( g 3 · i [ 1 , , l ] h i P i ) s , M · e ( g 1 , g 2 ) s )
Decrypt( s k P , C): Consider an identity pattern P = ( P 1 , , P l ) . To decrypt a given ciphertext C = ( C 1 , C 2 , C 3 ) with private key s k P = ( a 1 , a 2 , b l + 1 , , b L ) , output
C 3 · e ( a 2 , C 2 ) e ( C 1 , a 1 ) = M
The BBG-HIBE scheme [7] has the advantage of constant-sized ciphertexts. The ciphertext consists of only three elements: ( g s , ( g 3 · h 1 P 1 h l P l ) s , M ( g , g 2 ) s α ) . When observing the secret key, a 1 and a 2 are responsible for the decryption, while b i stands for further key delegations. The pattern P = ( P 1 , , P l ) is combined as a single element a 1 , and we can delegate a 1 to another extended pattern P = ( P 1 , , P l , P l + 1 ) by additionally combining the b l + 1 into the a 1 . Since the united element a 1 directly involves the pattern and the element can be canceled by multiplying its inverse, we observe that secret key for some pattern can be replaced to another secret key for a different pattern by multiplication. For instance, it is possible to compute g 2 α ( g 3 h 1 P 1 h l P l ) r by multiplying h 1 ( P 1 P 1 ) r to g 2 α ( g 3 · h 1 P 1 h l P l ) r .
The wildcard pattern can work in a similar way: when we consider the wildcard * as a fixed identity, i.e., a mapped element w Z p * , we may change an identity to the wildcard by including c i = ( h i w / h i P i ) r for every identity string P i in a secret key and replacing ( h i P i ) r with ( h i w ) r . However, this approach has a security problem; the extra c i allows the adversary to compute h i r = c i 1 / ( w P i ) by combining c i , w , P i , which reveals the top level secret key g 2 α g 3 r by canceling ( h 1 P 1 h l P l ) r from g 2 α ( g 3 h 1 P 1 h l P l ) r . With the top level secret key, the adversary can generate any secret keys as he desires, which is a significant problem.
We resolve this issue by randomizing the wildcard part, by using another random t Z p independent from r. Specifically, we revise the extra key c i as c i = h i w t / h i P i r , and also provide g t with g r , to let the decryption work correctly. For instance, the key g 2 α ( g 3 · h 1 P 1 h 2 P 2 h 3 P 3 ) r for ( P 1 , P 2 , P 3 ) is changed to g 2 α ( g 3 · h 2 P 2 ) r · ( h 1 w h 3 w ) t for ( * , P 2 , * ) by multiplying c 1 c 3 .
The remaining issue is that the encryption requires some adjustments, to be compatible with the modification of random t. For example, to encrypt for the pattern ( * , P 2 , * ) , the pattern is divided into wildcard part and non-wildcard part. The non-wildcard identity part ( · , P 2 , · ) is encrypted as ( g s , ( g 3 · h 2 P 2 ) s , M · e ( g 1 , g 2 ) s ) , same as the BBG-HIBE. Then the wildcard identity part ( * , · , * ) is encrypted as ( h 1 w h 3 w ) s , which can later be used in decryption to cancel out the wildcard part of user secret key. In summary, the ciphertext can remain as constant with an additional single group element to the original BBG-HIBE ciphertext which is three group elements, and the key size also remains efficient, linear to the number of patterns, within the same order compared with the BBG-HIBE.
The complete scheme is represented in the following Section 4.2 with assuming the value w = 1 . Then we formally prove the security of the scheme in Section 4.3.

4.2. SWIBE Construction

We now describe the SWIBE scheme which achieves constant size ciphertext and O ( L ) size keys.
Setup(L): Let L indicate the maximum depth of the pattern. The initial set of keys are generated as follows. Sample α Z p * , and O ( L ) group elements g , g 2 , g 3 , h 1 , h 2 , , h L G randomly, and compute g 1 = g α .
The public parameter is given by
p p ( g , g 1 , g 2 , g 3 , h 1 , h 2 , , h L ) .
A master secret key is set as m s k = g 2 α .
KeyDer( p p , s k P , P ): To derive the secret key s k P for a pattern P = ( P 1 , , P L ) ( Z p * { * } ) L from the m s k , two randoms r , t $ Z p * are chosen. Then, the secret key s k P = ( a 1 , a 2 , a 3 , b , c , d ) for P is computed as
a 1 = m s k ( g 3 · i W ¯ ( P ) h i P i ) r , a 2 = g r , a 3 = g t b = { b i = h i r } i W ( P ) c = { c i = h i t } i W ( P ) d = { d i = h i t / h i P i r } i W ¯ ( P )
In order to generate secret key s k P for a pattern P from secret key s k P = ( a 1 , a 2 , a 3 , b , c ) for a pattern P such that P * P , simply choose two randoms r , t $ Z q * and output s k P = ( a 1 , a 2 , a 3 , b , c , d ) , where
a 1 = a 1 · ( i W ¯ ( P ) W ( P ) b i P i ) · ( g 3 i W ¯ ( P ) h i P i ) r , a 2 = a 2 · g r , a 3 = a 3 · g t b = { b i = b i · h i r } i W ( P ) , c = { c i = c i · h i t } i W ( P ) d = { d i = d i · h i t h i P i r } i W ¯ ( P ) W ¯ ( P ) { d i = c i b i P i · h i t h i P i r } i W ¯ ( P ) W ( P )
Encrypt( p p , P, m): To encrypt a message m G 1 to pattern P = ( P 1 , , P L ) under p p , choose s $ Z p * , and compute C = ( C 1 , C 2 , C 3 , C 4 )
C 1 = g s , C 2 = ( g 3 · i W ¯ ( P ) h i P i ) s C 3 = m · e ( g 1 , g 2 ) s , C 4 = ( i W ( P ) h i ) s
Decrypt( s k P , C, P ): Consider patterns P and P ( Z p * { * } ) L , where P is a key pattern and P is a ciphertext pattern. To decrypt a given ciphertext C = ( C 1 , C 2 , C 3 , C 4 ) with private key s k P = ( a 1 , a 2 , a 3 , b , c , d ) , compute a 1 = a 1 · i W ¯ ( P ) W ( P ) b i P i · i W ( P ) W ( P ) c i · i W ( P ) W ¯ ( P ) d i and output
C 3 · e ( a 2 , C 2 ) · e ( a 3 , C 4 ) e ( C 1 , a 1 ) = m
The correctness of the decryption is described as follows. We denote W P P = W ( P ) W ( P ) , W P ¯ P = W ¯ ( P ) W ( P ) , W P P ¯ = W ( P ) W ¯ ( P ) , and W P ¯ P ¯ = W ¯ ( P ) W ¯ ( P ) to simplify notations.
Since a 1 = g 2 α ( g 3 i W ¯ ( P ) h i P i ) r , b i = h i r , c i = h i t , and d i = h i t h i P i r ,
a 1 = a 1 · i W P ¯ P b i P i · i W P P c i · i W P P ¯ d i = g 2 α ( g 3 · i W ¯ ( P ) h i P i ) r · i W P ¯ P h i P i r · i W P P h i t · i W P P ¯ h i t h i P i r = g 2 α ( g 3 · i W ¯ ( P ) h i P i · i W P ¯ P h i P i · i W P P ¯ h i P i ) r · i W P P ¯ h i t · i W P P h i t .
Since W P P ¯ W P ¯ P ¯ = W ¯ ( P ) and W P P ¯ W P ¯ P ¯ = ∅, i W ¯ ( P ) h i P i · i W P P ¯ h i P i = i W P ¯ P ¯ h i P i . Similarly, since W P P W P P ¯ = W ( P ) and W P P W P P ¯ = ∅, i W P P h i t · i W P P ¯ h i t = i W ( P ) h i t . Therefore,
a 1 = g 2 α ( g 3 · i W P ¯ P ¯ h i P i · i W P ¯ P h i P i ) r · i W ( P ) h i t .
Since P P , P i = P i for i W P ¯ P ¯ .
a 1 = g 2 α ( g 3 · i W P ¯ P ¯ h i P i · i W P ¯ P h i P i ) r · i W ( P ) h i t .
Since W P ¯ P ¯ W P ¯ P = W ¯ ( P ) and W P ¯ P ¯ W P ¯ P = ∅, i W P ¯ P ¯ h i P i · i W P ¯ P h i P i = i W ¯ ( P ) h i P i .
a 1 = g 2 α ( g 3 · i W ¯ ( P ) h i P i ) r · i W ( P ) h i t .
e ( a 2 , C 2 ) · e ( a 3 , C 4 ) e ( C 1 , a 1 ) = e ( g r , ( g 3 · i W ¯ ( P ) h i P i ) s ) · e ( g t , ( i W ( P ) h i ) s ) e ( g s , g 2 α ( g 3 · i W ¯ ( P ) h i P i ) r · i W ( P ) h i t ) = 1 e ( g , g 2 ) s α = 1 e ( g 1 , g 2 ) s .

4.3. Security Proof

In this section, we show the formal proof for IND-sID-CPA-security of SWIBE scheme in the standard model.
Theorem 1.
Let G be a bilinear group of prime order p. Suppose the decisional ( t , ϵ , L ) -BDHE assumption holds in G . Then our SWIBE is ( t , q K , 0 , ϵ , L ) sID-CPA secure for arbitrary L, and t < t O ( L e + p ) , where e and p denote the execution times of scalar multiplication and pairing in G , respectively.
Proof. 
Suppose A has advantage ϵ in attacking the SWIBE scheme. Using A , we build an algorithm B that solves the (decisional) L-BDHE problem in G .
For a generator g G and α Z p * , let y i = g α i G . Algorithm B is given as input a random tuple ( g , h , y 1 , , y L , y L + 2 , , y 2 L , T) that is either chosen from P B D H E where T = e ( g , h ) ( α L + 1 ) or from R B D H E where T is uniformly distributed in G 1 . The goal of algorithm B is to output 1 when the input is sampled from P B D H E and 0 otherwise. Algorithm B interacts with A in a selective subset game as follows:
Init: The game begins with A first outputting an identity vector P * = ( P 1 * , , P L * ) * ( Z p * { * } ) L .
Setup: To generate the public parameter, algorithm B picks a random γ in Z p and sets g 1 = y 1 = g α and g 2 = y L g γ = g γ + ( α L ) . Next, B picks random γ i Z p * for i = 1 , , L , and sets h i = g γ i / y L i + 1 for i W ¯ ( P * ) and h i = g γ i for i W ( P * ) . Algorithm B also picks a random δ in Z p * and sets g 3 = g δ i W ¯ ( P * ) L y L i + 1 P i * .
Key derivation queries: Suppose that adversary B queries a key derivation query for pattern P = ( P 1 , , P L ) * ( Z p * { * } ) L . The definition of the security experiment says that P * * P . Therefore, there exists an index k W ¯ ( P ) such that P k P k * . We define k to be the smallest one among all possible indices. B picks two random r ˜ , t ˜ Z p * and (implicitly) sets r α k P k * P k + r ˜ and t r · P k * + t ˜ . Secret key s k P = ( a 1 , a 2 , a 3 , b , c , d ) for P is constructed as
a 1 = g 2 α · ( g 3 i W ¯ ( P ) h i P i ) r ; a 2 = g r ; a 3 = g t b = { b i = h i r } i W ( P ) c = { c i = h i t } i W ( P ) d = ( d i = h i t / h i P i * r ) i W ¯ ( P )
We have
( g 3 i W ¯ ( P ) h i P i ) r = ( g δ i W ¯ ( P ) y L i + 1 P i * i W ¯ ( P ) g γ i P i y L i + 1 P i ) r = ( g δ + i W ¯ ( P ) P i γ i · i W ¯ ( P ) { k } y L i + 1 P i * P i · y L k + 1 P k * P k · i W ( P ) y L i + 1 P i * ) r
We split this term up into two factors A · Z , where A = ( y L k + 1 P k * P k ) r is the third product only. We can check that Z can be computed by A , i.e., the terms y i only appear with indices i { 1 , , L } . Term A can be expressed as
A = g α L k + 1 ( P k * P k ) ( α k P k * P k + r ˜ ) = y L + 1 1 · y L k + 1 ( P k * P k ) r ˜
Hence,
a 1 = g 2 α · A · Z = y L + 1 y 1 γ · y L + 1 1 y L k + 1 ( P k * P k ) r ˜ · Z = y 1 γ · y L k + 1 ( P k * P k ) r ˜ · Z
can be computed by A . Furthermore,
g r = g α k P k * P k + r ˜ = y k 1 P k * P k · g r ˜
and for each i W ( P ) ,
h i r = ( g γ i / y L i + 1 ) α k P k * P k + r ˜ = y k γ i P k * P k y L + k i + 1 1 P k * P k · g γ i r ˜ · y L i + 1 r ˜ h i t = ( h i ) r · P k * + t ˜ = h i P k * r · h i t ˜ = y k γ i P k * P k * P k y L + k i + 1 P k * P k * P k · g γ i ( r ˜ P k * + t ˜ ) · y L i + 1 ( r ˜ P k * + t ˜ )
can be computed since k W ( P ) .
And for each i W ¯ ( P ) ,
h i t / h i P i * r = h i r P k * + t ˜ / h i P i * r = h i ( P k * P i * ) r + t ˜ = ( g γ i / y L i + 1 ) ( P k * P i * ) ( α k P k * P k + r ˜ ) + t ˜ = ( y k γ i P k * P k y L + k i + 1 1 P k * P k · g γ i r ˜ · y L i + 1 r ˜ ) ( P k * P i * ) · ( g γ i / y L i + 1 ) t ˜ .
If i = k , P k * P i * = 0 . So A can compute it. Otherwise also A can compute it since i k and y L + 1 does not appear in the equation.
Challenge: For the challenge, B computes C 1 , C 2 , and C 4 as h, h δ + i W ¯ ( P * ) ( γ i P i * ) , and h i W ( P * ) γ i . Then, it selects a random bit b { 0 , 1 } and sets C 3 = m b · T · e ( y 1 , h ) γ . It returns C = ( C 1 , C 2 , C 3 , C 4 ) as a challenge to A . We claim that if T = e ( g , h ) ( α L + 1 ) (i.e., the input to B is an L-BDHE tuple) then ( C 1 , C 2 , C 3 , C 4 ) is a valid challenge to A as in a real attack. To see this, write h = g c for some (unknown) c Z p * . Then
h δ + i W ¯ ( P * ) ( γ i P i * ) = ( g δ + i W ¯ ( P * ) ( γ i P i * ) ) c = ( g δ · i W ¯ ( P * ) y L i + 1 P i * i W ¯ ( P * ) ( g γ i y L i + 1 ) P i * ) c = ( g 3 i W ¯ ( P * ) h i P i * ) c , h i W ( P * ) γ i = ( g i W ( P * ) γ i ) c = ( i W ( P * ) g γ i ) c
and
e ( g , h ) ( α L + 1 ) · e ( y 1 , h ) γ = e ( y 1 , y L ) c · e ( y 1 , g ) γ · c = e ( y 1 , y L g γ ) c = e ( g 1 , g 2 ) c .
Therefore, by definition, e ( y L + 1 , g ) c = e ( g , h ) ( α L + 1 ) = T and hence C = ( C 1 , C 2 , C 3 , C 4 ) is a valid challenge to A . On the other hand, when T is randomly chosen in G 1 (i.e., the input to B is a random tuple) then C 3 is just a random independent element in G 1 to A .
Guess: Finally, A outputs a guess b { 0 , 1 } . Algorithm B terminates its own game by outputting a guess as follows. If b = b then B outputs 1 meaning T = e ( g , h ) ( α L + 1 ) . Otherwise, it outputs 0 denoting that T is random in G 1 .
When the input tuple is chosen from P B D H E (where T = e ( g , h ) ( α L + 1 ) ) then A satisfies | P r [ b = b ] 1 / 2 | ϵ . When the input tuple is selected from R B D H E (where T is uniform in G 1 ) then P r [ b = b ] = 1 / 2 . Therefore, with g , h uniform in G , α uniform in Z p , and T uniform in G 1 we have that
| P r [ B ( g , h , y g , α , L , e ( g , h ) ( α L + 1 ) ) = 0 ] P r [ B ( g , h , y g , α , L , T ) = 0 ] | | ( 1 / 2 + ϵ ) 1 / 2 | = ϵ

5. Extension to CCA Security

In this section, we show the extension of CPA-secure SWIBE to satisfy CCA-security, by applying the similar technique from the extension in [19]. Given any one-time signature scheme ( S i g K e y g e n , S i g n , V e r i f y ) with a verification key as a q-bit string, we construct an L-level SWIBE Π = ( Setup , KeyDer , Encrypt , Decrypt ) secure against chosen-ciphertext attacks using the ( L + 1 ) -level Π = ( Setup , KeyDer Encrypt , Decrypt ) semantically secure SWIBE. The idea is that P = ( P 1 , , P L ) { Z p * { * } } L in Π is mapped to P = ( P 1 , , P L , * ) { Z p * { * } } L + 1 in Π . Thus, the secret key s k P for P in Π is the secret key s k P in Π . Recall that s k P can generate secret keys for all descendants of node P . When encrypting a message m to P C = ( P C 1 , , P C L ) in Π , the sender generates a q-bit verification key V s i g Z p * and encrypts m to P C = ( P C 1 , , P C L , V s i g ) using Π .
The construction of L-level Π utilizing ( L + 1 ) -level Π and a one-time signature scheme is as follows:
Setup(L) runs Setup ( L + 1 ) to obtain ( p p , m s k ) . Given p p ( g , g 1 , g 2 , g 3 , h 1 , , h L + 1 ) and m s k , the public parameter is p p ( g , g 1 , g 2 , g 3 , h 1 , , h L ) and the master secret key is m s k m s k .
KeyDer( p p , s k P , P n e w ) is the same as the KeyDer algorithm.
Encrypt( p p , P , m ) runs S i g K e y G e n ( 1 L ) algorithm to obtain a signature signing key K s i g and a verification key V s i g . For a given pattern P = ( P 1 , , P L ) , encode P to P = ( P 1 , , P L , V s i g ) , compute C Encrypt ( p p , P , m ) and σ S i g n ( K s i g , C ) , and output C T = ( C , σ , V s i g )
Decrypt( s k P , C T , P C ): Let C T = ( C , σ , V s i g ) .
  • Verify that σ is the valid signature of C under the key V s i g . If invalid, output ⊥.
  • Otherwise, check P P C , generate s k P KeyDer ( s k P , P ) for P = ( P 1 , , P L , V s i g ) , and run Decrypt ( s k P , C, P C ) to extract the message.
Theorem 2.
Let G be a bilinear group of prime order p. The above SWIBE Π is ( t , q K , q D , ϵ 1 + ϵ 2 , L ) CCA-secure assuming the SWIBE Π is ( t , q K , 0, ϵ 1 , L + 1 ) semantically secure in G and signature scheme is ( t , ϵ 2 ) strongly existentially unforgeable with q K < q K , t < t ( L e + 3 p ) q D t s , where e is exponential time, p is pairing time, and t s is sum of S i g K e y G e n , S i g n and V e r i f y computation time.
Proof. 
Assume there exists a t-time adversary, A , such that | A d v B r A , Π 1 / 2 | > ϵ 1 + ϵ 2 . We build an algorithm B , which has advantage | A d v B r B , Π 1 / 2 | > ϵ 1 in G . Algorithm B proceeds as follows.
Setup: B gets the public parameter p p of Π and also gets secret keys s k P for P ¬ S * * from challenger C .
Since Π generates secret keys in a compressed way using wildcard *, P can be categorized into the following two cases:
  • P = ( P 1 , , P L , * ) for P * P *
  • P = ( P 1 , , P L , V s i g ) for P * P * and V s i g V s i g * .
B responds with p p and secret keys s k P of the first type of P . (Recall that the secret key s k P = s k P where P = ( P 1 , , P L , * .) The secret keys s k P of the second type of P are utilized to respond to the decryption queries of A as described in the below.
Query phase1: Algorithm A issues decryption queries. Let ( P , C T ) be a decryption query where P * P * and P P C where P C is a pattern of ciphertext. Let C T = ( ( C 1 , C 2 , C 3 , C 4 ) , σ , V s i g ) . Algorithm B responds as following:
  • Execute V e r i f y to verify the signature σ on ( C 1 , C 2 , C 3 , C 4 ) using verification key V s i g . If the signature is invalid, then B responds with ⊥.
  • If V s i g = V s i g * , a forge event occurs, algorithm B outputs a random bit b $ { 0 , 1 } and aborts the simulation.
  • Otherwise, B decrypts the ciphertext C T using the second type of secret keys. Since V s i g V s i g * , B can query the key generation query for P = ( P 1 , , P L , V s i g ) which is second type pattern. Using s k P , B can decrypt m Decrypt ( s k P , ( C 1 , C 2 , C 3 , C 4 ) , P C ) where P C = ( P 1 , , P L , V s i g ) since P = P C .
Challenge: A gives the challenge ( m 0 , m 1 ) to B . B gives the challenge ( m 0 , m 1 ) to C and gets the challenge ( C T b ) from C . To generate challenge for A , algorithm B computes C * as follows:
σ * S i g n ( C T b , K s i g * ) C * ( C T b , σ * , V s i g * )
B replies C * to A .
Query phase2: Same as in query phase1 except can not decrypt query for C*.
Guess: The A outputs a guess b { 0 , 1 } . B outputs b.
We see that algorithm B can simulate all queries to run A . B ’s success probability as follows:
| A d v B r B , Π 1 2 | | A d v B r A , Π 1 2 | P r [ forge ] > ( ϵ 1 + ϵ 2 ) P r [ forge ]
To conclude the proof of Theorem 2, the remaining process is to bound the probability that B aborts the simulation as a result of forge, which we claim as P r [ forge ] < ϵ 2 . Otherwise, one can use A to forge signatures with a probability of at least ϵ 2 . In brief, we can construct another simulator which knows the private key, but receives K s i g * as a challenge in an existential forgery game.
In the experiment above, A aborts by submitting a query which includes an existential forgery under K s i g * on some ciphertexts. Our simulator utilizes the forgery to win the existential forgery game. Note that a single chosen message query is asked by adversary A to generate a signature for the challenge ciphertext. Thus, P r [ forge ] < ϵ 2 . It now follows that B ’s advantage is at least ϵ 1 as required.  □

6. Fully Secure Scheme

In this section, we present a new version of SWIBE based on composite order bilinear groups, to obtain full security (IND-ID-CPA) instead of selective security (IND-sID-CPA). In the original SWIBE scheme (Section 4), the security proof was limited to the selective security, since the scheme was bound to a single group. In this case, if the challenge pattern is not committed before the game, the reduction algorithm cannot simulate secret keys (without knowing the secret factor α ) for key queries from the adversary. To resolve this issue, we now construct the scheme with parameters from multiple subgroups similar to [14], using the fact that it is difficult to determine from which group the element came from. When using the subgroup assumptions, for each pattern, the reduction can both simulate the secret key in one subgroup and embed the problem in another subgroup. Therefore, the full security can be achieved. We first introduce the definition and features of composite order bilinear groups. Then we show the decisional subgroup assumptions from Lewko and Waters (LW.1–LW.3), and present our composite order (fully-secure) SWIBE which also has a constant-size ciphertext. Finally, we prove the full security of our composite order SWIBE based on LW assumptions.

6.1. Composite Order Bilinear Groups

We describe the composite order bilinear groups as in [14]. We use groups where the order is a product of three primes and a generator G which takes security parameter λ as input and generates a description G = ( N = p 1 p 2 p 3 , G , G T , e ) where p 1 , p 2 , p 3 are distinct primes of Θ ( λ ) bits, G and G T are cyclic groups of order N. For a , b , c { 1 , p 1 , p 2 , p 3 } , we denote the subgroup of order a b c as G a b c . Considering the fact that the group is cyclic, it is easy to verify that if g and h are group elements of different order (belonging to different subgroups), then e ( g , h ) = 1 .

6.2. Complexity Assumptions

We first restate the complexity assumptions we use, which were originally introduced by Lewko and Waters in [20] and used in [14].
Assumption LW.1: For a generator G of bilinear settings, first pick a bilinear setting G $ G ( 1 λ ) and then pick g 1 , T 1 $ G p 1 , g 3 $ G p 3 , T 2 $ G p 1 p 2 and set D = ( G , g 1 , g 3 ) . We define the advantage of an algorithm A in breaking Assumption 1 to be: Adv L W . 1 A ( λ ) = | P r [ A ( D , T 1 ) = 1 ] P r [ A ( D , T 2 ) = 1 ] | .
Assumption LW.2: For a generator G of bilinear settings, first pick a bilinear setting G $ G ( 1 λ ) and then pick g 1 , X 1 $ G p 1 , X 2 , Y 2 $ G p 2 , g 3 , X 3 $ G p 3 , T 1 $ G p 1 p 3 , T 2 $ G p 1 p 2 p 3 and set D = ( G , g 1 , g 3 , X 1 X 2 , Y 2 X 3 ) . We define the advantage of an algorithm A in breaking Assumption 2 to be: Adv L W . 2 A ( λ ) = | P r [ A ( D , T 1 ) = 1 ] P r [ A ( D , T 2 ) = 1 ] | .
Assumption LW.3: For a generator G of bilinear settings, first pick a bilinear setting G $ G ( 1 λ ) and then pick α , δ , s $ Z N , g 1 $ G p 1 , g 2 , X 2 , Y 2 $ G p 2 , g 3 $ G p 3 , T 2 $ G T and set T 1 = e ( g 1 , g 1 δ ) α s and D = ( G , g 1 , g 2 , g 3 , g 1 α X 2 , g 1 δ , g 1 s Y 2 ) . We define the advantage of an algorithm A in breaking Assumption 3 to be: Adv L W . 1 A ( λ ) = | P r [ A ( D , T 1 ) = 1 ] P r [ A ( D , T 2 ) = 1 ] | .

6.3. Fully-Secure SWIBE Construction

We present the fully-secure SWIBE with constant size ciphertexts and O ( L ) size keys, which is based on the composite order bilinear group ( N = p 1 p 2 p 3 ). Note that W from subgroup G p 3 is only a blinding factor, to be eliminated when computed in a pairing operation (due to the orthogonal property of composite order bilinear groups).
Setup(L):L indicates the maximum hierarchy depth. Choose a description of a bilinear group G $ G ( 1 λ ) with known factorization and g 1 , k 1 $ G p 1 , g 3 $ G p 3 . Choose α $ Z N and { h i $ G p 1 } i [ L ] , and compute γ = g 1 α .
The public parameter is given by
p p ( N , g 1 , γ , k 1 , g 3 , h 1 , h 2 , , h L ) .
A master secret key is defined as m s k = k 1 α .
KeyDer( p p , s k P , P ): To compute secret key s k P according to pattern P = ( P 1 , , P L ) ( Z p * { * } ) L from the master secret key, first two randoms r , t $ Z N are chosen. Then random blinding factors from different subgroup W 1 , W 2 , W 3 $ G p 3 , { W a , i , W d , i $ G p 3 } i W ¯ ( P ) , and { W b , i , W c , i $ G p 3 } i W ( P ) are chosen. Secret key s k P = ( a 1 , a 2 , a 3 , b , c , d ) for P is constructed as
a 1 = m s k · i W ¯ ( P ) ( h i P i · W a , i ) r · W 1 a 2 = g 1 r · W 2 a 3 = g 1 t · W 3 b = { b i = h i r · W b , i } i W ( P ) c = { c i = h i t · W c , i } i W ( P ) d = { d i = h i t / h i P i r · W d , i } i W ¯ ( P )
In order to generate secret key s k P for a pattern P from secret key s k P = ( a 1 , a 2 , a 3 , b , c ) for a pattern P such that P * P , simply choose two randoms r , t $ Z N , and blinding randoms W 1 , W 2 , W 3 $ G p 3 , { W a , i , W d , i } i W ¯ ( P ) , and { W b , i , W c , i } i W ( P ) and output s k P = ( a 1 , a 2 , a 3 , b , c , d ) , where
a 1 = a 1 · ( i W ¯ ( P ) W ( P ) b i P i ) · i W ¯ ( P ) ( h i P i · W a , i ) r , a 2 = a 2 · g 1 r a 3 = a 3 · g 1 t b = { b i = b i · h i r · W b , i } i W ( P ) c = { c i = c i · h i t · W c , i } i W ( P ) d = { d i = d i · h i t h i P i r · W d , i } i W ¯ ( P ) W ¯ ( P ) { d i = c i b i P i · h i t h i P i r · W d , i } i W ¯ ( P ) W ( P )
Encrypt( p p , P, m): To encrypt a message m G to pattern P = ( P 1 , , P L ) under p p , choose s $ Z p * , and compute C = ( C 1 , C 2 , C 3 , C 4 )
C 1 = g 1 s , C 2 = ( i W ¯ ( P ) h i P i ) s C 3 = m · e ( γ , k 1 ) s , C 4 = ( i W ( P ) h i ) s
Decrypt( s k P , C, P ): The decryption is similar to the decryption in Section 4.2, since the elements in G p 1 will work in an equivalent way compared to the original SWIBE construction. Consider patterns P and P ( Z p * { * } ) L , where P is a key pattern and P is a ciphertext pattern. To decrypt a given ciphertext C = ( C 1 , C 2 , C 3 , C 4 ) with private key s k P = ( a 1 , a 2 , a 3 , b , c , d ) , compute a 1 = a 1 · i W ¯ ( P ) W ( P ) b i P i · i W ( P ) W ( P ) c i · i W ( P ) W ¯ ( P ) d i and output
C 3 · e ( a 2 , C 2 ) · e ( a 3 , C 4 ) e ( C 1 , a 1 ) = m
The fact that decryption works is similar to the decryption of original SWIBE construction in Section 4.2. Note that the blinding factors W from subgroup G p 3 make no difference, since they will be eliminated in the pairing operations due to the orthogonal property in Section 6.1.

6.4. Security Proof

In this section, we prove that our fully-secure SWIBE scheme in Section 6.3 is IND-ID-CPA-secure under the Lewko and Waters assumptions (LW.1–LW.3) in Section 6.2. The security proof is based on the hybrid games.
Before presenting hybrid games, we introduce two additional structures used in the proofs of security similar to [14,20]:
Semi-Functional (SF) Ciphertext. Let g 2 denote a generator of G p 2 . An SF ciphertext is constructed as follows: we use the encryption algorithm to form a normal ciphertext C [ C 1 , C 2 , C 3 , C 4 ] . We choose random exponents x $ Z N and z c 2 , z c 4 $ Z N . Then we set: C 1 = C 1 · g 2 x , C 2 = C 2 · g 2 x · z c 2 , C 3 = C 3 , C 4 = C 4 · g 2 x · z c 4 .
Semi-Functional (SF) Keys. To generate a SF key, a normal secret key ( a 1 , a 2 , a 3 , b , c , d ) is first created, using the key derivation algorithm with p p , m s k , and pattern P. Then randoms are chosen: y , z k 1 , z k 2 , z k 3 $ Z N , ( z k b , i , z k c , i $ Z N ) i W ( P ) , and ( z k d , i $ Z N ) i W ¯ ( P ) . Then the SF secret key is constructed as follows.
a 1 = a 1 · g 2 y · z k 1 , b = { b i = b i · g 2 y · z k b , i } i W ( P ) a 2 = a 2 · g 2 y · z k 2 , c = { c i = c i · g 2 y · z k c , i } i W ( P ) a 3 = a 3 · g 2 y · z k 3 , d = { d i = d i · g 2 y · z k d , i } i W ¯ ( P )
Note that SF ciphertexts can be decrypted by normal secret keys and SF secret keys can be used to decrypt normal ciphertext. But an SF ciphertext, for pattern P , cannot be decrypted by an SF secret key. The decryption algorithm will compute the blinding factor multiplied by the additional term e ( g 2 , g 2 ) x y · ( z k 2 · z c 2 + z k 3 · z c 4 z k 1 ) . If z k 2 · z c 2 + z k 3 · z c 4 = z k 1 , decryption will still work. Such ciphertexts and secret keys are defined as nominally SF.
Theorem 3.
If Assumptions LW.1, LW.2, and LW.3 hold, then our fully-secure SWIBE scheme is IND-ID-CPA (or IND-WWID-CPA [14]) secure.
Proof. 
We prove the security via sets of hybrid games, and by showing that two games are computationally indistinguishable in each step. For the sketch of our proof, we first define the series of games. Let us assume PPT adversary A with q key queries. Then we define q + 5 games between A and a challenger C as follows.
  • Game real : It is the real IND-ID-CPA (or IND-WWID-CPA [14]) security game.
  • Game gen : This game is same as G a m e r e a l , except the fact that all key queries from the adversary is answered by fresh key generation algorithm. In the security proof, we use the term key generation for the key delegation from m s k , which is equivalent.
  • Game pre : It is a same game as G a m e g e n , except the fact that the adversary cannot query for keys if the pattern is a prefix of the challenge pattern mod p 2 . We say that the pattern P is a prefix of P * mod p 2 if there exists i s.t. P i P i * mod N and P i = P i * mod p 2 .
  • Game 0 : It is a same game as G a m e p r e , except the fact that the challenge ciphertext C 1 C 4 is given as a SF ciphertext.
  • Game 1 q : For k from 1 to q, G a m e k is same as G a m e 0 except the fact that the first k keys are given as SF keys. The other keys are given as normal keys from the key generation algorithm.
  • Game rand : This game is same as G a m e q , but where C 3 of challenge ciphertext has a random element in G T . Since C 3 is distorted with a random element, the ciphertext is now independent from the message and the adversary can have no advantage.
With the games defined above, we now introduce the outline of our hybrid games as follows.
  • Game real = Game gen . Since the key generation algorithm has an identical distribution, it is exactly the same to call key delegation or fresh key generation from the adversary’s view.
  • Game gen Game pre . We require that the adversary cannot obtain the key for prefix pattern of challenge ciphertext, to prevent the adversary to find the nominality in SF randoms. We prove the hybrid game by showing that prefix query itself can break the Assumption LW.2.
  • Game pre Game 0 . We construct algorithm B which breaks Assumption LW.1 with a help of SWIBE CPA distinguisher A . The nature of the challenge ciphertext (normal or SF) is decided by T given from the Assumption LW.1, which indicates that two games are indistinguishable from the adversary’s view.
  • Game k 1 Game k . We construct algorithm B which breaks Assumption LW.2 with a help of SWIBE CPA distinguisher A . The nature of the k-th key (normal or SF) is decided by T given from the Assumption LW.2, which indicates that two games are indistinguishable from the adversary’s view.
  • Game q Game rand . We construct algorithm B which breaks Assumption LW.3 with a help of SWIBE CPA distinguisher A . The nature of the ciphertext (SF or random) is decided by T given from the Assumption LW.3, which indicates that two games are indistinguishable from the adversary’s view. This concludes the proof, since the adversary can have no advantage in the final game.
We now give formal proofs for each hybrid game stated above.
(1)
Game real = Game gen .
The delegated key from the key delegation algorithm has an identical distribution as the freshly generated key from the key generation algorithm. Therefore, it is straightforward that it is exactly the same whether to provide the key with delegating the previous key or to provide the key from a fresh call to the key generation algorithm.
(2)
Game gen Game pre .
We define that pattern P = ( P 1 , , P k ) is a prefix of pattern P * = ( P 1 * , , P j * ) modulo p 2 , if there exists P i and P i * such that P i P i * mod N and P i = P i * mod p 2 . In this case, p 2 divides P i P i * , and therefore a = g c d ( P i P i * , N ) is a nontrivial factor of N. Since p 2 divides a, let us set b = N / a . There are two cases: (1) b is in o r d ( g 1 ) , or (2) b is not in o r d ( g 1 ) but in o r d ( g 3 ) . Suppose that case 1 has probability of at least ϵ / 2 . We describe algorithm B that breaks Assumption LW.2. B receives ( G , g 1 , g 3 , X 1 X 2 , Y 2 X 3 ) and T and constructs p p and m s k by choosing α , δ $ Z N and η i $ Z N i [ L ] , and setting p p ( N , g 1 , γ = g 1 α , k 1 = g 1 δ , g 3 , { h i = g 1 η i } i [ L ] ) and m s k k 1 α . Then B runs A on input p p and uses knowledge of m s k to answer A ’s queries. At the end of the game, B computes a = g c d ( P i P i * , N ) , for all Ps which are patterns for the key queries that A has asked, and for P * which is the challenge pattern. If e ( ( X 1 X 2 ) a , Y 2 X 3 ) is the identity element of G T , B tests if e ( T b , X 1 x 2 ) is also the identity element of G T . When the second test is successful, B declares T G p 1 p 3 . Otherwise, B declares T G p 1 p 2 p 3 . It is from the simple fact that p 2 divides a and p 1 = o r d ( g 1 ) divides b. For case 2, B can break Assumption LW.2 in the same way by exchanging the roles of G p 1 and G p 3 , i.e., p 1 and p 3 .
(3)
Game pre Game 0 .
We construct algorithm B that breaks Assumption LW.1 with the help of SWIBE CPA distinguisher A . B first receives ( G , g 1 , g 3 ) and T from LW.1. Then B starts the IND-ID-CPA game with A and simulates G a m e p r e or G a m e 0 depending on the nature of T.
Setup: B chooses α , δ $ Z N , ( η i $ Z N ) i [ L ] , then set p p ( g 1 , γ = g 1 α , k 1 = g 1 δ , g 3 , { h i = g 1 η i } i [ L ] ) and m s k k 1 α .
Key derivation queries: B can answer all key generation queries from A since B knows m s k .
Challenge: A sends B challenge message m 0 , m 1 { 0 , 1 } * and a challenge pattern P = ( P 1 , , P l ) where 0 l L . B flips a coin ζ { 0 , 1 } and computes the challenge ciphertext C as follows:
C 1 = T , C 2 = i W ¯ ( P ) T η i · P i C 3 = m · e ( γ , T δ ) , C 4 = i W ( P ) T η i
Notice that if T G p 1 , then T can be written as g 1 s and C is a normal ciphertext with randomness s. Instead, if T G p 1 p 2 , then T can be written as g 1 s g 2 x and C is SF with randomness s , x , z c 2 = η i · P i , z c 4 = η i .
(4)
Game k 1 Game k .
We construct algorithm B that breaks Assumption LW.2 with the help of SWIBE CPA distinguisher A . B first receives ( G , g 1 , g 3 , X 1 X 2 , Y 2 X 3 ) and T from LW.2. Then B starts the IND-ID-CPA game with A and simulates G a m e k 1 or G a m e k depending on the nature of T.
Setup: B chooses α , δ $ Z N , ( η i $ Z N ) i [ L ] , then set p p ( g 1 , γ = g 1 α , k 1 = g 1 δ , g 3 , { h i = g 1 η i } i [ L ] ) and m s k k 1 α .
Key derivation queries: There are three cases for the i-th key query with pattern P.
(i)
case 1: i < k . Choose SF randoms z k 1 , z k 2 , z k 3 $ Z N , and ( z k b , i , z k c , i $ Z N ) i W ( P ) , and ( z k d , i $ Z N ) i W ¯ ( P ) . Then choose random r , t $ Z N , W 1 , W 2 , W 3 $ G p 3 , { W a , i , W d , i $ G p 3 } i W ¯ ( P ) , and { W b , i , W c , i $ G p 3 } i W ( P ) . Then we set the s k P as follows:
a 1 = m s k · i W ¯ ( P ) ( h i P i · W a , i ) r · ( Y 2 X 3 ) z k 1 · W 1 a 2 = g 1 r · ( Y 2 X 3 ) z k 2 · W 2 a 3 = g 1 t · ( Y 2 X 3 ) z k 3 · W 3 b = { b i = h i r · ( Y 2 X 3 ) z k b , i · W b , i } i W ( P ) c = { c i = h i t · ( Y 2 X 3 ) z k c , i · W c , i } i W ( P ) d = { d i = h i t / h i P i r · ( Y 2 X 3 ) z k d , i · W d , i } i W ¯ ( P )
By writing Y 2 as g 2 y , we have that this is a properly distributed SF key with randomness y, z k 1 3 , z k b d .
(ii)
case 2: i > k . B runs key generation algorithm using m s k .
(iii)
case 3: i = k . To answer the k-th key query, B chooses r , t $ Z N , W 1 , W 2 , W 3 $ G p 3 , { W a , i , W d , i $ G p 3 } i W ¯ ( P ) , and { W b , i , W c , i $ G p 3 } i W ( P ) . Then the s k P is constructed as follows:
a 1 = m s k · i W ¯ ( P ) ( T η i · P i · W a , i ) r · W 1 a 2 = T r · W 2 a 3 = T t · W 3 b = { b i = T η i · r · W b , i } i W ( P ) c = { c i = T η i · t · W c , i } i W ( P ) d = { d i = T η i ( t P i r ) · W d , i } i W ¯ ( P )
Notice that, if T G p 1 p 3 , T can be written as g 1 r g 3 w and the k-th secret key is a normal key with randomness r r , r t . Otherwise, if T G p 1 p 2 p 3 , T can be written as g 1 r g 2 y g 3 w and the k-th secret key is SF with randomness r r , r t , y , z k 1 = i W ¯ ( P ) η i P i , z k 2 = r , z k 3 = t , z k b , i = η i r , z k c , i = η i t , z k d , i = η i ( t P i r ) .
Challenge: A sends B challenge message m 0 , m 1 { 0 , 1 } * and a challenge pattern P = ( P 1 , , P l ) where 0 l L . B flips a coin ζ { 0 , 1 } and computes the challenge ciphertext C as follows:
C 1 = X 1 X 2 , C 2 = i W ¯ ( P ) ( X 1 X 2 ) η i · P i C 3 = m · e ( γ , ( X 1 X 2 ) δ ) , C 4 = i W ( P ) ( X 1 X 2 ) η i
Notice that T can be written as g 1 s , and therefore this is a proper SF ciphertext with randomness s , x , z c 2 = i W ¯ ( P ) x η i P i , z c 4 = i W ¯ ( P ) x η i .
Since the k-th secret key pattern is not a prefix of the challenge pattern modulo p 2 , we have that z k set and z c set are independent and randomly distributed. If B checks that the k-th key is SF by using the above procedure (to create an SF ciphertext for k-th secret key pattern), then z k 2 · z c 2 + z k 3 · z c 4 = z k 1 , which is nominally SF, and thus decryption always works (independently of T).
(5)
Game q Game rand .
We construct algorithm B that breaks Assumption LW.3 with the help of SWIBE CPA distinguisher A . B first receives ( G , g 1 , g 2 , g 3 , g 1 α X 2 , g 1 δ , g 1 s Y 2 ) and T from LW.3. Then B starts the IND-ID-CPA game with A and simulates G a m e q or G a m e r a n d depending on the nature of T.
Setup: B chooses ( η i $ Z N ) i [ L ] , then set p p ( g 1 , γ = g 1 α X 2 , k 1 = g 1 δ , g 3 , { h i = g 1 η i } i [ L ] ) .
Key derivation queries: For pattern P = ( P 1 , , P l ) where 0 l L , B chooses z k 1 , z k 2 , z k 3 $ Z N , and ( z k b , i , z k c , i $ Z N ) i W ( P ) , and ( z k d , i $ Z N ) i W ¯ ( P ) . Next it chooses r , t $ Z N , W 1 , W 2 , W 3 $ G p 3 , { W a , i , W d , i $ G p 3 } i W ¯ ( P ) , and { W b , i , W c , i $ G p 3 } i W ( P ) . Then it creates a SF secret key by setting:
a 1 = ( g 1 α X 2 ) · i W ¯ ( P ) ( h i P i · W a , i ) r · g 2 z k 1 · W 1 a 2 = g 1 r · g 2 z k 2 · W 2 a 3 = g 1 t · g 2 z k 3 · W 3 b = { b i = h i r · g 2 z k b , i · W b , i } i W ( P ) c = { c i = h i t · g 2 z k c , i · W c , i } i W ( P ) d = { d i = h i t / h i P i r · g 2 z k d , i · W d , i } i W ¯ ( P )
Challenge: A sends B challenge message m 0 , m 1 { 0 , 1 } * and a challenge pattern P = ( P 1 , , P l ) where 0 l L . B flips a coin ζ { 0 , 1 } and computes the challenge ciphertext C as follows:
C 1 = g 1 s Y 2 , C 2 = i W ¯ ( P ) ( g 1 s Y 2 ) η i · P i C 3 = m · T , C 4 = i W ( P ) ( g 1 s Y 2 ) η i
This sets z c 2 = i W ¯ ( P ) η i P i , z c 4 = i W ( P ) η i . We note that g 1 η i are elements of G p 1 , so when η i are randomly chosen from Z N , their value mod p 1 and mod p 2 are random and independent. We observe that, if T = e ( g 1 , g 1 δ ) α s , then the challenge ciphertext is a properly distributed SF with message m ζ . Otherwise, if T $ G T , then the ciphertext is an SF with a random message.
Since the adversary has no advantage in G a m e r a n d (where ζ is information-theoretically hidden), and by hybrid game G a m e r a n d is indistinguishable from G a m e R e a l , we conclude that the adversary in G a m e R e a l has a negligible advantage.  □

7. Experiment

In this section, we show the experimental results by implementing SWIBE on an Intel Edison IoT machine with 32-bit 500 Mhz Atom processor and ublinux 3.10.17. We also implemented WIBE [11], WKD-IBE [13], WW-IBE [14], and constant CP-ABE (CCP-ABE) [3] on the same environment, and provide a comparison on encryption and decryption times.
Figure 1 shows the encryption and decryption times of SWIBE, WIBE, and CCP-ABE when increasing the maximal pattern depth (L) from 5 to 20. Note that SWIBE has more advanced functionality since SWIBE can support wildcards in both encryption and key generation, while WIBE and CCP-ABE allow for wildcards only in encryption. In CCP-ABE, each ID bit is considered as an attribute, and we assumed each pattern as 32-bit. The decryption time in CCP-ABE is slower, since the decryption process of the CCP-ABE involves multiple pairing operations proportional to the number of attributes. In the WIBE, when the user receives the ciphertext, the user needs to delegate the ciphertext to match his own specific ID pattern, which costs point multiplications. However, in SWIBE, the user can simply adjust the secret key of his pattern to the ciphertext pattern, which costs only negligible point additions. Therefore, the decryption time in SWIBE remains as constant; SWIBE improves the decryption time by up to 3 times compared with the WIBE, and 650 times compared with the CCP-ABE.
Figure 2 shows the encryption times and decryption times of SWIBE and WKD-IBE, when varying the maximal pattern depth (L) from 5 to 20. Note that the WKD-IBE allows the wildcard only in the key derivation, while SWIBE can include wildcards in both encryption and key derivation. Despite the better functionality, the encryption time and decryption time of SWIBE is almost identical to the results in WKD-IBE.
Figure 3 shows the encryption times and decryption times of SWIBE and WW-IBE, when varying the maximal pattern depth (L) from 5 to 20. Both encryption time and decryption time in SWIBE is faster than that of the WW-IBE, since WW-IBE involves heavy composite order pairing groups for encryption and requires 2 L pairing operations in decryption; SWIBE improves the decryption time by 10 times compared with the WW-IBE.

8. Conclusions

In this paper, we propose a scalable wildcarded identity-based encryption (SWIBE), which is a new wildcarded identity-based encryption (WIBE) which first achieves the constant-size ciphertext. SWIBE supports the wildcard to be included both in encryption and key derivation, where one can encrypt messages to a group of users by using wildcards in the pattern, and one can delegate the secret key from the wildcard pattern to another identity string. We propose a standard IND-sID-CPA-secure SWIBE, and extend it to the IND-sID-CCA-secure SWIBE, both with formal security proofs. Then we also propose the fully-secure version of SWIBE, which overcomes the selective security. Our experimental results show that SWIBE improves the decryption time by 3, 10, and 650 times compared with the WIBE, WW-IBE, and CCP-ABE.

Author Contributions

Conceptualization, J.K. and H.O.; methodology, J.K. and H.O.; software, J.L. and S.L.; validation, J.L. and S.L.; writing—original draft preparation, J.L. and S.L.; writing—review and editing, J.K., J.L., S.L., and H.O. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by Institute of Information & communications Technology Planning & Evaluation (IITP) grant funded by the Ministry of Science and ICT Korea (2017-0-00661, 2016-6-00599).

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Bethencourt, J.; Sahai, A.; Waters, B. Ciphertext-Policy Attribute-Based Encryption. In Proceedings of the IEEE Computer Society, Berkeley, CA, USA, 20–23 May 2007; pp. 321–334. [Google Scholar]
  2. Emura, K.; Miyaji, A.; Nomura, A.; Omote, K.; Soshi, M. A Ciphertext-Policy Attribute-Based Encryption Scheme with Constant Ciphertext Length. In Proceedings of the Information Security Practice and Experience, 5th International Conference (ISPEC 2009), Xi’an, China, 13–15 April 2009; pp. 13–23. [Google Scholar]
  3. Zhou, Z.; Huang, D. On efficient ciphertext-policy attribute based encryption and broadcast encryption: Extended abstract. In Proceedings of the 17th ACM Conference on Computer and Communications Security (CCS 2010), Chicago, IL, USA, 4–8 October 2010; pp. 753–755. [Google Scholar]
  4. Shamir, A. Identity-based cryptosystems and signature schemes. In Proceedings of the Workshop on the Theory and Application of Cryptographic Techniques, Paris, France, 9–11 April 1984; pp. 47–53. [Google Scholar]
  5. Boneh, D.; Franklin, M. Identity-based encryption from the Weil pairing. In Proceedings of the Annual International Cryptology Conference, Santa Barbara, CA, USA, 19–23 August 2001; pp. 213–229. [Google Scholar]
  6. Waters, B. Efficient identity-based encryption without random oracles. In Proceedings of the Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, 22–26 May 2005; pp. 114–127. [Google Scholar]
  7. Boneh, D.; Boyen, X.; Goh, E.J. Hierarchical identity based encryption with constant size ciphertext. In Proceedings of the Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, 22–26 May 2005; pp. 440–456. [Google Scholar]
  8. Boneh, D.; Gentry, C.; Waters, B. Collusion resistant broadcast encryption with short ciphertexts and private keys. In Proceedings of the Annual International Cryptology Conference, Santa Barbara, CA, USA, 14–18 August 2005; pp. 258–275. [Google Scholar]
  9. Liu, W.; Liu, J.; Wu, Q.; Qin, B. Hierarchical Identity-Based Broadcast Encryption. In Proceedings of the Australasian Conference on Information Security and Privacy, Wollongong, Australia, 7–9 July 2014; Volume 14, pp. 242–257. [Google Scholar]
  10. Boneh, D.; Hamburg, M. Generalized identity based and broadcast encryption schemes. In Proceedings of the International Conference on the Theory and Application of Cryptology and Information Security, Melbourne, Australia, 7–11 December 2008; pp. 455–470. [Google Scholar]
  11. Abdalla, M.; Catalano, D.; Dent, A.W.; Malone-Lee, J.; Neven, G.; Smart, N.P. Identity-based encryption gone wild. In Proceedings of the International Colloquium on Automata, Languages, and Programming, Venice, Italy, 10–14 July 2006; pp. 300–311. [Google Scholar]
  12. Birkett, J.; Dent, A.W.; Neven, G.; Schuldt, J.C.N. Efficient chosen-ciphertext secure identity-based encryption with wildcards. In Proceedings of the Australasian Conference on Information Security and Privacy, Townsville, Australia, 2–4 July 2007; pp. 274–292. [Google Scholar]
  13. Abdalla, M.; Kiltz, E.; Neven, G. Generalized key delegation for hierarchical identity-based encryption. In Proceedings of the European Symposium on Research in Computer Security, Dresden, Germany, 24–26 September 2007; pp. 139–154. [Google Scholar]
  14. Abdalla, M.; Caro, A.D.; Phan, D.H. Generalized Key Delegation for Wildcarded Identity-Based and Inner-Product Encryption. IEEE Trans. Inf. Forensics Secur. 2012, 7, 1695–1706. [Google Scholar] [CrossRef]
  15. Kim, J.; Lee, S.; Lee, J.; Oh, H. Scalable wildcarded identity-based encryption. In Proceedings of the European Symposium on Research in Computer Security, Barcelona, Spain, 3–7 September 2018; pp. 269–487. [Google Scholar]
  16. Boneh, D.; Franklin, M. Identity-based encryption from the Weil pairing. SIAM J. Comput. 2003, 32, 586–615. [Google Scholar] [CrossRef] [Green Version]
  17. Joux, A. Multicollisions in iterated hash functions. Application to cascaded constructions. In Proceedings of the Annual International Cryptology Conference, Santa Barbara, CA, USA, 15–19 August 2004; pp. 306–316. [Google Scholar]
  18. Boneh, D.; Boyen, X. Efficient Selective Identity-Based Encryption without Random Oracles. J. Cryptol. 2011, 24, 659–693. [Google Scholar] [CrossRef] [Green Version]
  19. Canetti, R.; Halevi, S.; Katz, J. Chosen-ciphertext security from identity-based encryption. In Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2–6 May 2004; pp. 207–222. [Google Scholar]
  20. Lewko, A.; Waters, B. New techniques for dual system encryption and fully secure HIBE with short ciphertexts. In Proceedings of the Theory of Cryptography Conference, Zurich, Switzerland, 9–11 February 2010; pp. 455–479. [Google Scholar]
Figure 1. Encryption and decryption time in SWIBE, WIBE, and CCP-ABE.
Figure 1. Encryption and decryption time in SWIBE, WIBE, and CCP-ABE.
Electronics 09 01453 g001
Figure 2. Encryption and decryption time in SWIBE and WKD-IBE.
Figure 2. Encryption and decryption time in SWIBE and WKD-IBE.
Electronics 09 01453 g002
Figure 3. Encryption and decryption time in SWIBE and WW-IBE.
Figure 3. Encryption and decryption time in SWIBE and WW-IBE.
Electronics 09 01453 g003
Table 1. Comparison of parameters between related works. ref. e = scalar multiplication, p = pairing, and L = hierarchy depth, q = ID bits, size indicates group elements, Enc = Encryption, and Der = Key derivation.
Table 1. Comparison of parameters between related works. ref. e = scalar multiplication, p = pairing, and L = hierarchy depth, q = ID bits, size indicates group elements, Enc = Encryption, and Der = Key derivation.
HIBE [7]WIBE [11]WKD-IBE [13]WW-IBE [14]CP-ABE [3]SWIBE
pp size L + 4 L + 4 L + 2 2 L + 2 2 L 2 q + 1 L + 4
SK size L + 2 L + 2 L + 2 L + 1 3 L 2 q + 1 2 L + 3
CT size3 L + 3 3 3 L + 2 24
Enc time ( L + 3 ) e + p ( L + 3 ) e + p ( L + 1 ) e + p ( 3 L + 2 ) e 2 L 2 q e + p ( L + 3 ) e + p
Dec time 2 p L e + 2 p L e + 2 p L e + ( 2 L + 1 ) p 2 L 2 q e + 4 L 2 q p L e + 3 p
WildcardNoneEncDerEnc&DerEncEnc&Der

Share and Cite

MDPI and ACS Style

Lee, J.; Lee, S.; Kim, J.; Oh, H. Scalable Wildcarded Identity-Based Encryption with Full Security. Electronics 2020, 9, 1453. https://doi.org/10.3390/electronics9091453

AMA Style

Lee J, Lee S, Kim J, Oh H. Scalable Wildcarded Identity-Based Encryption with Full Security. Electronics. 2020; 9(9):1453. https://doi.org/10.3390/electronics9091453

Chicago/Turabian Style

Lee, Jiwon, Seunghwa Lee, Jihye Kim, and Hyunok Oh. 2020. "Scalable Wildcarded Identity-Based Encryption with Full Security" Electronics 9, no. 9: 1453. https://doi.org/10.3390/electronics9091453

APA Style

Lee, J., Lee, S., Kim, J., & Oh, H. (2020). Scalable Wildcarded Identity-Based Encryption with Full Security. Electronics, 9(9), 1453. https://doi.org/10.3390/electronics9091453

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop