US 11,973,889 B2
Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
Song Han, Zhejiang (CN); Siqi Ren, Zhejiang (CN); Haiqing Bai, Zhejiang (CN); Ben Niu, Zhejiang (CN); and Xiaoli Chen, Zhejiang (CN)
Assigned to Zhejiang University City College, (CN); Zhejiang Gongshang University, (CN); Insititute Of Information Engineering, CAS, (CN); and Zhejiang Ponshine Information Technology Co., Ltd., (CN)
Appl. No. 17/610,882
Filed by ZHEJIANG UNIVERSITY CITY COLLEGE, Zhejiang (CN); ZHEJIANG GONGSHANG UNIVERSITY, Zhejiang (CN); INSTITUTE OF INFORMATION ENGINEERING, CAS, Beijing (CN); and ZHEJIANG PONSHINE INFORMATION TECHNOLOGY CO. LTD., Hangzhou (CN)
PCT Filed Jul. 8, 2021, PCT No. PCT/CN2021/105203
§ 371(c)(1), (2) Date Nov. 12, 2021,
PCT Pub. No. WO2022/007889, PCT Pub. Date Jan. 13, 2022.
Claims priority of application No. 202010651041.2 (CN), filed on Jul. 8, 2020.
Prior Publication US 2022/0368545 A1, Nov. 17, 2022
Int. Cl. H04L 29/06 (2006.01); H04L 9/00 (2022.01); H04L 9/06 (2006.01); H04L 9/30 (2006.01)
CPC H04L 9/50 (2022.05) [H04L 9/008 (2013.01); H04L 9/0618 (2013.01); H04L 9/3073 (2013.01)] 6 Claims
OG exemplary drawing
 
1. A searchable encrypted data sharing method based on blockchain and homomorphic encryption, comprising the following steps:
a) performing system initialization by:
generating relevant system parameters according to security parameters, the system parameters being used to generate a public-private key pair of a user, identity verification and consistency verification; and defining a keyword set, which is used for the consistency verification of on-chain transaction; and
when the user joins an alliance chain, a cloud server assigning an identity identification to the user, and the user generating the public-private key pair and makes his/her public key open, the cloud server signing the user's identity by using the user's public key, a public key of an alliance chain manager, and its own private key, and uploading it to an alliance chain network;
b) performing data release by:
a data owner encrypting his sensitive data and keywords corresponding to the sensitive data, and sending ciphertext of the sensitive data, ciphertext of the keyword, his/her own identity information and proof of consistency to the cloud server;
the cloud server verifying the identity of the data owner; if the verification succeeds, the sensitive data being stored in a local server, and a ciphertext index value of the sensitive data, the ciphertext of the keyword, and the proof of consistency being sent to the alliance chain; and
after the alliance chain receives the data uploaded by the cloud server, it verifying the consistency of the message; if the verification is passed, the pseudo-identity information of the data owner, the ciphertext index value of the sensitive data and the ciphertext of the keywords being stored in the alliance chain;
c) performing a data request by:
a data requester generating a trapdoor function of the keyword, and sending the trapdoor function to the manager in the alliance chain;
after receiving the request, the manager verifying the identity information of the data requester; if the verification is passed, performing search operation, and sending the ciphertext index value of the found sensitive data to the cloud server;
the cloud server receiving the ciphertext index value of the sensitive data; if the number of index values is 1, a partial decryption operation being performed on the ciphertext of the sensitive data, and the partially decrypted ciphertext being sent to the manager; the manager then performing partial decryption on the data again, and returning a final decryption result to the data requester; and
if the number of index values is greater than 1, performing a homomorphic operation on the ciphertext set, and then partially decrypting the ciphertext result after the homomorphic operation, and finally sending the partial decryption result to the manager; the manager using his own private key to perform partial decryption after receiving the partially decrypted ciphertext set, and returning the final decryption result to the data requester; and
d) performing data acquisition by:
the data requester obtaining the converted ciphertext data, decrypting it with his own private key to obtain a plaintext message, so as to obtain the sensitive data related to the searched keywords.