KR20220143625A - Did 기반의 사용자 데이터 저장 및 공유 시스템 - Google Patents

Did 기반의 사용자 데이터 저장 및 공유 시스템 Download PDF

Info

Publication number
KR20220143625A
KR20220143625A KR1020220131008A KR20220131008A KR20220143625A KR 20220143625 A KR20220143625 A KR 20220143625A KR 1020220131008 A KR1020220131008 A KR 1020220131008A KR 20220131008 A KR20220131008 A KR 20220131008A KR 20220143625 A KR20220143625 A KR 20220143625A
Authority
KR
South Korea
Prior art keywords
user terminal
data
user
sharing
key
Prior art date
Application number
KR1020220131008A
Other languages
English (en)
Other versions
KR102483369B1 (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 KR1020220131008A priority Critical patent/KR102483369B1/ko
Publication of KR20220143625A publication Critical patent/KR20220143625A/ko
Application granted granted Critical
Publication of KR102483369B1 publication Critical patent/KR102483369B1/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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/40Network security protocols
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

DID 기반의 사용자 데이터 저장 및 공유 시스템이 제공된다. 상기 DID 기반의 사용자 데이터 저장 및 공유 시스템은, 제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, 대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말, 상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버, 및 상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치를 포함한다.

Description

DID 기반의 사용자 데이터 저장 및 공유 시스템{The user data storage and sharing system based on DID}
본 발명은 DID 기반의 사용자 데이터 저장 및 공유 시스템에 관한 것이다. 더욱 상세하게는, 탈중앙화된 개인키 복구 서비스를 통해 보안성을 강화하고, DID 환경에서 필요한 방대한 양의 키 쌍에 대한 키 백업 및 관리 문제를 개선하고, 사용자의 민감한 데이터를 공유할 수 있는 사용자 데이터 저장 및 공유 시스템에 관한 것이다.
블록체인(blockchain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 의미한다. 거래 정보가 담긴 원장(原帳)을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다. 이러한 블록체인은 거래 내용의 위변조와 같은 해킹을 막기 위한 기술이며, 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다.
블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈(脫)중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하게 된다. 이러한 환경은 중개자 없이 P2P로 편리하게 계약을 체결하고 수정할 수 있는 스마트 컨트랙트를 실현 가능하게 한다.
기존 금융 시스템에서는 금융회사들이 중앙 서버에 거래 기록을 보관해 온 반면, P2P 방식을 기반으로 하는 블록체인에서는 거래 정보를 블록에 담아 차례대로 연결하고 이를 모든 참여자가 공유하여 거래 정보의 위변조를 방지할 수 있다.
한국 등록특허 10-1857223 (공고일자 2018년 5월 11일)
본 발명이 해결하고자 하는 기술적 과제는, 블록체인 네트워크 내에서 데이터 공유를 위한 방대한 양의 개인키, 대칭키를 관리해야 하는 문제를 개선할 수 있는 사용자 데이터 저장 및 공유 시스템을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
상기 과제를 해결하기 위한 본 발명의 실시예에 따른 DID 기반의 사용자 데이터 저장 및 공유 시스템은, 제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, 대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말, 상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버, 및 상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치를 포함한다.
본 발명에 따른 몇몇 실시예에서, 상기 데이터 공유 중개 서버의 DID 문서에는, 상기 암호화된 사용자 데이터를 이용할 권한이 있는 노드의 DID 정보가 등록 또는 삭제될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 제2 사용자 단말을 더 포함하고, 상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 사용자 단말은, 상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 상기 제2 사용자 단말과 공유할 제1 공유 대칭키를 생성하고, 상기 제1 공유 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 상기 제1 공유 대칭키를 이용하여 암호화된 사용자 데이터를 상기 제2 사용자 단말로 전달할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제2 사용자 단말은, 상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 제2 공유 대칭키를 생성하고, 상기 제2 공유 대칭키를 이용하여 상기 전달받은 암호화된 사용자 데이터를 복호화할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 공유 대칭키는 상기 제1 사용자 단말의 n번째 개인키와 상기 제2 사용자 단말의 n번째 공개키를 이용하여 생성하고, 상기 제2 공유 대칭키는 상기 제2 사용자 단말의 n번째 개인키와 상기 제1 사용자 단말의 n번째 공개키를 이용하여 생성할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면, 블록체인 네트워크 내에서 사용자의 개인정보 등이 포함된 민감한 데이터에 관해 방대한 양의 대칭키를 관리해야 하는 문제를 개선하면서 송신자와 수신자는 안전하게 민감한 데이터를 송수신할 수 있다.
또한, 본 발명에 따르면, 블록체인 네트워크 내에서 송신자와 수신자는 안전한 대칭키를 공유하여 민감한 데이터들을 송수신할 수 있다.
또한, 본 발명에 따르면, 블록체인 네트워크 내에서 대칭키를 생성하기 위해 필요한 공개키, 개인키와 관련하여, 송신자와 수신자는 데이터 공유에 사용된 키의 인덱스 정보만 기록하면 언제든 공개키, 개인키 쌍을 생성할 수 있어 간편하게 데이터 공유가 가능하다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4는 본 발명에 따른 DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템을 개략적으로 도시한 블록도이다.
도 5는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 저장하는 동작을 나타낸 블록도이다.
도 6은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 포함되는 키 관리 시스템에서 자식키를 생성 및 백업하는 동작을 나타낸 블록도이다.
도 7은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 생성 과정을 예시적으로 도시한 도면이다.
도 8은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다.
도 9는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다.
도 10은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 공유하는 동작을 나타낸 블록도이다.
도 11은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다.
도 12는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다.
도 13은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다.
도 14는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다.
도 15는 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
기존의 개인정보 및 인증정보 관리방식은 중앙집중식으로서, 이에 따라 관리한 개인정보 및 인증정보에 대해 개인의 프라이버시 보호라는 측면에서의 위험성 및 관리와 인증과정에서의 불편함이 존재하여 이를 해소하기 위해 대안책이 필요하다. 따라서, 블록체인과 신원증명을 결합한 자기주권신원 서비스(SSI, Self-Sovereign Identity)에 대한 연구가 국내외에서 진행되고 있으나, 기존의 본인인증 방식은 제3의 기관에서 발급하는 공인인증서를 통해 이루어지고 있다.
하지만, 본인인증을 제3의 기관을 통해서 이루어지는 것에 대해 의문이 제기되면서 DID(Decentralized Identifier; 분산 식별자)의 필요성이 등장하게 되었다. 블록체인의 암호학적 특성을 활용하면 중앙기관의 관여 없이 본인을 증명하는 유일한 분산 식별자(DID)를 통해 개인 신원을 증명하는 것이 가능하다. DID를 이용하여 개인 신원 증명 시 개인키를 기반으로 DID 등록, 전자서명 등이 수행되므로 개인키를 안전하게 보관하는 방안도 필요하게 된다.
현재 DID 서비스는 공개할 수 있는 개인정보를 블록체인 상에 등록하고, 필요할 때 개인의 용도나 사용범위를 지정해서 사용하는 것에 중점을 두고 서비스 개발이 이루어지고 있다. 하지만, 이런 서비스는 소유 증명, 위변조 방지에만 초점을 두고 있으며, 개인이 공유하기에 민감한 데이터들을 DID 기반으로 저장 및 공유하는 방안이 필요하다.
이하에서는 우선, DID와 DID 문서에 대한 개념에 대해 설명하기로 한다.
DID란, 중앙기관 없이 사용자를 중심으로 개인을 식별할 수 있는 정보를 CRUD(Create, Read, Update, Delete)하여 본인임을 증명할 수 있는 유일한 식별자를 의미한다. DID는 하나의 키 값으로 블록체인 트랜잭션의 DID 문서를 가리키는 포인터 역할을 수행한다. 특히, DID는 사용자의 공개키를 기반으로 생성된 식별자이다.
DID 문서란, 개인이 자신을 인증하고 DID와 연관성을 증명하는데 필요한 집합을 의미한다. DID의 CRUD 수행 대상이 DID 문서이며, DID 서비스 이용 시 검증하는데 필요한 정보들을 의미하며 데이터 집합에는 공개키, 인증 방법, 전자서명 값 등의 속성들이 존재한다.
DID와 DID 문서의 연관관계는 DID를 블록체인에서 검색하여 트랜잭션 내용을 기반으로 DID 문서를 생성하는 것이며, DID를 기반으로 DID 문서를 읽어오는 방식은 블록체인마다 상이할 수 있다.
DID를 이용하여 사용자의 민감한 데이터 공유를 위해 송신자와 수신자 사이에 사전에 대칭키를 공유하거나, 대칭키로 데이터를 암호화하고 대칭키는 수신자의 공개키로 암호화하여 전달하는 방식을 이용하였으나, 상술한 두가지 방식 모두 사용자가 방대한 양의 개인키, 대칭키를 관리해야 하는 부담이 있다. 따라서, 본 발명에서는 사용자 데이터 공유를 위해 필요한 방대한 양의 키 관리 문제점을 개선하고자 한다.
이하에서는 본 발명의 개념이 적용될 수 있는 블록체인을 이용한 분산처리 시스템에 관해 설명하기로 한다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.
도 1을 참조하면 블록체인을 이용한 분산처리 시스템(100)은 복수의 노드들(110-170)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(100)를 구성하는 노드들(110-170)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.
일반적으로 분산형 네트워크(100)는 블록체인이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다.
상기 블록체인에 연결되어 있는 각 블록들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.
실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 암호화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 또 다른 실시예에서 상기 트랜잭션은 정보의 기록, 저장 및 이송을 나타내기 위한 정보 공유 과정에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 2를 참조하면 블록체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록체인(200)은 블록체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록체인(200)에 연결한다. 도 3에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.
상기 블록체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.
도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 현재 블록의 해시(2113), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.
전술된 바와 같이, 상기 블록체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.
상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다.
분산형 네트워크에 참여하는 노드들은 동일한 블록체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.
이하에서는, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 대하여 설명하기로 한다. 본 발명에서 설명하는 사용자 데이터 저장 및 공유 방법은 컴퓨팅 장치에서 실행되는 알고리즘이다.
도 4는 본 발명에 따른 DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템을 개략적으로 도시한 블록도이다. 도 5는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 저장하는 동작을 나타낸 블록도이다. 도 6은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 포함되는 키 관리 시스템에서 자식키를 생성 및 백업하는 동작을 나타낸 블록도이다. 도 7은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 생성 과정을 예시적으로 도시한 도면이다. 도 8은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 9는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다.
도 4 내지 도 9를 참조하면, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(300)은 데이터 공유 중개 서버(310), 제1 사용자 단말(321), 스토리지 장치(330)을 포함하여 구성된다.
본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(300)에서, 데이터 공유 중개 서버(310), 제1 사용자 단말(321), 스토리지 장치(330)는 네트워크를 통하여 서로 연결되며, 네트워크는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것이다. 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5th Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 본 발명이 이에 한정되는 것은 아니다.
제1 사용자 단말(321)은 예를 들어, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.
또는, 제1 사용자 단말(321)은 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 태블릿 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
제1 사용자 단말(321)은 사용자 데이터(data_A)를 암호화하여 스토리지 장치(330)에 저장하고자 하는 장치이며, 사용자 데이터(data_A)는 예를 들어, 민감한 개인정보 등 프라이버시 보호가 필요한 데이터일 수 있다. 또는, 사용자 데이터(data_A)는 검증가능한 자격증명(VC; Verifiable Credential) 데이터일 수 있다.
제1 사용자 단말(321)은 데이터 공유 중개 서버(310)에서 제공하는 인스턴스 서비스를 통하여 사용자 데이터(data_A)를 다른 사용자 단말과 공유할 수 있으며, 데이터 공유 중개 서버(310)에서 제공하는 인스턴스 서비스는 각 사용자 단말별로 소유권을 가질 수 있다. 그리고, 각각의 인스턴스 서비스는 DID 문서를 가지고 있으며, 이는 블록체인 시스템에 등록된다.
제1 사용자 단말(321)이 스토리지 장치(330)에 사용자 데이터(data_A)를 암호화하여 저장하는 과정은 우선, 제1 사용자 단말(321)의 DID 및 DID 문서가 블록체인 시스템에 등록되어 있는 상태에서 데이터 공유 중개 서버(310)의 DID 및 DID 문서를 생성한다.
제1 사용자 단말(321)과 연관되는 데이터 공유 중개 서버(310)의 DID 문서의 속성값 중 capabilityInvocation 및 capabilityDelegation가 존재하며, 각각의 속성값의 의미는 다음과 같다.
capabilityInvocation : " "
capabilityDelegation : "USERApubKey#x"
속성값 capabilityInvocation은 데이터를 활용할 권한이 있는 자의 DID 집합을 의미하고, 속성값 capabilityDelegation은 데이터를 활용할 권한이 있는 자의 DID 집합 및 capabilityInvocation에 사용자를 등록/삭제할 권한이 있는 자의 집합을 의미한다.
데이터 공유 중개 서버(310)의 DID 속성값 중 capabilityDelegation 항목은 반드시 데이터 소유주 즉, 제1 사용자 단말(321)의 DID가 되어야 하며, 상기 예에서 사용자 데이터(data_A)의 공유와 관련된 키 정보(index가 x번째 키)가 capabilityDelegation 항목에 등록된다.
그리고, 제1 사용자 단말(321)은 키 관리 시스템을 이용하여 자식키를 생성하고, 사용자 데이터(data_A)를 암호화하는 동작 알고리즘을 수행한다.
키 관리 시스템은 키 관리 서버(410)와 제1 내지 제3 데이터베이스 장치(420, 430, 440)를 포함하며, 우선 도 6을 참조하여, 키 관리 시스템을 통해 개인키 및 공개키 쌍을 복구하는 알고리즘에 대해 설명하기로 한다.
키 관리 서버(410)는 마스터키 생성에 필요한 128bit의 랜덤한 S1 코드를 생성하며, 이를 제1 사용자 단말(321)로 전달한다. 그리고, 키 관리 서버(410)는 상기 S1 코드를 제1 데이터베이스 장치(420)에 전달하여 저장한다. 제1 내지 제3 데이터베이스 장치(440)는 키 백업 시스템에 포함되는 장치로서 키 복원을 위해 정보를 저장할 수 있는 장치이다. 또한, 제1 내지 제3 데이터베이스 장치(440)는 물리적으로 분리된 서로 다른 장치로서, 각각 서로 다른 데이터를 저장한다.
제1 사용자 단말(321)은 니모닉 코드 단어(mnemonic code words)를 생성하기 위해 필요한 256bit의 랜덤한 S2 코드를 생성하며, 이를 키 관리 서버(410)를 통해 제2 데이터베이스 장치(430)로 전달하여 상기 S2 코드를 제2 데이터베이스 장치(430)에 저장한다.
그리고, 제1 사용자 단말(321)은 자식키 생성에 필요한 패스(path)를 설정하기 위한 값으로서 128bit의 랜덤한 S3 코드를 생성하며, 이를 키 관리 서버(410)를 통해 제3 데이터베이스 장치(440)로 전달하여 상기 S3 코드를 제3 데이터베이스 장치(440)에 저장한다.
제1 사용자 단말(321)은 상기 S2 코드를 이용하여 니모닉 코드 단어를 생성하고, 상기 생성한 니모닉 코드 단어와 상기 S1 코드를 이용하여 512bit의 마스터 시드(master seed)를 생성한다.
제1 사용자 단말(321)은 상기 마스터 시드를 이용하여 마스터키 생성 후, 상기 마스터키를 이용하여 HD 월렛을 생성한다. 즉, 제1 사용자 단말(321)은 상기 마스터 시드를 이용하여 마스터 개인키, 마스터 공개키를 생성한다.
제1 사용자 단말(321)은 상기 마스터키로부터 자식키를 추출하기 위해 인덱스(index)를 설정한다. 제1 사용자 단말(321)이 자식키 추출을 위해 이용하는 인덱스는 4byte(0 ~ 231-1)의 숫자값을 갖는다.
그리고, 제1 사용자 단말(321)은 자식키 추출을 위한 패스(path)를 설정하는데, 상기 패스(path)는 마스터키에서 자식키를 유도하기 위한 경로를 의미한다. 상기 패스(path)는 128bit(16byte)의 S3 코드를 32bit의 4개의 부호화 정수(signed integer)로 분할하여 다음과 같이 설정한다.
S3 = s1 - s2 - s3 - s4
m / companyCode / s1 / s2 / s3 / s4 / index
제1 사용자 단말(321)은 상기 설정한 패스(path)에 따라 CKD(Child Key Derivation) 함수를 이용하여 HD 월렛에서 자식키를 추출한다. 제1 사용자 단말(321)의 자식키 추출 결과 한 쌍의 개인키 및 공개키 쌍이 생성된다.
제1 사용자 단말(321)은 자신의 S1 코드, S2 코드, S3 코드 값을 키 관리 서버(410)를 통해 각각 제1 내지 제3 데이터베이스 장치(440)로 전달하여 저장한다. 추후에는 제1 내지 제3 데이터베이스 장치(440)에 저장된 S1 코드, S2 코드, S3 코드를 이용하여 자식키를 추출하고, 한 쌍의 개인키 및 공개키 쌍을 생성할 수 있다.
제1 사용자 단말(321)은 사용자 데이터(data_A)를 암호화하기 위한 애플리케이션을 이용할 수 있으며, 도 6을 참조하여 상술한 자식키 추출 알고리즘을 통해 DID 문서의 KeyAgreement의 키 정보인 n번째 자식키를 생성한다. 여기에서 n번째 자식키는 개인키 a와, 공개키 a·G를 포함하는 것으로 가정한다.
제1 사용자 단말(321)은 n번째 자식키를 이용하여 대칭키 S_a를 생성한다(a · (a·G) = S_a). 그리고, 제1 사용자 단말(321)은 사용자 데이터(data_A)의 암호화에 필요한 랜덤한 16byte의 이니셜 벡터(initial vector)(iv_a)를 생성한다. 제1 사용자 단말(321)은 대칭키(S_a)와 이니셜 벡터(iv_a)를 이용하여 사용자 데이터(data_A)를 암호화 한다.
E_(S_a, iv_a)(data_A)= Ciphertext_a
제1 사용자 단말(321)은 암호화된 사용자 데이터(E_data_A)를 데이터 공유 중개 서버(310)로 저장 요청을 하고, 데이터 공유 중개 서버(310)는 자신의 DID 문서의 capabilityDelegation 항목에 제1 사용자 단말(321)의 DID가 등록되어 있는지 확인하고, 제1 사용자 단말(321)의 DID가 등록되어 있는 경우 데이터 공유 중개 서버(310)는 스토리지 장치(330)에 아래의 구조로 암호화된 데이터(E_data_A)를 저장한다.
header(20byte) data
자식키 index(4byte) initial vector(16byte) 암호화된 민감 데이터
Figure pat00001
Figure pat00002
Figure pat00003
스토리지 장치(330)의 종류는 본 발명에서 제한하지 않으며, 클라우드, 로컬 스토리지, IPFS 등 다양한 형태의 스토리지 장치가 이용될 수 있다.
도 10은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 공유하는 동작을 나타낸 블록도이다. 도 11은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 12는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다. 도 13은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 14는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다.
도 10 내지 도 14를 참조하면, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(300)은 데이터 공유 중개 서버(310), 제1 사용자 단말(321), 제2 사용자 단말(322), 스토리지 장치(330)을 포함하여 구성된다.
제2 사용자 단말(322)은 자신의 DID 및 사용할 키 인덱스(y)를 함께 제1 사용자 단말(321)로 제공하며, 제1 사용자의 사용자 데이터(data_A)의 공유를 요청한다. 아래는 제2 사용자 단말(322)이 제공하는 키 인덱스(y)의 예시이다.
key index : did:lit:thisisB#y
제1 사용자 단말(321)은 제2 사용자 단말(322)의 사용자 인증 후 제2 사용자 단말(322)의 DID를 블록체인 시스템의 데이터 공유 중개 서버(310)의 DID 문서에 등록한다. 이때, 제2 사용자 단말(322)에 대해 제1 사용자 단말(321)의 사용자 데이터(data_A)의 활용 여부를 결정하기 때문에 capabilityInvocation 속성값에 등록한다.
capabilityDelegation : "did:lit:USERA#x"
capabilityInvocation : "did:lit:USERB#y"
제1 사용자 단말(321)은 암호화된 사용자 데이터(E_data_A)를 복호화할 대칭키(S_a)를 복구한다. 이를 위해, 제1 사용자 단말(321)은 n번째 자식키(a, a·G)를 추출한다. 즉, 제1 사용자 단말(321)은 암호화된 사용자 데이터(E_data_A)를 복호화하기 위한 애플리케이션을 이용할 수 있으며, 도 5를 참조하여 상술한 자식키 추출 알고리즘을 통해 DID 문서의 KeyAgreement의 키 정보인 n번째 자식키를 생성한다.
제1 사용자 단말(321)은 스토리지 장치(330)에서 다운로드한 암호화된 사용자 데이터(E_data_A)를 복호화 한다.
D_(S_a, iv_a)(Ciphertext_a) = data_A
제1 사용자 단말(321)은 제2 사용자 단말(322)의 n번째 공개키를 조회한다. 제1 사용자 단말(321)은 did resolver에 did:lit:USERB를 검색하여 제2 사용자 단말(322)의 DID 문서를 조회한다. 제1 사용자 단말(321)은 제2 사용자 단말(322)의 공개키 중 n번째 공개키 값을 조회한다(b·G).
제1 사용자 단말(321)은 제2 사용자 단말(322)과 공유할 대칭키를 생성한다. 이때, 제1 사용자 단말(321)과 제2 사용자 단말(322)의 DID 문서를 조회하여 keyAgreement의 키 정보를 활용한다.
keyAgreement : "USERBpubKey#n"
keyAgreement : "USERApubKey#n"
제1 사용자 단말(321)과 제2 사용자 단말(322)의 공유 대칭키는 제1 사용자 단말(321)의 n번째 개인키 *?* 제2 사용자 단말(322)의 n번째 공개키를 이용하여(a · bG), 공유 대칭키(S_ab)를 생성한다.
제1 사용자 단말(321)은 암호화에 필요한 랜덤한 16byte의 이니셜 벡터를 생성한다(iv_ab). 제1 사용자 단말(321)은 공유 대칭키(S_ab)를 이용하여 사용자 데이터(data_A)를 암호화한다.
E_(S_ab, iv_ab )(data_A) = Ciphertext_ab
제1 사용자 단말(321)은 이니셜 벡터(iv_ab)와 암호화된 사용자 데이터(E_data_A)를 제2 사용자 단말(322)로 전달한다(Ciphertext_ab, iv_ab).
이때, 데이터 공유 중개 서버(310)는 제2 사용자 단말(322)의 DID가 블록체인 시스템의 제1 사용자 단말(321)과 연관된 데이터 공유 중개 서버(310)의 DID 문서에 등록되어 있는지 확인 후 제2 사용자 단말(322)의 접근을 허용한다. 구체적으로, 데이터 공유 중개 서버(310)는 제2 사용자 단말(322)의 DID가 제1 사용자 단말(321)과 연관된 데이터 공유 중개 서버(310)의 DID 문서의 capabiltiyInvocation 속성값에 등록되어 있는지를 확인한다. 데이터 공유 중개 서버(310)는 제2 사용자 단말(322)의 DID가 제1 사용자 단말(321)과 연관된 데이터 공유 중개 서버(310)의 DID 문서의 capabiltiyInvocation 속성값에 등록되어 있는 경우에 제2 사용자 단말(322)의 데이터 공유 중개 서버(310)로의 접근을 허용한다.
그리고, 제2 사용자 단말(322)도 공유 대칭키를 생성한다. 이때, 제1 사용자 단말(321)과 제2 사용자 단말(322)의 DID 문서를 조회하여 keyAgreement의 키 정보를 활용한다.
keyAgreement : "USERBpubKey#n"
keyAgreement : "USERApubKey#n"
제2 사용자 단말(322)과 제1 사용자 단말(321)의 공유 대칭키는 제2 사용자 단말(322)의 n번째 개인키 *?* 제1 사용자 단말(321)의 n번째 공개키(b · a·G)를 이용하여 공유 대칭키(S_ab)를 생성한다.
제2 사용자 단말(322)은 암호화된 사용자 데이터(E_data_A)를 복호화함으로써 제1 사용자 단말(321)의 사용자 데이터(data_A)를 공유한다.
D_(S_ab, iv_ab)(Ciphertext_ab) = data_A
도 15는 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.
도 15를 참조하면, 본 발명의 실시예에 따른 노드의 컴퓨팅 장치(1000)는 프로세서(1100)와 메모리(1200)를 포함하고, 프로세서(1100)는 하나 이상의 코어(core) 및 그래픽 처리부 및/또는 다른 구성요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.
일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 5 내지 도 14와 관련하여 사용자 데이터 저장 및 공유 알고리즘의 동작을 실행한다.
예를 들어, 프로세서(1100)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 하나 이상의 노드에서 발생되는 사용자 식별인증 및 개인키 생성에 관한 정보들을 수집하고, 상기 수집된 정보들에 기초하여 트랜잭션을 발생시켜 적어도 하나의 노드에 대해 관련 정보를 제공한다.
한편, 프로세서(1100)는 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory) 및 롬(ROM: Read-Only Memory)을 더 포함할 수 있다. 또한, 프로세서(1100)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(1200)에는 프로세서(1100)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(1200)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
본 발명의 실시예와 관련하여 설명된 시스템의 동작들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 청구범위에 의해 나타내어질 것이다. 그리고 이 청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 분산형 네트워크
110~170: 노드들
200: 블록체인
210, 220, 230: 블록
300: 사용자 데이터 저장 및 공유 시스템
310: 데이터 공유 중개 서버
321: 제1 사용자 단말
322: 제2 사용자 단말
330: 스토리지 장치

Claims (6)

  1. 제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서,
    대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말;
    상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버; 및
    상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치;를 포함하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
  2. 제 1항에 있어서,
    상기 데이터 공유 중개 서버의 DID 문서에는, 상기 암호화된 사용자 데이터를 이용할 권한이 있는 노드의 DID 정보가 등록 또는 삭제되는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
  3. 제 1항에 있어서,
    상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 제2 사용자 단말을 더 포함하고,
    상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
  4. 제 3항에 있어서,
    상기 제1 사용자 단말은,
    상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 상기 제2 사용자 단말과 공유할 제1 공유 대칭키를 생성하고,
    상기 제1 공유 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 상기 제1 공유 대칭키를 이용하여 암호화된 사용자 데이터를 상기 제2 사용자 단말로 전달하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
  5. 제 4항에 있어서,
    상기 제2 사용자 단말은,
    상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 제2 공유 대칭키를 생성하고, 상기 제2 공유 대칭키를 이용하여 상기 전달받은 암호화된 사용자 데이터를 복호화하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
  6. 제 5항에 있어서,
    상기 제1 공유 대칭키는 상기 제1 사용자 단말의 n번째 개인키와 상기 제2 사용자 단말의 n번째 공개키를 이용하여 생성하고,
    상기 제2 공유 대칭키는 상기 제2 사용자 단말의 n번째 개인키와 상기 제1 사용자 단말의 n번째 공개키를 이용하여 생성하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
KR1020220131008A 2021-02-22 2022-10-13 Did 기반의 사용자 데이터 저장 및 공유 시스템 KR102483369B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220131008A KR102483369B1 (ko) 2021-02-22 2022-10-13 Did 기반의 사용자 데이터 저장 및 공유 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210023716A KR102465467B1 (ko) 2021-02-22 2021-02-22 Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템
KR1020220131008A KR102483369B1 (ko) 2021-02-22 2022-10-13 Did 기반의 사용자 데이터 저장 및 공유 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210023716A Division KR102465467B1 (ko) 2021-02-22 2021-02-22 Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템

Publications (2)

Publication Number Publication Date
KR20220143625A true KR20220143625A (ko) 2022-10-25
KR102483369B1 KR102483369B1 (ko) 2022-12-29

Family

ID=82930918

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210023716A KR102465467B1 (ko) 2021-02-22 2021-02-22 Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템
KR1020220131008A KR102483369B1 (ko) 2021-02-22 2022-10-13 Did 기반의 사용자 데이터 저장 및 공유 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210023716A KR102465467B1 (ko) 2021-02-22 2021-02-22 Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템

Country Status (2)

Country Link
KR (2) KR102465467B1 (ko)
WO (1) WO2022177204A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662021B1 (ko) 2022-11-18 2024-04-29 동명대학교산학협력단 중고자동차 데이터 신뢰성을 보장하는 did 기반 거래 시스템 및 그 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515367B1 (ko) * 2023-01-20 2023-03-30 주식회사 그래파이 블록체인 기반 데이터 공유 방법
CN115801815B (zh) * 2023-02-03 2023-05-05 安徽中科晶格技术有限公司 基于区块链的植物生长状况共享方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070051314A (ko) * 2004-08-09 2007-05-17 컴캐스트 케이블 홀딩스, 엘엘씨 단순화된 구조의 키 관리를 위한 시스템 및 방법
KR101857223B1 (ko) 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템
KR102179497B1 (ko) * 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법
KR102189301B1 (ko) * 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 블록체인 기반 보안이 강화된 클라우드 서비스 제공 시스템 및 방법
KR20210007844A (ko) * 2019-07-11 2021-01-20 주식회사 코인플러그 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111164594B (zh) * 2019-07-02 2023-08-25 创新先进技术有限公司 用于将去中心化标识映射到真实实体的系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070051314A (ko) * 2004-08-09 2007-05-17 컴캐스트 케이블 홀딩스, 엘엘씨 단순화된 구조의 키 관리를 위한 시스템 및 방법
KR101857223B1 (ko) 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템
KR20210007844A (ko) * 2019-07-11 2021-01-20 주식회사 코인플러그 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드
KR102179497B1 (ko) * 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법
KR102189301B1 (ko) * 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 블록체인 기반 보안이 강화된 클라우드 서비스 제공 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662021B1 (ko) 2022-11-18 2024-04-29 동명대학교산학협력단 중고자동차 데이터 신뢰성을 보장하는 did 기반 거래 시스템 및 그 방법

Also Published As

Publication number Publication date
KR102483369B1 (ko) 2022-12-29
WO2022177204A1 (ko) 2022-08-25
KR20220120062A (ko) 2022-08-30
KR102465467B1 (ko) 2022-11-09

Similar Documents

Publication Publication Date Title
CN108959945B (zh) 医疗数据共享方法、装置、计算机可读介质及电子设备
US10204339B2 (en) Method and system for blockchain-based combined identity, ownership, integrity and custody management
CN110462621B (zh) 在区块链网络中管理敏感数据元素
Ji et al. BMPLS: Blockchain-based multi-level privacy-preserving location sharing scheme for telecare medical information systems
KR101964254B1 (ko) 블록체인과 dht를 이용한 p2p 거래 방법 및 장치
CN110582793B (zh) 分布式交易共识网络上数字财产交易的匿名性和可追踪性
CN108418680B (zh) 一种基于安全多方计算技术的区块链密钥恢复方法、介质
CN110033258B (zh) 基于区块链的业务数据加密方法及装置
US11979493B2 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
KR102465467B1 (ko) Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템
KR20190075793A (ko) 블록체인을 이용한 일회성 접근 권한 부여 시스템
KR102383099B1 (ko) 블록체인 기반의 did 서비스, ipfs 기반의 데이터 공유 기술, 및 개인키 분산 저장 기술이 결합된 비대면 대용량 문서 접근 블록체인 시스템
Juyal et al. Privacy and security of IoT based skin monitoring system using blockchain approach
CN114503508A (zh) 用于在区块链上存储经认证的数据的计算机实施的方法和系统
Huynh et al. A reliability guaranteed solution for data storing and sharing
KR20210004842A (ko) 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버
WO2023095967A1 (ko) 블록체인 기반의 did 서비스, ipfs 기반의 데이터 공유 기술, 및 개인키 분산 저장 기술이 결합된 비대면 대용량 문서 접근 시스템
Verma et al. Secure digital documents sharing using blockchain and attribute-based cryptosystem
KR102354044B1 (ko) 니모닉 코드를 이용한 개인키 복구 방법
CN113990399A (zh) 保护隐私安全的基因数据分享方法和装置
JP2023540739A (ja) 分散型台帳上の、匿名性取消を伴う、セキュアな、トレース可能な、および、プライバシー保護の、デジタル通貨送金のための方法
Paunikar et al. A user authentication scheme of Iot devices using blockchain-enabled fog nodes
More et al. An Advanced Mechanism for Secure Data Sharing in Cloud Computing using Revocable Storage Identity Based Encryption
WO2024019217A1 (ko) Did와 생체정보 기반의 개인키 복원 시스템
WO2023177013A1 (ko) Did 기반의 생체정보 인증을 이용한 결제 시스템

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant