KR20140055093A - 분산 데이터 저장, 복원 시스템 및 방법 - Google Patents

분산 데이터 저장, 복원 시스템 및 방법 Download PDF

Info

Publication number
KR20140055093A
KR20140055093A KR1020120121432A KR20120121432A KR20140055093A KR 20140055093 A KR20140055093 A KR 20140055093A KR 1020120121432 A KR1020120121432 A KR 1020120121432A KR 20120121432 A KR20120121432 A KR 20120121432A KR 20140055093 A KR20140055093 A KR 20140055093A
Authority
KR
South Korea
Prior art keywords
secret
distributed
information
data
pieces
Prior art date
Application number
KR1020120121432A
Other languages
English (en)
Other versions
KR101553986B1 (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 KR1020120121432A priority Critical patent/KR101553986B1/ko
Publication of KR20140055093A publication Critical patent/KR20140055093A/ko
Application granted granted Critical
Publication of KR101553986B1 publication Critical patent/KR101553986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

분산파일시스템(Distributed File System: DFS)에 적용될 수 있는 분산 저장/복원 방법을 개시한다. 본 발명의 실시예에 따른 분산 저장/복원 방법은 분산 저장의 대상 텍스트 정보를 n개의 분할된 이진 데이터로 변환하는 단계, 상기 n개의 분할된 이진 데이터로부터 n개의 비밀조각을 생성하고, n개의 비밀조각 각각에 상응하는 n개의 분산저장 키를 생성하는 단계 및 상기 n개의 비밀조각 각각을 n개의 서버에 분산 저장하고 상기 n개의 분산저장 키를 네임노드 서버에 저장하는 단계를 포함한다. 본 발명의 실시예에 따른 정보의 분산 저장/복원 방법은 데이터 서버에 있는 정보로부터 중요하고 민감한 개인정보를 추론하는 것을 방지할 수 있다.

Description

분산 데이터 저장, 복원 시스템 및 방법{SYSTEM AND METHOD OF DISTRUBUTED DATA STORAGE, RESTORATION}
본 발명은 분산 데이터 저장/복원 시스템 및 방법에 관한 것이다.
대용량 정보처리에 대한 요구가 증대될수록 클라우드 컴퓨팅 기반의 분산파일시스템에 대한 요구는 성능과 비용뿐만 아니라 정보공유의 용이성, 지리적 제한의 최소화, 저장 공간 이용의 효율성 등 다방면에서 지속적으로 증가하고 있다. 또한, 정보화 사회로 빠르게 진행됨에 따라 다양한 인터넷 서비스가 제공되고 있으며 이에 따라 다양한 개인정보의 요구도 증가하고 있다. 그러나 광범위하게 수집된 개인정보가 기업 또는 기관에서 관리자 등에 의한 오남용과 부주의로 노출되는 등 지속적으로 문제를 일으켜 왔다. 때때로 민감한 개인정보가 남용되거나 불법적으로 사용되어 정보 소유자에게 재산상의 손해와 정신적인 피해를 입히고 있으며 또한 정보 관리 주체로서의 기업 및 기관의 책임 범위 또한 문제되고 있다.
개인정보의 안전한 쓰기, 읽기 방법이 마련되지 않은 상태에서 분산파일시스템을 사용하는 것은 개인정보 관리라는 정보보호 측면에서 많은 문제를 일으킬 수 있다.
종래에 이러한 문제점을 해결하기 위한 방안으로, 개인정보를 담고 있는 데이터를 활용할 목적으로 배포할 때 민감한 개인정보가 유출되지 않도록 하는 방법에 관한 연구가 진행되어 왔다. 이와 관련하여 개인정보에 민감한 정보를 삭제한 후 배포하는 탈-식별화(de-identification) 방법이 제시되었다. 그러나 이 방법은 배포된 정보와 이 정보와 연결된 데이터를 통해 개인정보를 추론할 수 있는 추론공격이 가능하다. 그래서 프라이버시 보호 방법으로 익명화(anonymization) 방법인 k-anonymity, l-diversity를 비롯한 왜곡(distortion), 압축(condensation), 교환(swapping), 분해(anatomy) 등의 방법이 연구되었다. 그러나 이러한 기법들은 주로 데이터베이스 환경을 대상으로 연구가 이루어지고 있고 텍스트 기반의 정보에 대한 접근은 상대적으로 이루어지지 않았다.
다른 방안으로, 정당한 권한이 없는 사용자에게 개인정보가 노출되지 않도록 하기 위한 암호화 방법이 사용되어 왔는데, 암호화 방법은 대칭키 암호화 방법과 비대칭키 암호화 방법을 들 수 있다.
대표적인 대칭키 암호화 알고리즘은 DES(Data Encryption Standard)인데 이 알고리즘은 1976년에 미국 표준이 되었고 56비트 키 크기를 갖고 있다. 또 128, 192, 256비트 키 크기를 갖는 AES(Advanced Encryption) 알고리즘은 2001년에 새로운 미국 표준이 되었다. 한국에서는, 128비트를 갖는 SEED 알고리즘이 1999년 표준으로 제정이 되었고 2005년 개정이 되었다.
하나의 쌍인 서로 다른 두 개의 키를 갖는 비대칭 키 알고리즘의 전형적인 알고리즘은 RSA 알고리즘이다. 이 암호화 방법은 하나의 키로 평문을 암호화하여 만든 암호문을 다시 평문으로 만들기 위해서 암호화 할 때 사용한 키의 쌍인 다른 키만 사용할 수 있다. 즉, 대칭키 암호화 방법은 암호화하거나 복호화할 때 동일한 키를 사용하지만 비대칭 키 암호화 방법은 서로 다른 키를 이용하여 암호화하거나 복호화 한다. 정보보호 분야에서, 암호화 알고리즘 개발 분야는 가장 광범위하게 연구되어 왔고 그만큼 적용분야도 많다. 그러나 암호화 알고리즘은 송신자와 수신자 양측에서 암/복호화가 진행되기에 정보가 여러 곳에 나누어져 있는분산 구조에서 가용성을 보장하는 분산파일시스템에서는 적합하지 않다.
본 발명이 해결하고자 하는 과제는 보안이 필요한 정보를 안전하게 분산 저장하는 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 보안이 필요한 분산 저장된 정보를 안전하게 복원하여 재구성하는 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 기존의 하둡 분산파일 시스템에 적용 가능한 정보의 분산저장 및 복원 방법을 제공하는 것이다.
본 발명의 일 양태에 따른 분산 파일 시스템에 적용되는 분산 데이터 저장 방법은 분산 저장의 대상 텍스트 정보를 n개의 분할된 이진 데이터로 변환하는 단계, 상기 n개의 분할된 이진 데이터로부터 n개의 비밀조각을 생성하고, n개의 비밀조각 각각에 상응하는 n개의 분산저장 키를 생성하는 단계 및 상기 n개의 비밀조각 각각을 n개의 데이터노드 서버에 분산 저장하고 상기 n개의 분산저장 키를 네임노드 서버에 저장하는 단계를 포함한다.
상기 n개의 비밀조각의 생성하고, n개의 비밀조각 각각에 상응하는 n개의 분산저장 키를 생성하는 단계는 상기 n개의 분할된 이진 데이터를 상수항으로 하는 t-1차 다항식을 설정하는 단계 및 상기 t-1차 다항식으로부터 상기 n개의 분산저장 키에 대한 상기 n개의 비밀조각을 획득하는 단계를 포함할 수 있다.
상기 t-1차 다항식은 하기 식일 수 있다.
Figure pat00001
여기서 q는 n+1보다 같거나 큰 소수, xi는 상기 n개의 분산저장 키, aj 는 상기 t-1차 다항식의 계수로 임의로 선택된 값, Kl은 상기 n개의 분할된 이진 데이터이다.
상기 네이노드 서버는 상기 n개의 비밀조각의 위치정보를 분산저장 키 정보와 함께 저장할 수 있다.
상기 분산 파일 시스템은 하둡 분산 파일 시스템일 수 있다.
본 발명의 다른 양태에 따른 분산 파일 시스템에 저장된 분산 데이터로부터 데이터를 복원하는 방법은 n개의 데이터노드 서버로부터 n개의 비밀조각을 획득하는 단계, 네임노드 서버로부터 n개의 분산 저장키를 획득하는 단계, 상기 n개의 분산저장키를 이용하여 상기 n개의 비밀조각으로부터 n개의 분할된 이진 데이터를 생성하는 단계 및 상기 n개의 분할된 이진 데이터로부터 텍스트 정보를 복원하는 단계를 포함한다.
상기 n개의 분산저장키를 이용하여 상기 n개의 비밀조각으로부터 n개의 분할된 이진 데이터를 생성하는 단계는 상기 n개의 분산저장키와 상기 n개의 비밀조각으로부터 라그랑지 보간법을 이용해 n개의 분할된 이진 데이터를 생성하는 단계를 포함할 수 있다.
상기 분산 파일 시스템은 하둡 분산 파일 시스템일 수 있다.
서버에 저장/관리되는 정보의 보안성을 강화하여 정보를 안전하게 지킬 수 있다. 분산파일 시스템를 사용하는 분산 시스템에 보안성이 요구되는 개인정보를 비롯한 민감한 정보를 변형하여 나누어 저장하여, 정보가 일부 누출된 상황에서도 추론공격을 방어할 수 있다. 또한 일부 데이터 서버를 사용할 수 없거나 접속할 수 없는 경우에도 임계 값 이상으로 변형하여 나누어진 정보들을 기반으로 원래의 정보를 복원할 수 있다.
56비트, 128비트, 192비트, 256비트로 고정화된 암호키 대신에 보호대상인 정보를 적당한 크기로 나누어 다항식의 상수항에 대응하도록 확장할 수 있다.
도 1은 본 발명의 실시예에 따른 개인정보 비밀 분산/복구 과정 및 주요 구성을 개략적으로 나타낸 것이다.
도 2는 본 발명의 실시예에 따른 비밀분산 저장 방법을 절차를 나타낸 흐름도이다.
도 3은 본 발명의 실시예에 따른 개인정보의 비밀 복구 방법을 나타낸 흐름도이다.
도 4는 분산 저장된 HDFS 파일불록을 개략적으로 나타낸 블록도이다.
도 5는 HDFS 파일블록의 분산 저장 절차 개념을 간략히 도시한 것이다.
도 6은 비밀조각, 비밀스트림 및 비밀파일 간의 관계를 나타낸 것이다.
도 7은 비밀스트립 위치정보와 함께 비밀 분산/복원에 필요한
Figure pat00002
정보를 같이 저장하는 예를 나타낸 것이다.
도 8은 HDFS에서 데이터가 복수의 데이터노드 서버에 분산 저장되는 예를 나타낸 것이다.
도 9는 상술한 비밀분산법을 이용한 안전한 저장(쓰기)/복원(읽기) 하둡 분산파일시스템의 전체 구성도이다.
도 10은 다항식의 차수와 비밀분산 조각 개수에 따른 시간을 비교한 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
도 1은 본 발명의 실시예에 따른 개인정보 비밀 분산/복구 과정 및 주요 구성을 개략적으로 나타낸 것이다.
본 발명의 실시예에 따른 정보 분산 저장 시스템은 복수의 데이터 노드(datanode)와 네임노드(namenode)로 구성되어 보호되어야 할 정보를 분산 저장하고, 복원한다. 이하에서 저장/복원 방법을 설명하면서 각 구성부의 기능을 함께 설명하기로 한다.
본 발명은 비밀분산법(secret sharing scheme)이 적용된 데이터 쓰기/읽기 방법에 관한 것이다. 비밀분산법이 적용된 데이터 쓰기/읽기 방법은 그 구조적 특징으로 인해 기밀성뿐만 아니라 가용성을 모두 보장한다.
본 발명은 암호 알고리즘의 비밀키를 안전하게 관리하는 방법인 샤미르(Shamir)의 비밀분산 방법(
Figure pat00003
임계 값 방법(threshold method))을 사용한다. 여기서
Figure pat00004
은 양의 정수이며,
Figure pat00005
이다. 전체 참여자 집합을
Figure pat00006
라고 할 때
Figure pat00007
중에서
Figure pat00008
명의 참여자들인
Figure pat00009
에게 임의의 키인 비밀정보
Figure pat00010
를 다항식을 통해 변형된 값인 비밀조각(secret share)
Figure pat00011
들로 분배한다면, 임의의
Figure pat00012
명 이상의 참여자는 자신들이 갖고 있는 값으로 비밀정보
Figure pat00013
를 구할 수 있지만,
Figure pat00014
명 이하의 참여자가 모여서는 정확한
Figure pat00015
를 구할 수 없다.
수식 1은 샤미르의 비밀분산 방법에 사용될 수 있는 다항식이다.
Figure pat00016
여기서
Figure pat00017
이며 소수이다.
이와 더불어
Figure pat00018
임계 값 방법을 일반화하여 참가자 집합
Figure pat00019
에 대해 참가자
Figure pat00020
명으로 이루어진 부분집합을 접근구조(access structure)라 하고 이것을 구성하는 방법에 따라 다양한 비밀분산방법이 존재할 수 있다. 이때, 정확히 임계 값
Figure pat00021
명 이상으로 이루어진 비밀정보 참가자들의 부분집합은 자신들이 갖고 있는 비밀조각을 이용하여 비밀정보
Figure pat00022
를 복원할 수 있지만,
Figure pat00023
명 미만의 참가자들의 부분집합은 결코 어떤 정보도 획득할 수 없다고 하여 이를 완전 비밀분산법(perfect secret sharing scheme)이라고 한다.
따라서 임의의 접근구조에 대한 다양한 비밀분산 방법이 존재할 수 있으며 최적화된 방법을 구분하기 위한 접근구조의 성능 측정방법이 제시될 수 있다. 즉, 제시된 시스템의 안정성은 참여자들에게 분산되는 정보량에 반비례한다. 그러므로 감추고자 하는 비밀정보량에 대한 분배되는 비밀조각의 정보량의 비율인 정보비(information rate)를 비밀분산법의 주요 성능 측정 기준으로 할 수 있다. 정보비는 수식 2와 같이 정의될 수 있다.
Figure pat00024
수식 2에서
Figure pat00025
는 비밀정보
Figure pat00026
가 가질 수 있는 모든 가능한 값의 개수이고,
Figure pat00027
는 정보를 분산할 수 있는 가능한 집합의 최대 크기이다. 즉, 수식 2의 정보비의 의미는 비밀정보
Figure pat00028
가 가지는 비트의 길이와 분할된 분산정보가 갖는 비트 길이의 비율이다. 정보비
Figure pat00029
인 비밀분산 방법을 이상적 비밀분산법이라 할수 있는데, 샤미르(Shamir)의 비밀분산법은 이상적 비밀분산법임을 알 수 있다.
이러한 비밀분산법은 여러 목적에 따라 다양한 형태로 변형될 수 있는데, 일례로 참여자들의 비밀조각에 대한 접근권한이 동일하지 않은 모델을 지원하는 구조, 계산해야 되는 비밀조각이 많은 경우 고속으로 비밀분산과 비밀복구를 지원하는 구조, 비밀조각으로 만들어야 되는 데이터의 양이 큰 경우 이를 관리하는 구조 등이 적용될 수 있다.
클라우드 컴퓨팅 기반의 분산파일 시스템(distributed file system, DFS)은 효율적인 컴퓨팅 자원의 활용과 그에 따른 비용절감뿐만 아니라 대규모로 저장되어 있는 수집된 정보를 쉽게 이용할 목적을 갖는다. 그러나 평문(plaintext) 형태로 데이터 서버에 개인정보가 분산되어 저장된다면, 정보가 부분적으로만 누출된다고 하더라도 추론공격으로 인하여 민감한 개인정보(일례로 신용카드, 병력 정보 등)의 유출로 이어질 수 있다. 따라서 본 발명에서는 DFS를 사용하는 분산 시스템에 민감한 정보를 변형하여 나누어 저장하여 정보가 일부 누출되어도 추론공격을 방어할 수 있는 방법을 제안한다. 또한 일부 데이터 서버를 사용할 수 없거나 접속할 수 없는 경우에도 임계 값 이상으로 변형하여 나누어진 정보들을 모을 수 있다면 수집된 정보들로부터 원래의 민감한 정보를 복원할 수 있다.
이와 더불어 기존 샤미르의 임계 값 방법에서 사용된 검출 키의 길이는 56비트, 128비트, 192비트, 256비트이지만, 본 발명에서 제안하는 방법은 임의의 암호키 대신에 보호대상인 민감한 개인정보를 적당한 크기로 나누어 다항식의 상수항에 대응하도록 확장할 수 있다.
종래의 분산방법처럼 비밀조각
Figure pat00030
Figure pat00031
를 같이 보관하는 것은 일부 데이터 서버에서 노출된 정보가 무차별 대입 공격(Brute Force Attack)을 통해 비밀조각을 계산한 완전한 다항식을 발견할 수 있으나, 본 발명의 실시예에 따른 분산방법은 기밀성을 구조적으로 보장할 수 있도록 분산파일시스템의 구조를 효율적으로 사용할 수 있도록 한다. 즉,
Figure pat00032
값은 분산파일시스템의 파일 이미지 테이블에 저장하고, 비밀조각
Figure pat00033
는 분산파일시스템의 데이터 서버에 분할하여 저장되도록 하여 쉽게 무차별 대입 공격 시간을 줄일 수 없도록 할 수 있다.
도 2는 본 발명의 실시예에 따른 비밀분산 저장 방법을 절차를 나타낸 흐름도이다. 입력값은 비밀조각을 계산할 다항식의 차수(
Figure pat00034
), 비밀스트립
Figure pat00035
가 저장될 데이터노드의 총 개수(
Figure pat00036
), 보호되어야 할 개인정보 텍스트(
Figure pat00037
)이 될 수 있으며, 출력값은 비밀값(
Figure pat00038
), 비밀값을 계산한
Figure pat00039
값이 될 수 있다.
Figure pat00040
는 비밀 분산 저장 및 추후 복원에 사용되는 값으로 분산저장 키, 복원 키 등 다양한 이름으로 불리울 수 있다.
도 2에서 예시하고 잇는 비밀 분산 저장방법은 분산 저장의 대상 텍스트 정보를 분할된 이진 데이터로 변환하고, 분할된 이진 데이터로부터 비밀조각을 생성하고, 비밀조각 각각에 상응하는 분산저장 키(
Figure pat00041
)를 생성하고, 비밀조각 각각을 데이터노드 서버에 분산 저장하고 분산저장 키를 네임노드 서버에 저장하는 과정으로 수행될 수 있다.
이하에서는 도 2을 참조하여 분산 저장의 대상 텍스트 정보를 분할된 이진 데이터로 변환하고, 분할된 이진 데이터로부터 비밀조각을 생성하고, 비밀조각 각각에 상응하는 분산저장 키(
Figure pat00042
)를 생성하고, 비밀조각 각각을 데이터노드 서버에 분산 저장하고 분산저장 키를 네임노드 서버에 저장하는 과정을 보다 상세히 설명한다.
비밀 분산 저장을 위하여, 먼저 텍스트 형식의 개인정보
Figure pat00043
을 수식 3과 같이 이진(binary) 데이터
Figure pat00044
로 변환한다(S21).
Figure pat00045
Figure pat00046
수식 3에서
Figure pat00047
은 조각난 개인정보
Figure pat00048
의 전체 나누어진 수이다.
수식 3에서 개인정보
Figure pat00049
은 수식 4의 조건을 만족한다.
Figure pat00050
Figure pat00051
Figure pat00052
가 양의 정수가 되도록
Figure pat00053
을 적당한
Figure pat00054
로 나누어
Figure pat00055
을 만든다.
임의의 소수
Figure pat00056
를 선택한다(S22). 여기서
Figure pat00057
은 총 데이터노드의 수이다
이진화된 개인정보
Figure pat00058
을 상수항으로 하는 임의의
Figure pat00059
차수의 다항식을 선택하고 서로 다른 각각의 임의의 계수 값
Figure pat00060
와 임의의
Figure pat00061
값을 선택한다(S23).
수식 5는 임의의
Figure pat00062
차수의 다항식, 수식 6은 수식 5와 같이 선택된
Figure pat00063
차 다항식의 각 계수의
Figure pat00064
값 및 임의의
Figure pat00065
값을 나타낸 것이다.
Figure pat00066
Figure pat00067
Figure pat00068
값에 대한 비밀조각(비밀 값)
Figure pat00069
를 계산한다(S24).
모든
Figure pat00070
에 대해 상술한 과정 S23 및 S24를 반복하여 수식 7의 비밀스트립(secret strip)
Figure pat00071
을 얻는다(S25).
Figure pat00072
모든
Figure pat00073
Figure pat00074
에 대해 이전의 S23내지 SS25를 반복하여 수식 8의 비밀조각들의 집합
Figure pat00075
을 구한다(S26).
Figure pat00076
계산된 모든
Figure pat00077
에 대해 일정한 구조를 갖는 비밀파일(secret file)
Figure pat00078
을 얻는다(S27).
비밀스트립 쌍
Figure pat00079
Figure pat00080
값을 블록 복제 구성 파일에 확장하여 기록한다(S28).
도 3은 본 발명의 실시예에 따른 개인정보의 비밀 복구 방법을 나타낸 흐름도이다. 비밀 복구 절차에 있어서 입력값은
Figure pat00081
개 이상의 비밀값(비밀조각) 및 각각의 비밀값에 대응하는
Figure pat00082
값이며, 출력값은 복원된 개인정보 텍스트이다.
데이터노드에 변형되어 분산 저장되어 있는 개인정보 파일과 네임노드에서 저장되어 있는
Figure pat00083
을 획득한다(S31).
비밀 파일로부터 비밀 스트립
Figure pat00084
을 획득한다(S32).
획득한 비밀스트립
Figure pat00085
에 대응하는 모든
Figure pat00086
값들을 획득한다(S33).
재조합한 파일로부터
Figure pat00087
이상의
Figure pat00088
를 획득한다(S34).
비밀조각
Figure pat00089
과 대응하는 값
Figure pat00090
들을 기반으로 라그랑지 보간법(Lagrange’s Interpolation)을 통해 분할된 이진 개인정보
Figure pat00091
를 구한다(S35). 이때, 분할된 이진 개인정보는 수식 9를 통해 얻어질 수 있다.
Figure pat00092
이진 개인정보
Figure pat00093
을 분할된 개인정보
Figure pat00094
로 변환한다(S36). 즉, 이 과정은 이진 개인정보를 텍스트 정보의 조각으로 변환하는 과정이다.
모든
Figure pat00095
에 대해 S35 및 S36의 단계를 반복하여 모든 분할된 개인정보를 획득한다(S37).
모든 분할된 개인정보
Figure pat00096
을 합하여(
Figure pat00097
) 개인정보 M을 구한다(S38).
상술한 실시예의 S35단계에서 라그랑지 보간법을 사용하여 분할된 이진 개인정보를 구하였으나, 실시예에 따라서는 일반적인 행렬 방정식을 사용할 수도 있다.
한편, 하둡(Hadoop) 분산파일 시스템(HDFS)는 대용량의 파일 관리를 지원하고 다중 파일 복사본을 저장하여 가용성을 보장하는 구조를 갖고 있는데, 파일 복사본을 갖고 있는 데이터노드(Datanode)들 뿐만 아니라 파일 이미지 정보를 갖는 네임노드(Namenode)를 갖는 구조이다.
본 발명의 일 실시예에 의하면 네임노드와 데이터노드에서 비밀을 분산하고 복구하는 과정을 HDFS의 파일 읽기와 쓰기 과정에 최적화할 수 있다. 앞서 도 2와 함께 설명한 비밀분산 저장 방법을 통해서 얻은 정보를 HDFS의 구조 변경 없이 쓰기/읽기 위해서는 추가적인 계층이 필요하다.
도 4는 분산 저장된 HDFS 파일불록을 개략적으로 나타낸 블록도이며, 도 5는 HDFS 파일블록의 분산 저장 절차 개념을 간략히 도시한 것이다.
앞서 설명한 비밀분산 저장방법에 따라 일반 파일시스템에서 만들어진 비밀파일을 HDFS로 전송하면 도 5와 같이 해당 비밀파일은 복사본의 개수와 기본 파일블록 크기로 나뉘고 도 4의 예에서와 같이 HDFS의 기본 파일 블록 크기보다 큰 파일은 모두 같은 크기의 블록으로 나뉘어 HDFS의 많은 데이터노드에 분산 저장된다.
도 6은 비밀조각, 비밀스트림 및 비밀파일 간의 관계를 나타낸 것이다. 도 6에서 도시된 바와 같이 생성된 비밀조각
Figure pat00098
를 모아
Figure pat00099
를 만든다. 이를 비밀스트립(secret strip)이라 정의한다. 이때 만들어진 비밀스트립
Figure pat00100
의 크기는 HDFS의 파일 블록의 크기와 동일하게 설정한다. 그리고 도 2와 함께 설명한 본 발명의 실시예에 따른 비밀분산 저장 방법에서 설명한 바와 같이 분배할 데이터노드의 수(
Figure pat00101
)만큼 비밀스트립을 만들고, 이 비밀스트립을 다시 하나의 파일로 만들고 비밀파일(secret file)이라고 부른다. 또한 비밀스트립 위치정보와 함께 비밀 분산/복원에 필요한
Figure pat00102
정보를 같이 저장한다. 도 7은 비밀스트립 위치정보와 함께 비밀 분산/복원에 필요한
Figure pat00103
정보를 같이 저장하는 예를 나타낸 것이다. 비밀파일은 도 8과 같이 HDFS의 상위 계층인 안전한 쓰기/읽기 계층에서 HDFS로 전송되면서 비밀스트립 단위 즉, HDFS의 파일블록 크기로 나뉘어 데이터노드에 분산 저장되는 것이다.
HDFS에서 파일을 읽어 오는 과정은 상술한 과정의 역순으로 이루어질 수 있다. 데이터노드로부터 분산 저장되어 있는 파일블록을 읽어 파일로 조합해 안전한 쓰기/읽기 계층으로 전송하면 하나의 비밀스트립으로 재조합 되고, 복호화 가능한 임계 값 이상의 비밀스트립들을 읽는다. 비밀스트립들은 도 3과 함께 설명한 복원 절차에 따라 복원한다. 도 9는 상술한 비밀분산법을 이용한 안전한 저장(쓰기)/복원(읽기) 하둡 분산파일시스템의 전체 구성도이다.
이하에서는 종래의 SEED 알고리즘에 의한 비밀 분산 방법과 본 발명에 따른 비밀분산 알고리즘에 의한 비밀 분산 방법의 성능을 비교한 결과를 설명한다.
HDFS의 기본 파일 블록의 크기는 64MB인 바, 비교를 위한 실험에서 사용되는 데이터 크기는 64MB로 정했다. 그리고 비교 대상인 SEED의 구현 모듈은 한국인터넷진흥원(KISA)에서 제공하는 Java 코드의 표준모듈을 사용하였다. 또한 본 발명에 따른 비밀분산 알고리즘 구현의 개발도구로는 Eclipse V3.5.2와 Java 버전 jre 1.6.0_19]를 사용하였다. 테스트 환경은 CPU는 인텔(Intel) Core2 Quad 2.83GHz, 메모리는 2GB, OS는 윈도우7 (Windows7 32bit)이다. 이때 사용한 테스트 벡터의 크기는 512비트, 1024비트로 블록암호알고리즘 SEED의 운영모드에서 제시한 값을 사용하였다. SEED 알고리즘과 수정된 비밀분산 알고리즘은 모두 위와 같은 동일 시스템에서 수행되었고, 이번 실험에서 비밀분산 알고리즘에 사용된 다항식은 2차 다항식을 기준으로 하였다. 또 조각난 개인정보
Figure pat00104
의 크기는 32비트(4바이트)가 되도록 하였다. 이것은 구현 시 Java 정수형의 크기가 4바이트이기에 편의적으로 정하여 비밀분산, 복구 알고리즘을 구현한 것이다. 그러나 Java의 다른 클래스를 이용하면 이보다 큰 크기의 개인정보를 만들 수도 있다.
Method Average(sec.)
SEED
(1copy)
Encryption 2.6965
Decryption 2.753
Threshold Secret Sharing
(3 secret shares)
Secret Sharing 1.2382
Secret Recovery 2.216
Method Average(sec.)
SEED
(1copy)
Encryption 2.7648
Decryption 2.757
Threshold Secret Sharing
(3 secret shares)
Secret Sharing 1.23
Secret Recovery 2.189
표 1 및 표 2는 10회 반복하여 측정한 평균값을 나타낸 것이다.
표 1과 표 2에서 알 수 있듯이 64MB 파일을 암호화하거나 비밀조각을 구하는데 테스트 벡터의 크기에 대한 영향은 거의 없음을 알 수 있다. 즉, 두 방법 모두 대상 텍스트의 크기는 암/복호화 또는 비밀분산 방법의 수행속도에 영향을 거의 주지 않는다. 여기서 구한 비밀조각 3개는 2차 다항식을 사용하였기에 비밀 복원하는데 필요한 최소 개수이다.
그러나 본 발명에 따른 비밀 분산 방법은 비밀분산을 위해 2차 다항식을 계산하는 속도는 SEED의 경우와 대비하여 54%정도 빠르며, 라그랑지 보간법으로 비밀 복원하는데 계산하는 속도는 SEED 보다 대략 20% 정도 빠름을 확인할 수 있다. 또한, SEED 알고리즘으로 암/복호화 하는데 걸리는 수행시간 차이는 거의 나지 않지만, 본 발명에 따른 비밀 분산/복원 방법(HS3)으로 비밀분산/복원하는 경우의 수행시간은 79%정도의 차이로 비밀분산이 비밀복원보다 빠르다는 것을 알 수 있다. 즉, 본 발명에 따른 비밀 분산/복원 방법이 전체적으로 기존 SEED 알고리즘보다 수행시간이 짧다는 것을 확인할 수 있다. 추가로 512비트 테스트벡터를 사용하여 20회 반복하여 측정한 평균값과 표준편차는 표 3에서 볼 수 있다. 표 2의 값과 비교하면 평균값이 소수점 첫째자리까지 변화가 없음을 확인 할 수 있다.
Method Average(sec.) Standard
dev .
SEED
(1copy)
Encryption 2.684 0.0327
Decryption 2.734 0.0385
Threshold Secret Sharing
(3 secret shares)
Secret Sharing 1.234 0.1677
Secret Recovery 2.202 0.0431
도 10은 다항식의 차수(t)와 비밀분산 조각(n) 개수에 따른 시간을 비교한 그래프이다. 도 10은 512비트의 테스트벡터를 이용하여 1차식에서부터 4차 다항식까지에 대해 2개에서 6개의 비밀조각을 만들면서 실험을 진행한 결과이다.
Figure pat00105
임계 비밀분산 방법에서 차수
Figure pat00106
이 1차식부터 2차, 3차, 4차 다항식으로 차수가 증가하고, 각각의 임계 값
Figure pat00107
의 값은 각각 2~5부터 시작하여 최종 6개의 비밀조각을 만드는데 소요되는 시간을 측정한 것이다. 차수가 증가할수록, 또 비밀조각의 개수가 증가할수록 처리시간은 증가하지만 각 차수의 다항식에 대해 처리속도의 기울기를 결정하는 것은 해당 다항식의 차수만 영향을 미친다는 것을 알 수 있다. 그리고 우리가 측정한 범위 내에서 비밀조각 생성시간은 SEED 알고리즘의 의한 암호 생성시간보다 작음을 확인할 수 있다.
앞서 수식 2와 함께 설명한 바와 같이, 이진 개인정보 가 가질 수 있는 값의 크기는 4바이트(의 비트 길이)이고 이진 개인정보를 이용해 만드는 비밀조각의 크기도 4바이트이지만 비밀조각을 모아 데이터노드에 분산 저장하는 비밀스트립 의 크기는 HDFS의 기본 파일블록 크기로 64MB이다. 따라서 이들의 각각의 비트 수는 5와 29이다. 표는 이를 정리하여 정보비(information rate)를 계산한 결과이다.
Figure pat00108
Figure pat00109
Figure pat00110
Figure pat00111
25 (=4Bytes) 5 64MB 29 0.172414
비밀분산법이 적용된 모델은 그 구조적 특징으로 인해 기밀성뿐만 아니라 가용성을 모두 보장하기에 해당 구조를 이용한 본 발명에 따른 비밀 분산 저장/복원 방법 또한 기밀성 및 가용성을 만족한다.
감추고자 하는 비밀정보량에 대한 분배되는 비밀조각의 정보량의 비율인 정보비를 비밀분산법의 주요성능 측정 기준으로 삼을 수 있다. 수식 2의 정보비에서 값을 작게 하던지 값을 크게 하면 임계값 미만에서 얻는 비밀스트립으로부터는 어떤 정보도 복원할 수 없는 완전 비밀분산법에 가까워질 수 있다. 구체적으로 값을 작게 하는 방법은 비밀스트립 즉, HDFS 파일블록의 크기를 작게 하면서 그에 따른 비밀조각을 만드는 값을 모두 다르게 하는 방법이 적용될 수 있다.
다른 방법으로 q값을 크게 해서도 정보비를 증가시킬 수 있는데 이는 Java의 큰 정수를 다루는 클래스를 이용하여 구현할 수 있다. 이론적으로는 무한히 큰 정수를 다룰 수 있지만 컴퓨터 시스템 자원의 한계로 현재 s값인 64MB만큼 큰 수(264MB)를 다룬다는 것은 어려운 일이다. 그러므로 두 경우를 고려하여 참여시킬 수 있는 데이터노드의 수와 비밀조각을 계산하는 시스템의 컴퓨팅 자원을 고려하면 정보비 ρ를 많이 향상시킬 수 있다. 한 예로, 파일블록(비밀스트립) 크기를 2MB 이하, 비밀조각의 크기를 512바이트 이상으로 했을 때 정보비 ρ는 0.5 이상의 값을 얻을 수 있다.
분산파일시스템용 안전한 쓰기/읽기 방법을 제시한 본 발명은 정보의 부분 유출로 인한 추론공격의 가능성을 차단하고, 대표적인 SEED 알고리즘과 비교해서 평균적으로 높은 성능을 보이며, HDFS의 데이터노드 중 일부를 접근할 수 없다고 할지라도 임계 값 방법과 관련하여 이상의 데이터노드를 사용할 수 있다면 개인정보를 복원할 수 있다. 또한 기존 HDFS의 구조 변경 없이 독립적으로 수정된 비밀 분산/복원 방법을 적용할 수 있다.
한편, 본 발명의 실시예에 따른 비밀 분산 저장/복원 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다.
저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (8)

  1. 분산 파일 시스템에 적용되는 분산 데이터 저장 방법에 있어서,
    분산 저장의 대상 텍스트 정보를 n개의 분할된 이진 데이터로 변환하는 단계, 상기 n은 2이상의 자연수;
    상기 n개의 분할된 이진 데이터로부터 n개의 비밀조각을 생성하고, n개의 비밀조각 각각에 상응하는 n개의 분산저장 키를 생성하는 단계; 및
    상기 n개의 비밀조각 각각을 n개의 데이터노드 서버에 분산 저장하고 상기 n개의 분산저장 키를 네임노드 서버에 저장하는 단계;를 포함하는 방법.
  2. 제1 항에 있어서, 상기 n개의 비밀조각의 생성하고, n개의 비밀조각 각각에 상응하는 n개의 분산저장 키를 생성하는 단계는,
    상기 n개의 분할된 이진 데이터를 상수항으로 하는 t-1차 다항식을 설정하는 단계; 및
    상기 t-1차 다항식으로부터 상기 n개의 분산저장 키에 대한 상기 n개의 비밀조각을 획득하는 단계;를 포함하는 방법.
  3. 제2 항에 있어서,
    상기 t-1차 다항식은 하기 식인 방법.
    여기서 q는 n+1보다 같거나 큰 소수, xi는 상기 n개의 분산저장 키, aj 는 상기 t-1차 다항식의 계수로 임의로 선택된 값, Kl은 상기 n개의 분할된 이진 데이터.
  4. 제1 항에 있어서,
    상기 네이노드 서버는 상기 n개의 비밀조각의 위치정보를 분산저장 키 정보와 함께 저장하는 방법.
  5. 제1 항에 있어서,
    상기 분산 파일 시스템은 하둡 분산 파일 시스템인 방법.
  6. 분산 파일 시스템에 저장된 분산 데이터로부터 데이터를 복원하는 방법에 있어서,
    n개의 데이터노드 서버로부터 n개의 비밀조각을 획득하는 단계;
    네임노드 서버로부터 n개의 분산 저장키를 획득하는 단계;
    상기 n개의 분산저장키를 이용하여 상기 n개의 비밀조각으로부터 n개의 분할된 이진 데이터를 생성하는 단계; 및
    상기 n개의 분할된 이진 데이터로부터 텍스트 정보를 복원하는 단계;를 포함하는 복원 방법.
  7. 제6 항에 있어서, 상기 n개의 분산저장키를 이용하여 상기 n개의 비밀조각으로부터 n개의 분할된 이진 데이터를 생성하는 단계는,
    상기 n개의 분산저장키와 상기 n개의 비밀조각으로부터 라그랑지 보간법을 이용해 n개의 분할된 이진 데이터를 생성하는 단계;를 포함하는 방법.
  8. 제6 항에 있어서,
    상기 분산 파일 시스템은 하둡 분산 파일 시스템인 방법.
KR1020120121432A 2012-10-30 2012-10-30 분산 데이터 저장, 복원 시스템 및 방법 KR101553986B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120121432A KR101553986B1 (ko) 2012-10-30 2012-10-30 분산 데이터 저장, 복원 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120121432A KR101553986B1 (ko) 2012-10-30 2012-10-30 분산 데이터 저장, 복원 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20140055093A true KR20140055093A (ko) 2014-05-09
KR101553986B1 KR101553986B1 (ko) 2015-09-18

Family

ID=50886821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120121432A KR101553986B1 (ko) 2012-10-30 2012-10-30 분산 데이터 저장, 복원 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101553986B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160067289A (ko) * 2014-12-03 2016-06-14 충북대학교 산학협력단 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US10135926B2 (en) 2015-06-09 2018-11-20 Electronics And Telecommunications Research Institute Shuffle embedded distributed storage system supporting virtual merge and method thereof
KR20190070194A (ko) * 2017-12-12 2019-06-20 계명대학교 산학협력단 사용자와 관리자간의 상호 확인을 통한 네트워크 환경에서의 보안 인증 방법 및 시스템
WO2019181594A1 (ja) * 2018-03-19 2019-09-26 日本電信電話株式会社 パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体
KR20190124369A (ko) * 2018-04-26 2019-11-05 한전케이디엔주식회사 전자 거래를 위한 인덱싱 블록체인 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160067289A (ko) * 2014-12-03 2016-06-14 충북대학교 산학협력단 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US10135926B2 (en) 2015-06-09 2018-11-20 Electronics And Telecommunications Research Institute Shuffle embedded distributed storage system supporting virtual merge and method thereof
KR20190070194A (ko) * 2017-12-12 2019-06-20 계명대학교 산학협력단 사용자와 관리자간의 상호 확인을 통한 네트워크 환경에서의 보안 인증 방법 및 시스템
WO2019181594A1 (ja) * 2018-03-19 2019-09-26 日本電信電話株式会社 パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体
JPWO2019181594A1 (ja) * 2018-03-19 2021-03-11 日本電信電話株式会社 パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体
AU2019238219B2 (en) * 2018-03-19 2021-06-24 Nippon Telegraph And Telephone Corporation Parameter setting apparatus, computation apparatus, method, program, and recoding medium thereof
KR20190124369A (ko) * 2018-04-26 2019-11-05 한전케이디엔주식회사 전자 거래를 위한 인덱싱 블록체인 시스템

Also Published As

Publication number Publication date
KR101553986B1 (ko) 2015-09-18

Similar Documents

Publication Publication Date Title
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
Cheng et al. Efficient revocation in ciphertext-policy attribute-based encryption based cryptographic cloud storage
KR101553986B1 (ko) 분산 데이터 저장, 복원 시스템 및 방법
US11075753B2 (en) System and method for cryptographic key fragments management
Virvilis et al. A cloud provider-agnostic secure storage protocol
Ni et al. Secure outsourced data transfer with integrity verification in cloud storage
Patil et al. Pixel co-ordinate-based secret image sharing scheme with constant size shadow images
KR101129335B1 (ko) 데이터 분산 저장 및 복원 방법 및 그 장치
Mishra et al. Enabling efficient deduplication and secure decentralized public auditing for cloud storage: A redactable blockchain approach
CN104660704B (zh) 一种网站用户数据处理方法
Reddy et al. A modified cryptographic approach for securing distributed data storage in cloud computing
Thilagavathy et al. Cloud computing: A survey on security issues and DNA, ID-base cryptography
CN115150055A (zh) 一种基于同态加密的隐私保护岭回归方法
Jain et al. Quantum-based rivest–shamir–adleman (rsa) approach for digital forensic reports
Marwan et al. A cloud solution for securing medical image storage
JP2011164907A (ja) 情報管理システム
Abdulhamid et al. Development of blowfish encryption scheme for secure data storage in public and commercial cloud computing environment
Dabhade et al. Data security in cloud using aggregate key and Diffie-Hellman algorithm
CN116074110B (zh) 一种用于实现云环境中加密文件共享的方法、系统、设备及介质
Lerman et al. Key Management as a Service.
Miyan FHE Implementation of Data in Cloud Computing.
Rohini Comparative approach to cloud security models
Jasim et al. Cloud Computing Cryptography" State-of-the-Art"
Vanitha et al. Secured data destruction in cloud based multi-tenant database architecture
JP2007004609A (ja) シェア作成方法および装置、復元方法および装置

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
FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 5