KR20090052130A - 데이터 분할을 이용한 데이터 보호방법 - Google Patents

데이터 분할을 이용한 데이터 보호방법 Download PDF

Info

Publication number
KR20090052130A
KR20090052130A KR1020070118687A KR20070118687A KR20090052130A KR 20090052130 A KR20090052130 A KR 20090052130A KR 1020070118687 A KR1020070118687 A KR 1020070118687A KR 20070118687 A KR20070118687 A KR 20070118687A KR 20090052130 A KR20090052130 A KR 20090052130A
Authority
KR
South Korea
Prior art keywords
data
information
sub
partition
conversion
Prior art date
Application number
KR1020070118687A
Other languages
English (en)
Inventor
정상민
박근영
Original Assignee
주식회사 안철수연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 안철수연구소 filed Critical 주식회사 안철수연구소
Priority to KR1020070118687A priority Critical patent/KR20090052130A/ko
Publication of KR20090052130A publication Critical patent/KR20090052130A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 디스크 상에 존재하는 파일 등 다양한 형태를 가진 원본 데이터에 대한 임의의 분할 과정과 임의의 저장 과정을 통해서 원본 데이터에서 파생된 변환 데이터와 변환 정보를 생성하고, 해당 변환 정보 없이는 원본 데이터의 복원을 불가능하게 하고 접근 시점에는 변환 정보를 이용해 빠른 복원을 가능하게 하는 방법을 제공하는 것에 있다. 본 발명에 의하면, 기존의 데이터 암호화 기법과는 다르게 데이터의 모든 부분에 대하여 접근하지 않아도 되기 때문에, 암호화 알고리즘의 연산을 수행하기 위해 소모되는 메모리와 CPU 등 시스템 리소스와 시간을 감소시킬 수 있는 장점이 있다. 또한 원본 데이터를 복원하는 경우의 수는 분할 개수가 증가할 때마다 계승(factorial)으로 그 수가 커지므로 기존 암호화 기법인 키의 크기 증가를 통한 보호 방법보다 적은 시스템 리소스의 사용과 간단한 방법으로 높은 보안을 실현할 수 있다.
데이터 보호, 파일 보호, 데이터 분할, 파일 분할, 암호화

Description

데이터 분할을 이용한 데이터 보호방법 {Data Protection Method Using Data Partition}
본 발명은 데이터를 보호하는 방법과 그 보호된 데이터를 복원하는 방법에 관한 것으로, 더욱 상세하게는 보호하려는 대상인 파일이나 메모리 상의 데이터를 임의의 크기로 분할하고 새로운 데이터에 임의의 순서로 분할된 부분을 배열로써 저장함으로써 분할 및 저장 순서에 관한 정보 없이는 원래의 데이터를 복원할 수 없도록 하고 데이터에 대한 접근이 필요한 시점에는 이 정보를 이용하여 빠른 복원을 가능하게 하는 방법에 관한 것이다.
전세계를 하나로 연결하는 인터넷의 발달과 더불어 사이버 세계를 어지럽히는 신종 범죄인 해킹에 대한 문제점이 날로 심각해지고 있다. 해킹(Hacking)은 타인의 컴퓨터 시스템에 무단 침입하여 정보를 빼내거나 프로그램을 파괴하는 행위로, 해킹의 위험으로부터 벗어나기 위한 방법으로 암호화 기술 등 파일이나 데이터를 보호하기 위한 기술이 발달하고 있다.
일반적으로 파일을 보호하기 위하여 암호화 기법이 사용되어 진다. 암호화 방법은 다양한 알고리즘(Algorithm)에 의한 연산과 암호화 키의 관리 방식에 따라서 다양한 종류의 방법이 존재한다. 하지만 이러한 종래의 암호화 기법들은 파일 암호화를 수행하기 위해서 파일 전체에 대한 접근을 필요로 하며, 또한 실제 파일에 담긴 데이터를 다양한 알고리즘에 의한 연산과정을 통해서 변환하게 되는데 이 과정에서 메모리(Memory)와 중앙처리장치(CPU)에 대해 많은 자원을 사용하게 되며 암호화된 파일을 복원하는 시점에도 이와 동일한 과정을 수행하게 된다.
따라서 종래의 기술에 의할 경우 암호화 및 복호화 과정에서 메모리와 CPU, 시간 등 시스템 리소스가 많이 소모되며, 이는 암호화 대상이 되는 데이터의 크기가 커질수록 더 많은 시스템 리소스를 사용하게 된다. 또한 암호화의 강도를 높기기 위해 암호화 키의 사이즈를 크게 할수록 시스템 리소스를 더 많이 필요로 하여 리소스의 낭비와 비효율이 존재한다.
본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 디스크 상에 존재하는 파일 등 다양한 형태를 가진 원본 데이터에 대한 임의의 분할 과정과 임의의 저장 과정을 통해서 원본 데이터에서 파생된 변환 데이터와 변환 정보를 생성하고, 해당 변환 정보 없이는 원본 데이터의 복원을 불가능하게 하고 접근 시점에는 변환 정보를 이용해 빠른 복원을 가능하게 하는 방법을 제공하는 것에 있다.
본 발명인 데이터 분할을 통한 데이터 보호방법은,
원본 데이터를 임의의 서브 데이터들로 분할하는 분할 정보를 설정하는 단계 (단계 I)와 분할된 서브 데이터들을 읽어 들여 새로운 변환 데이터를 생성하는 단계 (단계 II)와 변환 정보를 생성하고 암호화하는 단계 (단계 III)를 포함하여 구성된다.
단계 I인 원본 데이터를 임의의 서브 데이터들로 분할하는 분할 정보를 설정하는 단계는,
원본 데이터를 몇 개의 서브 데이터들로 분할할지를 설정, 즉, 분할 개수를 설정하는 단계 (단계 I-1)와 서브 데이터들의 크기, 즉, 분할 크기를 설정하는 단계 (단계 I-2)와 서브 데이터들의 순차적인 분할 정보를 담은 배열을 생성하는 단 계 (단계 I-3)를 포함할 수 있다.
상기의 단계들(단계 I-1, II-2, III-3)은 순서대로 수행될 필요는 없으며, 순서가 뒤바뀌거나 동시에 진행되어도 무방하다. 즉, 분할 개수를 먼저 설정하고 분할 크기를 정하는 방법(단계 I-1을 단계 I-2보다 먼저 실행)을 사용해도 되고, 반면에 분할 크기를 먼저 설정하고 분할 개수를 맞추는 방법(단계 I-2을 단계 I-1보다 먼저 실행)을 사용해도 된다. 모든 서브 데이터들에 대하여 분할 개수와 분할 크기를 설정한 후에 데이터 배열을 생성할 수도 있고(단계 I-1과 I-2를 단계 I-3보다 먼저 실행), 분할 개수와 분할 크기를 설정하면서 동시에 데이터 배열을 생성하는 등 그 태양은 여러 가지가 될 수 있다.
임의의 분할 크기를 생성함에 있어서 그 크기가 고정되어 있거나 임의의 크기에 상관없이 데이터를 지정된 개수로 분할할 수 있는 모든 방법을 사용해서 원본 데이터를 분할할 수 있다.
원본 데이터의 분할된 위치를 나타내는 값들이 저장될 분할 개수만큼의 크기를 가지는 배열(Array)을 생성하여 분할 정보를 담고 있도록 한다. 상기의 분할 정보를 담은 배열은 분할 정보를 저장하고 이용하기 위해서 사용되는 리스트, 스택, 큐, 트리 등 자료구조의 모든 형태를 말한다. 상기 배열은 기본적으로 각 서브 데이터들이 원본 데이터의 시작 위치로부터의 떨어진 정도(offset)를 나타내는 시작점 정보만을 최소로 가지도록 할 수 있다. 상기 배열에 저장되는 분할 정보는 각 서브 데이터들의 시작점을 표시하는 Offset만 저장하지 않고, 각 서브 데이터들의 시작점을 표시하는 Offset과 함께 끝점을 표시하는 Offset을 저장할 수도 있고, 각 서브 데이터들의 Size를 함께 저장할 수도 있을 것이다.
단계 II인 분할된 서브 데이터들을 읽어 들여 새로운 변환 데이터를 생성하는 단계는,
분할 정보를 통해 임의의 순서로 해당 데이터의 부분들, 즉 각 서브 데이터들을 읽어 들이는 단계 (단계 II-1)와 임의의 순서로 읽어 들인 서브 데이터들을 새로운 위치에 순차적으로 저장하여 변환 데이터를 생성하는 단계 (단계 II-2)를 포함할 수 있다.
서브 데이터 각각에 대하여 하나의 서브 데이터씩 읽어 들이고 순차적으로 쓰기 작업을 수행하는 것이 효율적일 것이다. 다만, 순차적으로 수행하지 않고 병렬적으로 또는 동시에 여러 개의 서브 데이터들을 읽고 쓰는 방식을 사용할 수도 있다.
단계 II에 있어서 각 서브 데이터를 임의의 순서로 읽기 위한 Random 또는 자의적인 Sequence를 통해서 읽기 위한 순서를 생성할 수 있는 모든 방법을 사용할 수 있다.
또한 상기의 단계에서 분할 및 저장하는 방법에 상관없이 추가적인 변경을 수행하고 그 정보를 저장해서 복원에 사용할 수 있다.
단계 III인 변환 정보를 생성하고 암호화하는 단계는,
원본 데이터에서의 서브 데이터들의 분할 정보를 변환 데이터의 변환 정보로 수정하는 단계 (단계 III-1)와 변환 정보를 담은 배열을 암호화해서 저장하는 단계 (단계 III-2)를 포함하여 구성될 수 있다.
상기의 배열은 변환 정보를 저장하고 이용하기 위해서 사용되는 리스트, 스택, 큐, 트리 등 자료구조의 모든 형태를 말한다. 상기 변환 정보를 담은 배열은 변환 데이터와 함께 저장하여 하나의 파일 또는 데이터로 취급할 수 있으며, 변환 데이터와는 별도로 저장, 취급할 수도 있다.
데이터 분할을 통한 데이터 보호 방법에 있어서 원본 데이터의 복원을 더욱 어렵게 하기 위해 다음과 같이 단계를 변형시키거나 단계를 추가할 수 있다.
i) 두 개 이상의 원본 데이터에 대해서 단계 I까지 각각 수행한 후, 그로부터 얻어지는 서브 데이터들을 단계 II에서 하나의 변환 데이터로 저장하고 단계 III의 과정을 수행하여 하나의 변환 정보를 생성할 수 있다.
ii) 단계 II에서, 읽어 들인 서브 데이터들을 역순으로 저장하고 그 여부를 변환 정보에 표시하는 단계를 추가하여 단계 III을 진행시켜 변환 정보를 생성하고 암호화할 수도 있다.
iii) 단계 II에서, 각 서브데이터를 임의의 위치(주소, 파일명 등)를 가지는 단일 데이터로 각각 분산해서 저장하고 그 단일 데이터의 위치를 변환 정보에 표시하여 이후 단계를 진행할 수도 있다.
iv) 단계 II에서, 임의의 크기와 내용을 가지는 불필요한 데이터(Garbage data)를 생성하거나 데이터의 다른 임의의 부분을 복사해서 각 서브 데이터 또는 변환 데이터의 앞 또는 뒤에 첨부하고 그 정보를 표시하는 단계를 추가한 후, 단계 III을 진행시켜 변환 정보를 생성하고 암호화할 수도 있다.
v) 단계 II까지 진행한 변환 데이터에 대해서 이 변환 데이터를 원본 데이터로 보고 다시 단계 I과 단계 II를 임의의 수만큼 반복해서 수행하고 매 반복 과정에서의 분할 정보와 변환 정보를 저장하고 유지하여 이들을 암호화하여 저장할 수도 있다.
한편, 상기와 같은 과정을 거쳐서 변환되어 보호되는 변환 데이터는 상기의 과정을 역순으로 하는 복원 과정을 통해 원본 데이터로 복원될 수 있다.
변환 데이터를 원본 데이터로 복원하는 과정은,
암호화된 변환 정보를 풀어서 분할 정보를 생성하는 단계와 임의의 순서로 해당 서브 데이터들을 읽어 들이는 단계와 읽어 들인 서브 데이터들을 분할 정보의 순서에 따라 접근하는 단계를 포함하여 구성된다.
이상에서 설명한 바와 같이, 본 발명의 데이터 분할을 이용한 데이터 보호 방법 및 장치에 의하면, 기존의 데이터 암호화 기법과는 다르게 데이터의 모든 부분에 대하여 접근하지 않아도 되기 때문에, 암호화 알고리즘의 연산을 수행하기 위해 소모되는 메모리와 CPU 등 시스템 리소스와 시간을 감소시킬 수 있는 장점이 있다. 다시 말해, 변환 정보의 암호화를 통하여, 암호화 및 복호화 연산을 파일 등 데이터 자체에 대하여 수행하지 않고, 변환 정보에 대해서만 수행하게 되므로, 리소스 사용의 효율 면에서 성능이 향상되게 된다. 또한 원본 데이터를 복원하는 경우의 수는 분할 개수가 증가할 때마다 계승(factorial)으로 그 수가 커지므로 기존 암호화 기법인 키의 크기 증가를 통한 보호 방법보다 적은 시스템 리소스의 사용과 간단한 방법으로 높은 보안을 실현할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명에 따른 데이터 분할을 이용한 데이터 보호 방법을 설명하기 위한 순서도이다.
도 2는 본 발명에 따른 데이터 분할을 이용한 데이터 보호 방법을 설명하기 위한 개략도이다.
본 발명인 데이터 분할을 통한 데이터 보호방법은, 원본 데이터를 임의의 서브 데이터들로 분할하는 분할 정보를 설정하는 단계 (단계 I)와 분할된 서브 데이터들을 읽어 들여 새로운 변환 데이터를 생성하는 단계 (단계 II)와 변환 정보를 생성하고 암호화하는 단계 (단계 III)를 포함하여 구성된다.
상기에서 설명한 보호의 대상이 되는 원본 데이터는 하드 디스크 등에 파일의 형태로 존재하는 데이터일 수 있다. Client 프로그램이 데이터를 디스크에 저장 하지 않고 메모리 상에서 상기 과정을 수행하고 그 데이터를 다른 Client에 전달하는 경우(P2P 또는 그 변형) 등 모든 형태의 데이터가 보호의 대상이 되는 원본 데이터가 될 수 있다. 어떠한 형식의 데이터이든 본 발명인 데이터 보호 방법을 사용하여 데이터를 보호하고 복원할 수 있다.
단계 I인 원본 데이터를 임의의 서브 데이터들로 분할하는 분할 정보를 설정하는 단계는, 원본 데이터를 몇 개의 서브 데이터들로 분할할지를 설정하는, 즉, 분할 개수를 설정하는 단계 (단계 I-1)와 서브 데이터들의 크기, 즉, 분할 크기를 설정하는 단계 (단계 I-2)와 서브 데이터들의 순차적인 분할 정보, 즉 상기의 분할 개수와 분할 크기를 담은 배열을 생성하는 단계 (단계 I-3)를 포함할 수 있다.
상기의 단계들(단계 I-1, II-2, III-3)은 순서대로 수행될 필요는 없으며, 순서가 뒤바뀌거나 동시에 진행되어도 무방하다. 즉, 분할 개수를 먼저 설정하고 분할 크기를 정하는 방법(단계 I-1을 단계 I-2보다 먼저 실행)을 사용해도 되고, 반면에 분할 크기를 먼저 설정하고 분할 개수를 맞추는 방법(단계 I-2을 단계 I-1보다 먼저 실행)을 사용해도 된다. 모든 서브 데이터들에 대하여 분할 개수와 분할 크기를 설정한 후에 데이터 배열을 생성할 수도 있고(단계 I-1과 I-2를 단계 I-3보다 먼저 실행), 분할 개수와 분할 크기를 설정하면서 동시에 데이터 배열을 생성하는 등 그 태양은 여러 가지가 될 수 있다. 임의의 분할 크기를 생성함에 있어서 그 크기가 고정되어 있거나 임의의 크기에 상관없이 데이터를 지정된 개수로 분할할 수 있는 모든 방법을 사용해서 원본 데이터를 분할할 수 있다.
도 2를 참조하여 일 실시예를 살펴보면, 우선 최초에 보호하려는 대상이 되는 원본 데이터(21)를 몇 개의 서브 데이터들(21)로 분할할지를 설정한다. 보호하려는 대상인 원본 데이터(21)의 크기를 얻어온 후에 미리 설정한 데이터의 분할 개수에 맞도록 Random Size를 생성하고 이 값들을 각각의 데이터 분할 크기로 사용한다. 이때에 분할되어 생성되는 서브 데이터의 분할 개수가 클수록 어떻게 데이터를 분할하였는지에 대한 분할 정보 없이는 원래 데이터를 복원하기는 더욱 어려워지게 되므로, 분할 개수의 증가만으로 간단하게 데이터의 보안을 강화할 수 있게 된다. 서브 데이터의 크기를 먼저 설정하는 경우에는 원본 데이터의 크기에 따라 적당한 크기의 Random Size를 생성하여 데이터를 임의로 분할하여 서브 데이터들을 생성하면 될 것이다. 도 2에서 A, B, C, D 각각이 서브 데이터(23)가 되며, 이들은 분할된 위치와 그 크기를 임의로 선택할 수 있다.
원본 데이터 분할 개수만큼의 크기를 가지는 배열(Array)(25)을 생성하여 분할 정보를 담고 있도록 한다. 도 2의 a, b, c, d는 각각 A, B, C, D에 대한 분할 정보를 담고 있다는 것을 의미한다. 상기의 분할 정보를 담은 배열(25)은 분할 정보를 저장하고 이용하기 위해서 사용되는 리스트, 스택, 큐, 트리 등 자료구조의 모든 형태를 말한다. 상기 배열은 기본적으로 각 서브 데이터(23)가 원본 데이터의 시작 위치로부터의 떨어진 정도(Offset)를 나타내는 서브 데이터들의 시작점 정보만을 최소로 가지도록 한다. 이 경우 해당 Offset이 나타내는 시작점을 기준으로 배열에서 그 다음으로 가까운 곳을 표시하는 다른 서브 데이터의 Offset(시작점)까지가 해당 서브 데이터의 완전한 부분이 될 것이다.
한편, 상기 배열(25)에 저장되는 분할 정보는 각 서브 데이터의 시작점을 표시하는 Offset만 저장하지 않고, 각 서브 데이터의 시작점을 표시하는 Offset과 함께 끝점을 표시하는 Offset을 저장할 수도 있고, 또는 각 서브 데이터의 Size를 함께 저장할 수도 있을 것이다. 이러한 경우에는 서브 데이터의 시작점 Offset만을 저장할 때에 비하여 배열의 크기가 커지는 대신, 변환된 데이터의 복원 시 서브 데이터에의 접근을 용이하게 할 수 있다. 이하에서는 배열의 크기가 가장 최소로 되는 각 서브 데이터의 시작점 정보만을 가지는 배열을 생성한 것을 가정하여 이후 단계를 설명한다.
단계 II인 분할된 서브 데이터들을 읽어 들여 새로운 변환 데이터를 생성하는 단계는, 분할 정보를 통해 원본 데이터의 분할된 부분들, 즉 서브 데이터들을 임의의 순서로 읽어 들이는 단계 (단계 II-1)와 임의의 순서로 읽어 들인 서브 데이터들을 새로운 위치에 순차적으로 저장하여 변환 데이터를 생성하는 단계 (단계 II-2)를 포함할 수 있다.
단계 I을 수행하고 난 후, 단계 II에서는 분할된 각 부분에 대해서 Random sequence를 생성해서 한 분할 부분씩, 즉 각 서브 데이터들 읽어들이고 새롭게 데이터를 생성해서 순차적으로 쓰기 작업을 수행하도록 한다. 서브 데이터 각각에 대하여 하나의 서브 데이터씩 읽어 들이고 순차적으로 쓰기 작업을 수행하는 것이 효율적일 것이다. 다만, 순차적으로 수행하지 않고 병렬적으로 또는 동시에 여러 개의 서브 데이터들을 읽고 쓰는 방식을 사용할 수도 있다.
단계 II에 있어서 각 서브 데이터를 임의의 순서로 읽기 위한 Random 또는 자의적인 Sequence를 통해서 읽기 위한 순서를 생성할 수 있는 모든 방법을 사용할 수 있다. 분할 정보를 담은 배열(25)의 값들은 서브 데이터들(23)에 대한 분할 정보를 여전히 포함하고 있다.
상기의 단계에서는 분할 및 저장하는 방법에 상관없이 추가적인 변경을 수행하고 그 정보를 저장해서 복원에 사용할 수 있다. 즉, 원본 데이터의 복원을 더욱 어렵게 하기 위해 다음과 같이 단계를 변형시키거나 단계를 추가할 수 있다.
i) 두 개 이상의 원본 데이터에 대해서 단계 I까지 각각 수행한 후, 그로부터 얻어지는 서브 데이터들을 단계 II에서 하나의 변환 데이터로 저장하고 단계 III의 과정을 수행하여 하나의 변환 정보를 생성할 수 있다.
ii) 단계 II에서, 읽어 들인 서브 데이터들을 역순으로 저장하고 그 여부를 변환 정보에 표시하는 단계를 추가하여 단계 III을 진행시켜 변환 정보를 생성하고 암호화할 수도 있다.
iii) 단계 II에서, 각 서브데이터들을 임의의 위치(주소, 파일명 등)를 가지는 단일 데이터로 각각 분산해서 저장하고 그 단일 데이터의 위치를 변환 정보에 표시하여 이후 단계를 진행할 수도 있다.
iv) 단계 II에서, 임의의 크기와 내용을 가지는 불필요한 데이터(Garbage data)를 생성하거나 데이터의 다른 임의의 부분을 복사해서 각 서브 데이터 또는 변환 데이터의 앞 또는 뒤에 첨부하고 그 정보를 표시하는 단계를 추가한 후, 단계 III을 진행시켜 변환 정보를 생성하고 암호화할 수도 있다.
v) 단계 II까지 진행한 변환 데이터에 대해서 이 변환 데이터를 원본 데이터로 보고 다시 단계 I과 단계 II를 임의의 수만큼 반복해서 수행하고 매 반복 과정에서의 분할 정보와 변환 정보를 저장하고 유지하여 이들을 암호화하여 저장할 수도 있다.
단계 III인 변환 정보를 생성하고 암호화하는 단계는, 원본 데이터에서의 서브 데이터들의 분할 정보를 변환 데이터의 변환 정보로 수정하는 단계 (단계 III-1)와 변환 정보를 암호화해서 저장하는 단계 (단계 III-2)를 포함하여 구성될 수 있다.
최초의 원본 데이터가 서브 데이터들로 분할되는 분할 정보를 담은 배열(25)에서 Random sequence 등에 의해 선택된 배열의 표시(Index)에서 저장된 Offset 값을 새롭게 순차적으로 쓰기 된 변환 데이터(27)에서의 서브 데이터들(23)의 Offset 값으로 변경한다. 다시 말해, 도 2에서의 a, b, c, d 각각의 Index는 각 서브 데이터(23) A, B, C, D의 변환 데이터(27)에서의 위치에 관한 정보를 담게 된다. 이 작업을 분할 개수만큼 수행하게 되면, 새롭게 생성된 데이터인 변환 데이터(27)와 함께 원본 데이터(21)에서의 각 서브 데이터(23)의 순서대로 정렬되어 있으면서 변환 데이터(27)에서의 각 서브 데이터(23)의 Offset 값을 가지게 되는 배열(29)을 생성할 수 있게 된다. 이때 사용하는 배열의 형태는 일반적으로 사용되는 리스트, 스택, 큐, 트리 등 자료구조의 모든 형태가 될 수 있다.
한편, 변환 정보를 담은 배열(29)을 생성할 시에 분할 정보를 담은 배열(25) 의 값들을 변경하여 생성하는 것이 아니고 분할 정보를 담은 배열(25)과는 별도로 새로운 배열을 생성할 수도 있으며, 변환 정보가 담기는 배열의 순서 또한 반드시 원본 데이터에서의 각 서브 데이터의 순서대로 정렬될 필요도 없다. 다만 이러한 경우에는 변환 정보를 담은 배열(29)에 서브 데이터(23)의 Offset 값들 외에 추가적인 정보가 들어가야 할 것이다.
상기 배열은 변환 데이터를 원래의 순서대로 복원할 수 있는 키(key)의 용도로 사용할 수 있으며 원본 데이터에 비해서 극히 작은 크기를 가지게 되므로 암호화를 통해서 쉽게 보호할 수 있게 된다. 상기 변환 정보를 담은 배열(29)은 변환 데이터(27)와 함께 저장하여 하나의 파일 또는 데이터로 취급할 수 있으며, 변환 데이터와는 별도로 저장, 취급할 수도 있다. 이와 같은 변환 정보의 암호화를 통하여, 암호화 및 복호화 연산을 파일 등 데이터 자체에 대하여 수행하지 않고, 변환 정보에 대해서만 수행하게 되므로, 리소스 사용의 효율 면에서 성능이 향상되게 된다.
상기 배열은 변환 데이터를 원본 데이터로 복원할 수 있는 유일한 정보를 가지고 있게 되고 이 정보가 없을 경우에는 분할 개수의 factorial에 해당하는 데이터 복원의 경우의 수가 생기게 된다. 분할 개수를 크게 하는 만큼 경우의 수는 커지고, 그에 따라 데이터의 보안은 강화된다. 예를 들어 분할 개수가 50이면 50!은 약 3.04 X 10^64의 경우의 수가 생기게 되며, 분할 개수가 70개이면 70!은 1약 .20 X 10^100의 경우의 수, 분할 개수가 450개이면 450!은 약 1.73 X 10^1000이라는 경우의 수가 생기게 되어, 이를 풀기 위해서는 매우 긴 시간이 걸릴 수밖에 없어, 분 할 개수를 늘리는 것만으로도 분할 정보 없이는 데이터 복원을 거의 불가능하게 할 수 있다.
데이터 분할을 통한 데이터 보호 방법에 있어서 원본 데이터의 복원을 더욱 어렵게 하기 위해서 변환 정보를 담은 배열과 변환 데이터를 하나의 원본 데이터로 보고 다시 데이터 분할과 변환을 임의의 수만큼 반복해서 수행하고 매 반복 과정에서의 분할 정보와 변환 정보를 저장하고 유지하여 이들을 암호화하여 저장할 수도 있다. 이러한 방식으로 간단한 과정만으로 데이터 복원에 관한 경우의 수를 무한대에 가깝게 늘리는 것이 가능하다.
상기의 과정을 수행하여 보호된 데이터를 복원하기 위해서는 암호화된 변환 정보를 담은 배열을 암호화 알고리즘에 의해 복원하는 과정이 필요하다. 데이터에 대한 접근이 필요한 시점에 복원된 배열, 즉 변환 정보를 담은 배열에서 Random Sequence를 생성해서 배열의 임의의 Index를 선택하고 해당 서브 데이터를 읽어 들인다. 서브 데이터들을 읽어 들일 때에는 파일을 분할하여 변환하는 과정과 유사하게, 각 서브 데이터를 임의의 순서로 읽기 위한 Random 또는 자의적인 Sequence를 통해서 읽기 위한 순서를 생성할 수 있는 모든 방법을 사용할 수 있다. 배열이 읽어들인 부분에 대해서 표시하도록 처리하고 이 과정을 반복해서 필요한 부분들에 대해서 임의의 순서로 접근을 완료한다. 해당 배열의 Index 순서에 따라서 표시된 변환 데이터에 순차적인 접근을 수행함으로써 원본 데이터를 안전하게 얻을 수 있다.
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만,본 발명이 상기한 실시예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
도 1은 본 발명에 따른 데이터 분할을 이용한 데이터 보호 방법을 설명하기 위한 순서도이다.
도 2는 본 발명에 따른 데이터 분할을 이용한 데이터 보호 방법을 설명하기 위한 개략도이다.

Claims (9)

  1. 원본 데이터를 임의의 서브 데이터들로 분할하는 분할 정보를 설정하는 단계 (단계 I)와
    분할된 서브 데이터들을 읽어 들여 새로운 변환 데이터를 생성하는 단계 (단계 II)와
    변환 데이터가 생성되는 정보를 담은 변환 정보를 생성하고 암호화하는 단계 (단계 III)를
    포함하여 구성되는 데이터 분할을 이용한 데이터 보호방법.
  2. 제1항에 있어서,
    단계 I은,
    원본 데이터를 몇 개의 서브 데이터들로 분할할지 분할 개수를 설정하는 단계와
    서브 데이터들의 크기인 분할 크기를 설정하는 단계와
    서브 데이터들의 순차적인 분할 정보를 담은 배열을 생성하는 단계를
    포함하여 구성되는 것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  3. 제1항에 있어서,
    단계 II는,
    분할 정보를 통해 임의의 순서로 서브 데이터들을 읽어 들이는 단계와
    임의의 순서로 읽어 들인 서브 데이터들을 새로운 위치에 순차적으로 저장하여 변환 데이터를 생성하는 단계를
    포함하여 구성되는 것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  4. 제1항에 있어서,
    단계 III은,
    원본 데이터에서의 서브 데이터들의 분할 정보를 변환 데이터의 변환 정보로 수정하는 단계와
    변환 정보를 담은 배열을 암호화해서 저장하는 단계를
    포함하여 구성되는 것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  5. 제1항 내지 제4항에 있어서,
    두 개 이상의 원본 데이터에 대해서 단계 I을 각각 수행한 후,
    단계 II에서, 상기 원본 데이터들로부터 얻어지는 서브 데이터들을 하나의 변환 데이터로 저장하고,
    단계 III에서, 하나의 변환 정보를 생성하는
    것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  6. 제1항 내지 제4항에 있어서,
    단계 II에서, 읽어 들인 서브 데이터들을 역순으로 저장하고,
    단계 III에서, 역순으로 저장하였는지 여부를 변환 정보에 표시하여 변환 정보를 생성하는
    것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  7. 제1항 내지 제4항에 있어서,
    단계 II에서, 각 서브데이터를 임의의 위치를 가지는 단일 데이터로 각각 분산해서 저장하고
    단계 III에서, 상기 단일 데이터의 위치를 변환 정보에 표시하여 변환 정보를 생성하는
    것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  8. 제1항 내지 제4항에 있어서,
    단계 II에서, 임의의 크기와 내용을 가지는 불필요한 데이터를 생성하거나 데이터의 다른 임의의 부분을 복사해서 각 서브 데이터 또는 변환 데이터의 앞 또는 뒤에 첨부하고 그 정보를 표시하는 단계를 추가한 후,
    단계 III에서, 불필요한 데이터의 첨부에 관한 정보를 변환 정보에 표시하여 변환 정보를 생성하는
    것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
  9. 제1항 내지 제4항에 있어서,
    단계 I과 단계 II를 거쳐 생성된 변환 데이터에 대해서 이 변환 데이터를 원본 데이터로 보고,
    단계 I과 단계 II를 임의의 수만큼 반복해서 수행하고 매 반복 과정에서의 분할 정보와 변환 정보를 저장하고 유지하여 변환 정보를 생성하는
    것을 특징으로 하는 데이터 분할을 이용한 데이터 보호방법.
KR1020070118687A 2007-11-20 2007-11-20 데이터 분할을 이용한 데이터 보호방법 KR20090052130A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070118687A KR20090052130A (ko) 2007-11-20 2007-11-20 데이터 분할을 이용한 데이터 보호방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070118687A KR20090052130A (ko) 2007-11-20 2007-11-20 데이터 분할을 이용한 데이터 보호방법

Publications (1)

Publication Number Publication Date
KR20090052130A true KR20090052130A (ko) 2009-05-25

Family

ID=40860011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070118687A KR20090052130A (ko) 2007-11-20 2007-11-20 데이터 분할을 이용한 데이터 보호방법

Country Status (1)

Country Link
KR (1) KR20090052130A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011127271A2 (en) * 2010-04-08 2011-10-13 Rogel Patawaran Secure storage and retrieval of confidential information
KR101103403B1 (ko) * 2010-06-24 2012-01-05 주식회사 월시스 향상된 보안성을 갖는 데이터 관리 시스템의 제어방법
KR101129335B1 (ko) * 2010-06-07 2012-03-26 동국대학교 경주캠퍼스 산학협력단 데이터 분산 저장 및 복원 방법 및 그 장치
KR101329488B1 (ko) * 2012-02-21 2013-11-13 윤경한 데이터 보호 방법
KR101687492B1 (ko) * 2015-08-06 2016-12-16 주식회사 엘지씨엔에스 분산적으로 데이터를 저장하는 방법 및 암호학적 정보 처리 장치
KR20190022344A (ko) * 2017-08-25 2019-03-06 한국전자통신연구원 데이터 보호 방법 및 장치
KR102150806B1 (ko) * 2019-11-15 2020-09-02 (주)키프코프롬투 데이터 보호 방법
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011127271A2 (en) * 2010-04-08 2011-10-13 Rogel Patawaran Secure storage and retrieval of confidential information
WO2011127271A3 (en) * 2010-04-08 2012-03-29 Rogel Patawaran Secure storage and retrieval of confidential information
US8488785B2 (en) 2010-04-08 2013-07-16 Oceansblue Systems, Llc Secure storage and retrieval of confidential information
US8964976B2 (en) 2010-04-08 2015-02-24 Oceansblue Systems, Llc Secure storage and retrieval of confidential information
KR101129335B1 (ko) * 2010-06-07 2012-03-26 동국대학교 경주캠퍼스 산학협력단 데이터 분산 저장 및 복원 방법 및 그 장치
KR101103403B1 (ko) * 2010-06-24 2012-01-05 주식회사 월시스 향상된 보안성을 갖는 데이터 관리 시스템의 제어방법
KR101329488B1 (ko) * 2012-02-21 2013-11-13 윤경한 데이터 보호 방법
KR101687492B1 (ko) * 2015-08-06 2016-12-16 주식회사 엘지씨엔에스 분산적으로 데이터를 저장하는 방법 및 암호학적 정보 처리 장치
KR20190022344A (ko) * 2017-08-25 2019-03-06 한국전자통신연구원 데이터 보호 방법 및 장치
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data
KR102150806B1 (ko) * 2019-11-15 2020-09-02 (주)키프코프롬투 데이터 보호 방법

Similar Documents

Publication Publication Date Title
US11709948B1 (en) Systems and methods for generation of secure indexes for cryptographically-secure queries
KR20090052130A (ko) 데이터 분할을 이용한 데이터 보호방법
US20170249345A1 (en) A biomolecule based data storage system
US8667301B2 (en) Obfuscating transformations on data array content and addresses
US9749132B1 (en) System and method for secure deletion of data
CN107609418A (zh) 文本数据的脱敏方法、装置、存储设备以及计算机设备
EP2953052B1 (en) Systems and methods for dynamic data storage
CN108829899B (zh) 数据表储存、修改、查询和统计方法
CN105893107B (zh) 一种从64位Windows操作系统的内存镜像文件中获取已登录用户密码明文的方法
CN115017530B (zh) 一种数据安全存储设备及方法
Vidas The acquisition and analysis of random access memory
CN107315539B (zh) 一种数据存储方法以及数据提取方法
CN100593788C (zh) 一种通过加密数据文件实现软件保护的方法
CN114218595A (zh) 一种云计算平台中文件保护方法及系统
Sassani et al. Evaluating encryption algorithms for sensitive data using different storage devices
CN110113151A (zh) 一种对elf格式程序的非侵入式实时加解密方法
Nakano et al. Memory access pattern protection for resource-constrained devices
CN111368316B (zh) 文件加解密的方法及装置
CN114579637A (zh) 一种电网业务系统区块链高效检索方法
RU2322693C2 (ru) Способ сокрытия компьютерной информации путем многократного вложения сообщения в частные стеганографические контейнеры
KR20140088962A (ko) 클라우드 환경에서의 데이터 저장 시스템 및 방법
Al-Souly et al. Lightweight symmetric encryption algorithm for secure database
Khatod et al. Enigma: A hybrid approach to file security in cloud
Sude et al. Authenticated CRF based improved ranked multi-keyword search for multi-owner model in cloud computing
CN111353152A (zh) 基于区块链的文档管理方法、装置、系统及存储介质

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination