WO2022177204A1 - Did-based decentralized system for storing and sharing user data - Google Patents

Did-based decentralized system for storing and sharing user data Download PDF

Info

Publication number
WO2022177204A1
WO2022177204A1 PCT/KR2022/001539 KR2022001539W WO2022177204A1 WO 2022177204 A1 WO2022177204 A1 WO 2022177204A1 KR 2022001539 W KR2022001539 W KR 2022001539W WO 2022177204 A1 WO2022177204 A1 WO 2022177204A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
user terminal
user
sharing
information
Prior art date
Application number
PCT/KR2022/001539
Other languages
French (fr)
Korean (ko)
Inventor
이정륜
한황제
윤태연
Original Assignee
주식회사 블록체인기술연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블록체인기술연구소 filed Critical 주식회사 블록체인기술연구소
Publication of WO2022177204A1 publication Critical patent/WO2022177204A1/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

Definitions

  • the present invention relates to a DID-based decentralized 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 issues for the vast amount of key pairs required in a DID environment, and share users’ sensitive data It relates to data storage and sharing systems.
  • Blockchain refers to a data distribution processing technology that distributes and stores all data that is 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 not owned by the transaction subject or a specific institution, but is a technology shared by all network participants.
  • Blockchain is a name given to the fact that blocks containing transaction contents are linked like a chain. This block chain is a technology to prevent hacking such as forgery and forgery of transaction contents, and it uses a method to prevent data forgery by sending transaction details to all users participating in the transaction and collating them for each transaction.
  • Blockchain is a core concept of decentralization, which aims for P2P (Peer to Peer) transactions, away from the existing financial system that secures and manages all transactions in financial institutions.
  • P2P refers to a communication network that connects personal computers without a server or client, and each connected computer acts as a server and client and shares 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 with P2P without intermediaries.
  • 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 vast amount of private and symmetric keys for data sharing in a blockchain network.
  • a user data storage and sharing system for solving the above problems is a user data storage and sharing system including a data sharing mediation server, a first user terminal, and a storage device, and interworking with a blockchain network Registers or deletes DID information for setting access rights to user data in the DID document of the data sharing mediation server registered in the blockchain network and the data sharing mediation server registered in the blockchain network to inquire about DID information registered in the blockchain network, , a first user terminal for transmitting encrypted user data, key index information, and initial vector information to the data sharing mediation server, and the encrypted user data from the data sharing mediation server, the key index information, and the and a storage device for receiving and storing initial vector information, wherein when a second user terminal different from the first user terminal requests user data of the first user terminal from the data sharing intermediary server, the first user terminal registers the DID information of the second user terminal in the DID document of the data sharing mediation server registered in the blockchain network, and grants the second user terminal access to the user data of the first user terminal do.
  • the DID document of the data sharing intermediary server registered in the blockchain network includes a first attribute value and a second attribute value
  • the first attribute value is DID information of the data owner terminal
  • the second attribute value may include DID information of the user terminal accessible to the shared data.
  • the first user terminal when the second user terminal requests the user data of the first user terminal to the data sharing intermediary server, the first user terminal is, Decrypting user data, generating a shared symmetric key and a random initial vector to be shared with the second user terminal, encrypting the decrypted user data using the shared symmetric key, the generated random initial vector and the The encrypted user data may be transmitted to the second user terminal.
  • the data sharing mediation server includes the second user terminal in the value of the second attribute of the DID document of the data sharing mediation server associated with the first user terminal registered in the blockchain network. check whether the DID information is registered, and allow access of the second user terminal when the DID information of the second user terminal is registered in the second attribute value, and the second user terminal,
  • a shared symmetric key may be generated by inquiring DID documents of the first user terminal and the second user terminal, and the encrypted user data may be decrypted using the generated shared symmetric key.
  • the sender and receiver can safely transmit and receive sensitive data while improving the problem of managing a vast amount of symmetric keys for sensitive data including user personal information in a blockchain network.
  • the sender and the receiver can transmit and receive sensitive data by sharing a secure symmetric key within the blockchain network.
  • the sender and the receiver can record only the index information of the key used for data sharing at any time. Pairs can be created for easy data sharing.
  • FIG. 1 is a diagram illustrating a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.
  • FIGS 2 and 3 are block diagrams showing the connection of blocks used in the block chain system.
  • FIG. 4 is a block diagram schematically illustrating a DID-based decentralized user data storage and sharing system according to the present invention.
  • FIG. 5 is a block diagram illustrating an operation of storing user data in a system for storing and sharing user data according to an embodiment of the present invention.
  • FIG. 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.
  • FIG. 7 is a diagram exemplarily illustrating a DID generation process of a data sharing intermediary server in a user data storage and sharing system according to an embodiment of the present invention.
  • FIG. 8 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
  • FIG. 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.
  • FIG. 10 is a block diagram illustrating an operation of sharing user data in a system for storing and sharing user data according to an embodiment of the present invention.
  • FIG. 11 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
  • FIG. 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.
  • FIG. 13 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
  • FIG. 14 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data 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.
  • the existing personal information and authentication information management method is centralized, and there are risks in terms of protection of personal privacy and inconvenience in the management and authentication process for the managed personal information and authentication information.
  • An alternative is needed. Therefore, research on self-sovereign identity service (SSI), which combines block chain and identity authentication, is being conducted at home and abroad, but the existing self-authentication method is done through an accredited certificate issued by a third party. have.
  • SSI self-sovereign identity service
  • DID Distributed Identifier
  • DID digital information
  • the DID service is being developed with a focus on registering personal information that can be disclosed on the block chain and specifying the personal use or scope of use when necessary.
  • these services focus only on proof of ownership and prevention of forgery, and it is necessary to store and share sensitive data for individuals based on DID.
  • DID means a unique identifier that can prove who you are by CRUD (Create, Read, Update, Delete) of information that can identify an individual centered on the user without a central authority.
  • DID acts as a pointer to the DID document of a blockchain transaction as a single key value.
  • the DID is an identifier generated based on the user's public key.
  • the DID document refers to a set necessary for an individual to authenticate himself or herself and prove association with the DID.
  • the object of DID CRUD execution is a DID document, which means information necessary for verification when using the DID service.
  • DID and DID document The relationship between DID and DID document is to search for DID in the block chain and create a DID document based on the transaction contents, and the method of reading the DID document based on the DID may be different for each block chain.
  • a symmetric key is shared between the sender and the receiver in advance, or the data is encrypted with the symmetric key and the symmetric key is encrypted with the public key of the receiver and delivered.
  • users have the burden of managing a vast amount of private and symmetric keys. Therefore, in the present invention, the problem of managing a vast amount of keys required for sharing user data is to be improved.
  • FIG. 1 is a diagram illustrating a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.
  • a distributed processing system 100 using a block chain 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 power, such as computers, mobile terminals, and dedicated electronic devices.
  • the decentralized network 100 can store and refer to information commonly known to all participating nodes in a connected bundle of blocks called blockchain.
  • the nodes 110-170 can communicate with each other and can be divided into a full node that stores, manages, and propagates the block chain and a light node that can simply participate in transactions. .
  • a node without a separate description in this specification, it often refers to a full node that participates in a distributed network and performs an operation to create, store, or verify a block chain, but is not limited thereto.
  • Each block connected to the block chain includes transaction details within a certain period, ie, transactions.
  • the nodes can manage transactions by creating, storing, or verifying the blockchain according to their respective roles.
  • the transaction may represent various types of transactions.
  • the transaction may correspond to a financial transaction for indicating the ownership status of cryptocurrency and its change.
  • the transaction may correspond to a physical transaction for indicating the ownership status of the object and its change.
  • the transaction may correspond to an information sharing process to represent the recording, storage and transfer of information. Nodes performing a transaction in the distributed network 100 may have a private key and a public key pair each cryptographically related.
  • FIGS 2 and 3 are block diagrams showing the connection of blocks used in the block chain system.
  • the block chain 200 is a kind of distributed database of one or more sequentially connected blocks 210 , 220 , 230 .
  • the block chain 200 is used to store and manage user's transaction details in the block chain system, and each node participating in the network of the block chain system creates a block and connects it to the block chain 200 .
  • 3 shows a limited number of blocks 210 , 220 , 230 , but the number of blocks that can be included in the block chain is not limited thereto.
  • Each block included in the block chain 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 blocks. 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.
  • 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 in a block.
  • the blockchain 200 may include one or more connected blocks.
  • the one or more blocks are connected 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 the same as the current hash 2213 included in the previous block 220 as a hash value of 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 a 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 falsify the contents of an already created block do.
  • the block body 213 may include a transaction list 2131 .
  • the transaction list 2131 is a list of blockchain-based transactions.
  • 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 the form of a tree, for example, the amount of money transmitted by user A to user B is recorded in the form of a list, and the storage length in the block is the value of the transaction included in the current block. It can be increased or decreased based on the number.
  • 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 a decentralized network have the same blockchain, and the same transactions are stored in blocks.
  • a block containing a list of transactions is shared on the network, so all participants can verify it.
  • the user data storage and sharing method described in the present invention is an algorithm executed in a computing device.
  • FIG. 4 is a block diagram schematically illustrating 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 system for storing and sharing user data 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 exemplarily illustrating a DID generation process of a data sharing intermediary server in a user data storage and sharing system according to an embodiment of the present invention.
  • FIG. 8 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data 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.
  • the user data storage and sharing system 300 includes a data sharing mediation server 310 , a first user terminal 321 , and a storage device 330 . is composed
  • 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 the network includes a plurality of It refers to a connection structure in which information exchange is possible between each node, such as terminals 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) network and the like, but the present invention is not limited thereto.
  • 3GPP 3rd Generation Partnership Project
  • LTE Long Term Evolution
  • 5GPP 5th Generation Partnership Project
  • WWX World Interoperability for Microwave Access
  • Internet Internet
  • LAN
  • the first user terminal 321 may be implemented as, for example, a computer that can access a remote server or terminal through a network.
  • the computer may include, for example, navigation, a laptop equipped with a web browser, a desktop, and a laptop.
  • the first user terminal 321 may be implemented as a terminal capable of accessing a remote server or terminal through a network.
  • a wireless communication device that guarantees portability and mobility, navigation, Personal Communication System (PCS), Global System for Mobile communications (GSM), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), and Personal Handyphone System (PDA) 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 It may include all kinds of handheld-based wireless communication devices such as a smartpad and a tablet PC.
  • PCS Personal Communication System
  • GSM Global System for Mobile communications
  • PDC Personal Digital Cellular
  • PHS Personal Handyphone System
  • PDA Personal Handyphone System
  • IMT International Mobile Telecommunication
  • CDMA Code Division Multiple Access
  • W-CDMA Wide-Code Division Multiple Access
  • Wibro Wireless Broadband Internet
  • the first user terminal 321 is a device that wants to encrypt the user data data_A and store it in the storage device 330, and the user data data_A may be data requiring privacy protection, such as sensitive personal information, for example. . Alternatively, the user data data_A may be verifiable credential (VC) data.
  • VC verifiable credential
  • the first user terminal 321 may share user data (data_A) with other user terminals through the instance service provided by the data sharing mediation server 310, and the instance service provided by the data sharing mediation server 310 is Each user terminal may have ownership. And, each instance service has a DID document, which is registered in the blockchain system.
  • the process in which the first user terminal 321 encrypts and stores the user data data_A in the storage device 330 is first performed in a state in which the DID and the DID document of the first user terminal 321 are registered in the block chain system. Create a DID and DID document of the data sharing mediation server 310 .
  • the attribute value capabilityInvocation means the DID set of the person who has the authority to utilize data
  • the property value capabilityDelegation means the DID set of the person who has the right to utilize the data and the set of the person authorized to register/delete users in capabilityInvocation.
  • 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 related to sharing of user data (data_A) (index is x-th key) is registered in the capabilityDelegation item.
  • the first user terminal 321 generates a child key using the key management system, and performs an operation algorithm of encrypting the user data (data_A).
  • the key management system includes a key management server 410 and the first to third database devices 420, 430, and 440.
  • the key management system recovers a private key and a public key pair. The algorithm will be described.
  • the key management server 410 generates a 128-bit random S1 code necessary for generating the master key, and transmits 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 are devices capable of storing information for key restoration. In addition, the first to third database devices 440 are physically separated from each other and store different data, respectively.
  • the first user terminal 321 generates a 256-bit random S2 code required to generate mnemonic code words, and transmits it to the second database device 430 through the key management server 410.
  • the S2 code is stored in the second database device 430 .
  • 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 .
  • 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.
  • the first user terminal 321 generates a master key using the master seed, and then 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 by using the master seed.
  • 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 for extracting the child key has a numeric value of 4 bytes (0 ⁇ 2 31 -1).
  • the first user terminal 321 sets a path for extracting the child key, and the path means a path for deriving the child key from the master key.
  • the path is set as follows by dividing the 128-bit (16-byte) S3 code into four 32-bit signed integers.
  • the first user terminal 321 extracts a child key from the HD wallet using a CKD (Child Key Derivation) function according to the set path. As a result of extraction of the child key of the first user terminal 321, a pair of a private key and a public key pair is generated.
  • CKD Child Key Derivation
  • the first user terminal 321 transmits its own S1 code, S2 code, and S3 code values to the first to third database devices 440 through the key management server 410 and stores them. Thereafter, the child key may be extracted using the S1 code, the S2 code, and the S3 code stored in the first to third database devices 440 , and a pair of a private key and a public key may be generated.
  • the first user terminal 321 may use an application for encrypting user data (data_A), and through the child key extraction algorithm described above with reference to FIG. 6 , the nth child key, which is key information of KeyAgreement of the DID document, is generated. do.
  • the nth child key includes a private key a and a public key a G.
  • the first user terminal 321 makes a request to store the encrypted user data (E_data_A) to the data sharing mediation server 310, and the data sharing mediation server 310 includes the first user terminal ( 321) is registered, and if the DID of the first user terminal 321 is registered, the data sharing intermediary server 310 transmits the encrypted data (E_data_A) to the storage device 330 in the following structure. Save.
  • the type of the storage device 330 is not limited in the present invention, and various types of storage devices such as cloud, local storage, and IPFS may be used.
  • 10 is a block diagram illustrating an operation of sharing user data in a system for storing and sharing user data according to an embodiment of the present invention.
  • 11 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data 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 system for storing and sharing user data according to an embodiment of the present invention.
  • 14 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
  • the user data storage and sharing system 300 is a data sharing mediation server 310, a first user terminal 321, a second user terminal 322, and a storage device 330 .
  • the second user terminal 322 provides its DID and the key index (y) to be used together to the first user terminal 321 , and requests sharing of the user data data_A of the first user.
  • the following is an example of the key index y provided by 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 intermediary server 310 of the block chain system after user authentication of the second user terminal 322 . At this time, it is registered in the capabilityInvocation attribute value to determine whether to use the user data data_A of the first user terminal 321 for the second user terminal 322 .
  • 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 n-th 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 through the child key extraction algorithm described above with reference to FIG. 5 , the nth key information of KeyAgreement of the DID document Create a child key.
  • the first user terminal 321 decrypts the encrypted user data E_data_A downloaded from the storage device 330 .
  • the first user terminal 321 inquires the nth public key of the second user terminal 322 .
  • the first user terminal 321 searches the did resolver for did:lit:USERB to inquire the DID document of the second user terminal 322 .
  • the first user terminal 321 inquires the value of the nth public key among the public keys of the second user terminal 322 (b ⁇ G).
  • the first user terminal 321 generates a symmetric key to be shared with the second user terminal 322 .
  • the DID documents of the first user terminal 321 and the second user terminal 322 are inquired to utilize key information of keyAgreement.
  • the shared symmetric key of the first user terminal 321 and the second user terminal 322 is obtained by using the n-th private key of the first user terminal 321 and the n-th public key of the second user terminal 322 (a) ⁇ bG), create a shared symmetric key (S_ab).
  • the first user terminal 321 generates a 16-byte random initial vector required for encryption (iv_ab).
  • the first user terminal 321 encrypts the user data data_A using the shared symmetric key S_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).
  • 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 block chain system. 2
  • the user terminal 322 is allowed to access. Specifically, the data sharing mediation server 310 checks whether the DID of the second user terminal 322 is registered in the capabilitiestiyInvocation attribute value of the DID document of the data sharing mediation server 310 associated with the first user terminal 321 . do.
  • the 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. Allows access to the data sharing mediation server 310 of the terminal 322 .
  • the second user terminal 322 also generates a shared symmetric key.
  • the DID documents of the first user terminal 321 and the second user terminal 322 are inquired to utilize key information of keyAgreement.
  • the shared symmetric key of 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 ⁇ G) is used to generate a shared symmetric key (S_ab).
  • 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.
  • 15 is a block diagram of a computing device of a node according to an embodiment of the present invention.
  • a computing device 1000 of a node 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, etc.) for transmitting and receiving signals with other components.
  • a connection path eg, a bus, etc.
  • the processor 1100 executes one or more instructions stored in the memory 1200, thereby executing the operation of the user data storage and sharing algorithm with reference to FIGS. 5 to 14 .
  • 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 the memory, and generates a transaction based on the collected information. Provides related information for at least one node.
  • the processor 1100 may further include a random access memory (RAM) and a read-only memory (ROM) for temporarily and/or permanently storing signals (or data) processed therein.
  • the processor 1100 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processing unit, a RAM, and a ROM.
  • SoC system on chip
  • the memory 1200 may store programs (one or more instructions) for processing and controlling the processor 1100 .
  • Programs stored in the memory 1200 may be divided into a plurality of modules according to functions.
  • 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 type of computer-readable recording medium well known in the art to which the present invention pertains.
  • RAM random access memory
  • ROM read only memory
  • EPROM erasable programmable ROM
  • EEPROM electrically erasable programmable ROM
  • flash memory hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.
  • the 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 components, and similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors.

Abstract

A DID-based decentralized system for storing and sharing user data is provided. The system for storing and sharing user data comprises: a data sharing brokerage server; a first user terminal; and a storage device, wherein the data sharing brokerage server links with a blockchain network and inquires about DID information registered in the blockchain network, the first user terminal registers or deletes DID information for establishing an access right to user data in a DID document of the data sharing brokerage server which is registered in the blockchain network, and transmits encrypted user data, key index information, and initial vector information to the data sharing brokerage server, and the storage device receives, from the data sharing brokerage server, and stores the encrypted user data, the key index information, and the initial vector information.

Description

DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템DID-based decentralized user data storage and sharing system
본 발명은 DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템에 관한 것이다. 더욱 상세하게는, 탈중앙화된 개인키 복구 서비스를 통해 보안성을 강화하고, DID 환경에서 필요한 방대한 양의 키 쌍에 대한 키 백업 및 관리 문제를 개선하고, 사용자의 민감한 데이터를 공유할 수 있는 사용자 데이터 저장 및 공유 시스템에 관한 것이다.The present invention relates to a DID-based decentralized 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 issues for the vast amount of key pairs required in a DID environment, and share users’ sensitive data It relates to data storage and sharing systems.
블록체인(blockchain)은 네트워크에 참여하는 모든 사용자가 관리 대상이 되는 모든 데이터를 분산하여 저장하는 데이터 분산처리기술을 의미한다. 거래 정보가 담긴 원장을 거래 주체나 특정 기관에서 보유하는 것이 아니라 네트워크 참여자 모두가 나누어 가지는 기술이라는 점에서 '분산원장기술(DLT:Distributed Ledger Technology)' 또는 '공공거래장부'라고도 한다. 블록체인은 거래 내용이 담긴 블록(block)을 사슬처럼 연결(chain)한 것이라 하여 붙여진 명칭이다. 이러한 블록체인은 거래 내용의 위변조와 같은 해킹을 막기 위한 기술이며, 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. Blockchain refers to a data distribution processing technology that distributes and stores all data that is 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 not owned by the transaction subject or a specific institution, but is a technology shared by all network participants. Blockchain is a name given to the fact that blocks containing transaction contents are linked like a chain. This block chain is a technology to prevent hacking such as forgery and forgery of transaction contents, and it uses a method to prevent data forgery by sending transaction details to all users participating in the transaction and collating them for each transaction.
블록체인은 금융기관에서 모든 거래를 담보하고 관리하는 기존의 금융 시스템에서 벗어나 P2P(Peer to Peer;개인 대 개인) 거래를 지향하는, 탈중앙화를 핵심 개념으로 한다. P2P란 서버나 클라이언트 없이 개인 컴퓨터 사이를 연결하는 통신망을 말하며, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하게 된다. 이러한 환경은 중개자 없이 P2P로 편리하게 계약을 체결하고 수정할 수 있는 스마트 컨트랙트를 실현 가능하게 한다.Blockchain is a core concept of decentralization, which aims for P2P (Peer to Peer) transactions, away from the existing financial system that secures and manages all transactions in financial institutions. P2P refers to a communication network that connects personal computers without a server or client, and each connected computer acts as a server and client and shares 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 with P2P without intermediaries.
기존 금융 시스템에서는 금융회사들이 중앙 서버에 거래 기록을 보관해 온 반면, P2P 방식을 기반으로 하는 블록체인에서는 거래 정보를 블록에 담아 차례대로 연결하고 이를 모든 참여자가 공유하여 거래 정보의 위변조를 방지할 수 있다.In the existing financial system, financial companies have kept transaction records in a central server, whereas in a blockchain based on the P2P method, transaction information is stored in blocks and connected in turn, and it is shared by all participants to prevent forgery and falsification of transaction information. can
본 발명이 해결하고자 하는 기술적 과제는, 블록체인 네트워크 내에서 데이터 공유를 위한 방대한 양의 개인키, 대칭키를 관리해야 하는 문제를 개선할 수 있는 사용자 데이터 저장 및 공유 시스템을 제공하는 것이다. 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 vast amount of private 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 may be variously expanded without departing from the technical spirit and scope of the present invention.
상기 과제를 해결하기 위한 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템은, 데이터 공유 중개 서버, 제1 사용자 단말, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, 블록체인 네트워크와 연동되어 상기 블록체인 네트워크에 등록된 DID 정보들을 조회하는 데이터 공유 중개 서버, 상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서 내에 사용자 데이터에 대한 접근권한 설정을 위한 DID 정보를 등록 또는 삭제하고, 암호화된 사용자 데이터와, 키 인덱스 정보와, 이니셜 벡터 정보를 상기 데이터 공유 중개 서버로 전달하는 제1 사용자 단말, 및 상기 데이터 공유 중개 서버로부터 상기 암호화된 사용자 데이터와, 상기 키 인덱스 정보와, 상기 이니셜 벡터 정보를 전달받아 저장하는 스토리지 장치를 포함하고, 상기 제1 사용자 단말과 다른 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여한다.A 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 data sharing mediation server, a first user terminal, and a storage device, and interworking with a blockchain network Registers or deletes DID information for setting access rights to user data in the DID document of the data sharing mediation server registered in the blockchain network and the data sharing mediation server registered in the blockchain network to inquire about DID information registered in the blockchain network, , a first user terminal for transmitting encrypted user data, key index information, and initial vector information to the data sharing mediation server, and the encrypted user data from the data sharing mediation server, the key index information, and the and a storage device for receiving and storing initial vector information, wherein when a second user terminal different from the first user terminal requests user data of the first user terminal from the data sharing intermediary server, the first user terminal registers the DID information of the second user terminal in the DID document of the data sharing mediation server registered in the blockchain network, and grants the second user terminal access to the user data of the first user terminal do.
본 발명에 따른 몇몇 실시예에서, 상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서는 제1 속성값 및 제2 속성값을 포함하고, 상기 제1 속성값은 데이터 소유자 단말의 DID 정보를 포함하고, 상기 제2 속성값은 공유 데이터에 접근가능한 사용자 단말의 DID 정보를 포함할 수 있다. In some embodiments according to the present invention, the DID document of the data sharing intermediary server registered in the blockchain network includes a first attribute value and a second attribute value, and the first attribute value is DID information of the data owner terminal Including, the second attribute value may include DID information of the user terminal accessible to the shared data.
본 발명에 따른 몇몇 실시예에서, 상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터를 요청하는 경우, 상기 제1 사용자 단말은, 상기 스토리지 장치로부터 다운로드한 상기 암호화된 사용자 데이터를 복호화하고, 상기 제2 사용자 단말과 공유할 공유 대칭키와 랜덤한 이니셜 벡터를 생성하고, 상기 공유 대칭키를 이용하여 복호화된 사용자 데이터를 암호화하고, 상기 생성된 랜덤한 이니셜 벡터와 상기 암호화된 사용자 데이터를 제2 사용자 단말로 전달할 수 있다. In some embodiments according to the present invention, when the second user terminal requests the user data of the first user terminal to the data sharing intermediary server, the first user terminal is, Decrypting user data, generating a shared symmetric key and a random initial vector to be shared with the second user terminal, encrypting the decrypted user data using the shared symmetric key, the generated random initial vector and the The encrypted user data may be transmitted to the second user terminal.
본 발명에 따른 몇몇 실시예에서, 상기 데이터 공유 중개 서버는, 상기 블록체인 네트워크에 등록된 상기 제1 사용자 단말과 연관된 상기 데이터 공유 중개 서버의 DID 문서의 상기 제2 속성값에 상기 제2 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제2 속성값에 상기 제2 사용자 단말의 DID 정보가 등록되어 있는 경우에 상기 제2 사용자 단말의 접근을 허용하고, 상기 제2 사용자 단말은, 상기 제1 사용자 단말 및 상기 제2 사용자 단말의 DID 문서를 조회하여 공유 대칭키를 생성하고, 상기 생성된 공유 대칭키를 이용하여 상기 암호화된 사용자 데이터를 복호화할 수 있다. In some embodiments according to the present invention, the data sharing mediation server includes the second user terminal in the value of the second attribute of the DID document of the data sharing mediation server associated with the first user terminal registered in the blockchain network. check whether the DID information is registered, and allow access of the second user terminal when the DID information of the second user terminal is registered in the second attribute value, and the second user terminal, A shared symmetric key may be generated by inquiring DID documents of the first user terminal and the second user terminal, and the encrypted user data may be decrypted using the generated shared symmetric key.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
본 발명에 따르면, 블록체인 네트워크 내에서 사용자의 개인정보 등이 포함된 민감한 데이터에 관해 방대한 양의 대칭키를 관리해야 하는 문제를 개선하면서 송신자와 수신자는 안전하게 민감한 데이터를 송수신할 수 있다. According to the present invention, the sender and receiver can safely transmit and receive sensitive data while improving the problem of managing a vast amount of symmetric keys for sensitive data including user personal information in a blockchain network.
또한, 본 발명에 따르면, 블록체인 네트워크 내에서 송신자와 수신자는 안전한 대칭키를 공유하여 민감한 데이터들을 송수신할 수 있다. In addition, according to the present invention, the sender and the receiver can transmit and receive sensitive data by sharing a secure symmetric key within the blockchain network.
또한, 본 발명에 따르면, 블록체인 네트워크 내에서 대칭키를 생성하기 위해 필요한 공개키, 개인키와 관련하여, 송신자와 수신자는 데이터 공유에 사용된 키의 인덱스 정보만 기록하면 언제든 공개키, 개인키 쌍을 생성할 수 있어 간편하게 데이터 공유가 가능하다.In addition, according to the present invention, with respect to the public and private keys required to generate a symmetric key within the blockchain network, the sender and the receiver can record only the index information of the key used for data sharing at any time. Pairs can be created for easy data sharing.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.However, the effects of the present invention are not limited to the above effects, and may be variously expanded without departing from the spirit and scope of the present invention.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록체인을 이용한 분산처리 시스템을 도시한 도면이다.1 is a diagram illustrating a distributed processing system using a block chain to which the technical idea according to the present invention can be applied.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams showing the connection of blocks used in the block chain system.
도 4는 본 발명에 따른 DID 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템을 개략적으로 도시한 블록도이다. 4 is a block diagram schematically illustrating a DID-based decentralized user data storage and sharing system according to the present invention.
도 5는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 저장하는 동작을 나타낸 블록도이다. 5 is a block diagram illustrating an operation of storing user data in a system for storing and sharing user data according to an embodiment of the present invention.
도 6은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에 포함되는 키 관리 시스템에서 자식키를 생성 및 백업하는 동작을 나타낸 블록도이다. 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은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 생성 과정을 예시적으로 도시한 도면이다.7 is a diagram exemplarily illustrating a DID generation process of a data sharing intermediary server in a user data storage and sharing system according to an embodiment of the present invention.
도 8은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 8 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
도 9는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다. 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은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 사용자 데이터를 공유하는 동작을 나타낸 블록도이다.10 is a block diagram illustrating an operation of sharing user data in a system for storing and sharing user data according to an embodiment of the present invention.
도 11은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 11 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
도 12는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 데이터 공유 중개 서버의 DID 문서를 예시적으로 도시한 도면이다. 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은 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제1 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 13 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
도 14는 본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템에서 제2 사용자 단말의 DID 문서를 예시적으로 도시한 도면이다. 14 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data according to an embodiment of the present invention.
도 15는 본 발명의 실시예에 따른 노드의 컴퓨팅 장치의 구성도이다.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 apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be embodied in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing the embodiments, and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” refers to the presence of one or more other components, steps, operations and/or elements mentioned. or addition is not excluded.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly specifically defined.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same components in the drawings, and repeated 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 protection of personal privacy and inconvenience in the management and authentication process for the managed personal information and authentication information. An alternative is needed. Therefore, research on self-sovereign identity service (SSI), which combines block chain and identity authentication, is being conducted at home and abroad, but the existing self-authentication method is done through an accredited certificate issued by a third party. have.
하지만, 본인인증을 제3의 기관을 통해서 이루어지는 것에 대해 의문이 제기되면서 DID(Decentralized Identifier; 분산 식별자)의 필요성이 등장하게 되었다. 블록체인의 암호학적 특성을 활용하면 중앙기관의 관여 없이 본인을 증명하는 유일한 분산 식별자(DID)를 통해 개인 신원을 증명하는 것이 가능하다. DID를 이용하여 개인 신원 증명 시 개인키를 기반으로 DID 등록, 전자서명 등이 수행되므로 개인키를 안전하게 보관하는 방안도 필요하게 된다. However, the need for DID (Decentralized Identifier) has emerged as questions have been raised as to whether identity authentication is performed through a third party. By utilizing the cryptographic nature of the blockchain, it is possible to prove an individual's identity through a unique Distributed Identifier (DID) that proves himself/herself without the involvement of a central authority. When using DID to prove personal identity, DID registration and digital signature are performed based on the private key, so it is also necessary to safely store the private key.
현재 DID 서비스는 공개할 수 있는 개인정보를 블록체인 상에 등록하고, 필요할 때 개인의 용도나 사용범위를 지정해서 사용하는 것에 중점을 두고 서비스 개발이 이루어지고 있다. 하지만, 이런 서비스는 소유 증명, 위변조 방지에만 초점을 두고 있으며, 개인이 공유하기에 민감한 데이터들을 DID 기반으로 저장 및 공유하는 방안이 필요하다. Currently, the DID service is being developed with a focus on registering personal information that can be disclosed on the block chain and specifying the personal use or scope of use when necessary. However, these services focus only on proof of ownership and prevention of forgery, and it is necessary to store and share sensitive data for individuals based on DID.
이하에서는 우선, DID와 DID 문서에 대한 개념에 대해 설명하기로 한다. Hereinafter, the concept of a DID and a DID document will be described first.
DID란, 중앙기관 없이 사용자를 중심으로 개인을 식별할 수 있는 정보를 CRUD(Create, Read, Update, Delete)하여 본인임을 증명할 수 있는 유일한 식별자를 의미한다. DID는 하나의 키 값으로 블록체인 트랜잭션의 DID 문서를 가리키는 포인터 역할을 수행한다. 특히, DID는 사용자의 공개키를 기반으로 생성된 식별자이다. DID means a unique identifier that can prove who you are by CRUD (Create, Read, Update, Delete) of information that can identify an individual centered on the user without a central authority. DID acts as a pointer to the DID document of a blockchain transaction as a single key value. In particular, the DID is an identifier generated based on the user's public key.
DID 문서란, 개인이 자신을 인증하고 DID와 연관성을 증명하는데 필요한 집합을 의미한다. DID의 CRUD 수행 대상이 DID 문서이며, DID 서비스 이용 시 검증하는데 필요한 정보들을 의미하며 데이터 집합에는 공개키, 인증 방법, 전자서명 값 등의 속성들이 존재한다. The DID document refers to a set necessary for an individual to authenticate himself or herself and prove association with the DID. The object of DID CRUD execution is a DID document, which means information necessary for verification when using the DID service. There are properties 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 for DID in the block chain and create a DID document based on the transaction contents, and the method of reading the DID document based on the DID may be different for each block chain.
DID를 이용하여 사용자의 민감한 데이터 공유를 위해 송신자와 수신자 사이에 사전에 대칭키를 공유하거나, 대칭키로 데이터를 암호화하고 대칭키는 수신자의 공개키로 암호화하여 전달하는 방식을 이용하였으나, 상술한 두가지 방식 모두 사용자가 방대한 양의 개인키, 대칭키를 관리해야 하는 부담이 있다. 따라서, 본 발명에서는 사용자 데이터 공유를 위해 필요한 방대한 양의 키 관리 문제점을 개선하고자 한다. In order to share user's sensitive data using DID, a symmetric key is shared between the sender and the receiver in advance, or the data is encrypted with the symmetric key and the symmetric key is encrypted with the public key of the receiver and delivered. In both cases, users have the burden of managing a vast amount of private and symmetric keys. Therefore, in the present invention, the problem of managing a vast amount of keys required for sharing user data is to be improved.
이하에서는 본 발명의 개념이 적용될 수 있는 블록체인을 이용한 분산처리 시스템에 관해 설명하기로 한다. 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 illustrating 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 block chain 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 power, such as computers, mobile terminals, and dedicated electronic devices.
일반적으로 분산형 네트워크(100)는 블록체인이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다. In general, the decentralized network 100 can store and refer to information commonly known to all participating nodes in a connected bundle of blocks called blockchain. The nodes 110-170 can communicate with each other and can be divided into a full node that stores, manages, and propagates the block chain and a light node that can simply participate in transactions. . When referring to a node without a separate description in this specification, it often refers to a full node that participates in a distributed network and performs an operation to create, store, or verify a block chain, but is not limited thereto.
상기 블록체인에 연결되어 있는 각 블록들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.Each block connected to the block chain includes transaction details within a certain period, ie, transactions. The nodes can manage transactions by creating, storing, or verifying the blockchain according to their respective roles.
실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 암호화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 또 다른 실시예에서 상기 트랜잭션은 정보의 기록, 저장 및 이송을 나타내기 위한 정보 공유 과정에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.According to an embodiment, the transaction may represent various types of transactions. In one embodiment, the transaction may correspond to a financial transaction for indicating the ownership status of cryptocurrency and its change. In another embodiment, the transaction may correspond to a physical transaction for indicating the ownership status of the 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 a transaction in the distributed network 100 may have a private key and a public key pair each cryptographically related.
도 2 및 도 3은 블록체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.2 and 3 are block diagrams showing the connection of blocks used in the block chain system.
도 2를 참조하면 블록체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록체인(200)은 블록체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록체인(200)에 연결한다. 도 3에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.Referring to FIG. 2 , the block chain 200 is a kind of distributed database of one or more sequentially connected blocks 210 , 220 , 230 . The block chain 200 is used to store and manage user's transaction details in the block chain system, and each node participating in the network of the block chain system creates a block and connects it to the block chain 200 . 3 shows a limited number of blocks 210 , 220 , 230 , but the number of blocks that can be included in the block chain is not limited thereto.
상기 블록체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.Each block included in the block chain 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 blocks. 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 in 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 connected 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 the same as the current hash 2213 included in the previous block 220 as a hash value of 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 a 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 falsify 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 the form of a tree, for example, the amount of money transmitted by user A to user B is recorded in the form of a list, and the storage length in the block is the value of the transaction included in the current block. It can be increased or decreased based on the number.
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다. In addition, 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 a decentralized network have the same blockchain, and the same transactions are stored in blocks. A block containing a list of transactions is shared on the network, so 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 block diagram schematically illustrating 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 system for storing and sharing user data 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 exemplarily illustrating a DID generation process of a data sharing intermediary server in a user data storage and sharing system according to an embodiment of the present invention. 8 is a diagram exemplarily illustrating a DID document of a first user terminal in a system for storing and sharing user data 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 . is composed
본 발명의 실시예에 따른 사용자 데이터 저장 및 공유 시스템(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 the network includes a plurality of It refers to a connection structure in which information exchange is possible between each node, such as terminals 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) network and the like, but the present invention is not limited thereto.
제1 사용자 단말(321)은 예를 들어, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.The first user terminal 321 may be implemented as, for example, a computer that can access a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser, a desktop, and a 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) 기반의 무선 통신 장치를 포함할 수 있다.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 guarantees portability and mobility, navigation, Personal Communication System (PCS), Global System for Mobile communications (GSM), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), and Personal Handyphone System (PDA) 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 It may include all kinds of handheld-based wireless communication devices such as a smartpad and a tablet PC.
제1 사용자 단말(321)은 사용자 데이터(data_A)를 암호화하여 스토리지 장치(330)에 저장하고자 하는 장치이며, 사용자 데이터(data_A)는 예를 들어, 민감한 개인정보 등 프라이버시 보호가 필요한 데이터일 수 있다. 또는, 사용자 데이터(data_A)는 검증가능한 자격증명(VC; Verifiable Credential) 데이터일 수 있다. The first user terminal 321 is a device that wants to encrypt the user data data_A and store it in the storage device 330, and the user data data_A may be data requiring privacy protection, such as sensitive personal information, for example. . 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 other user terminals through the instance service provided by the data sharing mediation server 310, and the instance service provided by the data sharing mediation server 310 is 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 in which the first user terminal 321 encrypts and stores the user data data_A in the storage device 330 is first performed in a state in which the DID and the DID document of the first user terminal 321 are registered in the block chain system. Create a DID and DID document of the data sharing mediation server 310 .
제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 DID set of the person who has the authority to utilize data, and the property value capabilityDelegation means the DID set of the person who has the right to utilize the data and the set of the person authorized 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 intermediary 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 related to sharing of user data (data_A) (index is x-th key) is registered in the capabilityDelegation item.
그리고, 제1 사용자 단말(321)은 키 관리 시스템을 이용하여 자식키를 생성하고, 사용자 데이터(data_A)를 암호화하는 동작 알고리즘을 수행한다. Then, the first user terminal 321 generates a child key using the key management system, and performs an operation algorithm of encrypting the user data (data_A).
키 관리 시스템은 키 관리 서버(410)와 제1 내지 제3 데이터베이스 장치(420, 430, 440)를 포함하며, 우선 도 6을 참조하여, 키 관리 시스템을 통해 개인키 및 공개키 쌍을 복구하는 알고리즘에 대해 설명하기로 한다. The key management system includes a key management server 410 and the first to third database devices 420, 430, and 440. First, referring to FIG. 6, the key management system recovers a private key and a public key pair. The algorithm will be described.
키 관리 서버(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 the master key, and transmits 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 are devices capable of storing information for key restoration. In addition, the first to third database devices 440 are physically separated from each other and store different data, respectively.
제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 transmits 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)에 저장한다. In addition, 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)은 상기 마스터 시드를 이용하여 마스터 개인키, 마스터 공개키를 생성한다. The first user terminal 321 generates a master key using the master seed, and then 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 by 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 for extracting the child key has a numeric value of 4 bytes (0 ~ 2 31 -1).
그리고, 제1 사용자 단말(321)은 자식키 추출을 위한 패스(path)를 설정하는데, 상기 패스(path)는 마스터키에서 자식키를 유도하기 위한 경로를 의미한다. 상기 패스(path)는 128bit(16byte)의 S3 코드를 32bit의 4개의 부호화 정수(signed integer)로 분할하여 다음과 같이 설정한다. Then, the first user terminal 321 sets a path for extracting the child key, and the path means a path for deriving the child key from the master key. The path is set as follows by dividing the 128-bit (16-byte) S3 code into four 32-bit signed integers.
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 CKD (Child Key Derivation) function according to the set path. As a result of extraction of the child key of the first user terminal 321, a pair of a private key and a public key pair is generated.
제1 사용자 단말(321)은 자신의 S1 코드, S2 코드, S3 코드 값을 키 관리 서버(410)를 통해 각각 제1 내지 제3 데이터베이스 장치(440)로 전달하여 저장한다. 추후에는 제1 내지 제3 데이터베이스 장치(440)에 저장된 S1 코드, S2 코드, S3 코드를 이용하여 자식키를 추출하고, 한 쌍의 개인키 및 공개키 쌍을 생성할 수 있다. The first user terminal 321 transmits its own S1 code, S2 code, and S3 code values to the first to third database devices 440 through the key management server 410 and stores them. Thereafter, the child key may be extracted using the S1 code, the S2 code, and the S3 code stored in the first to third database devices 440 , and a pair of a private key and a public key 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 through the child key extraction algorithm described above with reference to FIG. 6 , the nth child key, which is key information of KeyAgreement of the DID document, is generated. 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). Then, 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 the 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 request to store the encrypted user data (E_data_A) to the data sharing mediation server 310, and the data sharing mediation server 310 includes the first user terminal ( 321) is registered, and if the DID of the first user terminal 321 is registered, the data sharing intermediary server 310 transmits the encrypted data (E_data_A) to the storage device 330 in the following structure. Save.
header(20byte)header(20byte) datadata
자식키 index(4byte)child key index(4byte) initial vector(16byte)initial vector(16byte) 암호화된 민감 데이터Encrypted sensitive data
nn iv_aiv_a Ciphertext_aCiphertext_a
스토리지 장치(330)의 종류는 본 발명에서 제한하지 않으며, 클라우드, 로컬 스토리지, IPFS 등 다양한 형태의 스토리지 장치가 이용될 수 있다. The type of the storage device 330 is not limited in the present invention, and various types of storage devices such as cloud, 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 system for storing and sharing user data according to an embodiment of the present invention. 11 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data 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 system for storing and sharing user data according to an embodiment of the present invention. 14 is a diagram exemplarily illustrating a DID document of a second user terminal in a system for storing and sharing user data 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 is a data sharing mediation server 310, a first user terminal 321, a second user terminal 322, and a storage device 330 .
제2 사용자 단말(322)은 자신의 DID 및 사용할 키 인덱스(y)를 함께 제1 사용자 단말(321)로 제공하며, 제1 사용자의 사용자 데이터(data_A)의 공유를 요청한다. 아래는 제2 사용자 단말(322)이 제공하는 키 인덱스(y)의 예시이다.The second user terminal 322 provides its DID and the key index (y) to be used together to the first user terminal 321 , and requests sharing of the user data data_A of the first user. The following 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 속성값에 등록한다.The first user terminal 321 registers the DID of the second user terminal 322 in the DID document of the data sharing intermediary server 310 of the block chain system after user authentication of the second user terminal 322 . At this time, it is registered in the capabilityInvocation attribute value to determine whether to use the user data data_A of the first user terminal 321 for the second user terminal 322 .
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 n-th 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 through the child key extraction algorithm described above with reference to FIG. 5 , the nth key information of KeyAgreement of the DID document Create a child key.
제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 inquires the nth public key of the second user terminal 322 . The first user terminal 321 searches the did resolver for did:lit:USERB to inquire the DID document of the second user terminal 322 . The first user terminal 321 inquires the value of the nth public key 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 . In this case, the DID documents of the first user terminal 321 and the second user terminal 322 are inquired to utilize key information of keyAgreement.
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 of the first user terminal 321 and the second user terminal 322 is obtained by using the n-th private key of the first user terminal 321 and the n-th public key of the second user terminal 322 (a) · bG), create a shared symmetric key (S_ab).
제1 사용자 단말(321)은 암호화에 필요한 랜덤한 16byte의 이니셜 벡터를 생성한다(iv_ab). 제1 사용자 단말(321)은 공유 대칭키(S_ab)를 이용하여 사용자 데이터(data_A)를 암호화한다. The first user terminal 321 generates a 16-byte random initial vector required 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 block chain system. 2 The user terminal 322 is allowed to access. 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. The 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. Allows access to the data sharing mediation server 310 of the terminal 322 .
그리고, 제2 사용자 단말(322)도 공유 대칭키를 생성한다. 이때, 제1 사용자 단말(321)과 제2 사용자 단말(322)의 DID 문서를 조회하여 keyAgreement의 키 정보를 활용한다. And, the second user terminal 322 also generates a shared symmetric key. In this case, the DID documents of the first user terminal 321 and the second user terminal 322 are inquired to utilize key information of keyAgreement.
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 of 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· G) is used to generate a shared symmetric key (S_ab).
제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 block 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, etc.) for transmitting and receiving signals with other components.
일 실시예에 따른 프로세서(1100)는 메모리(1200)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 5 내지 도 14와 관련하여 사용자 데이터 저장 및 공유 알고리즘의 동작을 실행한다. The processor 1100 according to an embodiment executes one or more instructions stored in the memory 1200, thereby executing the operation of the user data storage and sharing algorithm with reference to FIGS. 5 to 14 .
예를 들어, 프로세서(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 the memory, and generates a transaction based on the collected information. Provides related information for 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 a random access memory (RAM) and a 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 graphic processing unit, a RAM, and a ROM.
메모리(1200)에는 프로세서(1100)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(1200)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 1200 may store programs (one or more instructions) for processing and controlling 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, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The operations of the system described in relation to the embodiments of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by 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 type of computer-readable recording medium well known in the art to which the present invention pertains.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.The 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 components, and similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors.
전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 청구범위에 의해 나타내어질 것이다. 그리고 이 청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is to be understood that the above-described embodiments are illustrative in all respects and not restrictive, the scope of the present invention being indicated by the following claims rather than by the foregoing detailed description. And it should be construed that all changes and modifications derived from the meaning and scope of the claims as well as equivalent concepts are included in the scope of the present invention.

Claims (4)

  1. 데이터 공유 중개 서버, 제1 사용자 단말, 및 스토리지 장치를 포함하는 사용자 데이터 저장 및 공유 시스템으로서, A user data storage and sharing system comprising a data sharing intermediary server, a first user terminal, and a storage device,
    블록체인 네트워크와 연동되어 상기 블록체인 네트워크에 등록된 DID 정보들을 조회하는 데이터 공유 중개 서버;a data sharing mediation server that interworks with the blockchain network to inquire DID information registered in the blockchain network;
    상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서 내에 사용자 데이터에 대한 접근권한 설정을 위한 DID 정보를 등록 또는 삭제하고, 암호화된 사용자 데이터와, 키 인덱스 정보와, 이니셜 벡터 정보를 상기 데이터 공유 중개 서버로 전달하는 제1 사용자 단말; 및Registers or deletes DID information for setting access rights to user data in the DID document of the data sharing intermediary server registered in the blockchain network, and stores encrypted user data, key index information, and initial vector information in the data A first user terminal for forwarding to a shared mediation server; and
    상기 데이터 공유 중개 서버로부터 상기 암호화된 사용자 데이터와, 상기 키 인덱스 정보와, 상기 이니셜 벡터 정보를 전달받아 저장하는 스토리지 장치;를 포함하고, a storage device for receiving and storing the encrypted user data, the key index information, and the initial vector information from the data sharing mediation server;
    상기 제1 사용자 단말과 다른 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터를 요청하는 경우, 상기 제1 사용자 단말은 상기 제2 사용자 단말의 DID 정보를 상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서에 등록하고, 상기 제2 사용자 단말에 대해 상기 제1 사용자 단말의 사용자 데이터에 대한 접근권한을 부여하는, 사용자 데이터 저장 및 공유 시스템.When a second user terminal different from the first user terminal requests user data of the first user terminal to the data sharing intermediary server, the first user terminal transmits the DID information of the second user terminal to the block chain network Registering in the DID document of the data sharing intermediary server registered in, and granting access to the user data of the first user terminal to the second user terminal, user data storage and sharing system.
  2. 제 1항에 있어서,The method of claim 1,
    상기 블록체인 네트워크에 등록된 상기 데이터 공유 중개 서버의 DID 문서는 제1 속성값 및 제2 속성값을 포함하고, The DID document of the data sharing mediation server registered in the blockchain network includes a first attribute value and a second attribute value,
    상기 제1 속성값은 데이터 소유자 단말의 DID 정보를 포함하고,The first attribute value includes DID information of the data owner terminal,
    상기 제2 속성값은 공유 데이터에 접근가능한 사용자 단말의 DID 정보를 포함하는, 사용자 데이터 저장 및 공유 시스템.The second attribute value includes the DID information of the user terminal accessible to the shared data, user data storage and sharing system.
  3. 제 2항에 있어서,3. The method of claim 2,
    상기 제2 사용자 단말이 상기 데이터 공유 중개 서버로 상기 제1 사용자 단말의 사용자 데이터를 요청하는 경우,When the second user terminal requests the user data of the first user terminal to the data sharing intermediary server,
    상기 제1 사용자 단말은, The first user terminal,
    상기 스토리지 장치로부터 다운로드한 상기 암호화된 사용자 데이터를 복호화하고, 상기 제2 사용자 단말과 공유할 공유 대칭키와 랜덤한 이니셜 벡터를 생성하고, 상기 공유 대칭키를 이용하여 복호화된 사용자 데이터를 암호화하고, 상기 생성된 랜덤한 이니셜 벡터와 상기 암호화된 사용자 데이터를 제2 사용자 단말로 전달하는, 사용자 데이터 저장 및 공유 시스템.decrypts the encrypted user data downloaded from the storage device, generates a shared symmetric key and a random initial vector to be shared with the second user terminal, and encrypts the decrypted user data using the shared symmetric key, A user data storage and sharing system for transferring the generated random initial vector and the encrypted user data to a second user terminal.
  4. 제 3항에 있어서,4. The method of claim 3,
    상기 데이터 공유 중개 서버는, The data sharing mediation server,
    상기 블록체인 네트워크에 등록된 상기 제1 사용자 단말과 연관된 상기 데이터 공유 중개 서버의 DID 문서의 상기 제2 속성값에 상기 제2 사용자 단말의 DID 정보가 등록되어 있는지 여부를 확인하고, 상기 제2 속성값에 상기 제2 사용자 단말의 DID 정보가 등록되어 있는 경우에 상기 제2 사용자 단말의 접근을 허용하고, Check whether the DID information of the second user terminal is registered in the second attribute value of the DID document of the data sharing mediation server associated with the first user terminal registered in the blockchain network, and the second attribute When the DID information of the second user terminal is registered in the value, the access of the second user terminal is allowed,
    상기 제2 사용자 단말은, The second user terminal,
    상기 제1 사용자 단말 및 상기 제2 사용자 단말의 DID 문서를 조회하여 공유 대칭키를 생성하고, 상기 생성된 공유 대칭키를 이용하여 상기 암호화된 사용자 데이터를 복호화하는, 사용자 데이터 저장 및 공유 시스템.A system for storing and sharing user data, generating a shared symmetric key by inquiring DID documents of the first user terminal and the second user terminal, and decrypting the encrypted user data using the generated shared symmetric key.
PCT/KR2022/001539 2021-02-22 2022-01-28 Did-based decentralized system for storing and sharing user data WO2022177204A1 (en)

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
KR10-2021-0023716 2021-02-22

Publications (1)

Publication Number Publication Date
WO2022177204A1 true WO2022177204A1 (en) 2022-08-25

Family

ID=82930918

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/001539 WO2022177204A1 (en) 2021-02-22 2022-01-28 Did-based decentralized system for storing and sharing user data

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115801815A (en) * 2023-02-03 2023-03-14 安徽中科晶格技术有限公司 Block chain-based plant growth condition sharing method and device and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515367B1 (en) * 2023-01-20 2023-03-30 주식회사 그래파이 Blockchain-based data sharing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070051314A (en) * 2004-08-09 2007-05-17 컴캐스트 케이블 홀딩스, 엘엘씨 System and method for reduced hierarchy key management
US20200242221A1 (en) * 2019-07-02 2020-07-30 Alibaba Group Holding Limited System and method for mapping decentralized identifiers to real-world entities
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
KR20210007844A (en) * 2019-07-11 2021-01-20 주식회사 코인플러그 Method for providing relational decentralized identifier service and blockchain node using them

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857223B1 (en) 2017-11-13 2018-05-11 주식회사 온더 Method and system for user identification based block chain token

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070051314A (en) * 2004-08-09 2007-05-17 컴캐스트 케이블 홀딩스, 엘엘씨 System and method for reduced hierarchy key management
US20200242221A1 (en) * 2019-07-02 2020-07-30 Alibaba Group Holding Limited System and method for mapping decentralized identifiers to real-world entities
KR20210007844A (en) * 2019-07-11 2021-01-20 주식회사 코인플러그 Method for providing relational decentralized identifier service and blockchain node using them
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115801815A (en) * 2023-02-03 2023-03-14 安徽中科晶格技术有限公司 Block chain-based plant growth condition sharing method and device and storage medium
CN115801815B (en) * 2023-02-03 2023-05-05 安徽中科晶格技术有限公司 Plant growth status sharing method and device based on blockchain and storage medium

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2019083082A1 (en) Ksi-based authentication and communication method for safe smart home environment, and system therefor
CN108418680B (en) Block chain key recovery method and medium based on secure multi-party computing technology
WO2017119564A1 (en) Secure information transmitting system and method for personal identity authentication
WO2019124610A1 (en) Authentication method using separation, then distributed storage and combination of personal information using blockchain
WO2022177204A1 (en) Did-based decentralized system for storing and sharing user data
WO2019132272A1 (en) Id as blockchain based service
WO2019125041A1 (en) Authentication system using separation, then distributed storage of personal information using blockchain
WO2018147488A1 (en) Secure attribute-based authentication method for cloud computing
CN114503508A (en) Computer-implemented method and system for storing authenticated data on blockchains
Al-madani et al. IoT data security via blockchain technology and service-centric networking
WO2019125069A1 (en) Authentication system using separation, then combination of personal information using blockchain
CN104468074A (en) Method and equipment for authentication between applications
WO2019125081A1 (en) System for granting one-time access rights using blockchain
CN114051031A (en) Encryption communication method, system, equipment and storage medium based on distributed identity
WO2020166876A1 (en) Blood donation management method and system
WO2023095967A1 (en) Remote-interaction large document access system in which blockchain-based did service, ipfs-based data sharing technology and private key distributed storage technology are combined
WO2020138733A1 (en) Blockchain system for providing anonymity of private information and method for providing anonymity of private information in blockchain
Mittal et al. A three-phase framework for secure storage and sharing of healthcare data based on blockchain, IPFS, proxy re-encryption and group communication
CN113990399A (en) Gene data sharing method and device for protecting privacy and safety
WO2023177013A1 (en) Payment system using did-based biometric authentication
WO2023106629A1 (en) Control method for blockchain-based evidence data notarization system, and recording medium and system for performing same
WO2021075604A1 (en) Method and device for transmitting inheritance data
Paunikar et al. A user authentication scheme of Iot devices using blockchain-enabled fog nodes
WO2024025030A1 (en) System for proving ownership of private signature through nft issuance for private signature data
WO2023090979A1 (en) System for generating, maintaining, and managing combination relationship among non-fungible token (nft), original work as real thing, and digital work linked to said original, and method therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22756407

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22756407

Country of ref document: EP

Kind code of ref document: A1