KR102399667B1 - 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 - Google Patents

블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 Download PDF

Info

Publication number
KR102399667B1
KR102399667B1 KR1020190153153A KR20190153153A KR102399667B1 KR 102399667 B1 KR102399667 B1 KR 102399667B1 KR 1020190153153 A KR1020190153153 A KR 1020190153153A KR 20190153153 A KR20190153153 A KR 20190153153A KR 102399667 B1 KR102399667 B1 KR 102399667B1
Authority
KR
South Korea
Prior art keywords
data
fragment
smart contract
encrypted
storage
Prior art date
Application number
KR1020190153153A
Other languages
English (en)
Other versions
KR102399667B9 (ko
KR20210064675A (ko
Inventor
전삼구
정창희
정일훈
송금진
Original Assignee
송금진
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 송금진 filed Critical 송금진
Priority to KR1020190153153A priority Critical patent/KR102399667B1/ko
Publication of KR20210064675A publication Critical patent/KR20210064675A/ko
Application granted granted Critical
Publication of KR102399667B1 publication Critical patent/KR102399667B1/ko
Publication of KR102399667B9 publication Critical patent/KR102399667B9/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에서는, 블록체인 기반 데이터 거래 및 보관 방법에 관한 것으로서, 탈중앙 시스템 환경에서 데이터를 제공하는 자가 데이터를 네트워크에 등록한 상태에서 데이터를 요청하는 자가 네트워크를 통해 데이터 접근 권한을 획득하고 데이터를 요청할 경우, 그리고 데이터를 제공하는 자가 데이터를 요청하는 자를 알지 않아도 되는 경우에 안전한 데이터 거래를 위해 암호화된 데이터의 파편을 분산 저장함으로써, 데이터가 보관되는 스토리지 운영 주체조차 데이터를 획득할 수 없도록 하여 오로지 데이터 접근 권한을 얻은 자만이 데이터를 얻을 수 있도록 하는 것을 특징으로 한다. 이에 의해, 블록체인 상에서 데이터 제공자가 데이터 요청자가 누군지 모르는 상황에서 텍스트나 파일 등 다양한 형태의 데이터를 네트워크에 등록하여 보관시키고, 데이터 요청자가 데이터 접근 권한을 획득했을 경우 데이터 제공자의 개입 없이 네트워크로부터 안전하게 데이터를 획득하도록 할 수 있다.

Description

블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법{SECURITY SYSTEM FOR DATA TRADING AND DATA STORAGE BASED ON BLOCK CHAIN AND METHOD THEREFOR}
본 발명은 블록체인 기반 데이터 거래와 보안 시스템에 관한 것으로서, 보다 상세하게는 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법에 관한 것이다.
블록체인은 특정 암호화 기능을 사용해 중앙관리자 없이 데이터를 모든 참여자가 공유 및 업데이트하는 기술로서, 데이터 조작을 방지하며 거래의 투명화가 가능하다. 블록체인(Blockchain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다.
기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용하는 탈 중앙화적 특징을 갖는다. 이에 따라 블록체인은 중앙 관리 기관이 없이 블록체인 네트워크 상에서 장부를 분산 저장하는 방식으로 임의의 사용자가 데이터를 위변조하는 것을 불가능하게 하여 거래의 무결성을 유지한다. 또한, 탈 중앙화적 특징을 갖는 블록체인에서 기 저장된 조건을 만족하는 거래요청이 획득되는 경우, 자동으로 거래를 수행하는 것을 의미하는 스마트 컨트랙트가 다양한 분야에 활용되고 있다.
종래의 블록체인 기반 데이터 거래 방법은 다음과 같은 방식으로 이루어진다. 도 1을 참조하면, 데이터 등록을 위해, 데이터 등록자가 스마트 컨트랙트 상에서 데이터를 등록에 대한 트랜잭션을 발생시키고(S101), 데이터를 등록한다(S102).
데이터 보관 및 전달에 있어서, 거래 대상인 데이터는, 데이터 제공자가 직접 보관하고 있다가 데이터 요청자가 나타났을 경우 직접 전달하는 경우, 혹은 중앙화 된 주체가 운영하는 서버에 데이터를 보관 및 관리하는 경우로 나누어진다.
중앙화 된 주체가 운영하는 서버에 데이터를 보관 및 관리하는 경우에, 데이터 획득시에는, 데이터 요청자가 스마트 컨트랙트 상에서 데이터 권한 획득을 위한 트랜잭션을 발생시킨다(S103). 데이터 요청자가 데이터 다운로드 요청 하면(S104), 데이터 보관자는 데이터 요청자의 데이터 권한 여부를 블록체인을 통해 확인하여(S105), 데이터를 데이터 요청자에게 전달한다(S106).
그런데, 종래의 데이터 거래 방법에서는, 1) 데이터 제공자가 데이터 요청자를 미리 알아야 하거나, 2) 데이터 제공자가 데이터 요청자를 모를 경우 언제라도 데이터 요청자가 나타났을 경우 데이터 요청자가 데이터 혹은 데이터 복호화 키를 얻을 수 있도록 개입하기 위해 항상 대기 상태에 있어야 한다.
이는 데이터를 제공하는 주체가 언제 그리고 누구로부터 데이터를 요청 받을지 모르는 데이터 거래 방식에 적합하지 않다. 특히 3) 데이터 보관 네트워크가 탈중앙 시스템이 아닌 형태에서 운영되는 경우는 데이터 관리 및 보관자가 원본 데이터를 획득 가능하기 때문에 데이터가 곧 자산인 데이터 거래 시스템에서는 매우 적합하지 않은 문제가 있다.
한편, 안전한 데이터 거래를 위해서는, 데이터 보안의 핵심 3가지인 1) 데이터의 무결성, 2) 데이터 가용성, 3) 데이터 기밀성을 확보해야 한다.
1) 데이터 무결성에 있어서는 데이터가 네트워크를 거쳐 데이터 요청자에게 원본이 전달되는 모든 과정에서 데이터의 변경 혹은 잘못된 데이터 전달이 이루어지지 않았는지를 확인해야 한다.
2) 데이터 가용성에 있어서는 등록된 데이터가 네트워크에 보관되고 있을 때 네트워크의 장애 여부와 관계없이 데이터 요청자가 언제라도 데이터를 확보할 수 있어야 한다.
3) 데이터 기밀성에 있어서는 탈중앙화된 데이터 거래 시스템에서의 데이터는 거래의 대상이며 그 자체가 곧 자산이기 때문에 데이터가 네트워크에 보관될 때 데이터 접근 권한을 획득한 데이터 요청자를 제외하고 데이터를 보관하는 주체를 포함한 그 누구도 데이터를 획득하지 못하도록 해야 한다.
따라서, 본 발명은 상기한 문제점을 해결하기 위해 창안된 것으로, 본 발명은 블록체인 상에서 데이터 제공자가 데이터 요청자가 누군지 모르는 상황에서 텍스트나 파일 등 다양한 형태의 데이터를 네트워크에 등록하여 보관시키고, 데이터 요청자가 데이터 접근 권한을 획득했을 경우 데이터 제공자의 개입 없이 네트워크로부터 안전하게 데이터를 획득할 수 있도록 하는 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위한 본 발명의 제1양태에 따른 구성은, 블블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템으로서, 데이터를 파편화하고 데이터 파편을 암호화한 후, 공유하고자 하는 데이터 등록하기 위한 트랜잭션을 생성하여 블록체인상의 스마트 컨트랙트에 전송하고, 복수의 데이터 보관 서버에게 암호화된 데이터 파편과 데이터 파편 복호화 키를 업로드하는 데이터 제공자; 데이터 등록 내역, 데이터 접근 권한 내역, 암호화된 데이터 파편을 저장한 데이터 보관 서버 내역이 기록되고, 상기 데이터 제공자가 등록한 데이터의 접근 권한을 승인하는 스마트 컨트랙트; 상기 데이터 제공자로부터 전송된 데이터를 보관 및 관리하고, 소정의 데이터 요청자로부터 데이터 요청을 받을 경우 상기 스마트 컨트랙트를 통해 상기 데이터 요청자가 데이터 접근 권한이 있는지를 확인하고 확인결과 데이터 접근 권한이 있는 경우 암호화된 데이터 파편과 데이터 파편 복호화 키를 상기 데이터 요청자에게 전달하는 데이터 보관 서버; 및 상기 스마트 컨트랙트로부터 데이터 접근 권한을 획득하고 상기 데이터 보관 서버로부터 제공된 암호화된 데이터 파편과 데이터 파편 복호화 키를 이용하여 데이터 원본을 획득하는 데이터 요청자를 포함하고, 상기 스마트 컨트랙트가 상기 데이터 보관 서버로부터의 요청에 따라, 소정 데이터 요청자에 대한 데이터 접근 권한 확인을 수행한 후 상기 데이터 요청자로부터 전송받아 미리 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하고, 상기 데이터 요청자가 데이터를 요청하기 위해 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 트랜잭션을 형성하여 상기 스마트 컨트랙트에 전송하면, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 요청자 식별정보와 함께 저장하고, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하면, 상기 데이터 보관 서버가 상기 데이터권한 인증용 공개키로 상기 데이터 파편 복호화 키를 암호화하여 상기 데이터 파편과 함께 상기 데이터 요청자에게 전송하고, 상기 데이터 요청자가 상기 데이터 보관 서버로부터 전송된 암호화된 데이터 파편 복호화 키를 데이터권한 인증을 위한 비밀키로 복호화하고, 데이터 파편 복호화 키로 암호화된 다수의 데이터 파편을 복호화하고, 상기 데이터 요청자가 상기 스마트 컨트랙트에 원본 데이터 복호화키를 요청 및 수신하고, 상기 복호화된 데이터 파편을 합해 단일 데이터로 형성 후 상기 원본 데이터 복호화키로 상기 단일 데이터를 복호화하여 원본 데이터를 획득하고, 상기 데이터 요청자는, 상기 암호화된 데이터 파편을 복호화하는 과정과 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값을, 상기 스마트 컨트랙트에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인하는 것을 특징으로 한다.
여기서, 상기 데이터 등록 내역은 데이터 제공자 정보와 데이터 파편 정보, 데이터 파편 보관 서버 매칭 정보를 포함하고, 상기 데이터 접근 권한 내역은 누가 어떤 데이터에 접근이 가능한지에 대한 내역을 포함하고, 상기 데이터 보관 서버 내역은 데이터 보관 서버의 스토리지 엔드포인트 정보(서버 접속 정보)와 현재 보관중인 데이터의 용량과 총 보관 가능한 용량 정보를 포함하는 것이 바람직하다.
여기서, 상기 데이터 제공자는 전체 데이터를 비트 단위로 섞어서 데이터 전체를 암호화하고, 전체 암호화된 데이터를 적어도 2개 이상의 파편으로 분할한 후, 각 파편에 대해 상이한 공개키를 형성하고, 각 데이터 파편을 상기 데이터 제공자의 상기 상이한 공개키로 암호화하는 것이 바람직하다.
여기서, 상기 데이터 제공자는 상기 스마트 컨트랙트에 데이터 보관 매칭을 요청하여, 매칭된 데이터 보관 서버에 암호화된 데이터 파편과 파편 복호화키를 업로드하는 것이 바람직하다. 이에 의해, 데이터 기밀성을 확보할 수 있다.
상기 스마트 컨트랙트는 상기 데이터 제공자의 요청에 따라, 각 데이터 보관 서버의 용량 정보를 포함한 데이터 보관 서버 정보에 근거하여, 암호화된 데이터 파편을 저장가능한 데이터 파편 보관서버를 매칭하여 상기 데이터 제공자에게 매칭 정보를 제공하고, 매칭 정보를 저장하는 것이 바람직하다.
상기 데이터 제공자는 상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터 파편을 암호화하는 과정에서, 각 데이터에 대해 데이터 해시 처리하여 발생하는, 데이터 해시값을 추출하여, 각 과정의 데이터 해시값과 암호화 원본 데이터 복호화키를 상기 스마트 컨트랙트에 업로드하는 것이 효과적이다.
상기 데이터 요청자는 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 요청 트랙잭션을 형성하여 상기 스마트 컨트랙트에 전송하는 것이 바람직하다. 그리고, 상기 스마트 컨트랙트는 소정 데이터 요청자로부터 데이터 권한 인증용 공개키가 포함된 데이터 권한 획득 요청 트랜잭션을 수신하여 저장하고, 상기 데이터 보관 서버로부터 요청에 따라 소정 데이터 요청자의 데이터 접근 권한 확인을 수행한 후, 상기 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 정보를 저장한다. 이때, 상기 스마트 컨트랙트에 저장되는 정보들은 모두 공개된다.
상기 데이터 보관 서버는, 상기 데이터 제공자로부터 암호화된 데이터 파편, 상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터를 암호화하는 과정에서 각 데이터를 데이터해시 처리하여 발생하는 데이터해시값, 파편 복호화 키를 전송받아, 데이터 제공자 식별정보 별로 상기 암호화된 데이터 파편, 데이터해시값, 및 데이터 파편 복호화 키를 함께 저장하고, 데이터 요청자로부터 데이터 요청시 상기 스마트 컨트랙트로부터 수신한 데이터 권한 인증용 공개키로 데이터 파편 복호화키를 암호화하여 암호화된 데이터 파편과 함께 데이터 요청자에게 전송하는 것이 바람직하다.
상기 데이터 요청자는, 수신한 암호화된 데이터 파편 복호화 키를 자신의 데이터 권한 인증용 비밀키로 복호화하고, 복호화된 데이터 파편 복호화 키로 암호화된 데이터 파편의 암호를 풀어 복호화하고, 복호화된 데이터 파편을 병합하여 암호화된 전체 데이터로 형성하고, 상기 스마트 컨트랙트에 요청하여 수신한 원본 데이터 복호화 키를 이용하여 상기 암호화된 전체 데이터를 복호화하여 원본 데이터를 획득하는 것이 바람직하다.
한편, 상기 데이터 요청자는 상술한 각 복호화 과정들에서 해시값을 획득하고, 상기 스마트 컨트랙트에 요청하여 수신한 해시값들을 비교하여 일치하는지 여부에 따라, 원본 데이터가 정상 여부 인지를 판단하는 것이 바람직하다. 이에 의해 데이터 무결성을 확보할 수 있다.
또한, 상기 데이터 요청자는 암호화된 데이터 파편 요청을 위해, 상기 스마트 컨트랙트에 접속하여 데이터 파편 보관 내역 정보를 조회하며, 상기 데이터 파편 보관 내역 정보를 참조하여, 원하는 데이터 파편을 보관하고 있는 데이터 보관 서버 정보로 각 데이터 보관 서버에 접속하여 암호화된 데이터 파편을 요청하여 수집하는 것이 바람직하다.
상기 데이터 보관 서버는, 데이터 제공자로부터 업로드된 암호화된 데이터 파편의 해시값과 상기 스마트 컨트랙트에 저장된 데이터 등록 내역과 함께 기록된 데이터 해시값이 일치하는지 상기 스마트 컨트랙트에 확인요청하는 것이 바람직하다.
공개키로 데이터를 암호화하는 과정에서 발생하는 데이터 해시값은 다음과 같이 추출된다. 데이터를 암호화하기 전에, 암호화할 데이터를 해시 처리하여 해시값(1번 해시값)을 추출한다. 해시값을 추출하는 방법은, 공지기술이라고 상세한 설명은 생략한다. 또한, 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값은 다음과 같이 추출된다. 나누어진 암호화된 데이터들을 결합하고 복호화한 뒤, 이 데이터가 원본 데이터임을 확인하기 위하여 해시 처리를 하여 해시값(2번 해시값)을 추출한다.
여기서, 1번 해시값과 2번 해시값이 동일하면, 암호화전 데이터와 복호화후 데이터가 동일하다고 판단한다. 즉, 본 발명에서는, 암호화하기전 데이터를 해시 처리한 해시값과, 데이터를 복호화한 후 원본 데이터를 해시 처리한 해시값이 동일하면, 원본 데이터가 맞는 것으로 확인한다.
여기서, 각 암호화된 데이터 파편은 적어도 3개 이상의 데이터 보관자에 저장되는 것이 바람직하며, 이에 의해, 데이터 가용성을 확보할 수 있다.
한편, 상기의 목적을 달성하기 위한 본 발명의 제2양태에 따른 구성은, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법으로서, 데이터 제공자가 데이터를 파편화하고 데이터 파편을 암호화한 후, 공유하고자 하는 데이터 등록하기 위한 트랜잭션을 생성하여 블록체인상의 스마트 컨트랙트에 전송하고, 복수의 데이터 보관 서버에게 암호화된 데이터 파편과 데이터 파편 복호화 키를 업로드하는 제1단계; 상기 스마트 컨트랙트가 상기 데이터 제공자의 데이터 등록 내역 정보, 데이터 접근 권한 내역 정보, 암호화된 데이터 파편을 저장한 데이터 보관 서버 내역 정보를 형성하여 저장하는 제2단계; 상기 데이터 보관 서버가 상기 데이터 제공자가 업로드한 암호화된 데이터 파편을 보관 및 관리하고, 소정 데이터 요청자로부터 데이터 요청을 받을 경우 상기 스마트 컨트랙트를 통해 상기 데이터 요청자가 데이터 접근 권한이 있는지를 확인하는 제3단계; 상기 확인결과 데이터 접근 권한이 있는 경우, 상기 데이터 보관 서버가 암호화된 데이터 파편과 데이터 파편 복호화 키를 상기 데이터 요청자에게 전송하는 제4단계; 상기 데이터 요청자가 수신한 암호화된 데이터 파편과 데이터 파편 복호화 키로 암호화된 데이터 파편을 복호화하여 데이터 원본을 복구하는 제5단계를 포함하고; 상기 제3단계는, 상기 스마트 컨트랙트가 상기 데이터 보관 서버로부터의 요청에 따라, 소정 데이터 요청자에 대한 데이터 접근 권한 확인을 수행한 후 상기 데이터 요청자로부터 전송받아 미리 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계를 포함하고, 상기 제3단계는, 상기 데이터 요청자가 데이터를 요청하기 위해 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 트랜잭션을 형성하여 상기 스마트 컨트랙트에 전송하는 단계와, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 요청자 식별정보와 함께 저장하는 단계를 더 포함하고; 상기 제4단계는, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계와, 상기 데이터 보관 서버가 상기 데이터권한 인증용 공개키로 상기 데이터 파편 복호화 키를 암호화하여 암호화된 데이터 파편과 함께 상기 데이터 요청자에게 전송하는 단계를 포함하고, 상기 제5단계는, 상기 데이터 요청자가 상기 데이터 보관 서버로부터 전송된 암호화된 데이터 파편 복호화 키를 데이터권한 인증을 위한 비밀키로 복호화하는 단계와, 데이터 파편 복호화 키로 암호화된 다수의 데이터 파편을 복호화하는 단계와, 상기 데이터 요청자가 상기 스마트 컨트랙트에 원본 데이터 복호화키를 요청 및 수신하는 단계와, 상기 복호화된 데이터 파편을 합해 단일 데이터로 형성 후 상기 원본 데이터 복호화키로 상기 단일 데이터를 복호화하여 원본 데이터를 획득하는 단계를 포함하고, 상기 제5단계는, 상기 암호화된 데이터 파편을 복호화하는 과정과 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값을, 상기 스마트 컨트랙트에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인하는 단계를 더 포함하는 것을 특징으로 한다.
여기서, 상기 제1단계는, 상기 데이터 제공자가 전체 데이터를 비트 단위로 섞어서 데이터 전체를 암호화하는 단계; 암호화된 전체 데이터를 적어도 2개 이상의 파편으로 분할한 후, 각 데이터 파편을 각각 상이한 공개키로 암호화하는 단계; 상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터 파편을 암호화하는 과정에서, 각각 데이터를 해시 처리하여 발생하는 데이터 해시값을 추출하여 각 과정의 데이터 해시값과 암호화 원본 데이터 복호화키를 상기 스마트 컨트랙트에 업로드하여 저장시키는 단계를 포함하는 것이 바람직하다.
또한, 상기 제3단계는, 상기 데이터 제공자가 암호화된 데이터 파편을 업로드 가능한 데이터 보관 서버 정보를 제공받기 위한 데이터 보관 매칭을 상기 스마트 컨트랙트에 요청하는 단계와; 상기 스마트 컨트랙트는 상기 데이터 제공자의 요청에 따라 암호화된 데이터 파편을 저장가능한 데이터 보관 서버를 매칭하여 상기 데이터 제공자에게 매칭 정보를 제공하는 단계와; 상기 데이터 제공자가 상기 매칭 정보에 기초하여 매칭된 데이터 보관 서버에 암호화된 데이터 파편을 업로드하는 단계를 포함하는 것이 효과적이다.
또한, 상기 제3단계는, 상기 스마트 컨트랙트가 상기 데이터 보관 서버로부터의 요청에 따라, 소정 데이터 요청자에 대한 데이터 접근 권한 확인을 수행한 후 상기 데이터 요청자로부터 전송받아 미리 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계를 포함하는 것이 바람직하다.
또한, 상기 제3단계는, 상기 데이터 요청자가 데이터를 요청하기 위해 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 트랜잭션을 형성하여 상기 스마트 컨트랙트에 전송하는 단계와, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 요청자 식별정보와 함께 저장하는 단계를 더 포함하고; 상기 제4단계는, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계와, 상기 데이터 보관 서버가 상기 데이터권한 인증용 공개키로 상기 데이터 파편 복호화 키를 암호화하여 상기 데이터 파편과 함께 상기 데이터 요청자에게 전송하는 단계를 포함하는 것이 바람직하다.
또한, 상기 제3단계는, 상기 데이터 보관 서버가 상기 데이터 제공자로부터 업로드된 데이터 파편의 해시값과 상기 스마트 컨트랙트에 저장된 데이터 등록 내역과 함께 기록된 해시값이 일치하는지 확인하는 단계를 포함하는 것이 바람직하다.
또한, 상기 제3단계는, 상기 데이터 요청자가 데이터를 요청하기 위해, 상기 스마트 컨트랙트에 저장된 데이터 보관 내역을 조회하는 단계와, 상기 조회결과에 기초하여 원하는 데이터 파편이 저장된 데이터 저장 서버에 접속하여 데이터 파편과 데이터 파편 복호화 키를 요청하는 단계를 포함하는 것이 효과적이다.
한련, 상기 제5단계는, 상기 데이터 요청자가 상기 데이터 보관자로부터 전송된 암호화된 데이터 파편 복호화 키를 데이터권한 인증을 위한 비밀키로 복호화하는 단계와, 데이터 파편 복호화 키로 암호화된 다수의 데이터 파편을 복호화하는 단계와, 상기 데이터 요청자가 상기 스마트 컨트랙트에 원본 데이터 복호화키를 요청 및 수신하는 단계와, 상기 복호화된 데이터 파편을 합해 단일 데이터로 형성 후 상기 원본 데이터 복호화키로 상기 단일 데이터를 복호화하여 원본 데이터를 획득하는 단계를 포함하는 것이 바람직하다.
또한, 상기 제5단계는, 상기 데이터 파편을 복호화하는 과정과 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값들을, 상기 스마트 컨트랙트에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인하는 단계를 더 포함하는 것이 바람직하다.
상기의 구성으로 이루어진 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템 및 그 방법에 따르면, 데이터 요청자가 데이터 접근 권한을 획득했을 경우 데이터 제공자의 개입 없이 네트워크로부터 안전하게 데이터를 획득할 수 있다. 또한 데이터가 보관되는 스토리지를 소유하거나 운영하는 주체가 데이터를 획득할 수 없다. 데이터를 제공하는 자가 데이터를 네트워크에 등록한 상태에서 데이터를 요청하는 자가 네트워크를 통해 데이터 접근 권한을 획득하고 데이터를 요청할 경우, 그리고 데이터를 제공하는 자가 데이터를 요청하는 자를 알지 않아도 되는 경우에 안전한 데이터 거래를 위해 암호화된 데이터의 파편을 분산 저장함으로써, 데이터가 보관되는 스토리지 운영 주체조차 데이터를 획득할 수 없도록 하여 오로지 데이터 접근 권한을 얻은 자만이 데이터를 얻게 할 수 있다.
도 1은 종래의 블록체인 기반 데이터 거래 시스템의 구성도,
도 2는 본 발명에 따른 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템의 간략 구성도,
도 3은 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템의 세부 구성도,
도 4는 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법의 데이터 등록 및 획득 과정의 예시도,
도 5는 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법의 신호 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다. 본 명세서에서 "및/또는"이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 "포함한다" 또는 "포함하는"으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
본 발명은 다음과 같은 특징을 가진다.
1) 데이터 파편으로 분할하기 전에 원본 데이터를 암호화시킨다. 이에 의해, 데이터 보관자 또는 데이터 파편을 획득한 자가 원본 데이터의 일부라도 유추할 수 없게 된다.
2) 암호화된 원본 데이터를 복호화하기 위한 복호화 키를 블록체인상의 스마트 컨트랙트에 기록한다.
3) 데이터 보관 주체가 데이터 획득을 할 수 없도록 복수개의 데이터 보관자들이 암호화된 각 다른 데이터 파편을 보관한다.
4) 데이터의 원본과 데이터의 파편, 암호화 된 데이터 파편의 해시 값을 블록체인상의 스마트 컨트랙트에 기록함으로써 무결성을 검증할 수 있다.
5) 동일한 데이터 파편을 복수의 데이터 보관자(데이터 보관 서버)에게 보관시킴으로써 일부 보관자가 네트워크에서 이탈하여도 데이터 파편이 유실되지 않도록 할 수 있다.
이하에서, 본 발명의 바람직한 실시 예가 첨부된 도면들을 참조하여 상술한 특징을 가지는 본 발명을 구체적으로 설명한다. 본 발명을 설명함에 있어서 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 2는 본 발명에 따른 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템의 간략 구성도이다.
도 2에 보인 바와 같이, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템(1)은 데이터 제공자(20), 블록체인(스마트 컨트랙트)(30), 데이터 보관자(이하, '보관 서버'라 칭함)(40), 데이터 요청자(50)를 포함한다.
본 발명의 블록체인은, 프라이빗(private) 블록체인, 퍼블릭(public) 블록체인 또는 프라이빗(private) 블록체인과 퍼블릭(public) 블록체인의 혼합형 등 다양한 형태의 블록체인을 포함하는 개념일 수 있다.
데이터 제공자(20)와 데이터 요청자(50)는 블록체인 상의 하나의 노드를 포함한다.
데이터 제공자(20)와, 스마트 컨트랙트(30), 데이터 요청자(50)의 기능을 하는 노드는, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말(PDA: Personal DigitalAssistant), 스마트 TV 및 이동통신 단말(Mobile Communication Terminal) 등 중 어느 하나일 수 있다.
본 보안 시스템(1)의 각 구성요소가 상호 통신하기 위한 네트워크(도시않음)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
데이터 제공자(20)는 데이터를 소유하고 있으며 공유하고자 하는 데이터를 스마트 컨트랙트(30)에 등록하고 복수의 데이터 보관자(40)에게 데이터 파편과 데이터 파편 복호화 키를 업로드한다. 이와 같이, 복수개의 데이터 보관자들이 암호화된 각 다른 데이터 파편을 보관하게 함으로써, 데이터 보관 주체가 데이터 획득을 할 수 없게 할 수 있다.
또한, 본 발명에서는, 데이터 제공자(20)는 동일한 데이터 파편을 복수의 데이터 보관자에게 업로드하여 보관시킨다. 이에 의해, 일부 보관자가 네트워크에서 이탈하여도 데이터 파편이 유실되지 않게 되어, 데이터 가용성이 확보된다.
데이터 보관자(40)는 데이터 제공자(20)로부터 받은 데이터를 보관 및 관리하다가 데이터 요청을 받을 경우 스마트 컨트랙트(30)를 통해 데이터 요청자(50)가 데이터 접근 권한이 있는지를 확인하고 데이터 파편과 데이터 파편 복호화 키를 데이터 요청자(50)에게 전달한다.
데이터 요청자(50)는 스마트 컨트랙트(30)로부터 데이터 접근 권한을 얻고 데이터 보관자(40)로부터 데이터 파편과 데이터 파편 복호화 키를 요청하여 데이터 원본을 얻는다.
본 발명에서 스마트 컨트랙트(30)는 데이터 거래를 위한 기능을 제공하기 위해 블록체인상에 존재한다.
스마트 컨트랙트(30)는 블록체인을 구성하는 다수의 노드(서버, 컴퓨터 등)에 설치되는 프로그램으로서는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이다.
스마트 컨트랙트(30)가 하나의 노드에 설치되면, 블록체인내 다른 노드로 전파되어, 모든 노드가 스마트 컨트랙트를 가지게 된다. 스마트 컨트랙트가 지정된 기능을 수행하기 위해 노드 또는 다른 단말간에 정보를 송수신하는 상세 방법은 공지된 기술이므로 상세한 설명은 생략한다.
또한, 본 발명에서, 스마트 컨트랙트는 블록체인에 기 저장된 조건에 따라 거래가 수행되는 것을 의미하며, 예를 들어, 기 저장된 조건을 만족하는 거래요청이 획득되는 경우, 자동으로 거래를 수행하는 것을 의미할 수 있다. 또한, 자동으로 수행되는 거래는 블록체인에 기 저장된 조건에 따라 수행된다.
본 발명에 따라, 스마트 컨트랙트(30)에는 데이터 등록 내역, 데이터 접근 권한 내역, 데이터 보관자 내역이 기록되어 있다.
데이터 등록 내역에서는 데이터의 정보와 파편 정보, 파편과 보관자 매칭 정보를 포함한다.
데이터 접근 권한 내역에서는 누가 어떤 데이터에 접근이 가능한지에 대한 내역을 포함한다.
데이터 보관자 내역은 데이터 보관자(40)의 스토리지 엔드포인트 정보(서버 접속 정보)와 현재 보관중인 데이터의 용량과 총 보관 가능한 용량 정보를 포함한다.
해당 스마트 컨트랙트(30) 상에서 트랜잭션을 발생시킴으로써, 데이터 제공자(2))는 데이터를 등록하게 되며, 데이터 요청자(50)는 데이터 접근 권한을 획득하게 되고, 데이터 보관자(40)는 자신의 스토리지를 등록할 수 있다.
본 발명에서, 데이터 거래 프로세스는 크게 데이터 제공자(20)가 진행하는 데이터 등록 과정과, 데이터 요청자(50)가 진행하는 데이터 획득 과정으로 구성된다.
데이터 등록은 1) 데이터 준비, 2) 데이터 등록, 3) 데이터 보관자 매칭, 4) 데이터를 보관자에 업로드 과정들로 구성된다. 데이터 획득은 1a) 데이터 권한 획득, 2a) 데이터 다운로드, 3a) 원본 데이터 획득 과정들로 구성된다.
데이터 등록은 다음 과정으로 이루어진다.
먼저, 1) 데이터 준비 과정에서는 데이터를 전체 암호화 후 데이터를 여러 파편으로 나눈다. 이때 데이터의 파편은 비트(bit) 혹은 바이트(byte) 단위로 나눌 수 있다. 그 다음에 각 파편을 암호화하고, 앞의 각 단계에 대한 데이터의 해시 값을 얻는다. 2) 데이터 등록 과정에서는 데이터 등록을 위한 트랜잭션을 발생시키며, 이때 데이터 준비 과정에서 얻은 데이터 해시 값들과 1)의 데이터 준비 과정에서 암호화한 데이터를 복호화 가능한 복호화 키를 스마트 컨트랙트(30)에 기록한다. 3)데이터 보관자 매칭 과정에서는 각 데이터 파편이 각 데이터 보관자(혹은 데이터 보관 그룹)으로 매칭된다.
매칭 방법은 데이터 제공자(20)가 직접 선택하거나, 무작위로 매칭할 수도 있고, 데이터 보관 용량이 낮은 순으로 혹은 데이터 보관 여유가 많은 순으로 매칭할 수도 있다. 이때, 매칭 정보가 스마트 컨트랙트(30)의 데이터 등록 내역에 기록되어야 한다. 4) 데이터를 보관자에 업로드하는 과정에서는 각 암호화된 데이터 파편들을 매칭된 데이터 보관자(40)들에 그것의 복호화 키와 함께 업로드한다. 이때, 각 데이터 보관자(40)는 업로드된 데이터 파편의 해시 값이 스마트 컨트랙트(30)에 해당 데이터 등록내역과 함께 기록된 해시 값과 일치하는지를 확인한다.
데이터 획득 과정은 다음 과정으로 이루어진다.
1a) 데이터 권한 획득 과정에서는 스마트 컨트랙트(30)를 통해 데이터 권한을 획득한다. 이때 스마트 컨트랙트에는 데이터 권한 인증을 위한 공개키를 기록한다.
2a) 데이터 요청 과정에서는, 데이터 요청자(50)가 스마트 컨트랙트(30)에 기록된 데이터 보관 내역에 따라 암호화된 데이터 파편을 보관하고 있는 데이터 보관자(50)들에게 데이터 파편과 복호화 키를 요청한다. 각 데이터 보관자(50)들은 데이터 요청자(50)의 데이터 접근 권한을 스마트 컨트랙트(30) 상에서 확인하고, 데이터 파편의 복호화 키를 스마트 컨트랙트(30) 상에 기록된 데이터 권한 인증을 위한 공개키로 암호화하여 암호화된 데이터 파편과 함께 데이터 요청자(50)에게 전달한다.
3a) 원본 데이터 획득 과정에서는 데이터 요청자(50)는 각 데이터 보관자(40)들로부터 받은 데이터 파편 복호화 키를 데이터 요청자(50)의 데이터 권한 인증을 위한 비밀키로 복호화하여 얻고, 이 복호화키를 이용하여 각 암호화된 데이터 파편을 복호화한다. 데이터 요청자(50)는 복호화된 데이터 파편을 합쳐 하나의 데이터로 만들고 스마트 컨트랙트(30)에 기록된 원본 데이터 복호화키를 이용하여 합쳐진 데이터를 복호화하여 원본 데이터를 획득한다.
이때 데이터 요청자(50)는 원본 데이터를 비롯한 각 데이터 획득 단계에서의 해시 값들을 스마트 컨트랙트(30)에 기록된 해시 값들과 비교하여 원본 데이터를 정상적으로 획득하였는지를 확인한다.
도 3은 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템의 세부 구성도이다.
도 3에서, 데이터 제공자(20), 스마트 컨트랙트(30), 데이터 보관 서버(40), 데이터 요청자(50)가 본 발명에서 수행하는 각각의 기능을 세분화하여 세부 기능 블록을 가지는 것으로 나타내었으나, 일실시예일 뿐이며, 발명을 구현하는 당시의 기술을 반영하여 다양하게 구현가능하다.
도 3에 보인 바와 같이, 데이터 제공자(20)는, 입력부(21), 통신부(22) 및 제어부(26)를 포함한다. 그리고, 데이터 제공자(20)는, 제어부(56)의 제어에 따라 동작하는 기능블록(24)으로서, 데이터 전체 암호화부(24a), 데이터 전체 암호화부(24a)에서 출력되는 암호화 데이터를 파편화하는 데이터 파편화부(24b), 데이터 파편을 암호화하는 데이터 파편 암호화부(24c), 데이터를 암호화하고 파편화하는 각 단계에서 해시값을 추출하는 해시값 추출부(24d), 원본 데이터를 복호화하는 원본데이터 복호화기 등록부(24e), 보관자 매칭 요청부(24f), 데이터 파편을 데이터 보관 서버에 업로드하는 기능과 해시값을 업로드하는 기능을 하는 데이터 업로드부(24g)를 포함한다.
데이터 전체 암호화부(24a)는 데이터를 비트 또는 바이트 단위로 섞어서 암호화한다. 이와 같이, 데이터 파편을 분할하기 전에 원본 데이터를 암호화 시킴으로써 데이터 보관자나 데이터 파편을 획득한 자가 원본 데이터의 일부라도 유추할 수 없게 한다.
데이터 파편화부(24c)는 전체 암호화된 데이터를 적어도 2개 이상으로 파편화한다.
데이터 파편 암호화부(24c)는 공개키를 적어도 3개 이상 생성하여, 공개키로 각 데이터 파편을 암호화한다.
여기서, 데이터 암호화는 대칭키 방식과 비대칭키 방식이 있다. 대칭키 방식은 암호화/복호화가 동일한 키로 이루어진다. 비대칭키 방식은 암호화가 공개키로 수행되고, 복호화는 개인키(비밀키)로 수행된다.
본 실시예에서, 데이터 파편을 암호화하는 것은 비대칭키 방식을 사용한다.
해시값 추출부(24c)는 전체 데이터를 암호화하는 과정, 데이터를 파편화하는 과정, 공개키로 데이터를 암호화하는 과정 등 각각의 과정에서 데이터해시값을 획득하고, 제어부(26)는 이 해시값들을 저장부(25)에 임시 저장한다. 데이터에서 해시를 추출하여 저장해두는 이유는, 원본 데이터가 조금이라도 변경이 되면 해시가 완전 변동되기 때문에 해시값들을 저장해두고, 추후에 해시값들을 비교함으로써, 원본 데이터가 변경되었는지 확인하기 위한 것이다. 이와 같이, 데이터의 원본과 데이터의 파편, 암호화된 데이터 파편의 해시 값을 스마트 컨트랙트(30)에 기록함으로써 무결성을 검증할 수 있게 된다.
원본데이터 복호화기 등록부(24e)는 각 단계의 데이터해시값과 암호화 원본 데이터 복호화키를 블록체인 상의 스마트 컨트랙트(30)에 등록한다.
보관자 매칭 요청부(24g)는 스마트 컨트랙트(30)가 매칭해주는 다수의 데이터 보관자 서버 중에 하나를 선택한다.
또한, 다른 실시예에 따라, 보관자 매칭 요청부(24g)는 스마트 컨트랙트(30)에 요청해서 데이터 보관자 서버 리스트를 수신하여 데이터 보관자 서버를 직접 선택할 수도 있다. 유사한 방법으로, 데이터 제공자(20)가 데이터를 보관한 데이터 보관 서버(40)를 선택하는 방법은, 데이터 제공자(20)가 직접 스마트 컨트랙트(30)에 저장된 데이터 보관자 내역을 조회하여 선택하게 할 수 있다.
또한, 또다른 실시예에 따라, 데이터 제공자(20)가 데이터 파편들의 크기 정보들을 스마트 컨트랙트(30)에 전송하여, 스마트 컨트랙트(30)가 직접 데이터 파편들과 데이터 보관 서버(40)를 매칭하여 결정할 수도 있을 것이다.
업로드부(24d)는 데이터 파편을 지정된 데이터 보관 서버(40)에 업로드한다. 또한, 업로드부(24d)는 해시값들을 스마트 컨트랙트(30)에 업로드한다.
데이터 제공자(20)의 제어부(26)는 상술한 각 기능 블록을 제어하여, 블록체인상의 스마트 컨트랙트 및 데이터 보관 서버(40)와 통신하여, 데이터를 송수신한다.
도 3의 스마트 컨트랙트(30)는 다음과 같은 기능 블록을 포함한다.
도 3에 보인 바와 같이, 블록체인상의 스마트 컨트랙트(30)는 상술한 기능을 수행하기 위해, 다음의 구성을 가진다. 입력부(31), 통신부(32), 표시부(33), 저장부(35), 및 제어부(36)를 포함한다. 그리고, 스마트 컨트랙트(30)는 제어부(36)의 제어에 따라 동작하는 기능블록으로서, 데이터 보관 서버(40)의 데이터 용량 체크부(34a), 보관자 매칭부(34b), 데이터 파편 보관자 조회부(34c), 데이터 접근 권한 확인부(34d)를 포함한다.
데이터 용량 체크부(34a)는 각 데이터 보관 서버(40)의 용량 정보를 요청하여 데이터 보관 서버의 용량 정보를 형성한다.
제어부(36)는 각 기능 블록을 제어하며, 보관자 매칭부(34b)에 의한 데이터 제공자 정보와 파편데이터 및 데이터 보관 서버 매칭 결과 정보를 저장부(35)에 저장한다. 또한, 제어부(36)는 데이터 제공자로부터 전송되는 데이터해시값과 원본데이터 복호화키를 저장부(35)에 저장하고, 데이터 요청자(50)로부터 전송되는 데이터권한 인증용 공개키를 저장부(35)에 저장한다.
이에 따라, 스마트 컨트랙트(30)의 저장부(35)에는 데이터 제공자(20)에 따른 원본 데이터 복호화키가 저장된다. 그리고, 저장부(35)에는 데이터 보관 서버 매칭 결과 정보가 임시 저장되고, 데이터권한 인증용 공개키가 임시 저장된다.
또한, 스마트 컨트랙트(30)의 저장부(35)에는 데이터 등록내역, 데이터 접근 권한 내역, 데이터 보관자 내역 정보가 저장된다.
데이터 등록 내역에서는 데이터의 정보와 파편 정보, 파편과 보관자 매칭 정보를 포함한다. 데이터 접근 권한 내역에서는 누가 어떤 데이터에 접근이 가능한지에 대한 내역을 포함한다. 데이터 보관자 내역은 데이터 보관자의 스토리지 엔드 포인트 정보(예를 들어, 서버 주소)와 현재 보관중인 데이터의 용량과 총 보관 가능한 용량 정보를 포함한다.
데이터 파편 보관자 조회부(34c)는 데이터 요청자(50)의 요청에 따라, 데이터 보관 서버(40)에 저장된 데이터 파편을 조회한다. 그리고, 제어부(36)는 통신부(32)를 통해 조회결과인 데이터 파편 보관 내역 정보를 데이터 요청자(50)에게 전송한다.
데이터 접근 권한 확인부(34d)는, 데이터 요청자(50)가 데이터 파편 보관 내역 정보에 기초하여 데이터 파편을 수신하고자 데이터 보관 서버(40)에 요청한 경우 데이터 보관 서버(40)로부터 요청에 따라, 저장부(35)에 저장된 데이터 접근 권한 내역 정보에 기초하여, 데이터 요청자(50)의 접근 권한을 확인한다.
한편, 데이터 보관 서버(40)는 다음과 같은 구성을 가진다.
데이터 보관 서버(40)는 도 3에 보인 바와 같이, 입력부(41), 통신부(42), 표시부(43), 저장부(45), 및 제어부(46)를 포함한다. 그리고, 데이터 보관 서버(40)는 제어부(46)의 제어에 따라 동작하는 기능 블록으로서, 서버 정보 등록부(44a), 데이터 접근 권한 요청부(44b), 데이터 파편 복호화 키 암호화부(44c), 해시값 비교부(44d)를 포함한다.
제어부(46)는 데이터 제공자(20)로부터 전송되는 데이터 파편, 해시값, 데이터 파편 복호화 키(비밀키)를 수신하여, 데이터 제공자(20)의 식별정보 별로 데이터 파편, 해시값, 및 데이터 파편 복호화 키(비밀키)를 매칭하여 저장부(46)에 저장한다.
서버 정보 등록부(44a)는 현재 저장 가능한 서버 용량, 서버 주소 등을 스마트 컨트랙트(30)에 등록한다.
데이터 접근 권한 요청부(44c)는, 데이터 요청자(50)의 데이터 접근 권한을 스마트 컨트랙트(30)에게 확인 요청한다.
데이터 파편 복호화 키 암호화부(44c)는 스마트 컨트랙트(30)로부터 수신한 데이터 권한 인증용 공개키로 데이터 파편의 복호화키를 암호화한다.
여기서, 데이터 인증용 공개키는 제어부(46)가 스마트 컨트랙트(30)에게 요청하여 수신하거나, 데이터 요청자(50)에게 직접 요청하여 수신할 수도 있다.
해시값 비교부(44a)는 데이터 제공자(20)로부터 업로드된 데이터 파편의 해시값과 스마트 컨트랙트(30)에 저장된 데이터 등록 내역과 함께 기록된 해시값이 일치하는지 스마트 컨트랙트(30)에 확인요청한다.
한편, 데이터 요청자(50)는 다음과 같은 구성을 가진다.
데이터 요청자(50)는 도 3에 보인 바와 같이, 입력부(51), 통신부(52), 표시부(53), 저장부(55), 및 제어부(56)를 포함한다. 그리고, 데이터 요청자(50)는 제어부(56)의 제어에 따라 동작하는 기능블록으로서, 데이터 권한 획득 요청부(54a), 데이터 파편 수집부(54b), 데이터 파편 복호화키 복호화부(54c), 데이터 파편 복호화부(54d), 데이터 파편 병합부(54e), 원본데이터 복호화부(54f), 원본데이터 정상여부 확인부(54g)를 포함한다.
데이터 권한 획득 요청부(54a)는 데이터 보관자(40)들의 데이터 보관 정보를 스마트 컨트랙트(30)에게 요청하여 수신하고자 할 때, 또는 스마트 컨트랙트(30)에 접속하여 데이터 보관 정보를 조회하고자 할 때, 데이터 권한 인증용 공개키를 전송하는 데이터 권한 획득 요청 트랙잭션을 형성한다. 이때 스마트 컨트랙트(30)는 데이터 요청자(50)가 전송한 데이터 권한 인증용 공개키를 기록한다.
데이터 파편 수집부(54b)는, 스마트 컨트랙트(30)에 저장된 데이터 파편 보관 내역 정보를 조회한 후, 데이터 파편 보관 내역 정보를 참조하여, 원하는 데이터 파편을 보관하고 있는 데이터 보관 서버 정보(예를 들어, 서버 주소)로 각 데이터 보관 서버(40)에 접속하여 데이터 파편을 요청하여 수집한다.
데이터 파편 복호화키 복호화부(54c)는 암호화된 데이터 파편 복호화 키를 자신의 데이터 권한 인증용 비밀키로 복호화한다.
데이터 파편 복호화부(54d)는 복호화된 데이터 파편 복호화 키로 데이터 파편의 암호를 풀어 복호화한다.
데이터 파편 병합부(54e)는, 복호화된 데이터 파편을 병합하여 전체 암호 데이터로 형성한다.
원본 데이터 복호화부(54f)는 스마트 컨트랙트(30)에 요청하여 수신한 원본 데이터 복호화키를 이용하여 암호화된 전체 데이터를 복호화하여 원본 데이터를 획득한다.
원본 데이터 정상여부 확인부(54g)는 데이터 요청자가 상술한 각 단계들에서 해시값을 획득하고, 스마트 컨트랙트(30)에 요청하여 수신한 해시값들을 비교하여 일치하는지 여부에 따라, 원본 데이터가 정상 여부 인지를 판단한다.
도 4는 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템에서 대칭키와 비대칭키를 이용한 데이터 등록 및 획득하는 과정을 나타낸 예시도이다.
도 4에 보인 바와 같이, 데이터 제공자(20)는 원본 데이터(61)를 암호화하여 암호화 데이터(61-1)를 형성하고, 암호화 데이터(61-1)를 복수개로 파편화하고, 데이터 파편(61-2)를 복수의 비대칭키(B, C)를 이용하여 암호화하여, 암호화된 각 데이터 파편(61-3)를 복수의 데이터 보관자 그룹에 등록하여 저장한다. 이와 같이, 복수개의 데이터 보관자들이 암호화된 각 다른 데이터 파편을 보관하면, 데이터 보관 주체가 데이터 획득을 할 수 없게 할 수 있다.
도 4의 도면에서, 블록 모양의 데이터 상에 자물쇠가 기재되어 있으면, 암호화된 데이터인 것을 나타낸다. 열쇠모양 함께 자물쇠가 함께 표시된 것은, 그 열쇠가 암호화된 것임을 나타낸다. 열쇠모양 A는 대칭키를 나타내고, 열쇠모양 B와 열쇠모양 C는 비대칭키를 나타낸다. 열쇠모양 D는 데이터 권한 인증키를 나타낸다.
복수의 보관자 서버(40)인 보관자 그룹은 데이터를 데이터 요청자(50)에게 전송할 때, 암호화된 데이터 파편 복호화키(비밀키:B', C')와 함께 암호화된 데이 터 파편을 전송한다.
데이터 요청자(50)는 비대칭키인 데이터 권한 인증키(D)로 암호화된 데이터 파편 복호화키(B')를 데이터 파편 복호화키(B)로 복호화하고, 데이터 파편 복호화키(B)로 암호화된 데이터 파편을 복호화한다.
마찬가지로, 데이터 요청자는(50)는 비대칭키인 데이터 권한 인증키(D)로 암호화된 데이터 파편 복호화키(C')를 데이터 파편 복호화키(C)로 복호화하고, 데이터 파편 복호화키(C)로 암호화된 데이터 파편을 복호화한다.
그리고, 데이터 요청자(50)는 복호화된 데이터 파편들을 합쳐, 암호화된 단일 데이터를, 대칭키인 원본 데이터 복호화키(A)를 이용하여 원본 데이터화한다.
도 5는 본 발명의 탈중앙화 시스템 환경에서의 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법의 신호 흐름도이다.
도 5를 설명하기에 앞서, 도 5의 신호 흐름도는 일예이며, 확정된 것이 아니며, 필요에 따라, 순서가 변경될 수 있음은 물론이다.
도 5에 보인 바와 같이, 먼저, 데이터 제공자(20)의 암호화부(24a)가 데이터 전체를 암호화 한다(S10). 이때, 데이터 암호화는 데이터 비트를 섞음으로써 암호화 한다. 데이터 제공자(20)의 데이터 파편화부(24b)가 데이터를 복수개로 파편화한다(S11). 데이터 제공자(20)의 암호화부(24a)가 복수의 데이터 파편을 상이한 공개키(예를 들어, 3개 이상 공개키)로 각각 암호화한다(S12). 데이터 제공자(20)의 해시값 추출부(24c)가 상술한 각 단계에서 데이터 해시값을 획득한다(S13). 데이 터 파편은 공개키로 암호화된다.
한편, 데이터 보관 서버(40)의 서버 정보 등록부(44a)는 현재 보관중인 데이터 용량 정보, 총보관 용량 정보, 데이터 보관 서버에 접속하기 위한 서버주소와 같은 스토리지 엔드 포인트 정보를 스마트 컨트랙트에 전송하여 등록한다(S14). 스마트 컨트랙트(30)의 제어부(36)는 각 데이터 보관 서버 정보를 저장부(35)에 저장한다(S15).
데이터 제공자(20)의 제어부(26)가 암호화된 데이터 파편을 등록하기 위해 트랜잭션을 생성한다(S16).
데이터 제공자(20)의 제어부(25)가 각 단계의 해시값과 암호화 원본 데이터를 복호화하기 위한 원본 데이터 복호화키를 통신부(22)를 통해 스마트 컨트랙트(30)에 전송하고(S17), 스마트 컨트랙트(30)의 제어부(36)는 해시값과 원본 데이터 복호화키를 저장부(35)에 저장한다(S18).
데이터 제공자(20)의 보관자 매칭 요청부(24e)가 데이터 파편을 저장하기 위해, 스마트 컨트랙트(30)에 요청해서 데이터 보관자 매칭을 수행한다(S19). 데이터 보관자 매칭 방법은 상술하였으므로 생략한다.
데이터 보관 서버(40)가 선택(매칭)되면, 스마트 컨트랙트(30)의 제어부(36)는 데이터 제공자(20)와 데이터 파편과 보관 서버(40)의 매칭 정보를 저장부(35)에 기록한다(S20).
데이터 제공자(20)의 업로드부(24d)는, 매칭된 데이터 보관 서버(40)에 상술한 각 단계의 해시값과 암호화된 데이터 파편 및 파편 복호화키(비밀키)를 업로드한다(S21).
데이터 보관 서버(40)의 제어부(46)는 데이터 제공자의 식별정보와 함께 암호화된 데이터 파편과 파편 복호화키를 저장부(45)에 저장한다(S22). 그리고, 데이터 보관 서버(40)의 해시값 비교부(44b)는 업로드된 데이터 파편의 해시값과 블록체인(30)에 데이터 등록내역 정보로서 기록된 해시값이 일치하는지 확인한다(S23). 이는 각 암호화된 파편이 데이터 보관 서버(40)에 정확하게 저장되어 있는지 확인하기 위한 것이다.
데이터 요청자(50)의 제어부(56)는 스마트 컨트랙트(30)에 데이터 권한 획득을 요청하는 트랜잭션을 생성하고 데이터 권한 인증용 공개키를 스마트 컨트랙트(30)에 통신부(52)를 통해 전송한다(S24).
데이터 보관 서버(50)의 제어부(56)는 스마트 컨트랙트(30)에 권한 획득을 요청한 데이터 요청자(50)의 데이터 권한 인증용 공개키를 저장부(55)에 기록한다(S25).
데이터 요청자(50)의 제어부(56)가 스마트 컨트랙트(30)에게 데이터 보관 내역을 요청 후 수신하고, 이 데이터 보관 내역을 참조하여 데이터 파편과 파편 복호화키를 요청한다(S26).
데이터 요청자(50)의 데이터권한 획득 요청부(54a)는 스마트 컨트랙트(30)에 데이터접근 권한을 확인요청(조회)한다(S27).
스마트 컨트랙트(30)의 접근 권한 확인부(34c)는 저장부(35)에 저장된 데이터 접근 권한 내역 정보에 기초하여, 데이터 요청자(50)가 접근가능자인지 확인하여, 접근 가능자이면, 데이터 권한 인증용 공개키를 데이터 보관 서버(40)에 전송한다(S28).
데이터 보관 서버(40)의 데이터 파편 복호화키 암호화부(44c)는, 스마트 컨트랙트(30)한테 요청하여 수신한 데이터 권한 인증용 공개키로 데이터 파편의 복호화키를 암호화한다(S29).
데이터 보관 서버(40)의 제어부(46)는 암호화된 데이터 파편 복호화키와 암호화된 데이터 파편을 데이터 요청자에게 전송한다(S30).
데이터 요청자(50)의 데이터 파편 복호화키 복호화부(54c)는 암호화된 데이터 파편 복호화키를 자신이 저장하고 있는 데이터권한 인증을 위한 비밀키로 복호화한다(S31).
그리고, 데이터 요청자(50)의 데이터 파편 복호화부(54e)는 데이터 파편 복호화키로 암호화된 데이터 파편을 복호화한다(S32).
데이터 요청자(50)의 원본 데이터 복호화부(54f)는 원본 데이터 복호화키를 스마트 컨트랙트(30)에 요청하여 수신하고(S33), 데이터 파편병합부(54e)는 복호화된 데이터 파편을 합하여, 단일의 데이터로 형성하고, 원본 데이터 복호화부(54f)는 원본 데이터 복호화키로 합쳐진 데이터를 복호화하여 원본 데이터를 획득한다(S34).
데이터 요청자(50)의 원본 데이터 정상여부 확인부(54g)는 각 데이터 획득 단계에서의 해시값들을 스마트 컨트랙트(30)에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인한다(S35).
상술한 본 발명에 의해, 데이터가 보관되는 서버를 운영하는 주체가 데이터를 획득할 수 없으며 오직 데이터 제공자와 데이터 요청자만이 데이터를 사용할 수 있는 데이터 기밀성을 확보하였다.
또한, 본 발명은, 데이터 복호화 권한을 분산시켜 전달하기 때문에, 데이터 제공자가 데이터 요청에 개입하거나, 미리 데이터 요청자를 알아야 하는 제약사항에서 벗어날 수 있다.
또한 다양한 주체를 통해 데이터가 보관 및 전달되는 과정에서 데이터 무결성을 검증할 수 있으며, 데이터를 보관하는 서버에서 장애가 발생하더라도 데이터 거래에 지장이 가지 않도록 데이터 가용성을 확보할 수 있다. 따라서, 본 발명은 블록체인 기반의 탈중앙화 된 네트워크에서 데이터를 안전하게 거래 및 보관하기 위해 데이터 보안을 확보하기에 효과적이다.
상기는 본 발명의 예시로서, 한정적으로 해석되어야 하는 것은 아니다. 본 발명의 몇 가지 예시적인 실시 형태에 대해 설명했지만, 본 발명의 신규 교시 및 이점으로부터 현저하게 일탈하지 않고, 많은 변경이 예시적인 실시 형태에 있어서 가능한 것을 당업자라면 용이하게 이해할 것이다. 따라서 모든 그러한 변경은 특허청구의 범위에서 정의되는 본 발명의 범위 내에 포함되는 것이 의도된다. 따라서 상기가 본 발명의 예시이며, 공개된, 또는 본 명세서에 공개되는 발명에 있어서 특정의 실시 형태에 한정되는 것으로서 해석되어서는 안 되며, 개시된 실시 형태로의 변경 및 다른 실시 형태가 본 명세서에 개시되는 발명의 범위 내에 포함되는 것으로 이해해야 할 것이다.
1 : 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템
20 : 데이터 제공자 21, 31, 41, 51 : 입력부
22, 32, 42, 52 : 통신부 25, 35, 45, 55 : 저장부
26, 36, 46, 56 : 제어부 24a : 데이터 파편화부
24b : 암호화부 24c : 해시값 추출부
24d : 업로드부 24e : 보관자 매칭 요청부
24f : 원본 데이터 복화화키 등록부
30 : 스마트 컨트랙트 34a : 보관자 서버 용량 체크부
34b : 보관자 매칭부 34c : 데이터 접근 권한 확인부
34d : 데이터 파편 보관자 조회부
40 : 데이터 보관 서버 44a : 서버 정보 등록부
44b: 데이터접근 권한 요청부 44c : 데이터 파편 복호화키 암호화부
44d : 해시값 비교부
50 : 데이터 요청자 54a : 데이터권한 획득 요청부
54b : 데이터 파편 수집부 54c : 데이터 파편 복호화키 복호화부
54d : 데이터 파편 복호화부 54e : 데이터 파편 병합부
54f : 원본 데이터 복호화부 54g : 원본 데이터 정상 여부 확인부

Claims (24)

  1. 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템으로서,
    데이터를 파편화하고 데이터 파편을 암호화한 후, 공유하고자 하는 데이터 등록하기 위한 트랜잭션을 생성하여 블록체인상의 스마트 컨트랙트에 전송하고, 복수의 데이터 보관 서버에게 암호화된 데이터 파편과 데이터 파편 복호화 키를 업로드하는 데이터 제공자;
    데이터 등록 내역, 데이터 접근 권한 내역, 암호화된 데이터 파편을 저장한 데이터 보관 서버 내역이 기록되고, 상기 데이터 제공자가 등록한 데이터의 접근 권한을 승인하는 스마트 컨트랙트;
    상기 데이터 제공자로부터 전송된 데이터를 보관 및 관리하고, 소정의 데이터 요청자로부터 데이터 요청을 받을 경우 상기 스마트 컨트랙트를 통해 상기 데이터 요청자가 데이터 접근 권한이 있는지를 확인하고 확인결과 데이터 접근 권한이 있는 경우 암호화된 데이터 파편과 데이터 파편 복호화 키를 상기 데이터 요청자에게 전달하는 데이터 보관 서버; 및
    상기 스마트 컨트랙트로부터 데이터 접근 권한을 획득하고 상기 데이터 보관 서버로부터 제공된 암호화된 데이터 파편과 데이터 파편 복호화 키를 이용하여 데이터 원본을 획득하는 데이터 요청자를 포함하고,
    상기 스마트 컨트랙트가 상기 데이터 보관 서버로부터의 요청에 따라, 소정 데이터 요청자에 대한 데이터 접근 권한 확인을 수행한 후 상기 데이터 요청자로부터 전송받아 미리 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하고,
    상기 데이터 요청자가 데이터를 요청하기 위해 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 트랜잭션을 형성하여 상기 스마트 컨트랙트에 전송하면, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 요청자 식별정보와 함께 저장하고,
    상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하면, 상기 데이터 보관 서버가 상기 데이터권한 인증용 공개키로 상기 데이터 파편 복호화 키를 암호화하여 상기 데이터 파편과 함께 상기 데이터 요청자에게 전송하고,
    상기 데이터 요청자가 상기 데이터 보관 서버로부터 전송된 암호화된 데이터 파편 복호화 키를 데이터권한 인증을 위한 비밀키로 복호화하고, 데이터 파편 복호화 키로 암호화된 다수의 데이터 파편을 복호화하고, 상기 데이터 요청자가 상기 스마트 컨트랙트에 원본 데이터 복호화키를 요청 및 수신하고, 상기 복호화된 데이터 파편을 합해 단일 데이터로 형성 후 상기 원본 데이터 복호화키로 상기 단일 데이터를 복호화하여 원본 데이터를 획득하고,
    상기 데이터 요청자는, 상기 암호화된 데이터 파편을 복호화하는 과정과 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값을, 상기 스마트 컨트랙트에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인하는 것을 특징으로 하는, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  2. 제1항에 있어서,
    상기 데이터 등록 내역은 데이터 제공자 정보와 데이터 파편 정보, 데이터 파편 보관 서버 매칭 정보를 포함하고, 상기 데이터 접근 권한 내역은 누가 어떤 데이터에 접근이 가능한지에 대한 내역을 포함하고, 상기 데이터 보관 서버 내역은 데이터 보관 서버의 스토리지 엔드포인트 정보(서버 접속 정보)와 현재 보관중인 데이터의 용량과 총 보관 가능한 용량 정보를 포함하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  3. 제1항에 있어서,
    상기 데이터 제공자는 전체 데이터를 비트 단위로 섞어서 데이터 전체를 암호화하고, 전체 암호화된 데이터를 적어도 2개 이상의 파편으로 분할한 후, 각 파편에 대해 상이한 공개키를 형성하고, 각 데이터 파편을 상기 데이터 제공자의 상기 상이한 공개키로 암호화하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  4. 제1항에 있어서,
    상기 데이터 제공자는 상기 스마트 컨트랙트에 데이터 보관 매칭을 요청하여, 매칭된 데이터 보관 서버에 암호화된 데이터 파편과 데이터 파편 복호화 키를 업로드하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  5. 제1항에 있어서,
    상기 스마트 컨트랙트는 상기 데이터 제공자의 요청에 따라, 각 데이터 보관 서버의 용량 정보를 포함한 데이터 보관 서버 정보에 근거하여, 암호화된 데이터 파편을 저장가능한 데이터 파편 보관서버를 매칭하여 상기 데이터 제공자에게 매칭 정보를 제공하고, 매칭 정보를 저장하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  6. 제3항에 있어서,
    상기 데이터 제공자는 상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터 파편을 암호화하는 과정에서 발생하는 데이터해시값을 추출하여, 각 과정의 데이터해시값과 암호화 원본 데이터 복호화키를 상기 스마트 컨트랙트에 업로드하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  7. 제3항에 있어서,
    상기 데이터 요청자는 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 요청 트랙잭션을 형성하여 상기 스마트 컨트랙트에 전송하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  8. 제7항에 있어서,
    상기 스마트 컨트랙트는 소정 데이터 요청자로부터 데이터 권한 인증용 공개키가 포함된 데이터 권한 획득 요청 트랜잭션을 수신하여 저장하고,
    상기 데이터 보관 서버로부터 요청에 따라 소정 데이터 요청자의 데이터 접근 권한 확인을 수행한 후, 상기 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  9. 제8항에 있어서,
    상기 데이터 보관 서버는, 상기 데이터 제공자로부터 암호화된 데이터 파편, 상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터 파편을 암호화하는 과정에서 발생하는 데이터해시값, 데이터 파편 복호화 키를 전송받아, 데이터 제공자 식별정보 별로 상기 암호화된 데이터 파편, 데이터해시값, 및 데이터 파편 복호화 키를 함께 저장하고,
    데이터 요청자로부터 데이터 요청시 상기 스마트 컨트랙트로부터 수신한 데이터 권한 인증용 공개키로 데이터 파편 복호화 키를 암호화하여 암호화된 데이터 파편과 함께 데이터 요청자에게 전송하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  10. 제9항에 있어서,
    상기 데이터 요청자는, 수신한 암호화된 데이터 파편 복호화 키를 자신의 데이터 권한 인증용 비밀키로 복호화하고, 복호화된 데이터 파편 복호화 키로 암호화된 데이터 파편의 암호를 풀어 복호화하고, 복호화된 데이터 파편을 병합하여 암호화된 전체 데이터로 형성하고, 상기 스마트 컨트랙트에 요청하여 수신한 원본 데이터 복호화키를 이용하여 상기 암호화된 전체 데이터를 복호화하여 원본 데이터를 획득하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  11. 삭제
  12. 제1항에 있어서,
    상기 데이터 요청자는 암호화된 데이터 파편 요청을 위해, 상기 스마트 컨트랙트에 접속하여 암호화된 데이터 파편 보관 내역 정보를 조회하며, 상기 암호화된 데이터 파편 보관 내역 정보를 참조하여, 원하는 암호화된 데이터 파편을 보관하고 있는 데이터 보관 서버 정보로 각 데이터 보관 서버에 접속하여 암호화된 데이터 파편을 요청하여 수집하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  13. 제5항에 있어서,
    상기 데이터 보관 서버는, 데이터 제공자로부터 업로드된 암호화된 데이터 파편의 해시값과 상기 스마트 컨트랙트에 저장된 데이터 등록 내역과 함께 기록된 데이터 해시값이 일치하는지 상기 스마트 컨트랙트에 확인요청하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  14. 제1항 내지 제10항, 제12항 중 어느 한 항에 있어서,
    각 암호화된 데이터 파편은 적어도 3개 이상의 데이터 보관 서버에 저장되는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 시스템.
  15. 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법으로서,
    데이터 제공자가 데이터를 파편화하고 데이터 파편을 암호화한 후, 공유하고자 하는 데이터 등록하기 위한 트랜잭션을 생성하여 블록체인상의 스마트 컨트랙트에 전송하고, 복수의 데이터 보관 서버에게 암호화된 데이터 파편과 데이터 파편 복호화 키를 업로드하는 제1단계;
    상기 스마트 컨트랙트가 상기 데이터 제공자의 데이터 등록 내역 정보, 데이터 접근 권한 내역 정보, 암호화된 데이터 파편을 저장한 데이터 보관 서버 내역 정보를 형성하여 저장하는 제2단계;
    상기 데이터 보관 서버가 상기 데이터 제공자가 업로드한 암호화된 데이터 파편을 보관 및 관리하고, 소정 데이터 요청자로부터 데이터 요청을 받을 경우 상기 스마트 컨트랙트를 통해 상기 데이터 요청자가 데이터 접근 권한이 있는지를 확인하는 제3단계;
    상기 확인결과 데이터 접근 권한이 있는 경우, 상기 데이터 보관 서버가 암호화된 데이터 파편과 데이터 파편 복호화 키를 상기 데이터 요청자에게 전송하는 제4단계;
    상기 데이터 요청자가 수신한 암호화된 데이터 파편과 데이터 파편 복호화 키로 암호화된 데이터 파편을 복호화하여 데이터 원본을 복구하는 제5단계를 포함하고;
    상기 제3단계는, 상기 스마트 컨트랙트가 상기 데이터 보관 서버로부터의 요청에 따라, 소정 데이터 요청자에 대한 데이터 접근 권한 확인을 수행한 후 상기 데이터 요청자로부터 전송받아 미리 저장한 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계를 포함하고,
    상기 제3단계는, 상기 데이터 요청자가 데이터를 요청하기 위해 데이터 권한 인증용 공개키를 포함하는 데이터 권한 획득 트랜잭션을 형성하여 상기 스마트 컨트랙트에 전송하는 단계와, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 요청자 식별정보와 함께 저장하는 단계를 더 포함하고;
    상기 제4단계는, 상기 스마트 컨트랙트가 상기 데이터권한 인증용 공개키를 상기 데이터 보관 서버에 전송하는 단계와, 상기 데이터 보관 서버가 상기 데이터권한 인증용 공개키로 상기 데이터 파편 복호화 키를 암호화하여 암호화된 데이터 파편과 함께 상기 데이터 요청자에게 전송하는 단계를 포함하고,
    상기 제5단계는, 상기 데이터 요청자가 상기 데이터 보관 서버로부터 전송된 암호화된 데이터 파편 복호화 키를 데이터권한 인증을 위한 비밀키로 복호화하는 단계와, 데이터 파편 복호화 키로 암호화된 다수의 데이터 파편을 복호화하는 단계와, 상기 데이터 요청자가 상기 스마트 컨트랙트에 원본 데이터 복호화키를 요청 및 수신하는 단계와, 상기 복호화된 데이터 파편을 합해 단일 데이터로 형성 후 상기 원본 데이터 복호화키로 상기 단일 데이터를 복호화하여 원본 데이터를 획득하는 단계를 포함하고,
    상기 제5단계는, 상기 암호화된 데이터 파편을 복호화하는 과정과 복호화된 데이터 파편을 합해서 단일 데이터로 형성하는 과정에서 발생하는 데이터 해시값을, 상기 스마트 컨트랙트에 기록된 해시값과 비교하여 원본 데이터가 정상인지 확인하는 단계를 더 포함하는 것을 특징으로 하는 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
  16. 제15항에 있어서,
    상기 제1단계는,
    상기 데이터 제공자가 전체 데이터를 비트 단위로 섞어서 데이터 전체를 암호화하는 단계;
    상기 데이터 제공자가 전체 암호화된 데이터를 적어도 2개 이상의 데이터 파편으로 분할하고, 각 데이터 파편에 대해 상이한 공개키를 형성하고, 각 데이터 파편을 상기 데이터 제공자의 상기 상이한 공개키로 암호화하는 단계;
    상기 전체 데이터를 암호화하는 과정과 데이터를 파편화하는 과정과 공개키로 데이터 파편을 암호화하는 과정에서 발생하는 데이터 해시값을 추출하여 각 과정의 데이터 해시값과 암호화 원본 데이터 복호화키를 상기 스마트 컨트랙트에 업로드하여 저장시키는 단계를 포함하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
  17. 제15항에 있어서,
    상기 제3단계는,
    상기 데이터 제공자가 암호화된 데이터 파편을 업로드 가능한 데이터 보관 서버 정보를 제공받기 위한 데이터 보관 매칭을 상기 스마트 컨트랙트에 요청하는 단계와;
    상기 스마트 컨트랙트는 상기 데이터 제공자의 요청에 따라 암호화된 데이터 파편을 저장가능한 데이터 보관 서버를 매칭하여 상기 데이터 제공자에게 매칭 정보를 제공하는 단계와;
    상기 데이터 제공자가 상기 매칭 정보에 기초하여 매칭된 데이터 보관 서버에 암호화된 데이터 파편을 업로드하는 단계를 포함하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 제15항에 있어서,
    상기 제3단계는,
    상기 데이터 보관 서버가 상기 데이터 제공자로부터 업로드된 암호화된 데이터 파편의 해시값과 상기 스마트 컨트랙트에 저장된 데이터 등록 내역과 함께 기록된 해시값이 일치하는지 확인하는 단계를 포함하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
  23. 제15항에 있어서,
    상기 제3단계는,
    상기 데이터 요청자가 데이터를 요청하기 위해, 상기 스마트 컨트랙트에 저장된 데이터 보관 내역을 조회하는 단계와, 상기 조회결과에 기초하여 원하는 암호화된 데이터 파편이 저장된 데이터 저장 서버에 접속하여 암호화된 데이터 파편과 데이터 파편 복호화 키를 요청하는 단계를 포함하는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
  24. 제15항 내지 제17항, 제22항 내지 제23항 중 어느 한 항에 있어서,
    각 암호화된 데이터 파편은 적어도 3개 이상의 데이터 보관 서버에 저장되는 것인, 블록체인 기반 데이터 거래 및 보관을 위한 데이터 보안 방법.
KR1020190153153A 2019-11-26 2019-11-26 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 KR102399667B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190153153A KR102399667B1 (ko) 2019-11-26 2019-11-26 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190153153A KR102399667B1 (ko) 2019-11-26 2019-11-26 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법

Publications (3)

Publication Number Publication Date
KR20210064675A KR20210064675A (ko) 2021-06-03
KR102399667B1 true KR102399667B1 (ko) 2022-05-19
KR102399667B9 KR102399667B9 (ko) 2022-12-27

Family

ID=76396630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190153153A KR102399667B1 (ko) 2019-11-26 2019-11-26 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102399667B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113724083A (zh) * 2021-09-02 2021-11-30 上海万向区块链股份公司 基于智能合约的数据交易方法及系统
KR102401485B1 (ko) * 2021-12-30 2022-05-24 주식회사 디사일로 동형 암호화된 데이터 처리 방법 및 시스템
CN114785516B (zh) * 2022-03-31 2024-04-05 浙江数秦科技有限公司 基于区块链的限时加解密系统
WO2024117755A1 (ko) * 2022-12-01 2024-06-06 서강대학교 산학협력단 블록체인을 기반으로 한 치환 암호화를 이용한 데이터 접근 제어 시스템, 장치 및 그 방법
CN116260655B (zh) * 2023-05-06 2023-07-25 杭州瀚陆信息技术有限公司 一种深海机器人数据传输方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297551A (ja) * 2001-03-30 2002-10-11 Mitsubishi Electric Corp 認証システム
KR100565031B1 (ko) * 2001-07-11 2006-03-30 소니 컴퓨터 엔터테인먼트 아메리카 인코포레이티드 통신 환경에 따른 콘텐트 선택
JP2008287488A (ja) * 2007-05-17 2008-11-27 Psd:Kk データ分散保存装置
JP2019074910A (ja) * 2017-10-16 2019-05-16 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297551A (ja) * 2001-03-30 2002-10-11 Mitsubishi Electric Corp 認証システム
KR100565031B1 (ko) * 2001-07-11 2006-03-30 소니 컴퓨터 엔터테인먼트 아메리카 인코포레이티드 통신 환경에 따른 콘텐트 선택
JP2008287488A (ja) * 2007-05-17 2008-11-27 Psd:Kk データ分散保存装置
JP2019074910A (ja) * 2017-10-16 2019-05-16 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置

Also Published As

Publication number Publication date
KR102399667B9 (ko) 2022-12-27
KR20210064675A (ko) 2021-06-03

Similar Documents

Publication Publication Date Title
KR102399667B1 (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
CN110046521B (zh) 去中心化隐私保护方法
CN109144961B (zh) 授权文件共享方法及装置
CN110059503B (zh) 可追溯的社交信息防泄露方法
CN111199045A (zh) 信息的安全多方存储和传递的加密私钥管理的方法和系统
US7975312B2 (en) Token passing technique for media playback devices
US8824674B2 (en) Information distribution system and program for the same
US7774611B2 (en) Enforcing file authorization access
CN105516110B (zh) 移动设备安全数据传送方法
CN110191153B (zh) 基于区块链的社交通信方法
US11943350B2 (en) Systems and methods for re-using cold storage keys
US11675922B2 (en) Secure storage of and access to files through a web application
JP6543743B1 (ja) 管理プログラム
KR20140093716A (ko) 컴퓨팅 장치를 보안화하는 방법
KR20130084604A (ko) 전자 문서들의 판독 가능성을 제어 및 제한하기 위한 방법
KR100656402B1 (ko) 디지털 콘텐츠를 안전하게 배포하는 방법 및 그 장치
US10951510B2 (en) Communication device and communication method
JP7053031B2 (ja) 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム
US20240064009A1 (en) Distributed anonymized compliant encryption management system
CN110771124A (zh) 对本地网络上的数据存储系统的访问的基于云的管理
CN117396869A (zh) 用于使用分布式账本技术进行安全密钥管理的系统和方法
KR20190111261A (ko) 블록체인 기술을 활용한 보안관제 시스템 및 그 방법
KR20210099814A (ko) 블록체인을 기반으로 한 디지털 자산 관리 시스템 및 방법
JP5485452B1 (ja) 鍵管理システム、鍵管理方法、ユーザ端末、鍵生成管理装置、及びプログラム
KR101651563B1 (ko) 사용 이력 기반의 인증코드 관리 시스템 및 그 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]