WO2016076460A1 - 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법 - Google Patents

일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법 Download PDF

Info

Publication number
WO2016076460A1
WO2016076460A1 PCT/KR2014/010925 KR2014010925W WO2016076460A1 WO 2016076460 A1 WO2016076460 A1 WO 2016076460A1 KR 2014010925 W KR2014010925 W KR 2014010925W WO 2016076460 A1 WO2016076460 A1 WO 2016076460A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
segments
size
fragments
size information
Prior art date
Application number
PCT/KR2014/010925
Other languages
English (en)
French (fr)
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 PCT/KR2014/010925 priority Critical patent/WO2016076460A1/ko
Publication of WO2016076460A1 publication Critical patent/WO2016076460A1/ko

Links

Images

Classifications

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

Definitions

  • the present invention relates to a file distribution management apparatus and a method thereof, and more particularly, to a file distribution management apparatus and a method that can recover to a predetermined number of file fragments.
  • the secret dispersion method generates a plurality of distributed information (e.g., SH (1), ..., SH (N)) from the secret information MSK, and stores them in a plurality of distributed storage devices (e.g., PA (1), . , PA (N)) to manage the distributed information SH (1),...
  • the secret information MSK can be restored only when a predetermined number or more of information can be obtained from SH (N).
  • the secret distribution method has been applied to many distributed management devices due to the advantage of ensuring the confidentiality, availability, and integrity of stored values.
  • the stored file F is divided into small unit values (for example, F [1], F [2],..., F [s], where s is the number of values constituting the file), and then the respective values.
  • the F [i] 's are distributed using a secret variance method.
  • n file fragments f (1), f (2),... are connected by f [s, m] (m 1,2,..., n) produces f (n).
  • the file management method can provide the confidentiality of stored files because less than a certain number of file fragments are not known and the contents of the entire file can be provided. The ability to recover the files ensured availability.
  • the file fragment is the same size as the original file, which may increase the waste of storage space and communication cost.
  • An object of the present invention is to provide a file distribution management apparatus and method for quickly recovering a distributed file while ensuring the confidentiality, integrity, and availability of the file when storing the file in the file system.
  • Another object of the present invention is to provide a file distribution management apparatus and method for allowing a user to arbitrarily adjust the size of a file block to determine a security level according to a file.
  • the file distribution management method of the present invention comprises the steps of: dividing a file into n C k-1 segments; And wherein n C k-1 of one of the segments comprises the step of generating n number of file fragments containing each of n-1 C k-1 segments, wherein n is an integer greater than zero, wherein k is greater than zero An integer greater than or equal to n and any k of the n file fragments include the n C k ⁇ 1 segments.
  • n C k-1 'C' means a combination.
  • n C k-1 is the number of cases where k-1 is selected without considering the order among n different pieces.
  • the method further includes rearranging the arrangement order of the blocks included in the file in units of blocks before dividing the file into n C k-1 segments.
  • the file is generated by selectively adding a dummy area to the original file so that the size of the file becomes an integer multiple of the size of the blocks according to the size of blocks included in the file.
  • the rearranging order of the blocks included in the file in units of blocks may further include determining sizes of the blocks.
  • the rearranging order of the blocks included in the file in block units may be rearranged using a rearrangement algorithm that is reversible and outputs different results at each execution.
  • dividing the file into n C k-1 segments are, in the file to each of the n C k-1 of the segment so as to have the size of a predetermined ratio n C k-1 segments Dividing into;
  • the generating of the n file fragments may include adding size information indicating a size of a portion excluding a dummy area in the file or a size of an original file of the file to each of the n file fragments. Include.
  • the generating of the n file fragments may include size information indicating a size of a portion excluding a dummy area in the file or a size of an original file of the file in each of the n file fragments. Adding size information indicating sizes of segments included in each of the file fragments.
  • the method may further include transmitting the generated n file fragments to n distributed storage devices.
  • receiving k file fragments from at least k distributed storage devices among the n distributed storage devices Reading size information indicating a size of a portion excluding a dummy area in the file or a size of an original file of the file from the size information area of the k file pieces, and removing the size information area from the k file pieces. step; Dividing n C k-1 reconstruction segments from k file fragments from which the size information area has been removed; Restoring the file by concatenating the n C k-1 restore segments.
  • the step of restoring the file to couple the n C k-1 of restoration segment, said n C k-1 and then connecting the two restoring segments rearranges the layout order of the blocks block by block in step It includes.
  • the method may further include restoring the original file by removing the dummy area from the restored file with reference to the size information.
  • each of the n C k-1 reconstruction segments has sizes of a predetermined ratio.
  • each of the n C k-1 reconstruction segments has arbitrary sizes.
  • the size information may include information indicating sizes of the n C k-1 reconstruction segments included in the k file pieces.
  • the file distribution management apparatus of the present invention rearranges the arrangement order of blocks included in the first file in block units to generate a second file, and divides the second file into n C k-1 segments.
  • Installment File fragment generating unit for generating n pieces file containing each of the C k n-1 segments of the n-1 C k-1 segments;
  • a communication unit for transmitting the generated n file fragments to n distributed storage devices, wherein n is an integer greater than 0, k is an integer greater than 0 and less than or equal to n, and the n file fragments. Any of the k file fragments include the n C k-1 segments.
  • the processor may receive k file fragments from at least k of the n distributed storage devices through the communication unit, and extract a dummy area in the first file from the size information area of the k file fragments.
  • Read size information indicating the size of the excluded portion or the size of the original file of the first file, remove the size information area from the k file pieces, and remove the size information area from k file pieces from which the size information area is removed.
  • the apparatus may further include a file restoration unit arranged to restore the first file.
  • the computer-readable recording medium generates a second file by rearranging the arrangement order of blocks included in the first file in block units, and dividing the second file into n C k-1 segments. a step and a step of generating n number of file fragments containing each of said n C k-1 of segments of the n-1 C k-1 of segment, and wherein n is an integer greater than zero, wherein k is A computer program for executing a file distribution management method, which is an integer greater than 0 and less than or equal to n, wherein any of the n file fragments includes the n C k-1 segments.
  • the method may further include receiving k file fragments from at least k distributed storage units among the n distributed storage devices, wherein the size information area of the k file fragments excludes a dummy region from the first file. Reading size information indicating a size or a size of an original file of the first file, removing the size information area from the k file pieces, n C from the k file pieces from which the size information area has been removed connecting step, said n C k-1 of restored segment for dividing the k-1 of restoration segments re-arranged in order of the blocks included in the step and the second file, the recovered to restore the second file on a block-by-block basis Recording a computer program for executing the file distribution management method further comprising arranging and restoring the first file.
  • the present invention since one file is divided and stored in several devices, when data is leaked from less than k devices, the original file cannot be restored, thereby improving security.
  • the amount of calculation is proportional to F only by using the combinational method, the amount of computation and complexity can be reduced as compared with the conventional secret dispersion method.
  • the user can arbitrarily adjust the size of the file block, the user can determine the security level of the distributed file.
  • FIG. 1 is a diagram illustrating a file distribution management system 1000 and its internal configuration according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an internal configuration of the file distribution management apparatus 1100 according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a file distribution management method according to an exemplary embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a method of generating a file fragment according to an exemplary embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a method of restoring an original file according to an exemplary embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating a method of generating a file fragment according to an embodiment of the present invention.
  • FIG. 7 is a block diagram illustrating a method of generating a file fragment according to another embodiment of the present invention.
  • the file distribution management system 1000 includes a file distribution management device 1100 and n file distribution storage devices 1100a, 1100b,..., 1100n.
  • the file distribution management system 1000 distributes and stores a plurality of file pieces generated from an original file in n distributed storage devices 1100a, 1100b,..., 1100n. And, in order for the file distribution management system 1000 to restore the original file from the distributed file fragments, k file fragments stored in arbitrary distributed storage devices of k (k is an integer less than or equal to n greater than 0) may be stored. Must be obtained. That is, when acquiring k file fragments in the file distribution management system 1000, the original file may be completely restored, but when acquiring only fewer file fragments, the original file may not be completely restored.
  • Each of the distributed storage devices 1100a, 1100b,..., 1100n stores a file fragment generated from an original file.
  • a part or all of the stored file fragments are provided to the file distribution management device 1100.
  • the distributed storage devices 1100a, 1100b,..., 1100n are sufficient to be configured as a device capable of separately storing each file fragment even without a special function.
  • the distributed storage devices 1100a, 1100b,..., 1100n are represented in a physically separated form, but are not limited thereto.
  • each of the distributed storage devices 1100a, 1100b,..., 1100n may have a separate communication unit or communication interface for communicating with the file distribution management device 1100.
  • the file distribution management apparatus 1100 receives file fragments from distributed storage devices and restores an original file by using the received file fragments. A more detailed description of the file distribution management apparatus 1100 is provided with reference to FIG. 2 below.
  • the file distribution managing apparatus 1100 may include a file divider 1110, a file fragment generator 1120, a communicator 1130, a file restorer 1140, a size information manager 1150, and a storage 1160. It may be, but is not limited thereto.
  • the file distribution management apparatus 1100 may further include a separate controller (not shown) that controls the overall operation of the file distribution management apparatus 1100.
  • the file divider 1110 divides the original file to generate n C k-1 segments. Also, as an example embodiment, before dividing the original file, the file dividing unit 1110 performs rearrangement in which the order of the original files is shuffled in units of blocks of a predetermined size (for example, 2 bytes), and rearranged.
  • the original file can be split to create n C k-1 segments.
  • the size of the block may be 1 byte or more than 2 bytes, and as the size of the block increases, the time required for rearrangement increases.
  • the file dividing unit 1110 may generate a modified file by adding a dummy area to the original file, and divide the modified file to generate n C k-1 segments. Also, according to an embodiment, before dividing the modified file, the file division unit 1110 performs a rearrangement in which the order of the modified files is shuffled in units of blocks of a predetermined size, and divides the rearranged modified files by n C. You can create k-1 segments.
  • the size of a block that is a reference for rearrangement may be referenced from the size information manager 1150.
  • the size of a block that is a reference for rearrangement may be input from a user through a predetermined interface (not shown).
  • the file fragment generator 1120 generates n file fragments from the n C k ⁇ 1 segments generated by the file divider 1110. However, when selecting any k file fragments among n file fragments, n file fragments are generated such that the selected k file fragments include all n C k-1 segments. Thus, n file fragments may include segments that overlap each other.
  • the communication unit 1130 performs a communication between the file distribution management apparatus 1100 and an external object.
  • the file distribution management apparatus 1100 may communicate with the distributed storage devices 1100a, 1100b,..., 1100n (see FIG. 1) through the communication unit 1130.
  • the communication unit 1130 may include all communication means capable of networking or communicating with the outside, and may include a communication interface accompanying the communication means.
  • the communication interface or communication method used by the communication unit 1130 may include wired communication, wireless communication, 3G, 4G, or various other communication interfaces or communication methods.
  • the file restorer 1140 receives at least k file fragments from the distributed storage devices 1100a, 1100b,..., 1100n (see FIG. 1), and restores an original file from the received file fragments. A detailed method of restoring a file by the file restoration unit 1140 will be described later with reference to FIG. 5.
  • the storage unit 1160 stores the data received by the file distribution management device 1100 or data processed by the file distribution management device 1100.
  • the storage unit 1160 may store data obtained in the process of performing a function of the file divider 1110, the file fragment generator 1120, or the file restorer 1140.
  • the size information manager 1150 stores the size information and provides the stored size information to each part of the file distribution management device 1100.
  • the size information stored by the size information manager 1150 may vary.
  • the size information manager 1150 may store information (eg, the size of the dummy area) of the dummy area added by the file divider 1110.
  • the size information manager 1150 may store size information of a block that is a reference when the file divider 1110 rearranges the order of files in one embodiment.
  • the size information manager 1150 may include information about the segments divided by the file divider 1110 (for example, the size of the segments) or information about the file fragments generated by the file fragment generator 1120. (For example, the size of a file fragment).
  • the size information manager 1150 may include size information (for example, size information of a file fragment, size information of a segment included in the file fragment, or file reconstruction from file fragments received through the communication unit 1130). Read and store information about the size of a block to perform an array.
  • size information for example, size information of a file fragment, size information of a segment included in the file fragment, or file reconstruction from file fragments received through the communication unit 1130.
  • FIG. 3 is a detailed operation method and contents of the file distribution management apparatus and method according to the present invention.
  • n number of distributed storage devices
  • M 1 , M 2 ,. , M n total n distributed storage devices
  • k The minimum number of file fragments needed to successfully recover the original file. However, k is an integer greater than 0 and less than or equal to n.
  • F ⁇ A rearranged file that performs a rearrangement that shuffles the order of the file (original file or modified file) in blocks.
  • F ' may be the same file as F or F'.
  • B '[i] The i'th block of the correction file F' (that is, F 'is represented by B' [1] ⁇ B '[2] ⁇ ... ⁇ B' [s]).
  • X A ⁇ B means parallel connection (X is configured with B located next to A).
  • N (1, 2, 3,..., n ⁇
  • T set of all subsets with n-k + 1 elements of N
  • the initialization process is a process for determining a distribution table (DT) and a key (e) for randomly rearranging.
  • the distribution table DT and the key e generated in the above manner are stored in the file distribution management apparatus 1100 (see FIG. 1), the distributed storage devices 1100a, 1100b,..., 1100n, and FIG. 1. To other authorized devices.
  • the file distribution management method includes steps S110 to S140.
  • Steps S110 and S120 are distributed steps of distributing an original file into n file pieces and storing the same in n distributed storage devices.
  • Steps S130 and S140 are restoration steps for receiving k file fragments from at least k distribution devices and restoring the original file.
  • the file distribution management apparatus 1100 (see FIG. 1) generates n file fragments from an original file. At this time, n file fragments are generated to satisfy the following conditions.
  • the original file can be successfully restored from any k file fragments of n file fragments, but the original file cannot be successfully restored from any k-1 file fragments.
  • a detailed method of generating the n file fragments by the file distribution management apparatus 1100 will be described later with reference to FIG. 4.
  • the file distribution managing apparatus 1100 distributes and stores the generated n file pieces to n distributed storage devices 1100a, 1100b,..., 1100n (see FIG. 1).
  • step S120 When the step S120 is completed, the distribution step of the original file is completed. Subsequently, steps S130 and below are performed to restore the original file from the distributed file fragments.
  • the file distribution managing apparatus 1100 receives k file fragments from k distributed storage devices 1100a, 1100b,..., 1100k.
  • the k file fragments contain all the blocks that make up the original file.
  • the file distribution management apparatus 1100 restores the original file from the received k file fragments.
  • the process of restoring the original file from the file fragments is similar to the reverse of the process of creating file fragments from the original file. A detailed method of restoring the original file by the file distribution management apparatus 1100 will be described later with reference to FIG. 5.
  • the file distribution management method since one file is divided and stored in a plurality of devices, when data is leaked from less than k devices, the original file cannot be restored, thereby improving security. In addition, even if there are k or more devices, since the contents of the files are mixed, it is difficult to recover the original file, which may further improve security. In addition, even if part of a file is lost, the original file can be recovered through the remaining k files, thereby improving availability. In addition, since the amount of calculation is proportional to F only by using the combinational method, the amount of computation and complexity can be reduced as compared with the conventional secret dispersion method. In addition, since the user can arbitrarily adjust the size of the file block, the user can determine the security level of the distributed file.
  • the following describes a specific method for distributing an original file into a plurality of file fragments in the present invention.
  • FIG. 4 is a flowchart illustrating a method of generating a file fragment according to an exemplary embodiment of the present invention.
  • the method for generating a file fragment includes steps S210 to S270.
  • the file distribution management apparatus 1100 determines the size b of the block.
  • the size b of the block may be determined by separate size information stored in the file distribution management apparatus 1100.
  • the size b of the block may be determined according to a predetermined value input by the user.
  • the smaller the block size the smaller the unit for randomly rearranging the file, so that the security can be improved.
  • the block size is small, there is a disadvantage in that the amount of computation to be processed by the file distribution management apparatus 1100 increases. In other words, if the block size is set large, the security is lowered but the amount of calculation is reduced. On the other hand, if the block size is set small, the security is increased but the calculation amount is increased.
  • the user or the file distribution management device 1100 may appropriately select the size of the block as needed.
  • the file distribution managing apparatus 1100 determines whether the size of the original file F is a multiple of the size b of the block. If the size of the original file (F) is a multiple of the size (b) of the block, the file fragment generation method proceeds to step S240. Otherwise, the file fragment generation method proceeds to step S230.
  • the file distribution managing apparatus 1100 In operation S230, the file distribution managing apparatus 1100 generates a modified file F ′ by adding a dummy area to the original file so that the total size of the file becomes a multiple of the size b of the block.
  • the size of the correction file F ' is a multiple of the size b of the block by the dummy area.
  • the file distribution managing apparatus 1100 rearranges the file (the original file or the modified file) in units of blocks.
  • a later step will be referred to as a modified file by mixing both.
  • the file distribution managing apparatus 1100 randomly rearranges the modified file in units of blocks by using a predetermined key e.
  • Step S240 is an optional step and may be omitted if the block unit rearrangement is not performed before the modification file is divided into segments.
  • the file distribution managing apparatus 1100 divides the rearranged modified file to generate n C k ⁇ 1 segments.
  • the file distribution management apparatus 1100 generates n file fragments from the generated n C k ⁇ 1 segments. However, when selecting any k file fragments among n file fragments, n file fragments are generated such that the selected k file fragments include all n C k-1 segments.
  • each of the n file fragments may include n-1 C k-1 segments.
  • n file fragments may include segments that overlap each other. In this case, size information of segments constituting the file fragment may be added to each file fragment.
  • the file distribution managing apparatus 1100 stores n file pieces in n distributed storage devices.
  • the file fragment generation method described in steps S210 to S270 may be divided into two embodiments according to a method of determining the size of a segment. One is to make the ratio of the size of each segment constant, and the other is to designate the size of each segment arbitrarily. Both methods may be selectively applied to the file fragment generation method of FIG. 4, respectively.
  • a detailed method of implementing steps S210 to S270 according to two methods of determining the size of a segment will be described.
  • the ratio of the size of each segment is predetermined, and a fragment file is generated according to the ratio of the predetermined segment size.
  • n file fragments are generated by the following method.
  • s is the number of blocks constituting the original file (F)
  • f is a value representing the size of the original file (F) in bytes
  • a file in which a dummy area of size s ⁇ b-f bytes is added in front of the file F, and the dummy area is added is called a modification file F ′.
  • the dummy area may be added to the front of the original file F.
  • Each segment is constructed as follows. At this time, Is the largest integer not exceeding x.
  • Each file fragment is composed as follows.
  • the information representing the size (or ratio of the size) of each segment may be stored in the file distribution management apparatus or transmitted to the distributed storage apparatuses for restoring the original file.
  • the size of the segment is not predetermined, and the size of the segment is arbitrarily determined each time a file fragment is generated.
  • s is the number of blocks constituting the original file (F)
  • f is a value representing the size of the original file (F) in bytes
  • a file in which a dummy area of size s ⁇ b-f bytes is added in front of the file F, and the dummy area is added is called a modification file F ′.
  • the dummy area may be added to the front of the original file F.
  • Each segment is composed as follows.
  • Each file fragment is composed as follows.
  • Z is an area indicating the size of the original file F
  • Z j is an area indicating the m j value.
  • randomly rearranging the order of blocks using the key e may be performed according to the following criteria.
  • the following describes a specific method for distributing an original file into a plurality of file fragments in the present invention.
  • the original file restoration method includes steps S310 to S340.
  • the file distribution managing apparatus 1100 separates each file fragment into segments by using the size information of the received file fragment.
  • the size information may include information indicating the size of the file fragment, the size of the segments constituting the file fragment, or the size of the dummy area included in the file fragment.
  • the size information may be stored in the file distribution management device 1100.
  • the file distribution managing apparatus 1100 restores the rearranged modified file F ′ by connecting the separated segments.
  • the modified file F 'obtained by connecting the separated segments may not be rearranged.
  • the file distribution managing apparatus 1100 may rearrange the order of the blocks of the rearranged modified file F ′ by using the key e to restore the modified file F ′. If the modified file F 'obtained by connecting the separated segments is not rearranged, step S330 may be omitted.
  • the file distribution managing apparatus 1100 restores the original file F by removing the dummy area from the modified file F ′.
  • the file distribution managing apparatus 1100 may refer to the size information to remove the dummy area from the modified file F '.
  • the original file restoration method described in steps S310 to S340 may be divided into two embodiments according to the method for determining the size of the segment as described above. One is to make the ratio of the size of each segment constant, and the other is to designate the size of each segment arbitrarily. Both methods may be selectively applied to the original file restoration method of FIG. 5, respectively.
  • a detailed method of implementing steps S310 to S340 according to two methods of determining the size of a segment will be described. In both processes, the input data is any k file fragments.
  • s is the number of blocks constituting the original file (F)
  • f is a value representing the size of the original file (F) in bytes
  • the modified file F 'obtained by concatenating the separated segments may not be rearranged.
  • step 5 Rearrange the blocks of the rearranged modification file F 'using the key e and restore the modification file F'. If the modified file F 'obtained by joining the separated segments is not rearranged, this step 5 may be omitted.
  • the modified file F 'obtained by concatenating the separated segments may not be rearranged.
  • step 5 Rearrange the blocks of the rearranged modification file F 'using the key e and restore the modification file F'. If the modified file F 'obtained by joining the separated segments is not rearranged, this step 5 may be omitted.
  • FIG. 6 and 7 provide a description of an embodiment of generating file fragments from an original file along with the drawings.
  • the distribution table (DT) is as follows.
  • FIG. 6 is a block diagram illustrating a method of generating a file fragment according to an embodiment of the present invention.
  • segments constituting each file fragment have a constant ratio with each other.
  • a modification file 120 is generated by adding a dummy to the original file 110.
  • the rearranged modified file 130 is generated by randomly rearranging the order of the blocks constituting the modified file 120.
  • the predetermined key e may be used to randomly rearrange the order of the blocks. If the rearrangement is not performed, the modification file 120 and the modification file 130 are the same file.
  • the rearranged modification file 130 is divided into ten segments. At this time, each segment is divided so that the ratio of the size is constant, a specific method of dividing each segment follows the same method as described above.
  • Each file fragment has six segments and may include segments that overlap each other to recover the original file from any three file fragments.
  • FIG. 7 is a block diagram illustrating a method of generating a file fragment according to another embodiment of the present invention.
  • segments constituting each file fragment have an arbitrary size.
  • a modification file 220 is generated by adding a dummy to the original file 210.
  • the rearranged modified file 230 is generated by randomly rearranging the order of the blocks constituting the modified file 220.
  • the predetermined key e may be used to randomly rearrange the order of the blocks. If the rearrangement is not performed, the modification file 120 and the modification file 130 are the same file.
  • the rearranged modification file 230 is divided into ten segments.
  • the size of each segment is arbitrarily determined, and a specific method of dividing the segments to have each arbitrary size follows the same method as described above.
  • Each file fragment has six segments and may include segments that overlap each other to recover the original file from any three file fragments.
  • the above-described embodiments may be implemented in the form of program instructions that may be executed through various computer components, and may be recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, or a combination thereof.
  • Computer-readable recording media include, for example, magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. optical media) and storage devices such as ROM, RAM, flash memory, and the like. Such a storage device may be configured to be operated by one or more software modules to perform a process according to the invention and vice versa.
  • the program instructions described herein include not only machine code, such as produced by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • Embodiments of the present invention may be applied to a data sharing system such as a cloud, a distributed storage device, a home network, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에서는 주어진 파일을 이용하여 소정의 파일 조각들을 생성하되, 파일 조각들 중 일정 수 이상의 파일로부터는 원래의 파일로 복구가 가능하지만, 일정 수 미만의 파일로부터는 파일 복구가 불가능하도록 파일을 관리하는 파일 분산 관리 장치 및 방법에 관한 것이다. 또한, 본 발명에서는 파일 조각 생성시 원본 파일의 순서를 섞어 보안성을 향상시킨다. 본 발명의 일 실시예에서 원본 파일의 순서를 섞는 방법에 있어서, 원본 파일의 순서는 블록 단위로 섞이고, 블록의 크기는 사용자가 임의로 선택할 수 있다. 또한, 원본 파일들로부터 복수의 세그먼트를 생성하여 파일 조각들을 구성하되, 복수의 세그먼트들의 크기는 일정한 비율을 갖거나 또는 임의의 값을 가질 수 있다.

Description

일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법
본 발명은 파일 분산 관리 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 그 방법에 관한 것이다.
비밀 정보를 보관하는 경우, 비밀 정보가 분실되거나 파괴될 위험성은 항상 존재한다. 이와 동시에 비밀정보가 도난될 수 있는 위험성 역시 존재한다. 분실 또는 파괴의 위험성은 비밀 정보를 복수 곳의 장소에 보관해 둠으로써 줄일 수 있지만, 이 경우 도난의 위험성이 증가하는 단점이 있다. 이들 위험성을 함께 해결하는 방법의 하나로서 비밀 분산법(Secret Sharing)이 제시되었다.
비밀 분산법은 비밀 정보 MSK로부터 복수의 분산 정보(예를 들어, SH(1), …, SH(N))를 생성하고, 이들을 복수의 분산 저장 장치(예를 들어, PA(1), …, PA(N))에 분산하여 관리시키고, 이들 분산 정보 SH(1), …, SH(N) 중 소정 수 이상의 정보를 취득할 수 있는 경우에만, 비밀 정보 MSK를 복원할 수 있는 방식이다.
비밀 분산법은 저장되는 값의 기밀성, 가용성, 무결성을 모두 보장해줄 수 있다는 장점 덕분에 많은 분산 관리 장치에 적용되어 왔다. 저장된 파일(F)을 작은 단위인 값(예를 들어, F[1], F[2], …, F[s], 단, s는 파일을 이루는 값의 개수)으로 쪼갠 뒤, 각각의 값 F[i]들을 비밀 분산법을 이용하여 복수의 분산 정보 f[i,1], f[i,2], …, f[i,n] (단, n은 저장 장치의 개수)을 만들어 내고, 분산 정보를 f(s) = f[1,m] || f[2,m] || … || f[s,m] (단, m=1,2,…,n) 과 같이 연결하여 n개의 파일 조각 f(1), f(2), …, f(n)을 만들어 낸다.
기존 비밀 분산법이 적용된 파일 관리 방법에서는 일정 수 미만의 파일 조각으로 전체 파일의 내용을 알 수 없으므로 저장된 파일의 기밀성을 제공할 수 있었고, 일정 수 미만의 파일 조각이 없어지거나 손상되더라도 나머지 파일 조각으로 파일을 복구할 수 있기 때문에 가용성을 보장해줄 수 있었다. 그러나, 최근 들어 저장되는 파일의 크기가 커지면서 연산량이 많은 기존 비밀 분산법을 적용하기에는 무리가 있음과 동시에 파일 조각이 원래의 파일과 크기가 동일하여 저장 공간 및 통신 비용의 낭비가 커질 가능성이 있다.
본 발명의 목적은 파일 시스템의 파일 저장시 파일의 기밀성, 무결성, 가용성을 모두 보장함과 동시에 분산된 파일의 복구를 빠르게 수행하는 파일 분산 관리 장치 및 그 방법을 제공하는 데 있다.
또한, 사용자가 파일 블록의 크기를 임의로 조정할 수 있어서 파일에 따라 보안 수준을 결정할 수 있는 파일 분산 관리 장치 및 그 방법을 제공하는 데 있다.
본 발명의 파일 분산 관리 방법은 파일을 nCk-1개의 세그먼트들로 분할하는 단계; 및 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 단계를 포함하고, 상기 n은 0보다 큰 정수이고, 상기 k는 0보다 크고 상기 n이하인 정수이고, 상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함된다. 상기 nCk-1에서, 'C'란 조합(Combination)을 의미한다. 즉, nCk-1 란 서로 다른 n개에서 순서를 생각하지 않고 k-1개를 뽑는 경우의 수이다.
실시 예로서, 파일을 nCk-1개의 세그먼트들로 분할하는 단계 전에, 상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계를 더 포함한다.
실시 예로서, 상기 파일은 상기 파일에 포함된 블록들의 크기에 따라, 상기 파일의 크기가 상기 블록들의 크기의 정수배가 되도록 원본 파일에 더미 영역을 선택적으로 부가하여 생성된다.
실시 예로서, 상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계는, 상기 블록들의 크기를 결정하는 단계를 더 포함한다.
실시 예로서, 상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계는, 가역적이고 매 수행시마다 서로 다른 결과를 출력하는 재배열 알고리즘을 이용하여 상기 블록들의 배치 순서를 재배열한다.
실시 예로서, 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계는, 상기 nCk-1개의 세그먼트들 각각이 미리 결정된 비율의 크기들을 갖도록 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계를 포함한다.
실시 예로서, 상기 n개의 파일 조각들을 생성하는 단계는, 상기 n개의 파일 조각들 각각에 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보를 부가하는 단계를 포함한다.
실시 예로서, 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계는, 상기 nCk-1개의 세그먼트들 각각이 임의의 크기들을 갖도록 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계를 포함한다.
실시 예로서, 상기 n개의 파일 조각들을 생성하는 단계는, 상기 n개의 파일 조각들 각각에, 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보 및, 상기 n개의 파일 조각들 각각이 포함하는 세그먼트들의 크기들을 나타내는 크기 정보를 부가하는 단계를 포함한다.
실시 예로서, 상기 생성된 n개의 파일 조각들을 n개의 분산 저장 장치들에 전송하는 단계를 더 포함한다.
실시 예로서, 상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하는 단계; 상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하는 단계; 상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하는 단계; 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 파일을 복원하는 단계;를 더 포함한다.
실시 예로서, 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 파일을 복원하는 단계는, 상기 nCk-1 개의 복원 세그먼트들을 연결한 후, 블록들의 배치 순서를 블록 단위로 재배열하는 단계를 포함한다.
실시 예로서, 상기 크기 정보를 참조하여, 상기 복원된 파일로부터 상기 더미 영역을 제거하여 원본 파일을 복원하는 단계를 더 포함한다.
실시 예로서, 상기 nCk-1 개의 복원 세그먼트들 각각은 미리 결정된 비율의 크기들을 갖는다.
실시 예로서, 상기 nCk-1 개의 복원 세그먼트들 각각은 임의의 크기들을 갖는다.
실시 예로서, 상기 크기 정보는, 상기 k개의 파일 조각들에 포함된 상기 nCk-1 개의 복원 세그먼트들의 크기들을 나타내는 정보를 포함한다.
본 발명의 파일 분산 관리 장치는 제 1 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 제 2 파일을 생성하고, 상기 제 2 파일을 nCk-1개의 세그먼트들로 분할하는 파일 분할부; 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 파일 조각 생성부; 및 상기 생성된 n개의 파일 조각들을 n개의 분산 저장 장치들에 전송하는 통신부를 포함하되, 상기 n은 0보다 큰 정수이고, 상기 k는 0보다 크고 상기 n이하인 정수이고, 상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함된다.
실시 예로서, 상기 통신부를 통해 상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하고, 상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 제 1 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 제 1 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하고, 상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하고, 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 제 2 파일을 복원하고, 상기 복원된 제 2 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 상기 제 1 파일을 복원하는 파일 복원부를 더 포함한다.
본 발명에 따른 컴퓨터 판독 가능한 기록 매체는 제 1 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 제 2 파일을 생성하는 단계, 상기 제 2 파일을 nCk-1개의 세그먼트들로 분할하는 단계 및 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 단계를 포함하고, 상기 n은 0보다 큰 정수이고, 상기 k는 0보다 크고 상기 n이하인 정수이고, 상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함되는 파일 분산 관리 방법을 실행하기 위한, 컴퓨터 프로그램을 기록한다.
실시 예로서, 상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하는 단계, 상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 제 1 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 제 1 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하는 단계, 상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하는 단계, 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 제 2 파일을 복원하는 단계 및 상기 복원된 제 2 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 상기 제 1 파일을 복원하는 단계를 더 포함하는 파일 분산 관리 방법을 실행하기 위한, 컴퓨터 프로그램을 기록한다.
본 발명에 따르면, 하나의 파일이 여러 대의 기기에 나뉘어서 저장되므로 k개 미만의 기기에서 데이터가 유출되었을 경우, 원래 파일의 복원이 불가능하므로 보안성이 향상되는 효과가 있다.
또한, k개 이상의 기기가 있다고 하더라도, 파일 내용의 순서가 섞여 있으므로 원본 파일의 복구가 어려워 보안성이 더욱 향상될 수 있다.
또한, 파일의 일부가 손실되는 경우에도, 나머지 k개의 파일을 통해 원본 파일을 복구할 수 있어 가용성이 향상될 수 있다.
또한, 조합적인 방법을 이용함으로써 연산량이 오로지 F에만 비례하므로, 종래의 비밀분산법에 비해 연산량 및 복잡성이 감소할 수 있다..
또한, 사용자가 파일 블록의 크기를 임의로 조정할 수 있으므로, 분산된 파일의 보안 수준을 사용자가 결정할 수 있다.
도 1은 본 발명의 일 실시예에 따른, 파일 분산 관리 시스템(1000) 및 그 내부 구성을 나타낸 도면이다
도 2는 본 발명의 일 실시 예에 따른, 파일 분산 관리 장치(1100)의 내부 구성을 나타낸 도면이다.
도 3은 본 발명의 실시 예에 따른 파일 분산 관리 방법을 나타내는 순서도이다.
도 4는 본 발명의 실시 예에 따른 파일 조각 생성 방법을 나타내는 순서도이다.
도 5는 본 발명의 실시 예에 따른 원본 파일 복원 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시 예에 따라 파일 조각을 생성하는 방법을 나타내는 블록도이다.
도 7은 본 발명의 다른 실시 예에 따라 파일 조각을 생성하는 방법을 나타내는 블록도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 앞의 일반적인 설명 및 다음의 상세한 설명들은 모두 청구된 발명의 부가적인 설명을 제공하기 위한 예시적인 것이다. 그러므로 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 여기서 소개되는 실시 예는 개시된 내용이 완전해 질 수 있도록, 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 부분이 어떤 구성요소를 포함한다고 언급되는 경우에, 이는 그 외의 다른 구성요소를 더 포함할 수도 있다는 것을 의미한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 파일 분산 관리 시스템(1000) 및 그 내부 구성을 나타낸 도면이다. 파일 분산 관리 시스템(1000)은 파일 분산 관리 장치(1100) 및 n개의 파일 분산 저장 장치들(1100a, 1100b, …, 1100n)로 구성된다.
파일 분산 관리 시스템(1000)은 원본 파일로부터 생성한 복수의 파일 조각들을 n개의 분산 저장 장치들(1100a, 1100b, …, 1100n)에 분산하여 저장한다. 그리고, 파일 분산 관리 시스템(1000)이 분산된 파일 조각들로부터 원본 파일을 복원하기 위해서는, k개(k는 0보다 큰 n이하의 정수)의 임의의 분산 저장 장치들에 저장된 k개의 파일 조각들을 획득하여야 한다. 즉, 파일 분산 관리 시스템(1000)에서 k개의 파일 조각들을 획득하는 경우 원본 파일이 완전히 복원될 수 있지만, k개보다 적은 수의 파일 조각들만을 획득하는 경우 원본 파일은 완전히 복원되지 않는다.
분산 저장 장치들(1100a, 1100b, …, 1100n) 각각은 원본 파일로부터 생성된 파일 조각을 저장한다. 그리고, 파일 분산 관리 장치(1100)의 제어 또는 파일 관리 장치(1100)로부터의 요청에 응답하여 저장된 파일 조각의 일부 또는 전부를 파일 분산 관리 장치(1100)에 제공한다.
분산 저장 장치들(1100a, 1100b, …, 1100n)은 특별한 기능이 없더라도 각각의 파일 조각을 분리하여 저장할 수 있는 장치로서 구성되면 충분하다. 도 1에서, 분산 저장 장치들(1100a, 1100b, …, 1100n)은 물리적으로 분리된 형태로 표현되어 있지만, 이에 한정되는 것은 아니며, 분산 저장 장치들(1100a, 1100b, …, 1100n)은 1개의 물리적 장치에서 논리적으로 분리된 형태로도 가능할 수 있다.
일 실시예에서, 분산 저장 장치들(1100a, 1100b, …, 1100n) 각각은 파일 분산 관리 장치(1100)와의 통신을 위한 별도의 통신부 또는 통신 인터페이스를 구비할 수 있다.
파일 분산 관리 장치(1100)는 분산 저장 장치들로부터 파일 조각들을 수신하고, 수신된 파일 조각들을 이용하여 원본 파일을 복원한다. 파일 분산 관리 장치(1100)에 대한 더욱 상세한 설명은 아래에서 도 2를 참조하여 제공된다.
도 2는 본 발명의 일 실시 예에 따른, 파일 분산 관리 장치(1100)의 내부 구성을 나타낸 도면이다. 파일 분산 관리 장치(1100)는 파일 분할부(1110), 파일 조각 생성부(1120), 통신부(1130), 파일 복원부(1140), 크기 정보 관리부(1150) 및 저장부(1160)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 파일 분산 관리 장치(1100)는 파일 분산 관리 장치(1100)의 전체 동작을 제어하는 별도의 제어부(미도시)를 더 포함할 수 있다.
파일 분할부(1110)는 원본 파일을 분할하여 nCk-1 개의 세그먼트를 생성한다. 또한, 실시 예로서, 파일 분할부(1110)는 원본 파일을 분할하기에 앞서, 소정의 크기(예를 들어, 2 바이트)의 블록 단위로 원본 파일의 순서를 뒤섞는 재배열을 수행하고, 재배열된 원본 파일을 분할하여 nCk-1 개의 세그먼트를 생성할 수 있다. 이 때, 블록의 크기는 1 바이트 또는 2 바이트 이상일 수도 있으며, 블록의 크기가 커질수록 재배열에 소요되는 시간이 증가한다.
실시 예로서, 파일 분할부(1110)는 원본 파일에 더미 영역을 부가하여 수정 파일을 생성하고, 수정 파일을 분할하여 nCk-1 개의 세그먼트를 생성할 수 있다. 또한, 실시 예로서, 파일 분할부(1110)는 수정 파일을 분할하기에 앞서, 소정의 크기의 블록 단위로 수정 파일의 순서를 뒤섞는 재배열을 수행하고, 재배열된 수정 파일을 분할하여 nCk-1 개의 세그먼트를 생성할 수 있다.
이때, 재배열의 기준이 되는 블록의 크기는 크기 정보 관리부(1150)로부터 참조될 수 있다. 또한, 재배열의 기준이 되는 블록의 크기는 사용자로부터 소정의 인터페이스(미도시)를 통해 입력될 수 있다.
파일 조각 생성부(1120)는 파일 분할부(1110)에 의해 생성된 nCk-1 개의 세그먼트들로부터 n개의 파일 조각들을 생성한다. 단, n개의 파일 조각들 중 임의의 k개 파일 조각들을 선택할 때, 선택된 k개의 파일 조각들에는 nCk-1 개의 세그먼트들이 모두 포함되도록, n개의 파일 조각들이 생성된다. 따라서, n개의 파일 조각들은 서로 중복되는 세그먼트들을 포함할 수 있다.
파일 분할부(1110) 및 파일 조각 생성부(1120)가 원본 파일로부터 n개의 파일 조각들을 생성하는 구체적인 방법은 도 4 이하에서 구체적으로 후술된다.
통신부(1130)는 파일 분산 관리 장치(1100)와 외부 객체와의 통신을 수행하는 역할을 한다. 예를 들어, 파일 분산 관리 장치(1100)는 통신부(1130)를 통해 분산 저장 장치들(1100a, 1100b, …, 1100n, 도 1 참조)과 통신할 수 있다. 통신부(1130)는 외부와 네트워킹 또는 통신이 가능한 모든 통신 수단을 포함할 수 있으며, 그러한 통신 수단에 수반되는 통신 인터페이스를 구비할 수 있다. 통신부(1130)가 이용하는 통신 인터페이스 또는 통신 방법은 유선 통신, 무선 통신, 3G, 4G, 또는 그 밖의 다양한 통신 인터페이스 또는 통신 방법을 포함할 수 있다.
파일 복원부(1140)는 분산 저장 장치들(1100a, 1100b, …, 1100n, 도 1 참조)로부터 적어도 k개의 파일 조각들을 수신하고, 수신된 파일 조각들로부터 원본 파일을 복원한다. 파일 복원부(1140)가 파일을 복원하는 구체적인 방법은 도 5 이하에서 후술된다.
저장부(1160)는 파일 분산 관리 장치(1100)에 수신된 데이터 또는 파일 분산 관리 장치(1100)에서 처리한 데이터를 저장한다. 예를 들어, 저장부(1160)는 파일 분할부(1110), 파일 조각 생성부(1120) 또는 파일 복원부(1140)의 기능을 수행하는 과정에서 얻어진 데이터들을 저장할 수 있다.
크기 정보 관리부(1150)는 크기 정보들을 저장하고, 저장한 크기 정보들을 파일 분산 관리 장치(1100)의 각 부에 제공한다. 크기 정보 관리부(1150)가 저장하는 크기 정보는 다양할 수 있다.
실시 예로서, 크기 정보 관리부(1150)는 파일 분할부(1110)에 의해 부가되는 더미 영역에 대한 정보(예를 들어, 더미 영역의 크기)를 저장할 수 있다. 또는, 크기 정보 관리부(1150)는 파일 분할부(1110)가 일 실시예에서 파일의 순서를 재배열할 때 기준이 되는 블록의 크기 정보를 저장할 수 있다. 또는, 크기 정보 관리부(1150)는 파일 분할부(1110)에 의해 분할되는 세그먼트들에 대한 정보(예를 들어, 세그먼트들의 크기)나 파일 조각 생성부(1120)에 의해 생성되는 파일 조각에 대한 정보(예를 들어, 파일 조각의 크기)를 저장할 수 있다.
실시 예로서, 크기 정보 관리부(1150)는 통신부(1130)를 통해 수신되는 파일 조각들로부터 크기 정보들(예를 들어, 파일 조각의 크기 정보, 파일 조각에 포함된 세그먼트의 크기 정보 또는, 파일 재배열을 수행하기 위한 블록의 크기 정보)을 읽어내어 저장할 수 있다.
도 3 이하에서는 본 발명에 따른 파일 분산 관리 장치 및 방법의 구체적인 동작 방법 및 내용을 상술한다.
이를 위해, 먼저, 설명을 위해 사용될 용어들에 대한 개념을 정의한다.
(1) 개념 정의
n: 분산 저장 장치들의 수
M1, M2, …, Mn : 총 n개의 분산 저장 장치들
k: 원본 파일을 성공적으로 복구하기 위해 필요한 최소의 파일 조각들의 수. 단, k는 0보다 크고 n이하인 정수이다.
F: 원본 파일
F´: 원본 파일에 더미 영역을 부가한 수정 파일
F˝: 블록 단위로 파일(원본 파일 또는 수정 파일)의 순서를 뒤섞는 재배열을 수행한 재배열된 파일. 일 실시예에서, 재배열을 수행하지 않을 경우, F˝은 F 또는 F´과 동일한 파일일 수 있다.
s: 수정 파일(F´)을 구성하는 블록의 개수
b: 블록의 크기(byte)
e: 파일(원본 파일 또는 수정 파일)의 재배열을 수행하기 위한 키
B´[i]: 수정 파일(F´)의 i번째 블록(즉, F´는 B´[1]∥B´[2]∥…∥B´[s]로 나타내어진다). 이때, X = A∥B 의 의미는 병렬 연결(A 옆에 B가 위치한 형태로 X가 구성됨)을 의미한다.
B˝[i]: 재배열된 파일(F˝)의 i번째 블록 (즉, F˝는 B˝[1]∥B˝[2]∥…∥B˝[s]로 나타내어진다)
S[1], S[2], …, S[nCk-1]: 재배열된 수정 파일(F˝)로부터 분할되는 세그멘트들(즉, F˝는 S[1]∥S[2]∥…∥S[nCk-1]로 나타내어질 수 있고, 각 세그멘트들은 복수의 블록으로 구성됨).
DT: Distribution Table (n×n-1Ck-1짜리 행렬로 되어 있음),
Figure PCTKR2014010925-appb-I000001
이며, DTi = (DT(i,1), DT(i,2), …, DT(i,q))이다(단, 여기서 q는 n-1Ck-1).
N = (1, 2, 3, …, n}
W = {1, 2, 3, …, nCk-1}
T: N의 원소가 n-k+1개인 모든 부분집합의 집합
Ai = {C∈T|i∈C}
다음으로 본 발명의 실시 예에 따른 초기화 과정이 설명된다. 초기화 과정은 분산 테이블(Distribution Table, DT)과 무작위로 재배열을 수행하기 위한 키(e)를 결정하기 위한 과정이다.
(2) 초기화 단계
1: 일대일 대응 함수 Φ:T→W를 결정한다.
2: (반복문 시작) i=1부터 n까지 다음을 반복
3: DT(i,1), DT(i,2), …, DT(i,q)에 {Φ(b)|b∈Bi}의 원소들의 재배열을 대입(단, q는 n-1Ck-1).
4: (반복문 끝)
5: e의 값을 무작위로 결정한다.
위와 같은 방법으로 생성된 분산 테이블(DT) 및 키(e)는 파일 분산 관리 장치(1100, 도 1 참조)에 저장되고, 분산 저장 장치들(1100a, 1100b, …, 1100n, 도 1 참조) 및 다른 인가된 장치에 제공된다.
다음은 본 발명의 실시 예에 따른 파일 분산 관리 방법이 설명된다.
도 3은 본 발명의 실시 예에 따른 파일 분산 관리 방법을 나타내는 순서도이다. 도 3을 참조하면, 파일 분산 관리 방법은 S110 단계 내지 S140 단계를 포함한다.
S110 단계 및 S120 단계는 원본 파일을 n개의 파일 조각들로 분산하여 n개의 분산 저장 장치들에 저장하는 분산 단계이다. S130 단계 및 S140 단계는 적어도 k개의 분산 장치들로부터 k개의 파일 조각들을 수신하여, 원본 파일을 복원하는 복원 단계이다.
S110 단계에서, 파일 분산 관리 장치(1100, 도 1 참조)는 원본 파일로부터 n개의 파일 조각들을 생성한다. 이때, n개의 파일 조각들은 다음과 같은 조건을 만족하도록 생성된다. n개의 파일 조각들 중 임의의 k개 파일 조각들로부터는 원본 파일이 성공적으로 복원될 수 있으나, 임의의 k-1개 파일 조각들로부터는 원본 파일이 성공적으로 복원될 수 없다. 파일 분산 관리 장치(1100)가 n개의 파일 조각들을 생성하는 구체적인 방법은 도 4 이하에서 후술된다.
S120 단계에서, 파일 분산 관리 장치(1100)는 생성된 n개의 파일 조각들을 n개의 분산 저장 장치들(1100a, 1100b, …,1100n, 도 1 참조)에 분산 저장한다.
S120 단계가 완료되면, 원본 파일의 분산 단계가 완료된다. 이어서, 분산된 파일 조각들로부터 원본 파일을 복원하기 위해 S130 단계 이하가 수행된다.
S130 단계에서, 파일 분산 관리 장치(1100)는 k개의 분산 저장 장치들(1100a, 1100b, …,1100k)로부터 k개의 파일 조각들을 수신한다. 앞서 설명한 바와 같이 k개의 파일 조각들에는 원본 파일을 구성하는 블록들이 모두 포함되어 있다.
S140 단계에서, 파일 분산 관리 장치(1100)는 수신된 k개의 파일 조각들로부터 원본 파일을 복원해낸다. 파일 조각들로부터 원본 파일을 복원하는 과정은, 원본 파일에서 파일 조각들을 생성하는 과정의 역순과 유사하다. 파일 분산 관리 장치(1100)가 원본 파일을 복원하는 구체적인 방법은 도 5 이하에서 후술된다.
상기와 같은 파일 분산 관리 방법에 따르면, 하나의 파일이 여러 대의 기기에 나뉘어서 저장되므로 k개 미만의 기기에서 데이터가 유출되었을 경우, 원래 파일의 복원이 불가능하므로 보안성이 향상되는 효과가 있다. 또한, k개 이상의 기기가 있다고 하더라도, 파일 내용의 순서가 섞여 있으므로 원본 파일의 복구가 어려워 보안성이 더욱 향상될 수 있다. 또한, 파일의 일부가 손실되는 경우에도, 나머지 k개의 파일을 통해 원본 파일을 복구할 수 있어 가용성이 향상될 수 있다. 또한, 조합적인 방법을 이용함으로써 연산량이 오로지 F에만 비례하므로, 종래의 비밀분산법에 비해 연산량 및 복잡성이 감소할 수 있다. 또한, 사용자가 파일 블록의 크기를 임의로 조정할 수 있으므로, 분산된 파일의 보안 수준을 사용자가 결정할 수 있다.
다음은 본 발명에서 원본 파일을 복수의 파일 조각들로 분산하는 구체적인 방법이 설명된다.
도 4는 본 발명의 실시 예에 따른 파일 조각 생성 방법을 나타내는 순서도이다. 도 4를 참조하면, 파일 조각 생성 방법은 S210 단계 내지 S270 단계를 포함한다.
S210 단계에서, 파일 분산 관리 장치(1100, 도 1 참조)는 블록의 크기(b)를 결정한다. 블록의 크기(b)는 파일 분산 관리 장치(1100) 내에 저장된 별도의 크기 정보에 의해 결정될 수 있다. 또는, 블록의 크기(b)는 사용자에 의해 입력된 소정의 값에 따라 결정될 수 있다. 후술하겠지만, 블록의 크기가 작을수록 파일을 무작위로 재배열하는 단위가 작아지므로, 보안성이 향상될 수 있다. 반면에, 블록의 크기가 작으면, 파일 분산 관리 장치(1100)가 처리할 연산량이 증가하는 단점이 있다. 즉, 블록의 크기가 크게 설정되면 보안성은 낮아지나 연산량은 감소한다. 반면에 블록의 크기가 작게 설정되면 보안성은 높아지나 연산량은 증가한다. 본 발명에서, 사용자 또는 파일 분산 관리 장치(1100)는 필요에 따라 블록의 크기를 적절하게 선택할 수 있다.
S220 단계에서, 파일 분산 관리 장치(1100)는 원본 파일(F)의 크기가 블록의 크기(b)의 배수인지 판단한다. 원본 파일(F)의 크기가 블록의 크기(b)의 배수이면, 파일 조각 생성 방법은 S240 단계로 진행한다. 그렇지 않으면, 파일 조각 생성 방법은 S230 단계로 진행한다.
S230 단계에서, 파일 분산 관리 장치(1100)는 파일의 전체 크기가 블록의 크기(b)의 배수가 되도록, 원본 파일에 더미 영역을 부가하여 수정 파일(F´)을 생성한다. 수정 파일(F´)의 크기는 더미 영역에 의해 블록의 크기(b)의 배수가 된다.
S240 단계에서, 파일 분산 관리 장치(1100)는 파일(원본 파일 또는 수정 파일)을 블록 단위로 재배열한다. 다만, 원본 파일과 수정 파일의 차이는 더미 영역의 부가 여부에만 있고 이후의 처리 과정은 동일하므로, 이후의 단계에서는 양자를 혼용하여 수정 파일로 통칭하기로 한다. 이때, 파일 분산 관리 장치(1100)는 미리 결정된 키(e)를 이용하여, 수정 파일을 블록 단위로 무작위 재배열한다. S240 단계는 선택적인 단계로서, 수정 파일을 세그먼트로 분할하기 전에 블록 단위 재배열을 하지 않을 경우, 생략될 수 있다.
S250 단계에서, 파일 분산 관리 장치(1100)는 재배열된 수정 파일을 분할하여 nCk-1개의 세그먼트들을 생성한다.
S260 단계에서, 파일 분산 관리 장치(1100)는 생성된 nCk-1 개의 세그먼트들로부터 n개의 파일 조각들을 생성한다. 단, n개의 파일 조각들 중 임의의 k개 파일 조각들을 선택할 때, 선택된 k개의 파일 조각들에는 nCk-1 개의 세그먼트들이 모두 포함되도록, n개의 파일 조각들이 생성된다. 실시 예로서, n개의 파일 조각들 각각은 n-1Ck-1 개의 세그먼트들을 포함할 수 있다. 따라서, n개의 파일 조각들은 서로 중복되는 세그먼트들을 포함할 수 있다. 이때, 각 파일 조각들에는 파일 조각을 구성하는 세그먼트들의 크기 정보가 부가될 수 있다.
S270 단계에서, 파일 분산 관리 장치(1100)는 n개의 파일 조각들을 n개의 분산 저장 장치들에 분산 저장한다.
한편, S210 단계 내지 S270 단계에서 설명된 파일 조각 생성 방법은 세그먼트의 크기를 정하는 방법에 따라 두 가지 실시 예로 구분될 수 있다. 하나는 각 세그먼트의 크기의 비율을 일정하게 하는 방법이고, 나머지 하나는 각 세그먼트의 크기들을 임의로 지정하는 방법이다. 두 가지 방법은 도 4의 파일 조각 생성 방법에 각각 선택적으로 적용될 수 있다. 이하에서는 세그먼트의 크기를 정하는 두 가지 방법에 따라, S210 단계 내지 S270 단계를 구현하는 구체적인 방법에 대해 설명한다.
1) 각 세그먼트의 크기의 비율을 일정하게 하는 방법
이 방법에서는, 각각의 세그먼트의 크기의 비율이 미리 결정되어 있고, 미리 결정된 세그먼트 크기의 비율에 따라 조각 파일을 생성한다.
먼저, r1, r2, …, rp(단, p는 nCk-1)를 각각 p개의 세그먼트 S[1], S[2], …, S[p]의 길이의 비라고 하고, r1+r2+…+rp = 1을 만족하는 값으로 정의한다. 그리고 ρi = r1+r2+…+ri, ρ0 = 0으로 정의한다.
이 경우, n개의 파일 조각들은 아래의 방법에 의해 생성된다.
1: 블록의 크기(b)를 결정한다.
2: s에
Figure PCTKR2014010925-appb-I000002
값을 대입한다. 이때, s는 원본 파일(F)을 구성하는 블록의 개수이고, f는 원본 파일(F)의 크기를 바이트로 나타낸 값이고,
Figure PCTKR2014010925-appb-I000003
는 보다 x작지 않은 최소의 정수이다.
3: 파일 F의 앞에 s×b-f바이트 크기의 더미 영역 부가하고, 더미 영역이 부가된 파일을 수정 파일(F´)이라 한다. 이때, 더미 영역은 원본 파일(F)의 맨 앞에 부가될 수 있다.
4: 1, 2, …, s를 키(e)를 이용하여 무작위로 재배열하고, 재배열된 결과를 t1, t2, …, ts 라 한다. 일 실시예에서, 본 4 단계는 생략될 수 있으며, 이 경우 재배열이 수행되지 않기 때문에 t1, t2, …, ts 는 1, 2, …, s와 동일하다.
5: F˝= B˝[1]∥B˝[2]∥…∥B˝[s]와 같이 재배열된 수정 파일(F˝)을 생성한다. 이때, t=1, 2, …, s에 대하여, B˝[i]=B´[ti]를 만족하도록 파일 블록들이 재배열된다.
6: 재배열된 수정 파일(F˝)을 분할하여 세그먼트들을 생성한다.
이때, j=1, 2, …, nCk-1에 대하여,
Figure PCTKR2014010925-appb-I000004
와 같이 각각의 세그먼트가 구성된다. 이때,
Figure PCTKR2014010925-appb-I000005
는 x를 넘지 않는 최대 정수이다.
7: 파일 조각을 생성한다.
이때, h=1, 2, …, n에 대하여,
Figure PCTKR2014010925-appb-I000006
와 같이 각각의 파일 조각이 구성된다.
여기서, fh는 생성된 n개의 파일 조각이고(h=1, 2, …, n), Z는 원본 파일(F)의 크기를 나타내는 영역이다.
8: 생성된 파일 조각들(f1, f2, …, fn)을 n개의 분산 저장 장치들(M1, M2, …, Mn)에 각각 전송한다.
한편, 이때, 각 세그먼트들의 크기(또는, 크기의 비율)를 나타내는 정보는 원본 파일의 복원을 위해 파일 분산 관리 장치에 저장되거나, 또는 분산 저장 장치들에 전송될 수 있다.
2) 각 세그먼트의 크기를 임의로 지정하는 방법
이하에서는, 각 세그멘트의 크기를 임의로 지정하는 방법에 대해 설명한다. 이 방법에서는 세그멘트의 크기가 미리 결정되지 않고, 파일 조각을 생성할 때마다 세그먼트의 크기를 임의로 정한다.
1: 블록의 크기(b)를 결정한다.
2: s에
Figure PCTKR2014010925-appb-I000007
값을 대입한다. 이때, s는 원본 파일(F)을 구성하는 블록의 개수이고, f는 원본 파일(F)의 크기를 바이트로 나타낸 값이고,
Figure PCTKR2014010925-appb-I000008
는 보다 x작지 않은 최소의 정수이다.
3: 파일 F의 앞에 s×b-f바이트 크기의 더미 영역 부가하고, 더미 영역이 부가된 파일을 수정 파일(F´)이라 한다. 이때, 더미 영역은 원본 파일(F)의 맨 앞에 부가될 수 있다.
4: 1, 2, …, s를 키(e)를 이용하여 무작위로 재배열하고, 재배열된 결과를 t1, t2, …, ts 라 한다. 일 실시예에서, 본 4 단계는 생략될 수 있으며, 이 경우 재배열이 수행되지 않기 때문에 t1, t2, …, ts 는 1, 2, …, s와 동일하다.
5: F˝= B˝[1]∥B˝[2]∥…∥B˝[s]와 같이 재배열된 수정 파일(F˝)을 생성한다. 이때, t=1, 2, …, s에 대하여, B˝[i]=B´[ti]를 만족하도록 파일 블록들이 재배열된다.
6: nCk-1개의 양의 정수 m1, m2, …, mp(단, p는 nCk-1)를 결정하되, 양의 정수들(m1, m2, …, mp)은 아래 식을 만족하도록 결정된다.
m1+m2+…+mp=s (단, p는 nCk-1)
그리고, μ0=0, μi=m1+m2+…+mi인 μi를 정의한다(i=1, 2, …. nCk-1).
7: 재배열된 수정 파일(F˝)을 분할하여 세그먼트들을 생성한다.
이때, j=1, 2, …, nCk-1에 대하여,
Figure PCTKR2014010925-appb-I000009
와 같이 각각의 세그먼트를 구성한다.
8: 파일 조각을 생성한다.
이때, h=1, 2, …, n에 대하여,
Figure PCTKR2014010925-appb-I000010
와 같이 각각의 파일 조각이 구성된다.
여기서, fh는 생성된 n개의 파일 조각이고(h=1, 2, …, n), Z는 원본 파일(F)의 크기를 나타내는 영역이고, Zj는 mj값을 나타내는 영역이다.
9: 생성된 파일 조각들(f1, f2, …, fn)을 n개의 분산 저장 장치들(M1, M2, …, Mn)에 각각 전송한다.
한편, 위에서 설명한 방법들에서 키(e) 이용하여 블록들의 순서를 무작위로 재배열하는 단계는 다음과 같은 기준들에 따라 수행될 수 있다.
첫째, 가역적이어야 한다. 즉, 키(e)를 이용하여 재배열된 블록들을 원래 순서대로 복원할 수 있어야 한다.
둘째, 재배열을 수행할 때마다 항상 다른 재배열 결과가 나올 수 있어야 한다.
위와 같은 기준을 만족하는 재배열 방법에는 여러가지가 공개되어 있으며, 그러한 재배열 방법들은 당해 기술 분야에 널리 알려져 있으므로, 그에 대한 설명은 생략된다.
다음은 본 발명에서 원본 파일을 복수의 파일 조각들로 분산하는 구체적인 방법이 설명된다.
도 5는 본 발명의 실시 예에 따른 원본 파일 복원 방법을 나타내는 순서도이다. 도 5를 참조하면, 원본 파일 복원 방법은 S310 단계 내지 S340 단계를 포함한다.
S310 단계에서, 파일 분산 관리 장치(1100, 도 1 참조)는 수신된 파일 조각의 크기 정보를 이용하여 각 파일 조각을 세그먼트 단위로 분리한다. 이때, 크기 정보에는 파일 조각의 크기, 파일 조각을 구성하는 세그먼트들의 크기 또는 파일 조각에 포함된 더미 영역의 크기를 나타내는 정보가 포함될 수 있다. 실시 예로서, 크기 정보는 파일 분산 관리 장치(1100)에 저장될 수 있다.
S320 단계에서, 파일 분산 관리 장치(1100)는 분리된 세그먼트들을 연결하여 재배열된 수정 파일(F˝)을 복원한다. 일 실시예에서는, 분리된 세그먼트들을 연결하여 얻은 수정 파일(F˝)이 재배열되어 있지 않을 수 있다.
S330 단계에서, 파일 분산 관리 장치(1100)는 재배열된 수정 파일(F˝)의 각 블록들의 순서를 키(e)를 이용하여 재배열함으로써, 수정 파일(F´)을 복원한다. 분리된 세그먼트들을 연결하여 얻은 수정 파일(F˝)이 재배열되어 있지 않을 경우, S330 단계는 생략될 수 있다.
S340 단계에서, 파일 분산 관리 장치(1100)는 수정 파일(F´)로부터 더미 영역을 제거함으로써 원본 파일(F)을 복원한다. 실시 예로서, 파일 분산 관리 장치(1100)는 수정 파일(F´)로부터 더미 영역을 제거하기 위해 크기 정보를 참조할 수 있다.
한편, S310 단계 내지 S340 단계에서 설명된 원본 파일 복원 방법은 앞서와 마찬가지로 세그먼트의 크기를 정하는 방법에 따라 두 가지 실시 예로 구분될 수 있다. 하나는 각 세그먼트의 크기의 비율을 일정하게 하는 방법이고, 나머지 하나는 각 세그먼트의 크기들을 임의로 지정하는 방법이다. 두 가지 방법은 도 5의 원본 파일 복원 방법에 각각 선택적으로 적용될 수 있다. 이하에서는 세그먼트의 크기를 정하는 두 가지 방법에 따라, S310 단계 내지 S340 단계를 구현하는 구체적인 방법에 대해 설명한다. 두 과정에 있어서 입력 데이터는 임의의 k개의 파일 조각들이 된다.
1) 각 세그먼트의 크기의 비율을 일정하게 하는 방법
1: 각 파일 조각들로부터 원본 파일(F)의 크기를 나타내는 영역인 Z를 제거하고, Z로부터 원본 파일(F)의 크기(f)를 읽어낸다.
2: s에
Figure PCTKR2014010925-appb-I000011
값을 대입한다. 이때, s는 원본 파일(F)을 구성하는 블록의 개수이고, f는 원본 파일(F)의 크기를 바이트로 나타낸 값이고,
Figure PCTKR2014010925-appb-I000012
는 보다 x작지 않은 최소의 정수이다.
3: 아래 식에 따라 각 세그먼트들의 크기를 산출한다.
Figure PCTKR2014010925-appb-I000013
여기서, S[j], ρj 및 j의 의미는 도 4에 대한 설명에서 사용된 각 기호들의 의미와 동일하다. 그리고,
Figure PCTKR2014010925-appb-I000014
는 x를 넘지 않는 최대 정수이다.
4: 산출된 각 세그먼트들의 크기를 이용하여 파일 조각들로부터 세그먼트들을 분리하고, 분리된 세그먼트를 순서대로 연결하여 재배열된 수정 파일(F˝)을 생성한다. 일 실시예에서는, 분리된 세그먼트를 연결하여 얻은 수정 파일(F˝)은 재배열되어 있지 않을 수 있다.
5: 재배열된 수정 파일(F˝)의 블록들을 키(e)를 이용하여 재배열하고, 수정 파일(F´)을 복원한다. 분리된 세그먼트를 연결하여 얻은 수정 파일(F˝)이 재배열되어 있지 않은 경우, 본 5 단계는 생략될 수 있다.
6: 수정 파일(F´)로부터 더미 영역을 제거하여 원본 파일(F)을 복구한다. 예를 들어, 수정 파일(F´)의 맨 앞에 더미 영역이 있는 경우, 수정 파일(F´)의 마지막 f바이트를 분리해내어 원본 파일(F)을 복원할 수 있다.
2) 각 세그먼트의 크기를 임의로 지정하는 방법
1: 각 파일 조각들로부터 원본 파일(F)의 크기를 나타내는 영역(Z)을 제거하고, Z로부터 원본 파일(F)의 크기(f)를 읽어낸다. 또한, 각 세그먼트의 크기를 나타내는 영역(Zj)들도 제거하고, Zj로부터 각 세그먼트들의 크기를 읽어낸다.
2: 읽어낸 각 세그먼트들의 크기를 이용하여 파일 조각들로부터 세그먼트들을 분리하고, 분리된 세그먼트를 순서대로 연결하여 재배열된 수정 파일(F˝)을 생성한다. 일 실시예에서는, 분리된 세그먼트를 연결하여 얻은 수정 파일(F˝)은 재배열되어 있지 않을 수 있다.
5: 재배열된 수정 파일(F˝)의 블록들을 키(e)를 이용하여 재배열하고, 수정 파일(F´)을 복원한다. 분리된 세그먼트를 연결하여 얻은 수정 파일(F˝)이 재배열되어 있지 않은 경우, 본 5 단계는 생략될 수 있다.
6: 수정 파일(F´)로부터 더미 영역을 제거하여 원본 파일(F)을 복구한다. 예를 들어, 수정 파일(F´)의 맨 앞에 더미 영역이 있는 경우, 수정 파일(F´)의 마지막 f바이트를 분리해내어 원본 파일(F)을 복원할 수 있다.
도 6 및 도 7에서는 원본 파일로부터 파일 조각들을 생성하는 실시 예에 대한 설명이 도면과 함께 제공된다. 도 6 및 도 7에서, 생성되는 파일 조각들의 전체 개수는 5이고, 파일 조각들 중 임의의 3개로부터 원본 파일이 복원될 수 있는 것(즉, n=5, k=3)으로 가정한다. 한편, 이때, 분산 테이블(Distribution Table, DT)는 다음과 같다.
Figure PCTKR2014010925-appb-I000015
도 6은 본 발명의 일 실시 예에 따라 파일 조각을 생성하는 방법을 나타내는 블록도이다. 도 6에서는 각 파일 조각을 구성하는 세그먼트들이 서로 일정한 크기의 비율을 갖는다.
먼저, 원본 파일(110)에 더미를 추가하여 수정 파일(120)이 생성된다. 그리고, 실시 예로서, 수정 파일(120)을 구성하는 블록들의 순서를 무작위로 재배열하여 재배열된 수정 파일(130)이 생성된다. 이때, 블록들의 순서를 무작위로 재배열하기 위해 미리 결정된 키(e)가 사용될 수 있다. 재배열을 수행하지 않을 경우, 수정 파일(120)과 수정 파일(130)은 동일한 파일이다.
다음으로, 재배열된 수정 파일(130)을 10개의 세그먼트들로 분할한다. 이때, 각 세그먼트들은 크기의 비율이 일정하도록 분할되며, 각 세그먼트들을 분할하는 구체적인 방법은 위에서 설명한 것과 동일한 방법에 따른다.
그리고, 분할된 10개의 세그먼트들로부터 5개의 파일 조각들(150a, 150b, 150c, 150d, 150e)을 생성한다. 각각의 파일 조각들은 6개의 세그먼트들을 가지며, 임의의 3개의 파일 조각들로부터 원본 파일을 복원하기 위해 서로 중복되는 세그먼트들을 포함할 수 있다.
도 7은 본 발명의 다른 실시 예에 따라 파일 조각을 생성하는 방법을 나타내는 블록도이다. 도 7에서는 각 파일 조각을 구성하는 세그먼트들이 임의의 크기를 갖는다.
먼저, 원본 파일(210)에 더미를 추가하여 수정 파일(220)이 생성된다. 그리고, 실시 예로서, 수정 파일(220)을 구성하는 블록들의 순서를 무작위로 재배열하여 재배열된 수정 파일(230)이 생성된다. 이때, 블록들의 순서를 무작위로 재배열하기 위해 미리 결정된 키(e)가 사용될 수 있다. 재배열을 수행하지 않을 경우, 수정 파일(120)과 수정 파일(130)은 동일한 파일이다.
다음으로, 재배열된 수정 파일(230)을 10개의 세그먼트들로 분할한다. 이때, 각 세그먼트들의 크기는 임의로 결정되며, 각 임의의 크기를 갖도록 세그먼트들을 분할하는 구체적인 방법은 위에서 설명한 것과 동일한 방법에 따른다.
그리고, 분할된 10개의 세그먼트들로부터 5개의 파일 조각들(250a, 250b, 250c, 250d, 250e)을 생성한다. 각각의 파일 조각들은 6개의 세그먼트들을 가지며, 임의의 3개의 파일 조각들로부터 원본 파일을 복원하기 위해 서로 중복되는 세그먼트들을 포함할 수 있다.
이상에서 설명된 실시 예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어, 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 또는 그것들의 조합을 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체는 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크 (floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 저장 장치를 포함할 수 있다. 이러한 저장 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈에 의해 작동하도록 구성될 수 있으며, 그 반대도 마찬가지이다. 또한, 여기서 설명된 프로그램 명령어는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
본 발명의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다.
또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 실시예들은 클라우드(cloud) 등의 데이터 공유 시스템, 분산 저장 장치, 홈 네트워크 등에 적용될 수 있다.

Claims (20)

  1. 파일을 nCk-1개의 세그먼트들로 분할하는 단계; 및
    상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 단계를 포함하되,
    상기 n은 0보다 큰 정수이고, 상기 k는 0보다 크고 상기 n이하인 정수이고,
    상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함되는, 파일 분산 관리 방법.
  2. 제 1 항에 있어서,
    파일을 nCk-1개의 세그먼트들로 분할하는 단계 전에,상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계를 더 포함하는, 파일 분산 관리 방법.
  3. 제 2 항에 있어서,
    상기 파일은 상기 파일에 포함된 블록들의 크기에 따라, 상기 파일의 크기가 상기 블록들의 크기의 정수배가 되도록 원본 파일에 더미 영역을 선택적으로 부가하여 생성되는, 파일 분산 관리 방법.
  4. 제 2 항에 있어서,
    상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계는,상기 블록들의 크기를 결정하는 단계를 더 포함하는, 파일 분산 관리 방법.
  5. 제 2 항에 있어서,
    상기 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하는 단계는, 가역적이고 매 수행시마다 서로 다른 결과를 출력하는 재배열 알고리즘을 이용하여 상기 블록들의 배치 순서를 재배열하는, 파일 분산 관리 방법.
  6. 제 1 항에 있어서,
    상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계는,상기 nCk-1개의 세그먼트들 각각이 미리 결정된 비율의 크기들을 갖도록 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계를 포함하는, 파일 분산 관리 방법.
  7. 제 6 항에 있어서,
    상기 n개의 파일 조각들을 생성하는 단계는,상기 n개의 파일 조각들 각각에 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보를 부가하는 단계를 포함하는, 파일 분산 관리 방법.
  8. 제 1 항에 있어서,
    상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계는,상기 nCk-1개의 세그먼트들 각각이 임의의 크기들을 갖도록 상기 파일을 nCk-1개의 세그먼트들로 분할하는 단계를 포함하는, 파일 분산 관리 방법.
  9. 제 8 항에 있어서,
    상기 n개의 파일 조각들을 생성하는 단계는,상기 n개의 파일 조각들 각각에, 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보 및, 상기 n개의 파일 조각들 각각이 포함하는 세그먼트들의 크기들을 나타내는 크기 정보를 부가하는 단계를 포함하는, 파일 분산 관리 방법.
  10. 제 1 항에 있어서,
    상기 생성된 n개의 파일 조각들을 n개의 분산 저장 장치들에 전송하는 단계를 더 포함하는, 파일 분산 관리 방법.
  11. 제 10 항에 있어서,
    상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하는 단계;
    상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하는 단계;
    상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하는 단계;
    상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 파일을 복원하는 단계;를 더 포함하는, 파일 분산 관리 방법.
  12. 제 11 항에 있어서,
    상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 파일을 복원하는 단계는,상기 nCk-1 개의 복원 세그먼트들을 연결한 후, 블록들의 배치 순서를 블록 단위로 재배열하는 단계를 포함하는, 파일 분산 관리 방법.
  13. 제 11 항에 있어서,
    상기 크기 정보를 참조하여, 상기 복원된 파일로부터 상기 더미 영역을 제거하여 원본 파일을 복원하는 단계를 더 포함하는, 파일 분산 관리 방법.
  14. 제 11 항에 있어서,
    상기 nCk-1 개의 복원 세그먼트들 각각은 미리 결정된 비율의 크기들을 갖는, 파일 분산 관리 방법.
  15. 제 11 항에 있어서,
    상기 nCk-1 개의 복원 세그먼트들 각각은 임의의 크기들을 갖는, 파일 분산 관리 방법.
  16. 제 15 항에 있어서,
    상기 크기 정보는, 상기 k개의 파일 조각들에 포함된 상기 nCk-1 개의 복원 세그먼트들의 크기들을 나타내는 정보를 포함하는, 파일 분산 관리 방법.
  17. 제 1 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 제 2 파일을 생성하고, 상기 제 2 파일을 nCk-1개의 세그먼트들로 분할하는 파일 분할부;
    상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 파일 조각 생성부;
    및상기 생성된 n개의 파일 조각들을 n개의 분산 저장 장치들에 전송하는 통신부를 포함하되,
    상기 n은 0보다 큰 정수이고,
    상기 k는 0보다 크고 상기 n이하인 정수이고,
    상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함되는, 파일 분산 관리 장치.
  18. 제 17 항에 있어서,
    상기 통신부를 통해 상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하고, 상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 제 1 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 제 1 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하고, 상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하고, 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 제 2 파일을 복원하고, 상기 복원된 제 2 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 상기 제 1 파일을 복원하는 파일 복원부를 더 포함하는, 파일 분산 관리 장치.
  19. 제 1 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 제 2 파일을 생성하는 단계,
    상기 제 2 파일을 nCk-1개의 세그먼트들로 분할하는 단계 및
    상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는 n개의 파일 조각들을 생성하는 단계를 포함하되,
    상기 n은 0보다 큰 정수이고,
    상기 k는 0보다 크고 상기 n이하인 정수이고,
    상기 n개의 파일 조각들 중 임의의 k개의 파일 조각들에는 상기 nCk-1개의 세그먼트들이 포함되는 파일 분산 관리 방법을 실행하기 위한, 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
  20. 제 17 항에 있어서,
    상기 n개의 분산 저장 장치들 중 적어도 k개의 분산 저장 장치들로부터 k개의 파일 조각들을 수신하는 단계, 상기 k개의 파일 조각들의 크기 정보 영역으로부터 상기 제 1 파일에서 더미 영역을 제외한 부분의 크기 또는 상기 제 1 파일의 원본 파일의 크기를 나타내는 크기 정보를 읽어내고, 상기 k개의 파일 조각들로부터 상기 크기 정보 영역을 제거하는 단계, 상기 크기 정보 영역이 제거된 k개의 파일 조각들로부터 nCk-1 개의 복원 세그먼트들을 분할하는 단계, 상기 nCk-1 개의 복원 세그먼트들을 연결하여 상기 제 2 파일을 복원하는 단계 및 상기 복원된 제 2 파일에 포함된 블록들의 배치 순서를 블록 단위로 재배열하여 상기 제 1 파일을 복원하는 단계를 더 포함하는 파일 분산 관리 방법을 실행하기 위한, 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
PCT/KR2014/010925 2014-11-13 2014-11-13 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법 WO2016076460A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/010925 WO2016076460A1 (ko) 2014-11-13 2014-11-13 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/010925 WO2016076460A1 (ko) 2014-11-13 2014-11-13 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2016076460A1 true WO2016076460A1 (ko) 2016-05-19

Family

ID=55954532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/010925 WO2016076460A1 (ko) 2014-11-13 2014-11-13 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법

Country Status (1)

Country Link
WO (1) WO2016076460A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122336A (ja) * 2005-10-27 2007-05-17 Kddi Corp データの分散記憶方法、端末及びプログラム
JP2008278022A (ja) * 2007-04-26 2008-11-13 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP4945715B2 (ja) * 2005-10-07 2012-06-06 凸版印刷株式会社 データバックアップ装置及びデータバックアップ方法並びにそのプログラム
KR101379848B1 (ko) * 2013-02-15 2014-04-04 서울대학교산학협력단 일정 수 이상의 파일 쉐어로 복구 가능한 파일 분산 관리 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4945715B2 (ja) * 2005-10-07 2012-06-06 凸版印刷株式会社 データバックアップ装置及びデータバックアップ方法並びにそのプログラム
JP2007122336A (ja) * 2005-10-27 2007-05-17 Kddi Corp データの分散記憶方法、端末及びプログラム
JP2008278022A (ja) * 2007-04-26 2008-11-13 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
KR101379848B1 (ko) * 2013-02-15 2014-04-04 서울대학교산학협력단 일정 수 이상의 파일 쉐어로 복구 가능한 파일 분산 관리 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ADI SHAMIR: "How to Share a Secret", COMM. OF THE ACM, vol. 22, no. 11, November 1979 (1979-11-01), pages 612 - 613 *

Similar Documents

Publication Publication Date Title
WO2017003051A1 (ko) 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법
EP3017395A1 (en) Method and apparatus of data authentication
WO2014040501A1 (zh) 一种动态口令的生成及认证方法与系统
WO2018147497A1 (ko) 완전 동형 암호 방법에 의한 동적 데이터의 처리 방법
WO2015157942A1 (zh) 接入无线网络的装置及方法
WO2016056856A1 (ko) 무결성 검증 데이터 생성 방법 및 시스템
WO2013009061A2 (ko) 무선 통신 시스템에서 그룹키 갱신 방법 및 장치
WO2022164000A1 (ko) 배송업체들의 서비스 품질 점수를 기반으로 사용자에게 적절한 배송업체를 추천해주는 배송업체 정보 제공 장치 및 그 동작 방법
WO2018093203A1 (ko) 공개키를 이용하여 암호화하는 연산 장치 및 그 암호화 방법
WO2020189993A1 (ko) 암호화폐 분실 방지 방법 및 시스템
EP2467968A2 (en) Method and system for handling security synchronization for prolonged periods of no-reception of voice frames
WO2018012693A1 (ko) 주 기억 장치 내부의 코드 수정을 통한 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법
WO2016076460A1 (ko) 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법
WO2016006783A1 (ko) P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법
WO2021085714A1 (ko) 블록체인 관리 시스템 및 그 방법
WO2010147410A2 (en) Method and device for upgrading rights object that was stored in memory card
WO2014126291A1 (ko) 일정 수 이상의 파일 쉐어로 복구 가능한 파일 분산 관리 장치 및 그 방법
WO2021054619A1 (ko) 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
WO2023054857A1 (ko) 네트워크 내의 장치
EP3857414A1 (en) Electronic device and control method thereof
WO2023042989A1 (ko) 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치
WO2023022321A1 (ko) 분산 학습용 서버 및 분산 학습 방법
WO2016080569A1 (ko) 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법
WO2012169675A1 (ko) 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치
WO2021040303A1 (ko) 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14905869

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14905869

Country of ref document: EP

Kind code of ref document: A1