KR20190012969A - 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
KR20190012969A
KR20190012969A KR1020170096783A KR20170096783A KR20190012969A KR 20190012969 A KR20190012969 A KR 20190012969A KR 1020170096783 A KR1020170096783 A KR 1020170096783A KR 20170096783 A KR20170096783 A KR 20170096783A KR 20190012969 A KR20190012969 A KR 20190012969A
Authority
KR
South Korea
Prior art keywords
data
block chain
user
access
owner
Prior art date
Application number
KR1020170096783A
Other languages
Korean (ko)
Other versions
KR102025409B1 (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

According to the present invention, a data access management system generates, stores, and manages user context based on a blockchain; creates an access tree by using user context of a data owner to authorize a data access; generates a data cipher text by using the access tree; creates a secret key by using user context of a data requester; and transmits the data cipher text and the secret key to the data requester for decryption, so that the excellent security can be provided.

Description

블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법{Data access management system based on blockchain and method thereof}[0001] The present invention relates to a data access management system and a data access management method based on a block chain,

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

블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.The block chain is also called a public transaction book and is a technique to prevent hacking that may occur when trading with virtual currency. In the case of existing financial companies, transaction logs are kept on a centralized server, while block chains send transactions to all users participating in the transaction, and are used to prevent counterfeiting of data against each transaction. The block chain is applied to a bit coin, which is a typical online virtual currency. Bitcoin transparently records transactions on a book that anyone can read, and several computers using bit coin verify this record every 10 minutes to prevent hacking.

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

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

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

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

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

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

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

상기 사용자 노드들의 각각은, 일련의 블록들이 연결되어 구성되는 블록 체인; 사용자 노드에 대한 사용자 컨텍스트 정보를 생성하고, 상기 블록 체인을 이용하여, 상기 사용자 컨텍스트 정보를 저장 및 관리하는 컨텍스트 매니저; 사용자 노드들 중 데이터 소유자가 생성한 데이터를 사전 설정된 공유 디렉토리에 저장하면, 상기 블록 체인을 이용하여, 상기 데이터에 대한 데이터 명칭 및 상기 데이터에 대한 데이터 소유자의 주소 정보를 저장 및 관리하는 주소 매니저; 사용자 노드들 중 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 요청된 데이터를 암호화시킨 데이터 암호문과 비밀키를 생성하여 상기 데이터 요청자에게 전송하는 접근 권한 부여 매니저; 상기 블록체인에 저장 및 관리되는 데이터 명칭들을 검색하고, 검색된 데이터 명칭과 함께 저장된 데이터 소유자에 대한 주소 정보를 블록체인으로부터 추출하고, 상기 추출된 데이터 소유자에 대한 주소 정보를 이용하여 상기 검색된 데이터 명칭에 대응되는 데이터를 요청하는 데이터 검색 매니저; 를 구비한다. Wherein 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 block chain; An address manager for storing and managing data name of the data and address information of a data owner of the data using the block chain when data generated by a data owner of user nodes is stored in a predetermined shared directory; An access authorization manager for generating a data ciphertext and a secret key by encrypting the requested data and transmitting the data ciphertext and the secret key to the data requester when a data request corresponding to a certain data name is generated from the data requester of the user nodes; Extracting address information for a data owner stored along with the retrieved data name from the block chain, and extracting address information for the data owner from the block chain by using the address information for the extracted data owner A data retrieval manager for requesting corresponding data; Respectively.

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

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

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

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

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

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

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

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

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

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

제2 특징에 따른 블록체인을 기반으로 한 데이터 접근 관리 방법에 있어서, 상기 (c) 단계는, 데이터 요청자로부터 임의의 데이터 명칭에 대응되는 데이터 요청이 발생하면, 상기 데이터 소유자에 대한 사용자 컨텍스트를 이용하여 데이터 접근 권한을 부여하기 위한 액세스 트리를 생성하는 단계, 상기 액세스 트리를 이용하여 상기 요청된 데이터를 암호화시켜 데이터 암호문을 생성하는 단계, 상기 데이터 요청자에 대한 사용자 컨텍스트를 상기 블록체인으로부터 추출하는 단계, 상기 추출된 데이터 요청자에 대한 사용자 컨텍스트를 이용하여 비밀키를 생성하는 단계, 상기 생성된 데이터 암호문과 상기 비밀키를 상기 데이터 요청자에게 전송하는 단계를 구비하는 것이 바람직하다. A method for managing a data access based on a block chain according to a second aspect of the present invention, the step (c) comprises: when a data request corresponding to an arbitrary data name is issued from a data requestor, using a user context for the data owner 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 block chain; Generating a secret key using the user context for the extracted data requestor, and transmitting the generated data cipher text and the secret key to the data requester.

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

본 발명에 따른 데이터 접근 관리 시스템은, 블록체인 네트워크에 참여한 모든 사용자의 컨텍스트를 블록에 기록하고, 데이터 소유자가 지정한 폴더 내에 생성한 데이터의 명칭을 자신의 IP와 함께 블록체인에 저장하며, 블록체인에 참여한 사용자가 데이터 명칭 검색을 통해 데이터 소유자를 확인할 수 있으며 이를 토대로 하여 데이터를 요청하고, 데이터 소유자는 블록체인에서 추출한 데이터 요청자에 대한 사용자 컨텍스트를 자신이 설정한 액세스 트리에 대입하여 생성한 데이터 암호문과 비밀키를 전송하며, 데이터 요청자가 데이터 소유자에 의해 설정된 액세스 트리에 적합할 경우 데이터 암호문을 복호화시킬 수 있게 되고, 그렇지 아니한 경우 데이터 암호문을 복호화시킬 수 없도록 함으로써, 데이터 소유자는 자신이 생성한 데이터의 접근 권한을 데이터 요청자에 따라 유동적으로 설정할 수 있게 된다. A data access management system according to the present invention records contexts of all users participating in a block chain network in a block and stores names of data generated in a folder specified by a data owner in a block chain together with its IP, The data owner can identify the data owner through the data name search and request the data based on the data owner. The data owner assigns the user context for the data requestor extracted from the block chain to the access tree set by the data chain, And if the data requestor is suitable for the access tree set by the data owner, the data cipher text can be decrypted. Otherwise, the data cipher can not be decrypted, so that the data owner can transmit the data 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 can implement a data management system that allows all users to share data lists, as well as a data sharing platform on a network, and a transmission system that grants data access authority. The system according to the present invention stores data name and data owner information through a block chain, thereby enabling data integrity through a hash function, user authentication through a digital signature, non-authentication, repudiation is guaranteed and only the user who is granted access through the CP-ABE-based access tree can implement an access rights setting system that can interpret the data.

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

도 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 block diagram of a data access management system according to an embodiment of the present invention. Referring to FIG. 1, in order to conceptually explain a process of granting different access rights according to data requestors requesting access rights to data generated by a doctor, A schematic diagram of a medical system.
FIG. 2 is a block diagram illustrating a 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. Fig.
4 is a flowchart illustrating a process of storing predetermined information in a block chain in the form of blocks in the data access management system according to the present invention.
5 is a diagram illustrating a process of storing data name and data owner address information in a block chain by the address manager 140 after data is generated by a data owner and stored in a shared directory FIG. 6 is a flowchart sequentially illustrating an operation of the address manager 140. Referring to FIG.
FIG. 7 is a conceptual diagram illustrating a process of storing context information for a user in a block chain in the data access management system according to the present invention. FIG. Fig. 2 is a flowchart for explaining the operation of Fig.
FIG. 9 illustrates a data access management system according to a preferred embodiment of the present invention. The access authorization manager 150 sets an access tree for granting access authority using a user context extracted from a block chain, FIG. 10 is a flowchart sequentially illustrating the operations of the access authorization manager 150. FIG. 10 is a flowchart illustrating an operation of the access authorization manager 150 in sequence. Referring to FIG.
FIG. 11 is a conceptual diagram illustrating a process in which a data owner grants a data access right to a data requester using the CP-ABE scheme. FIG. 12 illustrates a data access management system according to an embodiment of the present invention, And illustratively shows the generated access tree.
FIG. 13 is a conceptual diagram illustrating an operation of the data search 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 generates, stores, and manages a user context based on a block chain, generates an access tree using a user context of a data owner for granting data access authority, The present invention provides a data access management system with excellent security by generating a cipher text and generating a secret key using the user context of the data requestor to transmit and decrypt the data cipher text and the secret key to the data requestor.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록 체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법을 구체적으로 설명한다. Hereinafter, a data access management system and a data access management method based on a block chain 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 block diagram of a data access management system according to an embodiment of the present invention. Referring to FIG. 1, in order to conceptually explain a process of granting different access rights according to data requestors requesting access rights to data generated by a doctor, A schematic diagram of a medical system.

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

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

도 2는 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 각 사용자 노드의 구성을 도시한 블록도이며, 도 3은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템을 설명하기 위하여 전체적으로 도시한 구성도이다. FIG. 2 is a block diagram illustrating a 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. Fig.

도 2 및 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템(1)은 별도의 중앙 관리 서버없이 블록 체인(Block chain)을 활용하여, 다수의 사용자 노드들이 데이터 소유자로서 데이터를 생성하여 저장 및 관리하거나 데이터 요청자로서 다른 사용자 노드들에 저장된 데이터를 검색하고 요청할 수 있도록 한다. Referring to FIGS. 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, And to 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 block chain 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 search manager 160.

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

본 발명에 따른 시스템에 있어서, 사용자 컨텍스트 정보 및 데이터 명칭과 데이터 소유자의 맵핑 정보는 블록체인으로 기록되어 있기 때문에 모든 사용자 노드가 같은 정보를 공유하게 된다. 따라서, 악의적 사용자 노드가 임의로 내용을 수정하기 위해서는 모든 사용자 노드가 가지고 있는 블록체인의 내용을 수정해야 하므로 임의적 수정이 사실상 불가능하며, 그 결과 블록체인 자체로도 보안성이 뛰어나다. 또한, 본 발명에 따른 시스템은, CP-ABE를 기반으로 하여 데이터를 암호화시키고, 데이터 소유자가 접근을 허락한 사용자 컨텍스트를 가진 사용자만이 데이터 복호화가 가능하도록 함으로써, 안전한 접근 제어가 가능하고, 데이터 소유자가 액세스 트리 설정시 설정 컨텍스트 변화를 통해 접근 권한을 부여하므로, 간단히 컨텍스트 변화를 통해 유동적인 접근 권한 조정이 가능하다.In the system according to the present invention, since the user context information, the data name, and the mapping information of the data owner are recorded in a block chain, all the user nodes share the same information. Therefore, in order for a malicious user node to arbitrarily modify contents, it is impossible to arbitrarily modify the contents of a block chain held by all user nodes. As a result, the security of the block chain itself is also excellent. In addition, the system according to the present invention encrypts data based on the CP-ABE and makes it possible to decrypt data only by a user having a user context in which the data owner allows access, thereby enabling secure access control, Since the owner grants the access right through the setting context change when the access tree is set, it is possible to adjust the access right flexibly through the change of the context.

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

이하, 도 4를 참조하여 블록 체인에 블록을 기록하는 과정을 개략적으로 설명한다. 도 4는 본 발명에 따른 데이터 접근 관리 시스템에 있어서, 소정의 정보를 블록 체인에 블록의 형태로 저장하는 과정을 도시한 흐름도이다. Hereinafter, a process of recording a block in a block chain will be schematically described with reference to FIG. 4 is a flowchart illustrating a process of storing predetermined information in a block chain in the form of blocks 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, a node participating in a block chain generates a transaction including predetermined information to be stored in a block (step 400). The node participating in the block chain has an IP list of all nodes, and the IP list stores the IP address and TCP port number of the participating nodes, and the ECDSA public key of all participating nodes. Next, the node that generated the transaction is electronically signed and attached to the transaction (step 410), and the transaction is transmitted to all the nodes using the IP and port stored in the IP list (step 420) Lt; / RTI > The IP list includes the IP and port of the transaction generation node, so it transfers the transaction to the remaining nodes except for itself. During transaction transmission, the transaction originating node lists its IP address and the port number to be used for TCP socket communication, and generates an encrypted digital signature using the ECDSA private key of only the transaction generating node. The corresponding digital signature is attached to the transaction and sent to the other nodes. The node receiving the transaction checks the IP and port of the transaction sending node, decrypts it using the public key stored in the IP list, verifies whether the output matches the IP and port of the transaction sending node, and verifies the validity of the transaction (Step 430).

블록체인 트랜잭션에 포함된 전자서명(Digital signature)을 생성하는 알고리즘으로는 RSA, ECDSA 알고리즘 등이 있으며 현재 블록체인에서는 ECDSA 알고리즘을 사용한다. 각 노드는 자신의 개인키(Private key), 공개키(Public key)와 다른 사용자의 공개키 또한 소유하고 있다. Cryptography의 경우 생성 메시지를 수신할 사용자의 공개키로 암호화하여 송신하고 수신한 사용자는 자신의 개인키로 복호화해 원본을 확인하는 과정이다. 하지만 signature 생성과정은 메시지를 송신할 사용자의 개인키로 암호화하여 송신하고 수신한 사용자는 송신한 사용자의 공개키로 복호화 하여 해당 메시지가 송신한 사용자임을 확인하는 것이다. 이 때 수신 사용자가 signature의 검증결과가 true라면 이상 없이 트랜잭션을 받아들이고, false라면 트랜잭션을 버린다. Signature를 사용함으로써 인증(Authentication)과 부인방지(Non-Repudiation)을 보장한다. Signature 생성에 사용자 자신만 알고 있는 개인키를 사용하기 때문에 다른 사용자가 signature를 생성한 사용자의 공개키를 적용하여 검증해서 signature 생성 사용자를 인증할 수 있고, 이 개인키는 다른 사용자가 알지 못하기 때문에 트랜잭션을 생성 시에 자신이 정보를 생성했다는 사실을 부인 할 수 없다.RSA and ECDSA algorithms are used to generate digital signatures included in a block chain transaction. The ECDSA algorithm is used in the current block chain. Each node also has its own private key, public key, and other user's public key. In the case of Cryptography, the generated message is encrypted with the public key of the user to be received, and the received user decrypts the generated message with its own private key to confirm the original. However, in the signature generation process, the message is encrypted with the private key of the user to be transmitted, and the received user decrypts the message with the public key of the transmitting user to confirm that the user is the sender of the message. At this time, the receiving user accepts the transaction without abnormality if the result of verification of the signature is true, and discards the transaction if it is false. Signature is used to guarantee authentication and non-repudiation. Since the private key that is known only to the user is used to generate the signature, another user can authenticate the signature generation user by applying the public key of the user who generated the signature, and this private key is not known to other users You can not deny that you created the information when you created the 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를 결합하여 블록 해시값과 같으면 저장된 트랜잭션의 정보가 변하지 않음을 증명할 수 있다.The nodes receiving the transaction and verifying their validity proceed to a process of finding a block hash value by performing a proof of work on the transactions and nonce values (step 440). That is, the nodes apply the SHA-256 hash function of the information composed in the form of transaction and the nonce of a certain value. The nonce value is a random variable applied to the hash function to find a value smaller than the hash value set as the reference to control the block generation difficulty. The process of finding a nonce that satisfies the criterion by substituting various numbers of nonce is called a proof-of-work. The reason for using Proof-of-Work is to prevent any malicious node from attacking a malicious node by making it impossible for a malicious node to determine the node that will generate the current block by making it impossible for any of the nodes participating in the block chain to generate a block. The process of finding a hash value smaller than the reference hash value is similar to the first-preimage attack, which is the inverse operation problem of the hash. The first-preimage attack is to find the hash value of a user when the user knows the hash value but does not know the value of the input message that generated the hash value. When the length of the hash is L, the attempt to find the same hash value is 2 L , and for the SHA-256 hash function, 2 256 attempts should be attempted. The time for finding a hash smaller than the set reference hash value is faster than the time for finding the completely same hash value mentioned above, and the degree of difficulty can be increased by increasing the number of zeroes of the reference hash value. When applying a simple hash function instead of a hash inverse operation, outputting a hash value through a given message is completed in a short time. Data integrity is ensured by the characteristics of a hash function that outputs a completely different value even if the input value changes only by one bit, and a long time for the hash inverse operation and a small time for the simple hash function. Combining the information of the transaction recorded in the block with the nonce, it is possible to prove that the information of the stored transaction does not change if it is equal to the block hash value.

가장 먼저 블록 해쉬값을 찾아 블록을 생성한 노드는 블록체인에 참여한 다른 노드들에게 해당 블록을 전송한다(단계 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 block chain (step 450). After the validation of the transaction and the block of the received block is verified (step 460), other nodes that are generating the block are used to generate additional blocks using the corresponding block hash value and write them in the block chain ). In each block, information such as hash of the current block (Block hash of FIG. 5), hash of the previous block (Prev hash of FIG. 5), Nonce, Time_Stamp and the like are recorded.

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

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

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

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

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

도 5 내지 도 8을 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템은, 사용자 컨텍스트 및 데이터에 대한 주소 정보를 블록체인에 블록의 형태로 저장함으로써, 중앙집중형 서버가 아닌 분산형 데이터베이스에서 사용자 컨텍스트를 저장 및 관리 가능하게 한다. 5 to 8, a data access management system according to a preferred embodiment of the present invention stores address information on a user context and data in a block chain in a block form, Enables the user 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, which is identification information of a user of user nodes participating in the block chain (step 700), and extracts the extracted user context from a transaction To all user nodes (step 710). When all the user nodes have received the transaction, a Proof-of-Work is executed to create a block hash value necessary for generating a block, thereby generating a block hash value satisfying the nonce value and the predetermined number of '0' (step 720) . The user node that generated the block first transmits the corresponding block to other nodes, and the nodes that received the block check the validity, and then connect the corresponding block to the block chain of the user node and store the block (step 730).

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

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

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

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

한편, 상기 주소 매니저(140)는, 상기 데이터에 대한 데이터 명칭에 상태 플래그를 포함시키고, 상기 상태 플래그에는 상기 데이터 명칭에 대응되는 데이터의 현재 상태 정보를 기록하는 것이 바람직하다. 상기 상태 플래그는, 데이터 생성 시에 "created"에 대응되는 정보를, 데이터 수정시 "modified"에 대응되는 정보를, 데이터 삭제 시 "deleted"에 대응되는 정보를 각각 데이터 명칭의 첫부분에 추가시킨다. 따라서, 데이터 명칭의 상태 플래그를 통해, 해당 명칭의 데이터를 필요로 하는 사용자가 검색할 때 가장 마지막에 블록에 기록된 데이터의 상태를 보고 현재 데이터의 존재 여부를 확인할 수 있다. 상태 Flag와 결합된 데이터 명칭은 데이터 소유주의 IP address와 공유를 위해 설정된 TCP port number를 나열하여 트랜잭션을 제작한다. The address manager 140 may include a status flag in the data name of the data, and may record the current status information of the 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 . Accordingly, when the user who needs data of the name is searched through the status flag of the data name, the status of the data recorded in the last block can be checked to see whether or not the current data exists. The data name combined with the status flag creates a transaction by listing the IP address of the data owner and the TCP port number set for sharing.

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

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

도 9 및 도 10을 참조하면, 상기 접근 권한 부여 매니저(150)는, 데이터 요청자로부터 임의의 데이터 명칭(Data name)에 대응되는 데이터 요청이 발생하면(단계 900), 데이터 소유자는 데이터에 접근할 수 있는 권한을 데이터 소유자의 사용자 컨텍스트가 리프 노드가 되는 액세스 트리 형태를 이용해 설정하고(단계 910), 데이터 요청자에 대한 사용자 컨텍스트를 블록체인을 검색해 추출하여 데이터 요청자의 사용자 컨텍스트와 매칭되는 비밀키를 제작한다(단계 920). 데이터 소유자는 설정한 액세스 트리를 이용하여 상기 데이터를 암호화하여 데이터 암호문을 생성하고(단계 930) 데이터 요청자에게 데이터 암호문과 비밀키를 전송한다(단계 940). 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건에 만족할 시 비밀키는 암호문을 해독할 수 있고, 데이터 요청자의 사용자 컨텍스트가 액세스 트리의 조건을 만족하지 못할 시 암호문은 해독 불가능하게 된다. 9 and 10, when the access request manager 150 receives a data request corresponding to an arbitrary data name from the data requestor (step 900), the data owner accesses the data The user context of the data owner is set using an access tree type that is a leaf node (step 910), a user context for the data requestor is searched for and extracted from the block chain, and a secret key matching with 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 context of the data requestor satisfies the condition of the access tree, the secret key can decrypt the ciphertext, and if the user context of the data requestor does not satisfy the condition of the access tree, the ciphertext becomes unreadable.

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

도 11 및 도 12를 참조하여, CP-ABE(Ciphertext-Policy Attribute-Based Encryption) 방식을 사용하여 생성된 액세스 트리를 사용하여 데이터 소유자가 데이터 요청자에게 데이터 접근 권한을 부여하는 과정을 구체적으로 설명한다. 11 and 12, a process of granting a data access right to a data requestor by a data owner using an access tree generated using a CP-ABE (Ciphertext-Policy Attribute-Based Encryption) 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 g , and the bilinear map is called e . At this time, the bilinear mapping is G 0 × G 0 ? G 1 Respectively.

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 key authority (Certificate Authority) is the master key ( MSK ), And a public key ( PK ). The master key generates the secret key of the data requesting user, and the public key is used for data encryption and decryption. The arbitrary exponents ? And ?? Zp are selected, and the master key and the public key are defined as shown in Equations (1) and (2).

Figure pat00001
Figure pat00001

Figure pat00002
Figure 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: defines the public key (PK), the accessor tree (T), the plaintext data (M) and outputs the CT of encrypting the plain text. Fig. 12 shows the access tree T including the user context. All nodes constituting the access tree have index value ( T ) and polynomial ( q ), and q (0) of each node is defined as Equation (3).

Figure pat00003
Figure pat00003

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

Figure pat00004
Figure 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 requester using the master key ( MSK ) and the attribute set ( S ) defined by the user context. The certification authority can use rZp And generates an arbitrary number r satisfying jZp And r j Zp It generates a random number r j satisfying. At this time, the secret key SK is defined as Equation (5).

Figure pat00005
Figure pat00005

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

Figure pat00006
Figure pat00006

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

Figure pat00008
Figure pat00008

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

Figure pat00009
Figure pat00009

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

Figure pat00010
Figure pat00010

도 13은 본 발명의 바람직한 실시예에 따른 데이터 접근 관리 시스템에 있어서, 데이터 검색 매니저(160)의 동작을 설명하기 위하여 도시한 개념도이다. FIG. 13 is a conceptual diagram illustrating an operation of the data search 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 search manager 160 searches for data names stored and managed in the block chain, and extracts address information on data owners stored together with the retrieved data names from a block chain , Identifies the data owner using the address information of the extracted data owner, and requests the data owner for data corresponding to the searched data name. A data cipher text and a secret key are provided in response to the data request, and the data cipher text is decrypted using the secret key to output data.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood that various changes and modifications may be made without departing from the spirit and scope of the invention. It is to be understood that the present invention may be embodied in many other specific forms without departing from the spirit or essential characteristics thereof.

1 : 데이터 접근 관리 시스템
10, 20, 30 : 사용자 노드
100 : 블록 체인
110 : 데이터 저장 모듈
120 : IP 리스트
130 : 컨텍스트 매니저
140 : 주소 매니저
150 : 접근 권한 부여 매니저
160 : 데이터 검색 매니저
1: Data Access Management System
10, 20, 30: User node
100: Block Chain
110: Data storage module
120: IP List
130: Context manager
140: Address manager
150: Access Authorization Manager
160: Data Search Manager

Claims (12)

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


10. The method of claim 9, wherein step (b)
If data created by a data owner is stored in a predetermined shared directory, a data name for the data and address information of the data owner are extracted to generate a transaction and transmitted to all user nodes participating in the block chain,
Wherein the transaction is stored and managed as a block in the block chain through a proof-of-work process of user nodes participating in the block chain.


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 true KR20190012969A (en) 2019-02-11
KR102025409B1 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 (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213268A (en) * 2019-05-31 2019-09-06 联想(北京)有限公司 A kind of data processing method, data processing equipment and computer system
KR20200099804A (en) * 2019-02-15 2020-08-25 리걸테크 주식회사 Data Management System and Data Management Method
KR20200101020A (en) * 2019-02-19 2020-08-27 군산대학교산학협력단 Method of authentication among nodes participating in consortium blockchain
KR20200108963A (en) * 2019-03-12 2020-09-22 주식회사 거북선컴퍼니 Transaction Management System and Method Using Blockchain
KR20200124868A (en) 2019-04-25 2020-11-04 신한대학교 산학협력단 In vitro diagnostic equipment based on block chain technology and remote operating method of the equipment
KR20210002978A (en) * 2019-07-01 2021-01-11 건국대학교 산학협력단 Method for storing blockchain based file modification evidence and appratus using the same
WO2021010720A1 (en) * 2019-07-12 2021-01-21 광주과학기술원 Mining apparatus
CN112528334A (en) * 2020-12-16 2021-03-19 平安普惠企业管理有限公司 Data acquisition method and device based on block chain network and computer equipment
WO2021060720A1 (en) * 2019-09-26 2021-04-01 (주)하이퍼서트 Blockchain system supporting change in plain text data included in transaction
KR20210074980A (en) 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device capable of update processing for application based on blockchain and operating method thereof
KR20210074981A (en) * 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device that enables update processing for applications and forgery detection of update data based on blockchain and operating method thereof
KR20210074982A (en) * 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device that enables update processing for application and forgery detection of application based on blockchain and operating method thereof
CN113450111A (en) * 2020-03-27 2021-09-28 中国移动通信集团北京有限公司 Data sharing method, device, equipment and medium
CN113570194A (en) * 2021-06-28 2021-10-29 北京电链科技有限公司 Block chain-based power construction business data processing method and system
CN114785599A (en) * 2022-04-24 2022-07-22 江苏大学 Block chain fine-grained access control method for remote medical diagnosis application, terminal equipment and server
CN114978578A (en) * 2022-04-06 2022-08-30 中债金科信息技术有限公司 Data unauthorized access control method and device based on attribute key derivation
US11580087B2 (en) 2019-12-13 2023-02-14 Hyundai Motor Company Blockchain generation system and method for operating the same
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

Families Citing this family (2)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059659A (en) * 2008-09-29 2011-06-02 타지추 트랜스퍼 리미티드 리아빌리터 컴파니 Measurement in data forwarding storage
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
KR20160050876A (en) 2014-10-31 2016-05-11 코나아이 (주) Bitcoin dealing method using public key and private key stored in smart card
KR20160136060A (en) * 2015-05-19 2016-11-29 포항공과대학교 산학협력단 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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059659A (en) * 2008-09-29 2011-06-02 타지추 트랜스퍼 리미티드 리아빌리터 컴파니 Measurement in data forwarding storage
US20150332283A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
KR20160050876A (en) 2014-10-31 2016-05-11 코나아이 (주) Bitcoin dealing method using public key and private key stored in smart card
KR20160136060A (en) * 2015-05-19 2016-11-29 포항공과대학교 산학협력단 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

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200099804A (en) * 2019-02-15 2020-08-25 리걸테크 주식회사 Data Management System and Data Management Method
KR20200101020A (en) * 2019-02-19 2020-08-27 군산대학교산학협력단 Method of authentication among nodes participating in consortium blockchain
KR20200108963A (en) * 2019-03-12 2020-09-22 주식회사 거북선컴퍼니 Transaction Management System and Method Using Blockchain
KR20200124868A (en) 2019-04-25 2020-11-04 신한대학교 산학협력단 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
KR20210002978A (en) * 2019-07-01 2021-01-11 건국대학교 산학협력단 Method for storing blockchain based file modification evidence and appratus using the same
WO2021010720A1 (en) * 2019-07-12 2021-01-21 광주과학기술원 Mining apparatus
KR20210036700A (en) * 2019-09-26 2021-04-05 (주)하이퍼서트 Blockchain system for supporting change of plain text data included in transaction
WO2021060720A1 (en) * 2019-09-26 2021-04-01 (주)하이퍼서트 Blockchain system supporting change in plain text data included in transaction
KR20210074980A (en) 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device capable of update processing for application based on blockchain and operating method thereof
KR20210074981A (en) * 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device that enables update processing for applications and forgery detection of update data based on blockchain and operating method thereof
KR20210074982A (en) * 2019-12-12 2021-06-22 (주)포뎁스 Electronic terminal device that enables update processing for application and forgery detection of application based on blockchain and operating method thereof
US11580087B2 (en) 2019-12-13 2023-02-14 Hyundai Motor Company Blockchain generation system and method for operating the same
CN113450111A (en) * 2020-03-27 2021-09-28 中国移动通信集团北京有限公司 Data sharing method, device, equipment and medium
CN112528334A (en) * 2020-12-16 2021-03-19 平安普惠企业管理有限公司 Data acquisition method and device based on block chain network and computer equipment
CN112528334B (en) * 2020-12-16 2024-01-23 海南博盈电子竞技有限公司 Data acquisition method and device based on blockchain network and computer equipment
CN113570194A (en) * 2021-06-28 2021-10-29 北京电链科技有限公司 Block chain-based power construction business data processing method and system
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
CN114978578A (en) * 2022-04-06 2022-08-30 中债金科信息技术有限公司 Data unauthorized access control method and device based on attribute key derivation
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

Also Published As

Publication number Publication date
KR102025409B1 (en) 2019-09-25

Similar Documents

Publication Publication Date Title
KR102025409B1 (en) Data access management system based on blockchain and method thereof
US20230087557A1 (en) System for privacy protection during iot secure data sharing 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
US20210089676A1 (en) Methods and systems for secure data exchange
US20190377889A1 (en) Verifiable version control on authenticated and/or encrypted electronic documents
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
RU2300845C2 (en) Method and system for safe distribution of data transferred through public data network
KR102307574B1 (en) Cloud data storage system based on blockchain and method for storing in cloud
US20100005318A1 (en) Process for securing data in a storage unit
CN106790261B (en) Distributed file system and method for authenticating communication between its interior joint
US20190372765A1 (en) System and Method for Providing an Authorised Third Party with Overt Ledger Secured Key Escrow Access to a Secret
US11604888B2 (en) Digital storage and data transport system
KR20200112055A (en) Method for sharing data in block chain environment and apparatus
CN115065679A (en) Block chain based electronic health profile sharing model, method, system, and medium
CN116668072A (en) Data security sharing method and system based on multi-authority attribute base encryption
JP2002111659A (en) File encryption system, file encryption program and storage medium having recorded data
CN115001730A (en) Role attribute-based access control system and method in distributed scene
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
CN113545025A (en) Method and system for information transmission
CN114762291A (en) Method, computer program and data sharing system for sharing user specific data of a user
WO2019229257A1 (en) System and method for providing an authorised third party with overt ledger secured key escrow access to a secret
Venkatesh et al. Secure authorised deduplication by using hybrid cloud approach

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