KR20200002985A - Data sharing methods, clients, servers, computing devices, and storage media - Google Patents

Data sharing methods, clients, servers, computing devices, and storage media Download PDF

Info

Publication number
KR20200002985A
KR20200002985A KR1020197034696A KR20197034696A KR20200002985A KR 20200002985 A KR20200002985 A KR 20200002985A KR 1020197034696 A KR1020197034696 A KR 1020197034696A KR 20197034696 A KR20197034696 A KR 20197034696A KR 20200002985 A KR20200002985 A KR 20200002985A
Authority
KR
South Korea
Prior art keywords
key
client
encrypted data
access
authorization code
Prior art date
Application number
KR1020197034696A
Other languages
Korean (ko)
Other versions
KR102219008B1 (en
Inventor
젠쥔 장
원웨이 쥬
마오차이 리
지차오 탕
준 장
칭정 샹
쭝유 왕
칭 친
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20200002985A publication Critical patent/KR20200002985A/en
Application granted granted Critical
Publication of KR102219008B1 publication Critical patent/KR102219008B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 출원은 데이터 공유 방법을 제공하며, 암호화된 데이터를 획득하기 위해, 키에 따라 평문 데이터를 암호화하는 단계; 상기 암호화된 데이터를 정보 공유 시스템의 블록으로 업로드하는 단계 ― 상기 정보 공유 시스템은 블록체인 시스템임 ―; 상기 정보 공유 시스템에 대응하는 액세스 승인 서버로 상기 키의 제1 부분을 업로드하는 단계; 상기 암호화된 데이터에 대응하는 승인 코드를 상기 액세스 승인 서버로부터 수신하는 단계; 및 사용자가 상기 암호화된 데이터에 액세스하도록 승인되는 경우에 상기 사용자의 제2 클라이언트에게 상기 승인 코드 및 상기 키의 제2 부분을 전송하는 단계를 포함하며, 상기 키의 제2 부분은 상기 제1 부분을 제외한 상기 키의 나머지 부분을 포함한다. 본 출원은 또한 대응하는 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체를 더 제공한다.The present application provides a data sharing method, comprising: encrypting plain text data according to a key to obtain encrypted data; Uploading the encrypted data to a block of an information sharing system, wherein the information sharing system is a blockchain system; Uploading the first portion of the key to an access authorization server corresponding to the information sharing system; Receiving an authorization code corresponding to the encrypted data from the access authorization server; And sending a second portion of the authorization code and the key to a second client of the user when the user is authorized to access the encrypted data, wherein the second portion of the key is the first portion. Include the rest of the key except for. The present application further provides corresponding clients, servers, computing devices and storage media.

Description

데이터 공유 방법, 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체Data sharing methods, clients, servers, computing devices, and storage media

본 출원은 2017년 11월 2일에 중국 특허청에 출원된 중국 특허 출원 제201711065783.1호 ('데이터 공유 방법, 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체')의 우선권을 주장하며 이것은 그 전체가 참조로서 본 명세서 포함된다.This application claims the priority of Chinese Patent Application No. 201711065783.1 ('Data Sharing Methods, Clients, Servers, Computing Devices and Storage Media') filed with the Chinese Patent Office on November 2, 2017, which is incorporated by reference in its entirety. Specification is included.

본 출원은 컴퓨터 기술 분야에 관한 것으로, 구체적으로는 데이터 공유 방법, 클라이언트, 서버, 컴퓨팅 장치 및 저장 매체에 관한 것이다.TECHNICAL FIELD This application relates to the field of computer technology, and more particularly, to a data sharing method, a client, a server, a computing device, and a storage medium.

인터넷 기술의 발달로 일부 정보 공유 시스템이 현장에 데뷔했습니다. 사용자는 사진, 문서, 비디오 및 기타 파일과 같은 데이터를 정보 공유 시스템에 업로드하고 다른 사용자가 정보 공유 시스템을 통해 데이터에 액세스할 수 있는 권한을 부여 할 수 있습니다.With the development of Internet technology, some information sharing systems have made their debut in the field. You can upload data such as photos, documents, videos, and other files to an information sharing system and authorize other users to access the data through the information sharing system.

따라서, 데이터의 보안을 보장하기 위해, 예를 들어, 사용자가 파일에 대한 액세스를 요청할 때 사용자가 제공한 정보를 검증하기 위해 다음의 기술적 수단을 요구하는 정보 공유 시스템이 필요하다.Thus, to ensure the security of the data, there is a need for an information sharing system that requires the following technical means, for example, to verify the information provided by the user when the user requests access to the file.

본 출원의 실시예는 제1 클라이언트에 의해 수행되는 데이터 공유 방법을 제공하며, 암호화된 데이터를 획득하기 위해, 키(key)에 따라 평문 데이터를 암호화하는 단계; 상기 암호화된 데이터를 정보 공유 시스템의 블록으로 업로드하는 단계 ― 상기 정보 공유 시스템은 블록체인 시스템임 ―; 상기 정보 공유 시스템에 대응하는 액세스 승인 서버로 상기 키의 제1 부분을 업로드하는 단계; 상기 암호화된 데이터에 대응하는 승인 코드를 상기 액세스 승인 서버로부터 수신하는 단계; 및 사용자가 상기 암호화된 데이터에 액세스하도록 승인되는 경우에 상기 사용자의 제2 클라이언트에게 상기 승인 코드 및 상기 키의 제2 부분을 전송하는 단계 ― 상기 키의 제2 부분은 상기 제1 부분을 제외한 상기 키의 나머지 부분을 포함하고, 상기 액세스 승인 서버에게 상기 암호화된 데이터에 대한 액세스 요청을 전송하는 경우, 상기 제2 클라이언트가 상기 승인 코드 및 상기 키의 제2 부분을 상기 액세스 요청에 추가하고, 상기 액세스 승인 서버가 상기 승인 코드가 유효한 것으로 결정하는 경우에 상기 액세스 승인 서버가 상기 키의 제1 부분 및 제2 부분에 따라 상기 키를 생성하고, 상기 평문 데이터를 획득하기 위해, 상기 생성된 키에 따라 상기 정보 공유 시스템의 블록으로부터 획득된 상기 암호화된 데이터를 복호하며, 상기 제2 클라이언트에게 상기 암호화된 데이터를 리턴함 ―를 포함한다.An embodiment of the present application provides a data sharing method performed by a first client, the method comprising: encrypting plain text data according to a key to obtain encrypted data; Uploading the encrypted data to a block of an information sharing system, wherein the information sharing system is a blockchain system; Uploading the first portion of the key to an access authorization server corresponding to the information sharing system; Receiving an authorization code corresponding to the encrypted data from the access authorization server; And sending the authorization code and the second portion of the key to a second client of the user when the user is authorized to access the encrypted data, wherein the second portion of the key is other than the first portion. The second client adds the authorization code and the second portion of the key to the access request, when sending a request for access to the encrypted data to the access authorization server; In case the access authorization server determines that the authorization code is valid, the access authorization server generates the key according to the first and second portions of the key and obtains the key in order to obtain the plain text data. Accordingly decrypts the encrypted data obtained from the block of the information sharing system, and wherein the second client It includes - a return to the encrypted data also.

본 출원의 실시예는 데이터 제공 방법을 더 제공하며, 제1 클라이언트로부터 제1 키의 제1 부분을 수신하는 단계 ― 상기 제1 키는 정보 공유 시스템의 블록으로 업로드된 암호화된 데이터에 대응하고, 상기 암호화된 데이터는 상기 제1 키에 따라 평문 데이터를 암호화함으로써 획득되며, 상기 정보 공유 시스템은 블록체인 시스템임 ―; 상기 암호화된 데이터에 대응하는 제1 승인 코드를 생성하는 단계; 상기 제1 클라이언트가 제2 클라이언트가 상기 암호화된 데이터에 액세스하도록 승인하는 경우, 상기 제1 클라이언트가 상기 제2 클라이언트에게 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 전송하여, 상기 제2 클라이언트가 상기 암호화된 데이터에 액세스하는 경우에 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 액세스 요청에 추가할 수 있도록, 상기 제1 클라이언트에게 상기 제1 승인 코드를 전송하는 단계 ― 상기 제1 키의 제2 부분은 상기 제1 부분을 제외한 상기 제1 키의 나머지 부분을 포함함 ―을 포함하고, 상기 암호화된 데이터에 대한 임의의 클라이언트로부터의 액세스 요청의 수신에 응답하여, 상기 데이터 공유 방법은, 상기 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하는 단계; 상기 제2 승인 코드가 상기 제1 승인 코드와 동일하고 상기 제2 승인 코드가 유효한 경우에 상기 불완전한 키 및 상기 암호화된 데이터에 대응하는 상기 제1 키의 제1 부분에 따라 제2 키를 생성하는 단계 ― 상기 생성된 제2 키는 상기 불완전한 키가 상기 제1 키의 제2 부분과 동일한 경우에 상기 제1 키와 동일함 ―; 상기 정보 공유 시스템의 블록으로부터 상기 암호화된 데이터를 획득하는 단계; 및 상기 제2 키에 따라 상기 암호화된 데이터를 복호하는 단계 ― 상기 평문 데이터는 복호화를 통해 획득되고 상기 제2 키가 상기 제1 키와 동일한 경우에 상기 액세스 요청을 전송하는 상기 클라이언트에게 전송됨 ―를 더 포함한다.An embodiment of the present application further provides a data providing method, comprising: receiving a first portion of a first key from a first client, wherein the first key corresponds to encrypted data uploaded to a block of an information sharing system, The encrypted data is obtained by encrypting plain text data according to the first key, wherein the information sharing system is a blockchain system; Generating a first authorization code corresponding to the encrypted data; When the first client authorizes a second client to access the encrypted data, the first client sends the second grant code and the second portion of the first key to the second client, thereby generating the first client. 2 sending the first grant code to the first client so that the client can add the first grant code and the second portion of the first key to an access request when the client accesses the encrypted data; The second portion of the first key includes the remaining portion of the first key except the first portion, and in response to receiving an access request from any client to the encrypted data; The data sharing method comprises: obtaining a second grant code and an incomplete key from the access request; Generating a second key according to the incomplete key and a first portion of the first key corresponding to the encrypted data when the second grant code is the same as the first grant code and the second grant code is valid Step, said generated second key being equal to said first key if said incomplete key is equal to a second portion of said first key; Obtaining the encrypted data from the block of the information sharing system; And decrypting the encrypted data according to the second key, wherein the plain text data is obtained through decryption and is sent to the client sending the access request if the second key is equal to the first key. It further includes.

본 출원의 실시예는 제1 클라이언트를 제공하며, 암호화된 데이터를 획득하기 위해, 키(key)에 따라 평문 데이터를 암호화하도록 구성된 암호화 모듈; 상기 암호화된 데이터를 정보 공유 시스템의 블록으로 업로드하고, 상기 정보 공유 시스템에 대응하는 액세스 승인 서버로 상기 키의 제1 부분을 업로드하도록 구성된 업로딩 모듈 ― 상기 정보 공유 시스템은 블록체인 시스템임 ―; 상기 암호화된 데이터에 대응하는 승인 코드를 상기 액세스 승인 서버로부터 수신하고, 사용자가 상기 암호화된 데이터에 액세스하도록 승인되는 경우에 제2 클라이언트에게 상기 승인 코드 및 상기 키의 제2 부분을 전송하도록 구성된 승인 모듈 ― 상기 키의 제2 부분은 상기 제1 부분을 제외한 상기 키의 나머지 부분을 포함하고, 상기 액세스 승인 서버에게 상기 암호화된 데이터에 대한 액세스 요청을 전송하는 경우, 상기 제2 클라이언트가 상기 승인 코드 및 상기 키의 제2 부분을 상기 액세스 요청에 추가하고, 상기 액세스 승인 서버가 상기 승인 코드가 유효한 것으로 결정하는 경우에 상기 액세스 승인 서버가 상기 키의 제1 부분 및 제2 부분에 따라 상기 키를 생성하고, 상기 평문 데이터를 획득하기 위해, 상기 생성된 키에 따라 상기 정보 공유 시스템의 블록으로부터 획득된 상기 암호화된 데이터를 복호하며, 상기 제2 클라이언트에게 상기 암호화된 데이터를 리턴함 ―을 포함한다.An embodiment of the present application provides a first client, comprising: an encryption module configured to encrypt plain text data according to a key to obtain encrypted data; An uploading module configured to upload the encrypted data to a block of an information sharing system and to upload a first portion of the key to an access authorization server corresponding to the information sharing system, wherein the information sharing system is a blockchain system; An authorization configured to receive an authorization code corresponding to the encrypted data from the access authorization server and to send the authorization code and the second portion of the key to a second client when a user is authorized to access the encrypted data Module-The second portion of the key includes the remaining portion of the key except the first portion, and when the second client sends the request for access to the encrypted data to the access authorization server, the second client sends the authorization code. And add a second portion of the key to the access request, and if the access authorization server determines that the authorization code is valid, the access authorization server selects the key according to the first and second portions of the key. Generate and share the information according to the generated key to obtain the plain text data Comprises - decrypting the said encrypted data obtained from the block of the stem, and it returns the encrypted data to the second client.

본 출원의 실시예는 액세스 승인 서버를 제공하며, 제1 클라이언트로부터 제1 키의 제1 부분을 수신하고 ― 상기 제1 키는 정보 공유 시스템의 블록으로 업로드된 암호화된 데이터를 포함하고, 상기 암호화된 데이터는 상기 제1 키에 따라 평문 데이터를 암호화함으로써 획득되며, 상기 정보 공유 시스템은 블록체인 시스템임 ―, 상기 암호화된 데이터에 대응하는 제1 승인 코드를 생성하며, 제2 클라이언트가 상기 암호화된 데이터에 액세스하도록 승인하는 경우, 상기 제1 클라이언트가 상기 제2 클라이언트에게 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 전송하여, 상기 암호화된 데이터에 액세스하는 경우에 상기 제2 클라이언트가 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 액세스 요청에 추가할 수 있도록, 상기 제1 클라이언트에게 상기 제1 승인 코드를 전송하도록 구성된 승인 모듈 ― 상기 제1 키의 제2 부분은 상기 제1 부분을 제외한 상기 제1 키의 나머지 부분을 포함함 ―; 상기 암호화된 데이터에 대한 임의의 클라이언트로부터의 액세스 요청의 수신에 응답하여, 상기 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하고, 상기 제2 승인 코드가 상기 제1 승인 코드와 동일하고 상기 제2 승인 코드가 유효한 경우에 키 모듈을 트리거하도록 구성된 검증 모듈; 상기 불완전한 키 및 상기 암호화된 데이터에 대응하는 상기 제1 키의 제1 부분에 따라 제2 키를 생성하도록 구성된 상기 키 모듈 ― 상기 생성된 제2 키는 상기 불완전한 키가 상기 제1 키의 제2 부분과 동일한 경우에 상기 제1 키와 동일함 ―; 및 상기 정보 공유 시스템의 블록으로부터 상기 암호화된 데이터를 획득하고, 상기 제2 키에 따라 상기 암호화된 데이터를 복호하도록 구성된 복호화 모듈 ― 상기 평문 데이터는 복호화를 통해 획득되고 상기 제2 키가 상기 제1 키와 동일한 경우에 상기 액세스 요청을 전송하는 상기 클라이언트에게 전송됨 ―을 포함한다.An embodiment of the present application provides an access authorization server, receiving a first portion of a first key from a first client, the first key comprising encrypted data uploaded to a block of an information sharing system, wherein the encryption Encrypted data is obtained by encrypting the plain text data according to the first key, wherein the information sharing system is a blockchain system, generates a first authorization code corresponding to the encrypted data, and wherein a second client generates the encrypted When authorizing to access the data, the second client sends the first authorization code and the second portion of the first key to the second client so that the second client can access the encrypted data. Send the first client to the first client so that the first grant code and the second portion of the first key can be added to the access request. An authorization module configured to send an authorization code, wherein the second portion of the first key includes the remaining portion of the first key except the first portion; In response to receiving an access request from any client for the encrypted data, obtaining a second grant code and an incomplete key from the access request, wherein the second grant code is the same as the first grant code and the first grant code A verification module, configured to trigger the key module if the authorization code is valid; The key module configured to generate a second key according to the incomplete key and the first portion of the first key corresponding to the encrypted data, wherein the generated second key is the second key of the first key; Same as the first key if same as the portion; And a decryption module configured to obtain the encrypted data from the block of the information sharing system, and to decrypt the encrypted data according to the second key, wherein the plain text data is obtained through decryption and the second key is the first key. Sent to the client sending the access request if equal to a key.

본 출원의 실시예는 컴퓨팅 장치를 더 제공하며, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램 ― 상기 하나 이상의 프로그램은 전술한 방법을 수행하기 위한 명령을 포함함 ―을 포함한다.Embodiments of the present application further provide a computing device, comprising one or more processors; Memory; And one or more programs stored in the memory and configured to be executed by the one or more processors, wherein the one or more programs include instructions for performing the method described above.

본 출원의 실시예는 명령을 포함하는 하나 이상의 프로그램을 저장하고, 상기 명령이, 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치가 전술한 방법을 수행할 수 있게 하는 저장 매체를 더 제공한다.Embodiments of the present application further provide a storage medium for storing one or more programs comprising instructions and allowing the computing device to perform the methods described above when the instructions are executed by a computing device.

본 개시의 실시예의 기술적 해결수단을 보다 명확하게 설명하기 위해, 이하에서는 실시예를 설명하는데 필요한 첨부 도면을 간략하게 소개한다. 명백하게, 이하의 설명에서의 첨부 도면은 본 개시의 실시예만을 도시하고, 당업자는 창조적 노력없이 이들 첨부 도면으로부터 다른 도면을 도출할 수 있다.
본 개시의 실시예의 기술적 해결수단을 보다 명확히 설명하기 위해, 본 개시의 추가 이해를 위해 첨부 도면이 제공된다. 본 명세서의 첨부 도면은 본 개시의 일부 실시예만을 도시하고, 당업자는 창조적 노력없이 이들 첨부 도면으로부터 다른 실시예를 도출 할 수 있다.
도 1은 실시예에 따른 시스템 아키텍처 도면이다.
도 2는 실시예에 따른 방법의 흐름도이다.
도 3은 실시예에 따른 다른 방법의 흐름도이다.
도 4는 실시예에 따른 메시지 상호 작용의 개략도이다.
도 5는 실시예에 따른 사용자 인터페이스의 개략도이다.
도 6은 실시예에 따른 사용자 인터페이스의 개략도이다.
도 7은 실시예에 따른 클라이언트의 개략적인 구조도이다.
도 8은 실시예에 따른 서버의 개략적인 구조도이다.
도 9는 실시예에 따른 컴퓨팅 장치의 구성의 개략적인 구조도이다.
BRIEF DESCRIPTION OF DRAWINGS To describe the technical solutions in the embodiments of the present disclosure more clearly, the following briefly introduces the accompanying drawings required for describing the embodiments. Apparently, the accompanying drawings in the following description show only embodiments of the present disclosure, and a person of ordinary skill in the art may derive other drawings from these accompanying drawings without creative efforts.
BRIEF DESCRIPTION OF DRAWINGS To describe the technical solutions in the embodiments of the present disclosure more clearly, the accompanying drawings are provided for a further understanding of the present disclosure. The accompanying drawings in this specification show only some embodiments of the disclosure, and those skilled in the art can derive other embodiments from these accompanying drawings without creative efforts.
1 is a system architecture diagram according to an embodiment.
2 is a flowchart of a method according to an embodiment.
3 is a flowchart of another method according to an embodiment.
4 is a schematic diagram of message interaction according to an embodiment.
5 is a schematic diagram of a user interface according to an embodiment.
6 is a schematic diagram of a user interface according to an embodiment.
7 is a schematic structural diagram of a client according to an embodiment.
8 is a schematic structural diagram of a server according to an embodiment.
9 is a schematic structural diagram of a configuration of a computing device according to an embodiment.

설명을 간결하고 직관적으로 하기 위해, 본 개시의 해결수단은 몇몇 대표적인 실시예를 설명함으로써 여기에서 예시된다. 그러나, 모든 구현이 여기에서 예시된 것은 아니다. 실시예들에서의 다수의 세부 사항은 단지 본 개시의 해결수단의 이해를 돕기 위해 사용되며, 본 개시의 기술적 해결수단은 구현 중에 이들 세부 사항으로 제한되지 않을 수 있다. 본 개시의 해결수단을 불필요하게 모호하게 하지 않기 위해, 일부 구현은 상세하게 설명되지 않지만, 프레임워크만이 제공된다. 이하에서, "포함한다"라는 용어는 "포함하지만 이에 제한되지 않는다"는 것을 지칭하고, "...에 따라"라는 용어는 "적어도 ...에 따르지만, 그러나 ...에 따른 것으로만 제한되지는 않는다."는 것을 지칭한다. 명세서 및 청구 범위에서 "포함한다(include)/포함한다(comprise)"라는 용어는 적어도 어느 정도 포함하는 것을 지칭하며, 이후에 언급된 특징뿐만 아니라 다른 특징도 포함하는 것으로 해석되어야한다.For the sake of brevity and intuitiveness of explanation, the solutions of the present disclosure are illustrated herein by describing some representative embodiments. However, not all implementations are illustrated here. Numerous details in the embodiments are used only to aid understanding of the solutions of the present disclosure, and the technical solutions of the present disclosure may not be limited to these details during implementation. In order not to unnecessarily obscure the solutions of this disclosure, some implementations are not described in detail, but only frameworks are provided. In the following, the term "comprising" refers to "including but not limited to" and the term "according to" is "according at least, but limited to only according to ... It does not mean. " The term "include / comprise" in the specification and claims refers to inclusion at least to some extent and should be construed to include other features as well as features mentioned hereinafter.

본 개시의 실시예는 데이터 공유 방법을 제공한다. 이 방법은 도 1에 도시된 시스템 아키텍처에 적용될 수 있다. 도 1에 도시된 바와 같이, 시스템 아키텍처는 제1 클라이언트(101), 제2 클라이언트(102), 액세스 승인 서버(103) 및 정보 공유 시스템(104)을 포함할 수 있다. 엔티티는 인터넷(105)을 통해 통신할 수 있다. 정보 공유 시스템(104)은 사용자에 의해 업로드된 다양한 데이터를 저장하도록 구성될 수 있고, 사용자는 또한 정보 공유 시스템(104)의 데이터에 액세스할 수 있다. 실제 네트워크는 많은 양의 클라이언트를 포함할 수 있지만, 클라이언트(101 및 102)로 제한되지는 않는다. 정보 공유 시스템(104)에 업로드된 데이터는 데이터의 보유자 및 데이터를 업로드한 사용자에 의해 사용되는 클라이언트일 수 있는 제1 클라이언트(101)에 대응할 수 있으며, 공유자 클라이언트라고도 지칭될 수 있다. 이러한 데이터는 하나 이상의 제2 클라이언트(102)에 의해 액세스될 수 있다. 제2 클라이언트(102)는 이러한 데이터에 액세스하는 사용자에 의해 사용되는 클라이언트일 수 있으며, 방문자 클라이언트 또는 뷰어 클라이언트로 지칭될 수도 있다. 액세스 승인 서버(103)는 정보 공유 시스템(104)에 직접 연결되거나 또는 인터넷(105)을 통해 정보 공유 시스템(104)에 연결될 수 있으며, 정보 공유 시스템(104)의 액세스 서비스 또는 승인된 보기(view) 서비스를 제공하도록 구성될 수 있다. 제2 클라이언트(102)는 액세스 승인 서버(103)를 통해 정보 공유 시스템(104)으로부터 원하는 데이터를 획득할 수 있다. 구체적으로, 제2 클라이언트(102)는 데이터에 대한 액세스 요청 또는 보기 요청을 액세스 승인 서버(103)에게 전송할 수 있다. 액세스 승인 서버(103)는 제2 클라이언트(102)의 사용자가 데이터에 액세스할 수 있는 권리를 가지고 있는지를 검증함으로써, 예를 들어 액세스 요청에서 승인 코드를 검증함으로써 액세스 요청을 인증한다. 인증이 성공하는 경우, 정보 공유 시스템(104)으로부터 획득된 암호화된 데이터는 액세스 요청에서 운반되는 키(key) 정보에 따라 복호될 수 있다. 복호 후 평문 데이터가 성공적으로 획득되면, 평문 데이터는 제2 클라이언트(102)로 리턴될 수 있다.Embodiments of the present disclosure provide a data sharing method. This method can be applied to the system architecture shown in FIG. As shown in FIG. 1, the system architecture may include a first client 101, a second client 102, an access authorization server 103, and an information sharing system 104. The entity can communicate via the Internet 105. The information sharing system 104 can be configured to store various data uploaded by the user, and the user can also access the data of the information sharing system 104. The actual network may include a large amount of clients, but is not limited to clients 101 and 102. The data uploaded to the information sharing system 104 may correspond to the first client 101, which may be a client used by the holder of the data and the user who uploaded the data, and may also be referred to as a sharer client. Such data may be accessed by one or more second clients 102. The second client 102 can be a client used by a user to access such data and can also be referred to as a visitor client or viewer client. The access authorization server 103 may be directly connected to the information sharing system 104 or may be connected to the information sharing system 104 via the Internet 105, and the access service or authorized view of the information sharing system 104 may be used. ) To provide a service. The second client 102 can obtain the desired data from the information sharing system 104 via the access authorization server 103. Specifically, the second client 102 may send an access request or view request for data to the access authorization server 103. The access authorization server 103 authenticates the access request by verifying that the user of the second client 102 has the right to access the data, for example by verifying the authorization code in the access request. If authentication succeeds, the encrypted data obtained from the information sharing system 104 may be decrypted according to the key information carried in the access request. If plain text data is successfully obtained after decoding, the plain text data may be returned to the second client 102.

여기서, 제1 클라이언트(101) 및 제2 클라이언트(102)는 공유 데이터를 액세스할 수 있는 다양한 APP 클라이언트 또는 브라우저일 수 있다. 제1 클라이언트(101) 및 제2 클라이언트(102)는 다양한 단말 장치에서 실행될 수 있으며, PC, 이동 전화, 태블릿 컴퓨터, 팜탑 컴퓨터, 울트라북, 웨어러블 장치 등을 포함할 수 있다. 정보 공유 시스템(104)은 다양한 통합 또는 분산 데이터 저장 시스템일 수 있고, 블록체인 시스템(또는 블록체인 네트워크로 지칭됨), 데이터베이스 시스템, 네트워크 디스크/클라우드 디스크 시스템 등을 포함할 수 있지만 이것으로 제한되는 것은 아니다. 정보 공유 시스템(104)에 저장된 데이터는 디지털 자산, 인증 서비스, 분산 원장(leger), 공유 경제 및 다른 시나리오를 포함하는 다수의 서비스 시나리오에서 생성된 데이터를 포함할 수 있다.Here, the first client 101 and the second client 102 may be various APP clients or browsers that can access the shared data. The first client 101 and the second client 102 may be executed in various terminal devices, and may include a PC, a mobile phone, a tablet computer, a palmtop computer, an ultrabook, a wearable device, and the like. Information sharing system 104 may be a variety of integrated or distributed data storage systems, and may include, but is not limited to, blockchain systems (or referred to as blockchain networks), database systems, network disk / cloud disk systems, and the like. It is not. Data stored in information sharing system 104 may include data generated in a number of service scenarios, including digital assets, authentication services, distributed ledgers, shared economies, and other scenarios.

디지털 자산은 전자 데이터의 형태로 존재하는 기업에 의해 소유되거나 제어되는 비 통화 자산을 지칭하며, 일상 활동으로 판매되거나 생산 프로세스에서 사용될 수 있다. 디지털 자산의 생산은 사무 자동화로부터 이익을 얻을 수 있다. 디지털 자산은 전자 지불 시스템에 기초하여 개발되며, 공유 크레딧, 쿠폰, 디지털 통화, 주식 등록 및 기타 시나리오와 같은 시나리오를 위해 사용될 수 있다. 인증 서비스는 저작권/소유권 투영, 사법 문서 투영, 자선 기부 및 개인 및 기업 인증서와 같은 비즈니스 시나리오를 위해 사용된다. 공유 원장은 에이전시 간 청산, 은행 인수, 에이전시 간 신디케이트 대출, 공급망 금융 및 국경 간 송금과 같은 비즈니스 시나리오를 위해 사용된다. 블록체인은 데이터 블록을 연대순으로 순차적으로 연결하여 형성된 링크 데이터 구조이며, 암호화를 통해 보장되는 변조 방지 및 위조 방지 분산 원장이다. 블록체인 시스템은 새로운 브랜드의 분산 기본 아키텍처로, 링크 데이터 구조를 사용하여 데이터를 검증하고 저장하며, 분산 노드 합의 알고리즘을 사용하여 데이터를 생성하고 업데이트하며, 암호화를 통해 데이터 전송 및 액세스의 보안을 보장하고, 자동화된 스크립트 코드에 의해 형성된 스마트 계약을 사용하여 데이터를 프로그래밍하고 작동시킨다.Digital assets refer to non-monetary assets that are owned or controlled by companies that exist in the form of electronic data and can be sold as daily activities or used in production processes. The production of digital assets can benefit from office automation. Digital assets are developed based on electronic payment systems and can be used for scenarios such as shared credits, coupons, digital currencies, stock registrations and other scenarios. Certification services are used for business scenarios such as copyright / ownership projection, judicial document projection, charitable donations, and personal and corporate certificates. Shared ledgers are used for business scenarios such as cross-agency liquidation, bank acquisitions, cross-agency syndication loans, supply chain finance and cross-border remittances. Blockchain is a link data structure formed by sequentially connecting data blocks in chronological order, and is a distributed tamper proof and anti-counterfeiting ledger. Blockchain system is a brand new distributed basic architecture that uses link data structure to verify and store data, create and update data using distributed node consensus algorithm, and secure data transmission and access through encryption. Program and operate the data using smart contracts formed by automated script code.

일부 비즈니스 시나리오에서, 정보 공유 시스템(104)에 업로드된 데이터는 암호화될 필요가 있으며, 데이터에 대한 액세스는 인증될 필요가 있을 수 있다. 다시 말해서, 일부 데이터는 조건부로 공유될 수 있고, 이러한 데이터는 사용자의 개인 데이터, 예를 들어 개인 또는 에이전시의 실명 인증 정보, 금융 계좌 정보, 사진 앨범, 원본 및 공유 인증을 필요로 하는 정보로 지칭될 수 있다. 일부 사용자는 데이터가 특정 사용자 중에 공유될 수 있도록 컨텐츠를 공개하지 않고 이러한 데이터를 공유하기를 원할 수 있다. 따라서, 데이터는 정보 공유 시스템(104)에서 암호화되어 저장될 수 있고, 따라서 특정 사용자는 데이터를 볼 수 있는 권한이 부여될 수 있다.In some business scenarios, data uploaded to the information sharing system 104 may need to be encrypted, and access to the data may need to be authenticated. In other words, some data may be conditionally shared, such data being referred to as the user's personal data, such as personal or agency's real name authentication information, financial account information, photo albums, original and shared authentication information. Can be. Some users may want to share this data without publishing content so that data can be shared among certain users. Thus, data can be stored encrypted in the information sharing system 104, so that a particular user can be authorized to view the data.

실시예에 따르면, 제1 클라이언트(101)의 단말 장치에 의해 수행될 수 있는 데이터 공유 방법이 제공된다. 도 1은 하나의 제1 클라이언트(101)만을 도시하고, 실제 적용 시나리오에서는, 다수의 제1 클라이언트(101)가 존재할 수 있다. 제1 클라이언트(101) 각각은 여기에 설명된 방법을 구현할 수 있다. 도 2를 참조하면, 이 방법은 다음의 단계를 포함할 수 있다.According to an embodiment, a data sharing method that can be performed by a terminal device of the first client 101 is provided. 1 shows only one first client 101, and in a practical application scenario, there may be multiple first clients 101. Each of the first clients 101 may implement the method described herein. Referring to FIG. 2, the method may include the following steps.

단계 201에서, 제1 클라이언트(101)는 암호화된 데이터를 획득하기 위해 키에 따라 평문 데이터를 암호화할 수 있다.In operation 201, the first client 101 may encrypt the plain text data according to the key to obtain the encrypted data.

단계 202에서, 제1 클라이언트(101)는 암호화된 데이터를 정보 공유 시스템(104)의 블록에 업로드할 수 있으며, 정보 공유 시스템은 블록체인 시스템이다.In step 202, the first client 101 may upload the encrypted data to a block of the information sharing system 104, wherein the information sharing system is a blockchain system.

여기서, 사용자가 데이터를 업로드하고자 하는 경우, 사용자에 의해 사용되는 제1 클라이언트(101)는 미리 설정된 키를 사용하여 데이터(즉, 평문 데이터)를 암호화한 다음, 암호화된 데이터를 정보 공유 시스템(104)에 업로드한다.Here, when the user wants to upload data, the first client 101 used by the user encrypts the data (ie, the plain text data) using a preset key, and then encrypts the encrypted data with the information sharing system 104. Upload to).

단계 203에서, 제1 클라이언트(101)는 키의 제1 부분을 정보 공유 시스템(104)에 대응하는 액세스 승인 서버(103)에 업로드할 수 있다.In step 203, the first client 101 may upload the first portion of the key to the access authorization server 103 corresponding to the information sharing system 104.

여기서, 정보 공유 시스템(104)에 대응하는 액세스 승인 서버(103)는 정보 공유 시스템(104)에 연결된 액세스 승인 서버(103)를 지칭할 수 있다.Here, the access authorization server 103 corresponding to the information sharing system 104 may refer to the access authorization server 103 connected to the information sharing system 104.

여기서, 키는 문자열일 수 있으며, 키로 사용되는 문자열은 각각 키의 제1 부분 및 제2 부분으로 사용되는 2개의 문자열로 분할될 수 있다. 이러한 단계에서, 키의 제1 부분은 액세스 승인 서버(103)에 업로드될 수 있다. 일부 실시예들에서, 키의 전반부는 제1 부분으로서 사용될 수 있고, 키의 후반부는 제2 부분으로서 사용될 수 있다. 일부 다른 실시예들에서, 키의 후반부는 제1 부분으로서 사용될 수 있고, 키의 전반부는 제2 부분으로서 사용될 수 있다. 제1 부분 및 제2 부분의 길이는 동일하거나 상이할 수 있다. 일부 실시예들에서, 키의 분할 동안, 소정 길이를 갖는 문자열은 미리 설정된 문자열 길이 값(즉, 문자열에 포함된 미리 설정된 문자 개수)에 따라 분할되어 키의 제1 부분으로서 기능할 수 있고, 그 후 문자열의 나머지는 키의 제2 부분으로 사용된다.Here, the key may be a string, and the string used as the key may be divided into two strings used as the first part and the second part of the key, respectively. In this step, the first portion of the key can be uploaded to the access authorization server 103. In some embodiments, the first half of the key may be used as the first portion and the second half of the key may be used as the second portion. In some other embodiments, the latter half of the key may be used as the first portion and the first half of the key may be used as the second portion. The length of the first portion and the second portion may be the same or different. In some embodiments, during splitting of a key, a string having a predetermined length may be divided according to a preset string length value (ie, the preset number of characters included in the string) to serve as the first portion of the key, The rest of the string is then used as the second part of the key.

단계 204에서, 제1 클라이언트(101)는 액세스 승인 서버(103)로부터 암호화된 데이터에 대응하는 승인 코드를 수신할 수 있다.In step 204, the first client 101 may receive an authorization code corresponding to the encrypted data from the access authorization server 103.

일부 실시예에서, 암호화된 데이터에 대해 제1 클라이언트(101)에 의해 업로드된 키의 제1 부분을 수신하는 경우, 액세스 승인 서버(103)는 암호화된 데이터에 대한 승인 코드를 생성한 다음, 승인 코드를 제1 클라이언트(101)에게 리턴한다. 구체적으로, 액세스 승인 서버(103)는 데이터를 업로드하는 사용자에 대응하는 규칙에 따라 승인 코드를 생성할 수 있다.In some embodiments, upon receiving the first portion of the key uploaded by the first client 101 for the encrypted data, the access authorization server 103 generates an authorization code for the encrypted data and then authorizes it. Return the code to the first client 101. Specifically, the access authorization server 103 may generate an authorization code according to a rule corresponding to the user uploading the data.

단계 205에서, 제1 클라이언트(101)는 사용자가 암호화된 데이터를 액세스하도록 승인된 경우에 승인 코드 및 키의 제2 부분을 사용자의 다른 클라이언트, 예를 들어 제2 클라이언트(102)에게 전송할 수 있어서, 암호화된 데이터에 대한 액세스 요청을 액세스 승인 서버(103)에 전송하는 경우에 제2 클라이언트(102)가 승인 코드 및 키의 제2 부분을 액세스 요청에 추가할 수 있으며, 키의 제2 부분은 제1 부분을 제외한 키 내의 나머지 부분을 포함한다. In step 205, the first client 101 can send the second portion of the authorization code and key to another client of the user, for example the second client 102, if the user is authorized to access the encrypted data. The second client 102 can add the second portion of the authorization code and key to the access request when sending an access request for encrypted data to the access authorization server 103, where the second portion of the key It includes the remaining part in the key except the first part.

이러한 방식으로, 액세스 승인 서버(103)는 승인 코드가 유효한 것으로 결정되는 경우 키의 제1 부분 및 제2 부분에 따라 키를 생성할 수 있고, 생성된 키에 따라 정보 공유 시스템(104)의 블록으로부터 획득된 암호화된 데이터를 복호하며, 제2 클라이언트(102)에 대한 복호를 통해 획득된 평문 데이터를 제공한다.In this way, the access authorization server 103 can generate a key according to the first and second portions of the key if the authorization code is determined to be valid, and block the information sharing system 104 in accordance with the generated key. Decrypts the encrypted data obtained from the A / D header and provides the plain text data obtained through the decryption to the second client 102.

일부 실시예들에서, 사용자가 암호화된 데이터를 보고자 하는 경우, 사용자는 사용자에 의해 사용되는 제2 클라이언트(103)에 의해 제1 클라이언트(101)로부터 승인 코드를 요청할 수 있다. 사용자에게 데이터를 볼 권한을 부여하기로 결정하는 경우, 제1 클라이언트(101)는 승인 코드 및 키의 제2 부분을 제2 클라이언트(102)에 전송할 수 있다.In some embodiments, if the user wishes to view encrypted data, the user may request an authorization code from the first client 101 by the second client 103 used by the user. When determining to authorize the user to view data, the first client 101 can send the second portion of the authorization code and key to the second client 102.

일부 실시예들에서, 액세스 승인 서버(103)는 완전한 키를 형성하기 위해 키의 제1 부분 및 제2 부분을 결합할 수 있다. 제2 클라이언트(102)로부터 액세스 승인 서버(103)에 의해 획득된 키의 제2 부분과 제1 클라이언트(101)로부터 획득된 키의 제1 부분이 동일한 키에 속하지 않으면, 두 부분은 정확한 키를 형성하도록 결합될 수 없다. 따라서, 복호화가 실패하는 경우, 제2 클라이언트(102)는 평문 데이터를 획득할 수 없다. 액세스 승인 서버(103)는 실패 응답 또는 암호화된 데이터를 제2 클라이언트(10)에게 리턴할 수 있다. 이와 같이, 제2 클라이언트(102)는 데이터의 내용을 성공적으로 볼 수 없다. 따라서, 제1 클라이언트(101)에 의해 업로드된 데이터의 보안이 효과적으로 보장된다.In some embodiments, access authorization server 103 may combine the first portion and the second portion of the key to form a complete key. If the second portion of the key obtained by the access authorization server 103 from the second client 102 and the first portion of the key obtained from the first client 101 do not belong to the same key, then the two portions may not be the correct key. Cannot be combined to form. Therefore, when decryption fails, the second client 102 cannot obtain the plain text data. The access grant server 103 may return a failure response or encrypted data to the second client 10. As such, the second client 102 cannot successfully view the contents of the data. Thus, the security of the data uploaded by the first client 101 is effectively guaranteed.

