Nothing Special   »   [go: up one dir, main page]

KR102025409B1 - Data access management system based on blockchain and method thereof - Google Patents

Data access management system based on blockchain and method thereof Download PDF

Info

Publication number
KR102025409B1
KR102025409B1 KR1020170096783A KR20170096783A KR102025409B1 KR 102025409 B1 KR102025409 B1 KR 102025409B1 KR 1020170096783 A KR1020170096783 A KR 1020170096783A KR 20170096783 A KR20170096783 A KR 20170096783A KR 102025409 B1 KR102025409 B1 KR 102025409B1
Authority
KR
South Korea
Prior art keywords
data
blockchain
user
access
owner
Prior art date
Application number
KR1020170096783A
Other languages
Korean (ko)
Other versions
KR20190012969A (en
Inventor
장주욱
정문용
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020170096783A priority Critical patent/KR102025409B1/en
Publication of KR20190012969A publication Critical patent/KR20190012969A/en
Application granted granted Critical
Publication of KR102025409B1 publication Critical patent/KR102025409B1/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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 데이터 접근 관리 시스템은 블록 체인을 기반으로 한 사용자 컨텍스트를 생성, 저장 및 관리하고, 데이터 접근 권한 부여를 위하여 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리를 생성하고, 액세스 트리를 이용하여 데이터 암호문을 생성하고 데이터 요청자의 사용자 컨텍스트를 이용하여 비밀키를 생성하여 데이터 요청자에게 데이터 암호문과 비밀키를 전송하여 복호화할 수 있도록 함으로써, 보안성이 우수한 데이터 접근 관리 시스템을 제공하는 것을 특징으로 한다. The data access management system according to the present invention creates, stores, and manages a user context based on a blockchain, creates an access tree using a user context of a data owner to grant data access rights, and uses data to access the data. By generating a cipher text and generating a secret key using the data requestor's user context, the data cipher text and the secret key can be transmitted and decrypted to the data requestor, thereby providing a highly secure data access management system.

Description

블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법{Data access management system based on blockchain and method thereof}Data access management system based on blockchain and method according to blockchain

본 발명은 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법에 관한 것으로서, 더욱 구체적으로는 블록체인을 활용한 사용자 컨텍스트를 이용하여, 데이터 소유자의 데이터에 접근할 수 있도록 하는 접근 권한을 각 사용자에게 유동적으로 부여할 수 있도록 하는 데이터 접근 관리 시스템 및 데이터 접근 관리 방법에 관한 것이다. The present invention relates to a data access management system and a data access management method based on a block chain, and more particularly, an access right for accessing data of a data owner using a user context using a block chain. The present invention relates to a data access management system and a data access management method that can be flexibly assigned to each user.

블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.Block chain, also known as public trading ledger, is a technology that prevents hacking that can occur when trading in virtual currency. Traditional financial firms keep transaction records on a centralized server, while blockchain sends transaction details to all users participating in a transaction and checks each transaction for counterfeiting. Blockchain is applied to Bitcoin, a representative online virtual currency. Bitcoin records transaction details transparently in a book that anyone can read, and several computers using Bitcoin verify this record every 10 minutes to prevent hacking.

한편, 종래의 일반적인 파일 공유 시스템은 중앙 집중형 서버를 이용한 클라우드 storage 에 데이터 또는 파일들을 저장 및 관리하며, 사용자들이 클라우드 storage 에 접속하여 데이터 또는 파일을 요청하거나 검색하게 된다. 이 경우 대용량 저장 장치가 요구될 뿐만 아니라, 이들을 관리하기 위한 중앙 집중형 서버가 요구되므로, 시스템 설계 및 유지가 복잡해지는 문제점이 발생한다. Meanwhile, a conventional file sharing system stores and manages data or files in a cloud storage using a centralized server, and users access or request data or files by accessing the cloud storage. In this case, not only mass storage devices are required, but a centralized server for managing them is required, resulting in a complicated system design and maintenance.

또한, 사물인터넷(Internet of Things :'IoT')을 구성하는 다수 개의 노드들이 각각 생성한 데이터들에 대해 각 사용자들이 접근할 수 있는 권한을 유동적으로 부여하기 위하여 다양한 방법들이 시도되고 있다. 이 경우에도, 각 노드에 데이터의 분산 저장이 용이하지 아니할 뿐만 아니라, 각 노드에 저장된 데이터들에 대하여 보안성을 제공하면서 다른 사용자들에 대한 검색 서비스를 제공하기가 용이하지 않은 문제점이 발생한다. In addition, various methods have been attempted to flexibly grant each user access to data generated by a plurality of nodes constituting the Internet of Things ('IoT'). Even in this case, not only distributed storage of data in each node is not easy, but also a problem arises that it is not easy to provide a search service for other users while providing security for data stored in each node.

이에, 본 출원인은 블록체인을 기반으로 한 사용자 컨텍스트를 이용하여 데이터 소유자의 노드들에 저장된 데이터에 접근할 수 있도록 하는 접근 권한을 사용자에 따라 유동적으로 제공할 수 있도록 하여, 보안성과 데이터 무결성을 보장할 수 있는 데이터 접근 관리 시스템을 제안하고자 한다. Accordingly, the present applicant can flexibly provide access rights according to the user to access data stored in the nodes of the data owner using a user context based on the blockchain, thereby ensuring security and data integrity. We would like to propose a data access management system.

한국공개특허공보 제10-2016-0050876호Korean Patent Publication No. 10-2016-0050876 한국등록특허공보 제 10-1727525호Korean Patent Publication No. 10-1727525

전술한 문제점을 해결하기 위한 본 발명의 목적은 블록체인을 기반으로 한 사용자 컨텍스트를 이용하여 데이터 소유자의 노드들에 저장된 데이터에 접근할 수 있도록 하는 접근 권한을 사용자에 따라 유동적으로 제공할 수 있도록 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템을 제공하는 것이다. An object of the present invention to solve the above-mentioned problem is to provide a user with a flexible access authority to access the data stored in the nodes of the data owner using a blockchain-based user context It is to provide a data access management system based on blockchain.

본 발명의 다른 목적은 전술한 블록체인을 기반으로 한 데이터 접근 관리 시스템에서 사용될 수 있는 데이터 접근 관리 방법을 제공하는 것이다. Another object of the present invention is to provide a data access management method that can be used in the data access management system based on the aforementioned blockchain.

전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 시스템에 있어서, In the data access management system for a plurality of user nodes participating in the blockchain according to the first aspect of the present invention for achieving the above technical problem,

상기 사용자 노드들의 각각은, 일련의 블록들이 연결되어 구성되는 블록 체인; 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 컨텍스트 매니저; 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 주소 매니저; 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 접근 권한 부여 매니저; 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 데이터 검색 매니저; 를 구비한다. Each of the user nodes comprises: a block chain in which a series of blocks are connected and configured; A context manager for generating user context information for a user node and storing and managing the user context information using the blockchain; An address manager for storing and managing data names for the data and address information of the data owner for the data using the blockchain when storing data generated by the data owner among user nodes in a preset shared directory; An access authorization manager for generating a data cipher text and a secret key encrypting the requested data from the data requester among the user nodes, and transmitting the generated data cipher text and the secret key to the data requester; Searching for data names stored and managed in the blockchain, extracting address information for the data owner stored with the retrieved data name from the blockchain, and using the address information for the extracted data owner in the retrieved data name. A data retrieval manager for requesting corresponding data; It is provided.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저는, 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고, 상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고, 상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것이 바람직하며,In the blockchain-based data access management system according to the first aspect, the access authorization manager uses a user context for a data owner when a data request corresponding to an arbitrary data name is generated from the data requestor. Encrypting the requested data to generate a data cipher text, extracting a user context for the data requestor from the blockchain, generating a secret key using the extracted user context for the data requestor, and generating the data Preferably, a cipher text and the secret key are transmitted to the data requester.

상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것이 더욱 바람직하다. It is more preferable to generate an access tree for granting data access authority using the user context for the data owner, and to encrypt the requested data using the access tree to generate a data cipher text.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저는, 상기 액세스 트리는 상기 데이터 소유자에 대한 사용자 컨텍스트를 리프 노드(leaf-node)로 하는 트리 구조로 구성된 것을 특징으로 하며, In the blockchain-based data access management system according to the first aspect, the access authorization manager, wherein the access tree is configured in a tree structure in which the user context for the data owner is a leaf node. Features,

상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하면 비밀키를 이용하여 데이터 암호문을 해독할 수 있고, 상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하지 못하면 비밀키를 이용하여 데이터 암호문을 해독할 수 없도록, 상기 액세스 트리의 조건을 구성한 것이 바람직하다. If the user context for the data requestor satisfies the condition of the access tree, the data ciphertext can be decrypted using the secret key. If the user context for the data requester does not satisfy the condition of the access tree, the secret key is used. It is preferable to configure the conditions of the access tree so that the data cipher text cannot be decrypted.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고, In the blockchain-based data access management system according to the first aspect, if the address manager stores data generated by the data owner in a preset shared directory, the data name for the data and the address of the data owner are stored. Extract the information, create a transaction, and send it to all user nodes participating in the blockchain.

상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것이 바람직하다. The transaction is preferably stored and managed as a block of the blockchain through the Proof-of-Work process of the user nodes participating in the blockchain.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고, 상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것이 바람직하다. In the blockchain-based data access management system according to the first aspect, the address manager includes a status flag in a data name for the data, and the current flag of the data corresponding to the data name in the status flag. It is desirable to record the information.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 주소 매니저는, 상기 데이터 소유자의 IP 주소 및 TCP port number를 상기 데이터 소유자의 주소 정보로서 추출하는 것이 바람직하다. In the blockchain-based data access management system according to the first aspect, the address manager preferably extracts the IP address and TCP port number of the data owner as address information of the data owner.

제1 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 시스템에 있어서, 상기 컨텍스트 매니저는, 각 사용자 노드들의 사용자에 대한 컨텍스트 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고, 상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것이 바람직하다. In the blockchain-based data access management system according to the first aspect, the context manager extracts context information about a user of each user node, generates a transaction, and transmits it to all user nodes participating in the blockchain. In addition, the transaction is preferably stored and managed as a block of the blockchain through the Proof-of-Work process of the user nodes participating in the blockchain.

본 발명의 제2 특징에 따른 블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 방법은, (a) 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 단계; (b) 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 단계; (c) 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 단계; (d) 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 단계; 를 구비한다. Data access management method for a plurality of user nodes participating in the blockchain according to the second aspect of the present invention, (a) generating user context information for the user node, using the blockchain, the user context Storing and managing information; (b) storing data generated by a data owner among user nodes in a preset shared directory, and storing and managing a data name for the data and address information of the data owner for the data using the blockchain; step; (c) when a data request corresponding to an arbitrary data name is generated from a data requester among user nodes, generating and transmitting a data cipher text and a secret key encrypting the requested data to the data requester; (d) searching for data names stored and managed in the blockchain, extracting address information for the data owner stored with the retrieved data name from the blockchain, and using the retrieved data information for the owner of the extracted data; Requesting data corresponding to the data name; It is provided.

제2 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 방법에 있어서, 상기 (c) 단계는, 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하는 단계, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 단계, 상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하는 단계, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하는 단계, 상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 단계를 구비하는 것이 바람직하다. In the blockchain-based data access management method according to the second aspect, in the step (c), if a data request corresponding to an arbitrary data name is generated from the data requester, the user context for the data owner is used. Generating an access tree for granting data access rights; encrypting the requested data using the access tree to generate a data cipher text; extracting a user context for the data requestor from the blockchain; And generating a secret key using the extracted user context for the data requestor, and transmitting the generated data cipher text and the secret key to the data requestor.

제2 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 방법에 있어서, 상기 (b) 단계는, 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하는 단계, 상기 생성된 트랜잭션을 전자서명한 후 블록체인에 참여하는 모든 사용자 노드들에게 전송하는 단계, 상기 트랜잭션을 수신한 사용자 노드들이 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리하는 단계;를 구비하는 것이 바람직하다. In the blockchain-based data access management method according to the second aspect, in the step (b), if the data generated by the data owner is stored in a preset shared directory, the data name for the data and the data owner Generating a transaction by extracting the address information of the user, transmitting the generated transaction to all user nodes participating in the blockchain, and receiving the transaction from the user nodes receiving the transaction. And storing and managing the block in the blockchain.

본 발명에 따른 데이터 접근 관리 시스템은, 블록체인 네트워크에 참여한 모든 사용자의 컨텍스트를 블록에 기록하고, 데이터 소유자가 지정한 폴더 내에 생성한 데이터의 명칭을 자신의 IP와 함께 블록체인에 저장하며, 블록체인에 참여한 사용자가 데이터 명칭 검색을 통해 데이터 소유자를 확인할 수 있으며 이를 토대로 하여 데이터를 요청하고, 데이터 소유자는 블록체인에서 추출한 데이터 요청자에 대한 사용자 컨텍스트를 자신이 설정한 액세스 트리에 대입하여 생성한 데이터 암호문과 비밀키를 전송하며, 데이터 요청자가 데이터 소유자에 의해 설정된 액세스 트리에 적합할 경우 데이터 암호문을 복호화시킬 수 있게 되고, 그렇지 아니한 경우 데이터 암호문을 복호화시킬 수 없도록 함으로써, 데이터 소유자는 자신이 생성한 데이터의 접근 권한을 데이터 요청자에 따라 유동적으로 설정할 수 있게 된다. The data access management system according to the present invention records the context of all users participating in the blockchain network in a block, stores the name of data created in a folder designated by the data owner, along with its IP, in the blockchain, Users who participate in can identify the data owner by searching the data name and request data based on this, and the data owner creates the data ciphertext by assigning the user context for the data requestor extracted from the blockchain to the access tree set by the user. The data owner can decrypt the data ciphertext if the data requester fits the access tree established by the data owner, otherwise the data ciphertext cannot be decrypted. Approach It is possible to establish a flexible, depending on the data requester.

또한, 본 발명에 따른 데이터 접근 관리 시스템은, 네트워크상에서 데이터 공유 플랫폼뿐만 아니라 모든 사용자가 공유하고 데이터 리스트를 확인할 수 있는 데이터 관리 시스템과 데이터 접근 권한을 부여하는 전송 시스템 구현이 가능하다. 본 발명에 따른 시스템은, 데이터의 명칭이나 데이터 소유자의 정보를 블록체인을 통해 저장함으로써 해시 함수를 통해 데이터 무결성(Data Integrity), 전자 서명인 signature를 통해 사용자 인증(Authentication), 부정방지(Non-repudiation)가 보장되며 CP-ABE 기반 액세스 트리를 통해 접근 허가된 사용자만이 데이터를 해석할 수 있는 접근 권한 설정 시스템을 구현할 수 있게 된다. In addition, the data access management system according to the present invention, as well as the data sharing platform on the network, it is possible to implement a data management system that can be shared by all users and check the data list and a transmission system for granting data access rights. The system according to the present invention stores data names or information of data owners through a blockchain, thereby providing data integrity through a hash function, and user authentication and non-authentication through a signature that is a digital signature. repudiation is guaranteed, and the CP-ABE-based access tree enables the implementation of an access authority setting system where only authorized users can interpret the data.

따라서, 본 발명에 따른 데이터 접근 관리 시스템은, 활용가능성이 무궁무진한 블록체인의 활용법을 제시하고 블록체인의 원리에 입각한 프로그램 개발 방법을 제공할 수 있게 된다.Accordingly, the data access management system according to the present invention can provide a method of utilizing a blockchain which is infinitely applicable and provide a program development method based on the principle of blockchain.

도 1은 본 발명에 따른 데이터 접근 관리 시스템을 이용하여, 데이터 소유자인 의사가 생성한 데이터에 대한 접근 권한을 요청하는 데이터 요청자들에 따라 서로 다른 접근 권한을 부여하는 과정을 개념적으로 설명하기 위하여 도시한 의료 시스템에 대한 모식도이다.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 각 사용자 노드의 구성을 도시한 블록도이며, 도 3은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템을 설명하기 위하여 전체적으로 도시한 구성도이다.
도 4는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 소정의 정보를 블록 체인에 블록의 형태로 저장하는 과정을 도시한 흐름도이다.
도 5는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 데이터 소유자에 의해 데이터가 생성되어 공유 디렉토리에 저장된 후, 주소 매니저(140)가 데이터 명칭과 데이터 소유자 주소 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 6은 주소 매니저(140)의 동작을 순차적으로 설명하는 흐름도이다.
도 7은 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 컨텍스트 매니저(130)가 사용자에 대한 사용자 컨텍스트 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 8은 컨텍스트 매니저(130)의 동작을 순차적으로 설명하는 흐름도이다.
도 9는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저(150)가 블록체인에서 추출한 사용자 컨텍스트를 이용하여 접근 권한 부여를 위한 액세스 트리를 설정하고 암호문과 비밀키를 각 사용자에게 전송하여 해독 가능 여부를 확인함으로써 데이터 접근 권한을 부여하는 알고리즘을 도시하는 개념도이며, 도 10은 접근 권한 부여 매니저(150)의 동작을 순차적으로 설명하는 흐름도이다.
도 11은 CP-ABE 방식을 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 도시한 개념도이며, 도 12는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, CP-ABE 방식을 사용하여 생성된 액세스 트리를 예시적으로 도시한 것이다.
도 13은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 데이터 검색 매니저(160)의 동작을 설명하기 위하여 도시한 개념도이다.
FIG. 1 is a conceptual diagram illustrating a process of granting different access rights according to data requestors requesting access rights to data generated by a doctor who is a data owner using the data access management system according to the present invention. A schematic diagram of a medical system.
2 is a block diagram showing the configuration of each user node in a data access management system according to a preferred embodiment of the present invention. FIG. 3 is a block diagram illustrating a data access management system according to a preferred embodiment of the present invention. The configuration diagram shown.
4 is a flowchart illustrating a process of storing predetermined information in the form of blocks in a block chain in the data access management system according to the present invention.
FIG. 5 illustrates a process of storing data names and data owner address information in the blockchain by the address manager 140 after data is generated by the data owner and stored in the shared directory in the data access management system according to the present invention. 6 is a conceptual diagram illustrating the operation of the address manager 140 in sequence.
7 is a conceptual diagram illustrating a process in which the context manager 130 stores user context information about a user in a blockchain in the data access management system according to the present invention, and FIG. 8 is a context manager 130. Is a flow chart that sequentially describes the operation of.
9 is a diagram for a data access management system according to a preferred embodiment of the present invention, wherein the access authorization manager 150 sets an access tree for granting access authority using a user context extracted from a blockchain, and encrypts a secret text and a secret key. Is a conceptual diagram illustrating an algorithm for granting data access authority by confirming whether it can be decrypted by transmitting to each user, and FIG. 10 is a flowchart illustrating an operation of the access authorization manager 150 in sequence.
FIG. 11 is a conceptual diagram illustrating a process of granting data access rights to a data requestor by a data owner using a CP-ABE scheme, and FIG. 12 illustrates a CP-ABE scheme in a data access management system according to the present invention. The generated access tree is shown as an example.
FIG. 13 is a conceptual diagram illustrating the operation of the data retrieval manager 160 in the data access management system according to the preferred embodiment of the present invention.

본 발명에 따른 데이터 접근 관리 시스템은 블록 체인을 기반으로 한 사용자 컨텍스트를 생성, 저장 및 관리하고, 데이터 접근 권한 부여를 위하여 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리를 생성하고, 액세스 트리를 이용하여 데이터 암호문을 생성하고 데이터 요청자의 사용자 컨텍스트를 이용하여 비밀키를 생성하여 데이터 요청자에게 데이터 암호문과 비밀키를 전송하여 복호화할 수 있도록 함으로써, 보안성이 우수한 데이터 접근 관리 시스템을 제공하는 것을 특징으로 한다. The data access management system according to the present invention creates, stores, and manages a user context based on a blockchain, creates an access tree using a user context of a data owner to grant data access rights, and uses data to access the data. By generating a cipher text and generating a secret key using the data requestor's user context, the data cipher text and the secret key can be transmitted and decrypted to the data requestor, thereby providing a highly secure data access management system.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록 체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법을 구체적으로 설명한다. Hereinafter, a data access management system and a data access management method based on a blockchain according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 데이터 접근 관리 시스템을 이용하여, 데이터 소유자인 의사가 생성한 데이터에 대한 접근 권한을 요청하는 데이터 요청자들에 따라 서로 다른 접근 권한을 부여하는 과정을 개념적으로 설명하기 위하여 도시한 의료 시스템에 대한 모식도이다. FIG. 1 is a conceptual diagram illustrating a process of granting different access rights according to data requestors requesting access rights to data generated by a doctor who is a data owner using the data access management system according to the present invention. A schematic diagram of a medical system.

도 1을 참조하면, 일반적인 의료 시스템에 있어서 환자를 진료하는 의사는 환자에게서 생성된 뇌파, 심박, 체온 등과 같은 센서 데이터와 산소 공급량, 약물 투여량, X-ray 기록등과 같은 액츄에이터 데이터를 발생시키고 이를 진료 기록으로써 저장하게 된다. 이러한 환자의 진료기록이 필요한 사용자가 있을 경우, 데이터 요청자인 사용자는 진료 기록을 가지고 있는 데이터 소유자를 쉽게 검색할 수 있어야 하며, 데이터 소유자인 의사는 자신이 가진 데이터를 열람할 권리가 있는 데이터 요청자에게만 데이터를 전송해야 하며, 이 두가지 경우 모두 높은 보안성이 요구된다. Referring to FIG. 1, in a general medical system, a doctor who treats a patient generates sensor data such as brain waves, heart rate, and body temperature generated from the patient, and actuator data such as oxygen supply, drug dose, and X-ray recording. This is stored as a medical record. If there is a user who needs medical records for these patients, the user who is the data requester should be able to easily search for the data owner who has the medical records, and the doctor who is the data owner is only available to the data requestor who has the right to see his data. Data must be transmitted, both of which require high security.

이러한 요구에 따라, 본 발명은 블록 체인을 데이터 접근 관리 시스템에 적용함으로써, 데이터 요청자는 블록을 열람함으로써 데이터 소유자를 쉽게 검색할 수 있도록 하고, 블록 체인이 지원하는 보안성까지 얻을 수 있도록 한다. 또한, 본 발명에 따른 시스템에 있어서, 데이터를 열람할 수 있는 권한을 가진 데이터 요청자에게만 데이터를 전송할 수 있도록 하기 위하여, 데이터 소유자는 블록 체인에 기록되어 있는 사용자 컨텍스트 정보를 정보 위조의 위험성없이 확인할 수 있으며, 이러한 사용자 컨텍스트를 사용하여 액세스 트리를 제작하여 데이터 요청자가 데이터에 접근할 수 있도록 하는 권한을 부여할 수 있게 된다. In accordance with this demand, the present invention applies the blockchain to the data access management system, so that the data requestor can easily retrieve the data owner by browsing the block and obtain the security supported by the blockchain. In addition, in the system according to the present invention, in order to be able to transmit data only to a data requester who has the authority to view the data, the data owner can check the user context information recorded in the blockchain without risk of information forgery. Using this user context, the access tree can be created to authorize data requesters to access the data.

도 2는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 각 사용자 노드의 구성을 도시한 블록도이며, 도 3은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템을 설명하기 위하여 전체적으로 도시한 구성도이다. 2 is a block diagram showing the configuration of each user node in a data access management system according to a preferred embodiment of the present invention. FIG. 3 is a block diagram illustrating a data access management system according to a preferred embodiment of the present invention. The configuration diagram shown.

도 2 및 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템(1)은 별도의 중앙 관리 서버없이 블록 체인(Block chain)을 활용하여, 다수의 사용자 노드들이 데이터 소유자로서 데이터를 생성하여 저장 및 관리하거나 데이터 요청자로서 다른 사용자 노드들에 저장된 데이터를 검색하고 요청할 수 있도록 한다. 2 and 3, the data access management system 1 according to the preferred embodiment of the present invention utilizes a block chain without a separate central management server, so that a plurality of user nodes are the data owners as data owners. Create and store and manage or retrieve and request data stored in other user nodes as a data requestor.

상기 블록체인에 참여하는 각 사용자 노드들(10, 20, 30)은, 블록 체인(100), 데이터 저장 모듈(110), IP 리스트(120), 컨텍스트 매니저(130), 주소 매니저(140), 접근 권한 부여 매니저(150) 및 데이터 검색 매니저(160)를 구비한다. Each of the user nodes 10, 20, and 30 participating in the blockchain includes a block chain 100, a data storage module 110, an IP list 120, a context manager 130, an address manager 140, An access authorization manager 150 and a data retrieval manager 160.

각 사용자 노드들이 전술한 구성을 갖는 본 발명에 따른 데이터 접근 관리 시스템은, 블록체인을 이용해 사용자의 컨텍스트 정보를 관리 및 저장하는 컨텍스트 매니저(context manager), 생성한 데이터에 대한 데이터 명칭을 IP address와 port number의 정보와 함께 블록에 저장하여 데이터 명칭 검색을 통해 데이터 소유자를 확인 가능하도록 하는 주소 매니저, 데이터 소유자의 사용자 컨텍스트를 이용한 액세스 트리로 암호화시킨 데이터 암호문과 데이터 요청자의 사용자 컨텍스트를 이용하여 생성한 비밀키를 제공하여 데이터 소유자가 각 사용자 노드에게 접근 권한 부여가 가능하도록 하는 접근 권한 부여 매니저, 데이터를 검색하고, 검색된 데이터를 요청하고, 요청에 따라 데이터 소유자로부터 제공된 데이터 암호문을 비밀키로 복호화함으로써 원본 데이터를 확인할 수 있도록 하는 데이터 검색 매니저를 설계하고, 최종적으로 보안성 있는 데이터 접근 관리 시스템을 구현한다. In the data access management system according to the present invention, in which each user node has the above-described configuration, a context manager for managing and storing context information of a user using a blockchain and a data name for the generated data may be assigned an IP address and It is created by using the address manager which stores the information of the port number in the block so that the data owner can be identified through the data name retrieval, the data ciphertext encrypted by the access tree using the user context of the data owner, and the user context of the data requestor. An access authorization manager that allows a data owner to grant access to each user node by providing a private key; retrieves data, requests retrieved data, and, upon request, decrypts the data ciphertext provided from the data owner with the private key. day Data retrieval manager is designed to check the data, and finally secure data access management system is implemented.

본 발명에 따른 시스템에 있어서, 사용자 컨텍스트 정보 및 데이터 명칭과 데이터 소유자의 맵핑 정보는 블록체인으로 기록되어 있기 때문에 모든 사용자 노드가 같은 정보를 공유하게 된다. 따라서, 악의적 사용자 노드가 임의로 내용을 수정하기 위해서는 모든 사용자 노드가 가지고 있는 블록체인의 내용을 수정해야 하므로 임의적 수정이 사실상 불가능하며, 그 결과 블록체인 자체로도 보안성이 뛰어나다. 또한, 본 발명에 따른 시스템은, CP-ABE를 기반으로 하여 데이터를 암호화시키고, 데이터 소유자가 접근을 허락한 사용자 컨텍스트를 가진 사용자만이 데이터 복호화가 가능하도록 함으로써, 안전한 접근 제어가 가능하고, 데이터 소유자가 액세스 트리 설정시 설정 컨텍스트 변화를 통해 접근 권한을 부여하므로, 간단히 컨텍스트 변화를 통해 유동적인 접근 권한 조정이 가능하다.In the system according to the present invention, since user context information and data name and mapping information of the data owner are recorded in the blockchain, all user nodes share the same information. Therefore, in order for the malicious user node to modify the contents arbitrarily, the contents of the blockchain possessed by all the user nodes must be modified, so that arbitrary modification is virtually impossible, and as a result, the blockchain itself is excellent in security. In addition, the system according to the present invention, by encrypting the data on the basis of the CP-ABE, so that only a user with a user context that the data owner has allowed access, the data can be decrypted, thereby enabling secure access control and data When the owner sets the access tree, the access authority is granted by changing the setting context, so it is possible to flexibly adjust the access rights by changing the context.

상기 블록 체인(100)은 일련의 블록들이 연결되어 구성되는 것으로서, 상기 블록들은 JSON 파일 형태로 이루어지며, 현재 블록의 해쉬(Hash) 값, 논스(Nonce) 값, 이전 블록의 해쉬값, 타임 스탬프(Time Stamp)를 포함한다. The block chain 100 is composed of a series of blocks connected to each other, and the blocks are configured in the form of a JSON file, and a hash value of a current block, a nonce value, a hash value of a previous block, and a time stamp. (Time Stamp).

이하, 도 4를 참조하여 블록 체인에 블록을 기록하는 과정을 개략적으로 설명한다. 도 4는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 소정의 정보를 블록 체인에 블록의 형태로 저장하는 과정을 도시한 흐름도이다. Hereinafter, a process of writing a block in the blockchain will be described with reference to FIG. 4. 4 is a flowchart illustrating a process of storing predetermined information in the form of blocks in a block chain in the data access management system according to the present invention.

도 4를 참조하면, 먼저, 블록 체인에 참여하는 노드가 블록에 저장하고자 하는 소정의 정보를 포함하는 트랜잭션(transaction)을 생성한다(단계 400). 블록체인에 참여하는 노드들은 모든 노드들의 IP 리스트를 가지고 있으며, IP 리스트에는 참여 노드들에 대한 주소 정보인 IP address와 TCP port number, 그리고 모든 참여 노드들의 ECDSA public key가 저장되어 있다. 다음, 트랜잭션을 생성한 노드는 전자 서명하여 트랜잭션에 첨부한 후(단계 410), IP 리스트에 저장된 IP와 port를 이용하여 모든 노드들에게 트랜잭션을 전송하며(단계 420), 전송 방식은 TCP socket 통신을 사용한다. IP 리스트에는 트랜잭션 생성 노드의 IP와 port도 포함되어 있으므로 자신을 제외한 나머지 노드들에게 트랜잭션을 전송한다. 트랜잭션 전송 시 트랜잭션 생성 노드는 자신의 IP address와 TCP socket 통신에 사용할 port number를 나열하고 트랜잭션 생성 노드만이 가지고 있는 ECDSA private key를 이용하여 암호화한 전자서명을 생성한다. 해당 전자서명은 트랜잭션에 첨부되어 다른 노드들에게 전송된다. 트랜잭션을 수신한 노드는 트랜잭션 송신 노드의 IP와 port를 확인하여 IP 리스트에 저장된 public key를 이용해 복호화하여 출력된 결과가 트랜잭션 송신 노드의 IP, port와 일치하는지 확인하여 해당 트랜잭션의 유효성을 검증하게 된다(단계 430). Referring to FIG. 4, first, a node participating in a block chain generates a transaction including predetermined information to be stored in a block (step 400). Nodes participating in the blockchain have an IP list of all nodes, and the IP list stores IP address, TCP port number, and ECDSA public key of all participating nodes. Next, the node that created the transaction is electronically signed and attached to the transaction (step 410), and then the transaction is transmitted to all nodes using the IP and port stored in the IP list (step 420). Use Since the IP list also includes the IP and port of the transaction creation node, the transaction is sent to all nodes except themselves. During transaction transmission, the transaction generating node lists its IP address and port number for TCP socket communication and generates an encrypted digital signature using the ECDSA private key that only the transaction generating node has. The digital signature is attached to a transaction and sent to other nodes. After receiving the transaction, the node checks the IP and port of the transaction sender node, decrypts it using the public key stored in the IP list, and verifies that the output result matches the IP and port of the transaction sender node. (Step 430).

블록체인 트랜잭션에 포함된 전자서명(Digital signature)을 생성하는 알고리즘으로는 RSA, ECDSA 알고리즘 등이 있으며 현재 블록체인에서는 ECDSA 알고리즘을 사용한다. 각 노드는 자신의 개인키(Private key), 공개키(Public key)와 다른 사용자의 공개키 또한 소유하고 있다. Cryptography의 경우 생성 메시지를 수신할 사용자의 공개키로 암호화하여 송신하고 수신한 사용자는 자신의 개인키로 복호화해 원본을 확인하는 과정이다. 하지만 signature 생성과정은 메시지를 송신할 사용자의 개인키로 암호화하여 송신하고 수신한 사용자는 송신한 사용자의 공개키로 복호화 하여 해당 메시지가 송신한 사용자임을 확인하는 것이다. 이 때 수신 사용자가 signature의 검증결과가 true라면 이상 없이 트랜잭션을 받아들이고, false라면 트랜잭션을 버린다. Signature를 사용함으로써 인증(Authentication)과 부인방지(Non-Repudiation)을 보장한다. Signature 생성에 사용자 자신만 알고 있는 개인키를 사용하기 때문에 다른 사용자가 signature를 생성한 사용자의 공개키를 적용하여 검증해서 signature 생성 사용자를 인증할 수 있고, 이 개인키는 다른 사용자가 알지 못하기 때문에 트랜잭션을 생성 시에 자신이 정보를 생성했다는 사실을 부인 할 수 없다.Algorithms for generating digital signatures included in blockchain transactions include RSA and ECDSA algorithms. Currently, blockchain uses ECDSA algorithms. Each node also owns its own private key, public key and other users' public keys. In the case of Cryptography, the generated message is encrypted and transmitted with the public key of the user to receive, and the received user decrypts with the private key of the user to verify the original. However, the signature generation process encrypts the message with the user's private key and sends it. The received user decrypts the message with the sender's public key to confirm that the message is sent. At this time, the receiving user accepts the transaction without error if the verification result of the signature is true, and discards the transaction if false. Using Signature ensures Authentication and Non-Repudiation. Because the private key that only you know is used to generate the signature, another user can verify the signature-generating user by applying the public key of the user who created the signature, and this private key is not known to other users. You cannot deny that you created information when you created a transaction.

상기 트랜잭션을 수신하여 유효성을 검증한 노드들은 트랜잭션들과 nonce 값에 대하여 proof of work를 수행하여 블록 해쉬(hash)값을 찾아내는 과정을 진행하게 된다(단계 440). 즉, 상기 노드들은 트랜잭션이라는 형태로 구성된 정보들과 임의의 값 nonce의 SHA-256 해시 함수를 적용하게 된다. 논스값은 블록 생성 난이도를 조절하기 위해 기준으로 설정된 해시 값보다 작은 값을 찾기 위해 해시 함수에 적용되는 랜덤 변수이다. 다양한 수의 nonce를 대입하여 기준을 만족하는 nonce를 찾는 과정을 Proof-of-Work라고 지칭한다. Proof-of-work를 사용하는 이유는 블록체인에 참여한 노드 중 어떠한 노드가 블록을 생성할지 모르게 만드는 것으로, 악의적 노드가 현재 블록을 생성할 노드를 판단하지 못하게 하여 악의적 노드의 attack을 방지한다. 기준 해시값보다 작은 해시값을 찾는 과정은 해시의 역연산 문제인 first-preimage attack과 비슷하다. First-preimage attack은 어떠한 사용자가 해시값을 알지만 해당 해시값을 생성한 입력 메시지 값을 모를 때 다른 입력 메시지를 이용하여 같은 해시값을 찾는 것이다. 해시의 길이가 L일 때, 같은 해시값을 찾으려 노력하는 시도는 2L 회이며, SHA-256 해시 함수의 경우 2256 회를 시도해야 한다. 앞서 언급한 완벽히 같은 해시값을 찾는 시간 보다 설정된 기준 해시값보다 작은 해시를 찾는 시간이 더 빠르며, 기준 해시값의 0의 개수를 증가시킴으로써 난이도를 증가시킬 수 있다. 해시의 역연산이 아닌 단순 해시 함수 적용일 경우 주어진 메시지를 통해 해시값을 출력하는 것은 빠른 시간 내에 완성된다. 입력값이 1 bit만 달라져도 전혀 다른 값을 출력하는 해시 함수의 특성과 해시 역연산에는 오랜 시간이, 단순 해시 함수 적용에는 적은 시간이 소요된다는 특성에 따라 데이터 무결성(Data Integrity)을 보장한다. 블록에 기록된 트랜잭션의 정보와 nonce를 결합하여 블록 해시값과 같으면 저장된 트랜잭션의 정보가 변하지 않음을 증명할 수 있다.Nodes that have received and validated the transaction perform a process of finding a block hash value by performing proof of work on transactions and nonce values (step 440). That is, the nodes apply the SHA-256 hash function of a random value nonce and information configured in the form of a transaction. The nonce value is a random variable applied to the hash function to find a value smaller than the hash value set as a reference to control the difficulty of block generation. The process of finding nonce that satisfies the criteria by assigning various numbers of nonce is called Proof-of-Work. The reason for using the proof-of-work is to make it impossible to know which node in the blockchain will create the block. This prevents the malicious node from attacking the malicious node by preventing the malicious node from determining which node to create the current block. The process of finding a hash value smaller than the base hash value is similar to the first-preimage attack, which is a problem of inverse operation of hash. A first-preimage attack is when a user knows a hash value but does not know the value of the input message that generated the hash. When the length of the hash is L, the attempt to find the same hash value is 2 L attempts and 2 256 attempts for the SHA-256 hash function. It is faster to find a hash smaller than the set reference hash value than the time for finding the perfectly same hash value, and the difficulty can be increased by increasing the number of zeros of the reference hash value. In case of simple hash function application rather than inverse operation of hash, outputting hash value through a given message is completed in a short time. Data Integrity is guaranteed according to the characteristics of the hash function that outputs completely different values even if the input value is changed by only 1 bit, and the time required to inverse the hash operation and the time required to apply the simple hash function. By combining the nonce with the information of the transaction recorded in the block, it can be proved that if the same as the block hash value, the information of the stored transaction does not change.

가장 먼저 블록 해쉬값을 찾아 블록을 생성한 노드는 블록체인에 참여한 다른 노드들에게 해당 블록을 전송한다(단계 450). 블록을 생성 중이던 다른 노드들은 수신한 블록의 트랜잭션과 블록의 유효성을 검증한 뒤(단계 460), 검증을 완료하면 해당 블록 hash값을 사용해 추가 블록을 생성하고, 블록체인에 기록하게 된다(단계 470). 각 블록에는, 현재 블록의 hash(도 5의 Block hash), 이전 블록의 hash(도 5의 Prev hash), Nonce, Time_Stamp 등의 정보가 기록된다. First, the node that finds the block hash value and generates the block transmits the block to other nodes participating in the blockchain (step 450). The other nodes that were generating the block validate the transaction and the block of the received block (step 460), and when the verification is completed, generate additional blocks using the block hash value and write them to the blockchain (step 470). ). In each block, information such as the hash of the current block (Block hash in FIG. 5), the hash of the previous block (Prev hash in FIG. 5), Nonce, Time_Stamp, and the like are recorded.

