KR20210136589A - Device, method, system and computer readable storage medium for managing access authority of data using blockchain - Google Patents

Device, method, system and computer readable storage medium for managing access authority of data using blockchain Download PDF

Info

Publication number
KR20210136589A
KR20210136589A KR1020200055042A KR20200055042A KR20210136589A KR 20210136589 A KR20210136589 A KR 20210136589A KR 1020200055042 A KR1020200055042 A KR 1020200055042A KR 20200055042 A KR20200055042 A KR 20200055042A KR 20210136589 A KR20210136589 A KR 20210136589A
Authority
KR
South Korea
Prior art keywords
data
user
key
encoded
blockchain network
Prior art date
Application number
KR1020200055042A
Other languages
Korean (ko)
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 (주)세정아이앤씨
Priority to KR1020200055042A priority Critical patent/KR20210136589A/en
Publication of KR20210136589A publication Critical patent/KR20210136589A/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/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
    • 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
    • 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

A data access right managing method is described. An exemplary data access right managing method comprises: an approval step of approving a sharing request of a requestor for data encoded on the basis of a public key of a user and registered in a blockchain network; a data recovery step of obtaining data from the blockchain network in response to the approval step; a first symmetric key generation step of generating a first symmetric key in response to the approval step; a first transaction data generating step of generating first transaction data including encoded data by using the first symmetric key and the public key of the requestor; and a shared data registration step of transmitting the generated first transaction data to the blockchain network.

Description

블록체인을 이용하여 데이터의 접근 권한을 관리하는 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 {DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR MANAGING ACCESS AUTHORITY OF DATA USING BLOCKCHAIN}Device, method, system and computer-readable storage medium for managing data access rights using blockchain {DEVICE, METHOD, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR MANAGING ACCESS AUTHORITY OF DATA USING BLOCKCHAIN}

본 개시는 블록체인을 이용하여 데이터의 접근 권한을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체에 관한 것이다.The present disclosure relates to an apparatus, method, system, and computer-readable storage medium for managing access rights of data using a block chain.

여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.Unless otherwise stated herein, the material described in this section is not prior art to the claims in this application, and should not be admitted as prior art on the grounds that it is recited in this section.

통신 기능을 가지는 컴퓨팅 장치의 사용이 일반화 됨에 따라, 컴퓨팅 장치에 저장된 데이터에 대한 해킹을 방지하기 위한 보안 기술에 대한 관심이 높아지고 있다. 다양한 국가와 다양한 기업에서 관심을 가지는 보안 기술 중 하나는 블록체인(Block Chain)이다. 블록체인은 분산형 데이터 저장 기법을 이용하며, 이는 데이터를 단일의 컴퓨팅 장치에 저장하지 않고 네트워크에 참여하는 복수의 컴퓨팅 장치에 데이터를 저장하는 방식을 이용한다. As the use of a computing device having a communication function becomes common, interest in a security technology for preventing hacking of data stored in the computing device is increasing. One of the security technologies that are interested in various countries and various companies is the block chain. Blockchain uses a distributed data storage technique, which does not store data in a single computing device, but stores data in multiple computing devices participating in a network.

한국 공개특허 제10-2019-0081299호는 블록체인 기법을 이용한 데이터 접근 제어 시스템에 관하여 개시한다. 이러한 선행특허문헌은 데이터 소유자가 데이터를 블록체인 네트워크에 등록하고, 요청자가 해당 데이터에 대한 접근 권한을 요청하면, 데이터 소유자가 요청자에게 유효기간이 있는 토큰 트랜잭션을 요청자에게 전송하고, 재암호화키를 생성하여 클라우드 서버에 전송한다. 이후, 클라우드 서버는 블록체인 네트워크에서 데이터를 획득하여 재암호화키를 이용하여 재암호화하여, 암호화한 데이터를 요청자 장치로 전송함으로써 데이터의 접근 권한을 관리한다. 그러나, 데이터를 공유하는 과정에서 소유자와 요청자가 아닌 제3의 장치인 서버가 개입함에 따라, 데이터가 제3의 장치를 통하여 볼 수 있는 상태로 있을 가능성이 남아 있다.Korean Patent Laid-Open No. 10-2019-0081299 discloses a data access control system using a block chain technique. In this prior patent document, when the data owner registers data in the blockchain network, and the requestor requests access to the data, the data owner sends the requester a token transaction with an expiration date to the requester, and sends a re-encryption key. generated and sent to the cloud server. Thereafter, the cloud server acquires data from the blockchain network, re-encrypts it using the re-encryption key, and manages the access rights of the data by transmitting the encrypted data to the requester's device. However, as the server, which is a third device other than the owner and the requester, intervenes in the process of sharing data, there remains a possibility that the data remains visible through the third device.

본 개시는 위와 같은 문제점들을 해결하기 위한 것으로서, 블록체인을 이용하여 데이터의 접근 권한을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체를 제시한다. The present disclosure provides an apparatus, method, system and computer-readable storage medium for managing access rights of data using a block chain to solve the above problems.

본 개시의 일부 실시예에서, 데이터 접근 권한 관리 방법이 설명된다. 예시적인 데이터 접근 권한 관리 방법은 사용자의 공개키에 기초하여 인코딩되고 블록체인 네트워크에 등록된 자료에 대한 요청자의 공유 요청을 승인하는 승인 단계; 승인 단계에 응답하여, 블록체인 네트워크로부터 자료를 획득하는 데이터 복구 단계; 승인 단계에 응답하여, 제1 대칭키를 생성하는 제1 대칭키 생성 단계; 제1 대칭키 및 요청자의 공개키를 이용하여, 인코딩된 자료를 포함하는 제1 트랜잭션 데이터를 생성하는 제1 트랜잭션 데이터 생성 단계; 및 생성된 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 공유 데이터 등록 단계를 포함한다.In some embodiments of the present disclosure, a method for managing data access rights is described. An exemplary method for managing data access rights includes an approval step of approving a request for sharing of data encoded on the basis of a user's public key and registered in a blockchain network; a data recovery step of obtaining data from the blockchain network in response to the approval step; in response to the approval step, a first symmetric key generation step of generating a first symmetric key; a first transaction data generating step of generating first transaction data including encoded data by using the first symmetric key and the requestor's public key; and a shared data registration step of transmitting the generated first transaction data to the blockchain network.

일부 예시에서, 데이터 접근 권한 관리 방법은 승인 단계 이전에, 블록체인 네트워크에 접속하여, 사용자의 공개키 및 개인키를 획득하는 비대칭키 획득 단계를 더 포함할 수 있다. 일부 예시에서, 데이터 접근 권한 관리 방법은 승인 단계 이전에, 사용자에 대한 정보를 블록체인 네트워크에 등록하는 사용자 등록 단계를 더 포함할 수 있다. 일부 예시에서, 데이터 접근 권한 관리 방법은 승인 단계 이전에, 자료를 블록체인 네트워크에 등록하는 데이터 등록 단계를 더 포함할 수 있다.In some examples, the data access right management method may further include, before the approval step, an asymmetric key acquisition step of accessing the blockchain network to obtain the user's public and private keys. In some examples, the data access right management method may further include a user registration step of registering information about the user in the blockchain network before the approval step. In some examples, the data access right management method may further include a data registration step of registering the data in the blockchain network before the approval step.

일부 다른 실시예에서, 데이터 접근 권한 관리 장치가 설명된다. 예시적인 데이터 접근 권한 관리 장치는 통신부, 코딩부 및 요청 처리부를 포함할 수 있다. 통신부는 블록체인 네트워크에 접속하고, 블록체인에 저장된 트랜잭션 데이터를 검색하고, 트랜잭션 데이터를 생성하고 전송하도록 구성될 수 있다. 코딩부는 대칭 인코딩, 대칭 디코딩, 비대칭 인코딩 및 비대칭 디코딩을 수행하도록 구성될 수 있다. 요청 처리부는 통신부 및 코딩부에 연결되고 사용자 입력을 수신하도록 구성될 수 있다. 코딩부는 제1 대칭키를 생성하고, 제1 대칭키 및 사용자의 공개키에 기초하여 자료를 인코딩하도록 구성되고, 통신부는 인코딩된 자료를 포함하는 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 등록하도록 구성될 수 있다. 일부 예시에서, 통신부가 제1 트랜잭션 데이터에 포함된 자료에 대한 요청자의 공유 요청을 수신하고, 요청 처리부가, 사용자로부터, 요청자의 공유 요청을 승인하는 사용자 입력을 수신하는 경우, 통신부는 블록체인 네트워크로부터 인코딩된 자료를 수신하고, 코딩부는 인코딩된 자료로부터 자료를 획득하고, 제2 대칭키를 생성하고, 제2 대칭키 및 요청자의 공개키를 이용하여 자료를 인코딩하며, 그리고 통신부는 제2 대칭키 및 요청자의 공개키를 이용하여 인코딩된 자료를 포함하는 제2 트랜잭션 데이터를 생성하고 생성된 제2 트랜잭션 데이터를 블록체인 네트워크에 전송할 수 있다.In some other embodiments, an apparatus for managing data access rights is described. An exemplary apparatus for managing data access rights may include a communication unit, a coding unit, and a request processing unit. The communication unit may be configured to access the blockchain network, retrieve transaction data stored in the blockchain, and generate and transmit transaction data. The coding unit may be configured to perform symmetric encoding, symmetric decoding, asymmetric encoding, and asymmetric decoding. The request processing unit may be coupled to the communication unit and the coding unit and configured to receive user input. The coding unit is configured to generate a first symmetric key, and to encode data based on the first symmetric key and the user's public key, and the communication unit is configured to register first transaction data including the encoded data in the blockchain network. can be In some examples, when the communication unit receives the requestor's sharing request for the material included in the first transaction data, and the request processing unit receives, from the user, a user input for approving the requester's sharing request, the communication unit is a blockchain network receive the encoded data from, the coding unit obtains the data from the encoded data, generates a second symmetric key, encodes the data using the second symmetric key and the requester's public key, and the communication unit obtains the data from the second symmetric key. The second transaction data including the encoded data may be generated using the key and the requestor's public key, and the generated second transaction data may be transmitted to the blockchain network.

일부 또 다른 실시예에서, 데이터 접근 권한 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 설명된다. 데이터 접근 권한 관리 프로그램은 컴퓨팅 장치에 의하여 실행되는 경우, 상기 사용자의 공개키에 기초하여 인코딩되고 블록체인 네트워크에 등록된 자료에 대한 요청자의 공유 요청을 승인하는 승인 동작; 승인 동작에 응답하여, 블록체인 네트워크로부터 자료를 획득하는 데이터 복구 동작; 승인 동작에 응답하여, 제1 대칭키를 생성하는 제1 대칭키 생성 동작; 제1 대칭키 및 요청자의 공개키를 이용하여, 인코딩된 자료를 포함하는 제1 트랜잭션 데이터를 생성하는 제1 트랜잭션 데이터 생성 동작; 및 생성된 제1 트랜잭션 데이터를 블록체인 네트워크에 전송하는 공유 데이터 등록 동작을 수행하도록 할 수 있다.In some other embodiments, a computer-readable storage medium storing a data access rights management program is described. When the data access right management program is executed by the computing device, the approval operation for approving the requestor's sharing request for the data encoded on the basis of the public key of the user and registered in the blockchain network; a data recovery operation to obtain data from the blockchain network in response to the authorization operation; a first symmetric key generation operation of generating a first symmetric key in response to the approval operation; a first transaction data generating operation of generating first transaction data including encoded data by using the first symmetric key and the requestor's public key; and a shared data registration operation of transmitting the generated first transaction data to the blockchain network.

이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.The above brief summary and description of effects are merely exemplary and are not intended to limit the technical matters intended in the present disclosure. In addition to the above-described exemplary embodiments and technical features, additional embodiments and technical features may be understood by referring to the following detailed description and accompanying drawings.

본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에서 이용되는 블록체인의 일 예시를 도시한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 데이터의 접근 권한을 관리하기 위한 시스템의 개략도를 도시한다.
도 3은 본 개시의 적어도 일부 실시예에 따른 데이터 접근 권한 관리 장치를 도시하는 블록도이다.
도 4는 본 개시의 적어도 일부 실시예에 따라, 사용자 등록을 수행하는 예시적인 프로세스를 도시한다.
도 5는 본 개시의 적어도 일부 실시예에 따라, 블록체인 네트워크에 접속하는 예시적인 프로세스를 도시한다.
도 6는 본 개시의 적어도 일부 실시예에 따라, 블록체인 네트워크에 자료를 등록하는 예시적인 프로세스를 도시한다.
도 7은 본 개시의 적어도 일부 실시예에 따라, 블록체인 네트워크에서 자료를 조회하는 예시적인 프로세스를 도시한다.
도 8은 본 개시의 적어도 일부 실시예에 따라, 요청자에게 자료를 공유하는 예시적인 프로세스를 도시한다.
도 9는 본 개시의 적어도 일부 실시예에 따라, 데이터의 접근 권한을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 10은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
The foregoing and other features of the present disclosure will become sufficiently apparent from the following description with reference to the accompanying drawings. Understanding that these drawings illustrate only a few embodiments in accordance with the present disclosure, and thus should not be considered limiting of their scope, the present disclosure is described in more specific and detail through the use of the accompanying drawings. will be
1 illustrates an example of a blockchain used in at least some embodiments of the present disclosure.
2 depicts a schematic diagram of a system for managing access rights of data in accordance with at least some embodiments of the present disclosure.
3 is a block diagram illustrating an apparatus for managing data access rights according to at least some embodiments of the present disclosure.
4 depicts an example process for performing user registration, in accordance with at least some embodiments of the present disclosure.
5 illustrates an example process for connecting to a blockchain network, in accordance with at least some embodiments of the present disclosure.
6 illustrates an example process for registering a material with a blockchain network, in accordance with at least some embodiments of the present disclosure.
7 illustrates an example process for querying material in a blockchain network, in accordance with at least some embodiments of the present disclosure.
8 illustrates an example process for sharing material with a requestor, in accordance with at least some embodiments of the present disclosure.
9 illustrates a computer program product that may be used to manage access rights to data, in accordance with at least some embodiments of the present disclosure.
10 is an exemplary block diagram of a computing device arranged in accordance with at least some embodiments of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다. Hereinafter, embodiments and examples of the present application will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present disclosure pertains can easily carry out. However, the present application may be embodied in many different forms and is not limited to the embodiments and examples described herein.

본 개시는 일반적으로, 온라인으로 등록된 데이터의 접근 권한을 관리하기 위한 방법, 장치, 시스템, 컴퓨터 판독가능 저장 매체 및 이에 저장된 프로그램에 관한 것이다.The present disclosure generally relates to a method, an apparatus, a system, a computer-readable storage medium, and a program stored therein for managing access rights of data registered online.

이하에서, "코딩"이라는 용어는 데이터를 암호화하는 인코딩과 데이터를 복호화 하는 디코딩을 통칭한다. "대칭 인코딩" 또는 "대칭 디코딩"이라는 용어는 대칭적 암호화 기법을 이용한 데이터의 인코딩 또는 디코딩을 의미한다. 유사하게, "비대칭 인코딩" 또는 "비대칭 디코딩"이라는 용어는 비대칭적 암호화 기법을 이용한 데이터의 인코딩 또는 디코딩을 의미한다. 또한, 이하에서 본 개시에 따른 "자료"는 블록체인에 저장하도록 요구되는 데이터 또는 정보를 지칭한다.Hereinafter, the term "coding" collectively refers to encoding for encrypting data and decoding for decrypting data. The term "symmetric encoding" or "symmetric decoding" refers to encoding or decoding of data using symmetric encryption techniques. Similarly, the terms "asymmetric encoding" or "asymmetric decoding" refer to encoding or decoding of data using asymmetric encryption techniques. Also, hereinafter, “data” according to the present disclosure refers to data or information required to be stored in a blockchain.

도 1은 본 개시의 적어도 일부 실시예에서 이용되는 블록체인(100)의 일 예시를 도시한다. 블록체인은 하나 이상의 블록을 포함하며, 각각의 블록은 요구되는 바에 따라 다양한 형태로 구현될 수 있다. 이러한 블록체인은 블록체인 네트워크 내 복수의 노드 각각에서 저장되며, 새로운 블록이 생성될 때마다, 생성된 해당 블록이 블록체인 네트워크 전반에 걸쳐 전파된다.1 illustrates an example of a blockchain 100 used in at least some embodiments of the present disclosure. A blockchain includes one or more blocks, and each block can be implemented in various forms as required. These blockchains are stored in each of a plurality of nodes within the blockchain network, and whenever a new block is created, the generated block is propagated throughout the blockchain network.

도 1에 도시된 바와 같이, 블록(110)은 블록 해시부(120), 블록 헤더부(130) 및 블록 바디부(140)를 포함할 수 있다. 블록 해시부(120)는 블록 해시 값을 포함하며, 이는 블록(110)을 식별하는 고유 값에 해당한다. 블록 해시 값은 아래 설명되는 바와 같이, 블록(110) 내의 블록 헤더부(130) 및 블록 바디부(140)에 포함된 데이터에 기초하여 연산된다. 블록 헤더부(130)는 블록체인 기법의 유형에 따라 다양한 값을 포함한다. 예컨대, 블록 헤더부(130)는 현재 블록의 깊이 값, 이전 블록의 블록 해시 값, 데이터 해시 값, 블록 생성 시각 값 등을 포함할 수 있다. 현재 블록의 깊이 값은 현재 블록의 순번(블록(110)의 경우 n), 블록체인 관련 소프트웨어의 버전 값, 프로토콜 버전 값 또는 이들의 조합과 연관된 값을 가진다. 이전 블록의 블록 해시 값은 블록체인 내에서 해당 블록의 직전의 블록의 블록 해시 값이다. 블록(110)의 경우, 블록 #n-1의 블록 해시 값(즉, 0xy0…72)이다. 데이터 해시 값은 블록 바디부(140)에 저장되는 하나 이상의 트랜잭션의 데이터에 기초하여 결정된다. 블록 헤더부(130)에 포함되는 값은 위 설명된 예시에 제한되지 않으며, 난이도 설정 값(nonce)과 같은 값을 더 포함할 수 있다.As shown in FIG. 1 , the block 110 may include a block hash unit 120 , a block header unit 130 , and a block body unit 140 . The block hash unit 120 includes a block hash value, which corresponds to a unique value for identifying the block 110 . The block hash value is calculated based on data included in the block header unit 130 and the block body unit 140 in the block 110 , as described below. The block header unit 130 includes various values according to the type of block chain technique. For example, the block header unit 130 may include a depth value of a current block, a block hash value of a previous block, a data hash value, a block creation time value, and the like. The depth value of the current block has a value associated with the order number of the current block (n in the case of block 110), the version value of blockchain-related software, the protocol version value, or a combination thereof. The block hash value of the previous block is the block hash value of the block immediately preceding the block in the blockchain. For block 110, the block hash value of block #n-1 (ie, 0xy0...72). The data hash value is determined based on data of one or more transactions stored in the block body unit 140 . The value included in the block header unit 130 is not limited to the above-described example, and may further include a value such as a difficulty setting value (nonce).

블록 바디부(140)는 예컨대, "트랜잭션 n.1", "트랜잭션 n.2" 등과 같은 하나 이상의 트랜잭션을 포함할 수 있다. 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다. 각각의 트랜잭션에는 블록체인의 구현예에 따라 요구되는 데이터가 저장될 수 있다. 블록 바디부(140)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디부(140)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값이 연산된다. 일부 예시에서, 데이터 해시 값은 머클 트리(merkle tree) 구조를 이용하여 머클 루트(merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부(130) 내 다양한 값에 기초하여, 블록 해시 값이 연산되어, 결과적으로 블록(110)이 생성된다.The block body 140 may include, for example, one or more transactions such as “transaction n.1”, “transaction n.2”, and the like. The number or size of transactions may be predetermined depending on the implementation. In each transaction, data required according to the implementation of the blockchain may be stored. When a transaction stored in the block body 140 satisfies predetermined conditions such as a predetermined period, a predetermined number of transactions, etc., a data hash value is obtained from values associated with one or more transactions included in the block body 140 . is calculated In some examples, the data hash value may be obtained by calculating a merkle root using a merkle tree structure. Then, based on the various values in the block header unit 130 including the data hash value, the block hash value is calculated, and as a result, the block 110 is generated.

이와 같이 생성된 블록(110)은 블록체인 네트워크 내의 노드로 전송된다. 한편, 블록체인 네트워크 내 노드는 블록(110)의 수신 전에는 블록(110) 이전 블록(즉, 도 1에서 블록#n-1)까지의 블록체인에 대한 데이터를 저장한다. 노드는 블록(110)을 수신한 이후, 수신된 블록(110)의 유효성을 검증하고, 블록(110)이 유효하면, 블록체인에 블록(110)을 추가하는 한편, 블록체인 내 다른 노드로 블록(110)을 전송한다.The block 110 generated in this way is transmitted to a node in the blockchain network. On the other hand, the node in the block chain network stores data for the block chain up to the block before the block 110 (ie, block #n-1 in FIG. 1) before the block 110 is received. After the node receives the block 110, it verifies the validity of the received block 110, and if the block 110 is valid, it adds the block 110 to the block chain, and blocks it with other nodes in the block chain. (110) is sent.

도 2는 본 개시의 적어도 일부 실시예에 따라 데이터의 접근 권한을 관리하기 위한 시스템(200)의 개략도를 도시한다. 본 개시에 따른 예시적인 시스템(200)은 블록체인 네트워크(210), 사용자 장치(220) 및 요청자 장치(230)을 포함할 수 있다. 블록체인 네트워크(210)는 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 프라이빗 블록체인(private blockchain)으로 구현하는 경우 시스템(200)의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가지지만, 본 개시는 이에 제한되지 않는다. 본 개시에 따른 기술적 사상에서 벗어나지 않는다면, 블록체인 네트워크(210)는 퍼블릭 블록체인(public blockchain)의 구조로 구현되는 것도 가능하다. 또한, 도 1에서는, 사용자 장치(220)와 요청자 장치(230)가 블록체인 네트워크(210)의 외부에 있는 것으로 도시되었지만, 사용자 장치(220) 및/또는 요청자 장치(230)가 블록체인 네트워크(210)의 노드로서 동작하는 것 또한 가능하다. 즉, 이하에서는 일부 실시예에 따라 사용자 장치(220) 및 요청자 장치(230)가 블록체인에 추가되는 트랜잭션 데이터를 생성하여 블록체인 네트워크에 전송하는 것으로 설명되는 한편, 다른 실시예에서 사용자 장치(220) 및/또는 요청자 장치(230)가 트랜잭션 데이터를 생성하고 그러한 트랜잭션 데이터를 포함하는 블록체인의 블록을 생성하며, 생성된 블록을 다른 노드로 전파하는 것 또한 가능하다는 점이 당업자에게 이해될 것이다. 2 shows a schematic diagram of a system 200 for managing access rights of data in accordance with at least some embodiments of the present disclosure. An exemplary system 200 according to the present disclosure may include a blockchain network 210 , a user device 220 , and a requestor device 230 . The blockchain network 210 has advantages in terms of operating cost, ease of use, speed, stability, etc. of the system 200 when implemented as a private blockchain in which a predetermined computing device operates as a node, The present disclosure is not limited thereto. Without departing from the technical idea according to the present disclosure, the blockchain network 210 may be implemented in the structure of a public blockchain. Also, in FIG. 1 , the user device 220 and the requestor device 230 are shown as being external to the blockchain network 210 , but the user device 220 and/or the requestor device 230 are connected to the blockchain network ( It is also possible to act as a node of 210). That is, in the following it will be described that the user device 220 and the requestor device 230 generate transaction data to be added to the block chain and transmit it to the block chain network according to some embodiments, while in other embodiments, the user device 220 ) and/or requestor device 230 generates transaction data and creates a block of the blockchain including such transaction data, and it will be appreciated by those skilled in the art that it is also possible to propagate the generated block to other nodes.

일부 실시예에서, 블록체인 네트워크(210)는 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...)를 포함한다. 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 각각은 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다. 예컨대, 둘 이상의 노드가 단일 컴퓨팅 장치에서 가상 노드의 형태로 구현되는 것 또한 가능하다. In some embodiments, the blockchain network 210 includes one or more nodes 210-1, 210-2, 210-3, 210-4, ... Each of the one or more nodes 210-1, 210-2, 210-3, 210-4, ... may be, for example, a desktop computer, a laptop computer, a smart phone, a tablet computer, a mobile phone, a personal digital assistant (PDA). , a single computing device, such as a special purpose device or a fusion device comprising any of the above functions; Alternatively, it may be a multiple computing configuration including a plurality of computing devices, such as a server farm, a distributed network, or a cloud computing configuration, but is not limited thereto. For example, it is also possible for two or more nodes to be implemented in the form of a virtual node in a single computing device.

일부 예시에서, 사용자 장치(220) 또는 요청자 장치(230)는 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 중 하나와 직접적으로 통신하여 블록체인 네트워크(210)에 접속할 수 있다. 일부 다른 예시에서, 사용자 장치(220) 또는 요청자 장치(230)는 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 중 적어도 하나와 통신하는 서버(도시되지 않음)를 통하여 블록체인 네트워크에 접속할 수 있다. 사용자 장치(220) 및 요청자 장치(230)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치를 포함하지만, 이에 제한되는 것은 아니다.In some examples, the user device 220 or the requestor device 230 communicates directly with one of the one or more nodes 210-1, 210-2, 210-3, 210-4, ... to the blockchain network. 210 can be accessed. In some other examples, user device 220 or requestor device 230 is a server (shown) in communication with at least one of one or more nodes 210-1, 210-2, 210-3, 210-4, ... not) to connect to the blockchain network. User device 220 and requestor device 230 may be, for example, desktop computers, laptop computers, smart phones, tablet computers, mobile phones, personal digital assistants (PDAs), special purpose devices, or a fusion comprising any of the above functions. small form factor portable (mobile) electronic devices such as devices, but are not limited thereto.

블록체인 네트워크(210) 내 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 각각은 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행한다. 또한, 본 개시에 따른 실시예에 따르면, 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 또는 하나 이상의 노드(210-1, 210-2, 210-3, 210-4, ...) 중 적어도 하나와 통신하는 서버는 사용자 장치(220) 또는 요청자 장치(230)의 요청에 응답하여, 블록체인 내 블록에 저장된 데이터를 검색하고 해당 데이터를 반환할 수 있다.Each of the one or more nodes 210-1, 210-2, 210-3, 210-4, ... in the blockchain network 210 generates a block, propagates the generated block to other connected nodes, and receives It verifies the block and adds the block. Further, according to an embodiment according to the present disclosure, one or more nodes 210-1, 210-2, 210-3, 210-4, ... or one or more nodes 210-1, 210-2, 210- 3, 210-4, ...), the server, in response to the request of the user device 220 or the requestor device 230, retrieves the data stored in the block in the block chain and returns the data. can

본 개시에 따른 시스템(200)은 블록체인 네트워크(210)에서 데이터를 등록, 검색, 요청 가능한 서비스를 제공한다. 사용자 장치(220)는 그러한 서비스를 이용하기 위하여, 블록체인 네트워크(210)에 접속할 수 있다. 블록체인 네트워크(210)를 통하여 제공되는 서비스는 사용자 장치(220) 및 요청자 장치(230) 상에 설치되는 웹 브라우저, 응용 어플리케이션 등을 통하여 제공될 수 있다. The system 200 according to the present disclosure provides a service capable of registering, searching, and requesting data in the blockchain network 210 . The user device 220 may connect to the blockchain network 210 to use such a service. The service provided through the block chain network 210 may be provided through a web browser, an application application, etc. installed on the user device 220 and the requestor device 230 .

일부 실시예에서, 사용자 장치(220)는 사용자를 블록체인 네트워크(210)에 등록할 수 있다. 일부 예시에서, 사용자 장치(220)는 사용자로부터, 사용자 식별자(ID), 패스워드, 및 예컨대, 사용자의 이름, 주소, 관심 분야와 같은 사용자 정보 등을 포함하는 사용자 등록 정보를 수신할 수 있다. 사용자 장치(220)는 이러한 사용자 등록 정보의 수신에 응답하여, 블록체인 네트워크(210)에서 이용될 비대칭키 세트, 즉 공개키 및 개인키를 생성할 수 있다. 사용자 장치(220)는 패스워드를 이용하여 개인키를 대칭 인코딩할 수 있다. 사용자 장치(220)는 해시함수를 이용하여 패스워드를 해싱된 패스워드, 즉 해시코드로 변환할 수 있다. 사용자 장치(220)는 사용자 ID, 해싱된 패스워드, 공개키, 대칭 인코딩된 개인키를 포함하는 제1 트랜잭션 데이터를 생성할 수 있다. 사용자 장치(220)는 생성된 제1 트랜잭션 데이터를 블록체인 네트워크(210), 즉, 서버 또는 노드(210-1, 210-2, 210-3, 210-4, ...)로 전송할 수 있다. 노드(210-1, 210-2, 210-3, 210-4, ...) 중 하나는 제1 트랜잭션 데이터를 수신하면 제1 트랜잭션 데이터에 기초하여 현재 생성중인 블록에 트랜잭션을 추가할 수 있으며, 이후 소정의 조건을 만족하는 경우, 블록의 생성을 완료하고 블록체인에 생성된 블록을 추가할 수 있다. In some embodiments, the user device 220 may register the user with the blockchain network 210 . In some examples, user device 220 may receive, from a user, user registration information, including a user identifier (ID), password, and user information such as, for example, the user's name, address, interests, and the like. In response to receiving such user registration information, the user device 220 may generate an asymmetric key set to be used in the blockchain network 210 , that is, a public key and a private key. The user device 220 may symmetrically encode the private key using the password. The user device 220 may convert the password into a hashed password, that is, a hash code using a hash function. The user device 220 may generate first transaction data including a user ID, a hashed password, a public key, and a symmetrically encoded private key. The user device 220 may transmit the generated first transaction data to the blockchain network 210 , that is, a server or node 210-1, 210-2, 210-3, 210-4, ... . When one of the nodes 210-1, 210-2, 210-3, 210-4, ... receives the first transaction data, it can add a transaction to the block currently being created based on the first transaction data, , then, if the predetermined conditions are satisfied, the block creation can be completed and the created block can be added to the block chain.

이후, 사용자 장치(220)는 블록체인 네트워크(210)에 접속하여 본 개시에 따른 서비스에 로그인할 수 있다. 일부 예시에서, 사용자 장치(220)는 사용자로부터 사용자 ID 및 패스워드를 수신할 수 있다. 사용자 장치(220)는 패스워드를 해시함수를 이용하여 해싱된 패스워드로 변환할 수 있다. 사용자 장치(220)는 사용자 ID 및 해싱된 패스워드를 블록체인 네트워크(210)로 전송할 수 있으며, 블록체인 네트워크 내 노드(210-1, 210-2, 210-3, 210-4, ...) 중 하나 또는 서버는 사용자 ID 및 해싱된 패스워드가 블록체인 내에서 검색하고, 사용자 ID 및 해싱된 패스워드가 블록체인 내에 있는 경우, 사용자 장치(220)로 사용자의 공개키 및 대칭 인코딩된 개인키를 반환할 수 있다. 사용자 장치(220)는 패스워드를 이용하여, 인코딩된 개인키를 대칭 디코딩하여 사용자의 개인키를 획득할 수 있다. 이와 같이 사용자 장치(220)는 블록체인 네트워크(210)에 접속하여 비대칭키 세트를 획득할 수 있다.Thereafter, the user device 220 may access the blockchain network 210 and log in to the service according to the present disclosure. In some examples, user device 220 may receive a user ID and password from a user. The user device 220 may convert the password into a hashed password using a hash function. The user device 220 may transmit the user ID and the hashed password to the blockchain network 210, and the nodes 210-1, 210-2, 210-3, 210-4, ... in the blockchain network. Either or the server retrieves the user ID and hashed password within the blockchain, and returns the user's public key and symmetrically encoded private key to the user device 220 if the user ID and hashed password are within the blockchain can do. The user device 220 may obtain the user's private key by symmetrically decoding the encoded private key using the password. In this way, the user device 220 may obtain an asymmetric key set by accessing the blockchain network 210 .

일부 실시예에서, 사용자 장치(220)는 소정의 자료를 사용자로부터 입력받아 블록체인 네트워크(210)에 등록할 수 있다. 일부 예시에서, 사용자 장치(220)는 사용자로부터 자료를 입력받을 수 있다. 사용자 장치(220)는 자료의 입력에 응답하여, 제1 대칭키를 생성할 수 있다. 일부 예시에서, 제1 대칭키는 미리 정해진 함수를 이용하여 랜덤하게 생성된 값일 수 있다. 사용자 장치(220)는 제1 대칭키를 이용하여 자료를 대칭 인코딩할 수 있다. 사용자 장치(220)는 사용자의 공개키를 이용하여 제1 대칭키를 비대칭 인코딩할 수 있다. 이후, 사용자 장치(220)는 대칭 인코딩된 자료 및 비대칭 인코딩된 제1 대칭키를 포함하는 제2 트랜잭션 데이터를 생성할 수 있다. 일부 예시에서, 제2 트랜잭션 데이터는 자료의 명칭, 예컨대, 자료의 일련 번호, 자료의 키워드, 자료에 관한 정보, 사용자 ID, 사용자 정보 중 적어도 일부를 더 포함할 수 있다. 사용자 장치(220)는 제2 트랜잭션 데이터를 블록체인 네트워크(210)에 전송할 수 있으며, 노드(210-1, 210-2, 210-3, 210-4, ...) 중 하나는 제2 트랜잭션 데이터에 기초하여 트랜잭션을 추가할 수 있다.In some embodiments, the user device 220 may receive predetermined data from the user and register it in the blockchain network 210 . In some examples, the user device 220 may receive data from the user. The user device 220 may generate a first symmetric key in response to the input of data. In some examples, the first symmetric key may be a value randomly generated using a predetermined function. The user device 220 may symmetrically encode the data using the first symmetric key. The user device 220 may asymmetrically encode the first symmetric key using the user's public key. Thereafter, the user device 220 may generate second transaction data including the symmetrically encoded data and the asymmetrically encoded first symmetric key. In some examples, the second transaction data may further include at least a portion of a name of the material, eg, a serial number of the material, a keyword of the material, information about the material, a user ID, and user information. The user device 220 may transmit the second transaction data to the blockchain network 210, and one of the nodes 210-1, 210-2, 210-3, 210-4, ... Transactions can be added based on data.

일부 실시예에서, 요청자 장치(230)는 블록체인 네트워크(210)에 접속할 수 있으며, 블록체인 네트워크(210)에 등록된 자료의 목록을 디스플레이 할 수 있다. 일부 예시에서, 요청자 장치(230)는 자료의 목록 내 각 자료의 정보, 예컨대, 자료의 일련번호, 자료의 명칭, 자료의 키워드, 자료의 일부 내용에 관한 정보, 사용자 ID, 사용자 정보 중 적어도 일부를 디스플레이 할 수 있다. 또한, 요청자 장치(230)는 자료의 목록 내 각 자료를 선택할 수 있는 사용자 인터페이스도 디스플레이할 수 있다. 자료는 인코딩되어 있으므로, 요청자는 자료의 내용은 볼 수 없다. 따라서 요청자는 특정 자료의 내용을 보기 위하여, 특정 자료를 선택할 수 있으며, 이러한 선택에 응답하여, 요청자 장치(230)는 요청자의 ID, 자료의 소유자인 사용자 ID 및 자료의 일련번호와 같은 자료의 정보를 포함하는 공유 요청을 포함하는 공유 요청 트랜잭션 데이터를 생성하여 블록체인 네트워크(210)에 전송할 수 있다. In some embodiments, the requestor device 230 may access the blockchain network 210 and display a list of materials registered in the blockchain network 210 . In some examples, the requestor device 230 provides information about each material in the list of materials, eg, the serial number of the material, the name of the material, a keyword of the material, information about the partial content of the material, a user ID, and at least some of the user information. can be displayed. In addition, the requestor device 230 may also display a user interface for selecting each material in the list of materials. Because the data is encoded, the requestor cannot see the content of the data. Accordingly, the requestor may select a particular material to view the content of the particular material, and in response to this selection, the requestor device 230 provides information on the material, such as the requester's ID, the user ID that is the owner of the material, and the serial number of the material. Share request transaction data including a share request including a can be generated and transmitted to the blockchain network 210 .

일부 실시예에서, 사용자 장치(220)는 자료에 대한 요청자의 공유 요청에 대한 응답을 블록체인 네트워크(210)에 전송할 수 있다. 사용자 장치(220)는 블록체인 네트워크(210)에 전송된 하나 이상의 공유 요청 중에서 사용자에 대한 공유 요청 및 해당 공유 요청을 승인하거나 거절할 수 있는 선택 가능한 사용자 인터페이스를 디스플레이할 수 있다. 또한, 일부 예시에서, 사용자 장치(220)는 공유 요청에 응답하여 공유 범위를 설정하는 사용자 인터페이스를 더 디스플레이할 수 있다.In some embodiments, the user device 220 may transmit a response to the requestor's sharing request for the material to the blockchain network 210 . The user device 220 may display a share request for the user and a selectable user interface for approving or rejecting the sharing request among one or more sharing requests transmitted to the block chain network 210 . Also, in some examples, the user device 220 may further display a user interface for setting a sharing range in response to the sharing request.

사용자 장치(220)가, 사용자의 입력에 의해, 요청자의 공유 요청을 승인하는 경우, 사용자 장치(220)는 블록체인 네트워크(210)로부터 자료를 획득할 수 있다. 일부 예시에서, 사용자 장치(220)는 블록체인 네트워크(210)로부터 대칭 인코딩된 자료 및 비대칭 인코딩된 제1 대칭키를 수신할 수 있다. 사용자 장치(220)는 개인키를 이용하여 비대칭 인코딩된 제1 대칭키를 디코딩하여 제1 대칭키를 획득하고, 제1 대칭키를 이용하여 대칭 인코딩된 자료를 디코딩하여 자료를 획득할 수 있다. When the user device 220 approves the requester's sharing request by the user's input, the user device 220 may obtain data from the blockchain network 210 . In some examples, the user device 220 may receive the symmetrically encoded material and the asymmetrically encoded first symmetric key from the blockchain network 210 . The user device 220 may obtain the first symmetric key by decoding the asymmetrically encoded first symmetric key using the private key, and may obtain the data by decoding the symmetrically encoded data using the first symmetric key.

사용자 장치(220)는 요청자의 공개키를 이용하여 획득한 자료를 인코딩할 수 있다. 일부 예시에서, 사용자 장치(220)는 요청자의 공유 요청을 승인하는 것에 응답하여 해당 공유 요청으로부터 요청자의 공개키를 획득할 수 있다. 일부 다른 예시에서, 사용자 장치(220)는 요청자의 공개키를 블록체인 네트워크(210)에 요청하여 획득할 수 있다. 또한, 사용자 장치(220)는 공유 요청의 승인에 응답하여, 제2 대칭키를 생성할 수 있다. 제2 대칭키는 제1 대칭키와 유사하게 미리 정해진 함수를 이용하여 랜덤하게 생성된 값일 수 있다. 사용자 장치(220)는 제2 대칭키를 이용하여, 획득된 자료를 대칭 인코딩할 수 있다. 공유 범위가 설정되는 일부 예시에서, 사용자 장치(220)는 제2 대칭키를 이용하여, 자료의 일부가 공개된 상태의 변경된 자료를 대칭 인코딩할 수 있다. 사용자 장치(220)는 요청자의 공개키를 이용하여 제2 대칭키를 비대칭 인코딩할 수 있다. 사용자 장치(220)는 요청자 ID와 같은 요청자에 관한 정보, 제2 대칭키를 이용하여 대칭 인코딩된 자료 및 상기 비대칭 인코딩된 제2 대칭키를 포함하는 제3 트랜잭션 데이터를 생성할 수 있다. 일부 예시에서, 제3 트랜잭션 데이터는 자료의 일련 번호, 자료의 제목 등과 같이 자료를 식별할 수 있는 정보를 더 포함할 수 있다. 사용자 장치(220)는 생성된 제3 트랜잭션 데이터를 블록체인 네트워크(210)에 전송할 수 있다. 위 실시예에서는 공유 요청이 요청자 장치(230)에서 생성되는 예시를 설명하였으나, 본 개시는 이에 제한되지 않는다. 일부 다른 실시예에서, 사용자 장치(220)는 요청자 장치(230)로부터의 공유 요청에 관한 수신 없이, 사용자의 선택에 의해 요청자를 설정할 수 있으며, 그에 따라 승인된 공유 요청을 생성하는 것도 가능하다.The user device 220 may encode the obtained data using the requestor's public key. In some examples, the user device 220 may obtain the requestor's public key from the sharing request in response to approving the requestor's sharing request. In some other examples, the user device 220 may obtain the requestor's public key by requesting the blockchain network 210 . Also, the user device 220 may generate the second symmetric key in response to the approval of the sharing request. The second symmetric key may be a value randomly generated using a predetermined function similar to the first symmetric key. The user device 220 may symmetrically encode the obtained data using the second symmetric key. In some examples in which the sharing range is set, the user device 220 may use the second symmetric key to symmetrically encode the changed data in a state in which a part of the data is disclosed. The user device 220 may asymmetrically encode the second symmetric key using the requestor's public key. The user device 220 may generate third transaction data including information about the requester, such as a requester ID, symmetrically encoded data using the second symmetric key, and the asymmetrically encoded second symmetric key. In some examples, the third transaction data may further include information for identifying the material, such as a serial number of the material, a title of the material, and the like. The user device 220 may transmit the generated third transaction data to the blockchain network 210 . In the above embodiment, an example in which a share request is generated in the requestor device 230 has been described, but the present disclosure is not limited thereto. In some other embodiments, the user device 220 may set the requestor by the user's selection, without receiving a share request from the requestor device 230 , and may generate an approved share request accordingly.

사용자 장치(220)가, 사용자의 입력에 의해, 요청자로부터의 공유 요청을 거절하는 경우, 사용자 장치(220)는 자료를 식별할 수 있는 정보, 요청자 ID와 같은 요청자에 관한 정보, 공유요청을 거절하는 내용을 나타내는 정보를 포함하는 제3 트랜잭션 데이터를 생성하여, 블록체인 네트워크(210)에 전송할 수 있다. When the user device 220 rejects the sharing request from the requester by the user's input, the user device 220 rejects the information for identifying the data, information about the requester such as the requester ID, and the sharing request. Third transaction data including information indicating the content to be generated may be generated and transmitted to the block chain network 210 .

이후, 요청자 장치(230)는, 사용자가 공유 요청을 승인한 경우, 블록체인 네트워크(210)로부터 제3 트랜잭션 데이터에 포함된 제2 대칭키를 이용하여 대칭 인코딩된 자료 및 비대칭 인코딩된 제2 대칭키를 수신할 수 있다. 요청자 장치(230)는 요청자의 개인키를 이용하여 비대칭 인코딩된 제2 대칭키를 디코딩하여 제2 대칭키를 획득할 수 있고, 제2 대칭키를 이용하여 대칭 인코딩된 자료를 디코딩하여 자료를 획득할 수 있다. 다른 한편으로, 사용자가 공유 요청을 거절한 경우, 요청자 장치(230)는 블록체인 네트워크(210)로부터 제3 트랜잭션 데이터에 포함된 공유 요청을 거절하는 내용을 나타내는 정보를 수신할 수 있으며, 이를 디스플레이할 수 있다. Then, when the user approves the sharing request, the requestor device 230 uses the second symmetric key included in the third transaction data from the blockchain network 210 to symmetrically-encoded data and asymmetrically-encoded second symmetric data. You can receive the key. The requestor device 230 may obtain the second symmetric key by decoding the asymmetrically encoded second symmetric key using the requestor's private key, and obtain the data by decoding the symmetrically encoded data using the second symmetric key. can do. On the other hand, when the user rejects the sharing request, the requestor device 230 may receive information indicating the content of rejecting the sharing request included in the third transaction data from the block chain network 210, and display it can do.

이와 같이, 본 개시에 따르면, 자료를 인코딩하여 온라인 상의 블록체인에 등록함으로써, 로컬에 저장하지 않으면서도 데이터의 변형에 대한 시도로부터 안전하게 보관할 수 있으며, 블록체인 네트워크에 접속한 사람 중에서도 승인된 자에 한하여 자료를 열람 가능하게 함으로써, 사용자가 자료의 접근 권한의 범위를 설정하는 것이 가능하게 된다. 또한, 자료에 대한 공유 요청에 따라 자료를 인코딩하여 블록체인에 등록하므로, 데이터의 공유에 관한 신뢰 가능한 히스토리를 파악하는 것이 가능하다.As described above, according to the present disclosure, by encoding data and registering it in an online blockchain, it is possible to safely store data from attempts to tamper with it without storing it locally. By making the data available for viewing only, it becomes possible for the user to set the scope of the access authority of the data. In addition, since the data is encoded and registered in the blockchain according to the sharing request for the data, it is possible to identify a reliable history of data sharing.

또한 본 개시에 따르면, 블록체인 네트워크를 이용하기 위한 공개키 및 개인키를 로컬에 저장할 필요가 없어 분실 위험이 낮아지며, 패스워드를 비교적 긴 길이로 단방향 암호화된 해시코드로 변환하여, 블록체인 네트워크에 저장함으로써, 보안성을 높일 수 있다.In addition, according to the present disclosure, there is no need to store the public and private keys locally for using the block chain network, so the risk of loss is reduced, and the password is converted into a one-way encrypted hash code with a relatively long length and stored in the block chain network. By doing so, security can be improved.

도 3은 본 개시의 적어도 일부 실시예에 따른 데이터 접근 권한 관리 장치(300)를 도시하는 블록도이다. 도 3에 도시된 데이터 접근 권한 관리 장치(300)는 예컨대, 도 2의 사용자 장치(220)와 같이, 자료를 블록체인 네트워크에 등록하고 공유하여 자료에 대한 접근 권한을 관리할 수 있으며, 도 2의 요청자 장치(230)와 같이, 블록체인 네트워크에 등록된 자료를 검색하고, 자료에 대한 공유를 요청할 수 있다. 따라서, 데이터 접근 권한 관리 장치(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치일 수 있지만, 이에 제한되는 것은 아니다.3 is a block diagram illustrating an apparatus 300 for managing data access rights according to at least some embodiments of the present disclosure. The data access right management device 300 shown in FIG. 3 can manage access rights to the data by registering and sharing the data in the block chain network, for example, like the user device 220 of FIG. 2 , FIG. Like the requestor device 230 of , it is possible to search for data registered in the blockchain network and request sharing of the data. Accordingly, the data access right management device 300 may be, for example, a desktop computer, a laptop computer, a smart phone, a tablet computer, a mobile phone, a personal digital assistant (PDA), a special purpose device, or a fusion device including any of the above functions. It may be a small form factor portable (mobile) electronic device such as, but not limited to.

일부 실시예에서, 데이터 접근 권한 관리 장치(300)는 도 3에 도시된 바와 같이, 요청 처리부(310), 비대칭 코딩부(320), 대칭 코딩부(330), 해싱부(340) 및 통신부(350)를 포함할 수 있다. 비대칭 코딩부(320), 대칭 코딩부(330) 및 해싱부(340)는 코딩부로서 통칭될 수 있다. 비대칭 코딩부(320)는 비대칭키 생성부(322), 비대칭 인코더(324) 및 비대칭 디코더(326)를 포함할 수 있다. 대칭 코딩부(330)는 대칭키 생성부(332), 대칭 인코더(334) 및 대칭 디코더(336)를 포함할 수 있다. 통신부(350)는 블록체인 조회부(352), 트랜잭션 데이터 생성부(354) 및 트랜잭션 데이터 전송부(356)를 포함할 수 있다.In some embodiments, the data access right management apparatus 300 is, as shown in FIG. 3 , a request processing unit 310 , an asymmetric coding unit 320 , a symmetric coding unit 330 , a hashing unit 340 and a communication unit ( 350) may be included. The asymmetric coding unit 320 , the symmetric coding unit 330 , and the hashing unit 340 may be collectively referred to as a coding unit. The asymmetric coding unit 320 may include an asymmetric key generator 322 , an asymmetric encoder 324 , and an asymmetric decoder 326 . The symmetric coding unit 330 may include a symmetric key generator 332 , a symmetric encoder 334 , and a symmetric decoder 336 . The communication unit 350 may include a block chain inquiry unit 352 , a transaction data generation unit 354 , and a transaction data transmission unit 356 .

데이터 접근 권한 관리 장치(300)는 본 개시에 따른 하나 이상의 프로그램을 내부 메모리에 저장할 수 있으며, 이러한 하나 이상의 프로그램은 프로세서의 실행에 의해 요청 처리부(310), 비대칭 코딩부(320), 대칭 코딩부(330), 해싱부(340) 및 통신부(350)에 따른 동작을 수행할 수 있다. 이러한 컴포넌트들(310, 320, 330, 340 및 350) 및 그 서브 컴포넌트들(322, 324, 326, 332, 334, 336, 352, 354 및 356)은 개별적인 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서, 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합되거나 제거될 수 있다. 또한, 도 3에서는 컴포넌트가 소프트웨어에 의해 구현되는 것으로 도시되지만, 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합을 통하여 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.Data access right management device 300 may store one or more programs according to the present disclosure in the internal memory, such one or more programs by the execution of the processor request processing unit 310, asymmetric coding unit 320, symmetric coding unit Operations according to 330 , the hashing unit 340 , and the communication unit 350 may be performed. Although these components 310, 320, 330, 340, and 350 and their subcomponents 322, 324, 326, 332, 334, 336, 352, 354, and 356 are shown as separate components, they do not extend the scope of the disclosed subject matter. It can be separated into additional components or combined or eliminated into fewer components without departing from it. In addition, although the component is illustrated as being implemented by software in FIG. 3 , each function and/or operation of the component may be individually and/or collectively implemented through hardware, software, firmware, or any combination thereof by those skilled in the art. will understand that

요청 처리부(310)는 비대칭 코딩부(320), 대칭 코딩부(330), 해싱부(350) 및 통신부(350)와 동작적으로 연결되어, 본 개시에 따른 다양한 요청 및 데이터를 수신 및 전송할 수 있다. 일부 실시예에서, 요청 처리부(310)는 사용자로부터 적어도 사용자 식별자(ID) 및 패스워드를 수신하여 블록체인 네트워크 내 사용자 등록을 위한 일부 처리를 수행할 수 있다. 일부 실시예에서, 요청 처리부(310)는 사용자로부터 자료를 수신하여 본 개시에 따라 블록체인 네트워크에 자료를 등록하기 위한 일부 처리를 수행할 수 있다. 일부 실시예에서, 요청 처리부(310)는 블록체인 네트워크 내 등록된 자료를 검색하고, 특정 자료를 요청하기 위한 일부 처리를 수행할 수 있다. 일부 실시예에서, 요청 처리부(310)는 요청자로부터의 자료 승인 요청을 승인하고 자료를 공유하기 위한 일부 처리를 수행할 있다.The request processing unit 310 is operatively connected to the asymmetric coding unit 320, the symmetric coding unit 330, the hashing unit 350, and the communication unit 350 to receive and transmit various requests and data according to the present disclosure. have. In some embodiments, the request processing unit 310 may receive at least a user identifier (ID) and a password from the user to perform some processing for user registration in the blockchain network. In some embodiments, the request processing unit 310 may receive data from the user and perform some processing for registering the data in the blockchain network according to the present disclosure. In some embodiments, the request processing unit 310 may search for data registered in the blockchain network and perform some processing for requesting specific data. In some embodiments, the request processing unit 310 may perform some processing for approving the data approval request from the requestor and sharing the data.

비대칭 코딩부(320)는 본 개시에 따라 비대칭적 암호화 기법에 관한 다양한 동작을 수행할 수 있다. 비대칭키 생성부(322)는 이하에서 설명되는 바와 같이 사용자 식별자(ID) 및 패스워드를 사용자 등록 정보의 수신에 응답하여, 공개키와 이에 대응하는 개인키를 생성할 수 있다. 비대칭키 생성부(322)는 예컨대, RSA 알고리즘을 이용할 수 있다. 비대칭 인코더(324)는 공개키를 이용하여 본 개시에 따른 대칭키를 비대칭 인코딩할 수 있다. 비대칭 디코더(324)는 공개키에 의해 인코딩된 대칭키를 개인키를 이용하여 비대칭 디코딩하여 대칭키를 획득할 수 있다.The asymmetric coding unit 320 may perform various operations related to an asymmetric encryption technique according to the present disclosure. The asymmetric key generating unit 322 may generate a public key and a corresponding private key in response to receiving user registration information with a user identifier (ID) and password as described below. The asymmetric key generator 322 may use, for example, an RSA algorithm. The asymmetric encoder 324 may asymmetrically encode the symmetric key according to the present disclosure using the public key. The asymmetric decoder 324 may asymmetrically decode the symmetric key encoded by the public key using the private key to obtain the symmetric key.

대칭 코딩부(330)는 본 개시에 따라 대칭적 암호화 기법에 관한 다양한 동작을 수행할 수 있다. 대칭키 생성부(332)는 이하에서 설명되는 바와 같이, 사용자로부터 자료를 입력받거나 요청자로부터의 자료에 대한 승인 요청을 승인하는 것에 응답하여, 대칭키를 생성할 수 있다. 대칭키는 미리 정해진 함수를 이용하여 랜덤하게 생성된 값일 수 있다. 대칭 인코더(334)는 이하에서 설명되는 바와 같이 패스워드를 대칭키로서 이용하여 개인키를 대칭 인코딩할 수 있다. 또한, 대칭 인코더(334)는 이하에서 설명되는 바와 같이, 대칭키 생성부(332)에 의해 생성된 대칭키를 이용하여, 자료를 대칭 인코딩할 수 있다. 대칭 디코더(336)는 대칭키를 이용하여 대칭 인코딩된 개인키 및 자료를 대칭 디코딩하여 개인키 및 자료를 획득할 수 있다. 대칭 인코더(334) 및 대칭 디코더(336)는 예컨대, AES 256 알고리즘을 이용할 수 있다.The symmetric coding unit 330 may perform various operations related to a symmetric encryption technique according to the present disclosure. The symmetric key generator 332 may generate a symmetric key in response to receiving data from a user or approving a request for approval of data from a requester, as will be described below. The symmetric key may be a value randomly generated using a predetermined function. Symmetric encoder 334 may symmetrically encode the private key using the password as the symmetric key, as described below. In addition, the symmetric encoder 334 may symmetrically encode data using the symmetric key generated by the symmetric key generator 332 , as will be described below. The symmetric decoder 336 may symmetrically decode the symmetrically encoded private key and data using the symmetric key to obtain the private key and data. Symmetric encoder 334 and symmetric decoder 336 may use, for example, the AES 256 algorithm.

해싱부(340)는 본 개시에 따라 단방향 암호화 기법에 따른 동작을 수행할 수 있다. 해싱부(340)는 해시함수를 이용하여, 패스워드를 해싱된 패스워드, 즉, 해시 코드로 변환할 수 있다. 해싱부(340)는 예컨대, SHA 256알고리즘을 이용할 수 있다.The hashing unit 340 may perform an operation according to the one-way encryption technique according to the present disclosure. The hashing unit 340 may convert the password into a hashed password, that is, a hash code, using a hash function. The hashing unit 340 may use, for example, the SHA 256 algorithm.

블록체인 조회부(352)는 블록체인 네트워크에서 관리되는 블록체인의 하나 이상의 블록 내 데이터를 조회할 수 있다. 블록체인 조회부(352)는 블록체인 네트워크를 통하여 블록체인에 저장된 데이터를 검색하고, 요청한 데이터를 수신할 수 있다. 트랜잭션 데이터 생성부(354)는 본 개시에 따른 제1 내지 제3 트랜잭션 데이터 및 공유 요청 트랜잭션 데이터를 생성할 수 있으며, 트랜잭션 데이터 전송부는 이와 같이 생성된 트랜잭션 데이터를 블록체인 네트워크에 전송할 수 있다. 본 개시에 따른 일부 실시예에 따르면, 제1 트랜잭션 데이터는 블록체인 네트워크 내 사용자 등록을 위한 사용자 ID, 해싱된 패스워드, 공개키, 대칭 인코딩된 개인키를 포함할 수 있다. 제2 트랜잭션 데이터는 블록체인 네트워크 내 자료 등록을 위한 대칭 인코딩된 자료 및 비대칭 인코딩된 제1 대칭키를 포함할 수 있다. 일부 예시에서, 제2 트랜잭션 데이터는 자료의 명칭, 예컨대, 자료의 일련 번호, 자료의 키워드, 자료에 관한 정보, 사용자 ID, 사용자 정보 중 적어도 일부를 더 포함할 수 있다. 제3 트랜잭션 데이터는 승인 요청에 따라 자료를 공유하기 위한, 요청자 ID와 같은 요청자에 관한 정보, 제2 대칭키를 이용하여 대칭 인코딩된 자료 및 상기 비대칭 인코딩된 제2 대칭키를 포함할 수 있다. 일부 예시에서, 제3 트랜잭션 데이터는 자료의 일련 번호, 자료의 제목 등과 같이 자료를 식별할 수 있는 정보를 더 포함할 수 있다. 트랜잭션 데이터 전송부(356)는 제1 내지 제3 트랜잭션 데이터를 블록체인 네트워크, 즉, 블록체인 네트워크 내 노드 또는 노드와 통신하는 소정의 서버에 전송할 수 있다.The blockchain inquiry unit 352 may inquire data in one or more blocks of the blockchain managed in the blockchain network. The block chain inquiry unit 352 may search for data stored in the block chain through the block chain network and receive the requested data. The transaction data generating unit 354 may generate first to third transaction data and sharing request transaction data according to the present disclosure, and the transaction data transmitting unit may transmit the thus generated transaction data to the blockchain network. According to some embodiments according to the present disclosure, the first transaction data may include a user ID for user registration in the blockchain network, a hashed password, a public key, and a symmetrically encoded private key. The second transaction data may include symmetrically encoded data and asymmetrically encoded first symmetric key for data registration in the blockchain network. In some examples, the second transaction data may further include at least a portion of a name of the material, eg, a serial number of the material, a keyword of the material, information about the material, a user ID, and user information. The third transaction data may include information about the requester, such as a requester ID, symmetrically encoded data using a second symmetric key, and the asymmetrically encoded second symmetric key for sharing data according to an authorization request. In some examples, the third transaction data may further include information for identifying the material, such as a serial number of the material, a title of the material, and the like. The transaction data transmitter 356 may transmit the first to third transaction data to a block chain network, that is, a node in the block chain network or a predetermined server communicating with the node.

이하에서는, 데이터 접근 권한 관리 장치(300)의 다양한 프로세스에 관하여, 도 4 내지 도 8을 참조하면서 설명한다. 도 4는 본 개시의 적어도 일부 실시예에 따라 사용자 등록을 수행하는 예시적인 프로세스(400)를 도시하고, 도 5는 블록체인 네트워크에 접속하는 예시적인 프로세스(500)를 도시하고, 도 6은 블록체인 네트워크에 자료를 등록하는 예시적인 프로세스(600)를 도시하고, 도 7은 블록체인 네트워크에서 자료를 조회하는 예시적인 프로세스(700)를 도시하고, 도 8은 블록체인 요청자에게 자료를 공유하는 예시적인 프로세스(800)를 도시한다. 도 4 내지 도 8에 도시된 프로세스(400 내지 800) 각각은 블록(410, 420, 430, 440, 450 및/또는 460), 블록(510, 520, 530, 540 및/또는 550), 블록(610, 620, 630, 640, 650 및/또는 660), 블록(710, 720, 730, 740 및/또는 750) 및 블록(810, 820, 830, 840, 850, 860, 870, 880 및/또는 890)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 한편, 도 4 내지 도 8에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. Hereinafter, various processes of the data access right management apparatus 300 will be described with reference to FIGS. 4 to 8 . 4 depicts an example process 400 of performing user registration in accordance with at least some embodiments of the present disclosure, FIG. 5 depicts an exemplary process 500 of connecting to a blockchain network, and FIG. 6 is a block diagram Fig. 7 shows an example process 600 for registering data in a chain network, Fig. 7 shows an example process 700 for querying data in a blockchain network, and Fig. 8 shows an example for sharing data with a blockchain requestor A typical process 800 is shown. Each of the processes 400-800 illustrated in FIGS. 4-8 include blocks 410, 420, 430, 440, 450 and/or 460, blocks 510, 520, 530, 540 and/or 550, blocks ( 610, 620, 630, 640, 650 and/or 660, blocks 710, 720, 730, 740 and/or 750, and blocks 810, 820, 830, 840, 850, 860, 870, 880 and/or 890) as illustrated by one or more acts, functions, or acts. On the other hand, the schematic operations illustrated in FIGS. 4 to 8 are provided as examples only, and without departing from the essence of the disclosed embodiment, some of the operations may be optional, may be combined into fewer operations, or additional operations can be expanded to

<사용자의 블록체인 네트워크 내 등록><Registration of users in the blockchain network>

도 4를 참조하면, 프로세스(400)는 사용자 등록 정보를 입력받는 블록(410)에서 시작할 수 있다. 블록(410)에서, 요청 처리부(310)는 사용자로부터 사용자 등록 정보를 입력받을 수 있다. 사용자 등록 정보는 사용자 식별자(ID), 패스워드, 및 예컨대, 사용자의 이름, 주소, 관심 분야와 같은 사용자 정보 등을 포함할 수 있다. 일부 예시에서, 요청 처리부(310) 및/또는 블록체인 조회부(352)는 사용자에 의해 입력된 사용자 ID 및 패스워드가 적합한지 여부를 결정할 수 있다. 예컨대, 블록체인 조회부(352)가 통신부(350)를 통하여 사용자 ID가 블록체인 네트워크에 이미 등록되었는지를 결정할 수 있거나, 요청 처리부(310)가 적절한 알고리즘을 이용하여 입력된 패스워드가 보안 적합성(예를 들어, 숫자, 문자 및 특수문자의 포함)이 있는지를 결정할 수 있다. 프로세스(400)는 블록(410)으로부터 개인키 및 공개키를 포함하는 비대칭키 쌍을 생성하는 블록(420)으로 이어질 수 있다.Referring to FIG. 4 , the process 400 may begin at block 410 of receiving user registration information. In block 410 , the request processing unit 310 may receive user registration information from a user. The user registration information may include a user identifier (ID), a password, and user information such as, for example, the user's name, address, and interests. In some examples, the request processing unit 310 and/or the blockchain inquiry unit 352 may determine whether the user ID and password entered by the user are appropriate. For example, the block chain inquiry unit 352 may determine whether the user ID has already been registered in the block chain network through the communication unit 350, or the request processing unit 310 uses an appropriate algorithm to determine whether the input password is suitable for security (eg, For example, the presence of numbers, letters, and special characters) can be determined. Process 400 may continue from block 410 to block 420 of generating an asymmetric key pair comprising a private key and a public key.

블록(420)에서, 비대칭키 생성부(322)는 블록(410)의 결과에 응답하여, 블록체인 네트워크에서 이용될 비대칭키 세트, 즉, 사용자의 공개키 및 개인키를 생성할 수 있다. 프로세스(400)는 블록(420) 으로부터 개인키를 대칭 인코딩하는 블록(430)으로 이어질 수 있다.In block 420 , the asymmetric key generator 322 may generate an asymmetric key set to be used in the blockchain network, ie, a public key and a private key of the user, in response to the result of block 410 . Process 400 may continue from block 420 to block 430 of symmetrically encoding the private key.

블록(430)에서, 대칭 인코더(334)는 블록(410)에서 획득된 패스워드를 대칭키로 이용하여, 블록(420)에서 생성된 사용자의 개인키를 대칭 인코딩할 수 있다. 프로세스(400)는 블록(430)으로부터 패스워드를 해시코드로 변환하는 블록(440)으로 이어질 수 있다. 블록(440)에서, 해싱부(340)는 해시함수, 예컨대, SHA 256 알고리즘을 이용하여, 블록(410)에서 획득된 패스워드를 해싱된 패스워드, 즉 해시코드로 변환할 수 있다. 프로세스(400)는 블록(440)으로부터 사용자 등록에 대한 제1 트랜잭션 데이터를 생성하는 블록(450)으로 이어질 수 있다.In block 430 , the symmetric encoder 334 may use the password obtained in block 410 as a symmetric key to symmetrically encode the user's private key generated in block 420 . Process 400 may continue from block 430 to block 440 of converting the password to a hashcode. In block 440, the hashing unit 340 may use a hash function, for example, the SHA 256 algorithm, to convert the password obtained in block 410 into a hashed password, that is, a hash code. Process 400 may continue from block 440 to block 450 of generating first transaction data for user registration.

블록(450)에서, 트랜잭션 데이터 생성부(354)는 사용자 등록에 대한 제1 트랜잭션 데이터를 생성할 수 있다. 제1 트랜잭션 데이터는 블록(410)에서 입력된 사용자 ID, 블록(420)에서 획득된 공개키, 블록(430)에서 획득된 대칭 인코딩된 개인키 및 블록(440)에서 획득된 해싱된 패스워드를 포함할 수 있다. 프로세스(400)는 블록(450)으로부터 제1 트랜잭션 데이터를 블록체인 네트워크에 전송하는 블록(460)으로 이어질 수 있다. 블록(460)에서, 트랜잭션 데이터 전송부(356)는 제1 트랜잭션 데이터를 블록체인 네트워크 내 노드 또는 노드와 통신하는 서버에 전송할 수 있다. 전송된 제1 트랜잭션 데이터는 결과적으로 블록체인 네트워크 내 노드에서 수신되며, 해당 노드는 제1 트랜잭션 데이터에 포함된 데이터를 블록 내 새로운 트랜잭션으로서 추가할 수 있다.In block 450 , the transaction data generation unit 354 may generate first transaction data for user registration. The first transaction data includes the user ID input at block 410 , the public key obtained at block 420 , the symmetrically encoded private key obtained at block 430 , and the hashed password obtained at block 440 . can do. Process 400 may continue from block 450 to block 460 sending the first transaction data to the blockchain network. In block 460 , the transaction data transmitter 356 may transmit the first transaction data to a node in the blockchain network or a server communicating with the node. As a result, the transmitted first transaction data is received by a node in the blockchain network, and the node can add the data included in the first transaction data as a new transaction in the block.

<블록체인 네트워크로의 사용자 접속><User access to the blockchain network>

도 5를 참조하면, 프로세스(500)는 사용자 ID 및 패스워드를 입력받는 블록(510)에서 시작할 수 있다. 블록(510)에서, 사용자는 블록체인 네트워크에 의해 제공되는 서비스에 접속하기 위하여, 사용자 ID 및 패스워드를 입력할 수 있으며, 요청 처리부(310)는 사용자로부터 사용자 ID 및 패스워드를 수신할 수 있다. 프로세스(500)는 블록(510)으로부터 패스워드를 해시코드로 변환하는 블록(520)으로 이어질 수 있다. 블록(510)에서 해싱부는 블록(510)에서 입력된 패스워드를 해시함수를 이용하여 해싱된 패스워드로 변환할 수 있다. 프로세스(500)는 블록(520)으로부터 블록체인 네트워크로부터 사용자 ID 및 해시코드를 검색하는 블록(530)으로 이어질 수 있다.Referring to FIG. 5 , process 500 may begin at block 510 in which a user ID and password are input. In block 510, the user may input a user ID and password to access the service provided by the blockchain network, and the request processing unit 310 may receive the user ID and password from the user. Process 500 may continue from block 510 to block 520 of converting the password to a hashcode. In block 510 , the hashing unit may convert the password input in block 510 into a hashed password using a hash function. Process 500 may continue from block 520 to block 530 retrieving the user ID and hashcode from the blockchain network.

블록(530)에서, 블록체인 조회부(352)는 블록(510)에서 수신된 사용자 ID 및 블록(520)에서 획득된 해싱된 패스워드가 블록체인 네트워크에 등록된 것인지 검색한다. 사용자 ID 및 해싱된 패스워드가 블록체인 네트워크 내에 등록되어 있는 경우, 즉, 사용자에 의해 입력된 사용자 ID 및 패스워드가 유효한 경우, 프로세스(500)는 블록(530)으로부터 인코딩된 개인키를 수신하는 블록(540)으로 이어질 수 있다. 블록(540)에서, 블록체인 조회부(352)는 블록체인 네트워크로부터 사용자의 공개키 및 대칭 인코딩된 개인키를 수신할 수 있다. 프로세스(500)는 블록(540)으로부터 개인키를 획득하는 블록(550)으로 이어질 수 있다. 블록(500)에서, 대칭 디코더(336)는 블록(510)에서 수신된 패스워드를 대칭키로서 이용하여, 블록(540)에서 수신된 대칭 인코딩된 개인키를 디코딩하여 개인키를 획득할 수 있다. In block 530, the blockchain inquiry unit 352 searches whether the user ID received in block 510 and the hashed password obtained in block 520 are registered in the blockchain network. If the user ID and hashed password are registered within the blockchain network, i.e., if the user ID and password entered by the user are valid, then process 500 proceeds to block 530 receiving the encoded private key from block 530 ( 540). In block 540, the blockchain inquiry unit 352 may receive the user's public key and symmetrically encoded private key from the blockchain network. Process 500 may continue to block 550 where the private key is obtained from block 540 . At block 500 , the symmetric decoder 336 may use the password received at block 510 as a symmetric key to decode the symmetrically encoded private key received at block 540 to obtain the private key.

<블록체인 네트워크로의 자료의 등록><Registration of data to the blockchain network>

도 6을 참조하면, 프로세스(600)는 자료를 입력받는 사용자 ID 및 패스워드를 입력받는 블록(610)에서 시작할 수 있다. 블록(610)에서, 요청 처리부(310)는 사용자로부터 자료를 수신할 수 있다. 프로세스(600)는 블록(610)으로부터 제1 대칭키를 생성하는 블록(620)으로 이어질 수 있다. 블록(620)에서, 대칭키 생성부(332)는 블록(610)의 결과에 응답하여, 제1 대칭키를 생성할 수 있다. 제1 대칭키는 미리 정해진 함수를 이용하여 랜덤하게 생성된 값일 수 있다. 프로세스(600)는 블록(620)으로부터 제1 대칭키를 이용하여 자료를 대칭 인코딩하는 블록(630)으로 이어질 수 있다.Referring to FIG. 6 , the process 600 may begin at block 610 for receiving a user ID and password for receiving data. In block 610 , the request processing unit 310 may receive data from a user. Process 600 may continue from block 610 to block 620 of generating a first symmetric key. In block 620 , the symmetric key generator 332 may generate a first symmetric key in response to the result of block 610 . The first symmetric key may be a value randomly generated using a predetermined function. Process 600 may continue from block 620 to block 630 of symmetrically encoding the material using the first symmetric key.

블록(630)에서, 대칭 인코더(334)는 블록(620)에서 생성된 제1 대칭키를 이용하여 블록(610)에서 수신된 자료를 대칭 인코딩할 수 있다. 프로세스(600)는 블록(630)으로부터 공개키를 이용하여 제1 대칭키를 비대칭 인코딩하는 블록(640)으로 이어질 수 있으며, 블록(640)에서, 비대칭 인코더(324)는 사용자의 공개키를 이용하여 블록(620)에서 생성된 제1 대칭키를 비대칭 인코딩할 수 있다. 대칭키를 이용하여 자료를 대칭 인코딩하고 비교적 사이즈가 작은 대칭키를 비대칭 인코딩하므로, 자료를 비대칭 인코딩하는 경우에 비하여 인코딩/디코딩에 소요되는 시간이 짧아질 수 있다. 또한, 공개키로부터 시작하여 자료가 인코딩되므로, 개인키가 없는 제3자는 자료의 내용을 볼 수 없다. 프로세스(600)는 블록(640)으로부터 자료에 대한 제2 트랜잭션 데이터를 생성하는 블록(650)으로 이어질 수 있다.At block 630 , the symmetric encoder 334 may symmetrically encode the data received at block 610 using the first symmetric key generated at block 620 . Process 600 may continue from block 630 to block 640 of asymmetrically encoding the first symmetric key using the public key, at block 640 where the asymmetric encoder 324 uses the user's public key. Thus, the first symmetric key generated in block 620 may be asymmetrically encoded. Since data is symmetrically encoded using a symmetric key and a symmetric key having a relatively small size is asymmetrically encoded, the time required for encoding/decoding may be shorter than when data is asymmetrically encoded. In addition, since the data is encoded starting from the public key, a third party without the private key cannot see the contents of the data. Process 600 may continue from block 640 to block 650 of generating second transactional data for the material.

블록(650)에서, 트랜잭션 데이터 생성부(354)는 자료에 대한 제2 트랜잭션 데이터를 생성할 수 있다. 제2 트랜잭션 데이터는 블록(630)에서 획득되는 대칭 인코딩된 자료 및 블록(640)에서 획득되는 비대칭 인코딩된 제1 대칭키를 적어도 포함한다. 일부 예시에서, 제2 트랜잭션 데이터는 추후 블록체인 네트워크에서의 자료의 검색을 용이하게 하도록, 자료의 명칭, 예컨대, 자료의 일련 번호, 자료의 키워드, 자료에 관한 정보, 사용자 ID, 사용자 정보 중 적어도 일부를 더 포함할 수 있다. 프로세스(600)는 블록(650)으로부터 제2 트랜잭션 데이터를 블록체인 네트워크에 전송하는 블록(660)으로 이어지며, 블록(660)에서, 트랜잭션 데이터 전송부(356)는 제2 트랜잭션 데이터를 블록체인 네트워크 내 노드 또는 노드와 통신하는 서버에 전송할 수 있다. 전송된 제2 트랜잭션 데이터는 결과적으로 블록체인 네트워크 내 노드에서 수신되며, 해당 노드는 제2 트랜잭션 데이터에 포함된 데이터를 블록 내 새로운 트랜잭션으로서 추가할 수 있다.In block 650 , the transaction data generation unit 354 may generate second transaction data for data. The second transaction data includes at least the symmetrically encoded material obtained at block 630 and the asymmetrically encoded first symmetric key obtained at block 640 . In some examples, the second transaction data is at least one of a name of the material, e.g., a serial number of the material, a keyword of the material, information about the material, a user ID, and user information, so as to facilitate retrieval of the material in the future blockchain network. Some may be further included. Process 600 continues from block 650 to block 660 of transmitting the second transaction data to the blockchain network, at block 660, the transaction data transmitting unit 356 sends the second transaction data to the blockchain network. It can be sent to a node in the network or to a server that communicates with the node. As a result, the transmitted second transaction data is received by a node in the blockchain network, and the node can add the data included in the second transaction data as a new transaction in the block.

<블록체인 네트워크 내 자료의 조회><Inquiry of data in the blockchain network>

도 7을 참조하면, 프로세스(700)는 블록체인 네트워크 내의 등록된 자료의 목록을 조회하는 블록(710)에서 시작할 수 있다. 도 2의 요청자 장치(230)의 요청자와 같은 사용자는 블록체인 네트워크에 접속하여 자료를 조회하고자 할 수 있으며, 블록(710)에서, 블록체인 조회부(352)는 블록체인 네트워크 내에 등록된 하나 이상의 자료에 대한 목록을 검색할 수 있으며, 요청 처리부(310)는 데이터 접근 권한 관리 장치(300)로 하여금 목록 내 각 자료의 정보를 디스플레이하도록 할 수 있다. 자료의 정보는 예컨대, 자료의 일련번호, 자료의 명칭, 자료의 키워드, 자료의 일부 내용에 관한 정보, 사용자 ID, 사용자 정보 중 적어도 일부 등을 포함할 수 있다. 또한, 요청 처리부(310)는 데이터 접근 권한 관리 장치(300)로 하여금 디스플레이된 각 자료를 선택할 수 있는 사용자 인터페이스도 디스플레이할 수 있다. 프로세스(700)는 블록(710)으로부터 자료의 목록으로부터 특정 자료를 선택하는 블록(720)으로 이어질 수 있다.Referring to FIG. 7 , process 700 may begin at block 710 of querying a list of registered materials in the blockchain network. A user such as the requester of the requestor device 230 of FIG. 2 may wish to access the blockchain network to inquire data, and in block 710 , the blockchain inquiry unit 352 may include one or more registered in the blockchain network. A list of materials may be searched, and the request processing unit 310 may cause the data access authority management apparatus 300 to display information of each material in the list. The information of the data may include, for example, a serial number of the data, the name of the data, a keyword of the data, information about a part of the data, a user ID, and at least a part of user information. In addition, the request processing unit 310 may also display a user interface that allows the data access right management apparatus 300 to select each displayed material. Process 700 may continue from block 710 to block 720 selecting a particular material from the list of materials.

블록(720)에서, 사용자는 특정 자료를 획득하기 위하여, 블록(710)에서 설명된 바와 같은 사용자 인터페이스를 통하여, 블록(710)에서 나타난 자료의 목록 중 특정 자료, 예컨대, 도 6에서 설명된 제2 트랜잭션 데이터에 포함된 자료를 선택할 수 있다. 프로세스(700)는 블록(720)으로부터 자료에 대한 요청자의 공유 요청을 블록체인 네트워크에 전송하는 블록(730)으로 이어질 수 있다. 블록(730)에서, 트랜잭션 데이터 생성부(354)는 블록(720)의 결과에 응답하여, 사용자의 사용자 ID(요청자의 ID), 자료의 등록자의 사용자 ID 및 자료의 일련번호, 자료의 식별자 등과 같은 자료의 정보를 포함하는 공유 요청 트랜잭션 데이터를 생성할 수 있다. 트랜잭션 데이터 전송부(356)는 공유 요청 트랜잭션 데이터를 블록체인 네트워크에 전송할 수 있다. 일부 예시에서, 공유 요청 트랜잭션 데이터는 결과적으로 블록체인 네트워크 내 노드에서 수신되며, 해당 노드는 공유 요청 내 트랜잭션 데이터에 포함된 데이터를 블록 내 새로운 트랜잭션으로서 추가할 수 있는 한편, 자료의 등록자에게 공유 요청이 전송된다. 일부 예시에서, 블록(730) 이후, 자료의 등록자는, 도 8에서 상세히 설명되는 바와 같이, 공유 요청을 공유 요청을 승인하고, 인코딩된 자료를 포함하는 제3 트랜잭션 데이터를 블록체인 네트워크 상에 등록할 수 있다. 프로세스(700)는 제3 트랜잭션 데이터가 등록된 이후, 블록체인 네트워크에 접속하여 개인키를 획득하는 블록(740)에서 재개될 수 있다.In block 720, the user, through a user interface as described in block 710, to obtain a particular material, a specific material from the list of materials shown in block 710, for example, the first material described in FIG. 2 You can select the data included in the transaction data. Process 700 may continue from block 720 to block 730 where the requestor's sharing request for the material is sent to the blockchain network. In block 730, the transaction data generation unit 354 responds to the result of block 720, the user ID of the user (the requestor's ID), the user ID of the registrant of the material and the serial number of the material, the identifier of the material, etc. It is possible to create shared request transaction data including information of the same material. The transaction data transmitter 356 may transmit the sharing request transaction data to the blockchain network. In some examples, the sharing request transaction data is consequently received from a node in the blockchain network, and the node can add the data included in the transaction data in the sharing request as a new transaction in the block, while requesting the registrant of the material to share this is sent In some examples, after block 730 , the registrant of the material approves the sharing request, and registers the third transaction data including the encoded material on the blockchain network, as detailed in FIG. 8 . can do. After the third transaction data is registered, the process 700 may be resumed at block 740 where the private key is obtained by accessing the blockchain network.

블록(740)에서, 사용자는 사용자 ID 및 패스워드를 이용하여 블록체인 네트워크에 접속할 수 있으며, 개인키를 획득할 수 있다. 개인키의 획득에 관한 설명은 도 5의 프로세스(500)에 관한 설명과 중복되므로 생략한다. 프로세스(700)는 블록(740)으로부터 개인키에 기초하여 제3 트랜잭션 데이터에 포함된 자료를 획득하는 블록(750)으로 이어질 수 있다.At block 740, the user may access the blockchain network using the user ID and password, and obtain a private key. The description of obtaining the private key is omitted because it overlaps with the description of the process 500 of FIG. 5 . Process 700 may continue from block 740 to block 750 of obtaining material included in the third transaction data based on the private key.

블록(750)에서, 블록체인 조회부(352)는 블록체인 네트워크로부터 제3 트랜잭션 데이터에 포함된 인코딩된 자료를 수신할 수 있다. 일부 예시에서, 블록체인 조회부(352)는 블록체인 네트워크로부터 대칭 인코딩된 자료 및 사용자의 공개키로 비대칭 인코딩된 제2 대칭키를 획득할 수 있다. 비대칭 디코더(326)는 블록(740)에서 획득된 사용자의 개인키를 이용하여 제2 대칭키를 획득할 수 있으며, 대칭 디코더(336)는 제2 대칭키를 이용하여 자료를 획득할 수 있다.In block 750, the blockchain inquiry unit 352 may receive the encoded data included in the third transaction data from the blockchain network. In some examples, the blockchain inquiry unit 352 may obtain the symmetrically encoded data and the asymmetrically encoded second symmetric key with the user's public key from the blockchain network. The asymmetric decoder 326 may obtain a second symmetric key using the user's private key obtained in block 740 , and the symmetric decoder 336 may obtain data using the second symmetric key.