전술한 실시예에서 제공된 방법을 사용함으로써, 제1 클라이언트(101)는 키 및 승인 코드를 보유한다. 액세스 승인 서버(103)는 승인 코드 및 키의 제1 부분을 보유하고, 인증되는 경우, 제2 클라이언트(102)는 키의 제2 부분 및 승인 코드를 보유할 수 있다. 이러한 방식으로, 제2 클라이언트(102)가 액세스 승인 서버(103)를 통해 대응하는 데이터에 대한 액세스를 요청하는 경우, 액세스 승인 서버(103)는 먼저 승인 코드가 유효한지를 검증하고, 승인 코드가 유효한 경우에 제1 클라이언트(101) 및 제2 클라이언트(102)로부터 획득된 불완전한 키(키의 제1 부분 및 제2 부분)를 사용하여 완전한 키를 획득할 수 있다. 제2 클라이언트(102)에 의해 제공된 불완전한 키가 유효하지 않으면, 정확한 완전한 키가 획득될 수 없고, 암호화된 데이터는 성공적으로 복호될 수 없어서, 데이터의 보안을 보장할 수 있다. 이러한 실시예에서, 제2 클라이언트(102) 및 액세스 승인 서버(103)는 각각 키의 일부를 보유하며, 이들 중 어느 누구도 암호화된 데이터에 액세스할 권리를 가질 수 없다. 완전한 키는 제2 클라이언트(102) 및 액세스 승인 서버(103)에 의해 보유된 키 정보가 결합되는 경우에만 획득될 수 있으므로, 데이터 보안 및 사용자 프라이버시를 보장할 수 있다. 이러한 방식으로, 정보 공유 시스템(104)에 저장된 암호화된 데이터에 대해, 그리고 사용자가 공개하기를 원하지 않는 경우, 제1 클라이언트(101)는 액세스 승인 서버(103)를 통해 일부 제2 클라이언트(102)가 암호화된 데이터의 평문을 액세스할 수 있는 권한을 부여할 수 있으므로, 정보 공유와 프라이버시 보호 사이의 균형을 달성하고 더 나은 정보 공유 메커니즘을 제공할 수 있다.By using the method provided in the above embodiment, the first client 101 holds a key and an authorization code. The access authorization server 103 holds the authorization code and the first portion of the key, and if authenticated, the second client 102 may retain the second portion of the key and the authorization code. In this way, when the second client 102 requests access to the corresponding data through the access authorization server 103, the access authorization server 103 first verifies that the authorization code is valid, and the authorization code is valid. In this case, the incomplete key (first part and second part of the key) obtained from the first client 101 and the second client 102 can be used to obtain the complete key. If the incomplete key provided by the second client 102 is not valid, the correct complete key cannot be obtained, and the encrypted data cannot be successfully decrypted, thereby ensuring the security of the data. In this embodiment, the second client 102 and the access authorization server 103 each hold a portion of the key, and none of them has the right to access the encrypted data. The complete key can be obtained only when the key information held by the second client 102 and the access authorization server 103 are combined, thereby ensuring data security and user privacy. In this manner, for encrypted data stored in the information sharing system 104, and if the user does not want to disclose, the first client 101 may access some second clients 102 via the access authorization server 103. Can authorize access to plain text of encrypted data, thereby achieving a balance between information sharing and privacy protection and providing a better information sharing mechanism.

전술한 실시예는 블록체인의 데이터 공유 시나리오에 적용될 수 있다. 액세스 승인 서버(103)는 개인 데이터의 인증된 보기 서비스를 제공할 수 있으며, 이는 정보 공유 시스템에서 블록체인을 위해 제공되는 데이터 프라이버시 보호를 위한 선택적 서비스일 수 있다. 이 서비스는 정보 공유 블록체인 및 디지털 자산 블록체인과 같은 시나리오에 적용되어 사용자가 공개하고 싶지 않은 데이터를 보호하고 일부 사용자가 독립적인 승인을 통해 데이터를 볼 수 있도록 할 수 있다. 블록체인은 공유의 원칙을 기반으로 하므로, 모든 사용자가 블록체인의 데이터를 자유롭게 볼 수 있다. 여기서, 사용자가 승인되었는지의 여부에 관계없이 사용자는 자유롭게 데이터를 볼 수 있다. 그러나, 액세스 승인 서버(103)를 통해 보여지는 데이터만이 복호된 평문 데이터일 수 있다. 사용자가 블록체인에서 데이터를 직접 보는 경우, 사용자는 암호화된 데이터를 획득하고 평문 데이터를 획득할 수 없다.The above embodiment can be applied to a data sharing scenario of the blockchain. The access authorization server 103 may provide an authenticated viewing service of personal data, which may be an optional service for data privacy protection provided for the blockchain in an information sharing system. The service can be applied to scenarios such as information sharing blockchain and digital asset blockchain to protect data that users do not want to disclose and allow some users to view the data through independent approval. Blockchain is based on the principle of sharing, so any user can freely view the data on the blockchain. Here, the user can freely view the data regardless of whether the user is authorized or not. However, only the data viewed through the access grant server 103 may be decoded plain text data. If the user views the data directly on the blockchain, the user cannot obtain the encrypted data and obtain the plain text data.

일부 실시예에서, 단계 204를 다시 참조하면, 제1 클라이언트(101)는 승인 코드를 수신한 후 암호화된 데이터의 액세스 토큰 또는 데이터 보기 토큰을 추가로 생성할 수 있다. 액세스 토큰은 승인 코드 및 키의 제2 부분을 포함할 수 있다. 단계 205에서, 승인 코드 및 키의 제2 부분을 제2 클라이언트(102)에게 전송하는 단계는 구체적으로, 제2 클라이언트(102)가 액세스 요청에 액세스 토큰을 추가할 수 있도록 액세스 토큰을 제2 클라이언트(102)에게 전송하는 단계를 포함할 수 있다. 이와 같이, 제1 클라이언트(101)는 승인 코드 및 키의 제2 부분을 제2 클라이언트(102)에게 전송할 수 있다. 여기서, 승인 코드 및 키는 숫자 및/또는 문자로 형성된 문자열일 수 있다. 유사하게, 승인 코드 및 키의 제2 부분에 의해 형성된 액세스 토큰은 숫자 및/또는 문자에 의해 형성된 문자열일 수 있다. 이러한 실시예에서, 제1 클라이언트(101)는 대응하는 사용자에게 제1 클라이언트(101)에 의해 업로드된 암호화된 데이터에 액세스할 수 있는 권한을 부여하기 위해 제2 클라이언트(102)에게 토큰을 발행할 수 있다. 게다가, 발행된 토큰은 완전한 키를 갖지 않을 수 있다. 데이터를 복호하기 위한 완전한 키를 획득하기 위해 액세스 승인 서버(103)에 액세스하기 위해 검증이 추가로 필요할 수 있으며, 따라서 데이터 보안을 효과적으로 보장할 수 있다.In some embodiments, referring back to step 204, the first client 101 can further generate an access token or data view token of the encrypted data after receiving the authorization code. The access token can include a second portion of the authorization code and the key. In step 205, sending the second portion of the authorization code and key to the second client 102 specifically includes access tokens to the second client so that the second client 102 can add the access token to the access request. And transmitting to 102. As such, the first client 101 can send the second portion of the authorization code and key to the second client 102. Here, the authorization code and key may be a string formed of numbers and / or letters. Similarly, the access token formed by the second portion of the authorization code and key may be a string formed by numbers and / or letters. In such an embodiment, the first client 101 may issue a token to the second client 102 to authorize the corresponding user to access the encrypted data uploaded by the first client 101. Can be. In addition, the issued token may not have a complete key. Further verification may be required to access the access authorization server 103 to obtain a complete key for decrypting the data, thus effectively ensuring data security.

일부 실시예에서, 단계 202를 다시 참조하면, 암호화된 데이터가 정보 공유 시스템(104)에 업로드되는 경우, 제1 클라이언트(101)는 암호화된 데이터의 보유자의 파일 식별자를 추가로 업로드할 수 있으며, 정보 공유 시스템(104)이 암호화된 데이터를 보유자의 파일 식별자 및 사용자 식별자와 연관시킬 수 있도록 이는 일반적으로 현재 제1 클라이언트(101)를 사용하는 사용자의 식별자이다. 따라서, 액세스 승인 서버(103)는 보유자의 파일 식별자 및 사용자 식별자에 따라 정보 공유 시스템(104)으로부터 암호화된 데이터를 획득할 수 있다. 여기서, 암호화된 데이터가 업로드되는 경우, 보유자의 파일 식별자 및 사용자 식별자는 동시에 정보 공유 시스템(104)에 업로드될 수 있다. 정보 공유 시스템(104)은 암호화된 데이터를 저장할 때 암호화된 데이터를 보유자의 파일 식별자 및 사용자 식별자와 함께 연관시킬 수 있다. 정보 공유 시스템(104)에서 암호화된 데이터를 쿼리하는 경우, 액세스 승인 서버(103)는 보유자의 파일 식별자 및 사용자 식별자를 쿼리 요청에 추가할 수 있다. 이러한 방식으로, 정보 공유 서버(104)는 보유자의 파일 식별자 및 사용자 식별자와 연관된 암호화된 데이터를 결정하고, 암호화된 데이터를 액세스 승인 서버(103)로 리턴할 수 있다.In some embodiments, referring back to step 202, when encrypted data is uploaded to the information sharing system 104, the first client 101 may further upload the file identifier of the holder of the encrypted data, This is generally the identifier of the user currently using the first client 101 so that the information sharing system 104 can associate the encrypted data with the file identifier and the user identifier of the holder. Thus, the access authorization server 103 may obtain encrypted data from the information sharing system 104 according to the holder's file identifier and user identifier. Here, when encrypted data is uploaded, the holder's file identifier and user identifier can be uploaded to the information sharing system 104 at the same time. The information sharing system 104 may associate the encrypted data with the holder's file identifier and user identifier when storing the encrypted data. When the information sharing system 104 queries the encrypted data, the access authorization server 103 may add the holder's file identifier and user identifier to the query request. In this way, information sharing server 104 may determine encrypted data associated with the file identifier and user identifier of the holder and return the encrypted data to access authorization server 103.

일부 실시예들에서, 단계 203을 다시 참조하면, 키의 제1 부분이 액세스 승인 서버(104)에 업로드되는 경우, 제1 클라이언트(101)는 보유자의 파일 식별자 및 사용자 식별자를 추가로 업로드하여, 액세스 승인 서버(103)가 보유자의 사용자 식별자에 대응하는 규칙에 따라 승인 코드를 생성하고, 승인 코드를 키의 제1 부분, 파일 식별자 및 보유자의 사용자 식별자와 연관시킬 수 있다. 액세스 요청을 수신하는 경우, 액세스 승인 서버(103)는 액세스 요청에서 운반되는 보유자의 파일 식별자 및 사용자 식별자에 따라 연관된 승인 코드 및 키의 제1 부분(액세스 승인 서버(103)에서 로컬로 유지되는 암호화된 데이터에 대응하는 승인 코드 및 키의 제1 부분일 수 있음)을 획득할 수 있어서, 액세스 요청에서 운반되는 승인 코드가 획득된 승인 코드에 따라 유효한지 여부를 결정하고, 획득된 키의 제1 부분 및 액세스 요청에서 운반되는 제2 부분에 따라 키를 생성할 수 있다.In some embodiments, referring back to step 203, when the first portion of the key is uploaded to the access authorization server 104, the first client 101 further uploads the holder's file identifier and user identifier, The access authorization server 103 may generate an authorization code in accordance with a rule corresponding to the holder's user identifier, and associate the authorization code with the first portion of the key, the file identifier, and the holder's user identifier. Upon receiving the access request, the access authorization server 103 may determine the first portion of the associated authorization code and key (encrypted locally at the access authorization server 103) according to the holder's file identifier and user identifier carried in the access request. May be a first portion of an authorization code and a key corresponding to the acquired data) to determine whether the authorization code carried in the access request is valid according to the obtained authorization code, and The key may be generated according to the part and the second part carried in the access request.

일부 실시예들에서, 다양한 사용자들에 대한 승인 코드 생성 규칙은 액세스 승인 서버(103)에서 미리 구성될 수 있다. 그 규칙은 생성된 승인 코드, 생성된 승인 코드의 만료 시간 등에 대응하여 액세스가 허용된 데이터 주소를 지정할 수 있다. 데이터 주소는 블록체인의 블록 높이, URL(Universal Resource Locator) 주소 등일 수 있다. 일부 실시예들에서, 단계 203에서, 제1 클라이언트(101)가 키의 제1 부분을 업로드하는 경우, 액세스 승인 서버(104)는 암호화된 데이터의 보유자의 동시 업로드된 사용자 식별자에 따라, 승인 코드를 생성하기 위한 규칙을 결정할 수 있다. 이와 같이, 액세스 요청을 수신하는 경우, 액세스 승인 서버(103)는 현재 액세스 요청된 암호화된 데이터에 대응하여 승인 코드, 즉 보유자의 파일 식별자 및 사용자 식별자와 연관된 승인 코드를 로컬에서 발견할 수 있다. 액세스 요청에서 운반되는 승인 코드가 로컬에서 발견된 승인 코드와 동일하면, 액세스 요청에서 운반되는 승인 코드가 유효한 것으로 지시한다. 또한, 승인 코드가 만료되었는지 여부(예를 들어, 만료 시간이 도달되었는지 또는 승인 코드가 유효 날짜 내에 있는지 여부)가 검증될 수 있고 그리고/또는 현재 액세스 요청된 암호화된 데이터의 주소가 승인 코드에 대응하여 액세스 허용된 데이터 주소에 속하는지의 여부가 검증될 수 있다. 예를 들어, 블록체인 시나리오에서, 현재 보기가 요청된 데이터의 블록 높이가 승인 코드에 대응하여 액세스될 수 있는 블록 높이인지 여부가 검증될 수 있다. 다른 예로서, 사진 공유 시나리오에서, 현재 보기가 요청된 앨범 폴더가 승인 코드에 대응하여 액세스될 수 있는 폴더인지 여부가 검증될 수 있다. 검증이 성공하는 경우, 승인 코드가 유효한 것으로 결정될 수 있다. 블록체인 시나리오의 일부 실시예에서, 제2 클라이언트(102)에 의해 전송된 액세스 요청은 보여질 데이터의 파일 식별자를 운반할 수 있다. 액세스 승인 서버(103)는 파일 식별자에 따라 데이터가 위치한 블록 높이를 결정할 수 있으므로, 결정된 데이터의 블록 높이가 승인 코드에 대응하여 액세스될 수 있는 블록 높이인지의 여부를 검증할 수 있다. 일부 다른 실시예들에서, 제2 클라이언트(102)에 의해 전송된 액세스 요청은 데이터의 블록 높이를 직접 운반할 수 있고, 액세스 승인 서버(103)는 액세스 요청에서 운반된 블록 높이가 승인 코드에 대응하여 액세스 가능한 블록 높이인지의 여부를 검증할 수 있다.In some embodiments, authorization code generation rules for various users may be preconfigured at the access authorization server 103. The rule may specify a data address to which access is allowed in correspondence with the generated authorization code, the expiration time of the generated authorization code, and the like. The data address may be a block height of a blockchain, a universal resource locator (URL) address, or the like. In some embodiments, in step 203, when the first client 101 uploads the first portion of the key, the access authorization server 104 may, according to the concurrently uploaded user identifier of the holder of the encrypted data, an authorization code. You can determine the rules for generating the. As such, upon receiving an access request, the access authorization server 103 may locally discover an authorization code associated with the encrypted data currently requested for access, that is, an authorization code associated with the holder's file identifier and user identifier. If the authorization code carried in the access request is the same as the authorization code found locally, then the authorization code carried in the access request is indicated to be valid. In addition, it can be verified whether the authorization code has expired (eg, whether an expiration time has been reached or whether the authorization code is within a valid date) and / or the address of the encrypted data currently requested for access corresponds to the authorization code. Can be verified whether it belongs to an access allowed data address. For example, in a blockchain scenario, it may be verified whether the block height of the data for which the current view is requested is a block height that can be accessed corresponding to the authorization code. As another example, in a photo sharing scenario, it may be verified whether the album folder for which the current view is requested is a folder that can be accessed in correspondence with an authorization code. If the verification is successful, the authorization code may be determined to be valid. In some embodiments of the blockchain scenario, the access request sent by the second client 102 may carry a file identifier of the data to be shown. The access grant server 103 may determine the block height at which the data is located according to the file identifier, and thus may verify whether the block height of the determined data is a block height that can be accessed corresponding to the grant code. In some other embodiments, the access request sent by the second client 102 may directly carry a block height of data, and the access grant server 103 may indicate that the block height carried in the access request corresponds to an authorization code. It is possible to verify whether or not the block height is accessible.

승인 코드가 유효한 것으로 결정되는 경우, 보유자의 파일 식별자 및 사용자 식별자와 연관된 키의 획득된 제1 부분은 완전한 키를 형성하기 위해 액세스 요청에서 운반된 키의 제2 부분과 조합될 수 있다. 이러한 조합 방법은 단순히 두 부분을 연결하는 것일 수 있다.If the authorization code is determined to be valid, the obtained first portion of the key associated with the holder's file identifier and the user identifier may be combined with the second portion of the key carried in the access request to form a complete key. This combination method may simply be connecting two parts.

일부 실시예에서, 단계 204에서, 제1 클라이언트(101)가 승인 코드를 수신하는 경우, 승인 코드 및 키의 제2 부분을 포함할 수 있는 암호화된 데이터의 액세스 토큰이 추가로 생성될 수 있고, 액세스 토큰은 파일 식별자와 연관될 수 있다. 단계 205에서, 승인 코드 및 키의 제2 부분을 제2 클라이언트(102)에게 전송하는 단계는, 제2 클라이언트(102)가 액세스 토큰을 액세스 요청에 추가할 수 있도록 파일 식별자와 연관된 액세스 토큰을 제2 클라이언트(102)에게 전송하는 단계를 더 포함할 수 있다.In some embodiments, in step 204, when the first client 101 receives the authorization code, an access token of encrypted data may be further generated, which may include the authorization code and a second portion of the key, The access token can be associated with a file identifier. In step 205, sending the second portion of the authorization code and key to the second client 102 may remove the access token associated with the file identifier to allow the second client 102 to add the access token to the access request. And transmitting to the second client 102.

구체적으로, 제1 클라이언트(101)는 하나 이상의 액세스 토큰을 유지한다. 제1 클라이언트(101)에 의해 업로드된 각각의 데이터는 액세스 토큰에 대응할 수 있다. 즉, 각각의 파일 식별자는 액세스 토큰과 연관될 수 있다. 이와 같이, 제2 클라이언트(102)가 제1 클라이언트(101)로부터 데이터 액세스 승인을 요청하는 경우, 제1 클라이언트(101)가 승인에 허가하는 것에 동의하면, 제1 클라이언트(101)는 대응하는 액세스 토큰을 결정하고, 액세스 토큰을 제2 클라이언트(102)에게 발행할 수 있다. 제2 클라이언트(102)는 특정 데이터, 또는 특정 조건을 만족하는 데이터 세트 또는 모든 데이터에 대한 액세스 승인을 요청할 수 있다. 제1 클라이언트(101)는 대응하는 하나 이상의 액세스 토큰을 제2 클라이언트(102)에게 전송할 수 있다.Specifically, the first client 101 maintains one or more access tokens. Each data uploaded by the first client 101 may correspond to an access token. In other words, each file identifier may be associated with an access token. As such, when the second client 102 requests data access approval from the first client 101, if the first client 101 agrees to grant the approval, the first client 101 responds to the corresponding access. The token can be determined and an access token can be issued to the second client 102. The second client 102 can request access authorization for specific data, or data set or all data meeting certain conditions. The first client 101 can send the corresponding one or more access tokens to the second client 102.

일부 실시예들에서, 단계 204 후에, 방법은, 제1 클라이언트(101)가, 액세스 승인 서버(103)가 승인 코드를 무효화할 수 있도록, 승인 코드에 대한 취소 요청을 액세스 승인 서버(103)에게 전송하는 단계를 더 포함할 수 있다. 동시에, 제1 클라이언트(101)는 또한 로컬 승인 코드를 무효화할 수 있다. 승인 코드에 대한 취소 요청은 대응하는 파일 식별자를 운반할 수 있다. 액세스 승인 서버(103)는 파일 식별자에 따라 대응하는 승인 코드를 결정할 수 있으므로, 승인 코드를 무효화할 수 있다. 예를 들어, 승인 코드의 상태를 무효 상태로 설정하거나 승인 코드를 클리어할 수 있다. 액세스 승인 서버(103)는 승인 코드를 무효화한 후 제1 클라이언트(101)에게 응답을 리턴할 수 있다. 제1 클라이언트(101)는 응답을 수신하는 경우 로컬 승인 코드를 무효화함으로써, 승인 코드를 취소하는 전체 프로세스를 완료할 수 있다.In some embodiments, after step 204, the method may further cause the first client 101 to send a cancellation request for the authorization code to the access authorization server 103 so that the access authorization server 103 can invalidate the authorization code. The method may further include transmitting. At the same time, the first client 101 can also invalidate the local authorization code. The cancellation request for the authorization code may carry a corresponding file identifier. The access authorization server 103 can determine the corresponding authorization code according to the file identifier, thereby invalidating the authorization code. For example, the status of the authorization code can be set to an invalid state or the authorization code can be cleared. The access authorization server 103 may return a response to the first client 101 after invalidating the authorization code. The first client 101 can complete the entire process of revoking the authorization code by invalidating the local authorization code when receiving the response.

이러한 방식으로, 제1 클라이언트(101)는 액세스 승인 서버(103)가 업로드된 데이터에 대한 승인 코드를 생성할 수 있게 할 뿐만 아니라, 액세스 승인 서버(103)에게 승인 코드를 취소하도록 요청할 수도 있다. 승인 코드가 취소된 후, 제2 클라이언트(102)가 데이터 액세스를 요청할 때 승인 코드 또는 승인 코드를 포함하는 액세스 토큰을 사용하면, 승인 코드는 유효하지 않은 것으로 검증될 수 있다. 따라서, 액세스 요청이 거절될 수 있고, 제2 클라이언트(102)는 데이터를 액세스할 수 없거나, 또는 암호화된 데이터만을 획득할 수 있지만, 그러나 복호된 평문 데이터를 획득할 수는 없다. 따라서, 데이터 액세스를 위한 동적 인증 방식이 형성될 수 있다. 데이터를 공유하는 사용자는 필요에 따라 대응하는 승인 코드를 취소할 수 있으므로, 원래 승인 코드를 획득하여 데이터를 액세스할 수 있는 사용자가 더 이상 데이터를 액세스할 수 없다.In this manner, the first client 101 may not only enable the access authorization server 103 to generate an authorization code for the uploaded data, but may also request the access authorization server 103 to revoke the authorization code. After the authorization code is revoked, if the second client 102 uses an authorization code or an access token that includes the authorization code when requesting data access, the authorization code may be verified as invalid. Thus, the access request may be denied, and the second client 102 may not have access to the data, or may obtain only encrypted data, but may not obtain decrypted plain text data. Thus, a dynamic authentication scheme for data access can be formed. Users sharing data can revoke the corresponding authorization code as needed, so that users who can access the data by obtaining the original authorization code can no longer access the data.

일부 실시예에서, 암호화된 데이터에 대한 승인 코드가 취소된 후, 액세스 승인 서버(103)가 암호화된 데이터에 대응하는 새로운 승인 코드를 생성할 수 있도록 제1 클라이언트(101)가 암호화된 데이터에 대한 승인 코드 생성 요청을 액세스 승인 서버(103)에게 추가로 전송하고, 그 후 제1 클라이언트(101)는 액세스 승인 서버(103)로부터 암호화된 데이터에 대응하는 새로운 승인 코드를 수신할 수 있다. 이와 같이, 이전에 인증된 사용자가 암호화된 데이터의 평문에 액세스할 수 없도록 사용자가 언제든지 승인 코드를 취소할 수 있을 뿐만 아니라 사용자가 암호화된 데이터의 평문을 액세스하도록 재승인하기 위해 새로운 승인 코드를 생성하도록 요청할 수 있으므로, 유연한 데이터 액세스 승인을 구현할 수 있다.In some embodiments, after the authorization code for the encrypted data is revoked, the first client 101 may generate a new authorization code for the encrypted data so that the access authorization server 103 may generate a new authorization code for the encrypted data. The authorization code generation request is further sent to the access authorization server 103, and the first client 101 may then receive a new authorization code corresponding to the encrypted data from the access authorization server 103. As such, the user can revoke the authorization code at any time so that the previously authenticated user cannot access the plain text of the encrypted data, as well as generate a new authorization code to re-authorize the user to access the plain text of the encrypted data. Can be implemented to provide flexible data access authorization.

일부 실시예들에서, 승인 코드를 획득한 후, 제1 클라이언트(101)는 액세스 승인 서버(103)에게 승인 코드를 업데이트하도록 추가로 요청할 수 있다. 여기서, 제1 클라이언트(101)에 의해 획득된 승인 코드는 아직 삭제되지 않았거나 사용되지 않았다. 액세스 승인 서버(103)가 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하고 이전 승인 코드를 새로운 승인 코드로 대체할 수 있도록 제1 클라이언트(101)는 암호화된 데이터에 대한 승인 코드 업데이트 요청을 액세스 승인 서버(103)에게 전송할 수 있다. 이어서, 제1 클라이언트(101)는 액세스 승인 서버(103)로부터 새로운 승인 코드를 수신하고, 이전의 승인 코드를 새로운 승인 코드로 대체한다. 이러한 승인 코드 업데이트 프로세스를 통해, 이전에 인증된 사용자가 암호화된 데이터의 평문에 액세스할 수 없도록 제1 클라이언트(101)는 이전의 승인 코드를 취소할 수 있다. 또한, 제1 클라이언트(101)는 새로운 사용자 승인 코드를 획득하여 추가 사용자를 승인하거나 동일한 사용자를 다시 승인할 수 있다.In some embodiments, after obtaining the authorization code, the first client 101 can further request the access authorization server 103 to update the authorization code. Here, the authorization code obtained by the first client 101 has not yet been deleted or used. The first client 101 accesses the authorization code update request for the encrypted data so that the access authorization server 103 can generate a new authorization code corresponding to the encrypted data and replace the old authorization code with the new authorization code. May transmit to the server 103. The first client 101 then receives a new authorization code from the access authorization server 103 and replaces the old authorization code with the new authorization code. Through this authorization code update process, the first client 101 can revoke the previous authorization code such that the previously authenticated user cannot access the plain text of the encrypted data. In addition, the first client 101 may obtain a new user approval code to approve the additional user or to approve the same user again.

일부 실시예들에서, 전술한 승인 코드 취소 요청, 승인 코드 생성 요청 및 승인 코드 업데이트 요청이 공존할 수 있고, 사용자는 승인 코드를 취소하거나, 새로운 승인 코드를 생성하거나 또는 필요에 따라 승인 코드를 업데이트하도록 선택할 수 있으므로, 향상된 동적 승인 해결수단을 구현할 수 있다.In some embodiments, the foregoing authorization code cancellation request, authorization code generation request, and authorization code update request can coexist, and the user cancels the authorization code, generates a new authorization code, or updates the authorization code as needed. Can be implemented to implement enhanced dynamic authorization resolution.

실시예에 따르면, 액세스 승인 서버(103)에 의해 수행될 수 있는 데이터 공유 방법이 제공된다. 이 방법은 다음의 단계를 포함할 수 있다.According to an embodiment, a data sharing method is provided that can be performed by the access authorization server 103. This method may include the following steps.

단계 301에서, 방법은 제1 클라이언트(101)로부터 제1 키의 제1 부분을 수신하는 단계를 포함할 수 있고, 제1 키는 정보 공유 시스템(104)의 블록에 업로드된 암호화된 데이터에 대응하며, 암호화된 데이터는 제1 키에 따라 평문 데이터를 암호화함에 의해 획득되고, 정보 공유 시스템은 블록체인 시스템이다.At step 301, the method may include receiving a first portion of the first key from the first client 101, the first key corresponding to the encrypted data uploaded to the block of the information sharing system 104. The encrypted data is obtained by encrypting the plain text data according to the first key, and the information sharing system is a blockchain system.

단계 302에서, 방법은 암호화된 데이터에 대응하는 제1 승인 코드를 생성하는 단계를 포함할 수 있다.At step 302, the method may include generating a first authorization code corresponding to the encrypted data.

단계 303에서, 방법은, 제2 클라이언트(102)가 암호화된 데이터에 액세스하는 경우에 제1 승인 코드 및 제1 키의 제2 부분을 액세스 요청에 추가할 수 있도록, 암호화된 데이터에 액세스하도록 제2 클라이언트(102)를 승인하는 경우에 제1 클라이언트(101)가 제1 승인 코드 및 제1 키의 제2 부분을 제2 클라이언트(102)에게 전송할 수 있도록 제1 클라이언트(101)에게 제2 승인 코드를 전송하는 단계를 포함할 수 있으며, 제1 키의 제2 부분은 제1 부분을 제외한 제1 키의 나머지 부분을 포함한다. In step 303, the method further includes accessing the encrypted data so that the second client 102 can add a first grant code and a second portion of the first key to the access request when accessing the encrypted data. 2 In the case of approving the client 102, a second acknowledgment to the first client 101 so that the first client 101 can transmit the first grant code and the second portion of the first key to the second client 102. And transmitting the code, wherein the second portion of the first key includes the remaining portion of the first key except the first portion.

단계 304에서, 방법은, 전술한 승인된 제2 클라이언트(102) 또는 암호화된 데이터에 대한 다른 비 승인된 클라이언트일 수 있는 임의의 클라이언트로부터 액세스 요청의 수신에 응답하여 다음의 단계들을 수행하는 단계를 포함할 수 있다.In step 304, the method includes performing the following steps in response to receiving an access request from any of the clients, which may be the authorized second client 102 described above or another unapproved client for encrypted data. It may include.

단계 305에서, 방법은, 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하는 단계를 포함할 수 있다.At step 305, the method may include obtaining a second grant code and an incomplete key from the access request.

단계 306에서, 방법은, 제2 승인 코드가 제1 승인 코드와 동일하고 제2 승인 코드와 유효한 경우에 암호화된 데이터에 대응하는 불완전한 키 및 제1 키의 제1 부분에 따라 제2 키를 생성하는 단계를 포함할 수 있으며, 생성된 제2 키는 불완전한 키가 제1 키의 제2 부분과 동일한 경우 제1 키와 동일하다.In step 306, the method generates a second key according to the incomplete key corresponding to the encrypted data and the first portion of the first key if the second authorization code is the same as the first authorization code and valid with the second authorization code. And the generated second key is the same as the first key if the incomplete key is equal to the second portion of the first key.

단계 307에서, 방법은 정보 공유 시스템(104)의 블록으로부터 암호화된 데이터를 획득하고, 제2 키에 따라 암호화된 데이터를 복호하는 단계를 포함할 수 있으며, 평문 데이터는 복호화를 통해 획득되고 제2 키가 제1 키와 동일한 경우 액세스 요청을 전송하는 클라이언트에게 전송된다.In step 307, the method may include obtaining encrypted data from the block of the information sharing system 104 and decrypting the encrypted data according to the second key, wherein the plain text data is obtained through decryption and the second If the key is the same as the first key it is sent to the client sending the access request.

전술한 실시예에서 제공된 방법을 사용함으로써, 제1 클라이언트(101)는 키 및 승인 코드를 보유할 수 있고, 액세스 승인 서버(103)는 승인 코드 및 키의 제1 부분을 보유할 수 있다. 승인되는 경우, 제2 클라이언트(102)는 키의 제2 부분 및 승인 코드를 보유 할 수 있다. 이와 같이, (승인된 제2 클라이언트(102) 또는 다른 클라이언트일 수 있는) 다른 클라이언트가 액세스 승인 서버(103)를 통해 대응하는 데이터에 액세스하도록 요청하는 경우, 액세스 승인 서버(103)는 먼저 승인 코드가 유효한지 여부를 검증할 수 있다. 그 후, 승인 코드가 유효한 경우, 제1 클라이언트(101) 및 다른 클라이언트로부터 각각 획득된 불완전한 키(키의 제1 부분 및 제2 부분)를 사용하여 완전한 키가 획득될 수 있다. 다른 클라이언트에 의해 제공된 불완전한 키가 유효하지 않으면, 정확한 완료 키가 획득될 수 없으며, 암호화된 데이터가 성공적으로 복호될 수 없으므로, 데이터 보안을 보장할 수 있다. 이러한 해결수단에서, 승인된 제2 클라이언트(102) 및 액세스 승인 서버(103)는 각각 키의 일부를 보유하며, 이들 중 어느 것도 암호화된 데이터에 액세스할 권리를 갖지 않는다. 완전한 키는 승인된 제2 클라이언트(102)와 액세스 승인 서버(103)에 의해 보유된 키 정보가 조합되는 경우에만 획득될 수 있으므로, 데이터 보안 및 데이터 프라이버시를 효과적으로 보장할 수 있다. 이러한 방식으로, 정보 공유 시스템(104)에 저장된 암호화된 데이터에 대해 사용자가 암호화된 데이터를 공개하고 싶지 않은 경우, 제1 클라이언트(101)는 액세스 승인 서버(103)를 통해 일부 제2 클라이언트(102)가 암호화된 데이터의 평문에 액세스하도록 승인할 수 있으므로, 정보 공유와 프라이버시 보호 사이의 균형을 달성하고, 더 나은 정보 공유 메커니즘을 제공할 수 있다.By using the method provided in the above embodiment, the first client 101 can hold a key and an authorization code, and the access authorization server 103 can hold a first portion of the authorization code and key. If approved, the second client 102 can hold the second portion of the key and the authorization code. As such, when another client (which may be an authorized second client 102 or another client) requests access to the corresponding data through the access authorization server 103, the access authorization server 103 first receives an authorization code. Can verify whether is valid. Then, if the authorization code is valid, a complete key can be obtained using an incomplete key (first and second portions of the key) obtained from the first client 101 and the other client, respectively. If the incomplete key provided by the other client is not valid, the correct completion key cannot be obtained and the encrypted data cannot be successfully decrypted, thereby ensuring data security. In this solution, the authorized second client 102 and the access authorization server 103 each hold a portion of the key, none of which has the right to access the encrypted data. The complete key can be obtained only when the key information held by the authorized second client 102 and the access authorization server 103 is combined, thereby effectively ensuring data security and data privacy. In this manner, if the user does not want to disclose the encrypted data to the encrypted data stored in the information sharing system 104, the first client 101 may access some second clients 102 through the access authorization server 103. ) Can be authorized to access plain text of encrypted data, thereby achieving a balance between information sharing and privacy protection, and providing a better information sharing mechanism.

일부 실시예들에서, 단계 305에서, 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하는 단계는 액세스 요청으로부터 암호화된 데이터의 액세스 토큰을 획득하는 단계, 및 액세스 토큰으로부터 제2 승인 코드 및 불완전한 키를 획득하는 단계를 더 포함할 수 있다. In some embodiments, in step 305, obtaining a second grant code and an incomplete key from the access request may include obtaining an access token of encrypted data from the access request, and a second grant code and an incomplete key from the access token. It may further comprise the step of obtaining.

일부 실시예들에서, 단계 301에서, 제1 클라이언트로부터 키의 제1 부분을 수신하는 경우, 액세스 승인 서버(103)는 암호화된 데이터의 보유자의 파일 식별자 및 사용자 식별자를 더 수신할 수 있다. 단계 302에서, 암호화된 데이터에 대응하는 제1 승인 코드를 생성하는 단계는 보유자의 사용자 식별자에 대응하는 규칙에 따라 승인 코드를 생성하고, 승인 코드를 키의 제1 부분, 파일 식별자 및 보유자의 사용자 식별자와 연관시키는 단계, 및 액세스 요청의 수신에 응답하여, 액세스 요청에서 운반되는 보유자의 파일 식별자 및 사용자 식별자에 따라 연관된 승인 코드 및 키의 제1 부분을 획득하는 단계를 더 포함할 수 있다. In some embodiments, in step 301, upon receiving the first portion of the key from the first client, the access authorization server 103 may further receive the file identifier and user identifier of the holder of the encrypted data. In step 302, generating a first authorization code corresponding to the encrypted data generates an authorization code according to a rule corresponding to the holder's user identifier, and assigns the authorization code to the first portion of the key, the file identifier and the owner's user. Associating with the identifier, and in response to receiving the access request, obtaining a first portion of the associated authorization code and key according to the holder's file identifier and the user identifier carried in the access request.

일부 실시예들에서, 블록은 블록 높이에 대응할 수 있다. 단계 302에서, 생성된 제1 승인 코드는 액세스가 허용된 블록 높이 및/또는 만료 시간에 대응할 수 있다. 단계 306에서, 제2 승인 코드가 제1 승인 코드와 동일한 경우에 제2 승인 코드에 대응하는 액세스가 허용되는 블록 높이 및/또는 만료 시간이 획득될 수 있다. 액세스 요청에 대응하는 암호화된 데이터의 블록 높이가 제2 승인 코드에 대응하여 액세스 허용된 블록 높이와 일치하는 경우 및/또는 제2 승인 코드의 만료시간이 아직 도달하지 않은 경우에 제2 승인 코드가 유효한 것으로 결정될 수 있다.In some embodiments, the block may correspond to the block height. In step 302, the generated first grant code may correspond to a block height and / or expiration time that is granted access. In step 306, a block height and / or expiration time may be obtained for which access corresponding to the second grant code is allowed if the second grant code is the same as the first grant code. If the block height of the encrypted data corresponding to the access request matches the block height allowed for access in response to the second grant code and / or if the expiration time of the second grant code has not yet reached the second grant code is May be determined to be valid.

일부 실시예들에서, 방법은, 승인 코드에 대한 제1 클라이언트(101)로부터의 취소 요청에 응답하여 승인 코드를 무효화하는 단계를 더 포함할 수 있다. 액세스 승인 서버(103)는 승인 코드를 무효화한 후 제1 클라이언트(101)에게 응답을 리턴할 수 있다. 응답을 수신하는 경우, 제1 클라이언트(101)는 로컬 승인 코드를 무효화함으로써, 승인 코드를 취소하는 전체 프로세스를 완료할 수 있다. 따라서, 사용자는 필요에 따라 일부 데이터에 대한 승인 코드를 취소하여, 일부 사용자와의 데이터 공유를 취소할 수 있다. 예를 들어, 제2 클라이언트(102)는 미리 데이터에 대한 승인 코드를 획득할 수 있고, 승인 코드가 만료되면, 제2 클라이언트(102)가 승인 코드를 사용하여 데이터에 다시 액세스하도록 요청하는 경우에 승인 코드가 유효하지 않은 것으로 검증될 수 있다. 따라서, 제2 클라이언트(102)는 데이터를 액세스할 수 없다.In some embodiments, the method may further include invalidating the authorization code in response to a cancellation request from the first client 101 for the authorization code. The access authorization server 103 may return a response to the first client 101 after invalidating the authorization code. Upon receiving the response, the first client 101 can complete the entire process of revoking the authorization code by invalidating the local authorization code. Thus, the user can revoke the approval code for some data as needed, thereby canceling data sharing with some users. For example, the second client 102 can obtain an authorization code for the data in advance, and when the authorization code expires, the second client 102 requests to access the data again using the authorization code. The authorization code may be verified as invalid. Thus, the second client 102 cannot access the data.

일부 실시예들에서, 방법은, 암호화된 데이터에 대해 클라이언트(101)로부터의 승인 코드 생성 요청에 응답하여 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하는 단계; 및 암호화된 데이터에 대응하는 새로운 승인 코드를 제1 클라이언트(101)에게 전송하는 단계를 더 포함할 수 있다. 이러한 방식으로, 데이터에 대한 승인 코드를 취소한 후, 사용자는 새로운 승인 코드를 추가로 요청하여, 일부 사용자가 데이터에 액세스하도록 재승인할 수 있으므로, 유연한 데이터 액세스 승인을 제공할 수 있다.In some embodiments, the method includes generating a new authorization code corresponding to the encrypted data in response to the authorization code generation request from the client 101 for the encrypted data; And transmitting a new authorization code corresponding to the encrypted data to the first client 101. In this way, after revoking the authorization code for the data, the user may further request a new authorization code to re-authorize some users to access the data, thereby providing flexible data access authorization.

일부 실시예들에서, 방법은, 암호화된 데이터에 대해 제1 클라이언트(101)로부터의 승인 코드 업데이트 요청에 응답하여 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하고, 이전의 제1 승인 코드를 새로운 인증으로 대체하는 단계, 및 제1 클라이언트(101)가 이전의 제1 승인 코드를 새로운 승인 코드로 대체할 수 있도록 암호화된 데이터에 대응하는 새로운 승인 코드를 제1 클라이언트(101)에게 전송하는 단계를 더 포함할 수 있다.In some embodiments, the method generates a new authorization code corresponding to the encrypted data in response to the authorization code update request from the first client 101 for the encrypted data, and replaces the previous first authorization code with the new authorization code. Replacing with authentication, and transmitting a new authorization code corresponding to the encrypted data to the first client 101 so that the first client 101 can replace the previous authorization code with the new authorization code. It may further include.

도 4는 실시예에 따른 메시지 상호 작용 프로세스를 도시한다. 도 4에 도시된 바와 같이, 프로세스는 적어도 4개의 엔티티, 즉 제1 클라이언트(101), 제2 클라이언트(102), 액세스 승인 서버(103) 및 정보 공유 시스템(104)와 관련되며, 다음 처리 단계를 포함할 수 있다.4 illustrates a message interaction process according to an embodiment. As shown in FIG. 4, the process involves at least four entities, namely a first client 101, a second client 102, an access authorization server 103 and an information sharing system 104, the next processing step. It may include.

단계 401에서, 제1 클라이언트(101)는 암호화 키를 보유하고, 암호화된 데이터를 획득하기 위해 정보 공유 시스템(104)에게 업로드될 데이터를 암호화할 수 있다. In step 401, the first client 101 may hold an encryption key and encrypt data to be uploaded to the information sharing system 104 to obtain encrypted data.

제1 클라이언트(101)는 암호화된 데이터를 정보 공유 시스템(104)에게 업로드할 수 있다. 암호화된 데이터의 업로드 동안, 암호화된 데이터의 보유자의 사용자 식별자 및 암호화된 데이터와 연관된 파일 식별자가 정보 공유 시스템(104)으로 추가로 전송될 수 있다. 예를 들어, 제1 클라이언트(101)는 데이터 업로드 요청을 정보 공유 시스템(104)으로 전송할 수 있으며, 여기서 요청은 보유자의 사용자 식별자, 파일 식별자 및 암호화된 데이터를 운반한다. 보유자의 사용자 식별자는 제1 클라이언트(101)의 현재 로그인 사용자의 식별자, 예를 들어 QQ 번호, 클라우드 디스크 계정 또는 블록체인 시스템의 계정일 수 있다. 파일 식별자는 암호화된 데이터를 식별하기 위해 사용될 수 있다.The first client 101 can upload the encrypted data to the information sharing system 104. During the upload of encrypted data, a user identifier of the holder of the encrypted data and a file identifier associated with the encrypted data may be further sent to the information sharing system 104. For example, the first client 101 can send a data upload request to the information sharing system 104, where the request carries the holder's user identifier, file identifier and encrypted data. The holder's user identifier may be an identifier of the current logged-in user of the first client 101, for example a QQ number, a cloud disk account or an account of the blockchain system. The file identifier can be used to identify the encrypted data.

정보 공유 시스템(104)은 제1 클라이언트(101)에 의해 업로드된 암호화된 데이터를 저장하고, 보유자의 사용자 식별자에 대응하는 디렉토리에 암호화된 데이터를 저장하고, 파일 식별자를 사용하여 암호화된 데이터를 식별하기 위해 암호화된 데이터를 보유자의 사용자 식별자 및 파일 식별자와 연관시킬 수 있다.The information sharing system 104 stores the encrypted data uploaded by the first client 101, stores the encrypted data in a directory corresponding to the holder's user identifier, and uses the file identifier to identify the encrypted data. Encrypted data may be associated with the holder's user identifier and file identifier.

도 5에 도시된 시나리오에서, 제1 클라이언트(101)는 네트워크 디스크 클라이언트이고, 정보 공유 시스템(104)은 클라우드에서의 네트워크 디스크 서버이거나, 또는 클라우드 디스크 서버로서 지칭될 수 있다. 사용자는 네트워크 디스크 클라이언트를 사용하여 사진 및 비디오와 같은 파일을 업로드할 수 있다. 예를 들어, 사용자는 컨트롤(501)을 클릭하여 사진을 업로드하고, 컨트롤(502)을 클릭하여 비디오를 업로드할 수 있다. 사용자가 업로드된 사진 및 비디오의 프라이버시를 보장하기를 원하면, 네트워크 디스크 클라이언트는 데이터를 암호화하도록 구성될 수 있다. 이러한 방식으로, 네트워크 디스크 클라이언트는 단계 401에서 암호화 처리를 수행할 수 있다.In the scenario shown in FIG. 5, the first client 101 is a network disk client and the information sharing system 104 may be referred to as a network disk server in the cloud or as a cloud disk server. Users can upload files such as photos and videos using a network disk client. For example, a user can click control 501 to upload a picture and click control 502 to upload a video. If the user wants to ensure the privacy of uploaded photos and videos, the network disk client can be configured to encrypt the data. In this way, the network disk client can perform an encryption process in step 401.

단계 402에서, 제1 클라이언트(101)는 단계 401에서의 암호화에 사용된 키의 전반부(키의 전반부로 지칭될 수 있음)를 액세스 승인 서버(103)에 업로드할 수 있고, 암호화된 데이터와 연관된 보유자의 사용자 식별자를 액세스 승인 서버에게 추가로 전송할 수 있다. 예를 들어, 제1 클라이언트(101)는 키 업로드 요청을 액세스 승인 서버(103)에게 전송할 수 있으며, 여기서 요청은 암호화된 데이터의 보유자의 사용자 식별자 및 키의 전반부를 운반한다.In step 402, the first client 101 may upload the first half of the key used for encryption in step 401 (which may be referred to as the first half of the key) to the access authorization server 103, and associated with the encrypted data. The holder's user identifier may be further sent to the access authorization server. For example, the first client 101 can send a key upload request to the access authorization server 103, where the request carries the user identifier of the holder of the encrypted data and the first half of the key.

액세스 승인 서버(103)는 보유자의 사용자 식별자에 대응하는 규칙에 따라 승인 코드를 생성하고, 승인 코드를 키의 전반부 및 보유자의 사용자 식별자와 연관시키며, 승인 코드를 제1 클라이언트(101)에게 리턴할 수 있다. The access authorization server 103 generates an authorization code according to a rule corresponding to the holder's user identifier, associates the authorization code with the first half of the key and the holder's user identifier, and returns the authorization code to the first client 101. Can be.

단계 403에서, 제1 클라이언트(101)는 단계 401에서 암호화에 사용된 키의 후반부(키의 후반부로 지칭될 수 있음)와 수신된 승인 코드를 조합하여 데이터 보기 토큰을 형성하고, 데이터 보기 토큰을 암호화된 데이터의 파일 식별자와 연관시킬 수 있다. In step 403, the first client 101 combines the second half of the key (which may be referred to as the second half of the key) and the received authorization code to form a data view token, in step 401, and generates a data view token. It can be associated with a file identifier of encrypted data.

암호화된 데이터의 평문 데이터를 볼 수 있도록 제2 클라이언트(102)에게 승인하는 경우, 제1 클라이언트(101)는 데이터 보기 토큰을 제2 클라이언트(102)에 제공할 수 있다. 예를 들어, 제2 클라이언트(102)는 제1 클라이언트(101)로부터 데이터에 대한 보기 승인을 요청할 수 있고, 타깃 파일 정보를 운반하는 승인 요청을 제1 클라이언트(101)에게 전송할 수 있다. 제1 클라이언트(101)는 타깃 파일 정보에 따라 제2 클라이언트(102)가 보고자하는 데이터 세트에 대응하는 파일 식별자 세트를 결정할 수 있다. 타깃 파일 정보는 파일 식별자를 포함할 수 있거나, 또는 폴더의 식별자, 디렉토리 주소 등일 수 있다. 제1 클라이언트(101)는 대응하는 파일 식별자 세트를 결정하고, 파일 식별자 세트에 따라 연관된 데이터 보기 토큰을 추가로 결정할 수 있다. 여기서, 하나의 파일 식별자 세트(하나 이상의 파일 식별자를 포함할 수 있음)는 하나의 데이터 보기 토큰과 연관될 수 있으며, 이는 제1 클라이언트(101)가 제2 클라이언트(102)에게 파일 세트를 배치로 볼 수 있도록 승인한다는 것을 나타낸다. 하나의 파일 식별자 세트는 또한 다수의 데이터 보기 토큰과 연관될 수 있으며, 여기서 다른 파일 식별자는 다른 데이터 보기 토큰과 연관될 수 있고, 제1 클라이언트(101)가 제2 클라이언트(102)에게 각각의 파일에 대응하는 각각의 데이터 보기 토큰을 제공할 수 있음을 나타낸다.Upon authorizing the second client 102 to view the plain text data of the encrypted data, the first client 101 can provide the data viewing token to the second client 102. For example, the second client 102 can request a view approval for the data from the first client 101 and send an approval request to carry the target file information to the first client 101. The first client 101 may determine a file identifier set corresponding to the data set that the second client 102 wants to see according to the target file information. The target file information may include a file identifier or may be an identifier of a folder, a directory address, or the like. The first client 101 can determine a corresponding file identifier set and further determine an associated data view token according to the file identifier set. Here, one set of file identifiers (which may include one or more file identifiers) may be associated with one data view token, which causes the first client 101 to deploy the file set to the second client 102. To approve the view. One set of file identifiers may also be associated with multiple data view tokens, where different file identifiers may be associated with different data view tokens, where the first client 101 sends each file to the second client 102. Indicates that each data view token corresponding to can be provided.

단계 404에서, 제2 클라이언트(102)는 데이터 보기 토큰을 보유한 후 보기 요청을 액세스 승인 서버(103)에게 전송할 수 있으며, 여기서 요청은 암호화된 데이터의 보유자의 사용자 식별자, 파일 식별자 및 데이터 보기 토큰을 운반한다.In step 404, the second client 102 may hold the data view token and then send a view request to the access authorization server 103, where the request may send the user identifier, file identifier and data view token of the holder of the encrypted data. To carry.

도 6에 도시된 시나리오에서, 제2 클라이언트(102)는 블록체인 페이지를 방문하기 위한 브라우저일 수 있다. 정보 공유 시스템(104)은 블록체인 시스템일 수 있다. 사용자는 블록체인 페이지를 방문하여 다른 정보를 볼 수 있다. 일부 정보는 개인용으로 설정될 수 있으며, 사용자는 사용자가 데이터 보기 토큰을 가지고 있는 경우에만 평문을 볼 수 있다. 예를 들어, 사용자는 컨트롤(601)을 클릭할 수 있고, 그 후 단계(404)는 보기 요청을 전송하기 위해 수행될 수 있다. 보기 요청에서 운반되는 데이터 보기 토큰이 정확한 유효한 승인 코드 및 정확한 키의 후반부를 포함하는 경우, 브라우저는 "세부 사항" 옵션에 대응하는 평문 데이터의 두 번째 페이지를 디스플레이할 수 있다.In the scenario shown in FIG. 6, the second client 102 may be a browser for visiting a blockchain page. The information sharing system 104 may be a blockchain system. The user can visit the blockchain page to see other information. Some information can be set private, and the user can only see the plain text if the user has a data view token. For example, a user may click on control 601 and then step 404 may be performed to send a view request. If the data view token carried in the view request includes the correct valid authorization code and the second half of the correct key, the browser may display a second page of plain text data corresponding to the "details" option.

단계 405에서, 액세스 승인 서버(103)는 수신된 보기 요청으로부터 데이터 보기 토큰, 보유자의 사용자 식별자 및 파일 식별자를 추출하고, 데이터 보기 토큰으로부터 승인 코드를 추출하며, 승인 코드가 유효한 지의 여부를 결정할 수 있다. 여기서, 승인 코드가 액세스 승인 서버(103)에 의해 유효한지 여부를 결정하는 작동은 두 가지 측면을 포함한다. 제1 측면에서, 데이터 보기 토큰으로부터 추출된 승인 코드가 보유자의 사용자 식별자와 연관된 로컬에 저장된 승인 코드와 동일한 지 여부가 결정되고, 데이터 보기 토큰으로부터 추출된 승인 코드가 로컬에서 발견된 승인 코드와 동일하면, 데이터 보기 토큰에서 운반된 승인 코드가 유효한 것으로 지시한다. 제2 측면에서, 2개의 승인 코드가 동일한 것으로 결정되면, 승인 코드가 만료되었는지 여부, 예를 들어, 승인 코드의 만료 시간이 도달했는지 또는 승인 코드가 여전히 유효 날짜 내에 존재하는지 여부가 추가로 검증되고, 그리고/또는 현재 액세스 요청된 암호화된 데이터의 주소가 승인 코드에 대응하여 액세스 허용된 데이터 주소에 속하는지 여부가 검증된다.In step 405, the access authorization server 103 may extract the data view token, the holder's user identifier and the file identifier from the received view request, extract the authorization code from the data view token, and determine whether the authorization code is valid. have. Here, the operation of determining whether the authorization code is valid by the access authorization server 103 includes two aspects. In a first aspect, it is determined whether the authorization code extracted from the data view token is the same as the locally stored authorization code associated with the holder's user identifier, and the authorization code extracted from the data view token is the same as the locally found authorization code. If so, the authorization code carried in the data view token is indicated to be valid. In a second aspect, if the two authorization codes are determined to be the same, it is further verified whether the authorization code has expired, for example whether the expiration time of the authorization code has been reached or whether the authorization code is still within the validity date and And / or whether the address of the encrypted data currently requested for access belongs to an access allowed data address corresponding to the authorization code.

승인 코드가 유효한 것으로 결정되면, 액세스 승인 서버(103)는 승인 코드와 연관된 키의 전반부를 획득하고, 데이터 보기 토큰으로부터 키의 후반부를 추출하며, 완전한 키를 형성하기 위해 키의 전반부와 키의 후반부를 조합한다.If the authorization code is determined to be valid, the access authorization server 103 obtains the first half of the key associated with the authorization code, extracts the second half of the key from the data viewing token, and the first half of the key and the second half of the key to form a complete key. To combine.

액세스 승인 서버(103)는 정보 공유 시스템(104)에 쿼리 요청을 추가로 전송할 수 있으며, 여기서 정보 공유 서버(104)가 보유자의 식별자 및 파일 식별자에 따라 연관된 암호화된 데이터를 찾고, 액세스 승인 서버(103)에게 암호화된 데이터를 리턴할 수 있도록, 요청은 보유자의 사용자 식별자 및 파일 식별자를 운반한다. The access authorization server 103 may further send a query request to the information sharing system 104, where the information sharing server 104 finds the associated encrypted data according to the holder's identifier and the file identifier, The request carries the holder's user identifier and file identifier to be able to return the encrypted data to 103.

단계 406에서, 액세스 승인 서버(103)는 단계 405에서 획득된 완전한 키를 사용하여 암호화된 데이터를 복호할 수 있다. 데이터 보기 토큰으로부터 추출된 키의 후반부가 정확하면, 단계 405에서 정확한 완전한 키가 획득될 수 있다. 이러한 단계에서, 복호된 데이터(즉, 평문 데이터)는 복호화를 통해 성공적으로 획득될 수 있고, 복호된 데이터는 제2 클라이언트(102)에게 전송될 수 있다. 데이터 보기 토큰으로부터 추출된 키의 후반부가 부정확하면, 단계 405에서 획득된 키가 부정확하고, 복호가 수행될 수 없다. 이 경우, 오류가 제2 클라이언트(102)에게 보고될 수 있거나, 또는 암호화된 데이터가 제2 클라이언트(102)에게 직접 리턴될 수 있다. 즉, 제2 클라이언트(102)는 평문 데이터를 성공적으로 볼 수 없으므로, 제1 클라이언트(101)에 의해 업로드된 데이터의 보안을 보장할 수 있다.In step 406, the access authorization server 103 may decrypt the encrypted data using the complete key obtained in step 405. If the latter half of the key extracted from the data viewing token is correct, then at 405 the correct complete key can be obtained. At this stage, the decoded data (ie, plain text data) can be successfully obtained through decryption, and the decoded data can be sent to the second client 102. If the latter half of the key extracted from the data viewing token is incorrect, the key obtained in step 405 is incorrect, and decryption cannot be performed. In this case, an error may be reported to the second client 102 or encrypted data may be returned directly to the second client 102. That is, since the second client 102 cannot see the plain text data successfully, the second client 102 can guarantee the security of the data uploaded by the first client 101.

전술한 단계들 중 어느 하나라도 실패하는 경우, 프로세스는 직접 종료될 수 있다.If any of the above steps fail, the process can be terminated directly.

전술한 방법에 기초하여, 본 개시의 실시예는 전술한 방법을 구현할 수 있는 적어도 하나의 클라이언트(제1 클라이언트(101)일 수 있음)를 추가로 제공한다. 도 7에 도시된 바와 같이, 제1 클라이언트(700)는 다음과 같은 모듈, 즉 Based on the method described above, embodiments of the present disclosure further provide at least one client (which may be the first client 101) that may implement the method described above. As shown in FIG. 7, the first client 700 includes the following modules, that is,

암호화된 데이터를 획득하기 위해 키에 따라 평문 데이터를 암호화하도록 구성된 암호화 모듈(701);An encryption module 701, configured to encrypt the plain text data according to the key to obtain encrypted data;

암호화된 데이터를 정보 공유 시스템(104)의 블록에 업로드하고, 정보 공유 시스템(104)에 대응하는 액세스 승인 서버(103)에 키의 제1 부분을 업로드하도록 구성된 업로딩 모듈(702) ― 정보 공유 시스템은 블록체인 시스템임 ―; 및An uploading module 702 configured to upload the encrypted data to a block of the information sharing system 104 and upload the first portion of the key to the access authorization server 103 corresponding to the information sharing system 104—the information sharing system. Is a blockchain system; And

액세스 승인 서버(103)로부터 암호화된 데이터에 대응하는 승인 코드를 수신하고, 사용자가 암호화된 데이터에 액세스하도록 승인되는 경우, 승인 코드 및 키의 제2 부분을 제2 클라이언트(102)에게 전송하도록 구성된 승인 모듈(703) ― 키의 제2 부분이 제1 부분을 제외한 키의 나머지 부분을 포함하고, 암호화된 데이터에 대한 액세스 요청을 액세스 승인 서버에게 전송하는 경우, 제2 클라이언트(102)가 승인 코드 및 키의 제2 부분을 액세스 요청에 추가함으로써, 승인 코드가 유효한 것으로 결정하는 경우에 액세스 승인 서버(103)가 키의 제1 부분 및 제2 부분에 따라 키를 생성하고, 평문 데이터를 획득하기 위해, 생성된 키에 따라 정보 공유 시스템(104)의 블록으로부터 획득된 암호화된 데이터를 복호하여 암호화된 데이터를 제2 클라이언트(102)에게 전송할 수 있 ―Receive an authorization code corresponding to the encrypted data from the access authorization server 103 and send the second portion of the authorization code and key to the second client 102 when the user is authorized to access the encrypted data. Authorization module 703-if the second portion of the key includes the remaining portion of the key except the first portion and sends an access request for encrypted data to the access authorization server, the second client 102 receives the authorization code. And by adding a second portion of the key to the access request, wherein the access authorization server 103 generates a key according to the first portion and the second portion of the key and obtains plain text data when the authorization code determines that the authorization code is valid. To decrypt the encrypted data obtained from the block of the information sharing system 104 according to the generated key and transmit the encrypted data to the second client 102. Can ―

을 포함할 수 있다.It may include.

일부 실시예들에서, 승인 모듈(703)은 승인 코드 및 키의 제2 부분을 포함하는, 암호화된 데이터의 액세스 토큰을 생성하고, 제2 클라이언트(102)가 액세스 토큰을 액세스 요청에 추가할 수 있도록 액세스 토큰을 제2 클라이언트(102)에게 전송하도록 추가로 구성될 수 있다. In some embodiments, authorization module 703 generates an access token of encrypted data, including the second portion of the authorization code and key, and second client 102 may add the access token to the access request. May be further configured to send the access token to the second client 102.

일부 실시예들에서, 암호화된 데이터가 정보 공유 시스템(104)에 업로드되는 경우, 정보 공유 시스템(104)이 암호화된 데이터를 보유자의 파일 식별자 및 사용자 식별자와 연관시킬 수 있도록 업로딩 모듈(702)은 암호화된 데이터의 파일 식별자 및 암호화된 데이터 보유자의 사용자 식별자를 추가로 업로드할 수 있다. 따라서, 액세스 승인 서버(103)는 보유자의 파일 식별자 및 사용자 식별자에 따라 정보 공유 시스템(104)으로부터 암호화된 데이터를 획득할 수 있다.In some embodiments, when encrypted data is uploaded to the information sharing system 104, the uploading module 702 may enable the information sharing system 104 to associate the encrypted data with the holder's file identifier and user identifier. The file identifier of the encrypted data and the user identifier of the encrypted data holder can be further uploaded. Thus, the access authorization server 103 may obtain encrypted data from the information sharing system 104 according to the holder's file identifier and user identifier.

일부 실시예들에서, 키의 제1 부분이 액세스 승인 서버(103)에 업로드되는 경우, 액세스 승인 서버(103)가 보유자의 사용자 식별자에 대응하는 규칙에 따라 승인 코드를 생성할 수 있도록, 업로딩 모듈(702)은 보유자의 파일 식별자 및 사용자 식별자를 추가로 업로드할 수 있다. 액세스 권한 서버(103)는 생성된 승인 코드를 키의 제1 부분, 파일 식별자 및 보유자의 사용자 식별자와 연관시키고, 획득된 승인 코드에 따라, 액세스 요청에서 운반된 승인 코드가 유효한지의 여부를 결정하고, 키의 제1 부분 및 액세스 요청에서 운반된 키의 제2 부분에 따라 키를 생성하기 위해, 액세스 요청의 수신에 응답하여, 액세스 요청에서 운반된 제1 부분의 파일 식별자 및 사용자 식별자에 따라 연관된 승인 코드 및 키의 제1 부분을 획득할 수 있다. In some embodiments, the uploading module allows the access authorization server 103 to generate an authorization code in accordance with a rule corresponding to the holder's user identifier when the first portion of the key is uploaded to the access authorization server 103. 702 may further upload the holder's file identifier and user identifier. The access authorization server 103 associates the generated authorization code with the first portion of the key, the file identifier and the holder's user identifier, and determines, according to the obtained authorization code, whether the authorization code carried in the access request is valid. And in response to receiving the access request, in accordance with the file identifier and user identifier of the first portion carried in the access request, to generate a key in accordance with the first portion of the key and the second portion of the key carried in the access request. A first portion of the associated authorization code and key can be obtained.

일부 실시예들에서, 승인 모듈(703)은 승인 코드 및 키의 제2 부분을 포함하는, 암호화된 데이터에 대한 액세스 토큰을 추가로 생성하고, 액세스 토큰을 파일 식별자와 연관시킬 수 있다. 승인 모듈(703)은 파일 식별자와 연관된 액세스 토큰을 제2 클라이언트(102)에게 전송할 수 있어서, 제2 클라이언트(102)는 액세스 토큰을 액세스 요청에 추가할 수 있다.In some embodiments, authorization module 703 may further generate an access token for the encrypted data, including the authorization code and the second portion of the key, and associate the access token with the file identifier. The authorization module 703 can send an access token associated with the file identifier to the second client 102, so that the second client 102 can add the access token to the access request.

일부 실시예들에서, 승인 모듈(703)은 승인 코드에 대한 취소 요청을 액세스 승인 서버(103)에게 추가로 전송하여, 액세스 승인 서버(103)가 승인 코드를 무효화할 수 있도록 한다. 승인 모듈(703)은 로컬 승인 코드를 추가로 무효화할 수 있다.In some embodiments, authorization module 703 further sends a cancellation request for the authorization code to access authorization server 103, allowing access authorization server 103 to invalidate the authorization code. The authorization module 703 may further invalidate the local authorization code.

일부 실시예들에서, 승인 모듈(703)은 암호화된 데이터에 대한 승인 코드 생성 요청을 액세스 승인 서버(103)에게 추가로 전송하여, 액세스 승인 서버(103)가 암호화된 데이터에 대응하는 새로운 승인 코드를 생성할 수 있도록 한다. 승인 모듈(703)은, 액세스 승인 서버(103)로부터, 암호화된 데이터에 대응하는 새로운 승인 코드를 추가로 수신할 수 있다.In some embodiments, authorization module 703 further sends an authorization code generation request for encrypted data to access authorization server 103 such that access authorization server 103 corresponds to the new authorization code. To create a. The authorization module 703 may further receive a new authorization code corresponding to the encrypted data from the access authorization server 103.

일부 실시예들에서, 승인 모듈(703)은 암호화된 데이터에 대한 승인 코드 업데이트 요청을 액세스 승인 서버(103)에게 추가로 전송하여, 액세스 승인 서버(103)가 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하고, 이전의 승인 코드를 새로운 승인 코드로 대체할 수 있다. 승인 모듈(703)은 액세스 승인 서버(103)로부터 새로운 승인 코드를 추가로 수신하고, 이전 승인 코드를 새로운 승인 코드로 대체할 수 있다.In some embodiments, authorization module 703 further sends an authorization code update request for encrypted data to access authorization server 103 so that access authorization server 103 corresponds to the new authorization code. Can be generated and replaced with the new authorization code. The authorization module 703 may further receive a new authorization code from the access authorization server 103 and replace the old authorization code with a new authorization code.

전술한 방법에 기초하여, 본 개시의 실시예는 전술한 방법을 구현할 수 있는 (전술한 액세스 승인 서버(103)와 같은) 액세스 승인 서버를 추가로 제공할 수 있다. 도 8에 도시된 바와 같이, 서버(800)는 다음의 모듈, 즉,Based on the method described above, embodiments of the present disclosure may further provide an access authorization server (such as the access authorization server 103 described above) that may implement the method described above. As shown in FIG. 8, server 800 includes the following modules:

제1 클라이언트(101)로부터 제1 키의 제1 부분을 수신하고 ― 제1 키는 정보 공유 시스템(104)의 블록에 업로드된 암호화된 데이터에 대응하고, 암호화된 데이터는 제1 키에 따라 평문 데이터를 암호화함으로써 획득되며, 정보 공유 시스템은 블록체인 시스템임 ―, 암호화된 데이터에 대응하는 제1 승인 코드를 생성하며, 제1 승인 코드를 제1 클라이언트(101)에게 전송하도록 구성된 승인 모듈(801) ― 제1 클라이언트(101)가, 제2 클라이언트(102)가 암호화된 데이터에 액세스하도록 승인하는 경우, 제1 승인 코드 및 제1 키의 제2 부분을 제2 클라이언트(102)에게 전송하여, 암호화된 데이터에 액세스하는 경우 제2 클라이언트(102)가 제1 승인 코드 및 제1 키의 제2 부분을 액세스 요청에 추가하고, 제1 키의 제2 부분은 제1 부분을 제외한 제1 키의 나머지 부분을 포함함 ―;Receiving a first portion of a first key from the first client 101, wherein the first key corresponds to encrypted data uploaded to a block of the information sharing system 104, the encrypted data in plain text according to the first key Obtained by encrypting the data, the information sharing system is a blockchain system, the authorization module 801 configured to generate a first authorization code corresponding to the encrypted data and to transmit the first authorization code to the first client 101 )-When the first client 101 authorizes the second client 102 to access the encrypted data, sends the first grant code and the second portion of the first key to the second client 102, When accessing encrypted data, the second client 102 adds a first grant code and a second portion of the first key to the access request, the second portion of the first key being the portion of the first key except the first portion. Contains the rest -;

암호화된 데이터에 대한 임의의 클라이언트(예를 들어, 제2 클라이언트(102))로부터의 액세스 요청의 수신에 응답하여, 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하고, 제2 승인 코드가 제1 승인 코드와 동일하고 제2 승인 코드가 유효한 경우에 키 모듈(803)을 트리거하도록 구성된 검증 모듈(802);In response to receiving an access request from any client (eg, second client 102) for the encrypted data, a second authorization code and an incomplete key are obtained from the access request, and the second authorization code is generated. A verification module 802, configured to trigger the key module 803 if the same as the first authorization code and the second authorization code is valid;

암호화된 데이터에 대응하는 불완전한 키 및 제1 키의 제1 부분에 따라 제2 키를 생성하도록 구성되는 키 모듈(803) ― 생성된 제2 키는 불완전한 키가 제1 키의 제2 부분과 동일한 경우에 제1 키와 동일함―; 및A key module 803 configured to generate a second key in accordance with an incomplete key corresponding to the encrypted data and a first portion of the first key, wherein the generated second key has an incomplete key equal to the second portion of the first key; Same as the first key in the case; And

정보 공유 시스템(104)의 블록으로부터 암호화된 데이터를 획득하고, 제2 키에 따라 암호화된 데이터를 복호하도록 구성된 복호화 모듈(804) ― 평문 데이터는 복호화를 통해 획득되고 제2 키가 제1 키와 동일한 경우에 액세스 요청을 전송하는 클라이언트에게 전송됨 ―A decryption module 804 configured to obtain encrypted data from a block of the information sharing system 104, and decrypt the encrypted data according to the second key, wherein the plain text data is obtained through decryption and the second key is associated with the first key. Sent to Client Sending Access Request in Same Case

을 포함할 수 있다.It may include.

일부 실시예들에서, 검증 모듈(802)은 액세스 요청으로부터 암호화된 데이터의 액세스 토큰을 획득하고, 액세스 토큰으로부터 제2 승인 코드 및 불완전한 키를 획득할 수 있다.In some embodiments, the verification module 802 may obtain an access token of encrypted data from the access request, and obtain a second authorization code and an incomplete key from the access token.

일부 실시예들에서, 승인 모듈(801)은 제1 클라이언트(101)로부터 키의 제1 부분을 수신하는 경우에 암호화된 데이터의 보유자의 파일 식별자 및 사용자 식별자를 추가로 수신할 수 있다. 승인 모듈(801)은 보유자의 사용자 식별자에 대응하는 규칙에 따라 제1 승인 코드를 생성하고, 제1 승인 코드를 키의 제1 부분, 파일 식별자 및 보유자의 사용자 식별자와 연관시킬 수 있다. 검증 모듈(802)은, 액세스 요청의 수신에 응답하여, 액세스 요청에서 운반된 보유자의 파일 식별자 및 사용자 식별자에 따라 연관된 제1 승인 코드 및 키의 제1 부분을 획득할 수 있다.In some embodiments, authorization module 801 may further receive a file identifier and a user identifier of a holder of encrypted data when receiving a first portion of a key from first client 101. The authorization module 801 may generate a first authorization code in accordance with a rule corresponding to the holder's user identifier, and associate the first authorization code with the first portion of the key, the file identifier, and the owner's user identifier. The verification module 802 may, in response to receiving the access request, obtain a first portion of the associated first authorization code and key according to the holder's file identifier and user identifier carried in the access request.

일부 실시예들에서, 블록은 블록 높이에 대응할 수 있다. 승인 모듈(801)에 의해 생성된 제1 승인 코드는 액세스가 허용된 블록 높이 및/또는 만료 시간에 대응할 수 있다. 검증 모듈(802)은 제2 승인 코드가 제1 승인 코드와 동일한 경우에 제2 승인 코드에 대응하는 액세스가 허용된 블록 높이 및/또는 만료 시간을 획득할 수 있고, 액세스 요청에 대응하는 암호화된 데이터의 블록 높이가 제2 승인 코드에 대응하여 액세스 허용된 블록 높이와 일치하는 경우 및/또는 제2 승인 코드의 만료 시간이 아직 도달하지 않은 경우에 제2 승인 코드가 유효한 것으로 결정할 수 있다.In some embodiments, the block may correspond to the block height. The first grant code generated by the grant module 801 may correspond to the block height and / or expiration time allowed for access. The verification module 802 can obtain a block height and / or an expiration time for which the access corresponding to the second grant code is allowed when the second grant code is the same as the first grant code, and encrypts the encrypted request corresponding to the access request. The second grant code may be determined to be valid if the block height of the data matches the block height allowed for access corresponding to the second grant code and / or if the expiration time of the second grant code has not yet reached.

일부 실시예들에서, 승인 모듈(801)은 승인 코드에 대해 제1 클라이언트(101)로부터의 취소 요청에 응답하여 제1 승인 코드를 추가로 무효화할 수 있고, 제1 클라이언트(101)가 로컬의 제1 승인 코드를 무효화할 수 있도록 제1 클라이언트에게 응답을 리턴할 수 있다.In some embodiments, the authorization module 801 may further invalidate the first authorization code in response to a cancellation request from the first client 101 for the authorization code, whereby the first client 101 may be configured locally. The response may be returned to the first client to invalidate the first authorization code.

일부 실시예들에서, 승인 모듈(801)은 암호화된 데이터에 대한 제1 클라이언트(101)로부터의 승인 코드 생성 요청에 응답하여 암호화된 데이터에 대응하는 새로운 승인 코드를 추가로 생성하고, 암호화된 데이터에 대응하는 새로운 승인 코드를 제1 클라이언트(101)에게 전송할 수 있다.In some embodiments, authorization module 801 further generates a new authorization code corresponding to the encrypted data in response to the authorization code generation request from the first client 101 for the encrypted data, and encrypts the encrypted data. A new authorization code corresponding to may be transmitted to the first client 101.

일부 실시예들에서, 승인 모듈(801)은 암호화된 데이터에 대한 제1 클라이언트(101)로부터의 승인 코드 업데이트 요청에 응답하여 암호화된 데이터에 대응하는 새로운 승인 코드를 추가로 생성하고, 이전의 제1 승인 코드를 새로운 인증으로 대체하며, 제1 클라이언트(101)가 이전의 제1 승인 코드를 새로운 승인 코드로 대체할 수 있도록 암호화된 데이터에 대응하는 새로운 승인 코드를 제1 클라이언트(101)에게 전송할 수 있다.In some embodiments, authorization module 801 further generates a new authorization code corresponding to the encrypted data in response to the authorization code update request from the first client 101 for the encrypted data, 1 replaces the authorization code with a new authorization, and sends a new authorization code corresponding to the encrypted data to the first client 101 so that the first client 101 can replace the previous authorization code with the new authorization code. Can be.

전술한 모듈의 기능의 구현 원리는 이미 위에서 상세하게 설명되었고, 상세한 것은 여기에서 다시 설명되지 않는다.The principle of implementation of the functions of the above-described modules has already been described in detail above, and details are not described herein again.

일부 실시예들에서, 전술한 클라이언트(700) 및 서버(800)는 다양한 컴퓨팅 장치에서 실행될 수 있고, 컴퓨팅 장치의 메모리에 로드될 수 있다. 실시예에 따르면, 하나 이상의 프로세서, 메모리, 및 메모리에 저장되고 하나 이상의 프로세서에 의해 수행되도록 구성된 하나 이상의 프로그램을 포함하는 컴퓨팅 장치가 제공되며, 하나 이상의 프로그램은 전술한 방법 실시예들 중 임의의 것을 수행하기 위한 명령을 포함한다.In some embodiments, the client 700 and server 800 described above can be executed on various computing devices and loaded into the memory of the computing device. According to an embodiment, there is provided a computing device comprising one or more processors, a memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, wherein the one or more programs may be any of the foregoing method embodiments. Contains instructions for performing

도 9는 클라이언트(700) 또는 서버(800)가 위치하는 컴퓨팅 장치의 구성의 구조도이다. 도 9에 도시된 바와 같이, 컴퓨팅 장치는 하나 이상의 프로세서(CPU)(902), 통신 모듈(904), 메모리(906), 사용자 인터페이스(910), 및 컴포넌트들을 상호 연결하도록 구성된 통신 버스(908)를 포함할 수 있다.9 is a structural diagram of a configuration of a computing device in which a client 700 or server 800 is located. As shown in FIG. 9, the computing device includes a communication bus 908 configured to interconnect one or more processors (CPUs) 902, communication modules 904, memory 906, user interface 910, and components. It may include.

프로세서(902)는 네트워크 통신 및/또는 로컬 통신을 구현하기 위해 통신 모듈(904)을 통해 데이터를 수신하고 전송할 수 있다.The processor 902 may receive and transmit data via the communication module 904 to implement network communication and / or local communication.

사용자 인터페이스(910)는 하나 이상의 스피커 및/또는 하나 이상의 시각 디스플레이를 포함하는 하나 이상의 출력 장치를 포함할 수 있다. 사용자 인터페이스는 또한 예를 들어 키보드, 마우스, 음성 명령 입력 유닛 또는 라우드스피커, 터치 디스플레이, 터치 감응 입력 태블릿, 제스처 캡처 카메라 또는 다른 입력 버튼 또는 제어를 포함하는 하나 이상의 입력 장치(914)를 포함할 수 있다. User interface 910 may include one or more output devices that include one or more speakers and / or one or more visual displays. The user interface may also include one or more input devices 914 including, for example, a keyboard, mouse, voice command input unit or loudspeaker, touch display, touch sensitive input tablet, gesture capture camera or other input button or control. have.

메모리(906)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 저장 장치와 같은 고속 랜덤 액세스 메모리일 수 있다. 메모리(906)는 또한 비 휘발성 메모리, 예를 들어 하나 이상의 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치 또는 다른 비 휘발성 솔리드 스테이트 저장 장치를 포함할 수 있다.Memory 906 may be fast random access memory such as DRAM, SRAM, DDR RAM or other random access solid state storage. Memory 906 may also include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.

메모리(906)는 프로세서(902)에 의해 실행될 수 있는 명령 세트를 저장할 수 있으며, The memory 906 may store a set of instructions that may be executed by the processor 902,

다양한 기본 시스템 서비스를 처리하고 하드웨어 관련 작업을 수행하기 위한 프로그램을 포함하는 운영 체제(916); 및An operating system 916 including programs for processing various basic system services and for performing hardware related tasks; And

전술한 실시예에서의 처리 절차를 구현할 수 있는 다양한 애플리케이션 프로그램을 포함하며, 예를 들어 도 7에 도시된 클라이언트(700) 및/또는 도 8에 도시된 서버(800)를 포함할 수 있는 애플리케이션(918)을 포함한다. 일부 실시예들에서, 클라이언트(700)는 도 7에 도시된 모듈(701 내지 703)의 일부 또는 전부를 포함할 수 있으며, 모듈(701 내지 703)은 기계 실행 가능 명령을 저장할 수 있다. 프로세서(902)는 메모리(906)에 저장된 모듈(701 내지 703)의 기계 실행 가능 명령을 실행함으로써 전술한 모듈(701 내지 703)의 기능을 구현할 수 있다. 일부 실시예들에서, 서버(800)는 도 8에 도시된 모듈(801 내지 804)의 일부 또는 전부를 포함할 수 있으며, 모듈(801 내지 804)은 기계 실행 가능 명령어을 저장할 수 있다. 프로세서(902)는 메모리(906)에 저장된 모듈(801 내지 804)에서 기계 실행 가능 명령을 실행함으로써 전술한 모듈(801 내지 804)의 기능을 구현할 수 있다.Applications that may include various application programs capable of implementing the processing procedures in the foregoing embodiments, and may include, for example, the client 700 shown in FIG. 7 and / or the server 800 shown in FIG. 918). In some embodiments, client 700 may include some or all of modules 701-703 shown in FIG. 7, and modules 701-703 may store machine executable instructions. The processor 902 may implement the functions of the above-described modules 701 to 703 by executing the machine executable instructions of the modules 701 to 703 stored in the memory 906. In some embodiments, server 800 may include some or all of modules 801-804 shown in FIG. 8, and modules 801-804 may store machine executable instructions. The processor 902 may implement the functionality of the modules 801-804 described above by executing machine executable instructions in the modules 801-804 stored in the memory 906.

전술한 실시예에서 제공된 클라이언트, 서버 및 컴퓨팅 장치를 사용함으로써, 제1 클라이언트(101)는 키 및 승인 코드를 보유하고, 액세스 승인 서버(103)는 승인 코드 및 키의 제1 부분을 보유하며, 승인되는 경우, 제2 클라이언트(102)는 키의 제2 부분 및 승인 코드를 보유할 수 있다. 이 경우, 제2 클라이언트(102)가 액세스 승인 서버(103)를 통해 대응하는 데이터에 대한 액세스를 요청하는 경우, 액세스 승인 서버(103)는 먼저 승인 코드가 유효한지 여부를 검증하고, 승인 코드가 유효한 경우에 제1 클라이언트(101) 및 제2 클라이언트(102)로부터 획득된 불완전한 키(키의 제1 부분 및 제2 부분)를 사용하여 완전한 키를 획득할 수 있다. 제2 클라이언트(102)에 의해 제공된 불완전한 키가 유효하지 않으면, 정확한 완전한 키가 획득될 수 없고, 암호화된 데이터가 성공적으로 복호될 수 없다. 이것은 데이터 보안을 보장한다. 이러한 실시예에서, 제2 클라이언트(102) 및 액세스 승인 서버(103)는 각각 키의 일부를 보유할 수 있고, 이들 중 어느 누구도 암호화된 데이터에 액세스할 권리를 가질 수 없다. 완전한 키는 제2 클라이언트(102) 및 액세스 승인 서버(103)에 의해 보유된 키 정보가 조합되는 경우에만 획득될 수 있으므로, 데이터 보안 및 사용자 프라이버시를 보장할 수 있다.By using the client, server and computing device provided in the above embodiments, the first client 101 holds a key and an authorization code, and the access authorization server 103 holds an authorization code and a first portion of the key, If approved, the second client 102 can hold the second portion of the key and the authorization code. In this case, when the second client 102 requests access to the corresponding data via the access authorization server 103, the access authorization server 103 first verifies whether the authorization code is valid, and the authorization code is If valid, an incomplete key (first and second portions of the key) obtained from the first client 101 and the second client 102 can be used to obtain the complete key. If the incomplete key provided by the second client 102 is not valid, the correct complete key cannot be obtained and the encrypted data cannot be successfully decrypted. This ensures data security. In this embodiment, the second client 102 and the access authorization server 103 can each hold a portion of the key, and none of them have the right to access the encrypted data. The complete key can be obtained only when the key information held by the second client 102 and the access authorization server 103 are combined, thereby ensuring data security and user privacy.

전술한 프로세스 및 구조도의 모든 단계 및 모듈이 필요한 것은 아니며, 실제 요구사항에 따라 일부 단계 또는 모듈은 무시될 수 있다. 단계의 실행 순서는 고정되어 있지 않지만, 필요에 따라 조정될 수 있다. 모듈의 분할은 단지 사용된 기능 분할을 편리하게 설명하기 위한 것이다. 실제 구현 동안, 하나의 모듈은 다수의 모듈에 의해 구현될 수 있고, 다수의 모듈의 기능은 또한 동일한 모듈에 의해 구현될 수 있다. 모듈은 동일한 장치에 위치할 수 있거나, 또는 다른 장치에 위치할 수 있다.Not all steps and modules of the above-described processes and schematics are necessary, and some steps or modules may be ignored, depending on the actual requirements. The order of execution of the steps is not fixed but can be adjusted as needed. The division of the modules is merely for convenience to explain the functional division used. During actual implementation, one module may be implemented by multiple modules, and the functions of multiple modules may also be implemented by the same module. The module may be located in the same device or may be located in another device.

실시예에서의 하드웨어 모듈은 하드웨어 또는 소프트웨어를 갖는 하드웨어 플랫폼에 의해 구현될 수 있다. 소프트웨어는 기계 판독 가능 명령어를 포함할 수 있고, 비 휘발성 저장 매체에 저장될 수 있다. 따라서, 실시예들은 또한 소프트웨어 제품으로서 구현될 수도 있다.The hardware module in an embodiment may be implemented by a hardware platform having hardware or software. The software may include machine readable instructions and may be stored in a nonvolatile storage medium. Thus, embodiments may also be implemented as a software product.

실시예들에서, 하드웨어는 전용 하드웨어 또는 기계 판독 가능 명령을 실행하는 하드웨어에 의해 구현될 수 있다. 예를 들어, 하드웨어는 특정 작동을 완료하도록 구성된 특별히 설계된 영구 회로 또는 논리 장치(예를 들어, FPGA 또는 ASIC과 같은 특수 목적 프로세서)일 수 있다. 하드웨어는 또한 프로그램 가능한 로직 장치 또는 소프트웨어에서 일시적으로 구성되고 특정 작업을 수행하도록 구성된 (범용 프로세서 또는 다른 프로그램 가능 프로세서와 같은) 회로를 포함할 수 있다.In embodiments, the hardware may be implemented by dedicated hardware or by hardware executing machine readable instructions. For example, the hardware may be a specially designed permanent circuit or logic device (eg, a special purpose processor such as an FPGA or ASIC) configured to complete a particular operation. The hardware may also include circuitry (such as a general purpose processor or other programmable processor) that is temporarily configured in a programmable logic device or software and configured to perform a particular task.

또한, 본 개시의 실시예 각각은 컴퓨터와 같은 데이터 처리 장치에 의해 실행되는 데이터 처리 프로그램에 의해 구현될 수 있다. 분명히, 데이터 처리 프로그램은 본 개시에서 사용될 수 있다. 또한, 일반적으로 저장 매체에 저장된 데이터 처리 프로그램은 다음의 방식: 저장 매체로부터 프로그램을 직접 판독하거나 또는 데이터 처리 장치의 (하드 디스크 또는 메모리와 같은) 저장 장치에 프로그램을 설치하거나 또는 복사하는 방식으로 실행될 수 있다. 따라서, 이러한 저장 매체는 본 개시에서 사용될 수도 있다. 본 개시의 실시예는 데이터 처리 프로그램을 저장할 수 있는 비 휘발성 저장 매체를 더 제공한다. 데이터 처리 프로그램은 본 개시의 전술한 방법 실시예에서의 임의의 실시예를 실행하도록 구성될 수 있다.In addition, each of the embodiments of the present disclosure may be implemented by a data processing program executed by a data processing apparatus such as a computer. Clearly, data processing programs can be used in the present disclosure. Also, a data processing program stored on a storage medium is generally executed in the following manner: by reading the program directly from the storage medium or by installing or copying the program to a storage device (such as a hard disk or memory) of the data processing apparatus. Can be. Thus, such storage media may be used in the present disclosure. Embodiments of the present disclosure further provide a nonvolatile storage medium capable of storing a data processing program. The data processing program may be configured to execute any embodiment in the foregoing method embodiments of the present disclosure.

도 7 및 도 8에서의 모듈에 대응하는 기계 판독 가능 명령은 컴퓨터에서 작동하는 운영 체제가 여기에서 설명된 작동의 전부 또는 일부를 완료하게 할 수 있다. 비 휘발성 컴퓨터 판독 가능 저장 매체는 컴퓨터의 확장 보드에 배치된 메모리에 삽입되거나 또는 컴퓨터에 연결된 확장 유닛에 배치된 메모리에 기록될 수 있다. 확장 보드 또는 확장 유닛에 설치된 CPU 등은 명령에 따라 실제 작동의 일부 또는 전부를 수행할 수 있다.Machine-readable instructions corresponding to the modules in FIGS. 7 and 8 may cause an operating system operating on a computer to complete all or part of the operations described herein. The non-volatile computer readable storage medium may be inserted into a memory disposed on an expansion board of a computer or recorded in a memory disposed on an expansion unit connected to the computer. The CPU or the like installed in the expansion board or the expansion unit may perform some or all of the actual operations according to the instruction.

비 휘발성 컴퓨터 판독 가능 저장 매체는 플로피 디스크, 하드 디스크, 광 자기 디스크, (CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW 또는 DVD RW 같은) 광 디스크, 자기 테이프, 비 휘발성 메모리 카드 및 ROM을 포함한다. 또한, 프로그램 코드는 서버 컴퓨터로부터 통신 네트워크에 의해 다운로드될 수 있다.Non-volatile computer readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW or DVD RW), Magnetic tape, non-volatile memory cards and ROM. In addition, the program code may be downloaded by the communication network from the server computer.

결론적으로, 청구 범위의 범주는 상기한 실시예에서의 구현으로 제한되지 않으며, 본 개시는 전체적으로 가장 넓은 의미로 해석되어야 한다.In conclusion, the scope of the claims is not limited to the implementation in the above-described embodiment, the present disclosure should be construed in the broadest sense as a whole.

Claims (15)

제1 클라이언트에 의해 수행되는 데이터 공유 방법으로서,
암호화된 데이터를 획득하기 위해, 키(key)에 따라 평문 데이터를 암호화하는 단계;
상기 암호화된 데이터를 정보 공유 시스템의 블록으로 업로드하는 단계 ― 상기 정보 공유 시스템은 블록체인 시스템임 ―;
상기 정보 공유 시스템에 대응하는 액세스 승인 서버로 상기 키의 제1 부분을 업로드하는 단계;
상기 암호화된 데이터에 대응하는 승인 코드를 상기 액세스 승인 서버로부터 수신하는 단계; 및
사용자가 상기 암호화된 데이터에 액세스하도록 승인되는 경우에 상기 사용자의 제2 클라이언트에게 상기 승인 코드 및 상기 키의 제2 부분을 전송하는 단계 ― 상기 키의 제2 부분은 상기 제1 부분을 제외한 상기 키의 나머지 부분을 포함하고, 상기 액세스 승인 서버에게 상기 암호화된 데이터에 대한 액세스 요청을 전송하는 경우, 상기 제2 클라이언트가 상기 승인 코드 및 상기 키의 제2 부분을 상기 액세스 요청에 추가하고, 상기 액세스 승인 서버가 상기 승인 코드가 유효한 것으로 결정하는 경우에 상기 액세스 승인 서버가 상기 키의 제1 부분 및 제2 부분에 따라 상기 키를 생성하고, 상기 평문 데이터를 획득하기 위해, 상기 생성된 키에 따라 상기 정보 공유 시스템의 블록으로부터 획득된 상기 암호화된 데이터를 복호하며, 상기 제2 클라이언트에게 상기 암호화된 데이터를 리턴함 ―
을 포함하는 데이터 공유 방법.
A data sharing method performed by a first client,
Encrypting the plain text data according to a key to obtain encrypted data;
Uploading the encrypted data to a block of an information sharing system, wherein the information sharing system is a blockchain system;
Uploading the first portion of the key to an access authorization server corresponding to the information sharing system;
Receiving an authorization code corresponding to the encrypted data from the access authorization server; And
Transmitting the authorization code and a second portion of the key to a second client of the user when the user is authorized to access the encrypted data, wherein the second portion of the key is the key except the first portion The second client adds the authorization code and the second portion of the key to the access request, and sends the access request to the access authorization server to the access authorization server. In case the authorization server determines that the authorization code is valid, the access authorization server generates the key according to the first and second portions of the key and, according to the generated key, to obtain the plain text data. Decrypt the encrypted data obtained from the block of the information sharing system, and transmit the decoded data to the second client. Returns the encrypted data;
Data sharing method comprising a.
제1항에 있어서,
상기 암호화된 데이터가 상기 정보 공유 시스템의 블록으로 업로드되는 경우, 상기 정보 공유 시스템이 상기 암호화된 데이터를 상기 암호화된 데이터의 파일 식별자 및 상기 암호화된 데이터의 보유자의 사용자 식별자와 연관시키고, 상기 액세스 승인 서버가 상기 파일 식별자 및 상기 보유자의 사용자 식별자에 따라 상기 정보 공유 시스템의 블록으로부터 상기 암호화된 데이터를 획득할 수 있도록, 상기 파일 식별자 및 상기 보유자의 사용자 식별자가 추가로 업로드되는,
데이터 공유 방법.
The method of claim 1,
When the encrypted data is uploaded to the block of the information sharing system, the information sharing system associates the encrypted data with a file identifier of the encrypted data and a user identifier of the holder of the encrypted data, and grants the access. The file identifier and the user identifier of the holder are further uploaded so that a server can obtain the encrypted data from the block of the information sharing system according to the file identifier and the user identifier of the holder,
How to share your data.
제2항에 있어서,
상기 키의 제1 부분이 상기 액세스 승인 서버로 업로드되는 경우, 상기 액세스 승인 서버가 상기 보유자의 사용자 식별자에 대응하는 규칙에 따른 상기 승인 코드를 생성하고, 상기 승인 코드를 상기 키의 제1 부분, 상기 파일 식별자 및 상기 보유자의 사용자 식별자와 연관시키며, 상기 액세스 요청의 수신에 응답하여, 상기 액세스 요청에서 운반되는 상기 파일 식별자 및 상기 제1 부분의 사용자 식별자에 따라 상기 연관된 승인 코드 및 상기 키의 제1 부분을 획득하여, 상기 획득된 승인 코드에 따라, 상기 액세스 요청에서 운반된 상기 승인 코드가 유효한지의 여부를 결정하고, 상기 키의 제1 부분 및 상기 액세스 요청에서 운반된 상기 제2 부분을 생성할 수 있도록, 상기 파일 식별자 및 상기 보유자의 사용자 식별자가 추가로 업로드되는,
데이터 공유 방법.
The method of claim 2,
When the first portion of the key is uploaded to the access authorization server, the access authorization server generates the authorization code in accordance with a rule corresponding to the user identifier of the holder, and the authorization code is generated by the first portion of the key, Associate with the file identifier and the user identifier of the holder, and in response to receipt of the access request, present the associated authorization code and the key according to the file identifier carried in the access request and the user identifier of the first portion; Acquiring one portion, and determining, according to the obtained authorization code, whether the authorization code carried in the access request is valid, and extracting the first portion of the key and the second portion carried in the access request. The file identifier and the user identifier of the holder are further uploaded so that they can be generated,
How to share your data.
제1항에 있어서,
상기 액세스 승인 서버가 상기 승인 코드를 무효화할 수 있도록 상기 액세스 승인 서버에게 상기 승인 코드의 취소 요청을 전송하는 단계; 및
로컬 승인 코드를 무효화하는 단계
를 더 포함하는 데이터 공유 방법.
The method of claim 1,
Sending a request for revocation of the authorization code to the access authorization server for the access authorization server to invalidate the authorization code; And
Steps to Invalidate a Local Authorization Code
Data sharing method further comprising a.
제1항에 있어서,
상기 액세스 승인 서버가 상기 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하고, 이전의 승인 코드를 상기 새로운 승인 코드로 대체할 수 있도록 상기 액세스 승인 서버에게 상기 암호화된 데이터에 대한 승인 코드 업데이트 요청을 전송하는 단계; 및
상기 액세스 승인 서버로부터 상기 새로운 승인 코드를 수신하고, 상기 승인 코드를 상기 새로운 승인 코드로 대체하는 단계
를 더 포함하는 데이터 공유 방법.
The method of claim 1,
Send an authorization code update request for the encrypted data to the access authorization server so that the access authorization server generates a new authorization code corresponding to the encrypted data and replaces a previous authorization code with the new authorization code. Doing; And
Receiving the new authorization code from the access authorization server and replacing the authorization code with the new authorization code
Data sharing method further comprising a.
액세스 승인 서버에 의해 수행되는 데이터 공유 방법으로서,
제1 클라이언트로부터 제1 키의 제1 부분을 수신하는 단계 ― 상기 제1 키는 정보 공유 시스템의 블록으로 업로드된 암호화된 데이터에 대응하고, 상기 암호화된 데이터는 상기 제1 키에 따라 평문 데이터를 암호화함으로써 획득되며, 상기 정보 공유 시스템은 블록체인 시스템임 ―;
상기 암호화된 데이터에 대응하는 제1 승인 코드를 생성하는 단계;
상기 제1 클라이언트가 제2 클라이언트가 상기 암호화된 데이터에 액세스하도록 승인하는 경우, 상기 제1 클라이언트가 상기 제2 클라이언트에게 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 전송하여, 상기 제2 클라이언트가 상기 암호화된 데이터에 액세스하는 경우에 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 액세스 요청에 추가할 수 있도록, 상기 제1 클라이언트에게 상기 제1 승인 코드를 전송하는 단계 ― 상기 제1 키의 제2 부분은 상기 제1 부분을 제외한 상기 제1 키의 나머지 부분을 포함함 ―
를 포함하고,
상기 암호화된 데이터에 대한 임의의 클라이언트로부터의 액세스 요청의 수신에 응답하여, 상기 데이터 공유 방법은,
상기 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하는 단계;
상기 제2 승인 코드가 상기 제1 승인 코드와 동일하고 상기 제2 승인 코드가 유효한 경우에 상기 불완전한 키 및 상기 암호화된 데이터에 대응하는 상기 제1 키의 제1 부분에 따라 제2 키를 생성하는 단계 ― 상기 생성된 제2 키는 상기 불완전한 키가 상기 제1 키의 제2 부분과 동일한 경우에 상기 제1 키와 동일함 ―;
상기 정보 공유 시스템의 블록으로부터 상기 암호화된 데이터를 획득하는 단계; 및
상기 제2 키에 따라 상기 암호화된 데이터를 복호하는 단계 ― 상기 평문 데이터는 복호화를 통해 획득되고 상기 제2 키가 상기 제1 키와 동일한 경우에 상기 액세스 요청을 전송하는 상기 클라이언트에게 전송됨 ―
를 더 포함하는, 데이터 공유 방법
A data sharing method performed by an access authorization server,
Receiving a first portion of a first key from a first client, wherein the first key corresponds to encrypted data uploaded to a block of an information sharing system, the encrypted data representing plaintext data according to the first key; Obtained by encryption, wherein the information sharing system is a blockchain system;
Generating a first authorization code corresponding to the encrypted data;
When the first client authorizes a second client to access the encrypted data, the first client sends the second grant code and the second portion of the first key to the second client, thereby generating the first client. 2 sending the first grant code to the first client so that the client can add the first grant code and the second portion of the first key to an access request when the client accesses the encrypted data; The second portion of the first key comprises the remaining portion of the first key except the first portion;
Including,
In response to receiving an access request from any client to the encrypted data, the data sharing method includes:
Obtaining a second grant code and an incomplete key from the access request;
Generating a second key according to the incomplete key and a first portion of the first key corresponding to the encrypted data when the second grant code is the same as the first grant code and the second grant code is valid Step, said generated second key being equal to said first key if said incomplete key is equal to a second portion of said first key;
Obtaining the encrypted data from the block of the information sharing system; And
Decrypting the encrypted data according to the second key, wherein the plaintext data is obtained through decryption and is sent to the client sending the access request if the second key is equal to the first key;
Further comprising, data sharing method
제6항에 있어서,
상기 키의 제1 부분이 상기 제1 클라이언트로부터 수신되는 경우, 상기 암호화된 데이터의 파일 식별자 및 상기 암호화된 데이터의 보유자의 사용자 식별자가 더 수신되고,
상기 암호화된 데이터에 대응하는 상기 제1 승인 코드를 생성하는 단계는,
상기 보유자의 사용자 식별자에 대응하는 규칙에 따라 상기 제1 승인 코드를 생성하고, 상기 제1 승인 코드를 상기 키의 제1 부분, 상기 파일 식별자 및 상기 보유자의 사용자 식별자와 연관시키는 단계; 및
상기 액세스 요청을 수신하는 것에 응답하여, 상기 액세스 요청에서 운반되는 상기 파일 식별자 및 상기 보유자의 사용자 식별자에 따라 상기 연관된 제1 승인 코드 및 상기 키의 제1 부분을 획득하는 단계
를 더 포함하는, 데이터 공유 방법.
The method of claim 6,
When the first portion of the key is received from the first client, a file identifier of the encrypted data and a user identifier of the holder of the encrypted data are further received,
Generating the first authorization code corresponding to the encrypted data,
Generating the first authorization code according to a rule corresponding to the holder's user identifier and associating the first authorization code with a first portion of the key, the file identifier and the holder's user identifier; And
In response to receiving the access request, obtaining the associated first authorization code and the first portion of the key according to the file identifier carried in the access request and the holder's user identifier
Further comprising, data sharing method.
제6항에 있어서,
상기 블록은 블록 높이에 대응하고,
상기 생성된 제1 승인 코드는 액세스가 허용된 블록 높이 및 만료 시간 중 적어도 하나에 대응하며,
상기 제2 승인 코드가 상기 제1 승인 코드와 동일한 경우에 상기 제2 승인 코드에 대응하는 액세스가 허용된 블록 높이 및 만료 시간 중 적어도 하나가 획득되고,
상기 액세스 요청에 대응하는 상기 암호화된 데이터의 블록 높이가 상기 제2 승인 코드에 대응하여 액세스가 허용된 블록 높이와 일치하는 경우 및/또는 상기 제2 승인 코드의 만료 시간이 아직 도달하지 않은 경우에 상기 제2 승인 코드가 유효한 것으로 결정되는,
데이터 공유 방법.
The method of claim 6,
The block corresponds to the block height,
The generated first authorization code corresponds to at least one of a block height and an expiration time allowed for access,
If the second grant code is the same as the first grant code, at least one of a block height and an expiration time allowed for access corresponding to the second grant code is obtained,
The block height of the encrypted data corresponding to the access request matches the block height to which access is allowed in correspondence with the second grant code and / or the expiration time of the second grant code has not yet reached Determined that the second authorization code is valid,
How to share your data.
제6항에 있어서,
상기 승인 코드에 대한, 상기 클라이언트로부터의 취소 요청에 응답하여 상기 제1 승인 코드를 무효화하는 단계; 및
상기 제1 클라이언트가 상기 로컬 제1 승인 코드를 무효화할 수 있도록, 상기 제1 클라이언트에게 응답을 리턴하는 단계
를 더 포함하는 데이터 공유 방법.
The method of claim 6,
Invalidating the first authorization code in response to a cancellation request from the client for the authorization code; And
Returning a response to the first client such that the first client can invalidate the local first authorization code.
Data sharing method further comprising a.
제6항에 있어서,
상기 암호화된 데이터에 대한, 상기 제1 클라이언트로부터의 승인 코드 생성 요청에 응답하여 상기 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하는 단계; 및
상기 제1 클라이언트에게 상기 암호화된 데이터에 대응하는 상기 새로운 승인 코드를 전송하는 단계
를 더 포함하는 데이터 공유 방법.
The method of claim 6,
Generating a new authorization code corresponding to the encrypted data in response to the authorization code generation request from the first client for the encrypted data; And
Transmitting the new authorization code corresponding to the encrypted data to the first client.
Data sharing method further comprising a.
제6항에 있어서,
상기 암호화된 데이터에 대한, 상기 제1 클라이언트로부터의 승인 코드 업데이트 요청에 응답하여 상기 암호화된 데이터에 대응하는 새로운 승인 코드를 생성하고, 상기 제1 승인 코드를 상기 새로운 승인 코드로 대체하는 단계; 및
상기 제1 클라이언트가 상기 제1 승인 코드를 상기 새로운 승인 코드로 대체할 수 있도록, 상기 제1 클라이언트에게 상기 암호화된 데이터에 대응하는 상기 새로운 승인 코드를 전송하는 단계
를 더 포함하는 데이터 공유 방법.
The method of claim 6,
Generating a new authorization code corresponding to the encrypted data in response to an authorization code update request from the first client for the encrypted data, and replacing the first authorization code with the new authorization code; And
Sending the new authorization code corresponding to the encrypted data to the first client so that the first client can replace the first authorization code with the new authorization code.
Data sharing method further comprising a.
제1 클라이언트로서,
암호화된 데이터를 획득하기 위해, 키(key)에 따라 평문 데이터를 암호화하도록 구성된 암호화 모듈;
상기 암호화된 데이터를 정보 공유 시스템의 블록으로 업로드하고, 상기 정보 공유 시스템에 대응하는 액세스 승인 서버로 상기 키의 제1 부분을 업로드하도록 구성된 업로딩 모듈 ― 상기 정보 공유 시스템은 블록체인 시스템임 ―;
상기 암호화된 데이터에 대응하는 승인 코드를 상기 액세스 승인 서버로부터 수신하고,
사용자가 상기 암호화된 데이터에 액세스하도록 승인되는 경우에 제2 클라이언트에게 상기 승인 코드 및 상기 키의 제2 부분을 전송하도록 구성된 승인 모듈 ― 상기 키의 제2 부분은 상기 제1 부분을 제외한 상기 키의 나머지 부분을 포함하고, 상기 액세스 승인 서버에게 상기 암호화된 데이터에 대한 액세스 요청을 전송하는 경우, 상기 제2 클라이언트가 상기 승인 코드 및 상기 키의 제2 부분을 상기 액세스 요청에 추가하고, 상기 액세스 승인 서버가 상기 승인 코드가 유효한 것으로 결정하는 경우에 상기 액세스 승인 서버가 상기 키의 제1 부분 및 제2 부분에 따라 상기 키를 생성하고, 상기 평문 데이터를 획득하기 위해, 상기 생성된 키에 따라 상기 정보 공유 시스템의 블록으로부터 획득된 상기 암호화된 데이터를 복호하며, 상기 제2 클라이언트에게 상기 암호화된 데이터를 리턴함 ―
을 포함하는 제1 클라이언트.
As the first client,
An encryption module configured to encrypt the plain text data according to a key to obtain encrypted data;
An uploading module configured to upload the encrypted data to a block of an information sharing system and to upload a first portion of the key to an access authorization server corresponding to the information sharing system, wherein the information sharing system is a blockchain system;
Receive an authorization code corresponding to the encrypted data from the access authorization server,
An authorization module configured to send the authorization code and the second portion of the key to a second client when a user is authorized to access the encrypted data, wherein the second portion of the key is a portion of the key except the first portion. The second client adds the authorization code and the second portion of the key to the access request, and sends the access authorization to the access authorization server when the request for access to the encrypted data is transmitted. If the server determines that the authorization code is valid, the access authorization server generates the key in accordance with the first and second portions of the key, and obtains the plain text data to obtain the plain text data. Decrypts the encrypted data obtained from the block of the information sharing system, and transmits to the second client. Returns the encrypted data;
The first client comprising a.
액세스 승인 서버로서,
제1 클라이언트로부터 제1 키의 제1 부분을 수신하고 ― 상기 제1 키는 정보 공유 시스템의 블록으로 업로드된 암호화된 데이터에 대응하고, 상기 암호화된 데이터는 상기 제1 키에 따라 평문 데이터를 암호화함으로써 획득되며, 상기 정보 공유 시스템은 블록체인 시스템임 ―, 상기 암호화된 데이터에 대응하는 제1 승인 코드를 생성하며, 상기 제1 클라이언트에게 상기 제1 승인 코드를 전송하도록 구성된 승인 모듈 ― 상기 제1 클라이언트가 제2 클라이언트가 상기 암호화된 데이터에 액세스하도록 승인하는 경우, 상기 제1 클라이언트가 상기 제2 클라이언트에게 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 전송하여, 상기 제2 클라이언트가 상기 암호화된 데이터에 액세스하는 경우에 상기 제1 승인 코드 및 상기 제1 키의 제2 부분을 액세스 요청에 추가하고, 상기 제1 키의 제2 부분은 상기 제1 부분을 제외한 상기 제1 키의 나머지 부분을 포함함 ―;
상기 암호화된 데이터에 대한 임의의 클라이언트로부터의 액세스 요청의 수신에 응답하여, 상기 액세스 요청으로부터 제2 승인 코드 및 불완전한 키를 획득하고, 상기 제2 승인 코드가 상기 제1 승인 코드와 동일하고 상기 제2 승인 코드가 유효한 경우에 키 모듈을 트리거하도록 구성된 검증 모듈;
상기 불완전한 키 및 상기 암호화된 데이터에 대응하는 상기 제1 키의 제1 부분에 따라 제2 키를 생성하도록 구성된 상기 키 모듈 ― 상기 생성된 제2 키는 상기 불완전한 키가 상기 제1 키의 제2 부분과 동일한 경우에 상기 제1 키와 동일함 ―; 및
상기 정보 공유 시스템의 블록으로부터 상기 암호화된 데이터를 획득하고, 상기 제2 키에 따라 상기 암호화된 데이터를 복호하도록 구성된 복호화 모듈 ― 상기 평문 데이터는 복호화를 통해 획득되고 상기 제2 키가 상기 제1 키와 동일한 경우에 상기 액세스 요청을 전송하는 상기 클라이언트에게 전송됨 ―
을 포함하는 액세스 승인 서버.
As an access authorization server,
Receiving a first portion 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 encrypting plain text data according to the first key And an information module, wherein the information sharing system is a blockchain system, the authorization module configured to generate a first authorization code corresponding to the encrypted data and to transmit the first authorization code to the first client. When a client authorizes a second client to access the encrypted data, the first client sends the second authorization code and the second portion of the first key to the second client, so that the second client When accessing the encrypted data, attaching the first authorization code and the second portion of the first key to an access request. In addition, the second portion of the first key comprises the remaining portion of the first key except the first portion;
In response to receiving an access request from any client for the encrypted data, obtaining a second grant code and an incomplete key from the access request, wherein the second grant code is the same as the first grant code and the first grant code A verification module, configured to trigger the key module if the authorization code is valid;
The key module configured to generate a second key according to the incomplete key and the first portion of the first key corresponding to the encrypted data, wherein the generated second key is the second key of the first key; Same as the first key if same as the portion; And
A decryption module configured to obtain the encrypted data from the block of the information sharing system, and to decrypt the encrypted data according to the second key, wherein the plain text data is obtained through decryption and the second key is the first key. Sent to the client sending the access request if equal to
Access authorization server comprising a.
컴퓨팅 장치로서,
하나 이상의 프로세서;
메모리; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램 ― 상기 하나 이상의 프로그램은 청구항 1 내지 청구항 11 중 어느 한 항에 따른 방법을 수행하기 위한 명령을 포함함 ―
을 포함하는 컴퓨팅 장치.
As a computing device,
One or more processors;
Memory; And
One or more programs stored in the memory and configured to be executed by the one or more processors, wherein the one or more programs comprise instructions for performing a method according to any one of claims 1 to 11.
Computing device comprising a.
저장 매체로서,
명령을 포함하는 하나 이상의 프로그램을 저장하고,
상기 명령은, 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치가 청구항 1 내지 청구항 11 중 어느 한 항에 따른 방법을 수행할 수 있게 하는,
저장 매체.
As a storage medium,
Save one or more programs that contain commands,
The instructions, when executed by a computing device, enable the computing device to perform the method according to any one of claims 1 to 11,
Storage media.
KR1020197034696A 2017-11-02 2018-09-27 Data sharing methods, clients, servers, computing devices and storage media KR102219008B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711065783.1 2017-11-02
CN201711065783.1A CN107979590B (en) 2017-11-02 2017-11-02 Data sharing method, client, server, computing device and storage medium
PCT/CN2018/107962 WO2019085699A1 (en) 2017-11-02 2018-09-27 Data sharing method, client, server, computing device, and storage medium

Publications (2)

Publication Number Publication Date
KR20200002985A true KR20200002985A (en) 2020-01-08
KR102219008B1 KR102219008B1 (en) 2021-02-22

Family

ID=62012925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034696A KR102219008B1 (en) 2017-11-02 2018-09-27 Data sharing methods, clients, servers, computing devices and storage media

Country Status (6)

Country Link
US (1) US11223477B2 (en)
EP (1) EP3618394B1 (en)
JP (1) JP6961818B2 (en)
KR (1) KR102219008B1 (en)
CN (1) CN107979590B (en)
WO (1) WO2019085699A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022169457A1 (en) * 2021-02-05 2022-08-11 Visa International Service Association Mobile device secret protection system and method
KR20230124271A (en) * 2022-02-18 2023-08-25 주식회사 한글과컴퓨터 Document sharing service server for processing saving and sharing of document files with unauthorized fonts, in the cloud-based document sharing service, and the operating method thereof
KR20230124207A (en) * 2022-02-18 2023-08-25 주식회사 한글과컴퓨터 Document sharing service server for managing document sharing service based on cloud, and the operating method thereof

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11115392B1 (en) * 2018-03-07 2021-09-07 Turbo Business Suite LLC Consumer-authorized controlled distribution of trusted source data
CN108632284B (en) 2018-05-10 2021-02-23 网易(杭州)网络有限公司 User data authorization method, medium, device and computing equipment based on block chain
CN108768972B (en) * 2018-05-16 2020-11-27 智车优行科技(北京)有限公司 Vehicle data storage and access method, device, system and electronic equipment
CN108462724B (en) * 2018-05-17 2020-07-31 京东数字科技控股有限公司 Data sharing method, device, system, member node and readable storage medium
CN108768633B (en) * 2018-05-30 2022-03-25 腾讯科技(深圳)有限公司 Method and device for realizing information sharing in block chain
US11108762B2 (en) 2018-06-05 2021-08-31 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
CN112567441A (en) * 2018-06-29 2021-03-26 索尼公司 Information processing system, information processing method, and information processing apparatus
CN109032694A (en) * 2018-07-03 2018-12-18 郑州云海信息技术有限公司 A kind of data load method and terminal
CN108985863A (en) * 2018-08-27 2018-12-11 中国联合网络通信集团有限公司 A kind of whip-round donations method and system
CN110958211B (en) * 2018-09-27 2022-05-27 安徽华峪文化科技有限公司 Data processing system and method based on block chain
CN109559117B (en) * 2018-11-14 2022-05-20 北京科技大学 Block linkage contract privacy protection method and system based on attribute-based encryption
CN109474597A (en) * 2018-11-19 2019-03-15 中链科技有限公司 A kind of distributed message based on block chain sends and receives method and device
WO2020102974A1 (en) * 2018-11-20 2020-05-28 深圳市欢太科技有限公司 Data access method, data access apparatus, and mobile terminal
CN109583905A (en) * 2018-12-21 2019-04-05 众安信息技术服务有限公司 The method and apparatus for realizing data sharing based on the logical card of the utilization of block chain network
CN111385266B (en) * 2018-12-29 2022-06-17 湖南亚信软件有限公司 Data sharing method and device, computer equipment and storage medium
CN111540341B (en) * 2019-01-22 2024-08-06 北京搜狗科技发展有限公司 Data processing method and device for data processing
US11368441B2 (en) 2019-01-29 2022-06-21 Mastercard International Incorporated Method and system for general data protection compliance via blockchain
CN110147410B (en) * 2019-04-18 2020-08-04 阿里巴巴集团控股有限公司 Data verification method, system, device and equipment in block chain type account book
CN110263556A (en) * 2019-05-22 2019-09-20 广东安创信息科技开发有限公司 A kind of encryption and decryption method and system of OA system data
CN110177092A (en) * 2019-05-22 2019-08-27 南京邮电大学 A kind of electronic data based on block chain is credible method for down loading
EP3764613A1 (en) * 2019-07-09 2021-01-13 Gemalto Sa Method, first device, first server, second server and system for accessing a private key
US11194918B2 (en) * 2019-07-10 2021-12-07 International Business Machines Corporation Data transmission based on verification codes
CN111010386B (en) * 2019-12-10 2021-12-21 上海信联信息发展股份有限公司 Privacy protection and data supervision control method based on shared account book
CN111061982B (en) * 2019-12-11 2023-04-18 电子科技大学 News information publishing and managing system based on block chain
CN111179067B (en) * 2019-12-31 2023-06-27 杭州趣链科技有限公司 Inter-bank customer information exchange system based on blockchain
US11356260B2 (en) 2020-01-26 2022-06-07 International Business Machines Corporation Decentralized secure data sharing
US11088833B1 (en) 2020-01-26 2021-08-10 International Business Machines Corporation Decentralized secure data sharing
US11271742B2 (en) 2020-01-26 2022-03-08 International Business Machines Corporation Decentralized secure data sharing
WO2020098839A2 (en) * 2020-02-14 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Data authorization based on decentralized identifiers
CN111352996B (en) * 2020-02-26 2023-09-19 百度在线网络技术(北京)有限公司 Data sharing method, device, equipment and medium based on block chain network
US11658816B2 (en) * 2020-04-15 2023-05-23 Philips North America Llc Document control system for blockchain
CN111639350B (en) * 2020-05-16 2023-01-31 中信银行股份有限公司 Cipher service system and encryption method
CN111740986B (en) * 2020-06-19 2022-07-19 公安部第三研究所 System and method for realizing data sharing control based on identification cipher technology
CN111914293B (en) * 2020-07-31 2024-05-24 平安科技(深圳)有限公司 Data access right verification method and device, computer equipment and storage medium
US11621837B2 (en) * 2020-09-03 2023-04-04 Theon Technology Llc Secure encryption of data using partial-key cryptography
US11310042B2 (en) 2020-09-11 2022-04-19 Crown Sterling Limited, LLC Methods of storing and distributing large keys
CN112182646B (en) * 2020-09-16 2024-08-13 天星数科科技有限公司 Data reading method and device, data authorizing method and device and storage medium
CN112184426A (en) * 2020-10-12 2021-01-05 深圳壹账通智能科技有限公司 Data sharing method, system, server and computer readable storage medium
CN112333199B (en) * 2020-11-17 2023-04-21 珠海大横琴科技发展有限公司 Data processing method and device
CN112637177B (en) * 2020-12-17 2022-09-27 赛尔网络有限公司 Data encryption transmission method, device, equipment and medium
CN112615936A (en) * 2020-12-28 2021-04-06 南京披云信息科技有限公司 Method and device for improving safety of Internet of things
CN113515728B (en) * 2021-05-18 2023-08-04 北京飞利信电子技术有限公司 Internet of things platform software authorization control system and method based on multistage deployment
US11615375B2 (en) * 2021-07-02 2023-03-28 dexFreight, Inc. Electronic management of supply chain factoring with shared state storage in a distributed ledger
US11755772B2 (en) 2021-09-20 2023-09-12 Crown Sterling Limited, LLC Securing data in a blockchain with a one-time pad
CN113868605B (en) * 2021-09-30 2024-03-22 新华三大数据技术有限公司 Authorization management method, device and system
CN113722695B (en) * 2021-11-02 2022-02-08 佳瑛科技有限公司 Cloud server-based financial data secure sharing method, device and system
US11791988B2 (en) 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11902420B2 (en) 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption
CN114218583A (en) * 2021-11-26 2022-03-22 中国联合网络通信集团有限公司 File access method, block chain system, electronic device and computer readable medium
CN114124572B (en) * 2021-12-07 2023-06-27 建信金融科技有限责任公司 Data transmission method, device, equipment and medium based on unidirectional network
US20230291548A1 (en) * 2022-03-08 2023-09-14 Western Digital Technologies, Inc. Authorization requests from a data storage device to multiple manager devices
WO2023239418A1 (en) 2022-06-10 2023-12-14 Playback Health Inc. Multi-party controlled transient user credentialing for interaction with patient health data
CN116155619B (en) * 2023-04-04 2023-07-07 江西农业大学 Data processing method, data request terminal, data possession terminal and data processing device
CN118214556B (en) * 2024-05-20 2024-07-26 北京信安世纪科技股份有限公司 Access request response method, system, device, storage medium and program product

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100042457A (en) * 2008-10-16 2010-04-26 삼성전자주식회사 Method and apparatus for data encryption, and method and apparatus for data decryption
KR20150037913A (en) * 2012-07-05 2015-04-08 가부시키가이샤 크립토 베이직 Shared secret key generation device, encryption device, decryption device, shared secret key generation method, encryption method, decryption method, and program
KR20170048864A (en) * 2015-10-27 2017-05-10 라인 가부시키가이샤 User terminal, method and computer for receiving and sending messages
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain
CN107196900A (en) * 2017-03-24 2017-09-22 阿里巴巴集团控股有限公司 A kind of method and device for verification of knowing together

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464353B2 (en) * 2003-10-03 2013-06-11 Hewlett-Packard Development Company, L. P. Method and system for content downloads via an insecure communications channel to devices
JP2007089098A (en) * 2005-09-20 2007-04-05 Chaosware Inc Client-server type encryption system
JP2008103936A (en) * 2006-10-18 2008-05-01 Toshiba Corp Secret information management device, and secret information management system
US9171298B2 (en) * 2011-02-24 2015-10-27 Dvdcase, Inc. Systems and methods for managing access to benefits associated with products
CN103973736B (en) * 2013-01-30 2017-12-29 华为终端(东莞)有限公司 A kind of method and device of data sharing
CN103442059B (en) * 2013-08-27 2017-02-01 华为终端有限公司 File sharing method and device
CN103561034B (en) * 2013-11-11 2016-08-17 武汉理工大学 A kind of secure file shared system
CN104980477B (en) * 2014-04-14 2019-07-09 航天信息股份有限公司 Data access control method and system under cloud storage environment
US9769664B1 (en) * 2014-09-04 2017-09-19 Sensys Networks Nonce silent and replay resistant encryption and authentication wireless sensor network
US20160379220A1 (en) * 2015-06-23 2016-12-29 NXT-ID, Inc. Multi-Instance Shared Authentication (MISA) Method and System Prior to Data Access
WO2017142563A1 (en) * 2016-02-19 2017-08-24 Entit Software Llc Encryption methods
KR101783281B1 (en) * 2016-03-11 2017-09-29 주식회사 다날 Electronic terminal device for safe storage of identification data and operating method thereof
US10137860B2 (en) * 2016-11-17 2018-11-27 Ford Global Technologies, Llc Remote keyless entry message authentication
JP6302592B2 (en) * 2017-06-23 2018-03-28 株式会社エヌ・ティ・ティ・データ Information processing apparatus, information processing method, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100042457A (en) * 2008-10-16 2010-04-26 삼성전자주식회사 Method and apparatus for data encryption, and method and apparatus for data decryption
KR20150037913A (en) * 2012-07-05 2015-04-08 가부시키가이샤 크립토 베이직 Shared secret key generation device, encryption device, decryption device, shared secret key generation method, encryption method, decryption method, and program
KR20170048864A (en) * 2015-10-27 2017-05-10 라인 가부시키가이샤 User terminal, method and computer for receiving and sending messages
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain
CN107196900A (en) * 2017-03-24 2017-09-22 阿里巴巴集团控股有限公司 A kind of method and device for verification of knowing together

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022169457A1 (en) * 2021-02-05 2022-08-11 Visa International Service Association Mobile device secret protection system and method
US11960581B2 (en) 2021-02-05 2024-04-16 Visa International Service Association Mobile device secret protection system and method
KR20230124271A (en) * 2022-02-18 2023-08-25 주식회사 한글과컴퓨터 Document sharing service server for processing saving and sharing of document files with unauthorized fonts, in the cloud-based document sharing service, and the operating method thereof
KR20230124207A (en) * 2022-02-18 2023-08-25 주식회사 한글과컴퓨터 Document sharing service server for managing document sharing service based on cloud, and the operating method thereof

Also Published As

Publication number Publication date
CN107979590A (en) 2018-05-01
EP3618394A1 (en) 2020-03-04
US20200084037A1 (en) 2020-03-12
CN107979590B (en) 2020-01-17
WO2019085699A1 (en) 2019-05-09
JP6961818B2 (en) 2021-11-05
EP3618394B1 (en) 2022-03-30
KR102219008B1 (en) 2021-02-22
EP3618394A4 (en) 2020-07-01
JP2021502023A (en) 2021-01-21
US11223477B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
KR102219008B1 (en) Data sharing methods, clients, servers, computing devices and storage media
TWI725793B (en) System and method for mapping decentralized identifiers to real-world entities
US11777726B2 (en) Methods and systems for recovering data using dynamic passwords
CN111213350B (en) System and method for creating decentralized identity
US11082221B2 (en) Methods and systems for creating and recovering accounts using dynamic passwords
US10796011B1 (en) Data element tokenization management
KR102084674B1 (en) Method for managing content based on blockchain and system performing the method
CN111316303A (en) System and method for block chain based cross entity authentication
CN111213147A (en) System and method for block chain based cross entity authentication
US20230108366A1 (en) Systems for encryption using blockchain distributed ledgers
EP3537684A1 (en) Apparatus, method, and program for managing data
CN107409129B (en) Use the authorization in accesses control list and the distributed system of group
JP2023538497A (en) editable blockchain
JP5036500B2 (en) Attribute certificate management method and apparatus
KR101952139B1 (en) A method for providing digital right management function in gateway server communicated with user terminal
US11849041B2 (en) Secure exchange of session tokens for claims-based tokens in an extensible system
KR101861015B1 (en) A method for providing digital right management function in user terminal based on cloud service
JP2006004321A (en) Security system
US20240020355A1 (en) Non-fungible token authentication
KR20230118304A (en) On-line system and method for issuing and auehtnicating work including web token
Rovira Sánchez Verification of Self-Sovereign Identities in Ethereum applied to a Media Reuse Smart Contracts Scenario
Kyriakidou et al. VC-Vault: A User-Friendly, Secure, Privacy-Enhancing Verifiable Credentials Wallet

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant