KR102295263B1 - 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법 - Google Patents

블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법 Download PDF

Info

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

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

Abstract

블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법이 개시된다. 본 발명에 따른 데이터 관리 장치 및 그 동작 방법은 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있다.

Description

블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법{DATA MANAGEMENT DEVICE THAT ENABLES DISTRIBUTED ENCRYPTION MANAGEMENT OF DATA BASED ON BLOCKCHAIN AND OPERATING METHOD THEREOF}
본 발명은 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법에 대한 것이다.
최근, 소정의 데이터를 체인화된 블록으로 구성하여 중앙 서버가 아닌 노드들에 분산 저장함으로써, 해당 데이터에 대한 무결성을 보장할 수 있는 블록체인 기술이 널리 활용되고 있다.
블록체인 기술은 트랜잭션이라고 하는 소정의 데이터가 생성되면, 블록체인 네트워크에 참여하고 있는 복수의 노드 장치들 중 어느 하나의 노드 장치가 여러 블록들이 체인으로 연결되어 있는 블록체인 데이터에 포함된 이전 블록을 기초로 상기 트랜잭션이 포함된 새로운 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 다른 노드 장치들로 배포함으로써, 소정의 데이터가 복수의 노드 장치들에 분산 저장되도록 하는 기술을 의미한다.
아울러, 최근에는 데이터 해킹 기술이 고도로 발달함에 따라 개인정보와 같은 민감한 데이터가 해커에 의해 노출되는 사고가 증가하면서, 데이터의 노출을 방지하기 위한 데이터 암호화 기술에 대한 관심이 증가하고 있다.
기존에는 단순히 소정의 암호화키로 데이터를 암호화하여 보관 및 관리하고 있었다는 점에서 암호화키의 패턴이 노출되는 경우, 원본 데이터가 손쉽게 노출되는 문제가 있었다. 따라서, 단순히 암호화키로 데이터를 암호화하는 것을 넘어서 보다 고도화된 방식의 암호화 기술에 대한 연구가 필요하다. 특히, 블록체인 기술의 관심이 증폭됨에 따라 이러한 블록체인 기술을 활용해서 데이터를 암호화하여 보관 및 관리할 수 있도록 하는 기술의 연구가 필요하다.
본 발명에 따른 데이터 관리 장치 및 그 동작 방법은 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있도록 한다.
본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 암호화 데이터 생성부, 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 데이터 분할부, 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 해시 값 생성부, 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 데이터 분산 저장부, 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 트랜잭션 생성부 및 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 블록체인 등록 요청부를 포함하고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파한다.
또한, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 단계, 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 단계, 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 단계, 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 단계, 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 단계 및 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 포함하고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파한다.
본 발명에 따른 데이터 관리 장치 및 그 동작 방법은 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 데이터 관리 장치(110)는 암호화 데이터 생성부(111), 데이터 분할부(112), 해시 값 생성부(!13), 데이터 분산 저장부(114), 트랜잭션 생성부(115) 및 블록체인 등록 요청부(116)를 포함한다.
우선, 본 발명에서는 복수의 노드 장치들(101, 102, 103, 104)이 각 노드 장치의 메모리에 암호화와 관련된 데이터를 분산해서 저장하기 위해 블록체인 네트워크를 구성하고 있다. 여기서, 복수의 노드 장치들(101, 102, 103, 104)은 네트워크 기능을 갖는 마이크로 프로세서 기반의 컴퓨팅 장치를 의미하며, 각 노드 장치의 메모리에는 소정의 암호화 데이터에 대한 해시 값을 포함하는 트랜잭션을 기반으로 생성된 블록들이 체인으로 연결되어 있는 블록체인 데이터가 저장되어 있다.
암호화 데이터 생성부(111)는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성한다.
데이터 분할부(112)는 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할한다.
예컨대, n이 10이라고 하는 경우, 데이터 분할부(112)는 상기 암호화 데이터를 10개의 분할 데이터로 분할 수 있다. 이때, 데이터 분할부(112)가 상기 암호화 데이터를 분할하는 방식은 상기 암호화 데이터를 구성하는 코드를 10등분으로 나누어 10개의 동일한 크기의 데이터로 분할하는 방식이 사용될 수 있다.
해시 값 생성부(113)는 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성한다.
데이터 분산 저장부(114)는 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장한다.
관련해서, 10개의 분할 데이터와 상기 10개의 분할 데이터 각각에 대응하는 10개의 해시 값이 존재한다고 하는 경우, 데이터 분산 저장부(114)는 10개의 분할 데이터와 각 분할 데이터에 대응되는 해시 값을 하기의 표 1과 같이 10개의 데이터 분산 저장소에 한 쌍씩 분산 저장할 수 있다.
데이터 분산 저장소 분할 데이터 해시 값
데이터 분산 저장소 1 분할 데이터 1 해시 값 1
데이터 분산 저장소 2 분할 데이터 2 해시 값 2
데이터 분산 저장소 3 분할 데이터 3 해시 값 3
데이터 분산 저장소 4 분할 데이터 4 해시 값 4
데이터 분산 저장소 5 분할 데이터 5 해시 값 5
데이터 분산 저장소 6 분할 데이터 6 해시 값 6
데이터 분산 저장소 7 분할 데이터 7 해시 값 7
데이터 분산 저장소 8 분할 데이터 8 해시 값 8
데이터 분산 저장소 9 분할 데이터 9 해시 값 9
데이터 분산 저장소 10 분할 데이터 10 해시 값 10
트랜잭션 생성부(115)는 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성한다.
블록체인 등록 요청부(116)는 블록체인 네트워크를 구성하는 복수의 노드 장치들(101, 102, 103, 104) 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.
이때, 본 발명의 일실시예에 따르면, 블록체인 등록 요청부(116)는 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하기 위한 상기 제1 노드 장치를 랜덤하게 선택할 수 있다. 관련해서, 본 실시예에서는 상기 제1 노드 장치를 도면부호 101로 표시한 노드 장치인 것으로 가정하고 설명하기로 한다.
이때, 제1 노드 장치(101)는 데이터 관리 장치(110)로부터 상기 트랜잭션이 수신되면, 제1 노드 장치(101)의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 복수의 노드 장치들(101, 102, 103, 104) 중 제1 노드 장치(101)를 제외한 나머지 노드 장치들(102, 103, 104)로 전파할 수 있다.
이때, 나머지 노드 장치들(102, 103, 104)은 상기 블록체인 네트워크를 통해 상기 블록이 수신되면, 나머지 노드 장치들(102, 103, 104) 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터에 상기 블록을 체인으로 연결하여 저장할 수 있다.
이를 통해, 상기 n개의 해시 값이 포함된 상기 트랜잭션은 복수의 노드 장치들(101, 102, 103, 104) 각각의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결되어 복수의 노드 장치들(101, 102, 103, 104) 각각에 저장될 수 있다.
이때, 본 발명의 일실시예에 따르면, 블록체인 등록 요청부(116)는 제1 노드 장치(101)로 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 과정에서 제1 노드 장치(101)를 인증하기 위한 구성으로, 인증용 행렬 저장부(117), 랜덤 행렬 생성부(118), 피드백 요청부(119), 인증 수행부(120) 및 요청 전송부(121)를 포함할 수 있다.
인증용 행렬 저장부(117)에는 노드 장치의 인증에 사용하기 위한 k x k(k는 2이상의 자연수) 크기의 미리 지정된 인증용 행렬이 저장되어 있다.
랜덤 행렬 생성부(118)는 상기 트랜잭션이 생성되면, (k+t) x k(t은 k보다 작은 자연수) 크기를 갖는 랜덤한 성분 값들로 구성된 랜덤 행렬을 생성한다.
예컨대, 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬이 5 x 5 크기를 갖는 행렬이라고 하고, 상기 t를 3이라고 하는 경우, 랜덤 행렬 생성부(118)는 8 x 5 크기를 갖는 랜덤 행렬을 생성할 수 있다.
피드백 요청부(119)는 복수의 노드 장치들(101, 102, 103, 104) 중 제1 노드 장치(101)를 랜덤하게 선택한 후 상기 랜덤 행렬을 제1 노드 장치(101)로 전송하면서, 제1 노드 장치(101)로 상기 랜덤 행렬에 대응되는 피드백 행렬의 전송을 요청한다.
이때, 본 발명의 일실시예에 따르면, 복수의 노드 장치들(101, 102, 103, 104)은 메모리 상에 상기 인증용 행렬을 저장하고 있을 수 있다.
이때, 제1 노드 장치(101)는 데이터 관리 장치(110)로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 변형 행렬을 생성하고, 제1 노드 장치(101)의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱(Hadamard product)을 연산하여 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 데이터 관리 장치(110)로 전송할 수 있다.
예컨대, 상기 랜덤 행렬이 8 x 5 크기를 갖는 행렬이라고 하고, 상기 사전 설정된 위치에 존재하는 t개의 행이 1행, 2행, 4행이라고 하는 경우, 제1 노드 장치(101)는 상기 랜덤 행렬에서 1행, 2행, 4행에 위치하는 성분들을 제거하여 5 x 5 크기의 변형 행렬을 생성하고, 메모리에 미리 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성할 수 있다.
여기서, 아다마르 곱이란 같은 크기의 행렬에서 각 성분을 곱하는 연산을 의미한다.
인증 수행부(120)는 제1 노드 장치(101)로부터 상기 랜덤 행렬에 대응되는 피드백 행렬로 제1 피드백 행렬(상기 제1 피드백 행렬은 상기 랜덤 행렬에서 사전 설정된 위치에 존재하는 t개의 행의 성분들이 제거되어 k x k 크기의 변형 행렬이 생성된 후 제1 노드 장치(101)에 기 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱이 연산되어 생성된 행렬임)이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들을 제거하여 상기 변형 행렬을 생성한 후 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 제1 연산 행렬을 생성하고, 상기 제1 연산 행렬이 상기 제1 피드백 행렬과 동일한지 확인함으로써, 제1 노드 장치(101)에 대한 인증을 수행한다.
즉, 인증 수행부(120)는 제1 노드 장치(101)로부터 수신된 상기 제1 피드백 행렬과 상기 제1 연산 행렬이 서로 일치하는 것으로 확인되는 경우, 제1 노드 장치(101)가 상기 인증용 행렬과 상기 사전 설정된 위치에 존재하는 t개의 행에 대한 정보를 정상적으로 공유하고 있는 장치인 것으로 볼 수 있기 때문에, 제1 노드 장치(101)에 대한 인증을 완료할 수 있다.
요청 전송부(121)는 제1 노드 장치(101)에 대한 인증이 완료되면, 제1 노드 장치(101)로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.
이때, 본 발명의 일실시예에 따르면, 데이터 관리 장치(110)는 행렬 갱신부(122) 및 갱신 명령 전송부(123)를 더 포함할 수 있다.
행렬 갱신부(122)는 제1 노드 장치(101)로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체한다.
갱신 명령 전송부(123)는 상기 갱신 행렬을 복수의 노드 장치들(101, 102, 103, 104)로 전송하면서, 복수의 노드 장치들(101, 102, 103, 104)에 대해 복수의 노드 장치들(101, 102, 103, 104)의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송한다.
이때, 복수의 노드 장치들(101, 102, 103, 104)은 데이터 관리 장치(110)로부터 상기 갱신 행렬과 함께 상기 갱신 명령이 수신되면, 상기 갱신 명령에 기초하여 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 수 있다.
예컨대, 상기 인증용 행렬이 5 x 5 크기의 행렬이라고 하는 경우, 행렬 갱신부(122)는 0 초과 1 미만의 보정 값들을 성분으로 갖는 5 x 5 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 5 x 5 크기의 갱신 행렬을 생성할 수 있다. 그러고 나서, 행렬 갱신부(122)는 인증용 행렬 저장부(117)에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하고, 갱신 명령 전송부(123)는 상기 갱신 행렬을 복수의 노드 장치들(101, 102, 103, 104)에 제공함으로써, 노드 장치의 인증에 사용되는 상기 인증용 행렬이 데이터를 암호화하여 저장할 때마다 매번 달라지도록 구성할 수 있다. 이렇게, 상기 인증용 행렬이 매번 달라지게 되면, 그만큼 보안성이 강화되는 장점이 있다.
본 발명의 일실시예에 따르면, 데이터 관리 장치(110)는 해시 값 요청부(124), 분할 데이터 추출부(125), 데이터 결합부(126) 및 복호화부(127)를 더 포함할 수 있다.
해시 값 요청부(124)는 상기 블록이 나머지 노드 장치들(102, 103, 104)로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 복수의 노드 장치들(101, 102, 103, 104) 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청한다.
본 실시예에서는 상기 제2 노드 장치를 도면부호 102로 표시한 노드 장치인 것으로 가정하고 설명하기로 한다.
이때, 제2 노드 장치(102)는 데이터 관리 장치(110)로부터 상기 n개의 해시 값에 대한 전송 요청이 수신되면, 제2 노드 장치(102)의 메모리에 저장되어 있는 상기 블록체인 데이터에서 체인으로 연결되어 있는 상기 블록 내에 포함된 트랜잭션으로부터 상기 n개의 해시 값을 추출하여 상기 n개의 해시 값을 데이터 관리 장치(110)로 전송할 수 있다.
분할 데이터 추출부(125)는 제2 노드 장치(102)로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출한다.
예컨대, 상기 표 1과 같이 10개의 데이터 저장소에 10개의 분할 데이터와 대응되는 해시 값이 분산 저장되어 있다고 하는 경우, 분할 데이터 추출부(125)는 제2 노드 장치(102)로부터 10개의 해시 값이 수신되면, 수신된 10개의 해시 값을 데이터 검색을 위한 인덱싱 정보로 활용해서 상기 10개의 데이터 저장소 각각으로부터 각 해시 값에 대응되는 분할 데이터를 추출할 수 있다.
데이터 결합부(126)는 상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성한다.
복호화부(127)는 상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원한다.
관련해서, 전술한 예시와 같이 10개의 데이터 저장소로부터 10개의 분할 데이터가 추출되었다고 하는 경우, 데이터 결합부(126)는 10개의 분할 데이터를 데이터 분할부(112)가 데이터를 분할하는 방식과 반대되는 방식으로 결합함으로써, 암호화 데이터를 생성할 수 있다. 그러고 나서, 복호화부(127)는 상기 암호화 데이터를 생성하는데 사용되었던 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 원래의 평문 데이터를 복원할 수 있다.
결국, 본 발명에 따른 데이터 관리 장치(110)는 평문 데이터를 암호화한 후 이를 다수개의 분할 데이터로 분할하여 각 분할 데이터에 대응되는 해시 값과 함께 서로 다른 데이터 저장소에 분산 저장하되, 각 분할 데이터에 대응되는 해시 값을 블록체인 네트워크에 등록하여 관리함으로써, 제3자에 의해 상기 평문 데이터가 손쉽게 노출되는 것을 방지할 수 있다.
도 2는 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성한다.
단계(S220)에서는 상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할한다.
단계(S230)에서는 상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성한다.
단계(S240)에서는 상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장한다.
단계(S250)에서는 상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성한다.
단계(S260)에서는 블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.
이때, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(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 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고, 상기 제1 노드 장치는 상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 관리 장치의 동작 방법은 상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 단계 및 상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 데이터 관리 장치의 동작 방법은 상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 단계, 상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 단계, 상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 단계 및 상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 도 1을 이용하여 설명한 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치
111: 암호화 데이터 생성부 112: 데이터 분할부
113: 해시 값 생성부 114: 데이터 분산 저장부
115: 트랜잭션 생성부 116: 블록체인 등록 요청부
117: 인증용 행렬 저장부 118: 랜덤 행렬 생성부
119: 피드백 요청부 120: 인증 수행부
121: 요청 전송부 122: 행렬 갱신부
123: 갱신 명령 전송부 124: 해시 값 요청부
125: 분할 데이터 추출부 126: 데이터 결합부
127: 복호화부

Claims (12)

  1. 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치에 있어서,
    암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 암호화 데이터 생성부;
    상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 데이터 분할부;
    상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 해시 값 생성부;
    상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 데이터 분산 저장부;
    상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 트랜잭션 생성부; 및
    블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제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 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 요청 전송부
    를 포함하며,
    상기 제1 노드 장치는
    상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고,
    상기 제1 노드 장치는
    상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
  4. 제3항에 있어서,
    상기 데이터 관리 장치는
    상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 행렬 갱신부; 및
    상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 갱신 명령 전송부
    를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
  5. 제1항에 있어서,
    상기 데이터 관리 장치는
    상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 해시 값 요청부;
    상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 분할 데이터 추출부;
    상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 데이터 결합부; 및
    상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 복호화부
    를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치.
  6. 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법에 있어서,
    암호화 대상이 되는 평문 데이터를 미리 정해진 암호화키를 이용하여 암호화함으로써, 암호화 데이터를 생성하는 단계;
    상기 암호화 데이터를 n(n은 2 이상의 자연수)개의 분할 데이터로 분할하는 단계;
    상기 n개의 분할 데이터를 미리 정해진 서로 다른 n개의 해시 함수에 입력으로 인가하여 상기 n개의 분할 데이터 각각에 대응되는 n개의 해시 값을 생성하는 단계;
    상기 n개의 분할 데이터와 상기 n개의 분할 데이터 각각에 대응되는 해시 값을 n개의 데이터 분산 저장소에 한 쌍씩 분산 저장하는 단계;
    상기 n개의 분할 데이터와 해시 값이 상기 n개의 데이터 분산 저장소에 분산 저장되면, 상기 n개의 해시 값을 포함하는 트랜잭션을 생성하는 단계; 및
    블록체인 네트워크를 구성하는 복수의 노드 장치들 중 어느 하나인 제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 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계
    를 포함하며,
    상기 제1 노드 장치는
    상기 데이터 관리 장치로부터 상기 트랜잭션이 수신되면, 상기 제1 노드 장치의 메모리에 저장되어 있는 블록체인 데이터를 기초로 상기 트랜잭션이 포함된 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 복수의 노드 장치들은 메모리 상에 상기 인증용 행렬을 저장하고 있고,
    상기 제1 노드 장치는
    상기 데이터 관리 장치로부터 상기 랜덤 행렬이 수신되면, 상기 랜덤 행렬에서 상기 사전 설정된 위치에 존재하는 t개의 행의 성분들 제거하여 상기 변형 행렬을 생성하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬과 상기 변형 행렬 간의 아다마르 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후 상기 제1 피드백 행렬을 상기 데이터 관리 장치로 전송하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
  9. 제8항에 있어서,
    상기 데이터 관리 장치의 동작 방법은
    상기 제1 노드 장치로 상기 트랜잭션과 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 전송 완료되면, 0 초과 1 미만의 보정 값들을 성분으로 갖는 k x k 크기의 보정 행렬을 랜덤하게 생성한 후 상기 인증용 행렬과 상기 보정 행렬을 서로 곱하여 상기 인증용 행렬의 갱신을 위한 갱신 행렬을 생성한 후 상기 인증용 행렬 저장부에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체하는 단계; 및
    상기 갱신 행렬을 상기 복수의 노드 장치들로 전송하면서, 상기 복수의 노드 장치들에 대해 상기 복수의 노드 장치들의 메모리 상에 저장되어 있는 상기 인증용 행렬을 상기 갱신 행렬로 대체할 것을 지시하는 갱신 명령을 전송하는 단계
    를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
  10. 제6항에 있어서,
    상기 데이터 관리 장치의 동작 방법은
    상기 블록이 상기 나머지 노드 장치들로 전파가 완료된 이후, 상기 암호화 데이터에 대한 복호화 명령이 인가되면, 상기 복수의 노드 장치들 중 어느 하나인 제2 노드 장치를 랜덤하게 선택한 후 상기 제2 노드 장치로 상기 블록체인 데이터에 포함되어 있는 상기 n개의 해시 값의 전송을 요청하는 단계;
    상기 제2 노드 장치로부터 상기 n개의 해시 값이 수신되면, 상기 n개의 해시 값에 기초하여 상기 n개 데이터 분산 저장소 각각으로부터 상기 n개의 해시 값에 대응되어 저장되어 있는 상기 n개의 분할 데이터를 추출하는 단계;
    상기 n개의 분할 데이터가 추출되면, 상기 n개의 분할 데이터를 결합하여 상기 암호화 데이터를 생성하는 단계; 및
    상기 암호화 데이터가 생성되면, 상기 암호화키를 이용하여 상기 암호화 데이터를 복호화함으로써, 상기 평문 데이터를 복원하는 단계
    를 더 포함하는 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치의 동작 방법.
  11. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020190122829A 2019-06-13 2019-10-04 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법 KR102295263B1 (ko)

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 KR20200143197A (ko) 2020-12-23
KR102295263B1 true KR102295263B1 (ko) 2021-08-30

Family

ID=74089615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190122829A KR102295263B1 (ko) 2019-06-13 2019-10-04 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102295263B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662261B1 (ko) * 2021-03-04 2024-04-30 주식회사 한컴위드 복사기와 연동하여, 복사 방지가 필요한 종이 문서에 대한 복사 방지를 가능하게 하는 복사 방지 서버 및 그 동작 방법
KR102583928B1 (ko) * 2021-03-04 2023-09-27 주식회사 한컴위드 사용자의 소개 정보가 게시된 웹 페이지에 대한 접속 정보를 포함하는 2차원 코드가 삽입된 명함을 제작해 주는 명함 제작 서비스를 제공하기 위한 명함 제작 서비스 제공 서버 및 그 동작 방법
KR102328106B1 (ko) * 2021-05-10 2021-11-17 주식회사 삼마아이씨티 이미지 암호화 저장 시스템 및 방법
KR20230020086A (ko) 2021-08-03 2023-02-10 주식회사 아토믹스소프트 블록체인 및 분산 암호화를 이용한 파일 유통 시스템
KR102578855B1 (ko) * 2021-08-26 2023-09-14 에이디에프랩스 주식회사 Nft에 포함된 콘텐츠 저장 경로 정보의 수정을 가능하게 하는 nft 거래 서비스의 운영 서버 및 그 동작 방법
CN117592087B (zh) * 2024-01-18 2024-05-07 三一智造(深圳)有限公司 一种基于区块链的数据安全加密保护系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287488A (ja) 2007-05-17 2008-11-27 Psd:Kk データ分散保存装置
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593491B1 (ko) * 2001-07-17 2006-06-30 샤프 가부시키가이샤 프로세스 과정에서 암호화된 데이터의 위조 검출 데이터를발생시키는 장치 및 방법
EP3143525A1 (en) * 2014-05-13 2017-03-22 Cloud Crowding Corp. Distributed secure data storage and transmission of streaming media content
KR102331947B1 (ko) * 2017-09-28 2021-11-25 주식회사 케이티 블록체인에서 데이터 관리 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287488A (ja) 2007-05-17 2008-11-27 Psd:Kk データ分散保存装置
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법

Also Published As

Publication number Publication date
KR20200143197A (ko) 2020-12-23

Similar Documents

Publication Publication Date Title
KR102295263B1 (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
TWI706279B (zh) 多方安全計算方法及裝置、電子設備
WO2020259635A1 (zh) 一种区块链数据共享方法及装置
CN110677487B (zh) 一种支持隐私和完整性保护的外包数据去重云存储方法
US8077863B2 (en) Secret sharing apparatus, method, and program
TW202013928A (zh) 多方安全計算方法及裝置、電子設備
CN111523133B (zh) 一种区块链与云端数据协同共享方法
Li et al. Towards privacy-preserving storage and retrieval in multiple clouds
CN110061840A (zh) 数据加密方法、装置、计算机设备及存储介质
KR102228210B1 (ko) 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법
Sookhak et al. Towards dynamic remote data auditing in computational clouds
KR102244290B1 (ko) 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법
KR102303431B1 (ko) 당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법
CN105468940A (zh) 软件保护方法及装置
US11438156B2 (en) Method and system for securing data
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
WO2017126571A1 (ja) 暗号文管理方法、暗号文管理装置及びプログラム
Ma et al. A secure and efficient data deduplication scheme with dynamic ownership management in cloud computing
KR102602189B1 (ko) 클라우드 기반의 문서 공유 서비스를 운영하기 위한 문서 공유 서비스 서버 및 그 동작 방법
KR102442674B1 (ko) 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법
Uma et al. Enhanced convergent encryption key generation for secured data deduplication in cloud storage
KR102316758B1 (ko) 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 데이터를 배포하는 업데이트 데이터 관리 서버 및 그 동작 방법
CN117063439A (zh) 一种用于密钥管理的方法及基于计算机的系统
CN113553611A (zh) 文件加密存储方法和系统、用户终端、云平台和存储介质
CN117318942B (zh) 一种结合量子安全技术的分布式存储系统

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