도 5는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 주소 매니저(140)가 데이터 소유자에 의해 데이터 생성후 데이터 명칭과 데이터 소유자 주소 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 6은 주소 매니저(140)의 동작을 순차적으로 설명하는 흐름도이다. 도 5 및 도 6를 참조하면, 본 발명에 따른 시스템에 있어서, 데이터 소유자가 데이터 명칭과 데이터 소유자의 주소 정보를 포함하는 트랜잭션을 전송하고, 이를 이용하여 생성된 블록은 상기 해쉬값과 논스값이 데이터 명칭과 데이터 소유자의 주소 정보에 대하여 사전 설정된 해쉬 함수를 이용하여 구한 값들로 이루어진다. 5 is a conceptual diagram illustrating a process in which the address manager 140 stores data names and data owner address information in a blockchain after data generation by the data owner in the data access management system according to the present invention. 6 is a flowchart for sequentially explaining the operation of the address manager 140. 5 and 6, in the system according to the present invention, a data owner transmits a transaction including a data name and address information of the data owner, and a block generated using the same has a hash value and a nonce value. It consists of the values obtained using the hash function preset for the data name and data owner address.

도 7은 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 컨텍스트 매니저(130)가 사용자에 대한 사용자 컨텍스트 정보를 블록 체인에 저장하는 과정을 설명하기 위하여 도시한 개념도이며, 도 8은 컨텍스트 매니저(130)의 동작을 순차적으로 설명하는 흐름도이다. 도 7 및 도 8을 참조하면, 본 발명에 따른 시스템에 있어서, 각 사용자 노드들이 자신의 사용자 컨텍스트를 포함하는 트랜잭션을 전송하고, 이를 이용하여 생성된 블록은 상기 해쉬값과 논스값이 사용자 컨텍스트 정보에 대하여 사전 설정된 해쉬 함수를 이용하여 구한 값들로 이루어진다. 7 is a conceptual diagram illustrating a process in which the context manager 130 stores user context information about a user in a blockchain in the data access management system according to the present invention, and FIG. 8 is a context manager 130. Is a flow chart that sequentially describes the operation of. Referring to FIGS. 7 and 8, in the system according to the present invention, each user node transmits a transaction including its own user context, and a block generated by using the same has the hash value and the nonce value as user context information. It consists of the values obtained using the hash function preset for.

상기 IP 리스트(120)는 상기 블록 체인을 갖는 모든 사용자 노드들에 대한 IP 주소 및 TCP Port number 및 모든 사용자 노드들에 대한 공개키(public Key)를 저장한 것으로서, 모든 사용자 노드들이 구비한다. The IP list 120 stores IP addresses and TCP port numbers for all user nodes having the blockchain and public keys for all user nodes, and is provided by all user nodes.

상기 데이터 저장 모듈(110)은 데이터 또는 파일들이 생성되어 사전 설정된 폴더에 저장되는 메모리 영역으로서, 각 사용자 노드들은 데이터 저장 영역에 다른 사용자 노드들과 공유하고자 하는 데이터 또는 파일을 저장하기 위한 폴더 또는 디렉토리를 사전 지정해 둔다. 본 발명에 따른 시스템에 의하여 모든 사용자 노드들이 접근 권한에 따라 상기 데이터 저장 모듈에 저장된 데이터들을 요청할 수 있게 된다. The data storage module 110 is a memory area in which data or files are generated and stored in a preset folder. Each user node is a folder or directory for storing data or files to be shared with other user nodes in a data storage area. Predefine The system according to the present invention enables all user nodes to request data stored in the data storage module according to access rights.

상기 컨텍스트 매니저(130)는 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하게 된다.The context manager 130 generates user context information for the user node, and stores and manages the user context information using the blockchain.

도 5 내지 도 8을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템은, 사용자 컨텍스트 및 데이터에 대한 주소 정보를 블록체인에 블록의 형태로 저장함으로써, 중앙집중형 서버가 아닌 분산형 데이터베이스에서 사용자 컨텍스트를 저장 및 관리 가능하게 한다. 5 to 8, the data access management system according to a preferred embodiment of the present invention, by storing the user context and the address information for the data in the form of a block in the block chain, distributed rather than a centralized server Enables you to store and manage user contexts in the database.

도 7 및 도 8을 참조하면, 컨텍스트 매니저(130)는 블록체인에 참여하는 사용자 노드들의 사용자에 대한 식별 정보인 사용자 컨텍스트를 추출하고(단계 700), 추출된 사용자 컨텍스트를 블록을 생성하기 위한 트랜잭션 형태로 모든 사용자 노드들로 전송한다(단계 710). 모든 사용자 노드들은 상기 트랜잭션을 수신하면, 블록 생성을 위해 필요한 블록 해쉬값을 만들기 위해 Proof-of Work을 실행하여 논스값과 정해진 '0'의 개수를 충족시키는 블록 해쉬값을 생성한다(단계 720). 가장 먼저 블록을 생성한 사용자 노드는 해당 블록을 다른 노드들에게 전송하고, 이를 수신한 노드들은 유효성 검사를 한 후 자신의 블록 체인에 해당 블록을 연결하여 저장한다(단계 730). Referring to FIGS. 7 and 8, the context manager 130 extracts a user context that is identification information of a user of user nodes participating in the blockchain (step 700), and generates a transaction for generating the block from the extracted user context. Form to all user nodes (step 710). When all the user nodes receive the transaction, Proof-of Work is executed to generate the block hash value necessary for block generation to generate a block hash value that satisfies the nonce value and the predetermined number of '0's (step 720). . The user node that first generated the block transmits the block to other nodes, and after receiving the validity node, the node receives the validity check and connects the block to its block chain and stores it (step 730).

본 발명에서 제안하는 사용자 컨텍스트의 종류는 의료 환경에 맞춰 3개의 컨텍스트인 직업(Job), 위치(Location), 부서(Field)로 임의 분류하였지만 상황에 따라 추가적인 컨텍스트 입력이 가능하며 이 컨텍스트의 조합들로 더욱 다양한 액세스 트리 구조 설계가 가능하다. The type of user context proposed in the present invention is arbitrarily classified into three contexts (Job), location, and department according to the medical environment, but additional context input is possible according to the situation, and combinations of these contexts This allows for more diverse access tree structure designs.

사용자의 Job은 이미 인증기관에서 검증 완료된 identity 정보를 사용해 확인할 수 있으며, 사용자의 Location과 Field는 사용자의 IP address를 활용하는데, IP address가 지나온 라우터와 게이트웨이를 확인하여 병원과 다른 장소를 구별 가능하고, 층별 및 방으로 구분된 부서를 확인할 수 있다. 이 과정을 통해 추출된 사용자 컨텍스트는 트랜잭션에 기록되고 다른 사용자 노드들에게 전송되며 본 발명에서 제시하는 블록체인 생성 방식과 동일하게 블록을 만들고 사용자 컨텍스트는 블록에 기록되게 된다. 블록은 JSON 형태로 제작되어 사용자들의 read를 쉽게 도와준다.The user's job can be verified using the identity information already verified by the certification authority.The user's location and field use the user's IP address.The user can distinguish the hospital and other places by checking the router and gateway through which the IP address has passed. You can identify departments divided by floor, floor, and room. Through this process, the extracted user context is recorded in a transaction and transmitted to other user nodes. The block is created in the same way as the blockchain generation method proposed in the present invention, and the user context is recorded in the block. Blocks are created in JSON format to help users read easily.

도 5 및 도 6을 참조하면, 상기 주소 매니저(140)는 데이터 소유자가 생성한 데이터를 데이터 저장 모듈(110)의 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자에 대한 주소 정보를 저장 및 관리한다. 5 and 6, when the address manager 140 stores data generated by the data owner in a preset shared directory of the data storage module 110, the address manager 140 uses the blockchain to store data for the data. Store and manage name and address information for the data owner for the data.

이를 보다 구체적으로 설명하면, 데이터 소유자가 생성한 데이터를 데이터 저장 모듈(110)의 사전 설정된 공유 디렉토리에 저장하면, 상기 주소 매니저(140)는 데이터 명칭(Data name)과 데이터 소유자의 주소 정보인 IP 주소와 TCP Port number를 포함하는 트랜잭션을 생성하여(단계 500) 모든 사용자 노드들에게 전송하고(단계 510), 모든 사용자 노드들에 의해 proof-of-work 과정을 통해 블록을 생성하고(단계 520), 생성된 블록이 블록체인에 기록된다(단계 530). In more detail, when the data generated by the data owner is stored in a preset shared directory of the data storage module 110, the address manager 140 may display an IP which is a data name and address information of the data owner. Create a transaction containing an address and a TCP port number (step 500) and send it to all user nodes (step 510), create a block through a proof-of-work process by all user nodes (step 520). The generated block is written to the blockchain (step 530).

한편, 상기 주소 매니저(140)는, 상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고, 상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것이 바람직하다. 상기 상태 플래그는, 데이터 생성 시에 "created"에 대응되는 정보를, 데이터 수정시 "modified"에 대응되는 정보를, 데이터 삭제 시 "deleted"에 대응되는 정보를 각각 데이터 명칭의 첫부분에 추가시킨다. 따라서, 데이터 명칭의 상태 플래그를 통해, 해당 명칭의 데이터를 필요로 하는 사용자가 검색할 때 가장 마지막에 블록에 기록된 데이터의 상태를 보고 현재 데이터의 존재 여부를 확인할 수 있다. 상태 Flag와 결합된 데이터 명칭은 데이터 소유주의 IP address와 공유를 위해 설정된 TCP port number를 나열하여 트랜잭션을 제작한다. Meanwhile, the address manager 140 preferably includes a status flag in the data name for the data, and records current status information of data corresponding to the data name in the status flag. The status flag adds information corresponding to "created" at the time of data generation, information corresponding to "modified" at the time of data modification, and information corresponding to "deleted" at the time of data deletion, respectively, at the beginning of the data name. . Therefore, when the user who needs the data of the corresponding name searches through the state flag of the data name, the existence of the current data can be confirmed by viewing the state of the data recorded in the last block. The data name combined with the status flag creates a transaction by listing the data owner's IP address and the TCP port number set for sharing.

상기 접근 권한 부여 매니저(150)는 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 상기 데이터 요청자에게 전송하게 된다. When a data request corresponding to an arbitrary data name is generated from the data requestor, the access authorization manager 150 transmits a data cipher text and a secret key encrypting the requested data to the data requester.

도 9는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 상기 접근 권한 부여 매니저(150)가 블록체인에서 추출한 사용자 컨텍스트를 이용하여 접근 권한 부여를 위한 액세스 트리를 설정하고 암호문과 비밀키를 각 사용자에게 전송하여 해독 가능 여부를 확인함으로써 데이터 접근 권한을 부여하는 알고리즘을 도시하는 개념도이며, 도 10은 접근 권한 부여 매니저(150)의 동작을 순차적으로 설명하는 흐름도이다. 9 is a diagram for a data access management system according to a preferred embodiment of the present invention, wherein the access authorization manager 150 sets an access tree for granting access authority using a user context extracted from a blockchain, and encrypts a secret text and a secret key. Is a conceptual diagram illustrating an algorithm for granting data access authority by confirming whether it can be decrypted by transmitting to each user, and FIG. 10 is a flowchart illustrating an operation of the access authorization manager 150 in sequence.

도 9 및 도 10을 참조하면, 상기 접근 권한 부여 매니저(150)는, 데이터 요청자로부터 임의의 데이터 명칭(Data name)에 대응되는 데이터 요청이 발생하면(단계 900), 데이터 소유자는 데이터에 접근할 수 있는 권한을 데이터 소유자의 사용자 컨텍스트가 리프 노드가 되는 액세스 트리 형태를 이용해 설정하고(단계 910), 데이터 요청자에 대한 사용자 컨텍스트를 블록체인을 검색해 추출하여 데이터 요청자의 사용자 컨텍스트와 매칭되는 비밀키를 제작한다(단계 920). 데이터 소유자는 설정한 액세스 트리를 이용하여 상기 데이터를 암호화하여 데이터 암호문을 생성하고(단계 930) 데이터 요청자에게 데이터 암호문과 비밀키를 전송한다(단계 940). 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건에 만족할 시 비밀키는 암호문을 해독할 수 있고, 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건을 만족하지 못할 시 암호문은 해독 불가능하게 된다. 9 and 10, when the data request corresponding to an arbitrary data name is generated from the data requestor (step 900), the data owner may access the data. Permission is set using the access tree form in which the user context of the data owner is a leaf node (step 910), and the user context for the data requester is retrieved and extracted by searching the blockchain to obtain a secret key matching the user context of the data requestor. (Step 920). The data owner encrypts the data using the set access tree to generate a data cipher text (step 930) and transmits the data cipher text and the secret key to the data requestor (step 940). If the user requester's user context satisfies the conditions of the access tree, the secret key can decrypt the ciphertext. If the user requester's user context does not satisfy the conditions of the access tree, the ciphertext becomes undecipherable.

본 발명에 따른 시스템에 있어서, 액세스 트리는 CP-ABE 방식을 사용하여 구성하게 된다. 도 11은 CP-ABE 방식을 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 도시한 개념도이며, 도 12는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, CP-ABE 방식을 사용하여 생성된 액세스 트리를 예시적으로 도시한 것이다. In the system according to the present invention, the access tree is constructed using the CP-ABE scheme. FIG. 11 is a conceptual diagram illustrating a process of granting data access rights to a data requestor by a data owner using a CP-ABE scheme, and FIG. 12 illustrates a CP-ABE scheme in a data access management system according to the present invention. The generated access tree is shown as an example.

도 11 및 도 12를 참조하여, CP-ABE(Ciphertext-Policy Attribute-Based Encryption) 방식을 사용하여 생성된 액세스 트리를 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 구체적으로 설명한다. Referring to FIGS. 11 and 12, a process of granting data access rights to a data requestor by a data owner using an access tree generated by using a ciphertext-policy attribute-based encryption (CP-ABE) scheme will be described in detail. .

먼저 prime order p 의 multiplicative 순환군(Cyclic group)을 G 0 , G 1 이라 하고, G 0 의 생성원(generator)을 g 라고 하고, bilinear map을 e 라고 한다. 이 때, 쌍선형 사상은 G 0 × G 0 G 1 로 나타낸다.First prime order The multiplicative cyclic group of p is called G 0 , G 1 , the generator of G 0 is called g , and the bilinear map is e . At this time, the bilinear mapping is G 0 × G 0 G 1 Represented by

1) Setup 과정 : 기존의 CP-ABE 방식은 제 3의 인증기관(Certificate Autority)이 마스터키(Master key, MSK ), 공개키(Public key, PK)를 생성한다. 마스터키는 데이터 요청 사용자의 비밀키를 생성하고, 공개키는 데이터 암호화, 복호화에 사용된다. 임의의 지수 α,β Zp 를 선택하고, 마스터키와 공개키를 수학식 1 및 수학식 2와 같이 정의한다. 1) Setup process: In the existing CP-ABE method, the third-party certificate authority (Master Certificate, MSK) ), Create a public key ( PK ). The master key generates a secret key of the data requesting user, and the public key is used for data encryption and decryption. Arbitrary exponents α, βZp are selected, and the master key and the public key are defined as in Equations 1 and 2 below.

Figure 112017073558651-pat00001
Figure 112017073558651-pat00001

Figure 112017073558651-pat00002
Figure 112017073558651-pat00002

2) Encrypt(PK, M, T ) 과정 : 공개키(PK), 액세스 접근 트리(T), 데이터 평문(M)을 정의하고 해당 평문을 암호화한 CT를 출력한다. 도 12는 액세스 트리(T)를 사용자 컨텍스트를 포함하여 도시한 것이다. 액세스 트리를 구성하는 모든 노드는 index값(T) 와 다항식(polynomial)(q)를 가지고 있으며 각 노드의 q(0)는 수학식 3과 같이 정의한다.2) Encrypt ( PK, M, T ) Process: Define public key ( PK ), access access tree ( T ), data plaintext ( M ) and output CT that encrypts the plaintext. 12 illustrates an access tree T including a user context. All nodes constituting the access tree have an index value ( T ) and a polynomial ( q ), and q (0) of each node is defined as in Equation 3.

Figure 112017073558651-pat00003
Figure 112017073558651-pat00003

여기서, s 는 트리의 root 노드(R)의 다항식 q R (0)이고, Y 는 액세스 트리(T)의 모든 leaf node 집합이고, H는 해시 함수를 의미한다. 이 때, 암호문(CT)은 수학식 4와 같이 정의한다.Where s is the polynomial q R (0) of the root node ( R ) of the tree, Y is the set of all leaf nodes of the access tree ( T ), and H is a hash function. At this time, the ciphertext CT is defined as in Equation 4.

Figure 112017073558651-pat00004
Figure 112017073558651-pat00004

3) KeyGen(MSK , S) : 마스터키(MSK)와 사용자 컨텍스트로 정의되는 속성 집합 (S)을 이용하여 데이터 요청자의 비밀키(Secret key, SK )를 출력한다. 인증기관은 r Zp 을 만족하는 임의의 수 r 을 생성하고 j Zp r j Zp 를 만족하는 임의의 수 r j 를 생성한다. 이 때, 비밀키(SK)는 수학식 5와 같이 정의한다. 3) KeyGen ( MSK , S ): Outputs the secret key ( SK ) of the data requestor by using the master key ( MSK ) and the attribute set ( S ) defined by the user context. The certification body is rZp Generate a random number r that satisfies jZp And r j Zp Generate a random number r j that satisfies. At this time, the secret key SK is defined as in Equation 5.

Figure 112017073558651-pat00005
Figure 112017073558651-pat00005

4) Decrypt( CT, SK) : 암호문(CT)를 사용자의 비밀키(SK)와 함께 재귀 알고리즘(Reculsive algorithm)인 DecryptNode(CT, SK, x)를 적용한다. leaf 노드이고 i가 사용자 속성일 때 i가 인증기관에서 설정한 속성집합 S에 속한다면(i S ), 수학식 6과 같이 계산된다.4) Decrypt ( CT, SK ): Apply DecryptNode ( CT, SK, x ), which is a recursive algorithm, to the ciphertext ( CT ) along with the user's secret key ( SK ). If i is a leaf node and i is a user attribute, i belongs to the attribute set S set by the certification authority ( iS ).

Figure 112017073558651-pat00006
Figure 112017073558651-pat00006

Figure 112017073558651-pat00007
이면 복호화가 불가하다. 노드 x 가 leaf 노드가 아닐 경우, x를 children으로 갖는 모든 노드 z를 DecryptNode(CT,SK,z)로 계산하여 Fx를 출력한다. Sx z 의 children 노드 집합일 때 Fx는 수학식 7과 같이 계산된다.
Figure 112017073558651-pat00007
In this case, decryption is impossible. If node x is not a leaf node, compute all nodes z with x as children as DecryptNode ( CT, SK, z ) and output Fx . When Sx is a set of children nodes of z , Fx is calculated as shown in Equation 7.

Figure 112017073558651-pat00008
Figure 112017073558651-pat00008

트리(T) 의 root 노드(R) 이 속성 집합(S) 를 만족할 때 A를 수학식 8과 같이 정의한다.When the root node R of the tree T satisfies the property set S , A is defined as shown in Equation 8.

Figure 112017073558651-pat00009
Figure 112017073558651-pat00009

최종적으로 SK를 수신한 사용자는 수학식 9와 같은 과정을 거쳐 암호문(CT)를 계산하여 데이터 평문(M)을 구한다.Finally, the user receiving the SK calculates the ciphertext CT through the same process as in Equation 9 to obtain the data plaintext M.

Figure 112017073558651-pat00010
Figure 112017073558651-pat00010

도 13은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 데이터 검색 매니저(160)의 동작을 설명하기 위하여 도시한 개념도이다. FIG. 13 is a conceptual diagram illustrating the operation of the data retrieval manager 160 in the data access management system according to the preferred embodiment of the present invention.

도 13을 참조하면, 상기 데이터 검색 매니저(160)은 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭(Data name)과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 데이터 소유자(Data Owner)를 확인하고, 상기 데이터 소유자에게 상기 검색된 데이터 명칭에 대응되는 데이터를 요청한다. 상기 데이터 요청에 대응하여 데이터 암호문과 비밀키를 제공받고, 상기 비밀키를 이용하여 데이터 암호문을 복호화시켜 데이터를 출력하게 된다. Referring to FIG. 13, the data retrieval manager 160 retrieves data names stored and managed in the blockchain, extracts address information of a data owner stored with the retrieved data names, from the blockchain, The data owner is identified using the extracted address information on the data owner, and the data owner is requested for data corresponding to the retrieved data name. In response to the data request, a data cipher text and a secret key are provided, and the data cipher text is decrypted using the secret key to output data.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. Although the present invention has been described above with reference to preferred embodiments thereof, this is merely an example and is not intended to limit the present invention, and those skilled in the art do not depart from the essential characteristics of the present invention. It will be appreciated that various modifications and applications which are not illustrated above in the scope are possible. And differences relating to such modifications and applications should be construed as being included in the scope of the invention as defined in the appended claims.

1 : 데이터 접근 관리 시스템
10, 20, 30 : 사용자 노드
100 : 블록 체인
110 : 데이터 저장 모듈
120 : IP 리스트
130 : 컨텍스트 매니저
140 : 주소 매니저
150 : 접근 권한 부여 매니저
160 : 데이터 검색 매니저
1: data access management system
10, 20, 30: user node
100: blockchain
110: data storage module
120: IP list
130: context manager
140: address manager
150: access authorization manager
160: data retrieval manager

Claims (12)

블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 시스템에 있어서,
상기 사용자 노드들의 각각은,
일련의 블록들이 연결되어 구성되는 블록 체인;
사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 컨텍스트 매니저;
사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 주소 매니저;
사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 접근 권한 부여 매니저; 및
상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 데이터 검색 매니저;
를 구비하고, 상기 접근 권한 부여 매니저는,
데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면,
데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고,
상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고,
상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
In the data access management system for a plurality of user nodes participating in the blockchain,
Each of the user nodes,
A block chain comprising a series of blocks connected to each other;
A context manager for generating user context information for a user node and storing and managing the user context information using the blockchain;
An address manager for storing and managing data names for the data and address information of the data owner for the data using the blockchain when storing data generated by the data owner among user nodes in a preset shared directory;
An access authorization manager for generating a data cipher text and a secret key encrypting the requested data from the data requester among the user nodes, and transmitting the generated data cipher text and the secret key to the data requester; And
Searching for data names stored and managed in the blockchain, extracting address information for the data owner stored with the retrieved data name from the blockchain, and using the address information for the extracted data owner in the retrieved data name. A data retrieval manager for requesting corresponding data;
Is provided, the access authorization manager,
When a data request corresponding to an arbitrary data name occurs from the data requester,
Encrypting the requested data using a user context for a data owner to generate a data ciphertext,
Extract a user context for the data requestor from the blockchain, generate a secret key using the extracted user context for the data requestor,
And transmitting the generated data cipher text and the secret key to the data requestor.
삭제delete 제1항에 있어서, 상기 접근 권한 부여 매니저는,
상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 1, wherein the access authorization manager,
Based on the blockchain, an access tree for granting data access authority is created using a user context for the data owner, and the data is encrypted by encrypting the requested data using the access tree. One data access management system.
제3항에 있어서, 상기 접근 권한 부여 매니저는,
상기 액세스 트리는 상기 데이터 소유자에 대한 사용자 컨텍스트를 리프 노드(leaf-node)로 하는 트리 구조로 구성된 것을 특징으로 하며,
상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하면 비밀키를 이용하여 데이터 암호문을 해독할 수 있고,
상기 데이터 요청자에 대한 사용자 컨텍스트가 상기 액세스 트리의 조건을 만족하지 못하면 비밀키를 이용하여 데이터 암호문을 해독할 수 없도록, 상기 액세스 트리의 조건을 구성한 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 3, wherein the access authorization manager,
The access tree has a tree structure in which the user context for the data owner is a leaf node.
If the user context for the data requestor satisfies the conditions of the access tree, it is possible to decrypt the data cipher text using a secret key,
If the user context for the data requestor does not satisfy the condition of the access tree, the data access management based on the block chain is configured so that the condition of the access tree is configured so that the data cipher text cannot be decrypted using the secret key. system.
제1항에 있어서, 상기 주소 매니저는,
데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 1, wherein the address manager,
When data stored by the data owner is stored in a preset shared directory, the data name of the data and the address information of the data owner are extracted, a transaction is generated and transmitted to all user nodes participating in the blockchain.
The transaction is stored and managed as a block of the blockchain through the Proof-of-Work process of the user nodes participating in the blockchain block data-based data access management system.
제5항에 있어서, 상기 주소 매니저는,
상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고,
상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 5, wherein the address manager,
Include a status flag in the data name for the data,
And a current state information of data corresponding to the data name is recorded in the state flag.
제1항에 있어서, 주소 매니저는,
상기 데이터 소유자의 IP 주소 및 TCP port number를 상기 데이터 소유자의 주소 정보로서 추출하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 1, wherein the address manager,
And extracting the IP address and TCP port number of the data owner as address information of the data owner.
제1항에 있어서, 상기 컨텍스트 매니저는,
각 사용자 노드들의 사용자에 대한 컨텍스트 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 시스템.
The method of claim 1, wherein the context manager,
Extract context information about users of each user node, create a transaction, and send it to all user nodes participating in the blockchain.
The transaction is stored and managed as a block of the blockchain through the Proof-of-Work process of the user nodes participating in the blockchain block data-based data access management system.
블록체인에 참여하는 다수 개의 사용자 노드들에 대한 데이터 접근 관리 방법에 있어서,
(a) 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 단계;
(b) 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 단계;
(c) 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 단계;
(d) 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 단계;
를 구비하고, 상기 (b) 단계는,
데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 데이터에 대한 데이터 명칭 및 상기 데이터 소유자의 주소 정보를 추출하여 트랜잭션을 생성하여 블록체인에 참여하는 모든 사용자 노드들에게 전송하고,
상기 트랜잭션은 블록체인에 참여한 사용자 노드들의 Proof-of-Work 과정을 거쳐 상기 블록체인의 블록으로 저장 및 관리되는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.
In the data access management method for a plurality of user nodes participating in the blockchain,
(a) generating user context information for a user node, and storing and managing the user context information using the blockchain;
(b) storing data generated by a data owner among user nodes in a preset shared directory, and storing and managing a data name for the data and address information of the data owner for the data using the blockchain; step;
(c) when a data request corresponding to an arbitrary data name is generated from a data requester among user nodes, generating and transmitting a data cipher text and a secret key encrypting the requested data to the data requester;
(d) searching for data names stored and managed in the blockchain, extracting address information for the data owner stored with the retrieved data name from the blockchain, and using the retrieved data information for the owner of the extracted data; Requesting data corresponding to the data name;
And, the step (b) is,
When data stored by the data owner is stored in a preset shared directory, the data name of the data and the address information of the data owner are extracted, a transaction is generated and transmitted to all user nodes participating in the blockchain.
The transaction is a blockchain-based data access management method, characterized in that the transaction is stored and managed as a block of the blockchain through the Proof-of-Work process of the user nodes participating in the blockchain.
제9항에 있어서, 상기 (c) 단계는,
데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면,
데이터 소유자에 대한 사용자 컨텍스트를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하고,
상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하고, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하고,
상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.
The method of claim 9, wherein step (c) comprises:
When a data request corresponding to an arbitrary data name occurs from the data requester,
Encrypting the requested data using a user context for a data owner to generate a data ciphertext,
Extract a user context for the data requestor from the blockchain, generate a secret key using the extracted user context for the data requestor,
And transmitting the generated data cipher text and the secret key to the data requestor.
제10항에 있어서, 상기 (c) 단계는,
상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하고, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 데이터 접근 관리 방법.



