KR102181645B1 - System and method for distributing and storing data - Google Patents
System and method for distributing and storing data Download PDFInfo
- Publication number
- KR102181645B1 KR102181645B1 KR1020180169812A KR20180169812A KR102181645B1 KR 102181645 B1 KR102181645 B1 KR 102181645B1 KR 1020180169812 A KR1020180169812 A KR 1020180169812A KR 20180169812 A KR20180169812 A KR 20180169812A KR 102181645 B1 KR102181645 B1 KR 102181645B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user terminal
- secret
- secret key
- distributed data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 데이터를 분산해서 저장하는 분산 저장 시스템 및 방법에 관한 것으로, 사용자 단말기에서 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 사용자 단말기에서 비밀 키를 획득하고, 사용자 단말기에서 n개의 분산 데이터 각각을 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, 사용자 단말기에서 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하여 저장한다.The present invention relates to a distributed storage system and method for distributing and storing data, wherein n pieces of distributed data are generated using secret data in a user terminal, a secret key is obtained from a user terminal, and n pieces of distributed data are obtained in the user terminal. Each is encrypted with a secret key to generate n pieces of encrypted distributed data, and the user terminal transmits and stores n pieces of encrypted distributed data to corresponding n storage devices.
Description
이하의 일 실시 예들은 사용자가 선택한 비밀 데이터를 분산해서 복수개의 저장 장치에 저장하고, 필요시 분산 저장된 데이터를 수신하여 복구하는 기술에 관한 것이다.The following embodiments relate to a technology for distributing secret data selected by a user and storing them in a plurality of storage devices, and receiving and restoring the distributed data when necessary.
단말기가 고성능/고용량화 되어 감에 따라, 단말기의 내부의 중요 데이터들에 대한 보호 및 관리의 중요성이 대두되고 있다. As terminals become more high-performance/high-capacity, the importance of protecting and managing important data inside the terminal is emerging.
이러한 중요 데이터들의 보호 및 관리를 위해서 종래에는 단말기의 중요 데이터를 암호화하여 외부 저장 장치에 저장하여 백업하는 방법이 이용되고 있다. In order to protect and manage such important data, a method of encrypting important data of a terminal and storing it in an external storage device for backup has been used.
하지만, 중요 데이터가 하나의 외부 저장 장치에 저장되는 경우, 저장 장치가 해킹되는 경우 중요 데이터가 손쉽게 유출되는 문제가 발생할 수 있다.However, when important data is stored in one external storage device, when the storage device is hacked, there may be a problem that important data is easily leaked.
따라서, 중요 데이터를 외부 저장 장치에 저장함에 있어서, 보다 안전한 방법에 요구되고 있다. Therefore, in storing important data in an external storage device, there is a demand for a more secure method.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 데이터를 분산해서 저장하는 시스템 및 방법을 제공하는 것을 목적으로 한다.The present invention was derived to solve the problems of the prior art as described above, and an object of the present invention is to provide a system and method for distributing and storing data.
구체적으로, 본 발명은 사용자가 선택한 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, 비밀 키를 이용해서 n개의 부분 비밀 키를 생성하고, n개의 저장 장치 각각에 암호화된 분산 데이터와 부분 비밀 키를 저장하는 시스템 및 방법을 제공하는 것을 목적으로 한다.Specifically, the present invention generates n pieces of distributed data using secret data selected by a user, encrypts with a secret key to generate n pieces of encrypted distributed data, and generates n pieces of partial secret keys using the secret key, An object of the present invention is to provide a system and method for storing encrypted distributed data and a partial secret key in each of n storage devices.
또한, 본 발명은 분산 저장된 데이터의 복구 요청을 감지하면, 복수의 저장 장치로부터 암호화된 분산 데이터와 부분 비밀 키를 수신하고, 비밀 키를 복구하고, 암호화된 분산 데이터들을 복호화하고, 분산 데이터를 이용해서 비밀 데이터를 복구하는 시스템 및 방법을 제공하는 것을 목적으로 한다.In addition, the present invention receives encrypted distributed data and a partial secret key from a plurality of storage devices when a request for restoration of distributed stored data is detected, recovers the secret key, decrypts the encrypted distributed data, and uses the distributed data. Thus, it is an object of the present invention to provide a system and method for recovering secret data.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 사용자 단말기에서 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하는 단계; 상기 사용자 단말기에서 비밀 키를 획득하는 단계; 상기 사용자 단말기에서 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하는 단계; 및 상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하여 저장하는 단계를 포함한다.In order to achieve the above object, generating n pieces of distributed data using secret data in a user terminal according to an embodiment of the present invention; Obtaining a secret key from the user terminal; Generating n pieces of encrypted distributed data by encrypting each of the n pieces of distributed data in the user terminal with the secret key; And transmitting and storing each of the n pieces of encrypted distributed data from the user terminal to corresponding n number of storage devices.
이때, 상기 사용자 단말기에서 상기 비밀 데이터를 이용해서 상기 n개의 분산 데이터를 생성하는 단계는, 상수항을 상기 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하는 단계; 및 상기 t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 상기 n개의 분산 데이터를 생성하는 단계를 포함할 수 있고, 상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.In this case, the step of generating the n pieces of distributed data using the secret data in the user terminal includes: selecting a t-1 order random polynomial (f(x)) using a constant term as the secret data; And generating the n variance data by substituting a value from 1 to n to x of the t-1 order random polynomial (f(x)), wherein t is used to recover the secret data. Indicates the number of variance data required.
이때, 상기 사용자 단말기와 상기 n개의 저장 장치들은, 정보 전달을 위해서 블록 체인을 이용할 수 있다.In this case, the user terminal and the n storage devices may use a block chain for information transmission.
이때, 상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는, 상기 사용자 단말기에서 상기 비밀 키를 생성하는 단계; 상기 사용자 단말기에서 n-1개의 랜덤 키를 생성하는 단계; 상기 사용자 단말기에서 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하는 단계; 및 상기 사용자 단말기에서 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하는 단계를 포함할 수 있다.In this case, obtaining the secret key from the user terminal includes: generating the secret key from the user terminal; Generating n-1 random keys in the user terminal; Generating V n by bitwise XORing both the secret key and the n-1 random keys at the user terminal; And setting the n-1 random keys and V n as n partial secret keys in the user terminal, and transmitting a different partial secret key to each of the n storage devices.
이때, 상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는, 마스터 저장 장치에서 상기 비밀 키를 생성하는 단계; 및 상기 마스터 장치에서 상기 비밀 키를 상기 사용자 단말기로 송신하는 단계를 포함할 수 있다.In this case, obtaining the secret key from the user terminal includes: generating the secret key from a master storage device; And transmitting the secret key from the master device to the user terminal.
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는, 상기 마스터 장치에서 n-1개의 랜덤 키를 생성하는 단계; 상기 마스터 장치에서 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하는 단계; 및 상기 마스터 장치에서 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하는 단계를 포함할 수 있다.The obtaining of the secret key from the user terminal may include generating n-1 random keys from the master device; Generating V n by bitwise XORing both the secret key and the n-1 random keys in the master device; And setting the n-1 random keys and the V n as n partial secret keys in the master device, and transmitting a different partial secret key to each of the n storage devices.
이때, 상기 사용자 단말기, 상기 n개의 저장 장치들 및 상기 마스터 장치는, 정보 전달을 위해서 블록 체인을 이용할 수 있다.In this case, the user terminal, the n storage devices, and the master device may use a block chain for information transmission.
이때, 상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 상기 n개의 저장 장치로 송신하여 저장하는 단계는, 상기 사용자 단말기에서 상기 n개의 저장 장치 각각에 인증하는 단계; 및 인증에 성공한 저장 장치 각각으로 대응하는 암호화된 분산 데이터를 송신하는 단계를 포함할 수 있다.In this case, the step of transmitting and storing the n pieces of encrypted distributed data from the user terminal to the corresponding n storage devices may include: authenticating at the user terminal to each of the n storage devices; And transmitting the corresponding encrypted distributed data to each of the storage devices that have successfully authenticated.
이때, 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법은, 상기 사용자 단말기에서 상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 암호화된 분산 데이터를 수신하는 단계; 상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계; 상기 사용자 단말기에서 t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하는 단계; 및 상기 사용자 단말기에서 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하는 단계를 더 포함할 수 있다.In this case, a method of distributing and storing data in a distributed storage system includes: receiving, in the user terminal, encrypted distributed data from at least t storage devices among the n storage devices; Obtaining the secret key from the user terminal; Generating t pieces of distributed data by decrypting t pieces of encrypted distributed data in the user terminal with the secret key; And recovering the secret data using the t distributed data in the user terminal.
이때, 상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는, 상기 사용자 단말기에서 상기 마스터 저장 장치 인증하는 단계; 및 상기 마스터 저장 장치로부터 상기 비밀 키를 수신하여 획득하는 단계를 포함할 수 있다.In this case, obtaining the secret key from the user terminal may include: authenticating the master storage device from the user terminal; And receiving and obtaining the secret key from the master storage device.
이때, 상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는, 상기 사용자 단말기에서 상기 n개의 저장 장치 각각에 인증하는 단계; 상기 n개의 저장 장치로부터 n개의 부분 비밀 키를 수신하는 단계; 및 수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성하는 단계를 포함할 수 있다.In this case, the step of obtaining the secret key from the user terminal includes: authenticating each of the n storage devices by the user terminal; Receiving n partial secret keys from the n storage devices; And generating the secret key by bitwise XORing all of the n partial secret keys received.
이때, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하는 단계는, 상기 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하는 단계; 및 상기 t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상기 상수항을 상기 비밀 데이터로 복구하는 단계를 포함할 수 있다.At this time, the step of recovering the secret data using the t distributed data includes: recovering a t-1 order random polynomial (f(x)) using the t distributed data; And checking the constant term of the t-1 order random polynomial (f(x)), and recovering the constant term as the secret data.
본 발명의 다른 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템은, 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 비밀 키를 생성하고, 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하는 사용자 단말기; 및 상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치를 포함한다.A distributed storage system for distributing and storing data according to another embodiment of the present invention generates n pieces of distributed data using secret data, generates a secret key, and encrypts each of the n pieces of distributed data with the secret key. a user terminal that generates n pieces of encrypted distributed data and transmits each of the n pieces of encrypted distributed data to corresponding n storage devices; And the n storage devices for storing encrypted distributed data received from the user terminal.
이때, 상기 사용자 단말기는, 상수항을 상기 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, 상기 t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 상기 n개의 분산 데이터를 생성할 수 있고, 상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.At this time, the user terminal selects a t-1 order random polynomial (f(x)) with a constant term as the secret data, and from 1 to n in x of the t-1 order random polynomial (f(x)) The n pieces of distributed data can be generated by substituting a value of, where t represents the number of distributed data required to recover the secret data.
이때, 상기 사용자 단말기는, n-1개의 랜덤 키를 생성하고, 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하고, 상기 n개의 저장 장치는, 상기 사용자 단말기로부터 수신한 상기 부분 비밀 키를 저장할 수 있다.At this time, the user terminal generates n-1 random keys, generates V n by bitwise XORing both the secret key and the n-1 random keys, and generates the n-1 random keys. A random key and V n are set as n partial secret keys, and a different partial secret key is transmitted to each of the n storage devices, and the n storage devices include the partial secret keys received from the user terminal. Can be saved.
이때, 상기 사용자 단말기는, 상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성할 수 있고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하고, 상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.At this time, the user terminal receives encrypted distributed data stored from at least t storage devices among the n storage devices, obtains the secret key, and decrypts t encrypted distributed data with the secret key to distribute t Data can be generated, and the secret data is recovered by using the t distributed data, and t denotes the number of distributed data required to recover the secret data.
이때, 상기 사용자 단말기는, 상기 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하고, 상기 t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상기 상수항을 상기 비밀 데이터로 복구할 수 있다.At this time, the user terminal recovers the t-1 order random polynomial (f(x)) using the t variance data, and checks the constant term of the t-1 order random polynomial (f(x)), The constant term can be recovered as the secret data.
이때, 상기 사용자 단말기는, 상기 n개의 저장 장치로 n개의 부분 비밀 키를 요청하여 수신하고, 수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성할 수 있다.At this time, the user terminal may request and receive n partial secret keys from the n storage devices, and generate the secret key by bitwise XORing all of the received n partial secret keys. have.
본 발명의 또 다른 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템은, 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 마스터 저장 장치로부터 비밀 키를 수신하고, 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하는 사용자 단말기; 상기 사용자 단말기의 요청에 따라 상기 비밀 키를 생성하여 상기 사용자 단말기로 송신하는 상기 마스터 저장 장치; 및 상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치를 포함한다.A distributed storage system for distributing and storing data according to another embodiment of the present invention generates n pieces of distributed data using secret data, receives a secret key from a master storage device, and stores each of the n pieces of distributed data. A user terminal for generating n pieces of encrypted distributed data by encrypting with the secret key, and transmitting each of the n pieces of encrypted distributed data to corresponding n storage devices; The master storage device generating the secret key according to the request of the user terminal and transmitting it to the user terminal; And the n storage devices for storing encrypted distributed data received from the user terminal.
이때, 상기 마스터 장치는, n-1개의 랜덤 키를 생성하고, 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하고, 상기 n개의 저장 장치는, 상기 마스터 장치로부터 수신한 상기 부분 비밀 키를 저장할 수 있다.At this time, the master device generates n-1 random keys, and generates V n by bitwise XORing both the secret key and the n-1 random keys, and the n-1 random keys A random key and V n are set as n partial secret keys, and a different partial secret key is transmitted to each of the n storage devices, and the n storage devices include the partial secret keys received from the master device. Can be saved.
이때, 상기 사용자 단말기는, 상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구할 수 있고, 상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.At this time, the user terminal receives encrypted distributed data stored from at least t storage devices among the n storage devices, obtains the secret key, and decrypts t encrypted distributed data with the secret key to distribute t Data can be generated and the secret data can be recovered using the t distributed data, where t represents the number of distributed data required to recover the secret data.
이때, 상기 사용자 단말기는, 상기 비밀키를 상기 마스터 저장 장치로부터 수신하여 획득할 수 있다.In this case, the user terminal may receive and obtain the secret key from the master storage device.
이때, 상기 사용자 단말기는, 상기 n개의 저장 장치로 n개의 부분 비밀 키를 요청하여 수신하고, 수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성할 수 있다.At this time, the user terminal may request and receive n partial secret keys from the n storage devices, and generate the secret key by bitwise XORing all of the received n partial secret keys. have.
본 발명은 사용자가 선택한 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, 비밀 키를 이용해서 n개의 부분 비밀 키를 생성하고, n개의 저장 장치 각각에 암호화된 분산 데이터와 부분 비밀 키를 저장하는 분산 저장 시스템 및 방법을 제공하여서, 하나의 저장 장치에서 데이터가 유출된다 하더라도 비밀 데이터의 유출이 발생하지 않으며, 분산 저장된 저장 장치들 중의 일부만으로 비밀 데이터를 복구할 수 있어서, 일부 저장 장치에 문제가 발생하여도 비밀 데이터를 복구할 수 있다.In the present invention, n pieces of distributed data are generated using secret data selected by a user, and n pieces of encrypted distributed data are generated by encrypting with a secret key, and n pieces of partial secret keys are generated using the secret key, and n pieces of storage By providing a distributed storage system and method for storing encrypted distributed data and partial secret key in each device, even if data is leaked from one storage device, the leakage of secret data does not occur, and only some of the distributed storage devices are Since secret data can be recovered, it is possible to recover secret data even if a problem occurs in some storage devices.
도 1은 본 발명의 일 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 다른 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 데이터를 분산해서 저장하는 과정을 도시한 흐름이다.
도 4는 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정을 도시한 흐름이다.
도 5는 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 분산 데이터를 생성하는 과정에서의 데이터 흐름을 도시한 도면이다.
도 6은 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 암호화된 분산 데이터를 생성하는 과정의 데이터 흐름을 도시한 도면이다.
도 7은 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 암호화된 분산 데이터를 저장 장치들로 송신하고 분산 저장을 완료하는 과정의 데이터 흐름을 도시한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 암호화된 분산 데이터들을 수신하는 과정의 데이터 흐름을 도시한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 비밀 키를 수신하고 비밀 데이터를 복구하는 과정의 데이터 흐름을 도시한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 부분 비밀키들을 수신하여 비밀 키를 복구하는 과정의 데이터 흐름을 도시한 도면이다.1 is a diagram showing a schematic configuration of a distributed storage system for distributing and storing data according to an embodiment of the present invention.
2 is a diagram illustrating a schematic configuration of a distributed storage system for distributing and storing data according to another embodiment of the present invention.
3 is a flow diagram illustrating a process of distributing and storing data in a distributed storage system according to an embodiment of the present invention.
4 is a flow diagram illustrating a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
5 is a diagram illustrating a data flow in a process of generating distributed data in a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
6 is a diagram illustrating a data flow in a process of generating encrypted distributed data during a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
7 is a diagram illustrating a data flow in a process of transmitting encrypted distributed data to storage devices and completing distributed storage during a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
8 is a diagram illustrating a data flow in a process of receiving encrypted distributed data during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
9 is a diagram illustrating a data flow of a process of receiving a secret key and recovering secret data during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
10 is a diagram illustrating a data flow of a process of recovering a secret key by receiving partial secret keys during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the rights of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be interpreted as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.
도 1은 본 발명의 일 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.1 is a diagram showing a schematic configuration of a distributed storage system for distributing and storing data according to an embodiment of the present invention.
도 1을 참조하면, 분산 저장 시스템은 사용자 단말기(110) 및 저장 장치(131-134)들을 포함하여 구성될 수 있다.Referring to FIG. 1, a distributed storage system may include a
사용자 단말기(110)는 사용자가 분산해서 저장하고자 하는 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 분산 데이터를 암호화할 때 필요한 비밀 키를 생성하고, n개의 분산 데이터 각각을 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치(131-134)들로 송신한다.The
사용자 단말기(110)는 n개의 분산 데이터를 생성하기 위해서 상수항을 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 n개의 분산 데이터를 생성할 수 있다. 이때, t는 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.The
사용자 단말기(110)에서 n개의 분산 데이터를 생성하는 방법은 Ronald L. Rivest, Adi Shamir, Yael Tauman에 의해서 발표된 논문 “How to share a secret (1979)“를 참조하여 생성할 수 있으며, n개의 분산 데이터를 생성하는 방법을 보다 상세히 설명하면 다음과 같다.The method of generating n pieces of distributed data in the
t-1차 랜덤 다항식(f(x)= a0 + a1x + a2x2 +…+ at-1xt-1)을 선택한다.Select the t-1 order random polynomial (f(x)= a 0 + a 1 x + a 2 x 2 +...+ a t-1 x t-1 ).
이때, a0 = 비밀 데이터, ai는 랜덤값이고, i = {1, 2, 3, …t-1}이다.At this time, a 0 = secret data, a i is a random value, and i = {1, 2, 3,… t-1}.
다음과 같이 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 n개의 분산 데이터(S1, S2, S3, …Sn)를 생성한다.As follows, n variance data (S 1 , S 2 , S 3 , …S n ) are generated by substituting values from 1 to n to x of the polynomial (f(x)).
S1 = (1, f(1)), S2 = (2, f(2)), S3 = (3, f(3)), …Sn = (n, f(n))S 1 = (1, f(1)), S 2 = (2, f(2)), S 3 = (3, f(3)),… S n = (n, f(n))
한편, 사용자 단말기(110)는 사용자 단말기(110)의 초기화 등으로 인해서 비밀 키를 분실하는 경우를 대비하기 위해서 비밀 키를 n개의 저장 장치(131-134)들에 분산해서 저장할 수 있다. 이를 위해서 사용자 단말기(110)는 n-1개의 랜덤 키를 생성하고, 비밀 키와 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, n-1개의 랜덤 키와 Vn을 n개의 부분 비밀 키로 설정하고, n개의 저장 장치(131-134) 각각으로 서로 다른 하나의 부분 비밀 키를 송신할 수 있다.Meanwhile, the
부분 비밀 키를 생성하는 원리는 모두 비트단위 배타적 논리합(Bitwise XOR)의 경우 동일한 값을 두번 Bitwise XOR하면 원래의 값이 나오는 특징을 이용하는 것이다.The principle of generating the partial secret key is to use the feature that in the case of bitwise exclusive OR (Bitwise XOR), the original value comes out when the same value is twice Bitwise XORed.
부분 비밀 키를 생성하는 과정을 보다 구체적으로 설명하면 다음과 같다.The process of generating the partial secret key will be described in more detail as follows.
V = 비밀 키로 설정하고, V1, V2, …, Vn-1을 랜덤(Random) 값으로 설정한다.Set V = secret key, and V 1 , V 2 ,… , V n-1 is set to a random value.
E = V1 V2 … Vn-1 를 계산한다. E = V 1 V 2 … Calculate V n-1 .
Vn = E V를 계산한다. 여기서, 는 비트단위 배타적 논리합 연산이다.V n = E Calculate V. here, Is a bitwise exclusive OR operation.
사용자 단말기(110)는 n개의 저장 장치(131-134)들에 분산하여 저장한 비밀 데이터를 복구하기 위해서, n개의 저장 장치(131-134)들 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, t개의 분산 데이터를 이용해서 비밀 데이터를 복구한다.The
t개의 분산 데이터를 이용해서 비밀 데이터를 복구하는 방법을 보다 구체적으로 설명하면, 사용자 단말기(110)는 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하고, t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상수항을 비밀 데이터로 복구한다.In more detail, a method of recovering secret data using t distributed data will be described in more detail. The
사용자 단말기(110)에서 n개의 분산 데이터를 복구하는 방법을 보다 상세히 설명하면 다음과 같다.A method of recovering n pieces of distributed data in the
t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))으로 인해 생성되는 곡선 f 를 지나는 t개 이상의 포인트(point)들을 획득한다.Using t variance data, t or more points passing through the curve f generated by the t-1 order random polynomial (f(x)) are obtained.
다음과 같이 t개의 포인트 로 부터 라그랑지 보간법(Lagrange interpolation)을 이용해서 아래 <수학식 1>과 같이 f(x)를 복원한다. T points as follows From Equation 1 below, f(x) is restored using Lagrange interpolation.
[수학식 1][Equation 1]
이때, f(0)를 계산하여 비밀 데이터로 복구할 수 있다.At this time, f(0) can be calculated and recovered as secret data.
한편, 사용자 단말기(110)는 저장된 비밀 키를 이용할 수도 있지만, 비밀 키를 저장하고 있지 않은 경우, n개의 저장 장치(131-134)들로 n개의 부분 비밀 키를 요청하여 수신하고, 수신된 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 비밀 키를 생성할 수 있다.On the other hand, the
즉, 다음의 <수학식 2>과 같이 비밀 키가 복구될 수 있다.That is, the secret key can be recovered as shown in Equation 2 below.
[수학식 2][Equation 2]
여기서, 는 비트단위 배타적 논리합 연산이다.here, Is a bitwise exclusive OR operation.
저장 장치(131-134)들 각각은 사용자 단말기(110)로부터 수신한 암호화된 분산 데이터를 저장하고, 사용자 단말기(110)의 요청에 따라 저장된 암호화된 분산 데이터를 다시 사용자 단말기(110)로 송신할 수 있다.Each of the storage devices 131-134 stores the encrypted distributed data received from the
또한, 저장 장치(131-134)들 각각은 사용자 단말기(110)로부터 수신한 부분 비밀 키를 저장하고, 사용자 단말기(110)의 요청에 따라 저장된 부분 비밀 키를 다시 사용자 단말기(110)로 송신할 수 있다.In addition, each of the storage devices 131-134 stores the partial secret key received from the
사용자 단말기(110)는 저장 장치(131-134)들로 암호화된 분산 데이터 또는 부분 비밀 키를 송신하거나 암호화된 분산 데이터 또는 부분 비밀 키를 요청하기에 앞서, 정당한 사용자인지 인증하는 과정을 수행할 수 있다.The
사용자 단말기(110)와 n개의 저장 장치(131-134)들은 정보 전달을 위해서 블록 체인을 이용할 수 있으며, 블록 체인을 이용해서 정보를 전달하는 구체적인 예는 이후 도 5에서 도 10을 참조하여 확인 할 수 있다.The
도 2는 본 발명의 다른 실시 예에 따른 데이터를 분산해서 저장하는 분산 저장 시스템의 개략적인 구성을 도시한 도면이다.2 is a diagram illustrating a schematic configuration of a distributed storage system for distributing and storing data according to another embodiment of the present invention.
도 2를 참조하면, 분산 저장 시스템은 사용자 단말기(210), 마스터 저장 장치(220) 및 저장 장치(231-234)들을 포함하여 구성될 수 있다. 여기서, 마스터 저장 장치(220)는 사용자 단말기(210)의 사용자가 신뢰하는 저장 장치를 의미한다.Referring to FIG. 2, the distributed storage system may include a
사용자 단말기(210)는 사용자가 분산해서 저장하고자 하는 비밀 데이터를 이용해서 n개의 분산 데이터를 생성하고, 마스터 저장 장치(220)로부터 비밀 키를 수신하고, n개의 분산 데이터 각각을 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하고, n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치(231-234)들로 송신한다.The
사용자 단말기(210)는 n개의 분산 데이터를 생성하기 위해서 상수항을 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 n개의 분산 데이터를 생성할 수 있다. 이때, t는 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.The
사용자 단말기(210)는 n개의 저장 장치(231-234)들에 분산하여 저장한 비밀 데이터를 복구하기 위해서, n개의 저장 장치(231-234)들 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, t개의 분산 데이터를 이용해서 비밀 데이터를 복구한다.In order to recover secret data distributed and stored in n storage devices 231-234, the
비밀 데이터를 복구할 때, 사용자 단말기(210)에서 비밀 키를 획득하는 방법은 마스터 저장 장치(220)로 요청하여 수신하거나, 또는, n개의 저장 장치(231-234)들로 n개의 부분 비밀 키를 요청하고 수신된 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 비밀 키를 생성할 수 있다.When recovering secret data, a method of obtaining a secret key from the
마스터 저장 장치(220)는 사용자 단말기(210)의 요청에 따라 비밀 키를 생성하여 사용자 단말기(210)로 송신하고, n-1개의 랜덤 키를 생성하고, 비밀 키와 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, n-1개의 랜덤 키와 Vn을 n개의 부분 비밀 키로 설정하고, n개의 저장 장치(231-234)들 각각으로 서로 다른 하나의 부분 비밀 키를 송신할 수 있다.The
저장 장치(231-234)들 각각은 사용자 단말기(210)로부터 수신한 암호화된 분산 데이터를 저장하고, 사용자 단말기(210)의 요청에 따라 저장된 암호화된 분산 데이터를 다시 사용자 단말기(210)로 송신할 수 있다.Each of the storage devices 231-234 stores the encrypted distributed data received from the
또한, 저장 장치(231-234)들 각각은 사용자 단말기(210)로부터 수신한 부분 비밀 키를 저장하고, 사용자 단말기(210)의 요청에 따라 저장된 부분 비밀 키를 다시 사용자 단말기(210)로 송신할 수 있다.In addition, each of the storage devices 231-234 stores the partial secret key received from the
사용자 단말기(210)는 마스터 저장 장치(220) 또는 n개의 저장 장치(231-234)들과 통신하기에 앞서, 정당한 사용자인지 인증하는 과정을 수행할 수 있다.The
사용자 단말기(210), n개의 저장 장치(231-234)들들 및 마스터 장치(220)는 정보 전달을 위해서 블록 체인을 이용할 수 있으며, 블록 체인을 이용해서 정보를 전달하는 구체적인 예는 이후 도 5에서 도 10을 참조하여 확인 할 수 있다.The
도 3은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 데이터를 분산해서 저장하는 과정을 도시한 흐름이다.3 is a flow diagram illustrating a process of distributing and storing data in a distributed storage system according to an embodiment of the present invention.
도 3을 참조하면, 사용자 단말기(210)에서 분산 저장할 비밀 데이터가 선택되면(310), 비밀 데이터를 이용해서 n개의 분산 데이터를 생성한다(320).Referring to FIG. 3, when secret data to be distributed and stored in the
320단계를 보다 구체적으로 설명하면, 사용자 단말기(210)는 상수항을 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 n개의 분산 데이터를 생성할 수 있다. 이때, t는 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.To explain
그리고, 사용자 단말기(210)에서 비밀 키를 획득한다(330).Then, a secret key is obtained from the user terminal 210 (330).
330단계에서 비밀 키의 획득은 사용자 단말기(210)에서 비밀 키를 생성하거나 또는 마스터 저장 장치(220)로부터 비밀 키를 수신하여 획득할 수 있다.In
사용자 단말기(210)에서 비밀 키를 생성하는 경우, 사용자 단말기(210)는 비밀 키를 생성한 후에 n-1개의 랜덤 키를 생성하고, 비밀 키와 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, n-1개의 랜덤 키와 Vn을 n개의 부분 비밀 키로 설정하고, n개의 저장 장치(231-234)들 각각으로 서로 다른 하나의 부분 비밀 키를 송신할 수 있다.When the
마스터 저장 장치(220)로부터 비밀 키를 수신하는 경우, 마스터 저장 장치(220)는 비밀 키를 생성하여 사용자 단말기(210)로 송신한 후에 n-1개의 랜덤 키를 생성하고, 비밀 키와 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, n-1개의 랜덤 키와 Vn을 n개의 부분 비밀 키로 설정하고, n개의 저장 장치(231-234)들 각각으로 서로 다른 하나의 부분 비밀 키를 송신할 수 있다.When receiving the secret key from the
그리고, 사용자 단말기(210)에서 n개의 분산 데이터 각각을 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성한다(340).Then, the
그리고, 사용자 단말기(210)에서 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치(231-234)들로 송신하여 저장하도록 한다(350).Then, the
350단계에서 사용자 단말기(210)는 암호화된 분산 데이터를 송신하기에 앞서, n개의 저장 장치(231-234)들과 사용자 단말기(210)가 정당한 사용자인지 인증하는 과정을 수행할 수 있다.In
도 4는 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정을 도시한 흐름이다.4 is a flow diagram illustrating a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
도 4를 참조하면, 사용자 단말기(210)에서 비밀 데이터의 복구 요청이 감지되면, n개의 저장 장치(231-234)들 중에서 적어도 t개의 저장 장치로부터 암호화된 분산 데이터를 수신한다(410). 이때, 사용자 단말기(210)는 암호화된 분산 데이터를 수신하기에 앞서, t개의 저장 장치와의 인증 과정을 수행할 수 있다.Referring to FIG. 4, when a
그리고, 사용자 단말기(210)에서 비밀 키를 획득한다(420)Then, a secret key is obtained from the user terminal 210 (420).
420단계에서 비밀 키를 획득하는 방법은, 사용자 단말기(210)에 저장된 비밀 키를 확인하거나, 마스터 저장 장치(220)로 비밀 키를 요청하여 수신하거나, n개의 저장 장치(231-234)들을 통해서 비밀 키를 획득할 수 있다.The method of obtaining the secret key in
즉, 사용자 단말기(210)는 비밀 키가 저장되어 있으면, 저장된 비밀 키를 이용하고, 비밀 키가 저장되어 있지 않으면, 마스터 저장 장치(220)로 비밀 키를 요청하여 수신할 수 있다. 이때, 마스터 저장 장치(220)의 고장 또는 통신 장애로 마스터 저장 장치(220)로부터 비밀 키를 수신할 수 없으면, n개의 저장 장치(231-234)들을 통해서 비밀 키를 획득할 수 있다.That is, if the secret key is stored, the
n개의 저장 장치(231-234)들을 통해서 비밀 키를 획득하는 것은, 사용자 단말기(210)에서 n개의 저장 장치(231-234)들 각각과 인증하여 n개의 저장 장치(231-234)들로부터 n개의 부분 비밀 키를 수신하고, 수신된 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 비밀 키를 생성할 수 있다.Obtaining a secret key through n storage devices 231-234 is performed by authenticating with each of the n storage devices 231-234 in the
그리고, 사용자 단말기(210)에서 t개의 암호화된 분산 데이터를 비밀 키로 복호화하여 t개의 분산 데이터를 생성한다(430).Then, the
그리고, 사용자 단말기(210)에서 t개의 분산 데이터를 이용해서 비밀 데이터를 복구한다(440).Then, the
440단계에서 비밀 데이터를 복구하는 과정을 보다 구체적으로 설명하면, 사용자 단말기(210)는 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하고, t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상수항을 비밀 데이터로 복구할 수 있다.In more detail, the process of recovering the secret data in
그러면, 비밀 데이터를 분산하고 암호화해서 저장하는 과정에서 장치들 간의 데이터 흐름을 도 5에서 도 7을 참조하여 설명하고자 한다. 도 5에서 도 7은 순차적인 과정에 해당한다.Then, the flow of data between devices in the process of distributing, encrypting and storing secret data will be described with reference to FIGS. 5 to 7. 5 to 7 correspond to a sequential process.
도 5는 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 분산 데이터를 생성하는 과정에서의 데이터 흐름을 도시한 도면이다.5 is a diagram illustrating a data flow in a process of generating distributed data in a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
도 5를 참조하면, 사용자 단말기(210)는 사용자가 분산해서 저장하고자 하는 비밀 데이터를 이용해서 n개의 분산 데이터(S1, S2, …Sn)를 생성한다(510).Referring to FIG. 5, the
510단계에서 사용자 단말기(210)는 n개의 분산 데이터를 생성하기 위해서 상수항을 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 n개의 분산 데이터(S1, S2, …Sn)를 생성할 수 있다. 이때, t는 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타낸다.In
그리고, 사용자 단말기(210)는 분산 정보를 블록 체인(240)에 저장한다(520). 이때, 분산 정보는 사용자 식별정보, 사용자가 선택한 마스터 저장 장치(220), 사용자가 선택한 n개의 저장 장치(231-234)의 목록, 복구할 때 필요한 분산 데이터의 개수(t)를 포함할 수 있다.Then, the
그리고, 사용자 단말기(210)는 마스터 저장 장치(220)의 인증 과정을 수행함으로써 분산 저장 서비스를 위한 비밀 키를 요청할 수 있다(530).In addition, the
마스터 저장 장치(220)는 사용자 단말기(210)가 인증에 성공하면, 블록 체인(240)에 저장된 분산 정보의 기록을 확인한다(540).When the
도 6은 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 암호화된 분산 데이터를 생성하는 과정의 데이터 흐름을 도시한 도면이다.6 is a diagram illustrating a data flow in a process of generating encrypted distributed data during a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
도 6을 참조하면, 마스터 저장 장치(220)는 도 5의 540단계에 이어서, 비밀 키(V)를 생성하고(610), 비밀 키(V)를 이용해서 n개의 부분 비밀키(V1, V2, …Vn)를 생성한다(620).Referring to FIG. 6, the
620단계에서 마스터 저장 장치(220)는 n-1개의 랜덤 키를 생성하여 n-1개의 랜덤 키를 n-1개의 부분 비밀 키(V1, V2, …Vn-1)로 설정하고, 비밀 키와 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 부분 비밀키(Vn) 생성하여서, 최종적으로 n개의 부분 비밀키(V1, V2, …Vn)를 생성한다.In
그리고, 마스터 저장 장치(220)는 생성한 비밀 키를 사용자 단말기(210)로 송신하고(630), 블록 체인(240)에 비밀 키를 사용자 단말기(210)로 송신했음을 기록한다(640).Then, the
사용자 단말기(210)는 마스터 저장 장치(220)로부터 비밀 키를 수신하면(630), n개의 분산 데이터(Si) 각각을 비밀 키로 암호화하여 n개의 암호화된 분산 데이터(Ti)를 생성한다(650).Generates the
도 7은 본 발명이 일 실시 예에 따른 분산 저장 시스템에서 비밀 데이터를 분산해서 저장하는 과정 중에서 암호화된 분산 데이터를 저장 장치들로 송신하고 분산 저장을 완료하는 과정의 데이터 흐름을 도시한 도면이다.7 is a diagram illustrating a data flow in a process of transmitting encrypted distributed data to storage devices and completing distributed storage during a process of distributing and storing secret data in a distributed storage system according to an embodiment of the present invention.
도 7을 참조하면, 사용자 단말기(210)는 도 6의 650단계에 이어서, n개의 저장 장치(231-234)들 중에서 암호화된 분산 데이터를 송신하지 않은 저장 장치와의 인증 절차를 수행한다(710).Referring to FIG. 7, following
그리고, 사용자 단말기(210)는 인증된 저장 장치에 대응하는 암호화된 분산 데이터를 인증된 저장 장치로 송신한다(720). 즉, 사용자 단말기(210)는 제i 저장 장치로 제i 암호화된 분산 데이터(Ti)를 송신한다.Then, the
제i 저장 장치는 제i 암호화된 분산 데이터(Ti)를 수신하면(720), 제i 암호화된 분산 데이터(Ti)를 수신하였음을 블록 체인(240)에 기록하고(730), 마스터 저장 장치(220)로 제i 부분 비밀 키(Vi)를 요청한다(740).When the i-th storage device receives the i-th encrypted distributed data T i (720), it records that it has received the i-th encrypted distributed data T i in the block chain 240 (730), and stores the master The
마스터 저장 장치(220)는 제i 부분 비밀 키(Vi)를 요청받으면(740), 620단계에서 생성한 n개의 부분 비밀 키들 중에서 제i 부분 비밀 키(Vi)를 제i 저장 장치로 송신한다(750).The
제i 저장 장치는 제i 부분 비밀 키(Vi)를 수신하면(750), 제i 부분 비밀 키(Vi)를 수신하였음을 블록 체인(240)에 기록한다(760).When the i-th storage device receives the i-th partial secret key (V i ) (750), it records that it has received the i- th partial secret key (V i ) in the block chain 240 (760).
710단계에서 760단계는 n개의 저장 장치별로 수행된다. 즉, 710단계에서 760단계는 n번 반복된다.
마스터 저장 장치(220)는 블록 체인을 통해서 n개의 저장 장치가 부분 비밀 키를 수신했음을 블록 체인에 기록했는지 확인하여, 암호화된 분산 데이터의 저장이 완료되었는지 확인하고(770), 완료되었으면 사용자 단말기(210)로 비밀 데이터의 분산 저장이 완료되었음을 보고한다(780).The
그러면, 분산 암호화되어 저장된 비밀 데이터를 복구하는 과정에서 장치들 간의 데이터 흐름을 도 8에서 도 10을 참조하여 설명하고자 한다. 도 8에서 도 9는 순차적인 과정이고, 도 10은 도 9의 과정에서 마스터 저장 장치(220)로부터 비밀 키를 획득할 수 없는 경우 추가로 발생하는 과정을 과정에 해당한다.Then, the flow of data between devices in the process of recovering the secret data stored in distributed encryption will be described with reference to FIGS. 8 to 10. In FIG. 8, FIG. 9 is a sequential process, and FIG. 10 corresponds to a process that additionally occurs when the secret key cannot be obtained from the
도 8은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 암호화된 분산 데이터들을 수신하는 과정의 데이터 흐름을 도시한 도면이다.8 is a diagram illustrating a data flow in a process of receiving encrypted distributed data during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
도 8을 참조하면, 사용자 단말기(210)는 분산 저장된 비밀 데이터를 복구하기 위해서 블록 체인(240)에 비밀 데이터의 복구 요청을 기록한다(810).Referring to FIG. 8, the
그리고, 사용자 단말기(210)는 암호화된 분산 데이터를 사용자 단말기(210)로 송신하지 않은 제i 저장 장치와의 인증 절차를 수행하고, 암호화된 분산 데이터를 요청한다(820).Then, the
제i 저장 장치는 암호화된 분산 데이터를 요청받으면(820), 블록 체인에 비밀 데이터 복원 요청이 기록되었지 확인하여 사용자 단말기(210)에서 복구 서비스를 이용하는지 확인한다(830). When the i-th storage device receives a request for encrypted distributed data (820), it checks whether the request for restoring secret data has been recorded in the block chain and checks whether the
제i 저장 장치는 사용자 단말기(210)에서 복구 서비스를 이용함이 확인되면, 제i 암호화된 분산 데이터(Ti)를 사용자 단말기(210)로 송신한다(840).When it is confirmed that the
그리고, 제i 저장 장치는 제i 암호화된 분산 데이터(Ti)를 사용자 단말기(210)로 송신했음을 블록 체인(240)에 기록한다(850).Then, the ith storage device records in the
820단계에서 850단계는 t개의 저장 장치별로 수행된다. 즉, 820단계에서 850단계는 비밀 데이터를 복구하는데 필요한 암호화된 분산 데이터의 개수에 해당하는 t번 반복된다.
도 9는 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 비밀 키를 수신하고 비밀 데이터를 복구하는 과정의 데이터 흐름을 도시한 도면이다.9 is a diagram illustrating a data flow of a process of receiving a secret key and recovering secret data during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
도 9를 참조하면, 사용자 단말기(210)는 도 8에서 t개의 암호화된 분산 데이터를 수신하면, 마스터 저장 장치(220)와의 인증절차를 수행하고(910), 마스터 저장 장치(220)로 비밀 키를 요청한다(920).Referring to FIG. 9, when the
마스터 저장 장치(220)는 인증된 사용자 단말기(210)로부터 비밀 키를 요청받으면(920), 블록 체인(240)의 기록을 확인하여 사용자 단말기(210)에서 t개의 저장 장치로부터 t개의 암호화된 분산 데이터를 수신하였는지 확인한다(930).When the
마스터 저장 장치(220)는 930단계의 확인결과 비밀 데이터를 복구하기 위해서 필요한 t개의 암호화된 분산 데이터가 사용자 단말기(210)로 전달되었음을 확인하면, 도 6의 610단계에서 생성하였던 저장된 비밀 키(V)를 사용자 단말기(210)로 송신한다(940).When the
그리고, 마스터 저장 장치(220)는 비밀 키(V)를 사용자 단말기(210)로 송신했음을 블록 체인(240)에 기록한다(950).Then, the
사용자 단말기(210)는 비밀 키를 수신하면(940), t개의 암호화된 분산 데이터 각각을 복호화하여 t개의 분산 데이터를 생성한다(960).When receiving the secret key (940), the
그리고, 사용자 단말기(210)는 t개의 분산 데이터를 이용해서 비밀 데이터를 복구한다(970).Then, the
970단계를 보다 구체적으로 설명하면, 사용자 단말기(210)는 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하고, t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상수항을 비밀 데이터로 복구한다.To explain
그리고, 사용자 단말기(210)는 비밀 데이터의 복구를 완료하였음을 블록 체인(240)에 기록한다(950).Then, the
한편, 마스터 저장 장치(220)의 고장 또는 통신 장애로 마스터 저장 장치(220)로부터 비밀 키를 수신할 수 없는 경우, 사용자 단말기(210)는 다음의 도 10을 통해서 비밀 키를 획득할 수 있다.Meanwhile, when the secret key cannot be received from the
도 10은 본 발명의 일 실시 예에 따른 분산 저장 시스템에서 분산하여 저장한 데이터를 복구하는 과정 중에서 부분 비밀키들을 수신하여 비밀 키를 복구하는 과정의 데이터 흐름을 도시한 도면이다.10 is a diagram illustrating a data flow of a process of recovering a secret key by receiving partial secret keys during a process of recovering distributedly stored data in a distributed storage system according to an embodiment of the present invention.
도 10을 참조하면, 사용자 단말기(210)가 마스터 저장 장치(220)와 연결에 실패하면(1010), 부분 비밀 키 요청을 블록 체인(240)에 기록한다(1020).Referring to FIG. 10, if the
그리고, 사용자 단말기(210)는 부분 비밀 키를 사용자 단말기(210)로 송신하지 않은 제i 저장 장치와의 인증 절차를 수행하고(1030), 제i 저장 장치로 부분 비밀 키(Vi)를 요청한다(1040).Then, the
제i 저장 장치는 인증된 사용자 단말기(210)로부터 제i 부분 비밀 키(Vi)를 요청받으면(1040), 블록 체인에 부분 비밀 키 요청이 기록되었지 확인한다(1050). When the i-th storage device receives a request for the i- th partial secret key (V i ) from the authenticated user terminal 210 (1040), it checks whether the partial secret key request is recorded in the block chain (1050).
제i 저장 장치는 사용자 단말기(210)에서 블록 체인이 부분 비밀 키 요청이 기록되어 있음이 확인되면, 제i 부분 비밀 키(Vi)를 사용자 단말기(210)로 송신한다(1060).When the
그리고, 제i 저장 장치는 제i 부분 비밀 키(Vi)를 사용자 단말기(210)로 송신했음을 블록 체인(240)에 기록한다(1070).In addition, the ith storage device records in the
1030단계에서 1070단계는 n개의 저장 장치별로 수행된다. 즉, 1030단계에서 1070단계는 n번 반복된다.
사용자 단말기(210)는 n개의 저장 장치(231-234)들로부터 n개의 부분 비밀 키(V1, V2, …Vn)를 수신하면, n개의 부분 비밀 키(V1, V2, …Vn)를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 비밀 키(V)를 생성한다(1080).When the
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments and claims and equivalents fall within the scope of the following claims.
210: 사용자 단말기
220: 마스터 저장 장치
231: 제1 저장 장치
232: 제2 저장 장치
233: 제3 저장 장치
234: 제n 저장 장치210: user terminal
220: master storage device
231: first storage device
232: second storage device
233: third storage device
234: n-th storage device
Claims (23)
상기 사용자 단말기에서 비밀 키를 획득하는 단계;
상기 사용자 단말기에서 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하는 단계; 및
상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하여 저장하는 단계
를 포함하고,
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는,
상기 사용자 단말기에서 상기 비밀 키를 생성하는 단계;
상기 사용자 단말기에서 n-1개의 랜덤 키를 생성하는 단계;
상기 사용자 단말기에서 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하는 단계; 및
상기 사용자 단말기에서 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
Generating n pieces of distributed data using secret data in a user terminal;
Obtaining a secret key from the user terminal;
Generating n pieces of encrypted distributed data by encrypting each of the n pieces of distributed data in the user terminal with the secret key; And
Transmitting and storing each of the n encrypted distributed data from the user terminal to corresponding n storage devices
Including,
Obtaining the secret key from the user terminal,
Generating the secret key at the user terminal;
Generating n-1 random keys in the user terminal;
Generating V n by bitwise XORing both the secret key and the n-1 random keys at the user terminal; And
Setting the n-1 random keys and the V n as n partial secret keys in the user terminal, and transmitting a different partial secret key to each of the n storage devices
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기에서 상기 비밀 데이터를 이용해서 상기 n개의 분산 데이터를 생성하는 단계는,
상수항을 상기 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하는 단계; 및
상기 t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 상기 n개의 분산 데이터를 생성하는 단계
를 포함하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 1,
The step of generating the n pieces of distributed data using the secret data in the user terminal,
Selecting a t-1 order random polynomial (f(x)) using a constant term as the secret data; And
Substituting values from 1 to n to x of the t-1 order random polynomial (f(x)) to generate the n variance data
Including,
Where t represents the number of distributed data required to recover the secret data
A method of distributing and storing data in a distributed storage system.
상기 사용자 단말기와 상기 n개의 저장 장치들은,
정보 전달을 위해서 블록 체인을 이용하는
분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 1,
The user terminal and the n storage devices,
Using blockchain for information transfer
A method of distributing and storing data in a distributed storage system.
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는,
마스터 저장 장치에서 상기 비밀 키를 생성하는 단계; 및
상기 마스터 저장 장치에서 상기 비밀 키를 상기 사용자 단말기로 송신하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 1,
Obtaining the secret key from the user terminal,
Generating the secret key in a master storage device; And
Transmitting the secret key from the master storage device to the user terminal
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기에서 비밀 키를 획득하는 단계;
상기 사용자 단말기에서 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하는 단계; 및
상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하여 저장하는 단계
를 포함하고,
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는,
마스터 저장 장치에서 상기 비밀 키를 생성하는 단계;
상기 마스터 저장 장치에서 n-1개의 랜덤 키를 생성하는 단계;
상기 마스터 저장 장치에서 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하는 단계; 및
상기 마스터 저장 장치에서 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하는 단계; 및
상기 마스터 저장 장치에서 상기 비밀 키를 상기 사용자 단말기로 송신하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
Generating n pieces of distributed data using secret data in a user terminal;
Obtaining a secret key from the user terminal;
Generating n pieces of encrypted distributed data by encrypting each of the n pieces of distributed data in the user terminal with the secret key; And
Transmitting and storing each of the n encrypted distributed data from the user terminal to corresponding n storage devices
Including,
Obtaining the secret key from the user terminal,
Generating the secret key in a master storage device;
Generating n-1 random keys in the master storage device;
Generating V n by bitwise XORing all of the secret key and the n-1 random keys in the master storage device; And
Setting the n-1 random keys and V n as n partial secret keys in the master storage device, and transmitting a different partial secret key to each of the n storage devices; And
Transmitting the secret key from the master storage device to the user terminal
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기, 상기 n개의 저장 장치들 및 상기 마스터 저장 장치는,
정보 전달을 위해서 블록 체인을 이용하는
분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 5,
The user terminal, the n storage devices, and the master storage device,
Using blockchain for information transfer
A method of distributing and storing data in a distributed storage system.
상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 상기 n개의 저장 장치로 송신하여 저장하는 단계는,
상기 사용자 단말기에서 상기 n개의 저장 장치 각각에 인증하는 단계; 및
인증에 성공한 저장 장치 각각으로 대응하는 암호화된 분산 데이터를 송신하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 1,
The step of transmitting and storing each of the n encrypted distributed data from the user terminal to the corresponding n storage devices,
Authenticating each of the n storage devices by the user terminal; And
Transmitting encrypted distributed data corresponding to each storage device that has successfully authenticated
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기에서 상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 암호화된 분산 데이터를 수신하는 단계;
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계;
상기 사용자 단말기에서 t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하는 단계; 및
상기 사용자 단말기에서 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하는 단계
를 더 포함하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 1,
Receiving, at the user terminal, encrypted distributed data from at least t storage devices among the n storage devices;
Obtaining the secret key from the user terminal;
Generating t pieces of distributed data by decrypting t pieces of encrypted distributed data in the user terminal with the secret key; And
Restoring the secret data by using the t distributed data in the user terminal
Including more,
Where t represents the number of distributed data required to recover the secret data
A method of distributing and storing data in a distributed storage system.
상기 사용자 단말기에서 상기 비밀 키를 획득하는 단계는,
상기 사용자 단말기에서 마스터 저장 장치를 인증하는 단계; 및
상기 마스터 저장 장치로부터 상기 비밀 키를 수신하여 획득하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 9,
Obtaining the secret key from the user terminal,
Authenticating a master storage device in the user terminal; And
Receiving and obtaining the secret key from the master storage device
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기에서 비밀 키를 획득하는 단계;
상기 사용자 단말기에서 상기 n개의 분산 데이터 각각을 상기 비밀 키로 암호화하여 n개의 암호화된 분산 데이터를 생성하는 단계; 및
상기 사용자 단말기에서 상기 n개의 암호화된 분산 데이터를 각각을 대응하는 n개의 저장 장치로 송신하여 저장하는 단계;
상기 사용자 단말기에서 상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 암호화된 분산 데이터를 수신하는 단계;
상기 사용자 단말기에서 상기 n개의 저장 장치 각각에 인증하는 단계;
상기 n개의 저장 장치로부터 n개의 부분 비밀 키를 수신하는 단계;
수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성하는 단계;
상기 사용자 단말기에서 t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하는 단계; 및
상기 사용자 단말기에서 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하는 단계
를 포함하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
Generating n pieces of distributed data using secret data in a user terminal;
Obtaining a secret key from the user terminal;
Generating n pieces of encrypted distributed data by encrypting each of the n pieces of distributed data in the user terminal with the secret key; And
Transmitting and storing the n pieces of encrypted distributed data from the user terminal to corresponding n storage devices;
Receiving, at the user terminal, encrypted distributed data from at least t storage devices among the n storage devices;
Authenticating each of the n storage devices by the user terminal;
Receiving n partial secret keys from the n storage devices;
Generating the secret key by bitwise XORing all the n partial secret keys received;
Generating t pieces of distributed data by decrypting t pieces of encrypted distributed data in the user terminal with the secret key; And
Restoring the secret data by using the t distributed data in the user terminal
Including,
Where t represents the number of distributed data required to recover the secret data
A method of distributing and storing data in a distributed storage system.
상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하는 단계는,
상기 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하는 단계; 및
상기 t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상기 상수항을 상기 비밀 데이터로 복구하는 단계
를 포함하는 분산 저장 시스템에서 데이터를 분산해서 저장하는 방법.
The method of claim 9,
Restoring the secret data using the t distributed data,
Recovering a t-1 order random polynomial (f(x)) using the t variance data; And
Checking the constant term of the t-1 order random polynomial (f(x)) and restoring the constant term to the secret data
A method of distributing and storing data in a distributed storage system comprising a.
상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치
를 포함하고,
상기 사용자 단말기는,
n-1개의 랜덤 키를 생성하고, 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하고,
상기 n개의 저장 장치는,
상기 사용자 단말기로부터 수신한 상기 부분 비밀 키를 저장하는
데이터를 분산해서 저장하는 분산 저장 시스템.
Generate n pieces of distributed data using secret data, generate a secret key, and encrypt each of the n pieces of distributed data with the secret key to generate n pieces of encrypted distributed data, and each of the n pieces of encrypted distributed data A user terminal that transmits to the corresponding n storage devices; And
The n storage devices for storing encrypted distributed data received from the user terminal
Including,
The user terminal,
Generate n-1 random keys, and generate V n by bitwise XORing both the secret key and the n-1 random keys, and the n-1 random keys and the V n Set to n partial secret keys, and transmit one different partial secret key to each of the n storage devices,
The n storage devices,
Storing the partial secret key received from the user terminal
Distributed storage system that distributes and stores data.
상기 사용자 단말기는,
상수항을 상기 비밀 데이터로 하는 t-1차 랜덤 다항식(f(x))을 선택하고, 상기 t-1차 랜덤 다항식(f(x))의 x에 1부터 n까지의 값을 대입하여 상기 n개의 분산 데이터를 생성하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
데이터를 분산해서 저장하는 분산 저장 시스템.
The method of claim 13,
The user terminal,
Selecting a t-1 order random polynomial (f(x)) with a constant term as the secret data, and substituting a value from 1 to n to x of the t-1 order random polynomial (f(x)), n Generate variance data,
Where t represents the number of distributed data required to recover the secret data
Distributed storage system that distributes and stores data.
상기 사용자 단말기는,
상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
데이터를 분산해서 저장하는 분산 저장 시스템.
The method of claim 13,
The user terminal,
Receive encrypted distributed data stored from at least t storage devices among the n storage devices, obtain the secret key, decrypt t encrypted distributed data with the secret key to generate t distributed data, and the t Recover the secret data using the distributed data,
Where t represents the number of distributed data required to recover the secret data
Distributed storage system that distributes and stores data.
상기 사용자 단말기는,
상기 t개의 분산 데이터를 이용해서 t-1차 랜덤 다항식(f(x))을 복구하고, 상기 t-1차 랜덤 다항식(f(x))의 상수항을 확인하고, 상기 상수항을 상기 비밀 데이터로 복구하는
데이터를 분산해서 저장하는 분산 저장 시스템.
The method of claim 16,
The user terminal,
Using the t variance data, a t-1 order random polynomial (f(x)) is recovered, a constant term of the t-1 order random polynomial (f(x)) is identified, and the constant term is used as the secret data. To recover
Distributed storage system that distributes and stores data.
상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치
를 포함하고,
상기 사용자 단말기는,
상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 n개의 저장 장치로 n개의 부분 비밀 키를 요청하여 수신하고, 수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
데이터를 분산해서 저장하는 분산 저장 시스템.
Generate n pieces of distributed data using secret data, generate a secret key, and encrypt each of the n pieces of distributed data with the secret key to generate n pieces of encrypted distributed data, and each of the n pieces of encrypted distributed data A user terminal that transmits to the corresponding n storage devices; And
The n storage devices for storing encrypted distributed data received from the user terminal
Including,
The user terminal,
Receive encrypted distributed data stored from at least t storage devices among the n storage devices, request and receive n partial secret keys from the n storage devices, and receive all the n partial secret keys in bit units The secret key is generated by bitwise XOR, the t pieces of encrypted distributed data are decrypted with the secret key to generate t pieces of distributed data, and the secret data is restored using the t pieces of distributed data,
Where t represents the number of distributed data required to recover the secret data
Distributed storage system that distributes and stores data.
상기 사용자 단말기의 요청에 따라 상기 비밀 키를 생성하여 상기 사용자 단말기로 송신하는 상기 마스터 저장 장치; 및
상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치
를 포함하고,
상기 마스터 저장 장치는,
n-1개의 랜덤 키를 생성하고, 상기 비밀 키와 상기 n-1개의 랜덤 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 Vn을 생성하고, 상기 n-1개의 랜덤 키와 상기 Vn을 n개의 부분 비밀 키로 설정하고, 상기 n개의 저장 장치 각각으로 서로 다른 하나의 부분 비밀 키를 송신하고,
상기 n개의 저장 장치는,
상기 마스터 저장 장치로부터 수신한 상기 부분 비밀 키를 저장하는
데이터를 분산해서 저장하는 분산 저장 시스템.
Generate n pieces of distributed data using secret data, receive a secret key from a master storage device, encrypt each of the n pieces of distributed data with the secret key to generate n pieces of encrypted distributed data, and the n pieces of encrypted A user terminal for transmitting each of the distributed data to corresponding n storage devices;
The master storage device generating the secret key according to the request of the user terminal and transmitting it to the user terminal; And
The n storage devices for storing encrypted distributed data received from the user terminal
Including,
The master storage device,
Generate n-1 random keys, and generate V n by bitwise XORing both the secret key and the n-1 random keys, and the n-1 random keys and the V n Set to n partial secret keys, and transmit one different partial secret key to each of the n storage devices,
The n storage devices,
Storing the partial secret key received from the master storage device
Distributed storage system that distributes and stores data.
상기 사용자 단말기는,
상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 비밀 키를 획득하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
데이터를 분산해서 저장하는 분산 저장 시스템.
The method of claim 19,
The user terminal,
Receive encrypted distributed data stored from at least t storage devices among the n storage devices, obtain the secret key, decrypt t encrypted distributed data with the secret key to generate t distributed data, and the t Recover the secret data using the distributed data,
Where t represents the number of distributed data required to recover the secret data
Distributed storage system that distributes and stores data.
상기 사용자 단말기는,
상기 비밀키를 상기 마스터 저장 장치로부터 수신하여 획득하는
데이터를 분산해서 저장하는 분산 저장 시스템.
The method of claim 21,
The user terminal,
Obtaining and obtaining the secret key from the master storage device
Distributed storage system that distributes and stores data.
상기 사용자 단말기의 요청에 따라 상기 비밀 키를 생성하여 상기 사용자 단말기로 송신하는 상기 마스터 저장 장치; 및
상기 사용자 단말기로부터 수신한 암호화된 분산 데이터를 저장하는 상기 n개의 저장 장치
를 포함하고,
상기 사용자 단말기는,
상기 n개의 저장 장치 중에서 적어도 t개의 저장 장치로부터 저장된 암호화된 분산 데이터를 수신하고, 상기 n개의 저장 장치로 n개의 부분 비밀 키를 요청하여 수신하고, 수신된 상기 n개의 부분 비밀 키를 모두 비트단위 배타적 논리합(Bitwise XOR)하여 상기 비밀 키를 생성하고, t개의 암호화된 분산 데이터를 상기 비밀 키로 복호화하여 t개의 분산 데이터를 생성하고, 상기 t개의 분산 데이터를 이용해서 상기 비밀 데이터를 복구하고,
상기 t는 상기 비밀 데이터를 복구하는데 필요한 분산 데이터의 개수를 나타내는
데이터를 분산해서 저장하는 분산 저장 시스템.Generate n pieces of distributed data using secret data, receive a secret key from a master storage device, encrypt each of the n pieces of distributed data with the secret key to generate n pieces of encrypted distributed data, and the n pieces of encrypted A user terminal for transmitting each of the distributed data to corresponding n storage devices;
The master storage device generating the secret key according to the request of the user terminal and transmitting it to the user terminal; And
The n storage devices for storing encrypted distributed data received from the user terminal
Including,
The user terminal,
Receive encrypted distributed data stored from at least t storage devices among the n storage devices, request and receive n partial secret keys from the n storage devices, and receive all the n partial secret keys in bit units The secret key is generated by bitwise XOR, the t pieces of encrypted distributed data are decrypted with the secret key to generate t pieces of distributed data, and the secret data is restored using the t pieces of distributed data,
Wherein t represents the number of distributed data required to recover the secret data
Distributed storage system that distributes and stores data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180169812A KR102181645B1 (en) | 2018-12-26 | 2018-12-26 | System and method for distributing and storing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180169812A KR102181645B1 (en) | 2018-12-26 | 2018-12-26 | System and method for distributing and storing data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200080011A KR20200080011A (en) | 2020-07-06 |
KR102181645B1 true KR102181645B1 (en) | 2020-11-24 |
Family
ID=71571646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180169812A KR102181645B1 (en) | 2018-12-26 | 2018-12-26 | System and method for distributing and storing data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102181645B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102406388B1 (en) * | 2021-06-03 | 2022-06-08 | 보노테크놀로지스 주식회사 | A method and an apparatus for master key management based on sharing algorithms for block chain transactions |
KR102561247B1 (en) * | 2021-07-16 | 2023-07-31 | 주식회사 파라메타 | Method for transmitting data using a secret distributed |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101687287B1 (en) * | 2014-08-18 | 2017-01-02 | 남기원 | Individual data managing system and method of the same |
KR101903246B1 (en) | 2016-11-28 | 2018-10-01 | 인하대학교 산학협력단 | Method and system for creating encryption key based on face image |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101103403B1 (en) * | 2010-06-24 | 2012-01-05 | 주식회사 월시스 | Control method of data management system with emproved security |
KR20180029695A (en) * | 2016-09-13 | 2018-03-21 | 김동만 | System and method for transmitting data using block-chain |
-
2018
- 2018-12-26 KR KR1020180169812A patent/KR102181645B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101687287B1 (en) * | 2014-08-18 | 2017-01-02 | 남기원 | Individual data managing system and method of the same |
KR101903246B1 (en) | 2016-11-28 | 2018-10-01 | 인하대학교 산학협력단 | Method and system for creating encryption key based on face image |
Non-Patent Citations (1)
Title |
---|
Alfred J. Menezes 외 2명, Handbook of Applied Cryptography, CRC Press (1996.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20200080011A (en) | 2020-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10020939B2 (en) | Device, server and method for providing secret key encryption and restoration | |
US8312269B2 (en) | Challenge and response access control providing data security in data storage devices | |
US7596812B2 (en) | System and method for protected data transfer | |
EP3066610B1 (en) | Data protection in a storage system using external secrets | |
US20160277373A1 (en) | Securing files under the semi-trusted user threat model using per-file key encryption | |
US10853497B2 (en) | Method and system for providing an update of code on a memory-constrained device | |
JP2008533882A (en) | How to backup and restore encryption keys | |
CN106685645B (en) | A kind of cipher key backup for safety chip business cipher key and restoration methods and system | |
US10985914B2 (en) | Key generation device and key generation method | |
CN111970114B (en) | File encryption method, system, server and storage medium | |
CN112118245B (en) | Key management method, system and equipment | |
KR20170081504A (en) | Method and apparatus for deduplication of encrypted data | |
CN111191217B (en) | Password management method and related device | |
KR102181645B1 (en) | System and method for distributing and storing data | |
CN116134825A (en) | Content transmission protection method and related equipment thereof | |
US20210111906A1 (en) | Pseudonym credential configuration method and apparatus | |
US8589690B2 (en) | Information processing apparatus, server apparatus, medium recording information processing program and information processing method | |
KR20210020699A (en) | Method for performing backup and recovery private key in consortium blockchain network, and device using them | |
US20220286283A1 (en) | Secure Recovery of Security Credential Information | |
KR101974345B1 (en) | Data communication apparatus for connected vehicle supporting secure communication between vehicles via digital signature and operating method thereof | |
KR20160128170A (en) | Device, server and method for providing a secret key encryption and restore | |
KR102561247B1 (en) | Method for transmitting data using a secret distributed | |
CN113938278B (en) | Key management and protection method for encrypted hard disk | |
CN101470643B (en) | Fixed hardware security unit backup and recovery method and system | |
JP6717730B2 (en) | Terminal device, key providing system, key providing method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |