In this section, we will analyze the security and correctness of this scheme.
5.2. Security
Lemma 1. Assuming the adversary can win Game 1, then an algorithm B can be constructed to solve the ECDDDH problem.
Proof: Suppose that the tuple is an example of ECDDDH problem. To determine whether , B will play the part of the challenger.
Set up : B runs the setup program to get public parameters , where master private key and the public key . Then B sends parameter to , and the master private key SK is kept secret. B selects , randomly and set
,
, ,
.
B sends the public key and to , but and are unknown to .
Phase 1: Executed the user’s public key query before other queries using the identity . Set up multiple lists to store the queries and answers. All lists are initially empty.
User public key query: B keeps a list of the tuple and upon receiving an identity , performs the following steps.
Case1. . B picks at randomly , setting , and adds the tuple to the list , Where ◊ represents a null value.
Case2. . B picks at randomly , setting , and adds the tuple to the list .
Replace-Public-Key query: B maintains a list of tuple . When inputs , B replaces with , and adds to the list .
Secret-Value query: When asks the secret value for , B finds in the list and returns .If is replaced, B refuses to answer.
Partial-Private-Key query: B establishes a list of tuple when asks the partial private key of . If , B fails and stops. Otherwise, B finds in the list , running the Extract-Partial-Private-Key algorithm generating . B output and adds to the list .
Keyword Ciphertext Query: When asks for the ciphertext, B operates the algorithm to generate ciphertext .
Keyword Trapdoor Query: When asks for the trapdoor, B operates the algorithm to generate trapdoor .
Test Query: gives keyword ciphertext and keyword trapdoor , and B compares them using Algorithm 1.
Challenge: submits a tuple , where and are challenging keywords not requested in the previous trapdoor and ciphertext query. If , B aborts. Otherwise , B calculates and picks randomly. B computes
.
Let , which can get by combining similar terms. Then B selects and computes . Set , . Thus, the corresponding ciphertext of is . B returns the challenge ciphertexts to the adversary .
Phase 2: can continue to execute various queries, but there is a limitation that is not allowed to query the keyword ciphertext or trapdoor of or .
Guess: returns .
Solve CDH problem: If , B returns 1, otherwise 0. If , then
Therefore, is a valid ciphertext. Suppose that the advantage of wins in the above game is . So
.
If , then is an invalid ciphertext. has no advantage in distinguishing from . Hence
.
Probability: Let , and be the number of the User public key query, Replace-Public-Key query, and Partial-Private-Key query, respectively. The two events are as follows:
: did not replace of ’s public key and query the partial-private-key for .
: .
It’s not hard to get the following results.
,
,
.
If win Game 1 with an advantage of , then B has a probability greater than to determine whether .
Lemma 2. Assuming the adversary can win Game 2, an algorithm B can constructed to solve the ECDDDH problem by exploiting the adversary’s ability.
Proof: Suppose that the tuple is an example of an ECDDDH problem. To determine whether , B will play the part of the challenger.
Set up: B runs the setup program to get public parameters , where master private key and the public key . B selects , randomly and set
,
,,
,
B sends the public parameters , the public key and the public/secret key pair to , while are unknown to .
Phase 1: Executed the user’s public key query before other queries using the identity . Set up multiple lists to store the queries and answers. All lists are initially empty.
User public key query: B maintains a list containing the tuple and takes the following actions when receiving an identity :
Case1. . B chooses a number at random, sets , and adds the tuple to the list , Where ◊ represents a null value.
Case2. . B chooses at random, sets , and adds the tuple to the list .
Replace-Public-Key query: same as that in Lemma 1
Secret-Value query: B established a list of tuple . When asks the secret value for . If , B fails and stops. Otherwise, B finds in list , returns .
Partial-Private-Key query: When asks the partial private key of , B finds in list , running the Extract-Partial-Private-Key algorithm and returning .If is replaced, B refuses to answer.
Keyword Ciphertext Query: same as that in Lemma 1.
Keyword Trapdoor Query: same as that in Lemma 1.
Test Query: same as that in Lemma 1.
Challenge: submits a tuple that meets the requirements of Game 2, where and are challenging keywords not asked in the previous trapdoor query and ciphertext query. If , B aborts. Otherwise , B computes , and picks randomly. B computes
.
Let , which can get by combining similar terms. Then select at random and compute . Set , , and thus ’s ciphertext is . B returns the challenge ciphertexts to the adversary .
Phase 2:The attacker can continue to execute various queries, but there is a limitation that the attacker is not allowed to query the keyword ciphertext or trap of or .
Guess: returns .
Solve the ECDDDH problem. If , B returns 1. Otherwise 0. If , then
Therefore, is a valid ciphertext. Suppose that the advantage of wins in the above game is , so
.
If , then is an invalid ciphertext. has no advantage in distinguishing from . Hence
.
Probability. Let , , be the number of User public key query, Replace-Public-Key query, and Secret-Value query, respectively. The two events are as follows:
: did not replace of ’s public key nor perform the Secret-Value query for .
: .
It’s not hard to get the following results.
,
,
.
If has an advantage to win Game, then B has a probability greater than to determine whether .
Theorem 2. Our CLVPFCKS scheme is CKCA-CIND secure in standard model if the ECDDDH problem is hard.
Proof: Theorem 2 holds from Lemma 1 and Lemma 2.
Lemma 3. Assuming the adversary can win Game 3, then an algorithm B can be constructed to solve the ECDDDH problem.
Proof: Suppose that the tuple is an example of ECDDDH problem. To determine whether , B will play the part of the challenger.
Set up: B runs the setup program to obtain the public parameters , where master private key ,, then randomly selects ,and set
, , ,
,
.
B sends the public key and to , but and are unknown to .
Phase 1: Executed the user’s public key query before other queries using the identity . Set up multiple lists to store the queries and answers. All lists are initially empty.
User public key query: B keeps a list of the tuple and upon receiving an identity , performs the following steps.
Case1. , B picks at randomly , setting , and adds the tuple to the list ,Where ◊ represents a null value.
Case2. , B picks at randomly , setting , and adds the tuple to the list .
Replace-Public-Key query: same as that in Lemma 1.
Secret-Value query:same as that in Lemma 1.
Partial-Private-Key query: B establishes a list of tuple when asks the partial private key of . If , B fails and stops. Otherwise, B finds in the list , running the Extract-Partial-Private-Key algorithm generating . B output and adds to the list .
Keyword Ciphertext Query: same as that in Lemma 1.
Keyword Trapdoor Query: same as that in Lemma 1.
Test Query: same as that in Lemma 1.
Challenge: submits a tuple , where and are challenging keywords not requested in the previous trapdoor and ciphertext query. If , B aborts. Otherwise,without losing generality, it is better to set as . B calculates . B picks randomly, and computes
B selects an elements and sets ,
, where . Finally, B sent to the adversary .
Phase 2: The attacker can continue to execute various queries, but there is a limitation that the attacker is not allowed to query the keyword ciphertext or trapdoor of or .
Guess: returns .
Solve CDH problem: If , B returns 1, otherwise 0. If , then
.
Therefore, is a valid ciphertext. Suppose that the advantage of wins in the above game is . So
.
If , then is an invalid ciphertext. has no advantage in distinguishing from . Hence
.
Probability: Let , and be the number of the User public key query, Replace-Public-Key query, and Partial-Private-Key query, respectively. The two events are as follows:
: did not replace of ’s public key and query the partial-private-key for .
: .
It’s not hard to get the following results.
,
,
.
If win Game 1 with an advantage of , then B has a probability greater than to determine whether .
Lemma 4. Assuming the adversary can win Game 4, then an algorithm B can be constructed to solve the ECDDDH problem.
Proof: Suppose that the tuple is an example of ECDDDH problem. To determine whether , B will play the part of the challenger.
Set up : B runs the setup program to obtain the public parameters , where master private key ,, then randomly selects , and set
, , ,
,
B sends the public parameters , the public key , and the public/secret key pair to , while are unknown to .
Phase 1: Executed the user’s public key query before other queries using the identity . Set up multiple lists to store the queries and answers. All lists are initially empty.
User public key query: user public key query: B keeps a list of the tuple and upon receiving an identity , performs the following steps.
Case1. , B picks at randomly , setting , and adds the tuple to the list , Where ◊ represents a null value. .
Case2. , B picks at randomly , setting , and adds the tuple to the list .
Replace-Public-Key query: same as that in Lemma 1.
Secret-Value query:B established a list of tuple . When asks the secret value for . If , B fails and stops. Otherwise, B finds in list , returns .
Partial-Private-Key query: same as that in Lemma 2.
Keyword Ciphertext Query: same as that in Lemma 1.
Keyword Trapdoor Query: same as that in Lemma 1.
Test Query: same as that in Lemma 1.
Challenge: submits a tuple , where and are challenging keywords not requested in the previous trapdoor and ciphertext query. If , B aborts. Otherwise, without losing generality, it is better to set as . B calculates . B picks randomly, and computes
B selects an elements and sets ,
, where . Finally, B sent to the adversary .
Phase 2: The attacker can continue to execute various queries, but there is a limitation that the attacker is not allowed to query the keyword ciphertext or trapdoor of or .
Guess: returns .
Solve CDH problem: If , B returns 1, otherwise 0. If , then
.
Therefore, is a valid ciphertext. Suppose that the advantage of wins in the above game is . So
.
If , then is an invalid ciphertext. has no advantage in distinguishing from . Hence
.
Probability: Let , and be the number of User public key query, Replace-Public-Key query, and Secret-Value query, respectively. The two events are as follows:
: did not replace of ’s public key and query the secret value for .
: .
It’s not hard to get the following results.
,
,
.
If win Game 4 with an advantage of , then B has a probability greater than to determine whether .
Theorem 3. Our CLVPFCKS scheme is IND-KGA safe in the standard model if the ECDDDH problem is hard. Proof: Theorem 3 holds from Lemma 3 and Lemma 4.
Theorem 4. Under the ECDLP assumption, it is not computationally feasible for the CSP to forge valid proof information through the result verification mechanism.
Proof: The malicious CSP can’t forge a valid multi-signature on each returned record and pass the verification. Since it does not have the key of multiple data owners, it is computationally infeasible to forge a valid multi-signature. Therefore, the malicious CSP can only win the next security game by directly generating valid proof information according to the wrong search result instead of wining the next security game by forging multiple signatures. But after the following analysis, this is also impossible.
Assume that the correct ciphertext and its identity is
and
, where
. The malicious CSP may forge wrong proof information
on false search results
, where
If the forged proof information
can successfully pass the result verification mechanism, the malicious CSP will win the security game; Otherwise, it will fail. Suppose a malicious CSP wins the game. We then know that
where
. The proof information of correct ciphertext
C is
, where
The signature of the correct ciphertext can pass the verification mechanism, so we have
Subtract Formula (4) from Formula (5) to get
Because is not equal to , so or . Set , , then or . Suppose is not zero, then . If the probability of is , then the probability that we can break the ECDLP problem is , where q is the length of . This means that if the malicious CSP can pass the verification, we can break the ECDLP problem.