KR20190022344A - Method and apparatus for securing data - Google Patents
Method and apparatus for securing data Download PDFInfo
- Publication number
- KR20190022344A KR20190022344A KR1020180096360A KR20180096360A KR20190022344A KR 20190022344 A KR20190022344 A KR 20190022344A KR 1020180096360 A KR1020180096360 A KR 1020180096360A KR 20180096360 A KR20180096360 A KR 20180096360A KR 20190022344 A KR20190022344 A KR 20190022344A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- processor
- partial
- noise
- protection device
- Prior art date
Links
Images
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- 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
Abstract
Description
본 발명은 데이터 보호 방법 및 데이터를 보호하는 장치에 관한 것이다.The present invention relates to a data protection method and an apparatus for protecting data.
인간의 모든 생활이 정보가 되어 수집되고 활용되는 IoT 기반의 빅데이터 환경에서, 서버에 수집된 데이터에 대한 공격 기법이 날이 갈수록 지능화되고 다양해지고 있다. 기존의 공격 기법에 대하여 지금까지 알려진 대응 방법은 데이터에 대한 위협을 완벽하게 차단하는 데에 한계가 있다. 또한, 빈번히 발생하는 개인 정보 유출 사례에서 알 수 있듯이, 해킹을 원천적으로 방지하는 것은 매우 어려우며, 따라서 데이터가 관리되는 서버의 권한을 해킹 등을 통해서 공격자가 획득한 경우에 대해서도 데이터를 보호하기 위한 대비책이 요구되고 있다.In an IoT-based big data environment where all human lives are gathered and utilized as information, attack techniques against data collected on servers are getting more intelligent and diverse. Known countermeasures against existing attack techniques have a limitation in completely blocking data threats. In addition, as can be seen from the frequent occurrence of personal information leakage, it is very difficult to prevent hacking at its source. Therefore, even if an attacker acquires the authority of the server on which data is managed, .
데이터에 대한 공격이나 데이터의 유출을 근본적으로 방어하기 위한 방법으로서, 다양한 형태의 암호화 기술 중심의 연구가 진행되어 왔다. 그 예로, 검색 가능 암호, 순서 보존 암호, 암호데이터 중복 처리 및 소유권 관리 기술 등이 있으며, 데이터 암호화를 기반으로 암호 데이터 활용을 위한 부가 기능 제공이 주요 연구 주제라고 할 수 있다. 하지만, 상기한 예와 같은 암호화 기반의 보호 방법들은 저장된 데이터를 활용하는 데에 큰 제약이 발생하기 때문에 적용 범위가 제한되며 최근 발생하는 랜섬웨어 등의 데이터 훼손 공격에 무력화되는 단점을 지니고 있다. As a method to fundamentally defend against attacks on data or leakage of data, various types of encryption technologies have been studied. For example, searchable ciphers, order preservation ciphers, cipher data duplication processing, and proprietary management techniques, and providing additional functions for cipher data based on data encryption are the main research topics. However, the encryption-based protection methods as described above have a disadvantage in that they are limited in their application range because they have a great restriction to utilize the stored data, and they are ineffective in recent data attack such as Raman software.
반면, 서버에 저장된 데이터에 대한 복원성 검증과 관련된 분야도 연구가 되고 있다. 대표적으로 PDP(Provable Data Possession)와 PoR(Proof of Retrievability) 기술이 있다. PDP 기술은 서버가 실제 저장하고 있는 데이터의 존재성만을 제공하는 반면, PoR 기술은 데이터가 일부 훼손되는 경우 원본 데이터에 대한 복원 기능을 제공한다. PoR 기술의 데이터 복원 기술은 오류 정정 코드(ECC, error correcting code)를 적용하는 방법에 기반하고 있다. On the other hand, research related to the verification of stability of data stored in the server is also being studied. Typically, there are PDP (Provable Data Possession) and PoR (Proof of Retrievability) technologies. While the PDP technology provides only the presence of the data that the server actually stores, PoR technology provides a restore function to the original data when the data is partially damaged. Data restoration technology of PoR technology is based on applying error correcting code (ECC).
단말(데이터 소유자)은 자신의 데이터를 가공하여, 데이터가 일부 훼손되는 경우에도 복원 가능한 부호화 데이터를 생성한다. 이러한 부호화 기법으로는 다양한 오류 정정 코드 기법이 사용되고 있다. 이러한 부호화 데이터는 일부 데이터 훼손에 대한 원본 데이터 복원 기능을 제공하여, 네트워크 전송 오류나 디스크의 일부 부분에서의 물리적인 오류에 대한 데이터 보호 기능으로 활용된다. The terminal (data owner) processes its own data and generates recoverable encoded data even if the data is partially damaged. Various error correcting code schemes have been used as such coding schemes. This coded data provides original data restoration function for some data corruption, and is used as a data protection function for a network transmission error or a physical error in a part of the disk.
다만, 공격자가 해킹 등의 공격을 통해 특정 서버의 권한을 획득한 상황에서 공격자는 그 서버에 저장된 모든 데이터를 훼손하는 것이 가능하기 때문에, 일반적인 오류 정정 코드 적용 방식으로는 이러한 공격을 대응할 수 없다. 또한, 오류 정정 코드는 데이터의 기밀성을 보장하지 않기 때문에, 전체 부호화된 데이터를 공격자가 획득한 경우 손쉽게 원본 데이터를 복원할 수 있다는 단점이 있다. 특히, 최근 문제가 되고 있는 랜섬웨어의 경우, 공격한 서버의 모든 데이터를 훼손하기 때문에 일반적인 방식의 오류 정정 코드 적용 방식으로는 랜섬웨어 공격을 방지하기는 어렵다. However, since an attacker can compromise all the data stored in the server in the situation where an attacker has acquired the privilege of a specific server through an attack such as a hacking, a general error correcting code application method can not cope with such an attack. In addition, since the error correction code does not guarantee the confidentiality of data, there is a disadvantage that the original data can be easily restored when the entire encoded data is acquired by an attacker. In particular, in case of Ransomware, which is a recent problem, it is difficult to prevent the Ransomware attack by applying the general error correction code because it corrupts all the data of the attacked server.
즉, 데이터 암호화 기술은 서버에 저장된 데이터에 대한 원천적인 보호 기능을 제공하지만, 데이터 활용성을 저하시킨다는 문제를 내포하고 있으며, 최근 랜섬웨어 등의 데이터 훼손 공격에 대한 해결책을 제시하지 못하고 있다.In other words, although the data encryption technology provides original protection function for the data stored in the server, it has a problem of deteriorating the data utilization, and recently it can not provide a solution against the data corruption attack such as Ransomware.
본 발명의 실시예는 서버에 분산되어 저장되는 데이터에 대한 보안성의 문제와 분산된 데이터에 대한 활용성의 문제를 해결하는 방법 및 장치를 제공하는 것이다.Embodiments of the present invention provide a method and apparatus for solving the problem of security for data distributed and stored in a server and the problem of usability for distributed data.
본 발명의 실시예에 따른 데이터 보호 장치는 데이터 처리를 위한 정보를 저장하는 메모리; 원본 데이터를 복수의 부분 데이터로 분할하고, 상기 복수의 부분 데이터 각각의 상기 원본 데이터 내에서의 위치를 무작위로 결정하여 복수의 분할 데이터들을 생성하는 프로세서; 및 상기 복수의 분할 데이터들을 각각 복수의 서버로 전송하는 통신부를 포함할 수 있다.A data protection apparatus according to an embodiment of the present invention includes a memory for storing information for data processing; A processor for dividing original data into a plurality of partial data and randomly determining positions of the plurality of partial data in the original data to generate a plurality of divided data; And a communication unit for transmitting the plurality of divided data to a plurality of servers, respectively.
상기 프로세서는 상기 복수의 부분 데이터들 중 서로 다른 부분 데이터의 위치를 서로 치환할 수 있다.The processor may replace the positions of different partial data among the plurality of partial data with each other.
상기 프로세서는 상기 메모리에 저장된 비밀키를 획득하고, 상기 비밀키를 이용하여 의사 난수를 생성하며, 상기 의사 난수를 이용하여 상기 복수의 부분 데이터들의 위치를 무작위로 결정할 수 있다.The processor may obtain a secret key stored in the memory, generate a pseudo-random number using the secret key, and randomly determine the location of the plurality of partial data using the pseudo-random number.
상기 프로세서는 상기 원본 데이터에 오류 정정 코드(ECC, error correcting code)를 적용하여 부호화 데이터를 획득하고, 상기 비밀키를 이용하여 복수의 노이즈 조각들을 생성하며, 상기 노이즈 조각들을 상기 부호화 데이터에 무작위로 삽입하고, 상기 부호화 데이터를 복수의 부호화 부분 데이터들로 분할하며, 상기 복수의 부호화 부분 데이터들의 위치를 무작위로 결정하여 상기 복수의 분할 데이터들을 생성할 수 있다.Wherein the processor obtains encoded data by applying an error correcting code (ECC) to the original data, generates a plurality of noise fragments using the secret key, and randomly assigns the noise fragments to the encoded data The encoded data may be divided into a plurality of encoded partial data, and the plurality of divided data may be generated by randomly determining the positions of the plurality of encoded partial data.
상기 프로세서는 상기 비밀키를 이용하여 노이즈 스트링을 생성하고, 상기 노이즈 스트링에 기반하여, 상기 노이즈 조각들이 삽입될 위치와 값을 결정할 수 있다.The processor may generate the noise string using the secret key, and determine, based on the noise string, the location and value at which the noise fragments are to be inserted.
상기 통신부는 상기 복수의 서버로부터 상기 복수의 분할 데이터들을 수신하고, 상기 프로세서는 상기 복수의 분할 데이터들에 포함된 상기 복수의 부분 데이터들의 위치를 상기 원본 데이터 내에서의 변경 전 위치로 복원할 수 있다.Wherein the communication unit receives the plurality of divided data from the plurality of servers and the processor can restore the position of the plurality of partial data included in the plurality of divided data to a position before the change in the original data have.
상기 프로세서는 상기 비밀키를 이용하여 상기 복수의 분할 데이터들로부터 상기 복수의 노이즈 조각들을 제거할 수 있다.The processor may remove the plurality of noise fragments from the plurality of partitioned data using the secret key.
본 발명의 실시예에 따르면, 문서 파쇄기와 유사하게 디지털 정보를 작은 조각으로 분해하여, 데이터를 복수의 장소에 분산시켜 저장함으로써, 공격자가 분산된 데이터의 일부를 획득한 경우에도 전체 원본 데이터를 복원하는 것을 방지하고, 정당한 사용자는 분산된 일부 데이터가 훼손된 경우에도 원본 데이터를 정확하게 복원할 수 있어, 전체 데이터의 기밀성과 복원성을 제공할 수 있다.According to the embodiment of the present invention, similar to the document shredder, digital information is decomposed into small pieces and the data is distributed and stored in a plurality of places, so that even if the attacker acquires a part of the distributed data, And a legitimate user can accurately restore the original data even if some distributed data is damaged, thereby providing the confidentiality and resilience of the entire data.
또한, 데이터 암호화 기법을 사용하지 않음으로써, 데이터를 보호하는 데에 필요한 연산량을 최소화할 수 있는 효율적인 데이터 다형 분산 기술을 제공할 수 있다.In addition, by not using the data encryption technique, it is possible to provide an efficient data polymorphic dispersion technique that minimizes the amount of computation required to protect data.
도 1은 본 발명의 실시 예에 따른 데이터 보호 시스템을 도시한다.
도 2는 본 발명의 실시 예에 따른 데이터 분할 방법을 나타낸 흐름도이다.
도 3은 본 발명의 실시 예에 따른 노이즈 조각 추가 방법을 나타낸 흐름도이다.
도 4는 본 발명의 실시 예에 따른 데이터 치환 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시 예에 따른 데이터 복원 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 데이터 보호 과정을 도시한다.Figure 1 illustrates a data protection system in accordance with an embodiment of the present invention.
2 is a flowchart illustrating a data dividing method according to an embodiment of the present invention.
3 is a flowchart illustrating a method of adding a noise piece according to an embodiment of the present invention.
4 is a flowchart illustrating a data replacement method according to an embodiment of the present invention.
5 is a flowchart illustrating a data restoration method according to an embodiment of the present invention.
FIG. 6 illustrates a data protection process according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
도 1은 본 발명의 실시 예에 따른 데이터 보호 시스템을 도시한다.Figure 1 illustrates a data protection system in accordance with an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 데이터 보호 시스템(100)은 데이터를 소유하는 단말(110) 그리고 데이터를 저장하는 복수의 서버들(121, 122, 123, 124)을 포함할 수 있다. 단말(110)은 통신부(111), 메모리(113) 그리고 통신부(111) 및 메모리(113)를 제어하기 위한 프로세서(112)를 포함할 수 있다. 1, a
통신부(111)는 각 서버들(121, 122, 123, 124)과 통신(예를 들면, 무선 통신) 방식을 설정하고, 설정된 통신 방식을 이용하여 데이터를 각 서버들(121, 122, 123, 124)로 전송할 수 있다.The
메모리(113)는 외부로부터 데이터를 획득하여 저장할 수 있다. 메모리(113)는 데이터를 본 발명의 데이터 보호 방법에 따라 가공하기 위한 정보들(예를 들면, 비밀키 등)을 저장할 수 있다.The
프로세서(112)는 메모리(113)에 저장된 데이터를 가공 및 분할하여 각 서버들(121, 122, 123, 124)로 전송할 수 있다. 이를 위해, 프로세서(112)는 메모리(113)에 저장된 데이터에 대하여 오류 정정 코드(ECC, error correcting code)를 적용하고, 오류 정정 코드가 적용된 부호화 데이터(encoded data)를 분할하며, 분할된 각 분할 데이터들을 각 서버들(121, 122, 123, 124)로 전송할 수 있다. 이러한 오류 정정 코드 적용 기법(부호화 기법)으로는 다양한 오류 정정 코드 적용 방식을 사용하며, 본 발명에서는 특정 오류 정정 코드 적용 알고리즘으로 한정하지 않는다. The
각 서버들(121, 122, 123, 124)는 분할된 각 분할 데이터들을 각 서버에 포함된 저장 장치(미도시)에 저장할 수 있다.Each of the
단말(110)로부터 수신된 각 분할 데이터들을 저장한 후에 다시 단말(110)로부터 각 분할 데이터들에 대한 요청이 획득되면, 각 서버들(121, 122, 123, 124)은 각 분할 데이터들을 단말(110)로 전송한다. 단말(110)은 수신된 분할 데이터들을 취합하여 원본 데이터를 복원할 수 있다. Each of the
도 2는 본 발명의 실시 예에 따른 데이터 분할 방법을 나타낸 흐름도이다. 2 is a flowchart illustrating a data dividing method according to an embodiment of the present invention.
도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 데이터 보호 방법은 원본 데이터 획득 단계(S201), 분할 단계(S203) 및 데이터 전송 단계(S205)을 포함할 수 있다. As shown in FIG. 2, the data protection method according to the embodiment of the present invention may include an original data acquisition step (S201), a separation step (S203), and a data transmission step (S205).
S201 단계에서, 단말(예: 도 1의 단말(110))은 복수의 부분 데이터들이 일정한 순서로 배열된 원본 데이터를 획득할 수 있다. In step S201, the terminal (e.g., the
먼저, 프로세서(112)는 데이터의 가공에 이용하기 위한 X-bits의 비밀키(SK)를 메모리(113)로부터 획득할 수 있다. First, the
그 다음, 프로세서(112)는 변수 S(제1 변수), L(제2 변수), K(제3 변수), N(제4 변수)의 값을 선택할 수 있다. S(제1 변수)는 원본 데이터를 저장하기 위한 서버의 수를 의미한다. L(제2 변수)은 원본 데이터를 처리하기 위한 최소 단위 비트열의 크기를 의미한다. 즉, 프로세서(112)는 L-bits의 비트열을 부분 데이터를 구성하는 하나의 문자로 취급한다. 프로세서(112)는 원본 데이터를 L-bits 단위의 부분 데이터로 분할하여 처리한다. K(제3 변수)는 오류 정정 코드를 위한 변수이며, 하나의 블록 데이터에 포함되는 부분 데이터의 개수이다. 즉, 하나의 블록 데이터는 하나의 블록 데이터에 포함되는 부분 데이터의 개수 K와 부분 데이터 당 최소 단위 비트열의 크기 L의 곱한 값만큼의 비트열인 K*L bits의 비트열을 포함하며, 원본 데이터의 전체 bits는 K*L의 배수가 될 수 있다. N(제4 변수)은 오류 정정 코드를 위한 변수이며, 오류 정정 범위(error correcting bound)를 결정하는 변수로, 원하는 오류 정정 범위와 K(제3 변수)로부터 결정된다. N(제4 변수)는 오류 정정 코드에 기반하여 생성된다. The
프로세서(112)는 오류 정정 코드를 원본 데이터에 적용하여 N개의 부분 데이터를 포함하는 복수의 블록을 포함하는 부호화 데이터를 생성한다. 즉, KL-bits로 구성된 각각의 블록들이 NL-bits로 확장되며, 이를 통해 전체 부호화 데이터의 길이 또한 원본 데이터에 비해 N/K의 비율로 확장된다. The
프로세서(112)는 부호화 데이터에 본 발명의 실시예에 따라 생성되는 노이즈 조각들을 추가할 수 있다. The
단계 S203에서, 프로세서(112)는 부분 데이터들을 무작위로 분할하여 복수의 분할 데이터를 생성할 수 있다. In step S203, the
예를 들면, 프로세서(112)는 원본 데이터를 복수의 부분 데이터로 분할하고, 복수의 부분 데이터들의 위치를 무작위로 결정하며, 복수의 부분 데이터들을 이용하여 복수의 분할 데이터들을 생성할 수 있다.For example, the
예를 들면, 노이즈 조각을 추가하여 생성된 부호화 데이터 F'를 F' = F'[1] || F'[2] || F'[3] || ... F'[S] || F'[S+1] || F'[S+2] ...와 같이 정의할 수 있다. 각각의 F'[i]는 부분 데이터를 의미한다. For example, if the encoded data F 'generated by adding noise fragments is F' = F '[1] || F '[2] || F '[3] || ... F '[S] || F '[S + 1] || F '[S + 2] .... Each F '[i] means partial data.
예를 들면, 프로세서(112)는 각 부분 데이터를 저장할 서버에 대한 분할 방식을 결정할 수 있다. For example, the
예를 들면, 프로세서(112)는 순차적 분할 방식을 선택할 수 있다. 순차적 분할 방식이란, 프로세서(112)이 L-bits 길이의 부분 데이터로 구성된 부분 데이터들을 부분 데이터들의 원본 데이터 내에서의 미리 결정된 최초 순서에 기반하여 각 서버에 순차적으로 배정하는 방식이다.For example, the
순차적 분할 방식에서, 프로세서(112)는 첫 번째 서버로 전송할 첫번째 분할 데이터를 F'1 = F'[1] || F'[S+1] || ... || F'[tS+1] || ...와 같이 매 S번째 부분 데이터로 구성할 수 있다. 마찬가지로 프로세서(112)는 a번째 서버로 전송할 a번째 부분데이터를 F'a = F'[a] || F'[S+a] || ... || F'[tS+a] || ...로 구성할 수 있다.In a sequential partitioning scheme, the
또한, 상기한 순차적 분할 방식과 다르게, 프로세서(112)는 무작위 분할 방식을 결정할 수 있다. Also, unlike the sequential division method, the
예를 들면, 무작위 분할 방식에 따르면, 프로세서(112)는 의사 난수 생성 함수(Pseudorandom generating function)을 이용하여 함수 P를 획득할 수 있다. 함수 P는 메모리(113)로부터 획득한 비밀키(SK)로부터 랜덤 비트열과 암호학적으로 구별할 수 없는 고정된 비트열을 생성하는 함수이다. 함수 P는 해쉬 함수, 대칭키 암호 등의 암호 기반 기술이 지니는 일방향성을 이용하여 생성될 수 있다. For example, according to the random partitioning scheme, the
P: {0,1}X -> {1, 2, ..., S}로 정의하고, X는 비밀키(SK)의 길이로 정의할 수 있다. P: {0,1} X -> {1, 2, ..., S}, and X can be defined as the length of the secret key (SK).
단말은 F' = F'[1] || F'[2] || F'[3] || ... F'[S] || F'[S+1] || F'[S+2] || ...에 대해서 i번째 부분 데이터 F'[i]를 P(SK + i)번째 서버로 전송할 수 있다. 즉, 인덱스 집합 A = {i | P(SK + i) = a}에 대해서 A = {a1, a2, a3, ...}라고 가정하면, a번째 부분 데이터는 F' a = F'[a1] || F'[a2] || F'[a3] || ...로 구성될 수 있다. The terminal is F '= F' [1] || F '[2] || F '[3] || ... F '[S] || F '[S + 1] || F '[S + 2] || ..., i-th partial data F '[i] to the P (SK + i) th server. That is, the index set A = {i | Assuming that A = {a1, a2, a3, ...} for P (SK + i) = a}, the ath partial data is F 'a = F' [a1] || F '[a2] || F '[a3] || ... < / RTI >
함수 P가 암호학적으로 안전한 의사 함수(pseudorandom function)이며 원본 데이터 F가 충분한 길이(예를 들면, 미리 설정된 비트 이상의 크기)를 가진다면, 각각의 서버에 저장되는 부분 데이터의 양은 유사하게 분할된다. If the function P is a cryptographically secure pseudorandom function and the original data F has a sufficient length (e.g., a size greater than a predetermined bit), then the amount of partial data stored in each server is similarly divided.
단계 S307에서, 프로세서(112)는 복수의 분할 데이터들을 서버들(예: 도 1의 서버들(121, 122, 123, 124))로 전송할 수 있다. 프로세서(112)는 분할 데이터들을 전송한 후, 메모리(113)에 저장된 분할 데이터들을 삭제할 수 있고, 서버(120)는 전송된 분할 데이터들을 저장할 수 있다. In step S307, the
도 3은 본 발명의 실시 예에 따른 노이즈 조각 추가 방법을 나타낸 흐름도이다. 3 is a flowchart illustrating a method of adding a noise piece according to an embodiment of the present invention.
도 3에 도시된 바와 같이, 단계 S301에서, 프로세서(112)는 부호화 데이터를 획득하고, 메모리(113)에 저장된 비밀키를 획득할 수 있다. 먼저, 프로세서(112)는 부호화 데이터 EF = EF[1] || EF[2] || EF[3] || ..., |EF[i]| = L을 획득하고 난 후 부호화 데이터에 노이즈 조각을 추가하기 위해 비밀키를 획득할 수 있다.As shown in Fig. 3, in step S301, the
단계 S303에서, 프로세서(112)는 비밀키를 의사 난수 생성 함수에 적용하여 노이즈 스트링(noise string)을 생성할 수 있다. 먼저, 프로세서(112)는 의사 난수 생성 함수(Pseudorandom generating function) P를 결정한다. 여기에서 P는 주어진 비밀키(SK)로부터 노이즈 스트링을 생성하는 함수로 편의상 P: {0,1}X -> {0,1}*로 정의한다. 프로세서(112)는 비밀키(SK)로부터 노이즈 스트링 RT = P(SK)를 생성한다. In step S303, the
단계 S305에서, 프로세서(112)는 노이즈 스트링을 분할하여 복수의 노이즈 조각을 생성할 수 있다. 프로세서(112)는 변수 Y를 선택하고, 노이즈 스트링 RT = j1 || v1 || j2 || v2 || j3 || v3 ...를 분할하여 노이즈 조각들을 생성할 수 있다. 각각의 j는 Y-bits 노이즈 스트링이며, 각각의 v는 L-bits 노이즈 스트링이다. 프로세서(112)는 노이즈 스트링 RT로부터 노이즈 조각의 집합 RS = {(j1, v1), (j2, v2), (j3, v3) ...}을 생성한다. In step S305, the
단계 S307에서, 프로세서(112)는 노이즈 조각들을 부호화 데이터에 삽입할 수 있다. 먼저, 프로세서(112)는 INS함수를 정의한다. 프로세서(112)는 EF = EF[1] || EF[2] || EF[3] || ...에 대해 원소 (j, v)를 추가하는 경우, INS(EF, (j,v))는 모든 i > j에 대해서 EF[i] = EF[i-1]으로 값을 변경하고, EF[j] = v로 값을 추가한다. 즉, 프로세서(112)는 j번째 부분 데이터의 위치에 v 값을 지니는 노이즈 조각을 삽입하고 그 이후의 모든 부분 데이터의 인덱스를 1만큼 증가시킨다. 프로세서(112)는 노이즈 조각들 RS의 첫 번째 원소부터 순차적으로 부호화 데이터에 추가하며, 최초 추가되는 첫 번째 원소(j1, v1)의 경우 INS(EF, (j1,v1))를 수행한다. 프로세서(112)는 노이즈 조각들 중 두 번째 이후의 원소는 각 원소의 첫 번째 인덱스를 누적하여 부호화 데이터에 추가할 수 있다. 즉, 프로세서(112)는 두 번째 원소(j2, v2)에 대해서는 INS(EF, (j1+j2, v2))를 수행하며, (ji, vi)에 대해서는 INS(EF, (j1+j2+...+ ji, vi))를 수행한다. In step S307, the
프로세서(112)는 노이즈 조각들이 추가된 부호화 데이터 F'을 상기 도 2를 통해 설명한 분할 방식에 따라 분할한 후 서버로 전송할 수 있다.The
한편, 기존의 부호화 데이터에 각각의 노이즈 조각을 삽입하는 것은 단말의 계산량을 증가시킬 수 있기 때문에, 프로세서(112)는 하나의 부분 데이터(j,v)에 대해 EF[j] = v로 값을 변경하고, 다른 부분 데이터에 대해서는 데이터를 변경하지 않을 수 있다. On the other hand, since inserting the individual noise fragments into the existing encoded data can increase the amount of computation of the terminal, the
도 4는 본 발명의 실시 예에 따른 데이터 치환 방법을 나타낸 흐름도이다. 4 is a flowchart illustrating a data replacement method according to an embodiment of the present invention.
도 4에 도시된 바와 같이, 단계 S401에서, 프로세서(112)는 비밀키를 선택하고, 단계 S403에서, 비밀키를 이용하여 노이즈 스트링을 생성할 수 있다. 프로세서(112)는 의사 난수 생성 함수(Pseudorandom generating function) P를 결정한다. P는 P : {0,1}X -> {0, 1, ..., M}로 정의한다. M은 F' = F'[1] || F'[2] || F'[3] || ... || F'[M]에 포함된 모든 부분 데이터의 수 이다.As shown in FIG. 4, in step S401, the
단계 S405에서, 프로세서(112)는 노이즈 스트링을 이용하여 의사 난수 Pi를 생성할 수 있다. 프로세서(112)는 노이즈 스트링을 의사 난수 생성 함수에 적용하여 의사 난수 Pi = P(SK + i)를 생성할 수 있다. In step S405, the
단계 S407에서, 프로세서(112)는 의사 난수를 이용하여 각 부분 데이터들의 데이터 값을 변경할 수 있다. 구체적으로, 프로세서(112)는 각 부분 데이터들의 위치를 치환할 수 있다. 프로세서(112)는 F'[i] 부분 데이터와 F'[Pi] 부분 데이터의 값의 위치를 서로 바꿀 수 있다. 프로세서(112)는 F'[i]를 F'[Pi] 값으로 치환하고, F'[Pi]를 F'[i] 값으로 치환할 수 있다. In step S407, the
도 5는 본 발명의 실시 예에 따른 데이터 복원 방법을 나타낸 흐름도이다. 5 is a flowchart illustrating a data restoration method according to an embodiment of the present invention.
도 5에 도시된 바와 같이, 프로세서(112)는 단계 S501에서 원본 데이터에 대해 오류 정정 부호화를 적용하고, 단계 S503에서 비밀키를 이용하여 오류 정정 부호화가 적용된 원본 데이터인 부호화 데이터에 노이즈를 적용하며, 단계 S505에서 일정한 순서로 배열된 복수의 부분 데이터를 비밀키를 이용하여 무작위로 분할하며, 단계 S507에서 복수의 부분 데이터들을 포함하는 분할 데이터들을 복수의 서버들로 전송할 수 있다.As shown in FIG. 5, the
상기 단계 S501 내지 단계 S507을 통해 원본 데이터를 분할하여 각 서버로 전송한 후, 단계 S509에서, 프로세서(112)는 복수의 분할 데이터에 포함된 복수의 부분 데이터를 복수의 서버들로부터 수신할 수 있다. After the original data is divided and transmitted to the respective servers through the steps S501 to S507, the
단계 S511에서, 프로세서(112)는 복수의 부분 데이터 사이의 순서를 비밀키를 이용하여 원본 데이터 내의 최초 순서대로 복원할 수 있다. 데이터 분할이 순차 분할로 이루어진 경우, 프로세서(112)는 a 번째 서버가 저장하는 a번째 부분 데이터 F'a = F'a[1] || F'a[2] || F'a[3] ...를 F' = F'1[1] || F'2[1] || F'3[1] || ... || F'S[1] || F'1[2] || ...와 같이 순차적으로 결합하여 F'을 재구성한다. 무작위 분할 방식이 적용된 경우, 프로세서(112)는 분할을 위해 사용한 의사 난수 생성 함수(Pseudorandom generating function) P : {0,1}X -> {1, 2, ..., S}와 동일한 비밀키(SK)를 이용하여 복원한다. 예를 들면, 프로세서(112)는 F'의 첫 번째 부분 데이터를 얻기 위해서 P(SK + 1) = a를 계산하고 F'a의 첫 번째 부분 데이터인 F'a[1]의 값을 F'[1]로 설정한 후, F'a에서 F'a[1]을 삭제한다. 마찬가지로, 프로세서(112)는 i번째 부분 데이터 F'[i]를 얻기 위해서 P(SK + i) = ai를 계산하여 F'ai의 첫 번째 부분 데이터를 획득한다. 이러한 과정을 F'[1] 부터 F'[M]까지 순차적으로 수행하여 전체 F'을 재구성 할 수 있다. In step S511, the
단계 S513에서, 프로세서(112)는 F'에서 노이즈 조각을 제거하여 부호화 데이터를 구성한다. 예를 들면, 노이즈 조각이 부분 데이터의 사이에 추가된 경우, 프로세서(112)는 단계 S503에서 이용된 P와 비밀키(SK)를 이용하여 동일한 노이즈 스트링 RT = P(SK)를 생성한다. 또한, 프로세서(112)는 노이즈 스트링 RT를 노이즈 조각들 RS = {(j1, v1), (j2, v2), (j3, v3), ... }로 분해하고, 노이즈 조각 추가 과정(단계S503)과 반대로 노이즈 조각들 RS의 마지막 원소에서부터 부분 데이터로부터 노이즈 조각들의 제거를 수행하며, 원소 (ji, vi)에 대해서 F'[j1+ j2 + ... ji]의 조각을 제거하고 이 후의 부분 데이터의 인덱스를 하나씩 감소하는 과정을 반복하여 부호화 데이터를 획득한다. In step S513, the
단계 S515에서, 프로세서(112)는 단계 S501에서 원본 데이터에 적용한 오류 정정 코드를 부호화 데이터에 동일하게 적용하여 원본 데이터를 획득할 수 있다. 예를 들면, 일반적인 오류 정정 코드 적용 방식 대신 삭제 코드(erasure code)를 적용하여 단계 S501이 수행된 경우, 복수 서버에 저장된 데이터들 중 기 설정된 수 이상의 부분 데이터들로부터 전체 데이터를 복원할 수 있다. In step S515, the
도 6은 본 발명의 실시예에 따른 데이터 보호 과정을 도시한다.FIG. 6 illustrates a data protection process according to an embodiment of the present invention.
도 6에 도시된 바와 같이, 단말(110)은 데이터(610)를 획득하고, 데이터(610)에 대하여 부호화(예를 들면, 오류 정정 코드 적용)하여 부호화 데이터(620)를 생성할 수 있다.6, the terminal 110 may acquire the
한편, 단말(110)은 비밀키(630)를 획득하고, 비밀키(630)를 이용하여 의사 난수 생성 함수(640)를 통해 복수의 노이즈 조각들(650)을 생성할 수 있다.The terminal 110 may obtain the
다음, 단말(110)은 노이즈 조각들(650)을 부호화 데이터(620)에 추가할 수 있다. Next, the terminal 110 may add the noise fragments 650 to the encoded
마지막으로, 단말(110)은 노이즈 조각들이 추가된 부호화 데이터(660)를 각 서버들(670)로 전송하기 위해 복수의 분할 데이터로 분할할 수 있다. 다만, 분할할 때, 단말(110)은 부호화 데이터(660)의 복수의 부분 데이터들이 최초로 배열된 순서대로 분할하여 서버들로 전송하는 순차적 분할 방법이 있으나, 본 발명에 있어서는 복수의 부분 데이터들의 최초로 배열된 순서와 상관없이 무작위로 분할하여 각 서버들(670)로 전송할 수 있다. Lastly, the terminal 110 may divide the encoded
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.
Claims (7)
원본 데이터를 복수의 부분 데이터로 분할하고, 상기 복수의 부분 데이터 각각의 상기 원본 데이터 내에서의 위치를 무작위로 결정하여 복수의 분할 데이터들을 생성하는 프로세서; 및
상기 복수의 분할 데이터들을 각각 복수의 서버로 전송하는 통신부를 포함하는
데이터 보호 장치.A memory for storing information for data processing;
A processor for dividing original data into a plurality of partial data and randomly determining positions of the plurality of partial data in the original data to generate a plurality of divided data; And
And a communication unit for transmitting the plurality of divided data to a plurality of servers, respectively
Data protection device.
상기 프로세서는 상기 복수의 부분 데이터들 중 서로 다른 부분 데이터의 위치를 서로 치환하는
데이터 보호 장치.The method according to claim 1,
Wherein the processor replaces the positions of different partial data among the plurality of partial data with each other
Data protection device.
상기 프로세서는 상기 메모리에 저장된 비밀키를 획득하고, 상기 비밀키를 이용하여 의사 난수를 생성하며, 상기 의사 난수를 이용하여 상기 복수의 부분 데이터들의 위치를 무작위로 결정하는
데이터 보호 장치.3. The method of claim 2,
Wherein the processor obtains a secret key stored in the memory, generates a pseudo-random number using the secret key, and randomly determines a position of the plurality of partial data using the pseudo-random number
Data protection device.
상기 프로세서는 상기 원본 데이터에 오류 정정 코드(ECC, error correcting code)를 적용하여 부호화 데이터를 획득하고, 상기 비밀키를 이용하여 복수의 노이즈 조각들을 생성하며, 상기 노이즈 조각들을 상기 부호화 데이터에 무작위로 삽입하고, 상기 부호화 데이터를 복수의 부호화 부분 데이터들로 분할하며, 상기 복수의 부호화 부분 데이터들의 위치를 무작위로 결정하여 상기 복수의 분할 데이터들을 생성하는
데이터 보호 장치.The method of claim 3,
Wherein the processor obtains encoded data by applying an error correcting code (ECC) to the original data, generates a plurality of noise fragments using the secret key, and randomly assigns the noise fragments to the encoded data And dividing the encoded data into a plurality of encoded partial data, and generating the plurality of divided data by randomly determining a position of the plurality of encoded partial data
Data protection device.
상기 프로세서는 상기 비밀키를 이용하여 노이즈 스트링을 생성하고, 상기 노이즈 스트링에 기반하여, 상기 노이즈 조각들이 삽입될 위치와 값을 결정하는
데이터 보호 장치.5. The method of claim 4,
The processor generates a noise string using the secret key, and based on the noise string, determines a position and a value at which the noise fragments are to be inserted
Data protection device.
상기 통신부는 상기 복수의 서버로부터 상기 복수의 분할 데이터들을 수신하고,
상기 프로세서는 상기 복수의 분할 데이터들에 포함된 상기 복수의 부분 데이터들의 위치를 상기 원본 데이터 내에서의 변경 전 위치로 복원하는
데이터 보호 장치.The method according to claim 1,
Wherein the communication unit receives the plurality of divided data from the plurality of servers,
Wherein the processor restores the position of the plurality of partial data included in the plurality of divided data to a position before the change in the original data
Data protection device.
상기 프로세서는 상기 비밀키를 이용하여 상기 복수의 분할 데이터들로부터 상기 복수의 노이즈 조각들을 제거하는
데이터 보호 장치.The method according to claim 6,
Wherein the processor removes the plurality of noise fragments from the plurality of divided data using the secret key
Data protection device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/113,530 US10902144B2 (en) | 2017-08-25 | 2018-08-27 | Method and apparatus for securing data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170108233 | 2017-08-25 | ||
KR1020170108233 | 2017-08-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190022344A true KR20190022344A (en) | 2019-03-06 |
KR102153993B1 KR102153993B1 (en) | 2020-09-09 |
Family
ID=65761353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180096360A KR102153993B1 (en) | 2017-08-25 | 2018-08-17 | Method and apparatus for securing data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102153993B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102153342B1 (en) * | 2019-06-13 | 2020-09-08 | 유메이 주식회사 | System for achieving processed data by removing noise from raw data of terminal of IoT |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090052130A (en) * | 2007-11-20 | 2009-05-25 | 주식회사 안철수연구소 | Data protection method using data partition |
KR20140134796A (en) * | 2013-05-14 | 2014-11-25 | 서울대학교산학협력단 | Method and apparatus for managing distribution of file to recover original file with at least pre-determined number file fragments with random sizes |
KR20150107062A (en) * | 2014-03-13 | 2015-09-23 | 한국과학기술연구원 | Data communication apparatus using cloud service and method for data processing thereof |
-
2018
- 2018-08-17 KR KR1020180096360A patent/KR102153993B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090052130A (en) * | 2007-11-20 | 2009-05-25 | 주식회사 안철수연구소 | Data protection method using data partition |
KR20140134796A (en) * | 2013-05-14 | 2014-11-25 | 서울대학교산학협력단 | Method and apparatus for managing distribution of file to recover original file with at least pre-determined number file fragments with random sizes |
KR20150107062A (en) * | 2014-03-13 | 2015-09-23 | 한국과학기술연구원 | Data communication apparatus using cloud service and method for data processing thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102153342B1 (en) * | 2019-06-13 | 2020-09-08 | 유메이 주식회사 | System for achieving processed data by removing noise from raw data of terminal of IoT |
Also Published As
Publication number | Publication date |
---|---|
KR102153993B1 (en) | 2020-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9898473B2 (en) | Security via data concealment | |
JP5194094B2 (en) | Data division method, data division apparatus, and computer program | |
US9817953B2 (en) | Systems and methods for establishing and using distributed key servers | |
EP2953052B1 (en) | Systems and methods for dynamic data storage | |
WO2001076130B1 (en) | Authentication method and schemes for data integrity protection | |
CN109726567B (en) | Moving target encryption method based on homomorphic encryption | |
CN104704501B (en) | Securely generate and store in computer systems password | |
CN104969508A (en) | Method for protecting the integrity of a fixed-length data structure | |
EP3163789B1 (en) | Forward-secure crash-resilient logging device | |
CN107592298B (en) | Sequence comparison algorithm secure outsourcing method based on single server model, user terminal and server | |
CN104660590A (en) | Cloud storage scheme for file encryption security | |
KR102656403B1 (en) | Generate keys for use in secure communications | |
CN116488814A (en) | FPGA-based data encryption secure computing method | |
Nishanth et al. | Improved signcryption algorithm for information security in networks | |
KR20190022344A (en) | Method and apparatus for securing data | |
Li et al. | A data assured deletion scheme in cloud storage | |
Reddy et al. | Enhanced key establishment technique for secure data access in cloud | |
CN112970022A (en) | Inadvertent screening of data streams | |
KR101687492B1 (en) | Storing method of data dispersively and credential processing unit | |
US10902144B2 (en) | Method and apparatus for securing data | |
KR101048661B1 (en) | Method, apparatus and computer readable recording medium for compression and encryption operations on data | |
CN112947855B (en) | Efficient encryption repeated data deleting method based on hardware security zone | |
CN110855622A (en) | Method and device for protecting sensitive data transmission of distributed system | |
Wang et al. | Secure dynamic SSE via access indistinguishable storage | |
Jacob et al. | Secured and reliable file sharing system with de-duplication using erasure correction code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |