KR100826250B1 - Electronic document management device and method - Google Patents
Electronic document management device and method Download PDFInfo
- Publication number
- KR100826250B1 KR100826250B1 KR1020060093079A KR20060093079A KR100826250B1 KR 100826250 B1 KR100826250 B1 KR 100826250B1 KR 1020060093079 A KR1020060093079 A KR 1020060093079A KR 20060093079 A KR20060093079 A KR 20060093079A KR 100826250 B1 KR100826250 B1 KR 100826250B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash
- document
- stored
- hash value
- node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000007726 management method Methods 0.000 claims description 30
- 239000000284 extract Substances 0.000 claims description 2
- 238000004321 preservation Methods 0.000 abstract description 2
- 230000007774 longterm Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010923 batch production Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting 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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
전자문서의 위변조를 방지하면서 장기간 보전할 수 있는 전자문서 관리 장치 및 방법을 제시한다.An electronic document management apparatus and method capable of long-term preservation while preventing forgery of electronic documents are presented.
본 발명의 전자문서 관리 장치는, 해쉬 트리를 구성하는 각 노드에 대한 해쉬값을 계산하여 데이터베이스에 저장하는 해쉬 처리부, 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하는 전자서명 처리부, 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수를 데이터베이스에 저장하고 관리하며, 생성되는 해쉬 트리를 데이터베이스에 저장하는 해쉬 트리 관리부 및 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 메모리에 저장하고, 문서의 일련번호 및 해쉬값을 해쉬 트리에 추가한 후 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 문서 저장부를 포함하여, 저렴한 비용으로 방대한 양의 전자문서를 안전하게 보관 및 관리할 수 있다.An electronic document management apparatus of the present invention includes a hash processing unit for calculating a hash value for each node constituting a hash tree and storing the hash value in a database, an electronic signature processing unit for performing an electronic signature on the hash value stored in the root node of the hash tree; Stores and manages the hash tree serial number, the depth of the hash tree, the number of all leaf nodes, and the number of leaf nodes where data is stored in the database, and according to the request of the hash tree manager and the operator to store the generated hash tree in the database. A document storage unit for storing at least one document with a document serial number in memory, adding the document serial number and hash value to the hash tree, and updating the hash value from the parent node to the root node of the hash tree, You can safely store and manage large volumes of electronic documents at low cost.
전자문서, 해쉬 트리 Electronic document, hash tree
Description
도 1은 본 발명의 일 실시예에 의한 전자문서 관리 장치의 구성도,1 is a block diagram of an electronic document management apparatus according to an embodiment of the present invention;
도 2는 본 발명에 의한 전자문서 저장 구조를 설명하기 위한 도면,2 is a view for explaining an electronic document storage structure according to the present invention;
도 3은 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도,3 is a flowchart for explaining an electronic document storage method according to an embodiment of the present invention;
도 4a 내지 4e는 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면,4A to 4E are views for explaining an electronic document storage method according to an embodiment of the present invention;
도 5는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도,5 is a flowchart for explaining an electronic document storage method according to another embodiment of the present invention;
도 6a 내지 6f는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면,6a to 6f are views for explaining an electronic document storage method according to another embodiment of the present invention;
도 7은 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 흐름도,7 is a flowchart for explaining an electronic document retrieval method according to an embodiment of the present invention;
도 8a 및 8b는 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 도면,8A and 8B are views for explaining an electronic document withdrawal method according to an embodiment of the present invention;
도 9는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 흐 름도,9 is a flowchart illustrating a method of deleting an electronic document according to an embodiment of the present invention;
도 10a 및 10b는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 도면,10A and 10B are views for explaining an electronic document deleting method according to an embodiment of the present invention;
도 11은 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 흐름도,11 is a flowchart illustrating a hash tree merging method according to an embodiment of the present invention;
도 12a 및 12b는 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 도면이다.12A and 12B illustrate a hash tree merging method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호 설명><Description of the symbols for the main parts of the drawings>
10 : 전자문서 관리 장치 102 : 제어부10: electronic document management device 102: control unit
104 : 인터페이스 106 : 메모리104: interface 106: memory
108 : 데이터베이 110 : 메타 데이터 데이터베이스108: Database 110: Metadata Database
112 : 해쉬 트리 데이터베이스 114 : 해쉬 처리부112: hash tree database 114: hash processing unit
116 : 전자서명 처리부 118 : 해쉬 트리 관리부116: digital signature processing unit 118: hash tree management unit
120 : 문서 저장부 122 : 문서 인출부120: document storage unit 122: document extraction unit
124 문서 삭제부124 Delete Document
본 발명은 전자문서 관리 장치 및 방법에 관한 것으로, 보다 구체적으로는 전자문서의 위변조를 방지하면서 장기간 보전할 수 있는 전자문서 관리 장치 및 방 법에 관한 것이다.The present invention relates to an electronic document management apparatus and method, and more particularly to an electronic document management apparatus and method that can be preserved for a long time while preventing forgery of the electronic document.
최근 들어 공공기관, 금융기관 등에서는 업무 처리의 결과로 발생되는 문서를 전자문서화하여 저장하고 있다. 전자문서는 위조, 변조, 부적법한 열람이나 삭제가 이루어지지 않도록 안전하게 저장하여야 하며, 이러한 취지에 따라 WORM(Write Only, Read Many) 스토리지에 전자문서를 저장하고 있다.In recent years, public institutions, financial institutions, etc. have electronically stored documents generated as a result of business processing. Electronic documents should be stored securely to prevent forgery, tampering, illegal viewing or deletion, and for this purpose, electronic documents are stored in WORM (Write Only, Read Many) storage.
WORM 스토리지는 사용자가 한번 데이터를 기록할 수는 있으나, 한번 기록된 데이터를 소거하거나 갱신하는 것은 불가능한 성질을 갖는 디스크를 의미한다. WORM은 수백 MB에서 수 GB의 용량을 갖는 대용량 기억매체이며, 한번 기록된 데이터는 삭제하거나 변경할 수 없기 때문에 보전 의무가 있는 데이터 또는, 실수로 삭제하거나 변경하면 곤란한 데이터를 보관하는 데 주로 사용된다.WORM storage refers to a disk having a property that a user can write data once, but cannot erase or update the data once written. WORM is a large-capacity storage medium having a capacity of hundreds of MB to several GB, and is mainly used for storing data which has a duty of preservation or data which is difficult to be deleted or changed accidentally because data once recorded cannot be deleted or changed.
그런데 WORM 스토리지는 고가이기 때문에 일부 업체에서만 이용하고 있을 뿐, 상용화하기 어려운 문제가 있다.However, since WORM storage is expensive, it is only used by some companies and it is difficult to commercialize.
또한, 현재는 전자문서를 저장할 때, 각 전자문서에 대하여 전자서명을 수행하여 위변조를 방지하고 있는데, 전자문서 유효기간이 만료되는 경우 모든 전자문서에 대한 전자서명을 갱신해야 하기 때문에, 그 처리 과정이 복잡하게 되는 단점이 있다.In addition, at the present time, when the electronic document is stored, forgery is prevented by performing an electronic signature on each electronic document. When the electronic document expires, the electronic signature on all the electronic documents must be updated. This complexity is disadvantageous.
본 발명은 상술한 문제점 및 단점을 해결하기 위하여 안출된 것으로서, 고가의 WORM 스토리지를 대체하여, 저렴한 비용으로 전자문서를 안전하게 보관 및 관리할 수 있는 전자문서 관리 장치 및 방법을 제공하는 데 그 기술적 과제가 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems and disadvantages, and replaces expensive WORM storage and provides an electronic document management apparatus and method capable of safely storing and managing electronic documents at low cost. There is.
본 발명의 다른 기술적 과제는 해쉬 트리를 이용하여 전자문서를 보관함으로써, 루트 노드에 대한 전자서명만으로 전자 문서를 안전하게 보관 및 관리할 수 있으며, 전자서명 갱신 과정을 간단히 하는 데 있다.Another technical problem of the present invention is to store an electronic document using a hash tree, thereby safely storing and managing the electronic document only by the electronic signature on the root node, and simplifying the process of updating the electronic signature.
상술한 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 의한 전자문서 보관 장치는 전체적인 동작을 제어하는 제어부; 인터페이스; 해쉬 처리된 전자문서가 저장되는 메모리; 해쉬 트리 및 해쉬 트리 관련 정보가 저장되는 데이터베이스; 해쉬 트리를 구성하는 각 노드에 대한 해쉬값을 계산하여 상기 데이터베이스에 저장하는 해쉬 처리부; 상기 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하는 전자서명 처리부; 상기 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수를 상기 데이터베이스에 저장하고 관리하며, 생성되는 해쉬 트리를 상기 데이터베이스에 저장하는 해쉬 트리 관리부; 및 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 상기 메모리에 저장하고, 상기 문서의 일련번호 및 해쉬값을 상기 해쉬 트리에 추가한 후 상기 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 문서 저장부;를 포함한다.Electronic document storage device according to an embodiment of the present invention for achieving the above technical problem is a control unit for controlling the overall operation; interface; A memory in which the hashed electronic document is stored; A database storing a hash tree and hash tree related information; A hash processing unit for calculating a hash value for each node constituting a hash tree and storing the hash value in the database; An electronic signature processor for performing an electronic signature on a hash value stored in a root node of the hash tree; A hash tree manager which stores and manages the serial number of the hash tree, the depth of the hash tree, the number of all leaf nodes, the number of leaf nodes in which data is stored in the database, and stores the generated hash tree in the database; And storing at least one document along with the document serial number in the memory according to an operator's request, adding the document serial number and the hash value to the hash tree, and then hashing from the upper node of the hash tree to the root node. And a document storage unit for updating the value.
또한, 본 발명의 일 실시예에 의한 전자문서 저장 방법은 운용자가 전자문서를 저장하고자 함에 따라, 상기 저장하고자 하는 문서에 대한 해쉬값을 계산하는 제 1 단계; 기 생성되어 있는 해쉬 트리가 존재하는 경우 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인하는 제 2 단계; 상기 선택한 해쉬 트리에 빈 리프 노드가 존재하는 경우, 최종적으로 데이터가 저장된 리프 노트의 인덱스(최종 인덱스)가 2의 멱승인지 확인하는 제 3 단계; 상기 최종 인덱스가 2의 멱승인 경우 최종 인덱스 개수만큼의 빈 리프 노드를 생성하는 제 4 단계; 최종 인덱스의 다음 인덱스에 해당하는 리프 노드에 문서 일련번호 및 상기 제 1 단계에서 계산한 해쉬값을 저장하고, 상기 문서를 메모리에 저장하는 제 5 단계; 상기 리프 노드의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신하는 제 6단계; 상기 루트 노드의 해쉬값에 대하여 전자서명을 수행하는 제 7 단 계;를 포함한다.In addition, the electronic document storage method according to an embodiment of the present invention includes a first step of calculating a hash value for the document to be stored, as the operator intends to store the electronic document; A second step of selecting a hash tree having the largest serial number when the hash tree is generated and checking whether an empty leaf node exists in the selected hash tree; A third step of determining whether an index (final index) of a leaf note in which data is finally stored is a power of 2 when an empty leaf node exists in the selected hash tree; A fourth step of generating as many empty leaf nodes as the number of final indexes when the final index is a power of two; A fifth step of storing a document serial number and a hash value calculated in the first step in a leaf node corresponding to a next index of a final index, and storing the document in a memory; A sixth step of updating a hash value from an upper node of the leaf node to a root node; And a seventh step of performing an electronic signature on the hash value of the root node.
아울러, 본 발명의 다른 실시예에 의한 전자문서 저장 방법은 운용자가 복수의 전자문서를 일괄 저장하고자 함에 따라, 상기 저장하고자 하는 문서 각각에 대한 해쉬값을 계산하는 제 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 단계;를 포함한다.In addition, the electronic document storage method according to another embodiment of the present invention includes a first step of calculating a hash value for each document to be stored, as the operator wants to collectively store a plurality of electronic documents; A second step of selecting a hash tree having the largest serial number when the hash tree is generated and checking whether an empty leaf node exists in the selected hash tree; A third step of determining whether an index (final index) of a leaf note in which data is finally stored is an odd number when an empty leaf node exists in the selected hash tree; A fourth step of storing the document serial number for the first electronic document to be added and the hash value calculated in the first step for the electronic document and updating the final index when the final index is odd. ; A fifth step of generating a hash tree having a depth of 2 using the remaining hash value and the serial number of the document except the hash value stored in the fourth step; A sixth step of checking whether the final index is an odd multiple of two; A seventh step of adding one of the hash trees having a depth of 2 generated in the fifth step to a previously generated hash tree and updating the final index by two when the final index is an odd multiple of two; An eighth step of generating a hash tree having a depth of three using the hash tree other than the hash tree used in the seventh step among the hash trees having the depth two generated in the fifth step; A ninth step of adding the hash tree generated in the eighth step to the hash tree updated in the seventh step; A tenth step of updating a hash value from an upper node of the leaf node to a root node; And an eleventh step of performing an electronic signature on the hash value of the root node.
그리고, 본 발명의 일 실시예에 의한 전자 문서 인출 방법은 운용자로부터 인출하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 상기 문서 일련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계; 상기 검색한 해쉬 트리에 대하여, 상기 문서 일련번호가 저장된 리프 노드 및 상기 리프 노드와 연결된 루트 노드를 포함하는 모든 경로 상의 해쉬값을 인출하고, 상기 인출된 해쉬값의 인접 노드들에 대한 해쉬값을 인출하는 제 2 단계; 상기 루트 노드 해쉬값에 대한 전자서명값을 검증하는 제 3 단계; 상기 루트 노드로부터 상기 리프 노드까지 순차적으로 각 노드에 대한 해쉬값을 산출하는 제 4 단계; 및 상기 산출된 리프 노드에 대한 해쉬값을 이용하여 해당 문서를 인출하는 제 5 단계;를 포함한다.In the electronic document retrieval method according to an embodiment of the present invention, as a document serial number (index of a leaf node) to be withdrawn from an operator is input, a hash tree storing a hash value of a document according to the document serial number is retrieved. A first step of making; With respect to the retrieved hash tree, a hash value on all paths including a leaf node storing the document serial number and a root node connected to the leaf node is retrieved, and a hash value of neighboring nodes of the retrieved hash value is obtained. Withdrawing the second step; A third step of verifying an electronic signature value with respect to the root node hash value; A fourth step of calculating a hash value for each node sequentially from the root node to the leaf node; And a fifth step of fetching the document using the calculated hash value for the leaf node.
한편, 본 발명의 일 실시예에 의한 전자 문서 삭제 방법은 운용자로부터 삭제하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 상기 문서 일 련번호에 따른 문서의 해쉬값이 저장된 해쉬 트리를 검색하는 제 1 단계; 상기 검색한 해쉬 트리의 리프 노드에 삭제하고자 하는 인덱스가 존재하는지 확인하는 제 2 단계; 삭제하고자 하는 인덱스가 존재하는 경우 해당 리프 노드를 빈 리프 노드로 갱신하고, 메모리에 저장된 해당 전자문서를 삭제하는 제 3 단계; 및 상기 리프 노드의 상위 노드로부터 루트 노드까지 해쉬값을 갱신하고, 상기 루트 노드 해쉬값에 대하여 전자서명을 수행하는 제 4 단계;를 포함한다.On the other hand, in the electronic document deletion method according to an embodiment of the present invention, as the document serial number (index of the leaf node) to be deleted from the operator is input, the hash tree storing the hash value of the document according to the document serial number A first step of searching; A second step of checking whether an index to be deleted exists in a leaf node of the searched hash tree; Updating the leaf node with an empty leaf node if there is an index to be deleted and deleting the corresponding electronic document stored in the memory; And a fourth step of updating a hash value from an upper node of the leaf node to a root node and performing an electronic signature on the root node hash value.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 구체적으로 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
이하의 설명에서, 문서 일련번호는 문서 저장 순서에 따라 단조 증가하는 정수로서 예를들어, 1, 2, 3, … 과 같이 부여되며, 문서 일련번호는 해쉬 트리 리프 노드의 인덱스와 동일한 값을 갖는 것으로 정의한다. 또한, 해쉬 트리의 최대 허용 깊이는 n(2보다 큰 정수), 해쉬 트리의 깊이는 k라 명명할 것이며, 해쉬 트리 일련번호(t)는 생성되는 순서에 따라 단조 증가하는 정수가 부여된다.In the following description, document serial numbers are integers monotonically increasing according to document storage order, for example, 1, 2, 3,... The document serial number is defined as having the same value as the index of the hash tree leaf node. In addition, the maximum allowable depth of the hash tree will be named n (an integer greater than 2), and the depth of the hash tree will be named k, and the hash tree serial number t is given an integer increasing monotonically in the order of generation.
도 1은 본 발명의 일 실시예에 의한 전자문서 관리 장치의 구성도이다.1 is a block diagram of an electronic document management apparatus according to an embodiment of the present invention.
도시한 것과 같이, 본 발명의 전자문서 관리 장치(10)는 전체적인 동작을 제어하는 제어부(102), 운용자가 전자문서 관리 장치(10)를 조작하도록 하고, 전자문서 관리 장치(10)의 처리 결과를 운용자에게 제공하기 위한 인터페이스(104), 해쉬처리된 전자문서 등이 저장되는 메모리(106), 해쉬 트리 및 관련 정보가 저장되는 데이터베이스(108), 해쉬 처리부(114), 전자서명 처리부(116), 해쉬 트리 관리부(118), 문서 저장부(120), 문서 인출부(122) 및 문서 삭제부(124)를 포함한다.As shown in the drawing, the electronic
본 발명에 적용되는 해쉬 트리는 깊이가 예를 들어 n라 할 때, 문서 일련번호와 각 문서에 대한 해쉬값을 저장하는 2n-1개의 리프(leaf) 노드, 인접하는 두 개의 하위 노드로부터 계산되는 해쉬값을 저장하는 1차 내지 n-2차 상위 노드 및 인접하는 두 개의 n-1차 상위노드로부터 계산되는 해쉬값을 저장하는 1개의 루트(root) 노드를 포함하고, 루트 노드에 저장되는 해쉬값은 전자서명된 상태로 저장된다.The hash tree applied to the present invention is calculated from 2 n-1 leaf nodes, which store the document serial number and the hash value for each document, when the depth is n, for example. Hash stored in the root node, including one root node that stores hash values calculated from the first to n-second order parent nodes storing the hash value and two adjacent n-first order parent nodes. The value is stored in the digitally signed state.
도 1에 도시한 구성요소들에 대해 구체적으로 설명하면 다음과 같다.Hereinafter, the components illustrated in FIG. 1 will be described in detail.
먼저, 해쉬 처리부(114)는 해쉬 트리의 각 노드(리프노드, 상위 노드, 루트 노드)에 대한 해쉬값을 계산하고, 이를 해쉬 트리 데이터베이스(112)에 저장한다.First, the
전자서명 처리부(116)는 해쉬 트리의 루트 노드에 저장된 해쉬값에 대하여 전자서명을 수행하며, 전자서명의 유효기간 만료시 루트 노드에 저장된 해쉬값에 대한 전자서명을 갱신한다.The digital
전자서명은 예를 들어 시점확인 프로토콜(Time Stamp Protocol; TSP)을 이용할 수 있다. TSP는 시점확인 관리자(Time Stamp Authority; TSA)와 요청자 사이에 시점확인을 위한 토큰을 주고받는 시점 확인 서비스를 위한 규격으로, 어떤 데이터가 특정 시간 이전에 존재했음을 뒷받침해 주기 위해 사용되는 프로토콜이다.The digital signature may use a time stamp protocol (TSP), for example. TSP is a protocol for time stamping services that send and receive tokens for time stamping between the Time Stamp Authority (TSA) and the requestor. It is a protocol used to support that data existed before a certain time.
해쉬 트리 관리부(118)는 해쉬 트리의 일련번호, 해쉬 트리의 깊이, 모든 리프 노드의 수, 데이터가 저장된 리프 노드의 수 등을 메타 데이터 DB(110)에 저장하고, 해쉬 트리를 해쉬 트리 DB(112)에 저장한다. 아울러, 해쉬 트리 관리 부(118)는 인접하는 두 해쉬 트리에 대하여, 데이터가 저장된 리프 노드의 수의 합이 하나의 해쉬 트리에서 허용 가능한 총 리프 노드의 수 이하인 경우, 두 해쉬 트리를 병합하는 역할 또한 수행할 수 있다.The
문서 저장부(120)는 운용자의 요청에 따라 적어도 하나의 문서를 문서 일련번호와 함께 메모리(106)에 저장하고, 해당 문서의 일련번호 및 해쉬값을 해쉬 트리에 추가한 후 상위 노드로부터 루트 노드까지의 해쉬값을 갱신한다.The
문서 인출부(122)는 운용자가 인출 요청한 문서 일련번호를 참조하여, 해쉬 트리로부터 해쉬값을 검색하고, 이를 이용하여 메모리(106)에 저장된 문서를 추출하여 제공한다.The
아울러, 문서 삭제부(124)는 운용자가 삭제 요청한 문서에 대한 해쉬값이 저장된 해쉬 트리를 검색하여, 검색된 해쉬 트리로부터 해당 문서에 대한 해쉬값이 저장된 리프 노드를 삭제하고, 리프 노드가 삭제된 해쉬 트리의 상위 노드로부터 루트 노드까지의 해쉬값을 갱신한다. 문서 저장, 인출 및 삭제를 위한 구체적인 절차는 도 3 내지 도 12를 참조하여 후술할 것이다.In addition, the
도 2는 본 발명에 의한 전자문서 저장 구조를 설명하기 위한 도면이다.2 is a view for explaining an electronic document storage structure according to the present invention.
도 2에서 해쉬 트리(20)의 깊이(k)는 3이고, 리프(leaf) 노드의 개수는 2k-1개 즉, 4개이다. 각각의 리프 노드(22a, 22b, 22c, 22d)에는 문서 일련번호 및 해당 문서에 대한 해쉬값이 저장되고, 1차 상위노드(24a, 24b)에는 인접하는 두 리프 노드(22a-22b, 22c-22d)의 해쉬값으로부터 계산되는 해쉬값이 저장된다.In FIG. 2, the depth k of the
아울러, 루트 노드(26)에는 인접하는 두 개의 1차 상위 노드(24a, 24b)의 해쉬값으로부터 계산되는 해쉬값이 전자서명된 상태로 저장된다.In addition, the
본 발명에서는 루트 노드의 해쉬값에 대해서만 전자서명을 수행하기 때문에, 전자서명 유효기간 만료시 모든 전자문서에 대한 전자서명을 갱신하는 것이 아니라, 루트 노드에 대한 전자서명만을 갱신하게 되므로, 전자서명 갱신 절차를 간단화할 수 있다.In the present invention, since the digital signature is performed only on the hash value of the root node, the digital signature is updated only on the root node instead of updating the digital signature on all the electronic documents when the digital signature is expired. The procedure can be simplified.
도 3은 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도이고, 도 4a 내지 4e는 본 발명의 일 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면이다.3 is a flowchart illustrating an electronic document storage method according to an embodiment of the present invention, Figures 4a to 4e is a view for explaining an electronic document storage method according to an embodiment of the present invention.
운용자가 전자문서를 저장하고자 함에 따라, 해쉬 처리부(114)는 저장하고자 하는 문서에 대한 해쉬값을 계산한다(S101).As the operator intends to store the electronic document, the
이후, 문서 저장부(118)는 메타 데이터 DB(110)를 참조하여, 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인한다(S103). 즉, 선택한 해쉬 트리에 대하여 최종적으로 데이터가 저장된 리프 노드의 인덱스(문서 일련번호)가 총 리프 노드의 수(2n-1)보다 작은지 확인하는 것이다.Subsequently, the
도 4a는 깊이가 2인 해쉬 트리를 나타내며, 최종적으로 데이터가 저장된 리프 노드의 인덱스가 2이며, 최종적으로 데이터가 저장된 리프 노드의 인덱스(index=2)가 2n-1보다 작은 것을 알 수 있다. 즉, 해당 해쉬 트리에 데이터를 추 가할 여분의 리프 노드가 존재하는 것이다.4A illustrates a hash tree having a depth of 2, and finally, an index of a leaf node in which data is stored is 2, and an index (index = 2) of a leaf node in which data is finally stored is smaller than 2 n-1 . . That is, there is an extra leaf node to add data to the hash tree.
이와 같이, 여분의 리프 노드가 존재함을 확인한 후에는 최종적으로 데이터가 저장된 리프 노트의 인덱스가 2의 멱승인지 확인하여(S105), 2의 멱승인 경우에는 최종 인덱스 개수만큼의 빈 리프 노드를 생성한다. 즉, 새로운 리프 노드를 생성함으로써 1차 상위 노드가 생성된 후, 이미 존재하고 있는 1차 상위 노드(34)에 저장된 해쉬값과 새롭게 생성된 1차 상위 노드에 저장된 해쉬값을 이용하여 2차 상위 노드에 해쉬값을 저장할 수 있도록 하는 것이다.In this way, after confirming that there is an extra leaf node, it is finally confirmed whether the index of the leaf note where the data is stored is a power of 2 (S105). do. That is, after the first parent node is generated by creating a new leaf node, the second parent parent using the hash value stored in the existing
도 4b를 참조하면, 최종 인덱스가 2이므로, 2개의 빈 리프 노드(32c, 32d)를 생성한 것을 알 수 있다.Referring to FIG. 4B, since the final index is 2, it can be seen that two
다음으로, 최종 인덱스의 다음 리프 노드(도 4b의 32c)에 단계 S101에서 계산한 해쉬값과 문서 일련번호를 저장하는 한편(S109), 메모리(106)에 추가하고자 하는 문서를 저장한다(S111).Next, the hash value and the document serial number calculated in step S101 are stored in the next leaf node (32c in FIG. 4B) of the final index (S109), and the document to be added to the
이후, 리프 노드의 상위 노드에 대한 해쉬값을 갱신하는데, 도 4c에 도시한 것과 같이, 인접하는 두 리프 노드(32c, 32d)의 해쉬값을 이용하여 1차 상위 노드(34a)에 대한 해쉬값을 갱신하고, 이미 존재하고 있는 1차 상위 노드(34)와 새롭게 생성된 1차 상위 노드(34a)에 대한 해쉬값을 이용하여 2차 상위 노드(36)에 대한 해쉬값을 갱신하는 것이다. 이러한 해쉬값 갱신 과정은 루트 노드의 해쉬값을 갱신할 때까지 반복 수행된다(S113, S115).Thereafter, the hash value of the upper node of the leaf node is updated, and as shown in FIG. 4C, the hash value of the primary
그리고, 루트 노드에 대한 해쉬값이 갱신된 후에는 루트 노드 해쉬값에 대하여 전자서명을 수행한다(S117).After the hash value for the root node is updated, the digital signature is performed on the root node hash value (S117).
한편, 단계 S103의 확인 결과 여분의 빈 리프 노드가 존재하지 않는 경우에는 깊이(k)가 2인 새로운 해쉬 트리를 생성하고(S119), 생성된 해쉬 트리의 첫번째 리프 노드 즉, 인덱스가 1인 리프노드에 단계 S101에서 계산한 해쉬값 및 문서 일련번호를 저장한다(S121).On the other hand, if the extra empty leaf node does not exist as a result of checking in step S103, a new hash tree having a depth k of 2 is created (S119), and the first leaf node of the generated hash tree, that is, the leaf having an index of 1 The hash value and the document serial number calculated in step S101 are stored in the node (S121).
아울러, 단계 S105의 확인 결과, 최종 인덱스가 2의 멱승이 아닌 경우에는 단계 S109로 진행하고 그 이후의 과정을 수행한다. 도 4d를 참조하면, 최종으로 데이터가 저장된 리프 노드(32a)의 인덱스가 1이므로, 단계 S109에서 인덱스를 1 증가시키고, 도 4e에 도시한 것과 같이 인덱스 2 즉, 리프 노드(32b)에 단계 S101에서 계산한 해쉬값 및 문서 일련번호를 저장한 후, 상위 노드(34)의 해쉬값을 갱신하는 것이다.In addition, if the final index is not a power of 2, as a result of confirming in step S105, the process proceeds to step S109 and the process after that. Referring to FIG. 4D, since the index of the
도 3 및 도 4에서는 개별 문서를 추가하는 경우에 대하여 설명하였으나, 복수의 문서를 추가할 경우 상기와 같은 과정을 수행하게 되면, 계속해서 해쉬값을 갱신하는 등의 문제로 문서 추가를 위한 처리 시간이 지연되게 된다. 따라서, 복수의 문서를 배치(batch) 처리하여 추가하는 방안이 필요하며, 이에 대하여 도 5 및 도 6을 참조하여 설명하면 다음과 같다.In FIGS. 3 and 4, a case of adding individual documents has been described. However, when a plurality of documents are added, the above process is performed. The processing time for adding documents is continuously updated due to a problem such as updating a hash value. This will be delayed. Accordingly, there is a need for a batch process of adding a plurality of documents, which will be described below with reference to FIGS. 5 and 6.
도 5는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 흐름도이고, 도 6a 내지 6f는 본 발명의 다른 실시예에 의한 전자문서 저장 방법을 설명하기 위한 도면이다.5 is a flowchart illustrating an electronic document storage method according to another embodiment of the present invention, Figures 6a to 6f is a view for explaining an electronic document storage method according to another embodiment of the present invention.
먼저, 운용자가 복수의 전자문서를 저장하고자 함에 따라, 해쉬 처리부(114)는 저장하고자 하는 문서 각각에 대한 해쉬값을 계산한다(S201).First, as the operator intends to store a plurality of electronic documents, the
이후, 문서 저장부(118)는 메타 데이터 DB(110)를 참조하여, 일련번호가 가장 큰 해쉬 트리를 선택하고, 선택한 해쉬 트리에 빈 리프 노드가 존재하는지 확인한다(S203). 즉, 선택한 해쉬 트리에 대하여 최종적으로 데이터가 저장된 리프 노드의 인덱스가 총 리프 노드의 수(2n-1)보다 작은지 확인하는 것이다.Subsequently, the
선택한 해쉬 트리에 데이터를 추가할 여분의 리프 노드가 존재하는 경우에는 최종 인덱스가 홀수인지 확인하여(S205), 최종 인덱스가 홀수인 경우 최종 인덱스의 다음 인덱스에 단계 S201에서 계산한 해쉬값 중 첫번째 해쉬값과 문서 일련번호를 저장한 다음, 최종 인덱스를 갱신한다(S207, S209).If there is an extra leaf node to add data to the selected hash tree, the final index is odd (S205). If the final index is odd, the first hash of the hash values calculated in step S201 is next to the next index of the final index. The values and document serial numbers are stored, and the final indexes are updated (S207 and S209).
도 6a를 참조하면, 최종 인덱스가 1로 홀수인 것을 알 수 있고, 이 경우 도 6b에 도시한 것과 같이 인덱스가 2 인 리프 노드(42b)에 해쉬값 및 문서 일련번호를 저장한 다음, 최종 인덱스를 2로 갱신한다.Referring to FIG. 6A, it can be seen that the final index is odd as 1, in this case, as shown in FIG. 6B, the hash value and the document serial number are stored in the
다음에, 단계 S207에서 저장한 해쉬값을 제외하고 남아 있는 해쉬값 및 해당 문서의 일련번호를 이용하여 깊이(k)가 2인 해쉬 트리를 생성한다(S211)(도 6c 참조).Next, a hash tree having a depth k of 2 is generated using the remaining hash value and the serial number of the document except the hash value stored in step S207 (S211) (see FIG. 6C).
그리고, 최종 인덱스가 2의 홀수배인지 확인한다(S213). 도 6b에서 최종 인덱스는 2로 갱신되었으며, 2=2*1 즉, 2의 홀수배인 것을 알 수 있다. 최종 인덱스가 2의 홀수배인지 확인하는 과정은, 문서를 추가하기 전 기 저장된 문서의 해쉬값을 저장하고 있는 리프 노드의 해쉬값으로부터 계산된 2차 상위 노드(46)의 해쉬값이, 새로운 리프 노드를 추가함에 따라 갱신될 필요가 있는지 확인하는 과정이다.Then, it is checked whether the final index is an odd multiple of two (S213). In FIG. 6B, the final index is updated to 2, and it can be seen that 2 = 2 * 1, that is, an odd multiple of two. The process of checking whether the final index is an odd multiple of 2 is that the hash value of the
최종 인덱스가 2의 홀수배인 경우에는 단계 S211에서 생성한 깊이 2인 트리 중 하나를 해쉬 트리에 추가한다(S215). 도 6d를 참조하면, 도 6c에서 생성한 깊이 2인 해쉬 트리(52, 54, 56) 중 하나(52)가 도 6a에 도시한 해쉬 트리에 추가된 것을 알 수 있다.If the final index is an odd multiple of 2, one of the trees of
깊이 2인 해쉬 트리를 추가한 후에는 인덱스를 2 증가시킨 값으로 갱신한다. 본 실시예에서는 인덱스가 4로 갱신된다.After adding a hash tree with a depth of 2, update the index with a value of 2. In this embodiment, the index is updated to four.
이후, 단계 S211에서 생성한 깊이 2인 해쉬 트리를 이용하여 깊이가 3인 해쉬 트리를 생성한다(S219). 도 6e를 참조하면, 도 6c에서 생성된 해쉬 트리 중 도 6d에 사용된 해쉬 트리를 제외한 나머지 해쉬 트리(54, 56)를 이용하여 깊이 3인 해쉬 트리(64)가 생성된 것을 알 수 있다.Thereafter, a hash tree having a depth of 3 is generated using the hash tree having a depth of 2 generated in step S211 (S219). Referring to FIG. 6E, it can be seen that a
그리고, 단계 S219에서 생성한 해쉬 트리(64)를 단계 S215에서 생성한 해쉬 트리(62)에 추가하여 도 6f와 같은 해쉬 트리를 생성한 다음(S221), 추가할 각각의 문서를 메모리(106)에 저장한다(S223).The
다음에, 인접하는 두 리프 노드의 해쉬값으로부터 상위 노드의 해쉬값을 갱신하며, 이러한 과정을 루트 노드까지 반복 수행한다(S225, S227). 루트 노드(34)의 해쉬값을 갱신한 후에는 루트 노드의 해쉬값에 대해 전자 서명을 수행한다(S229).Next, the hash value of the upper node is updated from the hash values of two adjacent leaf nodes, and this process is repeated until the root node (S225, S227). After updating the hash value of the
한편, 단계 S203의 확인 결과 여분의 리프 노드가 존재하지 않는 경우에는 새로운 해쉬 트리를 생성한다(S231). 이때, 추가하고자 하는 문서의 개수가 해쉬 트리의 최대 허용 깊이(n)보다 큰 경우에는 2n-1개 단위로 문서를 추가한다.On the other hand, if there is no spare leaf node as a result of checking in step S203, a new hash tree is generated (S231). If the number of documents to be added is larger than the maximum allowable depth n of the hash tree, the documents are added in units of 2 n-1 .
아울러, 단계 S213의 확인 결과 최종 인덱스가 2의 홀수배가 아닌 경우 즉, 최종 인덱스가 2의 짝수배인 경우에는 단계 S219로 진행하여 이후의 과정을 수행한다. 그리고, 단계 S205의 확인 결과 최종 인덱스가 홀수가 아닌 경우 단계 S211로 진행하여 이후의 과정을 수행한다.When the final index is not an odd multiple of 2, that is, the final index is an even multiple of 2, the process proceeds to step S219 to perform the subsequent process. When the final index is not an odd number as a result of checking in step S205, the process proceeds to step S211 to perform the subsequent process.
도 7은 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 흐름도이고, 도 8a 및 8b는 본 발명의 일 실시예에 의한 전자문서 인출 방법을 설명하기 위한 도면이다.7 is a flowchart illustrating a method for extracting an electronic document according to an embodiment of the present invention, and FIGS. 8A and 8B illustrate a method for extracting an electronic document according to an embodiment of the present invention.
인출하고자 하는 문서 일련번호(리프 노드의 인덱스)가 입력됨에 따라, 해당 일련번호를 갖는 문서의 해쉬값이 저장된 해쉬 트리를 검색한다(S301).As the document serial number (index of the leaf node) to be retrieved is input, the hash tree in which the hash value of the document having the serial number is stored is searched (S301).
여기에서, 인출하고자 하는 해쉬값을 포함하는 해쉬 트리를 검색하기 위해서는 [수학식 1]을 만족하는 정수 t를 산출한다.Here, to search for a hash tree including the hash value to be retrieved, an integer t that satisfies [Equation 1] is calculated.
[수학식 1][Equation 1]
(t-1)2n-1 < 문서 일련번호 < t2n-1 (t-1) 2 n-1 <Document Serial Number <t2 n-1
t는 해쉬 트리의 일련번호이고, n은 해쉬 트리의 최대 깊이를 의미한다.t is the serial number of the hash tree, and n is the maximum depth of the hash tree.
도 8a를 참조하면, 문서 일련번호가 6이고, 해쉬 트리의 최대 깊이는 3이므로, 1.5보다 크고 2.5보다 작은 정수 t는 2가 되어, 해쉬트리 2의 리프 노드 인덱스 6에 문서 일련번호 6에 해당하는 해쉬값이 저장되어 있음을 알 수 있다.Referring to FIG. 8A, since the document serial number is 6 and the maximum depth of the hash tree is 3, the integer t greater than 1.5 and smaller than 2.5 becomes 2, corresponding to the document
다음, 해당 리프 노드와 연결된 모든 경로 상의 해쉬값을 인출하고(S303), 인출된 해쉬값의 인접 노드들에 대한 해쉬값 또한 인출한다(S305)(도 8b 참조).Next, hash values on all paths connected to the corresponding leaf node are extracted (S303), and hash values of neighboring nodes of the extracted hash value are also extracted (S305) (see FIG. 8B).
그리고, 루트 노드의 전자서명값을 검증한 다음(S307), 적법한 것으로 확인되는 경우 루트 노드로부터 해당 리프 노드까지 순차적으로 내려가면서 각 노드에 대한 해쉬값을 역으로 산출한다(S309).Then, after verifying the digital signature value of the root node (S307), if it is determined that it is legal, the hash value for each node is calculated inversely descending from the root node to the leaf node (S309).
해당 리프 노드에 대한 해쉬값이 산출되면, 이를 이용하여 메모리(106)로부터 해당 문서를 인출하고(S311), 인출한 문서 및 전자서명값을 반환한다(S313).When the hash value for the leaf node is calculated, the document is retrieved from the
도 9는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 흐름도이고, 도 10a 및 10b는 본 발명의 일 실시예에 의한 전자문서 삭제 방법을 설명하기 위한 도면이다.9 is a flowchart illustrating a method for deleting an electronic document according to an embodiment of the present invention, and FIGS. 10A and 10B are diagrams for describing a method for deleting an electronic document according to an embodiment of the present invention.
운용자가 삭제하고자 하는 문서 일련번호 즉, 해쉬 트리의 리프 노드 인덱스를 지정함에 따라, 상기한 [수학식 1]의 방법에 의해 해당 인덱스를 포함하고 있는 해쉬 트리를 검색한다(S401).As the operator designates the document serial number to be deleted, that is, the leaf node index of the hash tree, the hash tree including the index is searched by the method of
그리고, 검색된 해쉬 트리의 리프 노드에 삭제하고자 하는 인덱스가 존재하는지 확인하여(S403), 존재하는 경우 해당 리프 노드를 빈 리프 노드로 갱신하고 메모리(106)에서 해당 문서를 삭제한다(S405).Then, it is checked whether an index to be deleted exists in the leaf node of the retrieved hash tree (S403). If there is, the corresponding leaf node is updated to an empty leaf node and the corresponding document is deleted from the memory 106 (S405).
리프 노드값이 변경되었으므로, 상위 노드로부터 루트 노드까지 해쉬값을 갱신하며(S407, S409), 루트 노드에 대한 해쉬값을 갱신한 후에는 루트 노드 해쉬값에 대하여 전자서명을 수행한다(S411).Since the leaf node value has been changed, the hash value is updated from the upper node to the root node (S407 and S409). After updating the hash value for the root node, the digital signature is performed on the root node hash value (S411).
도 10a를 참조하면, 인덱스 2에 대한 문서를 삭제하고자 하는 경우, 해당 인덱스를 도 10b와 같이 빈 리프 노드로 변경한 후, 상위 노드로부터 루트 노드까지 의 해쉬값을 갱신한다.Referring to FIG. 10A, when a document for
이와 같이 문서를 삭제함에 따라, 해쉬 트리의 리프 노드 빈 리프 노드로 갱신되게 되며, 문서 추가시 이러한 빈 리프 노드를 이용하는 것이 데이터 관리 측면에서 효율적이다. 그런데, 복수의 전자 문서를 추가하는 경우에는 빈 리프 노드 하나하나 마다 문서를 추가하는 것이 비효율적일 수 있으므로, 병합 가능한 해쉬 트리는 병합해 두는 것이 바람직하다.As the document is deleted in this way, the leaf node of the hash tree is updated to an empty leaf node, and it is more efficient in terms of data management to use such empty leaf nodes when adding documents. However, in the case of adding a plurality of electronic documents, it may be inefficient to add the documents for each empty leaf node. Therefore, it is preferable to merge the mergeable hash tree.
도 11은 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 흐름도이고, 도 12a 및 12b는 본 발명의 일 실시예에 의한 해쉬 트리 병합 방법을 설명하기 위한 도면이다.11 is a flowchart illustrating a hash tree merging method according to an embodiment of the present invention, and FIGS. 12A and 12B are diagrams for describing a hash tree merging method according to an embodiment of the present invention.
먼저, 인접하는 두 해쉬 트리의 사이즈를 확인한다(S501). 즉, 일련번호가 t-1인 해쉬 트리와 일련번호가 t인 해쉬 트리 각각에 대하여 데이터가 저장된 리프 노드가 몇 개인지 확인하는 것이다.First, the sizes of two adjacent hash trees are checked (S501). That is, the number of leaf nodes in which data is stored for each hash tree of serial number t-1 and a hash tree of serial number t is checked.
그리고, 두 해쉬 트리 사이즈의 합이 총 리프 노드의 수(2n-1) 이하인지 확인한다(S503).Then, it is checked whether the sum of the two hash tree sizes is equal to or less than the total number of leaf nodes (2 n-1 ) (S503).
도 12a를 참조하면, 깊이 3인 해쉬 트리 t-1의 사이즈는 2이고, 깊이 3인 해쉬 트리 t의 사이즈는 1로, 두 해쉬 트리 사이즈의 합(3)이 총 리프 노드의 수(4)보다 작은 것을 알 수 있다.Referring to FIG. 12A, the size of the hash tree t-1 having a depth of 3 is 2, and the size of the hash tree t having a depth of 3 is 1, and the sum of the two hash tree sizes (3) is the total number of leaf nodes (4). You can see that it is smaller.
이와 같이, 두 해쉬 트리 사이즈의 합이 총 리프 노드의 수 이하인 경우에는, 데이터가 저장된 리프 노드들을 기 저장된 순서를 유지하면서 재배열하고(도 12b 참조)(S505), 총 리프 노드의 수(2n-1)에서 두 해쉬 트리 사이즈를 감산한 만큼의 빈 리프 노드를 추가한다(도 12b의 경우 1개의 빈 리프 노드 추가)(S507).As such, when the sum of the two hash tree sizes is equal to or less than the total number of leaf nodes, the leaf nodes in which data is stored are rearranged while maintaining the pre-stored order (see FIG. 12B) (S505), and the total number of leaf nodes (2). n-1 ) adds empty leaf nodes by subtracting two hash tree sizes (add one empty leaf node in FIG. 12B) (S507).
다음, 해쉬 트리의 일련번호를 t-1로 갱신하고, 상위 노드로부터 루트 노드에 이르기까지의 해쉬값을 갱신한 다음(S511, S513), 루트 노드 해쉬값에 대한 전자서명을 수행한다(S515).Next, the serial number of the hash tree is updated to t-1, and the hash values from the upper node to the root node are updated (S511 and S513), and the digital signature on the root node hash value is performed (S515). .
그리고, 타 해쉬 트리로 병합되어 모든 리프 노드가 빈 리프 노드가 된 해쉬 트리 t를 삭제한다(S517).Then, the hash tree t is merged into another hash tree and all leaf nodes become empty leaf nodes (S517).
이와 같이 함으로써, 해쉬 트리의 수가 불필요하게 증가하는 것을 방지할 수 있음은 물론, 전자 문서를 일련번호에 따라 체계적으로 관리할 수 있다.By doing in this way, an unnecessary increase in the number of hash trees can be prevented and an electronic document can be managed systematically according to a serial number.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, those skilled in the art will appreciate that the present invention can be implemented in other specific forms without changing the technical spirit or essential features thereof. Therefore, the above-described embodiments are to be understood as illustrative in all respects and not as restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.
본 발명에 의하면, 저렴한 비용으로 방대한 양의 전자문서를 안전하게 보관 및 관리할 수 있다.According to the present invention, a large amount of electronic documents can be safely stored and managed at low cost.
아울러, 해쉬 트리 구조의 루트 노드에 대해서만 전자서명을 수행하기 때문에, 전자서명 유효 기간 만료시 루트 노드에 대한 전자서명을 갱신하는 것 만으로 모든 전자문서에 대한 위조 또는 변조를 방지할 수 있다.In addition, since the digital signature is performed only for the root node of the hash tree structure, forgery or tampering with all the electronic documents can be prevented only by updating the digital signature for the root node when the digital signature validity period expires.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060093079A KR100826250B1 (en) | 2006-09-25 | 2006-09-25 | Electronic document management device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060093079A KR100826250B1 (en) | 2006-09-25 | 2006-09-25 | Electronic document management device and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080027660A KR20080027660A (en) | 2008-03-28 |
KR100826250B1 true KR100826250B1 (en) | 2008-04-29 |
Family
ID=39414516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060093079A KR100826250B1 (en) | 2006-09-25 | 2006-09-25 | Electronic document management device and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100826250B1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100955189B1 (en) * | 2008-08-11 | 2010-04-29 | 엔에이치엔(주) | Method and system for generating signature data set for document retrieval |
KR101419428B1 (en) * | 2012-10-17 | 2014-07-17 | 주식회사 리얼타임테크 | Apparatus for logging and recovering transactions in database installed in a mobile environment and method thereof |
KR101837168B1 (en) | 2017-04-18 | 2018-03-09 | 주식회사 코인플러그 | Method for approving the use of credit card by using token id based on blockchain and server using the same |
KR101877345B1 (en) * | 2017-04-18 | 2018-07-12 | 주식회사 코인플러그 | Method for approving the use of credit card by using token id based on blockchain and merkle tree structure related thereto, and server using the same |
TWI708154B (en) * | 2019-04-24 | 2020-10-21 | 國際信任機器股份有限公司 | Verifying system and method applied for cooperation between blockchain and off-chain devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005051734A (en) | 2003-07-15 | 2005-02-24 | Hitachi Ltd | Electronic document authenticity assurance method and electronic document disclosure system |
KR20060009205A (en) * | 2004-07-21 | 2006-01-31 | 소프트포럼 주식회사 | A computer-readable recording medium that records signatures and digital signatures using verification attributes and programs for executing them. |
US20060075245A1 (en) | 2004-09-30 | 2006-04-06 | Meier Beat U | Long-term authenticity proof of electronic documents |
JP2006186585A (en) | 2004-12-27 | 2006-07-13 | Canon System Solutions Inc | Information processor and information processing method |
-
2006
- 2006-09-25 KR KR1020060093079A patent/KR100826250B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005051734A (en) | 2003-07-15 | 2005-02-24 | Hitachi Ltd | Electronic document authenticity assurance method and electronic document disclosure system |
KR20060009205A (en) * | 2004-07-21 | 2006-01-31 | 소프트포럼 주식회사 | A computer-readable recording medium that records signatures and digital signatures using verification attributes and programs for executing them. |
US20060075245A1 (en) | 2004-09-30 | 2006-04-06 | Meier Beat U | Long-term authenticity proof of electronic documents |
JP2006186585A (en) | 2004-12-27 | 2006-07-13 | Canon System Solutions Inc | Information processor and information processing method |
Also Published As
Publication number | Publication date |
---|---|
KR20080027660A (en) | 2008-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141627B2 (en) | Providing a user access to data files distributed in a plurality of different types of user devices | |
CN103473251B (en) | The method and system of the file system snapshot using selectivity tuple versioned is provided in the computing environment using processing apparatus | |
US8683228B2 (en) | System and method for WORM data storage | |
CN109857724B (en) | Method and equipment for supporting various databases based on block chain | |
KR102017739B1 (en) | Blockchain system and method of creating blockchain | |
US9047330B2 (en) | Index compression in databases | |
US20080059420A1 (en) | System and Method for Providing a Trustworthy Inverted Index to Enable Searching of Records | |
US20140122591A1 (en) | Content sharing with limited cloud storage | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
CN110673800B (en) | Data operation method, device and equipment of file system and readable storage medium | |
KR100826250B1 (en) | Electronic document management device and method | |
CN109298835B (en) | Data archiving processing method, device, equipment and storage medium of block chain | |
CN102184211A (en) | File system, and method and device for retrieving, writing, modifying or deleting file | |
JP2005267600A5 (en) | ||
CN109446177B (en) | Method and device for realizing number quota of directory files of distributed file system | |
CN102930060A (en) | Method and device for performing fast indexing of database | |
CN106407355A (en) | Data storage method and device | |
CN106682186A (en) | File access control list (ACL) management method and related device and system | |
CN109522271B (en) | Batch insertion and deletion method and device for B + tree nodes | |
JP2005302038A (en) | Method and system for renaming consecutive key in b-tree | |
KR100452085B1 (en) | Search System For Providing Information of Keyword Input Frequency By Category And Method Thereof | |
US7725439B2 (en) | Handling column renaming as part of schema evolution in a data archiving tool | |
EP4433910A1 (en) | Centralized database management system for database synchronization using resizable invertible bloom filters | |
CN112749144B (en) | System and method for storing persistent file based on blockchain | |
CN111259017A (en) | Order retrieval method, computer device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20060925 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20070927 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20080123 |
|
PG1501 | Laying open of application | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20080423 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20080424 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20111025 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20120424 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130418 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20130418 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140423 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20140423 Start annual number: 7 End annual number: 7 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20160309 |