KR101628195B1 - 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법 - Google Patents

클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법 Download PDF

Info

Publication number
KR101628195B1
KR101628195B1 KR1020140174684A KR20140174684A KR101628195B1 KR 101628195 B1 KR101628195 B1 KR 101628195B1 KR 1020140174684 A KR1020140174684 A KR 1020140174684A KR 20140174684 A KR20140174684 A KR 20140174684A KR 101628195 B1 KR101628195 B1 KR 101628195B1
Authority
KR
South Korea
Prior art keywords
data
data blocks
user device
blocks
external storage
Prior art date
Application number
KR1020140174684A
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 KR1020140174684A priority Critical patent/KR101628195B1/ko
Application granted granted Critical
Publication of KR101628195B1 publication Critical patent/KR101628195B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

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

Abstract

비용 및 공간을 절약하기 위한 데이터 관리 시스템 및 그 제어 방법이 제시된다. 본 명세서에 따른 데이터 관리 시스템은 클라우드 서버와 같은 외부 저장소를 재난 복구 시스템으로써 이용하고, 유저 디바이스와 외부 저장소를 연계하는 데이터 관리 디바이스를 통하여 데이터를 관리한다. 또한, 외부 저장소에는 유저 디바이스에 의하여 블록화, 암호화 및 셔플링된 데이터 블록들을 저장함으로써 보안을 강화할 수 있다.

Description

클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법{DOUBLE BACKUP SYSTEM USING CLOUD SERVICE AND METHOD FOR DATA MANAGEMENT}
본 명세서는 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법에 관한 것이다.
자연 재해 또는 외부로부터의 공격에 의하여 서버에 저장된 자료들의 손실이 발생할 수 있다. 이러한 손실을 방지하기 위하여 2차 백업 시스템 또는 재난 복구(DR: Disaster Recovery) 시스템이 이용된다. 그러나, 2차 백업 시스템 또는 재난 복구 시스템을 구축하기 위하여는, 대용량의 스토리지가 요구된다. 따라서, 비용상 또는 공간적 제약으로 인하여 2차 백업 시스템 또는 재난 복구 시스템을 구축하기가 용이하지 않다.
또한, 최근에는 모바일 기기와 지리적 제한 없이 접속할 수 있는 클라우드(cloud) 스토리지 서비스가 활성화되고 있다. 클라우드 서비스는 초대형 데이터센터에 데이터를 저장해두고 인터넷을 통하여 유저 디바이스와 연결될 수 있다. 그러나, 이러한 대형 스토리지들은 쉽게 해커들의 공격 대상이 된다. 따라서, 클라우드 서비스에 보관된 데이터에 대한 보안이 보장되기 어렵다. 또한, 유저 디바이스와 내부 네트워크로 연결되는 서버 또는 스토리지에 비하여, 클라우드 서비스는 외부로부터의 공격 대상이 될 가능성이 높다.
따라서, 데이터에 대한 보안이 유지되면서도, 공간적 절감 및 비용적 절감이 가능한 2차 백업 시스템 또는 재난 복구 시스템이 요구된다.
본 명세서는 암호화된 데이터 블록들을 1차 스토리지 및 외부의 클라우드 스토리지에 저장함으로써 비용 및 공간이 절약되면서도 보안이 유지될 수 있는 안정적인 데이터 관리 방법 및 시스템을 제시하고자 한다.
본 개시물의 일 실시 예에 따른 데이터 관리 디바이스는, 유저 디바이스의 액세스를 제어하는 인증 모듈; 상기 유저 디바이스로부터 수신된 데이터 블록들을 저장하는 데이터 저장 모듈로서, 상기 데이터 블록들은 상기 유저 디바이스에 의하여 암호화 및 셔플링(shuffling)된, 상기 데이터 저장 모듈; 상기 유저 디바이스 및 외부 저장소와 통신하는 통신 모듈; 상기 데이터 저장 모듈에 저장된 데이터 블록들 및 상기 외부 저장소에 전송된 데이터 블록들의 인덱스를 관리하는 인덱스 관리 모듈; 및 상기 수신된 데이터 블록들을 상기 외부 저장소로 송신하는 데이터 처리 모듈로서, 상기 데이터 처리 모듈은 상기 유저 디바이스로부터 적어도 하나의 업데이트 데이터 블록이 수신되면, 상기 적어도 하나의 업데이트 데이터 블록을 상기 외부 저장소로 송신하고 상기 적어도 하나의 업데이트 데이터 블록을 이용하여 상기 데이터 저장 모듈에 저장된 상기 데이터 블록들을 업데이트하는, 상기 데이터 처리 모듈을 포함할 수 있다.
본 개시물의 일 실시 예에 따른 유저 디바이스는, 데이터 관리 디바이스로의 상기 유저 디바이스의 액세스를 제어하는 인증 모듈; 유저 디바이스 데이터를 기설정된 크기의 데이터 블록(block)들로 변환하는 데이터 처리 모듈; 상기 변환된 데이터 블록들을 암호화 키(key)를 이용하여 암호화하고 상기 암호화된 데이터 블록들을 임의의 순서로 셔플링(shuffling)하는 암호화 모듈; 상기 암호화 키 및 상기 셔플링된 데이터 블록들의 인덱스를 관리하는 인덱스 관리 모듈; 데이터 관리 디바이스 및 외부 저장소와 통신하는 통신 모듈; 및 상기 인증 모듈, 상기 데이터 처리 모듈, 상기 암호화 모듈, 상기 인덱스 관리 모듈 및 상기 통신 모듈을 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 통신 모듈을 이용하여 상기 셔플링된 데이터 블록들을 상기 데이터 관리 디바이스에 송신하고, 상기 유저 디바이스 데이터가 업데이트되면, 상기 유저 인덱스에 기초하여 상기 셔플링된 데이터 블록들 중 상기 업데이트된 유저 디바이스 데이터에 대응하는 적어도 하나의 업데이트된 데이터 블록을 상기 데이터 관리 디바이스로 송신하며, 상기 적어도 하나의 업데이트된 데이터 블록의 송신은 상기 데이터 관리 디바이스로 하여금, 상기 적어도 하나의 업데이트된 데이터 블록을 상기 외부 저장소로 송신 하게 하고, 상기 데이터 관리 디바이스에 기저장된 상기 셔플링된 데이터 블록들을 상기 적어도 하나의 업데이트된 데이터 블록을 이용하여 업데이트하게 할 수 있다.
본 개시물의 일 실시 예에 따른 데이터 관리 시스템은, 데이터 관리 디바이스에 액세스하고, 유저 디바이스의 제1 데이터를 기설정된 크기의 데이터 블록들로 변환하고, 상기 변환된 데이터 블록들을 암호화 키(key)를 이용하여 암호화하고, 상기 암호화된 데이터 블록들을 셔플링(shuffling)함으로써 제2 데이터 블록들을 생성하고, 상기 제2 데이터 블록들을 상기 데이터 관리 디바이스에 송신하며, 상기 제2 데이터 블록들에 대한 셔플링 인덱스를 관리하는, 상기 유저 디바이스; 상기 유저 디바이스로부터 수신된 상기 제2 데이터 블록들을 저장하고, 상기 제2 데이터 블록들을 외부 저장소로 송신하고, 상기 유저 디바이스로부터의 업데이트 요청에 기초하여 상기 제2 데이터 블록들의 적어도 일부를 업데이트된 상기 제2 데이터 블록들의 적어도 일부를 외부 저장소로 송신하며, 상기 제2 데이터 블록들에 대한 인덱스를 관리하는, 상기 데이터 관리 디바이스; 및 상기 데이터 관리 디바이스로부터 수신된 상기 제2 데이터 블록들 및 상기 업데이트된 상기 제2 데이터 블록들의 적어도 일부를 저장하는, 상기 외부 저장소를 포함할 수 있다.
본 개시물의 일 실시 예에 따른 데이터 관리 방법은, 유저 디바이스로부터 수신된 데이터 블록들을 저장하는 단계로서, 상기 데이터 블록들은 유저 디바이스에 의하여 암호화되고 셔플링(shuffling)된, 상기 데이터 블록들을 저장하는 단계; 상기 저장된 데이터 블록들에 대한 인덱스를 생성하는 단계; 상기 유저 디바이스로부터 상기 저장된 데이터 블록들의 적어도 일부에 대한 적어도 하나의 업데이트 데이터 블록을 수신하면, 상기 적어도 하나의 업데이트 데이터 블록을 외부 저장소로 전송하는 단계; 상기 적어도 하나의 업데이트 데이터 블록을 이용하여 상기 저장된 데이터 블록들을 업데이트하는 단계; 및 상기 외부 저장소로 전송된 적어도 하나의 업데이트 데이터 블록 및 상기 업데이트된 데이터 블록에 기초하여 상기 생성된 인덱스를 업데이트하는 단계를 포함할 수 있다.
본 개시물에 따른 데이터 관리 시스템은 지리적으로 분리되어 있는 클라우드 스토리지를 2차 백업 스토리지로 이용함으로써 공간적 활용도를 개선할 수 있다.
본 개시물에 따른 데이터 관리 시스템은 상대적으로 작은 크기의 스토리지를 1차 백업 스토리지로서 이용할 수 있어 비용을 절감할 수 있다.
본 개시물의 따른 데이터 관리 시스템은 암호화된 데이터를 클라우드 스토리지에 저장하고 암호키(key) 및 파일 테이블(인덱스)을 사용자 단에서 관리하므로, 외부의 클라우드 스토리지에 대한 접근으로는 원래의 데이터 구조를 파악할 수 없어 데이터에 대한 보안을 강화할 수 있다.
본 개시물에 따른 데이터 관리 시스템은 해쉬 값을 이용하여 실제 데이터의 전송 없이 유저 데이터가 1차 및 2차 스토리지에 저장되어 있는지 확인할 수 있다.
본 개시물에 다른 데이터 관리 시스템은 1차 스토리지에서 데이터를 대량으로 전송하여, 클라우드 서비스의 이용비용을 절감할 수 있다.
도 1은 일 실시 예에 따른 데이터 관리 시스템의 개략도이다.
도 2는 일 실시 예에 따른 데이터 관리 시스템의 구성도이다.
도 3은 일 실시 예에 따른 데이터 블록 생성 과정을 도시한다.
도 4는 일 실시 예에 따른 데이터 업데이트 프로세스를 도시한다.
도 5는 일 실시 예에 따른 데이터 백업 방법의 흐름도이다.
도 6은 일 실시 예에 따른 데이터 업데이트 방법의 흐름도이다.
도 7은 일 실시 예에 따른 데이터 관리 방법의 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 실시 예를 상세하게 설명한다. 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에서 사용되는 용어는 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 명세서의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가지는 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.
도 1은 일 실시 예에 따른 데이터 관리 시스템의 개략도이다.
도 1에서, 데이터 관리 디바이스(200)와 연결된 유저 디바이스들(100a, 100b)이 도시되어 있다. 유저 디바이스(100a, 100b)는 유저 단말 등으로 지칭될 수 있다. 유저 디바이스(100a, 100b)는 유저의 입력에 의하여 제어되고 유저 데이터를 저장할 수 있다. 또한, 데이터 관리 디바이스(200)는 1차 서버, 1차 백업 서버 또는 1차 스토리지 등으로 지칭될 수도 있다. 데이터 관리 디바이스(200)는 유저 데이터에 대한 1차 백업 서버로서 동작될 수도 있다.
상술한 바와 같이, 공간적 및 비용적 제한으로 인하여 데이터 관리 디바이스(200)만으로 재난 복구 시스템을 구축하기 어렵다. 따라서, 데이터 관리 디바이스(200)는 외부 저장소(300)와 함께 재난 복구 시스템으로서 구축된다. 외부 저장소(300)는 클라우드 스토리지로 지칭될 수 있으며, 유저 디바이스(100a, 100b) 및 데이터 관리 디바이스(200)와는 운영 주체가 상이할 수 있다.
일 실시 예에서, 데이터 관리 디바이스(200)는 유저 디바이스(100a, 100b)로부터의 데이터를 외부 저장소(300)에 축적시킬 수 있다. 또한, 데이터 관리 디바이스(200)에는 최신의 유저 디바이스(100a, 100b)의 데이터만을 저장할 수도 있다. 즉, 데이터 관리 디바이스(200)는 외부 저장소(300)에 대한 일종의 캐쉬(cache)로서 동작할 수도 있다. 데이터 관리 디바이스(200)는 외부 저장소(300)에 유저 디바이스(100a, 100b)의 데이터를 축적시킴으로써 상대적으로 적은 스토리지만으로도 재난 복구 시스템을 구성할 수 있다.
그러나, 상술한 바와 같이, 외부 저장소(300)는 유저 디바이스(100a, 100b)와 데이터 관리 디바이스(200)와 상이한 운영주체에 의하여 운영될 수 있기 때문에, 데이터의 보안이 낮아진다. 따라서, 유저 디바이스(100a, 100b)는 데이터를 블록화하고 블록화된 데이터를 암호화하고 셔플링(shuffling)한다. 또한, 셔플링 및 암호화된 데이터 블록들에 대한 암호화 키 및 셔플링 인덱스를 유저 디바이스(100a, 100b)에서 관리함으로써, 외부 저장소(300)의 공격자는 외부 저장소(300)의 데이터만으로는 원래의 데이터의 구성조차 알 수 없다.
도 2는 일 실시 예에 따른 데이터 관리 시스템의 구성도이다.
도 2에는, 본 개시물의 일 실시 예에 따른 데이터 관리 시스템의 구성도가 도시되어 있다. 도 2에서, 유저 디바이스(100), 데이터 관리 디바이스(200) 및 외부 저장소(300)는 도 2에 미도시된 구성을 더 포함할 수도 있다.
도 1과 관련하여 상술한 바와 같이, 유저 디바이스(100)는 유저 단말로서, 유저의 입력을 수신하고 유저의 입력에 따른 명령을 수행할 수 있다. 예를 들어, 유저 디바이스(100)는 컴퓨터 또는 모바일 디바이스일 수도 있다.
유저 디바이스(100)는 인증 모듈(120), 데이터 처리 모듈(130), 암호화 모듈(140), 인덱스 관리 모듈(150), 통신 모듈 및 프로세서(110)를 포함할 수 있다.
인증 모듈(120)은 데이터 관리 디바이스(200)로의 유저 디바이스(100)의 액세스를 제어할 수 있다. 유저 디바이스(100)는 인증 모듈(120)을 이용하여 데이터 관리 디바이스(200)에 접속할 수 있다. 인증 모듈(120)은 인증 키, 아이피, 맥(MAC) 어드레스 및/또는 인증 암호 등을 이용하여 데이터 관리 디바이스(200)로의 액세스를 제어할 수도 있다.
데이터 처리 모듈(130)은 유저 디바이스(100)의 데이터를 기설정된 크기로 블록화할 수도 있다. 또한, 데이터 처리 모듈(130)은 데이터로부터 기설정된 크기의 데이터 블록들을 생성하기 위하여 패딩(padding)을 수행할 수도 있다. 또한, 데이터 처리 모듈(130)은 후속하는 암호화 프로세스에서의 보안 강화를 위하여 데이터 블록에 대한 패딩을 수행할 수도 있다. 또한, 데이터 처리 모듈(130)은 데이터 블록들로부터 원래의 데이터를 재구성할 수도 있다.
암호화 모듈(140)은 데이터 처리 모듈(130)에 의하여 블록화된 데이터 블록들을 암호화 키(key)를 이용하여 암호화하고, 암호화된 블록들을 임의의 순서로 셔플링(shuffling)할 수 있다. 따라서, 데이터 블록 각각이 암호화될 뿐만 아니라, 암호화된 블록들이 셔플링되기 때문에, 암호화 모듈(130)에 의하여 처리된 데이터 블록들을 획득한다고 하여도, 원래 데이터의 구조조차 알아내기 어렵다. 또한, 암호화 모듈(130)은 암호화되고 셔플링된 데이터 블록들에 대한 복호를 수행할 수도 있다.
인덱스 관리 모듈(140)은 암호화 키 및 셔플링된 블록들의 인덱스를 관리한다. 인덱스 관리 모듈(140)은 셔플링된 블록들이 업데이트되면, 업데이트된 블록들에 기초하여 인덱스를 업데이트할 수 있다. 이처럼 유저 디바이스(100)의 인덱스 관리 모듈(140)에 의하여 암호화 키 및 인덱스가 관리되기 때문에, 외부 저장소(300)에 저장된 데이터에 대한 보안이 강화될 수 있다.
또한, 통신 모듈(160)은 데이터 관리 디바이스(200) 및 외부 저장소(300)와 통신을 수행할 수 있다. 예를 들어, 유저 디바이스(100)와 데이터 관리 디바이스(200)는 인증된 유저만이 접속 가능한 네트워크를 통하여 통신할 수도 있다. 예를 들어, 통신 모듈(160)은 인트라넷(intranet). 근거리 통신망 및 LAN(Local Areal Network) 중 적어도 하나를 이용하여 데이터 관리 디바이스(200)와 통신할 수도 있다. 또한, 통신 모듈(160)은 데이터 관리 디바이스(200)를 통하여 또는 인터넷을 통하여 외부 저장소(300)와 통신할 수도 있다.
프로세서(110)는 인증 모듈(120), 데이터 처리 모듈(130), 암호화 모듈(140), 인덱스 관리 모듈(150) 및 통신 모듈(160)을 제어할 수 있다. 또한, 프로세서(110)는 유저 디바이스(100)의 데이터를 프로세싱 하여 다양한 어플리케이션을 실행할 수 있다. 프로세서(110)는 명령에 기초하여 유저 디바이스(100)에서 실행되는 컨텐츠를 제어할 수 있다.
도 1과 관련하여 상술한 바와 같이, 데이터 관리 디바이스(200)는 유저 디바이스(100)와 통신하는 1차 백업 서버일 수도 있다.
데이터 관리 디바이스(200)는 인증 모듈(210), 데이터 저장 모듈(220), 데이터 처리 모듈(230), 인덱스 관리 모듈(240) 및 서비스 연계/통신 모듈(250)을 포함할 수도 있다.
인증 모듈(210)은 유저 디바이스(100)의 데이터 관리 디바이스(200)로의 액세스를 제어할 수 있다. 데이터 관리 디바이스(200)의 인증 모듈(210)은 유저 디바이스(100)의 인증 모듈(120)과 유사하게 동작할 수 있다. 다만, 데이터 관리 디바이스(200)의 복수의 유저 디바이스(100)들과 통신할 수 있으며, 인증 모듈(210)은 복수의 유저 디바이스(100)들 각각에 대한 액세스를 제어할 수도 있다.
데이터 저장 모듈(220)은 유저 디바이스로(100)부터 수신된 데이터 블록들을 저장할 수 있다. 상술한 바와 같이, 유저 디바이스(100)는 데이터를 블록화하고, 데이터 블록들을 암호화 및 셔플링하여 데이터 관리 디바이스(200)로 송신한다. 따라서, 데이터 저장 모듈(220)에 저장되는 유저 디바이스(100)로부터의 데이터 블록들은 이미 암호화 및 셔플링된 데이터 블록들이다. 일반적으로, 데이터 저장 모듈(220)은 유저 디바이스(100)에 비하여 비교적 큰 용량의 스토리지를 가질 수도 있다. 그러나, 데이터 저장 모듈(220)은 후술하는 외부 저장소(300)에 비하여 작은 용량의 스토리지를 가질 수도 있다.
데이터 처리 모듈(230)은 외부 저장소(300)로 송신될 데이터 블록을 선정하고 데이터를 재블록화할 수 있다. 데이터 처리 모듈(230)은 유저 디바이스로부터 수신된 데이터 블록들을 서비스 연계/통신 모듈(250)을 이용하여 외부 저장소(300)에 송신할 수 있다. 또한, 유저 디바이스(100)로부터 업데이트 데이터 블록이 수신되면, 데이터 처리 모듈(230)은 수신된 업데이트 데이터 블록을 외부 저장소(300)로 송신하고, 업데이트 데이터 블록을 이용하여 데이터 저장 모듈(220)에 저장된 데이터 블록들을 업데이트할 수 있다. 즉, 데이터 관리 디바이스(200)에는 과장 최근 업데이트된 데이터 블록들이 저장되고, 과거의 데이터 블록들은 외부 저장소(300)에 저장될 수 있다. 따라서, 상대적으로 낮은 스토리지 용량만으로 1차 데이터 백업 시스템을 구성할 수 있다.
인덱스 관리 모듈(240)은 데이터 저장 모듈(220)에 저장된 데이터 블록들 및 외부 저장소(300)에 전송된 데이터 블록들의 인덱스를 관리할 수 있다. 따라서, 인덱스 관리 모듈(240)의 인덱스를 이용하여 데이터 관리 디바이스(200)는 현재 데이터 관리 디바이스(200)에 저장된 데이터 블록들로부터 외부 저장소(300)에 저장된 과거의 데이터를 역추적할 수 있다.
서비스 연계/통신 모듈(250)은 데이터의 전송 및 외부 저장소(300)와 연계되어 외부 저장소(300)로부터 유저 디바이스(100)로의 데이터 전송을 지원할 수 있다. 서비스 연계/통신 모듈(250)은 통신 모듈로 지칭될 수도 있다. 서비스 연계/통신 모듈(250)은, 예를 들어, 통신 모듈(160)은 인트라넷(intranet). 근거리 통신망 및 LAN(Local Areal Network) 중 적어도 하나를 이용하여 유저 디바이스(100)와 통신할 수도 있다. 또한, 서비스 연계/통신 모듈(250)은 인터넷을 통하여 외부 저장소(300)와 통신할 수도 있다.
도 1과 관련하여 상술한 바와 같이, 외부 저장소(300)는 클라우드 서버로서, 유저 디바이스(100) 및/또는 데이터 관리 디바이스(200)와는 상이한 운영 주체에 의하여 운영될 수도 있다.
외부 저장소(300)는 데이터 관리 디바이스(200)로 수신되는 데이터를 저장하기 위한 대용량 데이터 저장 모듈(310)을 포함할 수 있다. 대용량 데이터 저장 모듈(310)은 데이터 관리 디바이스(200)의 데이터 저장 모듈(220)에 비하여 상대적으로 고용량의 스토리지를 가질 수 있다. 또한, 외부 저장소(300)는 유저 디바이스(100) 및 데이터 관리 디바이스(200)와 통신을 수행하고, 데이터 관리 디바이스(200)를 통하여 유저 디바이스에 데이터를 제공하기 위한 서비스 연계/통신 모듈(320)을 포함할 수도 있다. 서비스 연계/통신 모듈(320)은 통신 모듈로서 지칭될 수도 있다.
한편, 도 2에 도시된 유저 디바이스(100), 데이터 관리 디바이스(200) 및 외부 저장소(300)의 구성도는 일 실시 예에 따른 블록도로서, 분리하여 표시한 블록도들은 하드웨어적인 구성 또는 소프트웨어적인 구성을 논리적으로 구별하여 도시한 것이다. 따라서, 상술한 유저 디바이스(100), 데이터 관리 디바이스(200) 및 외부 저장소(300)의 구성들은 각 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 구현될 수도 있다.
또한, 이하에서 유저 디바이스(100)와 프로세서(110)는 동일시되어 설명될 수 있으며, 데이터 관리 디바이스(200)와 데이터 처리 모듈(230)은 동일시되어 설명될 수 있다.
도 1 및 도 2와 관련하여, 유저 디바이스, 데이터 관리 디바이스 및 외부 저장소를 포함하는 본 개시물의 데이터 관리 시스템의 개략적인 구성에 대하여 설명하였다. 이하에서는, 도면을 참조하여, 본 개시물의 데이터 관리 시스템을 설명한다. 도 3 내지 도 7과 관련하여 후술하는 본 개시물의 실 시예들은 도 1 및 도 2와 관련하여 상술한 데이터 관리 시스템에 의하여 실시될 수 있다.
도 3은 일 실시 예에 따른 데이터 블록 생성 과정을 도시한다.
먼저, 유저 디바이스의 데이터들(M0, M1)이 있다. 도 2와 관련하여 상술한 바와 같이, 유저 디바이스는 데이터 처리 모듈을 이용하여 데이터(M0)를 데이터 블록들(m00 내지 m0n)로 블록화하고, 데이터(M1)를 데이터 블록들(m10 내지 m1l)로 블록화한다. 또한, 기설정된 크기로 데이터(M0, M1)를 블록화하기 위하여, 유저 디바이스는 데이터 블록(m0n) 및 데이터 블록(m0l)에 대한 데이터 패딩을 수행할 수 있다.
유저 디바이스는 암호화 모듈을 이용하여 데이터 블록들(m00 내지 m0n 및 m10 내지 m1l)을 암호화한다. 예를 들어, 유저 디바이스는 암호화 키를 이용하여 각 데이터 블록들 (m00 내지 m0n 및 m10 내지 m1l)을 암호화할 수 있다. 또한, 유저 디바이스는 암호화 모듈을 이용하여 암호화된 데이터 블록들을 셔플링할 수 있다. 도 3에 도시된 바와 같이, 서로 다른 데이터 파일(M0, M1)들이 셔플링에 의해 하나의 데이터 블록 집합으로 구성될 수도 있다. 이처럼 셔플링된 데이터 블록들(A 내지 F)은 원래의 암호화된 데이터 블록들(m00 내지 m0n 및 m10 내지 m1l)에 각각 대응한다. 따라서, 유저 디바이스는 이러한 셔플링된 데이터 블록들(A 내지 F)과 암호화된 데이터 블록들(m00 내지 m0n 및 m10 내지 m1l)의 대응 관계를 인덱스 모듈을 이용하여 관리할 수 있다.
유저 디바이스는 셔플링된 데이터 블록들(A 내지 F)을 데이터 관리 디바이스에 송신할 수 있다. 암호화 키와 셔플링 인덱스는 유저 디바이스에 의하여 관리되기 때문에, 셔플링된 데이터 블록들(A 내지 F)에 대한 접근만으로는 원래의 파일(M0, M1)의 구조조차 알기 어렵다.
또한, 유저 디바이스는 상술한 셔플링된 데이터 블록들(A 내지 F)을 생성하는 방법을 역순으로 수행하여 원래의 데이터(M0 및 M1)를 복원할 수도 있다.
도 4는 일 실시 예에 따른 데이터 업데이트 프로세스를 도시한다.
도 4에서, Version 1은 최초의 데이터 블록들(m00 내지 m0n)을 의미한다. 도 4의 데이터 블록들은 모두 암호화되고 임의의 순서로 셔플링된 상태이다. 유저 디바이스는 유저 디바이스의 데이터를 블록화, 암호화 및 셔플링하여 Version 1의 데이터 블록들(m00 내지 m0n)을 생성할 수 있다. 또한, 유저 디바이스는 생성된 데이터 블록들(m00 내지 m0n)을 데이터 관리 디바이스에 송신하고, 데이터 관리 디바이스는 수신된 데이터 블록들(m00 내지 m0n)을 저장하고 외부 저장소로 송신한다.
Version 2에서 Version 1의 데이터 블록들의 일부에 대한 업데이트가 발생한다. 업데이트로 인하여 Version 1의 데이터 블록들(m01 내지 m0n)이 각각 업데이트된 데이터 블록들(M01' 내지 M0n')로 대체되고, 새로운 데이터 블록(M0n+1')이 추가된다. 도 4에 도시된 바와 같이, 유저 디바이스는 유저 디바이스의 데이터의 일부가 업데이트되면, 업데이트된 부분에 대응하는 업데이트된 데이터 블록(M01' 내지 M0n+1')을 생성할 수 있다. 또한, 유저 디바이스는 업데이트된 데이터 블록(M01' 내지 M0n+1')을 데이터 관리 디바이스로 송신할 수 있다. 유저 디바이스는 데이터가 업데이트되었을 때 또는 주기적으로 업데이트된 데이터 블록을 데이터 관리 디바이스로 송신할 수도 있다.
Version 2의 업데이트 데이터 블록들(M01' 내지 M0n+1')을 수신한 데이터 관리 디바이스는 데이터 관리 디바이스에 저장된 Version 1의 데이터 블록들(m00 내지 m0n) 중 수신된 업데이트된 데이터 블록들(M01' 내지 M0n+1')에 대응되는 블록들을 업데이트한다. 따라서, 데이터 관리 디바이스에는 Version 2의 데이터 블록들(m00 및 M01' 내지 M0n+1')이 저장된다. 또한, 데이터 관리 디바이스는 수신된 업데이트된 데이터 블록들(M01' 내지 M0n+1')을 외부 저장소에 송신한다. 따라서, 외부 저장소에는 Version 1의 데이터 블록들(m00 내지 m0n) 및 업데이트된 Version 2의 데이터 블록들(M01' 내지 M0n+1')이 저장된다.
Version 3에서, Version 2의 M0n+1' 데이터 블록만이 M0n+1" 로 업데이트된다. 따라서, 유저 디바이스는 업데이트된 데이터 블록(M0n+1")을 데이터 관리 디바이스로 송신한다. 업데이트된 데이터 블록(M0n+1")을 수신한 데이터 관리 디바이스는 기저장된 Version 2의 데이터 블록(m00 및 M01' 내지 M0n+1')을 수신된 데이터 블록(M0n+1")을 이용하여 업데이트한다. 따라서, 데이터 관리 디바이스에는 Version 3의 데이터 블록들(m00, M01' 내지 M0n' 및 M0n+1")이 저장된다. 또한, 데이터 관리 디바이스는 데이터 블록(M0n+1")외부 저장소로 송신한다. 따라서, 외부 저장소에는 Version 1의 데이터 블록들(m00 내지 m0n), 업데이트된 Version 2의 데이터 블록들(M01' 내지 M0n+1') 및 업데이트된 Version 3의 데이터 블록(M0n+1")이 저장된다.
데이터 관리 디바이스는, 자신의 데이터 저장 모듈에 저장된 데이터들뿐만 아니라, 외부 저장소로 송신된 데이터 블록들에 대한 인덱스를 관리한다. 따라서, 도 4의 File Block 단에 도시된 바와 같이, 데이터 관리 디바이스는 가장 최근에 업데이트된 파일로 부터 특정 시점의 파일을 역추적할 수 있다. 즉, 외부 저장소를 이용하여, 재난 복구 시스템이 구축될 수 있다.
한편, 데이터 관리 디바이스는 유저 디바이스로부터 데이터 블록 또는 업데이트 데이터 블록을 수신할 때마다 외부 저장소에 데이터 블록을 전송할 수도 있다. 그러나, 데이터 관리 디바이스는 기설정된 주기 또는 기설정된 용량에 기초하여 데이터 블록을 외부 저장소에 전송할 수도 있다. 데이터 관리 디바이스는 외부 저장소로 대용량 파일을 송부함으로써 외부 저장소의 이용 비용을 절감할 수도 있다.
한편, 데이터 관리 디바이스는 데이터 관리 디바이스에 저장된 데이터 블록들에 대한 액세스 기록을 생성하고, 액세스 빈도가 낮은 데이터 블록들은 삭제할 수도 있다. 삭제된 데이터는 데이터 관리 디바이스의 인덱스에 기록되기 때문에, 데이터 관리 디바이스는 후에 외부 저장소에 저장된 파일로 부터 삭제된 데이터 블록을 복원할 수도 있다. 또한, 데이터 관리 디바이스는 데이터 블록을 삭제하기 전에 외부 저장소로 삭제될 데이터를 전송할 수도 있다.
또한, 유저 디바이스는 데이터 블록들에 대한 해쉬(hash)값을 이용하여 데이터 관리 디바이스 및/또는 외부 저장소에 저장된 데이터 블록들을 확인할 수 있다. 예를 들어, 유저 디바이스는 데이터 관리 디바이스로 데이터 확인 요청을 송신할 수 있다. 데이터 확인 요청을 수신한 데이터 관리 디바이스는 데이터 관리 디바이스 및/또는 외부 저장소에 저장된 데이터 블록들에 대한 해쉬 값을 계산하고, 기설정된 일방향 함수를 이용하여 계산된 해쉬값에 대한 결과값을 계산할 수도 있다. 또한, 데이터 관리 디바이스가 계산된 해쉬 값을 유저 디바이스로 송신하면, 유저 디바이스는 유저 디바이스의 데이터 블록들에 대한 해쉬값 및 기설정된 일방향 함수의 결과값을 계산하고, 계산된 결과값과 데이터 관리 디바이스로부터 수신된 결과값을 비교함으로써 데이터 관리 디바이스 및/또는 외부 저장소에 저장된 데이터 블록들을 확인할 수도 있다. 이러한 해쉬값을 이용한 데이터 확인을 통하여, 실제 데이터 블록의 전송 없이 데이터 관리 디바이스 및/또는 외부 저장소에 저장된 데이터 블록을 확인할 수 있다. 따라서, 데이터 저장 여부를 확인하기 위한 비용이 절감될 수 있다. 유저 디바이스는 유저 디바이스의 인덱스 모듈을 이용하여 각 데이터 블록 및/또는 원래의 데이터에 대한 해쉬값들을 관리할 수도 있다.
도 5는 일 실시 예에 따른 데이터 백업 방법의 흐름도이다.
도 5에는 유저 디바이스(100), 데이터 관리 디바이스(200) 및 외부 저장소(300)에서 수행되는 데이터 백업 방법이 도시되어 있다. 먼저, 도 3과 관련하여 상술한 바와 같이, 유저 디바이스(100)는 유저 디바이스(100)의 제1 데이터를 블록화(S501)한다. 또한, 유저 디바이스(100)는 블록화된 제1 데이터를 암호화(S502)하고, 암호화된 제1 데이터의 블록들을 셔플링함으로써 제2 데이터 블록들을 생성(S503)할 수 있다. 또한, 유저 디바이스(100)는 제 데이터 블록들을 데이터 관리 디바이스(200)에 송신하고 제2 데이터 블록들에 대한 인덱스를 생성(S504)할 수도 있다. 그러나, 도 5에도 불구하고, 유저 디바이스(100)는 제2 데이터 블록들에 대한 인덱스를 생성(S504)한 후에 제2 데이터 블록들을 데이터 관리 디바이스(200)로 송신할 수도 있다.
데이터 관리 디바이스(200)는 유저 디바이스(100)로부터 수신된 제2 데이터 블록들을 저장(S505)할 수 있다. 또한, 데이터 관리 디바이스(200)는 제2 데이터 블록들을 외부 저장소(300)로 송신하고, 수신된 제2 데이터 블록들에 대한 인덱스를 생성(S506)할 수 있다. 제조사의 선택에 따라서, 수신된 제2 데이터 블록들의 저장(S505), 제2 데이터 블록들의 송신 및 수신된 제2 데이터 블록들에 대한 인덱스 생성(S506)은 도 5와 상이한 순서로 수행될 수도 있다.
외부 저장소(300)는 데이터 관리 디바이스(200)로부터 수신된 제2 데이터 블록들을 저장(S507)한다. 따라서, 외부 저장소(300)에는 유저 디바이스(100)로부터 송신된 데이터 블록들이 데이터 관리 디바이스(200)를 거쳐 저장된다.
도 6은 일 실시 예에 따른 데이터 업데이트 방법의 흐름도이다.
유저 디바이스(100)는 유저의 입력에 기초하여 제1 데이터를 업데이트(S601)할 수 있다. 제1 데이터가 업데이트 되면, 유저 디바이스(100)는 제1 데이터의 업데이트된 부분에 대응하는 제3 데이터 블록들을 생성(S602)한다. 이처럼 업데이트된 부분에 대응하는 데이터 블록들만을 전송함으로써 데이터 관리 디바이스(200)에 대한 부하를 줄일 수 있다. 또한, 유저 디바이스(100)는 제3 데이터 블록들을 데이터 관리 디바이스(200)로 송신할 수 있다. 또한, 유저 디바이스(100)는 제2 데이터 블록들에 대한 인덱스를 업데이트(S603)할 수 있다. 제3 데이터 블록들의 송신과 제2 데이터 블록들에 대한 인덱스 업데이트(S603)는 도 6과 반대의 순서로 수행될 수도 있다.
데이터 관리 디바이스(200)는 유저 디바이스로(100)로부터 수신된 제3 데이터 블록들을 이용하여 기저장된 제2 데이터 블록들을 업데이트(S604)한다. 구체적으로는, 데이터 관리 디바이스(200)는 제3 데이터 블록들에 대응하는 제2 데이터 블록들을 제3 데이터 블록들로 대체할 수도 있다. 또한, 데이터 관리 디바이스(200)는 유저 디바이스(100)로부터 수신된 제3 데이터 블록들을 외부 저장소(300)로 송신한다. 데이터 관리 디바이스(200)는 수신된 제3 데이터 블록들 및 업데이트된 제2 데이터 블록들에 기초하여 인덱스를 업데이트(S605)한다. 따라서, 데이터 관리 디바이스(200)는 현재 데이터 관리 디바이스(200)에 저장된 데이터 블록들뿐만 아니라, 외부 저장소(300)에 저장된 데이터 블록들을 인덱스를 통하여 추적할 수 있다. 제조사의 선택에 따라서, 데이터 관리 디바이스(200)에서 수행되는 일련의 과정들은 도 6과 상이한 순서로 수행될 수도 있다.
또한, 외부 저장소(300)는 데이터 관리 디바이스(200)로부터 수신된 제3 데이터 블록들을 저장(S606)한다.
따라서, 유저 디바이스(100)는 데이터 관리 디바이스(200)의 인덱스를 이용하여 외부 저장소(300)에 저장된 데이터 블록들을 다운로드할 수 있다. 유저 디바이스(100)는 데이터 관리 디바이스(200)를 통하여 외부 저장소(300)의 데이터 블록들을 다운로드할 수도 있으나, 데이터 관리 디바이스(200)의 인덱스만을 이용하여 외부 저장소(300)로부터 직접 데이터 블록들을 다운로드할 수도 있다.
도 7은 일 실시 예에 따른 데이터 관리 방법의 흐름도이다.
먼저, 데이터 관리 디바이스는 유저 디바이스로부터 수신된 데이터 블록들을 저장(S701)할 수 있다. 또한, 데이터 관리 디바이스는 저장된 데이터 블록들에 대한 인덱스를 생성(S702)할 수 있다. 유저 디바이스로부터, 저장된 블록들의 적어도 일부에 대한 적어도 하나의 업데이트 데이터 블록을 수신하면, 데이터 관리 디바이스는 적어도 하나의 업데이트 데이터 블록을 외부 저장소로 전송(S703)할 수 있다.
또한, 데이터 관리 디바이스는 유저 디바이스로부터의 적어도 하나의 업데이트 데이터 블록을 이용하여 저장된 데이터 블록들을 업데이트(S704)할 수 있다. 또한, 데이터 관리 디바이스는 외부 저장소로 전송돼 적어도 하나의 업데이트 데이터 블록 및 업데이트된 데이터 블록에 기초하여 인덱스를 업데이트(S705)할 수 있다. 따라서, 데이터 관리 디바이스는 인덱스를 이용하여 데이터 관리 디바이스 및/또는 외부 저장소에 저장된 데이터 블록들을 관리할 수 있다.
한편, 도 1 내지 도 7과 관련하여 상술된 본 개시물의 데이터 관리 시스템의 구성 및 동작들은 서로 선택적으로 조합될 수 있다. 또한, 본 명세서에 따른 유저 디바이스, 데이터 관리 디바이스, 데이터 관리 시스템, 그 제어 방법 및 데이터 관리 방법은 상술한 실시 예들의 구성과 방법으로 한정되어 적용되는 것이 아니라, 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 다양한 변형이 이루어질 수 있다.
한편, 본 명세서의 유저 디바이스, 데이터 관리 디바이스, 데이터 관리 시스템, 그 제어 방법 및 데이터 관리 방법은 유저 디바이스 및/또는 데이터 관리 디바이스에 구비된 프로세서가 읽을 수 있는 기록 매체에 소프트웨어로서 구현되는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 명세서의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
100, 100a, 100b: 유저 디바이스
110: 프로세서 120: 인증 모듈
130: 데이터 처리 모듈 140: 암호화 모듈
150: 인덱스 관리 모듈 160: 통신 모듈
200: 데이터 관리 디바이스
210: 인증 모듈 210: 인증 모듈
220: 데이터 저장 모듈 230: 데이터 처리 모듈
240: 인덱스 관리 모듈
250: 서비스 연계/통신 모듈
300: 외부 저장소
310: 대용량 데이터 저장 모듈 320: 서비스 연계/통신 모듈

Claims (20)

  1. 데이터 관리 디바이스로서,
    유저 디바이스의 액세스를 제어하는 인증 모듈;
    상기 유저 디바이스로부터 수신된 데이터 블록들을 저장하는 데이터 저장 모듈로서, 상기 데이터 블록들은 상기 유저 디바이스에 의하여 암호화 및 셔플링(shuffling)된, 상기 데이터 저장 모듈;
    상기 유저 디바이스 및 외부 저장소와 통신하는 통신 모듈;
    상기 데이터 저장 모듈에 저장된 데이터 블록들 및 상기 외부 저장소에 전송된 데이터 블록들의 인덱스를 관리하는 인덱스 관리 모듈; 및
    상기 수신된 데이터 블록들을 상기 외부 저장소로 송신하는 데이터 처리 모듈로서, 상기 데이터 처리 모듈은 상기 유저 디바이스로부터 적어도 하나의 업데이트 데이터 블록이 수신되면, 상기 적어도 하나의 업데이트 데이터 블록을 상기 외부 저장소로 송신하고 상기 적어도 하나의 업데이트 데이터 블록을 이용하여 상기 데이터 저장 모듈에 저장된 상기 데이터 블록들을 업데이트하는, 상기 데이터 처리 모듈을 포함하고,
    상기 업데이트된 데이터 블록에 기초하여 상기 인덱스를 업데이트하는 것을 특징으로 하는 데이터 관리 디바이스.
  2. 제 1 항에 있어서,
    상기 유저 디바이스로부터 수신된 데이터 블록들의 암호화 키(key) 및 셔플링 인덱스는 상기 유저 디바이스에 의하여 관리되는, 데이터 관리 디바이스.
  3. 제 1 항에 있어서,
    상기 데이터 처리 모듈은 상기 데이터 저장 모듈에 저장된 상기 데이터 블록들의 적어도 일부를 주기적으로 상기 외부 저장소에 송신하는, 데이터 관리 디바이스.
  4. 제 1 항에 있어서,
    상기 데이터 처리 모듈은 상기 데이터 저장 모듈에 저장된 상기 데이터 블록들 중 액세스 빈도가 기설정된 수치 이하인 하나 이상의 데이터 블록을, 주기적으로 상기 외부 저장소에 송신하고 상기 데이터 저장 모듈로부터 삭제하는, 데이터 관리 디바이스.
  5. 제 1 항에 있어서,
    상기 데이터 처리 모듈은 상기 유저 디바이스로부터의 데이터 확인 요청에 기초하여,
    상기 데이터 저장 모듈 및 상기 외부 저장소에 저장된 데이터 블록들에 대한 해쉬(hash)값을 계산하고,
    기설정된 일방향 함수를 이용하여 상기 계산된 해쉬값에 대한 결과값을 계산하며,
    상기 유저 디바이스의 데이터 블록들에 대한 결과 값과의 매칭(matching)을 위하여 상기 계산된 결과값을 상기 통신 모듈을 이용하여 상기 유저 디바이스로 송신하는, 데이터 관리 디바이스.
  6. 제 1 항에 있어서,
    상기 데이터 처리 모듈은 상기 인덱스를 이용하여 가장 최근에 업데이트된 데이터 블록들로부터 특정 시점의 데이터 블록들을 복원하는, 데이터 관리 디바이스.
  7. 제 1 항에 있어서,
    상기 통신 모듈은 인트라넷(intranet), 근거리 통신망 및 LAN(Local Area Network) 중 적어도 하나를 이용하여 상기 유저 디바이스와 통신하는, 데이터 관리 디바이스.
  8. 제 7 항에 있어서,
    상기 외부 저장소는 클라우드(cloud) 서버인, 데이터 관리 디바이스.
  9. 유저 디바이스로서,
    데이터 관리 디바이스로의 상기 유저 디바이스의 액세스를 제어하는 인증 모듈;
    유저 디바이스 데이터를 기설정된 크기의 데이터 블록(block)들로 변환하는 데이터 처리 모듈;
    상기 변환된 데이터 블록들을 암호화 키(key)를 이용하여 암호화하고 상기 암호화된 데이터 블록들을 임의의 순서로 셔플링(shuffling)하는 암호화 모듈;
    상기 암호화 키 및 상기 셔플링된 데이터 블록들의 인덱스를 관리하는 인덱스 관리 모듈;
    데이터 관리 디바이스 및 외부 저장소와 통신하는 통신 모듈; 및
    상기 인증 모듈, 상기 데이터 처리 모듈, 상기 암호화 모듈, 상기 인덱스 관리 모듈 및 상기 통신 모듈을 제어하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 통신 모듈을 이용하여 상기 셔플링된 데이터 블록들을 상기 데이터 관리 디바이스에 송신하고,
    상기 유저 디바이스 데이터가 업데이트되면, 상기 인덱스에 기초하여 상기 셔플링된 데이터 블록들 중 상기 업데이트된 유저 디바이스 데이터에 대응하는 적어도 하나의 업데이트된 데이터 블록을 상기 데이터 관리 디바이스로 송신하며,
    상기 적어도 하나의 업데이트된 데이터 블록의 송신은 상기 데이터 관리 디바이스로 하여금, 상기 적어도 하나의 업데이트된 데이터 블록을 상기 외부 저장소로 송신 하게 하고, 상기 데이터 관리 디바이스에 기저장된 상기 셔플링된 데이터 블록들을 상기 적어도 하나의 업데이트된 데이터 블록을 이용하여 업데이트하게 하는, 유저 디바이스.
  10. 제 9 항에 있어서,
    상기 데이터 처리 모듈은 상기 유저 디바이스 데이터에 대한 패딩(padding)을 수행하는, 유저 디바이스.
  11. 제 9 항에 있어서,
    상기 프로세서는,
    상기 셔플링된 데이터 블록들에 대한 해쉬(hash)값을 계산하고,
    기설정된 일방향 함수를 이용하여 상기 계산된 해쉬값에 대한 결과값을 계산하며,
    상기 데이터 관리 디바이스로부터 수신된 값과 상기 계산된 결과값을 매칭함으로써 상기 데이터 관리 디바이스 및 상기 외부 저장소에 저장된 데이터 블록들을 확인하는, 유저 디바이스.
  12. 제 9 항에 있어서,
    상기 통신 모듈은 인트라넷(intranet), 근거리 통신망 및 LAN(Local Area Network) 중 적어도 하나를 이용하여 상기 데이터 관리 디바이스와 통신하는, 유저 디바이스.
  13. 제 9 항에 있어서,
    상기 외부 저장소는 클라우드(cloud) 서버인, 유저 디바이스.
  14. 데이터 관리 시스템으로서,
    데이터 관리 디바이스에 액세스하고, 유저 디바이스의 제1 데이터를 기설정된 크기의 데이터 블록들로 변환하고, 상기 변환된 데이터 블록들을 암호화 키(key)를 이용하여 암호화하고, 상기 암호화된 데이터 블록들을 셔플링(shuffling)함으로써 제2 데이터 블록들을 생성하고, 상기 제2 데이터 블록들을 상기 데이터 관리 디바이스에 송신하며, 상기 제2 데이터 블록들에 대한 셔플링 인덱스를 관리하는, 상기 유저 디바이스;
    상기 유저 디바이스로부터 수신된 상기 제2 데이터 블록들을 저장하고, 상기 제2 데이터 블록들을 외부 저장소로 송신하고, 상기 유저 디바이스로부터의 업데이트 요청에 기초하여 상기 제2 데이터 블록들의 적어도 일부를 업데이트된 상기 제2 데이터 블록들의 적어도 일부를 외부 저장소로 송신하며, 상기 제2 데이터 블록들에 대한 인덱스를 관리하는, 상기 데이터 관리 디바이스; 및
    상기 데이터 관리 디바이스로부터 수신된 상기 제2 데이터 블록들 및 상기 업데이트된 상기 제2 데이터 블록들의 적어도 일부를 저장하는, 상기 외부 저장소를 포함하는, 데이터 관리 시스템.
  15. 제 14 항에 있어서,
    상기 유저 디바이스는,
    상기 제1 데이터의 적어도 일부를 업데이트하고,
    상기 제2 데이터 블록들 중 업데이트된 상기 제1 데이터의 적어도 일부에 대응되는 적어도 하나의 제3 데이터 블록을 포함하는 상기 업데이트 요청을 생성하고,
    주기적으로 또는 상기 제1 데이터가 업데이트되었을 때에 상기 업데이트 요청을 상기 데이터 관리 디바이스로 송신하는, 데이터 관리 시스템.
  16. 제 15 항에 있어서,
    상기 데이터 관리 디바이스는,
    상기 유저 디바이스로부터 상기 업데이트 요청이 수신되면, 상기 업데이트 요청에 포함된 상기 적어도 하나의 제3 데이터 블록을 상기 외부 저장소로 송신하고, 상기 제3 데이터 블록을 이용하여 상기 데이터 관리 디바이스에 저장된 상기 제2 데이터 블록들을 업데이트하며, 상기 제2 데이터 블록들에 대한 인덱스를 업데이트하는, 데이터 관리 시스템.
  17. 제 16 항에 있어서,
    상기 외부 저장소는 상기 데이터 관리 디바이스로부터 수신된 상기 제2 데이터 블록들 및 상기 제3 데이터 블록들을 저장하는, 데이터 관리 시스템.
  18. 제 17 항에 있어서,
    상기 데이터 관리 디바이스는,
    상기 업데이트된 제2 데이터 블록들과 상기 업데이트된 인덱스를 이용하여 상기 업데이트 이전의 상기 제2 데이터 블록들을 복원하는, 데이터 관리 시스템.
  19. 제 14 항에 있어서,
    상기 유저 디바이스와 상기 데이터 관리 디바이스는 인트라넷(intranet), 근거리 통신망 및 LAN(Local Area Network) 중 적어도 하나를 통하여 통신하는, 데이터 관리 시스템.
  20. 데이터 관리 방법으로서,
    유저 디바이스로부터 수신된 데이터 블록들을 저장하는 단계로서, 상기 데이터 블록들은 유저 디바이스에 의하여 암호화되고 셔플링(shuffling)된, 상기 데이터 블록들을 저장하는 단계;
    상기 저장된 데이터 블록들에 대한 인덱스를 생성하는 단계;
    상기 유저 디바이스로부터 상기 저장된 데이터 블록들의 적어도 일부에 대한 적어도 하나의 업데이트 데이터 블록을 수신하면, 상기 적어도 하나의 업데이트 데이터 블록을 외부 저장소로 전송하는 단계;
    상기 적어도 하나의 업데이트 데이터 블록을 이용하여 상기 저장된 데이터 블록들을 업데이트하는 단계; 및
    상기 외부 저장소로 전송된 적어도 하나의 업데이트 데이터 블록 및 상기 업데이트된 데이터 블록에 기초하여 상기 생성된 인덱스를 업데이트하는 단계를 포함하는, 데이터 관리 방법.
KR1020140174684A 2014-12-08 2014-12-08 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법 KR101628195B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140174684A KR101628195B1 (ko) 2014-12-08 2014-12-08 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140174684A KR101628195B1 (ko) 2014-12-08 2014-12-08 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR101628195B1 true KR101628195B1 (ko) 2016-06-08

Family

ID=56194022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140174684A KR101628195B1 (ko) 2014-12-08 2014-12-08 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법

Country Status (1)

Country Link
KR (1) KR101628195B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887382B2 (en) 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131486A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131483A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131484A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
KR20230045267A (ko) * 2021-09-28 2023-04-04 단국대학교 산학협력단 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040097016A (ko) * 2004-10-15 2004-11-17 곽현정 암호화를 활용한 웹저장공간 제공 서비스 시스템 및 방법
KR20060059040A (ko) * 2004-11-26 2006-06-01 주식회사 이수유비케어 데이터 백업 시스템 및 그 방법
KR20060060916A (ko) * 2004-12-01 2006-06-07 삼성에스디에스 주식회사 블록 암호화 및 복호화 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040097016A (ko) * 2004-10-15 2004-11-17 곽현정 암호화를 활용한 웹저장공간 제공 서비스 시스템 및 방법
KR20060059040A (ko) * 2004-11-26 2006-06-01 주식회사 이수유비케어 데이터 백업 시스템 및 그 방법
KR20060060916A (ko) * 2004-12-01 2006-06-07 삼성에스디에스 주식회사 블록 암호화 및 복호화 방법 및 장치

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887382B2 (en) 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131485A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131486A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131483A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
WO2020131484A3 (en) * 2018-12-18 2021-03-04 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10983886B2 (en) 2018-12-18 2021-04-20 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11178221B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11252019B2 (en) 2018-12-18 2022-02-15 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
KR20230045267A (ko) * 2021-09-28 2023-04-04 단국대학교 산학협력단 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버
KR102620855B1 (ko) * 2021-09-28 2024-01-02 단국대학교 산학협력단 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버

Similar Documents

Publication Publication Date Title
US9195851B1 (en) Offloading encryption to the client
US20220075534A1 (en) Gateway for Cloud-Based Secure Storage
Li et al. A hybrid cloud approach for secure authorized deduplication
US8892907B2 (en) Storage and recovery of cryptographic key identifiers
EP3062261B1 (en) Community-based de-duplication for encrypted data
KR101628195B1 (ko) 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법
US10223506B2 (en) Self-destructing files in an object storage system
CA2766731C (en) Method and system for cloud based storage
CN104836862B (zh) 一种智能终端数据存储方法
KR102628057B1 (ko) 블록체인 기반 파일 송신 방법 및 그 시스템
CN105007302B (zh) 一种移动终端数据存储方法
US10116442B2 (en) Data storage apparatus, data updating system, data processing method, and computer readable medium
US20110113259A1 (en) Re-keying during on-line data migration
KR20170081504A (ko) 암호 데이터의 중복 제거 방법 및 장치
US8189790B2 (en) Developing initial and subsequent keyID information from a unique mediaID value
CN104937904A (zh) 针对全异卸载提供器的复制卸载
KR20210064675A (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
US20090055556A1 (en) External storage medium adapter
Kim et al. Survey on Data Deduplication in Cloud Storage Environments.
US11595190B2 (en) Encrypted data storage system
US20170372092A1 (en) Information processing system, terminal, and determination apparatus
CN104836816B (zh) 一种移动设备数据存储方法
Areed et al. Modified SeDaSc system for efficient data sharing in the cloud
US11546411B1 (en) Backing up confidential data to user devices on the same local network
US11675739B1 (en) Distributed data storage using hierarchically arranged metadata

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant