KR20200143197A - Data management device that enables distributed encryption management of data based on blockchain and operating method thereof - Google Patents

Data management device that enables distributed encryption management of data based on blockchain and operating method thereof Download PDF

Info

Publication number
KR20200143197A
KR20200143197A KR1020190122829A KR20190122829A KR20200143197A KR 20200143197 A KR20200143197 A KR 20200143197A KR 1020190122829 A KR1020190122829 A KR 1020190122829A KR 20190122829 A KR20190122829 A KR 20190122829A KR 20200143197 A KR20200143197 A KR 20200143197A
Authority
KR
South Korea
Prior art keywords
data
matrix
node device
authentication
transaction
Prior art date
Application number
KR1020190122829A
Other languages
Korean (ko)
Other versions
KR102295263B1 (en
Inventor
홍승필
Original Assignee
주식회사 한컴위드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 한컴위드 filed Critical 주식회사 한컴위드
Publication of KR20200143197A publication Critical patent/KR20200143197A/en
Application granted granted Critical
Publication of KR102295263B1 publication Critical patent/KR102295263B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed are a data management device enabling distributed encryption management of data based on a block chain and an operation method thereof. According to the present invention, in the data management device and the operation method thereof, after encrypting plain text data, the data is divided into multiple types of divided data and distributed and stored in different data storage along with a hash value corresponding to each divided data, and the hash value corresponding to each divided data is registered in the block chain network and managed, so that the plain text data can be prevented from being easily exposed by a third party.

Description

블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법{DATA MANAGEMENT DEVICE THAT ENABLES DISTRIBUTED ENCRYPTION MANAGEMENT OF DATA BASED ON BLOCKCHAIN AND OPERATING METHOD THEREOF}A data management device that enables distributed encryption management of data based on a blockchain and its operation method {DATA MANAGEMENT DEVICE THAT ENABLES DISTRIBUTED ENCRYPTION MANAGEMENT OF DATA BASED ON BLOCKCHAIN AND OPERATING METHOD THEREOF}

본 발명은 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법에 대한 것이다.The present invention relates to a data management device and a method of operating the same that enables distributed encryption management of data based on a block chain.

최근, 소정의 데이터를 체인화된 블록으로 구성하여 중앙 서버가 아닌 노드들에 분산 저장함으로써, 해당 데이터에 대한 무결성을 보장할 수 있는 블록체인 기술이 널리 활용되고 있다.Recently, blockchain technology that can guarantee the integrity of the data is widely used by configuring predetermined data into chained blocks and storing them distributedly in nodes other than a central server.

블록체인 기술은 트랜잭션이라고 하는 소정의 데이터가 생성되면, 블록체인 네트워크에 참여하고 있는 복수의 노드 장치들 중 어느 하나의 노드 장치가 여러 블록들이 체인으로 연결되어 있는 블록체인 데이터에 포함된 이전 블록을 기초로 상기 트랜잭션이 포함된 새로운 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 다른 노드 장치들로 배포함으로써, 소정의 데이터가 복수의 노드 장치들에 분산 저장되도록 하는 기술을 의미한다.In the blockchain technology, when predetermined data, called a transaction, is generated, any one node device among a plurality of node devices participating in the block chain network can access the previous block included in the blockchain data in which several blocks are connected in a chain. A new block containing the transaction is created as a basis, the block is chained to the blockchain data, and then the block is distributed to other node devices through the blockchain network, so that predetermined data is transmitted to a plurality of nodes. It refers to a technology that enables distributed storage in devices.

아울러, 최근에는 데이터 해킹 기술이 고도로 발달함에 따라 개인정보와 같은 민감한 데이터가 해커에 의해 노출되는 사고가 증가하면서, 데이터의 노출을 방지하기 위한 데이터 암호화 기술에 대한 관심이 증가하고 있다.In addition, in recent years, as data hacking technology is highly developed, accidents in which sensitive data such as personal information is exposed by hackers are increasing, and interest in data encryption technology for preventing data exposure is increasing.

기존에는 단순히 소정의 암호화키로 데이터를 암호화하여 보관 및 관리하고 있었다는 점에서 암호화키의 패턴이 노출되는 경우, 원본 데이터가 손쉽게 노출되는 문제가 있었다. 따라서, 단순히 암호화키로 데이터를 암호화하는 것을 넘어서 보다 고도화된 방식의 암호화 기술에 대한 연구가 필요하다. 특히, 블록체인 기술의 관심이 증폭됨에 따라 이러한 블록체인 기술을 활용해서 데이터를 암호화하여 보관 및 관리할 수 있도록 하는 기술의 연구가 필요하다.In the past, since data was simply encrypted with a predetermined encryption key, stored and managed, when the pattern of the encryption key is exposed, the original data is easily exposed. Therefore, there is a need for research on a more advanced encryption technology beyond simply encrypting data with an encryption key. In particular, as interest in blockchain technology is amplified, research on technology that enables data to be encrypted and stored and managed using such blockchain technology is needed.

본 발명에 따른 데이터 관리 장치 및 그 동작 방법은 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있도록 한다.The data management device and its operation method according to the present invention are to encrypt plain text data and then divide it into a plurality of divided data and store it distributedly in different data storage together with a hash value corresponding to each divided data, and correspond to each divided data. By registering and managing the generated hash value in the blockchain network, it is possible to prevent the plain text data from being easily exposed by a third party.

본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 암호화 데이터 생성부, 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 데이터 분할부, 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 해시 값 생성부, 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 데이터 분산 저장부, 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 트랜잭션 생성부 및 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 블록체인 등록 요청부를 포함하고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파한다.A data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention encrypts plain text data to be encrypted using a predetermined encryption key, thereby generating encrypted data. A generation unit, a data division unit that divides the encrypted data into n (n is a natural number of 2 or more) pieces of divided data, and applies the n pieces of divided data as input to n different predetermined hash functions to each of the n pieces of divided data A hash value generation unit that generates n hash values corresponding to, and a data distribution storage unit that distributes and stores the n pieces of divided data and the hash values corresponding to each of the n pieces of divided data in n data distribution stores, the When n pieces of divided data and hash values are distributed and stored in the n pieces of data distributed storage, a transaction generating unit generating a transaction including the n number of hash values and one of a plurality of node devices constituting a blockchain network A block chain registration request unit for transmitting the transaction to the first node device, and transmitting a request for registration of the transaction to the block chain network, wherein the first node device receives the transaction from the data management device, A block containing the transaction is created based on the block chain data stored in the memory of the first node device, the block is connected to the block chain data in a chain, and the block is connected through the block chain network. It propagates to other node devices other than the first node device among a plurality of node devices.

또한, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 단계, 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 단계, 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 단계, 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 단계, 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 단계 및 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 포함하고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파한다.In addition, the method of operating a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention is to encrypt plain text data to be encrypted using a predetermined encryption key, Generating, dividing the encrypted data into n (n is a natural number of 2 or more) pieces of divided data, applying the n pieces of divided data as inputs to n different predetermined hash functions to each of the n pieces of divided data Generating n hash values corresponding to, and distributing and storing the n pieces of divided data and the hash values corresponding to each of the n pieces of divided data in n data distribution stores, one by one, and the n pieces of divided data and hashes When the values are distributed and stored in the n data distribution storage, generating a transaction including the n hash values and performing the transaction to a first node device which is one of a plurality of node devices constituting a blockchain network. And transmitting a request for registration of the transaction to the blockchain network while transmitting, wherein the first node device is stored in the memory of the first node device when the transaction is received from the data management device. The first node device among the plurality of node devices through the block chain network after creating a block containing the transaction based on block chain data, connecting the block to the block chain data in a chain Propagates to the rest of the node devices except for.

본 발명에 따른 데이터 관리 장치 및 그 동작 방법은 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있다.The data management device and its operation method according to the present invention are to encrypt plain text data and then divide it into a plurality of divided data and store it distributedly in different data storage together with a hash value corresponding to each divided data, and correspond to each divided data. By registering and managing the generated hash value in the blockchain network, it is possible to prevent the plain text data from being easily exposed by a third party.

도 1은 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법을 도시한 순서도이다.
1 is a diagram showing the structure of a data management apparatus that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention.
2 is a flow chart illustrating a method of operating a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. This description is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. While describing each drawing, similar reference numerals have been used for similar components, and unless otherwise defined, all terms used in the present specification including technical or scientific terms refer to common knowledge in the technical field to which the present invention belongs. It has the same meaning as commonly understood by someone who has it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless otherwise stated. In addition, in various embodiments of the present invention, each component, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, and an application specific integrated circuit (ASIC) may be implemented with various known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks of the attached block diagram and the steps in the flowchart are computer program instructions that are mounted on a processor or memory of equipment capable of processing data such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer to perform specified functions. It can be interpreted as meaning. Since these computer program instructions can be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks in the block diagram or in the steps in the flowchart are produced as a product containing the instruction means to perform this. It could be. In addition, each block or each step may represent a module, segment, or part of code including one or more executable instructions for executing the specified logical function(s). In addition, it should be noted that in some alternative embodiments, functions mentioned in blocks or steps may be executed in a different order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or may be performed in reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 구조를 도시한 도면이다.1 is a diagram showing the structure of a data management apparatus that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 데이터 관리 장치(110)는 암호화 데이터 생성부(111), 데이터 분할부(112), 해시 값 생성부(!13), 데이터 분산 저장부(114), 트랜잭션 생성부(115) 및 블록체인 등록 요청부(116)를 포함한다.Referring to FIG. 1, the data management apparatus 110 according to the present invention includes an encrypted data generation unit 111, a data division unit 112, a hash value generation unit (!13), a data distribution storage unit 114, and a transaction. It includes a generation unit 115 and a block chain registration request unit 116.

우선, 본 발명에서는 복수의 노드 장치들(101, 102, 103, 104)이 각 노드 장치의 메모리에 암호화와 관련된 데이터를 분산해서 저장하기 위해 블록체인 네트워크를 구성하고 있다. 여기서, 복수의 노드 장치들(101, 102, 103, 104)은 네트워크 기능을 갖는 마이크로 프로세서 기반의 컴퓨팅 장치를 의미하며, 각 노드 장치의 메모리에는 소정의 암호화 데이터에 대한 해시 값을 포함하는 트랜잭션을 기반으로 생성된 블록들이 체인으로 연결되어 있는 블록체인 데이터가 저장되어 있다.First, in the present invention, a plurality of node devices 101, 102, 103, and 104 constitute a blockchain network in order to distribute and store encryption-related data in the memory of each node device. Here, the plurality of node devices 101, 102, 103, 104 means a microprocessor-based computing device having a network function, and a transaction including a hash value for predetermined encrypted data is stored in the memory of each node device. Blockchain data in which the blocks created based on the chain are connected is stored.

암호화 데이터 생성부(111)는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성한다.The encrypted data generation unit 111 generates encrypted data by encrypting plain text data to be encrypted using a predetermined encryption key.

데이터 분할부(112)는 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할한다.The data division unit 112 divides the encrypted data into n (n is a natural number of 2 or more) pieces of divided data.

예컨대, n이 10이라고 하는 경우, 데이터 분할부(112)는 상기 암호화 데이터를 10개의 분할 데이터로 분할 수 있다. 이때, 데이터 분할부(112)가 상기 암호화 데이터를 분할하는 방식은 상기 암호화 데이터를 구성하는 코드를 10등분으로 나누어 10개의 동일한 크기의 데이터로 분할하는 방식이 사용될 수 있다.For example, when n is 10, the data division unit 112 may divide the encrypted data into 10 pieces of divided data. In this case, the method of dividing the encrypted data by the data dividing unit 112 may be a method of dividing the code constituting the encrypted data into 10 equal parts and dividing it into 10 pieces of equal sized data.

해시 값 생성부(113)는 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성한다.The hash value generator 113 generates n hash values corresponding to each of the n pieces of divided data by applying the n pieces of divided data as inputs to n different predetermined hash functions.

데이터 분산 저장부(114)는 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장한다.The data distribution storage unit 114 distributes and stores the n pieces of divided data and a hash value corresponding to each of the n pieces of divided data in a pair of n data distribution stores.

관련해서, 10개의 분할 데이터와 상기 10개의 분할 데이터 각각에 대응하는 10개의 해시 값이 존재한다고 하는 경우, 데이터 분산 저장부(114)는 10개의 분할 데이터와 각 분할 데이터에 대응되는 해시 값을 하기의 표 1과 같이 10개의 데이터 분산 저장소에 한 쌍씩 분산 저장할 수 있다.In connection, when it is assumed that there are 10 pieces of divided data and 10 hash values corresponding to each of the 10 pieces of divided data, the data distribution storage unit 114 performs 10 pieces of divided data and hash values corresponding to each of the divided data. As shown in Table 1, 10 data distribution stores can be distributed and stored in pairs.

데이터 분산 저장소Data distributed storage 분할 데이터Split data 해시 값Hash value 데이터 분산 저장소 1Data Distributed Storage 1 분할 데이터 1Split data 1 해시 값 1Hash value 1 데이터 분산 저장소 2Data Distributed Storage 2 분할 데이터 2Split data 2 해시 값 2Hash value 2 데이터 분산 저장소 3Data Distributed Storage 3 분할 데이터 3Split data 3 해시 값 3Hash value 3 데이터 분산 저장소 4Data Distributed Storage 4 분할 데이터 4Split data 4 해시 값 4Hash value 4 데이터 분산 저장소 5Data Distributed Storage 5 분할 데이터 5Split data 5 해시 값 5Hash value 5 데이터 분산 저장소 6Data Distributed Storage 6 분할 데이터 6Split data 6 해시 값 6Hash value 6 데이터 분산 저장소 7Data Distributed Storage 7 분할 데이터 7Split data 7 해시 값 7Hash value 7 데이터 분산 저장소 8Data Distributed Storage 8 분할 데이터 8Split data 8 해시 값 8Hash value 8 데이터 분산 저장소 9Data Distributed Storage 9 분할 데이터 9Split data 9 해시 값 9Hash value 9 데이터 분산 저장소 10Data Distributed Storage 10 분할 데이터 10Split data 10 해시 값 10Hash value 10

트랜잭션 생성부(115)는 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성한다.When the n pieces of divided data and hash values are distributed and stored in the n pieces of data distribution storage, the transaction generating unit 115 generates a transaction including the n pieces of hash values.

블록체인 등록 요청부(116)는 블록체인 네트워크를 구성하는 복수의 노드 장치들(101, 102, 103, 104) 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.The block chain registration request unit 116 transmits the transaction to a first node device, which is one of a plurality of node devices 101, 102, 103, 104 constituting a block chain network, and transmits the transaction to the block chain of the transaction. Send a request for registration to the network.

이때, 본 발명의 일실시예에 따르면, 블록체인 등록 요청부(116)는 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하기 위한 상기 제1 노드 장치를 랜덤하게 선택할 수 있다. 관련해서, 본 실시예에서는 상기 제1 노드 장치를 도면부호 101로 표시한 노드 장치인 것으로 가정하고 설명하기로 한다.In this case, according to an embodiment of the present invention, the block chain registration request unit 116 may randomly select the first node device for transmitting the request for registration of the transaction to the block chain network. In connection with this, the description will be made on the assumption that the first node device is a node device indicated by reference numeral 101 in the present embodiment.

이때, 제1 노드 장치(101)는 데이터 관리 장치(110)로부터 상기 트랜잭션이 수신되면, 제1 노드 장치(101)의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 복수의 노드 장치들(101, 102, 103, 104) 중 제1 노드 장치(101)를 제외한 나머지 노드 장치들(102, 103, 104)로 전파할 수 있다.At this time, when the transaction is received from the data management device 110, the first node device 101 generates a block containing the transaction based on the block chain data stored in the memory of the first node device 101. And, after connecting the block to the block chain data in a chain, the block is connected to the remaining nodes except for the first node device 101 among a plurality of node devices 101, 102, 103, 104 through the block chain network. It can propagate to devices 102, 103, 104.

이때, 나머지 노드 장치들(102, 103, 104)은 상기 블록체인 네트워크를 통해 상기 블록이 수신되면, 나머지 노드 장치들(102, 103, 104) 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 상기 블록을 체인으로 연결하여 저장할 수 있다.At this time, when the block is received through the block chain network, the remaining node devices 102, 103, and 104 are stored in the block chain data stored in the memory of each of the remaining node devices 102, 103, and 104. The blocks can be linked and stored in a chain.

이를 통해, 상기 n개의 해시 값이 포함된 상기 트랜잭션은 복수의 노드 장치들(101, 102, 103, 104) 각각의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결되어 복수의 노드 장치들(101, 102, 103, 104) 각각에 저장될 수 있다.Through this, the transaction including the n number of hash values is connected in a chain to the blockchain data stored in the memory of each of the plurality of node devices 101, 102, 103, 104, and the plurality of node devices ( 101, 102, 103, 104) can be stored respectively.

이때, 본 발명의 일실시예에 따르면, 블록체인 등록 요청부(116)는 제1 노드 장치(101)로 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 과정에서 제1 노드 장치(101)를 인증하기 위한 구성으로, 인증용 행렬 저장부(117), 랜덤 행렬 생성부(118), 피드백 요청부(119), 인증 수행부(120) 및 요청 전송부(121)를 포함할 수 있다.At this time, according to an embodiment of the present invention, the block chain registration request unit 116 transmits the request for registration of the transaction to the block chain network to the first node device 101. ), and may include an authentication matrix storage unit 117, a random matrix generation unit 118, a feedback request unit 119, an authentication execution unit 120, and a request transmission unit 121. .

인증용 행렬 저장부(117)에는 노드 장치의 인증에 사용하기 위한 k x k(k는 2이상의 자연수) 크기의 미리 지정된 인증용 행렬이 저장되어 있다.The authentication matrix storage unit 117 stores a predetermined authentication matrix having a size of k x k (k is a natural number of 2 or more) for use in authentication of a node device.

랜덤 행렬 생성부(118)는 상기 트랜잭션이 생성되면, (k+t) x k(t은 k보다 작은 자연수) 크기를 갖는 랜덤한 성분 값들로 구성된 랜덤 행렬을 생성한다.When the transaction is generated, the random matrix generator 118 generates a random matrix composed of random component values having a size of (k+t) x k (t is a natural number less than k).

예컨대, 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬이 5 x 5 크기를 갖는 행렬이라고 하고, 상기 t를 3이라고 하는 경우, 랜덤 행렬 생성부(118)는 8 x 5 크기를 갖는 랜덤 행렬을 생성할 수 있다.For example, if the authentication matrix stored in the authentication matrix storage unit 117 is a matrix having a size of 5 x 5, and t is 3, the random matrix generator 118 sets the size of 8 x 5 You can create a random matrix with

피드백 요청부(119)는 복수의 노드 장치들(101, 102, 103, 104) 중 제1 노드 장치(101)를 랜덤하게 선택한 후 상기 랜덤 행렬을 제1 노드 장치(101)로 전송하면서, 제1 노드 장치(101)로 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청한다.The feedback request unit 119 randomly selects the first node device 101 from among the plurality of node devices 101, 102, 103, and 104, and then transmits the random matrix to the first node device 101. 1 Requests the node device 101 to transmit a feedback matrix corresponding to the random matrix.

이때, 본 발명의 일실시예에 따르면, 복수의 노드 장치들(101, 102, 103, 104)은 메모리 상에 상기 인증용 행렬을 저장하고 있을 수 있다.In this case, according to an embodiment of the present invention, the plurality of node devices 101, 102, 103 and 104 may store the authentication matrix in a memory.

이때, 제1 노드 장치(101)는 데이터 관리 장치(110)로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 변형 행렬을 생성하고, 제1 노드 장치(101)의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱(Hadamard product)을 연산하여 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 데이터 관리 장치(110)로 전송할 수 있다.At this time, when the random matrix is received from the data management device 110, the first node device 101 generates a transformation matrix by removing components of t rows existing at a preset position from the random matrix, After generating a first feedback matrix by calculating a Hadamard product between the authentication matrix and the transformation matrix stored in the memory of the node device 101, the first feedback matrix is converted into the data management device 110 ).

예컨대, 상기 랜덤 행렬이 8 x 5 크기를 갖는 행렬이라고 하고, 상기 사전 설정된 위치에 존재하는 t개의 행이 1행, 2행, 4행이라고 하는 경우, 제1 노드 장치(101)는 상기 랜덤 행렬에서 1행, 2행, 4행에 위치하는 성분들을 제거하여 5 x 5 크기의 변형 행렬을 생성하고, 메모리에 미리 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성할 수 있다.For example, if the random matrix is said to be a matrix having a size of 8 x 5, and t rows present at the preset positions are 1, 2, and 4 rows, the first node device 101 is the random matrix In the first row, the second row, and the fourth row are removed to generate a transformation matrix having a size of 5 x 5, and the Hadamard product between the authentication matrix and the transformation matrix stored in advance is calculated. You can create a feedback matrix.

여기서, 아다마르 곱이란 같은 크기의 행렬에서 각 성분을 곱하는 연산을 의미한다.Here, the Hadamard product means an operation that multiplies each component in a matrix of the same size.

인증 수행부(120)는 제1 노드 장치(101)로부터 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬(상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들이 제거되어 k x k 크기의 변형 행렬이 생성된 후 제1 노드 장치(101)에 기 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임)이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들을 제거하여 상기 변형 행렬을 생성한 후 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬이 상기 제1 피드백 행렬과 동일한지 확인함으로써, 제1 노드 장치(101)에 대한 인증을 수행한다.The authentication performing unit 120 uses a feedback matrix corresponding to the random matrix from the first node device 101 to a first feedback matrix (the first feedback matrix is a component of t rows present at a preset position in the random matrix). Is a matrix generated by calculating the Hadamard product between the authentication matrix and the transformation matrix previously stored in the first node device 101 after a transformation matrix having a kxk size is generated) is received, the random matrix The transformation matrix is generated by removing components of the t rows existing at the preset positions in, and then the Hadamard product between the authentication matrix and the transformation matrix is calculated to generate a first calculation matrix, and the first calculation matrix By checking whether this is the same as the first feedback matrix, authentication for the first node device 101 is performed.

즉, 인증 수행부(120)는 제1 노드 장치(101)로부터 수신된 상기 제1 피드백 행렬과 상기 제1 연산 행렬이 서로 일치하는 것으로 확인되는 경우, 제1 노드 장치(101)가 상기 인증용 행렬과 상기 사전 설정된 위치에 존재하는 t개의 행에 대한 정보를 정상적으로 공유하고 있는 장치인 것으로 볼 수 있기 때문에, 제1 노드 장치(101)에 대한 인증을 완료할 수 있다.That is, when it is determined that the first feedback matrix received from the first node device 101 and the first calculation matrix match each other, the authentication performing unit 120 performs the first node device 101 for the authentication. Since it can be regarded as a device that normally shares information about the matrix and t rows existing at the preset position, the authentication for the first node device 101 can be completed.

요청 전송부(121)는 제1 노드 장치(101)에 대한 인증이 완료되면, 제1 노드 장치(101)로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.When the authentication for the first node device 101 is completed, the request transmission unit 121 transmits a request for registration of the transaction to the blockchain network while transmitting the transaction to the first node device 101.

이때, 본 발명의 일실시예에 따르면, 데이터 관리 장치(110)는 행렬 갱신부(122) 및 갱신 명령 전송부(123)를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the data management apparatus 110 may further include a matrix update unit 122 and an update command transmission unit 123.

행렬 갱신부(122)는 제1 노드 장치(101)로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체한다.When the transaction and the request for registration of the transaction to the blockchain network are transmitted to the first node device 101, the matrix update unit 122 is a correction matrix having a correction value of more than 0 and less than 1 as a component. After randomly generating an update matrix for updating the authentication matrix by multiplying the authentication matrix and the correction matrix, the authentication matrix stored in the authentication matrix storage unit 117 is updated. Replace with matrix.

갱신 명령 전송부(123)는 상기 갱신 행렬을 복수의 노드 장치들(101, 102, 103, 104)로 전송하면서, 복수의 노드 장치들(101, 102, 103, 104)에 대해 복수의 노드 장치들(101, 102, 103, 104)의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송한다.The update command transmission unit 123 transmits the update matrix to a plurality of node devices 101, 102, 103, 104, and provides a plurality of node devices for a plurality of node devices 101, 102, 103, 104. An update command instructing to replace the authentication matrix stored in the memory of the s 101, 102, 103 and 104 with the update matrix is transmitted.

이때, 복수의 노드 장치들(101, 102, 103, 104)은 데이터 관리 장치(110)로부터 상기 갱신 행렬과 함께 상기 갱신 명령이 수신되면, 상기 갱신 명령에 기초하여 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 수 있다.At this time, when the update command is received from the data management device 110 along with the update matrix, the plurality of node devices 101, 102, 103, and 104 receive the authentication stored in the memory based on the update command. The dragon matrix can be replaced with the update matrix.

예컨대, 상기 인증용 행렬이 5 x 5 크기의 행렬이라고 하는 경우, 행렬 갱신부(122)는 0 초과 1 미만의 보정 값들을 성분으로 갖는 5 x 5 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 5 x 5 크기의 갱신 행렬을 생성할 수 있다. 그러고 나서, 행렬 갱신부(122)는 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하고, 갱신 명령 전송부(123)는 상기 갱신 행렬을 복수의 노드 장치들(101, 102, 103, 104)에 제공함으로써, 노드 장치의 인증에 사용되는 상기 인증용 행렬이 데이터를 암호화하여 저장할 때마다 매번 달라지도록 구성할 수 있다. 이렇게, 상기 인증용 행렬이 매번 달라지게 되면, 그만큼 보안성이 강화되는 장점이 있다.For example, if the authentication matrix is a matrix of size 5 x 5, the matrix update unit 122 randomly generates a 5 x 5 size correction matrix having correction values greater than 0 and less than 1 as components, and then the authentication An update matrix having a size of 5 x 5 may be generated by multiplying the dragon matrix and the correction matrix. Then, the matrix update unit 122 replaces the authentication matrix stored in the authentication matrix storage unit 117 with the update matrix, and the update command transmission unit 123 replaces the update matrix with a plurality of node devices. By providing the data to the nodes 101, 102, 103, and 104, the authentication matrix used for authentication of the node device can be configured to be changed every time data is encrypted and stored. In this way, if the authentication matrix is changed each time, there is an advantage in that security is strengthened.

본 발명의 일실시예에 따르면, 데이터 관리 장치(110)는 해시 값 요청부(124), 분할 데이터 추출부(125), 데이터 결합부(126) 및 복호화부(127)를 더 포함할 수 있다.According to an embodiment of the present invention, the data management device 110 may further include a hash value request unit 124, a divided data extractor 125, a data combination unit 126, and a decoding unit 127. .

해시 값 요청부(124)는 상기 블록이 나머지 노드 장치들(102, 103, 104)로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 복수의 노드 장치들(101, 102, 103, 104) 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청한다.After the block has been propagated to the remaining node devices 102, 103, and 104, the hash value requesting unit 124, when a decryption command is applied to the encrypted data, is applied to a plurality of node devices 101, 102, 103. , 104) randomly selects a second node device, and then requests the second node device to transmit the n number of hash values included in the blockchain data.

본 실시예에서는 상기 제2 노드 장치를 도면부호 102로 표시한 노드 장치인 것으로 가정하고 설명하기로 한다.In the present embodiment, the description will be made on the assumption that the second node device is a node device indicated by reference numeral 102.

이때, 제2 노드 장치(102)는 데이터 관리 장치(110)로부터 상기 n개의 해시 값에 대한 전송 요청이 수신되면, 제2 노드 장치(102)의 메모리에 저장되어 있는 상기 블록체인 데이터에서 체인으로 연결되어 있는 상기 블록 내에 포함된 트랜잭션으로부터 상기 n개의 해시 값을 추출하여 상기 n개의 해시 값을 데이터 관리 장치(110)로 전송할 수 있다.At this time, when a request for transmission of the n number of hash values is received from the data management device 110, the second node device 102 transmits the block chain data stored in the memory of the second node device 102 to the chain. The n number of hash values may be extracted from a transaction included in the connected block, and the n number of hash values may be transmitted to the data management device 110.

분할 데이터 추출부(125)는 제2 노드 장치(102)로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출한다.When the n number of hash values are received from the second node device 102, the divided data extracting unit 125 stores the n number of hash values from each of the n data distribution stores based on the n number of hash values. The n pieces of divided data are extracted.

예컨대, 상기 표 1과 같이 10개의 데이터 저장소에 10개의 분할 데이터와 대응되는 해시 값이 분산 저장되어 있다고 하는 경우, 분할 데이터 추출부(125)는 제2 노드 장치(102)로부터 10개의 해시 값이 수신되면, 수신된 10개의 해시 값을 데이터 검색을 위한 인덱싱 정보로 활용해서 상기 10개의 데이터 저장소 각각으로부터 각 해시 값에 대응되는 분할 데이터를 추출할 수 있다.For example, as shown in Table 1 above, when it is assumed that hash values corresponding to 10 pieces of divided data are distributed and stored in 10 data stores, the divided data extracting unit 125 receives 10 hash values from the second node device 102. When received, the received 10 hash values may be used as indexing information for data search, and divided data corresponding to each hash value may be extracted from each of the 10 data stores.

데이터 결합부(126)는 상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성한다.When the n pieces of divided data are extracted, the data combiner 126 combines the n pieces of divided data to generate the encrypted data.

복호화부(127)는 상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원한다.When the encrypted data is generated, the decryption unit 127 restores the plain text data by decrypting the encrypted data using the encryption key.

관련해서, 전술한 예시와 같이 10개의 데이터 저장소로부터 10개의 분할 데이터가 추출되었다고 하는 경우, 데이터 결합부(126)는 10개의 분할 데이터를 데이터 분할부(112)가 데이터를 분할하는 방식과 반대되는 방식으로 결합함으로써, 암호화 데이터를 생성할 수 있다. 그러고 나서, 복호화부(127)는 상기 암호화 데이터를 생성하는데 사용되었던 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 원래의 평문 데이터를 복원할 수 있다.In relation to the above, when it is assumed that 10 pieces of divided data are extracted from 10 data stores, the data combination unit 126 divides the 10 pieces of data into the data division unit 112, which is opposite to the method of dividing the data. By combining in a manner, it is possible to generate encrypted data. Then, the decryption unit 127 may restore the original plaintext data by decrypting the encrypted data using the encryption key used to generate the encrypted data.

결국, 본 발명에 따른 데이터 관리 장치(110)는 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있다.Eventually, the data management device 110 according to the present invention encrypts plain text data and then divides it into a plurality of divided data, and distributes and stores it in different data storage together with a hash value corresponding to each divided data. By registering and managing the corresponding hash value in the blockchain network, it is possible to prevent the plain text data from being easily exposed by a third party.

도 2는 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법을 도시한 순서도이다.2 is a flow chart illustrating a method of operating a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention.

단계(S210)에서는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성한다.In step S210, encrypted data is generated by encrypting plain text data to be encrypted using a predetermined encryption key.

단계(S220)에서는 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할한다.In step S220, the encrypted data is divided into n (n is a natural number of 2 or more) divided data.

단계(S230)에서는 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성한다.In step S230, the n pieces of divided data are applied as inputs to n different predetermined hash functions to generate n pieces of hash values corresponding to each of the n pieces of divided data.

단계(S240)에서는 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장한다.In step S240, the n pieces of divided data and the hash values corresponding to each of the n pieces of divided data are distributedly stored in n data distribution stores by pair.

단계(S250)에서는 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성한다.In step S250, when the n pieces of divided data and hash values are distributed and stored in the n pieces of data distribution storage, a transaction including the n pieces of hash values is generated.

단계(S260)에서는 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.In step S260, while transmitting the transaction to a first node device, which is one of a plurality of node devices constituting the block chain network, a request for registration of the transaction to the block chain network is transmitted.

이때, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.At this time, when the transaction is received from the data management device, the first node device generates a block containing the transaction based on the block chain data stored in the memory of the first node device, and generates the block. After connecting the block chain data in a chain, the block may be propagated to the rest of the node devices except for the first node device among the plurality of node devices through the block chain network.

이때, 본 발명의 일실시예에 따르면, 단계(S260)에서는 노드 장치의 인증에 사용하기 위한 k x k(k는 2이상의 자연수) 크기의 미리 지정된 인증용 행렬이 저장되어 있는 인증용 행렬 저장부를 유지하는 단계, 상기 트랜잭션이 생성되면, (k+t) x k(t은 k보다 작은 자연수) 크기를 갖는 랜덤한 성분 값들로 구성된 랜덤 행렬을 생성하는 단계, 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 랜덤하게 선택한 후 상기 랜덤 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 단계, 상기 제1 노드 장치로부터 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬(상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들이 제거되어 k x k 크기의 변형 행렬이 생성된 후 상기 제1 노드 장치에 기 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임)이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들을 제거하여 상기 변형 행렬을 생성한 후 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬이 상기 제1 피드백 행렬과 동일한지 확인함으로써, 상기 제1 노드 장치에 대한 인증을 수행하는 단계 및 상기 제1 노드 장치에 대한 인증이 완료되면, 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 포함할 수 있다.At this time, according to an embodiment of the present invention, in step S260, an authentication matrix storage unit in which a predetermined authentication matrix having a size of kxk (k is a natural number of 2 or more) for use in authentication of a node device is stored is maintained. When the transaction is generated, generating a random matrix consisting of random component values having a size of (k+t) xk (t is a natural number less than k), the first node device among the plurality of node devices Randomly selecting and transmitting the random matrix to the first node device, requesting transmission of a feedback matrix corresponding to the random matrix to the first node device, and corresponding to the random matrix from the first node device A first feedback matrix as a feedback matrix (the first feedback matrix is pre-stored in the first node device after components of t rows present at preset positions in the random matrix are removed to generate a transformation matrix having a size of kxk. When a matrix generated by calculating the Hadamard product between the authentication matrix and the transformation matrix) is received, the transformation matrix is generated by removing components of t rows present at the preset positions from the random matrix. Thereafter, the Hadamard product between the authentication matrix and the transformation matrix is calculated to generate a first calculation matrix, and authentication for the first node device is performed by checking whether the first calculation matrix is the same as the first feedback matrix. And when authentication for the first node device is completed, transmitting the transaction to the first node device, and transmitting a request for registration of the transaction to the blockchain network.

이때, 본 발명의 일실시예에 따르면, 상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송할 수 있다.At this time, according to an embodiment of the present invention, the plurality of node devices store the authentication matrix in a memory, and the first node device receives the random matrix from the data management device, the random matrix The transformation matrix is generated by removing the components of the t rows existing at the preset positions, and the Hadamard product between the authentication matrix and the transformation matrix stored in the memory of the first node device is calculated. After generating the first feedback matrix, the first feedback matrix may be transmitted to the data management device.

이때, 본 발명의 일실시예에 따르면, 상기 데이터 관리 장치의 동작 방법은 상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 단계 및 상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the operation method of the data management device is, when the transaction and the request for registration of the transaction to the blockchain network are transmitted to the first node device, correction of more than 0 and less than 1 After randomly generating a kxk-sized correction matrix having values as components, the authentication matrix and the correction matrix are multiplied with each other to generate an update matrix for updating the authentication matrix, and then stored in the authentication matrix storage unit. Replacing the existing authentication matrix with the update matrix, and transmitting the update matrix to the plurality of node devices, and the authentication stored in the memory of the plurality of node devices for the plurality of node devices. It may further include transmitting an update command instructing to replace the dragon matrix with the update matrix.

또한, 본 발명의 일실시예에 따르면, 상기 데이터 관리 장치의 동작 방법은 상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 단계, 상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 단계, 상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 단계 및 상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, the operation method of the data management device is, after the block has been propagated to the remaining node devices, when a decryption command for the encrypted data is applied, the plurality of node devices After randomly selecting any one of the second node devices, requesting transmission of the n number of hash values included in the block chain data to the second node device, the n number of hash values from the second node device When received, extracting the n pieces of divided data stored in correspondence with the n pieces of hash values from each of the n pieces of data distribution storage based on the n pieces of hash values, when the n pieces of divided data are extracted, The step of generating the encrypted data by combining the n pieces of divided data, and when the encrypted data is generated, decrypting the encrypted data using the encryption key, thereby restoring the plaintext data.

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 도 1을 이용하여 설명한 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, a method of operating a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention has been described with reference to FIG. 2. Here, the operation method of the data management device enabling distributed encryption management of data based on a block chain according to an embodiment of the present invention enables distributed encryption management of data based on the block chain described with reference to FIG. Since it may correspond to the configuration of the operation of the data management device 110, a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.An operating method of a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through a combination with a computer.

또한, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, a method of operating a data management device that enables distributed encryption management of data based on a block chain according to an embodiment of the present invention is implemented in the form of program instructions that can be executed through various computer means, and is a computer-readable medium. Can be written on. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded in the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , If a person of ordinary skill in the field to which the present invention belongs, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the described embodiments and should not be defined, and all things that are equivalent or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. .

110: 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치
111: 암호화 데이터 생성부 112: 데이터 분할부
113: 해시 값 생성부 114: 데이터 분산 저장부
115: 트랜잭션 생성부 116: 블록체인 등록 요청부
117: 인증용 행렬 저장부 118: 랜덤 행렬 생성부
119: 피드백 요청부 120: 인증 수행부
121: 요청 전송부 122: 행렬 갱신부
123: 갱신 명령 전송부 124: 해시 값 요청부
125: 분할 데이터 추출부 126: 데이터 결합부
127: 복호화부
110: A data management device that enables distributed encryption management of data based on a blockchain
111: encrypted data generation unit 112: data division unit
113: hash value generation unit 114: data distribution storage unit
115: transaction generation unit 116: block chain registration request unit
117: authentication matrix storage unit 118: random matrix generation unit
119: feedback request unit 120: authentication execution unit
121: request transmission unit 122: matrix update unit
123: update command transmission unit 124: hash value request unit
125: divided data extracting unit 126: data combining unit
127: decoding unit

Claims (12)

블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치에 있어서,
암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 암호화 데이터 생성부;
상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 데이터 분할부;
상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 해시 값 생성부;
상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 데이터 분산 저장부;
상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 트랜잭션 생성부; 및
블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 블록체인 등록 요청부
를 포함하고,
상기 제1 노드 장치는
상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
In a data management device that enables distributed encryption management of data based on a block chain,
An encrypted data generator configured to generate encrypted data by encrypting plain text data to be encrypted using a predetermined encryption key;
A data dividing unit for dividing the encrypted data into n (n is a natural number of 2 or more) pieces of divided data;
A hash value generator configured to generate n hash values corresponding to each of the n pieces of divided data by applying the n pieces of divided data as inputs to n different predetermined hash functions;
A data distribution storage unit for distributing and storing the n pieces of divided data and a hash value corresponding to each of the n pieces of divided data in n data distribution stores;
A transaction generator for generating a transaction including the n number of hash values when the n pieces of divided data and hash values are distributed and stored in the n pieces of data distribution storage; And
Blockchain registration request unit that transmits the request for registration of the transaction to the blockchain network while transmitting the transaction to a first node device, which is one of a plurality of node devices constituting a blockchain network
Including,
The first node device
When the transaction is received from the data management device, a block containing the transaction is created based on the block chain data stored in the memory of the first node device, and the block is chained to the block chain data. A data management device that enables distributed encryption management of data based on a block chain that then propagates the block to other node devices other than the first node device among the plurality of node devices through the block chain network.
제1항에 있어서,
상기 블록체인 등록 요청부는
노드 장치의 인증에 사용하기 위한 k x k(k는 2이상의 자연수) 크기의 미리 지정된 인증용 행렬이 저장되어 있는 인증용 행렬 저장부;
상기 트랜잭션이 생성되면, (k+t) x k(t은 k보다 작은 자연수) 크기를 갖는 랜덤한 성분 값들로 구성된 랜덤 행렬을 생성하는 랜덤 행렬 생성부;
상기 복수의 노드 장치들 중 상기 제1 노드 장치를 랜덤하게 선택한 후 상기 랜덤 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 피드백 요청부;
상기 제1 노드 장치로부터 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들이 제거되어 k x k 크기의 변형 행렬이 생성된 후 상기 제1 노드 장치에 기 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱(Hadamard product)이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들을 제거하여 상기 변형 행렬을 생성한 후 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬이 상기 제1 피드백 행렬과 동일한지 확인함으로써, 상기 제1 노드 장치에 대한 인증을 수행하는 인증 수행부; 및
상기 제1 노드 장치에 대한 인증이 완료되면, 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 요청 전송부
를 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
The method of claim 1,
The block chain registration request unit
An authentication matrix storage unit storing a predetermined authentication matrix having a size of kxk (k is a natural number of 2 or more) for use in authentication of a node device;
A random matrix generator for generating a random matrix composed of random component values having a size of (k+t) xk (t is a natural number less than k) when the transaction is generated;
Feedback for requesting transmission of a feedback matrix corresponding to the random matrix to the first node device while transmitting the random matrix to the first node device after randomly selecting the first node device among the plurality of node devices Request part;
A first feedback matrix from the first node device to a feedback matrix corresponding to the random matrix-In the first feedback matrix, components of t rows existing at preset positions in the random matrix are removed, resulting in a transformation matrix having a size of kxk. It is a matrix generated by calculating a Hadamard product between the authentication matrix and the transformation matrix previously stored in the first node device after being generated-When is received, at the preset position in the random matrix After the transformation matrix is generated by removing components of the t rows, a first calculation matrix is calculated by calculating the Hadamard product between the authentication matrix and the transformation matrix, and the first calculation matrix is the first feedback matrix An authentication performing unit that performs authentication on the first node device by checking whether it is the same as And
When authentication for the first node device is completed, a request transmission unit that transmits the transaction to the first node device and transmits a request for registration of the transaction to the blockchain network
A data management device that enables distributed encryption management of data based on a block chain that includes.
제2항에 있어서,
상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고,
상기 제1 노드 장치는
상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
The method of claim 2,
The plurality of node devices store the authentication matrix in a memory,
The first node device
When the random matrix is received from the data management device, the transformation matrix is generated by removing components of t rows present at the preset positions from the random matrix, and stored in the memory of the first node device. To enable distributed encryption management of data based on a blockchain that generates the first feedback matrix by calculating the Hadamard product between the authentication matrix and the transformation matrix and then transmits the first feedback matrix to the data management device. Data management device.
제3항에 있어서,
상기 데이터 관리 장치는
상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 행렬 갱신부; 및
상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 갱신 명령 전송부
를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
The method of claim 3,
The data management device
When the transaction and the request for registration of the transaction to the blockchain network are transmitted to the first node device, a kxk-sized correction matrix having correction values greater than 0 and less than 1 is randomly generated, and then used for the authentication. A matrix update unit for generating an update matrix for updating the authentication matrix by multiplying the matrix and the correction matrix, and then replacing the authentication matrix stored in the authentication matrix storage unit with the update matrix; And
An update command instructing the plurality of node devices to replace the authentication matrix stored in the memory of the plurality of node devices with the update matrix while transmitting the update matrix to the plurality of node devices Update command transmission unit that transmits
A data management device that enables distributed encryption management of data based on a blockchain further comprising a.
제1항에 있어서,
상기 데이터 관리 장치는
상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 해시 값 요청부;
상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 분할 데이터 추출부;
상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 데이터 결합부; 및
상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 복호화부
를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
The method of claim 1,
The data management device
After the block has been propagated to the remaining node devices, when a decryption command for the encrypted data is applied, a second node device, which is one of the plurality of node devices, is randomly selected and then transferred to the second node device. A hash value request unit for requesting transmission of the n number of hash values included in the block chain data;
When the n number of hash values are received from the second node device, extracting the n pieces of divided data stored in correspondence with the n number of hash values from each of the n data distribution stores based on the n number of hash values Segmented data extraction unit;
A data combiner configured to generate the encrypted data by combining the n pieces of divided data when the n pieces of divided data are extracted; And
When the encrypted data is generated, a decryption unit for restoring the plain text data by decrypting the encrypted data using the encryption key
A data management device that enables distributed encryption management of data based on a blockchain further comprising a.
블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법에 있어서,
암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 단계;
상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 단계;
상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 단계;
상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 단계;
상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 단계; 및
블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계
를 포함하고,
상기 제1 노드 장치는
상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
In the operation method of a data management device that enables distributed encryption management of data based on a block chain,
Generating encrypted data by encrypting plain text data to be encrypted using a predetermined encryption key;
Dividing the encrypted data into n (n is a natural number of 2 or more) divided data;
Generating n hash values corresponding to each of the n pieces of divided data by applying the n pieces of divided data as inputs to n different predetermined hash functions;
Distributing and storing each pair of hash values corresponding to the n pieces of divided data and each of the n pieces of divided data in n data distribution stores;
Generating a transaction including the n number of hash values when the n pieces of divided data and hash values are distributed and stored in the n pieces of data distribution storage; And
Sending a request for registration of the transaction to the blockchain network while transmitting the transaction to a first node device, which is one of a plurality of node devices constituting a blockchain network.
Including,
The first node device
When the transaction is received from the data management device, a block containing the transaction is created based on the block chain data stored in the memory of the first node device, and the block is chained to the block chain data. Afterwards, operation of a data management device enabling distributed encryption management of data based on a block chain that propagates the block to other node devices other than the first node device among the plurality of node devices through the block chain network. Way.
제6항에 있어서,
상기 블록체인 네트워크로의 등록 요청을 전송하는 단계는
노드 장치의 인증에 사용하기 위한 k x k(k는 2이상의 자연수) 크기의 미리 지정된 인증용 행렬이 저장되어 있는 인증용 행렬 저장부를 유지하는 단계;
상기 트랜잭션이 생성되면, (k+t) x k(t은 k보다 작은 자연수) 크기를 갖는 랜덤한 성분 값들로 구성된 랜덤 행렬을 생성하는 단계;
상기 복수의 노드 장치들 중 상기 제1 노드 장치를 랜덤하게 선택한 후 상기 랜덤 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청하는 단계;
상기 제1 노드 장치로부터 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들이 제거되어 k x k 크기의 변형 행렬이 생성된 후 상기 제1 노드 장치에 기 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱(Hadamard product)이 연산되어 생성된 행렬임 - 이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들을 제거하여 상기 변형 행렬을 생성한 후 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬이 상기 제1 피드백 행렬과 동일한지 확인함으로써, 상기 제1 노드 장치에 대한 인증을 수행하는 단계; 및
상기 제1 노드 장치에 대한 인증이 완료되면, 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계
를 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
The method of claim 6,
Transmitting the registration request to the blockchain network
Maintaining an authentication matrix storage unit storing a predetermined authentication matrix having a size of kxk (k is a natural number greater than or equal to 2) for use in authentication of a node device;
Generating a random matrix composed of random component values having a size of (k+t) xk (t is a natural number less than k) when the transaction is generated;
Requesting the first node device to transmit a feedback matrix corresponding to the random matrix while transmitting the random matrix to the first node device after randomly selecting the first node device among the plurality of node devices ;
A first feedback matrix from the first node device to a feedback matrix corresponding to the random matrix-In the first feedback matrix, components of t rows existing at preset positions in the random matrix are removed, resulting in a transformation matrix having a size of kxk. It is a matrix generated by calculating a Hadamard product between the authentication matrix and the transformation matrix previously stored in the first node device after being generated-When is received, at the preset position in the random matrix After the transformation matrix is generated by removing components of the t rows, a first calculation matrix is calculated by calculating the Hadamard product between the authentication matrix and the transformation matrix, and the first calculation matrix is the first feedback matrix Performing authentication for the first node device by checking whether it is the same as And
Upon completion of the authentication for the first node device, transmitting the transaction to the first node device, transmitting a request for registration of the transaction to the blockchain network
A method of operating a data management device that enables distributed encryption management of data based on a block chain comprising a.
제7항에 있어서,
상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고,
상기 제1 노드 장치는
상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
The method of claim 7,
The plurality of node devices store the authentication matrix in a memory,
The first node device
When the random matrix is received from the data management device, the transformation matrix is generated by removing components of t rows present at the preset positions from the random matrix, and stored in the memory of the first node device. To enable distributed encryption management of data based on a blockchain that generates the first feedback matrix by calculating the Hadamard product between the authentication matrix and the transformation matrix and then transmits the first feedback matrix to the data management device. How the data management device works.
제8항에 있어서,
상기 데이터 관리 장치의 동작 방법은
상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 단계; 및
상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계
를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
The method of claim 8,
The operating method of the data management device
When the transaction and the request for registration of the transaction to the blockchain network are transmitted to the first node device, a kxk-sized correction matrix having correction values greater than 0 and less than 1 is randomly generated, and then used for the authentication. Generating an update matrix for updating the authentication matrix by multiplying the matrix and the correction matrix, and then replacing the authentication matrix stored in the authentication matrix storage unit with the update matrix; And
An update command instructing the plurality of node devices to replace the authentication matrix stored in the memory of the plurality of node devices with the update matrix while transmitting the update matrix to the plurality of node devices Steps to transfer
A method of operating a data management device that enables distributed encryption management of data based on a blockchain further comprising a.
제6항에 있어서,
상기 데이터 관리 장치의 동작 방법은
상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 단계;
상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 단계;
상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 단계; 및
상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 단계
를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
The method of claim 6,
The operating method of the data management device
After the block has been propagated to the remaining node devices, when a decryption command for the encrypted data is applied, a second node device, which is one of the plurality of node devices, is randomly selected and then transferred to the second node device. Requesting transmission of the n number of hash values included in the blockchain data;
When the n number of hash values are received from the second node device, extracting the n pieces of divided data stored in correspondence with the n number of hash values from each of the n data distribution stores based on the n number of hash values step;
When the n pieces of divided data are extracted, combining the n pieces of divided data to generate the encrypted data; And
When the encrypted data is generated, restoring the plaintext data by decrypting the encrypted data using the encryption key
A method of operating a data management device that enables distributed encryption management of data based on a blockchain further comprising a.
제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 6 to 10 through combination with a computer. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 6 to 10 through combination with a computer.
KR1020190122829A 2019-06-13 2019-10-04 Data management device that enables distributed encryption management of data based on blockchain and operating method thereof KR102295263B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190069930 2019-06-13
KR20190069930 2019-06-13

Publications (2)

Publication Number Publication Date
KR20200143197A true KR20200143197A (en) 2020-12-23
KR102295263B1 KR102295263B1 (en) 2021-08-30

Family

ID=74089615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190122829A KR102295263B1 (en) 2019-06-13 2019-10-04 Data management device that enables distributed encryption management of data based on blockchain and operating method thereof

Country Status (1)

Country Link
KR (1) KR102295263B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328106B1 (en) * 2021-05-10 2021-11-17 주식회사 삼마아이씨티 System and method for encrypting images
KR20220125151A (en) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 Business card making service providing server to provide the business card making service that makes the business card with the two-dimensional code that includes the access information about the web page on which the user's introduction information is posted inserted and operating method thereof
KR20220125145A (en) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 Copy protection server that enables copy protection for paper documents that require copy protection through interworking with copy machine and operating method thereof
KR20230020086A (en) 2021-08-03 2023-02-10 주식회사 아토믹스소프트 File distribution system using blockchain and distributed encryption
KR20230030863A (en) * 2021-08-26 2023-03-07 에이치닥 테크놀로지 아게 Operating server of nft trading service which enables modification of storage route information, included in nft, and the operating method thereof
CN117592087A (en) * 2024-01-18 2024-02-23 三一智造(深圳)有限公司 Data security encryption protection system based on block chain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040017312A (en) * 2001-07-17 2004-02-26 샤프 가부시키가이샤 Apparatus and method for generating data for detecting false alteration of encrypted data during processing
JP2008287488A (en) * 2007-05-17 2008-11-27 Psd:Kk Data distributing and preserving unit
KR20170010787A (en) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 Distributed secure data storage and transmission of streaming media content
KR101781583B1 (en) * 2016-08-31 2017-09-27 서강대학교산학협력단 File management and search system based on block chain and file management and search method
KR20190036948A (en) * 2017-09-28 2019-04-05 주식회사 케이티 System and Method for Managing Original Data in Block-Chain

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040017312A (en) * 2001-07-17 2004-02-26 샤프 가부시키가이샤 Apparatus and method for generating data for detecting false alteration of encrypted data during processing
JP2008287488A (en) * 2007-05-17 2008-11-27 Psd:Kk Data distributing and preserving unit
KR20170010787A (en) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 Distributed secure data storage and transmission of streaming media content
KR101781583B1 (en) * 2016-08-31 2017-09-27 서강대학교산학협력단 File management and search system based on block chain and file management and search method
KR20190036948A (en) * 2017-09-28 2019-04-05 주식회사 케이티 System and Method for Managing Original Data in Block-Chain

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220125151A (en) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 Business card making service providing server to provide the business card making service that makes the business card with the two-dimensional code that includes the access information about the web page on which the user's introduction information is posted inserted and operating method thereof
KR20220125145A (en) * 2021-03-04 2022-09-14 주식회사 한컴코드게이트 Copy protection server that enables copy protection for paper documents that require copy protection through interworking with copy machine and operating method thereof
KR102328106B1 (en) * 2021-05-10 2021-11-17 주식회사 삼마아이씨티 System and method for encrypting images
KR20230020086A (en) 2021-08-03 2023-02-10 주식회사 아토믹스소프트 File distribution system using blockchain and distributed encryption
KR20230030863A (en) * 2021-08-26 2023-03-07 에이치닥 테크놀로지 아게 Operating server of nft trading service which enables modification of storage route information, included in nft, and the operating method thereof
CN117592087A (en) * 2024-01-18 2024-02-23 三一智造(深圳)有限公司 Data security encryption protection system based on block chain
CN117592087B (en) * 2024-01-18 2024-05-07 三一智造(深圳)有限公司 Data security encryption protection system based on block chain

Also Published As

Publication number Publication date
KR102295263B1 (en) 2021-08-30

Similar Documents

Publication Publication Date Title
KR102295263B1 (en) Data management device that enables distributed encryption management of data based on blockchain and operating method thereof
US11265322B2 (en) Data isolation in blockchain networks
US10917230B2 (en) Managing sensitive data elements in a blockchain network
WO2020034754A1 (en) Secure multi-party computation method and apparatus, and electronic device
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
US8077863B2 (en) Secret sharing apparatus, method, and program
EP3685334A2 (en) Improving integrity of communications between blockchain networks and external data sources
US9021259B2 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
US10361840B2 (en) Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
Li et al. Towards privacy-preserving storage and retrieval in multiple clouds
CN110061840A (en) Data ciphering method, device, computer equipment and storage medium
Sookhak et al. Towards dynamic remote data auditing in computational clouds
US9584315B2 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
KR102228210B1 (en) Node device that enables the deletion of a transaction in a block chain network and operating method thereof
US11128457B2 (en) Cryptographic key generation using external entropy generation
KR102244290B1 (en) Encryption communication apparatus that supports secure communication between a data transmitting apparatus and a data receiving apparatus, and the operating method thereof
US9641328B1 (en) Generation of public-private key pairs
CN104618096A (en) Method and device for protecting secret key authorized data, and TPM (trusted platform module) secrete key management center
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
US11438156B2 (en) Method and system for securing data
WO2017126571A1 (en) Ciphertext management method, ciphertext management device, and program
KR102096359B1 (en) Data transmission apparatus capable of secret key encryption based on involutory matrix and operating method thereof
KR102602189B1 (en) Document sharing service server for managing document sharing service based on cloud, and the operating method thereof
KR102442674B1 (en) Access controlling server which controls the access to the private cloud server and the operating method thereof
CN113342802A (en) Method and device for storing block chain data

Legal Events

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