KR102483369B1 - The user data storage and sharing system based on DID - Google Patents

The user data storage and sharing system based on DID Download PDF

Info

Publication number
KR102483369B1
KR102483369B1 KR1020220131008A KR20220131008A KR102483369B1 KR 102483369 B1 KR102483369 B1 KR 102483369B1 KR 1020220131008 A KR1020220131008 A KR 1020220131008A KR 20220131008 A KR20220131008 A KR 20220131008A KR 102483369 B1 KR102483369 B1 KR 102483369B1
Authority
KR
South Korea
Prior art keywords
user terminal
data
user
sharing
user data
Prior art date
Application number
KR1020220131008A
Other languages
Korean (ko)
Other versions
KR20220143625A (en
Inventor
이정륜
한황제
윤태연
Original Assignee
주식회사 블록체인기술연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블록체인기술연구소 filed Critical 주식회사 블록체인기술연구소
Priority to KR1020220131008A priority Critical patent/KR102483369B1/en
Publication of KR20220143625A publication Critical patent/KR20220143625A/en
Application granted granted Critical
Publication of KR102483369B1 publication Critical patent/KR102483369B1/en

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

Abstract

DID 기반의 사용자 데이터 저장 및 공유 시스템이 제공된다. 상기 DID 기반의 사용자 데이터 저장 및 공유 시스템은, 제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, 대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말, 상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버, 및 상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치를 포함한다.A DID-based user data storage and sharing system is provided. The DID-based user data storage and sharing system is a user data storage and sharing system including a first user terminal, a data sharing mediation server, and a storage device, generates a symmetric key, and uses the symmetric key to generate the first user data storage and sharing system. 1. A first user terminal that encrypts user data of a user terminal and requests storage of the encrypted user data in the data sharing mediation server, and whether DID information of the first user terminal is registered in the DID document of the data sharing mediation server. and, if the DID information of the first user terminal is registered, a data sharing mediation server for storing the encrypted user data in the storage device, and storing the encrypted user data received from the data sharing mediation server. It includes a storage device that

Figure 112022107501507-pat00008
Figure 112022107501507-pat00008

Description

DID 기반의 사용자 데이터 저장 및 공유 시스템{The user data storage and sharing system based on DID}The user data storage and sharing system based on DID}

본 발명은 DID 기반의 사용자 데이터 저장 및 공유 시스템에 관한 것이다. 더욱 상세하게는, 탈중앙화된 개인키 복구 서비스를 통해 보안성을 강화하고, DID 환경에서 필요한 방대한 양의 키 쌍에 대한 키 백업 및 관리 문제를 개선하고, 사용자의 민감한 데이터를 공유할 수 있는 사용자 데이터 저장 및 공유 시스템에 관한 것이다. The present invention relates to a DID-based user data storage and sharing system. More specifically, users who can enhance security through a decentralized private key recovery service, improve key backup and management problems for the vast amount of key pairs required in the DID environment, and share users' sensitive data. It is about a data storage and sharing system.

블록체인(blockchain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 의미한다. 거래 정보가 담긴 원장(原帳)을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다. 이러한 블록체인은 거래 내용의 위변조와 같은 해킹을 막기 위한 기술이며, 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. Blockchain refers to a data distribution processing technology that distributes and stores all data to be managed by all users participating in the network. It is also called 'Distributed Ledger Technology (DLT)' or 'Public Transaction Ledger' in that the ledger containing transaction information is shared by all network participants, rather than held by transaction entities or specific institutions. . Blockchain is the name given because it is a chain of blocks that contain transactions. This blockchain is a technology to prevent hacking such as forgery and falsification of transaction details, and uses a method to prevent data forgery by sending transaction details to all users participating in transactions and comparing them for each transaction.

블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈(脫)중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하게 된다. 이러한 환경은 중개자 없이 P2P로 편리하게 계약을 체결하고 수정할 수 있는 스마트 컨트랙트를 실현 가능하게 한다.The core concept of blockchain is decentralization, which aims for P2P (Peer to Peer; person-to-person) transactions, breaking away from the existing financial system in which financial institutions secure and manage all transactions. P2P refers to a communication network that connects personal computers without a server or client, and each connected computer acts as both a server and a client to share information. A trust relationship is formed digitally through a method in which multiple nodes share and verify the same data. This environment makes it possible to realize smart contracts that can conveniently conclude and modify contracts P2P without intermediaries.

기존 금융 시스템에서는 금융회사들이 중앙 서버에 거래 기록을 보관해 온 반면, P2P 방식을 기반으로 하는 블록체인에서는 거래 정보를 블록에 담아 차례대로 연결하고 이를 모든 참여자가 공유하여 거래 정보의 위변조를 방지할 수 있다.In the existing financial system, financial companies have kept transaction records in the central server, but in the blockchain based on the P2P method, transaction information is stored in blocks and connected in turn, and all participants share it to prevent forgery and falsification of transaction information. can

한국 등록특허 10-1857223 (공고일자 2018년 5월 11일)Korean Registered Patent No. 10-1857223 (Announcement date May 11, 2018)

본 발명이 해결하고자 하는 기술적 과제는, 블록체인 네트워크 내에서 데이터 공유를 위한 방대한 양의 개인키, 대칭키를 관리해야 하는 문제를 개선할 수 있는 사용자 데이터 저장 및 공유 시스템을 제공하는 것이다. The technical problem to be solved by the present invention is to provide a user data storage and sharing system that can improve the problem of managing a huge amount of private keys and symmetric keys for data sharing in a blockchain network.

다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the technical problems to be solved by the present invention are not limited to the above problems, and can be variously expanded without departing from the technical spirit and scope of the present invention.

상기 과제를 해결하기 위한 본 발명의 실시예에 따른 DID 기반의 사용자 데이터 저장 및 공유 시스템은, 제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, 대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말, 상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버, 및 상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치를 포함한다.DID-based user data storage and sharing system according to an embodiment of the present invention for solving the above problems is a user data storage and sharing system including a first user terminal, a data sharing mediation server, and a storage device, comprising a symmetric key In the DID document of the data sharing mediation server, the first user terminal that generates, encrypts the user data of the first user terminal using the symmetric key, and requests storage of the encrypted user data to the data sharing mediation server. A data sharing mediation server that checks whether the DID information of the first user terminal is registered and, if the DID information of the first user terminal is registered, stores the encrypted user data in the storage device, and the data sharing and a storage device for storing the encrypted user data transmitted from the mediation server.

본 발명에 따른 몇몇 실시예에서, 상기 데이터 공유 중개 서버의 DID 문서에는, 상기 암호화된 사용자 데이터를 이용할 권한이 있는 노드의 DID 정보가 등록 또는 삭제될 수 있다. In some embodiments according to the present invention, DID information of a node authorized to use the encrypted user data may be registered or deleted in the DID document of the data sharing mediation server.

본 발명에 따른 몇몇 실시예에서, 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 제2 사용자 단말을 더 포함하고, 상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여할 수 있다. In some embodiments according to the present invention, a second user terminal requesting sharing of user data of the first user terminal is further included, and the second user terminal serves as the data sharing mediation server to the user of the first user terminal. When requesting data sharing, the first user terminal registers the DID information of the second user terminal in the DID document of the data sharing mediation server, and the user data of the first user terminal for the second user terminal You can grant access to

본 발명에 따른 몇몇 실시예에서, 상기 제1 사용자 단말은, 상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 상기 제2 사용자 단말과 공유할 제1 공유 대칭키를 생성하고, 상기 제1 공유 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 상기 제1 공유 대칭키를 이용하여 암호화된 사용자 데이터를 상기 제2 사용자 단말로 전달할 수 있다. In some embodiments according to the present invention, the first user terminal searches DID documents of the first user terminal and the second user terminal to generate a first shared symmetric key to be shared with the second user terminal, User data of the first user terminal may be encrypted using the first shared symmetric key, and user data encrypted using the first shared symmetric key may be transmitted to the second user terminal.

본 발명에 따른 몇몇 실시예에서, 상기 제2 사용자 단말은, 상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 제2 공유 대칭키를 생성하고, 상기 제2 공유 대칭키를 이용하여 상기 전달받은 암호화된 사용자 데이터를 복호화할 수 있다. In some embodiments according to the present invention, the second user terminal searches DID documents of the first user terminal and the second user terminal to generate a second shared symmetric key, and uses the second shared symmetric key. Thus, the received encrypted user data can be decrypted.

본 발명에 따른 몇몇 실시예에서, 상기 제1 공유 대칭키는 상기 제1 사용자 단말의 n번째 개인키와 상기 제2 사용자 단말의 n번째 공개키를 이용하여 생성하고, 상기 제2 공유 대칭키는 상기 제2 사용자 단말의 n번째 개인키와 상기 제1 사용자 단말의 n번째 공개키를 이용하여 생성할 수 있다. In some embodiments according to the present invention, the first shared symmetric key is generated using the n-th private key of the first user terminal and the n-th public key of the second user terminal, and the second shared symmetric key is It can be generated using the n-th private key of the second user terminal and the n-th public key of the first user terminal.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

본 발명에 따르면, 블록체인 네트워크 내에서 사용자의 개인정보 등이 포함된 민감한 데이터에 관해 방대한 양의 대칭키를 관리해야 하는 문제를 개선하면서 송신자와 수신자는 안전하게 민감한 데이터를 송수신할 수 있다. According to the present invention, the sender and the receiver can safely transmit and receive sensitive data while improving the problem of managing a large amount of symmetric keys for sensitive data including personal information of users within a blockchain network.

또한, 본 발명에 따르면, 블록체인 네트워크 내에서 송신자와 수신자는 안전한 대칭키를 공유하여 민감한 데이터들을 송수신할 수 있다. In addition, according to the present invention, a sender and a receiver can transmit and receive sensitive data by sharing a secure symmetric key within a blockchain network.

또한, 본 발명에 따르면, 블록체인 네트워크 내에서 대칭키를 생성하기 위해 필요한 공개키, 개인키와 관련하여, 송신자와 수신자는 데이터 공유에 사용된 키의 인덱스 정보만 기록하면 언제든 공개키, 개인키 쌍을 생성할 수 있어 간편하게 데이터 공유가 가능하다.In addition, according to the present invention, in relation to the public key and private key required to generate a symmetric key in the blockchain network, the sender and the receiver record only the index information of the key used for data sharing, and the public key and private key Pairs can be created to facilitate data sharing.

다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다. However, the effects of the present invention are not limited to the above effects, and can be variously extended without departing from the technical spirit and scope of the present invention.

도 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는 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.
1 is a diagram showing a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.
2 and 3 are block diagrams showing the connection of blocks used in the blockchain system.
4 is a schematic block diagram of a DID-based decentralized user data storage and sharing system according to the present invention.
5 is a block diagram illustrating an operation of storing user data in a user data storage and sharing system according to an embodiment of the present invention.
6 is a block diagram illustrating an operation of generating and backing up a child key in a key management system included in a user data storage and sharing system according to an embodiment of the present invention.
7 is a diagram illustrating a process of generating a DID of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention by way of example.
8 is a diagram exemplarily illustrating a DID document of a first user terminal in a user data storage and sharing system according to an embodiment of the present invention.
9 is a diagram exemplarily illustrating a DID document of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention.
10 is a block diagram illustrating an operation of sharing user data in a user data storage and sharing system according to an embodiment of the present invention.
11 is a diagram exemplarily illustrating a DID document of a second user terminal in a user data storage and sharing system according to an embodiment of the present invention.
12 is a diagram exemplarily illustrating a DID document of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention.
13 is a diagram exemplarily illustrating a DID document of a first user terminal in a user data storage and sharing system according to an embodiment of the present invention.
14 is a diagram exemplarily illustrating a DID document of a second user terminal in a user data storage and sharing system according to an embodiment of the present invention.
15 is a block diagram of a computing device of a node according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and will be implemented in various forms different from each other, only these embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention pertains. It is provided to completely inform the person who has the scope of the invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.Terms used in this specification are for describing the embodiments and are not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" and/or "comprising" means that a stated component, step, operation, and/or element is present in the presence of one or more other components, steps, operations, and/or elements. or do not rule out additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. The same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.

기존의 개인정보 및 인증정보 관리방식은 중앙집중식으로서, 이에 따라 관리한 개인정보 및 인증정보에 대해 개인의 프라이버시 보호라는 측면에서의 위험성 및 관리와 인증과정에서의 불편함이 존재하여 이를 해소하기 위해 대안책이 필요하다. 따라서, 블록체인과 신원증명을 결합한 자기주권신원 서비스(SSI, Self-Sovereign Identity)에 대한 연구가 국내외에서 진행되고 있으나, 기존의 본인인증 방식은 제3의 기관에서 발급하는 공인인증서를 통해 이루어지고 있다. The existing personal information and authentication information management method is centralized, and there are risks in terms of personal privacy protection and inconvenience in the management and authentication process for the personal information and authentication information managed accordingly. An alternative is needed. Therefore, research on Self-Sovereign Identity (SSI), which combines blockchain and identity verification, is being conducted at home and abroad, but the existing authentication method is performed through a public certificate issued by a third party. there is.

하지만, 본인인증을 제3의 기관을 통해서 이루어지는 것에 대해 의문이 제기되면서 DID(Decentralized Identifier; 분산 식별자)의 필요성이 등장하게 되었다. 블록체인의 암호학적 특성을 활용하면 중앙기관의 관여 없이 본인을 증명하는 유일한 분산 식별자(DID)를 통해 개인 신원을 증명하는 것이 가능하다. DID를 이용하여 개인 신원 증명 시 개인키를 기반으로 DID 등록, 전자서명 등이 수행되므로 개인키를 안전하게 보관하는 방안도 필요하게 된다. However, as a question was raised about authentication through a third party, the need for a Decentralized Identifier (DID) emerged. Utilizing the cryptographic characteristics of blockchain, it is possible to prove personal identity through a unique decentralized identifier (DID) that proves oneself without the involvement of a central authority. When proving personal identity using DID, DID registration and digital signature are performed based on the private key, so it is necessary to keep the private key safely.

현재 DID 서비스는 공개할 수 있는 개인정보를 블록체인 상에 등록하고, 필요할 때 개인의 용도나 사용범위를 지정해서 사용하는 것에 중점을 두고 서비스 개발이 이루어지고 있다. 하지만, 이런 서비스는 소유 증명, 위변조 방지에만 초점을 두고 있으며, 개인이 공유하기에 민감한 데이터들을 DID 기반으로 저장 및 공유하는 방안이 필요하다. Currently, DID service is being developed with an emphasis on registering personal information that can be disclosed on the blockchain and using it by specifying the purpose or scope of use of the individual when necessary. However, these services are focused only on proof of possession and prevention of forgery, and a method for storing and sharing sensitive data for individuals to share is required based on DID.

이하에서는 우선, DID와 DID 문서에 대한 개념에 대해 설명하기로 한다. Hereinafter, first, the concept of DID and DID document will be described.

DID란, 중앙기관 없이 사용자를 중심으로 개인을 식별할 수 있는 정보를 CRUD(Create, Read, Update, Delete)하여 본인임을 증명할 수 있는 유일한 식별자를 의미한다. DID는 하나의 키 값으로 블록체인 트랜잭션의 DID 문서를 가리키는 포인터 역할을 수행한다. 특히, DID는 사용자의 공개키를 기반으로 생성된 식별자이다. DID refers to a unique identifier that can prove identity by CRUD (Create, Read, Update, Delete) information that can identify an individual centered on the user without a central authority. DID is a key value that serves as a pointer to the DID document of a blockchain transaction. In particular, DID is an identifier generated based on a user's public key.

DID 문서란, 개인이 자신을 인증하고 DID와 연관성을 증명하는데 필요한 집합을 의미한다. DID의 CRUD 수행 대상이 DID 문서이며, DID 서비스 이용 시 검증하는데 필요한 정보들을 의미하며 데이터 집합에는 공개키, 인증 방법, 전자서명 값 등의 속성들이 존재한다. A DID document refers to a set necessary for an individual to authenticate himself and prove association with a DID. The object of CRUD of DID is DID document, and it means the information necessary for verification when using DID service. There are attributes such as public key, authentication method, and digital signature value in the data set.

DID와 DID 문서의 연관관계는 DID를 블록체인에서 검색하여 트랜잭션 내용을 기반으로 DID 문서를 생성하는 것이며, DID를 기반으로 DID 문서를 읽어오는 방식은 블록체인마다 상이할 수 있다.The relationship between DID and DID document is to search DID in blockchain and create DID document based on transaction contents, and the method of reading DID document based on DID may be different for each blockchain.

DID를 이용하여 사용자의 민감한 데이터 공유를 위해 송신자와 수신자 사이에 사전에 대칭키를 공유하거나, 대칭키로 데이터를 암호화하고 대칭키는 수신자의 공개키로 암호화하여 전달하는 방식을 이용하였으나, 상술한 두가지 방식 모두 사용자가 방대한 양의 개인키, 대칭키를 관리해야 하는 부담이 있다. 따라서, 본 발명에서는 사용자 데이터 공유를 위해 필요한 방대한 양의 키 관리 문제점을 개선하고자 한다. In order to share user's sensitive data using DID, a symmetric key is shared in advance between the sender and the receiver, or the data is encrypted with the symmetric key and the symmetric key is encrypted with the public key of the receiver and transmitted. All of them have the burden of managing a huge amount of private keys and symmetric keys. Therefore, the present invention aims to improve the problem of managing a large amount of keys required for user data sharing.

이하에서는 본 발명의 개념이 적용될 수 있는 블록체인을 이용한 분산처리 시스템에 관해 설명하기로 한다. Hereinafter, a distributed processing system using a block chain to which the concept of the present invention can be applied will be described.

도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.1 is a diagram showing a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.

도 1을 참조하면 블록체인을 이용한 분산처리 시스템(100)은 복수의 노드들(110-170)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(100)를 구성하는 노드들(110-170)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.Referring to FIG. 1, a distributed processing system 100 using a blockchain is a distributed network system consisting of a plurality of nodes 110-170. The nodes 110 to 170 constituting the distributed network 100 may be electronic devices having computing capabilities, such as computers, mobile terminals, and dedicated electronic devices.

일반적으로 분산형 네트워크(100)는 블록체인이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the distributed network 100 can store and refer to information commonly known to all participating nodes within a connected bundle of blocks called a block chain. The nodes 110-170 can communicate with each other and can be divided into a full node in charge of storing, managing, and disseminating the blockchain, and a light node that can simply participate in transactions. . In this specification, when referring to a node without special explanation, it often refers to a complete node participating in a distributed network and performing an operation of generating, storing, or verifying a blockchain, but is not limited thereto.

상기 블록체인에 연결되어 있는 각 블록들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.Each block connected to the block chain includes transaction details, that is, transactions, within a certain period of time. The nodes can manage transactions by creating, storing, or verifying a blockchain according to their respective roles.

실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 암호화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 또 다른 실시예에서 상기 트랜잭션은 정보의 기록, 저장 및 이송을 나타내기 위한 정보 공유 과정에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.Depending on the embodiment, the transaction may represent various types of transactions. In one embodiment, the transaction may correspond to a financial transaction to indicate the ownership status of cryptocurrency and its fluctuation. In another embodiment, the transaction may correspond to a real transaction to indicate the state of possession of an object and its change. In another embodiment, the transaction may correspond to an information sharing process to represent the recording, storage and transfer of information. Nodes performing transactions in the distributed network 100 may have a private key and public key pair having a cryptographically related relationship.

도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams showing the connection of blocks used in the blockchain system.

도 2를 참조하면 블록체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록체인(200)은 블록체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록체인(200)에 연결한다. 도 3에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.Referring to FIG. 2, a blockchain 200 is a kind of distributed database of one or more blocks 210, 220, and 230 sequentially connected. The blockchain 200 is used to store and manage user transaction details in the blockchain system, and each node participating in the network of the blockchain system creates a block and connects it to the blockchain 200. Although a limited number of blocks 210, 220, and 230 are shown in FIG. 3, the number of blocks that can be included in a blockchain is not limited thereto.

상기 블록체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the blockchain 200 may be configured to include a block header 211 and a block body 213. The block header 211 may include a hash value of the previous block 220 to indicate a connection relationship between each block. In the process of verifying whether the block chain 200 is valid, the connection relationship in the block header 211 is used. The block body 213 may include data stored and managed in the block 210, for example, a transaction list or a transaction chain.

도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 현재 블록의 해시(2113), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.Referring to FIG. 3 , the block header 211 may include a hash 2112 of a previous block, a hash 2113 of a current block, and a nonce 2114. Also, the block header 211 may include a root 2115 indicating a header of a transaction list within a block.

전술된 바와 같이, 상기 블록체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.As described above, the blockchain 200 may include one or more connected blocks. The one or more blocks are concatenated based on a hash value in the block header 211 . The hash value 2112 of the previous block included in the block header 211 is a hash value of the previous block 220 and is the same as the current hash 2213 included in the previous block 220 . The one or more blocks are chained by the hash value of the previous block in each block header. Nodes participating in the distributed network verify the validity of the block based on the hash value of the previous block included in the one or more blocks, so it is impossible for a single malicious node to forge or tamper with the contents of an already created block. Do.

상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.The block body 213 may include a transaction list 2131. The transaction list 2131 is a list of blockchain-based transactions. For example, the transaction list 2131 may include a record of financial transactions made in the blockchain-based financial system. The transaction list 2131 may be expressed in a tree form. For example, the amount transmitted from user A to user B is recorded in the form of a list, and the storage length in the block is the number of transactions included in the current block. It can be increased or decreased based on the number.

그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. Also, the block 210 may include other information 2116 other than the information included in the block header 211 and the block body 213 .

분산형 네트워크에 참여하는 노드들은 동일한 블록체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.Nodes participating in the decentralized network have the same block chain, and the same transaction is stored in the block. A block containing a list of transactions is shared on the network so that all participants can verify it.

이하에서는, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 대하여 설명하기로 한다. 본 발명에서 설명하는 사용자 데이터 저장 및 공유 방법은 컴퓨팅 장치에서 실행되는 알고리즘이다.Hereinafter, a user data storage and sharing system according to an embodiment of the present invention will be described. The user data storage and sharing method described in the present invention is an algorithm executed in a computing device.

도 4는 본 발명에 따른 DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템을 개략적으로 도시한 블록도이다. 도 5는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 저장하는 동작을 나타낸 블록도이다. 도 6은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 포함되는 키 관리 시스템에서 자식키를 생성 및 백업하는 동작을 나타낸 블록도이다. 도 7은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 생성 과정을 예시적으로 도시한 도면이다. 도 8은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 9는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다.4 is a schematic block diagram of a DID-based decentralized user data storage and sharing system according to the present invention. 5 is a block diagram illustrating an operation of storing user data in a user data storage and sharing system according to an embodiment of the present invention. 6 is a block diagram illustrating an operation of generating and backing up a child key in a key management system included in a user data storage and sharing system according to an embodiment of the present invention. 7 is a diagram illustrating a process of generating a DID of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention by way of example. 8 is a diagram exemplarily illustrating a DID document of a first user terminal in a user data storage and sharing system according to an embodiment of the present invention. 9 is a diagram exemplarily illustrating a DID document of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention.

도 4 내지 도 9를 참조하면, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(300)은 데이터 공유 중개 서버(310), 제1 사용자 단말(321), 스토리지 장치(330)을 포함하여 구성된다. 4 to 9, the user data storage and sharing system 300 according to an embodiment of the present invention includes a data sharing mediation server 310, a first user terminal 321, and a storage device 330. It consists of

본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(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) 네트워크 등이 포함되나 본 발명이 이에 한정되는 것은 아니다. In the user data storage and sharing system 300 according to an embodiment of the present invention, the data sharing mediation server 310, the first user terminal 321, and the storage device 330 are connected to each other through a network, and a plurality of networks It means a connection structure capable of exchanging information between each node, such as a terminal and servers of Examples of such networks include RF, 3rd Generation Partnership Project (3GPP) network, Long Term Evolution (LTE) network, 5th Generation Partnership Project (5GPP) network, World Interoperability for Microwave Access (WIMAX) network, Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), Bluetooth network, NFC network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting) networks, etc. are included, but the present invention is not limited thereto.

제1 사용자 단말(321)은 예를 들어, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.The first user terminal 321 may be implemented as a computer capable of accessing a remote server or terminal through a network, for example. Here, the computer may include, for example, a laptop, a desktop, a laptop, and the like equipped with a navigation system and a web browser.

또는, 제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) 기반의 무선 통신 장치를 포함할 수 있다.Alternatively, the first user terminal 321 may be implemented as a terminal capable of accessing a remote server or terminal through a network. For example, as a wireless communication device that ensures portability and mobility, navigation, 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) terminal, smartphone, smart phone All types of handheld-based wireless communication devices such as a smartpad and a tablet PC may be included.

제1 사용자 단말(321)은 사용자 데이터(data_A)를 암호화하여 스토리지 장치(330)에 저장하고자 하는 장치이며, 사용자 데이터(data_A)는 예를 들어, 민감한 개인정보 등 프라이버시 보호가 필요한 데이터일 수 있다. 또는, 사용자 데이터(data_A)는 검증가능한 자격증명(VC; Verifiable Credential) 데이터일 수 있다. The first user terminal 321 is a device that encrypts user data data_A and stores it in the storage device 330. The user data data_A may be, for example, data requiring privacy protection, such as sensitive personal information. . Alternatively, the user data data_A may be verifiable credential (VC) data.

제1 사용자 단말(321)은 데이터 공유 중개 서버(310)에서 제공하는 인스턴스 서비스를 통하여 사용자 데이터(data_A)를 다른 사용자 단말과 공유할 수 있으며, 데이터 공유 중개 서버(310)에서 제공하는 인스턴스 서비스는 각 사용자 단말별로 소유권을 가질 수 있다. 그리고, 각각의 인스턴스 서비스는 DID 문서를 가지고 있으며, 이는 블록체인 시스템에 등록된다.The first user terminal 321 may share user data (data_A) with another user terminal through an instance service provided by the data sharing mediation server 310, and the instance service provided by the data sharing mediation server 310 Each user terminal may have ownership. And, each instance service has a DID document, which is registered in the blockchain system.

제1 사용자 단말(321)이 스토리지 장치(330)에 사용자 데이터(data_A)를 암호화하여 저장하는 과정은 우선, 제1 사용자 단말(321)의 DID 및 DID 문서가 블록체인 시스템에 등록되어 있는 상태에서 데이터 공유 중개 서버(310)의 DID 및 DID 문서를 생성한다. The process of the first user terminal 321 encrypting and storing user data (data_A) in the storage device 330 is first, in a state where the DID and DID document of the first user terminal 321 are registered in the blockchain system DID and DID documents of the data sharing mediation server 310 are generated.

제1 사용자 단말(321)과 연관되는 데이터 공유 중개 서버(310)의 DID 문서의 속성값 중 capabilityInvocation 및 capabilityDelegation가 존재하며, 각각의 속성값의 의미는 다음과 같다. Among the attribute values of the DID document of the data sharing mediation server 310 associated with the first user terminal 321, capabilityInvocation and capabilityDelegation exist, and the meaning of each attribute value is as follows.

capabilityInvocation : " "capabilityInvocation: " "

capabilityDelegation : "USERApubKey#x"capabilityDelegation: "USERApubKey#x"

속성값 capabilityInvocation은 데이터를 활용할 권한이 있는 자의 DID 집합을 의미하고, 속성값 capabilityDelegation은 데이터를 활용할 권한이 있는 자의 DID 집합 및 capabilityInvocation에 사용자를 등록/삭제할 권한이 있는 자의 집합을 의미한다. The attribute value capabilityInvocation means the set of DIDs of those who have the authority to utilize data, and the attribute value capabilityDelegation means the set of DIDs of those who have the authority to utilize data and the set of those who have the authority to register/delete users in capabilityInvocation.

데이터 공유 중개 서버(310)의 DID 속성값 중 capabilityDelegation 항목은 반드시 데이터 소유주 즉, 제1 사용자 단말(321)의 DID가 되어야 하며, 상기 예에서 사용자 데이터(data_A)의 공유와 관련된 키 정보(index가 x번째 키)가 capabilityDelegation 항목에 등록된다. Among the DID attribute values of the data sharing mediation server 310, the capabilityDelegation item must be the DID of the data owner, that is, the first user terminal 321, and in the above example, key information (index xth key) is registered in capabilityDelegation item.

그리고, 제1 사용자 단말(321)은 키 관리 시스템을 이용하여 자식키를 생성하고, 사용자 데이터(data_A)를 암호화하는 동작 알고리즘을 수행한다. Then, the first user terminal 321 generates a child key using a key management system and performs an operation algorithm for encrypting user data data_A.

키 관리 시스템은 키 관리 서버(410)와 제1 내지 제3 데이터베이스 장치(420, 430, 440)를 포함하며, 우선 도 6을 참조하여, 키 관리 시스템을 통해 개인키 및 공개키 쌍을 복구하는 알고리즘에 대해 설명하기로 한다. The key management system includes a key management server 410 and first to third database devices 420, 430 and 440, and first, referring to FIG. 6, recovering a private key and public key pair through the key management system. Let's explain the algorithm.

키 관리 서버(410)는 마스터키 생성에 필요한 128bit의 랜덤한 S1 코드를 생성하며, 이를 제1 사용자 단말(321)로 전달한다. 그리고, 키 관리 서버(410)는 상기 S1 코드를 제1 데이터베이스 장치(420)에 전달하여 저장한다. 제1 내지 제3 데이터베이스 장치(440)는 키 백업 시스템에 포함되는 장치로서 키 복원을 위해 정보를 저장할 수 있는 장치이다. 또한, 제1 내지 제3 데이터베이스 장치(440)는 물리적으로 분리된 서로 다른 장치로서, 각각 서로 다른 데이터를 저장한다. The key management server 410 generates a 128-bit random S1 code necessary for generating a master key and delivers it to the first user terminal 321 . Then, the key management server 410 transfers the S1 code to the first database device 420 and stores it. The first to third database devices 440 are devices included in the key backup system and can store information for key restoration. In addition, the first to third database devices 440 are physically separated from each other and store different data.

제1 사용자 단말(321)은 니모닉 코드 단어(mnemonic code words)를 생성하기 위해 필요한 256bit의 랜덤한 S2 코드를 생성하며, 이를 키 관리 서버(410)를 통해 제2 데이터베이스 장치(430)로 전달하여 상기 S2 코드를 제2 데이터베이스 장치(430)에 저장한다. The first user terminal 321 generates a 256-bit random S2 code required to generate mnemonic code words, and transfers it to the second database device 430 through the key management server 410, The S2 code is stored in the second database device 430.

그리고, 제1 사용자 단말(321)은 자식키 생성에 필요한 패스(path)를 설정하기 위한 값으로서 128bit의 랜덤한 S3 코드를 생성하며, 이를 키 관리 서버(410)를 통해 제3 데이터베이스 장치(440)로 전달하여 상기 S3 코드를 제3 데이터베이스 장치(440)에 저장한다. Then, the first user terminal 321 generates a 128-bit random S3 code as a value for setting a path necessary for generating a child key, and the third database device 440 through the key management server 410. ) to store the S3 code in the third database device 440.

제1 사용자 단말(321)은 상기 S2 코드를 이용하여 니모닉 코드 단어를 생성하고, 상기 생성한 니모닉 코드 단어와 상기 S1 코드를 이용하여 512bit의 마스터 시드(master seed)를 생성한다. The first user terminal 321 generates a mnemonic code word using the S2 code, and generates a 512-bit master seed using the generated mnemonic code word and the S1 code.

제1 사용자 단말(321)은 상기 마스터 시드를 이용하여 마스터키 생성 후, 상기 마스터키를 이용하여 HD 월렛을 생성한다. 즉, 제1 사용자 단말(321)은 상기 마스터 시드를 이용하여 마스터 개인키, 마스터 공개키를 생성한다. After generating a master key using the master seed, the first user terminal 321 generates an HD wallet using the master key. That is, the first user terminal 321 generates a master private key and a master public key using the master seed.

제1 사용자 단말(321)은 상기 마스터키로부터 자식키를 추출하기 위해 인덱스(index)를 설정한다. 제1 사용자 단말(321)이 자식키 추출을 위해 이용하는 인덱스는 4byte(0 ~ 231-1)의 숫자값을 갖는다. The first user terminal 321 sets an index to extract a child key from the master key. The index used by the first user terminal 321 to extract a child key has a numeric value of 4 bytes (0 to 2 31 -1).

그리고, 제1 사용자 단말(321)은 자식키 추출을 위한 패스(path)를 설정하는데, 상기 패스(path)는 마스터키에서 자식키를 유도하기 위한 경로를 의미한다. 상기 패스(path)는 128bit(16byte)의 S3 코드를 32bit의 4개의 부호화 정수(signed integer)로 분할하여 다음과 같이 설정한다. The first user terminal 321 sets a path for extracting a child key, and the path means a path for deriving a child key from a master key. The path divides a 128-bit (16-byte) S3 code into four 32-bit signed integers, and is set as follows.

S3 = s1 - s2 - s3 - s4 S3 = s1 - s2 - s3 - s4

m / companyCode / s1 / s2 / s3 / s4 / indexm/companyCode/s1/s2/s3/s4/index

제1 사용자 단말(321)은 상기 설정한 패스(path)에 따라 CKD(Child Key Derivation) 함수를 이용하여 HD 월렛에서 자식키를 추출한다. 제1 사용자 단말(321)의 자식키 추출 결과 한 쌍의 개인키 및 공개키 쌍이 생성된다. The first user terminal 321 extracts a child key from the HD wallet using a Child Key Derivation (CKD) function according to the set path. As a result of extracting the child key of the first user terminal 321, a pair of private key and public key is generated.

제1 사용자 단말(321)은 자신의 S1 코드, S2 코드, S3 코드 값을 키 관리 서버(410)를 통해 각각 제1 내지 제3 데이터베이스 장치(440)로 전달하여 저장한다. 추후에는 제1 내지 제3 데이터베이스 장치(440)에 저장된 S1 코드, S2 코드, S3 코드를 이용하여 자식키를 추출하고, 한 쌍의 개인키 및 공개키 쌍을 생성할 수 있다. The first user terminal 321 transmits and stores its S1 code, S2 code, and S3 code values to the first to third database devices 440 through the key management server 410, respectively. Later, a child key may be extracted using the S1 code, S2 code, and S3 code stored in the first to third database devices 440, and a pair of private and public key pairs may be generated.

제1 사용자 단말(321)은 사용자 데이터(data_A)를 암호화하기 위한 애플리케이션을 이용할 수 있으며, 도 6을 참조하여 상술한 자식키 추출 알고리즘을 통해 DID 문서의 KeyAgreement의 키 정보인 n번째 자식키를 생성한다. 여기에서 n번째 자식키는 개인키 a와, 공개키 a·G를 포함하는 것으로 가정한다. The first user terminal 321 may use an application for encrypting user data (data_A), and generate the nth child key, which is key information of the KeyAgreement of the DID document, through the child key extraction algorithm described above with reference to FIG. 6 do. Here, it is assumed that the nth child key includes a private key a and a public key 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)를 암호화 한다. The first user terminal 321 generates a symmetric key S_a using the nth child key (a·(a·G) = S_a). In addition, the first user terminal 321 generates a random 16-byte initial vector (iv_a) required for encryption of the user data data_A. The first user terminal 321 encrypts user data data_A using the symmetric key S_a and the initial vector iv_a.

E_(S_a, iv_a)(data_A)= Ciphertext_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)를 저장한다.The first user terminal 321 makes a storage request for the encrypted user data (E_data_A) to the data sharing mediation server 310, and the data sharing mediation server 310 adds the capabilityDelegation item of its DID document to the first user terminal ( 321) is registered, and if the DID of the first user terminal 321 is registered, the data sharing mediation server 310 sends encrypted data (E_data_A) to the storage device 330 in the following structure. Save.

header(20byte)header(20 bytes) datadata 자식키 index(4byte)Child key index (4 bytes) initial vector(16byte)initial vector(16 bytes) 암호화된 민감 데이터Encrypted Sensitive Data

Figure 112022107501507-pat00001
Figure 112022107501507-pat00001
Figure 112022107501507-pat00002
Figure 112022107501507-pat00002
Figure 112022107501507-pat00003
Figure 112022107501507-pat00003

스토리지 장치(330)의 종류는 본 발명에서 제한하지 않으며, 클라우드, 로컬 스토리지, IPFS 등 다양한 형태의 스토리지 장치가 이용될 수 있다. The type of storage device 330 is not limited in the present invention, and various types of storage devices such as cloud storage, local storage, and IPFS may be used.

도 10은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 공유하는 동작을 나타낸 블록도이다. 도 11은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 12는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다. 도 13은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 도 14는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 10 is a block diagram illustrating an operation of sharing user data in a user data storage and sharing system according to an embodiment of the present invention. 11 is a diagram exemplarily illustrating a DID document of a second user terminal in a user data storage and sharing system according to an embodiment of the present invention. 12 is a diagram illustrating a DID document of a data sharing mediation server in a user data storage and sharing system according to an embodiment of the present invention by way of example. 13 is a diagram exemplarily illustrating a DID document of a first user terminal in a user data storage and sharing system according to an embodiment of the present invention. 14 is a diagram exemplarily illustrating a DID document of a second user terminal in a user data storage and sharing system according to an embodiment of the present invention.

도 10 내지 도 14를 참조하면, 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(300)은 데이터 공유 중개 서버(310), 제1 사용자 단말(321), 제2 사용자 단말(322), 스토리지 장치(330)을 포함하여 구성된다. 10 to 14, the user data storage and sharing system 300 according to an embodiment of the present invention includes a data sharing mediation server 310, a first user terminal 321, a second user terminal 322, It is configured to include a storage device 330 .

제2 사용자 단말(322)은 자신의 DID 및 사용할 키 인덱스(y)를 함께 제1 사용자 단말(321)로 제공하며, 제1 사용자의 사용자 데이터(data_A)의 공유를 요청한다. 아래는 제2 사용자 단말(322)이 제공하는 키 인덱스(y)의 예시이다.The second user terminal 322 provides its own DID and the key index (y) to be used together to the first user terminal 321 and requests sharing of user data (data_A) of the first user. Below is an example of the key index (y) provided by the second user terminal 322 .

key index : did:lit:thisisB#ykey index: did:lit:thisisB#y

제1 사용자 단말(321)은 제2 사용자 단말(322)의 사용자 인증 후 제2 사용자 단말(322)의 DID를 블록체인 시스템의 데이터 공유 중개 서버(310)의 DID 문서에 등록한다. 이때, 제2 사용자 단말(322)에 대해 제1 사용자 단말(321)의 사용자 데이터(data_A)의 활용 여부를 결정하기 때문에 capabilityInvocation 속성값에 등록한다.After user authentication of the second user terminal 322, the first user terminal 321 registers the DID of the second user terminal 322 in the DID document of the data sharing mediation server 310 of the blockchain system. At this time, since it is determined whether to utilize the user data (data_A) of the first user terminal 321 for the second user terminal 322, it is registered in the capabilityInvocation attribute value.

capabilityDelegation : "did:lit:USERA#x"capabilityDelegation : "did:lit:USERA#x"

capabilityInvocation : "did:lit:USERB#y"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번째 자식키를 생성한다.The first user terminal 321 recovers the symmetric key S_a to decrypt the encrypted user data E_data_A. To this end, the first user terminal 321 extracts the nth child key (a, a·G). That is, the first user terminal 321 may use an application for decrypting the encrypted user data (E_data_A), and the nth key information of the KeyAgreement of the DID document through the child key extraction algorithm described above with reference to FIG. 5 Generate child keys.

제1 사용자 단말(321)은 스토리지 장치(330)에서 다운로드한 암호화된 사용자 데이터(E_data_A)를 복호화 한다.The first user terminal 321 decrypts the encrypted user data E_data_A downloaded from the storage device 330 .

D_(S_a, iv_a)(Ciphertext_a) = 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).The first user terminal 321 queries the nth public key of the second user terminal 322 . The first user terminal 321 retrieves the DID document of the second user terminal 322 by searching for did:lit:USERB in did resolver. The first user terminal 321 inquires the nth public key value among the public keys of the second user terminal 322 (b·G).

제1 사용자 단말(321)은 제2 사용자 단말(322)과 공유할 대칭키를 생성한다. 이때, 제1 사용자 단말(321)과 제2 사용자 단말(322)의 DID 문서를 조회하여 keyAgreement의 키 정보를 활용한다. The first user terminal 321 generates a symmetric key to be shared with the second user terminal 322 . At this time, the DID documents of the first user terminal 321 and the second user terminal 322 are retrieved and key information of the keyAgreement is utilized.

keyAgreement : "USERBpubKey#n"keyAgreement: "USERBpubKey#n"

keyAgreement : "USERApubKey#n"keyAgreement: "USERApubKey#n"

제1 사용자 단말(321)과 제2 사용자 단말(322)의 공유 대칭키는 제1 사용자 단말(321)의 n번째 개인키 *?* 제2 사용자 단말(322)의 n번째 공개키를 이용하여(a · bG), 공유 대칭키(S_ab)를 생성한다. The shared symmetric key between the first user terminal 321 and the second user terminal 322 is the n-th private key of the first user terminal 321 *** using the n-th public key of the second user terminal 322 (a · bG), generate a shared symmetric key (S_ab).

제1 사용자 단말(321)은 암호화에 필요한 랜덤한 16byte의 이니셜 벡터를 생성한다(iv_ab). 제1 사용자 단말(321)은 공유 대칭키(S_ab)를 이용하여 사용자 데이터(data_A)를 암호화한다. The first user terminal 321 generates a random 16-byte initial vector necessary for encryption (iv_ab). The first user terminal 321 encrypts the user data data_A using the shared symmetric key S_ab.

E_(S_ab, iv_ab )(data_A) = Ciphertext_abE_(S_ab, iv_ab)(data_A) = Ciphertext_ab

제1 사용자 단말(321)은 이니셜 벡터(iv_ab)와 암호화된 사용자 데이터(E_data_A)를 제2 사용자 단말(322)로 전달한다(Ciphertext_ab, iv_ab).The first user terminal 321 transmits the initial vector iv_ab and the encrypted user data E_data_A to the second user terminal 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)로의 접근을 허용한다.At this time, the data sharing mediation server 310 checks whether the DID of the second user terminal 322 is registered in the DID document of the data sharing mediation server 310 associated with the first user terminal 321 of the blockchain system, and then 2 Access of the user terminal 322 is allowed. Specifically, the data sharing mediation server 310 checks whether the DID of the second user terminal 322 is registered in the capabiltiyInvocation attribute value of the DID document of the data sharing mediation server 310 associated with the first user terminal 321. do. Data sharing mediation server 310 is the second user when the DID of the second user terminal 322 is registered in the capabiltiyInvocation attribute value of the DID document of the data sharing mediation server 310 associated with the first user terminal 321 Access to the data sharing mediation server 310 of the terminal 322 is allowed.

그리고, 제2 사용자 단말(322)도 공유 대칭키를 생성한다. 이때, 제1 사용자 단말(321)과 제2 사용자 단말(322)의 DID 문서를 조회하여 keyAgreement의 키 정보를 활용한다. And, the second user terminal 322 also generates a shared symmetric key. At this time, the DID documents of the first user terminal 321 and the second user terminal 322 are retrieved and key information of the keyAgreement is utilized.

keyAgreement : "USERBpubKey#n"keyAgreement: "USERBpubKey#n"

keyAgreement : "USERApubKey#n"keyAgreement: "USERApubKey#n"

제2 사용자 단말(322)과 제1 사용자 단말(321)의 공유 대칭키는 제2 사용자 단말(322)의 n번째 개인키 *?* 제1 사용자 단말(321)의 n번째 공개키(b · a·G)를 이용하여 공유 대칭키(S_ab)를 생성한다. The shared symmetric key between the second user terminal 322 and the first user terminal 321 is the nth private key of the second user terminal 322 *?* the nth public key of the first user terminal 321 (b · A shared symmetric key (S_ab) is generated using a·G).

제2 사용자 단말(322)은 암호화된 사용자 데이터(E_data_A)를 복호화함으로써 제1 사용자 단말(321)의 사용자 데이터(data_A)를 공유한다. The second user terminal 322 shares the user data data_A of the first user terminal 321 by decrypting the encrypted user data E_data_A.

D_(S_ab, iv_ab)(Ciphertext_ab) = data_AD_(S_ab, iv_ab)(Ciphertext_ab) = data_A

도 15는 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.15 is a configuration diagram of a computing device of a node according to an embodiment of the present invention.

도 15를 참조하면, 본 발명의 실시예에 따른 노드의 컴퓨팅 장치(1000)는 프로세서(1100)와 메모리(1200)를 포함하고, 프로세서(1100)는 하나 이상의 코어(core) 및 그래픽 처리부 및/또는 다른 구성요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.Referring to FIG. 15 , a computing device 1000 of a node according to an embodiment of the present invention includes a processor 1100 and a memory 1200, and the processor 1100 includes one or more cores and a graphic processing unit and/or Alternatively, it may include a connection path (eg, a bus) through which signals are transmitted and received to and from other components.

일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 5 내지 도 14와 관련하여 사용자 데이터 저장 및 공유 알고리즘의 동작을 실행한다. The processor 1100 according to an embodiment executes the operation of the user data storage and sharing algorithm with respect to FIGS. 5 to 14 by executing one or more instructions stored in the memory 1200 .

예를 들어, 프로세서(1100)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 하나 이상의 노드에서 발생되는 사용자 식별인증 및 개인키 생성에 관한 정보들을 수집하고, 상기 수집된 정보들에 기초하여 트랜잭션을 발생시켜 적어도 하나의 노드에 대해 관련 정보를 제공한다. For example, the processor 1100 collects information about user identification authentication and private key generation generated in one or more nodes by executing one or more instructions stored in memory, and generates a transaction based on the collected information. Provides relevant information about at least one node.

한편, 프로세서(1100)는 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory) 및 롬(ROM: Read-Only Memory)을 더 포함할 수 있다. 또한, 프로세서(1100)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. Meanwhile, the processor 1100 may further include random access memory (RAM) and read-only memory (ROM) for temporarily and/or permanently storing signals (or data) processed therein. . In addition, the processor 1100 may be implemented in the form of a system on chip (SoC) including at least one of a graphics processing unit, RAM, and ROM.

메모리(1200)에는 프로세서(1100)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(1200)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 1200 may store programs (one or more instructions) for processing and control of the processor 1100 . Programs stored in the memory 1200 may be divided into a plurality of modules according to functions.

본 발명의 실시예와 관련하여 설명된 시스템의 동작들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.Operations of a system described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented in a software module executed by hardware, or a combination thereof. A software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art to which the present invention pertains.

본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.Components of the present invention may be implemented as a program (or application) to be executed in combination with a computer, which is hardware, and stored in a medium. Components of the present invention may be implemented as software programming or software elements; similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, such as C, C++ , Java (Java), can be implemented in a programming or scripting language such as assembler (assembler). Functional aspects may be implemented in an algorithm running on one or more processors.

전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 청구범위에 의해 나타내어질 것이다. 그리고 이 청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It should be understood that the foregoing embodiments are illustrative in all respects and not restrictive, and the scope of the present invention will be indicated by the claims which will follow rather than by the foregoing detailed description. And it should be construed that the meaning and scope of these claims, as well as all changes and transformable forms derived from their equivalent concepts, are included in the scope of the present invention.

100: 분산형 네트워크
110~170: 노드들
200: 블록체인
210, 220, 230: 블록
300: 사용자 데이터 저장 및 공유 시스템
310: 데이터 공유 중개 서버
321: 제1 사용자 단말
322: 제2 사용자 단말
330: 스토리지 장치
100: decentralized network
110-170: Nodes
200: Blockchain
210, 220, 230: block
300: user data storage and sharing system
310: data sharing mediation server
321: first user terminal
322: second user terminal
330: storage device

Claims (6)

