KR102084733B1 - 파일 분산 관리 장치 및 제어 방법 - Google Patents

파일 분산 관리 장치 및 제어 방법 Download PDF

Info

Publication number
KR102084733B1
KR102084733B1 KR1020130052763A KR20130052763A KR102084733B1 KR 102084733 B1 KR102084733 B1 KR 102084733B1 KR 1020130052763 A KR1020130052763 A KR 1020130052763A KR 20130052763 A KR20130052763 A KR 20130052763A KR 102084733 B1 KR102084733 B1 KR 102084733B1
Authority
KR
South Korea
Prior art keywords
file
size
unit
blocks
block
Prior art date
Application number
KR1020130052763A
Other languages
English (en)
Other versions
KR20140133127A (ko
Inventor
박영훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130052763A priority Critical patent/KR102084733B1/ko
Publication of KR20140133127A publication Critical patent/KR20140133127A/ko
Application granted granted Critical
Publication of KR102084733B1 publication Critical patent/KR102084733B1/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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파일 분산 관리 장치 및 제어 방법이 개시된다. 본 발명에 따른 파일로부터 생성된 복수의 파일 쉐어를 복수의 파일 저장 장치에 분산하여 저장 및 파일을 복원하는 파일 분산 관리 장치에 있어서, 장치는 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할하는 파일 분할부, 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화하는 암호화부, 세그먼트 별로 포함된 N개의 암호화된 블록 중 복수의 파일 저장 장치별로 분산할 블록을 선택하는 파일 쉐어 선택부 및 세그먼트별로 선택된 블록에 대응되는 단위 파일 쉐어를 단일의 파일 쉐어로 결정하여 복수의 파일 저장 장치로 분산하는 파일 쉐어 분산부를 포함한다.

Description

파일 분산 관리 장치 및 제어 방법{Apparatus and method for managing distribution of file}
본 발명은 파일 분산 관리 장치 및 제어 방법에 관한 것으로서, 보다 상세하는 일정 수 이상의 파일 쉐어로 복구 가능한 파일 분산 관리 장치 및 그 방법에 관한 것이다.
비밀 정보를 보관하는 경우, 비밀 정보가 분실되거나, 파괴될 리스크는 항상 존재한다. 이와 동시에 비밀정보가 도난될 수 있는 리스크 역시 존재한다. 분실 또는 파괴의 리스크는 비밀 정보를 복수 곳의 장소에 보관해 둠으로써 줄일 수 있지만, 이 경우 도난의 리스크가 증가하는 단점이 있다.
따라서, 이 같은 리스크를 함께 해결하는 방법의 하나로서 비밀 분산법(Secret Sharing)이 제시되었다. 비밀 분산법은 비밀 정보 MSK로부터 복수의 쉐어 정보 SH(1), … , SH(N)를 생성하고, 이들을 복수의 분산 관리장치 PA(1) ,...,PA(N)에 분산하여 관리시키고, 이들 쉐어 정보 SH(1) ,...,SH(N) 중 소정 수 이상의 정보를 얻을 수 있었던 경우에만, 비밀 정보 MSK를 복원할 수 있는 방식이다.
이 같은 비밀 분산 방법은 저장되는 값의 기밀성, 가용성, 무결성을 모두 보장해줄 수 있는 장점이 있지만, 저장되는 파일의 용량이 커질 경우, 해당 파일을 복원하는데 많은 계산량이 요구됨으로써, 파일 복원이 완벽히 이루어지지 않거나 무리가 발생하여 오류가 발생하는 문제가 있다.
본 발명은 상술한 필요성에 따라 안출된 것으로, 본 발명의 목적은, 파일 시스템의 파일 저장 시 파일 내용의 순서를 무작위로 재배열하여 기밀성을 향상시킴을 목적으로 한다.
나아가, 본 발명에 따르면, 파일 시스템의 파일 저장 시 파일을 분할하고, 그 중 일부를 이용하여 복구할 수 있도록 함으로써, 무결성과 가용성을 모두 보정하도록 함을 목적으로 한다.
더 나아가, 본 발명에 따르면, 파일 분할 시 분할된 파일을 암호화함으로써, 보다 강력한 보안을 유지하도록 함을 목적으로 한다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시예에 따른 파일로부터 생성된 복수의 파일 쉐어를 복수의 파일 저장 장치에 분산하여 저장 및 상기 파일을 복원하는 파일 분산 관리 장치에 있어서, 상기 장치는 상기 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 상기 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할하는 파일 분할부, 상기 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화하는 암호화부, 상기 세그먼트 별로 포함된 N개의 암호화된 블록 중 상기 복수의 파일 저장 장치별로 분산할 블록을 선택하는 파일 쉐어 선택부 및 상기 세그먼트별로 선택된 블록에 대응되는 단위 파일 쉐어를 단일의 파일 쉐어로 결정하여 상기 복수의 파일 저장 장치로 분산하는 파일 쉐어 분산부를 포함한다.
그리고, 상기 암호화부는, 상기 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록을 k 번째 블록의 암호화 키로 이용하여 상기 k 번째 블록을 암호화할 수 있다..
또한, 상기 기설정된 제1 크기에 대응하는 N개의 블록은, nCr -1에 기초하여 결정되며, 여기서, n은 상기 복수의 파일 저장 장치의 개수이며, r은 상기 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치일 수 있다.
그리고, 상기 파일 쉐어 선택부는, 집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,nCr -1}이 일대일 대응(f:T -> W)하도록 생성할 수 있다.
또한, 상기 파일 쉐어 선택부는, 상기 n개의 파일 저장 장치에 분산할 단위 파일 쉐어 중 임의의 r 개의 단위 파일 쉐어가 상기 nCr -1에 기초하여 결정된 블록을 포함하되, 임의의 r-1 개의 단위 파일 쉐어는 상기 nCr -1에 기초하여 결정된 블록을 모두 포함하지 않도록 n-1Cr -1에 기초하여 결정된 블록을 선택할 수 있다.
그리고, 상기 파일 쉐어 선택부는, 집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,N-1}이 일대일 대응(f:T -> W)하도록 생성하며, i=1,2,...,n에 대하여, 상기 T의 원소 중 상기 i를 포함하는 상기 {1,2,...,n}의 n-1Cr -1 개의 부분집합을 선택하여, 이를 S(1), S(2),...,S(n-1Cr -1)라고 가정하면, 상기 n개의 파일 저장 장치 중 i 번째에 대응되는 파일 저장 장치에 분산되도록 상기 n-1Cr -1 개의 블록 중 f(S(1)), f(S(2)),...,f(S(n-1Cr -1))번째 블록을 상기 i 번째 파일 저장 장치에 저장할 수 있다.
또한, 상기 파일 분할부는, 상기 파일로부터 분할된 블록을 전체 크기와 상기 세그먼트별로 결정된 전체 블록 크기를 비교하여 상기 파일의 전체 블록의 크기가 작으면, 상기 세그먼트별로 결정된 전체 블록 크기에 대응되도록 상기 파일에 소정의 크기의 더미 영역과 상기 파일의 크기에 대한 기록 영역을 부가하며, 상기 더미 영역과 상기 기록 영역이 부가된 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할할 수 있다.
그리고, 상기 파일 복원 시, 상기 r개의 파일 저장 장치에 저장된 파일 쉐어을 조합하고, 상기 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 상기 파일로 복원하는 파일 복원부를 더 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 파일로부터 생성된 복수의 파일 쉐어를 복수의 파일 저장 장치에 분산하여 저장 및 상기 파일을 복원하는 파일 분산 관리 장치의 제어 방법에 있어서, 상기 방법은 상기 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 상기 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할하는 단계, 상기 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화하는 단계, 상기 세그먼트 별로 포함된 N개의 암호화된 블록 중 상기 복수의 파일 저장 장치별로 분산할 블록을 선택하는 단계 및 상기 세그먼트별로 선택된 블록에 대응되는 단위 파일 쉐어를 단일의 파일 쉐어로 결정하여 상기 복수의 파일 저장 장치로 분산하는 단계를 포함한다.
그리고, 상기 암화화하는 단계는, 상기 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록을 k 번째 블록의 암호화 키로 이용하여 상기 k 번째 블록을 암호화할 수 있다.
또한, 상기 기설정된 제1 크기에 대응하는 N개의 블록은, nCr -1에 기초하여 결정되며, 여기서, n은 상기 복수의 파일 저장 장치의 개수이며, r은 상기 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치일 수 있다.
그리고, 상기 선택하는 단계는, 집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,nCr -1}이 일대일 대응(f:T -> W)하도록 생성할 수 있다.
또한, 상기 선택하는 단계는, 상기 n개의 파일 저장 장치에 분산할 단위 파일 쉐어 중 임의의 r 개의 단위 파일 쉐어가 상기 nCr -1에 기초하여 결정된 블록을 포함하되, 임의의 r-1 개의 단위 파일 쉐어는 상기 nCr -1에 기초하여 결정된 블록을 모두 포함하지 않도록 n-1Cr -1에 기초하여 결정된 블록을 선택할 수 있다.
그리고, 상기 선택하는 단계는, 집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,N-1}이 일대일 대응(f:T -> W)하도록 생성하며, i=1,2,...,n에 대하여, 상기 T의 원소 중 상기 i를 포함하는 상기 {1,2,...,n}의 n-1Cr -1 개의 부분집합을 선택하여, 이를 S(1), S(2),...,S(n-1Cr -1)라고 가정하면, 상기 n개의 파일 저장 장치 중 i 번째에 대응되는 파일 저장 장치에 분산되도록 상기 n-1Cr -1 개의 블록 중 f(S(1)), f(S(2)),...,f(S(n-1Cr -1))번째 블록을 상기 i 번째 파일 저장 장치에 저장할 수 있다.
또한, 상기 분할하는 단계는, 상기 파일로부터 분할된 블록을 전체 크기와 상기 세그먼트별로 결정된 전체 블록 크기를 비교하여 상기 파일의 전체 블록의 크기가 작으면, 상기 세그먼트별로 결정된 전체 블록 크기에 대응되도록 상기 파일에 소정의 크기의 더미 영역과 상기 파일의 크기에 대한 기록 영역을 부가하며,상기 더미 영역과 상기 기록 영역이 부가된 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할할 수 있다.
그리고, 상기 파일 복원 시, 상기 r개의 파일 저장 장치에 저장된 파일 쉐어을 조합하고, 상기 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 상기 파일로 복원하는 단계를 더 포함할 수 있다.
이상과 같이 본 발명의 다양한 실시 예에 따르면, 파일 시스템의 파일 저장시 파일의 기밀성, 무결성 및 가용성을 모두 보장함과 동시에 분산된 파일을 빠른 시간내에 복구할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일 분산 관리 시스템을 도시한 도시스템도,
도 2는 본 발명의 일 실시예에 따른 파일 분산 관리 장치의 블록도,
도 3은 본 발명의 일 실시예에 따른 오리지널 파일을 크기를 나타내는 예시도,
도 4는 본 발명의 일 실시예에 따른 오리지널 파일에 더미 영역 및 기록 영역이 부가된 수정 파일을 나타내는 예시도,
도 5는 본 발명의 일 실시예에 따른 암호화부에서 최소 단위의 크기를 갖는 블록에 대한 암호화를 수행하는 동작에 대한 예시도,
도 6은 본 발명의 일 실시예에 따른 K, SK, RK를 나타내는 예시도,
도 7은 본 발명의 일 실시예에 따른 단위 파일 쉐어를 나타내는 예시도,
도 8은 본 발명의 일 실시예에 따른 파일 쉐어를 나타내는 예시도,
도 9는 본 발명의 일 실시예에 따른 복구된 단위 파일 쉐어를 나타내는 예시도,
도 10은 본 발명의 일 실시예에 따른 파일 분산 관리 장치의 제어 방법에 대한 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 파일 분산 관리 시스템을 도시한 시스템도이다
도 1에 도시된 바와 같이, 파일 분산 관리 시스템(1000)은 파일로부터 생성한 복수의 파일 쉐어를 n개로 분산하여 저장함으로써, 임의의 r개(0<r≤n)의 파일 분산 저장 장치(10)에 저장된 복수의 파일 쉐어를 획득하는 경우에만 파일을 복원할 수 있도록 관리하는 시스템이다. 이를 위해, 파일 분산 관리 시스템(1000)은 파일 분산 관리 장치(100) 및 n개의 파일 저장 장치(10)를 포함할 수 있다.
파일 분산 관리 장치(100)는 파일로부터 최소 단위의 크기로 분할된 복수의 블록을 이용하여 복수의 파일 쉐어를 생성하고, 생성된 복수의 파일 쉐어를 n개의 파일 저장 장치(10)에 저장한다. 이때, 파일 분산 관리 장치(100)는 파일로부터 최소 단위의 크기로 분할된 복수의 블록을 암호화하고, 암호화된 복수의 블록을 이용하여 복수의 파일 쉐어를 생성함이 바람직하다.
이 같이, 암호화된 복수의 블록을 이용하여 복수의 파일 쉐어를 생성하고, 생성된 복수의 파일 쉐어를 n개의 파일 저장 장치(10)에 분산하여 저장하는 파일 분산 관리 장치(100)는 임의의 r개(0<r≤n)의 파일 분산 저장 장치(10)에 저장된 각각의 파일 쉐어를 획득하고, 그 획득한 각각의 파일 쉐어를 이용하여 해당 파일을 복원한다.
파일 저장 장치(10)는 파일 분산 관리 장치(100)로부터 수신한 파일 쉐어를 저장한다. 이 같은 파일 저장 장치(10)는 특별한 기능 없이도 각각의 파일 쉐어의 저장이 분리될 수 있는 장치로 구현될 수 있다. 본 발명에서는 n개의 파일 저장 장치(10)가 파일 분산 관리 장치(100)와 물리적으로 분리되어 파일 쉐어를 저장하는 것에 대해서만 설명하였으나, 이는 하나의 실시예에 불과할 뿐, n개의 파일 저장 장치(10)는 파일 분산 관리 장치(100) 내에서 존재할 수 있다.
이하에서는, 파일에 대한 복수의 파일 쉐어를 n개의 파일 저장 장치(10)로 분산하여 저장하는 파일 분산 관리 장치(100)의 각 구성에 대해서 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 파일 분산 관리 장치의 블록도이다.
도 2에 도시된 바와 같이, 파일 분산 관리 장치(100)는 통신부(110), 제어부(120) 및 저장부(130)를 포함할 수 있다. 통신부(110)는 n개의 파일 저장 장치(10)와 통신하는 것으로써, 근거리 무선 통신 모듈(미도시), 무선 통신 모듈(미도시) 등과 같은 다양한 통신 모듈을 포함할 수 있다. 여기서, 근거리 무선 통신 모듈(미도시)은 근거리에 위치한 외부 기기와 무선 통신을 수행하는 통신 모듈로써, 예를 들어, 블루투스, 지그비 등이 될 수 있다. 무선 통신 모듈(미도시)은 와이파이(WiFi), IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 통신을 수행하는 모듈이다. 이 밖에 무선 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신 망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있다.
제어부(120)는 파일 분산 관리 장치(100)의 구성을 전반적으로 제어한다. 특히, 제어부(120)는 사용자 명령에 따라 선택된 파일을 최소 단위의 크기를 갖는 블록 단위의 데이터를 암호화하고, 그 암호화된 블록 단위의 데이터에 기초하여 복수의 파일 쉐어를 생성한다. 이후, 제어부(120)는 생성된 복수의 파일 쉐어를 n개의 파일 저장 장치(10)에 분산하여 저장한다. 또한, 제어부(120)는 n개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 임의의 r개(0<r≤n)의 파일 분산 저장 장치(10)에 저장된 각각의 파일 쉐어를 이용하여 해당 파일을 복원한다.
이를 위해, 제어부(120)는 파일 분할부(121), 암호화부(122), 파일 쉐어 선택부(123) 및 파일 쉐어 분산부(124)를 포함할 수 있다.
파일 분할부(121)는 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할한다. 여기서, 최소 단위의 크기를 갖는 블록은 바이트 단위의 크기가 될 수 있으며, 기설정된 제1 크기에 대응하는 N개의 블록은 nCr -1에 기초하여 결정될 수 있으며, n은 파일 저장 장치(10)의 개수이며, r은 해당 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치(10)의 개수가 될 수 있다. 즉, 파일 분할부(121)는 B * nCr -1 바이트의 크기를 갖는 세그먼트로 분할하고, 각 세그먼트를 B 바이트 크기를 갖는 블록으로 재분할을 할 수 있다.
예를 들어, 파일의 크기가 60 바이트, 최소 단위의 크기를 갖는 블록은 2 바이트, 파일 저장 장치(10)가 5개, 해당 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치(10)가 3개이면, 파일 분할부(121)는 2 * 5C3 -1로부터 20 바이트라는 세그먼트의 크기를 결정할 수 있다. 이 같이, 세그먼트의 크기가 결정되면, 파일 분할부(121)는 60 바이트 크기를 갖는 파일에 대한 세그먼트 수를 총 3개로 결정할 수 있다.
따라서, 파일 분할부(121)는 60 바이트 크기를 갖는 파일을 2 바이트 크기를 갖는 제1 내지 제30 블록으로 분할하고, 이중 제1 내지 제10 블록을 제1 세그먼트, 제11 내지 제20 블록은 제2 세그먼트, 제21 내지 제30 블록은 제3 세그먼트로 분류할 수 있다.
한편, 파일 분할부(121)는 파일로부터 분할된 블록의 전체 크기가 세그먼트별 결정된 전체 블록 크기보다 작으면, 세그먼트별로 결정된 전제 블록 크기에 대응되도록 해당 파일에 소정의 크기의 더미 영역과 해당 파일의 크기를 나타내는 기록 영역을 포함하는 추가 영역을 부가한다. 이후, 파일 분할부(121)는 더미 영역과 기록 영역을 포함하는 추가 영역이 부가된 파일인 수정 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 각 블록은 세그먼트별로 분류할 수 있다.
여기서, 더미 영역은 널문자(null character)가 될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 더미 영역은 널문자가 아닌 더미값 형태로 이루어질 수 있다. 그리고, 기록 영역을 전술한 바와 같이, 해당 파일의 크기를 나타내는 영역으로써, 4 바이트가 할당될 수 있다. 한편, 전술한 더미 영역의 크기는 N * B * L - size(F) - 4 바이트로 계산될 수 있다. 여기서, N 은 기설정된 최소 단위의 블록 크기, B 는 nCr -1로부터 산출된 값으로써, N * B는 세그먼트를 이루는 크기가 될 수 있다. 또한, L 은 세그먼트 수, size(F)는 오리지널 파일의 크기, 4 바이트는 기설정된 기록 영역의 크기가 될 수 있다. 또한, 세그먼트 수(L)는 |(size(F) + 4) / (N * B)|로부터 도출될 수 있다.
이하에서는 도 3 내지 도 4를 통해 더미 영역 및 기록 영역을 포함하는 추가 영역을 이용하여 오리지널 파일을 수정 파일로 변환하는 동작에 대해서 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 오리지널 파일을 크기를 나타내는 예시도이며, 도 4는 본 발명의 일 실시예에 따른 오리지널 파일에 더미 영역 및 기록 영역이 부가된 수정 파일을 나타내는 예시도이다.
도 3에 도시된 바와 같이, 오리지널 파일(F)은 38 바이트의 크기를 가질 수 있다. 이 경우, 전술한 예와 같이, 최소 단위의 크기를 갖는 블록은 2 바이트, 파일 저장 장치(10)가 5개, 해당 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치(10)가 3개이면, 파일 분할부(121)는 2 * 5C3 -1로부터 20 바이트라는 세그먼트의 크기를 결정할 수 있다. 이 같이, 세그먼트 크기가 결정되면, 파일 분할부(121)는 전술한 식 |(size(F) + 4) / (N * B)|을 이용하여 2.2라는 값이 도출되면, 소숫점 이하의 수를 반올림하여 3이라는 값을 도출할 수 있다. 따라서, 파일 분할부(121)는 도출된 값에 기초하여 세그먼트의 개수가 총 3개임을 결정한다. 이후, 파일 분할부(121)는 전술한 더미 영역의 크기를 산출하는 식 (N * B * L - size(F) - 4 바이트)을 이용하여 18 바이트 더미 영역에 대한 크기를 산출할 수 있다. 더미 영역에 대한 크기가 산출되면, 파일 분할부(121)는 38 바이트 크기를 갖는 오리지널 파일(F)에 18 바이트 크기를 갖는 더미 영역과 4 바이트 크기를 갖는 기록 영역을 부가한다.
따라서, 도 4에 도시된 바와 같이, 오리지널 파일(F)에 대한 수정 파일(F')를 생성될 수 있다. 즉, 수정 파일(F')의 처음 38 바이트는 오리지널 파일(F)의 내용이 삽입되며, 그 다음 18 바이트의 크기를 갖는 널문자(더미 영역)가 삽입된다. 마지막으로, 18 바이트의 널문자가 삽입된 이후 4 바이트의 크기를 갖는 기록 영역이 삽입된다. 이에 따라, 총 60 바이트의 크기를 갖는 수정 파일(F')이 생성될 수 있다. 이 같이, 오리지널 파일(F)에 대한 수정 파일(F')이 생성되면, 파일 분할부(121)는 60 바이트 크기를 갖는 파일을 2 바이트 크기를 갖는 제1 내지 제30 블록으로 분할하고, 이중 제1 내지 제10 블록을 제1 세그먼트, 제11 내지 제20 블록은 제2 세그먼트, 제21 내지 제30 블록은 제3 세그먼트로 분류할 수 있다.
한편, 각 세그먼트별 분류될 최소 단위의 크기를 갖는 복수의 블록이 결정되면, 암호화부(122)는 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화한다. 실시예에 따라, 암호화부(122)는 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록은 k 번째 블록의 암화화 키로 이용하여 k 번째 블록을 암호화할 수 있다.
도 5는 본 발명의 일 실시예에 따른 암호화부에서 최소 단위의 크기를 갖는 블록에 대한 암호화를 수행하는 동작에 대한 예시도이다.
도 5에 도시된 바와 같이, 오리지널 파일(F)에 대한 수정 파일(F')이 생성될 수 있다. 전술한 바와 같이, 수정 파일(F')은 오리지널 파일(F)에 소정의 크기의 더리 영역과 오리지널 파일(F)의 크기에 대한 기록 영역이 부가된 파일이다. 이 같은 수정 파일(F')이 생성되면, 파일 분할부(121)는 수정 파일(F')을 기설정된 최소 단위의 크기를 갖는 복수의 블록(f[1] ~ f[s])으로 분할한다. 파일 분할부(121)에 의해 수정 파일(F')이 기설정된 최소 단위의 크기를 갖는 복수의 블록(f[1] ~ f[s])으로 분할되면, 암호화부(122)는 각 블록에 대해서 각 블록의 이전 블록의 데이터 값에 기초하여 암호화를 수행한다. 이때, 암호화부(122)는 첫번째 블록(f[1])에 대해서 별도의 암호화를 수행하지 않고, 첫번째 블록(f[1]) 이후의 블록들에 대해서 암호화를 수행할 수 있다.
구체적으로, 도시된 바와 같이, 암호화부(122)는 두번째 블록(f[2])을 첫번째 블록(f[1])의 데이터 값에 기초하여 암호화하고, 세번째 블록(f[3])을 두번째 블록(f[2])의 데이터 값에 기초하여 암호화한다. 이 경우, 마지막 블록(f[s])은 마지막 블록(f[s]) 이전의 블록인 블록(f[s-1])에 의해 암호화될 수 있다.
이와 같이, 수정 파일(F')에 대한 각각의 블록이 이전 블록에 의해 암호화되면, 파일 쉐어 선택부(123)는 세그먼트 별로 포함된 N 개의 암호화된 블록 중 n 개의 파일 저장 장치(10)별로 분산할 블록을 선택한다.
일 실시예에 따라, 파일 쉐어 선택부(123)는 n 개의 파일 저장 장치(10)에 분살한 단위 파일 쉐어 중 임의의 r 개의 단위 파일 쉐어가 nCr -1에 기초하여 결정된 블록을 포함하되, 임의의 r-1 개의 단위 파일 쉐어는 nCr -1에 기초하여 결정된 블록을 모두 포함하지 않도록 nCr -1에 기초하여 결정된 블록을 선택하는 것이 바람직하다. 이를 위해, 파일 쉐어 선택부(123)는 nCr -1 개의 블록 각각이 서로 다른 임의의 조합의 r 개의 파일 저장 장치(10)에 분산되도록 n 개의 파일 저장 장치(10)에 분산할 n-1Cr -1개의 블록을 선택할 수 있다.
또다른 실시예에 따라, 파일 쉐어 선택부(123)는 집합{1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,nCr -1}이 서로 일대일 대응(f:T -> W)하여 n 개의 파일 저장 장치(10)에 분산할 n-1Cr -1개의 블록을 선택할 수 있다. 예를 들어, i = 1,2,...,n에 대하여 T 원소 중 i를 포함하는 {1,2,...,n}의 n-1Cr -1개의 부분집합을 선택하고, 이를 S(1),S(2),...,S(n-1Cr -1)라고 가정하면, 파일 쉐어 선택부(123)는 i 번째 파일 저장 장치(10)에 분산되도록 n-1Cr -1 개의 블록 중 f(S(1)) 번째 블록, f(S(2)) 번째 블록,...,f(S(n-1Cr -1)) 번째 블록을 선택할 수 있다.
구체적인 예를 들어, n = 5, r = 3, F(단위 파일 쉐어) = {1,2,...,10}일 경우, 집합 {1,2,3,4,5}의 원소 5-3+1 = 3 개짜리 부분집합의 집합 T와 집합 W는 아래와 같은 형태를 가지며, 집합 T와 집합 W는 10 ! 가지수를 갖는 일대일 대응 관계를 갖게 된다.
T={{1,2,3},{1,2,4},{1,2,5},{1,3,4},{1,3,5},{1,4,5},{2,3,4},{2,3,5},{2,3,4}, {2,3,5}, {3,4,5}}
W={1,2,3,4,5,6,7,8,9,10}
즉 i = 1,2,3,4,5에 대하여 T 원소 중 i를 포함하는 {1,2,3,4,5,}의 5-1C3 -1 개의 부분집합을 선택하고, 이를 S(1),S(2),(S3)라고 가정하면, i 번째 파일 저장 장치(10)에 분산되도록 5-1C3 -1로부터 산출된 10개의 블록 중 f(S(1)), f(S(2)), f(S(3) 번째 블록이 i 번째 파일 저장 장치(10)에 저장되도록 선택하면, n 개의 파일 저장 장치(10) 각각에 대응하여 분산할 단위 파일 쉐어(f1 ~ f5)는 아래와 같이 될 수 있다.
f1 = {1,2,3,4,5,6}
f2 = {1,2,3,7,8,9}
f3 = {1,4,5,7,8,10}
f4 = {2,4,6,7,9,10}
f5 = {3,5,6,8,9,10}
이와 같이, n 개의 파일 저장 장치(10) 각각에 대응하여 분산할 단위 파일 쉐어가 선택되면, 파일 쉐어 분산부(124)는 각 세그먼트별 선택된 블록에 대응되는 단위 파일 쉐어를 단일의 파일 쉐어로 결정하여 n 개의 파일 저장 장치로 분산한다. 한편, 본 발명의 추가적인 양상에 따라, 파일 복원부(미도시)는 파일 복원 시, n 개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 임의의 r 개의 파일 저장 장치에 저장된 파일 쉐어를 조합하고, 그 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어를 조합한다. 이후, 파일 복원부(미도시)는 조합된 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 최종 오리지널 파일로 복원할 수 있다.
그리고, 저장부(130)는 파일 분산 관리 장치(100)를 동작시키기 위한 필요한 각종 프로그램 등이 저장되는 저장매체로써, 특히, 파일 분할부(121), 암호화부(122), 파일 쉐어 선택부(123)의 기능 수행 과정 중 또는 기능 수행 과정을 통해 얻어진 제반 정보를 저장할 수 있다. 이 같은 저장부(130)는 메모리, HDD(Hard Disk Drive) 등으로 구현할 수 있다. 예를 들어, 저장부(130)는 제어부(120)의 동작 수행을 위한 프로그램을 저장하기 위한 ROM, 제어부(120)의 동작 수행에 따른 데이터를 일시적으로 저장하기 위한 RAM 등을 구비할 수 있다. 또한, 저장부(130)는 각종 참조 데이터를 저장하기 위한 EEROM(Electrically Erasable and Programmable ROM) 등을 더 구비할 수 있다.
본 발명의 서술한 실시예들은 셔플링 키와 리커버리 키를 이용하여 구현될 수 있다.
(1) 개념 정의 단계
n : n 개의 파일 저장 장치와 대응되는 파일 쉐어의 수
r : n 개의 파일 저장 장치에 저장된 파일 쉐어 중 오리지널 파일로 복수하기 위한 최소의 파일 쉐어의 수 (0<r≤n)
N : nCr -1 (세그먼트별 포함되는 블록 수)
M : n-1Cr -1 (세그먼트별 포함된 블록 중 파일 저장 장치에 저장할 블록 수)
K = {Ki} : 시드 키. 1 부터 N 까지 정수의 무작위 재배열로 구성
Ki : i 번째 시드 키 값
SK : Shuffling Key. n * n-1Cr -1 짜리 행렬로 구성
SK(i,j) : 행령 SK의 i 번째 행 및 j 번째 열 값
RK : Revovery Key. (n-r+1) * N 짜리 행렬로 구성
RK(i,j) : 행렬 i 번째 행 및 j 번째 열 값, 각각의 값은 두 값의 순서쌍으로 되어 있음.
위와 같은 개념 정의 단계에 의하면, n = 5, r = 3일 경우, N = 5C3 -1 = 10, M = 5-1C3-1 = 6이 될 수 있다.
(2) 키 생성 단계
다음과 같은 방법으로 K, SK, RK를 생성한다.
1 단계 : k1, k2, ... , KN에 1, 2, ... , N의 재배열을 대입한다.
2 단계 : y1, y2, ... , yN에 각각 1을 대입한다.
3 단계 : i 에 1을 대입한다.
4 단계 : (반복문 시작) 모든 {1,2,...,N}의 원소가 n-r+1개인 부분집합 {c1,c2,...,cn-r+1}에 대하여 다음을 반복한다. (단, c1<c2< ... < cn -r+1)
5 단계 : (반복문 시작) j = 1 부터 n-r+1 까지 반복
6 단계 : SK(cj,ycj)에 ki 대입
7 단계 : RK(j,kj)에 (cj,ycj) 대입
8 단계 : ycj 에 ycj + 1을 대입
9 단계 : 4,5 단계 반복 수행
10 단계 : SK, RK를 모든 파일 저장 장치에 공유
이 같은 키 생성 단계에 의하면, 도 6에 도시된 바와 같이 k = {3,1,4,10,5,9,2,6,8,7}인 경우, SK, RK에 대한 결과값을 얻을 수 있다.
(3) 파일 분산 단계
파일을 n 개의 파일 저장 장치에 분산시켜 저장하기 위한 것으로써, 이를 위해 파일에 대한 분할 과정을 수행한다.
<파일 분할 과정>
입력 : N 개의 연속한 파일 블록 b[1],b[2],...,b[n]
1 단계 : n 개의 단위 파일 쉐어 f1,f2,...,fn을 초기화
2 단계 : (반복문 시작) i = 1 부터 n 까지 반복
3 단계 : (반복문 시작) j = 1부터 M까지 반복
4 단계 : f1에 블록 b[SK(i, j)]를 추가
5 단계 : (반복문 끝)
6 단계 : (반복문 끝)
7 단계 : n개의 단위 파일 쉐어 f1, f2 , … , fn 을 반환
<파일 분산 과정>
입력 : 오리지널 파일(F)
1 다계 : n개의 파일 쉐어 f1, f2 , … , fn 를 초기화
2 단계 : L에 |(size(F)+4 / (N*B))|의 값을 대입
3 단계 : 수정 파일(F') 에 오리지털 파일(F), N * B * L - size(F)-4바이트의 널문자, 그리고 4 바이트의 파일 크기 정보를 연결한 값을 대입
4 단계 : 수정 파일(F')을 이루는 각 블록을 이전 블록에 기초하여 암호화
5 단계 : Ftmp에 F'의 i-1_ * N+1번째 블록부터 i * N번째 블록까지 복사
6 단계 : Ftmp에 (n,r)분할 과정을 적용하고, 그 결과물을 (f1', f2' , … ,
fn') 에 대입
7 단계 : (반복문 시작) j=1부터 n까지 다음을 반복
8 단계 : fj에 fj와 fj'를 연결한 것을 대입;
9 단계 : (반복문 끝)
10 단계 : (반복문 끝)
11 단계 : n개의 파일 쉐어 f1, f2 , … , fn 을 반환;
위 단계 과정과 기초하여 도 3에 도시된 바와 같이, 오리지널 파일(F)이 38 바이트 크기를 가질 경우, 60 바이트의 크기를 가지기 위해서 도 4에 도시된 바와 같이, 처음 38 바이트는 F의 내용이 들어가고, 그 다음 18 바이트는 널문자(더미 영역)이 들어가며, 마지막 4 바이트는 수정 파일(F')의 크기 기록 정보가 들어간다.
이 같은 60 바이트 크기를 가지는 수정 파일(F')이 생성되면, 기설정된 조건에 따라 2 바이트 크기를 가지는 블록으로 분할되며, 분할된 각각의 블록은 이전 블록에 의해 암호화된다. 이후, 암호화된 10개의 블록을 포함하는 각각의 세그먼트로 분류되면, 제1 세그먼트부터 20 바이트씩 파일이 처리됨으로 제3 세그먼트의 파일이 처리될 때까지 3번의 반복문을 수행한다.
한편, 제1 세그먼트의 20 바이트는 도 7과 같이 5 개의 단위 파일 쉐어로 분할될 수 있다. 예를 들어 첫번째 첫 번째 단위 파일 쉐어는 SK의 첫 번째 행이 3, 1, 4, 10, 5, 9이므로, 파일의 3번째, 1번째, 4번째, 10번째, 5번째, 9번째 블록이 차례로 연결되어 만들어진다. 이와 같은 방법에 의해 도 8과 같이 F' 에 대한 다섯 개(f1' 내지 f5')의 단위 파일 쉐어가 만들어진다.
(4) 파일 복구 단계
n 개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 r 개의 파일 저장 장치(10)에 저장된 파일 쉐어를 이용하여 오리지널 파일로 복구하는 단계이다.
입력 : r 개의 단위 파일 쉐어 fs1', fs2', ... , fsr'
1 단계 : F' 초기화
2 단계 : L 에 |(size(fs1) / (M*B))| 값 대입
3 단계 : R을 {s1,s2, ... , sr}로 지정
4 단계 : (반복문 시작) j = 1 부터 N 까지 반복
5 단계 : (반복문 시작) i = 1 부터 n-r+1까지 반복
6 단계 : RK(I, j)의 값을 (z, t)에 대입
7 단계 : (조건문) 만일 z ∈ R이라면
8 단계 : 반복문 하나를 빠져나감
9 단계 : (조건문 끝)
10 단계 : (반복문 끝)
11 단계 : (xj,yj)에 (z, t)의 값을 대입
12 단계 : (반복문 끝)
13 단계 : (반복문 시작) l=1부터 L까지 다음을 반복
14 단계 : (반복문 시작) j=1부터 N까지 반복
15 단계 : F'에 블록 fxj[M(l-1)+yj] 를 추가
16 단계 : (반복문 끝)
17 단계 : (반복문 끝)
18 단계 : F'의 각 블록을 이전 블록에 기초하여 복호화
19 단계 : S에 F'의 마지막 4바이트의 값을 대입
20 단계 : 복화화된 F'의 size 값에 S의 값을 정수로 변환
21 단계 : F에 F'의 처음 size 바이트를 대입
22 단계 : F를 반환
위 단계 과정과 같이, n 개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 임의의 r 개의 파일 쉐어를 이용하여 오리지널 파일을 복구할 수 있다. 예를 들어, 5 개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 임의의 3개의 파일 쉐어를 두번째, 네번째, 다섯번째 파일 쉐어인 f2, f4, f5라고 할 경우, f2, f4, f5를 M = 6의 블록 단위 파일 쉐어로 나눈다. 여기서, 첫번째 단위 파일 쉐어를 f2', f4', f5'라고 가정하면, 도 9와 같이 10개의 블록으로 복구된다.
구체적으로, 도 6에 도시된 바와 같이, 행렬 RK의 첫번째 열이 [(1,2),(2,2),(4,1)]T 일 수 있다. 이 경우, 해당 순서쌍에서 앞의 숫자들로 이루어진 집합 {1,2,4}와 입력 파일 쉐어를 첨자들의 집합인 {2,4,5}의 교집합의 원소로 구분한다. 이 같은 원소들 중 교집합의 원소는 4이므로, 순서쌍 (4,1)를 선택한다. 이는 네번째 파일 쉐어의 첫번째 블록에 오리지널 파일의 첫번째 블록이 있는 것으로써, 따라서, f4'의 첫번째 파일 블록 [1,2]를 선택할 수 있다.
이 같은 과정을 반복하여 10개의 블록이 완성되면, 이를 과정을 3번을 반복하여 그 결과들을 차례로 연결한다. 이에 따라, 수정 파일(F')을 이루는 블록이 서로 연결되면, 각 블록별로 이전 블록을 이용하여 복호화를 수행함으로써, 도 4와 같은 암호화 전의 수정 파일(F')로 복구할 수 있다. 이 같은 수정 파일(F')이 복구되면, 마지막 4 바이트에 저장된 값이 38이므로, 처음 38 바이트만 선택하고, 나머지는 버림으로써, 오리지널 파일을 최종적으로 복구할 수 있다.
도 10은 본 발명의 일 실시예에 따른 파일 분산 관리 장치의 제어 방법에 대한 흐름도이다.
도 10에 도시된 바와 같이, 파일 분산 관리 장치(100)는 입력된 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할한다(S1010). 이후, 파일 분산 관리 장치(100)는 분할된 블록 중 기설정된 제1 크기에 대응하는 N 개의 블록을 포함하는 세그먼트로 분할한다(S1020). 여기서, 기설정된 제1 크기에 대응하는 N 개의 블록은 nCr -1에 기초하여 결정되며, 여기서, n은 상기 복수의 파일 저장 장치의 개수이며, r은 상기 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치(10)가 될 수 있다.
예를 들어, 파일의 크기가 60 바이트, 최소 단위의 크기를 갖는 블록은 2 바이트, 파일 저장 장치(10)가 5개, 해당 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치(10)가 3개이면, 파일 분산 관리 장치(100)는 2 * 5C3-1로부터 20 바이트라는 세그먼트의 크기를 결정할 수 있다. 이 같이, 세그먼트의 크기가 결정되면, 파일 분산 관리 장치(100)는 60 바이트 크기를 갖는 파일에 대한 세그먼트 수를 총 3개로 결정할 수 있다. 이 같이, 세그먼트에 대한 크기가 결정되면, 파일 분산 관리 장치(100)는 각 세그먼트별 전체 크기와 파일의 크기를 비교한다(S1030). 비교 결과, 파일의 크기가 각 세그먼트별 전체 크기보다 크거나 같으면, 파일에 대한 기설정된 최소 단위의 크기를 가지는 블록을 이전 블록에 기초하여 암호화를 수행한다(S1040).
구체적으로, 파일 분산 관리 장치(100)는 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록을 k 번째 블록의 암호화 키로 이용하여 k 번째 블록을 암호화할 수 있다.
한편, 단계 S1030에서 파일을 크기가 각 세그먼트별 전체 크기보다 작으면, 파일 분산 관리 장치(100)는 세그먼트별로 결정된 전제 블록 크기에 대응되도록 해당 파일에 소정의 크기의 더미 영역과 해당 파일의 크기를 나타내는 기록 영역을 포함하는 추가 영역을 부가한다(S1050). 이후, 파일 분산 관리 장치(100)는 더미 영역과 기록 영역을 포함하는 추가 영역이 부가된 파일인 수정 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할한다. 이와 같이, 오리지널 파일에 더미 영역과 기록 영역이 추가된 수정 파일이 생성되면, 전술한 단계 S1040에서 파일 분산 관리 장치(100)는 수정 파일에 대한 기설정된 최소 단위의 크기를 가지는 블록을 이전 블록에 기초하여 암호화를 수행할 수 있다.
이후, 파일 분산 관리 장치(100)는 세그먼트 별로 포함된 N 개의 암호화된 블록 중 n 개의 파일 저장 장치(10)로 분산할 블록을 선택한다(S1070). n 개의 파일 저장 장치(10)로 분산할 블록을 선택하는 실시예는 상기에서 상세히 설명하였기에 이하에서는 상세한 설명을 생략하도록 한다.
각 세그먼트별로 n 개의 파일 저장 장치(10)로 분산할 블록이 선택되면, 파일 분산 관리 장치(100)는 선택된 블록에 대응되는 단위 파일 쉐어를 단일의 파일 쉐어로 결정하여 n 개의 파일 저장 장치(10)로 분산한다(S10780). 이에 따라, n 개의 파일 저장 장치(10)는 파일 분산 관리 장치(100)로부터 파일 쉐어를 수신하여 저장할 수 있다.
한편, 파일 분산 관리 장치(100)는 n 개의 파일 저장 장치(10)에 저장된 파일 쉐어 중 r 개의 파일 저장 장치에 저장된 파일 쉐어를 조합하고, 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 오리지널 파일로 복원할 수 있다.
여기서, 더미 영역은 널문자(null character)가 될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 더미 영역은 널문자가 아닌 더미값 형태로 이루어질 수 있다. 그리고, 기록 영역을 전술한 바와 같이, 해당 파일의 크기를 나타내는 영역으로써, 4 바이트가 할당될 수 있다. 한편, 전술한 더미 영역의 크기는 N * B * L - size(F) - 4 바이트로 계산될 수 있다. 여기서, N 은 기설정된 최소 단위의 블록 크기, B 는 nCr -1로부터 산출된 값으로써, N * B는 세그먼트를 이루는 크기가 될 수 있다. 또한, L 은 세그먼트 수, size(F)는 오리지널 파일의 크기, 4 바이트는 기설정된 기록 영역의 크기가 될 수 있다. 또한, 세그먼트 수(L)는 |(size(F) + 4) / (N * B)|로부터 도출될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.
이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
10 : 파일 저장 장치 100 : 파일 분산 관리 장치
110 : 통신부 120 : 제어부
121 : 파일 분할부 122 : 암호화부
123 : 파일 쉐어 선택부 124 : 파일 쉐어 분산부
130 : 저장부

Claims (16)

  1. 파일로부터 생성된 복수의 파일 쉐어를 복수의 파일 저장 장치에 분산하여 저장 및 상기 파일을 복원하는 파일 분산 관리 장치에 있어서,
    상기 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 상기 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할하는 파일 분할부;
    상기 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화하는 암호화부;
    상기 세그먼트별로 포함된 N개의 암호화된 블록 중 상기 복수의 파일 저장 장치별로 분산할 블록을 단위 파일 쉐어로 선택하는 파일 쉐어 선택부; 및
    상기 세그먼트별로 선택된 상기 단위 파일 쉐어를 상기 복수의 파일 저장 장치로 분산하는 파일 쉐어 분산부;
    를 포함하는 파일 분산 관리 장치.
  2. 제 1 항에 있어서,
    상기 암호화부는,
    상기 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록을 k 번째 블록의 암호화 키로 이용하여 상기 k 번째 블록을 암호화하는 것을 특징으로 하는 파일 분산 관리 장치.
  3. 제 2 항에 있어서,
    상기 기설정된 제1 크기에 대응하는 N개의 블록은,
    nCr -1에 기초하여 결정되며, 여기서, n은 상기 복수의 파일 저장 장치의 개수이며, r은 상기 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치인 것을 특징으로 하는 파일 분산 관리 장치.
  4. 제 3 항에 있어서,
    상기 파일 쉐어 선택부는,
    집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,nCr-1}이 일대일 대응(f:T -> W)하도록 생성하는 것을 특징으로 하는 파일 분산 관리 장치.
  5. 제 3 항에 있어
    상기 파일 쉐어 선택부는,
    상기 n개의 파일 저장 장치에 분산할 단위 파일 쉐어 중 임의의 r 개의 단위 파일 쉐어가 상기 nCr -1에 기초하여 결정된 블록을 포함하되,
    임의의 r-1 개의 단위 파일 쉐어는 상기 nCr -1에 기초하여 결정된 블록을 모두 포함하지 않도록 n-1Cr -1에 기초하여 결정된 블록을 선택하는 것을 특징으로 하는 파일 분산 관리 장치.
  6. 제 5 항에 있어서,
    상기 파일 쉐어 선택부는,
    집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,N-1}이 일대일 대응(f:T -> W)하도록 생성하며,
    i=1,2,...,n에 대하여, 상기 T의 원소 중 상기 i를 포함하는 상기 {1,2,...,n}의 n-1Cr -1 개의 부분집합을 선택하여, 이를 S(1), S(2),...,S(n-1Cr -1)라고 가정하면, 상기 n개의 파일 저장 장치 중 i 번째에 대응되는 파일 저장 장치에 분산되도록 상기 n-1Cr -1 개의 블록 중 f(S(1)), f(S(2)),...,f(S(n-1Cr -1))번째 블록을 상기 i 번째 파일 저장 장치에 저장하는 것을 특징으로 하는 파일 분산 관리 장치.
  7. 제 3 항에 있어서,
    상기 파일 분할부는,
    상기 파일로부터 분할된 블록을 전체 크기와 상기 세그먼트별로 결정된 전체 블록 크기를 비교하여 상기 파일의 전체 블록의 크기가 작으면, 상기 세그먼트별로 결정된 전체 블록 크기에 대응되도록 상기 파일에 소정의 크기의 더미 영역과 상기 파일의 크기에 대한 기록 영역을 부가하며,
    상기 더미 영역과 상기 기록 영역이 부가된 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하는 것을 특징으로 하는 파일 분산 관리 장치.
  8. 제 3 항에 있어서,
    상기 파일 복원 시, 상기 r개의 파일 저장 장치에 저장된 파일 쉐어을 조합하고, 상기 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 상기 파일로 복원하는 파일 복원부;
    를 더 포함하는 것을 특징으로 하는 파일 분산 관리 장치.
  9. 파일로부터 생성된 복수의 파일 쉐어를 복수의 파일 저장 장치에 분산하여 저장 및 상기 파일을 복원하는 파일 분산 관리 장치의 제어 방법에 있어서,
    상기 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하고, 상기 분할된 블록 중 기설정된 제1 크기에 대응하는 N개의 블록을 포함하는 세그먼트로 분할하는 단계;
    상기 기설정된 최소 단위의 크기를 갖는 블록을 이전 블록에 기초하여 암호화하는 단계;
    상기 세그먼트 별로 포함된 N개의 암호화된 블록 중 상기 복수의 파일 저장 장치별로 분산할 블록을 단위 파일 쉐어로 선택하는 단계; 및
    상기 세그먼트별로 선택된 상기 단위 파일 쉐어를 상기 복수의 파일 저장 장치로 분산하는 단계;
    를 포함하는 제어 방법.
  10. 제 9 항에 있어서,
    상기 암호화하는 단계는,
    상기 최소 단위의 크기를 갖는 블록 중 k-1 번째 블록을 k 번째 블록의 암호화 키로 이용하여 상기 k 번째 블록을 암호화하는 것을 특징으로 하는 제어 방법.
  11. 제 10 항에 있어서,
    상기 기설정된 제1 크기에 대응하는 N개의 블록은,
    nCr -1에 기초하여 결정되며, 여기서, n은 상기 복수의 파일 저장 장치의 개수이며, r은 상기 파일을 복원하는데 이용되는 파일 쉐어의 개수에 대응되는 파일 저장 장치인 것을 특징으로 하는 제어 방법.
  12. 제 11 항에 있어서,
    상기 선택하는 단계는,
    집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,nCr-1}이 일대일 대응(f:T -> W)하도록 생성하는 것을 특징으로 하는 제어 방법.
  13. 제 11 항에 있어
    상기 선택하는 단계는,
    상기 n개의 파일 저장 장치에 분산할 단위 파일 쉐어 중 임의의 r 개의 단위 파일 쉐어가 상기 nCr -1에 기초하여 결정된 블록을 포함하되,
    임의의 r-1 개의 단위 파일 쉐어는 상기 nCr -1에 기초하여 결정된 블록을 모두 포함하지 않도록 n-1Cr -1에 기초하여 결정된 블록을 선택하는 것을 특징으로 하는 제어 방법.
  14. 제 13 항에 있어서,
    상기 선택하는 단계는,
    집합 {1,2,...,n}의 원소 n-r+1개짜리 부분집합의 집합 T와 집합 W={1,2,3,...,N-1}이 일대일 대응(f:T -> W)하도록 생성하며,
    i=1,2,...,n에 대하여, 상기 T의 원소 중 상기 i를 포함하는 상기 {1,2,...,n}의 n-1Cr -1 개의 부분집합을 선택하여, 이를 S(1), S(2),...,S(n-1Cr -1)라고 가정하면, 상기 n개의 파일 저장 장치 중 i 번째에 대응되는 파일 저장 장치에 분산되도록 상기 n-1Cr -1 개의 블록 중 f(S(1)), f(S(2)),...,f(S(n-1Cr -1))번째 블록을 상기 i 번째 파일 저장 장치에 저장하는 것을 특징으로 하는 제어 방법.
  15. 제 11 항에 있어서,
    상기 분할하는 단계는,
    상기 파일로부터 분할된 블록을 전체 크기와 상기 세그먼트별로 결정된 전체 블록 크기를 비교하여 상기 파일의 전체 블록의 크기가 작으면, 상기 세그먼트별로 결정된 전체 블록 크기에 대응되도록 상기 파일에 소정의 크기의 더미 영역과 상기 파일의 크기에 대한 기록 영역을 부가하며,
    상기 더미 영역과 상기 기록 영역이 부가된 파일을 기설정된 최소 단위의 크기를 갖는 블록으로 분할하는 것을 특징으로 하는 제어 방법.
  16. 제 11 항에 있어서,
    상기 파일 복원 시, 상기 r개의 파일 저장 장치에 저장된 파일 쉐어을 조합하고, 상기 조합된 파일 쉐어를 구성하는 각각의 단위 파일 쉐어별 암호화된 블록을 이전 블록에 기초하여 복호화하여 상기 파일로 복원하는 단계;
    를 더 포함하는 것을 특징으로 하는 제어 방법.

KR1020130052763A 2013-05-09 2013-05-09 파일 분산 관리 장치 및 제어 방법 KR102084733B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130052763A KR102084733B1 (ko) 2013-05-09 2013-05-09 파일 분산 관리 장치 및 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130052763A KR102084733B1 (ko) 2013-05-09 2013-05-09 파일 분산 관리 장치 및 제어 방법

Publications (2)

Publication Number Publication Date
KR20140133127A KR20140133127A (ko) 2014-11-19
KR102084733B1 true KR102084733B1 (ko) 2020-03-05

Family

ID=52453863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130052763A KR102084733B1 (ko) 2013-05-09 2013-05-09 파일 분산 관리 장치 및 제어 방법

Country Status (1)

Country Link
KR (1) KR102084733B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102249826B1 (ko) * 2015-01-06 2021-05-11 삼성전자주식회사 데이터 관리 방법 및 이를 수행하는 전자 장치
KR102716820B1 (ko) * 2024-03-26 2024-10-15 한화시스템 주식회사 하둡(hdfs)에서의 데이터 보호 장치 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009010531A (ja) 2007-06-26 2009-01-15 Toshiba Corp 秘密分散装置、方法及びプログラム
JP4945715B2 (ja) 2005-10-07 2012-06-06 凸版印刷株式会社 データバックアップ装置及びデータバックアップ方法並びにそのプログラム
JP2012108955A (ja) 2012-02-28 2012-06-07 Intec Inc ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101456579B1 (ko) * 2010-07-23 2014-10-31 니폰 덴신 덴와 가부시끼가이샤 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4945715B2 (ja) 2005-10-07 2012-06-06 凸版印刷株式会社 データバックアップ装置及びデータバックアップ方法並びにそのプログラム
JP2009010531A (ja) 2007-06-26 2009-01-15 Toshiba Corp 秘密分散装置、方法及びプログラム
JP2012108955A (ja) 2012-02-28 2012-06-07 Intec Inc ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム

Also Published As

Publication number Publication date
KR20140133127A (ko) 2014-11-19

Similar Documents

Publication Publication Date Title
WO2020259635A1 (zh) 一种区块链数据共享方法及装置
CN102693398B (zh) 一种数据加密方法及系统
US9292700B2 (en) Method and system for securing data
US9001998B2 (en) Data encryption and decryption method and apparatus
US8942373B2 (en) Data encryption and decryption method and apparatus
US20120134491A1 (en) Cloud Storage Data Encryption Method, Apparatus and System
CN111492615A (zh) 具有可更新共享矩阵的加密设备
US20160056954A1 (en) Apparatus and method for providing feistel-based variable length block cipher
US20120203990A1 (en) Method for storing and recovering data, utilization of the method in a storage cloud, storage server and computer program product
CN105071927A (zh) 一种移动设备数据本地存储方法
CN111310222A (zh) 文件加密方法
US11108543B2 (en) Method for encrypting data for distributed storage
CN104836656A (zh) 一种视频文件的存储和传输方法
CN105516340A (zh) 一种云存储数据可恢复性验证方法及系统
US20200044838A1 (en) Data encryption method and system using device authentication key
US20080098217A1 (en) Method for efficient and secure data migration between data processing systems
CN113726517A (zh) 一种信息共享方法及装置
WO2016130030A1 (en) Method of securing data using threshold cryptography
CN116389137A (zh) 一种基于网络信息安全的数据加密方法及系统
CN114629652B (zh) 基于物理不可复制函数的密钥管理系统及其操作方法
KR102084733B1 (ko) 파일 분산 관리 장치 및 제어 방법
CN101571873B (zh) 一种数据库数据加密系统和方法
CN117318943B (zh) 一种量子分布式数据存储及恢复方法
WO2010067660A1 (ja) 通信装置、通信方法及びプログラム
KR20160001598A (ko) 스토리지 디바이스용 호스트 키 생성 방법 및 시스템

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