Realizing IoT service’s policy privacy over publish/subscribe-based middleware

A subscriber can successfully access the requested event only its attributes match
the publisher’s authorization policy, the subscriber can accept the subscribed event
from the published event type only the event attributes match the subscriber’s authorization
policy. Thus our access control solution is correct. In this section, we try to clarify
that, no matter what form the attacks take from adversaries, our scheme keeps privacy.

Policy privacy analysis

The Two-layer access control framework keeps privacy, which is performed through defining
the concept of policy privacy and privacy proof. Home brokers are assumed to be semi-honest.
This means that they follow predefined protocols while they try to find out as much
secret information as possible. Home brokers might not collude with malicious users,
but arbitrarily send any information to users. Given such a privacy assumption, we
first introduce the definition a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M305','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M305View MathML/a of policy evaluation scheme, and then define the policy-privacy model for a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M306','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M306View MathML/a.

Definition 8

(Policy Evaluation Schemea onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M307','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M307View MathML/a.)a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M308','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M308View MathML/a consists of four algorithms as follows:

1.
Init On input the attribute set W of a customer and an authorization policy a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M309','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M309View MathML/a, the blinding attribute algorithm and the blinding policy algorithm generates the
blinded attribute set a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M310','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M310View MathML/a and the blinded policy a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M311','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M311View MathML/a respectively.

2.
a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M312','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M312View MathML/a On input the a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M313','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M313View MathML/a attribute conjunction in an authorization policy a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M314','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M314View MathML/a of the data owner i, it outputs some randomized code a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M315','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M315View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M316','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M316View MathML/a by invoking Encoding Procedure.

3.
a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M317','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M317View MathML/a On input the a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M318','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M318View MathML/a attribute conjunction in the attribute expression a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M319','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M319View MathML/a of the customer j, it outputs some randomized code a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M320','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M320View MathML/a by invoking Encoding Procedure.

4.
a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M321','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M321View MathML/a On input attribute codes a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M322','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M322View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M323','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M323View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M324','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M324View MathML/a, it outputs whether two codes are matched by invoking Matching Procedure. If the algorithm outputs a negative result, the access request of the customer is
rejected.

A policy evaluation scheme a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M325','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M325View MathML/a in the access control system is Chosen-Plaintext Attack (CPA) policy-privacy if adversaries
cannot win with a non-negligible advantage, the game is defined as follows:

Definition 9

(Non-intersection CPA fora onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M326','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M326View MathML/a) For the policy evaluation scheme a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M327','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M327View MathML/a and a probabilistic polynomial time adversary Adv running in two phases, it is policy-privacy if Adv’s advantage is negligible in the following game:

Setup: The challenger invokes the Init algorithm of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M328','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M328View MathML/a.

Training Phase 1: The adversary is allowed to issue queries for the following oracles:

1. Queries a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M329','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M329View MathML/a oracle for EncodeforAttributes and EncodeforPolicy of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M330','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M330View MathML/a. That is to say, choosing one subject attribute conjunction a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M331','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M331View MathML/a and one attribute conjunction in an authorization policy a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M332','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M332View MathML/a, outputting encoded attributes a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M333','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M333View MathML/a and encoded policy a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M334','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M334View MathML/a.

2. Queries a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M335','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M335View MathML/a oracle for MatchinginPEP of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M336','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M336View MathML/a.

Challenge Phase The adversary Adv submits two random attribute conjunctions in two authorization policies a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M337','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M337View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M338','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M338View MathML/a and an subject attribute conjunction A. The challenger flips a random coin a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M339','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M339View MathML/a, and outputs a randomized code a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M340','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M340View MathML/a to the adversary. No attribute conjunctions a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M341','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M341View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M342','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M342View MathML/a have appeared in the previous queries.

Training Phase 2 Training phase 1 is repeated exactly, except that the adversary may not query MatchinginPEP, for a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M343','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M343View MathML/a, not query oracles with any element in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M344','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M344View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M345','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M345View MathML/a.

Guess Finally, the adversary outputs their guess a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M346','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M346View MathML/a, and wins the game if a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M347','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M347View MathML/a.

The probability is over the random bits used by the challenger and the adversary,
where Adv makes at most polynomial queries to the oracles.

This definition implies that:

1. For two attribute conjunctions, the adversary cannot distinguish their encodings,
i.e., they are unable to link a Bloom Filter to a specific attribute conjunction.

2. The Non-intersection requires that any element in the challenge sets a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M348','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M348View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M349','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M349View MathML/a should not have appeared or will not appear in other queries. This indicates that
our scheme a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M350','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M350View MathML/a has weaker security than that under CPA.