제1 사용자 단말, 데이터 공유 중개 서버, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서,
대칭키를 생성하고, 상기 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 암호화된 사용자 데이터를 상기 데이터 공유 중개 서버로 저장 요청하는 제1 사용자 단말;
상기 데이터 공유 중개 서버의 DID 문서에 상기 제1 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제1 사용자 단말의 DID 정보가 등록된 경우 상기 스토리지 장치에 상기 암호화된 사용자 데이터를 저장하는 데이터 공유 중개 서버; 및
상기 데이터 공유 중개 서버로부터 전달받은 상기 암호화된 사용자 데이터를 저장하는 스토리지 장치;를 포함하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
A user data storage and sharing system including a first user terminal, a data sharing mediation server, and a storage device,
A first user terminal that generates a symmetric key, encrypts user data of the first user terminal using the symmetric key, and requests storage of the encrypted user data to the data sharing mediation server;
Checking whether DID information of the first user terminal is registered in the DID document of the data sharing mediation server, and storing the encrypted user data in the storage device if the DID information of the first user terminal is registered data sharing intermediary server; and
A DID-based user data storage and sharing system comprising a; storage device for storing the encrypted user data received from the data sharing mediation server.
제 1항에 있어서,
상기 데이터 공유 중개 서버의 DID 문서에는, 상기 암호화된 사용자 데이터를 이용할 권한이 있는 노드의 DID 정보가 등록 또는 삭제되는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
According to claim 1,
In the DID document of the data sharing mediation server, DID information of a node authorized to use the encrypted user data is registered or deleted, a DID-based user data storage and sharing system.
제 1항에 있어서,
상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 제2 사용자 단말을 더 포함하고,
상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터의 공유를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
According to claim 1,
Further comprising a second user terminal requesting sharing of user data of the first user terminal,
When the second user terminal requests sharing of user data of the first user terminal to the data sharing mediation server, the first user terminal transmits the DID information of the second user terminal to the DID document of the data sharing mediation server. DID-based user data storage and sharing system that registers and grants access rights to user data of the first user terminal to the second user terminal.
제 3항에 있어서,
상기 제1 사용자 단말은,
상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 상기 제2 사용자 단말과 공유할 제1 공유 대칭키를 생성하고,
상기 제1 공유 대칭키를 이용하여 상기 제1 사용자 단말의 사용자 데이터를 암호화하고, 상기 제1 공유 대칭키를 이용하여 암호화된 사용자 데이터를 상기 제2 사용자 단말로 전달하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
According to claim 3,
The first user terminal,
Inquiring DID documents of the first user terminal and the second user terminal to generate a first shared symmetric key to be shared with the second user terminal;
DID-based user data storage that encrypts user data of the first user terminal using the first shared symmetric key and transfers the encrypted user data to the second user terminal using the first shared symmetric key and shared system.
제 4항에 있어서,
상기 제2 사용자 단말은,
상기 제1 사용자 단말과 상기 제2 사용자 단말의 DID 문서를 조회하여 제2 공유 대칭키를 생성하고, 상기 제2 공유 대칭키를 이용하여 상기 전달받은 암호화된 사용자 데이터를 복호화하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
According to claim 4,
The second user terminal,
A DID-based user who searches the DID documents of the first user terminal and the second user terminal to generate a second shared symmetric key, and decrypts the received encrypted user data using the second shared symmetric key. Data storage and sharing system.
제 5항에 있어서,
상기 제1 공유 대칭키는 상기 제1 사용자 단말의 n번째 개인키와 상기 제2 사용자 단말의 n번째 공개키를 이용하여 생성하고,
상기 제2 공유 대칭키는 상기 제2 사용자 단말의 n번째 개인키와 상기 제1 사용자 단말의 n번째 공개키를 이용하여 생성하는, DID 기반의 사용자 데이터 저장 및 공유 시스템.
According to claim 5,
The first shared symmetric key is generated using the n-th private key of the first user terminal and the n-th public key of the second user terminal,
The second shared symmetric key is generated using the n-th private key of the second user terminal and the n-th public key of the first user terminal, DID-based user data storage and sharing system.
KR1020220131008A 2021-02-22 2022-10-13 The user data storage and sharing system based on DID KR102483369B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220131008A KR102483369B1 (en) 2021-02-22 2022-10-13 The user data storage and sharing system based on DID

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210023716A KR102465467B1 (en) 2021-02-22 2021-02-22 The decentralized user data storage and sharing system based on DID
KR1020220131008A KR102483369B1 (en) 2021-02-22 2022-10-13 The user data storage and sharing system based on DID

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210023716A Division KR102465467B1 (en) 2021-02-22 2021-02-22 The decentralized user data storage and sharing system based on DID

Publications (2)

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

Family

ID=82930918

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210023716A KR102465467B1 (en) 2021-02-22 2021-02-22 The decentralized user data storage and sharing system based on DID
KR1020220131008A KR102483369B1 (en) 2021-02-22 2022-10-13 The user data storage and sharing system based on DID

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210023716A KR102465467B1 (en) 2021-02-22 2021-02-22 The decentralized user data storage and sharing system based on DID

Country Status (2)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662021B1 (en) 2022-11-18 2024-04-29 동명대학교산학협력단 Did-based transaction system for ensuring used car data reliability and method for the same
KR102515367B1 (en) * 2023-01-20 2023-03-30 주식회사 그래파이 Blockchain-based data sharing method
CN115801815B (en) * 2023-02-03 2023-05-05 安徽中科晶格技术有限公司 Plant growth status sharing method and device based on blockchain and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179497B1 (en) 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 System for Data Storing and Managing based on Multi-cloud and Driving method thereof
KR102189301B1 (en) 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 System and method for providing blockchain based cloud service with robost security

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031873A1 (en) * 2004-08-09 2006-02-09 Comcast Cable Holdings, Llc System and method for reduced hierarchy key management
KR101857223B1 (en) 2017-11-13 2018-05-11 주식회사 온더 Method and system for user identification based block chain token
CN116910726A (en) * 2019-07-02 2023-10-20 创新先进技术有限公司 System and method for mapping a de-centralized identity to a real entity
KR102367052B1 (en) * 2019-07-11 2022-02-25 주식회사 코인플러그 Method for providing relational decentralized identifier service and blockchain node using them

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179497B1 (en) 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 System for Data Storing and Managing based on Multi-cloud and Driving method thereof
KR102189301B1 (en) 2020-04-22 2020-12-11 주식회사 한국정보보호경영연구소 System and method for providing blockchain based cloud service with robost security

Also Published As

Publication number Publication date
WO2022177204A1 (en) 2022-08-25
KR20220120062A (en) 2022-08-30
KR20220143625A (en) 2022-10-25
KR102465467B1 (en) 2022-11-09

Similar Documents

Publication Publication Date Title
Ji et al. BMPLS: Blockchain-based multi-level privacy-preserving location sharing scheme for telecare medical information systems
Jiang et al. PTAS: Privacy-preserving thin-client authentication scheme in blockchain-based PKI
CN110462621B (en) Managing sensitive data elements in a blockchain network
US10121143B1 (en) Method and system for blockchain-based combined identity, ownership, integrity and custody management
CN110033258B (en) Service data encryption method and device based on block chain
KR102483369B1 (en) The user data storage and sharing system based on DID
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
Bao et al. IoTChain: A three-tier blockchain-based IoT security architecture
KR20190075772A (en) AuthenticationSystem Using Block Chain Through Combination of Data after Separating Personal Information
WO2020049357A1 (en) Systems and methods for encryption of data on a blockchain
CN111523133B (en) Block chain and cloud data collaborative sharing method
US20150207621A1 (en) Method for creating asymmetrical cryptographic key pairs
Tang et al. A secure and trustworthy medical record sharing scheme based on searchable encryption and blockchain
Juyal et al. Privacy and security of IoT based skin monitoring system using blockchain approach
Ying et al. Reliable policy updating under efficient policy hidden fine-grained access control framework for cloud data sharing
CN108170753A (en) A kind of method of Key-Value data base encryptions and Safety query in shared cloud
Huynh et al. A reliability guaranteed solution for data storing and sharing
KR102354044B1 (en) The method of recovering private key using mnemonic code
Verma et al. Secure digital documents sharing using blockchain and attribute-based cryptosystem
CN113065146A (en) Homomorphic encryption method for block chain data protection
Shehu et al. SPIDVerify: A Secure and Privacy-Preserving Decentralised Identity Verification Framework
Paunikar et al. A user authentication scheme of Iot devices using blockchain-enabled fog nodes
Patil et al. Blockchain-Based Security for Super-peer Wireless Sensor Networks
Sey et al. Wb-Proxshare: A Warrant-Based Proxy Re-Encryption Model for Secure Data Sharing in Iot Networks Via Blockchain
Zheng et al. A Secure and Trusted Data Sharing Scheme Based on Blockchain for Government Data

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