KR20200127643A - 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치 - Google Patents

문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치 Download PDF

Info

Publication number
KR20200127643A
KR20200127643A KR1020190052182A KR20190052182A KR20200127643A KR 20200127643 A KR20200127643 A KR 20200127643A KR 1020190052182 A KR1020190052182 A KR 1020190052182A KR 20190052182 A KR20190052182 A KR 20190052182A KR 20200127643 A KR20200127643 A KR 20200127643A
Authority
KR
South Korea
Prior art keywords
hash
data
confidential
divided
distributed storage
Prior art date
Application number
KR1020190052182A
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 KR1020190052182A priority Critical patent/KR20200127643A/ko
Publication of KR20200127643A publication Critical patent/KR20200127643A/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치를 개시한다.
본 발명의 실시예에 따른 문서 관리를 위한 데이터 분산 처리장치는, 사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화부; 비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성하고, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장되도록 하는 문서 조각 분할 처리부; 상기 분산 저장 노드로부터 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성하는 제1 해시 처리부; 상기 기밀 해시를 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할하는 해시 분할 처리부; 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시 각각을 사용자 단말과 블록체인 노드에 저장되도록 하는 분할 저장 처리부; 및 상기 원시 데이터의 변화에 따라 생성된 타임 스템프를 기록하는 히스토리 기록 처리부를 포함할 수 있다.

Description

문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치{Method and Apparatus for Distributed Processing of Data for Document Management}
본 발명은 비공개 폐쇄형 분산네트워크 환경에서 문서 관리를 위하여 데이터를 분산 처리하는 방법 및 그를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
문서는, 정보처리 시스템에 의하여 전자적 형태로 작성, 송신, 수신 또는 저장된 정보로 규정된다. 이는 컴퓨터와 같이 연산처리를 하는 정보처리장치에 의하여 생성된 디지털 메시지로서 필요에 의하여 나중에 재현하거나 열람할 수 있는 전자적 기록을 의미하고 특별한 형식(또는 표준)을 필요로 하지 않는다. 이때, 문서는 전자우편(이메일), 휴대전화 문자 메세지(SMS, MMS), 문서저작 도구로 작성된 파일, PDF, HTML 뿐만 아니라 동영상, 사진, 음악, 소프트웨어 등을 포함하는 넓은 개념이다.
문서를 저장하고 관리하기 위하여 개인 및 기업은 하드디스크, 휴대용 저장장치(USB 저장장치), 스토리지, 클라우드 등을 사용한다. 그러나, 문서를 저장하고 관리함에 있어 개인의 경우 민감한 정보가 노출될 수 있고 기업, 공공기관 등은 영업비밀과 국민들의 개인정보 및 각종 기밀의 유출에 대한 고려가 필요하다.
이에, 문서를 저장하고 관리함에 있어 개인의 경우 온라인 서비스 사업자(OSP)가 제공하는 파일 저장서비스(예: 웹하드)를 이용하거나 휴대용 저장장치를 사용하고, 자체적인 관리가 필요한 기업, 기관 등에서는 별도의 보안 장비와 보안솔루션, 백업 장비와 기록 관리를 위한 막대한 인적, 물적 자원을 투입하여야 하는 실정이다.
하지만, 개인이든 기업, 공공기관이든 어떠한 방식을 사용하더라도 실제 많은 내 외적인 요인 즉, 실수 또는 고의로 인한 유출과 해킹으로 인하여 유, 무형의 막대한 피해는 계속해서 발생하고 있는 실정이다.
따라서, 실질적으로 실수 또는 고의에 의한 유출과 악의적인 목적의 해킹이 발생하더라도 피해가 없으며, 기록과 이력에 대한 관리가 신뢰성 높은 시스템 하에서 문서가 처리되도록 함으로써, 문서의 일부 또는 전체가 노출되더라도 그 어떤 시스템이나 방법으로도 식별이 불가능하게 하는 안전한 문서 관리 시스템의 구현이 필요하다.
본 발명은 데이터 비식별화 처리를 이용한 데이터 분산처리 장치 및 방법으로 사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화부, 분산형 데이터 처리부로부터 생성된 상기 기밀 해시를 분할하여 상기 사용자 단말과 블록체인 노드에 저장하는 기밀 해시 저장부를 포함하여 보안이 요구되는 문서에 대한 접근, 훼손, 유출을 방지하는데 그 목적이 있다.
본 발명의 일 측면에 의하면, 상기 목적을 달성하기 위한 데이터 분산 처리장치는, 사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화부; 비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성하고, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장되도록 하는 문서 조각 분할 처리부; 상기 분산 저장 노드로부터 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성하는 제1 해시 처리부; 상기 기밀 해시를 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할하는 해시 분할 처리부; 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시 각각을 사용자 단말과 블록체인 노드에 저장되도록 하는 분할 저장 처리부; 및 상기 원시 데이터의 변화에 따라 생성된 타임 스템프를 기록하는 히스토리 기록 처리부를 포함할 수 있다.
또한, 본 발명의 다른 측면에 의하면, 상기 목적을 달성하기 위한 데이터 분산 처리방법은, 사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화 단계; 비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성하고, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장되도록 하는 문서 조각 분할 처리 단계; 상기 분산 저장 노드로부터 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성하는 제1 해시 처리 단계; 상기 기밀 해시를 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할하는 해시 분할 처리 단계; 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시 각각을 사용자 단말과 블록체인 노드에 저장되도록 하는 분할 저장 처리 단계; 및 상기 원시 데이터의 변화에 따라 생성된 타임 스템프를 기록하는 히스토리 기록 처리 단계를 포함할 수 있다.
이상에서 설명한 바와 같이, 본 발명은 문서 관리를 위한 데이터 분산 처리를 수행함으로써, 문서 데이터의 최초 생성 일시 및 업데이트 이력을 관리할 수 있는 효과가 있다.
또한, 본 발명은 본 발명은 데이터 분산 처리된 문서에 대한 부정한 목적의 유출, 해킹이 있더라도, 애플리케이션 통신 구간 및 비공개 폐쇄형 IPFS와 비공개 폐쇄형 블록체인 전체 노드 상의 모든 조각 및 비식별처리용 페이크 데이터에 대하여 100% 복호화 및 무력화 하는 것은 기술적으로 불가능하여 문서 관리에 높은 신뢰성을 확보할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 문서 관리를 위한 데이터 분산 처리 시스템을 개략적으로 나타낸 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 문서 관리 위한 데이터 분산 처리 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제1 프로세스를 나타낸 순서도이다.
도 4는 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제2 프로세스를 나타낸 순서도이다.
도 5는 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제3 프로세스를 나타낸 순서도이다.
도 6은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제4 프로세스를 나타낸 순서도이다.
도 7은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제5 프로세스를 나타낸 순서도이다.
도 8은 본 발명의 실시예에 따른 문서 이력을 관리하는 동작을 나타낸 예시도이다.
도 9는 본 발명의 실시예에 따른 데이터 분산 처리장치를 개략적으로 나타낸 블록 구성도이다.
도 10은 본 발명의 실시예에 따른 데이터 분산 처리장치의 분산 저장 노드에 대한 구성을 나타낸 도면이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 이하에서는 도면들을 참조하여 본 발명에서 제안하는 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치에 대해 자세하게 설명하기로 한다.
본 발명은 비공개 폐쇄형(Private) 분산 파일 공유 시스템(IPFS: InterPlanetary File System, 이하, IPFS로 기재함), 비공개 폐쇄형 블록체인 등 비공개된 폐쇄형 분산 네트워크 노드에 적용되어 문서 데이터를 관리하는 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 다양한 형태의 분산 네트워크 환경에 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 문서 관리를 위한 데이터 분산 처리 시스템을 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 데이터 분산 처리 시스템(10)은 문서 관리를 위하여 데이터 분산 처리를 수행하는 시스템으로서, 데이터 분산 처리 시스템(10)은 사용자 단말(100), 데이터 분산 처리서버(200), 폐쇄형 분산네트워크(300) 및 히스토리 스토리지(400)를 포함한다. 도 1의 데이터 분산 처리 시스템(10)은 일 실시예에 따른 것으로서, 도 1에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 데이터 분산 처리 시스템(10)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
데이터 분산 처리 시스템(10)은 입력된 문서 데이터에 페이크 데이터(Fake Data)를 포함시켜 비식별화 및 암호화한 후 조각 낸 데이터 조각을 비공개 폐쇄형 IPFS 노드에 분산 저장하고, 이 때 생성되는 데이터 조각의 해시정보 비공개 폐쇄형 블록체인 노드 및 사용자 단말에 분산 처리하며, 문서 데이터의 복원 또는 다운로드 요청 시 분산 처리된 데이터 조각을 조합한다.
데이터 분산 처리 시스템(10)은 데이터 분산 처리 동작을 통해 문서의 저장, 복원, 업데이트 등을 처리할 수 있고, 문서의 저장, 복원, 업데이트 등의 이력을 관리할 수 있다.
사용자 단말(100)은 데이터 분산 처리서버(200)와 연결되어 문서를 관리하는 단말을 말한다. 여기서, 사용자 단말(100)는 사용자의 키 조작에 따라 통신망을 경유하여 각종 문서 데이터를 송수신할 수 있는 단말기를 말하는 것이며, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant) 및 무선 단말기(Wireless Terminal) 등 중 어느 하나일 수 있다.
사용자 단말(100)는 사용자의 조작 또는 명령에 의해 문서 관리 애플리케이션을 구동하며, 문서 관리 애플리케이션을 통해 문서 관리(예: 업로드, 복원, 이력조회, 재인증 등)를 수행할 수 있다. 문서 관리 애플리케이션은 애플리케이션 서버(210)를 통해 다운로드된 애플리케이션일 수 있다. 예를 들어, 문서 관리 애플리케이션은 사용자 단말(100)이 스마트폰인 경우 애플리케이션 스토어를 통해 다운로드된 후 인스톨된 애플리케이션을 말하며, 단말기(110)가 피쳐 폰(Feature Phone)인 경우 통신사 서버를 통해 다운로드한 VM(Virtual Machine) 및 애플리케이션을 말한다.
데이터 분산 처리서버(200)는 사용자 단말(100)로부터 입력된 문서 데이터에 페이크 데이터(Fake Data)를 포함시켜 비식별화 및 암호화한 후 조각 낸 데이터 조각을 비공개 폐쇄형 IPFS 노드에 분산 저장하고, 이 때 생성되는 데이터 조각의 해시정보 비공개 폐쇄형 블록체인 노드 및 사용자 단말에 분산 처리하며, 문서 데이터의 복원 또는 다운로드 요청 시 분산 처리된 데이터 조각을 조합한다. 본 실시예에 따른 데이터 분산 처리서버(200)는 애플리케이션 서버(210) 및 코어 서버(220)을 포함한다.
애플리케이션 서버(210)는 애플리케이션을 관리하는 동작을 수행한다. 애플리케이션 서버(210)는 문서 관리를 위하여 사용자 단말(100)에 각 사용자 별 유니크한 코드가 탑재된 애플리케이션을 배포하고 통신하며, 문서의 검증과 확인 및 복원결과와 처리된 이력을 관리하고, 사용자 단말의 변경 또는 분실에 대비한 재인증을 처리한다.
코어 서버(220)는 문서 데이터의 업로드, 복원, 히스토리 기록 등에 대한 전반적인 동작을 수행한다.
코어 서버(220)는 사용자 단말(100)로부터 입력된 문서 데이터에 페이크 데이터(Fake Data)를 포함시켜 비식별화 및 암호화한 후 스플릿 엔진(Split Engine)을 통하여 조각 낸 데이터 조각을 비공개 폐쇄형 IPFS 노드에 분산 저장한다.
코어 서버(220)는 비공개 폐쇄형 IPFS 노드에 분산 저장된 데이터 조각의 해시정보 비공개 폐쇄형 블록체인 노드 및 사용자 단말에 분산 처리하며, 문서 데이터의 복원 또는 다운로드 요청 시 분산 처리된 데이터 조각을 조합한다.
폐쇄형 분산네트워크(300)는 코어 서버(220)로부터 전송된 데이터 조각을 IPFS 노드에 저장하고, 이에 대한 해시정보를 코어 서버(220)로 전송한다. 또한, 폐쇄형 분산네트워크(300)는 코어 서버(220)로부터 전송된 해시정보를 획득하여 저장한다.
폐쇄형 분산네트워크(300)는 블록 체인 노드(310) 및 IPFS 노드(320)를 포함한다. 블록 체인 노드(310)는 코어 서버(220)로부터 전송된 해시정보를 획득하여 저장할 수 있다. 또한, IPFS 노드(320)는 코어 서버(220)로부터 전송된 데이터 조각을 저장한다.
히스토리 스토리지(400)는 문서 관리에 대한 이력을 각 발생 시점의 타임 스탬프로 기록하는 장치이다.
히스토리 스토리지(400)는 문서 관리 애플리케이션에서 사용자별 유니크한 코드 값을 어카운트(account)로서 문서관리 이력의 최상위 루트(Root)에 기록한다. 히스토리 스토리지(400)는 어카운트 하위에 업로드한 문서파일명과 업로드 시점, 비식별화 조치 및 암호화하여 비공개 폐쇄형 IPFS에 분산 배포하는 시점, 조각 인덱스 해시(Index Hash)가 생성되는 시점, 키 해시(Key Hash)가 생성되고, 사용자 단말 응용프로그램과 비공개 폐쇄형 블록체인에 분할 배포되는 시점 등에 대해 생성된 타임 스탬프를 저장한다.
또한, 히스토리 스토리지(400)는 어카운트 하위에 복원 요청시 사용자 단말(100)의 애플리케이션과 비공개 폐쇄형 블록체인에서 분할된 키 해시(Key Hash)를 호출하고 조합하는 시점, 어카운트 하위에 검출된 인덱스 해시(Index Hash) 를 통하여 비공개 폐쇄형 IPFS 각 노드의 조각 데이터를 호출하고 병합한 시점, 어카운트 하위에 병합한 데이터의 복호화 및 비식별화 처리용 페이크데이터를 제거하여 원본을 복원한 시점 등에 대해 생성된 타임 스탬프를 저장한다.
또한, 히스토리 스토리지(400)는 어카운트 하위에 사용자단말의 변경, 분실 등에 따라 어플리케이션 서버에서 재인증을 처리한 시점 등에 대해 생성된 타임 스탬프를 저장한다.
도 2는 본 발명의 실시예에 따른 문서 관리 위한 데이터 분산 처리 방법을 설명하기 위한 순서도이다.
도 2에서는 사용자 단말(100)의 애플리케이션 설치부터 문서 이력 관리까지의 전체 동작을 나타낸다.
도 2를 참조하여 데이터 분산 처리 시스템(10)에서 문서 데이터가 처리되는 각각의 프로세스 별로 설명하도록 한다.
제1 프로세스(P1)는 사용자 단말(100)에 설치되는 애플리케이션의 요청과 제공에 대한 과정이다. 구체적으로, 제1 프로세스(P1)는 사용자 단말(110)에서 애플리케이션 서버(210)로 애플리케이션을 요청(S201)하고, 애플리케이션 서버(210)에서 사용자 단말(100)로 애플리케이션을 제공(S202)하는 과정을 포함한다.
제2 프로세스(P2)는 애플리케이션을 통하여 문서를 업로드하여 처리하는 과정이다. 구체적으로, 제2 프로세스(P2)는 사용자 단말(100)에서 문서를 업로드(S203)하고, 애플리케이션 서버(210)에서 업로드된 문서를 검증 및 확인(S204)한 후 코어 서버(220)에서 비식별 암호화 및 해시를 생성하여 배포(S205)하는 과정을 포함한다. 또한, 제2 프로세스(P2)는 폐쇄형 분산 네트워크(300)에서 해시를 노드에 저장(S206)하고, 히스토리 스토리지(400)에서 문서 업로드 및 배포에 대한 이력을 저장한다(S207).
제3 프로세스(P3)는 문서 다운로드를 위해 복원하는 과정이다. 구체적으로, 제3 프로세스(P3)는 폐쇄형 분산 네트워크(300)에서 노드에 저장된 해시를 호출(S211)하고, 코어 서버(220)에서 호출된 해시를 조합하여 복호화(S210)를 수행하는 과정을 포함한다. 또한, 제3 프로세스(P3)는 애플리케이션 서버(210)에서 복호화된 데이터를 이용하여 문서를 복원(S209)하고, 사용자 단말(100)에서 복원된 문서를 다운로드(S208)하는 과정을 포함한다. 제3 프로세스(P3)에서 히스토리 스토리지(400)는 문서 업로드 및 배포에 대한 이력을 저장한다(S207).
제4 프로세스(P4)는 처리 이력을 확인하는 과정이다. 구체적으로, 제4 프로세스(P4)는 사용자 단말(100)에서 이력 확인(S213)에 대한 요청이 존재하면, 애플리케이션 서버(210)에서 전체 이력을 호출(S214)하여 히스토리 스토리지(400)로부터 전체 이력(S215)을 불러오는 과정을 포함한다.
제5 프로세스(P5)는 사용자단말의 변경, 분실, 장애에 따른 계정 복원 과정이다. 구체적으로, 제5 프로세스(P5)는 새롭게 변경된 사용자 단말(100)에서 애플리케이션에 대한 재요청(S216)을 수행하고, 애플리케이션 서버(210)에서 사용자 재인증(S217)을 처리하는 과정을 포함한다.
도 3은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제1 프로세스를 나타낸 순서도이다.
도 3은 제1 프로세스(P1)를 구체적으로 설명하는 것으로서, 사용자 단말(100)은 애플리케이션 서버(210)으로 문서 관리 애플리케이션을 요청하면(S301), 애플리케이션 서버(210)에서는 요청에 응답하여(S302), 사용자 환경에 맞게 풀패키지(Full Pakage), SDK, API 등의 형태로 문서 관리 애플리케이션을 배포하고(S303), 사용자 단말(100)에 설치, 연동한다(S304).
사용자 단말(100)은 설치 또는 연동한 애플리케이션을 통하여 사용자 계정 생성을 위하여 애플리케이션 서버(210)로 인증을 요청한다(S305). 이때, 인증요청은 애플리케이션 서버(210)에서 이메일(E-mail)을 통하여 6 개의 인증 코드를 발송하고(S306), 사용자 단말(100)은 인증 확인 및 계정을 생성한다(S307).
애플리케이션 서버(210)에서 해당 계정을 인증 및 등록하고 고유한 유니크 코드를 임의로 발생시켜 배포한다(S308). 이후, 사용자 단말(100)의 애플리케이션에서는 유니크 코드를 수용, 응답(S309)함으로써 해당 사용자 단말(100)에서만 사용할 수 있는 고유한 애플리케이션이 된다.
다음으로, 사용자가 자신의 계정을 기억하지 못하거나 단말의 변경, 분실, 장애 등이 발생하였을 때 계정복구를 위하여 애플리케이션 서버(210)에서 복구용 12 자리 문자를 생성하고(S310), 이를 사용자 단말(100)의 애플리케이션 화면에 표시, 수령에 대한 응답(S311)이 애플리케이션 서버(210)에 수신되면 제1 프로세스(P1)의 과정을 완료한다(S312).
도 4는 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제2 프로세스를 나타낸 순서도이다.
도 4는 제2 프로세스(P2)를 구체적으로 설명하는 것으로서, 사용자 단말(100)에 설치된 문서 관리 애플리케이션을 통하여 문서가 업로드되면(S401), 애플리케이션 서버(210)에서 문서의 용량, 형식, 바이러스를 체크하고 업로드 된다(S402). 업로드된 문서는 코어 서버(220)에서 바이트 코드로 변환하고(S403), 시스템에서 자동으로 발생시킨 페이크 데이터를 결합(S404)하여 비식별화 처리된다. 비식별화 처리된 데이터는 고급 암호화표준(AES)으로 암호화 처리하고(S405), 스플릿 엔진(Split Engine)에 의해 임의로 결정된 조각 개수 N 개로 조각화하여 비공개 폐쇄형 IPFS 노드(320)에 분산 배포 처리한다(S407).
이후, 코어 서버(220)는 IPFS 노드(320)에 배포된 조각의 해시 값을 각각 호출하여(S408), 일렬로 병합한 1 개의 조각 인덱스 해시(Index Hash)를 생성하고(S409) 이를 다시 비공개 폐쇄형 IPFS노드(320)에 배포한다(S410).
이때 비공개 폐쇄형 IPFS노드(320)에 배포되는 해시는 IPFS 분산 배포 특성에 적용 받지 않도록 제어하여 1 개 노드에 1 : 1로 저장한다. 저장된 1 개의 인덱스 해시(Index Hash)를 호출하여 재 해싱 과정을 거쳐 1 개의 키 해시(Key hash)를 생성하며(S411), 이를 2 분할 하되 반드시 % 로 구분하여 51 % : 49 %와 같이 한쪽이 큰 값을 갖게 처리한다(S412).
코어 서버(220)는 키 해시(Key hash) 분할 값을 전송함에 있어(S413), 큰 값은 애플리케이션 서버(210)의 확인(S414)을 거쳐, 사용자 단말(100)에 설치된 애플리케이션 또는 사용자 단말(100)의 메모리(미도시)에 저장하고(S415), 작은 값은 비공개 폐쇄형 블록체인 노드(310)에 저장한다(S416). 코어 서버(220)는 이렇게 처리된 문서 데이터의 업로드, 배포 시점을 히스토리 스토리지에 저장한다(S417).
도 5는 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제3 프로세스를 나타낸 순서도이다.
도 5는 제3 프로세스(P3)를 구체적으로 설명하는 것으로서, 사용자 단말(100)의 애플리케이션을 통하여 문서의 복원, 다운로드가 요청되면(S501) 애플리케이션 서버(210)에서 문서 리스트를 호출하여(S502) 히스토리 스토리지(400)에서 회신(S503)한 결과를 가지고 복원할 문서를 선택한다(S504).
애플리케이션 서버(210)에서 선택한 문서의 복원을 실행하면(S505), 코어 서버(220)에서 키 해시(Key hash) 값을 호출하고 수신한다(S506). 이때, 키 해시(Key hash)의 큰 값은 애플리케이션의 확인(S507)을 통하여 사용자 단말(100)에서 호출하고(S508), 작은 값은 비공개 폐쇄형 블록체인 노드(310)에서 호출한다(S509).
분할하여 호출된 키 해시(Key Hash)은 1 개로 병합하여 복원한 후(S510) 복원 값을 가지고 비공개 폐쇄형 IPFS 노드(320)에 1 : 1 로 저장된 조각 인덱스 해시(Index Hash)를 검색한다(S511).
코어 서버(220)는 검색된 조각 인덱스 해시(Index Hash)를 최초 스플릿 엔진(Split Engine)에서 임의로 결정한 조각 개수 N 개와 일치하도록 분할하고(S512), 이 분할 값에 대응하는 각 조각을 비공개 폐쇄형 IPFS 노드(320)에 검색하여(S513) 각각의 매칭되는 데이터 조각을 찾아서(S514), 이를 한 개의 데이터로 병합한다(S515).
코어 서버(220)는 병합된 데이터에 복호화 및 비식별 처리로 결합되었던 페이크 데이터를 제거하고(S516), 애플리케이션을 통하여 복원에 대해 회신하면(S517), 사용자는 자신의 단말에서 복원된 문서를 확인한 후 다운로드 한다(S518).
코어 서버(220)는 문서의 복원요청 시점부터 키 해시(Key Hash) 조합, 조각 인덱스 해시(Index Hash)를 통하여 데이터 조각을 호출하여 복호화 및 비식별화 제거과정까지의 이력을 히스토리 스토리지(400)에 저장한다(S519).
도 6은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제4 프로세스를 나타낸 순서도이다.
도 6은 제4 프로세스(P4)를 구체적으로 설명하는 것으로서, 사용자가 단말(100)의 애플리케이션을 통하여 문서 처리 이력을 확인하고자 애플리케이션 서버(210)으로 요청하면(S601), 애플리케이션 서버(210)에서는 이력 내역을 히스토리 스토리지(400)에 호출한다(S602).
애플리케이션 서버(210)는 히스토리 스토리지(400)에서 이력 내역을 회신 받아(S603) 사용자 단말(100)의 애플리케이션에 리스트를 출력한다. 이때, 리스트의 상세 내역에서 전체내역, 업로드 내역, 배포내역, 복원(다운로드)내역 등을 확인 가능하고((S604, S605), 특정 문서 이력을 선택하여 삭제할 수 있다(S606). 이때, 기 기록된 특정 문서 이력을 삭제하는 경우에도 애플리케이션에서 신호를 받아 삭제 시점을 히스토리 스토리지(400)에 기록할 수 있다(S608).
도 7은 본 발명의 실시예에 따른 데이터 분산 처리 방법의 제5 프로세스를 나타낸 순서도이다.
도 7은 제5 프로세스(P5)를 구체적으로 설명하는 것으로서, 사용자가 단말기(100)의 분실, 변경 및 장애로 인하여(S701) 애플리케이션을 사용할 수 없는 경우, 새로운 단말기에서 애플리케이션을 요청하면(S702) 애플리케이션 서버(210)에서 응답하고(S703), 새로운 애플리케이션을 배포한다(S704).
사용자는 새로운 단말에서 애플리케이션을 설치 또는 연동한 후(S705), 계정의 복원을 통하여 문서관리 내역을 확인하여야 하므로 애플리케이션 서버(210)로 인증을 요청한다(S706).
애플리케이션 서버(210)에서는 사용자의 인증 요청이 접수되면 이메일을 통하여 인증 키를 발송하고(S707), 사용자가 이메일로 수령한 인증키를 애플리케이션에 입력 후 인증을 요청하며(S708) 애플리케이션 서버는 인증 확인 내용을 수신한다(S709).
이때, 새로운 단말은 자신의 문서관리 이력을 호출하기 위하여 계정의 완전한 복원이 필요하므로 최초 계정 생성 시에 발급하였던 복구용 12 자리 문자를 요청 받는다(S710).
사용자는 새로운 단말의 애플리케이션에 복구용 12 자리 문자를 입력하고(S711), 애플리케이션 서버(210)에서 해당 문자가 확인되면(S712) 정상적인 사용자 계정으로서 승인(S713)된다. 애플리케이션 서버(210)는 승인 내역을 애플리케이션으로 전달하고(S715) 최종적으로 계정이 복원 된다(S716)
도 2 내지 도 7 각각에서는 각 단계를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 2 내지 도 7 각각에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 2 내지 도 7 각각은 시계열적인 순서로 한정되는 것은 아니다.
도 2 내지 도 7 각각에 기재된 본 실시예에 따른 문서 관리 위한 데이터 분산 처리 방법은 애플리케이션(또는 프로그램)으로 구현되고 단말장치(또는 컴퓨터)로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 문서 관리 위한 데이터 분산 처리 방법을 구현하기 위한 애플리케이션(또는 프로그램)이 기록되고 단말장치(또는 컴퓨터)가 읽을 수 있는 기록매체는 컴퓨팅 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치 또는 매체를 포함한다.
도 8은 본 발명의 실시예에 따른 문서 이력을 관리하는 동작을 나타낸 예시도이다.
도 8은 사용자 단말(100)에 설치된 애플리케이션을 통하여 문서의 처리내역을 확인하는 예시를 나타낸다.
사용자 단말(100)은 애플리케이션을 통하여 문서 이력을 관리할 때 애플리케이션 서버(210)으로 문서 이력 확인을 요청(S801)하고, 애플리케이션 서버(210)는 히스토리 스토리지(400)에 저장된 내역을 호출하여 사용자 단말(100) 상에서 보여줄(S803) 수 있도록 한다.
사용자 단말(100)의 애플리케이션 출력 화면에 표시된 내용은 다음과 같습니다.
애플리케이션 출력 화면의 최상위에 해당 어카운트(Account)가 우선하여 표시되고, 어카운트(Account)가 생성된 일시를 년 4 자리, 월일 4 자리, 시분 4 자리, 초 2 자리, 국제 표준시 2 자리로 표시한다(804).
다음으로 해당 어카운트(Account)를 통하여 생성, 관리되는 문서의 파일명과 확장자가 표시된다(805).
이어서, UD 는 업로드 배포 (UD, Upload Distribution), AD는 할당 배포 (AD, Allocation Distribution), RD는 복원 배포(RD, Restore Distribution)을 의미하는 것으로서, 이중 UD와 AD는 시작 시점부터 종료까지의 경과를 각각 년 4 자리, 월일 4 자리, 시분 4 자리, 초 2 자리, 국제 표준시 2 자리로 표시하고, 업로드 시점 다음에는 소요된 시간이 분초 4 자리로 추가, 배포가 완료된 시점 다음에는 배포가 이루어진 노드의 수를 정수 2 자리로, 노드 배포에 소요된 시간을 분초 4 자리로, 최초 배포된 트랜잭션 해시 값을 추가하여 표시한다(806, 807).
RD는 문서의 복원 실행 시점부터 복원이 완료될 때 가지의 경과를 각각 년 4 자리, 월일 4 자리, 시분 4 자리, 초 2 자리, 국제 표준시 2 자리를 표시하되 복원에 총 소요된 시간을 분초 4 자리로서 중간에 표시한다(808).
ID는 해당 어카운트(Account)를 사용하는 사용자 계정의 복원 이력을 표시하는 것으로서 년 4 자리, 월일 4 자리, 시분 4 자리, 초 2 자리, 국제 표준시 2 자리와 복원 성공여부를 표시한다(809).
도 9는 본 발명의 실시예에 따른 데이터 분산 처리장치를 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 데이터 분산 처리장치(900)는 업로드 처리부(910), 복원 처리부(920), 히스토리 기록 처리부(930) 및 재인증 처리부(940)을 포함한다. 데이터 분산 처리장치(900)는 데이터 분산 처리서버(200)의 전체 또는 일부 기능을 수행할 수 있는 장치일 수 있으며, 프로세서, 메모리 등으로 구현된 장치일 수 있다.
이하, 데이터 분산 처리장치(900)에서 문서 업로드를 수행하는 업로드 처리부(910)의 동작을 설명하도록 한다.
본 실시예에 따른 업로드 처리부(910)는 암호화부(912), 문서 조각 분할 처리부(914), 제1 해시 처리부(916), 해시 분할 처리부(918) 및 분할 저장 처리부(919)를 포함한다. 도 9의 업로드 처리부(910)는 일 실시예에 따른 것으로서, 도 9에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 업로드 처리부(910)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
암호화부(912)는 사용자 단말(100)로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성한다. 여기서, 사용자 단말(100)로부터 입력되는 원시 데이터는 문서에 대한 데이터이다. 문서는 전자우편(이메일), 휴대전화 문자 메세지(SMS, MMS), 문서저작 도구로 작성된 파일, PDF, HTML 뿐만 아니라 동영상, 사진, 음악, 소프트웨어 등을 포함할 수 있다.
비식별 데이터는 문서를 공유가 가능한 데이터로 처리한 데이터로써, 마스킹, 치환, 반식별화, 유형화 등을 통해 문서의 속성을 비식별화하는 방법을 이용하여 생성될 수 있다.
구체적으로, 암호화부(912)는 입력된 원시 데이터가 디지털 데이터로 변환이 가능한 조건인 데이터 입력 조건에 부합하는가를 검증한다. 암호화부(912)는 등록된 문서 데이터가 데이터 입력 조건에 부합하는 경우, 임의의 페이크 데이터를 생성한다.
암호화부(912)는 원시 데이터에 페이크 데이터를 추가하여 디지털 코드를 생성하고, 디지털 코드를 암호화하여 비식별 데이터를 생성한다.
사용자 단말(100)을 통하여 문서 데이터를 암호화 통신을 통하여 등록되면, 암호화부(912)는 데이터 입력조건에 부합하는가를 검증한다. 이때, 데이터 입력조건은 알파벳, 한글, 숫자, 특수문자 등 디지털데이터로 변환이 가능한 것과 일정의 길이 등을 시스템이 정한 규정한 따라 결정된다. 입력 조건에 부합하면, 암호화부(912)는 임의의 페이크 데이터를 발생시켜 포함한 후, 이를 문서 데이터와 합쳐 디지털 코드로 생성한다. 생성된 디지털 코드는 암호화하여, 문서의 원본 데이터를 식별할 수 없는 암호화된 디지털 데이터를 생성한다. 이때, 비식별화 처리를 위한 페이크 데이터는 기계적으로 발생시킨 데이터로서, 10 킬로바이트(KB) 이내의 크기를 갖는 것이 바람직하다.
문서 조각 분할 처리부(914)는 비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성한다. 구체적으로, 입력된 비식별암호화 데이터를 수신하여, 이를 수천개 또는 임의의 크기로 선정하여 잘게 조각화 한다.
문서 조각 분할 처리부(914)는 비식별 데이터 조각들을 분산 저장 노드(IPFS 노드) 각각에 분산 배포하여 저장하고, 분산 저장 노드로부터 분산 저장 노드 각각에 저장된 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성한다. 여기서, 분산 저장 노드는, IPFS(Inter-Planetary File System)를 기반으로 하여 네트워크로 연결되는 다수의 사용자 노드들이다.
문서 조각 분할 처리부(914)는 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장하고, 저장된 상기 비식별 데이터 조각 각각의 해시값을 N 개(여기서, N은 자연수) 생성한다.
제1 해시 처리부(916)는 분산 저장 노드로부터 분산 저장 노드 각각에 저장된 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하고, 호출된 N 개의 해시값을 1 개의 해시로 조합하여 1차 조합 해시(조각 인덱스 해시)를 생성한다.
제1 해시 처리부(916)는 1차 조합 해시의 해시값의 조합을 변경하는 재 해싱 과정을 수행하여 기밀 해시(키 해시)를 생성한다.
제1 해시 처리부(916)는 IPFS의 각 노드 상태를 확인하고, 각 노드 중에서 성능이 우수한 N 개 노드를 시스템이 자동으로 선정하도록 한다. 선정된 N 개 노드로 각 조각 데이터를 배포하며, IPFS 알고리즘을 통해 해당 N 개 노드와 연결된 다수의 M 개 노드에 자동으로 분산 저장된다. 분산 저장되는 각 조각은 즉시 각각의 해시 값을 생성하며, 제1 해시 처리부(916)는 이 조각의 해시들을 호출하여 일렬로 조합 후 1 개의 1차 조합 해시를 생성하고, 1차 조합 해시의 복잡성과 기밀성 유지를 위해 재 해싱 처리하여 기밀 해시(키 해시)를 생성한다.
해시 분할 처리부(918)는 기밀 해시(키 해시)의 해시값을 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할한다. 해시 분할 처리부(918)는 기밀 해시를 서로 다른 길이를 갖도록 2 분할하되, 제1 분할 기밀 해시의 길이가 제2 분할 기밀 해시의 길이보다 크게 분할한다. 예를 들어, 해시 분할 처리부(918)는 기밀 해시를 51 %와 49 % 또는 60 %와 40 % 등의 비율과 같이, 반드시 한 쪽이 크게 계산하여 분할한다.
분할 저장 처리부(919)는 분할된 기밀 해시를 사용자 단말과 블록체인 노드에 저장되도록 한다.
분할 저장 처리부(919)는분할된 제1 분할 기밀 해시를 사용자 단말에 할당하여 저장되도록 하고, 분할된 제2 분할 기밀 해시를 블록체인 노드에 할당하여 저장되도록 한다.
분할 저장 처리부(919)는 블록체인 노드의 우성 노드(Dominant Node)를 임의로 M 개(여기서, M은 자연수) 선출하여 선출된 M 개의 노드에 제2 분할 기밀 해시가 저장되도록 한다.
분할 저장 처리부(919)는 분할된 기밀 해시를 호출하여, 분할된 기밀 해시 중 큰 값은 사용자 단말에 전송하여 저장되도록 하고, 작은 값은 블록체인 노드에 분산하여 저장되도록 한다.
이하, 데이터 분산 처리장치(900)에서 업로드된 문서의 복원(다운로드)을 수행하는 복원 처리부(920)의 동작을 설명하도록 한다.
본 실시예에 따른 복원 처리부(920)는 해시 호출부(922), 해시 병합 처리부(924), 제2 해시 처리부(926), 문서 조각 병합 처리부(928) 및 복호화부(929)를 포함한다. 도 9의 복원 처리부(920)는 일 실시예에 따른 것으로서, 도 9에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 복원 처리부(920)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
해시 호출부(922)는 사용자 단말(100)로부터 복원 요청을 입력 받으면, 사용자 단말(100)과 블록체인 노드(310) 각각에 저장된 제1 분할 기밀 해시 및 제2 분할 기밀 해시를 호출한다.
해시 병합 처리부(924)는 사용자 단말(100)과 블록체인 노드(310) 각각에서 호출된 제1 분할 기밀 해시 및 제2 분할 기밀 해시를 병합하여 기밀 해시를 복원한다.
제2 해시 처리부(926)는 복원된 기밀 해시를 이용하여 분산 저장 노드에서 1차 조합 해시를 검색한다. 제2 해시 처리부(926)는 분산 저장 노드에서 검색된 1차 조합 해시를 N 개(여기서, N은 자연수)의 해시값으로 분할한다.
문서 조각 병합 처리부(928)는 N 개의 해시값을 이용하여 분산 저장 노드 각각에 저장된 비식별 데이터 조각에서 해시값과 매칭되는 조각을 검색한다. 문서 조각 병합 처리부(928)는 분산 저장 노드 각각에서 검색된 비식별 데이터 조각들을 병합하여 비식별 데이터를 생성한다.
복호화부(929)는 비식별 데이터를 복호화한 후 페이크 데이터를 제거하여 원시 데이터를 복원한다. 구체적으로, 복호화부(929)는 분산 저장 노드(IPFS 노드)에서 찾아낸 각각의 데이터 조각들을 하나로 병합한 후, 복호화 처리하고, 처리된 내용을 확인하여 페이크 데이터를 제거 후, 문서 데이터 원본을 복원하여 사용자 단말(100)에 회신한다.
히스토리 기록 처리부(930)는 문서 관리 애플리케이션에서 사용자별 유니크한 코드 값을 어카운트(account)로서 문서관리 이력의 최상위 루트(Root)에 기록한다.
히스토리 기록 처리부(930)는 어카운트 하위에 업로드한 문서파일명과 업로드 시점, 비식별화 조치 및 암호화하여 비공개 폐쇄형 IPFS에 분산 배포하는 시점, 조각 인덱스 해시(Index Hash)가 생성되는 시점, 키 해시(Key Hash)가 생성되고, 사용자 단말 응용프로그램과 비공개 폐쇄형 블록체인에 분할 배포되는 시점 등에 대해 생성된 타임 스탬프를 기록한다.
또한, 히스토리 기록 처리부(930)는 어카운트 하위에 복원 요청시 사용자 단말(100)의 애플리케이션과 비공개 폐쇄형 블록체인에서 분할된 키 해시(Key Hash)를 호출하고 조합하는 시점, 어카운트 하위에 검출된 인덱스 해시(Index Hash) 를 통하여 비공개 폐쇄형 IPFS 각 노드의 조각 데이터를 호출하고 병합한 시점, 어카운트 하위에 병합한 데이터의 복호화 및 비식별화 처리용 페이크데이터를 제거하여 원본을 복원한 시점 등에 대해 생성된 타임 스탬프를 기록한다.
또한, 히스토리 기록 처리부(930)는 어카운트 하위에 사용자 단말의 변경, 분실 등에 따라 어플리케이션 서버에서 재인증을 처리한 시점 등에 대해 생성된 타임 스탬프를 기록한다.
히스토리 기록 처리부(930)는 기록된 타임 스탬프를 히스토리 스토리지(400)에 저장되도록 한다.
재인증 처리부(940)는 새로운 단말기로부터 애플리케이션에 대한 요청이 존재하는 경우, 애플리케이션을 배포한다(S704).
재인증 처리부(940)는 사용자의 인증 요청이 접수되면 이메일을 통하여 인증 키를 발송하고, 사용자가 이메일로 수령한 인증키를 애플리케이션에 입력 후 인증을 요청하면 인증 확인 내용을 수신한다.
재인증 처리부(940)는 최초 계정 생성 시에 발급하였던 복구용 12 자리 문자를 새로운 단말로 요청하고, 새로운 단말의 애플리케이션에 복구용 12 자리 문자가 입력되면, 정상적인 사용자 계정으로 승인 처리한다. 재인증 처리부(940)는 승인 내역을 애플리케이션으로 전달하여 최종적으로 계정을 복원(재인증)한다.
도 10은 본 발명의 실시예에 따른 데이터 분산 처리장치의 분산 저장 노드에 대한 구성을 나타낸 도면이다.
본 발명의 일 실시예에 따른 데이터 분산 처리장치(900)는 IPFS(Inter-Planetary File System)를 기반으로 하여 비식별 데이터 조각들을 네트워크 상으로 연결된 분산 저장 노드를 구성하는 각각의 사용자(31, 32, 33, 34)에게 분산 배포하여 저장하고, 분산 저장 노드로부터 분산 저장 노드 각각에 저장된 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성한다.
IPFS(Inter-Planetary File System)는 사진, 글 그리고 영상 등과 같은 객체들을 저장하거나 조회를 할 때 특정 서버를 이용하지 않고도 모든 데이터를 파일의 해시(Hash)로 조회할 수 있다.
전체 네트워크에서 해시값을 가진 파일을 갖는 사용자를 검색하면, 해당 IPFS 노드가 파일을 반환하게 된다.
기존의 경우 데이터가 저장된 위치(Location)로 접근했다면, IPFS는 특정 데이터가 가지고 있는 내용(Contents)으로 접근하며, 전체 네트워크에 요청하기 때문에, IPFS가 HTTP에 비해 빠른 라우팅이 가능해진다.
본 발명의 일 실시예에 따른 데이터 분산 처리장치(900)는 IPFS를 이용하여 대용량 데이터를 별도 보관, 탐색할 수 있는 블록체인을 구성하게 된다.
도 10을 참조하면, 예를 들어 각각의 사용자(31, 32, 33, 34)가 내용이 동일한 파일(11)을 각각 가지고 있다고 했을 때, HTTP 방식에서 다운로드를 위해서는 각각의 주소에 접근해야 하지만 IPFS는 각각의 사용자(31, 32, 33, 34)의 파일을 동일한 것으로 간주하며, 다른 사람이 다운로드를 요청했을 때, 각각의 사용자의 파일에 동시에 접근해 각각의 파일을 동시에 다운로드 받는다. 이 때 다운로드 받는 파일을 작은 블록들(11a, 11b, 11c, 11d)로 나누어 블록 조각들을 각각의 사용자(31, 32, 33, 34)로부터 나눠서 받게 될 수 있다.
이에 따라, 실질적으로 실수 또는 고의에 의한 유출과 악의적인 목적의 해킹이 발생하였더라도 개인정보 데이터 원본이 존재하지 않기에 유출의 피해가 없으며, 설령 처리되는 데이터가 일부 또는 전체가 노출되더라도 그 어떤 시스템이나 방법으로도 식별이 불가능하여, 궁극적으로 모든 악의적 상황을 무의미하게 만드는 정보처리시스템을 구현할 수 있다.
이상의 설명은 본 발명의 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시예들은 본 발명의 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 분산 처리 시스템
100: 사용자 단말 200: 데이터 분산 처리서버
210: 애플리케이션 서버 220: 코어 서버
300: 폐쇄형 분산네트워크 310: 블록 체인 노드
320: IPFS 노드 400: 히스토리 스토리지

Claims (15)

  1. 사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화부;
    비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성하고, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장되도록 하는 문서 조각 분할 처리부;
    상기 분산 저장 노드로부터 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성하는 제1 해시 처리부;
    상기 기밀 해시를 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할하는 해시 분할 처리부;
    상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시 각각을 사용자 단말과 블록체인 노드에 저장되도록 하는 분할 저장 처리부; 및
    상기 원시 데이터의 변화에 따라 생성된 타임 스템프를 기록하는 히스토리 기록 처리부
    를 포함하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  2. 제1항에 있어서,
    상기 암호화부는,
    상기 원시 데이터가 디지털 데이터로 변환이 가능한 조건인 데이터 입력 조건에 부합하는 경우 임의의 페이크 데이터를 생성하고, 상기 원시 데이터에 상기 페이크 데이터를 추가하여 생성된 디지털 코드를 암호화하여 상기 비식별 데이터를 생성하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  3. 제1항에 있어서,
    상기 제1 해시 처리부는,
    상기 분산 저장 노드 각각에 저장된 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하고, 호출된 N 개의 해시값을 1 개의 해시로 조합하여 생성된 1차 조합 해시(조각 인덱스 해시)를 기반으로 상기 기밀 해시를 생성하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  4. 제3항에 있어서,
    상기 제1 해시 처리부는,
    상기 1차 조합 해시의 해시값의 조합을 변경하는 재 해싱 과정을 수행하여 상기 기밀 해시(키 해시)를 생성하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  5. 제1항에 있어서,
    상기 해시 분할 처리부는,
    상기 기밀 해시를 서로 다른 길이를 갖도록 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시로 2 분할하되, 상기 제1 분할 기밀 해시의 길이가 상기 제2 분할 기밀 해시의 길이보다 크게 분할하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  6. 제1항에 있어서,
    상기 히스토리 기록 처리부는,
    사용자 별 유니크한 코드 값을 어카운트(account)로서 문서관리 이력의 최상위 루트(Root)에 기록하며,
    상기 어카운트 하위에 상기 원시 데이터의 업로드 시점, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하는 시점, 상기 1차 조합 해시(조각 인덱스 해시)가 생성되는 시점 및 상기 기밀 해시(키 해시)가 분할되어 배포되는 시점 중 적어도 하나의 시점에 대한 상기 타임 스템프를 기록하여 상기 원시 데이터의 업로드 이력을 제공하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  7. 제1항에 있어서,
    업로드된 원시 데이터에 대한 복원 요청이 입력되는 경우, 상기 기밀 해시를 복원하고, 복원된 상기 기밀 해시를 이용하여 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각들을 병합한 후 복호화하여 상기 원시 데이터를 복원하는 복원 처리부를 추가로 포함하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  8. 제7항에 있어서,
    상기 복원 처리부는,
    상기 사용자 단말과 상기 블록체인 노드 각각에 저장된 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시를 호출하는 해시 호출부;
    상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시를 병합하여 상기 기밀 해시를 복원하는 해시 병합 처리부;
    복원된 기밀 해시를 이용하여 분산 저장 노드에서 1차 조합 해시를 검색하고, 검색된 1차 조합 해시를 N 개(여기서, N은 자연수)의 해시값으로 분할하는 제2 해시 처리부;
    상기 N 개의 해시값을 이용하여 분산 저장 노드 각각에 저장된 비식별 데이터 조각에서 해시값과 매칭되는 조각을 검색하고, 검색된 상기 비식별 데이터 조각들을 병합하여 상기 비식별 데이터를 생성하는 문서 조각 병합 처리부; 및
    상기 비식별 데이터를 복호화한 후 상기 페이크 데이터를 제거하여 상기 원시 데이터를 복원하는 복호화부
    를 포함하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  9. 제8항에 있어서,
    상기 히스토리 기록 처리부는,
    상기 기밀 해시를 복원하는 시점, 상기 비식별 데이터 조각들을 병합하여 상기 비식별 데이터를 생성하는 시점, 상기 비식별 데이터를 복호화하고, 상기 페이크 데이터를 제거하여 상기 원시 데이터를 복원하는 시점 중 적어도 하나의 시점에 대한 상기 타임 스템프를 기록하여 상기 원시 데이터의 복원 이력을 제공하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리장치.
  10. 데이터 분산 처리장치에서 데이터 분산을 처리하는 방법에 있어서,
    사용자 단말로부터 입력된 원시 데이터에 임의로 생성한 페이크 데이터를 추가하고, 상기 페이크 데이터가 추가된 원시 데이터를 암호화하여 비식별 데이터를 생성하는 암호화 단계;
    비식별 데이터를 다수의 조각들로 분할하여 다수의 비식별 데이터 조각들을 생성하고, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하여 저장되도록 하는 문서 조각 분할 처리 단계;
    상기 분산 저장 노드로부터 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하여 기밀 해시를 생성하는 제1 해시 처리 단계;
    상기 기밀 해시를 제1 분할 기밀 해시와 제2 분할 기밀 해시로 분할하는 해시 분할 처리 단계;
    상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시 각각을 사용자 단말과 블록체인 노드에 저장되도록 하는 분할 저장 처리 단계; 및
    상기 원시 데이터의 변화에 따라 생성된 타임 스템프를 기록하는 히스토리 기록 처리 단계
    를 포함하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.
  11. 제10항에 있어서,
    상기 히스토리 기록 처리 단계는,
    상기 원시 데이터의 업로드 시점, 상기 비식별 데이터 조각들을 분산 저장 노드 각각에 분산 배포하는 시점, 상기 1차 조합 해시(조각 인덱스 해시)가 생성되는 시점 및 상기 기밀 해시(키 해시)가 분할되어 배포되는 시점 중 적어도 하나의 시점에 대한 상기 타임 스템프를 기록하여 상기 원시 데이터의 업로드 이력을 제공하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.
  12. 제10항에 있어서,
    업로드된 원시 데이터에 대한 복원 요청이 입력되는 경우, 상기 기밀 해시를 복원하고, 복원된 상기 기밀 해시를 이용하여 상기 분산 저장 노드 각각에 저장된 상기 비식별 데이터 조각들을 병합한 후 복호화하여 상기 원시 데이터를 복원하는 복원 처리 단계를 추가로 포함하되,
    상기 복원 처리 단계는,
    상기 사용자 단말과 상기 블록체인 노드 각각에 저장된 상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시를 호출하는 해시 호출 단계;
    상기 제1 분할 기밀 해시 및 상기 제2 분할 기밀 해시를 병합하여 상기 기밀 해시를 복원하는 해시 병합 처리 단계;
    복원된 기밀 해시를 이용하여 분산 저장 노드에서 1차 조합 해시를 검색하고, 검색된 1차 조합 해시를 N 개(여기서, N은 자연수)의 해시값으로 분할하는 제2 해시 처리 단계;
    상기 N 개의 해시값을 이용하여 분산 저장 노드 각각에 저장된 비식별 데이터 조각에서 해시값과 매칭되는 조각을 검색하고, 검색된 상기 비식별 데이터 조각들을 병합하여 상기 비식별 데이터를 생성하는 문서 조각 병합 처리 단계; 및
    상기 비식별 데이터를 복호화한 후 상기 페이크 데이터를 제거하여 상기 원시 데이터를 복원하는 복호화 단계를 포함하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.
  13. 제12항에 있어서,
    상기 히스토리 기록 처리 단계는,
    상기 기밀 해시를 복원하는 시점, 상기 비식별 데이터 조각들을 병합하여 상기 비식별 데이터를 생성하는 시점, 상기 비식별 데이터를 복호화하고, 상기 페이크 데이터를 제거하여 상기 원시 데이터를 복원하는 시점 중 적어도 하나의 시점에 대한 상기 타임 스템프를 기록하여 상기 원시 데이터의 복원 이력을 제공하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.
  14. 제10항에 있어서,
    상기 제1 해시 처리 단계는,
    상기 분산 저장 노드 각각에 저장된 비식별 데이터 조각에 매칭되는 N 개의 해시값을 각각 호출하고, 호출된 N 개의 해시값을 1 개의 해시로 조합하여 생성된 1차 조합 해시(조각 인덱스 해시)를 기반으로 상기 기밀 해시를 생성하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.
  15. 제14항에 있어서,
    상기 제1 해시 처리 단계는,
    상기 1차 조합 해시의 해시값의 조합을 변경하는 재 해싱 과정을 수행하여 상기 기밀 해시(키 해시)를 생성하는 것을 특징으로 하는 문서 관리를 위한 데이터 분산 처리방법.


KR1020190052182A 2019-05-03 2019-05-03 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치 KR20200127643A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190052182A KR20200127643A (ko) 2019-05-03 2019-05-03 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190052182A KR20200127643A (ko) 2019-05-03 2019-05-03 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치

Publications (1)

Publication Number Publication Date
KR20200127643A true KR20200127643A (ko) 2020-11-11

Family

ID=73451879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190052182A KR20200127643A (ko) 2019-05-03 2019-05-03 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치

Country Status (1)

Country Link
KR (1) KR20200127643A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354653B2 (en) * 2019-12-03 2022-06-07 Jpmorgan Chase Bank, N.A. Systems and methods for using distributed ledger micro reporting tools
KR20220079751A (ko) * 2020-12-04 2022-06-14 충북대학교 산학협력단 외부 스토리지를 이용한 블록체인 기반의 스마트 계약 시스템 및 방법
KR102423284B1 (ko) * 2021-11-15 2022-07-19 백종윤 분산형 파일 시스템 기반의 파일 분산 저장 시스템
KR20230079709A (ko) * 2021-11-29 2023-06-07 성균관대학교산학협력단 클라우드 서버 기반의 헬스케어 데이터 관리 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354653B2 (en) * 2019-12-03 2022-06-07 Jpmorgan Chase Bank, N.A. Systems and methods for using distributed ledger micro reporting tools
KR20220079751A (ko) * 2020-12-04 2022-06-14 충북대학교 산학협력단 외부 스토리지를 이용한 블록체인 기반의 스마트 계약 시스템 및 방법
KR102423284B1 (ko) * 2021-11-15 2022-07-19 백종윤 분산형 파일 시스템 기반의 파일 분산 저장 시스템
KR20230079709A (ko) * 2021-11-29 2023-06-07 성균관대학교산학협력단 클라우드 서버 기반의 헬스케어 데이터 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
US10762229B2 (en) Secure searchable and shareable remote storage system and method
CN106612285B (zh) 基于对等网络的分布式云数据管理方法及系统
KR20200127643A (ko) 문서 관리를 위한 데이터 분산 처리 방법 및 그를 위한 장치
US9037870B1 (en) Method and system for providing a rotating key encrypted file system
US9767299B2 (en) Secure cloud data sharing
CN104520873A (zh) 用于保护和恢复虚拟机的系统和方法
KR20190018869A (ko) 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법
KR20200121583A (ko) 데이터 비식별화처리를 이용한 데이터 분산처리 장치 및 방법
CN108777685B (zh) 用于处理信息的方法和装置
CN105095785A (zh) 分布式文件系统的文件访问处理、访问方法及装置
CN107533813B (zh) 数据库系统、数据库处理方法
US11120160B2 (en) Distributed personal data storage and encrypted personal data service based on secure computation
US10536276B2 (en) Associating identical fields encrypted with different keys
EP3605379A1 (en) Method and device for processing user information
CA3086236A1 (en) Encrypted storage of data
Krishnasamy et al. An efficient data flow material model based cloud authentication data security and reduce a cloud storage cost using Index-level Boundary Pattern Convergent Encryption algorithm
JP2019146088A (ja) 計算機システム、接続装置、及びデータ処理方法
Wale Amol et al. Data integrity auditing of cloud storage
WO2014141802A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
CN103379133A (zh) 一种安全可信的云存储系统
KR20160040399A (ko) 개인정보 관리 시스템 및 개인정보 관리 방법
CN110392035B (zh) 用于安全数据处理的系统和方法
Suthar et al. Encryscation: An secure approach for data security using encryption and obfuscation techniques for iaas and daas services in cloud environment
JP2018073064A (ja) ファイル分割・結合システム及びその方法
CN112800467B (zh) 基于数据隐私保护的在线模型训练方法、装置以及设备

Legal Events

Date Code Title Description
E601 Decision to refuse application