Definition 10

(PRF CPA ASSUMPTIOM) Given a pseudo-random function PRF(seedkeyinput) with seedkey being secretly set, and two attribute conjunctions, PRF(seedkeyinput) chooses one attribute conjunction and returns one random number, and then it is
hard to determine which attribute conjunction is chosen according to the returned
random number without knowing seedkey.

Definition 11

(a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M351','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M351View MathML/aScheme) A Bloom Filter BF is initialized to zero, and a key and n seeds are secretly generated. Given an attribute set eSET, it invokes PRF(seedkeyinput) for each attribute a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M352','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M352View MathML/a as input with n different seeds to obtain n random numbers that are in (0, m], i.e., being greater than 0 and less than a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M353','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M353View MathML/a. The position in BF is set 1 if one value of n random numbers points to it. When all attributes in eSET are iterated, BF is output.

Lemma 1

Thea onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M354','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M354View MathML/ascheme is CPA-secure if each element in the challenge set is not queried on.

The conclusion is straightforward. In the security proof, multiple random numbers
for one element of the challenge set can be seen as multiple oracle queries for the
element during a CPA-Security game, where the oracle answers each query with attaching
fixed different numbers to the queried element as different inputs. The random numbers
for multiple elements in the challenge set can be seen as multiple oracle queries
for different elements. The premise that each element in the challenge set is not
queried indicates that, during the challenge of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M355','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M355View MathML/a, no queried elements are challenged. It is natural to require that any element in
the challenged set will not be queried after challenging.

Theorem 1

PESa onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M356','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M356View MathML/ais non-intersection CPA policy-privacy.

Proof

Suppose algorithm B is given a private key, it also generates a series of seeds for random generation.
B initializes the a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M357','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M357View MathML/a scheme with the key and seeds.

Init Given a set of attributes a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M358','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M358View MathML/a, B generates a random string a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M359','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M359View MathML/a for each attribute a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M360','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M360View MathML/a, and randomly generates a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M361','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M361View MathML/a according to the probability p. Replacing a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M362','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M362View MathML/a with a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M363','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M363View MathML/a , we will obtain a new blinded set of attributes a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M364','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M364View MathML/a.

Setup B maintains a set hash list a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M365','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M365View MathML/a, which is initially empty, and responds to the random oracle queries for Adv as described below.

1. Random oracle for a set a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M366','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M366View MathML/a: If this query already appears on the a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M367','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M367View MathML/a, then returns the predefined value. Otherwise, the query invokes the a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M368','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M368View MathML/a scheme with the set of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M369','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M369View MathML/a to get a Bloom Filter a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M370','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M370View MathML/a. a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M371','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M371View MathML/a is defined. Finally, it adds the tuple a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M372','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M372View MathML/a to the list a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M373','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M373View MathML/a and respond with a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M374','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M374View MathML/a.

2.
a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M375','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M375View MathML/a: If BF can be found in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M376','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M376View MathML/a with a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M377','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M377View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M378','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M378View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M379','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M379View MathML/a, then returns true, otherwise returns false.

3.
a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M380','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M380View MathML/a: If a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M381','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M381View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M382','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M382View MathML/a cannot be found in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M383','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M383View MathML/a with a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M384','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M384View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M385','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M385View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M386','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M386View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M387','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M387View MathML/a, then returns false. Otherwise, if a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M388','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M388View MathML/a, then returns true, otherwise returns false.

Phase 1 In this stage, the adversary Adv issues a series of queries, which are subject to the restrictions of the Non-Intersection-CPA
game. B maintains a list a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M389','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M389View MathML/a that is initially empty.

1. Encoding Query a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M390','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M390View MathML/aa onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M391','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M391View MathML/a: Algorithm B finds the corresponding a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M392','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M392View MathML/a for each a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M393','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M393View MathML/a in W, and obtains a new set a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M394','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M394View MathML/a. If the cardinality of the set sT is less than the parameter k, some random bit strings are generated and are added into sT such that the cardinality of sT is equal to k. Finally, adds the tuple a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M395','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M395View MathML/a to the list a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M396','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M396View MathML/a and responds with H(sT).

2. Matching Query a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M397','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M397View MathML/a: If a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M398','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M398View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M399','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M399View MathML/a cannot be found in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M400','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M400View MathML/a with a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M401','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M401View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M402','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M402View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M403','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M403View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M404','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M404View MathML/a , then returns false. Otherwise, if a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M405','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M405View MathML/a , then returns true, otherwise returns false.

Challenge When Adv decides that Phase 1 is over, Adv chooses two random attribute conjunctions in authorization policies a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M406','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M406View MathML/a and an attribute conjunction A. B responds as follows:

1. Finds the corresponding a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M407','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M407View MathML/a for each a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M408','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M408View MathML/a of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M409','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M409View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M410','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M410View MathML/a in the blinded attribute set a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M411','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M411View MathML/a, and keeps a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M412','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M412View MathML/a unchanged if no a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M413','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M413View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M414','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M414View MathML/a, then obtains two new sets a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M415','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M415View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M416','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M416View MathML/a. We simply assume that a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M417','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M417View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M418','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M418View MathML/a have the same cardinality (otherwise, padding with random strings ). At the same
time, finds the corresponding a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M419','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M419View MathML/a for each a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M420','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M420View MathML/a of A in the blinded attribute set W, then then gets two new sets a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M421','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M421View MathML/a.

2.
B chooses a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M422','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M422View MathML/a and submits a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M423','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M423View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M424','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M424View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M425','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M425View MathML/a as a challenge to a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M426','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M426View MathML/a, i.e., sends a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M427','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M427View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M428','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M428View MathML/a as a Matching Query. Assuming that a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M429','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M429View MathML/a are the returned results, B sends it to Adv.

Phase 2: The phase 1 is repeated exactly, except that the adversary may not query oracles
with any element in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M430','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M430View MathML/a and MatchinginPEP for a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M431','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M431View MathML/a.

Guess: Eventually, the adversary Adv returns a guess a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M432','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M432View MathML/a to B. B also outputs a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M433','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M433View MathML/a as the guess of a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M434','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M434View MathML/a for a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M435','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M435View MathML/a game.

If Adv has a non-negligible probability a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M436','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M436View MathML/a in making a successful guess, i.e., guess a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M437','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M437View MathML/a. It indicates Adv has another non-negligible probability in distinguishing a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M438','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M438View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M439','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M439View MathML/a, which contradicts the fact that a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M440','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M440View MathML/a scheme is CPA security. Thus, we reach a contradiction. a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M441','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M441View MathML/a

Privacy management

Based on the policy embedding scheme a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M442','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M442View MathML/a, the authorization management becomes efficient and simple. The policy-privacy authorization
management includes Customer Grant, New Subscription Authorization, Authorization
Update, and Customer Revocation.

Customer Subscribing Grant When a new customer B subscribing him or herself to the SCADA system A, the system uses the traditional authorization administration tool to decide whether
customer B is granted. If B can be granted, A computes as follows:

1. It converts B’s subject attribute expression a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M443','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M443View MathML/a into a blinded one a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M444','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M444View MathML/a according to a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M445','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M445View MathML/a.

2. It encodes a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M446','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M446View MathML/a by the encoding procedure in definition a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M447','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M447View MathML/a.

3. It sends corresponding attribute Bloom Filters a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M448','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M448View MathML/a to B’s home brokers the access control service.

New Event Grant When a new event is published in the SCADA system, it extracts the authorization
expression a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M449','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M449View MathML/a from the authorization policies. It then computes as follows:

1. It converts the authorization expression a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M450','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M450View MathML/a into a blinded one a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M451','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M451View MathML/a according to a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M452','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M452View MathML/a.

2. Each conjunction a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M453','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M453View MathML/a in a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M454','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M454View MathML/a is encoded into Bloom Filters a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M455','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M455View MathML/a and a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M456','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M456View MathML/a.

3. It sends the corresponding Bloom Filters a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M457','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M457View MathML/a to the home brokers.

4. Only a hash indicator is attached to the published event. If the encoding policies
have been sent for this event type, no policy conversion and transmission take place.

Authorization Update When a SCADA application modifies the authorization policy for the event type that
it will publish, the access control system computes new Bloom Filters a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M458','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M458View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M459','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M459View MathML/a according to the new authorization policy. It then sends a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M460','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M460View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M461','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M461View MathML/a to the home brokers to replace a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M462','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M462View MathML/a, a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M463','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M463View MathML/a .

Customer Revocation When the access control system revokes some privilege of the customer B, it computes new Bloom Filters a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M464','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M464View MathML/a. It sends a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M465','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M465View MathML/a to the home brokers to replace a onClick=popup('http://www.springerplus.com/content/5/1/1615/mathml/M466','MathML',630,470);return false; target=_blank href=http://www.springerplus.com/content/5/1/1615/mathml/M466View MathML/a.