Efficient and Secure Certificateless Directed Proxy Signature Scheme without Pairings
R. R. V. Krishna Rao, N.B. Gayathri and P. Vasudeva Reddy
*Department of Engineering Mathematics,
Andhra University, Visakhapatnam, Andhra Pradesh, Pin code: 530003, INDIA.
email: [email protected], [email protected],
*
[email protected]
(Received on: April 8, 2019) ABSTRACT
The proxy signature scheme allows a proxy signer to sign the message on behalf of an original signer. However public verifiability of proxy signature is not desirable in some applications where the signed message is sensitive to the signature receiver. To meet this requirement, the concept of directed proxy signature was introduced. A directed proxy signature scheme is a kind of signature scheme, in which the verification ability is controlled by the proxy signer. Many directed proxy signature schemes are proposed in literature with various cryptographic settings.
However, it has been found that all these schemes are designed in Identity-based setting using bilinear pairings over elliptic curves. But the computation of a bilinear pairing is very expensive. Hence, in this paper, we propose the first certificateless directed proxy signature scheme without pairings. We also show our scheme is secure against various types of attacks. Also performance of this scheme is very efficient.
Keywords: Certificateless Signature, Directed Signatures, Proxy Signature, Random Oracle Security Model, Elliptic Curve Discrete Logarithm Problem.
1. INTRODUCTION
Digital signature is one of the fundamental and useful cryptographic primitive, which
provides authentication and non-repudiation for digital communications. To implement the
digital signature in the real world applications, it needs to consider different features and
properties to make them adequate and suitable for different usages. There are many digital
signature schemes in literature with different cryptographic settings such as traditional public
key infrastructure (PKI)
5and Identity based cryptosystem
28. The security of the traditional PKI is based on the certificate, signed by a certification authority (CA), containing the relationship between the key pairs, i.e., a public key and a private key, and the user’s identity and legitimacy. But certificate management leads to extra storage, large computation and communication costs. Contrast to traditional PKI, Identity Based cryptosystem (IBC)
28does not need any certificate to ensure the authenticity of public/private key pair. In this system, public key of a user is derived from the user’s identity and the secret key is generated by a trusted third party called Private Key Generator (PKG). Though IBC successively eliminates the necessity of certificates, it suffers from inherent key escrow problem. Later, Al-Riyami
1introduced a novel system called, certificateless public key cryptography (CL-PKC). This approach neither suffers from the key escrow problem nor requires any certificates, and so it can be viewed as a model in between traditional PKI and ID-PKC.
To deal with different scenarios, digital signature schemes have evolved into many variants such as Blind signature, Multi signature, Group signature, Ring signature etc. One of such variants is Proxy signature. A proxy signature scheme is an important cryptographic technique and allows an entity to delegate the signing capability to one or more entities. In 1996, Mambo et al.
20introduced the proxy signature scheme, in which the original signer (Alice) delegated his signing privilege to a proxy signer such that the proxy signer (Bob) on behalf of the original signer can sign some specific messages. An entity (Cindy) who receives a message with a proxy signature can easily check the correctness of the signature and be convinced about the agreement of the original signer. Since then many new constructions have been proposed in literature on various cryptographic settings such as PKI based
11,16,23, ID- based
18,8and Certificateless based
7,27. According to the delegation ways, proxy signature can be classified into three types: full delegation
16, partial delegation
23, and delegation by warrant
11.
However, these proxy signature schemes allow public verification, which might not be suitable for applications in which the verification of the proxy signature is sensitive to the receiver, for example signatures on medical records, tax information. To meet this requirement, Lim and Lee
17proposed a new type of signature called Directed signature. In a directed signature scheme, a signer sends a signature on a message to a designated verifier;
only the designated verifier can directly verify the signature, while the others know nothing about validity of the message without the help of the signer or the designated verifier. In case of trouble or if necessary, both signer and the designated verifier can prove the validity of the signature to any third party. Directed signature schemes are very useful in practical applications where signed message is sensitive to the signature receiver. After the introduction of directed signatures by Lim and Lee in
17, many directed signature schemes are proposed in PKI based setting
15,14,19,10,34,26. The first efficient ID-based directed signature scheme was presented by Sun et al.
29in the random oracle model. Later few directed signature schemes were proposed in both ID-based setting
35,31,13,12and Certificateless based setting
33,6.
The combination of directed signature technique with proxy signature integrates the
advantages of both and is more applicable for signing on sensitive messages. Consider the
following situation: Doctor Alice has issued a hospital record to the patient Bob, in the form
of doctor’s digital signature. Alice can delegate his signing right to the proxy signer (Doctor Charlie). Bob then can exclusively verify these signatures with others knowing nothing about his state of illness. Otherwise, his state of illness is exposed. After a period time, Bob also needs to prove validity of his hospital record to other doctor for cure. At the same time, Doctor Charlie also shares the ability and responsibility to acknowledge this hospital records when Bob may not be convenient to do so. Motivated by the above scenario, some directed proxy signature schemes have been proposed in the literature
32,24,21,12. In these schemes, the proxy signer generates a proxy signature on behalf of the original signer to a designated verifier. The designated verifier can directly verify the proxy signature and he can convince any other party about the validity of the signature. All these schemes are designed on Identity based setting.
There is no directed proxy signature scheme in Certificateless based setting.
Moreover, most of the above directed proxy signature schemes are designed using bilinear pairings over elliptic curves. The time consuming cryptographic operation is pairing operation and is more expensive than the evaluation of a scalar multiplication in elliptic curve.
For example, Elliptic Curve Cryptography (ECC) with 224 bit keys provides the same level of security as RSA with 2048 bit keys. Thus ECC has become popular since it provides higher security with smaller keys in size. This smaller key size improves the computational efficiency, storage capacity, bandwidth efficiency. Hence to improve the computational efficiency in directed proxy signature schemes, it is required to design the signature scheme without using bilinear pairing operations. This motivated us to design a pairing free directed proxy signature scheme in Certificateless based setting.
1.1. Our Contribution
Our main contributions in this paper are as follows.
i) We proposed an efficient Certificateless Directed Proxy Signature (CLDPS) scheme.
ii) We designed our CLDPS scheme without using bilinear pairings over elliptic curves. To the best of our knowledge this is the first scheme in Certificateless setting addressing about directed proxy signature in pairing free environment.
iii) The proposed CLDPS scheme is secure against forgeability and visibility. We proved it in random oracle model (ROM) under the hardness of the Elliptic Curve Discrete Logarithm Problem (ECDLP).
iv) We compare our CLDPS scheme with the existing directed signature schemes in terms of computational complexity point of view.
v) Efficiency analysis shows that the proposed CLDPS scheme is much efficient than all other schemes in the literature.
1.2. Organization
The remaining part of this paper is organized as follows. We presented some preliminaries in Section 2. Syntax and security model for our CLDPS scheme are presented in Section 3.
The proposed CLDPS scheme with its security analysis is presented in Section 4. Efficiency
analysis of our scheme is presented in Section 5. Finally Section 6 concludes the paper.
2. PRELIMINARIES
This section we briefly present the fundamental concepts on elliptic curve and the complexity assumption, on which the proposed scheme is designed and achieves the desired security.
2.1 Elliptic Curve Group
An elliptic curve E over a prime finite field F
pis defined by an equation
2 3
, ,
py x ax b a b F and
4a3 27b2 0,then we define G {( , ) : , x y x y F E x y
p, ( , ) 0} { } O as the additive cyclic group and the point ' ' O is the point at infinity
2.
Elliptic Curve Discrete Logarithm Problem (ECDLP)
Given a random instance P the generator of G and Q xP where x Z
*q, compute x from P and . Q
Computation of x from P and Q is assumed to be computationally hard by any polynomial-time bounded algorithm.
The following Table 1 presents the Symbols and their descriptions which have been used throughout this paper.
Table 1: Symbols and their descriptions
Symbol Description
,
n s Security parameter and system secret key of Key Generation Centre.
,
p q Prime numbers
F
pFinite field over p.
( p)
E F
Elliptic curve defined on finite field.
*
z
qThe group with elements 1,2…q-1 under addition modulo q.
G Elliptic curve cyclic group of prime order q with generator P.
KGC Key Generation Centre
ECDLP Elliptic Curve Discrete Logarithm Problem.
CLDPS Certificateless Directed Proxy Signature
, ,
os ps dv
ID ID ID Original Signer’s identity, Proxy Signer’s identity and designated verifier’s identity respectively.
1
,
2,
2,
3,
3,
4,
4H H H H H H H Cryptographic one way hash functions.
, ,
i i i
D SK PK Partial secret key, Secret key and Public key of a user.
S Proxy Signing Key
1, 2
Type-I and Type-II adversaries respectively.
: Challenger An algorithm which solves ECDLP by using adversaries.
A distinguisher to distinguish a valid signature on an adaptively chosen message by the attacker from one randomly drawn from the signature space.
1
,
2 1is a Type-I distinguisher and
2is a Type-II distinguisher.
ps
Proxy Signature on a message.
3. SYNTAX AND SECURITY MODEL
This section presents the syntax and security model for our pairing free CLDPS scheme.
3.1 Syntax of CLDPS Scheme
A formal model of the proposed CLDPS scheme consists of six components whose functionalities are described as follows.
Setup: KGC runs this algorithm by taking n Z as input and generates master secret key and master public key and publishes the list of public parameters as params.
Partial Secret Key Gen: KGC runs this algorithm by taking params, master secret key, ID as input and generates D i . KGC sends a partial secret key D i to the user through a secure channel.
User Key Generation: Taking master public key, ID, D i as input, this algorithm generates user's SK PK i , i .
Delegation Generation: Taking params, master public key, an original signers identity ID os with its private key D os , a warrant m w as input, this algorithm is run by the original signer and generates the delegation on the warrant m w .
Delegation Verification: Given a delegation on the warrant m w , the proxy signer verifies and accepts the delegation of original signer if the delegation is valid; rejects otherwise.
Proxy Key Generation: Taking the proxy signer’s private key and the delegation of the original signer, the proxy signer run this algorithm to generate the proxy signing key S . Directed Proxy Signature Generation: This algorithm is run by the proxy signer. The
proxy signer with identity ID ps generates a signature ps to a designated verifier with identity ID dv , on a given message m 0,1
*by using params, delegation, partial secret key of the signer D ps , public and secret key pair of the signer ( PK ps , SK ps ), and public key of the verifier PK v .
Direct Proxy Signature Verification (D.Verify): The Designated Verifier runs this algorithm. To verify a signature
pson a message m, this algorithm takes params,
ps,
, ,
os ps
PK PK PK dv and ID os , ID ps , ID dv as input, and outputs accept if ps is valid;
or reject, otherwise.
Public Proxy Signature Verification (P. Verify): To verify a signature
pson a message
m, this algorithm takes params, ps , PK os , PK ps , PK dv , ID os , ID ps , ID dv and an Aid
provided by the proxy signer ID
psor the designated verifier ID
dvas input, and outputs
accept if
psis valid; or reject, otherwise.
3.2 Security Model of CLDPS Scheme
As described in
7,9, based on the potential adversary behaviour, we consider the following types of adversaries.
1) Type I Adversary: Key Replacement Attack: The Adversary 1 does not have access to the master secret key but is able to replace the public key of any user with a value of his choice.
2) Type II Adversary: Malicious KGC Attack: The Adversary 2 cannot replace the public key of any user, but is able to access to the master secret key.
The security of a CLDPS scheme can be defined by considering the following game played between a challenger and an adversary 1 , 2 .
3.2.1 Game I:
- Initialization Phase: The challenger runs Setup algorithm, and generates the systems parameters params, master secret key and master public key. gives them to the . If
= 1 then keeps s secret. Otherwise it sends s to = 2 . - Queries Phase: In this phase, makes queries on the following oracles.
Reveal Partial Secret Key Oracle: On receiving a partial secret key query on ID from 1 , computes D i by taking ID as input and gives this to 1 .
Create User Oracle: On receiving a query from , the challenger computes PK i by taking ID as input and gives this to .
Reveal Secret Key Oracle: After receiving a query from , the challenger returns SK i by taking ID as input.
Replace Public Key Oracle: Taking identity ID, 1 may replace current PK i with the required PK i .
Delegation Generation Queries: On receiving a query from , the challenger computes delegation by taking original signers identity ID i and a warrant m w .
Proxy Key Generation Queries: When queries a Proxy Key of the proxy signer for a delegation with warrant m w , computes the proxy signing key S ps and responds to with S ps .
Proxy Sign Oracle: When makes a signing oracle on ( ID os , ID ps , ID dv , m m w , ),
returns a valid signature ps signed by current public/private key of the user ID ps , for the
input ID os , ID ps , ID dv with message m 0,1 . *
D.Verify Oracle: On receiving a query from adversary with ( ID
os, ID
ps, ID
dv, m m
w, ), verifies ps by extracting ID dv ' s private key D dv , SK dv and returns 1 if is valid.
Otherwise it returns 0.
P.Verify Oracle: On receiving a query from adversary with ( ID
os, ID
ps, ID
dv, m m
w, ), verifies the signature ps and returns to if ps is invalid. Otherwise, produces an Aid in the name of the signer ID ps or the designated verifier ID dv , then forwards Aid to . - Forgery Phase: Finally outputs ( , m m * w , * ps ) or ( m * w , ID os * , PK * os , ID * ps , * , * ) where
*ps( W
ps*, V
ps*, k
*ps, ID
os*, PK
os*, ID
*ps, PK
*ps,
*) as its forgery.
We say wins the game, if one of the following conditions is satisfied.
CASE 1: outputs the tuple ( m * w , ID os * , PK os * , ID * ps , * , * ) satisfying:
(i) The tuple ( m * w , ID os * , PK os * , ID * ps , * , * ) is a valid tuple.
(ii) If = 1 , ID os * has never been made Partial Secret Key Oracle. If = 2 ,
*
ID os has never been made Secret Key Oracle.
(iii) ( m * w , ID os * , PK os * , * ) has never been made Delegation Generation queries.
CASE2: outputs ( , m m * w , * ps ) where
*ps( W
ps*, V
ps*, k
*ps, ID
os*, PK
os*, ID
*ps, PK
*ps,
*) satisfying:
(i) The tuple ( , m m
*w,
*ps) where
*ps( W
ps*, V
ps*, k
*ps, ID
os*, PK
os*, ID
*ps, PK
*ps,
*) is a valid tuple.
(ii) If = 1 , ID
os*has never been made Partial Secret Key Oracle. If =
2,
*
ID os has never been made Secret Key Oracle.
(iii) ( m
*w, ID
os*, PK
os*,
*) has never been made Delegation Generation queries.
(iv) ( m
*w, ID
os*, PK
os*, ID
*ps, PK
*ps) has never been made Proxy Key Generation queries.
(v) ( , m m
*w, ID
os*, PK
os*, ID
*ps, PK
*ps) has never been made Proxy Sign queries.
CASE 3: outputs ( , m m
*w,
*ps) where
*ps( W
ps*, V
ps*, k
*ps, ID
os*, PK
os*, ID
*ps, PK
*ps,
*) satisfying:
(i) The tuple ( , m m
*w,
*ps) where
*ps( W
ps*, V
ps*, k
*ps, ID
os*, PK
os*, ID
*ps, PK
*ps,
*) is a
valid tuple.
(ii) If = 1 , ID * ps has never been made Partial Secret Key Oracle. If = 2 ,
*
ID ps has never been made Secret Key Oracle.
(iii) ( m * w , ID os * , PK os * , ID * ps , PK * ps ) has never been made Proxy Key Generation queries.
(v) ( , m m * w , ID os * , PK os * , ID * ps , PK * ps ) has never been made Proxy Sign queries.
Definition 1: (Unforgeability): A CLDPS scheme is EUF-CMA, if no probabilistic polynomial-time adversary (Type-I and Type-II) has non-negligible probability to win the above game.
Definition 2(Invisibility): Invisibility of CLDPS scheme can be defined by considering the following Game-II against Type-I and Type-II adversaries.
3.2.2 Game II: This game is executed between the challenger and a distinguisher
1 2
( or ) as follows.
Initialization Phase: Same as in Game I.
Phase 1:
In this phase, the challenger responds to the queries asked by distinguisher
1 2
( or ) in the same way as in Game I.
Challenge:
After Phase I is over, ( 1 or 2 ) submits ID * ps , ID * dv , and a message m * to the challenger with the condition that
(i) ID dv * has never been submitted to Partial Secret Key Oracle for 1 . (ii) ID dv * has not been submitted to Secret Key Oracle for 2 .
(iii) ID dv * has not been submitted to Delegation Generation queries and Proxy Sign queries.
The Challenger then generates a random bit b {0,1} and does the following.
(i) If b 1 then produces a signature * ps .
(ii) If b 0 then selects a random * ps from the signature space.
Finally, sends * ps to ( 1 or 2 ).
Phase 2: As in Phase 1, ( 1 or 2 ) again adaptively performs several
queries to the challenger , subjected to the following conditions:
1 cannot run Delegation Generation queries and Partial Secret Key Oracle on ID * dv ; and D.Verifiy or P.Verifiy Oracle on ( ID * ps , ID * dv , m * ).
2 cannot run Secret Key Oracle on ID dv * ; and D.Verifiy or P.Verifiy Oracle on
* * *
( ID ps , ID dv , m ).
Guess: Finally ( 1 or 2 ) outputs a bit b {0,1}.
1 2
( or ) succeeds if b b .
4. PROPOSED CLDPS SCHEME WITHOUT PAIRINGS
In this section, we present our efficient CLDPS scheme and we prove its security.
4.1 CLDPS Scheme
As discussed in section 3.1, our CLDPS scheme consists of the following nine algorithms. The functionalities of these algorithms are presented below.
Setup: KGC run this algorithm with the security parameter n Z as input and performs the following.
1. KGC chooses a group G of elliptic curve points with prime order q , a generator P of ,
G and hash functions H H 1 , 2 , H 2 , H H 3 , 3 , H 4 , H 4 : 0,1 * Z q * .
2. KGC chooses a random s Z * q as the master secret key and sets the master public key of the system as P Pub sP .
3. KGC publish the system parameters as
1 2 2 3 3 4 4
, , ,
Pub, , , , , , ,
params q G P P H H H H H H H and keeps s secretly.
Partial Secret Key Gen: By taking ID u and system parameters params as input, KGC chooses a random number r u Z * q , computes R u r P h u , 1 u H ID R P 1 ( u , u , Pub ) and
1 mod .
u u u
d r sh q Finally KGC sends the partial secret key D u ( d R u , u ) secretly to the user. The user verifies the equation d P u R u h P 1 u Pub to check the validity of D u .
User Key Gen: A user with identity ID u , randomly chooses a secret value x u Z q * , and computes X u x P u . Set PK u ( X u , R u ) as public key and SK u ( d u , x u ) as its secret key.
Delegation Generation: The original signer creates a warrant m w which keeps the record
of proxy information such as the identities of the original signer, proxy signer, proxy validity
period and so on. Original signer choose a random number Z q * and computes P ,
2os 2
(
w, ,
ps),
h H m ID h
2osH
2( m
w, , ID
ps) and h 2 os os d h 2 os os x mod . q Original signer outputs ( ID os , PK os , ID ps , m w , , ) as delegation on the warrant m w and send it to the proxy signer for verification and proxy key generation.
Delegation Verification: Given a delegation ( ID os , PK os , ID ps , m w , , ), proxy signer does the following.
Computes h 2 os H m 2 ( w , , ID ps ), h 2 os H 2 ( m w , , ID ps ) and checks whether the equation P h 2 os ( R os h 1 os Pub P ) h 2 os X os holds or not. If it holds, proxy signer accepts the delegation , corresponding to ID os , PK os , ID ps , on m w . Otherwise rejects it.
Proxy Key Generation: After validating the delegation , , proxy signer generates the proxy signing key by using original signer’s delegation key and proxy signer’s private key
( , )
ps ps ps
SK d x as follows.
1. Compute h 3 ps H m 3 ( w , , ID os , PK ps ), h 3 ps H 3 ( m w , , ID os , PK ps ) 2. Compute S h 3 ps ps d h 3 ps ps x mod q where d ps r ps h 1 ps s mod . q Hence the proxy signing key (for the original signer) is S .
Proxy Signature Generation: To generate a valid directed proxy signature s on a given message m 0,1 , * proxy signer takes designated verifiers identity ID dv with public key
dv ,
PK and proxy signing key S as input along with the proxy signers identity ID ps , and public key PK ps and does as follows.
1. The proxy signer chooses t t
1 2, Z
q*and computes U
pst P V
1,
pst P W
2,
psU
pst X
2 dv. 2. Compute h
4psH m m ID
4( ,
w,
ps, ID
dv, U
ps, R
ps) and h
4psH
4( , m m
w, ID
ps, ID
dv, U
ps, R
ps, h
4ps).
3. The signer computes k ps h 4 ps S h 4 ps t 2 mod . q
Hence the directed proxy signature is ps ( W ps , V ps , k ps , ID os , PK os , ). The proxy signer sends the proxy signature ( m m w , , ps ) to the designated verifier for verification.
D. Proxy Signature Verification: To accept or reject the directed proxy signature ( m w , , m ps ), designated verifier takes params, ID dv , PK dv ( X dv , R dv ), ID ps ,
( , )
ps ps ps
PK X R as input and verifies the signature as follows.
Compute Y dv W ps x V dv ps U ps .
Compute h 4 ps H m m 4 ( , w , ID ps , ID dv , Y dv , R ps ) and
4 ps 4 ( , w , ps , dv , dv , ps , 4 ps ).
h H m m ID ID Y R h
Designated verifier verifies the following equation.
4 2
(
1)
3(
1)
2 4(
3)
4.
ps ps os os os Pub ps ps ps Pub os os ps ps ps ps ps
k P h h R h P h R h P h X h h X h V
If the equation holds, the designated verifier accepts the signature ( m w , , m ps ), and outputs 1; rejects and outputs 0 otherwise.
P. Proxy Signature Verification: Any fourth party other than designated verifier can check the validity of proxy signature with the help of the aid provided by designated verifier or proxy signer. Public verifier takes params, ( m w , , m ps ), ID dv , PK dv ( X dv , R dv ),
ps ,
ID PK ps ( X ps , R ps ) as input and does the following.
Either the proxy signer (with identity ID ps ) or the designated verifier (with identity ID dv ) computes Aid U ps Y dv , and then sends to the fourth party (FP). FP computes
4 ps 4 ( , w , ps , dv , dv , ps )
h H m m ID ID Y R and h 4 ps H 4 ( , m m w , ID ps , ID dv , Y dv , R ps , h 4 ps ) and then checks whether the equation
4 2
(
1)
3(
1)
2 4(
3)
4ps ps os os os Pub ps ps ps Pub os os ps ps ps ps ps
k P h h R h P h R h P h X h h X h V
holds.
If it holds, return 1; else 0.
Correctness of the proposed scheme:
The correctness of the scheme can be verified as follows.
4 4 2
4 3 3 4 2
4 2 2 3 3 4 2
4 2 1 2 3 1 3 4
mod .
( ) mod
( )+ mod
( ) ( )
ps ps ps
ps ps ps ps ps ps
ps os os os os ps ps ps ps ps
ps os os os Pub os os ps ps ps Pub ps ps ps ps
k P h S h t P q
h h d h x P h t P q
h h d h x h d h x P h t P q
h h R h P h X h R h P h X h V
h
4 3 4 4 2 1 3 1 24 2 1 3 1 2 4 3 4
( ) ( ) ( )
( ) ( ) ( ) .
ps ps ps ps ps ps os os os Pub ps ps ps Pub os os
ps ps os os os Pub ps ps ps Pub os os ps ps ps ps ps
h X h V h h R h P h R h P h X
k P h h R h P h R h P h X h h X h V
4.2 Security of our CLDPS Scheme
In the following we will analyse the security of our CLDPS scheme. We prove the
unforgeability and invisibility of our CLDPS scheme by the following two theorems.
4.2.1 Unforgeability against Type I and Type II adversaries
Theorem 1: If there exists a probabilistic polynomial time bounded adversary who can break our proposed CLDPS scheme under the adaptively chosen message and identity attacks in the ROM, then there exists an algorithm that can be used by to solve the ECDLP.
Proof: We prove Theorem 1 with the help of the following lemma 1 and lemma 2.
Lemma 1: Our CLDPS scheme is existentially unforgeable against Type I adversary in random oracle model if ECDLP is intractable.
Proof: Let be an ECDLP challenger and is given a random instance ( , P Q sP ) of the ECDLP problem in G for a randomly chosen s Z q * . Its goal is to compute s . Let 1 is a Type-I adversary who interacts with as modelled in Game I. Now we prove that can solve the ECDLP using 1 . During the simulation process needs to guess the target identity of 1 . Without loss of generality, takes
ID*as target identity of
1on a message m * . - Initialization Phase: Algorithm sets P Pub Q sP and runs Setup algorithm to generate params . then gives params and master public key to 1 and keeps s secretly.
- Queries Phase: In this query phase, answers a series of queries performed by 1 in the following way.
Queries on oracle H 1 H ID R P 1 ( u , u , Pub ) : maintains an initially empty list L 1 and has the tuples of the form ( ID R P u , u , Pub , l 1 u ). When 1 makes an H 1 query on ( ID R P u , u , Pub ),
will check whether the tuple ( ID R P u , u , Pub , l 1 u ) is in the list or not. If this tuple exists in L 1 , then returns l 1 u . Otherwise, picks a random l 1u and adds to L 1 . Finally, returns l 1 u . Queries on oracle H 2 H m 2 ( w , , ID u ) : maintains an initially empty list L 2 and has the tuples of the form ( m w , , ID l u , 2 u ). When 1 makes an H 2 query on ( m w , , ID u ), will check whether the tuple ( m w , , ID l u , 2 u ) is in the list or not. If such a tuple
( m w , , ID l u , 2 u ) exists in L 2 , returns l 2 u . Otherwise, picks a random l 2u Z q * and returns l 2 u . adds ( m w , , ID l u , 2 u ) to L 2 .
Queries on oracle H 2 H 2 ( m w , , ID u ) : maintains an initially empty list L 2 and has the
tuples of the form ( m w , , ID l u , 2 u ). When 1 makes an H 2 query on ( m w , , ID u ),
will check whether the tuple ( m w , , ID l u , 2 u ) is in the list or not. If such a tuple
( m w , , ID l u , 2 u ) exists in L 2 , returns l 2 u . Otherwise, picks a random l 2u Z * q and returns l 2 u . adds ( m w , , ID l u , 2 u ) to L 2 .
Queries on oracle H 3 H m 3 ( w , , ID PK u , u ) : maintains an initially empty list L 3 and has the tuples of the form ( m w , , ID PK l u , u , 3 u ). When 1 makes an H 3 query on ( m w , , ID PK u , u ), will check whether the tuple ( m w , , ID PK l u , u , 3 u ) is in the list or not. If such a tuple ( m w , , ID PK l u , u , 3 u ) exists in L 3 , returns l 3 u . Otherwise, picks a random l 3u Z q * and returns l 3 u . adds ( m w , , ID PK l u , u , 3 u ) to L 3 .
Queries on oracle H 3 H
3( m
w, , ID
u, PK
u) : maintains an initially empty list L 3 and has the tuples of the form ( m w , , ID PK l u , u , 3 u ). When 1 makes an H 3 query on ( m w , , ID PK u , u ), will check whether the tuple ( m w , , ID PK l u , u , 3 u ) is in the list or not. If such a tuple ( m w , , ID PK l u , u , 3 u ) exists in L 3 , returns l 3 u . Otherwise, picks a random l 3u Z q * and returns l 3 u . adds ( m w , , ID PK l u , u , 3 u ) to L 3 .
Queries on oracle H 4 H
4( , m m
w, ID
ps, ID
dv, U
ps, R
ps, l
4u) : maintains an initially empty list L 4 and has the tuples of the form ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ). When 1 makes an H 4 query on ( , m m w , ID ps , ID dv , U ps , R ps ), will check whether the tuple
( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ) is in the list or not. If the tuple exists on L 4 , then gives
4 u .
l Otherwise, picks a random l 4u Z q * and returns l 4 u . Finally, adds ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ) to L 4 .
Queries on oracle H 4 H 4 ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ) : maintains an initially empty list L 4 and has the tuples of the form ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u , l 4 u ). When
1 makes an H 4 query on ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ), will check whether the tuple ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u , l 4 u ) is in the list or not. If the tuple exists on
4 ,
L then gives l 4 u . Otherwise, picks a random l 4u Z q * and returns l 4 u . Finally, adds
4 4
( , m m w , ID ps , ID dv , U ps , R ps , l u , l u ) to L 4 .
Reveal Partial Secret Key Oracle PSK ID ( u ) : To respond to this oracle, maintains an initially empty list L PSK and has the tuples of the form ( ID d R u , u , u ). When 1 makes a query on PSK ID ( u ) then gives d u , if the query has been made earlier. Otherwise, if
* ,
ID u ID chooses a u Z q * and sets d u a u and add ( ID d R u , u , u ) to L PSK and returns
u .
d If ID u ID * , aborts.
Create User Oracle Cuser ID ( u ) : To respond Create User Oracle ID u , maintains an initially empty list L Cuser and has the tuples of the form ( ID x PK u , u , u ). When 1 makes a query on Cuser ID ( u ), searches the list L Cuser and outputs PK u if the query has been made earlier. Otherwise, does as follows.
i) If ID u ID * , generates three random numbers a b x u , u , u Z q * and sets
, 1 ( , , ) and .
u u u Pub u u Pub u u u
R a P b P H ID R P b X x P sets PK u ( X u , R u ) and adds ( ID R P
u,
u,
Pub, b to
u) L 1 and ( ID x PK
u,
u,
u) to L
Cuser. returns
PKuto
1as a response.
Note that ( R X u , u , h 1 u ) generated in this way satisfies the equation d P u R u h P 1 u Pub . ii) If ID u ID * , generates three random numbers a ui , b x u , u Z q * and sets
, 1 ( , , ) and .
u u u u Pub u u u
R a P H ID R P b X x P sets PK u X u , R u and adds ( ID R P u , u , Pub , b u ) to L 1 and ( ID x PK u , u , u ) to L Cuser . returns PK u to 1 as a response.
Reveal Secret Key Oracle RSK ID ( u ) : When 1 makes this query on RSK ID ( u ), if
* ,
ID u ID aborts. Otherwise, if ID u ID * , finds the tuples ( ID x PK u , u , u ),( ID d R u , u , u ) from L Cuser , L PSK respectively and recovers x d u , u . sets SK u d u , x u and returns SK u to 1 . If there is no corresponding tuples in L Cuser , L PSK , makes a query on
( u ),
Cuser ID to generate x u , and makes a query on PSK ID ( u ) to generate d u . saves these values in L Cuser , L PSK respectively. Finally returns SK u .
Replace Public Key Oracle RPK ID ( u ) : When adversary makes a query on RPK ID ( u ), finds ( ID x PK u , u , u ) in L Cuser . replaces PK u PK u and x u .
Queries on Delegation Genration: When 1 makes this query on ( m w , ID os , ID ps ),
generates two random numbers os , os Z q * , computes h 1 os H ID 1 ( os , R os , P Pub ),
2 os 2 ( w , , ps ),
h H m ID and os P os ( R os h 1 os pub P ) h 2 os X os . sets
and 2 .
os h os os At last returns , to 1 and adds the tuple ( m w , , ID os , os ) to list L 2 .
Note that delegation , generated in this way satisfies the equation
2 os ( o 1 os Pub ) 2 os os .
P h R h P h X
Queries on Proxy Key Generation: When 1 makes this query on ( m w , ID os , ID ps ), gets , through Delegation Generation queries. If ID ps ID * , stops the simulation.
Otherwise, finds the tuples ( ID ps , x ps , PK ps ), ( ID ps , d ps , R ps ) from L Cuser , L PSK respectively and recovers x ps , d ps . Also recovers ( m w , , ID PK l u , u , 3 u ),
( m w , , ID PK l u , u , 3 u ) from L L 3 , 3 and computes S h 3 ps d ps h 3 ps ps x mod . q returns the proxy key as S to 1 .
Signing Oracle: When 1 makes this query on ( , m m w , ID os , ID ps ), with a verifier ID dv , first makes queries on H H 1 , 2 , H 2 , H H 3 , 3 , H 4 , H 4 oracles for u os or ps , and recovers the tuples ( ID R P u , u , Pub , l 1 u ), ( m w , , ID l u , 2 u ), ( m w , , ID l u , 2 u ),
( m w , , ID PK l u , u , 3 u ), ( m w , , ID PK l u , u , 3 u ) ( , m m w , ID ps , ID dv , U ps , R ps , l 4 u ),
4 4
( , m m w , ID ps , ID dv , U ps , R ps , l u , l u ) from L L L ,L L L L 1 , 2 , 2 3 , 3 , 4 , 4 respectively and ( ID d u , u , R u ) from L PSK and ( ID x PK u , u , u ) from L Cuser . generates two random numbers r 1 ps , r 2 ps Z q * and sets k ps r 1 ps , V ps l 4 ps 1 r 1 ps P l 3 ps l 4 ps X ps ,
2 and 2 ,
ps ps dv ps ps
U r X W r P
2 os os 1 os pub 3 ps ps 1 ps pub 2 os os ,
l R l P l R P l P l X returns
( , , , , , )
ps W ps V ps k ps ID os PK os to 1 .
Note that ( , m m w , ps ) generated in this way satisfies the verification equation
4 2
(
1)
3(
1)
2 4(
3)
4. (1)
ps ps os os os Pub ps ps ps Pub os os ps ps ps ps ps
k P h h R h P h R h P h X h h X h V
D. Verify Oracle DV ID ( u ) : When 1 submits ( , m m w , ID os , ID ps , ID dv ), and
( , m m w , ps ) where ps ( W ps , V ps , k ps , ID os , R os , ) to , first recovers
( ID dv , R dv , P Pub , l 1 dv ) from L 1 list and then proceeds as follows.
i) If ID dv ID * then computes U ps x W dv ps and recovers the corresponding tuples from L L 4 , 4 lists. If these tuples does not exists, selects l 4 u , l 4 u Z q * and defines
4