is the number of children and k
x
is the threshold value
of a node x, then, k
x
= 1 represents an OR gate and
k
x
= num
x
represents an AND gate. Each leaf node x
of the tree is described by an attribute and a threshold
value k
x
= 1.
Let T
x
denotes the subtree rooted at node x. If a
set of attributes λ satisfies the subtree T
x
, it is repre-
sented as T
x
(λ) = 1. T
x
(λ) is computed recursively
as follows. If x is a non-leaf node, evaulate T (y) for
all children nodes y of node x. T
x
(λ) returns 1 if and
only if at least k
x
children return 1. If x is a leaf node,
then T
x
(λ) returns 1 if and only if attr(x) ∈ λ.
5 OUR CONSTRUCTION
The proposed scheme introduces two new roles,
namely, Attribute Authority Manager (AAM) and At-
tribute Authority (AA). AAM is an entity which man-
ages the universe of attributes and AA is an entity
which manages a set of attributes (as assigned by
AAM). DigiLocker is proposed to assume the role of
AAM and individual issuers are proposed to assume
the role of AA. A subscriber is assigned a set of at-
tributes from each issuer which holds at least one e-
document of the subscriber. Each requester applica-
tion is assigned a set of attributes from DigiLocker
based on certain criteria such as purpose of access,
for how long the data is going to be used, etc. To cre-
ate a privacy enhanced e-document for a subscriber,
issuer and susbcriber mutually creates an attribute-
based token (which will be used later in encryption)
for an access policy, generates a symmetric key, en-
crypts the document with symmetric key, encrypts the
symmetric key with attribute-based token, creates an
e-document enclosing both the encrypted symmetric
key and the encrypted document, creates a URI for
this e-document and pushes it to subscriber’s digital
locker using PushURI API. When this e-document is
shared with a requester application, the requester will
be able to decrypt the encrypted symmetric key only
if the requester is associated with a set of attributes
which satisfies the access policy used to encryt the
symmetric key. Only when the requester obtais the
symmetric key, will he be able to decrypt and retrieve
the document.
In Setup(κ) procedure, AAM chose a cyclic group
G
0
of large prime order p (κ defines the size of group)
on which discrete logarithm problem is assumed to be
hard, generator g, a bilinear map e : G
0
×G
0
→ G
1
for
which bilinear diffie hellman problem is assumed to
be hard, a hash function H : {0,1}
∗
→ G
0
which maps
a binary string encoded attribute to a group element,
chose random numbers α,β ∈
R
Z
p
and set its private
key ASK and public key APK as below.
ASK = {β,g
α
}
APK = {g
β
,e(g,g)
α
,G
0
,g}
5.1 Attribute Assignment
An attribute can be any characteristic of a subscriber
or requester and is represented by a binary string
{0,1}
∗
. Attribute assignement to both subscribers and
requesters is proposed to be done lazily in the back-
ground with the aim to keep the list of associated at-
tributes in DigiLocker up to date.
For subscriber’s attribute assignment and modifi-
cation, two APIs are proposed to be introduced. First
is PullAttrs(ID
i
) which is provided by issuers and
is consumed by DigiLocker to pull updated list of at-
tributes of subscriber with Aadhaar number ID
i
. Sec-
ond is PushAttrs(ID
i
,NewAttrs) which is provided
by DigiLocker and is consumed by issuer to push any
change in attributes of subscriber with Aadhaar num-
ber ID
i
. For requester applications, attributes are as-
signed and updated by DigiLocker.
It is important to take appropriate measures to
handle load of a voluminous country like India. One
such measure could be to prepone part of the encryp-
tion process. This preponed encryption process gen-
erates a token with mutual cooperation between sub-
scriber and issuer. This token can be reused every
time for a given subscriber and for a given access pol-
icy.
A helper procedure encPartial(T ,r) is as-
sumed to be present which works as follows. It
choses a polynomial q
x
for each node x (including
the leaves) in the tree T . These polynomials are cho-
sen in the following way in a top-down manner, start-
ing from the root node R. For each node x in the
tree, set the degree d
x
of the polynomial q
x
to be one
less than the threshold value k
x
of that node, that is,
d
x
= k
x
− 1. Starting with the root node R the pro-
cedure chooses a random r ∈
R
Z
p
and sets q
r
(0) = r.
Then, it chooses d
R
other points of the polynomial q
R
randomly to define it completely. For any other node
x, it sets q
x
(0) = q
parent(x)
(index(x)) and chooses d
x
other points randomly to completely define q
x
.
5.2 Token Generation
An access tree T
iv
is comprised of access subtree T
S
iv
from subscriber S
i
and access subtree T
I
iv
from is-
suer I
v
(refer figure 1). If issuer I
v
needs to gen-
erate its part of token for subscriber S
i
, for access
tree T
iv
, it generates a random number r
i
∈
R
Z
p
,
and generates following partial-token using APK and
Privacy Enhanced DigiLocker using Ciphertext-Policy Attribute-Based Encryption
543