<블록체인 네트워크를 통한 자료의 공유><Sharing data through blockchain network>

도 8을 참조하면, 프로세스(800)는 블록체인 네트워크에 접속하여 개인키 및 공개키를 획득하는 블록(810)에서 시작할 수 있다. 개인키 및 공개키의 획득에 관한 구체적인 설명은 도 5의 프로세스(500)에 관한 설명과 중복되므로 생략한다. 프로세스(800)는 블록(810)으로부터 요청자로부터의 자료에 대한 공유 요청을 승인하는 블록(820)으로 이어질 수 있다. 블록(820)에서, 요청 처리부(310)는 자료에 대한 요청자의 공유 요청에 대하여 승인하는 응답을 사용자로부터 수신할 수 있다. 일부 예시에서, 요청 처리부(310)는 데이터 접근 권한 관리 장치(300)로 하여금, 사용자가 블록체인 네트워크에 등록한 자료에 대하여 공유를 요청하는 공유 요청의 목록을 디스플레이하도록 할 수 있다. 또한 요청 처리부(310)는 디스플레이되는 각 공유 요청에 대하여 승인하거나 거절할 수 있는 선택 가능한 사용자 인터페이스를 디스플레이 하도록 할 수 있다. 일부 예시에서, 요청 처리부(310)는 사용자로부터 공유의 범위를 정하는 사용자 입력을 수신할 수도 있다. 요청 처리부(310)가 사용자로부터 요청자의 공유 요청을 승인하는 입력을 수신하는 경우, 프로세스(800)는 블록(820)으로부터, 인코딩된 자료 및 요청자의 공개키를 획득하는 블록(830)으로 이어질 수 있다.Referring to FIG. 8 , the process 800 may start at block 810 in which a private key and a public key are obtained by accessing the blockchain network. A detailed description of the acquisition of the private key and the public key is omitted because it overlaps with the description of the process 500 of FIG. 5 . Process 800 may continue from block 810 to block 820 granting a share request for material from the requestor. In block 820 , the request processing unit 310 may receive a response from the user that approves the requester's request for sharing the data. In some examples, the request processing unit 310 may cause the data access right management device 300 to display a list of sharing requests requesting sharing for the data registered by the user in the block chain network. Also, the request processing unit 310 may display a selectable user interface that can approve or reject each of the displayed sharing requests. In some examples, the request processing unit 310 may receive a user input defining the scope of sharing from the user. When the request processing unit 310 receives an input from the user authorizing the requestor's sharing request, the process 800 may continue from block 820 to block 830 for obtaining the encoded material and the requestor's public key. have.

블록(830)에서, 블록체인 조회부(352)는 블록(820)에서의 공유 요청에 대한 사용자의 승인에 응답하여, 블록체인 네트워크로부터 요청에 대응하는 자료와 요청자의 공개키를 획득할 수 있다. 일부 예시에서, 블록체인 조회부(352)는 공유 요청에 포함된 자료의 정보, 예컨대, 자료의 일련번호 또는 자료의 식별자에 기초하여, 블록체인에 등록된 인코딩된 자료를 검색하고 수신할 수 있다. 인코딩된 자료는 대칭 인코딩된 자료와 비대칭 인코딩된 제1 대칭키를 포함할 수 있다. 일부 예시에서, 블록체인 조회부(352)는 또한 공유 요청에 포함된 요청자의 요청자 ID 등에 기초하여, 요청자의 공개키를 블록체인 네트워크로부터 수신할 수 있다. 일부 다른 예시에서, 요청자의 공개키는 공유 요청이 이미 포함된 것일 수 있으며, 요청 처리부(310)는 공유 요청으로부터 요청자의 공개키를 획득할 수 있다. 프로세스(800)는 블록(830)으로부터 개인키에 기초하여 제1 대칭키 및 자료를 획득하는 블록(840)으로 이어질 수 있다.In block 830 , the blockchain inquiry unit 352 may obtain data corresponding to the request and the requester's public key from the blockchain network in response to the user's approval of the sharing request in block 820 . . In some examples, the blockchain inquiry unit 352 may search for and receive encoded data registered in the blockchain based on the information of the data included in the sharing request, for example, the serial number of the data or the identifier of the data. . The encoded material may include symmetrically encoded material and asymmetrically encoded first symmetric key. In some examples, the blockchain inquiry unit 352 may also receive the requestor's public key from the blockchain network based on the requester ID of the requestor included in the sharing request, and the like. In some other examples, the requestor's public key may have already been included in the sharing request, and the request processing unit 310 may obtain the requestor's public key from the sharing request. Process 800 may continue from block 830 to block 840 of obtaining a first symmetric key and material based on the private key.

블록(840)에서, 비대칭 디코더(326)는 사용자의 개인키를 이용하여 비대칭 인코딩된 제1 대칭키를 디코딩하여 제1 대칭키를 획득할 수 있다. 대칭 디코더(336)는 제1 대칭키를 이용하여 대칭 인코딩된 자료를 디코딩하여 자료를 획득할 수 있다. 프로세스(800)는 블록(840)으로부터 제2 대칭키를 생성하는 블록(850)으로 이어질 수 있다.In block 840, the asymmetric decoder 326 may use the user's private key to decode the asymmetrically encoded first symmetric key to obtain the first symmetric key. The symmetric decoder 336 may obtain data by decoding the symmetrically encoded data using the first symmetric key. Process 800 may continue from block 840 to block 850 of generating a second symmetric key.

블록(850)에서, 대칭키 생성부(332)는 블록(840)에서의 자료의 획득에 응답하여, 제2 대칭키를 생성할 수 있다. 이러한 제2 대칭키는 미리 정해진 함수를 이용하여 랜덤하게 생성된 값일 수 있다. 프로세스(800)는 블록(850)으로부터 제2 대칭키를 이용하여 자료를 대칭 인코딩하는 블록(860)으로 이어질 수 있다. 블록(860)에서, 대칭 인코더(336)는 블록(850)에서 획득된 제2 대칭키를 이용하여 블록(840)에서 획득된 자료를 대칭 인코딩할 수 있다. 요청 처리부(310)가 사용자로부터 공유의 범위를 정하는 사용자 입력을 수신하는 일부 예시에서, 요청 처리부(310)는 자료를 처리하여, 예컨대, 일부가 공개된 자료를 생성할 수 있으며, 대칭 인코더(336)는 일부가 공개되도록 생성된 자료를 인코딩할 수 있다. 프로세스(800)는 블록(860)으로부터 요청자의 공개키를 이용하여 제2 대칭키를 비대칭 인코딩하는 블록(870)으로 이어질 수 있으며, 블록(870)에서, 비대칭 인코더(324)는 블록(830)에서 획득된 요청자의 공개키를 이용하여 블록(840) 에서 생성된 제2 대칭키를 비대칭 인코딩할 수 있다. 대칭키를 이용하여 자료를 대칭 인코딩하고 비교적 사이즈가 작은 대칭키를 비대칭 인코딩하므로, 자료를 비대칭 인코딩하는 경우에 비하여 인코딩/디코딩에 소요되는 시간이 짧아질 수 있다. 또한, 요청자의 공개키로부터 시작하여 자료가 인코딩되므로, 요청자의 개인키가 없는 제3자는 자료의 내용을 볼 수 없다. 프로세스(800)는 블록(870)으로부터 자료의 공유에 대한 제3 트랜잭션 데이터를 생성하는 블록(880)으로 이어질 수 있다.In block 850 , the symmetric key generator 332 may generate a second symmetric key in response to the acquisition of data in block 840 . The second symmetric key may be a value randomly generated using a predetermined function. Process 800 may continue from block 850 to block 860 of symmetrically encoding the material using the second symmetric key. At block 860 , the symmetric encoder 336 may symmetrically encode the data obtained at block 840 using the second symmetric key obtained at block 850 . In some instances where the request processing unit 310 receives user input delimiting the share from a user, the request processing unit 310 may process the material, eg, to produce a material that is in part public, and a symmetric encoder 336 . ) can encode the generated material so that some are made public. Process 800 may continue from block 860 to block 870 asymmetrically encode a second symmetric key using the requestor's public key, at block 870, asymmetric encoder 324 to block 830 The second symmetric key generated in block 840 may be asymmetrically encoded using the requestor's public key obtained in . Since data is symmetrically encoded using a symmetric key and a symmetric key having a relatively small size is asymmetrically encoded, the time required for encoding/decoding may be shorter than when data is asymmetrically encoded. In addition, since the data is encoded starting from the requestor's public key, a third party without the requester's private key cannot see the contents of the data. Process 800 may continue from block 870 to block 880 of generating third transactional data for the sharing of material.

블록(880)에서, 트랜잭션 데이터 생성부(354)는 자료의 공유에 대한 제3 트랜잭션 데이터를 생성할 수 있다. 제3 트랜잭션 데이터는 블록(860)에서 획득되는 대칭 인코딩된 자료 및 블록(870)에서 획득되는 비대칭 인코딩된 제2 대칭키를 적어도 포함한다. 일부 예시에서, 제3 트랜잭션 데이터는 자료의 일련 번호, 자료의 제목 등과 같이 자료를 식별할 수 있는 정보를 더 포함할 수 있다. 프로세스(800)는 블록(880)으로부터 제3 트랜잭션 데이터를 블록체인 네트워크에 전송하는 블록(890)으로 이어지며, 블록(890)에서, 트랜잭션 데이터 전송부(356)는 제3 트랜잭션 데이터를 블록체인 네트워크 내 노드 또는 노드와 통신하는 서버에 전송할 수 있다. 전송된 제3 트랜잭션 데이터는 결과적으로 블록체인 네트워크 내 노드에서 수신되며, 해당 노드는 제3 트랜잭션 데이터에 포함된 데이터를 블록 내 새로운 트랜잭션으로서 추가할 수 있다.In block 880, the transaction data generation unit 354 may generate third transaction data for data sharing. The third transaction data includes at least the symmetrically encoded material obtained at block 860 and the asymmetrically encoded second symmetric key obtained at block 870 . In some examples, the third transaction data may further include information for identifying the material, such as a serial number of the material, a title of the material, and the like. Process 800 continues from block 880 to block 890 transmitting the third transaction data to the blockchain network, at block 890, the transaction data transmitter 356 sends the third transaction data to the blockchain network. It can be sent to a node in the network or to a server that communicates with the node. The transmitted third transaction data is eventually received by a node in the blockchain network, and the node can add the data included in the third transaction data as a new transaction in the block.

도 9는 본 개시의 적어도 일부 실시예에 따라 데이터 접근 권한을 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품(900)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(910)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(900)의 신호 베어링 매체(910)는 컴퓨터 판독가능 매체(930) 및/또는 기록 가능 매체(940)를 포함할 수 있다.9 illustrates an example computer program product 900 that may be used to manage data access rights in accordance with at least some embodiments of the present disclosure. An exemplary embodiment of an exemplary computer program product is provided using a signal bearing medium 910 . In some embodiments, the signal bearing medium 910 of the one or more computer program products 900 may include a computer readable medium 930 and/or a recordable medium 940 .

신호 베어링 매체(910)에 포함된 명령어(920)는 사용자 장치(220), 요청자 장치(230) 및 데이터 접근 권한 관리 장치(300)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(920)가 실행되면, 컴퓨팅 장치로 하여금 사용자의 공개키에 기초하여 인코딩되고 블록체인 네트워크에 등록된 자료에 대한 요청자의 공유 요청을 승인하기 위한 하나 이상의 명령어; 승인에 응답하여, 블록체인 네트워크로부터 자료를 획득하기 위한 하나 이상의 명령어; 승인에 응답하여, 제1 대칭키를 생성하기 위한 하나 이상의 명령어; 제1 대칭키 및 요청자의 공개키를 이용하여, 인코딩된 자료를 포함하는 제1 트랜잭션 데이터를 생성하기 위한 하나 이상의 명령어; 및 생성된 제1 트랜잭션 데이터를 블록체인 네트워크에 전송하기 위한 하나 이상의 명령어 중 적어도 하나를 포함한다.Instructions 920 contained in signal bearing medium 910 may be executed by computing devices such as user device 220 , requestor device 230 , and data access right management device 300 . When the instruction 920 is executed, one or more instructions for causing the computing device to approve the requestor's sharing request for material encoded based on the user's public key and registered in the blockchain network; in response to the authorization, one or more instructions for obtaining material from the blockchain network; in response to the authorization, one or more instructions for generating a first symmetric key; one or more instructions for generating first transaction data including encoded material using the first symmetric key and the requestor's public key; and at least one of one or more instructions for transmitting the generated first transaction data to the blockchain network.

도 10는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치(1000)의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(1002)에서, 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1004) 및 시스템 메모리(1006)를 포함할 수 있다. 메모리 버스(1008)는 프로세서(1004) 및 시스템 메모리(1006) 사이에서 통신하기 위하여 이용될 수 있다.10 is a block diagram of an example embodiment of a computing device 1000 arranged in accordance with at least some embodiments of the present disclosure. In one exemplary basic configuration 1002 , computing device 1000 may include one or more processors 1004 and system memory 1006 . A memory bus 1008 may be used to communicate between the processor 1004 and the system memory 1006 .

요구되는 구성에 따라, 프로세서(1004)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(1004)는 레벨 1 캐시(1010), 레벨 2 캐시(1012)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(1014), 및 레지스터(1016)를 포함할 수 있다. 프로세서 코어(1014)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(1018)는 또한 프로세서(1004)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(1018)는 프로세서(1004)의 내적인 일부일 수 있다.Depending on the configuration required, the processor 1004 may be of any type including, but not limited to, a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The processor 1004 may include one or more levels of cache, such as a level 1 cache 1010 , a level 2 cache 1012 , a processor core 1014 , and a register 1016 . The processor core 1014 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. Memory controller 1018 may also be used with processor 1004 , or in some implementations memory controller 1018 may be an internal part of processor 1004 .

요구되는 구성에 따라, 시스템 메모리(1006)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(1006)는 운영 체제(1020), 하나 이상의 어플리케이션(application)(1022), 및 프로그램 데이터(1024)를 포함할 수 있다. 어플리케이션(1022)은 도 1의 사용자 장치(220) 및 요청자 장치(230) 및/또는 도 3의 데이터 접근 권한 관리 장치(300) 및/또는 도 4 내지 도 8의 프로세스에 관하여 기술된 기능 블록 및/또는 작용을 포함하여 여기에서 기술된 바와 같은 기능을 수행하도록 배열된 알고리즘(1026)을 포함할 수 있다. 프로그램 데이터(1024)는, 알고리즘 (1026)과 함께 이용하기 위한 데이터(1028), 예컨대, 정적 네트워크 환경 등에 해당하는 데이터를 포함할 수 있다. 일부 실시예에서, 어플리케이션(1022)은 최적의 전송 환경을 결정하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(1020) 상에서 프로그램 데이터(1024)로 동작하도록 배열될 수 있다. 예컨대, 시스템(200)은 컴퓨팅 장치(1000)의 전부 또는 일부를 포함할 수 있으며 최적의 전송 환경을 결정하는 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 어플리케이션(1022)의 전부 또는 일부를 수행하는 것이 가능할 수 있다. 이러한 기술된 기본적인 구성은 도 10에서 파선(1002) 내의 그 구성요소들에 의해 도시된다.Depending on the configuration required, system memory 1006 can be of any type including, but not limited to, volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. does not System memory 1006 may include an operating system 1020 , one or more applications 1022 , and program data 1024 . The application 1022 includes the functional blocks described with respect to the user device 220 and the requestor device 230 of FIG. 1 and/or the data access right management device 300 of FIG. 3 and/or the process of FIGS. 4 to 8 and and/or algorithms 1026 arranged to perform functions as described herein, including actions. The program data 1024 may include data 1028 for use with the algorithm 1026 , eg, data corresponding to a static network environment, or the like. In some embodiments, application 1022 may be arranged to operate with program data 1024 on operating system 1020 such that an implementation for determining an optimal transfer environment may be provided as described herein. For example, system 200 may include all or part of computing device 1000 and perform all or part of application 1022 such that an implementation that determines an optimal transmission environment may be provided as described herein. it may be possible to This described basic configuration is illustrated by its components within dashed line 1002 in FIG. 10 .

컴퓨팅 장치(1000)는 기본적인 구성(1002) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(1030)는 저장부 인터페이스 버스(1034)를 통한 기본적인 구성(1002) 및 하나 이상의 데이터 저장 장치(1032) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(1032)는 이동식 저장 장치(1036), 고정식 저장 장치(1038), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.Computing device 1000 may have additional features or functionality, and additional interfaces, to facilitate communication between basic configuration 1002 and any desired devices and interfaces. For example, bus/interface controller 1030 may be used to facilitate communication between basic configuration 1002 and one or more data storage devices 1032 over storage interface bus 1034 . The data storage device 1032 may be a removable storage device 1036 , a fixed storage device 1038 , or a combination thereof. Magnetic disk devices such as flexible disk drives and hard disk drives (HDDs), compact disk (CD) drives, or digital versatile disk (DVD) drives, to name a few examples of removable and fixed storage devices. such as optical disk drives, solid state drives (SSDs), and tape drives. Exemplary computer storage media includes volatile and nonvolatile removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. can do.

시스템 메모리(1006), 이동식 저장 장치(1036) 및 고정식 저장 장치(1038)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(1000)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(1000)의 일부일 수 있다.System memory 1006 , removable storage 1036 , and non-removable storage 1038 are all examples of computer storage media. Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or including, but not limited to, any other medium that may be used to store the required information and that may be accessed by the computing device 1000 . Any such computer storage media may be part of computing device 1000 .

컴퓨팅 장치(1000)는 또한 버스/인터페이스 컨트롤러(1042)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(1002)으로의 통신을 용이하게 하기 위한 인터페이스 버스(1042)를 포함할 수 있다. 예시적인 출력 장치(1042)는 그래픽 처리 유닛(1048) 및 오디오 처리 유닛(1050)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(1052)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(1044)는 직렬 인터페이스 컨트롤러(1054) 또는 병렬 인터페이스 컨트롤러(1056)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(658)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(1046)는 네트워크 컨트롤러(1060)를 포함하며, 이는 하나 이상의 통신 포트(1064)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(1062)와의 통신을 용이하게 하도록 배열될 수 있다.The computing device 1000 also provides an interface bus 1042 for facilitating communication from various interface devices (eg, output interfaces, peripheral interfaces, and communication interfaces) to the basic configuration 1002 via the bus/interface controller 1042 . ) may be included. The exemplary output device 1042 may include a graphics processing unit 1048 and an audio processing unit 1050 , which communicate via one or more A/V ports 1052 to various external devices, such as displays or speakers. can be configured. Exemplary peripheral interface 1044 may include serial interface controller 1054 or parallel interface controller 1056 , which may include input devices (eg, keyboard, mouse, pen, It may be configured to communicate with an external device, such as a voice input device, a touch input device, etc.) or other peripheral device (eg, a printer, scanner, etc.). The exemplary communication device 1046 includes a network controller 1060 , which may be arranged to facilitate communication with one or more other computing devices 1062 over network communications via one or more communication ports 1064 .

컴퓨팅 장치(1000)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(1000)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.Computing device 1000 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations. Additionally, computing device 1000 may be implemented as part of a wireless base station or other wireless system or device.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.The above description of the present application is for illustration, and those of ordinary skill in the art to which the present application pertains will understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and likewise components described as distributed may also be implemented in a combined form.

이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴 보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.Above, the object to be claimed in the present disclosure has been specifically examined. The claimed subject matter in this disclosure is not limited in scope to the specific embodiments described above. For example, in some implementations it may be in the form of hardware used operably on a device or combination of devices, in other implementations it may be implemented in the form of software and/or firmware, and in still other implementations it may be in the form of a signal bearing medium; may include one or more articles, such as storage media. Here, a storage medium such as a CD-ROM, a computer disk, a flash memory, etc. is, for example, instructions that, when executed by a computing device such as a computing system, computing platform, or other system, may cause the processor to execute according to the embodiments described above. can be saved. Such computing devices may include one or more processing units or processors, one or more input/output devices such as a display, keyboard and/or mouse, and one or more memory such as static random access memory, dynamic random access memory, flash memory and/or hard drives. may include.

전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다. In the foregoing detailed description, various embodiments of apparatus and/or processes have been described by way of block diagrams, flow diagrams, and/or other examples. Such block diagrams, flow diagrams, and/or other examples will include one or more functions and/or operations, and those skilled in the art will recognize that each function and/or operation within the block diagrams, flow diagrams, and/or other examples may be implemented in hardware, software, firmware, Or it will be understood that they may be implemented individually or collectively by any combination thereof. In one embodiment, some portions of the subject matter described in the present disclosure may be implemented through an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), or other form of integration. In contrast, some aspects of embodiments of the present disclosure include one or more computer programs running on one or more computers (eg, one or more programs running on one or more computer systems), one or more programs running on one or more processors ( writing code for software and/or firmware, which may be equally implemented in whole or in part as, for example, one or more programs running on one or more microprocessors), firmware, or substantially any combination thereof; and/or the design of the circuit is within the skill of those skilled in the art in light of the present disclosure. In addition, those skilled in the art will understand that the mechanisms of the subject matter of this disclosure may be distributed in various forms of program products, and the examples of the subject matter of this disclosure apply irrespective of the particular type of signal bearing medium used to actually perform the distribution. will understand

특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.While specific exemplary techniques have been described and illustrated herein using various methods and systems, those skilled in the art will understand the possibility of various other modifications or equivalents permutations without departing from the claimed subject matter. Additionally, many modifications may be made to adapt a particular situation to the teachings of the claimed subject matter without departing from the central concepts described herein. Accordingly, it is intended that claimed subject matter not be limited to the specific examples disclosed, but that such claimed subject matter may also include all embodiments falling within the scope of the appended claims and their equivalents.

본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims, and their equivalents should be construed as being included in the scope of the present application. do.

Claims (11)

사용자의 컴퓨팅 장치에서 수행되는, 데이터 접근 권한 관리 방법으로서,
상기 사용자의 공개키에 기초하여 인코딩되고 블록체인 네트워크에 등록된 자료에 대한 요청자의 공유 요청을 승인하는 승인 단계;
상기 승인 단계에 응답하여, 상기 블록체인 네트워크로부터 자료를 획득하는 데이터 복구 단계;
상기 승인 단계에 응답하여, 제1 대칭키를 생성하는 제1 대칭키 생성 단계;
상기 제1 대칭키 및 상기 요청자의 공개키를 이용하여, 인코딩된 상기 자료를 포함하는 제1 트랜잭션 데이터를 생성하는 제1 트랜잭션 데이터 생성 단계; 및
상기 생성된 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 공유 데이터 등록 단계
를 포함하는 데이터 접근 권한 관리 방법.
A method for managing data access rights, performed on a user's computing device, comprising:
an approval step of approving the requester's sharing request for the data encoded on the basis of the user's public key and registered in the blockchain network;
a data recovery step of obtaining data from the blockchain network in response to the approval step;
a first symmetric key generation step of generating a first symmetric key in response to the approval step;
a first transaction data generating step of generating first transaction data including the encoded data by using the first symmetric key and the requestor's public key; and
Shared data registration step of transmitting the generated first transaction data to the blockchain network
A method for managing data access rights, including
제1항에 있어서,
상기 승인 단계 이전에, 상기 블록체인 네트워크에 접속하여, 상기 사용자의 공개키 및 개인키를 획득하는 비대칭키 획득 단계
를 더 포함하는 데이터 접근 권한 관리 방법.
According to claim 1,
Before the approval step, an asymmetric key acquisition step of accessing the block chain network to obtain the user's public key and private key
A method for managing data access rights further comprising a.
제2항에 있어서,
상기 비대칭키 획득 단계는
사용자 식별자(ID) 및 패스워드를 이용하여 블록체인 네트워크에 접속하는 단계;
상기 접속에 응답하여, 인코딩된 개인키 및 상기 사용자의 공개키를 수신하는 단계; 및
상기 패스워드를 이용하여 상기 인코딩된 개인키로부터 상기 사용자의 개인키를 획득하는 단계를 포함하는, 데이터 접근 권한 관리 방법.
3. The method of claim 2,
The asymmetric key acquisition step is
accessing the blockchain network using a user identifier (ID) and password;
in response to the connection, receiving an encoded private key and a public key of the user; and
and obtaining the user's private key from the encoded private key using the password.
제2항에 있어서,
상기 비대칭키 획득 단계 이전에, 상기 사용자에 대한 정보를 상기 블록체인 네트워크에 등록하는 사용자 등록 단계
를 더 포함하고, 상기 사용자 등록 단계는
상기 사용자로부터 사용자 식별자(ID) 및 패스워드를 포함하는 사용자 등록 정보를 입력받는 단계;
상기 사용자 등록 정보를 입력받는 단계에 응답하여, 상기 사용자의 상기 공개키 및 상기 개인키를 생성하는 단계;
상기 패스워드를 이용하여 상기 개인키를 대칭 인코딩하는 단계;
해시함수를 이용하여 상기 패스워드를 해싱된 패스워드로 변환하는 단계;
상기 사용자 ID, 상기 공개키, 상기 인코딩된 개인키 및 상기 해싱된 패스워드를 포함하는 제2 트랜잭션 데이터를 생성하는 단계; 및
상기 제2 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 단계를 포함하는 것인, 데이터 접근 권한 관리 방법.
3. The method of claim 2,
Before the asymmetric key acquisition step, a user registration step of registering information about the user in the block chain network
Further comprising, the user registration step
receiving user registration information including a user identifier (ID) and a password from the user;
generating the public key and the private key of the user in response to receiving the user registration information;
symmetrically encoding the private key using the password;
converting the password into a hashed password using a hash function;
generating second transaction data including the user ID, the public key, the encoded private key, and the hashed password; and
Transmitting the second transaction data to the blockchain network, data access rights management method comprising the step of.
제1항 또는 제2항에 있어서,
상기 승인 단계 이전에, 상기 자료를 상기 블록체인 네트워크에 등록하는 데이터 등록 단계
를 더 포함하고, 상기 데이터 등록 단계는
상기 사용자로부터 상기 자료를 입력받는 단계;
상기 입력받는 단계에 응답하여, 제2 대칭키를 생성하는 단계;
상기 제2 대칭키를 이용하여 상기 자료를 대칭 인코딩하는 단계;
상기 사용자의 공개키를 이용하여 상기 제2 대칭키를 비대칭 인코딩하는 단계;
상기 대칭 인코딩된 자료 및 상기 비대칭 인코딩된 제2 대칭키를 포함하는 제3 트랜잭션 데이터를 생성하는 단계; 및
상기 생성된 제3 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 단계를 포함하는, 데이터 접근 권한 관리 방법.
3. The method of claim 1 or 2,
Before the approval step, a data registration step of registering the data in the blockchain network
Further comprising, the data registration step
receiving the data from the user;
generating a second symmetric key in response to the receiving of the input;
symmetrically encoding the data using the second symmetric key;
asymmetrically encoding the second symmetric key using the user's public key;
generating third transaction data including the symmetrically encoded material and the asymmetrically encoded second symmetric key; and
Data access authority management method comprising the step of transmitting the generated third transaction data to the blockchain network.
제1항 또는 제2항에 있어서,
상기 데이터 복구 단계는,
상기 블록체인 네트워크로부터 대칭 인코딩된 자료 및 비대칭 인코딩된 제1 대칭키를 수신하는 단계; 및
상기 사용자의 개인키를 이용하여, 상기 비대칭 인코딩된 제1 대칭키를 디코딩하여 제1 대칭키를 획득하는 단계; 및
상기 제1 대칭키를 이용하여, 상기 대칭 인코딩된 자료를 디코딩하여 자료를 획득하는 단계를 포함하는, 데이터 접근 권한 관리 방법.
3. The method of claim 1 or 2,
The data recovery step is
receiving symmetrically encoded data and asymmetrically encoded first symmetric key from the blockchain network; and
using the user's private key to decode the asymmetrically encoded first symmetric key to obtain a first symmetric key; and
Using the first symmetric key, decoding the symmetrically encoded data to obtain data, data access right management method.
제1항 또는 제2항에 있어서,
상기 제1 트랜잭션 데이터 생성 단계는,
상기 제1 대칭키를 이용하여, 상기 데이터 복구 단계에서 획득된 상기 자료를 대칭 인코딩하는 단계;
상기 요청자의 공개키를 이용하여 상기 제1 대칭키를 비대칭 인코딩하는 단계; 및
상기 요청자에 관한 정보, 상기 제1 대칭키를 이용하여 대칭 인코딩된 자료 및 상기 비대칭 인코딩된 제1 대칭키를 포함하여 상기 제1 트랜잭션 데이터를 생성하는 단계를 포함하는, 데이터 접근 권한 관리 방법.
3. The method of claim 1 or 2,
The first transaction data generation step includes:
symmetrically encoding the data obtained in the data recovery step by using the first symmetric key;
asymmetrically encoding the first symmetric key using the requestor's public key; and
and generating the first transaction data including information about the requestor, symmetrically encoded data using the first symmetric key, and the asymmetrically encoded first symmetric key.
데이터 접근 권한 관리 장치로서,
블록체인 네트워크에 접속하고, 블록체인에 저장된 트랜잭션 데이터를 검색하고, 트랜잭션 데이터를 생성하고 전송하도록 구성되는 통신부;
대칭 인코딩, 대칭 디코딩, 비대칭 인코딩 및 비대칭 디코딩을 수행하도록 구성되는 코딩부; 및
상기 통신부 및 상기 코딩부에 연결되고 사용자 입력을 수신하도록 구성되는 요청 처리부
를 포함하고,
상기 코딩부는 제1 대칭키를 생성하고, 상기 제1 대칭키 및 상기 사용자의 공개키에 기초하여 자료를 인코딩하도록 구성되고 상기 통신부는 인코딩된 자료를 포함하는 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 등록하도록 구성되고,
상기 통신부가 상기 제1 트랜잭션 데이터에 포함된 상기 자료에 대한 요청자의 공유 요청을 수신하고, 상기 요청 처리부가, 상기 사용자로부터, 상기 요청자의 공유 요청을 승인하는 사용자 입력을 수신하는 경우,
상기 통신부는 상기 블록체인 네트워크로부터 상기 인코딩된 자료를 수신하고;
상기 코딩부는 상기 인코딩된 자료로부터 자료를 획득하고, 제2 대칭키를 생성하고, 상기 제2 대칭키 및 상기 요청자의 공개키를 이용하여 상기 자료를 인코딩하며; 그리고
상기 통신부는 상기 제2 대칭키 및 상기 요청자의 공개키를 이용하여 상기 인코딩된 자료를 포함하는 제2 트랜잭션 데이터를 생성하고 생성된 상기 제2 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 것인, 데이터 접근 권한 관리 장치.
A data access right management device, comprising:
a communication unit configured to access the blockchain network, retrieve transaction data stored in the blockchain, and generate and transmit transaction data;
a coding unit configured to perform symmetric encoding, symmetric decoding, asymmetric encoding, and asymmetric decoding; and
a request processing unit coupled to the communication unit and the coding unit and configured to receive a user input
including,
The coding unit is configured to generate a first symmetric key, encode data based on the first symmetric key and the user's public key, and the communication unit transmits first transaction data including the encoded data to the blockchain network. configured to register,
When the communication unit receives a request for sharing of the data included in the first transaction data, and the request processing unit receives, from the user, a user input for approving the share request of the requester,
the communication unit receives the encoded data from the blockchain network;
the coding unit obtains data from the encoded data, generates a second symmetric key, and encodes the data using the second symmetric key and the requestor's public key; and
The communication unit generates second transaction data including the encoded data by using the second symmetric key and the requestor's public key and transmits the generated second transaction data to the blockchain network. Access rights management device.
제8항에 있어서,
상기 요청 처리부가 상기 사용자로부터 사용자 식별자(ID) 및 패스워드를 수신하는 경우,
상기 통신부는 상기 사용자 ID 및 상기 패스워드를 이용하여 상기 블록체인 네트워크에 접속하고, 상기 접속에 응답하여, 상기 블록체인 네트워크로부터 인코딩된 개인키 및 상기 사용자의 공개키를 수신하고,
상기 코딩부는 상기 패스워드를 이용하여 상기 인코딩된 개인키로부터 상기 사용자의 개인키를 획득하는 것인, 데이터 접근 권한 관리 장치.
9. The method of claim 8,
When the request processing unit receives a user identifier (ID) and password from the user,
The communication unit connects to the blockchain network using the user ID and the password, and in response to the connection, receives the encoded private key and the public key of the user from the blockchain network,
The coding unit to obtain the user's private key from the encoded private key by using the password, data access rights management device.
제8항 또는 제9항에 있어서,
상기 제1 트랜잭션 데이터의 생성에서,
상기 요청 처리부는 상기 사용자로부터 상기 자료를 입력 받고,
상기 코딩부는 상기 요청 처리부에 의한 상기 자료의 수신에 응답하여, 상기 제1 대칭키를 생성하고; 상기 제1 대칭키를 이용하여 상기 자료를 대칭 인코딩하며; 그리고 상기 사용자의 공개키를 이용하여 상기 제1 대칭키를 비대칭 인코딩하고,
상기 통신부는 대칭 인코딩된 자료 및 상기 비대칭 인코딩된 제1 대칭키를 포함하는 상기 제1 트랜잭션 데이터를 생성하는 것인, 데이터 접근 권한 관리 장치.
10. The method according to claim 8 or 9,
In generating the first transaction data,
The request processing unit receives the data from the user,
the coding unit generates the first symmetric key in response to the reception of the data by the request processing unit; symmetrically encode the data using the first symmetric key; and asymmetrically encode the first symmetric key using the user's public key,
The communication unit will generate the first transaction data including the symmetrically encoded data and the asymmetrically encoded first symmetric key, data access rights management device.
데이터 접근 권한 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 데이터 접근 권한 관리 프로그램은 컴퓨팅 장치에 의하여 실행되는 경우,
사용자의 공개키에 기초하여 인코딩되고 블록체인 네트워크에 등록된 자료에 대한 요청자의 공유 요청을 승인하는 승인 동작;
상기 승인 동작에 응답하여, 상기 블록체인 네트워크로부터 자료를 획득하는 데이터 복구 동작;
상기 승인 동작에 응답하여, 제1 대칭키를 생성하는 제1 대칭키 생성 동작;
상기 제1 대칭키 및 상기 요청자의 공개키를 이용하여, 인코딩된 상기 자료를 포함하는 제1 트랜잭션 데이터를 생성하는 제1 트랜잭션 데이터 생성 동작; 및
상기 생성된 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 전송하는 공유 데이터 등록 동작
을 수행하도록 하는 하나 이상의 명령어를 포함하는 것인, 컴퓨터 판독가능 저장 매체.
A computer-readable storage medium storing a data access right management program, comprising:
When the data access right management program is executed by a computing device,
an approval operation of approving the requestor's sharing request for data encoded based on the user's public key and registered in the blockchain network;
a data recovery operation for obtaining data from the blockchain network in response to the approval operation;
a first symmetric key generation operation of generating a first symmetric key in response to the approval operation;
a first transaction data generating operation of generating first transaction data including the encoded data by using the first symmetric key and the requestor's public key; and
Shared data registration operation for transmitting the generated first transaction data to the blockchain network
A computer-readable storage medium comprising one or more instructions for performing
KR1020200055042A 2020-05-08 2020-05-08 Device, method, system and computer readable storage medium for managing access authority of data using blockchain KR20210136589A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200055042A KR20210136589A (en) 2020-05-08 2020-05-08 Device, method, system and computer readable storage medium for managing access authority of data using blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200055042A KR20210136589A (en) 2020-05-08 2020-05-08 Device, method, system and computer readable storage medium for managing access authority of data using blockchain

Publications (1)

Publication Number Publication Date
KR20210136589A true KR20210136589A (en) 2021-11-17

Family

ID=78702450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200055042A KR20210136589A (en) 2020-05-08 2020-05-08 Device, method, system and computer readable storage medium for managing access authority of data using blockchain

Country Status (1)

Country Link
KR (1) KR20210136589A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500458B1 (en) * 2022-03-18 2023-02-16 주식회사 빅스터 Method for providing digital asset market service using NFT technology based on consortium blockchain network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500458B1 (en) * 2022-03-18 2023-02-16 주식회사 빅스터 Method for providing digital asset market service using NFT technology based on consortium blockchain network

Similar Documents

Publication Publication Date Title
KR20210092802A (en) Systems and methods for efficient and secure processing, access and transmission of data via blockchain networks
CN109691057B (en) Interchangeably retrieving sensitive content via a private content distribution network
US11025610B2 (en) Distributed ledger-based profile verification
JP5480135B2 (en) Creation and verification of cryptographically protected documents
WO2020055926A2 (en) Establishing provenance of digital assets using blockchain system
AU2012240481B2 (en) Method and system to confirm ownership of digital goods
TW201729121A (en) Cloud service server and method for managing cloud service server
US11588635B2 (en) Strong resource identity in a cloud hosted system
US11386232B2 (en) Distributed data management and verification
EP4208808A1 (en) Privacy preserving machine learning using secure multi-party computation
Sangeetha et al. Multi keyword searchable attribute based encryption for efficient retrieval of health Records in Cloud
CN113315746A (en) System and method for anonymously transmitting data from a user device to a recipient device
JP7319380B2 (en) Protect browser cookies
KR20210136589A (en) Device, method, system and computer readable storage medium for managing access authority of data using blockchain
KR102375144B1 (en) Device, method, system and computer readable storage medium for managing private key using blockchain
CN115599959A (en) Data sharing method, device, equipment and storage medium
US11727108B2 (en) Systems and methods for providing secure passwords
US20230299968A1 (en) Authentication of process execution in virtual environments
CN117136527A (en) Improved method and system for signature verification in a blockchain implemented data application
Xie et al. Query and Verification of Encrypted Data Based on Blockchain in Multi-user Scenario
WO2024003778A1 (en) Improving online community and privacy for non fungible token (nft) token holders
CN117121434A (en) Hash function for blockchain implementation
AUGUSTINE et al. Review on Multi-User Multi-Keyword Privacy Preserving Ranked Based Search Over Encrypted Cloud Data

Legal Events

Date Code Title Description
E601 Decision to refuse application