WO2012063755A1 - 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置 - Google Patents

分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置 Download PDF

Info

Publication number
WO2012063755A1
WO2012063755A1 PCT/JP2011/075534 JP2011075534W WO2012063755A1 WO 2012063755 A1 WO2012063755 A1 WO 2012063755A1 JP 2011075534 W JP2011075534 W JP 2011075534W WO 2012063755 A1 WO2012063755 A1 WO 2012063755A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
random number
archive
archiving
fragments
Prior art date
Application number
PCT/JP2011/075534
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 US13/882,033 priority Critical patent/US9881030B2/en
Publication of WO2012063755A1 publication Critical patent/WO2012063755A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Definitions

  • the present invention relates to distributed archiving technology.
  • RAID Redundant Array Of Inexpensive Disks
  • RAID 1 when recording data, exactly the same content is recorded (mirroring) on two independent disks, and even if one disk fails, data can be taken out from the other disk.
  • RAID 3 data is distributed and recorded in n disks, but one of the disks is dedicated to the purpose of recording parity, and even if one of n disks fails, the remaining data remains Make it possible to restore the original data from n-1 disks.
  • the RAID method since the RAID method does not include a mechanism for ensuring the confidentiality of archived data, it must be used in combination with other encryption techniques, resulting in overhead in terms of device configuration and execution efficiency.
  • Non-patent document 1 the secret sharing method by Shamia (Adi Shamir, How To Share A Secret, Communications Of ACM, 22 (11), pages 612-613, 1979.
  • Non-patent document 1 By providing access to k servers out of n, so that data restoration is possible, giving flexibility to the application to the Internet, and temporarily data from k-1 servers The invention has been described with a security that theoretically guarantees that the original data will not be recovered even if the
  • Patent No. 3607700 gazette
  • n k threshold availability
  • n k threshold confidentiality.
  • the pointer means moving in one direction toward the end of the data as the process proceeds, and holds data fragments of a predetermined length from each pointer position.
  • the pointer position is advanced by the length of the data fragment, and the above process is repeated until the pointer position reaches the end of the data.
  • each data fragment is redundantly recorded on (n ⁇ k + 1) storage media, so when k storage media are selected arbitrarily, at least one storage medium records the data fragments. ing. This guarantees n: k threshold availability.
  • the security of the data according to the first aspect of the present invention is analyzed in detail as follows, and it can be seen that confidentiality in a stronger sense is guaranteed.
  • the proportion of data fragments covered by archive data illegally obtained from the storage medium is not important, and if it can not be estimated where in the original data the data fragments in the archive data appear, the original data It can not be restored.
  • the success probability of this estimation by the attacker consider the following.
  • N the total number of final data fragments obtained by dividing the data
  • m the number of data fragments contained in a specific storage medium. Since the archive destination of each data fragment is determined independently and randomly, the expected value of the value of m is given by the following equation.
  • m N N ⁇ (n-k + 1) / n Let a be the order from the beginning of the data fragment in the original data, j be the order from the beginning of the data fragment in the archive data held on the storage medium, Succ (a, j; N, m) Represents the probability that the j-th data fragment in the archive data is a copy of the a-th data fragment in the original data. This probability is evaluated by the following equation.
  • Succ (a, j; N, m) (A-1) C (j-1) (N-a) C (m-j) / N C m
  • [x] is taken as the integer which rounded off the decimal point of x. Therefore, Succ (a, [am / (N + 1)]; N, m) Is the maximum success probability when it is estimated that the position of the j-th data fragment from the beginning of the archive data in the original data is a.
  • the second aspect of the present invention in relation to the first aspect of the present invention, it is possible to further estimate the attacker by randomly determining the lengths of data fragments to be taken independently and randomly at each pointer position. Make it difficult.
  • a third aspect of the present invention in relation to the first aspect of the present invention, at each pointer position, recording a data fragment on (n ⁇ k + 1) storage media and advancing the pointer position, or Inferring an attacker's guess by independently and randomly deciding whether to store meaningless dummy data randomly generated instead of data fragments on an arbitrary number of storage media and maintain the pointer position without changing it. Make it more difficult.
  • a fourth aspect of the present invention in relation to the second aspect of the present invention, at each pointer position, recording a data fragment on (n ⁇ k + 1) storage media and advancing the pointer position, or Inferring an attacker's guess by independently and randomly deciding whether to store meaningless dummy data randomly generated instead of data fragments on an arbitrary number of storage media and maintain the pointer position without changing it. Make it more difficult.
  • a first random number generating random number for randomly determining each factor is a method of holding the generation means, generating independent random numbers by the first random number generation means at each pointer position, and determining the archive destination storage medium from the random numbers by a predetermined method.
  • the first random number generation means for generating a random number is held to determine each factor at random, and each pointer position is held.
  • the first random number generation means generates an independent random number, determines an archive destination storage medium based on the random number, and based on the random number, the length of the data fragment or dummy data insertion
  • a method is described to determine the presence or absence, or both the length of the data fragment and the presence or absence of dummy data insertion.
  • the key recording means for holding a series of random numbers generated by the first random number generation means is held, and the key recording means Based on the recorded series of random numbers, determine the storage medium from which the data fragments are to be obtained, and based on the series of random numbers, the length of the data fragments or the presence or absence of dummy data or the data fragments It describes how to determine both the length and the presence or absence of dummy data insertion and restore the original data.
  • the second random number generation means for generating a random number is held, and the first random number generation means is a seed Is an implementation of a pseudorandom number generation algorithm that generates an arbitrary number of random numbers with the input as an input, and the random number generated by the second random number generation means at the start of the archive is input to the first random number generation means as a seed , Describes a method of performing distributed archiving based on the random numbers generated by the first random number generation means.
  • a key recording means for recording the seed generated by the second random number generation means is held and recorded in the key recording means Describes a configuration in which the seed is input to the first random number generation means, the storage medium from which the data fragment is to be obtained is determined from the series of random numbers generated by the first random number generation means, and the original data is restored. .
  • a part or all of a storage medium for recording data fragments is a server accessible via a network. Describes a configuration assuming an archive service on the Internet.
  • the user in relation to the seventh or ninth aspect of the present invention, can optionally set the key recording means in a device which can be carried by the user who owns the data. It is possible to perform data archival and decryption processing using the host computer of the above-mentioned, and describe a configuration that enhances user convenience.
  • the user-portable device is an IC card, a mobile phone, or a PDA (Personal Digital Assistant). Describes the configuration.
  • the user portable device holds a microcomputer, and the microcomputer controls access to data in the device.
  • a configuration is described that is characterized in that, in addition to performing part or all of data archiving and restoration processing.
  • the user-portable device comprises first random number generation means and second random number generation means.
  • a configuration is described which is characterized in that either or both of the random number generation means of
  • a microcomputer held by the user portable device and an IC chip having random number generation means having tamper resistance characteristics.
  • a so-called smart chip configuration is described which is characterized in being implemented therein.
  • small size dummy data is added to the beginning and the end of the original data by using the above-mentioned properties. In this way, it is described how to make the original data included in the area that is difficult for attackers to estimate, thereby making the data more airtight.
  • a data archiving apparatus for archiving data to be archived in n (where n is an integer of 2 or more) archiving destination storage means, wherein a plurality of data are stored in a predetermined procedure from the data to be archived.
  • a cutting-out unit that cuts out data fragments of at least a plurality of cut-out data fragments including all of the data to be archived, and n pieces of each of the plurality of data fragments cut out by the cutting-out unit And n-k + 1 (k is a positive integer less than or equal to n) archive destination storage means of the archive destination storage means and associating means for randomly associating independently, the data extracted by the extraction means Each of the fragments is placed on the n-k + 1 destination storage means respectively associated by the association means.
  • Data archive device is achieved, characterized in that to archive.
  • a computer program for data archiving for archiving data to be archived in n (n is an integer of 2 or more) archiving destination storage means, the computer comprising: A cutting means for cutting out a plurality of data fragments in accordance with a predetermined procedure, and making at least the plurality of cut data fragments include all of the data to be archived, and the plurality of data cut out by the cutting means It functions as an associating means for randomly associating each of the fragments independently with (n-k + 1) (k is a positive integer less than or equal to n) archiving destination storage means of the n archive destination storage means. Each of the data fragments cut out by the cut-out means is Data archiving computer program for causing archived duplicate respectively attached relationship (n-k + 1) pieces of archive destination storage unit is realized.
  • a restoration apparatus for restoring data archived in n (n is an integer of 2 or more) archive destination storage means by an archive apparatus according to the seventeenth aspect of the present invention
  • Association information acquiring means for acquiring association information used by the association means to randomly associate each of the data fragments of the data independently with (n ⁇ k + 1) archive destination storage means, and For each, the data fragment acquiring unit for extracting the data fragment from any of (n ⁇ k + 1) archive destination storage units associated with the data fragment by the association information, and the extracted data fragment as the data fragment
  • And connecting means for connecting in a connection procedure corresponding to the predetermined procedure for cutting out Data recovery device can be realized, wherein the door.
  • an archive apparatus used to restore data archived in n (n is an integer of 2 or more) archive destination storage means
  • each of the association means acquires association information used to independently and randomly associate each of the data fragments of the data with (n-k + 1) archive destination storage means in the computer program for data recovery.
  • An association information acquisition unit a data fragment acquisition unit for extracting the data fragment from any of (n ⁇ k + 1) archive destination storage units associated with the data fragment according to the association information; The extracted data fragment is used to extract the data fragment.
  • Data recovery computer program for functioning as a connecting means for connecting a connecting procedure corresponding to a defined procedure is realized.
  • n (n is an integer of 2 or more) archive destination storage means for archiving target data
  • the n (n is an integer of 2 or more) archiving target data.
  • the cutting out means cuts out a plurality of data fragments from the data to be archived according to a predetermined procedure, and at least a plurality of cut out data fragments are all of the data to be archived
  • the data archiving method for causing archived duplicate n-k + 1 single archive destination storage means associated respectively with the association unit is realized.
  • a distributed archive and / or data restoration system that achieves both high-speed processing and security is realized.
  • FIG. 7 is an explanatory view of another simulation result of the principle of the present invention. It is a figure explaining the division key of the 1st Example of this invention. It is a figure explaining the number of objects of the division key of the above-mentioned 1st Example. It is a figure explaining the whole structure of the above-mentioned 1st Example. It is a figure explaining the functional block of the above-mentioned 1st Example. It is a figure explaining an example of composition of an association part of the above-mentioned 1st example.
  • the first embodiment of the present invention implements the basic configuration of the present invention. Here, prior to describing the configuration and operation of the first embodiment, the principle will be described.
  • n k threshold availability and n: k threshold confidentiality
  • data fragments are sequentially cut out from data to be archived and cut out.
  • Data fragments are redundantly recorded on (n ⁇ k + 1) storage media of n storage media.
  • An n: k split key is introduced as information specifying which (n ⁇ k + 1) storage media are selected from the n storage media.
  • the n: k split key is given a numerical identifier and identifies (n ⁇ k + 1) storage media.
  • the d_key1 having the identifier 1 specifies the first (dst_file1), the second (dst_file2) and the third (dst_file3) storage medium in the four storage media, and becomes a target when this split key is selected.
  • the data fragments are to be recorded in the storage medium of dst_file1, dst_file2 and dst_file3.
  • the identifier of the n: k split key is independently and randomly output using a random number generator.
  • FIG. 5 shows the change in the number of n: k split keys when the values of n and k change.
  • An identifier for the number of split keys is prepared, and this identifier is independently and randomly output using a random number generator.
  • FIG. 6 shows the archive system 100 according to the first embodiment as a whole, in which the archive system 100 starts the communication network 30 with the host device 10, a plurality of storage media 20 1 to 20 n, etc. Connected and configured.
  • the host device 10 is a device having an information processing function, such as a personal computer, a mobile phone, a personal digital assistant, and a home information appliance.
  • the host device 10 comprises a source / restoration file storage unit 10a.
  • the host device 10 can communicate with an information device such as a smart card, a cellular phone, a personal digital assistant, etc. described later via an interface.
  • the storage media 20 1 to 20 n receive, store, and manage data transmitted by various communication protocols via the communication network 30, and are, for example, an internal or external storage device of a server computer.
  • the host device 10 implements an archive controller 40 that controls archiving and restoration of data by, for example, installing a computer program 10b.
  • a part of the archive controller 40 may be realized by a smart card or the like.
  • the computer program 10b may realize only one of the function of archiving data and the function of restoring data.
  • the archive controller 40 of the host device 10 sequentially extracts data fragments from the source file (also simply referred to as data) to be archived stored in the source / restored file storage unit 10a, According to the n: k division key output independently and randomly, redundant recording is performed on n (k ⁇ k + 1) storage media specified independently and randomly from n storage media 20 1 to 20 n . Also, at the time of restoration, the archive controller 40 randomly specifies (n ⁇ k + 1) pieces of random identification independently from the n storage media 20 1 to 20 n according to the n: k division key output at the time of archive. The data fragment is taken out of any accessible storage medium, and the fetched data piece is additionally written to finally restore the source file.
  • the source file also simply referred to as data
  • FIG. 7 shows the configuration of the archive controller 40 realized by the host apparatus 10.
  • the archive controller 40 is configured to include a pointer 41, an overlap distribution unit 42, and a data recovery unit 46.
  • the overlap distribution unit 42 includes a data fragment extraction unit 43, an association unit 44, and a data fragment storage control unit 45.
  • the pointer 41 specifies the data fragment by shifting the pointer position from the beginning to the end of the data (file) to be archived.
  • the data fragment extraction unit 43 sequentially extracts data fragments based on the pointer position of the pointer 41. Adjacent data fragments are directly adjacent, and although typically non-overlapping, data fragments may be extracted with some overlap.
  • Associating unit 44 the extracted one data fragments, which relate to the n independent of the storage medium 20 1 ⁇ 20 n identified randomly (n-k + 1) pieces of storage medium, typically , N: output the k divided key.
  • the data fragment storage control unit 45 causes one extracted data fragment to be redundantly stored in the (n ⁇ k + 1) number of storage media independently and randomly specified from the n number of storage media 20 1 to 20 n It is.
  • the duplication and dispersing unit 42 sequentially extracts data fragments from the data to be archived, based on the pointer position from the pointer 41, and sequentially extracts the data fragments among n storage media 20 1 to 20 n .
  • the information is stored redundantly in (n ⁇ k + 1) storage media specified independently and randomly. Once all data fragments in the data have been distributed and stored in the storage media 20 1 to 20 n in an overlapping manner, the archiving operation typically ends when the pointer position reaches the end of the data.
  • the host device 10 or its storage means is made to correspond to the storage media 20 1 to 20 n.
  • a storage location (file) is provided to additionally write data fragments, and after completion of additional writing of the last data fragment, the files in the respective storage locations are transmitted to the storage media 20 1 to 20 n. Also good.
  • the data recovery unit 46 acquires the n: k division key from the association unit 44 based on the pointer position from the pointer 41, and stores the data fragment of the pointer position in the n storage media 20 1 to 20 n.
  • the (n ⁇ k + 1) number of storage media are specified, data segments are extracted from any one or more of these storage media, and connected and written to the file in the process of restoration of the source / restoration file storage unit 10a.
  • the data restoration unit 46 also manages the restored data fragment positions of the n storage media 20 1 to 20 n .
  • FIG. 8 shows a configuration example of the associating unit 44.
  • the associating unit 44 includes a random number generator 441 and a key storage unit 442.
  • the random number generator 441 outputs the n: k divided key described above, and based on this, the data fragment storage control unit 45 of the duplication and dispersing unit 42 stores data fragments in n storage media 20 1 to 20 n .
  • the information is stored redundantly in (n ⁇ k + 1) storage media specified independently and randomly.
  • the key storage unit 442 stores and manages the n: k division key output from the random number generator 441 in time series, and sequentially supplies the n: k division key to the data restoration unit 46 at the time of data restoration.
  • the data recovery unit 46 determines the data fragment acquisition destination based on the n: k split key from the key storage unit 442 and performs data recovery.
  • the association unit 44 of FIG. 8 is typically implemented by, but not limited to, a portable device such as a smart card (IC card) portable by a user, a cellular phone, a personal digital assistant (PDA) or the like.
  • a portable device such as a smart card (IC card) portable by a user, a cellular phone, a personal digital assistant (PDA) or the like.
  • the portable device implements a microcomputer and means for random number generation, which are preferably mounted in an IC chip having tamper resistance.
  • FIG. 9 shows a preferred configuration example of the associating unit 44.
  • the associating unit 44 includes a seed random number generator 443, a seed register 444, a key random number generator 445, a management table storage unit 446 and the like. It comprises.
  • the seed random number generator 443 supplies a random number as a seed to the key random number generator 445 that generates a random number according to a pseudo random number generation algorithm.
  • the seed is held in the seed register 444 and is stored and managed in the management table storage unit 446 together with the file ID.
  • the key random number generator 445 outputs a series of random number sequences based on seeds, and data is archived based on this.
  • the seed used for archiving is stored in the management table storage unit 446 in association with the file ID of the data to be archived, and the seed is extracted from the management table storage unit 446 based on the file ID of the data to be restored at the time of data restoration.
  • the key random number generator 445 outputs the same random number sequence as at the time of archiving and is used for data restoration.
  • the association unit 44 in FIG. 9 is also typically implemented by, but not limited to, a portable device such as a smart card (IC card) portable by the user.
  • a portable device such as a smart card (IC card) portable by the user.
  • association unit 44 is implemented by a smart card.
  • FIG. 10 shows the procedure of an example of smart card processing.
  • Step S01] An identifier crr_fid specifying a data file to be divided is received from the host device 10 side.
  • Step S02] The seed random number generator 443 (random number generation program) is called to generate a seed crr_seed for the key random number generator 445 (random number generation program).
  • Step S03] The seed crr_seed is associated with the data file identifier crr_fid, and is written to the management table storage unit 446 in the smart card.
  • Step S04] The key random number generator 445 is activated with the seed crr_seed as an input.
  • Step S05] The key random number generator 445 is put on standby to wait for a signal from the host apparatus 10.
  • Step S06 A signal is received from the host device 10. If the signal indicates the end of processing, the key random number generator 445 is ended and the processing is ended. If the signal is a key identifier request, the key random number generator 445 is called to generate a random number. The random numbers are generated as random numbers from 1 to n C (n ⁇ k + 1) because they are used as identifiers of n: k split keys. [Step S07]: The random number generated by the key random number generator 445 is output to the host apparatus 10 as an n: k split key identifier. [Step S08]: Return to Step S05, and wait for a signal from the host device 10.
  • FIG. 11 illustrates the procedure of the operation example of the archive system on the host device 10 side.
  • the data fragment storage control unit 45 of the host apparatus 10 is configured to include, for example, a destination file determination unit 451 and an additional writing unit 452 corresponding to the association unit 44 in FIG.
  • the destination file determining unit 451 acquires, for example, a table shown in FIG. 4 with reference to the destination table storage unit 451 a based on the randomly generated split key and randomly selected (n ⁇ k + 1) (4 in this example) Identify the storage media of The additional writing unit 452 appends data fragments to these (n ⁇ k + 1) storage media. Details will be described below.
  • Step S11 Send the identifier crr_fid of the data file to be archived to the smart card.
  • Step S12 Send a key identifier request signal to the smart card.
  • Step S13 The identifier of the n: k split key is received from the smart card, and a storage medium to which the data fragment is to be recorded is specified from the identifier using means such as table reference. In the figure, the identifier ip is received, and dst_file2 and dst_file3 are specified as the storage medium of the recording destination.
  • Step S14 A data fragment (fgmntp) of a predetermined length is extracted from the position pointed to by the pointer of the archive source data file (src_file), and the pointer is advanced to the beginning of the next data fragment to be extracted.
  • Step S15 The copy of the extracted data fragment is added to the end of the specified storage medium (dst_file2 and dst_file3 in FIG. 11).
  • Step S16 If the pointer points to the end of the data file, send a processing end signal to the smart card, and if there is still data to be archived, return to Step S12, and Send a signal to a smart card.
  • FIG. 12 and 13 illustrate an example of data restoration processing.
  • FIG. 12 shows the procedure of an example of restoration processing in the smart card.
  • Step S21 The data file identifier crr_fid is received from the host device 10.
  • Step S22 The table in the management table storage unit 446 is referred to, and the seed crr_seed linked with the identifier crr_fid is acquired.
  • Step S23 The key random number generator 445 is activated with the seed crr_seed as an input.
  • Step S24 The key random number generator 445 is put on standby to wait for a signal from the host apparatus 10.
  • Step S25 A signal is received from the host device 10. If the signal indicates the end of processing, the key random number generator 445 is ended and the processing is ended.
  • the key random number generator 445 is called to generate a random number.
  • the random numbers are generated as random numbers from 1 to n C (n ⁇ k + 1) because they are used as identifiers of n: k split keys.
  • Step S26 The random number generated by the key random number generator 445 is output to the host apparatus 10 as an n: k split key identifier.
  • Step S27 Return to Step S22, and wait for a signal from the host device 10.
  • FIG. 13 shows the procedure of an operation example of the archive system on the host device 10 side.
  • Step S31 The identifier crr_fid of the data file to be restored is sent to the smart card.
  • Step S32] Send a key identifier request signal to the smart card.
  • Step S34 The leading data fragment is removed from all the identified storage media (dst_file2 and dst_file3 in FIG. 9).
  • Step S35 The data fragment extracted in step S34 is added to the end of the data file (src_file) to be restored.
  • Step S36 (If there is no data remaining in all the storage media, send a processing end signal to the smart card. If there is still data to be restored, return to Step S32, and send the key identifier request Send a signal to a smart card. This is the end of the description of the first embodiment.
  • the second embodiment shows a method of improving security by randomly setting the lengths of data fragments each time.
  • the output from the key random number generator 445 determines the length of the data fragment in addition to the split key identifier.
  • the output of the key random number generator 445 is a pair of a natural number ip specifying the split key and a natural number bp specifying the length of the data fragment.
  • FIG. 14 and FIG. 15 explain the processing example in the archive system of the smart card and the host device 10 in the second embodiment.
  • FIG. 14 shows a procedure of an example of smart card processing.
  • Step S41 An identifier crr_fid specifying the data file to be divided is received from the host device 10 to the smart card.
  • Step S42 The seed random number generator 443 is called to generate seed crr_seed for the key random number generator 445.
  • the seed crr_seed is associated with the data file identifier crr_fid, and the seed crr_seed is written in the table of the management table storage unit 446 in the smart card.
  • Step S44] The key random number generator 445 is activated with the seed crr_seed as an input.
  • Step S45] The key random number generator 445 is put on standby to wait for a signal from the host apparatus 10.
  • Step S46 A signal is received from the host device 10. If the signal indicates the end of processing, the key random number generator 445 is ended and the processing is ended. If the signal is a key identifier request, the key random number generator 445 is called to generate a random number.
  • the random number represents an identifier ip of the n: k split key and a length (bit length) bp of the data fragment, so a randomly generated natural number of 1 to n C (n ⁇ k + 1) represents a natural number and a length. It is a pair.
  • the two pseudo random number generating means may be used to individually generate ip and bp.
  • Step S47 The random number generated by the key random number generator 445 is output to the host apparatus 10 as the identifier of the n: k split key and the length of the data fragment.
  • Step S48 Return to step S45, and wait for a signal from the host device 10.
  • FIG. 15 illustrates the procedure of the archive system operation example on the host device 10 side.
  • Step S51 Send the identifier crr_fid of the data file to be archived to the smart card.
  • Step S52 Send a key identifier request signal to the smart card.
  • Step S53 The identifier of the n: k split key and the length of the data fragment are received from the smart card, and a storage medium to which the data fragment is to be recorded is specified from the identifier using means such as table reference. In the figure, the identifier ip and the length bp of the data fragment are received, and dst_file2 and dst_file3 are specified as storage media of the recording destination from ip.
  • Step S54 Extract a data fragment (fgmntp) of a length equal to the designated bp from the position pointed to by the pointer of the data file (src_file) of the archive source, and extract the pointer position next to the beginning of the data fragment Advance.
  • Step S55 The copy of the extracted data fragment is added to the end of the identified storage media dst_file2 and dst_file3.
  • Step S56 If the pointer points to the end of the data file, send a processing end signal to the smart card, and if there is still data to be archived, return to Step S52, and send the key identifier request Send a signal to a smart card.
  • the procedure of restoration of the original data file is a reverse procedure of the above-described archiving procedure, and can be easily assumed from the description of the first embodiment, so the description will be omitted. This is the end of the description of the second embodiment.
  • the third embodiment shows a method of enhancing security by archiving dummy data at random timing.
  • the output from the key random number generator 445 determines whether to insert dummy data in addition to the split key identifier. .
  • the output of the key random number generator 445 is a pair of a natural number ip specifying a split key identifier and a logical value rp specifying insertion of dummy data.
  • the value of the logical value is true or false, and the probability distribution is not uniform (the probability that true / false is output is not necessarily 1/2).
  • FIG. 16 shows the procedure of an example of smart card processing.
  • Step S61 An identifier crr_fid specifying the data file to be divided is received from the host device 10 to the smart card.
  • Step S62 The seed random number generator 443 is called to generate seed crr_seed for the key random number generator 445.
  • Step S63 The seed crr_seed is associated with the data file identifier crr_fid, and the seed crr_seed is written in the table of the management table storage unit 446 in the smart card.
  • Step S64] The key random number generator 445 is activated with the seed crr_seed as an input.
  • Step S65 The key random number generator 445 is put on standby to wait for a signal from the host apparatus 10.
  • Step S66 A signal is received from the host device 10. If the signal indicates the end of processing, the key random number generator 445 is ended and the processing is ended. If the signal is a key identifier request, the key random number generator 445 is called to generate a random number. The random number is a pair of an identifier ip of the n: k split key and a logical value rp specifying insertion of dummy data. [Step S67]: The random number generated by the key random number generator 445 is output to the host apparatus 10 as an n: k split key identifier and a data fragment length. [Step S68]: Return to step S65, and wait for a signal from the host device 10.
  • FIG. 17 shows the procedure of the processing example of the archive program on the host device 10 side. In the following, the procedure will be described by giving numbers.
  • Step S71 Send the identifier crr_fid of the data file to be archived to the smart card.
  • Step S72 Send a key identifier request signal to the smart card.
  • Step S73 n: receive an identifier of a k-divided key and a logical value specifying insertion of dummy data from a smart card, and specify a storage medium to which a data fragment is to be recorded from the identifier using means such as table reference Do.
  • the identifier ip and the logical value rp are received, and dst_file2 and dst_file3 are specified as storage media of the recording destination from ip.
  • Step S74 If the value of rp is true, dummy data is randomly generated.
  • Step S75 If the value of rp is false, extract a data fragment (fgmntp) of a predetermined length from the position pointed to by the pointer of the archive-source data file (src_file), and extract the pointer next Advance to the beginning of the data fragment.
  • Step S76 Depending on the value of rp, a copy of the generated dummy data or the extracted data fragment is added to the end of the specified storage medium (dst_file2 and dst_file3 in FIG. 17).
  • Step S77 If the pointer points to the end of the data file, send a processing end signal to the smart card, and if there is still data to be archived, return to Step S72, and Send a signal to a smart card.
  • the processing of the smart card and the host-side archive system at the time of data restoration can be easily estimated from the description of the first embodiment, so the description is omitted here. This is the end of the description of the embodiment of the present invention.
  • dummy data and data fragments may be switched while changing the length of the data fragments in the second embodiment to a variable length.
  • the cutting out of data fragments may be determined according to a predetermined rule, and is not limited to the aspect of sequentially extracting data from the top to the end. It may be anything as long as the final set of data fragments covers all the data. Data fragments may partially overlap with each other. Dummy data may be added to the beginning and end of the data to be archived. Data to be archived may be stored locally on a plurality of portable storage media, and then transported to a different remote site by means of physical distribution.
  • the present invention may be applied to an apparatus or system that performs only data archiving, or an apparatus or system that performs only data decompression.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

 高速な処理と安全性を両立させる分散アーカイブ及びデータ復元の方式を提供する。シード用乱数発生器443が生成する乱数を、シードとして鍵用乱数発生器445に入力し、アーカイブ元のデータファイルを分割して得られるデータ断片毎に、鍵用乱数発生器445が都度生成する乱数によりn個の全記憶媒体から(n-k+1)個のアーカイブ先の記憶媒体を独立かつランダムに決定し、決定した(n-k+1)個の記憶媒体にその都度取り出したデータ断片を重複記憶する。

Description

分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置
 本発明は、分散アーカイブ技術に関するものである。
 分散アーカイブについては、データの可用性・保全の立場から、RAID(Redundant Array Of Inexpensive Disks)という技術が、特にディスクの故障からデータを保護する目的で使われてきた。例えば、RAID1では、データを記録する際に独立な二つのディスクに全く同一の内容を記録し(ミラーリング)、一方のディスクが故障してももう一つのディスクからデータを取り出せるというものである。一方、RAID3では、データをn個のディスクに分散して記録するが、ディスクのうちひとつをパリティを記録する用途に専有し、n個のディスクのうち1個のディスクが故障したとしても、残りのn-1個のディスクから元のデータを復元することを可能とする。
 しかしながら、クラウドコンピューティングなど、インターネット上のアーカイブサーバにデータを分散記録する場合には、インターネットの故障、サーバの故障、サービス不能攻撃(Denial Of Service Attack)等の理由により、2つ以上のサーバに対して同時にアクセスできなくなる事態も十分想定可能であり、1つのサーバに対するアクセス不能にしか対処できないRAIDの方式では、データの可用性・保全に問題がある。
 また、RAIDの方式はアーカイブされるデータの機密性を保証する仕組みを含まないため、他の暗号技術と併用する必要があり、装置構成、実行効率上のオーバーヘッドとなる。
 一方、特許第3607700号公報(特許文献1)では、シャミアによる秘密分散法(Adi Shamir、How To Share A Secret、Communications Of ACM、22(11)、612-613頁、1979。非特許文献1)をもちいて、n個のうちk個のサーバにアクセスできればデータの復元が可能となるようにすることで、インターネットへの適用に柔軟性を持たせ、かつ、仮にk-1個のサーバからデータが漏洩したとしても元のデータが復元されないことを理論的に保証する安全性を備えた発明が述べられている。
 しかしながら、シャミアの秘密分散法では、計算量の多い冪乗剰余の計算がデータを分割したデータ断片毎に必要となり、また、計算機の能力の制限からデータ断片の長さが高々数千ビットとならざるを得ないことから、数メガバイト、数ギガバイトに及ぶ大きなデータのアーカイブの目的には計算効率の観点から実用的ではない。
 一方、秘密のパターンを決めて、そのパターンに従って、繰り返し、データ断片を冗長性を許して分散的にアーカイブする方法も可能ではあるが、安全性を証明することは至難であろう。実際、同一のパターンが繰り返し現出するため、パターン解析によりデータの少なくとも一部を復元することができることが容易に想定できる。安全性が証明できない以上、他の暗号技術と併用する必要があり、前述のように、装置構成、実行効率上のオーバーヘッドとなる。
特許第3607700号公報
Adi Shamir、How To Share A Secret、Communications Of ACM、22(11)、612-613頁、1979
 背景技術で述べた従来技術の問題点に鑑み、本発明では、任意に選択されたkとn(0<k≦n)に対して、データはn箇所のサーバ或いは記憶媒体に分散して記録され、以下の可用性と機密性に関わる以下の二項目の要件を満たすとともに、高速なデータアーカイブ・復元処理が可能であり、かつ、機密性に対して理論的な裏付けが与えられる方法を示す。
 n箇所のサーバ或いは記憶媒体のうち、k箇所からアーカイブされたデータを取得することができれば、元のデータを完全に復元することができる。この要件をn:k閾可用性と呼ぶ。
 たとえ、攻撃者が、n箇所のサーバ或いは記憶媒体のうちk-1箇所からデータを不正に取得し得たとしても、取得したデータから元のデータを復元することはできない。この要件をn:k閾機密性と呼ぶ。
 情報セキュリティ、就中、暗号技術においては、方式に対する有効な攻撃方法が発見されていないという事実をもって方式が安全であると主張することは許されず、一定の数理モデルに基づいて攻撃が不可能である(実際には攻撃の成功確率が極めて小さい)ことを証明し得て始めて、安全性を主張することが許される。その観点で、本発明が解決するべき最重要の課題は、上記二つの要件を満足する方式において、効率的な処理と安全性の証明を両立させる点にある。
 なお、本発明は、上述の課題により限定的に理解されるべきでなく、その内容は特許請求の範囲に規定され、以下に実施例を用いて詳細に説明される。
 本発明の第1の側面によれば、初期状態ではデータ先頭を指し、処理の進行につれてデータ末尾に向かって一方向に動くポインタ手段を保持し、各ポインタ位置から所定の長さのデータ断片を取り出し、当該データ断片を記憶すべき(n-k+1)個の記憶媒体をn個の記憶媒体のうちから独立かつランダムに選び、当該(n-k+1)個の記憶媒体に当該データ断片を重複して記録し、ポインタ位置をデータ断片の長さだけ進め、ポインタ位置がデータ末尾に達するまで前記処理を繰り返す。
 この構成では、各データ断片は(n-k+1)個の記憶媒体に重複して記録されるので、任意にk個の記憶媒体を選んだ時、少なくとも一つの記憶媒体は当該データ断片を記録している。これにより、n:k閾可用性が保証される。
 一方、(k-1)個の記憶媒体を任意に選んだ時、当該データ断片が当該記憶媒体に包含されている確率は、
1-1/(k-1)
と与えられ、従って、データ全体に対して平均で1/(k-1)のデータは欠損することとなり、n:k閾機密性が保証される。
 更に、本発明の第1の側面によるデータの安全性は、以下のように詳細に解析され、より強い意味での機密性が保証されることが分かる。実際、記憶媒体から不正に取得したアーカイブデータがカバーするデータ断片の割合が重要なのではなく、アーカイブデータ中のデータ断片が元のデータのどの位置に現れるかを推定できなければ、元のデータを復元することはできない。攻撃者によるこの推定の成功確率を評価するために、以下の考察を行う。
 Nをデータを分割した最終的なデータ断片の総数とし、mを特定の記憶媒体に含まれるデータ断片の個数とする。各データ断片のアーカイブ先は独立かつランダムに決定されるので、mの値の期待値は下式で与えられる。
m≒N・(n-k+1)/n
aを元のデータ中でのデータ断片の先頭からの順番、jを前記記憶媒体に保持されるアーカイブデータ中でのデータ断片の先頭からの順番とし、
Succ(a,j;N,m)
でアーカイブデータ中でj番目のデータ断片が、元のデータ中でa番目のデータ断片のコピーである確率を表す。この確率は、以下の式で評価される。
Succ(a,j;N,m)
(a-1)(j-1)(N-a)(m-j)
 与えられたaに対して、j=[am/(N+1)]の時、Succ(a,j;N,m)は最大値をとる。但し、[x]はxの小数点以下を切り捨てた整数とする。従って、
Succ(a,[am/(N+1)];N,m)
が、アーカイブデータ中で先頭からj番目のデータ断片の元のデータでの位置がaであると推測した時の成功確率の最大値となる。
 一方、Succ(a,[am/(N+1)];N,m)をスターリングの公式を用いて近似すると、
Succ(a,[am/(N+1)];N,m)≒
(1/π1/2)・(m/N)・[(N-1)/(a-1)(N-a)]1/4
を得る。図1は、この近似式をグラフに図示したものである。aが1或いはNに近い時、つまり、データ断片が元のデータ中において先頭或いは末尾に近い時、攻撃者がj=[am/(N+1)]と推測した時の成功確率は1に近いが、データ断片が先頭或いは末尾から離れると、成功確率は急速に低下することが分かる。則ち、データの先頭及び末尾に近いごく少数のデータ断片に関しては、攻撃者が高い確率でアーカイブデータ中での位置を推定することが可能であるが、その他の大多数のデータ断片では低い確率でしか推定を行えないことを意味している。図2はN=100、m=75の場合にシミュレーションを行った結果のグラフであり、図3はN=1000、m=750の場合にシミュレーションを行った結果のグラフである。どちらのグラフも、理論的に導いた近似式が適切であることを示している。加えて重要な点は、N=1000と極めて小さな数に分割した場合でも、推定の成功確率は5%程度に抑えられている事実である。例えば、1メガバイトのファイルを長さ1バイトのデータ断片に分割してアーカイブする場合、N=1000000となり、推定の成功確率は極めて小さいものとなる。
 更に、現実では相当数のデータ断片の位置を推定できなければ、部分的にでもデータを復元したとはいえない。従って、複数のデータ断片に対してその位置を推定しなければならず、全てのデータ断片に対してその位置を正しく推定する成功確率は、データ断片の個数が増えるに従って急速に低下する。
 本発明の第2の側面によれば、本発明の第1の側面に関連して、各ポインタ位置において、取り出すデータ断片の長さを独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
 本発明の第3の側面によれば、本発明の第1の側面に関連して、各ポインタ位置において、データ断片を(n-k+1)個の記憶媒体に記録しポインタ位置を進めるか、または、データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録しポインタ位置を変更せずに維持するかを、独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
 本発明の第4の側面によれば、本発明の第2の側面に関連して、各ポインタ位置において、データ断片を(n-k+1)個の記憶媒体に記録しポインタ位置を進めるか、または、データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録しポインタ位置を変更せずに維持するかを、独立かつランダムに決定することにより、攻撃者の推定をより困難にする。
 本発明の第5の側面によれば、本発明の第1の側面において、本発明の第1の側面に関連して、各ファクターをランダムに決定するために、乱数を生成する第一の乱数生成手段を保持し、各ポインタ位置において、第一の乱数生成手段により独立な乱数を生成し、当該乱数から所定の方法で、アーカイブ先記憶媒体を決定する方法を述べている。
 本発明の第6の側面によれば、本発明の第4の側面に関連して、各ファクターをランダムに決定するために、乱数を生成する第一の乱数生成手段を保持し、各ポインタ位置において、第一の乱数生成手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定し、かつ、当該乱数に基づいて、データ断片の長さ、または、ダミーデータ挿入の有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定する方法を述べている。
 本発明の第7の側面によれば、本発明の第6の側面に関連して、第一の乱数生成手段により生成した一連の乱数を記録する鍵記録手段を保持し、当該鍵記録手段に記録された一連の乱数に基づいて、データ断片を取得するべき記憶媒体を決定し、かつ、当該一連の乱数に基づいて、データ断片の長さ、または、ダミーデータの有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定し、元のデータを復元する方法を述べている。
 本発明の第8の側面によれば、本発明の第5の側面または第6の側面に関連して、乱数を生成する第二の乱数生成手段を保持し、第一の乱数生成手段がシードを入力として任意の個数の乱数を生成する疑似乱数生成アルゴリズムを実現したものであり、アーカイブ開始時において第二の乱数生成手段により生成した乱数をシードとして第一の乱数生成手段に入力し、以降、第一の乱数生成手段が生成した乱数に基づいて分散アーカイブを行う方法を述べている。
 本発明の第9の側面によれば、本発明の第8の側面に関連して、第二の乱数生成手段により生成したシードを記録する鍵記録手段を保持し、当該鍵記録手段に記録されたシードを第一の乱数生成手段に入力し、第一の乱数生成手段が生成する一連の乱数から、データ断片を取得するべき記憶媒体を判断し、元のデータを復元する構成を述べている。
 本発明の第10の側面によれば、本発明の第1~第9の側面に関連して、データ断片を記録する記憶媒体の一部或いはすべてが、ネットワークを介してアクセスできるサーバであることを特徴とする、インターネットでのアーカイブサービスを想定した構成を述べている。
 本発明の第11の側面によれば、本発明の第7または第9の側面に関連して、鍵記録手段をデータの所有者たるユーザが携行可能なデバイス中に設けることで、ユーザは任意のホスト計算機を用いてデータのアーカイブ及び復号処理を行うことが可能となり、ユーザの利便性を高める構成を述べている。
 本発明の第12の側面によれば、本発明の第11の側面に関連して、前記ユーザが携行可能なデバイスがICカード、携帯電話、またはPDA(パーソナルデジタルアシスタント)であることを特徴とする、構成を述べている。
 本発明の第13の側面によれば、本発明の第11の側面に関連して、前記ユーザが携行可能なデバイスがマイクロコンピュータを保持し、当該マイクロコンピュータによってデバイス中のデータへのアクセス制御を行うと共に、データのアーカイブ及び復元処理の一部或いは全部を実行することを特徴とする、構成を述べている。
 本発明の第14の側面によれば、本発明の第13の側面に関連して、請求項13に記載の発明では、前記ユーザが携行可能なデバイスが、第一の乱数生成手段及び第二の乱数生成手段のいずれか、或いは、両方を保持することを特徴とする、構成を述べている。
 本発明の第15の側面によれば、本発明の第14の側面に関連して、前記ユーザが携行可能なデバイスが保持するマイクロコンピュータ、及び、乱数生成手段が、耐タンパー特性を有するICチップ中に実装されることを特徴とする、所謂、スマートチップによる構成を述べている。
 本発明の第16の側面によれば、本発明の第1~第15の側面に関連して、上記の性質を利用して、元のデータの先頭と末尾に小さなサイズのダミーデータを追加することで、元のデータを攻撃者による推定が困難な領域に含まれるようにし、もってデータの気密性を高める方法を述べている。
 本発明の第17の側面によれば、アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ装置において、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段と、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちのn-k+1個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段とを有し、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたn-k+1個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ装置が実現される。
 本発明の第18の側面によれば、アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるためのデータアーカイブ用コンピュータプログラムにおいて、コンピュータを、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段、および、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちの(n-k+1)個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段として機能させ、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられた(n-k+1)個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ用コンピュータプログラムが実現される。
 本発明の第19の側面によれば、本発明の第17の側面に従うアーカイブ装置によりn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせているデータを復元する復元装置において、前記関連付け手段が前記データのデータ断片の各々を(n-k+1)個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段と、前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた(n-k+1)個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段と、取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段とを有することを特徴とするデータ復元装置が実現される。
 本発明に第20の側面によれば、本発明の第17の側面に従うアーカイブ装置によりn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせているデータを復元するために用いられるデータ復元用コンピュータプログラムにおいて、コンピュータを、前記関連付け手段が前記データのデータ断片の各々を(n-k+1)個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段、前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた(n-k+1)個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段、および、取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段として機能させるためのデータ復元用コンピュータプログラムが実現される。
 本発明の第21の側面によれば、アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段を具備し、アーカイブ対象データを前記n個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ方法において、切り出し手段が、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになすステップと、関係付け手段が、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちの(n-k+1)個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付けるステップとを有し、前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたn-k+1個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ方法が実現される。
 本発明によれば、高速な処理と安全性を両立させる分散アーカイブおよび/またはデータ復元の方式が実現される。
本発明の原理的な説明図である。 本発明の原理のシミュレーション結果の説明図である。 本発明の原理の他のシミュレーション結果の説明図である。 本発明の第1の実施例の分割鍵を説明する図である。 上述第1の実施例の分割鍵の個数を説明する図である。 上述第1の実施例の全体構成を説明する図である。 上述第1の実施例の機能ブロックを説明する図である。 上述第1の実施例の関連付け部の構成例を説明する図である。 上述第1の実施例の関連付け部のより好ましい構成例を説明する図である。 上述実施例のデータアーカイブ時の動作例を説明する図である。 上述実施例のデータアーカイブ時の動作例を説明する図である。 上述実施例のデータ復元時の動作例を説明する図である。 上述実施例のデータ復元時の動作例を説明する図である。 本発明の第2の実施例を説明する図である。 本発明の第2の実施例を説明する図である。 本発明の第3の実施例を説明する図である。 本発明の第3の実施例を説明する図である。
 以下、図面等を参照しながら、本発明の実施例について更に詳しく説明する。
[第1の実施例]
 本発明の第1の実施例は、本発明の原理的な構成を実装したものである。ここでは、第1の実施例の構成および動作を説明するのに先立って、原理的な説明を行う。
 第1の実施例のアーカイブシステム100(図6)においては、n:k閾可用性とn:k閾機密性を実現するために、アーカイブ対象のデータから順次にデータ断片を切り出し、切り出した一つのデータ断片を、n個の記憶媒体のうちの(n-k+1)個の記憶媒体に重複して記録する。n個の記憶媒体からどの(n-k+1)個の記憶媒体を選択するかを特定する情報として、n:k分割鍵を導入する。n:k分割鍵には数字で表される識別子が与えられており、(n-k+1)個の記憶媒体を特定する。n:k分割鍵を独立してランダムに出力することにより、n個の記憶媒体から独立してランダムに特定した(n-k+1)個の記憶媒体を選択してデータ断片を重複して記録する。
 図4は、n=4、k=2の場合の例である。n個の記憶媒体から(n-k+1)個の記憶媒体を選ぶ場合の数は(n-k+1)であり、この場合は(4-2+1)=4個の分割鍵が存在することになるので、1から4までの識別子を与えられた分割鍵d_key1、d_key2、d_key3、d_key4を考える。識別子1を有するd_key1は、4個ある記憶媒体中の1番目(dst_file1)、2番目(dst_file2)及び3番目(dst_file3)の記憶媒体を特定し、この分割鍵が選択されると、対象となるデータ断片はdst_file1、dst_file2及びdst_file3の記憶媒体に記録されることとなる。n:k分割鍵の識別子は乱数発生器を用いて独立してランダムに出力される。
 図5は、n及びkの値が変化した時のn:k分割鍵の個数の変化を示したものである。分割鍵の個数分の識別子を用意し、乱数発生器を用いてこの識別子を独立してランダムに出力する。
 図6は、第1の実施例のアーカイブシステム100を全体として示しており、この図において、アーカイブシステム100は、ホスト装置10、複数の記憶媒体20~20等を通信ネットワーク30を開始して接続して構成される。ホスト装置10は、パーソナルコンピュータ、携帯電話機、パーソナルデジタルアシスタント、情報家電製品等、情報処理機能を有する機器である。ホスト装置10はソース/復元ファイル記憶部10aを具備している。また、ホスト装置10は、インターフェースを介して後述するスマートカード、携帯電話機、パーソナルデジタルアシスタント等の情報デバイスと通信することができる。記憶媒体20~20は、通信ネットワーク30を介して種々の通信プロトコルで伝送されてきたデータを受信して記憶管理するものであり、例えば、サーバコンピュータの内部または外部記憶装置である。
 ホスト装置10は、例えばコンピュータプログラム10bをインストールすることにより、データのアーカイブおよび復元を制御するアーカイブコントローラ40を実現する。アーカイブコントローラ40の一部はスマートカード等で実現されても良い。コンピュータプログラム10bはデータのアーカイブを行う機能、およびデータの復元を行う機能のいずれか一方のみを実現させても良い。
 ホスト装置10のアーカイブコントローラ40は、アーカイブ時には、ソース/復元ファイル記憶部10aに記憶されているアーカイブ対象のソースファイル(単にデータともいう)からデータ断片を順次に取り出して、取り出したデータ断片を、独立してランダムに出力されたn:k分割鍵に応じて、n個の記憶媒体20~20から独立してランダムに特定した(n-k+1)個の記憶媒体に重複して記録する。また、このアーカイブコントローラ40は、復元時には、アーカイブ時に出力されたn:k分割鍵に応じて、n個の記憶媒体20~20から独立してランダムに特定した(n-k+1)個の記憶媒体のいずれかアクセス可能なものからデータ断片を取り出し、取り出したデータ断片を追加書き込みして最終的にソースファイルを復元する。
 アーカイブコントローラ40のアーカイブ時および復元時の詳細な動作については以下に説明される具体的な構成に基づいて明らかになる。
 図7は、ホスト装置10が実現するアーカイブコントローラ40の構成を示し、この図において、アーカイブコントローラ40は、ポインタ41、重複分散化部42、データ復元部46を含んで構成される。重複分散化部42は、データ断片抽出部43、関連付け部44、データ断片記憶制御部45を含んで構成される。
 ポインタ41はアーカイブ対象データ(ファイル)の先頭から末尾までポインタ位置をずらしてデータ断片を特定するものである。データ断片抽出部43は、ポインタ41のポインタ位置に基づいて順次にデータ断片を抽出するものである。隣接するデータ断片は直接に隣接し、典型的には、重複しないけれども、一部を重複させてデータ断片を抽出しても良い。関連付け部44は、抽出した1つのデータ断片を、n個の記憶媒体20~20から独立してランダムに特定した(n-k+1)個の記憶媒体に関連付けるものであり、典型的には、さきのn:k分割鍵を出力する。データ断片記憶制御部45は、抽出した1つのデータ断片を、n個の記憶媒体20~20から独立してランダムに特定した(n-k+1)個の記憶媒体に重複して記憶させるものである。
 重複分散化部42は、ポインタ41からのポインタ位置に基づいて、アーカイブ対象データからデータ断片を順次に抽出して、この順次に抽出したデータ断片を、n個の記憶媒体20~20中の独立してランダムに特定した(n-k+1)個の記憶媒体に重複して記憶していく。データ中のすべてのデータ断片を記憶媒体20~20に重複した態様で分散記憶させ終わると、典型的にはポインタ位置がデータの末尾に到達したときにアーカイブ動作が終了する。
 なお、データ断片の記憶媒体20~20への書き込みは通信ネットワーク等を介して直接行われるけれども、記憶媒体20~20に対応させてホスト装置10またはその記憶手段にそれぞれの対応する記憶位置(ファイル)を設けてデータ断片を追加書き込みしていき、最後のデータ断片の追加書き込みが終了した後に、それぞれの記憶位置にあるファイルを記憶媒体20~20に伝送するようにしても良い。
 データ復元部46は、ポインタ41からのポインタ位置に基づいて関連付け部44からn:k分割鍵を取得して、n個の記憶媒体20~20中で、当該ポインタ位置のデータ断片を記憶する(n-k+1)個の記憶媒体を特定し、これらのいずれの1つまたは複数の記憶媒体からデータセグメントを抽出してソース/復元ファイル記憶部10aの復元途中のファイルに連結書き込みする。データ復元部46は、n個の記憶媒体20~20の復元データ断片位置も管理している。
 図8は、関連付け部44の構成例を示しており、この図において、関連付け部44は、乱数発生器441、および鍵記憶部442を含んで構成される。乱数発生器441が、さきに説明したn:k分割鍵を出力し、これに基づいて重複分散化部42のデータ断片記憶制御部45がデータ断片をn個の記憶媒体20~20中の独立してランダムに特定した(n-k+1)個の記憶媒体に重複して記憶していく。また、鍵記憶部442は、乱数発生器441から出力されたn:k分割鍵を時系列を維持して記憶管理し、データ復元時にデータ復元部46に順次に供給する。データ復元部46は鍵記憶部442からのn:k分割鍵に基づいてデータ断片の取得先を決定してデータ復元を行う。
 図8の関連付け部44は、典型的には、ユーザが携行可能なスマートカード(ICカード)、携帯電話機、パーソナルデジタルアシスタント(PDA)等の携行可能なデバイスにより実装されるがこれに限定されない。携行可能なデバイスはマイクロコンピュータおよび乱数発生手段を実現し、これらが、好ましくは、耐タンパー性を有するICチップ中に実装される。
 図9は、関連付け部44の好ましい構成例を示しており、この図において、関連付け部44は、シード用乱数発生器443、シードレジスタ444、鍵用乱数発生器445、管理テーブル記憶部446等を含んで構成される。シード用乱数発生器443は、疑似乱数発生アルゴリズムにより乱数を発生する鍵用乱数発生器445にシードとして乱数を供給する。シードはシードレジスタ444に保持され、また管理テーブル記憶部446にファイルIDとともに記憶管理される。鍵用乱数発生器445はシードに基づいた一連の乱数列を出力し、これに基づいてデータのアーカイブが行われる。また、アーカイブに用いられたシードはアーカイブ対象データのファイルIDと関連付けて管理テーブル記憶部446に記憶管理され、データ復元時に復元対象データのファイルIDに基づいてシードが管理テーブル記憶部446から取り出され、それを用いて鍵用乱数発生器445がアーカイブ時と同一の乱数列を出力してデータ復元に用いられる。
 図9の関連付け部44も、典型的には、ユーザが携行可能なスマートカード(ICカード)等の携行可能なデバイスにより実装されるがこれに限定されない。
 つぎに図9の関連付け部44に関連して第1の実施例のアーカイブシステム100の動作例を説明する。なお、ここでは関連付け部44はスマートカードにより実装されているものとする。
 図10はスマートカードの処理例の手順を示す。
[ステップS01]:分割するデータファイルを特定する識別子crr_fidをホスト装置10側から受け取る。
[ステップS02]:シード用乱数発生器443(乱数発生プログラム)を呼び出し、鍵用乱数発生器445(乱数発生プログラム)のためのシードcrr_seedを生成する。
[ステップS03]:シードcrr_seedを、データファイルの識別子crr_fidと紐づけて、スマートカード内の管理テーブル記憶部446に書き込む。
[ステップS04]:シードcrr_seedを入力として鍵用乱数発生器445を起動する。
[ステップS05]:鍵用乱数発生器445をスタンバイ状態にしてホスト装置10からのシグナルを待ち受ける。
[ステップS06]:ホスト装置10側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器445を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器445を呼び出し、乱数を生成させる。乱数は、n:k分割鍵の識別子として用いられるため、1から(n-k+1)までの自然数をランダムにとるように生成される。
[ステップS07]:鍵用乱数発生器445が生成した乱数を、n:k分割鍵の識別子としてホスト装置10に出力する。
[ステップS08]:ステップS05に戻り、ホスト装置10からのシグナルを待ち受ける。
 図11は、ホスト装置10側のアーカイブシステムの動作例の手順を説明する。なお、図11に示すように、図9の関連付け部44に対応して、ホスト装置10のデータ断片記憶制御部45は例えば宛先ファイル決定部451および追加書き込み部452を含んで構成される。宛先ファイル決定部451はランダムに生成された分割鍵に基づいて例えば図4に示すテーブルを宛先テーブル記憶部451aを参照して取得しランダムに選択された(n-k+1)個(この例では4個)の記憶媒体を特定する。追加書き込み部452はこれら(n-k+1)個の記憶媒体にデータ断片を追記する。以下詳細に説明する。
[ステップS11]:アーカイブを行うデータファイルの識別子crr_fidをスマートカードに送付する。
[ステップS12]:鍵識別子要求のシグナルをスマートカードに送付する。
[ステップS13]:n:k分割鍵の識別子をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ipを受け取って、dst_file2及びdst_file3を記録先の記憶媒体として特定している。
[ステップS14]:アーカイブ元のデータファイル(src_file)のポインタが指している位置から、所定の長さのデータ断片(fgmntp)を取り出し、ポインタを次に取り出すデータ断片の先頭に進める。
[ステップS15]:取り出したデータ断片のコピーを、特定した記憶媒体(図11ではdst_file2及びdst_file3)の末尾に追記する。
[ステップS16]:ポインターがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップS12に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
 図12及び図13は、データの復元処理例を説明するためのものである。
 図12は、スマートカードにおける復元処理例の手順を示す。
[ステップS21]:ホスト装置10からデータファイルの識別子crr_fidを受け取る。
[ステップS22]:管理テーブル記憶部446中のテーブルを参照し、識別子crr_fidと紐づけられたシードcrr_seedを取得する。
[ステップS23]:シードcrr_seedを入力として鍵用乱数発生器445を起動する。
[ステップS24]:鍵用乱数発生器445をスタンバイ状態にしてホスト装置10からのシグナルを待ち受ける。
[ステップS25]:ホスト装置10側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器445を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器445を呼び出し、乱数を生成させる。乱数は、n:k分割鍵の識別子として用いられるため、1から(n-k+1)までの自然数をランダムにとるように生成される。
[ステップS26]:鍵用乱数発生器445が生成した乱数を、n:k分割鍵の識別子としてホスト装置10に出力する。
[ステップS27]:ステップS22に戻り、ホスト装置10からのシグナルを待ち受ける。
 図13は、ホスト装置10側のアーカイブシステムの動作例の手順を示す。
[ステップS31]:復元対象のデータファイルの識別子crr_fidをスマートカードに送付する。
[ステップS32]:鍵識別子要求のシグナルをスマートカードに送付する。
[ステップS33]:n:k分割鍵の識別子をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を取得する先の記憶媒体を特定する。図中では、識別子ipを受け取って、dst_file2及びdst_file3を記録先の記憶媒体として特定している。
[ステップS34]:特定された全ての記憶媒体(図9ではdst_file2及びdst_file3)から先頭のデータ断片を取り去る。データ断片を取り去った後の各記憶手段の先頭位置はそれぞれチェックポイントとして管理できる。
[ステップS35]:復元するデータファイル(src_file)の末尾に、ステップS34で取り出したデータ断片を追記する。
[ステップS36]:(すべての記憶媒体にデータが残っていない場合にはスマートカードに処理終了のシグナルを送り、まだ復元するべきデータが残っている場合にはステップS32に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
 以上で第1の実施例の説明を終了する。
[第2の実施例]
 つぎに本発明の第2の実施例のアーカイブシステムについて説明する。第2の実施例では、データ断片の長さを都度ランダムに定めることにより、安全性を向上させる方法を示す。
 第1の実施例との相違は、鍵用乱数発生器445からの出力が、分割鍵の識別子に加えて、データ断片の長さを決定する点にある。具体的には、鍵用乱数発生器445の出力は、分割鍵を指定する自然数ipとデータ断片の長さを指定する自然数bpとのペアとなる。
 図14と図15は、第2の実施例におけるスマートカードとホスト装置10のアーカイブシステムにおける処理例を説明する。
 図14は、スマートカードの処理例の手順を示す。
[ステップS41]:分割するデータファイルを特定する識別子crr_fidをホスト装置10側からスマートカードに受け取る。
[ステップS42]:シード用乱数発生器443を呼び出し、鍵用乱数発生器445のためのシードcrr_seedを生成する。
[ステップS43]:シードcrr_seedを、データファイルの識別子crr_fidと紐づけて、スマートカード内の管理テーブル記憶部446のテーブルに書き込む。
[ステップS44]:シードcrr_seedを入力として鍵用乱数発生器445を起動する。
[ステップS45]:鍵用乱数発生器445をスタンバイ状態にしてホスト装置10からのシグナルを待ち受ける。
[ステップS46]:ホスト装置10側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器445を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器445を呼び出し、乱数を生成させる。乱数は、n:k分割鍵の識別子ipとデータ断片の長さ(ビット長)bpを表すため、ランダムに生成された1から(n-k+1)までの自然数と長さを表す自然数のペアである。2つの疑似乱数発生手段を用いてip、bpを個別に生成しても良い。
[ステップS47]:鍵用乱数発生器445が生成した乱数を、n:k分割鍵の識別子とデータ断片の長さとしてホスト装置10に出力する。
[ステップS48]:ステップS45に戻り、ホスト装置10からのシグナルを待ち受ける。
 図15は、ホスト装置10側のアーカイブシステム動作例の手順を説明する。
[ステップS51]:アーカイブを行うデータファイルの識別子crr_fidをスマートカードに送付する。
[ステップS52]:鍵識別子要求のシグナルをスマートカードに送付する。
[ステップS53]:n:k分割鍵の識別子とデータ断片の長さをスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ipとデータ断片の長さbpとを受け取って、ipからdst_file2及びdst_file3を記録先の記憶媒体として特定している。
[ステップS54]:アーカイブ元のデータファイル(src_file)のポインターが指している位置から、指定されたbpと等しい長さのデータ断片(fgmntp)を取り出し、ポインター位置を次に取り出すデータ断片の先頭に進める。
[ステップS55]:取り出したデータ断片のコピーを、特定した記憶媒体dst_file2及びdst_file3の末尾に追記する。
[ステップS56]:ポインターがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップS52に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
 元のデータファイルの復元の手順は、上記アーカイブ手順の逆手順であり、第1の実施例の説明からも容易に想定できるため、記述を省略する。
 以上で第2の実施例の説明を終了する。
[第3の実施例]
 つぎに本発明の第3の実施例について説明する。第3の実施例では、ランダムなタイミングでダミーデータをアーカイブすることにより、安全性をより高める方法を示す。
 第3の実施例との第1の実施例との相違は、鍵用乱数発生器445からの出力が、分割鍵の識別子に加えて、ダミーデータを挿入するか否かを決定する点にある。具体的には、鍵用乱数発生器445の出力は、分割鍵の識別子を指定する自然数ipとダミーデータの挿入を指定する論理値rpとのペアとなる。論理値の値は真または偽であり、その確率分布は一様とは限らない(真・偽が出力される確率は必ずしも1/2ではない)。
 図16は、スマートカードの処理例の手順を示す。
[ステップS61]:分割するデータファイルを特定する識別子crr_fidをホスト装置10側からスマートカードに受け取る。
[ステップS62]:シード用乱数発生器443を呼び出し、鍵用乱数発生器445のためのシードcrr_seedを生成する。
[ステップS63]:シードcrr_seedを、データファイルの識別子crr_fidと紐づけて、スマートカード内の管理テーブル記憶部446のテーブルに書き込む。
[ステップS64]:シードcrr_seedを入力として鍵用乱数発生器445を起動する。
[ステップS65]:鍵用乱数発生器445をスタンバイ状態にしてホスト装置10からのシグナルを待ち受ける。
[ステップS66]:ホスト装置10側からシグナルを受け取る。シグナルが処理終了を指示している場合は、鍵用乱数発生器445を終了して、処理を終了する。シグナルが鍵識別子要求である場合には、鍵用乱数発生器445を呼び出し、乱数を生成させる。乱数は、n:k分割鍵の識別子ipとダミーデータの挿入を指定する論理値rpとのペアである。
[ステップS67]:鍵用乱数発生器445が生成した乱数を、n:k分割鍵の識別子とデータ断片の長さとしてホスト装置10に出力する。
[ステップS68]:ステップS65に戻り、ホスト装置10からのシグナルを待ち受ける。
 図17では、ホスト装置10側のアーカイブプログラムの処理例の手順を示す。以下、手順に番号をつけて説明する。
[ステップS71]:アーカイブを行うデータファイルの識別子crr_fidをスマートカードに送付する。
[ステップS72]:鍵識別子要求のシグナルをスマートカードに送付する。
[ステップS73]:n:k分割鍵の識別子とダミーデータの挿入を指定する論理値をスマートカードから受け取り、テーブル参照等の手段を用いて、識別子からデータ断片を記録する先の記憶媒体を特定する。図中では、識別子ipと論理値rpとを受け取って、ipからdst_file2及びdst_file3を記録先の記憶媒体として特定している。
[ステップS74]:rpの値が真の場合には、ダミーデータをランダムに生成する。
[ステップS75]:rpの値が偽の場合には、アーカイブ元のデータファイル(src_file)のポインタが指している位置から、所定の長さのデータ断片(fgmntp)を取り出し、ポインタを次に取り出すデータ断片の先頭に進める。
[ステップS76]:rpの値に応じて、生成したダミーデータ、或いは、取り出したデータ断片のコピーを、特定した記憶媒体(図17ではdst_file2及びdst_file3)の末尾に追記する。
[ステップS77]:ポインタがデータファイルの末尾を指示している場合にはスマートカードに処理終了のシグナルを送り、まだアーカイブするべきデータが残っている場合にはステップS72に戻り、鍵識別子要求のシグナルをスマートカードに送付する。
 データの復元時のスマートカード及びホスト側のアーカイブシステムの処理は、第1の実施例の説明から容易に推定できるので、ここでは説明を省略する。
 以上で本発明の実施例の説明を終了する。
 なお、本発明は上述の実施例に限定されず種々変更が可能である。また、各実施例の特徴を組みあわせてもよい。例えば、実施例2のデータ断片の長さを可変長にしつつダミーデータとデータ断片の切り替えとを行うようにしても良い。また、データ断片の切り出しは所定のルールで定められておればよく、データの先頭から末尾まで順番に取り出す態様に限定されない。最終的なデータ断片の集合がデータをすべてカバーするものであればどのようなものでもよい。データ断片同士が一部で重複しても良い。アーカイブ対象のデータの先頭および末端にダミーデータを付加しても良い。アーカイブ対象データを複数の可搬性の記憶媒体にローカルで重複記憶させ、そののち、異なるリモートのサイトに物流手段で搬出しても良い。
 また、本発明は、データアーカイブのみを行う装置またはシステム、あるいは、データ復元のみを行う装置またはシステムに適用しても良い。
10  ホスト装置
10a  ソース/復元ファイル記憶部
10b  コンピュータプログラム
20~20  記憶媒体
30  通信ネットワーク
40  アーカイブコントローラ
41  ポインタ
42  重複分散化部
43  データ断片抽出部
44  関連付け部
45  データ断片記憶制御部
46  データ復元部
100  アーカイブシステム
441  乱数発生器
442  鍵記憶部
443  シード用乱数発生器
444  シードレジスタ
445  鍵用乱数発生器
446  管理テーブル記憶部

Claims (21)

  1.  データを複数のn個(nは2以上の整数)の記憶媒体に分散して記憶する分散アーカイブシステムにおいて、
     前記n個の記憶媒体と、
     初期状態ではデータ先頭を指し、処理の進行につれてデータ末尾に向かって一方向に動くポインタ手段と、
     前記ポインタ手段が指定するポインタ位置から所定の長さのデータ断片を取り出し、当該データ断片を記憶すべき(n-k+1)個(kはn以下の正の整数)の記憶媒体を前記n個の記憶媒体のうちから独立かつランダムに選び、当該(n-k+1)個の記憶媒体に当該データ断片を重複して記録する重複分散化手段とを有し、
     前記重複分散化手段が当該データ断片を当該(n-k+1)個の記憶媒体に重複して記憶させるたびに、前記ポインタ位置を前記データ断片の長さだけ進め、前記重複分散化手段が前記データに含まれるすべてのデータ断片について処理を終了するまで前記重複分散化手段の記憶処理を繰り返すことを特徴とする分散アーカイブシステム。
  2.  前記ポインタ位置の各々において、取り出すデータ断片の長さを独立かつランダムに決定することを特徴とする、請求項1に記載の分散アーカイブシステム。
  3.  前記ポインタ位置の各々において、前記データ断片を(n-k+1)個の記憶媒体に記録して当該ポインタ位置を進めるか、または、前記データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録し当該ポインタ位置を変更せずに維持するかの選択を、独立かつランダムに決定することを特徴とする、請求項1に記載の分散アーカイブシステム。
  4.  前記ポインタ位置の各々において、前記データ断片を(n-k+1)個の記憶媒体に記録して当該ポインタ位置を進めるか、または、前記データ断片の代わりにランダムに生成した無意味なダミーデータを任意個数の記憶媒体に記録し当該ポインタ位置を変更せずに維持するかの選択を、独立かつランダムに決定することを特徴とする、請求項2に記載の分散アーカイブシステム。
  5.  乱数を生成する第一の乱数生成手段を有し、前記ポインタ位置の各々において、前記第一の乱数生成手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定することを特徴とする請求項1に記載の分散アーカイブシステム。
  6.  乱数を生成する第一の乱数生成手段を有し、前記ポインタ位置の各々において、前記第一の乱数生成手段により独立な乱数を生成し、当該乱数に基づいて、アーカイブ先記憶媒体を決定し、かつ、当該乱数に基づいて、データ断片の長さ、または、ダミーデータ挿入の有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定することを特徴とする請求項4に記載の分散アーカイブシステム。
  7.  前記第一の乱数生成手段により生成した一連の乱数を記録する鍵記録手段を有し、当該鍵記録手段に記録された一連の乱数に基づいて、データ断片を取得するべき記憶媒体を決定し、かつ、当該一連の乱数に基づいて、データ断片の長さ、または、ダミーデータの有無、または、データ断片の長さおよびダミーデータ挿入の有無の双方を決定し、元のデータを復元することを特徴とする、請求項6に記載の分散アーカイブシステム。
  8.  乱数を生成する第二の乱数生成手段を保持し、前記第一の乱数生成手段がシードを入力として任意の個数の乱数を生成する疑似乱数生成アルゴリズムを実現したものであり、アーカイブ開始時において前記第二の乱数生成手段により生成した乱数をシードとして前記第一の乱数生成手段に入力し、以降、前記第一の乱数生成手段が生成した乱数に基づいてアーカイブ先記憶媒体を決定することを特徴とする、請求項5に記載の分散アーカイブシステム。
  9.  前記第二の乱数生成手段により生成したシードを記録する鍵記録手段を保持し、当該鍵記録手段に記録されたシードを前記第一の乱数生成手段に入力し、前記第一の乱数生成手段が生成する一連の乱数から、データ断片を取得するべき記憶媒体を判断し、元のデータを復元することを特徴とする、請求項8に記載の分散アーカイブシステム。
  10.  前記n個の記憶媒体の一部或いはすべてが、通信ネットワークを介してアクセスできるサーバであることを特徴とする、請求項1に記載の分散アーカイブシステム。
  11.  鍵記録手段をデータの所有者たるユーザが携行可能なデバイス中に設けることで、ユーザは任意のホスト計算機を用いてデータのアーカイブ及び復号処理を行うことが可能であることを特徴とする、請求項7に記載の分散アーカイブシステム。
  12.  前記ユーザが携行可能なデバイスがICカード、携帯電話、またはパーソナルデジタルアシスタントであることを特徴とする、請求項11に記載の分散アーカイブシステム。
  13.  前記ユーザが携行可能なデバイスがマイクロコンピュータを保持し、当該マイクロコンピュータによってデバイス中のデータへのアクセス制御を行うと共に、データのアーカイブ及び復元処理の一部或いは全部を実行することを特徴とする、請求項11に記載の分散アーカイブシステム。
  14.  前記ユーザが携行可能なデバイスが、第一の乱数生成手段及び第二の乱数生成手段のいずれか、或いは、両方を保持することを特徴とする、請求項13に記載の分散アーカイブシステム。
  15.  前記ユーザが携行可能なデバイスが保持するマイクロコンピュータ、及び、乱数生成手段が、耐タンパー特性を有するICチップ中に実装されることを特徴とする、請求項14に記載の分散アーカイブシステム。
  16. アーカイブ対象のデータの先頭及び末尾に適切な長さのダミーデータを付与することを特徴とする、請求項1に記載の分散アーカイブシステム。
  17.  アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ装置において、
     前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段と、
     前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちの(n-k+1)個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段とを有し、
     前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたn-k+1個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ装置。
  18.  アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるためのデータアーカイブ用コンピュータプログラムにおいて、
     コンピュータを、
     前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになす切り出し手段、および、
     前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちの(n-k+1)個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付ける関係付け手段
    として機能させ、
     前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたn-k+1個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ用コンピュータプログラム。
  19.  請求項17記載のアーカイブ装置によりn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせているデータを復元する復元装置において、
     前記関連付け手段が前記データのデータ断片の各々を(n-k+1)個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段と、
     前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられたn-k+1個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段と、
     取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段とを有することを特徴とするデータ復元装置。
  20.  請求項17記載のアーカイブ装置によりn個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせているデータを復元するために用いられるデータ復元用コンピュータプログラムにおいて、
     コンピュータを、
     前記関連付け手段が前記データのデータ断片の各々を(n-k+1)個のアーカイブ先記憶手段に独立してランダムに関連付けるのに用いた関連付け情報をそれぞれ取得する関連付け情報取得手段、
     前記データ断片の各々について、当該データ断片に前記関連付け情報により関連付けられた(n-k+1)個のアーカイブ先記憶手段のいずれかから当該データ断片を取り出すデータ断片取得手段、および、
     取り出した前記データ断片を、前記データ断片を切り出すための前記予め定められた手順に対応する連結手順で連結する連結手段
    として機能させるためのデータ復元用コンピュータプログラム。
  21.  アーカイブ対象データをn個(nは2以上の整数)のアーカイブ先記憶手段を具備し、アーカイブ対象データを前記n個(nは2以上の整数)のアーカイブ先記憶手段にアーカイブさせるデータアーカイブ方法において、
     切り出し手段が、前記アーカイブ対象データから予め定められた手順で複数のデータ断片を切り出し、かつ、少なくとも切り出した複数のデータ断片が前記アーカイブ対象データのすべてを含むようになすステップと、
     関係付け手段が、前記切り出し手段で切り出された前記複数のデータ断片の各々を前記n個のアーカイブ先記憶手段のうちの(n-k+1)個(kはn以下の正の整数)のアーカイブ先記憶手段に独立してランダムに関係付けるステップとを有し、
     前記切り出し手段で切り出されたデータ断片の各々を、前記関係付け手段でそれぞれ関係付けられたn-k+1個のアーカイブ先記憶手段に重複してアーカイブさせることを特徴とするデータアーカイブ方法。
PCT/JP2011/075534 2010-11-08 2011-11-07 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置 WO2012063755A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/882,033 US9881030B2 (en) 2010-11-08 2011-11-07 Distributed archive system, data archive device, and data restoring device with improved restoration and security

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-249917 2010-11-08
JP2010249917A JP5620792B2 (ja) 2010-11-08 2010-11-08 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置

Publications (1)

Publication Number Publication Date
WO2012063755A1 true WO2012063755A1 (ja) 2012-05-18

Family

ID=46050901

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/075534 WO2012063755A1 (ja) 2010-11-08 2011-11-07 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置

Country Status (3)

Country Link
US (1) US9881030B2 (ja)
JP (1) JP5620792B2 (ja)
WO (1) WO2012063755A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968265A (zh) * 2019-11-05 2020-04-07 北京字节跳动网络技术有限公司 分片扩容方法、装置及电子设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990397B2 (en) * 2009-07-31 2015-03-24 Ntt Docomo, Inc. Resource allocation protocol for a virtualized infrastructure with reliability guarantees
EP3215927A4 (en) * 2014-11-03 2018-07-04 Secured2 Corporation Secured data storage on a hard drive
GB2532039B (en) 2014-11-06 2016-09-21 Ibm Secure database backup and recovery
AT518910B1 (de) * 2016-08-04 2018-10-15 Ait Austrian Inst Tech Gmbh Verfahren zur Prüfung der Verfügbarkeit und Integrität eines verteilt gespeicherten Datenobjekts
AU2018256929B2 (en) 2017-04-27 2023-02-16 Financial & Risk Organisation Limited Systems and methods for identity atomization and usage
WO2018200091A1 (en) * 2017-04-27 2018-11-01 Thomson Reuters Global Resources Unlimited Company Systems and methods for distributed data mapping
JP6534478B1 (ja) * 2018-08-16 2019-06-26 行徳紙工株式会社 ファイルの秘匿分散システム及び秘匿分散方法
US10942909B2 (en) * 2018-09-25 2021-03-09 Salesforce.Com, Inc. Efficient production and consumption for data changes in a database under high concurrency
CN111327637B (zh) * 2020-03-10 2022-12-02 时时同云科技(成都)有限责任公司 业务密钥的管理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046808A1 (fr) * 1999-12-20 2001-06-28 Dai Nippon Printing Co., Ltd. Dispositif et systeme d'archivage reparti
JP2005215735A (ja) * 2004-01-27 2005-08-11 Hitachi Ltd ファイル入出力制御装置
JP2006113663A (ja) * 2004-10-12 2006-04-27 Nec Fielding Ltd データ保管システム、その方法、ファイルサーバ、端末およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126275A1 (en) * 2001-12-31 2003-07-03 Change Masters, Incorporated Digital distribution system for dynamic media
JP2006228202A (ja) * 2005-01-21 2006-08-31 Sorun Corp 機密データの管理方法及び管理システム
US8484263B2 (en) * 2006-08-17 2013-07-09 University Of Miami Method for keyless protection of data using a local array of disks
US7853752B1 (en) * 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
CA2668676C (en) * 2006-11-07 2016-01-05 Security First Corp. Systems and methods for distributing and securing data
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046808A1 (fr) * 1999-12-20 2001-06-28 Dai Nippon Printing Co., Ltd. Dispositif et systeme d'archivage reparti
JP2005215735A (ja) * 2004-01-27 2005-08-11 Hitachi Ltd ファイル入出力制御装置
JP2006113663A (ja) * 2004-10-12 2006-04-27 Nec Fielding Ltd データ保管システム、その方法、ファイルサーバ、端末およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968265A (zh) * 2019-11-05 2020-04-07 北京字节跳动网络技术有限公司 分片扩容方法、装置及电子设备
CN110968265B (zh) * 2019-11-05 2023-08-08 北京字节跳动网络技术有限公司 分片扩容方法、装置及电子设备

Also Published As

Publication number Publication date
JP5620792B2 (ja) 2014-11-05
JP2012103795A (ja) 2012-05-31
US9881030B2 (en) 2018-01-30
US20130275386A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
WO2012063755A1 (ja) 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置
US8892907B2 (en) Storage and recovery of cryptographic key identifiers
US8838968B2 (en) System and method for virtual machine data protection in a public cloud
US8533489B2 (en) Searchable symmetric encryption with dynamic updating
US8300823B2 (en) Encryption and compression of data for storage
US9578097B2 (en) Block based access to a dispersed data storage network
US20060026442A1 (en) Encryption apparatus and decryption apparatus
JP3871996B2 (ja) データ分割管理方法及びプログラム
US8156168B2 (en) Method and system for data security
JP2009533759A (ja) 分散データを再構築するためのシステム
GB2463078A (en) Data storage and transmission using parity data
US10303783B2 (en) Distributed virtual storage of portable media files
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
Virvilis et al. A cloud provider-agnostic secure storage protocol
JP4490068B2 (ja) ネットワークを利用したデータ保管システム
Kim et al. Survey on Data Deduplication in Cloud Storage Environments.
CA2483760A1 (en) System and method for a secure, scalable wide area file system
RU2584755C2 (ru) Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных
JP2004053969A (ja) 電子割符生成方法およびプログラム
US20140164247A1 (en) Storage of keyid in customer data area
WO2018108271A1 (en) A method for providing information to be stored and a method for providing a proof of retrievability
KR100859651B1 (ko) 가변크기 데이터 저장을 위한 데이터구조를 기록한기록매체, 가변크기 데이터 저장방법, 및 가변크기 데이터저장방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한컴퓨터로 읽을 수 있는 기록매체
CN111967027B (zh) 一种数据安全存储及高效恢复方法、装置及计算机设备
JP5756959B2 (ja) 分散アーカイブシステムおよびデータアーカイブ装置
CN111130788B (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13882033

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11839765

Country of ref document: EP

Kind code of ref document: A1