IP Library Granted Patent US 11,223,477
Granted Patent B2
US 11,223,477 · App. 16/683,597 · Granted Jan 11, 2022

Data sharing method, client, server, computing device, and storage medium

Inventors: Jian Jun Zhang (Shenzhen, CN); Wen Wei Zou (Shenzhen, CN); Mao Cai Li (Shenzhen, CN); Zi Chao Tang (Shenzhen, CN); Jun Zang (Shenzhen, CN); Qing Zheng Shang (Shenzhen, CN); Zong You Wang (Shenzhen, CN); Qing Qin (Shenzhen, CN)
Assignee: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LTD
H04L9/3226H04L9/0819H04L9/0861H04L63/0428H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,223,477
App. No.
16/683,597
Filed
Nov 14, 2019
Granted
Jan 11, 2022
Kind
B2
Art Unit
2434
USPC
713/153
Abstract

A data sharing method, server and storage medium including receiving a first part of a first key from a first client, the first key corresponding to encrypted data uploaded to a block of an information sharing system generating a first authorization code corresponding to the encrypted data; transmitting the first authorization code to the first client; based on receiving an access request from a second client for the encrypted data, obtaining a second authorization code and an incomplete key from the access request; based on the second authorization code being the same as the first authorization code and the second authorization code being valid, generating a second key according to the incomplete key and the first part of the first key corresponding to the encrypted data decrypting the encrypted data according to the second key to obtain the plaintext data; and transmitting, to the second client, the decrypted plaintext data.

Claims (76)

1. A data sharing method, performed by an access authorization server, the method comprising:

receiving a first part of a first key from a first client, the first key corresponding to encrypted data uploaded to a block of an information sharing system, the encrypted data being obtained by encrypting a piece of plaintext data according to the first key, and the information sharing system being a blockchain system;

generating a first authorization code corresponding to the encrypted data;

transmitting the first authorization code to the first client;

based on receiving an access request from a second client for the encrypted data, obtaining a second authorization code and an incomplete key from the access request;

based on the second authorization code being the same as the first authorization code and the second authorization code being valid, generating a second key according to the incomplete key and the first part of the first key corresponding to the encrypted data, the generated second key being the same as the first key and the incomplete key being the same as the second part of the first key;

obtaining the encrypted data from the block of the information sharing system;

decrypting the encrypted data according to the second key to obtain the plaintext data; and

transmitting, to the second client, the decrypted plaintext data.

2. The method according to claim 1 , wherein the receiving the first part of the key from the first client further comprises receiving a file identifier and a user identifier of a holder of the encrypted data; and

wherein the generating the first authorization code corresponding to the encrypted data further comprises:

generating the first authorization code according to a rule corresponding to the user identifier of the holder, and associating the first authorization code with the first part of the key, the file identifier, and the user identifier of the holder; and

obtaining, in response to receiving the access request, the associated first authorization code and the first part of the key according to the file identifier and the user identifier of the holder that are carried in the access request.

3. The method according to claim 1 , wherein the block corresponds to a block height, and the generated first authorization code corresponds to at least one of the block height allowed to be accessed and an expiration time;

based on the second authorization being the same as the first authorization code, obtaining at least one of a block height allowed to be accessed and an expiration time corresponding to the second authorization code; and

determining whether the second authorization code is valid based on the block height of the encrypted data corresponding to the access request matching the block height of the second authorization code or the expiration time of the second authorization code not being lapsed.

4. The method according to claim 1 , further comprising:

invalidating the first authorization code in response to a cancellation request from the first client; and

returning a response to the first client, so that the first client invalidates a local first authorization code.

5. The method according to claim 1 , further comprising:

generating a new authorization code corresponding to the encrypted data in response to an authorization code generating request from the first client; and

transmitting the new authorization code corresponding to the encrypted data to the first client.

6. The method according to claim 1 , further comprising:

generating a new authorization code corresponding to the encrypted data in response to an authorization code updating request from the first client, and replacing the first authorization code with the new authorization code; and

transmitting the new authorization code corresponding to the encrypted data to the first client, so that the first client replaces the first authorization code with the new authorization code.

7. The method according to claim 3 , wherein, based on determining that the second authorization code is invalid, the encrypted data is not decrypted by the access authorization server.

8. The method according to claim 1 , wherein, based on the first client authorizing the second client to access the encrypted data, the second client receives the first authorization code and the second part of the key, and transmits the access request for the encrypted data to the access authorization server, the access request including the second authorization code and the second part of the key.

9. An access authorization server, comprising:

at least one memory configured to store computer program code; and

at least one processor configured to access the computer program code and operate as instructed by the computer program code, the computer program code comprising:

authorization code configured to cause the at least one processor to:

receive a first part of a first key from a first client, the first key corresponding to encrypted data uploaded to a block of an information sharing system, the encrypted data being obtained by encrypting a piece of plaintext data according to the first key, and the information sharing system being a blockchain system;

generate a first authorization code corresponding to the encrypted data; and

transmit the first authorization code to the first client;

verification code configured to, based on receiving an access request from a second client for the encrypted data, obtain a second authorization code and an incomplete key from the access request;

key code configured to cause the at least one processor to, based on the second authorization code being the same as the first authorization code and the second authorization code being valid, generate a second key according to the incomplete key and the first part of the first key corresponding to the encrypted data, the generated second key being the same as the first key and the incomplete key being the same as the second part of the first key; and

decryption code configured to cause the at least one processor to obtain the encrypted data from the block of the information sharing system, decrypt the encrypted data according to the second key to obtain the plaintext data, and transmit, to the second client, the decrypted plaintext data.

10. The access authorization server according to claim 9 , wherein the authorization code is further configured to cause the at least one processor to:

generate the first authorization code according to a rule corresponding to the user identifier of the holder, and associating the first authorization code with the first part of the key, the file identifier, and the user identifier of the holder; and

obtain, in response to receiving the access request, the associated first authorization code and the first part of the key according to the file identifier and the use identifier of the holder that are carried in the access request.

11. The access authorization server according to claim 9 , wherein the authorization code is further configured to cause the at least one processor to:

invalidate the first authorization code in response to a cancellation request from the first client; and

returning a response to the first client, so that the first client invalidates a local first authorization code.

12. The access authorization server according to claim 9 , wherein the authorization code is further configured to cause the at least one processor to:

generate a new authorization code corresponding to the encrypted data in response to an authorization code generating request from the first client; and

transmit the new authorization code corresponding to the encrypted data to the first client.

13. The access authorization server according to claim 9 , wherein the authorization code is further configured to cause the at least one processor to:

generate a new authorization code corresponding to the encrypted data in response to an authorization code updating request from the first client, and replacing the first authorization code with the new authorization code; and

transmit the new authorization code corresponding to the encrypted data to the first client, so that the first client replaces the first authorization code with the new authorization code.

14. The method according to claim 9 , wherein the second client is a browser for visiting a blockchain page.

15. A non-transitory computer readable storage medium, storing executable instructions, the executable instructions capable of causing a computer to:

receive a first part of a first key from a first client, the first key corresponding to encrypted data uploaded to a block of an information sharing system, the encrypted data being obtained by encrypting a piece of plaintext data according to the first key, and the information sharing system being a blockchain system;

generate a first authorization code corresponding to the encrypted data;

transmit the first authorization code to the first client;

based on receiving an access request from a second client for the encrypted data, obtain a second authorization code and an incomplete key from the access request;

based on the second authorization code being the same as the first authorization code and the second authorization code being valid, generate a second key according to the incomplete key and the first part of the first key corresponding to the encrypted data, the generated second key being the same as the first key and the incomplete key being the same as the second part of the first key;

obtain the encrypted data from the block of the information sharing system;

decrypt the encrypted data according to the second key to obtain the plaintext data; and

transmit, to the second client, the decrypted plaintext data.

16. The non-transitory computer-readable storage medium according to claim 15 , wherein the receiving the first part of the first key from the first client further comprises receiving a file identifier and a user identifier of a holder of the encrypted data; and

wherein the generating the first authorization code corresponding to the encrypted data further comprises:

generating the first authorization code according to a rule corresponding to the user identifier of the holder, and associating the first authorization code with the first part of the key, the file identifier, and the user identifier of the holder; and

obtaining, in response to receiving the access request, the associated first authorization code and the first part of the key according to the file identifier and the user identifier of the holder that are carried in the access request.

17. The non-transitory computer-readable storage medium according to claim 15 , wherein the block corresponds to a block height, and the generated first authorization code corresponds to at least one of the block height allowed to be accessed and an expiration time, and

wherein the executable instructions are further capable of causing the computer to:

based on the second authorization being the same as the first authorization code, obtain at least one of a block height allowed to be accessed and an expiration time corresponding to the second authorization code; and

determine whether the second authorization code is valid based on the block height of the encrypted data corresponding to the access request matching the block height of the second authorization code or the expiration time of the second authorization code not being lapsed.

18. The non-transitory computer-readable storage medium according to claim 15 , wherein the executable instructions are further capable of causing the computer to:

invalidate the first authorization code in response to a cancellation request from the first client; and

return a response to the first client, so that the first client invalidates a local first authorization code.

19. The non-transitory computer-readable storage medium according to claim 15 , wherein the executable instructions are further capable of causing the computer to:

generate a new authorization code corresponding to the encrypted data in response to an authorization code generating request from the first client; and

transmit the new authorization code corresponding to the encrypted data to the first client.

20. The non-transitory computer-readable storage medium according to claim 15 , wherein the executable instructions are further capable of causing the computer to:

generate a new authorization code corresponding to the encrypted data in response to an authorization code updating request from the first client, and replace the first authorization code with the new authorization code; and

transmit the new authorization code corresponding to the encrypted data to the first client, so that the first client replaces the first authorization code with the new authorization code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: ZHANG, JIAN JUN; ZOU, WEN WEI; LI, MAO CAI; TANG, ZI CHAO; ZANG, JUN; SHANG, QING ZHENG; WANG, ZONG YOU; QIN, QING
To: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
Reel/Frame 051032/0635 →
Priority Claims (1)
CN 201711065783.1 · Nov 2, 2017 · national
Continuity (2)
Continuation PCTCN2018107962 · Sep 27, 2018
Related Publication 20200084037A1 · Mar 12, 2020