US 11,770,250 B2
Method and system for ensuring search completeness of searchable public key encryption
Peng Xu, Wuhan (CN); Tianyang Chen, Wuhan (CN); Yubo Zheng, Wuhan (CN); Hai Jin, Wuhan (CN); and Wei Wang, Wuhan (CN)
Assigned to HUAZHONG UNIVERSITY OF SCIENCE AND TECHNOLOGY, Wuhan (CN)
Filed by Huazhong University of Science and Technology, Wuhan (CN)
Filed on Aug. 2, 2021, as Appl. No. 17/444,224.
Claims priority of application No. 202110188205.7 (CN), filed on Feb. 10, 2021.
Prior Publication US 2022/0255739 A1, Aug. 11, 2022
Int. Cl. H04L 9/06 (2006.01); H04L 9/40 (2022.01); H04L 9/08 (2006.01); H04L 67/10 (2022.01); H04L 67/1097 (2022.01); H04L 9/00 (2022.01); H04L 9/30 (2006.01)
CPC H04L 9/30 (2013.01) [H04L 9/0618 (2013.01); H04L 9/50 (2022.05)] 8 Claims
OG exemplary drawing
 
1. A method for ensuring search completeness of searchable public key encryption, applicable to a blockchain network formed by a plurality of computer nodes, the method at least comprising:
the blockchain network receiving a keyword ciphertext and a corresponding file-identifier ciphertext generated by a transmitting end based on the public key encryption, and at least one miner storing the ciphertexts in a ciphertext table;
the blockchain network receiving a search trapdoor Tw transmitted by a receiving end, generated according to a private key and a keyword w to be searched;
the at least one miner in the blockchain network performing a secure search based on information of a state table and the search trapdoor Tw, and outputting a search result to the blockchain network; and
the blockchain network feeding the search result back to the receiving end,
further comprising:
the miner in the blockchain network, for the receiving end, initializing a ciphertext table cipherTablePK and a state table stateTablePK on a distributed ledger of the blockchain network,
wherein the transmitting end generating the keyword ciphertext and the corresponding file-identifier ciphertext based on the public key encryption comprises:
entering the keyword w, a file identifier id and the public key PK=(PKPEKS,PKPKE), computing the keyword ciphertext CPEKS←PEKS.Enc(PKPEKS,w) based on a keyword encryption algorithm, and computing the file-identifier ciphertext CPKE←PKE.Enc(PKPKE,id) based on a public key encryption algorithm, so as to generate the ciphertext C←(CPEKS,CPKE); and
encoding the ciphertext C and the public key PK so as to generate at least one first blockchain transaction, and publishing the first blockchain transaction to the blockchain network.