KR20080027660A - 전자문서 관리 장치 및 방법 - Google Patents

전자문서 관리 장치 및 방법 Download PDF

Info

Publication number
KR20080027660A
KR20080027660A KR1020060093079A KR20060093079A KR20080027660A KR 20080027660 A KR20080027660 A KR 20080027660A KR 1020060093079 A KR1020060093079 A KR 1020060093079A KR 20060093079 A KR20060093079 A KR 20060093079A KR 20080027660 A KR20080027660 A KR 20080027660A
Authority
KR
South Korea
Prior art keywords
hash
document
stored
node
hash value
Prior art date
Application number
KR1020060093079A
Other languages
English (en)
Other versions
KR100826250B1 (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 KR1020060093079A priority Critical patent/KR100826250B1/ko
Publication of KR20080027660A publication Critical patent/KR20080027660A/ko
Application granted granted Critical
Publication of KR100826250B1 publication Critical patent/KR100826250B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

전자문서의 위변조를 방지하면서 장기간 보전할 수 있는 전자문서 관리 장치 및 방법을 제시한다.
본 발명의 전자문서 관리 장치는, 해쉬 트리를 구성하는 각 노드에 대한 해쉬값을 계산하여 데이터베이스에 저장하는 해쉬 처리부, 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하는 전자서명 처리부, 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수를 데이터베이스에 저장하고 관리하며, 생성되는 해쉬 트리를 데이터베이스에 저장하는 해쉬 트리 관리부 및 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 메모리에 저장하고, 문서의 일련번호 및 해쉬값을 해쉬 트리에 추가한 후 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 문서 저장부를 포함하여, 저렴한 비용으로 방대한 양의 전자문서를 안전하게 보관 및 관리할 수 있다.
전자문서, 해쉬 트리

Description

전자문서 관리 장치 및 방법{Apparatus and Method for Management of Electronic Filing Document}
도 1은 본 발명의 일 실시예에 의한 전자문서 관리 장치의 구성도,
도 2는 본 발명에 의한 전자문서 저장 구조를 설명하기 위한 도면,
도 3은 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도,
도 4a 내지 4e는 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면,
도 5는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도,
도 6a 내지 6f는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면,
도 7은 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 흐름도,
도 8a 및 8b는 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 도면,
도 9는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 흐 름도,
도 10a 및 10b는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 도면,
도 11은 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 흐름도,
도 12a 및 12b는 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 도면이다.
<도면의 주요 부분에 대한 부호 설명>
10 : 전자문서 관리 장치 102 : 제어부
104 : 인터페이스 106 : 메모리
108 : 데이터베이 110 : 메타 데이터 데이터베이스
112 : 해쉬 트리 데이터베이스 114 : 해쉬 처리부
116 : 전자서명 처리부 118 : 해쉬 트리 관리부
120 : 문서 저장부 122 : 문서 인출부
124 문서 삭제부
본 발명은 전자문서 관리 장치 및 방법에 관한 것으로, 보다 구체적으로는 전자문서의 위변조를 방지하면서 장기간 보전할 수 있는 전자문서 관리 장치 및 방 법에 관한 것이다.
최근 들어 공공기관, 금융기관 등에서는 업무 처리의 결과로 발생되는 문서를 전자문서화하여 저장하고 있다. 전자문서는 위조, 변조, 부적법한 열람이나 삭제가 이루어지지 않도록 안전하게 저장하여야 하며, 이러한 취지에 따라 WORM(Write Only, Read Many) 스토리지에 전자문서를 저장하고 있다.
WORM 스토리지는 사용자가 한번 데이터를 기록할 수는 있으나, 한번 기록된 데이터를 소거하거나 갱신하는 것은 불가능한 성질을 갖는 디스크를 의미한다. WORM은 수백 MB에서 수 GB의 용량을 갖는 대용량 기억매체이며, 한번 기록된 데이터는 삭제하거나 변경할 수 없기 때문에 보전 의무가 있는 데이터 또는, 실수로 삭제하거나 변경하면 곤란한 데이터를 보관하는 데 주로 사용된다.
그런데 WORM 스토리지는 고가이기 때문에 일부 업체에서만 이용하고 있을 뿐, 상용화하기 어려운 문제가 있다.
또한, 현재는 전자문서를 저장할 때, 각 전자문서에 대하여 전자서명을 수행하여 위변조를 방지하고 있는데, 전자문서 유효기간이 만료되는 경우 모든 전자문서에 대한 전자서명을 갱신해야 하기 때문에, 그 처리 과정이 복잡하게 되는 단점이 있다.
본 발명은 상술한 문제점 및 단점을 해결하기 위하여 안출된 것으로서, 고가의 WORM 스토리지를 대체하여, 저렴한 비용으로 전자문서를 안전하게 보관 및 관리할 수 있는 전자문서 관리 장치 및 방법을 제공하는 데 그 기술적 과제가 있다.
본 발명의 다른 기술적 과제는 해쉬 트리를 이용하여 전자문서를 보관함으로써, 루트 노드에 대한 전자서명만으로 전자 문서를 안전하게 보관 및 관리할 수 있으며, 전자서명 갱신 과정을 간단히 하는 데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 의한 전자문서 보관 장치는 전체적인 동작을 제어하는 제어부; 인터페이스; 해쉬 처리된 전자문서가 저장되는 메모리; 해쉬 트리 및 해쉬 트리 관련 정보가 저장되는 데이터베이스; 해쉬 트리를 구성하는 각 노드에 대한 해쉬값을 계산하여 상기 데이터베이스에 저장하는 해쉬 처리부; 상기 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하는 전자서명 처리부; 상기 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수를 상기 데이터베이스에 저장하고 관리하며, 생성되는 해쉬 트리를 상기 데이터베이스에 저장하는 해쉬 트리 관리부; 및 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 상기 메모리에 저장하고, 상기 문서의 일련번호 및 해쉬값을 상기 해쉬 트리에 추가한 후 상기 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 문서 저장부;를 포함한다.
또한, 본 발명의 일 실시예에 의한 전자문서 저장 방법은 운용자가 전자문서를 저장하고자 함에 따라, 상기 저장하고자 하는 문서에 대한 해쉬값을 계산하는 제 1 단계; 기 생성되어 있는 해쉬 트리가 존재하는 경우 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인하는 제 2 단계; 상기 선택한 해쉬 트리에 빈 리프 노드가 존재하는 경우, 최종적으로 데이터가 저장된 리프 노트의 인덱스(최종 인덱스)가 2의 멱승인지 확인하는 제 3 단계; 상기 최종 인덱스가 2의 멱승인 경우 최종 인덱스 개수만큼의 빈 리프 노드를 생성하는 제 4 단계; 최종 인덱스의 다음 인덱스에 해당하는 리프 노드에 문서 일련번호 및 상기 제 1 단계에서 계산한 해쉬값을 저장하고, 상기 문서를 메모리에 저장하는 제 5 단계; 상기 리프 노드의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 제 6단계; 상기 루트 노드의 해쉬값에 대하여 전자서명을 수행하는 제 7 단 계;를 포함한다.
아울러, 본 발명의 다른 실시예에 의한 전자문서 저장 방법은 운용자가 복수의 전자문서를 일괄 저장하고자 함에 따라, 상기 저장하고자 하는 문서 각각에 대한 해쉬값을 계산하는 제 1 단계; 기 생성되어 있는 해쉬 트리가 존재하는 경우 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인하는 제 2 단계; 상기 선택한 해쉬 트리에 빈 리프 노드가 존재하는 경우, 최종적으로 데이터가 저장된 리프 노트의 인덱스(최종 인덱스)가 홀수인지 확인하는 제 3 단계; 상기 최종 인덱스가 홀수인 경우 최종 인덱스의 다음 인덱스에, 추가하고자 하는 첫번째 전자문서에 대한 문서 일련번호 및 상기 전자문서에 대해 제 1 단계에서 계산한 해쉬값을 저장하고 최종 인덱스를 갱신하는 제 4 단계; 상기 제 4 단계에서 저장한 해쉬값을 제외하고 남아 있는 해쉬값 및 해당 문서의 일련번호를 이용하여 깊이가 2인 해쉬 트리를 생성하는 제 5 단계; 상기 최종 인덱스가 2의 홀수배인지 확인하는 제 6 단계; 상기 최종 인덱스가 2의 홀수배인 경우, 상기 제 5 단계에서 생성한 깊이 2인 해쉬 트리 중 하나를 기 생성되어 있는 해쉬 트리에 추가하고 최종 인덱스를 2증가시켜 갱신하는 제 7 단계; 상기 제 5 단계에서 생성한 깊이 2인 해쉬 트리 중, 상기 제 7 단계에서 사용한 해쉬트리를 제외한 해쉬트리를 이용하여 깊이가 3인 해쉬 트리를 생성하는 제 8 단계; 상기 제 8 단계에서 생성한 해쉬 트리를 상기 제 7 단계에서 갱신된 해쉬 트리에 추가하는 제 9 단계; 상기 리프 노드의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 제 10단계; 및 상기 루트 노드의 해쉬값에 대하여 전자서명을 수행하는 제 11 단계;를 포함한다.
그리고, 본 발명의 일 실시예에 의한 전자 문서 인출 방법은 운용자로부터 인출하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 상기 문서 일련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계; 상기 검색한 해쉬 트리에 대하여, 상기 문서 일련번호가 저장된 리프 노드 및 상기 리프 노드와 연결된 루트 노드를 포함하는 모든 경로 상의 해쉬값을 인출하고, 상기 인출된 해쉬값의 인접 노드들에 대한 해쉬값을 인출하는 제 2 단계; 상기 루트 노드 해쉬값에 대한 전자서명값을 검증하는 제 3 단계; 상기 루트 노드로부터 상기 리프 노드까지 순차적으로 각 노드에 대한 해쉬값을 산출하는 제 4 단계; 및 상기 산출된 리프 노드에 대한 해쉬값을 이용하여 해당 문서를 인출하는 제 5 단계;를 포함한다.
한편, 본 발명의 일 실시예에 의한 전자 문서 삭제 방법은 운용자로부터 삭제하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 상기 문서 일 련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계; 상기 검색한 해쉬 트리의 리프 노드에 삭제하고자 하는 인덱스가 존재하는지 확인하는 제 2 단계; 삭제하고자 하는 인덱스가 존재하는 경우 해당 리프 노드를 빈 리프 노드로 갱신하고, 메모리에 저장된 해당 전자문서를 삭제하는 제 3 단계; 및 상기 리프 노드의 상위 노드로부터 루트 노드까지 해쉬값을 갱신하고, 상기 루트 노드 해쉬값에 대하여 전자서명을 수행하는 제 4 단계;를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 구체적으로 설명하기로 한다.
이하의 설명에서, 문서 일련번호는 문서 저장 순서에 따라 단조 증가하는 정수로서 예를들어, 1, 2, 3, … 과 같이 부여되며, 문서 일련번호는 해쉬 트리 리프 노드의 인덱스와 동일한 값을 갖는 것으로 정의한다. 또한, 해쉬 트리의 최대 허용 깊이는 n(2보다 큰 정수), 해쉬 트리의 깊이는 k라 명명할 것이며, 해쉬 트리 일련번호(t)는 생성되는 순서에 따라 단조 증가하는 정수가 부여된다.
도 1은 본 발명의 일 실시예에 의한 전자문서 관리 장치의 구성도이다.
도시한 것과 같이, 본 발명의 전자문서 관리 장치(10)는 전체적인 동작을 제어하는 제어부(102), 운용자가 전자문서 관리 장치(10)를 조작하도록 하고, 전자문서 관리 장치(10)의 처리 결과를 운용자에게 제공하기 위한 인터페이스(104), 해쉬처리된 전자문서 등이 저장되는 메모리(106), 해쉬 트리 및 관련 정보가 저장되는 데이터베이스(108), 해쉬 처리부(114), 전자서명 처리부(116), 해쉬 트리 관리부(118), 문서 저장부(120), 문서 인출부(122) 및 문서 삭제부(124)를 포함한다.
본 발명에 적용되는 해쉬 트리는 깊이가 예를 들어 n라 할 때, 문서 일련번호와 각 문서에 대한 해쉬값을 저장하는 2n-1개의 리프(leaf) 노드, 인접하는 두 개의 하위 노드로부터 계산되는 해쉬값을 저장하는 1차 내지 n-2차 상위 노드 및 인접하는 두 개의 n-1차 상위노드로부터 계산되는 해쉬값을 저장하는 1개의 루트(root) 노드를 포함하고, 루트 노드에 저장되는 해쉬값은 전자서명된 상태로 저장된다.
도 1에 도시한 구성요소들에 대해 구체적으로 설명하면 다음과 같다.
먼저, 해쉬 처리부(114)는 해쉬 트리의 각 노드(리프노드, 상위 노드, 루트 노드)에 대한 해쉬값을 계산하고, 이를 해쉬 트리 데이터베이스(112)에 저장한다.
전자서명 처리부(116)는 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하며, 전자서명의 유효기간 만료시 루트 노드에 저장된 해쉬값에 대한 전자서명을 갱신한다.
전자서명은 예를 들어 시점확인 프로토콜(Time Stamp Protocol; TSP)을 이용할 수 있다. TSP는 시점확인 관리자(Time Stamp Authority; TSA)와 요청자 사이에 시점확인을 위한 토큰을 주고받는 시점 확인 서비스를 위한 규격으로, 어떤 데이터가 특정 시간 이전에 존재했음을 뒷받침해 주기 위해 사용되는 프로토콜이다.
해쉬 트리 관리부(118)는 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수 등을 메타 데이터 DB(110)에 저장하고, 해쉬 트리를 해쉬 트리 DB(112)에 저장한다. 아울러, 해쉬 트리 관리 부(118)는 인접하는 두 해쉬 트리에 대하여, 데이터가 저장된 리프 노드의 수의 합이 하나의 해쉬 트리에서 허용 가능한 총 리프 노드의 수 이하인 경우, 두 해쉬 트리를 병합하는 역할 또한 수행할 수 있다.
문서 저장부(120)는 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 메모리(106)에 저장하고, 해당 문서의 일련번호 및 해쉬값을 해쉬 트리에 추가한 후 상위 노드로부터 루트 노드까지의 해쉬값을 갱신한다.
문서 인출부(122)는 운용자가 인출 요청한 문서 일련번호를 참조하여, 해쉬 트리로부터 해쉬값을 검색하고, 이를 이용하여 메모리(106)에 저장된 문서를 추출하여 제공한다.
아울러, 문서 삭제부(124)는 운용자가 삭제 요청한 문서에 대한 해쉬값이 저장된 해쉬 트리를 검색하여, 검색된 해쉬 트리로부터 해당 문서에 대한 해쉬값이 저장된 리프 노드를 삭제하고, 리프 노드가 삭제된 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신한다. 문서 저장, 인출 및 삭제를 위한 구체적인 절차는 도 3 내지 도 12를 참조하여 후술할 것이다.
도 2는 본 발명에 의한 전자문서 저장 구조를 설명하기 위한 도면이다.
도 2에서 해쉬 트리(20)의 깊이(k)는 3이고, 리프(leaf) 노드의 개수는 2k-1개 즉, 4개이다. 각각의 리프 노드(22a, 22b, 22c, 22d)에는 문서 일련번호 및 해당 문서에 대한 해쉬값이 저장되고, 1차 상위노드(24a, 24b)에는 인접하는 두 리프 노드(22a-22b, 22c-22d)의 해쉬값으로부터 계산되는 해쉬값이 저장된다.
아울러, 루트 노드(26)에는 인접하는 두 개의 1차 상위 노드(24a, 24b)의 해쉬값으로부터 계산되는 해쉬값이 전자서명된 상태로 저장된다.
본 발명에서는 루트 노드의 해쉬값에 대해서만 전자서명을 수행하기 때문에, 전자서명 유효기간 만료시 모든 전자문서에 대한 전자서명을 갱신하는 것이 아니라, 루트 노드에 대한 전자서명만을 갱신하게 되므로, 전자서명 갱신 절차를 간단화할 수 있다.
도 3은 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도이고, 도 4a 내지 4e는 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면이다.
운용자가 전자문서를 저장하고자 함에 따라, 해쉬 처리부(114)는 저장하고자 하는 문서에 대한 해쉬값을 계산한다(S101).
이후, 문서 저장부(118)는 메타 데이터 DB(110)를 참조하여, 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인한다(S103). 즉, 선택한 해쉬 트리에 대하여 최종적으로 데이터가 저장된 리프 노드의 인덱스(문서 일련번호)가 총 리프 노드의 수(2n-1)보다 작은지 확인하는 것이다.
도 4a는 깊이가 2인 해쉬 트리를 나타내며, 최종적으로 데이터가 저장된 리프 노드의 인덱스가 2이며, 최종적으로 데이터가 저장된 리프 노드의 인덱스(index=2)가 2n-1보다 작은 것을 알 수 있다. 즉, 해당 해쉬 트리에 데이터를 추 가할 여분의 리프 노드가 존재하는 것이다.
이와 같이, 여분의 리프 노드가 존재함을 확인한 후에는 최종적으로 데이터가 저장된 리프 노트의 인덱스가 2의 멱승인지 확인하여(S105), 2의 멱승인 경우에는 최종 인덱스 개수만큼의 빈 리프 노드를 생성한다. 즉, 새로운 리프 노드를 생성함으로써 1차 상위 노드가 생성된 후, 이미 존재하고 있는 1차 상위 노드(34)에 저장된 해쉬값과 새롭게 생성된 1차 상위 노드에 저장된 해쉬값을 이용하여 2차 상위 노드에 해쉬값을 저장할 수 있도록 하는 것이다.
도 4b를 참조하면, 최종 인덱스가 2이므로, 2개의 빈 리프 노드(32c, 32d)를 생성한 것을 알 수 있다.
다음으로, 최종 인덱스의 다음 리프 노드(도 4b의 32c)에 단계 S101에서 계산한 해쉬값과 문서 일련번호를 저장하는 한편(S109), 메모리(106)에 추가하고자 하는 문서를 저장한다(S111).
이후, 리프 노드의 상위 노드에 대한 해쉬값을 갱신하는데, 도 4c에 도시한 것과 같이, 인접하는 두 리프 노드(32c, 32d)의 해쉬값을 이용하여 1차 상위 노드(34a)에 대한 해쉬값을 갱신하고, 이미 존재하고 있는 1차 상위 노드(34)와 새롭게 생성된 1차 상위 노드(34a)에 대한 해쉬값을 이용하여 2차 상위 노드(36)에 대한 해쉬값을 갱신하는 것이다. 이러한 해쉬값 갱신 과정은 루트 노드의 해쉬값을 갱신할 때까지 반복 수행된다(S113, S115).
그리고, 루트 노드에 대한 해쉬값이 갱신된 후에는 루트 노드 해쉬값에 대하여 전자서명을 수행한다(S117).
한편, 단계 S103의 확인 결과 여분의 빈 리프 노드가 존재하지 않는 경우에는 깊이(k)가 2인 새로운 해쉬 트리를 생성하고(S119), 생성된 해쉬 트리의 첫번째 리프 노드 즉, 인덱스가 1인 리프노드에 단계 S101에서 계산한 해쉬값 및 문서 일련번호를 저장한다(S121).
아울러, 단계 S105의 확인 결과, 최종 인덱스가 2의 멱승이 아닌 경우에는 단계 S109로 진행하고 그 이후의 과정을 수행한다. 도 4d를 참조하면, 최종으로 데이터가 저장된 리프 노드(32a)의 인덱스가 1이므로, 단계 S109에서 인덱스를 1 증가시키고, 도 4e에 도시한 것과 같이 인덱스 2 즉, 리프 노드(32b)에 단계 S101에서 계산한 해쉬값 및 문서 일련번호를 저장한 후, 상위 노드(34)의 해쉬값을 갱신하는 것이다.
도 3 및 도 4에서는 개별 문서를 추가하는 경우에 대하여 설명하였으나, 복수의 문서를 추가할 경우 상기와 같은 과정을 수행하게 되면, 계속해서 해쉬값을 갱신하는 등의 문제로 문서 추가를 위한 처리 시간이 지연되게 된다. 따라서, 복수의 문서를 배치(batch) 처리하여 추가하는 방안이 필요하며, 이에 대하여 도 5 및 도 6을 참조하여 설명하면 다음과 같다.
도 5는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도이고, 도 6a 내지 6f는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면이다.
먼저, 운용자가 복수의 전자문서를 저장하고자 함에 따라, 해쉬 처리부(114)는 저장하고자 하는 문서 각각에 대한 해쉬값을 계산한다(S201).
이후, 문서 저장부(118)는 메타 데이터 DB(110)를 참조하여, 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인한다(S203). 즉, 선택한 해쉬 트리에 대하여 최종적으로 데이터가 저장된 리프 노드의 인덱스가 총 리프 노드의 수(2n-1)보다 작은지 확인하는 것이다.
선택한 해쉬 트리에 데이터를 추가할 여분의 리프 노드가 존재하는 경우에는 최종 인덱스가 홀수인지 확인하여(S205), 최종 인덱스가 홀수인 경우 최종 인덱스의 다음 인덱스에 단계 S201에서 계산한 해쉬값 중 첫번째 해쉬값과 문서 일련번호를 저장한 다음, 최종 인덱스를 갱신한다(S207, S209).
도 6a를 참조하면, 최종 인덱스가 1로 홀수인 것을 알 수 있고, 이 경우 도 6b에 도시한 것과 같이 인덱스가 2 인 리프 노드(42b)에 해쉬값 및 문서 일련번호를 저장한 다음, 최종 인덱스를 2로 갱신한다.
다음에, 단계 S207에서 저장한 해쉬값을 제외하고 남아 있는 해쉬값 및 해당 문서의 일련번호를 이용하여 깊이(k)가 2인 해쉬 트리를 생성한다(S211)(도 6c 참조).
그리고, 최종 인덱스가 2의 홀수배인지 확인한다(S213). 도 6b에서 최종 인덱스는 2로 갱신되었으며, 2=2*1 즉, 2의 홀수배인 것을 알 수 있다. 최종 인덱스가 2의 홀수배인지 확인하는 과정은, 문서를 추가하기 전 기 저장된 문서의 해쉬값을 저장하고 있는 리프 노드의 해쉬값으로부터 계산된 2차 상위 노드(46)의 해쉬값이, 새로운 리프 노드를 추가함에 따라 갱신될 필요가 있는지 확인하는 과정이다.
최종 인덱스가 2의 홀수배인 경우에는 단계 S211에서 생성한 깊이 2인 트리 중 하나를 해쉬 트리에 추가한다(S215). 도 6d를 참조하면, 도 6c에서 생성한 깊이 2인 해쉬 트리(52, 54, 56) 중 하나(52)가 도 6a에 도시한 해쉬 트리에 추가된 것을 알 수 있다.
깊이 2인 해쉬 트리를 추가한 후에는 인덱스를 2 증가시킨 값으로 갱신한다. 본 실시예에서는 인덱스가 4로 갱신된다.
이후, 단계 S211에서 생성한 깊이 2인 해쉬 트리를 이용하여 깊이가 3인 해쉬 트리를 생성한다(S219). 도 6e를 참조하면, 도 6c에서 생성된 해쉬 트리 중 도 6d에 사용된 해쉬 트리를 제외한 나머지 해쉬 트리(54, 56)를 이용하여 깊이 3인 해쉬 트리(64)가 생성된 것을 알 수 있다.
그리고, 단계 S219에서 생성한 해쉬 트리(64)를 단계 S215에서 생성한 해쉬 트리(62)에 추가하여 도 6f와 같은 해쉬 트리를 생성한 다음(S221), 추가할 각각의 문서를 메모리(106)에 저장한다(S223).
다음에, 인접하는 두 리프 노드의 해쉬값으로부터 상위 노드의 해쉬값을 갱신하며, 이러한 과정을 루트 노드까지 반복 수행한다(S225, S227). 루트 노드(34)의 해쉬값을 갱신한 후에는 루트 노드의 해쉬값에 대해 전자 서명을 수행한다(S229).
한편, 단계 S203의 확인 결과 여분의 리프 노드가 존재하지 않는 경우에는 새로운 해쉬 트리를 생성한다(S231). 이때, 추가하고자 하는 문서의 개수가 해쉬 트리의 최대 허용 깊이(n)보다 큰 경우에는 2n-1개 단위로 문서를 추가한다.
아울러, 단계 S213의 확인 결과 최종 인덱스가 2의 홀수배가 아닌 경우 즉, 최종 인덱스가 2의 짝수배인 경우에는 단계 S219로 진행하여 이후의 과정을 수행한다. 그리고, 단계 S205의 확인 결과 최종 인덱스가 홀수가 아닌 경우 단계 S211로 진행하여 이후의 과정을 수행한다.
도 7은 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 흐름도이고, 도 8a 및 8b는 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 도면이다.
인출하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 해당 일련번호를 갖는 문서의 해쉬값이 저장된 해쉬 트리를 검색한다(S301).
여기에서, 인출하고자 하는 해쉬값을 포함하는 해쉬 트리를 검색하기 위해서는 [수학식 1]을 만족하는 정수 t를 산출한다.
[수학식 1]
(t-1)2n-1 < 문서 일련번호 < t2n-1
t는 해쉬 트리의 일련번호이고, n은 해쉬 트리의 최대 깊이를 의미한다.
도 8a를 참조하면, 문서 일련번호가 6이고, 해쉬 트리의 최대 깊이는 3이므로, 1.5보다 크고 2.5보다 작은 정수 t는 2가 되어, 해쉬트리 2의 리프 노드 인덱스 6에 문서 일련번호 6에 해당하는 해쉬값이 저장되어 있음을 알 수 있다.
다음, 해당 리프 노드와 연결된 모든 경로 상의 해쉬값을 인출하고(S303), 인출된 해쉬값의 인접 노드들에 대한 해쉬값 또한 인출한다(S305)(도 8b 참조).
그리고, 루트 노드의 전자서명값을 검증한 다음(S307), 적법한 것으로 확인되는 경우 루트 노드로부터 해당 리프 노드까지 순차적으로 내려가면서 각 노드에 대한 해쉬값을 역으로 산출한다(S309).
해당 리프 노드에 대한 해쉬값이 산출되면, 이를 이용하여 메모리(106)로부터 해당 문서를 인출하고(S311), 인출한 문서 및 전자서명값을 반환한다(S313).
도 9는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 흐름도이고, 도 10a 및 10b는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 도면이다.
운용자가 삭제하고자 하는 문서 일련번호 즉, 해쉬 트리의 리프 노드 인덱스를 지정함에 따라, 상기한 [수학식 1]의 방법에 의해 해당 인덱스를 포함하고 있는 해쉬 트리를 검색한다(S401).
그리고, 검색된 해쉬 트리의 리프 노드에 삭제하고자 하는 인덱스가 존재하는지 확인하여(S403), 존재하는 경우 해당 리프 노드를 빈 리프 노드로 갱신하고 메모리(106)에서 해당 문서를 삭제한다(S405).
리프 노드값이 변경되었으므로, 상위 노드로부터 루트 노드까지 해쉬값을 갱신하며(S407, S409), 루트 노드에 대한 해쉬값을 갱신한 후에는 루트 노드 해쉬값에 대하여 전자서명을 수행한다(S411).
도 10a를 참조하면, 인덱스 2에 대한 문서를 삭제하고자 하는 경우, 해당 인덱스를 도 10b와 같이 빈 리프 노드로 변경한 후, 상위 노드로부터 루트 노드까지 의 해쉬값을 갱신한다.
이와 같이 문서를 삭제함에 따라, 해쉬 트리의 리프 노드 빈 리프 노드로 갱신되게 되며, 문서 추가시 이러한 빈 리프 노드를 이용하는 것이 데이터 관리 측면에서 효율적이다. 그런데, 복수의 전자 문서를 추가하는 경우에는 빈 리프 노드 하나하나 마다 문서를 추가하는 것이 비효율적일 수 있으므로, 병합 가능한 해쉬 트리는 병합해 두는 것이 바람직하다.
도 11은 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 흐름도이고, 도 12a 및 12b는 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 도면이다.
먼저, 인접하는 두 해쉬 트리의 사이즈를 확인한다(S501). 즉, 일련번호가 t-1인 해쉬 트리와 일련번호가 t인 해쉬 트리 각각에 대하여 데이터가 저장된 리프 노드가 몇 개인지 확인하는 것이다.
그리고, 두 해쉬 트리 사이즈의 합이 총 리프 노드의 수(2n-1) 이하인지 확인한다(S503).
도 12a를 참조하면, 깊이 3인 해쉬 트리 t-1의 사이즈는 2이고, 깊이 3인 해쉬 트리 t의 사이즈는 1로, 두 해쉬 트리 사이즈의 합(3)이 총 리프 노드의 수(4)보다 작은 것을 알 수 있다.
이와 같이, 두 해쉬 트리 사이즈의 합이 총 리프 노드의 수 이하인 경우에는, 데이터가 저장된 리프 노드들을 기 저장된 순서를 유지하면서 재배열하고(도 12b 참조)(S505), 총 리프 노드의 수(2n-1)에서 두 해쉬 트리 사이즈를 감산한 만큼의 빈 리프 노드를 추가한다(도 12b의 경우 1개의 빈 리프 노드 추가)(S507).
다음, 해쉬 트리의 일련번호를 t-1로 갱신하고, 상위 노드로부터 루트 노드에 이르기까지의 해쉬값을 갱신한 다음(S511, S513), 루트 노드 해쉬값에 대한 전자서명을 수행한다(S515).
그리고, 타 해쉬 트리로 병합되어 모든 리프 노드가 빈 리프 노드가 된 해쉬 트리 t를 삭제한다(S517).
이와 같이 함으로써, 해쉬 트리의 수가 불필요하게 증가하는 것을 방지할 수 있음은 물론, 전자 문서를 일련번호에 따라 체계적으로 관리할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 의하면, 저렴한 비용으로 방대한 양의 전자문서를 안전하게 보관 및 관리할 수 있다.
아울러, 해쉬 트리 구조의 루트 노드에 대해서만 전자서명을 수행하기 때문에, 전자서명 유효 기간 만료시 루트 노드에 대한 전자서명을 갱신하는 것 만으로 모든 전자문서에 대한 위조 또는 변조를 방지할 수 있다.

Claims (19)

  1. 전체적인 동작을 제어하는 제어부;
    인터페이스;
    해쉬 처리된 전자문서가 저장되는 메모리;
    해쉬 트리 및 해쉬 트리 관련 정보가 저장되는 데이터베이스;
    해쉬 트리를 구성하는 각 노드에 대한 해쉬값을 계산하여 상기 데이터베이스에 저장하는 해쉬 처리부;
    상기 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하는 전자서명 처리부;
    상기 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수를 상기 데이터베이스에 저장하고 관리하며, 생성되는 해쉬 트리를 상기 데이터베이스에 저장하는 해쉬 트리 관리부; 및
    운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 상기 메모리에 저장하고, 상기 문서의 일련번호 및 해쉬값을 상기 해쉬 트리에 추가한 후 상기 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 문서 저장부;
    를 포함하는 것을 특징으로 하는 전자문서 관리 장치.
  2. 제 1 항에 있어서,
    상기 전자문서 관리 장치는, 운용자가 인출 요청한 문서 일련번호를 참조하 여, 상기 해쉬 트리로부터 인출 요청한 문서에 대한 해쉬값을 검색하고, 검색한 해쉬값을 이용하여 상기 메모리에 저장된 문서를 추출하는 문서 인출부를 더 포함하는 것을 특징으로 하는 전자문서 관리 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 전자문서 관리 장치는, 운용자가 삭제 요청한 문서에 대한 해쉬값이 저장된 해쉬 트리를 검색하여, 검색된 해쉬 트리로부터 삭제 요청된 문서에 대한 해쉬값이 저장된 리프 노드를 삭제하고, 리프 노드가 삭제된 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하며, 상기 삭제 요청된 문서에 대한 해쉬값을 이용하여 상기 메모리로부터 상기 삭제 요청된 문서를 삭제하는 문서 삭제부를 더 포함하는 것을 특징으로 하는 전자문서 관리 장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 해쉬 트리 관리부는, 인접하는 두 해쉬 트리에 대하여, 데이터가 저장된 리프 노드의 수의 합이 하나의 해쉬 트리에서 허용 가능한 총 리프 노드의 수 이하인 경우, 상기 인접하는 두 해쉬 트리를 병합하는 것을 특징으로 하는 전자문서 관리 장치.
  5. 제 1 항에 있어서,
    상기 전자서명은 시점확인 프로토콜(Time Stamp Protocol; TSP)을 이용하여 수행하는 것을 특징으로 하는 전자문서 관리 장치.
  6. 저장되는 문서에 대한 해쉬값 및 문서 일련번호가 리프 노드에 저장되며, 인접하는 두 하위 노드에 저장된 해쉬값에 따라 상위 노드로부터 루트 노드까지의 해쉬값이 저장되며, 상기 루트 노드에 저장된 해쉬값이 전자서명되어 저장되는 해쉬 트리 구조의 전자문서 관리 방법으로서,
    운용자가 전자문서를 저장하고자 함에 따라, 상기 저장하고자 하는 문서에 대한 해쉬값을 계산하는 제 1 단계;
    기 생성되어 있는 해쉬 트리가 존재하는 경우 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인하는 제 2 단계;
    상기 선택한 해쉬 트리에 빈 리프 노드가 존재하는 경우, 최종적으로 데이터가 저장된 리프 노트의 인덱스(최종 인덱스)가 2의 멱승인지 확인하는 제 3 단계;
    상기 최종 인덱스가 2의 멱승인 경우 최종 인덱스 개수만큼의 빈 리프 노드를 생성하는 제 4 단계;
    최종 인덱스의 다음 인덱스에 해당하는 리프 노드에 문서 일련번호 및 상기 제 1 단계에서 계산한 해쉬값을 저장하고, 상기 문서를 메모리에 저장하는 제 5 단계;
    상기 리프 노드의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 제 6단계;
    상기 루트 노드의 해쉬값에 대하여 전자서명을 수행하는 제 7 단계;
    를 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  7. 제 6 항에 있어서,
    상기 제 2 단계의 확인 결과 빈 리프 노드가 존재하지 않는 경우, 깊이가 2인 해쉬 트리를 생성하는 제 8 단계; 및
    상기 제 8 단계에서 생성한 해쉬 트리의 첫번째 리프 노드에 문서 일련번호 및 상기 제 1 단계에서 계산한 해쉬값을 저장하는 제 9 단계;
    를 더 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  8. 제 6 항에 있어서,
    상기 제 3 단계의 확인 결과, 최종 인덱스가 2의 멱승이 아닌 경우, 상기 제 5 단계로 분기하는 것을 특징으로 하는 전자문서 관리 방법.
  9. 저장되는 문서에 대한 해쉬값 및 문서 일련번호가 리프 노드에 저장되며, 인접하는 두 하위 노드에 저장된 해쉬값에 따라 상위 노드로부터 루트 노드까지의 해쉬값이 저장되며, 상기 루트 노드에 저장된 해쉬값이 전자서명되어 저장되는 해쉬 트리 구조의 전자문서 관리 방법으로서,
    운용자가 복수의 전자문서를 일괄 저장하고자 함에 따라, 상기 저장하고자 하는 문서 각각에 대한 해쉬값을 계산하는 제 1 단계;
    기 생성되어 있는 해쉬 트리가 존재하는 경우 일련번호가 가장 큰 해쉬 트리 를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인하는 제 2 단계;
    상기 선택한 해쉬 트리에 빈 리프 노드가 존재하는 경우, 최종적으로 데이터가 저장된 리프 노트의 인덱스(최종 인덱스)가 홀수인지 확인하는 제 3 단계;
    상기 최종 인덱스가 홀수인 경우 최종 인덱스의 다음 인덱스에, 추가하고자 하는 첫번째 전자문서에 대한 문서 일련번호 및 상기 전자문서에 대해 제 1 단계에서 계산한 해쉬값을 저장하고 최종 인덱스를 갱신하는 제 4 단계;
    상기 제 4 단계에서 저장한 해쉬값을 제외하고 남아 있는 해쉬값 및 해당 문서의 일련번호를 이용하여 깊이가 2인 해쉬 트리를 생성하는 제 5 단계;
    상기 최종 인덱스가 2의 홀수배인지 확인하는 제 6 단계;
    상기 최종 인덱스가 2의 홀수배인 경우, 상기 제 5 단계에서 생성한 깊이 2인 해쉬 트리 중 하나를 기 생성되어 있는 해쉬 트리에 추가하고 최종 인덱스를 2증가시켜 갱신하는 제 7 단계;
    상기 제 5 단계에서 생성한 깊이 2인 해쉬 트리 중, 상기 제 7 단계에서 사용한 해쉬트리를 제외한 해쉬트리를 이용하여 깊이가 3인 해쉬 트리를 생성하는 제 8 단계;
    상기 제 8 단계에서 생성한 해쉬 트리를 상기 제 7 단계에서 갱신된 해쉬 트리에 추가하는 제 9 단계;
    상기 리프 노드의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 제 10단계; 및
    상기 루트 노드의 해쉬값에 대하여 전자서명을 수행하는 제 11 단계;
    를 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  10. 제 9 항에 있어서,
    상기 제 3 단계의 확인 결과, 상기 최종 인덱스가 홀수가 아닌 경우 상기 제 5 단계로 분기하는 것을 특징으로 하는 전자문서 관리 방법.
  11. 제 9 항에 있어서,
    상기 제 6 단계의 확인 결과, 상기 최종 인덱스가 2의 홀수배가 아닌 경우 상기 제 8 단계로 분기하는 것을 특징으로 하는 전자문서 관리 방법.
  12. 제 9 항에 있어서,
    제 2 단계의 확인 결과 빈 리프 노드가 존재하지 않는 경우 새로운 해쉬 트리를 생성하여 문서를 추가하는 제 12 단계를 더 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  13. 저장되는 문서에 대한 해쉬값 및 문서 일련번호가 리프 노드에 저장되며, 인접하는 두 하위 노드에 저장된 해쉬값에 따라 상위 노드로부터 루트 노드까지의 해쉬값이 저장되며, 상기 루트 노드에 저장된 해쉬값이 전자서명되어 저장되는 해쉬 트리 구조의 전자문서 관리 방법으로서,
    운용자로부터 인출하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨 에 따라, 상기 문서 일련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계;
    상기 검색한 해쉬 트리에 대하여, 상기 문서 일련번호가 저장된 리프 노드 및 상기 리프 노드와 연결된 루트 노드를 포함하는 모든 경로 상의 해쉬값을 인출하고, 상기 인출된 해쉬값의 인접 노드들에 대한 해쉬값을 인출하는 제 2 단계;
    상기 루트 노드 해쉬값에 대한 전자서명값을 검증하는 제 3 단계;
    상기 루트 노드로부터 상기 리프 노드까지 순차적으로 각 노드에 대한 해쉬값을 산출하는 제 4 단계; 및
    상기 산출된 리프 노드에 대한 해쉬값을 이용하여 해당 문서를 인출하는 제 5 단계;
    를 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  14. 제 13 항에 있어서,
    상기 제 1 단계는 해쉬 트리의 일련번호가 t, 해쉬 트리의 최대 깊이가 n일 때, (t-1)2n-1 < 문서 일련번호 < t2n-1를 만족하는 정수 t를 검색하는 단계인 것을 특징으로 하는 전자문서 관리 방법.
  15. 제 13 항에 있어서,
    상기 제 5 단계 이후, 상기 제 5 단계에서 인출한 문서 및 전자서명값을 제 공하는 제 6 단계를 더 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  16. 저장되는 문서에 대한 해쉬값 및 문서 일련번호가 리프 노드에 저장되며, 인접하는 두 하위 노드에 저장된 해쉬값에 따라 상위 노드로부터 루트 노드까지의 해쉬값이 저장되며, 상기 루트 노드에 저장된 해쉬값이 전자서명되어 저장되는 해쉬 트리 구조의 전자문서 관리 방법으로서,
    운용자로부터 삭제하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 상기 문서 일련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계;
    상기 검색한 해쉬 트리의 리프 노드에 삭제하고자 하는 인덱스가 존재하는지 확인하는 제 2 단계;
    삭제하고자 하는 인덱스가 존재하는 경우 해당 리프 노드를 빈 리프 노드로 갱신하고, 메모리에 저장된 해당 전자문서를 삭제하는 제 3 단계; 및
    상기 리프 노드의 상위 노드로부터 루트 노드까지 해쉬값을 갱신하고, 상기 루트 노드 해쉬값에 대하여 전자서명을 수행하는 제 4 단계;
    를 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  17. 제 16 항에 있어서,
    상기 제 1 단계는 해쉬 트리의 일련번호가 t, 해쉬 트리의 최대 깊이가 n일 때, (t-1)2n-1 < 문서 일련번호 < t2n-1를 만족하는 정수 t를 검색하는 단계인 것을 특징으로 하는 전자문서 관리 방법.
  18. 제 16 항에 있어서,
    상기 제 5 단계 이후,
    리프 노드가 삭제된 해쉬 트리 및 인접하는 하나의 해쉬 트리의 사이즈를 확인하는 제 6 단계;
    두 해쉬 트리 사이즈의 합이 총 리프 노드의 수 이하인지 확인하는 제 7 단계;
    두 해쉬 트리 사이즈의 합이 총 리프 노드의 수 이하인 경우, 데이터가 저장된 리프 노드들을 기 저장된 순서를 유지하면서 재배열하는 제 8 단계;
    상기 총 리프 노드의 수에서 두 해쉬 트리 사이즈의 합을 감산한 만큼의 빈 리프 노드를 추가하는 제 9 단계;
    해쉬 트리의 일련번호를 갱신하는 제 10 단계; 및
    일련번호가 갱신된 상기 해쉬 트리의 상위 노드로부터 루트 노드에 이르기까지의 해쉬값을 갱신하고, 상기 루트 노드 해쉬값에 대한 전자서명을 수행하는 제 11 단계;
    를 더 포함하는 것을 특징으로 하는 전자문서 관리 방법.
  19. 제 18 항에 있어서,
    상기 제 11 단계 이후, 모든 리프 노드가 빈 리프 노드인 해쉬 트리를 삭제하는 제 12 단계를 더 포함하는 것을 특징으로 하는 전자문서 관리 방법.
KR1020060093079A 2006-09-25 2006-09-25 전자문서 관리 장치 및 방법 KR100826250B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060093079A KR100826250B1 (ko) 2006-09-25 2006-09-25 전자문서 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060093079A KR100826250B1 (ko) 2006-09-25 2006-09-25 전자문서 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080027660A true KR20080027660A (ko) 2008-03-28
KR100826250B1 KR100826250B1 (ko) 2008-04-29

Family

ID=39414516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060093079A KR100826250B1 (ko) 2006-09-25 2006-09-25 전자문서 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100826250B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955189B1 (ko) * 2008-08-11 2010-04-29 엔에이치엔(주) 문서 검색을 위한 서명 데이터 집합 생성 방법 및 시스템
WO2014061847A1 (ko) * 2012-10-17 2014-04-24 주식회사 리얼타임테크 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
KR101877345B1 (ko) * 2017-04-18 2018-07-12 주식회사 코인플러그 블록체인 및 이와 연동되는 머클 트리 구조 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
WO2018194378A1 (ko) * 2017-04-18 2018-10-25 주식회사 코인플러그 블록체인 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
CN111861484A (zh) * 2019-04-24 2020-10-30 国际信任机器股份有限公司 适用于区块链与链下间协作的验证系统与方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005051734A (ja) 2003-07-15 2005-02-24 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム
KR100642979B1 (ko) * 2004-07-21 2006-11-10 소프트포럼 주식회사 서명속성을 이용한 전자서명 및 그 검증방법과 이를실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체
EP1643402A3 (en) 2004-09-30 2007-01-10 Sap Ag Long-term authenticity proof of electronic documents
JP2006186585A (ja) 2004-12-27 2006-07-13 Canon System Solutions Inc 情報処理装置、情報処理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955189B1 (ko) * 2008-08-11 2010-04-29 엔에이치엔(주) 문서 검색을 위한 서명 데이터 집합 생성 방법 및 시스템
WO2014061847A1 (ko) * 2012-10-17 2014-04-24 주식회사 리얼타임테크 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
KR101419428B1 (ko) * 2012-10-17 2014-07-17 주식회사 리얼타임테크 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
KR101877345B1 (ko) * 2017-04-18 2018-07-12 주식회사 코인플러그 블록체인 및 이와 연동되는 머클 트리 구조 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
WO2018194378A1 (ko) * 2017-04-18 2018-10-25 주식회사 코인플러그 블록체인 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
WO2018194379A1 (ko) * 2017-04-18 2018-10-25 주식회사 코인플러그 블록체인 및 이와 연동되는 머클 트리 구조 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버
US11556926B2 (en) 2017-04-18 2023-01-17 Coinplug, Inc. Method for approving use of card by using blockchain-based token id and server using method
CN111861484A (zh) * 2019-04-24 2020-10-30 国际信任机器股份有限公司 适用于区块链与链下间协作的验证系统与方法
CN111861484B (zh) * 2019-04-24 2024-04-02 国际信任机器股份有限公司 安全协定装置、验证方法、终端装置与终端装置执行的方法

Also Published As

Publication number Publication date
KR100826250B1 (ko) 2008-04-29

Similar Documents

Publication Publication Date Title
US8447801B1 (en) Content sharing with limited cloud storage
US10102253B2 (en) Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
KR102017739B1 (ko) 블록체인 시스템 및 블록체인 생성 방법
CN109857724B (zh) 基于区块链实现支持多种数据库的方法及设备
US7765215B2 (en) System and method for providing a trustworthy inverted index to enable searching of records
CN103473251B (zh) 在使用处理器件的计算环境中提供使用选择性元组版本化的文件系统快照的方法和系统
US8683228B2 (en) System and method for WORM data storage
US7636736B1 (en) Method and apparatus for creating and using a policy-based access/change log
US20070136397A1 (en) Information life-cycle management architecture for a device with infinite storage capacity
KR100826250B1 (ko) 전자문서 관리 장치 및 방법
CN109298835B (zh) 区块链的数据归档处理方法、装置、设备及存储介质
US10013312B2 (en) Method and system for a safe archiving of data
CN110673800B (zh) 文件系统的数据操作方法、装置、设备及可读存储介质
US8959118B2 (en) File system management and balancing
JP2005302038A (ja) Bツリー中の連続キーの名前を変更する方法およびシステム
CN106682186A (zh) 文件访问控制列表管理方法和相关装置和系统
KR20080078005A (ko) 웹 사이트 다단계 리사이클링 방법, 및 휴지통 관리 방법
CN102930060A (zh) 一种数据库快速索引的方法及装置
CN109446177B (zh) 一种分布式文件系统目录文件个数配额的实现方法及装置
CN107203574A (zh) 数据管理和数据分析的聚合
CN110022315A (zh) 一种块链式账本中的权重管理方法、装置及设备
WO2020082597A1 (zh) 一种b+树节点的批量插入和删除方法及装置
KR100452085B1 (ko) 카테고리 별 키워드의 입력 순위를 제공하기 위한 검색서비스 시스템 및 그 방법
US10459947B2 (en) Frequency dependent partial index
CN112749144B (zh) 一种基于区块链的持久化文件存储系统及方法

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: 20130418

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140423

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee