KR20210085389A - 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법 - Google Patents

블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법 Download PDF

Info

Publication number
KR20210085389A
KR20210085389A KR1020190178374A KR20190178374A KR20210085389A KR 20210085389 A KR20210085389 A KR 20210085389A KR 1020190178374 A KR1020190178374 A KR 1020190178374A KR 20190178374 A KR20190178374 A KR 20190178374A KR 20210085389 A KR20210085389 A KR 20210085389A
Authority
KR
South Korea
Prior art keywords
data
pieces
user
ticket
sub
Prior art date
Application number
KR1020190178374A
Other languages
English (en)
Other versions
KR102496436B1 (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 KR1020190178374A priority Critical patent/KR102496436B1/ko
Publication of KR20210085389A publication Critical patent/KR20210085389A/ko
Application granted granted Critical
Publication of KR102496436B1 publication Critical patent/KR102496436B1/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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • 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
    • 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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • H04L2209/38

Landscapes

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

Abstract

본 발명의 일 실시 예에 따른 복수의 서브 저장소들을 포함하는 저장소에 데이터를 저장하는 방법은, 데이터를 분할한 복수의 데이터 조각들을 복수의 서브 저장소들 각각에 저장하는 단계; 상기 복수의 데이터 조각들에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하는 단계; 및 상기 티켓들을 블록체인 네트워크에 등록하는 단계를 포함할 수 있다.

Description

블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법 {METHOD OF STORING PLURALITY OF DATA PIECES IN STORAGE IN BLOCKCHAIN NETWORK AND METHOD OF RECEIVING PLURALITY OF DATA PIECES}
본 발명은 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장소에 저장된 복수의 데이터 조각들을 수신하는 방법에 관한 것이다.
블록체인(blockchain)이란 데이터를 '블록'이라고 하는 소규모 데이터들로 나누어 P2P 방식에 기초하여 생성된 체인 형태의 연결고리 기반의 분산 데이터 저장 환경에 저장함으로써 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술을 의미한다.
블록체인에 포함되는 블록 하나의 크기는 수십 바이트에서 수십 킬로바이트로 제한적이며, 또한 P2P 시스템의 특성상 블록체인 원장의 크기가 급격하게 늘어나지 않도록 데이터 공간을 제한적으로 사용하도록 하고 있다.
이러한 이유로 크기가 큰 데이터(예컨대, 파일)는 블록체인 원장에 직접 기록하지 않고, 오프체인이라고 불리는 외부의 저장소에 저장하고, 해당 데이터를 식별하는 해시 값과 데이터에 대한 소유자 정보를 온체인(블록체인 원장)에 기록하는 방식이 이용되고 있다.
다만, 이러한 경우, 블록체인의 외부에 저장된 데이터에 대한 소유권을 증명하고, 이를 이용하여 안전하게 데이터를 저장 및 로드하는 방법이 문제된다.
본 발명이 해결하고자 하는 과제는, 신뢰성을 제공하는 블록체인의 분산 원장 기술에서 티켓을 도입하여 데이터를 안전하게 저장하고, 사용자의 사용 권한을 증명하는 방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따른 복수의 서브 저장소들을 포함하는 저장소에 데이터를 저장하는 방법은, 데이터를 분할한 복수의 데이터 조각들을 복수의 서브 저장소들 각각에 저장하는 단계; 상기 복수의 데이터 조각들에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하는 단계; 및 상기 티켓들을 블록체인 네트워크에 등록하는 단계를 포함할 수 있다.
상기 데이터 조각들 각각은 상기 데이터 조각들의 사용자의 개인키로 서명되고, 상기 저장소의 공개키로 암호화된 비밀 정보를 포함할 수 있다.
상기 티켓은 데이터 조각의 해시 값을 상기 저장소의 개인키로 서명하여 생성될 수 있다.
상기 티켓들을 블록체인 네트워크에 등록하는 단계는 상기 티켓을 상기 데이터 조각들의 사용자의 공개키로 암호화하여 상기 블록체인 네트워크에 등록할 수 있다.
본 발명의 다른 실시 예에 따른 사용자가 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 방법은, 블록체인 네트워크에게 상기 복수의 데이터 조각들로 분할된 데이터에 대한 사용권을 증명하는 단계; 상기 증명에 기초하여, 상기 블록체인 네트워크로부터 상기 복수의 데이터 조각들에 대한 암호화된 티켓을 수령하는 단계; 상기 복수의 서브 저장소들에 복호화한 티켓을 전송하는 단계; 및 상기 티켓에 대응하는 데이터 조각을 수신하는 단계를 포함할 수 있다.
상기 복수의 데이터 조각들에 대한 사용권을 증명하는 단계는, 상기 데이터의 ID와 함께 상기 사용자의 개인키를 이용하여 서명된 상기 데이터의 해시 값을 상기 블록체인 네트워크로 전송하는 단계; 상기 서명된 상기 데이터의 해시 값을 상기 사용자의 공개키를 이용하여 검증하는 단계; 및 상기 검증에 기초하여 상기 사용자의 사용권을 증명하는 단계를 포함할 수 있다.
상기 방법은, 상기 암호화된 티켓을 상기 사용자의 개인키로 복호화하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 저장소의 공개키를 이용하여 상기 복호화된 티켓의 서명을 확인하는 단계; 및 상기 사용자의 개인키를 이용한 서명을 상기 서명상기 저장소의 공개키로 암호화하는 단계를 더 포함하고, 상기 복수의 서브 저장소들에 복호화한 티켓을 전송하는 단계는 상기 암호화된 서명을 상기 티켓과 함께 전송할 수 있다.
본 발명의 또 다른 실시 예에 따른 복수의 서브 저장소들을 포함하는 저장소는, 사용자로부터 데이터를 분할한 복수의 데이터 조각들을 수신하는 송수신기; 상기 복수의 데이터 조각들 각각을 저장하는 복수의 서브 저장소들; 및 상기 송수신기 및 상기 복수의 서브 저장소들을 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 복수의 데이터 조각들에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하고, 상기 티켓들을 블록체인 네트워크에 등록할 수 있다.
본 발명의 또 다른 실시 예에 따른 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 사용자 장치는, 상기 복수의 데이터 조각들을 송수신하는 송수신기; 상기 복수의 데이터 조각들을 저장하는 메모리; 및 상기 송수신기 및 상기 메모리를 제어하는 프로세서를 포함하고, 상기 프로세서는, 블록체인 네트워크에게 상기 복수의 데이터 조각들로 분할된 데이터에 대한 사용권을 증명하고, 상기 증명에 기초하여, 상기 블록체인 네트워크로부터 상기 복수의 데이터 조각들에 대한 암호화된 티켓을 수령하고, 상기 송수신기를 이용하여 상기 복수의 서브 저장소들에 복호화한 티켓을 전송하고, 상기 송수신기를 이용하여 상기 티켓에 대응하는 데이터 조각을 수신할 수 있다.
본 발명의 실시 예에 의하면, 블록체인 네트워크에서 파일과 같이 크기가 큰 데이터를 오프체인의 저장소에 저장하는 경우, 저장소에서 티켓을 생성함으로써, 데이터의 저장을 보장하고, 저장된 데이터에 대한 소유권을 증명할 수 있어, 보다 안전하게 데이터를 저장하고, 데이터에 대한 접근 권한에 대한 신뢰성을 제공할 수 있다.
도 1은 본 발명의 일 실시 예에 따라 데이터를 분산 저장하는 방법을 나타낸다.
도 2는 사용자가 데이터를 데이터 조각들로 분할하여 저장하는 세부적인 방법을 나타낸다.
도 3은 본 발명의 일 실시 예에 따라 서브 저장소가 티켓을 생성하여 블록체인 네트워크에 등록하는 방법을 나타낸다.
도 4는 본 발명의 일 실시 예에 따라 사용자가 티켓을 이용하여 데이터 조각에 대한 사용권을 증명하는 방법을 나타낸다.
도 5는 본 발명의 일 실시 예에 따라 사용자가 데이터 조각에 대한 사용권을 증명하는 방법을 나타낸다.
도 6은 본 발명의 일 실시 예에 따라 데이터를 관리하기 위하여 사용자가 블록체인 네트워크에 등록하는 정보들에 대한 설명을 나타낸다.
도 7은 본 발명의 일 실시 예에 따라 저장소에 복수의 데이터 조각들을 저장하는 방법을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시 예에 따라 사용자가 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 방법을 나타내는 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따라 데이터를 분산 저장하는 방법을 나타내고, 도 2는 사용자가 데이터를 데이터 조각들로 분할하여 저장하는 세부적인 방법을 나타낸다.
도 1을 참조하면, 데이터를 저장할 때, 사용자(100)는 데이터를 복수의 데이터 조각들로 분할하고, 분할된 복수의 데이터 조각들 각각을 복수의 서브 저장소들(200-1, 200-2, 200-3)을 포함하는 저장소(200)에 저장할 수 있다(S100). 도 1에서는 설명의 편의를 위하여 3개의 서브 저장소들만 도시하였지만, 저장소(200)는 둘 이상의 서브 저장소들을 포함할 수 있다. 실시 예에 따라, 본 명세서에서의 사용자(100)는 동작을 수행하는 인적 주체로서의 사용자를 의미할 수도 있고, 상기 사용자의 제어에 의해 동작되는 사용자 장치(device)를 의미할 수도 있다.
사용자(100)가 데이터를 복수의 데이터 조각들로 분할하여 저장하는 방법을 보다 자세하게 설명하기 위해 도 2를 참조하면, 사용자(100)는 데이터의 보안성을 높이기 위하여 데이터를 복수의 데이터 조각들로 분할할 수 있다.
사용자(100)는 분할한 복수의 데이터 조각들을 암호화할 수 있다. 예컨대, 사용자(100)는 복수의 서브 데이터들 각각에 파일 암호화를 위한 대칭 키(symmetric-key)를 부여하여 암호화할 수 있다.
사용자(100)는 암호화한 복수의 데이터 조각들에 확장 인코딩을 수행할 수 있다. 실시 예에 따라, 사용자(100)는 이레이저 코드(erasure code)를 이용하여 복수의 데이터 조각들을 인코딩함으로써 데이터 조각들 중 일부가 훼손되더라도 데이터를 복원할 수 있다.
사용자(100)는 확장 인코딩까지 수행한 복수의 데이터 조각들을 각 서브 저장소들(200-1, 200-2, 200-3)로 분산하여 저장할 수 있다.
다시 도 1을 참조하면, 저장소(200)는 복수의 데이터 조각들 각각에 대한 접근 권한을 증명하기 위하여 복수의 티켓들을 생성하고, 생성한 복수의 티켓들을 블록체인 네트워크(300)로 전송할 수 있다(S110). 저장소(200)가 티켓을 생성하는 방법은 도 3을 통해 후술하기로 한다.
사용자(100)는 저장소(200)에 저장한 데이터에 대응되는 데이터 ID를 블록 체인 네트워크(300)에 등록할 수 있다(S120). 사용자(100)는 데이터를 저장소(200)에서 다운로드할 때, 자신이 적법한 사용자(200)임을 증명하기 위하여 데이터 ID를 이용할 수 있다.
도 3은 본 발명의 일 실시 예에 따라 서브 저장소가 티켓을 생성하여 블록체인 네트워크에 등록하는 방법을 나타낸다.
도 3을 참조하면, 사용자(100)는 데이터 조각을 서브 저장소(200-i, i는 자연수)에 저장할 수 있다. 상기 데이터 조각은 사용자 식별을 위한 비밀 정보를 포함할 수 있다.
사용자(100)는 사용자(100)의 개인키로 서명하고, 제1 솔트(salt) 키를 포함시키고, 저장소(200)의 공개키로 암호화함으로써 상기 비밀 정보를 생성할 수 있다.
서브 저장소(200-i)는 데이터 조각에 포함된 비밀 정보를 저장소(200)의 개인키로 복호화하고, 사용자(100)의 공개키로 서명을 확인함으로써, 수신한 데이터 조각이 사용자(100)에 사용권이 있음을 확인할 수 있다. 본 명세서에서는, 사용권을 기준으로 설명하지만, 이에 한정되지 않는다. 즉, 실시 예에 따라, 사용자가 소유자인 경우, 사용권은 소유권을 의미할 수도 있다.
서브 저장소(200-i)는 수신한 데이터 조각에 대한 사용권을 확인하는데 이용되는 티켓을 생성할 수 있다. 서브 저장소(200-i)는 데이터 조각의 해시 값(hash value)와 제2 솔트 키를 저장소(200)의 개인키로 서명하여 티켓을 생성하고, 생성한 티켓을 다시 사용자(100)의 공개키로 암호화할 수 있다.
서브 저장소(200-i)는 사용자(100)의 공개키로 암호화된 티켓을 블록체인 네트워크(300)에 등록(전송)할 수 있다.
도 4는 본 발명의 일 실시 예에 따라 사용자가 티켓을 이용하여 데이터 조각에 대한 사용권을 증명하는 방법을 나타낸다.
도 4를 참조하면, 사용자(100)가 데이터를 저장소(200)에서 로드하고자 할 경우, 사용자(100)는 데이터 조각들에 대한 사용권을 저장소(200)에 증명하여야 한다.
사용자(100)는, 저장소(200)로부터 데이터를 로드하기 위하여, 먼저 블록체인 네트워크(300)에게 데이터 조각들 각각에 대한 사용권을 증명할 수 있다. 사용자(100)가 블록체인 네트워크(300)에게 데이터 조각에 대한 사용권을 증명하는 방법은 도 5를 통해 후술하기로 한다.
데이터 조각들에 대한 사용권이 증명된 경우, 사용자(100)는 블록체인 네트워크(300)로부터 데이터 조각들 각각에 대한 암호화된 티켓을 수신할 수 있다. 도 4에서는, 설명의 편의를 위하여 하나의 데이터 조각에 대한 예를 설명하기로 한다.
사용자(100)는 사용자(100)의 공개키로 암호화된 티켓을 사용자(100)의 개인키로 복호화하여 티켓을 확인하고, 저장소(200)의 공개키를 이용하여 상기 티켓의 서명을 확인함으로써, 데이터 조각이 저장된 서브 저장소가 제1 서브 저장소(200-1)임을 확인할 수 있다.
사용자(100)는 티켓과 제2 솔트 키를 사용자(100)의 개인키로 서명하고, 저장소(200)의 공개키로 암호화하고, 암호화된 티켓을 제1 서브 저장소(200-1)로 전송할 수 있다.
암호화된 티켓을 수신한 제1 서브 저장소(200-1)는 저장소(200)의 개인키를 이용하여 복호화함으로써, 티켓에 포함된 제2 솔트키와 사용자(100)의 서명을 확인할 수 있다.
티켓이 검증된(즉, 티켓을 이용하여 사용자(100)의 사용권이 검증된) 경우, 제1 서브 저장소(200-1)는 사용자(100)로 데이터 조각을 전송할 수 있다.
도 5는 본 발명의 일 실시 예에 따라 사용자가 데이터 조각에 대한 사용권을 증명하는 방법을 나타낸다.
도 5를 참조하면, 사용자(100)는 블록체인 네트워크(300)에 데이터 ID, 사용자(100)의 공개키 및 데이터 조각 목록을 등록할 수 있다. 사용자(100)는 등록한 데이터 ID, 사용자(100)의 공개키 및 데이터 조각 목록을 이용하여 데이터에 대한 사용자(100) 자신의 사용권을 증명할 수 있고, 사용권을 증명함으로써 블록체인 네트워크(300)로부터 획득한 티켓을 이용하여 서브 저장소(200-i)에서 데이터 조각을 로드할 수 있다.
블록체인 네트워크(300)에는 데이터 ID, 사용자(100)의 공개키 및 데이터 조각 목록뿐만 아니라, 데이터의 해시 값, 데이터 조각의 해시 값 및 데이터 조각의 티켓도 등록될 수 있다. 실시 예에 따라, 사용자(100)는 데이터의 해시 값을 블록체인 네트워크(300)에 등록할 수 있고, 서브 저장소(200-i)는 데이터 조각의 해시 값 및 데이터 조각의 티켓을 블록체인 네트워크(300)에 등록할 수 있다. 등록된 정보들을 통해 권한이 있다고 결정된 사용자만이 데이터 조각들로부터 데이터를 복원할 수 있다.
여기서, 데이터 ID는 데이터를 다른 데이터와 구분할 수 있는 식별자를 의미하고, 실시 예에 따라, 데이터 ID는 후술할 UID(Unique ID)를 의미할 수 있다.
또한, 데이터의 해시 값(hash value)은 데이터 ID와 오프체인 상에 저장된 데이터의 무결성(integrity)을 검증하는데 이용되는 값을 의미하고, 데이터 조각의 해시 값은 각각의 서브 저장소들(200-i)에 분할 저장된 데이터 조각들의 값을 의미할 수 있다.
블록체인 네트워크(300)로부터 데이터에 대한 사용권을 인증받기 위하여, 사용자(100)는 사용자(100)의 개인키로 서명한 데이터의 해시 값을 데이터 ID와 함께 블록체인 네트워크(300)로 전송할 수 있다. 수신한 데이터 ID의 확인 및 사용자(100)의 공개키를 이용한 검증을 통해, 사용자(100)가 데이터에 대한 적법한 사용자임을 확인한 경우, 블록체인 네트워크(300)는 사용자(100)에게 데이터 조각(또는 데이터)에 대한 티켓을 전송할 수 있다.
도 6은 본 발명의 일 실시 예에 따라 데이터를 관리하기 위하여 사용자가 블록체인 네트워크에 등록하는 정보들에 대한 설명을 나타낸다.
도 6을 참조하면, 사용자(100)는, 사용권의 증명, 데이터의 식별 및 이력 추적을 위하여, 블록체인 네트워크(300)에 데이터 ID를 등록할 수 있다. 사용자(100)가 등록한 데이터 ID는 UID, CID(Contents ID) 및 LID(Local ID)를 포함할 수 있다.
UID는 데이터마다 부여되는 고유한 식별자로, 시간 정보(Tiemstamp)와 물리적인 장치 정보 등을 이용하여 생성되는 UUID 기반의 식별자를 의미할 수 있다. 서로 다른 두 데이터가 동일한 내용에 관한 것이라고 할지라도 등록 시 서로 다른 UID가 부여되며, 하나의 시스템 내에서는 UID가 중복되지 않을 수 있다. 블록체인 네트워크(300)는 UID를 이용하여 데이터의 사용자를 판별할 수 있다.
CID는 데이터의 내용을 기준으로 생성되는 해시 함수(예컨대, sha-256)에 의해 계산되는 식별자를 의미할 수 있다. CID는 데이터의 무결성을 증명하는데 사용될 수 있으며, 서로 다른 두 데이터가 동일한 내용에 관한 것일 경우 동일한 CID를 가질 수 있다. CID는 블록체인에 등록되는 데이터 ID 중에서 시간 정보(Timestamp)와 함께 데이터의 저작권(데이터의 생성에 대한 권리)을 보장할 수 있다. 예컨대, 동일한 데이터를 등록한 사용자는 각각의 사용권(소유권)을 가질 수 있지만, CID와 앞선 시간 정보(Timestamp)를 가진 사용자만이 해당 데이터에 대한 저작권을 주장할 수 있다.
LID는 데이터가 저장된 주소 및 상대적인 경로를 통해 데이터의 수정이나 이동 이력을 관리하는 용도로 사용되는 식별자를 의미할 수 있다.
또한, 사용자(100)는, 사용권의 증명, 데이터의 식별 및 이력 추적을 위하여, 시간 정보(Timestamp) 및 사용자(100)의 공개키도 등록할 수 있다.
시간 정보는 데이터의 등록 또는 수정에 대한 시간 정보를 나타내는 정보로서, 데이터의 저작권을 결정하는데 이용될 수 있다.
사용자(100)의 공개키는 데이터의 사용권(소유권)을 증명하는데 이용되는 암호화 키를 의미할 수 있다. 사용자(100)가 데이터에 자신의 개인키로 서명을 하면, 블록체인 네트워크(300)가 사용자(100)의 공개키로 이를 검증함으로써, 해당 데이터에 대한 사용권을 확인할 수 있다.
예컨대, 도 6에 도시된 바와 같이, 데이터가 블록체인에 등록된 이후에 데이터가 수정된 경우, 데이터의 UID는 변하지 않으나, 데이터의 수정으로 인하여 데이터의 내용이 변경되었으므로, CID가 변경되는 것을 알 수 있다. 또한, 데이터의 수정으로 인하여 데이터의 수정에 대한 시간 정보를 나타내는 Timestamp 또한 변경된 것을 알 수 있다.
도 7은 본 발명의 일 실시 예에 따라 저장소에 복수의 데이터 조각들을 저장하는 방법을 나타내는 흐름도이다.
도 1 내지 도 7을 참조하면, 저장소(200)는 사용자(100)로부터 수신한 복수의 데이터 조각들을 복수의 서브 저장소들(200-i) 각각에 저장할 수 있다(S700).
각각의 서브 저장소(200-i)는 데이터 조각에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하고(S710), 생성한 티켓을 블록체인 네트워크(300)에 등록할 수 있다.
도 8은 본 발명의 일 실시 예에 따라 사용자가 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 방법을 나타내는 흐름도이다.
도 1 내지 도 6 및 도 8을 참조하면, 저장소(200)에 저장된 데이터를 수신하기 위하여, 사용자(100)는 블록체인 네트워크(300)에 복수의 데이터 조각들로 분할된 데이터에 대한 사용권을 증명할 수 있다(S800).
사용자(100)의 사용권이 증명된 경우, 사용자(100)는 블록체인 네트워크(300)로부터 복수의 데이터 조각들에 대한 암호화된 티켓을 수령할 수 있다(S810).
사용자(100)는 사용자(100)의 개인키를 이용하여 암호화된 티켓을 복호화하고, 복호화한 티켓을 저장소(200)로 전송하고(S820), 전송한 티켓에 대응하는 데이터 조각을 각각의 서브 저장소(200-i)로부터 수신할 수 있다(S830).
사용자(100)는 수신한 복수의 데이터 조각들을 결합함으로써 데이터를 복원할 수 있다(S840).
따라서, 파일과 같이 크기가 큰 데이터를 오프체인의 저장소에 저장하고, 해당 데이터를 식별하는 해시 값과 데이터에 대한 사용자 정보를 블록체인 원장에 기록하는 경우, 저장소에서 생성한 티켓을 이용하여 데이터의 저장을 보장하고, 저장된 데이터에 대한 소유권을 증명함으로써, 보다 안전하게 데이터를 저장하고, 데이터에 대한 접근 권한에 대한 신뢰성을 제공할 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 사용자
200: 저장소
300: 블록체인 네트워크

Claims (12)

  1. 블록체인 네트워크에서 복수의 서브 저장소들을 포함하는 저장소에 복수의 데이터 조각들을 저장하는 방법에 있어서,
    데이터를 분할한 상기 복수의 데이터 조각들을 복수의 서브 저장소들 각각에 저장하는 단계;
    상기 복수의 데이터 조각들에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하는 단계; 및
    상기 티켓들을 상기 블록체인 네트워크에 등록하는 단계를 포함하는
    저장소에 복수의 데이터 조각들을 저장하는 방법.
  2. 제1 항에 있어서,
    상기 데이터 조각들 각각은 상기 데이터 조각들의 사용자의 개인키로 서명되고, 상기 저장소의 공개키로 암호화된 비밀 정보를 포함하는
    저장소에 복수의 데이터 조각들을 저장하는 방법.
  3. 제1 항에 있어서,
    상기 티켓은 데이터 조각의 해시 값(hash value)을 상기 저장소의 개인키로 서명하여 생성되는
    저장소에 복수의 데이터 조각들을 저장하는 방법.
  4. 제1 항에 있어서,
    상기 티켓들을 블록체인 네트워크에 등록하는 단계는,
    상기 티켓을 상기 데이터 조각들의 사용자의 공개키로 암호화하여 상기 블록체인 네트워크에 등록하는
    저장소에 복수의 데이터 조각들을 저장하는 방법.
  5. 사용자가 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 방법에 있어서,
    블록체인 네트워크에게 상기 복수의 데이터 조각들로 분할된 데이터에 대한 사용권을 증명하는 단계;
    상기 증명에 기초하여, 상기 블록체인 네트워크로부터 상기 복수의 데이터 조각들에 대한 암호화된 티켓을 수령하는 단계;
    상기 복수의 서브 저장소들에 복호화한 티켓을 전송하는 단계;
    상기 티켓에 대응하는 데이터 조각을 수신하는 단계를 포함하는
    복수의 데이터 조각들을 수신하는 방법.
  6. 제5 항에 있어서,
    상기 복수의 데이터 조각들에 대한 사용권을 증명하는 단계는,
    상기 데이터의 ID와 함께 상기 사용자의 개인키를 이용하여 서명된 상기 데이터의 해시 값을 상기 블록체인 네트워크로 전송하는 단계;
    상기 서명된 상기 데이터의 해시 값을 상기 사용자의 공개키를 이용하여 검증하는 단계; 및
    상기 검증에 기초하여 상기 사용자의 사용권을 증명하는 단계를 포함하는
    복수의 데이터 조각들을 수신하는 방법.
  7. 제5 항에 있어서,
    상기 암호화된 티켓을 상기 사용자의 개인키로 복호화하는 단계를 더 포함하는
    복수의 데이터 조각들을 수신하는 방법.
  8. 제7 항에 있어서,
    상기 저장소의 공개키를 이용하여 상기 복호화된 티켓의 서명을 확인하는 단계; 및
    상기 사용자의 개인키를 이용한 서명을 상기 서명상기 저장소의 공개키로 암호화하는 단계를 더 포함하고,
    상기 복수의 서브 저장소들에 복호화한 티켓을 전송하는 단계는 상기 암호화된 서명을 상기 티켓과 함께 전송하는
    복수의 데이터 조각들을 수신하는 방법.
  9. 복수의 서브 저장소들을 포함하는 저장소에 있어서,
    사용자로부터 데이터를 분할한 복수의 데이터 조각들을 수신하는 송수신기;
    상기 복수의 데이터 조각들 각각을 저장하는 복수의 서브 저장소들; 및
    상기 송수신기 및 상기 복수의 서브 저장소들을 제어하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 복수의 데이터 조각들에 대한 사용권을 증명하는데 이용되는 티켓들을 생성하고,
    상기 티켓들을 블록체인 네트워크에 등록하는
    저장소.
  10. 복수의 서브 저장소들에 저장된 복수의 데이터 조각들을 수신하는 사용자 장치에 있어서,
    상기 복수의 데이터 조각들을 송수신하는 송수신기;
    상기 복수의 데이터 조각들을 저장하는 메모리; 및
    상기 송수신기 및 상기 메모리를 제어하는 프로세서를 포함하고,
    상기 프로세서는,
    블록체인 네트워크에게 상기 복수의 데이터 조각들로 분할된 데이터에 대한 사용권을 증명하고,
    상기 증명에 기초하여, 상기 블록체인 네트워크로부터 상기 복수의 데이터 조각들에 대한 암호화된 티켓을 수령하고,
    상기 송수신기를 이용하여 상기 복수의 서브 저장소들에 복호화한 티켓을 전송하고,
    상기 송수신기를 이용하여 상기 티켓에 대응하는 데이터 조각을 수신하는
    사용자 장치.
  11. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    제1 항 내지 제7 항 중 어느 한 항에 따른 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 판독 가능한 기록매체.
  12. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    제1 항 내지 제7 항 중 어느 한 항에 따른 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 프로그램.
KR1020190178374A 2019-12-30 2019-12-30 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법 KR102496436B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190178374A KR102496436B1 (ko) 2019-12-30 2019-12-30 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190178374A KR102496436B1 (ko) 2019-12-30 2019-12-30 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법

Publications (2)

Publication Number Publication Date
KR20210085389A true KR20210085389A (ko) 2021-07-08
KR102496436B1 KR102496436B1 (ko) 2023-02-06

Family

ID=76893638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190178374A KR102496436B1 (ko) 2019-12-30 2019-12-30 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법

Country Status (1)

Country Link
KR (1) KR102496436B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102511570B1 (ko) * 2022-10-12 2023-03-16 박정훈 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010787A (ko) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
KR20190124552A (ko) * 2018-04-26 2019-11-05 한국조폐공사 블록 체인 기반 키의 저장 및 복원 방법과 이를 이용한 사용자 단말
KR102041911B1 (ko) * 2019-07-30 2019-11-27 주식회사 바스랩 블록체인을 이용한 데이터 분할 및 분산저장 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170010787A (ko) * 2014-05-13 2017-02-01 클라우드 크라우딩 코포레이션 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
KR20190124552A (ko) * 2018-04-26 2019-11-05 한국조폐공사 블록 체인 기반 키의 저장 및 복원 방법과 이를 이용한 사용자 단말
KR102041911B1 (ko) * 2019-07-30 2019-11-27 주식회사 바스랩 블록체인을 이용한 데이터 분할 및 분산저장 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102511570B1 (ko) * 2022-10-12 2023-03-16 박정훈 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Also Published As

Publication number Publication date
KR102496436B1 (ko) 2023-02-06

Similar Documents

Publication Publication Date Title
KR102373685B1 (ko) 블록체인 iot장치를 위한 동작 시스템
RU2718689C2 (ru) Управление конфиденциальной связью
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US8464043B2 (en) Information security device and information security system
US8856530B2 (en) Data storage incorporating cryptographically enhanced data protection
CN110199288A (zh) 交叉平台包围区数据密封
CN110199287A (zh) 利用密封包围区的数据解封
US20100005318A1 (en) Process for securing data in a storage unit
US10498712B2 (en) Balancing public and personal security needs
CN110199286A (zh) 利用密封包围区的数据密封
CN110199284A (zh) 交叉平台包围区身份
CN110214324A (zh) 密钥保管库包围区
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
CN110226167A (zh) 抽象包围区身份
CN110214323A (zh) 包围区抽象模型
CN104601579A (zh) 一种保障信息安全的计算机系统及其方法
US10630474B2 (en) Method and system for encrypted data synchronization for secure data management
CN110199285A (zh) 从属包围区二进制文件
CN104580487A (zh) 一种海量数据存储系统及处理方法
CN1322431C (zh) 基于对称密钥加密保存和检索数据
KR101015401B1 (ko) 분산된 데이터베이스 시스템에서 공통 id의 레코드 저장을 통한 무결성 확인 방법
CN110214321A (zh) 嵌套包围区身份
US20130173923A1 (en) Method and system for digital content security cooperation
KR20130118951A (ko) 고유의 코드 서명 키들의 보안 관리 및 개인화
US9436849B2 (en) Systems and methods for trading of text based data representation

Legal Events

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