The method of claim 10, wherein step (c) comprises:
Based on the blockchain, an access tree for granting data access authority is created using a user context for the data owner, and the data is encrypted by encrypting the requested data using the access tree. How to manage data access.



삭제delete
KR1020170096783A 2017-07-31 2017-07-31 Data access management system based on blockchain and method thereof KR102025409B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170096783A KR102025409B1 (en) 2017-07-31 2017-07-31 Data access management system based on blockchain and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170096783A KR102025409B1 (en) 2017-07-31 2017-07-31 Data access management system based on blockchain and method thereof

Publications (2)

Publication Number Publication Date
KR20190012969A KR20190012969A (en) 2019-02-11
KR102025409B1 true KR102025409B1 (en) 2019-09-25

Family

ID=65370021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170096783A KR102025409B1 (en) 2017-07-31 2017-07-31 Data access management system based on blockchain and method thereof

Country Status (1)

Country Link
KR (1) KR102025409B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063619A (en) 2019-11-25 2021-06-02 서강대학교산학협력단 Attribute-based access control system in a blockchain network and method thereof
KR20210110110A (en) * 2020-02-28 2021-09-07 한양대학교 산학협력단 Apparatus and method for generating block chain

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102263281B1 (en) * 2019-02-15 2021-06-10 리걸테크 주식회사 Data Management System and Data Management Method
KR102199464B1 (en) * 2019-02-19 2021-01-06 군산대학교산학협력단 Method of authentication among nodes participating in consortium blockchain
KR102207993B1 (en) * 2019-03-12 2021-01-26 (주)거북선컴퍼니 Transaction Management System and Method Using Blockchain
KR102185258B1 (en) 2019-04-25 2020-12-01 신한대학교 산학협력단 In vitro diagnostic equipment based on block chain technology and remote operating method of the equipment
CN110213268A (en) * 2019-05-31 2019-09-06 联想(北京)有限公司 A kind of data processing method, data processing equipment and computer system
KR102230764B1 (en) * 2019-07-01 2021-03-19 건국대학교 산학협력단 Method for storing blockchain based file modification evidence and appratus using the same
KR102720562B1 (en) * 2019-07-12 2024-10-23 광주과학기술원 Mining device
KR102282788B1 (en) * 2019-09-26 2021-07-29 (주)하이퍼서트 Blockchain system for supporting change of plain text data included in transaction
KR102316763B1 (en) * 2019-12-12 2021-10-25 (주)포뎁스 Electronic terminal device that enables update processing for application and forgery detection of application based on blockchain and operating method thereof
KR102318022B1 (en) * 2019-12-12 2021-10-27 (주)포뎁스 Electronic terminal device that enables update processing for applications and forgery detection of update data based on blockchain and operating method thereof
KR102365945B1 (en) 2019-12-12 2022-02-22 (주)포뎁스 Electronic terminal device capable of update processing for application based on blockchain and operating method thereof
KR20210075654A (en) 2019-12-13 2021-06-23 현대자동차주식회사 Blockchain generation system and its operation method
CN113450111A (en) * 2020-03-27 2021-09-28 中国移动通信集团北京有限公司 Data sharing method, device, equipment and medium
CN112528334B (en) * 2020-12-16 2024-01-23 海南博盈电子竞技有限公司 Data acquisition method and device based on blockchain network and computer equipment
CN113570194B (en) * 2021-06-28 2024-06-25 北京电链科技有限公司 Power construction business data processing method and system based on block chain
KR102526406B1 (en) * 2021-12-03 2023-04-27 에이치닥 테크놀로지 아게 Access management system apparatus which manages access to the original contents data, which is to be a subject to an nft, and the operating method thereof
CN114978578B (en) * 2022-04-06 2023-09-19 中债金科信息技术有限公司 Data unauthorized access control method and device based on attribute key derivation
CN114785599A (en) * 2022-04-24 2022-07-22 江苏大学 Block chain fine-grained access control method for remote medical diagnosis application, terminal equipment and server
CN116707969A (en) * 2023-07-04 2023-09-05 云南财经大学 Ciphertext attribute base proxy re-encryption method and computer readable storage medium containing the program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
KR20160050876A (en) 2014-10-31 2016-05-11 코나아이 (주) Bitcoin dealing method using public key and private key stored in smart card
KR101697868B1 (en) * 2015-05-19 2017-01-19 포항공과대학교 산학협력단 Method for encrypting data for sharing or searching the data and apparatus for performing the method
KR101727525B1 (en) 2016-09-05 2017-04-17 주식회사 스케일체인 Block chain based distributed storage method and device thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063619A (en) 2019-11-25 2021-06-02 서강대학교산학협력단 Attribute-based access control system in a blockchain network and method thereof
KR20210110110A (en) * 2020-02-28 2021-09-07 한양대학교 산학협력단 Apparatus and method for generating block chain
KR102389465B1 (en) 2020-02-28 2022-04-22 한양대학교 산학협력단 Apparatus and method for generating block chain

Also Published As

Publication number Publication date
KR20190012969A (en) 2019-02-11

Similar Documents

Publication Publication Date Title
KR102025409B1 (en) Data access management system based on blockchain and method thereof
US10803194B2 (en) System and a method for management of confidential data
Barsoum et al. Enabling dynamic data and indirect mutual trust for cloud computing storage systems
US20190294822A1 (en) Method and system for accessing anonymized data
US20210089676A1 (en) Methods and systems for secure data exchange
US7334255B2 (en) System and method for controlling access to multiple public networks and for controlling access to multiple private networks
US7688975B2 (en) Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure
KR102307574B1 (en) Cloud data storage system based on blockchain and method for storing in cloud
US12047501B2 (en) System and method for providing an authorised third party with overt ledger secured key escrow access to a secret
KR102555164B1 (en) Enabling access to data
CN110149322A (en) A kind of block chain encryption method that irreversible dynamic failure re-examination is rebuild
WO2023109056A1 (en) Attribute-based encryption method and system
JP2009514072A (en) Method for providing secure access to computer resources
CN114239046A (en) Data sharing method
KR20200112055A (en) Method for sharing data in block chain environment and apparatus
US11604888B2 (en) Digital storage and data transport system
JP2002111659A (en) File encryption system, file encryption program and storage medium having recorded data
CN114762291A (en) Method, computer program and data sharing system for sharing user specific data of a user
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
CN117200966A (en) Trusted authorization data sharing method based on distributed identity and alliance chain
CN111541731B (en) Electronic file access control method based on block chain and knowledge range encryption
Salim et al. An efficient public auditing scheme for cloud storage with secure access control and resistance against DOS attack by iniquitous TPA
Aziz et al. Assured data deletion in cloud computing: security analysis and requirements
WO2019229257A1 (en) System and method for providing an authorised third party with overt ledger secured key escrow access to a secret
EP3576000B1 (en) System and method for providing an authorised third party with overt ledger secured key escrow access to a secret

Legal Events

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