WO2017065209A1 - Information processing system, information processing device, information processing method, and program - Google Patents

Information processing system, information processing device, information processing method, and program Download PDF

Info

Publication number
WO2017065209A1
WO2017065209A1 PCT/JP2016/080351 JP2016080351W WO2017065209A1 WO 2017065209 A1 WO2017065209 A1 WO 2017065209A1 JP 2016080351 W JP2016080351 W JP 2016080351W WO 2017065209 A1 WO2017065209 A1 WO 2017065209A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
node
information processing
information
Prior art date
Application number
PCT/JP2016/080351
Other languages
French (fr)
Japanese (ja)
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 JP2017545453A priority Critical patent/JP6567683B2/en
Priority to EP16855462.4A priority patent/EP3364328A1/en
Publication of WO2017065209A1 publication Critical patent/WO2017065209A1/en
Priority to US15/954,011 priority patent/US10574455B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/2107File encryption

Definitions

  • the present invention relates to an information processing system, an information processing apparatus, an information processing method, and a program.
  • An information processing system including a plurality of storage devices is known.
  • the information processing system described in Patent Document 1 generates N (N represents an integer of 2 or more) pieces of distributed data from secret data according to a secret sharing method. . Further, the information processing system stores the generated N pieces of distributed data in N pieces of storage devices.
  • a user who intends to illegally acquire secret data includes k (k is 2 or more and more than N of N pieces of distributed data generated from the secret data).
  • Secret data cannot be recovered without obtaining pieces of distributed data (representing a small integer).
  • the information processing system changes the storage device as the storage destination of N pieces of distributed data according to a predetermined method every time secret data is stored.
  • the information processing system stores information for identifying the secret data and information for specifying the storage destination of the distributed data in association with each other, and restores the secret data when the restoration of the secret data is requested. Therefore, it is conceivable to specify the storage destination of the distributed data used for this purpose based on the stored information.
  • the information may be leaked to a user who intends to obtain confidential data illegally.
  • the information processing system does not store the information for identifying the secret data in association with the information for specifying the storage destination of the distributed data, the secret data is restored when the restoration of the secret data is requested. Therefore, the processing load for specifying the storage destination of the distributed data used for this is likely to increase.
  • One of the objects of the present invention is to reduce the processing load for specifying the storage destination of distributed data while suppressing the unauthorized acquisition of secret data.
  • the information processing system includes M (M represents an integer of 2 or more) storage devices. Furthermore, this information processing system Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method; One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point.
  • a device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
  • a restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, A restoring means for executing the restoration process on a device group associated with a time point prior to a time point associated with the device group that has caused the failure; Is provided.
  • the information processing device is communicably connected to M storage devices (M represents an integer of 2 or more). Furthermore, this information processing apparatus Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method; One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point.
  • a device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
  • a restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, A restoring means for executing the restoration process on a device group associated with a time point prior to a time point associated with the device group that has caused the failure; Is provided.
  • the information processing method uses M (M represents an integer of 2 or more) storage devices. Furthermore, this information processing method Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method, One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point.
  • a device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and
  • the generated N distributed data are respectively stored in N storage devices included in the selected device group
  • a restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group.
  • the restoration process is executed on a device group associated with a time point prior to the time point associated with the device group that has caused the failure.
  • the program causes an information processing device connected to be communicable with M storage devices (M represents an integer of 2 or more).
  • M represents an integer of 2 or more.
  • the above process Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method,
  • One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point.
  • a device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and
  • the generated N distributed data are respectively stored in N storage devices included in the selected device group
  • a restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group.
  • the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, Performing the restoration process on a device group associated with a time point before a time point associated with the device group that is the basis of the failure.
  • the information processing system 1 includes P (P represents an integer of 3 or more) pieces of information processing that are communicably connected to each other via a communication network NW.
  • P represents an integer of 3 or more
  • the communication network NW is an IP (Internet Protocol) network.
  • the information processing apparatus 10-p may be represented as the information processing apparatus 10 when it is not necessary to distinguish between them.
  • p represents each integer of 1 to P.
  • the information processing system 1 performs communication according to a P2P (Peer to Peer) method.
  • the information processing apparatus 10-p may be represented as a node 10-p.
  • the information processing device 10-p includes a processing device 11, a storage device 12, a communication device 13, an input device 14, and an output device 15, which are connected to each other via a bus BU. Prepare.
  • the processing device 11 controls each element constituting the information processing device 10-p by executing a program stored in the storage device 12. As a result, the information processing apparatus 10-p realizes functions to be described later.
  • the processing apparatus 11 includes a CPU (Central Processing Unit).
  • the processing device 11 may include an MPU (Micro Processing Unit) or a DSP (Digital Signal Processor).
  • the storage device 12 stores information in a readable / writable manner.
  • the storage device 12 includes at least one of RAM (Random Access Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), semiconductor memory, and organic memory.
  • the storage device 12 may include a recording medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory, and a reading device that can read information from the recording medium.
  • the communication device 13 communicates with another information processing device 10-q by wire or wireless.
  • q represents an integer of 1 to P different from p.
  • the communication device 13 performs anonymous communication in which at least one of the transmission source and the transmission destination is concealed as communication with the other information processing device 10-q.
  • anonymous communication may be realized using a technology called Tor (The Onion Router) or I2P (The Invisible Internet Project).
  • Non-anonymous communication is communication in which both a transmission source and a transmission destination are disclosed.
  • the input device 14 inputs information from outside the information processing device 10-p.
  • the input device 14 includes a keyboard and a mouse.
  • the input device 14 may include a microphone or a camera.
  • the output device 15 outputs information to the outside of the information processing device 10-p.
  • the output device 15 includes a display.
  • the output device 15 may include a speaker.
  • the information processing apparatus 10-p may include a touch panel display that constitutes both the input device 14 and the output device 15.
  • the information processing apparatus 10-p includes a function for the information processing apparatus 10-p to operate as the user node 100, and the information processing apparatus 10-p operates as the storage node 200. And a function for
  • the information processing apparatus 10-p operates in one state selected from the first state, the second state, and the third state.
  • the first state is a state in which the information processing apparatus 10-p operates as the user node 100 and the information processing apparatus 10-p does not operate as the storage node 200.
  • the second state is a state in which the information processing apparatus 10-p operates as the storage node 200 and the information processing apparatus 10-p does not operate as the user node 100.
  • the third state is a state in which the information processing apparatus 10-p operates as the user node 100 and the information processing apparatus 10-p also operates as the storage node 200.
  • the information processing apparatus 10-p operating as the user node 100 may be represented as the user node 100.
  • the information processing apparatus 10-p operating as the storage node 200 may be represented as the storage node 200. Note that at least some of the P information processing apparatuses 10-1,..., 10-P have only one of the function of the user node 100 and the function of the storage node 200. You may have.
  • the functions of the user node 100 include a user authentication reception unit 101, a user data storage request reception unit 102, a storage node list acquisition unit 103, a node group determination unit 104, and distributed data generation.
  • the distributed data generation unit 105 constitutes a generation unit.
  • the user data storage request reception unit 102, the storage node list acquisition unit 103, the node group determination unit 104, and the distributed data storage request transmission unit 106 constitute a storage unit.
  • the storage node list acquisition unit 103, the node group determination unit 104, the user data restoration request reception unit 107, the provision data acquisition unit 108, and the secret data restoration unit 109 constitute a restoration unit.
  • the user authentication receiving unit 101 receives user authentication information.
  • the user authentication receiving unit 101 receives input information input via the input device 14 by the user of the information processing apparatus 10-p as user authentication information.
  • the input information includes a user identifier for identifying the user (in other words, a user ID) and a character string as a password used for user authentication.
  • the user data storage request receiving unit 102 receives a user data storage request input by the user via the input device 14.
  • the user data storage request input by the user may be regarded as being associated with the input information input by the user.
  • the user data storage request includes user data and represents a request to store the user data.
  • the user data storage request receiving unit 102 encrypts user data included in the received user data storage request. Note that the user data storage request receiving unit 102 may not encrypt user data.
  • the storage node list acquisition unit 103 acquires a storage node list when a user data storage request is accepted.
  • the storage node list includes the storage node 200 of each of the P information processing apparatuses 10-1,..., 10-P and the storage node list of the P information processing apparatuses 10-1,. This is information representing the ranking given to each storage node 200.
  • the storage node list includes the storage devices 200 included in the storage node 200 among the P information processing devices 10-1,..., 10-P and the P information processing devices 10-1,. This is information representing the ranks assigned to the storage devices 12 included in the storage node 200 of 10-P.
  • the storage node list is information in which node identifiers (in other words, node IDs) for identifying the storage node 200 are arranged in order so that the order decreases from the top to the end.
  • the storage node list constitutes device order information.
  • the storage node list is generated every time the list generation time comes.
  • the list generation time is the time when the storage node list is generated.
  • the list generation time is predetermined in the information processing system 1.
  • the P information processing apparatuses 10-1,..., 10-P share the list generation time.
  • the list generation time point is a time point that arrives every time a predetermined change time (for example, 1 minute) elapses from a reference time point (for example, January 1, 2015, 00:00:00).
  • the change time may vary.
  • At least one storage node 200 holds a plurality of different storage node lists respectively generated at a plurality of list generation points in association with the plurality of list generation points.
  • the storage node list includes time point information indicating a list generation time point when the storage node list is generated.
  • the storage node list is acquired as follows.
  • the storage node list acquisition unit 103 acquires the current time point when a user data storage request is accepted. Then, the storage node list acquisition unit 103 selects one list generation time from among at least one list generation time included in a predetermined selection period among the list generation times predetermined in the information processing system 1. .
  • the selection period is a period between the acquired current time point and a time point that is a predetermined time (for example, 5 minutes) before the current time point.
  • the storage node list acquisition unit 103 randomly selects one list generation time from among at least one list generation time included in the selection period.
  • the random selection is performed using a pseudo-random number.
  • the storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list.
  • the storage node list request represents requesting a storage node list.
  • the storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
  • the distributed data generation unit 105 generates S pieces of distributed data from the secret data that is the user data encrypted by the user data storage request receiving unit 102 according to the secret sharing method.
  • S represents an integer of 2 or more and M or less.
  • M represents a value P ⁇ 1 obtained by subtracting 1 from P.
  • M may represent a value equal to P.
  • the S pieces of distributed data generated from the user data constitute a first distributed data group.
  • the distributed data may be expressed as a share.
  • the secret sharing method is the Shamir secret sharing method described in Non-Patent Document 1 below.
  • the secret sharing method may be different from the Shamir secret sharing method.
  • the secret sharing method for user data can restore secret data from t or more of the S pieces of distributed data, and is less than t of the S pieces of distributed data. Unable to recover secret data from a number of distributed data. t represents an integer of 2 or more and smaller than S.
  • Non-Patent Document 1 A. Shamir, “How to share a secret”, Communications of the ACM, Vol. 22, No. 11, p. 612-613, 1979
  • the node group determination unit 104 determines a node group for the first distributed data group generated from the user data based on the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is accepted. To do.
  • the node group for the first distributed data group includes S storage nodes 200.
  • the determination of the node group for the first distributed data group is performed as follows.
  • the node group determination unit 104 randomly selects S node IDs from among the node IDs included in the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received.
  • the node group determination unit 104 determines a node group including S storage nodes 200 respectively identified by the selected S node IDs as a node group for the first distributed data group. As a result, the node group for the first distributed data group is determined.
  • the distributed data storage request transmission unit 106 adds the S storage nodes 200 included in the node group for the first distributed data group, which is determined by the node group determination unit 104 when the user data storage request is received, to the S storage nodes 200.
  • the first distributed data storage request is transmitted.
  • the S first distributed data storage requests each include S pieces of distributed data included in the first distributed data group generated by the distributed data generation unit 105.
  • each first distributed data storage request includes a first data identifier (in other words, a first data ID) that identifies the distributed data in the storage node 200 that is the storage destination, and stores the distributed data in the storage device 12. Indicates a request.
  • the node group determination unit 104 generates metadata when the first distributed data storage request is transmitted by the distributed data storage request transmission unit 106.
  • the metadata includes information representing S storage nodes 200 (in other words, storage destinations) in which S pieces of distributed data generated from user data are stored.
  • the metadata further includes information used for decrypting the encrypted user data and a first data ID.
  • the node group determination unit 104 encrypts the generated metadata. Specifically, the node group determination unit 104 acquires a hash value for a predetermined hash function of the input information associated with the user data storage request that is the basis of the metadata, and uses the acquired hash value
  • the metadata is encrypted according to a predetermined encryption method.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the encryption method is a common key encryption method such as 3-key Triple DES, AES, or Camellia.
  • DES is an abbreviation for Data Encryption Algorithm.
  • AES is an abbreviation for Advanced Encryption Standard. Note that the node group determination unit 104 may not encrypt the metadata.
  • the distributed data generation unit 105 generates N pieces of distributed data from the secret data that is the metadata encrypted by the node group determination unit 104 according to the secret sharing method.
  • N represents an integer of 2 or more and M or less.
  • N may represent a value equal to S or a value different from S.
  • N pieces of distributed data generated from the metadata constitute a second distributed data group.
  • the secret sharing method for metadata can restore secret data from k or more pieces of distributed data among N pieces of distributed data, and is less than k of N pieces of distributed data. Unable to recover secret data from a number of distributed data. k represents an integer of 2 or more and smaller than N.
  • the node group determination unit 104 determines a node group for the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received. To do.
  • a node group for the second distributed data group includes N storage nodes 200.
  • the determination of the node group for the second distributed data group is performed as follows.
  • the node group determination unit 104 has a storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received, and a predetermined information rank relationship between the input information and N different ranks. Based on the input information associated with the user data storage request, N node IDs are selected from the node IDs included in the storage node list.
  • the node group determination unit 104 acquires N different ranks based on the input information associated with the user data save request and the information rank relationship, and includes them in the save node list. N node IDs respectively corresponding to the obtained N rankings are selected from the node IDs to be acquired.
  • the n-th rank among the N ranks is a hash value for a predetermined hash function whose information is obtained by adding information representing n to the input information and whose hash value is an integer. It is determined to be equal to the value obtained by adding 1 to the remainder when divided by the number of storage nodes 200 included in the storage node list. n represents each integer of 1 to N.
  • the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
  • the node group corresponds to a device group including N storage devices 12 included in the N storage nodes 200 included in the node group.
  • the node group for the second distributed data group determined by the node group determining unit 104 does not change when the storage node list and the input information do not change. Therefore, selection of the storage node list corresponds to selection of a node group for the second distributed data group.
  • the storage node list used for determining the node group for the second distributed data group is a storage node list associated with the list generation time indicated by the time information included in the storage node list request. Therefore, in this example, the selection of the list generation time point indicated by the time point information included in the storage node list request corresponds to the selection of the node group for the second distributed data group.
  • the distributed data storage request transmission unit 106 includes N storage nodes 200 included in the node group for the second distributed data group determined by the node group determination unit 104 when the user data storage request is received.
  • the second distributed data storage request is transmitted.
  • the N second distributed data storage requests each include N pieces of distributed data that are generated by the distributed data generation unit 105 and constitute the second distributed data group. Further, each second distributed data storage request includes a second data identifier (in other words, a second data ID) for identifying the distributed data in the storage node 200 as a storage destination, and stores the distributed data in the storage device 12. Indicates a request.
  • the second data ID is a user ID included in the input information associated with the user data storage request that is the basis of the second distributed data group.
  • the user data restoration request accepting unit 107 accepts a user data restoration request input by the user via the input device 14.
  • the user data restoration request input by the user may be regarded as being associated with the input information input by the user.
  • the user data restoration request represents requesting restoration of user data.
  • the storage node list acquisition unit 103 acquires a storage node list when a user data restoration request is received.
  • the storage node list is acquired as follows.
  • the storage node list acquisition unit 103 acquires the current time when a user data restoration request is received. Then, the storage node list acquisition unit 103 selects a list generation time point closest to the acquired current time point from among list generation time points that are predetermined in the information processing system 1.
  • the storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list.
  • the storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
  • the node group determination unit 104 determines a node group for the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when a user data restoration request is received. To do.
  • a node group for the second distributed data group includes N storage nodes 200.
  • the determination of the node group for the second distributed data group is performed in the same manner as when a user data storage request is accepted as follows.
  • the node group determination unit 104 receives the storage node list acquired by the storage node list acquisition unit 103 when the user data recovery request is received, the information ranking relationship, and the input information associated with the user data recovery request. , N node IDs are selected from the node IDs included in the stored node list.
  • the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
  • the provided data acquisition unit 108 adds the Nth storage node 200 included in the node group for the second distributed data group determined by the node group determination unit 104 when the user data restoration request is received to the Nth storage node 200.
  • Each distributed data provision request is transmitted.
  • Each second shared data provision request includes the user ID included in the input information associated with the user data restoration request as the second data ID, and requests provision of the distributed data stored in the storage device 12. Represents.
  • the provided data acquisition unit 108 includes the N storage nodes 200 included in the node group for the second distributed data group, which is determined by the node group determination unit 104 when the user data restoration request is received.
  • the v second distributed data provision requests may be transmitted only to the v storage nodes 200, respectively.
  • v represents an integer smaller than N and greater than or equal to k.
  • the provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request.
  • the provision data received in response to the second distributed data provision request constitutes a second provision data group.
  • the provision data acquisition unit 108 acquires the second provision data group.
  • the storage node 200 may not transmit the provision data in response to the second distributed data provision request. Therefore, the number of provision data constituting the second provision data group may be smaller than N.
  • the storage node 200 may transmit predetermined dummy data in response to the second distributed data provision request. Accordingly, the second provided data group may include data different from the distributed data that constitutes the second distributed data group.
  • the secret data restoration unit 109 restores the secret data from the distributed data that is the provision data constituting the second provision data group acquired by the provision data acquisition unit 108 according to the secret sharing method.
  • the storage node list acquisition unit 103 acquires the storage node list again when the secret data restoration unit 109 fails to restore the secret data for the second provided data group.
  • the storage node list is acquired as follows. If the restoration of the secret data for the second provided data group fails, the storage node list acquisition unit 103 is associated with the storage node list that is the basis of the failure (in other words, the storage node list is generated). A list generation time point before the generation time point is acquired by the change time.
  • the storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the acquired list generation time point to the storage node 200 holding the storage node list.
  • the storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
  • the node group determination unit 104 generates the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when the restoration of the secret data for the second provided data group fails.
  • the node group for is determined.
  • the determination of the node group for the second distributed data group is performed in the same manner as when the user data storage request is accepted as described above.
  • the provided data acquisition unit 108 sets the N storage nodes 200 included in the node group for the second distributed data group, which is determined by the node group determining unit 104 when the restoration of the secret data for the second provided data group fails. , N pieces of second distributed data provision requests are transmitted.
  • the provision data acquisition unit 108 receives the provision data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request.
  • the secret data restoration unit 109 obtains a hash value for the hash function used to encrypt the metadata of the input information associated with the user data restoration request when the restoration of the secret data for the second provided data group is successful. To do. Further, the secret data restoration unit 109 decrypts the metadata, which is the restored secret data, according to the decryption method corresponding to the encryption method, using the acquired hash value.
  • the provided data acquisition unit 108 stores the S pieces of distributed data generated from the user data represented by the metadata decrypted by the secret data restoration unit 109.
  • the S first distributed data provision requests are transmitted to the S storage nodes 200 stored respectively.
  • Each first shared data provision request includes a first data ID represented by the metadata decrypted by the secret data restoration unit 109, and represents a request for provision of the distributed data stored in the storage device 12. .
  • the provided data acquisition unit 108 uses the u storage nodes of the S storage nodes 200 each of which stores the S pieces of distributed data generated from the user data and represented by the decrypted metadata. Only the 200 first distributed data provision requests may be transmitted to only 200.
  • u represents an integer smaller than S and greater than or equal to t.
  • the provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted first distributed data provision request.
  • the provision data received in response to the first distributed data provision request constitutes a first provision data group.
  • the provision data acquisition part 108 acquires the 1st provision data group.
  • the storage node 200 may not transmit the provision data in response to the first distributed data provision request. Therefore, the number of provision data constituting the first provision data group may be smaller than S.
  • the storage node 200 may transmit predetermined dummy data in response to the first distributed data provision request. Therefore, the first provided data group may include data different from the distributed data constituting the first distributed data group.
  • the secret data restoration unit 109 restores the secret data from the distributed data that is the provision data constituting the first provision data group acquired by the provision data acquisition unit 108 according to the secret sharing method.
  • the secret data restoration unit 109 when the restoration of the secret data for the first provided data group is successful, based on the information used to decrypt the encrypted user data represented by the decrypted metadata, The user data that is the restored secret data is decrypted.
  • the function of the storage node 200 includes a storage request processing unit 201, a distributed data storage unit 202, a provision request processing unit 203, an operation notification processing unit 204, and an operation notification storage unit 205.
  • the storage request processing unit 201 receives a first distributed data storage request or a second distributed data storage request from the user node 100.
  • the storage request processing unit 201 stores the first data ID and the distributed data included in the first distributed data storage request in the distributed data storage unit 202 in association with each other. As a result, the distributed data storage unit 202 holds the distributed data in association with the first data ID.
  • the storage request processing unit 201 associates the second data ID and the distributed data included in the second distributed data storage request with each other in the distributed data storage unit 202.
  • the distributed data storage unit 202 holds the distributed data in association with the second data ID.
  • the provision request processing unit 203 receives a first distributed data provision request or a second distributed data provision request from the user node 100.
  • the provision request processing unit 203 associates the distributed data held in the distributed data storage unit 202 in association with the first data ID included in the first distributed data provision request. It transmits to the user node 100 that is the transmission source of the first distributed data provision request.
  • the provision request processing unit 203 holds the distributed data associated with the first data ID included in the first distributed data provision request in the distributed data storage unit 202. If not, data is not transmitted to the user node 100 that is the transmission source of the first distributed data provision request. At this time, the provision request processing unit 203 transmits a notification indicating that the distributed data corresponding to the first distributed data provision request is not held to the user node 100 that is the transmission source of the first distributed data provision request. May be. At this time, the provision request processing unit 203 may transmit predetermined dummy data to the user node 100 that is the transmission source of the first distributed data provision request.
  • the provision request processing unit 203 is associated with the second data ID included in the second distributed data provision request and is stored in the distributed data storage unit 202. Data is transmitted to the user node 100 that is the transmission source of the second distributed data provision request.
  • the provision request processing unit 203 holds the distributed data associated with the second data ID included in the second distributed data provision request in the distributed data storage unit 202 when the second distributed data provision request is received. If not, data is not transmitted to the user node 100 that is the transmission source of the second distributed data provision request. At this time, the provision request processing unit 203 transmits a notification indicating that the distributed data corresponding to the second distributed data provision request is not held to the user node 100 that is the transmission source of the second distributed data provision request. May be. At this time, the provision request processing unit 203 may transmit predetermined dummy data to the user node 100 that is the transmission source of the second distributed data provision request.
  • the operation notification processing unit 204 transmits an operation notification to each of the other information processing apparatuses 10-q every time a predetermined notification cycle elapses.
  • the operation notification is stored in the operation notification storage unit 205 in association with the time when the operation notification is transmitted.
  • the information processing system 1 sets each of at least one storage node 200 as a list generation node. Each list generation node generates a storage node list candidate that is a storage node list candidate.
  • the storage node list candidate includes the electronic signature of the list generation node that generated the storage node list candidate.
  • Each list generation node transmits the generated storage node list candidate to each of the other information processing apparatuses 10-q.
  • Each of the information processing apparatuses 10-q that have received the storage node list candidate verifies whether or not the storage node list candidate is authentic. For example, whether or not the storage node list candidate is authentic may be verified by an electronic signature included in the storage node list candidate.
  • Each of the information processing apparatuses 10-q that have received the storage node list candidate approves the storage node list candidate when the storage node list candidate is authentic.
  • the information processing system 1 selects one storage node list candidate as a storage node list from among the storage node list candidates generated at the time of list generation based on the approval result. For example, the information processing system 1 has the earliest storage node at which the number of information processing apparatuses 10 that have approved that the storage node list candidate is authentic is a majority of the total number of information processing apparatuses 10 included in the information processing system 1. A list candidate may be selected as a saved node list. The list generation node that generates the storage node list selected by the information processing system 1 may change every time the list generation time elapses.
  • the storage node list is shared between the storage nodes 200 by being transmitted and received between the information processing apparatuses 10. For example, the storage node 200 that has received the storage node list holds the storage node list. Note that the storage node 200 may not hold the storage node list.
  • the storage node list includes time point information indicating a list generation time point when the storage node list is generated.
  • the fact that the storage node list includes time point information indicating the list generation time when the storage node list is generated is an example of the storage node list being associated with the list generation time.
  • the operation notification includes a node ID for identifying the information processing apparatus 10-p and represents that the information processing apparatus 10-p is operating as the storage node 200.
  • the operation notification may include time point information indicating the time point when the information processing apparatus 10-p starts the operation as the storage node 200.
  • the operation notification may include an electronic signature of the information processing apparatus 10-p.
  • the operation notification processing unit 204 receives the operation notification transmitted by the other information processing device 10-q, and receives the received operation notification. It is stored in the operation notification storage unit 205 in association with the time point when the operation notification is received. Thereby, the operation notification storage unit 205 holds the operation notification in association with the time when the operation notification is received.
  • the operation notification storage unit 205 deletes the operation notification associated with the time before the time just before the notification cycle from the current time from among the held operation notifications (in other words, holding the operation notification). finish).
  • the operation notification held in the operation notification storage unit 205 of the storage node 200 may be shared by at least one of the other storage nodes 200. At least one of operation notification sharing, storage node list candidate generation, and storage node list sharing may be realized using a technique called a block chain described in Non-Patent Document 2 below. In addition, selection of a storage node list from storage node list candidates for each list generation time point may be realized using a technique called proof-of-work described in Non-Patent Document 2 below.
  • the transmission destination of the operation notification transmitted by the operation notification processing unit 204 may be selected from the plurality of storage nodes 200 sharing the operation notification. .
  • Non-Patent Document 2 Satoshi Nakamoto, “Bitcoin: A Peer-to-Pert Electronic Cash System”, Bitcoin, [online], 2008, [October 2, 2015 search], Internet ⁇ URL: https: // bitcoin .org / bitcoin.pdf>
  • the storage node list generation unit 206 stores the information based on the operation notification held in the operation notification storage unit 205 every time the list generation time comes. Generate node list candidates.
  • the storage node list storage unit 207 stores the selected storage node list every time the storage node list is selected.
  • the storage node list includes time point information indicating the list generation time point when the storage node list is generated.
  • the storage node list storage unit 207 may store the storage node list and the list generation time when the storage node list is generated in association with each other.
  • generation of storage node list candidates is performed as follows so that a plurality of storage node list candidates generated at a plurality of different list generation times are different from each other.
  • the storage node list generation unit 206 assigns a randomly determined order to each of the storage nodes 200 identified by the node ID included in the operation notification held in the operation notification storage unit 205. In this example, a random decision is made using a pseudo-random number.
  • the storage node list generation unit 206 stores information in which the node IDs included in the operation notifications held in the operation notification storage unit 205 are arranged so that the assigned order decreases from the beginning to the end. Generate as a list candidate. As a result, a storage node list candidate is generated.
  • the transmission destination of the storage node list request transmitted by the storage node list acquisition unit 103 may be selected from a plurality of storage nodes 200 sharing the storage node list.
  • the storage node list request processing unit 208 receives a storage node list request from the user node 100.
  • the storage node list request processing unit 208 stores the storage node list including the time information included in the storage node list request and held in the storage node list storage unit 207. It transmits to the user node 100 which is the transmission source of the node list request.
  • the information processing apparatus 10-1 may be represented as a user node 10-1.
  • the information processing apparatuses 10-2,..., 10-P may be represented as storage nodes 10-2,.
  • the information processing apparatuses 10-2,..., 10-P may be represented as list generation nodes 10-2,.
  • Each of the storage nodes 10-2,..., 10-P transmits an operation notification to each of the other information processing apparatuses 10-q each time the notification cycle elapses, and the transmitted operation notification is The information is stored in the storage device 12 in association with the time when the operation notification is transmitted.
  • the storage node 200 receives the operation notification transmitted by each of the storage nodes 10-2,..., 10-P, and associates the received operation notification with the time when the operation notification is received in the storage device 12.
  • Each of the list generation nodes 10-2,..., 10-P generates a storage node list candidate based on the held operation notification every time the list generation time comes.
  • Each of the list generation nodes 10-2, ..., 10-P transmits the generated storage node list candidate to each of the other information processing apparatuses 10-q.
  • the information processing system 1 selects one storage node list candidate as a storage node list from the storage node list candidates.
  • the storage node 200 stores the selected storage node list in the storage device 12.
  • the user node 10-1 executes the processing represented by the flowchart in FIG. 5 as follows.
  • the user node 10-1 receives the input information as user authentication information (step S101 in FIG. 5).
  • the user node 10-1 waits until a user data storage request is accepted (“No” route in step S102 in FIG. 5).
  • a user data storage request is input by the user of the user node 10-1
  • the user node 10-1 receives the input user data storage request. Therefore, the user node 10-1 determines “Yes” and selects a list generation time (step S103 in FIG. 5).
  • the user node 10-1 acquires the current time point. Further, the user node 10-1 randomly selects one list generation time from among at least one list generation time included in the selection period among the list generation times predetermined in the information processing system 1. .
  • the selection period is a period between the acquired current time point and a time point before the current time point by a predetermined time (for example, 5 minutes).
  • the user node 10-1 transmits a storage node list request including time point information indicating the selected list generation time point to each of at least one storage node 200 (step S104 in FIG. 5).
  • the user node 10-1 waits until it receives the storage node list from the storage node 200 (“No” route in step S105 in FIG. 5).
  • the storage node 200 receives the storage node list request from the user node 10-1.
  • the storage node 200 transmits to the user node 10-1 the storage node list that is stored and includes the time point information included in the received storage node list request.
  • the user node 10-1 receives at least one storage node list from the storage node 200.
  • the user node 10-1 verifies whether or not the received storage node list is authentic, selects a storage node list that is not illegal or falsified, and holds the selected storage node list. Therefore, the user node 10-1 determines “Yes” and generates a first shared data group for the user data included in the accepted user data storage request (step S106 in FIG. 5).
  • the user node 10-1 encrypts the user data included in the accepted user data storage request, and from the secret data that is the encrypted user data, from the S distributed data according to the secret sharing method.
  • a first distributed data group is generated.
  • the user node 10-1 determines a node group for the generated first distributed data group based on the storage node list (step S107 in FIG. 5).
  • the user node 10-1 randomly selects S node IDs from the node IDs included in the saved node list, and the S saved items identified by the selected S node IDs.
  • a node group including the nodes 200 is determined as a node group for the first distributed data group.
  • the user node 10-1 transmits the S first distributed data storage requests to the S storage nodes 200 included in the determined node group for the first distributed data group (step of FIG. 5). S108).
  • the S first distributed data storage requests include S pieces of distributed data constituting the generated first distributed data group. Further, each first distributed data storage request includes a first data ID for identifying the distributed data in the storage node 200 that is the storage destination.
  • Each of the S storage nodes 200 included in the node group for the first distributed data group receives the first distributed data storage request from the user node 10-1, and the distributed data included in the received first distributed data storage request The data and the first data ID are associated with each other and stored in the storage device 12.
  • the metadata includes information representing S storage nodes 200 each storing S pieces of distributed data constituting the first distributed data group, information used for decrypting encrypted user data, 1 data ID.
  • the user node 10-1 generates a second distributed data group for the generated metadata (step S110 in FIG. 5).
  • the user node 10-1 acquires a hash value for the hash function of the input information received in step S101 of FIG. 5, and uses the acquired hash value to convert the metadata to the encryption method. Encrypt according to Further, the user node 10-1 generates a second shared data group composed of N pieces of shared data from the secret data that is the encrypted metadata according to the secret sharing method.
  • the user node 10-1 determines a node group for the generated second distributed data group based on the storage node list (step S111 in FIG. 5).
  • the user node 10-1 is based on the storage node list held in step S105 in FIG. 5, the information ranking relationship, and the input information received in step S101 in FIG. N node IDs are selected from the node IDs included in the storage node list, and a node group including N storage nodes 200 respectively identified by the selected N node IDs is designated as second distributed data. Determine as the node group for the group.
  • the user node 10-1 transmits N second distributed data storage requests to the N storage nodes 200 included in the determined node group for the second distributed data group, respectively (step of FIG. 5).
  • the N pieces of second shared data storage requests each include N pieces of distributed data constituting the generated second shared data group.
  • each second distributed data storage request includes a second data ID for identifying the distributed data in the storage node 200 that is the storage destination.
  • Each of the N storage nodes 200 included in the node group for the second distributed data group receives the second distributed data storage request from the user node 10-1, and the distributed data included in the received second distributed data storage request The data and the second data ID are associated with each other and stored in the storage device 12. Then, the user node 10-1 ends the process of FIG.
  • the user node 10-1 executes the process represented by the flowchart in FIG. 6 as follows.
  • the user node 10-1 accepts the input information as user authentication information as in step S101 in FIG. 5 (step S201 in FIG. 6).
  • the user node 10-1 waits until a user data restoration request is accepted (“No” route in step S202 in FIG. 6).
  • a user data restoration request is input by the user of the user node 10-1
  • the user node 10-1 receives the input user data restoration request. Accordingly, the user node 10-1 determines “Yes” and selects the list generation time (step S203 in FIG. 6).
  • the user node 10-1 acquires the current time point, and selects the list generation time point closest to the acquired current time point from the list generation time points that are predetermined in the information processing system 1.
  • the user node 10-1 transmits a storage node list request including time point information indicating the selected list generation time point to each of at least one storage node 200 (step S204 in FIG. 6).
  • the user node 10-1 waits until it receives the storage node list from the storage node 200 (“No” route in step S205 in FIG. 6).
  • the storage node 200 receives the storage node list request from the user node 10-1.
  • the storage node 200 transmits to the user node 10-1 the storage node list that is stored and includes the time point information included in the received storage node list request.
  • the user node 10-1 receives at least one storage node list from the storage node 200.
  • the user node 10-1 verifies whether or not the received storage node list is authentic, selects a storage node list that is not illegal or falsified, and holds the selected storage node list. Therefore, the user node 10-1 determines “Yes”, and determines a node group for the second distributed data group based on the storage node list, similarly to step S111 in FIG. 5 (step S206 in FIG. 6). .
  • the user node 10-1 is based on the storage node list held in step S205 in FIG. 6, the information ranking relationship, and the input information received in step S201 in FIG. N node IDs are selected from the node IDs included in the storage node list, and a node group including N storage nodes 200 respectively identified by the selected N node IDs is designated as second distributed data. Determine as the node group for the group.
  • the user node 10-1 transmits N second distributed data provision requests to the N storage nodes 200 included in the determined node group for the second distributed data group, respectively (step in FIG. 6). S207).
  • Each second distributed data provision request includes the user ID included in the input information received in step S201 of FIG. 6 as the second data ID.
  • Each of the N storage nodes 200 included in the node group corresponding to the second distributed data group receives the second distributed data provision request from the user node 10-1, and includes the first storage data included in the received second distributed data provision request. Whether or not the distributed data associated with the two data IDs is held in the storage device 12 is determined.
  • Each of the N storage nodes 200 included in the node group for the second distributed data group transmits the distributed data to the user node 10-1 when the distributed data is held in the storage device 12, and the distributed node If the data is not held in the storage device 12, dummy data is transmitted to the user node 10-1.
  • the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the second distributed data provision request transmitted in step S207 of FIG. 6 (step S208 of FIG. 6).
  • the provision data received in response to the second distributed data provision request constitutes a second provision data group.
  • the user node 10-1 restores metadata, which is secret data, according to the secret sharing method from the distributed data, which is the provided data constituting the received second provided data group (step S209 in FIG. 6).
  • the user node 10-1 determines whether or not the metadata restoration is successful in step S209 in FIG. 6 (step S210 in FIG. 6). If the restoration of the metadata fails, the user node 10-1 determines “No”, and the list generation time point (indicated by the time point information included in the latest storage node list request transmitted in step S204 in FIG. 6) ( In other words, a list generation time point earlier than the change time than a list generation time point associated with the storage node list that is the basis of the metadata restoration failure is acquired (step S211 in FIG. 6).
  • the user node 10-1 transmits a storage node list request including time point information representing the list generation time acquired in step S211 of FIG. 6 to each of at least one storage node 200 (step of FIG. 6). S204). Next, as described above, the user node 10-1 executes the processing from step S205 to step S210 in FIG.
  • the user node 10-1 repeatedly executes the processing from step S204 to step S211 in FIG. 6 until the restoration of the metadata is successful in step S209 in FIG.
  • the process from step S204 to step S209 in FIG. 6 may be represented as a restoration process.
  • step S209 in FIG. 6 the user node 10-1 determines “Yes” in step S210 in FIG. 6, and the input information received in step S201 in FIG.
  • the hash value for the hash function used to encrypt the metadata is acquired.
  • the user node 10-1 decrypts the restored metadata according to the decryption method corresponding to the encryption method used for encrypting the metadata, using the acquired hash value.
  • Each first distributed data provision request includes a first data ID included in the decrypted metadata.
  • Each of the S storage nodes 200 represented by the decrypted metadata receives the first distributed data provision request from the user node 10-1, and the first data included in the received first distributed data provision request It is determined whether or not the distributed data associated with the ID is held in the storage device 12.
  • each of the S storage nodes 200 represented by the decrypted metadata transmits the distributed data to the user node 10-1, and the distributed data If not stored in the storage device 12, dummy data is transmitted to the user node 10-1.
  • the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the first distributed data provision request transmitted in step S212 in FIG. 6 (step S213 in FIG. 6).
  • the provision data received in response to the first distributed data provision request constitutes a first provision data group.
  • the user node 10-1 restores the user data, which is secret data, from the distributed data, which is the provided data constituting the first provided data group, according to the secret sharing method (step S214 in FIG. 6). Then, the user node 10-1 decrypts the restored user data based on the information used for decrypting the encrypted user data represented by the decrypted metadata. Then, the user node 10-1 ends the process of FIG.
  • the information processing system 1 includes the current time point and a predetermined time from the current time point among a plurality of different device groups respectively associated with a plurality of different time points.
  • One device group associated with a time point included in the period between the previous time points is selected.
  • Each of the plurality of device groups is C selected from M storage devices 12 (C represents an integer not less than N and not more than M. In this example, C represents a value equal to N).
  • the storage device 12 is included.
  • the information processing system 1 stores the generated N pieces of distributed data in the N storage devices 12 included in the selected device group.
  • the information processing system 1 executes a restoration process for one of the plurality of device groups.
  • shared data is requested from each of at least some of the N storage devices 12 included in the device group, and secret data is provided from the provided data provided in response to the request according to the secret sharing method. Restoring the data.
  • the restoration fails, the information processing system 1 sets the device group associated with the time point before the time point associated with the device group that is the basis of the failure among the plurality of device groups.
  • the restoration process is executed.
  • the device group selected changes with the passage of time.
  • the storage device 12 in which the distributed data is stored changes with time.
  • the information processing system 1 does not store the information (second data ID in this example) for identifying the secret data (metadata in this example) and the information for specifying the storage destination of the distributed data in association with each other. . Therefore, it is possible to reduce the probability that a user who intends to illegally acquire the secret data specifies the storage destination of the distributed data used for restoring the secret data. Therefore, it is possible to prevent the secret data from being illegally acquired.
  • the information processing system 1 performs the restoration for the device group associated with the time point before the time point associated with the device group that is the basis of the failure. Perform the restoration process. Therefore, when the restoration of the secret data fails, it is possible to increase the probability that the restoration of the secret data is successful as compared with the case where the restoration process is executed on a randomly selected device group. As a result, when the restoration of the secret data is requested, the processing load for specifying the storage destination of the distributed data used for restoring the secret data can be suppressed.
  • the time from when the secret data is stored until the restoration of the secret data is requested becomes shorter, the number of device group candidates used for storing the secret data decreases. Therefore, the shorter the time is, the shorter the time required for the information processing system 1 to specify the storage destination of the distributed data used for restoring the secret data. As a result, user convenience can be improved.
  • the information processing system 1 receives a save request in association with input information input by the user, and when the save request is accepted, associates the plurality of device groups with the save request. Set based on input information.
  • the information processing system 1 accepts a restoration request in association with input information input by the user. When the restoration request is accepted, the information processing system 1 selects the plurality of device groups based on the input information associated with the restoration request. To set.
  • the information processing system 1 A device group common to the two cases is set. Therefore, it is possible to reduce the probability that secret data stored in response to a request from a user is restored in response to a request from a user different from the user.
  • the metadata as the secret data includes the plurality of storage devices 12 each storing a plurality of shared data generated according to the secret sharing method from the user data as the secret data. It is data containing information to represent.
  • storage destinations of information for specifying storage destinations of a plurality of distributed data generated from user data are distributed to the plurality of storage devices 12. Therefore, it is possible to reduce the probability that the storage destinations of a plurality of distributed data generated from user data are specified. Therefore, unauthorized acquisition of user data can be suppressed.
  • the metadata size may have a certain value (for example, 1 megabyte, 10 megabyte, or 10 megabyte).
  • the size of the dummy data transmitted in response to the second distributed data provision request is equal to the size of the metadata. According to this, it is possible to prevent the user node 100 from knowing whether the provided data is distributed data or dummy data based on the size of the provided data received in response to the second distributed data provision request. .
  • the user data may include a plurality of data blocks.
  • the data block is a file.
  • the metadata may include information for identifying each data block (for example, the name of the data block, the date and time when the data block was created, or the date and time when the data block was updated).
  • the user node 100 may output a list of data blocks included in the user data via the output device 15 based on information included in the metadata.
  • the user node 100 may receive information for identifying the data block input by the user of the user node 100 via the input device 14 and selected by the user.
  • the user node 100 may request the storage node 200 for distributed data for the data block identified by the received information.
  • the information processing system 1 may use the user authentication information as a user data restoration request. In this case, the process of step S202 of FIG. 6 may be omitted.
  • the user data restoration request includes period information indicating a period.
  • the period information includes a time point when the period starts and a time point when the period ends.
  • the period information may include one point in time when the period starts and the point when the period ends, and the length of the period.
  • the user of the user node 100 inputs a user data restoration request including period information indicating a period including the time point when the user data storage request is input.
  • the storage node list acquisition unit 103 When the user data restoration request is accepted, the storage node list acquisition unit 103 is included in the period represented by the period information included in the user data restoration request, among the list generation points predetermined in the information processing system 1. Select the latest list generation time from the list generation time.
  • the storage node list acquisition unit 103 When the period information does not include time point information indicating the time point when the period starts, the storage node list acquisition unit 103 is the oldest of the list generation time points associated with the storage node list held by the storage node 200.
  • the list generation time may be used as the time when the period represented by the period information starts.
  • the storage node list acquisition unit 103 has the latest of the list generation time points associated with the storage node list held by the storage node 200.
  • the list generation time may be used as the time when the period represented by the period information ends.
  • the storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list.
  • the storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request.
  • the save node list acquisition unit 103 is associated with the save node list that is the basis of the failure.
  • the list generation time point that is the change time before the list generation time point (in other words, the storage node list is generated) is acquired.
  • the storage node list acquisition unit 103 determines whether or not the acquired list generation time is included in the period represented by the period information included in the user data restoration request that is the basis of the second provided data group. .
  • the storage node list acquisition unit 103 sends a storage node list request including time information indicating the acquired list generation time to the storage node 200 holding the storage node list. Send.
  • the storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request.
  • the storage node list acquisition unit 103 ends the process of acquiring the storage node list.
  • the user node 100 ends the process of acquiring user data.
  • the user node 100 may output information indicating that the process has ended via the output device 15.
  • the information may include information indicating that acquisition of the storage node list has failed.
  • the information may include information indicating that acquisition of user data has failed.
  • the information processing system 1 according to the first modification of the first embodiment can achieve the same operations and effects as the information processing system 1 according to the first embodiment. Furthermore, the information processing system 1 according to the first modification of the first embodiment receives period information that is input by a user and that represents a period. Furthermore, the information processing system 1 limits the device group to be subjected to the restoration process to a device group associated with the time point included in the period represented by the accepted period information among the plurality of device groups. .
  • the node group determination unit 104 determines the node group for the second distributed data group as follows.
  • the node group determination unit 104 selects an information rank relationship associated with the list generation time point associated with the acquired storage node list from among a plurality of different information rank relationships respectively associated with a plurality of different list generation time points. To do.
  • Each information rank relationship is a predetermined relationship between input information and N different ranks.
  • the n-th rank among the N ranks is added to the input information with information representing n and time point information representing the list generation time point associated with the information rank relationship. It is determined that the value obtained by dividing the hash value for a predetermined hash function whose hash value is an integer by the number of storage nodes 200 included in the storage node list is equal to a value obtained by adding 1 to the remainder.
  • n represents each integer of 1 to N.
  • the node group determination unit 104 is included in the storage node list based on the acquired storage node list, the selected information ranking relationship, and the input information associated with the user data storage request or the user data restoration request. N node IDs are selected from the node IDs to be selected.
  • the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
  • the information processing system 1 according to the second modification of the first embodiment can exhibit the same operations and effects as the information processing system 1 according to the first embodiment.
  • the plurality of device groups include a plurality of different device ranking information (in this example, storage node list) respectively associated with a plurality of list generation points. And a plurality of different information ranking relationships respectively associated with the plurality of list generation times.
  • generation of a storage node list candidate by the storage node list generation unit 206 may be performed as follows.
  • the storage node list generation unit 206 applies the node ID to each of the storage nodes 200 identified by the node ID included in the operation notification held in the operation notification storage unit 205 according to a predetermined algorithm (for example, in ascending order or descending order). ) Give rankings to line up.
  • the storage node list generation unit 206 stores information in which the node IDs included in the operation notifications held in the operation notification storage unit 205 are arranged so that the assigned order decreases from the beginning to the end. Generate as a list candidate.
  • the generated storage node list candidate does not change. Therefore, a plurality of storage node list candidates respectively generated at a plurality of different list generation times may match.
  • the information rank relationship used for determining the node group for the second distributed data group changes with the passage of time. Therefore, it is possible to change the selected device group with the passage of time.
  • the information processing system 1 includes, as a plurality of storage node lists, one storage node list included in the plurality of storage node lists, and the one storage node list and other storage nodes included in the plurality of storage node lists. It is preferable to transmit information representing a difference from each node list. Thereby, the communication load for transmitting the storage node list can be suppressed.
  • the information processing system of the third modified example of the first embodiment is different from the information processing system of the first embodiment in that identification information different from the user ID is used as the second data ID.
  • identification information different from the user ID is used as the second data ID.
  • the difference will be mainly described.
  • the 3rd modification of 1st Embodiment what attached
  • the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 is a one-time identifier (in other words, a one-time ID).
  • the one-time ID constitutes identification information.
  • the distributed data storage request transmitting unit 106 determines the user ID and password included in the input information associated with the user data storage request that is the basis of the second distributed data storage request, and the node group for the second distributed data group The one-time ID is generated based on the list generation time point associated with the storage node list used in the above.
  • the distributed data storage request transmission unit 106 uses a hash value for a predetermined hash function of information obtained by adding time information representing the list generation time to the input information as the one-time ID.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 is also a one-time ID. Similar to the distributed data storage request transmission unit 106, the provided data acquisition unit 108 includes the user ID and password included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request, the first The one-time ID is generated based on the list generation time point associated with the storage node list used to determine the node group for the two distributed data groups.
  • the provided data acquisition unit 108 like the distributed data storage request transmission unit 106, obtains the hash value for the hash function of the information obtained by adding the time information indicating the list generation time to the input information. Used as a time ID.
  • the information processing system 1 according to the third modification of the first embodiment can exhibit the same operations and effects as the information processing system 1 according to the first embodiment. Furthermore, the information processing system 1 according to the third modification of the first embodiment generates identification information (one-time ID in this example) based on the time point associated with the selected device group, and includes N pieces of information. Each of the distributed data is stored in association with the generated identification information.
  • identification information one-time ID in this example
  • the probability that the user who requested the storage of the secret data is specified can be reduced as compared with the case of storing the secret data in association with the information for identifying the user. Therefore, for example, when the secret data is encrypted based on the information for identifying the user, the probability that the secret data is decrypted can be reduced.
  • the one-time ID may be a remainder when the hash value for the hash function of the information obtained by adding the time information indicating the list generation time to the input information is divided by the first parameter.
  • the first parameter is a positive integer.
  • the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
  • the first parameter may vary.
  • the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases.
  • a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
  • the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 is a one-time identifier (in other words, a one-time ID).
  • the one-time ID constitutes identification information.
  • the distributed data storage request transmission unit 106 generates different information for each storage node 200 as a one-time ID for the N storage nodes 200 included in the node group for the second distributed data group.
  • the one-time ID for the nth storage node 200 among the N storage nodes 200 included in the node group for the second distributed data group is the rth storage of the N storage nodes 200.
  • the hash value for the predetermined hash function of the information added to the user ID included in the input information associated with the user data storage request that is the basis of the second distributed data storage request is the node ID that identifies the node 200 is there.
  • r represents n + 1 when n represents each integer from 1 to N-1, and represents 1 when n represents N.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 is also a one-time ID. Similar to the distributed data storage request transmission unit 106, the provided data acquisition unit 108 provides different information for each storage node 200 to the N storage nodes 200 included in the node group for the second distributed data group as a one-time ID. Generate as
  • the provided data acquisition unit 108 uses the N storage data as a one-time ID for the nth storage node 200 among the N storage nodes 200.
  • the node ID for identifying the r-th storage node 200 among the nodes 200 is the information added to the user ID included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request.
  • the hash value for the hash function is used.
  • the information processing system 1 of the fourth modification example of the first embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment. Furthermore, the information processing system 1 according to the fourth modified example of the first embodiment generates identification information (in this example, a one-time ID) based on the time point associated with the selected device group, and includes N pieces of information. Each of the distributed data is stored in association with the generated identification information.
  • identification information in this example, a one-time ID
  • the probability that the user who requested the storage of the secret data is specified can be reduced as compared with the case of storing the secret data in association with the information for identifying the user. Therefore, for example, when the secret data is encrypted based on the information for identifying the user, the probability that the secret data is decrypted can be reduced.
  • the information processing system 1 generates different information for each of the storage devices 12 as identification information for the N storage devices 12 included in the selected device group.
  • the probability that the distributed data used for restoring the secret data is specified based on the identification information can be reduced.
  • the one-time ID for the n-th storage node 200 among the N storage nodes 200 is a node ID for identifying the r-th storage node 200 among the N storage nodes 200 as input information. It may be a remainder when the hash value for the hash function of the information added to the included user ID is divided by the first parameter.
  • the first parameter is a positive integer. In the present example, the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
  • the first parameter may vary.
  • the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases.
  • a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
  • the information processing system according to the second embodiment is different from the information processing system according to the first embodiment in that the time required for restoring the secret data varies depending on the strength of the password used for user authentication. Yes.
  • the difference will be mainly described.
  • symbol used in 1st Embodiment is the same or substantially the same.
  • the determination of the node group for the second distributed data group when the user data storage request is accepted by the node group determination unit 104 is performed as follows.
  • the node group determination unit 104 determines the number of candidates C based on the password included in the input information associated with the user data storage request.
  • the number of candidates C is set to a larger number as the password is more easily identified (in other words, the strength of the password is lower) in a range larger than N and smaller than or equal to M.
  • the number of candidates C is determined as follows. Based on the password, the node group determination unit 104 calculates a parameter having a value that decreases as the password is easily identified. For example, when the number of characters constituting the password is equal to or greater than a predetermined threshold, the node group determining unit 104 adds a predetermined increment value to the parameter. For example, when the password includes a number, the node group determination unit 104 adds a predetermined increment value to the parameter. For example, the node group determination unit 104 adds a predetermined increment value to the parameter when the password includes lower case letters. For example, when the password includes alphabetic capital letters, the node group determination unit 104 adds a predetermined increment value to the parameter.
  • the node group determination unit 104 adds a predetermined increment value to the parameter when the password includes a symbol (for example, a number or a character other than the alphabet). Further, for example, when the password does not include the character string included in the user ID, the node group determination unit 104 adds a predetermined increment value to the parameter. For example, when the password does not include a character string included in the dictionary, the node group determination unit 104 adds a predetermined increment value to the parameter.
  • the node group determination unit 104 determines the number of candidates C in a range larger than N and equal to or smaller than M so that the number of candidates increases as the calculated parameter decreases. Thereby, the number of candidates C is determined.
  • the node group determination unit 104 determines in advance the storage node list acquired by the storage node list acquisition unit 103 when the user data storage request is accepted, and the ranks and input information in which the determined candidate number C is different. Based on the information ranking relationship and the input information associated with the user data storage request, the node ID of the determined candidate number C is selected from the node IDs included in the storage node list (in other words, decide.
  • the candidate number C storage nodes 200 respectively identified by the selected candidate number C node IDs constitute a candidate node group.
  • the node group determination unit 104 acquires different ranks of the candidate number C based on the input information associated with the user data storage request and the information rank relationship, and stores them in the storage node list. From the included node IDs, node IDs with candidate numbers C corresponding to the ranks of acquired candidate numbers C are selected.
  • the c-th rank among the ranks of the candidate number C is a hash value for a predetermined hash function having an integer hash value of information obtained by adding information representing c to the input information. , It is determined to be equal to the value obtained by adding 1 to the remainder when divided by the number of storage nodes 200 included in the storage node list. c represents an integer of 1 to C.
  • the node group determination unit 104 randomly selects N node IDs from the selected number C of node IDs. In addition, the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by N node IDs selected at random as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
  • the node group determination unit 104 is based on the password included in the input information associated with the user data restoration request, similarly to the case where the user data restoration request is accepted.
  • the candidate number C is determined.
  • the relationship between the password and the number of candidates C determined by the node group determination unit 104 is common when a user data storage request is accepted and when a user data restoration request is accepted.
  • the node group determination unit 104 determines the storage node list acquired by the storage node list acquisition unit 103 when the user data restoration request is received, and the information rank relationship. Based on the input information associated with the user data restoration request, the node ID of the determined candidate number C is selected (in other words, determined) from the node IDs included in the storage node list.
  • the candidate number C storage nodes 200 respectively identified by the selected candidate number C node IDs constitute a candidate node group.
  • the provided data acquisition unit 108 adds the number of candidate C to the storage node 200 of the number C of candidates included in the candidate node group determined by the node group determination unit 104 when the user data restoration request is received.
  • Each second distributed data provision request is transmitted.
  • the provided data acquisition unit 108 stores a part of the storage nodes 200 of the number C of candidates included in the candidate node group determined by the node group determination unit 104 when the user data restoration request is received.
  • the second distributed data provision request may be transmitted to each of the nodes 200. In this case, if the restoration of the secret data fails, the provision data acquisition unit 108 transmits a second distributed data provision request to the remaining storage nodes 200 among the number C of candidate storage nodes 200 included in the candidate node group. You can do it.
  • the provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request.
  • the provision data received in response to the second distributed data provision request constitutes a second provision data group.
  • the provision data acquisition unit 108 acquires the second provision data group.
  • the storage node 200 may not transmit the provision data in response to the second distributed data provision request. Therefore, the number of provision data constituting the second provision data group may be smaller than C.
  • the storage node 200 may transmit predetermined dummy data in response to the second distributed data provision request. Accordingly, the second provided data group may include data different from the distributed data that constitutes the second distributed data group.
  • the secret data restoration unit 109 generates all the combinations of the N storage nodes 200 selected from the number C of candidate storage nodes 200 included in the candidate node group determined by the node group determination unit 104.
  • Each combination of N storage nodes 200 constitutes a node group candidate.
  • each node group candidate is configured by N storage nodes 200.
  • the secret data restoration unit 109 includes, for each of the generated node group candidates, N included in the node group candidates included in the provision data constituting the second provision data group acquired by the provision data acquisition unit 108.
  • the secret data is restored from the distributed data that is the provided data provided by the storage nodes 200 according to the secret sharing method.
  • the user node 10-1 executes a process in which the process of step S111 in the process of FIG. 5 is replaced with the process from step S121 to step S123 of FIG.
  • the user node 10-1 determines the number of candidates C based on the password included in the input information received in step S101 of FIG. Step S121 in FIG.
  • step S110 in FIG. 5 based on the storage node list held in step S105 in FIG. 5 and the candidate number C determined in step S121 in FIG.
  • a candidate node group for the generated second distributed data group is determined (step S122 in FIG. 7).
  • the user node 10-1 is based on the storage node list held in step S105 in FIG. 5, the information ranking relationship, and the input information received in step S101 in FIG.
  • a candidate node group is determined by selecting the node ID of the candidate number C determined in step S121 of FIG. 7 from the node IDs included in the storage node list.
  • the user node 10-1 randomly selects N storage nodes 200 from the number C of candidate storage nodes 200 constituting the determined candidate node group, and is a node including the selected N storage nodes 200.
  • the group is determined as a node group for the second distributed data group (step S123 in FIG. 7). Thereafter, the user node 10-1 executes the processing after step S112 in FIG.
  • the user node 10-1 executes processing in which the processing from step S204 to step S211 in the processing in FIG. 6 is replaced with the processing from step S221 to step S232 in FIG. 8 instead of the processing in FIG. .
  • the user node 10-1 determines the number of candidates C based on the password included in the input information received in step S201 of FIG. Step S221 in FIG. Next, the user node 10-1 executes the processing of Step S222 and Step S223 of FIG. 8 in the same manner as Step S204 and Step S205 of FIG.
  • step S224 in FIG. 8 a candidate node group for the second distributed data group is determined.
  • the user node 10-1 is based on the storage node list held in step S223 in FIG. 8, the information ranking relationship, and the input information received in step S201 in FIG.
  • a candidate node group is determined by selecting the node ID of the number of candidates C determined in step S221 in FIG. 8 from the node IDs included in the storage node list.
  • the user node 10-1 transmits the second distributed data provision request for the candidate number C to the storage node 200 for the candidate number C included in the determined candidate node group (step S225 in FIG. 8).
  • Each of the number C of candidate storage nodes 200 included in the candidate node group receives the second distributed data provision request from the user node 10-1, and receives the second data ID included in the received second distributed data provision request and It is determined whether or not the associated distributed data is held in the storage device 12.
  • each of the storage nodes 200 having the number of candidates C included in the candidate node group transmits the distributed data to the user node 10-1, and the distributed data is stored in the storage device. If not, the dummy data is transmitted to the user node 10-1.
  • the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the second distributed data provision request transmitted in step S225 of FIG. 8 (step S226 of FIG. 8).
  • the provision data received in response to the second distributed data provision request constitutes a second provision data group.
  • the user node 10-1 generates all the combinations of N storage nodes 200 selected from the number C of candidate storage nodes 200 included in the candidate node group determined in step S224 of FIG. Step S227 in FIG. As described above, each of the combinations constitutes a node group candidate.
  • the user node 10-1 sequentially executes a loop process for each of the generated node group candidates.
  • the start and end of the loop processing are step S228 and step S231 in FIG. 8, respectively.
  • the user node 10-1 may execute a plurality of loop processes in parallel.
  • the user node 10-1 determines that N pieces of provision data included in the second provision data group received in step S226 in FIG.
  • the metadata that is the secret data is restored from the distributed data that is the provided data provided by the storage node 200 according to the secret sharing method (step S229 in FIG. 8).
  • the user node 10-1 determines whether or not the metadata restoration has succeeded in step S229 in FIG. 8 (step S230 in FIG. 8).
  • the user node 10-1 determines “Yes”, ends all the loop processing for each of the generated node group candidates, and executes the processing after step S212 in FIG. To do.
  • the user node 10-1 determines “No” and proceeds to step S231 in FIG. In this way, the user node 10-1 executes a loop process for each of the generated node group candidates.
  • the user node 10-1 displays the latest saved node list transmitted in step S222 in FIG.
  • a list generation time point that is earlier than the change time than the list generation time point indicated by the point-in-time information included in the request (in other words, the list generation time point associated with the storage node list that caused the metadata restoration failure) Obtained (step S232 in FIG. 8).
  • the user node 10-1 transmits a storage node list request including time point information representing the list generation time acquired in step S232 of FIG. 8 to each of at least one storage node 200 (step of FIG. 8). S222). Next, as described above, the user node 10-1 executes the processing from step S223 to step S231 in FIG.
  • the user node 10-1 repeatedly executes the processing from step S222 to step S232 in FIG. 8 until the metadata is successfully restored in step S229 in FIG.
  • the information processing system 1 of the second embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment. Further, in the information processing system 1 according to the second embodiment, the number C of storage devices 12 included in the device group (candidate node group in this example) is large enough that the password used for user authentication is easily specified. Is set.
  • the information processing system 1 randomly selects N storage devices 12 from the C storage devices 12 included in the selected device group (candidate node group in this example).
  • the generated N pieces of distributed data are stored in the N storage devices 12, respectively.
  • the information processing system 1 requests distributed data from each of the C storage devices 12 included in the device group (candidate node group in this example).
  • the information processing system 1 uses the N pieces of provided data constituting the combination. Restore secret data according to the secret sharing method.
  • the number C of the storage devices 12 included in the device group (candidate node group in this example) is set to a large number so that the password used for user authentication can be easily specified. Therefore, the more easily the password used for user authentication is identified, the more likely it is that the restoration of secret data will fail. For this reason, the easier it is to specify the password used for user authentication, the longer the time required to specify the storage destination of the distributed data used to restore the secret data. Accordingly, it is possible to give the user a motive for setting a password that is difficult to specify as a password used for user authentication.
  • a storage destination of distributed data used for restoring the secret data of the user by a user who intends to illegally acquire the secret data of the user It is possible to increase the processing load for specifying the. Therefore, it is possible to prevent the secret data of the user from being illegally acquired.
  • the information processing system according to the third embodiment is different from the information processing system according to the first embodiment in that the provision of the provision data to the user node is prohibited when a predetermined condition is satisfied.
  • the difference will be mainly described.
  • symbol used in 1st Embodiment is the same or substantially the same.
  • the transmission of the second distributed data provision request by the user node 100 is performed as communication in which the transmission source is disclosed.
  • the transmission of the second distributed data provision request may be performed as non-anonymous communication, and for example, may be performed using a technique called TLS (Transport Layer Security).
  • the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 includes a one-time ID and generation time information indicating a list generation time.
  • the generation time point information represents a list generation time point associated with the storage node list used for determining the node group for the second distributed data group.
  • the second data ID may include a user ID instead of the one-time ID.
  • the second data ID may include input information instead of the one-time ID.
  • the generation time point information constitutes time point identification information for identifying the time point.
  • the distributed data storage request transmitting unit 106 determines the user ID and password included in the input information associated with the user data storage request that is the basis of the second distributed data storage request, and the node group for the second distributed data group
  • the one-time ID is generated based on the generation time point information indicating the list generation time point associated with the storage node list used in the above.
  • the one-time ID constitutes generation information generated based on the input information.
  • the distributed data storage request transmission unit 106 uses, as the one-time ID, a hash value for a predetermined hash function of information obtained by adding generation time information representing the list generation time to the input information.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 also includes a one-time ID and generation time information indicating the list generation time.
  • the generation time point information represents a list generation time point associated with the storage node list used for determining the node group for the second distributed data group.
  • the provided data acquisition unit 108 includes the user ID and password included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request, the first The one-time ID is generated based on the generation time information indicating the list generation time associated with the storage node list used for determining the node group for the two distributed data groups.
  • the provided data acquisition unit 108 like the distributed data storage request transmission unit 106, obtains the hash value for the hash function of the information obtained by adding the generation time information indicating the list generation time to the input information. Used as a one-time ID.
  • the function of the storage node 200 includes a non-holding notification processing unit 209, a non-holding notification storage unit 210, and a reject node list generation in addition to the function of the storage node 200 of the first embodiment.
  • the provision request processing unit 203 and the reject node list generation unit 211 constitute a prohibition unit.
  • the non-retention notification processing unit 209 holds the distributed data associated with the second data ID included in the second distributed data provision request in the distributed data storage unit 202. If not, a non-holding notification is transmitted to each of the other storage nodes 200, and the non-holding notification is stored in the non-holding notification storage unit 210 in association with the time when the non-holding notification is transmitted.
  • the non-holding notification includes transmission source identification information for identifying the information processing apparatus 10 that is a transmission source of the second distributed data provision request, and a one-time ID included in the second data ID included in the second distributed data provision request. And generation time information, and transmission time information indicating the time when the non-holding notification is transmitted.
  • the transmission source identification information is an IP address.
  • the non-holding notification may include a hash value of a one-time ID for a predetermined hash function instead of the one-time ID.
  • the non-holding notification may include an electronic signature of the information processing apparatus 10-p that transmits the non-holding notification.
  • the non-holding notification processing unit 209 receives the non-holding notification transmitted by the other information processing device 10-q and receives the received non-holding notification. Are stored in the non-holding notification storage unit 210 in association with the time when the non-holding notification is received. Thereby, the non-holding notification storage unit 210 holds the non-holding notification in association with the time when the non-holding notification is received.
  • non-holding notification held in the non-holding notification storage unit 210 of the storage node 200 may be shared by at least one of the other storage nodes 200. Sharing of non-holding notifications may be realized using a technique called a block chain. Further, when a non-holding notification is shared by a plurality of storage nodes 200, the destination of the non-holding notification transmitted by the non-holding notification processing unit 209 is selected from among the plurality of storage nodes 200 sharing the non-holding notification. May be selected.
  • the refusal node list generation unit 211 notifies the non-holding notification held in the non-holding notification storage unit 210 every time a predetermined generation cycle elapses. Based on this, a reject node list is generated, and the generated reject node list is stored in the reject node list storage unit 212. Thereby, the reject node list storage unit 212 holds a reject node list.
  • the refusal node list represents the information processing apparatus 10 that is prohibited from providing the provision data from the storage node 200 in response to the second distributed data provision request among the P information processing apparatuses 10-1, ..., 10-P. Information.
  • the refusal node list includes an IP address of the information processing apparatus 10 that is prohibited from providing the provision data.
  • the reject node list is generated as follows.
  • the refusal node list generation unit 211 has the same generation time point information among non-holding notifications held in the non-holding notification storage unit 210, the one-time ID is different, and the time point indicated by the transmission time point information is predetermined.
  • the number of non-holding notifications included in the determination period is acquired for each transmission source identification information.
  • the determination period is a period from the current time point to a time point that is a predetermined determination time before.
  • the reject node list generation unit 211 generates a reject node list including transmission source identification information in which the number of acquired non-holding notifications is equal to or greater than a predetermined threshold number. As a result, a reject node list is generated.
  • reject node list held in the reject node list storage unit 212 of the storage node 200 may be shared by at least one of the other storage nodes 200.
  • the sharing of the reject node list may be realized using a technique called a block chain.
  • the provision request processing unit 203 receives the source node identification information for identifying the user node 100 that is the transmission source of the second distributed data provision request, as a rejection node list request processing unit 213. It is determined whether or not it is included in the reject node list obtained by
  • the provision request processing unit 203 is the transmission source of the second distributed data provision request when the sender identification information for identifying the user node 100 that is the transmission source of the second distributed data provision request is included in the reject node list. Dummy data is transmitted to the user node 100. Transmission of dummy data is an example of prohibiting provision of distributed data. In this case, the provision request processing unit 203 may not transmit data to the user node 100 that is the transmission source of the second distributed data provision request.
  • the provision request processing unit 203 includes the second distribution data provision request.
  • the distributed data stored in the distributed data storage unit 202 in association with the two data IDs is transmitted to the user node 100 that is the transmission source of the second distributed data provision request.
  • the provision request processing unit 203 prohibits provision of distributed data based on the reject node list even when the first distributed data provision request is received, as in the case where the second distributed data provision request is received. May be.
  • the storage node 10-w executes the processing represented by the flowchart in FIG. 10 as follows.
  • w represents an integer of 2 to P.
  • the storage node 10-w waits until it receives the second distributed data provision request from the user node 10-1 (“No” route in step S303 in FIG. 10).
  • the storage node 10-w determines “Yes”, and whether or not the transmission source node exists in the held reject node list. Is determined (step S304 in FIG. 10).
  • the transmission source node is a transmission source of the second distributed data provision request.
  • the transmission source node is the user node 10-1.
  • the storage node 10-w determines “Yes”, ends the processing of FIG. 10 without transmitting both the distributed data and the non-holding notification.
  • the storage node 10-w determines “No” and the second data ID included in the second distributed data provision request received in step S303 in FIG. It is determined whether or not the associated distributed data is held in the storage device 12 (step S305 in FIG. 10).
  • the storage node 10-w determines “Yes” and provides the second distributed data The provided data that is the distributed data is transmitted to the user node 10-1 that is the transmission source of the request (step S306 in FIG. 10). Then, the storage node 10-w ends the process of FIG.
  • the storage node 10-w determines “No” and performs another storage. A non-holding notification is transmitted to each of the nodes 200 (step S307 in FIG. 10).
  • the non-holding notification includes transmission source identification information for identifying the user node 10-1 that is a transmission source of the second distributed data provision request, and a one included in the second data ID included in the second distributed data provision request. It includes a time ID and generation time information, and transmission time information indicating the current time as the time when the non-holding notification is transmitted. Then, the storage node 10-w ends the process of FIG.
  • the information processing system 1 of the third embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment.
  • the request for the distributed data generated from the metadata is the second distributed data provision request including the one-time ID and the generation time information from the user node 100 to the storage node 200. This is done by sending
  • the information processing system 1 transmits, from the user node 100, a second distributed data provision request equal to or greater than a predetermined threshold number that has the same generation time information and a different one-time ID within a predetermined determination time. If it is, provision of provision data in response to the request from the user node 100 is prohibited.
  • the information processing system 1 transmits the second distributed data provision request equal to or greater than the predetermined threshold number and having the same generation time information and different one-time IDs within the predetermined determination time. In this case, provision of provision data in response to a request from the user node 100 is prohibited. According to this, it is possible to suppress the secret data from being illegally acquired.
  • each storage node 200 may use only the rejection node list generated by the own node without using the rejection node list generated by another storage node 200. According to this, it is possible to appropriately suppress a service provision failure (DoS) attack due to an unauthorized reject node list.
  • DoS is an abbreviation for Denial of Service.
  • the reject node list generation unit 211 sets the sender identification information included in the reject node list among the sender identification information in which the number of acquired non-hold notifications is equal to or greater than a predetermined threshold notification number. May be limited to transmission source identification information in which the number of storage nodes 200 that are transmission sources of the node is greater than or equal to a predetermined threshold node number (for example, a majority of the total number of storage nodes 200). According to this, it is possible to appropriately suppress a service provision failure (DoS) attack due to an unauthorized reject node list.
  • DoS service provision failure
  • the reject node list generation unit 211 sets the source identification information included in the reject node list for the own node in the source identification information in which the number of acquired non-holding notifications is equal to or greater than a predetermined threshold notification number. You may restrict
  • DoS service provision failure
  • the information processing system according to the first modification of the third embodiment differs from the information processing system according to the third embodiment in information used as a one-time ID.
  • the difference will be mainly described.
  • the 1st modification of 3rd Embodiment what attached
  • the one-time ID included in the second data ID is the same as that of the fourth modified example of the first embodiment for N storage nodes 200 included in the node group for the second distributed data group.
  • the information is different for each storage node 200.
  • the one-time ID constitutes generation information generated based on the input information.
  • the one-time ID for the nth storage node 200 among the N storage nodes 200 included in the node group for the second distributed data group is the rth storage of the N storage nodes 200.
  • This is a hash value for a predetermined hash function of information obtained by adding the node ID for identifying the node 200 to the user ID included in the input information.
  • r represents n + 1 when n represents each integer from 1 to N-1, and represents 1 when n represents N.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the information processing system 1 according to the first modification of the third embodiment can exhibit the same operations and effects as the information processing system 1 according to the third embodiment. Furthermore, the information processing system 1 according to the first modification of the third embodiment generates different information as identification information for each storage device 12 for the N storage devices 12 included in the selected device group.
  • the probability that the distributed data used for restoring the secret data is specified based on the identification information can be reduced.
  • the one-time ID for the n-th storage node 200 among the N storage nodes 200 is a node ID for identifying the r-th storage node 200 among the N storage nodes 200 as input information. It may be a remainder when the hash value for the hash function of the information added to the included user ID is divided by the first parameter.
  • the first parameter is a positive integer. In the present example, the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
  • the first parameter may vary.
  • the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases.
  • a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
  • the information processing system of the second modification example of the third embodiment is different from the information processing system of the first modification example of the third embodiment in that the second data ID is a hash of generation time information instead of the generation time information. It differs in that it contains a value.
  • the difference will be mainly described.
  • the 2nd modification of 3rd Embodiment what attached
  • the second data ID includes generation point identification information instead of generation point information.
  • the generation time point identification information is a hash value for the predetermined hash function of the generation time point information.
  • the generation time point identification information constitutes time point identification information for identifying the time point.
  • the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
  • the information processing system 1 of the second modification example of the third embodiment can exhibit the same operations and effects as the information processing system 1 of the first modification example of the third embodiment. Furthermore, according to the information processing system 1 of the second modified example of the third embodiment, the probability that the list generation time is specified can be reduced.
  • the generation time identification information may be a remainder when the hash value for the hash function of the generation time information is divided by the second parameter.
  • the second parameter is a positive integer.
  • the second parameter is predetermined in the information processing system 1. According to this, the probability that the list generation time is specified can be reduced.
  • the second parameter may vary.
  • the second parameter is the number of storage node list candidates for which the storage node list is selected, the number of storage node list candidates generated in a predetermined period, or information processing that operates as the storage node 200. It may be determined to increase as the number of devices 10 increases. In this case, for example, the number of storage node list candidates for which the storage node list is selected, the number of storage node list candidates generated in a predetermined period, or the number of information processing apparatuses 10 operating as the storage node 200 And a second parameter function that defines the relationship between the second parameter and the second parameter are predetermined in the information processing system 1.
  • the technique for changing the storage destination of the distributed data in accordance with the change in the time when the data is stored is applied to the metadata.
  • the technique may be applied to data different from metadata (for example, user data).
  • the information processing system 1 performs communication according to the P2P method.
  • the information processing system 1 may perform communication according to a method (for example, a client / server method) different from the P2P method.

Abstract

An information processing system (1) equipped with multiple storage devices (10). The information processing system (1) selects, from among multiple different device groups associated with multiple different points in time, one device group associated with a time point that is included in a prescribed period containing the current point in time, and saves, in N storage devices included in the selected device group, N pieces of distributed data generated from confidential data according to a secret sharing scheme. The information processing system (1) executes a restoration process with respect to one device group among the multiple device groups, and if the restoration fails, the information processing system executes the restoration process with respect to a device group (among the multiple device groups) associated with a point in time prior to the point in time associated with the device group from which the failure originated.

Description

情報処理システム、情報処理装置、情報処理方法、及び、プログラムInformation processing system, information processing apparatus, information processing method, and program
 本発明は、情報処理システム、情報処理装置、情報処理方法、及び、プログラムに関する。 The present invention relates to an information processing system, an information processing apparatus, an information processing method, and a program.
 複数の記憶装置を備える情報処理システムが知られている。この種の情報処理システムの一つとして、特許文献1に記載の情報処理システムは、秘密データから、秘密分散法に従って、N(Nは、2以上の整数を表す)個の分散データを生成する。更に、情報処理システムは、N個の記憶装置に、生成されたN個の分散データをそれぞれ保存する。 An information processing system including a plurality of storage devices is known. As one of this type of information processing system, the information processing system described in Patent Document 1 generates N (N represents an integer of 2 or more) pieces of distributed data from secret data according to a secret sharing method. . Further, the information processing system stores the generated N pieces of distributed data in N pieces of storage devices.
 上記情報処理システムにおいては、例えば、秘密データを不正に取得することを意図するユーザは、当該秘密データから生成されたN個の分散データのうちの、k(kは、2以上且つNよりも小さい整数を表す)個の分散データを取得しない限り、秘密データを復元できない。更に、上記情報処理システムは、秘密データを保存する毎に所定の方式に従ってN個の分散データの保存先としての記憶装置を変更する。 In the above information processing system, for example, a user who intends to illegally acquire secret data includes k (k is 2 or more and more than N of N pieces of distributed data generated from the secret data). Secret data cannot be recovered without obtaining pieces of distributed data (representing a small integer). Further, the information processing system changes the storage device as the storage destination of N pieces of distributed data according to a predetermined method every time secret data is stored.
特開2013-20314号公報JP 2013-20314 A
 ところで、上記情報処理システムが、秘密データを識別する情報と、分散データの保存先を特定する情報と、を関連付けて記憶し、秘密データの復元が要求された場合に、当該秘密データを復元するために用いられる分散データの保存先を、記憶された情報に基づいて特定することが考えられる。 By the way, the information processing system stores information for identifying the secret data and information for specifying the storage destination of the distributed data in association with each other, and restores the secret data when the restoration of the secret data is requested. Therefore, it is conceivable to specify the storage destination of the distributed data used for this purpose based on the stored information.
 しかしながら、この場合、当該情報が、秘密データを不正に取得することを意図するユーザに漏洩することがある。この場合、当該ユーザによって、当該秘密データを復元するために用いられる分散データの保存先が特定されやすい。このため、秘密データが不正に取得される虞があった。 However, in this case, the information may be leaked to a user who intends to obtain confidential data illegally. In this case, it is easy for the user to specify the storage destination of the distributed data used for restoring the secret data. For this reason, there is a possibility that the secret data is illegally acquired.
 また、情報処理システムが、秘密データを識別する情報と、分散データの保存先を特定する情報と、を関連付けて記憶しない場合、秘密データの復元が要求された場合に、当該秘密データを復元するために用いられる分散データの保存先を特定するための処理の負荷が高くなりやすい。 In addition, when the information processing system does not store the information for identifying the secret data in association with the information for specifying the storage destination of the distributed data, the secret data is restored when the restoration of the secret data is requested. Therefore, the processing load for specifying the storage destination of the distributed data used for this is likely to increase.
 本発明の目的の一つは、秘密データが不正に取得されることを抑制しながら、分散データの保存先を特定するための処理の負荷を低減することにある。 One of the objects of the present invention is to reduce the processing load for specifying the storage destination of distributed data while suppressing the unauthorized acquisition of secret data.
 一つの側面では、情報処理システムは、M(Mは、2以上の整数を表す)個の記憶装置を備える。
 更に、この情報処理システムは、
 秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成する生成手段と、
 複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と上記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、上記複数の装置群のそれぞれが、上記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、上記選択された装置群に含まれるN個の記憶装置に上記生成されたN個の分散データをそれぞれ保存する保存手段と、
 上記複数の装置群のうちの1つの装置群に対して復元処理を実行し、上記復元処理が、上記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに上記分散データを要求することと、上記要求に応じて提供された提供データから上記秘密分散法に従って上記秘密データを復元することと、を含み、上記復元が失敗した場合、上記複数の装置群のうちの、上記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して上記復元処理を実行する復元手段と、
 を備える。
In one aspect, the information processing system includes M (M represents an integer of 2 or more) storage devices.
Furthermore, this information processing system
Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method;
One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point. A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
A restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, A restoring means for executing the restoration process on a device group associated with a time point prior to a time point associated with the device group that has caused the failure;
Is provided.
 他の一つの側面では、情報処理装置は、M(Mは、2以上の整数を表す)個の記憶装置と通信可能に接続される。
 更に、この情報処理装置は、
 秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成する生成手段と、
 複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と上記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、上記複数の装置群のそれぞれが、上記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、上記選択された装置群に含まれるN個の記憶装置に上記生成されたN個の分散データをそれぞれ保存する保存手段と、
 上記複数の装置群のうちの1つの装置群に対して復元処理を実行し、上記復元処理が、上記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに上記分散データを要求することと、上記要求に応じて提供された提供データから上記秘密分散法に従って上記秘密データを復元することと、を含み、上記復元が失敗した場合、上記複数の装置群のうちの、上記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して上記復元処理を実行する復元手段と、
 を備える。
In another aspect, the information processing device is communicably connected to M storage devices (M represents an integer of 2 or more).
Furthermore, this information processing apparatus
Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method;
One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point. A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
A restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, A restoring means for executing the restoration process on a device group associated with a time point prior to a time point associated with the device group that has caused the failure;
Is provided.
 他の一つの側面では、情報処理方法は、M(Mは、2以上の整数を表す)個の記憶装置を用いる。
 更に、この情報処理方法は、
 秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成し、
 複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と上記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、上記複数の装置群のそれぞれが、上記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、上記選択された装置群に含まれるN個の記憶装置に上記生成されたN個の分散データをそれぞれ保存し、
 上記複数の装置群のうちの1つの装置群に対して復元処理を実行し、上記復元処理が、上記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに上記分散データを要求することと、上記要求に応じて提供された提供データから上記秘密分散法に従って上記秘密データを復元することと、を含み、上記復元が失敗した場合、上記複数の装置群のうちの、上記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して上記復元処理を実行する。
In another aspect, the information processing method uses M (M represents an integer of 2 or more) storage devices.
Furthermore, this information processing method
Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method,
One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point. A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and The generated N distributed data are respectively stored in N storage devices included in the selected device group,
A restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, The restoration process is executed on a device group associated with a time point prior to the time point associated with the device group that has caused the failure.
 他の一つの側面では、プログラムは、M(Mは、2以上の整数を表す)個の記憶装置と通信可能に接続された情報処理装置に処理を実行させる。
 上記処理は、
 秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成し、
 複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と上記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、上記複数の装置群のそれぞれが、上記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、上記選択された装置群に含まれるN個の記憶装置に上記生成されたN個の分散データをそれぞれ保存し、
 上記複数の装置群のうちの1つの装置群に対して復元処理を実行し、上記復元処理が、上記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに上記分散データを要求することと、上記要求に応じて提供された提供データから上記秘密分散法に従って上記秘密データを復元することと、を含み、上記復元が失敗した場合、上記複数の装置群のうちの、上記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して上記復元処理を実行する、ことを含む。
In another aspect, the program causes an information processing device connected to be communicable with M storage devices (M represents an integer of 2 or more).
The above process
Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method,
One of a plurality of different device groups respectively associated with a plurality of different time points is associated with a time point included in a period between the current time point and a time point a predetermined time before the current time point. A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer not less than N and not more than M) selected from the M storage devices, and The generated N distributed data are respectively stored in N storage devices included in the selected device group,
A restoration process is executed on one of the plurality of device groups, and the restoration process is performed on each of the storage devices of at least some of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, Performing the restoration process on a device group associated with a time point before a time point associated with the device group that is the basis of the failure.
 秘密データが不正に取得されることを抑制しながら、分散データの保存先を特定するための処理の負荷を低減することができる。 It is possible to reduce the processing load for specifying the storage destination of the distributed data while suppressing the unauthorized acquisition of the secret data.
第1実施形態の情報処理システムの構成を表すブロック図である。It is a block diagram showing the structure of the information processing system of 1st Embodiment. 図1の情報処理装置の構成を表すブロック図である。It is a block diagram showing the structure of the information processing apparatus of FIG. 図1の情報処理装置がユーザノードとして動作するための機能を表すブロック図である。It is a block diagram showing the function for the information processing apparatus of FIG. 1 to operate as a user node. 図1の情報処理装置が保存ノードとして動作するための機能を表すブロック図である。It is a block diagram showing the function for the information processing apparatus of FIG. 1 to operate as a storage node. 図1の情報処理装置がユーザデータを保存するために実行する処理を表すフローチャートである。It is a flowchart showing the process which the information processing apparatus of FIG. 1 performs in order to preserve | save user data. 図1の情報処理装置がユーザデータを復元するために実行する処理を表すフローチャートである。It is a flowchart showing the process which the information processing apparatus of FIG. 1 performs in order to restore | restore user data. 第2実施形態の情報処理装置がユーザデータを保存するために実行する処理の一部を表すフローチャートである。It is a flowchart showing a part of process which the information processing apparatus of 2nd Embodiment performs in order to preserve | save user data. 第2実施形態の情報処理装置がユーザデータを復元するために実行する処理の一部を表すフローチャートである。It is a flowchart showing a part of process which the information processing apparatus of 2nd Embodiment performs in order to restore | restore user data. 第3実施形態の情報処理装置が保存ノードとして動作するための機能を表すブロック図である。It is a block diagram showing the function for the information processing apparatus of 3rd Embodiment to operate | move as a preservation | save node. 第3実施形態の情報処理装置が分散データを提供するために実行する処理を表すフローチャートである。It is a flowchart showing the process which the information processing apparatus of 3rd Embodiment performs in order to provide distributed data.
 以下、本発明の、情報処理システム、情報処理装置、情報処理方法、及び、プログラム、に関する各実施形態について図1乃至図10を参照しながら説明する。 Hereinafter, embodiments of the information processing system, the information processing apparatus, the information processing method, and the program according to the present invention will be described with reference to FIGS. 1 to 10.
<第1実施形態>
(構成)
 図1に表されるように、第1実施形態の情報処理システム1は、通信網NWを介して、互いに通信可能に接続されたP(Pは、3以上の整数を表す)個の情報処理装置10-1,…,10-Pを備える。本例では、通信網NWは、IP(Internet Protocol)網である。また、以下において、情報処理装置10-pは、区別する必要がない場合、情報処理装置10と表されてよい。pは、1からPの各整数を表す。本例では、情報処理システム1は、P2P(Peer to Peer)方式に従った通信を行なう。情報処理装置10-pは、ノード10-pと表されてよい。
<First Embodiment>
(Constitution)
As illustrated in FIG. 1, the information processing system 1 according to the first embodiment includes P (P represents an integer of 3 or more) pieces of information processing that are communicably connected to each other via a communication network NW. Devices 10-1,..., 10-P are provided. In this example, the communication network NW is an IP (Internet Protocol) network. In the following, the information processing apparatus 10-p may be represented as the information processing apparatus 10 when it is not necessary to distinguish between them. p represents each integer of 1 to P. In this example, the information processing system 1 performs communication according to a P2P (Peer to Peer) method. The information processing apparatus 10-p may be represented as a node 10-p.
 図2に表されるように、情報処理装置10-pは、バスBUを介して互いに接続された、処理装置11、記憶装置12、通信装置13、入力装置14、及び、出力装置15、を備える。 As shown in FIG. 2, the information processing device 10-p includes a processing device 11, a storage device 12, a communication device 13, an input device 14, and an output device 15, which are connected to each other via a bus BU. Prepare.
 処理装置11は、記憶装置12に記憶されたプログラムを実行することにより、情報処理装置10-pを構成する各要素を制御する。これにより、情報処理装置10-pは、後述する機能を実現する。本例では、処理装置11は、CPU(Central Processing Unit)を含む。なお、処理装置11は、MPU(Micro Processing Unit)、又は、DSP(Digital Signal Processor)を含んでもよい。 The processing device 11 controls each element constituting the information processing device 10-p by executing a program stored in the storage device 12. As a result, the information processing apparatus 10-p realizes functions to be described later. In this example, the processing apparatus 11 includes a CPU (Central Processing Unit). The processing device 11 may include an MPU (Micro Processing Unit) or a DSP (Digital Signal Processor).
 記憶装置12は、情報を読み書き可能に記憶する。例えば、記憶装置12は、RAM(Random Access Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、半導体メモリ、及び、有機メモリの少なくとも1つを備える。なお、記憶装置12は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の記録媒体と、記録媒体から情報を読み取り可能な読取装置と、を備えていてもよい。 The storage device 12 stores information in a readable / writable manner. For example, the storage device 12 includes at least one of RAM (Random Access Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), semiconductor memory, and organic memory. The storage device 12 may include a recording medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory, and a reading device that can read information from the recording medium.
 通信装置13は、有線又は無線により他の情報処理装置10-qと通信する。qは、pと異なる、1からPの各整数を表す。本例では、通信装置13は、他の情報処理装置10-qとの間の通信として、送信元及び送信先の少なくとも一方が秘匿された匿名通信を行なう。例えば、匿名通信は、Tor(The Onion Router)、又は、I2P(The Invisible Internet Project)と呼ばれる技術を用いて実現されてよい。 The communication device 13 communicates with another information processing device 10-q by wire or wireless. q represents an integer of 1 to P different from p. In this example, the communication device 13 performs anonymous communication in which at least one of the transmission source and the transmission destination is concealed as communication with the other information processing device 10-q. For example, anonymous communication may be realized using a technology called Tor (The Onion Router) or I2P (The Invisible Internet Project).
 なお、通信装置13は、他の情報処理装置10-qとの通信のうちの少なくとも一部として、非匿名通信を行なってもよい。非匿名通信は、送信元及び送信先の両方が公開された通信である。 Note that the communication device 13 may perform non-anonymous communication as at least part of the communication with the other information processing device 10-q. Non-anonymous communication is communication in which both a transmission source and a transmission destination are disclosed.
 入力装置14は、情報処理装置10-pの外部から情報を入力する。本例では、入力装置14は、キーボード、及び、マウスを備える。なお、入力装置14は、マイクロフォン、又は、カメラを備えてもよい。
 出力装置15は、情報処理装置10-pの外部に情報を出力する。本例では、出力装置15は、ディスプレイを備える。なお、出力装置15は、スピーカを備えてもよい。
 なお、情報処理装置10-pは、入力装置14及び出力装置15の両方を構成するタッチパネル式のディスプレイを備えてもよい。
The input device 14 inputs information from outside the information processing device 10-p. In this example, the input device 14 includes a keyboard and a mouse. Note that the input device 14 may include a microphone or a camera.
The output device 15 outputs information to the outside of the information processing device 10-p. In this example, the output device 15 includes a display. The output device 15 may include a speaker.
The information processing apparatus 10-p may include a touch panel display that constitutes both the input device 14 and the output device 15.
(機能)
 図3及び図4に表されるように、情報処理装置10-pは、情報処理装置10-pがユーザノード100として動作するための機能と、情報処理装置10-pが保存ノード200として動作するための機能と、を有する。
(function)
As illustrated in FIGS. 3 and 4, the information processing apparatus 10-p includes a function for the information processing apparatus 10-p to operate as the user node 100, and the information processing apparatus 10-p operates as the storage node 200. And a function for
 本例では、情報処理装置10-pは、第1状態、第2状態、及び、第3状態から選択された1つの状態にて動作する。第1状態は、情報処理装置10-pがユーザノード100として動作するとともに、情報処理装置10-pが保存ノード200として動作しない状態である。第2状態は、情報処理装置10-pが保存ノード200として動作するとともに、情報処理装置10-pがユーザノード100として動作しない状態である。第3状態は、情報処理装置10-pがユーザノード100として動作するとともに、情報処理装置10-pが保存ノード200としても動作する状態である。 In this example, the information processing apparatus 10-p operates in one state selected from the first state, the second state, and the third state. The first state is a state in which the information processing apparatus 10-p operates as the user node 100 and the information processing apparatus 10-p does not operate as the storage node 200. The second state is a state in which the information processing apparatus 10-p operates as the storage node 200 and the information processing apparatus 10-p does not operate as the user node 100. The third state is a state in which the information processing apparatus 10-p operates as the user node 100 and the information processing apparatus 10-p also operates as the storage node 200.
 また、ユーザノード100として動作している情報処理装置10-pは、ユーザノード100と表されてよい。保存ノード200として動作している情報処理装置10-pは、保存ノード200と表されてよい。
 なお、P個の情報処理装置10-1,…,10-Pのうちの少なくとも一部の情報処理装置10は、ユーザノード100の機能と、保存ノード200の機能と、のうちの一方のみを有してもよい。
Further, the information processing apparatus 10-p operating as the user node 100 may be represented as the user node 100. The information processing apparatus 10-p operating as the storage node 200 may be represented as the storage node 200.
Note that at least some of the P information processing apparatuses 10-1,..., 10-P have only one of the function of the user node 100 and the function of the storage node 200. You may have.
(機能:ユーザノード)
 図3に表されるように、ユーザノード100の機能は、ユーザ認証受付部101と、ユーザデータ保存要求受付部102と、保存ノードリスト取得部103と、ノード群決定部104と、分散データ生成部105と、分散データ保存要求送信部106と、ユーザデータ復元要求受付部107と、提供データ取得部108と、秘密データ復元部109と、を含む。
(Function: User node)
As shown in FIG. 3, the functions of the user node 100 include a user authentication reception unit 101, a user data storage request reception unit 102, a storage node list acquisition unit 103, a node group determination unit 104, and distributed data generation. Unit 105, distributed data storage request transmission unit 106, user data restoration request reception unit 107, provided data acquisition unit 108, and secret data restoration unit 109.
 本例では、分散データ生成部105は、生成手段を構成する。本例では、ユーザデータ保存要求受付部102、保存ノードリスト取得部103、ノード群決定部104、及び、分散データ保存要求送信部106は、保存手段を構成する。本例では、保存ノードリスト取得部103、ノード群決定部104、ユーザデータ復元要求受付部107、提供データ取得部108、及び、秘密データ復元部109は、復元手段を構成する。 In this example, the distributed data generation unit 105 constitutes a generation unit. In this example, the user data storage request reception unit 102, the storage node list acquisition unit 103, the node group determination unit 104, and the distributed data storage request transmission unit 106 constitute a storage unit. In this example, the storage node list acquisition unit 103, the node group determination unit 104, the user data restoration request reception unit 107, the provision data acquisition unit 108, and the secret data restoration unit 109 constitute a restoration unit.
 ユーザ認証受付部101は、ユーザ認証情報を受け付ける。本例では、ユーザ認証受付部101は、情報処理装置10-pのユーザによって、入力装置14を介して入力された入力情報をユーザ認証情報として受け付ける。本例では、入力情報は、ユーザを識別するユーザ識別子(換言すると、ユーザID)と、ユーザの認証に用いられるパスワードとしての文字列と、を含む。 The user authentication receiving unit 101 receives user authentication information. In this example, the user authentication receiving unit 101 receives input information input via the input device 14 by the user of the information processing apparatus 10-p as user authentication information. In this example, the input information includes a user identifier for identifying the user (in other words, a user ID) and a character string as a password used for user authentication.
 ユーザデータ保存要求受付部102は、ユーザによって、入力装置14を介して入力されたユーザデータ保存要求を受け付ける。 The user data storage request receiving unit 102 receives a user data storage request input by the user via the input device 14.
 ユーザによって入力されたユーザデータ保存要求は、ユーザによって入力された入力情報と関連付けられている、と捉えられてよい。ユーザデータ保存要求は、ユーザデータを含むとともに、当該ユーザデータの保存を要求することを表す。 The user data storage request input by the user may be regarded as being associated with the input information input by the user. The user data storage request includes user data and represents a request to store the user data.
 ユーザデータ保存要求受付部102は、受け付けられたユーザデータ保存要求に含まれるユーザデータを暗号化する。なお、ユーザデータ保存要求受付部102は、ユーザデータを暗号化しなくてもよい。 The user data storage request receiving unit 102 encrypts user data included in the received user data storage request. Note that the user data storage request receiving unit 102 may not encrypt user data.
 保存ノードリスト取得部103は、ユーザデータ保存要求が受け付けられた場合、保存ノードリストを取得する。保存ノードリストは、P個の情報処理装置10-1,…,10-Pのうちの、保存ノード200のそれぞれと、P個の情報処理装置10-1,…,10-Pのうちの、保存ノード200のそれぞれに付与された順位と、を表す情報である。換言すると、保存ノードリストは、P個の情報処理装置10-1,…,10-Pのうちの保存ノード200が備える記憶装置12のそれぞれと、P個の情報処理装置10-1,…,10-Pのうちの保存ノード200が備える記憶装置12のそれぞれに付与された順位と、を表す情報である。 The storage node list acquisition unit 103 acquires a storage node list when a user data storage request is accepted. The storage node list includes the storage node 200 of each of the P information processing apparatuses 10-1,..., 10-P and the storage node list of the P information processing apparatuses 10-1,. This is information representing the ranking given to each storage node 200. In other words, the storage node list includes the storage devices 200 included in the storage node 200 among the P information processing devices 10-1,..., 10-P and the P information processing devices 10-1,. This is information representing the ranks assigned to the storage devices 12 included in the storage node 200 of 10-P.
 本例では、保存ノードリストは、先頭から末尾へ向かって順位が低くなるように、保存ノード200を識別するノード識別子(換言すると、ノードID)が順に並ぶ情報である。本例では、保存ノードリストは、装置順位情報を構成する。 In this example, the storage node list is information in which node identifiers (in other words, node IDs) for identifying the storage node 200 are arranged in order so that the order decreases from the top to the end. In this example, the storage node list constitutes device order information.
 後述するように、保存ノードリストは、リスト生成時点が到来する毎に生成される。換言すると、リスト生成時点は、保存ノードリストが生成される時点である。本例では、リスト生成時点は、情報処理システム1において予め定められる。換言すると、P個の情報処理装置10-1,…,10-Pは、リスト生成時点を共有する。本例では、リスト生成時点は、基準時点(例えば、2015年1月1日0時0分0秒)から、所定の変化時間(例えば、1分)が経過する毎に到来する時点である。変化時間は、変動してもよい。 As will be described later, the storage node list is generated every time the list generation time comes. In other words, the list generation time is the time when the storage node list is generated. In this example, the list generation time is predetermined in the information processing system 1. In other words, the P information processing apparatuses 10-1,..., 10-P share the list generation time. In this example, the list generation time point is a time point that arrives every time a predetermined change time (for example, 1 minute) elapses from a reference time point (for example, January 1, 2015, 00:00:00). The change time may vary.
 後述するように、少なくとも1つの保存ノード200は、複数のリスト生成時点にてそれぞれ生成された複数の異なる保存ノードリストを、当該複数のリスト生成時点とそれぞれ関連付けて保持している。例えば、保存ノードリストは、当該保存ノードリストが生成されたリスト生成時点を表す時点情報を含む。 As will be described later, at least one storage node 200 holds a plurality of different storage node lists respectively generated at a plurality of list generation points in association with the plurality of list generation points. For example, the storage node list includes time point information indicating a list generation time point when the storage node list is generated.
 本例では、保存ノードリストの取得は、以下のようにして行なわれる。保存ノードリスト取得部103は、ユーザデータ保存要求が受け付けられた場合、現在の時点を取得する。そして、保存ノードリスト取得部103は、情報処理システム1において予め定められたリスト生成時点のうちの、所定の選択期間に含まれる少なくとも1つのリスト生成時点の中から1つのリスト生成時点を選択する。本例では、選択期間は、取得された現在の時点と、当該現在の時点よりも所定の時間(例えば、5分)だけ前の時点と、の間の期間である。 In this example, the storage node list is acquired as follows. The storage node list acquisition unit 103 acquires the current time point when a user data storage request is accepted. Then, the storage node list acquisition unit 103 selects one list generation time from among at least one list generation time included in a predetermined selection period among the list generation times predetermined in the information processing system 1. . In this example, the selection period is a period between the acquired current time point and a time point that is a predetermined time (for example, 5 minutes) before the current time point.
 具体的には、保存ノードリスト取得部103は、当該選択期間に含まれる少なくとも1つのリスト生成時点の中から1つのリスト生成時点をランダムに選択する。本例では、ランダムな選択は、疑似乱数を用いて行なわれる。 Specifically, the storage node list acquisition unit 103 randomly selects one list generation time from among at least one list generation time included in the selection period. In this example, the random selection is performed using a pseudo-random number.
 保存ノードリスト取得部103は、選択されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、保存ノードリストを保持する保存ノード200へ送信する。保存ノードリスト要求は、保存ノードリストを要求することを表す。保存ノードリスト取得部103は、当該保存ノードリスト要求に応じて当該保存ノード200によって送信された保存ノードリストを受信(換言すると、取得)する。これにより、保存ノードリストの取得が行なわれる。 The storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list. The storage node list request represents requesting a storage node list. The storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
 分散データ生成部105は、ユーザデータ保存要求受付部102により暗号化されたユーザデータである秘密データから、秘密分散法に従って、S個の分散データを生成する。Sは、2以上且つM以下の整数を表す。Mは、Pから1を減じた値P-1を表す。Mは、Pと等しい値を表してもよい。ユーザデータから生成されたS個の分散データは、第1分散データ群を構成する。分散データは、シェアと表されてもよい。 The distributed data generation unit 105 generates S pieces of distributed data from the secret data that is the user data encrypted by the user data storage request receiving unit 102 according to the secret sharing method. S represents an integer of 2 or more and M or less. M represents a value P−1 obtained by subtracting 1 from P. M may represent a value equal to P. The S pieces of distributed data generated from the user data constitute a first distributed data group. The distributed data may be expressed as a share.
 本例では、秘密分散法は、下記非特許文献1に記載のシャミアの秘密分散法である。なお、秘密分散法は、シャミアの秘密分散法と異なる方式であってもよい。本例では、ユーザデータに対する秘密分散法は、S個の分散データのうちの、t以上の数の分散データから秘密データを復元可能であり、S個の分散データのうちの、tよりも少ない数の分散データから秘密データを復元不能である。tは、2以上且つSよりも小さい整数を表す。
 非特許文献1:A.Shamir、「How to share a secret」、Communications of the ACM、第22巻、第11号、p.612-613、1979年
In this example, the secret sharing method is the Shamir secret sharing method described in Non-Patent Document 1 below. Note that the secret sharing method may be different from the Shamir secret sharing method. In this example, the secret sharing method for user data can restore secret data from t or more of the S pieces of distributed data, and is less than t of the S pieces of distributed data. Unable to recover secret data from a number of distributed data. t represents an integer of 2 or more and smaller than S.
Non-Patent Document 1: A. Shamir, “How to share a secret”, Communications of the ACM, Vol. 22, No. 11, p. 612-613, 1979
 ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストに基づいて、ユーザデータから生成された第1分散データ群に対するノード群を決定する。第1分散データ群に対するノード群は、S個の保存ノード200からなる。 The node group determination unit 104 determines a node group for the first distributed data group generated from the user data based on the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is accepted. To do. The node group for the first distributed data group includes S storage nodes 200.
 本例では、第1分散データ群に対するノード群の決定は、以下のようにして行なわれる。ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストに含まれるノードIDの中からランダムにS個のノードIDを選択する。ノード群決定部104は、選択されたS個のノードIDによりそれぞれ識別されるS個の保存ノード200からなるノード群を、第1分散データ群に対するノード群として決定する。これにより、第1分散データ群に対するノード群の決定が行なわれる。 In this example, the determination of the node group for the first distributed data group is performed as follows. The node group determination unit 104 randomly selects S node IDs from among the node IDs included in the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received. The node group determination unit 104 determines a node group including S storage nodes 200 respectively identified by the selected S node IDs as a node group for the first distributed data group. As a result, the node group for the first distributed data group is determined.
 分散データ保存要求送信部106は、ユーザデータ保存要求が受け付けられた場合にノード群決定部104により決定された、第1分散データ群に対するノード群に含まれるS個の保存ノード200に、S個の第1分散データ保存要求をそれぞれ送信する。S個の第1分散データ保存要求は、分散データ生成部105により生成された、第1分散データ群を構成するS個の分散データをそれぞれ含む。更に、各第1分散データ保存要求は、分散データを保存先の保存ノード200において識別する第1データ識別子(換言すると、第1データID)を含むとともに、分散データの記憶装置12への保存を要求することを表す。 The distributed data storage request transmission unit 106 adds the S storage nodes 200 included in the node group for the first distributed data group, which is determined by the node group determination unit 104 when the user data storage request is received, to the S storage nodes 200. The first distributed data storage request is transmitted. The S first distributed data storage requests each include S pieces of distributed data included in the first distributed data group generated by the distributed data generation unit 105. Further, each first distributed data storage request includes a first data identifier (in other words, a first data ID) that identifies the distributed data in the storage node 200 that is the storage destination, and stores the distributed data in the storage device 12. Indicates a request.
 更に、ノード群決定部104は、分散データ保存要求送信部106により第1分散データ保存要求が送信された場合、メタデータを生成する。メタデータは、ユーザデータから生成されたS個の分散データがそれぞれ保存されたS個の保存ノード200(換言すると、保存先)を表す情報を含む。本例では、メタデータは、更に、暗号化されたユーザデータを復号するために用いられる情報と、第1データIDと、を含む。 Furthermore, the node group determination unit 104 generates metadata when the first distributed data storage request is transmitted by the distributed data storage request transmission unit 106. The metadata includes information representing S storage nodes 200 (in other words, storage destinations) in which S pieces of distributed data generated from user data are stored. In this example, the metadata further includes information used for decrypting the encrypted user data and a first data ID.
 ノード群決定部104は、生成されたメタデータを暗号化する。具体的には、ノード群決定部104は、メタデータの基となったユーザデータ保存要求と関連付けられた入力情報の、所定のハッシュ関数に対するハッシュ値を取得し、取得されたハッシュ値を用いてメタデータを所定の暗号化方式に従って暗号化する。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。例えば、暗号化方式は、3-key Triple DES、AES、又は、Camellia等の共通鍵暗号方式である。DESは、Data Encryption Algorithmの略記である。AESは、Advanced Encryption Standardの略記である。なお、ノード群決定部104は、メタデータを暗号化しなくてもよい。 The node group determination unit 104 encrypts the generated metadata. Specifically, the node group determination unit 104 acquires a hash value for a predetermined hash function of the input information associated with the user data storage request that is the basis of the metadata, and uses the acquired hash value The metadata is encrypted according to a predetermined encryption method. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3. For example, the encryption method is a common key encryption method such as 3-key Triple DES, AES, or Camellia. DES is an abbreviation for Data Encryption Algorithm. AES is an abbreviation for Advanced Encryption Standard. Note that the node group determination unit 104 may not encrypt the metadata.
 分散データ生成部105は、ノード群決定部104により暗号化されたメタデータである秘密データから、秘密分散法に従って、N個の分散データを生成する。Nは、2以上且つM以下の整数を表す。Nは、Sと等しい値を表してもよいし、Sと異なる値を表してもよい。メタデータから生成されたN個の分散データは、第2分散データ群を構成する。 The distributed data generation unit 105 generates N pieces of distributed data from the secret data that is the metadata encrypted by the node group determination unit 104 according to the secret sharing method. N represents an integer of 2 or more and M or less. N may represent a value equal to S or a value different from S. N pieces of distributed data generated from the metadata constitute a second distributed data group.
 本例では、メタデータに対する秘密分散法は、N個の分散データのうちの、k以上の数の分散データから秘密データを復元可能であり、N個の分散データのうちの、kよりも少ない数の分散データから秘密データを復元不能である。kは、2以上且つNよりも小さい整数を表す。 In this example, the secret sharing method for metadata can restore secret data from k or more pieces of distributed data among N pieces of distributed data, and is less than k of N pieces of distributed data. Unable to recover secret data from a number of distributed data. k represents an integer of 2 or more and smaller than N.
 ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストに基づいて、メタデータから生成された第2分散データ群に対するノード群を決定する。第2分散データ群に対するノード群は、N個の保存ノード200からなる。 The node group determination unit 104 determines a node group for the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received. To do. A node group for the second distributed data group includes N storage nodes 200.
 本例では、第2分散データ群に対するノード群の決定は、以下のようにして行なわれる。ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストと、入力情報とN個の異なる順位との予め定められた情報順位関係と、当該ユーザデータ保存要求と関連付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中からN個のノードIDを選択する。 In this example, the determination of the node group for the second distributed data group is performed as follows. The node group determination unit 104 has a storage node list acquired by the storage node list acquisition unit 103 when a user data storage request is received, and a predetermined information rank relationship between the input information and N different ranks. Based on the input information associated with the user data storage request, N node IDs are selected from the node IDs included in the storage node list.
 具体的には、ノード群決定部104は、当該ユーザデータ保存要求と関連付けられた入力情報と、当該情報順位関係と、に基づいて、N個の異なる順位を取得し、当該保存ノードリストに含まれるノードIDの中から、取得されたN個の順位にそれぞれ対応するN個のノードIDを選択する。 Specifically, the node group determination unit 104 acquires N different ranks based on the input information associated with the user data save request and the information rank relationship, and includes them in the save node list. N node IDs respectively corresponding to the obtained N rankings are selected from the node IDs to be acquired.
 本例では、情報順位関係において、N個の順位のうちのn番目の順位は、nを表す情報を入力情報に付加した情報の、ハッシュ値が整数である所定のハッシュ関数に対するハッシュ値を、保存ノードリストに含まれる保存ノード200の数により除した場合における剰余に1を加えた値と等しいと定められる。nは、1からNの各整数を表す。 In this example, in the information rank relationship, the n-th rank among the N ranks is a hash value for a predetermined hash function whose information is obtained by adding information representing n to the input information and whose hash value is an integer. It is determined to be equal to the value obtained by adding 1 to the remainder when divided by the number of storage nodes 200 included in the storage node list. n represents each integer of 1 to N.
 加えて、ノード群決定部104は、選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。これにより、第2分散データ群に対するノード群の決定が行なわれる。 In addition, the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
 本例では、ノード群は、当該ノード群に含まれるN個の保存ノード200が備えるN個の記憶装置12からなる装置群に対応する。
 また、本例では、ノード群決定部104により決定される、第2分散データ群に対するノード群は、保存ノードリストと入力情報とが変化しない場合、変化しない。従って、保存ノードリストの選択は、第2分散データ群に対するノード群の選択に対応する。
In this example, the node group corresponds to a device group including N storage devices 12 included in the N storage nodes 200 included in the node group.
In this example, the node group for the second distributed data group determined by the node group determining unit 104 does not change when the storage node list and the input information do not change. Therefore, selection of the storage node list corresponds to selection of a node group for the second distributed data group.
 また、本例では、第2分散データ群に対するノード群の決定に用いられる保存ノードリストは、保存ノードリスト要求に含まれる時点情報が表すリスト生成時点と関連付けられた保存ノードリストである。従って、本例では、保存ノードリスト要求に含まれる時点情報が表すリスト生成時点の選択は、第2分散データ群に対するノード群の選択に対応する。 Further, in this example, the storage node list used for determining the node group for the second distributed data group is a storage node list associated with the list generation time indicated by the time information included in the storage node list request. Therefore, in this example, the selection of the list generation time point indicated by the time point information included in the storage node list request corresponds to the selection of the node group for the second distributed data group.
 分散データ保存要求送信部106は、ユーザデータ保存要求が受け付けられた場合にノード群決定部104により決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200に、N個の第2分散データ保存要求をそれぞれ送信する。 The distributed data storage request transmission unit 106 includes N storage nodes 200 included in the node group for the second distributed data group determined by the node group determination unit 104 when the user data storage request is received. The second distributed data storage request is transmitted.
 N個の第2分散データ保存要求は、分散データ生成部105により生成された、第2分散データ群を構成するN個の分散データをそれぞれ含む。更に、各第2分散データ保存要求は、分散データを保存先の保存ノード200において識別する第2データ識別子(換言すると、第2データID)を含むとともに、分散データの記憶装置12への保存を要求することを表す。本例では、第2データIDは、第2分散データ群の基となったユーザデータ保存要求と関連付けられた入力情報に含まれるユーザIDである。 The N second distributed data storage requests each include N pieces of distributed data that are generated by the distributed data generation unit 105 and constitute the second distributed data group. Further, each second distributed data storage request includes a second data identifier (in other words, a second data ID) for identifying the distributed data in the storage node 200 as a storage destination, and stores the distributed data in the storage device 12. Indicates a request. In this example, the second data ID is a user ID included in the input information associated with the user data storage request that is the basis of the second distributed data group.
 ユーザデータ復元要求受付部107は、ユーザによって、入力装置14を介して入力されたユーザデータ復元要求を受け付ける。 The user data restoration request accepting unit 107 accepts a user data restoration request input by the user via the input device 14.
 ユーザによって入力されたユーザデータ復元要求は、ユーザによって入力された入力情報と関連付けられている、と捉えられてよい。ユーザデータ復元要求は、ユーザデータの復元を要求することを表す。 The user data restoration request input by the user may be regarded as being associated with the input information input by the user. The user data restoration request represents requesting restoration of user data.
 保存ノードリスト取得部103は、ユーザデータ復元要求が受け付けられた場合、保存ノードリストを取得する。本例では、保存ノードリストの取得は、以下のようにして行なわれる。保存ノードリスト取得部103は、ユーザデータ復元要求が受け付けられた場合、現在の時点を取得する。そして、保存ノードリスト取得部103は、情報処理システム1において予め定められたリスト生成時点の中から、取得された現在の時点に最も近いリスト生成時点を選択する。 The storage node list acquisition unit 103 acquires a storage node list when a user data restoration request is received. In this example, the storage node list is acquired as follows. The storage node list acquisition unit 103 acquires the current time when a user data restoration request is received. Then, the storage node list acquisition unit 103 selects a list generation time point closest to the acquired current time point from among list generation time points that are predetermined in the information processing system 1.
 保存ノードリスト取得部103は、選択されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、保存ノードリストを保持する保存ノード200へ送信する。保存ノードリスト取得部103は、当該保存ノードリスト要求に応じて当該保存ノード200によって送信された保存ノードリストを受信(換言すると、取得)する。これにより、保存ノードリストの取得が行なわれる。 The storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list. The storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
 ノード群決定部104は、ユーザデータ復元要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストに基づいて、メタデータから生成された第2分散データ群に対するノード群を決定する。第2分散データ群に対するノード群は、N個の保存ノード200からなる。 The node group determination unit 104 determines a node group for the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when a user data restoration request is received. To do. A node group for the second distributed data group includes N storage nodes 200.
 本例では、第2分散データ群に対するノード群の決定は、以下のようにして、ユーザデータ保存要求が受け付けられた場合と同様に行なわれる。ノード群決定部104は、ユーザデータ復元要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストと、上記情報順位関係と、当該ユーザデータ復元要求と関連付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中からN個のノードIDを選択する。 In this example, the determination of the node group for the second distributed data group is performed in the same manner as when a user data storage request is accepted as follows. The node group determination unit 104 receives the storage node list acquired by the storage node list acquisition unit 103 when the user data recovery request is received, the information ranking relationship, and the input information associated with the user data recovery request. , N node IDs are selected from the node IDs included in the stored node list.
 加えて、ノード群決定部104は、選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。これにより、第2分散データ群に対するノード群の決定が行なわれる。 In addition, the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
 提供データ取得部108は、ユーザデータ復元要求が受け付けられた場合にノード群決定部104により決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200に、N個の第2分散データ提供要求をそれぞれ送信する。各第2分散データ提供要求は、当該ユーザデータ復元要求と関連付けられた入力情報に含まれるユーザIDを第2データIDとして含むとともに、記憶装置12に保存されている分散データの提供を要求することを表す。 The provided data acquisition unit 108 adds the Nth storage node 200 included in the node group for the second distributed data group determined by the node group determination unit 104 when the user data restoration request is received to the Nth storage node 200. 2 Each distributed data provision request is transmitted. Each second shared data provision request includes the user ID included in the input information associated with the user data restoration request as the second data ID, and requests provision of the distributed data stored in the storage device 12. Represents.
 なお、提供データ取得部108は、ユーザデータ復元要求が受け付けられた場合にノード群決定部104により決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200のうちの、v個の保存ノード200のみに、v個の第2分散データ提供要求をそれぞれ送信してもよい。vは、Nよりも小さく且つk以上である整数を表す。 The provided data acquisition unit 108 includes the N storage nodes 200 included in the node group for the second distributed data group, which is determined by the node group determination unit 104 when the user data restoration request is received. The v second distributed data provision requests may be transmitted only to the v storage nodes 200, respectively. v represents an integer smaller than N and greater than or equal to k.
 提供データ取得部108は、送信された第2分散データ提供要求に応じて保存ノード200によって送信された(換言すると、提供された)提供データを受信する。第2分散データ提供要求に対して受信された提供データは、第2提供データ群を構成する。これにより、提供データ取得部108は、第2提供データ群を取得する。なお、保存ノード200は、第2分散データ提供要求に応じて提供データを送信しないことがある。従って、第2提供データ群を構成する提供データの数は、Nよりも小さいことがある。また、保存ノード200は、第2分散データ提供要求に応じて所定のダミーデータを送信することがある。従って、第2提供データ群には、第2分散データ群を構成する分散データと異なるデータが含まれることがある。 The provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request. The provision data received in response to the second distributed data provision request constitutes a second provision data group. Thereby, the provision data acquisition unit 108 acquires the second provision data group. Note that the storage node 200 may not transmit the provision data in response to the second distributed data provision request. Therefore, the number of provision data constituting the second provision data group may be smaller than N. In addition, the storage node 200 may transmit predetermined dummy data in response to the second distributed data provision request. Accordingly, the second provided data group may include data different from the distributed data that constitutes the second distributed data group.
 秘密データ復元部109は、提供データ取得部108により取得された第2提供データ群を構成する提供データである分散データから、秘密分散法に従って、秘密データを復元する。 The secret data restoration unit 109 restores the secret data from the distributed data that is the provision data constituting the second provision data group acquired by the provision data acquisition unit 108 according to the secret sharing method.
 保存ノードリスト取得部103は、秘密データ復元部109による、第2提供データ群に対する秘密データの復元が失敗した場合、保存ノードリストを再び取得する。本例では、保存ノードリストの取得は、以下のようにして行なわれる。保存ノードリスト取得部103は、第2提供データ群に対する秘密データの復元が失敗した場合、当該失敗の基となった保存ノードリストと関連付けられた(換言すると、保存ノードリストが生成された)リスト生成時点よりも、上記変化時間だけ前のリスト生成時点を取得する。 The storage node list acquisition unit 103 acquires the storage node list again when the secret data restoration unit 109 fails to restore the secret data for the second provided data group. In this example, the storage node list is acquired as follows. If the restoration of the secret data for the second provided data group fails, the storage node list acquisition unit 103 is associated with the storage node list that is the basis of the failure (in other words, the storage node list is generated). A list generation time point before the generation time point is acquired by the change time.
 そして、保存ノードリスト取得部103は、取得されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、保存ノードリストを保持する保存ノード200へ送信する。保存ノードリスト取得部103は、当該保存ノードリスト要求に応じて当該保存ノード200によって送信された保存ノードリストを受信(換言すると、取得)する。これにより、保存ノードリストの取得が行なわれる。 Then, the storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the acquired list generation time point to the storage node 200 holding the storage node list. The storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request. As a result, the storage node list is acquired.
 ノード群決定部104は、第2提供データ群に対する秘密データの復元が失敗した場合に保存ノードリスト取得部103により取得された保存ノードリストに基づいて、メタデータから生成された第2分散データ群に対するノード群を決定する。本例では、第2分散データ群に対するノード群の決定は、上述したように、ユーザデータ保存要求が受け付けられた場合と同様に行なわれる。 The node group determination unit 104 generates the second distributed data group generated from the metadata based on the storage node list acquired by the storage node list acquisition unit 103 when the restoration of the secret data for the second provided data group fails. The node group for is determined. In this example, the determination of the node group for the second distributed data group is performed in the same manner as when the user data storage request is accepted as described above.
 提供データ取得部108は、第2提供データ群に対する秘密データの復元が失敗した場合にノード群決定部104により決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200に、N個の第2分散データ提供要求をそれぞれ送信する。提供データ取得部108は、送信された第2分散データ提供要求に応じて保存ノード200によって送信された(換言すると、提供された)提供データを受信する。 The provided data acquisition unit 108 sets the N storage nodes 200 included in the node group for the second distributed data group, which is determined by the node group determining unit 104 when the restoration of the secret data for the second provided data group fails. , N pieces of second distributed data provision requests are transmitted. The provision data acquisition unit 108 receives the provision data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request.
 秘密データ復元部109は、第2提供データ群に対する秘密データの復元が成功した場合、ユーザデータ復元要求と関連付けられた入力情報の、メタデータの暗号化に用いられたハッシュ関数に対するハッシュ値を取得する。更に、秘密データ復元部109は、復元された秘密データであるメタデータを、取得されたハッシュ値を用いて、上記暗号化方式に対応する復号方式に従って復号する。 The secret data restoration unit 109 obtains a hash value for the hash function used to encrypt the metadata of the input information associated with the user data restoration request when the restoration of the secret data for the second provided data group is successful. To do. Further, the secret data restoration unit 109 decrypts the metadata, which is the restored secret data, according to the decryption method corresponding to the encryption method, using the acquired hash value.
 提供データ取得部108は、第2提供データ群に対する秘密データの復元が成功した場合、秘密データ復元部109により復号されたメタデータにより表される、ユーザデータから生成されたS個の分散データがそれぞれ保存されたS個の保存ノード200に、S個の第1分散データ提供要求をそれぞれ送信する。各第1分散データ提供要求は、秘密データ復元部109により復号されたメタデータにより表される第1データIDを含むとともに、記憶装置12に保存されている分散データの提供を要求することを表す。 When the restoration of the secret data for the second provided data group is successful, the provided data acquisition unit 108 stores the S pieces of distributed data generated from the user data represented by the metadata decrypted by the secret data restoration unit 109. The S first distributed data provision requests are transmitted to the S storage nodes 200 stored respectively. Each first shared data provision request includes a first data ID represented by the metadata decrypted by the secret data restoration unit 109, and represents a request for provision of the distributed data stored in the storage device 12. .
 なお、提供データ取得部108は、復号されたメタデータにより表される、ユーザデータから生成されたS個の分散データがそれぞれ保存されたS個の保存ノード200のうちの、u個の保存ノード200のみに、u個の第1分散データ提供要求をそれぞれ送信してもよい。uは、Sよりも小さく且つt以上である整数を表す。 The provided data acquisition unit 108 uses the u storage nodes of the S storage nodes 200 each of which stores the S pieces of distributed data generated from the user data and represented by the decrypted metadata. Only the 200 first distributed data provision requests may be transmitted to only 200. u represents an integer smaller than S and greater than or equal to t.
 提供データ取得部108は、送信された第1分散データ提供要求に応じて保存ノード200によって送信された(換言すると、提供された)提供データを受信する。第1分散データ提供要求に対して受信された提供データは、第1提供データ群を構成する。これにより、提供データ取得部108は、第1提供データ群を取得する。なお、保存ノード200は、第1分散データ提供要求に応じて提供データを送信しないことがある。従って、第1提供データ群を構成する提供データの数は、Sよりも小さいことがある。また、保存ノード200は、第1分散データ提供要求に応じて所定のダミーデータを送信することがある。従って、第1提供データ群には、第1分散データ群を構成する分散データと異なるデータが含まれることがある。 The provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted first distributed data provision request. The provision data received in response to the first distributed data provision request constitutes a first provision data group. Thereby, the provision data acquisition part 108 acquires the 1st provision data group. Note that the storage node 200 may not transmit the provision data in response to the first distributed data provision request. Therefore, the number of provision data constituting the first provision data group may be smaller than S. The storage node 200 may transmit predetermined dummy data in response to the first distributed data provision request. Therefore, the first provided data group may include data different from the distributed data constituting the first distributed data group.
 秘密データ復元部109は、提供データ取得部108により取得された第1提供データ群を構成する提供データである分散データから、秘密分散法に従って、秘密データを復元する。秘密データ復元部109は、第1提供データ群に対する秘密データの復元が成功した場合、復号されたメタデータにより表される、暗号化されたユーザデータを復号するために用いられる情報に基づいて、復元された秘密データであるユーザデータを復号する。 The secret data restoration unit 109 restores the secret data from the distributed data that is the provision data constituting the first provision data group acquired by the provision data acquisition unit 108 according to the secret sharing method. The secret data restoration unit 109, when the restoration of the secret data for the first provided data group is successful, based on the information used to decrypt the encrypted user data represented by the decrypted metadata, The user data that is the restored secret data is decrypted.
(機能:保存ノード)
 図4に表されるように、保存ノード200の機能は、保存要求処理部201と、分散データ記憶部202と、提供要求処理部203と、動作通知処理部204と、動作通知記憶部205と、保存ノードリスト生成部206と、保存ノードリスト記憶部207と、保存ノードリスト要求処理部208と、を含む。
(Function: Save node)
As illustrated in FIG. 4, the function of the storage node 200 includes a storage request processing unit 201, a distributed data storage unit 202, a provision request processing unit 203, an operation notification processing unit 204, and an operation notification storage unit 205. A storage node list generation unit 206, a storage node list storage unit 207, and a storage node list request processing unit 208.
 保存要求処理部201は、第1分散データ保存要求、又は、第2分散データ保存要求をユーザノード100から受信する。 The storage request processing unit 201 receives a first distributed data storage request or a second distributed data storage request from the user node 100.
 保存要求処理部201は、第1分散データ保存要求が受信された場合、当該第1分散データ保存要求に含まれる、第1データID及び分散データを互いに関連付けて分散データ記憶部202に記憶させる。これにより、分散データ記憶部202は、当該分散データを当該第1データIDと関連付けて保持する。 When the first distributed data storage request is received, the storage request processing unit 201 stores the first data ID and the distributed data included in the first distributed data storage request in the distributed data storage unit 202 in association with each other. As a result, the distributed data storage unit 202 holds the distributed data in association with the first data ID.
 同様に、保存要求処理部201は、第2分散データ保存要求が受信された場合、当該第2分散データ保存要求に含まれる、第2データID及び分散データを互いに関連付けて分散データ記憶部202に記憶させる。これにより、分散データ記憶部202は、当該分散データを当該第2データIDと関連付けて保持する。 Similarly, when the second distributed data storage request is received, the storage request processing unit 201 associates the second data ID and the distributed data included in the second distributed data storage request with each other in the distributed data storage unit 202. Remember me. As a result, the distributed data storage unit 202 holds the distributed data in association with the second data ID.
 提供要求処理部203は、第1分散データ提供要求、又は、第2分散データ提供要求をユーザノード100から受信する。 The provision request processing unit 203 receives a first distributed data provision request or a second distributed data provision request from the user node 100.
 提供要求処理部203は、第1分散データ提供要求が受信された場合、当該第1分散データ提供要求に含まれる第1データIDと関連付けて分散データ記憶部202に保持されている分散データを、当該第1分散データ提供要求の送信元であるユーザノード100へ送信する。 When the first shared data provision request is received, the provision request processing unit 203 associates the distributed data held in the distributed data storage unit 202 in association with the first data ID included in the first distributed data provision request. It transmits to the user node 100 that is the transmission source of the first distributed data provision request.
 提供要求処理部203は、第1分散データ提供要求が受信された場合において、当該第1分散データ提供要求に含まれる第1データIDと関連付けられた分散データが分散データ記憶部202に保持されていないとき、当該第1分散データ提供要求の送信元であるユーザノード100へデータを送信しない。このとき、提供要求処理部203は、当該第1分散データ提供要求の送信元であるユーザノード100へ、当該第1分散データ提供要求に対応する分散データが保持されていないことを表す通知を送信してもよい。また、このとき、提供要求処理部203は、当該第1分散データ提供要求の送信元であるユーザノード100へ、所定のダミーデータを送信してもよい。 When the first distributed data provision request is received, the provision request processing unit 203 holds the distributed data associated with the first data ID included in the first distributed data provision request in the distributed data storage unit 202. If not, data is not transmitted to the user node 100 that is the transmission source of the first distributed data provision request. At this time, the provision request processing unit 203 transmits a notification indicating that the distributed data corresponding to the first distributed data provision request is not held to the user node 100 that is the transmission source of the first distributed data provision request. May be. At this time, the provision request processing unit 203 may transmit predetermined dummy data to the user node 100 that is the transmission source of the first distributed data provision request.
 同様に、提供要求処理部203は、第2分散データ提供要求が受信された場合、当該第2分散データ提供要求に含まれる第2データIDと関連付けて分散データ記憶部202に保持されている分散データを、当該第2分散データ提供要求の送信元であるユーザノード100へ送信する。 Similarly, when the second distributed data provision request is received, the provision request processing unit 203 is associated with the second data ID included in the second distributed data provision request and is stored in the distributed data storage unit 202. Data is transmitted to the user node 100 that is the transmission source of the second distributed data provision request.
 提供要求処理部203は、第2分散データ提供要求が受信された場合において、当該第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが分散データ記憶部202に保持されていないとき、当該第2分散データ提供要求の送信元であるユーザノード100へデータを送信しない。このとき、提供要求処理部203は、当該第2分散データ提供要求の送信元であるユーザノード100へ、当該第2分散データ提供要求に対応する分散データが保持されていないことを表す通知を送信してもよい。また、このとき、提供要求処理部203は、当該第2分散データ提供要求の送信元であるユーザノード100へ、所定のダミーデータを送信してもよい。 The provision request processing unit 203 holds the distributed data associated with the second data ID included in the second distributed data provision request in the distributed data storage unit 202 when the second distributed data provision request is received. If not, data is not transmitted to the user node 100 that is the transmission source of the second distributed data provision request. At this time, the provision request processing unit 203 transmits a notification indicating that the distributed data corresponding to the second distributed data provision request is not held to the user node 100 that is the transmission source of the second distributed data provision request. May be. At this time, the provision request processing unit 203 may transmit predetermined dummy data to the user node 100 that is the transmission source of the second distributed data provision request.
 動作通知処理部204は、情報処理装置10-pが保存ノード200としての動作を開始した場合、所定の通知周期が経過する毎に、動作通知を他の情報処理装置10-qのそれぞれへ送信するとともに、当該動作通知を、当該動作通知が送信された時点と関連付けて動作通知記憶部205に記憶させる。情報処理システム1は、少なくとも1つの保存ノード200のそれぞれをリスト生成ノードとして設定する。各リスト生成ノードは、保存ノードリストの候補である保存ノードリスト候補を生成する。 When the information processing apparatus 10-p starts the operation as the storage node 200, the operation notification processing unit 204 transmits an operation notification to each of the other information processing apparatuses 10-q every time a predetermined notification cycle elapses. In addition, the operation notification is stored in the operation notification storage unit 205 in association with the time when the operation notification is transmitted. The information processing system 1 sets each of at least one storage node 200 as a list generation node. Each list generation node generates a storage node list candidate that is a storage node list candidate.
 本例では、保存ノードリスト候補は、当該保存ノードリスト候補を生成したリスト生成ノードの電子署名を含む。各リスト生成ノードは、生成された保存ノードリスト候補を、他の情報処理装置10-qのそれぞれへ送信する。 In this example, the storage node list candidate includes the electronic signature of the list generation node that generated the storage node list candidate. Each list generation node transmits the generated storage node list candidate to each of the other information processing apparatuses 10-q.
 保存ノードリスト候補を受信した情報処理装置10-qのそれぞれは、当該保存ノードリスト候補が真正であるか否かを検証する。例えば、保存ノードリスト候補が真正であるか否かは、保存ノードリスト候補に含まれる電子署名によって検証されてよい。保存ノードリスト候補を受信した情報処理装置10-qのそれぞれは、当該保存ノードリスト候補が真正である場合、当該保存ノードリスト候補を承認する。 Each of the information processing apparatuses 10-q that have received the storage node list candidate verifies whether or not the storage node list candidate is authentic. For example, whether or not the storage node list candidate is authentic may be verified by an electronic signature included in the storage node list candidate. Each of the information processing apparatuses 10-q that have received the storage node list candidate approves the storage node list candidate when the storage node list candidate is authentic.
 情報処理システム1は、承認の結果に基づいて、リスト生成時点にて生成された保存ノードリスト候補の中から1つの保存ノードリスト候補を保存ノードリストとして選択する。例えば、情報処理システム1は、保存ノードリスト候補が真正であることを承認した情報処理装置10の数が、情報処理システム1が備える情報処理装置10の総数の過半数となる時点が最も早い保存ノードリスト候補を保存ノードリストとして選択してよい。情報処理システム1によって選択される保存ノードリストを生成するリスト生成ノードは、リスト生成時点が経過する毎に変化してよい。 The information processing system 1 selects one storage node list candidate as a storage node list from among the storage node list candidates generated at the time of list generation based on the approval result. For example, the information processing system 1 has the earliest storage node at which the number of information processing apparatuses 10 that have approved that the storage node list candidate is authentic is a majority of the total number of information processing apparatuses 10 included in the information processing system 1. A list candidate may be selected as a saved node list. The list generation node that generates the storage node list selected by the information processing system 1 may change every time the list generation time elapses.
 保存ノードリストは、情報処理装置10間で送受信されることにより、保存ノード200間で共有される。例えば、保存ノードリストを受信した保存ノード200は、当該保存ノードリストを保持する。なお、保存ノード200は、当該保存ノードリストを保持しなくてもよい。 The storage node list is shared between the storage nodes 200 by being transmitted and received between the information processing apparatuses 10. For example, the storage node 200 that has received the storage node list holds the storage node list. Note that the storage node 200 may not hold the storage node list.
 本例では、保存ノードリストは、当該保存ノードリストが生成されたリスト生成時点を表す時点情報を含む。保存ノードリストが、当該保存ノードリストが生成されたリスト生成時点を表す時点情報を含むことは、当該保存ノードリストが当該リスト生成時点と関連付けられることの一例である。 In this example, the storage node list includes time point information indicating a list generation time point when the storage node list is generated. The fact that the storage node list includes time point information indicating the list generation time when the storage node list is generated is an example of the storage node list being associated with the list generation time.
 動作通知は、情報処理装置10-pを識別するノードIDを含むとともに、情報処理装置10-pが保存ノード200として動作していることを表す。動作通知は、情報処理装置10-pが保存ノード200としての動作を開始した時点を表す時点情報を含んでいてもよい。また、動作通知は、情報処理装置10-pの電子署名を含んでいてもよい。 The operation notification includes a node ID for identifying the information processing apparatus 10-p and represents that the information processing apparatus 10-p is operating as the storage node 200. The operation notification may include time point information indicating the time point when the information processing apparatus 10-p starts the operation as the storage node 200. The operation notification may include an electronic signature of the information processing apparatus 10-p.
 動作通知処理部204は、情報処理装置10-pがリスト生成ノードとして設定されている場合、他の情報処理装置10-qにより送信された動作通知を受信し、受信された動作通知を、当該動作通知が受信された時点と関連付けて動作通知記憶部205に記憶させる。これにより、動作通知記憶部205は、動作通知を当該動作通知が受信された時点と関連付けて保持する。 When the information processing device 10-p is set as the list generation node, the operation notification processing unit 204 receives the operation notification transmitted by the other information processing device 10-q, and receives the received operation notification. It is stored in the operation notification storage unit 205 in association with the time point when the operation notification is received. Thereby, the operation notification storage unit 205 holds the operation notification in association with the time when the operation notification is received.
 動作通知記憶部205は、保持している動作通知の中から、現在の時点から上記通知周期だけ前の時点以前の時点と関連付けられた動作通知を消去する(換言すると、当該動作通知の保持を終了する)。 The operation notification storage unit 205 deletes the operation notification associated with the time before the time just before the notification cycle from the current time from among the held operation notifications (in other words, holding the operation notification). finish).
 なお、保存ノード200の動作通知記憶部205に保持されている動作通知は、他の保存ノード200の少なくとも1つにより共有されてよい。動作通知の共有と、保存ノードリスト候補の生成と、保存ノードリストの共有と、の少なくとも1つは、下記非特許文献2に記載のブロックチェーンと呼ばれる技術を用いて実現されてよい。また、リスト生成時点毎の、保存ノードリスト候補からの保存ノードリストの選択は、下記非特許文献2に記載のプルーフ・オブ・ワークと呼ばれる技術を用いて実現されてよい。また、複数の保存ノード200により動作通知が共有されている場合、動作通知処理部204により送信される動作通知の送信先は、動作通知を共有する複数の保存ノード200の中から選択されてよい。
 非特許文献2:Satoshi Nakamoto、「Bitcoin:A Peer-to-Perrt Electronic Cash System」、Bitcoin、[online]、2008年、[2015年10月2日検索]、インターネット〈URL:https://bitcoin.org/bitcoin.pdf〉
Note that the operation notification held in the operation notification storage unit 205 of the storage node 200 may be shared by at least one of the other storage nodes 200. At least one of operation notification sharing, storage node list candidate generation, and storage node list sharing may be realized using a technique called a block chain described in Non-Patent Document 2 below. In addition, selection of a storage node list from storage node list candidates for each list generation time point may be realized using a technique called proof-of-work described in Non-Patent Document 2 below. When the operation notification is shared by a plurality of storage nodes 200, the transmission destination of the operation notification transmitted by the operation notification processing unit 204 may be selected from the plurality of storage nodes 200 sharing the operation notification. .
Non-Patent Document 2: Satoshi Nakamoto, “Bitcoin: A Peer-to-Pert Electronic Cash System”, Bitcoin, [online], 2008, [October 2, 2015 search], Internet <URL: https: // bitcoin .org / bitcoin.pdf>
 保存ノードリスト生成部206は、情報処理装置10-pがリスト生成ノードとして設定されている場合、リスト生成時点が到来する毎に、動作通知記憶部205に保持されている動作通知に基づいて保存ノードリスト候補を生成する。 When the information processing apparatus 10-p is set as the list generation node, the storage node list generation unit 206 stores the information based on the operation notification held in the operation notification storage unit 205 every time the list generation time comes. Generate node list candidates.
 保存ノードリスト記憶部207は、情報処理装置10-pが保存ノード200として動作している場合、保存ノードリストが選択される毎に、選択された保存ノードリストを記憶する。上述したように、本例では、保存ノードリストは、当該保存ノードリストが生成されたリスト生成時点を表す時点情報を含む。なお、保存ノードリストが時点情報を含まない場合、保存ノードリスト記憶部207は、保存ノードリストと、当該保存ノードリストが生成されたリスト生成時点と、を関連付けて記憶してよい。 When the information processing apparatus 10-p operates as the storage node 200, the storage node list storage unit 207 stores the selected storage node list every time the storage node list is selected. As described above, in this example, the storage node list includes time point information indicating the list generation time point when the storage node list is generated. When the storage node list does not include time point information, the storage node list storage unit 207 may store the storage node list and the list generation time when the storage node list is generated in association with each other.
 本例では、複数の異なるリスト生成時点にてそれぞれ生成される複数の保存ノードリスト候補が互いに異なるように、保存ノードリスト候補の生成は、以下のようにして行なわれる。
 保存ノードリスト生成部206は、動作通知記憶部205に保持されている動作通知に含まれるノードIDにより識別される保存ノード200のそれぞれに、ランダムに決定された順位を付与する。本例では、ランダムな決定は、疑似乱数を用いて行なわれる。保存ノードリスト生成部206は、先頭から末尾へ向かって、付与された順位が低くなるように、動作通知記憶部205に保持されている動作通知に含まれるノードIDを並べた情報を、保存ノードリスト候補として生成する。これにより、保存ノードリスト候補の生成が行なわれる。
In this example, generation of storage node list candidates is performed as follows so that a plurality of storage node list candidates generated at a plurality of different list generation times are different from each other.
The storage node list generation unit 206 assigns a randomly determined order to each of the storage nodes 200 identified by the node ID included in the operation notification held in the operation notification storage unit 205. In this example, a random decision is made using a pseudo-random number. The storage node list generation unit 206 stores information in which the node IDs included in the operation notifications held in the operation notification storage unit 205 are arranged so that the assigned order decreases from the beginning to the end. Generate as a list candidate. As a result, a storage node list candidate is generated.
 本例では、保存ノードリスト取得部103により送信される保存ノードリスト要求の送信先は、保存ノードリストを共有する複数の保存ノード200の中から選択されてよい。 In this example, the transmission destination of the storage node list request transmitted by the storage node list acquisition unit 103 may be selected from a plurality of storage nodes 200 sharing the storage node list.
 保存ノードリスト要求処理部208は、保存ノードリスト要求をユーザノード100から受信する。保存ノードリスト要求処理部208は、保存ノードリスト要求が受信された場合、当該保存ノードリスト要求に含まれる時点情報を含むとともに保存ノードリスト記憶部207に保持されている保存ノードリストを、当該保存ノードリスト要求の送信元であるユーザノード100へ送信する。 The storage node list request processing unit 208 receives a storage node list request from the user node 100. When the storage node list request processing unit 208 receives the storage node list request, the storage node list request processing unit 208 stores the storage node list including the time information included in the storage node list request and held in the storage node list storage unit 207. It transmits to the user node 100 which is the transmission source of the node list request.
(動作)
 次に、情報処理システム1の動作について説明する。
 本例では、情報処理装置10-1が第1状態にて動作するとともに、情報処理装置10-2,…,10-Pが第2状態にて動作する場合を想定する。換言すると、情報処理装置10-1がユーザノード100として動作するとともに、情報処理装置10-2,…,10-Pが保存ノード200として動作する場合を想定する。更に、本例では、各保存ノード200がリスト生成ノードとして設定されている場合を想定する。
(Operation)
Next, the operation of the information processing system 1 will be described.
In this example, it is assumed that the information processing apparatus 10-1 operates in the first state and the information processing apparatuses 10-2,..., 10-P operate in the second state. In other words, it is assumed that the information processing apparatus 10-1 operates as the user node 100 and the information processing apparatuses 10-2,..., 10-P operate as the storage node 200. Furthermore, in this example, it is assumed that each storage node 200 is set as a list generation node.
 以下の動作の説明において、情報処理装置10-1は、ユーザノード10-1と表されてもよい。同様に、情報処理装置10-2,…,10-Pは、保存ノード10-2,…,10-Pとそれぞれ表されてもよい。同様に、情報処理装置10-2,…,10-Pは、リスト生成ノード10-2,…,10-Pとそれぞれ表されてもよい。 In the following description of the operation, the information processing apparatus 10-1 may be represented as a user node 10-1. Similarly, the information processing apparatuses 10-2,..., 10-P may be represented as storage nodes 10-2,. Similarly, the information processing apparatuses 10-2,..., 10-P may be represented as list generation nodes 10-2,.
 保存ノード10-2,…,10-Pのそれぞれは、上記通知周期が経過する毎に、動作通知を他の情報処理装置10-qのそれぞれへ送信するとともに、送信された動作通知を、当該動作通知が送信された時点と関連付けて記憶装置12に記憶させる。
 保存ノード200は、保存ノード10-2,…,10-Pのそれぞれにより送信された動作通知を受信し、受信された動作通知を、当該動作通知が受信された時点と関連付けて記憶装置12に記憶させる。
Each of the storage nodes 10-2,..., 10-P transmits an operation notification to each of the other information processing apparatuses 10-q each time the notification cycle elapses, and the transmitted operation notification is The information is stored in the storage device 12 in association with the time when the operation notification is transmitted.
The storage node 200 receives the operation notification transmitted by each of the storage nodes 10-2,..., 10-P, and associates the received operation notification with the time when the operation notification is received in the storage device 12. Remember me.
 リスト生成ノード10-2,…,10-Pのそれぞれは、リスト生成時点が到来する毎に、保持されている動作通知に基づいて保存ノードリスト候補を生成する。リスト生成ノード10-2,…,10-Pのそれぞれは、生成した保存ノードリスト候補を、他の情報処理装置10-qのそれぞれへ送信する。情報処理システム1は、保存ノードリスト候補の中から1つの保存ノードリスト候補を保存ノードリストとして選択する。保存ノード200は、選択された保存ノードリストを記憶装置12に記憶させる。 Each of the list generation nodes 10-2,..., 10-P generates a storage node list candidate based on the held operation notification every time the list generation time comes. Each of the list generation nodes 10-2, ..., 10-P transmits the generated storage node list candidate to each of the other information processing apparatuses 10-q. The information processing system 1 selects one storage node list candidate as a storage node list from the storage node list candidates. The storage node 200 stores the selected storage node list in the storage device 12.
 ユーザノード10-1は、図5にフローチャートにより表される処理を、以下のようにして実行する。
 ユーザノード10-1は、入力情報をユーザ認証情報として受け付ける(図5のステップS101)。
The user node 10-1 executes the processing represented by the flowchart in FIG. 5 as follows.
The user node 10-1 receives the input information as user authentication information (step S101 in FIG. 5).
 次いで、ユーザノード10-1は、ユーザデータ保存要求を受け付けるまで待機する(図5のステップS102の「No」ルート)。
 ユーザノード10-1のユーザによってユーザデータ保存要求が入力された場合、ユーザノード10-1は、入力されたユーザデータ保存要求を受け付ける。従って、ユーザノード10-1は、「Yes」と判定し、リスト生成時点を選択する(図5のステップS103)。
Next, the user node 10-1 waits until a user data storage request is accepted (“No” route in step S102 in FIG. 5).
When a user data storage request is input by the user of the user node 10-1, the user node 10-1 receives the input user data storage request. Therefore, the user node 10-1 determines “Yes” and selects a list generation time (step S103 in FIG. 5).
 本例では、ユーザノード10-1は、現在の時点を取得する。更に、ユーザノード10-1は、情報処理システム1において予め定められたリスト生成時点のうちの、上記選択期間に含まれる少なくとも1つのリスト生成時点の中から1つのリスト生成時点をランダムに選択する。上記選択期間は、上述したように、取得された現在の時点と、当該現在の時点よりも所定の時間(例えば、5分)だけ前の時点と、の間の期間である。 In this example, the user node 10-1 acquires the current time point. Further, the user node 10-1 randomly selects one list generation time from among at least one list generation time included in the selection period among the list generation times predetermined in the information processing system 1. . As described above, the selection period is a period between the acquired current time point and a time point before the current time point by a predetermined time (for example, 5 minutes).
 そして、ユーザノード10-1は、選択されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、少なくとも1つの保存ノード200のそれぞれへ送信する(図5のステップS104)。次いで、ユーザノード10-1は、保存ノード200から保存ノードリストを受信するまで待機する(図5のステップS105の「No」ルート)。 Then, the user node 10-1 transmits a storage node list request including time point information indicating the selected list generation time point to each of at least one storage node 200 (step S104 in FIG. 5). Next, the user node 10-1 waits until it receives the storage node list from the storage node 200 (“No” route in step S105 in FIG. 5).
 一方、保存ノード200は、ユーザノード10-1から保存ノードリスト要求を受信する。保存ノード200は、受信された保存ノードリスト要求に含まれる時点情報を含むとともに保持されている保存ノードリストをユーザノード10-1へ送信する。 On the other hand, the storage node 200 receives the storage node list request from the user node 10-1. The storage node 200 transmits to the user node 10-1 the storage node list that is stored and includes the time point information included in the received storage node list request.
 これにより、ユーザノード10-1は、保存ノード200から少なくとも1つの保存ノードリストを受信する。ユーザノード10-1は、受信した保存ノードリストが真正であるか否かを検証することにより、不正又は改竄がない保存ノードリストを選択し、選択した保存ノードリストを保持する。従って、ユーザノード10-1は、「Yes」と判定し、受け付けられたユーザデータ保存要求に含まれるユーザデータに対する第1分散データ群を生成する(図5のステップS106)。 Thereby, the user node 10-1 receives at least one storage node list from the storage node 200. The user node 10-1 verifies whether or not the received storage node list is authentic, selects a storage node list that is not illegal or falsified, and holds the selected storage node list. Therefore, the user node 10-1 determines “Yes” and generates a first shared data group for the user data included in the accepted user data storage request (step S106 in FIG. 5).
 本例では、ユーザノード10-1は、受け付けられたユーザデータ保存要求に含まれるユーザデータを暗号化し、暗号化されたユーザデータである秘密データから、秘密分散法に従って、S個の分散データからなる第1分散データ群を生成する。 In this example, the user node 10-1 encrypts the user data included in the accepted user data storage request, and from the secret data that is the encrypted user data, from the S distributed data according to the secret sharing method. A first distributed data group is generated.
 次いで、ユーザノード10-1は、保存ノードリストに基づいて、生成された第1分散データ群に対するノード群を決定する(図5のステップS107)。
 本例では、ユーザノード10-1は、保存ノードリストに含まれるノードIDの中からランダムにS個のノードIDを選択し、選択されたS個のノードIDによりそれぞれ識別されるS個の保存ノード200からなるノード群を、第1分散データ群に対するノード群として決定する。
Next, the user node 10-1 determines a node group for the generated first distributed data group based on the storage node list (step S107 in FIG. 5).
In this example, the user node 10-1 randomly selects S node IDs from the node IDs included in the saved node list, and the S saved items identified by the selected S node IDs. A node group including the nodes 200 is determined as a node group for the first distributed data group.
 そして、ユーザノード10-1は、決定された、第1分散データ群に対するノード群に含まれるS個の保存ノード200に、S個の第1分散データ保存要求をそれぞれ送信する(図5のステップS108)。S個の第1分散データ保存要求は、生成された第1分散データ群を構成するS個の分散データをそれぞれ含む。更に、各第1分散データ保存要求は、分散データを保存先の保存ノード200において識別する第1データIDを含む。 Then, the user node 10-1 transmits the S first distributed data storage requests to the S storage nodes 200 included in the determined node group for the first distributed data group (step of FIG. 5). S108). The S first distributed data storage requests include S pieces of distributed data constituting the generated first distributed data group. Further, each first distributed data storage request includes a first data ID for identifying the distributed data in the storage node 200 that is the storage destination.
 第1分散データ群に対するノード群に含まれるS個の保存ノード200のそれぞれは、ユーザノード10-1から第1分散データ保存要求を受信し、受信された第1分散データ保存要求に含まれる分散データ及び第1データIDを互いに関連付けて記憶装置12に記憶させる。 Each of the S storage nodes 200 included in the node group for the first distributed data group receives the first distributed data storage request from the user node 10-1, and the distributed data included in the received first distributed data storage request The data and the first data ID are associated with each other and stored in the storage device 12.
 その後、ユーザノード10-1は、メタデータを生成する(図5のステップS109)。メタデータは、第1分散データ群を構成するS個の分散データがそれぞれ保存されたS個の保存ノード200を表す情報と、暗号化されたユーザデータを復号するために用いられる情報と、第1データIDと、を含む。 Thereafter, the user node 10-1 generates metadata (step S109 in FIG. 5). The metadata includes information representing S storage nodes 200 each storing S pieces of distributed data constituting the first distributed data group, information used for decrypting encrypted user data, 1 data ID.
 次いで、ユーザノード10-1は、生成されたメタデータに対する第2分散データ群を生成する(図5のステップS110)。
 本例では、ユーザノード10-1は、図5のステップS101にて受け付けられた入力情報の、上記ハッシュ関数に対するハッシュ値を取得し、取得されたハッシュ値を用いてメタデータを上記暗号化方式に従って暗号化する。更に、ユーザノード10-1は、暗号化されたメタデータである秘密データから、秘密分散法に従って、N個の分散データからなる第2分散データ群を生成する。
Next, the user node 10-1 generates a second distributed data group for the generated metadata (step S110 in FIG. 5).
In this example, the user node 10-1 acquires a hash value for the hash function of the input information received in step S101 of FIG. 5, and uses the acquired hash value to convert the metadata to the encryption method. Encrypt according to Further, the user node 10-1 generates a second shared data group composed of N pieces of shared data from the secret data that is the encrypted metadata according to the secret sharing method.
 そして、ユーザノード10-1は、保存ノードリストに基づいて、生成された第2分散データ群に対するノード群を決定する(図5のステップS111)。
 本例では、ユーザノード10-1は、図5のステップS105にて保持された保存ノードリストと、上記情報順位関係と、図5のステップS101にて受け付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中からN個のノードIDを選択し、選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。
Then, the user node 10-1 determines a node group for the generated second distributed data group based on the storage node list (step S111 in FIG. 5).
In this example, the user node 10-1 is based on the storage node list held in step S105 in FIG. 5, the information ranking relationship, and the input information received in step S101 in FIG. N node IDs are selected from the node IDs included in the storage node list, and a node group including N storage nodes 200 respectively identified by the selected N node IDs is designated as second distributed data. Determine as the node group for the group.
 次いで、ユーザノード10-1は、決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200に、N個の第2分散データ保存要求をそれぞれ送信する(図5のステップS112)。
 N個の第2分散データ保存要求は、生成された第2分散データ群を構成するN個の分散データをそれぞれ含む。更に、各第2分散データ保存要求は、分散データを保存先の保存ノード200において識別する第2データIDを含む。
Next, the user node 10-1 transmits N second distributed data storage requests to the N storage nodes 200 included in the determined node group for the second distributed data group, respectively (step of FIG. 5). S112).
The N pieces of second shared data storage requests each include N pieces of distributed data constituting the generated second shared data group. Further, each second distributed data storage request includes a second data ID for identifying the distributed data in the storage node 200 that is the storage destination.
 第2分散データ群に対するノード群に含まれるN個の保存ノード200のそれぞれは、ユーザノード10-1から第2分散データ保存要求を受信し、受信された第2分散データ保存要求に含まれる分散データ及び第2データIDを互いに関連付けて記憶装置12に記憶させる。
 そして、ユーザノード10-1は、図5の処理を終了する。
Each of the N storage nodes 200 included in the node group for the second distributed data group receives the second distributed data storage request from the user node 10-1, and the distributed data included in the received second distributed data storage request The data and the second data ID are associated with each other and stored in the storage device 12.
Then, the user node 10-1 ends the process of FIG.
 その後、ユーザノード10-1は、図6にフローチャートにより表される処理を、以下のようにして実行する。
 ユーザノード10-1は、図5のステップS101と同様に、入力情報をユーザ認証情報として受け付ける(図6のステップS201)。
Thereafter, the user node 10-1 executes the process represented by the flowchart in FIG. 6 as follows.
The user node 10-1 accepts the input information as user authentication information as in step S101 in FIG. 5 (step S201 in FIG. 6).
 次いで、ユーザノード10-1は、ユーザデータ復元要求を受け付けるまで待機する(図6のステップS202の「No」ルート)。
 ユーザノード10-1のユーザによってユーザデータ復元要求が入力された場合、ユーザノード10-1は、入力されたユーザデータ復元要求を受け付ける。従って、ユーザノード10-1は、「Yes」と判定し、リスト生成時点を選択する(図6のステップS203)。
Next, the user node 10-1 waits until a user data restoration request is accepted (“No” route in step S202 in FIG. 6).
When a user data restoration request is input by the user of the user node 10-1, the user node 10-1 receives the input user data restoration request. Accordingly, the user node 10-1 determines “Yes” and selects the list generation time (step S203 in FIG. 6).
 本例では、ユーザノード10-1は、現在の時点を取得し、情報処理システム1において予め定められたリスト生成時点の中から、取得された現在の時点に最も近いリスト生成時点を選択する。 In this example, the user node 10-1 acquires the current time point, and selects the list generation time point closest to the acquired current time point from the list generation time points that are predetermined in the information processing system 1.
 そして、ユーザノード10-1は、選択されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、少なくとも1つの保存ノード200のそれぞれへ送信する(図6のステップS204)。次いで、ユーザノード10-1は、保存ノード200から保存ノードリストを受信するまで待機する(図6のステップS205の「No」ルート)。 Then, the user node 10-1 transmits a storage node list request including time point information indicating the selected list generation time point to each of at least one storage node 200 (step S204 in FIG. 6). Next, the user node 10-1 waits until it receives the storage node list from the storage node 200 (“No” route in step S205 in FIG. 6).
 一方、保存ノード200は、ユーザノード10-1から保存ノードリスト要求を受信する。保存ノード200は、受信された保存ノードリスト要求に含まれる時点情報を含むとともに保持されている保存ノードリストをユーザノード10-1へ送信する。 On the other hand, the storage node 200 receives the storage node list request from the user node 10-1. The storage node 200 transmits to the user node 10-1 the storage node list that is stored and includes the time point information included in the received storage node list request.
 これにより、ユーザノード10-1は、保存ノード200から少なくとも1つの保存ノードリストを受信する。ユーザノード10-1は、受信した保存ノードリストが真正であるか否かを検証することにより、不正又は改竄がない保存ノードリストを選択し、選択した保存ノードリストを保持する。従って、ユーザノード10-1は、「Yes」と判定し、図5のステップS111と同様に、保存ノードリストに基づいて、第2分散データ群に対するノード群を決定する(図6のステップS206)。 Thereby, the user node 10-1 receives at least one storage node list from the storage node 200. The user node 10-1 verifies whether or not the received storage node list is authentic, selects a storage node list that is not illegal or falsified, and holds the selected storage node list. Therefore, the user node 10-1 determines “Yes”, and determines a node group for the second distributed data group based on the storage node list, similarly to step S111 in FIG. 5 (step S206 in FIG. 6). .
 本例では、ユーザノード10-1は、図6のステップS205にて保持された保存ノードリストと、上記情報順位関係と、図6のステップS201にて受け付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中からN個のノードIDを選択し、選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。 In this example, the user node 10-1 is based on the storage node list held in step S205 in FIG. 6, the information ranking relationship, and the input information received in step S201 in FIG. N node IDs are selected from the node IDs included in the storage node list, and a node group including N storage nodes 200 respectively identified by the selected N node IDs is designated as second distributed data. Determine as the node group for the group.
 次いで、ユーザノード10-1は、決定された、第2分散データ群に対するノード群に含まれるN個の保存ノード200に、N個の第2分散データ提供要求をそれぞれ送信する(図6のステップS207)。
 各第2分散データ提供要求は、図6のステップS201にて受け付けられた入力情報に含まれるユーザIDを第2データIDとして含む。
Next, the user node 10-1 transmits N second distributed data provision requests to the N storage nodes 200 included in the determined node group for the second distributed data group, respectively (step in FIG. 6). S207).
Each second distributed data provision request includes the user ID included in the input information received in step S201 of FIG. 6 as the second data ID.
 第2分散データ群に対するノード群に含まれるN個の保存ノード200のそれぞれは、ユーザノード10-1から第2分散データ提供要求を受信し、受信された第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが記憶装置12に保持されているか否かを判定する。 Each of the N storage nodes 200 included in the node group corresponding to the second distributed data group receives the second distributed data provision request from the user node 10-1, and includes the first storage data included in the received second distributed data provision request. Whether or not the distributed data associated with the two data IDs is held in the storage device 12 is determined.
 第2分散データ群に対するノード群に含まれるN個の保存ノード200のそれぞれは、当該分散データが記憶装置12に保持されている場合、当該分散データをユーザノード10-1へ送信し、当該分散データが記憶装置12に保持されていない場合、ユーザノード10-1へダミーデータを送信する。 Each of the N storage nodes 200 included in the node group for the second distributed data group transmits the distributed data to the user node 10-1 when the distributed data is held in the storage device 12, and the distributed node If the data is not held in the storage device 12, dummy data is transmitted to the user node 10-1.
 その後、ユーザノード10-1は、図6のステップS207にて送信された第2分散データ提供要求に応じて保存ノード200によって送信された提供データを受信する(図6のステップS208)。上述したように、第2分散データ提供要求に対して受信された提供データは、第2提供データ群を構成する。 Thereafter, the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the second distributed data provision request transmitted in step S207 of FIG. 6 (step S208 of FIG. 6). As described above, the provision data received in response to the second distributed data provision request constitutes a second provision data group.
 次いで、ユーザノード10-1は、受信された第2提供データ群を構成する提供データである分散データから、秘密分散法に従って、秘密データであるメタデータを復元する(図6のステップS209)。 Next, the user node 10-1 restores metadata, which is secret data, according to the secret sharing method from the distributed data, which is the provided data constituting the received second provided data group (step S209 in FIG. 6).
 そして、ユーザノード10-1は、図6のステップS209にてメタデータの復元が成功したか否かを判定する(図6のステップS210)。
 メタデータの復元が失敗した場合、ユーザノード10-1は、「No」と判定し、図6のステップS204にて送信された最新の保存ノードリスト要求に含まれる時点情報が表すリスト生成時点(換言すると、メタデータの復元の失敗の基となった保存ノードリストと関連付けられたリスト生成時点)よりも、上記変化時間だけ前のリスト生成時点を取得する(図6のステップS211)。
Then, the user node 10-1 determines whether or not the metadata restoration is successful in step S209 in FIG. 6 (step S210 in FIG. 6).
If the restoration of the metadata fails, the user node 10-1 determines “No”, and the list generation time point (indicated by the time point information included in the latest storage node list request transmitted in step S204 in FIG. 6) ( In other words, a list generation time point earlier than the change time than a list generation time point associated with the storage node list that is the basis of the metadata restoration failure is acquired (step S211 in FIG. 6).
 そして、ユーザノード10-1は、図6のステップS211にて取得されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、少なくとも1つの保存ノード200のそれぞれへ送信する(図6のステップS204)。次いで、ユーザノード10-1は、上述したように、図6のステップS205からステップS210までの処理を実行する。 Then, the user node 10-1 transmits a storage node list request including time point information representing the list generation time acquired in step S211 of FIG. 6 to each of at least one storage node 200 (step of FIG. 6). S204). Next, as described above, the user node 10-1 executes the processing from step S205 to step S210 in FIG.
 ユーザノード10-1は、図6のステップS209にてメタデータの復元が成功するまで、図6のステップS204からステップS211までの処理を繰り返し実行する。
 本例では、図6のステップS204からステップS209までの処理は、復元処理と表されてもよい。
The user node 10-1 repeatedly executes the processing from step S204 to step S211 in FIG. 6 until the restoration of the metadata is successful in step S209 in FIG.
In this example, the process from step S204 to step S209 in FIG. 6 may be represented as a restoration process.
 図6のステップS209にてメタデータの復元が成功した場合、ユーザノード10-1は、図6のステップS210にて「Yes」と判定し、図6のステップS201にて受け付けられた入力情報の、メタデータの暗号化に用いられたハッシュ関数に対するハッシュ値を取得する。そして、ユーザノード10-1は、復元されたメタデータを、取得されたハッシュ値を用いて、メタデータの暗号化に用いられた暗号化方式に対応する復号方式に従って復号する。 If the restoration of the metadata is successful in step S209 in FIG. 6, the user node 10-1 determines “Yes” in step S210 in FIG. 6, and the input information received in step S201 in FIG. The hash value for the hash function used to encrypt the metadata is acquired. Then, the user node 10-1 decrypts the restored metadata according to the decryption method corresponding to the encryption method used for encrypting the metadata, using the acquired hash value.
 次いで、ユーザノード10-1は、復号されたメタデータにより表されるS個の保存ノード200に、S個の第1分散データ提供要求をそれぞれ送信する(図6のステップS212)。各第1分散データ提供要求は、復号されたメタデータに含まれる第1データIDを含む。 Next, the user node 10-1 transmits S first shared data provision requests to the S storage nodes 200 represented by the decrypted metadata (step S212 in FIG. 6). Each first distributed data provision request includes a first data ID included in the decrypted metadata.
 復号されたメタデータにより表されるS個の保存ノード200のそれぞれは、ユーザノード10-1から第1分散データ提供要求を受信し、受信された第1分散データ提供要求に含まれる第1データIDと関連付けられた分散データが記憶装置12に保持されているか否かを判定する。 Each of the S storage nodes 200 represented by the decrypted metadata receives the first distributed data provision request from the user node 10-1, and the first data included in the received first distributed data provision request It is determined whether or not the distributed data associated with the ID is held in the storage device 12.
 復号されたメタデータにより表されるS個の保存ノード200のそれぞれは、当該分散データが記憶装置12に保持されている場合、当該分散データをユーザノード10-1へ送信し、当該分散データが記憶装置12に保持されていない場合、ユーザノード10-1へダミーデータを送信する。 When the distributed data is held in the storage device 12, each of the S storage nodes 200 represented by the decrypted metadata transmits the distributed data to the user node 10-1, and the distributed data If not stored in the storage device 12, dummy data is transmitted to the user node 10-1.
 その後、ユーザノード10-1は、図6のステップS212にて送信された第1分散データ提供要求に応じて保存ノード200によって送信された提供データを受信する(図6のステップS213)。上述したように、第1分散データ提供要求に対して受信された提供データは、第1提供データ群を構成する。 Thereafter, the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the first distributed data provision request transmitted in step S212 in FIG. 6 (step S213 in FIG. 6). As described above, the provision data received in response to the first distributed data provision request constitutes a first provision data group.
 次いで、ユーザノード10-1は、受信された第1提供データ群を構成する提供データである分散データから、秘密分散法に従って、秘密データであるユーザデータを復元する(図6のステップS214)。そして、ユーザノード10-1は、復号されたメタデータにより表される、暗号化されたユーザデータを復号するために用いられる情報に基づいて、復元されたユーザデータを復号する。
 そして、ユーザノード10-1は、図6の処理を終了する。
Next, the user node 10-1 restores the user data, which is secret data, from the distributed data, which is the provided data constituting the first provided data group, according to the secret sharing method (step S214 in FIG. 6). Then, the user node 10-1 decrypts the restored user data based on the information used for decrypting the encrypted user data represented by the decrypted metadata.
Then, the user node 10-1 ends the process of FIG.
 以上、説明したように、第1実施形態の情報処理システム1は、複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と当該現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択する。複数の装置群のそれぞれは、M個の記憶装置12の中から選択されたC(Cは、N以上且つM以下の整数を表す。本例では、Cは、Nと等しい値を表す)個の記憶装置12を含む。更に、情報処理システム1は、選択された装置群に含まれるN個の記憶装置12に、生成されたN個の分散データをそれぞれ保存する。 As described above, the information processing system 1 according to the first embodiment includes the current time point and a predetermined time from the current time point among a plurality of different device groups respectively associated with a plurality of different time points. One device group associated with a time point included in the period between the previous time points is selected. Each of the plurality of device groups is C selected from M storage devices 12 (C represents an integer not less than N and not more than M. In this example, C represents a value equal to N). The storage device 12 is included. Furthermore, the information processing system 1 stores the generated N pieces of distributed data in the N storage devices 12 included in the selected device group.
 加えて、情報処理システム1は、上記複数の装置群のうちの1つの装置群に対して復元処理を実行する。復元処理は、装置群に含まれるN個の記憶装置12の少なくとも一部の記憶装置12のそれぞれに分散データを要求することと、当該要求に応じて提供された提供データから秘密分散法に従って秘密データを復元することと、を含む。更に、情報処理システム1は、当該復元が失敗した場合、上記複数の装置群のうちの、当該失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して上記復元処理を実行する。 In addition, the information processing system 1 executes a restoration process for one of the plurality of device groups. In the restoration process, shared data is requested from each of at least some of the N storage devices 12 included in the device group, and secret data is provided from the provided data provided in response to the request according to the secret sharing method. Restoring the data. Further, when the restoration fails, the information processing system 1 sets the device group associated with the time point before the time point associated with the device group that is the basis of the failure among the plurality of device groups. On the other hand, the restoration process is executed.
 これによれば、時間の経過に伴って選択される装置群が変化する。これにより、分散データが保存される記憶装置12が時間の経過に伴って変化する。この結果、秘密データを不正に取得することを意図するユーザによって、当該秘密データを復元するために用いられる分散データの保存先が特定される確率を低減できる。従って、秘密データが不正に取得されることを抑制できる。 According to this, the device group selected changes with the passage of time. As a result, the storage device 12 in which the distributed data is stored changes with time. As a result, it is possible to reduce the probability that the user who intends to obtain the secret data illegally specifies the storage destination of the distributed data used for restoring the secret data. Therefore, it is possible to prevent the secret data from being illegally acquired.
 更に、情報処理システム1は、秘密データ(本例では、メタデータ)を識別する情報(本例では、第2データID)と、分散データの保存先を特定する情報と、を関連付けて記憶しない。従って、秘密データを不正に取得することを意図するユーザによって、当該秘密データを復元するために用いられる分散データの保存先が特定される確率を低減できる。従って、秘密データが不正に取得されることを抑制できる。 Further, the information processing system 1 does not store the information (second data ID in this example) for identifying the secret data (metadata in this example) and the information for specifying the storage destination of the distributed data in association with each other. . Therefore, it is possible to reduce the probability that a user who intends to illegally acquire the secret data specifies the storage destination of the distributed data used for restoring the secret data. Therefore, it is possible to prevent the secret data from being illegally acquired.
 加えて、情報処理システム1は、秘密データの復元が失敗した場合、失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して、当該復元のための復元処理を実行する。従って、秘密データの復元が失敗した場合において無作為(ランダム)に選択された装置群に対して当該復元処理を実行する場合よりも、秘密データの復元が成功する確率を高めることができる。この結果、秘密データの復元が要求された場合に、当該秘密データを復元するために用いられる分散データの保存先を特定するための処理の負荷を抑制できる。 In addition, when the restoration of the secret data fails, the information processing system 1 performs the restoration for the device group associated with the time point before the time point associated with the device group that is the basis of the failure. Perform the restoration process. Therefore, when the restoration of the secret data fails, it is possible to increase the probability that the restoration of the secret data is successful as compared with the case where the restoration process is executed on a randomly selected device group. As a result, when the restoration of the secret data is requested, the processing load for specifying the storage destination of the distributed data used for restoring the secret data can be suppressed.
 更に、秘密データが保存されてから、当該秘密データの復元が要求されるまでの時間が短くなるほど、当該秘密データの保存に用いられた装置群の候補の数が少なくなる。従って、当該時間が短くなるほど、情報処理システム1が当該秘密データを復元するために用いられる分散データの保存先を特定するまでに要する時間が短くなりやすい。この結果、ユーザの利便性を向上できる。 Furthermore, as the time from when the secret data is stored until the restoration of the secret data is requested becomes shorter, the number of device group candidates used for storing the secret data decreases. Therefore, the shorter the time is, the shorter the time required for the information processing system 1 to specify the storage destination of the distributed data used for restoring the secret data. As a result, user convenience can be improved.
 更に、第1実施形態の情報処理システム1は、ユーザによって入力された入力情報と関連付けて保存要求を受け付けるとともに、保存要求が受け付けられた場合、上記複数の装置群を当該保存要求と関連付けられた入力情報に基づいて設定する。加えて、情報処理システム1は、ユーザによって入力された入力情報と関連付けて復元要求を受け付けるとともに、復元要求が受け付けられた場合、上記複数の装置群を当該復元要求と関連付けられた入力情報に基づいて設定する。 Furthermore, the information processing system 1 according to the first embodiment receives a save request in association with input information input by the user, and when the save request is accepted, associates the plurality of device groups with the save request. Set based on input information. In addition, the information processing system 1 accepts a restoration request in association with input information input by the user. When the restoration request is accepted, the information processing system 1 selects the plurality of device groups based on the input information associated with the restoration request. To set.
 これによれば、秘密データの保存が要求される場合と、秘密データの復元が要求される場合と、の2つの場合に共通する入力情報をユーザが入力することにより、情報処理システム1は、当該2つの場合に共通する装置群を設定する。従って、ユーザからの要求に応じて保存された秘密データが、当該ユーザと異なるユーザからの要求に応じて復元される確率を低減できる。 According to this, when the user inputs the input information common to the two cases of the case where the storage of the secret data is requested and the case where the restoration of the secret data is requested, the information processing system 1 A device group common to the two cases is set. Therefore, it is possible to reduce the probability that secret data stored in response to a request from a user is restored in response to a request from a user different from the user.
 更に、第1実施形態の情報処理システム1において、秘密データとしてのメタデータは、秘密データとしてのユーザデータから秘密分散法に従って生成された複数の分散データがそれぞれ保存された複数の記憶装置12を表す情報を含むデータである。 Further, in the information processing system 1 according to the first embodiment, the metadata as the secret data includes the plurality of storage devices 12 each storing a plurality of shared data generated according to the secret sharing method from the user data as the secret data. It is data containing information to represent.
 これによれば、ユーザデータから生成された複数の分散データの保存先を特定する情報の保存先が、複数の記憶装置12に分散される。従って、ユーザデータから生成された複数の分散データの保存先が特定される確率を低減できる。従って、ユーザデータが不正に取得されることを抑制できる。 According to this, storage destinations of information for specifying storage destinations of a plurality of distributed data generated from user data are distributed to the plurality of storage devices 12. Therefore, it is possible to reduce the probability that the storage destinations of a plurality of distributed data generated from user data are specified. Therefore, unauthorized acquisition of user data can be suppressed.
 なお、メタデータのサイズは、一定の値(例えば、1メガバイト、10メガバイト、又は、10メガバイト等)を有してよい。この場合、第2分散データ提供要求に応じて送信されるダミーデータのサイズは、メタデータのサイズと等しいことが好適である。これによれば、ユーザノード100が、第2分散データ提供要求に応じて受信した提供データのサイズに基づいて、当該提供データが、分散データ及びダミーデータのいずれであるかを知ることを防止できる。 Note that the metadata size may have a certain value (for example, 1 megabyte, 10 megabyte, or 10 megabyte). In this case, it is preferable that the size of the dummy data transmitted in response to the second distributed data provision request is equal to the size of the metadata. According to this, it is possible to prevent the user node 100 from knowing whether the provided data is distributed data or dummy data based on the size of the provided data received in response to the second distributed data provision request. .
 また、ユーザデータは、複数のデータブロックを含んでよい。例えば、データブロックは、ファイルである。この場合、メタデータは、各データブロックを識別するための情報(例えば、データブロックの名称、データブロックが作成された日時、又は、データブロックが更新された日時等)を含んでよい。更に、この場合、ユーザノード100は、メタデータが復号された場合、当該メタデータに含まれる情報に基づいて、ユーザデータに含まれるデータブロックの一覧を出力装置15を介して出力してよい。加えて、この場合、ユーザノード100は、ユーザノード100のユーザによって入力装置14を介して入力され、且つ、当該ユーザによって選択されたデータブロックを識別するための情報を受け付けてよい。この場合、ユーザノード100は、当該受け付けた情報により識別されるデータブロックに対する分散データを保存ノード200に要求してよい。
 なお、情報処理システム1は、ユーザ認証情報をユーザデータ復元要求として用いてもよい。この場合、図6のステップS202の処理は省略されてよい。
The user data may include a plurality of data blocks. For example, the data block is a file. In this case, the metadata may include information for identifying each data block (for example, the name of the data block, the date and time when the data block was created, or the date and time when the data block was updated). Further, in this case, when the metadata is decrypted, the user node 100 may output a list of data blocks included in the user data via the output device 15 based on information included in the metadata. In addition, in this case, the user node 100 may receive information for identifying the data block input by the user of the user node 100 via the input device 14 and selected by the user. In this case, the user node 100 may request the storage node 200 for distributed data for the data block identified by the received information.
Note that the information processing system 1 may use the user authentication information as a user data restoration request. In this case, the process of step S202 of FIG. 6 may be omitted.
<第1実施形態の第1変形例>
 次に、第1実施形態の第1変形例の情報処理システムについて説明する。第1実施形態の第1変形例の情報処理システムは、第1実施形態の情報処理システムに対して、復元処理を実行する対象となる装置群を制限する点において相違している。以下、相違点を中心として説明する。なお、第1実施形態の第1変形例の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<First Modification of First Embodiment>
Next, an information processing system according to a first modification of the first embodiment will be described. The information processing system according to the first modification of the first embodiment is different from the information processing system according to the first embodiment in that the device group that is a target for executing the restoration process is limited. Hereinafter, the difference will be mainly described. In addition, in description of the 1st modification of 1st Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、ユーザデータ復元要求は、期間を表す期間情報を含む。期間情報は、期間が開始する時点と、期間が終了する時点と、を含む。なお、期間情報は、期間が開始する時点及び期間が終了する時点のうちの1つの時点と、期間の長さと、を含んでもよい。
 例えば、ユーザノード100のユーザは、ユーザデータ保存要求を入力した時点を含む期間を表す期間情報を含むユーザデータ復元要求を入力する。
In this example, the user data restoration request includes period information indicating a period. The period information includes a time point when the period starts and a time point when the period ends. Note that the period information may include one point in time when the period starts and the point when the period ends, and the length of the period.
For example, the user of the user node 100 inputs a user data restoration request including period information indicating a period including the time point when the user data storage request is input.
 保存ノードリスト取得部103は、ユーザデータ復元要求が受け付けられた場合、情報処理システム1において予め定められたリスト生成時点のうちの、当該ユーザデータ復元要求に含まれる期間情報が表す期間に含まれるリスト生成時点の中で最新のリスト生成時点を選択する。 When the user data restoration request is accepted, the storage node list acquisition unit 103 is included in the period represented by the period information included in the user data restoration request, among the list generation points predetermined in the information processing system 1. Select the latest list generation time from the list generation time.
 なお、期間情報が期間を開始する時点を表す時点情報を含まない場合、保存ノードリスト取得部103は、保存ノード200により保持されている保存ノードリストと関連付けられたリスト生成時点のうちの最も古いリスト生成時点を、期間情報が表す期間が開始する時点として用いてもよい。また、期間情報が期間が終了する時点を表す時点情報を含まない場合、保存ノードリスト取得部103は、保存ノード200により保持されている保存ノードリストと関連付けられたリスト生成時点のうちの最も新しいリスト生成時点を、期間情報が表す期間が終了する時点として用いてもよい。 When the period information does not include time point information indicating the time point when the period starts, the storage node list acquisition unit 103 is the oldest of the list generation time points associated with the storage node list held by the storage node 200. The list generation time may be used as the time when the period represented by the period information starts. In addition, when the period information does not include the time point information indicating the time point when the period ends, the storage node list acquisition unit 103 has the latest of the list generation time points associated with the storage node list held by the storage node 200. The list generation time may be used as the time when the period represented by the period information ends.
 保存ノードリスト取得部103は、選択されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、保存ノードリストを保持する保存ノード200へ送信する。保存ノードリスト取得部103は、当該保存ノードリスト要求に応じて当該保存ノード200によって送信された保存ノードリストを受信(換言すると、取得)する。 The storage node list acquisition unit 103 transmits a storage node list request including time point information indicating the selected list generation time point to the storage node 200 that stores the storage node list. The storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request.
 更に、本例では、保存ノードリスト取得部103は、秘密データ復元部109による、第2提供データ群に対する秘密データの復元が失敗した場合、当該失敗の基となった保存ノードリストと関連付けられた(換言すると、保存ノードリストが生成された)リスト生成時点よりも、上記変化時間だけ前のリスト生成時点を取得する。 Further, in this example, when the secret data restoration unit 109 fails to restore the secret data for the second provided data group, the save node list acquisition unit 103 is associated with the save node list that is the basis of the failure. The list generation time point that is the change time before the list generation time point (in other words, the storage node list is generated) is acquired.
 そして、保存ノードリスト取得部103は、取得されたリスト生成時点が、当該第2提供データ群の基となったユーザデータ復元要求に含まれる期間情報が表す期間に含まれるか否かを判定する。 Then, the storage node list acquisition unit 103 determines whether or not the acquired list generation time is included in the period represented by the period information included in the user data restoration request that is the basis of the second provided data group. .
 取得されたリスト生成時点が当該期間に含まれる場合、保存ノードリスト取得部103は、取得されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、保存ノードリストを保持する保存ノード200へ送信する。保存ノードリスト取得部103は、当該保存ノードリスト要求に応じて当該保存ノード200によって送信された保存ノードリストを受信(換言すると、取得)する。 When the acquired list generation time is included in the period, the storage node list acquisition unit 103 sends a storage node list request including time information indicating the acquired list generation time to the storage node 200 holding the storage node list. Send. The storage node list acquisition unit 103 receives (in other words, acquires) the storage node list transmitted by the storage node 200 in response to the storage node list request.
 取得されたリスト生成時点が当該期間に含まれない場合、保存ノードリスト取得部103は、保存ノードリストを取得する処理を終了する。これにより、ユーザノード100は、ユーザデータを取得する処理を終了する。この場合、ユーザノード100は、当該処理が終了したことを表す情報を出力装置15を介して出力してもよい。当該情報は、保存ノードリストの取得に失敗したことを表す情報を含んでもよい。また、当該情報は、ユーザデータの取得に失敗したことを表す情報を含んでもよい。 If the acquired list generation time is not included in the period, the storage node list acquisition unit 103 ends the process of acquiring the storage node list. Thereby, the user node 100 ends the process of acquiring user data. In this case, the user node 100 may output information indicating that the process has ended via the output device 15. The information may include information indicating that acquisition of the storage node list has failed. The information may include information indicating that acquisition of user data has failed.
 以上、説明したように、第1実施形態の第1変形例の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第1実施形態の第1変形例の情報処理システム1は、ユーザによって入力され且つ期間を表す期間情報を受け付ける。更に、情報処理システム1は、復元処理を実行する対象となる装置群を、複数の装置群の中で、当該受け付けられた期間情報が表す期間に含まれる時点と関連付けられた装置群に限定する。
As described above, the information processing system 1 according to the first modification of the first embodiment can achieve the same operations and effects as the information processing system 1 according to the first embodiment.
Furthermore, the information processing system 1 according to the first modification of the first embodiment receives period information that is input by a user and that represents a period. Furthermore, the information processing system 1 limits the device group to be subjected to the restoration process to a device group associated with the time point included in the period represented by the accepted period information among the plurality of device groups. .
 これによれば、秘密データの復元が成功する確率を高めることができる。この結果、秘密データを復元する際に、当該秘密データを復元するために用いられる分散データの保存先を特定するための処理の負荷を抑制できる。また、ユーザがユーザ認証情報を誤って入力した場合に、秘密データの復元の失敗を確定させるための処理の負荷を抑制できる。 According to this, it is possible to increase the probability of successful restoration of secret data. As a result, when restoring the secret data, the processing load for specifying the storage destination of the distributed data used for restoring the secret data can be suppressed. In addition, when the user inputs the user authentication information by mistake, it is possible to suppress the processing load for determining the failure to restore the secret data.
<第1実施形態の第2変形例>
 次に、第1実施形態の第2変形例の情報処理システムについて説明する。第1実施形態の第2変形例の情報処理システムは、第1実施形態の情報処理システムに対して、第2分散データ群に対するノード群を決定する方式において相違している。以下、相違点を中心として説明する。なお、第1実施形態の第2変形例の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<Second Modification of First Embodiment>
Next, an information processing system according to a second modification of the first embodiment will be described. The information processing system of the second modification example of the first embodiment is different from the information processing system of the first embodiment in a method for determining a node group for the second distributed data group. Hereinafter, the difference will be mainly described. In addition, in description of the 2nd modification of 1st Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、ノード群決定部104による第2分散データ群に対するノード群の決定は、以下のようにして行なわれる。
 ノード群決定部104は、複数の異なるリスト生成時点とそれぞれ関連付けられた複数の異なる情報順位関係の中から、取得された保存ノードリストと関連付けられたリスト生成時点と関連付けられた情報順位関係を選択する。
In this example, the node group determination unit 104 determines the node group for the second distributed data group as follows.
The node group determination unit 104 selects an information rank relationship associated with the list generation time point associated with the acquired storage node list from among a plurality of different information rank relationships respectively associated with a plurality of different list generation time points. To do.
 各情報順位関係は、入力情報とN個の異なる順位との予め定められた関係である。
 本例では、各情報順位関係において、N個の順位のうちのn番目の順位は、nを表す情報、及び、当該情報順位関係と関連付けられたリスト生成時点を表す時点情報を入力情報に付加した情報の、ハッシュ値が整数である所定のハッシュ関数に対するハッシュ値を、保存ノードリストに含まれる保存ノード200の数により除した場合における剰余に1を加えた値と等しいと定められる。nは、1からNの各整数を表す。
Each information rank relationship is a predetermined relationship between input information and N different ranks.
In this example, in each information rank relationship, the n-th rank among the N ranks is added to the input information with information representing n and time point information representing the list generation time point associated with the information rank relationship. It is determined that the value obtained by dividing the hash value for a predetermined hash function whose hash value is an integer by the number of storage nodes 200 included in the storage node list is equal to a value obtained by adding 1 to the remainder. n represents each integer of 1 to N.
 ノード群決定部104は、取得された保存ノードリストと、選択された情報順位関係と、ユーザデータ保存要求又はユーザデータ復元要求と関連付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中からN個のノードIDを選択する。 The node group determination unit 104 is included in the storage node list based on the acquired storage node list, the selected information ranking relationship, and the input information associated with the user data storage request or the user data restoration request. N node IDs are selected from the node IDs to be selected.
 加えて、ノード群決定部104は、選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。これにより、第2分散データ群に対するノード群の決定が行なわれる。 In addition, the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by the selected N node IDs as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
 以上、説明したように、第1実施形態の第2変形例の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第1実施形態の第2変形例の情報処理システム1において、複数の装置群は、複数のリスト生成時点とそれぞれ関連付けられた複数の異なる装置順位情報(本例では、保存ノードリスト)と、当該複数のリスト生成時点とそれぞれ関連付けられた複数の異なる情報順位関係と、に基づいて設定される。
As described above, the information processing system 1 according to the second modification of the first embodiment can exhibit the same operations and effects as the information processing system 1 according to the first embodiment.
Furthermore, in the information processing system 1 according to the second modification of the first embodiment, the plurality of device groups include a plurality of different device ranking information (in this example, storage node list) respectively associated with a plurality of list generation points. And a plurality of different information ranking relationships respectively associated with the plurality of list generation times.
 これによれば、時間の経過に伴って選択される装置群をより一層確実に変化させることができる。この結果、秘密データを不正に取得することを意図するユーザによって、当該秘密データを復元するために用いられる分散データの保存先が特定される確率を低減できる。従って、秘密データが不正に取得されることを抑制できる。 According to this, it is possible to change the device group selected with time more reliably. As a result, it is possible to reduce the probability that the user who intends to obtain the secret data illegally specifies the storage destination of the distributed data used for restoring the secret data. Therefore, it is possible to prevent the secret data from being illegally acquired.
 なお、保存ノードリスト生成部206による保存ノードリスト候補の生成は、以下のようにして行なわれてもよい。
 保存ノードリスト生成部206は、動作通知記憶部205に保持されている動作通知に含まれるノードIDにより識別される保存ノード200のそれぞれに、ノードIDが所定のアルゴリズムに従って(例えば、昇順又は降順に)並ぶように順位を付与する。保存ノードリスト生成部206は、先頭から末尾へ向かって、付与された順位が低くなるように、動作通知記憶部205に保持されている動作通知に含まれるノードIDを並べた情報を、保存ノードリスト候補として生成する。
Note that generation of a storage node list candidate by the storage node list generation unit 206 may be performed as follows.
The storage node list generation unit 206 applies the node ID to each of the storage nodes 200 identified by the node ID included in the operation notification held in the operation notification storage unit 205 according to a predetermined algorithm (for example, in ascending order or descending order). ) Give rankings to line up. The storage node list generation unit 206 stores information in which the node IDs included in the operation notifications held in the operation notification storage unit 205 are arranged so that the assigned order decreases from the beginning to the end. Generate as a list candidate.
 この場合、動作通知記憶部205に保持されている動作通知が変化しないとき、生成される保存ノードリスト候補も変化しない。従って、複数の異なるリスト生成時点にてそれぞれ生成される複数の保存ノードリスト候補が一致することがある。しかしながら、第1実施形態の第2変形例の情報処理システム1においては、第2分散データ群に対するノード群の決定に用いられる情報順位関係が、時間の経過に伴って変化する。従って、時間の経過に伴って選択される装置群を変化させることができる。 In this case, when the operation notification held in the operation notification storage unit 205 does not change, the generated storage node list candidate does not change. Therefore, a plurality of storage node list candidates respectively generated at a plurality of different list generation times may match. However, in the information processing system 1 of the second modified example of the first embodiment, the information rank relationship used for determining the node group for the second distributed data group changes with the passage of time. Therefore, it is possible to change the selected device group with the passage of time.
 この場合、保存ノードリスト間で、情報は変化しにくい。従って、情報処理システム1は、複数の保存ノードリストとして、当該複数の保存ノードリストに含まれる1つの保存ノードリストと、当該1つの保存ノードリストと当該複数の保存ノードリストに含まれる他の保存ノードリストのそれぞれとの差を表す情報と、を伝達することが好適である。これにより、保存ノードリストを伝達するための通信の負荷を抑制できる。 In this case, information is unlikely to change between the saved node lists. Therefore, the information processing system 1 includes, as a plurality of storage node lists, one storage node list included in the plurality of storage node lists, and the one storage node list and other storage nodes included in the plurality of storage node lists. It is preferable to transmit information representing a difference from each node list. Thereby, the communication load for transmitting the storage node list can be suppressed.
<第1実施形態の第3変形例>
 次に、第1実施形態の第3変形例の情報処理システムについて説明する。第1実施形態の第3変形例の情報処理システムは、第1実施形態の情報処理システムに対して、第2データIDとしてユーザIDと異なる識別情報を用いる点において相違している。以下、相違点を中心として説明する。なお、第1実施形態の第3変形例の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<Third Modification of First Embodiment>
Next, an information processing system according to a third modification of the first embodiment will be described. The information processing system of the third modified example of the first embodiment is different from the information processing system of the first embodiment in that identification information different from the user ID is used as the second data ID. Hereinafter, the difference will be mainly described. In addition, in description of the 3rd modification of 1st Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、分散データ保存要求送信部106により送信される第2分散データ保存要求に含まれる第2データIDは、ワンタイム識別子(換言すると、ワンタイムID)である。本例では、ワンタイムIDは、識別情報を構成する。分散データ保存要求送信部106は、当該第2分散データ保存要求の基となったユーザデータ保存要求と関連付けられた入力情報に含まれるユーザID及びパスワードと、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点と、に基づいて当該ワンタイムIDを生成する。 In this example, the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 is a one-time identifier (in other words, a one-time ID). In this example, the one-time ID constitutes identification information. The distributed data storage request transmitting unit 106 determines the user ID and password included in the input information associated with the user data storage request that is the basis of the second distributed data storage request, and the node group for the second distributed data group The one-time ID is generated based on the list generation time point associated with the storage node list used in the above.
 具体的には、分散データ保存要求送信部106は、当該リスト生成時点を表す時点情報を当該入力情報に付加した情報の、所定のハッシュ関数に対するハッシュ値を当該ワンタイムIDとして用いる。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。 Specifically, the distributed data storage request transmission unit 106 uses a hash value for a predetermined hash function of information obtained by adding time information representing the list generation time to the input information as the one-time ID. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
 同様に、提供データ取得部108により送信される第2分散データ提供要求に含まれる第2データIDも、ワンタイムIDである。提供データ取得部108は、分散データ保存要求送信部106と同様に、当該第2分散データ提供要求の基となったユーザデータ復元要求と関連付けられた入力情報に含まれるユーザID及びパスワードと、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点と、に基づいて当該ワンタイムIDを生成する。 Similarly, the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 is also a one-time ID. Similar to the distributed data storage request transmission unit 106, the provided data acquisition unit 108 includes the user ID and password included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request, the first The one-time ID is generated based on the list generation time point associated with the storage node list used to determine the node group for the two distributed data groups.
 具体的には、提供データ取得部108は、分散データ保存要求送信部106と同様に、当該リスト生成時点を表す時点情報を当該入力情報に付加した情報の、上記ハッシュ関数に対するハッシュ値を当該ワンタイムIDとして用いる。 Specifically, the provided data acquisition unit 108, like the distributed data storage request transmission unit 106, obtains the hash value for the hash function of the information obtained by adding the time information indicating the list generation time to the input information. Used as a time ID.
 以上、説明したように、第1実施形態の第3変形例の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第1実施形態の第3変形例の情報処理システム1は、選択された装置群と関連付けられた時点に基づいて識別情報(本例では、ワンタイムID)を生成するとともに、N個の分散データのそれぞれを、生成された識別情報と関連付けて保存する。
As described above, the information processing system 1 according to the third modification of the first embodiment can exhibit the same operations and effects as the information processing system 1 according to the first embodiment.
Furthermore, the information processing system 1 according to the third modification of the first embodiment generates identification information (one-time ID in this example) based on the time point associated with the selected device group, and includes N pieces of information. Each of the distributed data is stored in association with the generated identification information.
 これによれば、例えば、ユーザを識別する情報と関連付けて秘密データを保存する場合と比較して、秘密データの保存を要求したユーザが特定される確率を低減できる。従って、例えば、ユーザを識別する情報に基づいて秘密データが暗号化されている場合には、秘密データが復号される確率を低減できる。 According to this, for example, the probability that the user who requested the storage of the secret data is specified can be reduced as compared with the case of storing the secret data in association with the information for identifying the user. Therefore, for example, when the secret data is encrypted based on the information for identifying the user, the probability that the secret data is decrypted can be reduced.
 なお、ワンタイムIDは、リスト生成時点を表す時点情報を入力情報に付加した情報の、上記ハッシュ関数に対するハッシュ値を、第1のパラメータにより除した場合における剰余であってよい。第1のパラメータは、正の整数である。本例では、第1のパラメータは、情報処理システム1において予め定められる。これによれば、ワンタイムIDを生成する基となった情報が特定される確率を低減できる。 Note that the one-time ID may be a remainder when the hash value for the hash function of the information obtained by adding the time information indicating the list generation time to the input information is divided by the first parameter. The first parameter is a positive integer. In the present example, the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
 なお、第1のパラメータは、変動してもよい。この場合、第1のパラメータは、保存ノードリストに含まれるノードIDの数が大きくなるほど大きくなるように定められてよい。この場合、例えば、保存ノードリストに含まれるノードIDの数と、第1のパラメータと、の関係を定める第1のパラメータ関数が、情報処理システム1において予め定められる。 Note that the first parameter may vary. In this case, the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases. In this case, for example, a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
<第1実施形態の第4変形例>
 次に、第1実施形態の第4変形例の情報処理システムについて説明する。第1実施形態の第4変形例の情報処理システムは、第1実施形態の情報処理システムに対して、第2データIDとしてユーザIDと異なる識別情報を用いる点において相違している。以下、相違点を中心として説明する。なお、第1実施形態の第4変形例の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<Fourth Modification of First Embodiment>
Next, an information processing system according to a fourth modification of the first embodiment will be described. The information processing system of the fourth modified example of the first embodiment is different from the information processing system of the first embodiment in that identification information different from the user ID is used as the second data ID. Hereinafter, the difference will be mainly described. In addition, in description of the 4th modification of 1st Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、分散データ保存要求送信部106により送信される第2分散データ保存要求に含まれる第2データIDは、ワンタイム識別子(換言すると、ワンタイムID)である。本例では、ワンタイムIDは、識別情報を構成する。分散データ保存要求送信部106は、第2分散データ群に対するノード群に含まれるN個の保存ノード200に対して、保存ノード200毎に異なる情報をワンタイムIDとして生成する。 In this example, the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 is a one-time identifier (in other words, a one-time ID). In this example, the one-time ID constitutes identification information. The distributed data storage request transmission unit 106 generates different information for each storage node 200 as a one-time ID for the N storage nodes 200 included in the node group for the second distributed data group.
 本例では、第2分散データ群に対するノード群に含まれるN個の保存ノード200のうちのn番目の保存ノード200に対するワンタイムIDは、当該N個の保存ノード200のうちのr番目の保存ノード200を識別するノードIDを、当該第2分散データ保存要求の基となったユーザデータ保存要求と関連付けられた入力情報に含まれるユーザIDに付加した情報の、所定のハッシュ関数に対するハッシュ値である。rは、nが1からN-1の各整数を表す場合、n+1を表すとともに、nがNを表す場合、1を表す。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。 In this example, the one-time ID for the nth storage node 200 among the N storage nodes 200 included in the node group for the second distributed data group is the rth storage of the N storage nodes 200. The hash value for the predetermined hash function of the information added to the user ID included in the input information associated with the user data storage request that is the basis of the second distributed data storage request is the node ID that identifies the node 200 is there. r represents n + 1 when n represents each integer from 1 to N-1, and represents 1 when n represents N. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
 同様に、提供データ取得部108により送信される第2分散データ提供要求に含まれる第2データIDも、ワンタイムIDである。提供データ取得部108は、分散データ保存要求送信部106と同様に、第2分散データ群に対するノード群に含まれるN個の保存ノード200に対して、保存ノード200毎に異なる情報をワンタイムIDとして生成する。 Similarly, the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 is also a one-time ID. Similar to the distributed data storage request transmission unit 106, the provided data acquisition unit 108 provides different information for each storage node 200 to the N storage nodes 200 included in the node group for the second distributed data group as a one-time ID. Generate as
 具体的には、提供データ取得部108は、分散データ保存要求送信部106と同様に、当該N個の保存ノード200のうちのn番目の保存ノード200に対するワンタイムIDとして、当該N個の保存ノード200のうちのr番目の保存ノード200を識別するノードIDを、当該第2分散データ提供要求の基となったユーザデータ復元要求と関連付けられた入力情報に含まれるユーザIDに付加した情報の、上記ハッシュ関数に対するハッシュ値を用いる。 Specifically, the provided data acquisition unit 108, like the distributed data storage request transmission unit 106, uses the N storage data as a one-time ID for the nth storage node 200 among the N storage nodes 200. The node ID for identifying the r-th storage node 200 among the nodes 200 is the information added to the user ID included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request. The hash value for the hash function is used.
 以上、説明したように、第1実施形態の第4変形例の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第1実施形態の第4変形例の情報処理システム1は、選択された装置群と関連付けられた時点に基づいて識別情報(本例では、ワンタイムID)を生成するとともに、N個の分散データのそれぞれを、生成された識別情報と関連付けて保存する。
As described above, the information processing system 1 of the fourth modification example of the first embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment.
Furthermore, the information processing system 1 according to the fourth modified example of the first embodiment generates identification information (in this example, a one-time ID) based on the time point associated with the selected device group, and includes N pieces of information. Each of the distributed data is stored in association with the generated identification information.
 これによれば、例えば、ユーザを識別する情報と関連付けて秘密データを保存する場合と比較して、秘密データの保存を要求したユーザが特定される確率を低減できる。従って、例えば、ユーザを識別する情報に基づいて秘密データが暗号化されている場合には、秘密データが復号される確率を低減できる。 According to this, for example, the probability that the user who requested the storage of the secret data is specified can be reduced as compared with the case of storing the secret data in association with the information for identifying the user. Therefore, for example, when the secret data is encrypted based on the information for identifying the user, the probability that the secret data is decrypted can be reduced.
 更に、第1実施形態の第4変形例の情報処理システム1は、選択された装置群に含まれるN個の記憶装置12に対して、記憶装置12毎に異なる情報を識別情報として生成する。 Furthermore, the information processing system 1 according to the fourth modification of the first embodiment generates different information for each of the storage devices 12 as identification information for the N storage devices 12 included in the selected device group.
 これによれば、秘密データを復元するために用いられる分散データが、識別情報に基づいて特定される確率を低減できる。 According to this, the probability that the distributed data used for restoring the secret data is specified based on the identification information can be reduced.
 なお、上記N個の保存ノード200のうちのn番目の保存ノード200に対するワンタイムIDは、当該N個の保存ノード200のうちのr番目の保存ノード200を識別するノードIDを、入力情報に含まれるユーザIDに付加した情報の、上記ハッシュ関数に対するハッシュ値を、第1のパラメータにより除した場合における剰余であってよい。第1のパラメータは、正の整数である。本例では、第1のパラメータは、情報処理システム1において予め定められる。これによれば、ワンタイムIDを生成する基となった情報が特定される確率を低減できる。 The one-time ID for the n-th storage node 200 among the N storage nodes 200 is a node ID for identifying the r-th storage node 200 among the N storage nodes 200 as input information. It may be a remainder when the hash value for the hash function of the information added to the included user ID is divided by the first parameter. The first parameter is a positive integer. In the present example, the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
 なお、第1のパラメータは、変動してもよい。この場合、第1のパラメータは、保存ノードリストに含まれるノードIDの数が大きくなるほど大きくなるように定められてよい。この場合、例えば、保存ノードリストに含まれるノードIDの数と、第1のパラメータと、の関係を定める第1のパラメータ関数が、情報処理システム1において予め定められる。 Note that the first parameter may vary. In this case, the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases. In this case, for example, a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
<第2実施形態>
 次に、第2実施形態の情報処理システムについて説明する。第2実施形態の情報処理システムは、第1実施形態の情報処理システムに対して、ユーザの認証に用いられるパスワードの強度に応じて、秘密データの復元に要する時間が変化する点において相違している。以下、相違点を中心として説明する。なお、第2実施形態の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
Second Embodiment
Next, an information processing system according to the second embodiment will be described. The information processing system according to the second embodiment is different from the information processing system according to the first embodiment in that the time required for restoring the secret data varies depending on the strength of the password used for user authentication. Yes. Hereinafter, the difference will be mainly described. In addition, in description of 2nd Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、ノード群決定部104による、ユーザデータ保存要求が受け付けられた場合における第2分散データ群に対するノード群の決定は、以下のようにして行なわれる。 In this example, the determination of the node group for the second distributed data group when the user data storage request is accepted by the node group determination unit 104 is performed as follows.
 ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合、当該ユーザデータ保存要求と関連付けられた入力情報に含まれるパスワードに基づいて候補数Cを決定する。候補数Cは、Nよりも大きく且つM以下の範囲において、パスワードが特定されやすい(換言すると、パスワードの強度が低い)ほど多い数に設定される。 When the user data storage request is accepted, the node group determination unit 104 determines the number of candidates C based on the password included in the input information associated with the user data storage request. The number of candidates C is set to a larger number as the password is more easily identified (in other words, the strength of the password is lower) in a range larger than N and smaller than or equal to M.
 本例では、候補数Cの決定は、以下のようにして行なわれる。ノード群決定部104は、パスワードに基づいて、当該パスワードが特定されやすくなるほど小さくなる値を有するパラメータを算出する。
 例えば、ノード群決定部104は、パスワードを構成する文字の数が、所定の閾値以上である場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードが数字を含む場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードがアルファベットの小文字を含む場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードがアルファベットの大文字を含む場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードが記号(例えば、数字、及び、アルファベット以外の文字)を含む場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードがユーザIDに含まれる文字列を含まない場合、当該パラメータに所定の増分値を加算する。また、例えば、ノード群決定部104は、パスワードが辞書に含まれる文字列を含まない場合、当該パラメータに所定の増分値を加算する。
In this example, the number of candidates C is determined as follows. Based on the password, the node group determination unit 104 calculates a parameter having a value that decreases as the password is easily identified.
For example, when the number of characters constituting the password is equal to or greater than a predetermined threshold, the node group determining unit 104 adds a predetermined increment value to the parameter. For example, when the password includes a number, the node group determination unit 104 adds a predetermined increment value to the parameter. For example, the node group determination unit 104 adds a predetermined increment value to the parameter when the password includes lower case letters. For example, when the password includes alphabetic capital letters, the node group determination unit 104 adds a predetermined increment value to the parameter. For example, the node group determination unit 104 adds a predetermined increment value to the parameter when the password includes a symbol (for example, a number or a character other than the alphabet). Further, for example, when the password does not include the character string included in the user ID, the node group determination unit 104 adds a predetermined increment value to the parameter. For example, when the password does not include a character string included in the dictionary, the node group determination unit 104 adds a predetermined increment value to the parameter.
 ノード群決定部104は、Nよりも大きく且つM以下の範囲において、算出されたパラメータが小さくなるほど多くなるように、候補数Cを決定する。これにより、候補数Cの決定が行なわれる。 The node group determination unit 104 determines the number of candidates C in a range larger than N and equal to or smaller than M so that the number of candidates increases as the calculated parameter decreases. Thereby, the number of candidates C is determined.
 ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストと、決定された候補数Cの異なる順位と入力情報との予め定められた情報順位関係と、当該ユーザデータ保存要求と関連付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中から、決定された候補数CのノードIDを選択(換言すると、決定)する。選択された候補数CのノードIDによりそれぞれ識別される候補数Cの保存ノード200は、候補ノード群を構成する。 The node group determination unit 104 determines in advance the storage node list acquired by the storage node list acquisition unit 103 when the user data storage request is accepted, and the ranks and input information in which the determined candidate number C is different. Based on the information ranking relationship and the input information associated with the user data storage request, the node ID of the determined candidate number C is selected from the node IDs included in the storage node list (in other words, decide. The candidate number C storage nodes 200 respectively identified by the selected candidate number C node IDs constitute a candidate node group.
 具体的には、ノード群決定部104は、当該ユーザデータ保存要求と関連付けられた入力情報と、当該情報順位関係と、に基づいて、候補数Cの異なる順位を取得し、当該保存ノードリストに含まれるノードIDの中から、取得された候補数Cの順位にそれぞれ対応する候補数CのノードIDを選択する。 Specifically, the node group determination unit 104 acquires different ranks of the candidate number C based on the input information associated with the user data storage request and the information rank relationship, and stores them in the storage node list. From the included node IDs, node IDs with candidate numbers C corresponding to the ranks of acquired candidate numbers C are selected.
 本例では、情報順位関係において、候補数Cの順位のうちのc番目の順位は、cを表す情報を入力情報に付加した情報の、ハッシュ値が整数である所定のハッシュ関数に対するハッシュ値を、保存ノードリストに含まれる保存ノード200の数により除した場合における剰余に1を加えた値と等しいと定められる。cは、1からCの各整数を表す。 In this example, in the information rank relationship, the c-th rank among the ranks of the candidate number C is a hash value for a predetermined hash function having an integer hash value of information obtained by adding information representing c to the input information. , It is determined to be equal to the value obtained by adding 1 to the remainder when divided by the number of storage nodes 200 included in the storage node list. c represents an integer of 1 to C.
 更に、ノード群決定部104は、選択された候補数CのノードIDの中から、N個のノードIDをランダムに選択する。加えて、ノード群決定部104は、ランダムに選択されたN個のノードIDによりそれぞれ識別されるN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する。これにより、第2分散データ群に対するノード群の決定が行なわれる。 Further, the node group determination unit 104 randomly selects N node IDs from the selected number C of node IDs. In addition, the node group determination unit 104 determines a node group including N storage nodes 200 respectively identified by N node IDs selected at random as a node group for the second distributed data group. As a result, the node group for the second distributed data group is determined.
 また、ノード群決定部104は、ユーザデータ復元要求が受け付けられた場合、ユーザデータ保存要求が受け付けられた場合と同様に、当該ユーザデータ復元要求と関連付けられた入力情報に含まれるパスワードに基づいて候補数Cを決定する。パスワードと、ノード群決定部104により決定される候補数Cと、の関係は、ユーザデータ保存要求が受け付けられた場合と、ユーザデータ復元要求が受け付けられた場合と、に共通する。 In addition, when the user data restoration request is accepted, the node group determination unit 104 is based on the password included in the input information associated with the user data restoration request, similarly to the case where the user data restoration request is accepted. The candidate number C is determined. The relationship between the password and the number of candidates C determined by the node group determination unit 104 is common when a user data storage request is accepted and when a user data restoration request is accepted.
 ノード群決定部104は、ユーザデータ保存要求が受け付けられた場合と同様に、ユーザデータ復元要求が受け付けられた場合に保存ノードリスト取得部103により取得された保存ノードリストと、上記情報順位関係と、当該ユーザデータ復元要求と関連付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中から、決定された候補数CのノードIDを選択(換言すると、決定)する。選択された候補数CのノードIDによりそれぞれ識別される候補数Cの保存ノード200は、候補ノード群を構成する。 Similarly to the case where the user data storage request is received, the node group determination unit 104 determines the storage node list acquired by the storage node list acquisition unit 103 when the user data restoration request is received, and the information rank relationship. Based on the input information associated with the user data restoration request, the node ID of the determined candidate number C is selected (in other words, determined) from the node IDs included in the storage node list. The candidate number C storage nodes 200 respectively identified by the selected candidate number C node IDs constitute a candidate node group.
 本例では、提供データ取得部108は、ユーザデータ復元要求が受け付けられた場合にノード群決定部104により決定された、候補ノード群に含まれる候補数Cの保存ノード200に、候補数Cの第2分散データ提供要求をそれぞれ送信する。なお、提供データ取得部108は、ユーザデータ復元要求が受け付けられた場合にノード群決定部104により決定された、候補ノード群に含まれる候補数Cの保存ノード200のうちの、一部の保存ノード200のそれぞれに、第2分散データ提供要求を送信してもよい。この場合、提供データ取得部108は、秘密データの復元に失敗した場合に、候補ノード群に含まれる候補数Cの保存ノード200のうちの残余の保存ノード200に第2分散データ提供要求を送信してよい。 In this example, the provided data acquisition unit 108 adds the number of candidate C to the storage node 200 of the number C of candidates included in the candidate node group determined by the node group determination unit 104 when the user data restoration request is received. Each second distributed data provision request is transmitted. The provided data acquisition unit 108 stores a part of the storage nodes 200 of the number C of candidates included in the candidate node group determined by the node group determination unit 104 when the user data restoration request is received. The second distributed data provision request may be transmitted to each of the nodes 200. In this case, if the restoration of the secret data fails, the provision data acquisition unit 108 transmits a second distributed data provision request to the remaining storage nodes 200 among the number C of candidate storage nodes 200 included in the candidate node group. You can do it.
 提供データ取得部108は、送信された第2分散データ提供要求に応じて保存ノード200によって送信された(換言すると、提供された)提供データを受信する。第2分散データ提供要求に対して受信された提供データは、第2提供データ群を構成する。これにより、提供データ取得部108は、第2提供データ群を取得する。なお、保存ノード200は、第2分散データ提供要求に応じて提供データを送信しないことがある。従って、第2提供データ群を構成する提供データの数は、Cよりも小さいことがある。また、保存ノード200は、第2分散データ提供要求に応じて所定のダミーデータを送信することがある。従って、第2提供データ群には、第2分散データ群を構成する分散データと異なるデータが含まれることがある。 The provided data acquisition unit 108 receives the provided data transmitted (in other words, provided) by the storage node 200 in response to the transmitted second distributed data provision request. The provision data received in response to the second distributed data provision request constitutes a second provision data group. Thereby, the provision data acquisition unit 108 acquires the second provision data group. Note that the storage node 200 may not transmit the provision data in response to the second distributed data provision request. Therefore, the number of provision data constituting the second provision data group may be smaller than C. In addition, the storage node 200 may transmit predetermined dummy data in response to the second distributed data provision request. Accordingly, the second provided data group may include data different from the distributed data that constitutes the second distributed data group.
 秘密データ復元部109は、ノード群決定部104により決定された候補ノード群に含まれる候補数Cの保存ノード200から選択されるN個の保存ノード200の組み合わせのすべてを生成する。N個の保存ノード200の組み合わせのそれぞれは、ノード群候補を構成する。換言すると、各ノード群候補は、N個の保存ノード200により構成される。 The secret data restoration unit 109 generates all the combinations of the N storage nodes 200 selected from the number C of candidate storage nodes 200 included in the candidate node group determined by the node group determination unit 104. Each combination of N storage nodes 200 constitutes a node group candidate. In other words, each node group candidate is configured by N storage nodes 200.
 秘密データ復元部109は、生成されたノード群候補のそれぞれに対して、提供データ取得部108により取得された第2提供データ群を構成する提供データのうちの、当該ノード群候補に含まれるN個の保存ノード200により提供された提供データである分散データから、秘密分散法に従って、秘密データを復元する。 The secret data restoration unit 109 includes, for each of the generated node group candidates, N included in the node group candidates included in the provision data constituting the second provision data group acquired by the provision data acquisition unit 108. The secret data is restored from the distributed data that is the provided data provided by the storage nodes 200 according to the secret sharing method.
 次に、第2実施形態の情報処理システム1の動作について説明を加える。
 ユーザノード10-1は、図5の処理に代えて、図5の処理におけるステップS111の処理を、図7のステップS121からステップS123までの処理に置換した処理を実行する。
Next, the operation of the information processing system 1 according to the second embodiment will be described.
Instead of the process of FIG. 5, the user node 10-1 executes a process in which the process of step S111 in the process of FIG. 5 is replaced with the process from step S121 to step S123 of FIG.
 具体的には、ユーザノード10-1は、図5のステップS110の処理を実行した後、図5のステップS101にて受け付けられた入力情報に含まれるパスワードに基づいて候補数Cを決定する(図7のステップS121)。 Specifically, after executing the process of step S110 in FIG. 5, the user node 10-1 determines the number of candidates C based on the password included in the input information received in step S101 of FIG. Step S121 in FIG.
 次いで、ユーザノード10-1は、図5のステップS105にて保持された保存ノードリストと、図7のステップS121にて決定された候補数Cと、に基づいて、図5のステップS110にて生成された第2分散データ群に対する候補ノード群を決定する(図7のステップS122)。 Next, the user node 10-1 proceeds to step S110 in FIG. 5 based on the storage node list held in step S105 in FIG. 5 and the candidate number C determined in step S121 in FIG. A candidate node group for the generated second distributed data group is determined (step S122 in FIG. 7).
 本例では、ユーザノード10-1は、図5のステップS105にて保持された保存ノードリストと、上記情報順位関係と、図5のステップS101にて受け付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中から、図7のステップS121にて決定された候補数CのノードIDを選択することにより候補ノード群を決定する。 In this example, the user node 10-1 is based on the storage node list held in step S105 in FIG. 5, the information ranking relationship, and the input information received in step S101 in FIG. A candidate node group is determined by selecting the node ID of the candidate number C determined in step S121 of FIG. 7 from the node IDs included in the storage node list.
 次いで、ユーザノード10-1は、決定された候補ノード群を構成する候補数Cの保存ノード200からランダムにN個の保存ノード200を選択し、選択されたN個の保存ノード200からなるノード群を、第2分散データ群に対するノード群として決定する(図7のステップS123)。その後、ユーザノード10-1は、図5のステップS112以降の処理を実行する。 Next, the user node 10-1 randomly selects N storage nodes 200 from the number C of candidate storage nodes 200 constituting the determined candidate node group, and is a node including the selected N storage nodes 200. The group is determined as a node group for the second distributed data group (step S123 in FIG. 7). Thereafter, the user node 10-1 executes the processing after step S112 in FIG.
 また、ユーザノード10-1は、図6の処理に代えて、図6の処理におけるステップS204からステップS211までの処理を、図8のステップS221からステップS232までの処理に置換した処理を実行する。 Further, the user node 10-1 executes processing in which the processing from step S204 to step S211 in the processing in FIG. 6 is replaced with the processing from step S221 to step S232 in FIG. 8 instead of the processing in FIG. .
 具体的には、ユーザノード10-1は、図6のステップS203の処理を実行した後、図6のステップS201にて受け付けられた入力情報に含まれるパスワードに基づいて候補数Cを決定する(図8のステップS221)。次いで、ユーザノード10-1は、図6のステップS204及びステップS205と同様に、図8のステップS222及びステップS223の処理を実行する。 Specifically, after executing the process of step S203 of FIG. 6, the user node 10-1 determines the number of candidates C based on the password included in the input information received in step S201 of FIG. Step S221 in FIG. Next, the user node 10-1 executes the processing of Step S222 and Step S223 of FIG. 8 in the same manner as Step S204 and Step S205 of FIG.
 そして、ユーザノード10-1は、図7のステップS122と同様に、図8のステップS223にて保持された保存ノードリストと、図8のステップS221にて決定された候補数Cと、に基づいて、第2分散データ群に対する候補ノード群を決定する(図8のステップS224)。 Then, similarly to step S122 in FIG. 7, the user node 10-1 is based on the storage node list held in step S223 in FIG. 8 and the candidate number C determined in step S221 in FIG. Thus, a candidate node group for the second distributed data group is determined (step S224 in FIG. 8).
 本例では、ユーザノード10-1は、図8のステップS223にて保持された保存ノードリストと、上記情報順位関係と、図6のステップS201にて受け付けられた入力情報と、に基づいて、当該保存ノードリストに含まれるノードIDの中から、図8のステップS221にて決定された候補数CのノードIDを選択することにより候補ノード群を決定する。 In this example, the user node 10-1 is based on the storage node list held in step S223 in FIG. 8, the information ranking relationship, and the input information received in step S201 in FIG. A candidate node group is determined by selecting the node ID of the number of candidates C determined in step S221 in FIG. 8 from the node IDs included in the storage node list.
 次いで、ユーザノード10-1は、決定された候補ノード群に含まれる候補数Cの保存ノード200に、候補数Cの第2分散データ提供要求をそれぞれ送信する(図8のステップS225)。 Next, the user node 10-1 transmits the second distributed data provision request for the candidate number C to the storage node 200 for the candidate number C included in the determined candidate node group (step S225 in FIG. 8).
 候補ノード群に含まれる候補数Cの保存ノード200のそれぞれは、ユーザノード10-1から第2分散データ提供要求を受信し、受信された第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが記憶装置12に保持されているか否かを判定する。 Each of the number C of candidate storage nodes 200 included in the candidate node group receives the second distributed data provision request from the user node 10-1, and receives the second data ID included in the received second distributed data provision request and It is determined whether or not the associated distributed data is held in the storage device 12.
 候補ノード群に含まれる候補数Cの保存ノード200のそれぞれは、当該分散データが記憶装置12に保持されている場合、当該分散データをユーザノード10-1へ送信し、当該分散データが記憶装置12に保持されていない場合、ユーザノード10-1へダミーデータを送信する。 When the distributed data is stored in the storage device 12, each of the storage nodes 200 having the number of candidates C included in the candidate node group transmits the distributed data to the user node 10-1, and the distributed data is stored in the storage device. If not, the dummy data is transmitted to the user node 10-1.
 その後、ユーザノード10-1は、図8のステップS225にて送信された第2分散データ提供要求に応じて保存ノード200によって送信された提供データを受信する(図8のステップS226)。上述したように、第2分散データ提供要求に対して受信された提供データは、第2提供データ群を構成する。 Thereafter, the user node 10-1 receives the provision data transmitted by the storage node 200 in response to the second distributed data provision request transmitted in step S225 of FIG. 8 (step S226 of FIG. 8). As described above, the provision data received in response to the second distributed data provision request constitutes a second provision data group.
 次いで、ユーザノード10-1は、図8のステップS224にて決定された候補ノード群に含まれる候補数Cの保存ノード200から選択されるN個の保存ノード200の組み合わせのすべてを生成する(図8のステップS227)。上述したように、当該組み合わせのそれぞれは、ノード群候補を構成する。 Next, the user node 10-1 generates all the combinations of N storage nodes 200 selected from the number C of candidate storage nodes 200 included in the candidate node group determined in step S224 of FIG. Step S227 in FIG. As described above, each of the combinations constitutes a node group candidate.
 そして、ユーザノード10-1は、生成されたノード群候補のそれぞれに対するループ処理を順次に実行する。当該ループ処理の始端及び終端は、それぞれ、図8のステップS228及びステップS231である。なお、ユーザノード10-1は、複数のループ処理を並列に実行してもよい。 Then, the user node 10-1 sequentially executes a loop process for each of the generated node group candidates. The start and end of the loop processing are step S228 and step S231 in FIG. 8, respectively. Note that the user node 10-1 may execute a plurality of loop processes in parallel.
 ループ処理において、ユーザノード10-1は、図8のステップS226にて受信された第2提供データ群を構成する提供データのうちの、当該ループ処理の対象であるノード群候補に含まれるN個の保存ノード200により提供された提供データである分散データから、秘密分散法に従って、秘密データであるメタデータを復元する(図8のステップS229)。 In the loop processing, the user node 10-1 determines that N pieces of provision data included in the second provision data group received in step S226 in FIG. The metadata that is the secret data is restored from the distributed data that is the provided data provided by the storage node 200 according to the secret sharing method (step S229 in FIG. 8).
 次いで、ループ処理において、ユーザノード10-1は、図8のステップS229にてメタデータの復元が成功したか否かを判定する(図8のステップS230)。
 メタデータの復元が成功した場合、ユーザノード10-1は、「Yes」と判定し、生成されたノード群候補のそれぞれに対するループ処理のすべてを終了し、図6のステップS212以降の処理を実行する。
Next, in the loop processing, the user node 10-1 determines whether or not the metadata restoration has succeeded in step S229 in FIG. 8 (step S230 in FIG. 8).
When the restoration of the metadata is successful, the user node 10-1 determines “Yes”, ends all the loop processing for each of the generated node group candidates, and executes the processing after step S212 in FIG. To do.
 メタデータの復元が失敗した場合、ユーザノード10-1は、「No」と判定し、図8のステップS231へ進む。
 このようにして、ユーザノード10-1は、生成されたノード群候補のそれぞれに対するループ処理を実行する。
If the restoration of the metadata fails, the user node 10-1 determines “No” and proceeds to step S231 in FIG.
In this way, the user node 10-1 executes a loop process for each of the generated node group candidates.
 生成されたノード群候補のそれぞれに対するループ処理が終了するまでに、メタデータの復元が成功しなかった場合、ユーザノード10-1は、図8のステップS222にて送信された最新の保存ノードリスト要求に含まれる時点情報が表すリスト生成時点(換言すると、メタデータの復元の失敗の基となった保存ノードリストと関連付けられたリスト生成時点)よりも、上記変化時間だけ前のリスト生成時点を取得する(図8のステップS232)。 If the restoration of the metadata is not successful before the loop processing for each of the generated node group candidates is completed, the user node 10-1 displays the latest saved node list transmitted in step S222 in FIG. A list generation time point that is earlier than the change time than the list generation time point indicated by the point-in-time information included in the request (in other words, the list generation time point associated with the storage node list that caused the metadata restoration failure) Obtained (step S232 in FIG. 8).
 そして、ユーザノード10-1は、図8のステップS232にて取得されたリスト生成時点を表す時点情報を含む保存ノードリスト要求を、少なくとも1つの保存ノード200のそれぞれへ送信する(図8のステップS222)。次いで、ユーザノード10-1は、上述したように、図8のステップS223からステップS231までの処理を実行する。 Then, the user node 10-1 transmits a storage node list request including time point information representing the list generation time acquired in step S232 of FIG. 8 to each of at least one storage node 200 (step of FIG. 8). S222). Next, as described above, the user node 10-1 executes the processing from step S223 to step S231 in FIG.
 ユーザノード10-1は、図8のステップS229にてメタデータの復元が成功するまで、図8のステップS222からステップS232までの処理を繰り返し実行する。 The user node 10-1 repeatedly executes the processing from step S222 to step S232 in FIG. 8 until the metadata is successfully restored in step S229 in FIG.
 以上、説明したように、第2実施形態の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第2実施形態の情報処理システム1において、装置群(本例では、候補ノード群)に含まれる記憶装置12の数Cは、ユーザの認証に用いられるパスワードが特定されやすいほど多い数に設定される。
As described above, the information processing system 1 of the second embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment.
Further, in the information processing system 1 according to the second embodiment, the number C of storage devices 12 included in the device group (candidate node group in this example) is large enough that the password used for user authentication is easily specified. Is set.
 加えて、情報処理システム1は、選択された装置群(本例では、候補ノード群)に含まれるC個の記憶装置12の中からN個の記憶装置12をランダムに選択し、選択されたN個の記憶装置12に、生成されたN個の分散データをそれぞれ保存する。更に、情報処理システム1は、装置群(本例では、候補ノード群)に含まれるC個の記憶装置12のそれぞれに分散データを要求する。加えて、情報処理システム1は、当該要求に応じて提供されたC個の提供データから選択されるN個の提供データの組み合わせのそれぞれに対して、当該組み合わせを構成するN個の提供データから秘密分散法に従って秘密データを復元する。 In addition, the information processing system 1 randomly selects N storage devices 12 from the C storage devices 12 included in the selected device group (candidate node group in this example). The generated N pieces of distributed data are stored in the N storage devices 12, respectively. Further, the information processing system 1 requests distributed data from each of the C storage devices 12 included in the device group (candidate node group in this example). In addition, for each combination of N pieces of provided data selected from the C pieces of provided data provided in response to the request, the information processing system 1 uses the N pieces of provided data constituting the combination. Restore secret data according to the secret sharing method.
 これによれば、装置群(本例では、候補ノード群)に含まれる記憶装置12の数Cが、ユーザの認証に用いられるパスワードが特定されやすいほど多い数に設定される。従って、ユーザの認証に用いられるパスワードが特定されやすいほど、秘密データの復元が失敗しやすくなる。このため、ユーザの認証に用いられるパスワードが特定されやすいほど、秘密データを復元するために用いられる分散データの保存先を特定するために要する時間が長くなりやすい。これにより、ユーザの認証に用いられるパスワードとして、特定されにくいパスワードを設定する動機をユーザに与えることができる。また、ユーザの認証に用いられるパスワードが特定されやすい場合に、当該ユーザの秘密データを不正に取得することを意図するユーザによって、当該ユーザの秘密データを復元するために用いられる分散データの保存先を特定するための処理の負荷を増大できる。従って、当該ユーザの秘密データが不正に取得されることを抑制できる。 According to this, the number C of the storage devices 12 included in the device group (candidate node group in this example) is set to a large number so that the password used for user authentication can be easily specified. Therefore, the more easily the password used for user authentication is identified, the more likely it is that the restoration of secret data will fail. For this reason, the easier it is to specify the password used for user authentication, the longer the time required to specify the storage destination of the distributed data used to restore the secret data. Accordingly, it is possible to give the user a motive for setting a password that is difficult to specify as a password used for user authentication. In addition, when a password used for user authentication is easily specified, a storage destination of distributed data used for restoring the secret data of the user by a user who intends to illegally acquire the secret data of the user It is possible to increase the processing load for specifying the. Therefore, it is possible to prevent the secret data of the user from being illegally acquired.
<第3実施形態>
 次に、第3実施形態の情報処理システムについて説明する。第3実施形態の情報処理システムは、第1実施形態の情報処理システムに対して、所定の条件が満足された場合にユーザノードへの提供データの提供を禁止する点において相違している。以下、相違点を中心として説明する。なお、第3実施形態の説明において、第1実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<Third Embodiment>
Next, an information processing system according to the third embodiment will be described. The information processing system according to the third embodiment is different from the information processing system according to the first embodiment in that the provision of the provision data to the user node is prohibited when a predetermined condition is satisfied. Hereinafter, the difference will be mainly described. In addition, in description of 3rd Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 1st Embodiment is the same or substantially the same.
 本例では、ユーザノード100による、第2分散データ提供要求の送信は、送信元が公開された通信として行なわれる。第2分散データ提供要求の送信は、非匿名通信として行なわれてよく、例えば、TLS(Transport Layer Security)と呼ばれる技術を用いて行なわれてよい。 In this example, the transmission of the second distributed data provision request by the user node 100 is performed as communication in which the transmission source is disclosed. The transmission of the second distributed data provision request may be performed as non-anonymous communication, and for example, may be performed using a technique called TLS (Transport Layer Security).
 本例では、分散データ保存要求送信部106により送信される第2分散データ保存要求に含まれる第2データIDは、ワンタイムIDと、リスト生成時点を表す生成時点情報と、を含む。当該生成時点情報は、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点を表す。なお、第2データIDは、ワンタイムIDに代えて、ユーザIDを含んでいてもよい。また、第2データIDは、ワンタイムIDに代えて、入力情報を含んでいてもよい。
 本例では、生成時点情報は、時点を識別する時点識別情報を構成する。
In this example, the second data ID included in the second distributed data storage request transmitted by the distributed data storage request transmission unit 106 includes a one-time ID and generation time information indicating a list generation time. The generation time point information represents a list generation time point associated with the storage node list used for determining the node group for the second distributed data group. Note that the second data ID may include a user ID instead of the one-time ID. The second data ID may include input information instead of the one-time ID.
In this example, the generation time point information constitutes time point identification information for identifying the time point.
 分散データ保存要求送信部106は、当該第2分散データ保存要求の基となったユーザデータ保存要求と関連付けられた入力情報に含まれるユーザID及びパスワードと、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点を表す生成時点情報と、に基づいて当該ワンタイムIDを生成する。本例では、ワンタイムIDは、入力情報に基づいて生成された生成情報を構成する。 The distributed data storage request transmitting unit 106 determines the user ID and password included in the input information associated with the user data storage request that is the basis of the second distributed data storage request, and the node group for the second distributed data group The one-time ID is generated based on the generation time point information indicating the list generation time point associated with the storage node list used in the above. In this example, the one-time ID constitutes generation information generated based on the input information.
 具体的には、分散データ保存要求送信部106は、当該リスト生成時点を表す生成時点情報を当該入力情報に付加した情報の、所定のハッシュ関数に対するハッシュ値を当該ワンタイムIDとして用いる。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。 Specifically, the distributed data storage request transmission unit 106 uses, as the one-time ID, a hash value for a predetermined hash function of information obtained by adding generation time information representing the list generation time to the input information. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
 同様に、提供データ取得部108により送信される第2分散データ提供要求に含まれる第2データIDも、ワンタイムIDと、リスト生成時点を表す生成時点情報と、を含む。当該生成時点情報は、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点を表す。提供データ取得部108は、分散データ保存要求送信部106と同様に、当該第2分散データ提供要求の基となったユーザデータ復元要求と関連付けられた入力情報に含まれるユーザID及びパスワードと、第2分散データ群に対するノード群の決定に用いられた保存ノードリストに関連付けられたリスト生成時点を表す生成時点情報と、に基づいて当該ワンタイムIDを生成する。 Similarly, the second data ID included in the second distributed data provision request transmitted by the provision data acquisition unit 108 also includes a one-time ID and generation time information indicating the list generation time. The generation time point information represents a list generation time point associated with the storage node list used for determining the node group for the second distributed data group. Similar to the distributed data storage request transmission unit 106, the provided data acquisition unit 108 includes the user ID and password included in the input information associated with the user data restoration request that is the basis of the second distributed data provision request, the first The one-time ID is generated based on the generation time information indicating the list generation time associated with the storage node list used for determining the node group for the two distributed data groups.
 具体的には、提供データ取得部108は、分散データ保存要求送信部106と同様に、当該リスト生成時点を表す生成時点情報を当該入力情報に付加した情報の、上記ハッシュ関数に対するハッシュ値を当該ワンタイムIDとして用いる。 Specifically, the provided data acquisition unit 108, like the distributed data storage request transmission unit 106, obtains the hash value for the hash function of the information obtained by adding the generation time information indicating the list generation time to the input information. Used as a one-time ID.
 図9に表されるように、保存ノード200の機能は、第1実施形態の保存ノード200の機能に加えて、不保持通知処理部209と、不保持通知記憶部210と、拒否ノードリスト生成部211と、拒否ノードリスト記憶部212と、を含む。本例では、提供要求処理部203、及び、拒否ノードリスト生成部211は、禁止手段を構成する。 As illustrated in FIG. 9, the function of the storage node 200 includes a non-holding notification processing unit 209, a non-holding notification storage unit 210, and a reject node list generation in addition to the function of the storage node 200 of the first embodiment. Section 211 and a reject node list storage section 212. In this example, the provision request processing unit 203 and the reject node list generation unit 211 constitute a prohibition unit.
 不保持通知処理部209は、第2分散データ提供要求が受信された場合において、当該第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが分散データ記憶部202に保持されていないとき、不保持通知を他の保存ノード200のそれぞれへ送信するとともに、当該不保持通知を、当該不保持通知が送信された時点と関連付けて不保持通知記憶部210に記憶させる。 When the second distributed data provision request is received, the non-retention notification processing unit 209 holds the distributed data associated with the second data ID included in the second distributed data provision request in the distributed data storage unit 202. If not, a non-holding notification is transmitted to each of the other storage nodes 200, and the non-holding notification is stored in the non-holding notification storage unit 210 in association with the time when the non-holding notification is transmitted.
 不保持通知は、当該第2分散データ提供要求の送信元である情報処理装置10を識別する送信元識別情報と、当該第2分散データ提供要求に含まれる第2データIDに含まれるワンタイムID及び生成時点情報と、当該不保持通知が送信された時点を表す送信時点情報と、を含む。本例では、送信元識別情報は、IPアドレスである。なお、不保持通知は、ワンタイムIDに代えて、ワンタイムIDの、所定のハッシュ関数に対するハッシュ値を含んでいてもよい。また、不保持通知は、当該不保持通知を送信する情報処理装置10-pの電子署名を含んでいてもよい。 The non-holding notification includes transmission source identification information for identifying the information processing apparatus 10 that is a transmission source of the second distributed data provision request, and a one-time ID included in the second data ID included in the second distributed data provision request. And generation time information, and transmission time information indicating the time when the non-holding notification is transmitted. In this example, the transmission source identification information is an IP address. Note that the non-holding notification may include a hash value of a one-time ID for a predetermined hash function instead of the one-time ID. The non-holding notification may include an electronic signature of the information processing apparatus 10-p that transmits the non-holding notification.
 不保持通知処理部209は、情報処理装置10-pが保存ノード200として動作している場合、他の情報処理装置10-qにより送信された不保持通知を受信し、受信された不保持通知を、当該不保持通知が受信された時点と関連付けて不保持通知記憶部210に記憶させる。これにより、不保持通知記憶部210は、不保持通知を当該不保持通知が受信された時点と関連付けて保持する。 When the information processing device 10-p operates as the storage node 200, the non-holding notification processing unit 209 receives the non-holding notification transmitted by the other information processing device 10-q and receives the received non-holding notification. Are stored in the non-holding notification storage unit 210 in association with the time when the non-holding notification is received. Thereby, the non-holding notification storage unit 210 holds the non-holding notification in association with the time when the non-holding notification is received.
 なお、保存ノード200の不保持通知記憶部210に保持されている不保持通知は、他の保存ノード200の少なくとも1つにより共有されてよい。不保持通知の共有は、ブロックチェーンと呼ばれる技術を用いて実現されてよい。また、複数の保存ノード200により不保持通知が共有されている場合、不保持通知処理部209により送信される不保持通知の送信先は、不保持通知を共有する複数の保存ノード200の中から選択されてよい。 Note that the non-holding notification held in the non-holding notification storage unit 210 of the storage node 200 may be shared by at least one of the other storage nodes 200. Sharing of non-holding notifications may be realized using a technique called a block chain. Further, when a non-holding notification is shared by a plurality of storage nodes 200, the destination of the non-holding notification transmitted by the non-holding notification processing unit 209 is selected from among the plurality of storage nodes 200 sharing the non-holding notification. May be selected.
 拒否ノードリスト生成部211は、情報処理装置10-pが保存ノード200として動作している場合、所定の生成周期が経過する毎に、不保持通知記憶部210に保持されている不保持通知に基づいて拒否ノードリストを生成し、生成された拒否ノードリストを拒否ノードリスト記憶部212に記憶させる。これにより、拒否ノードリスト記憶部212は、拒否ノードリストを保持する。 When the information processing apparatus 10-p operates as the storage node 200, the refusal node list generation unit 211 notifies the non-holding notification held in the non-holding notification storage unit 210 every time a predetermined generation cycle elapses. Based on this, a reject node list is generated, and the generated reject node list is stored in the reject node list storage unit 212. Thereby, the reject node list storage unit 212 holds a reject node list.
 拒否ノードリストは、P個の情報処理装置10-1,…,10-Pのうちの、第2分散データ提供要求に対する保存ノード200からの提供データの提供が禁止された情報処理装置10を表す情報である。本例では、拒否ノードリストは、当該提供データの提供が禁止された情報処理装置10が有するIPアドレスを含む。 The refusal node list represents the information processing apparatus 10 that is prohibited from providing the provision data from the storage node 200 in response to the second distributed data provision request among the P information processing apparatuses 10-1, ..., 10-P. Information. In this example, the refusal node list includes an IP address of the information processing apparatus 10 that is prohibited from providing the provision data.
 本例では、拒否ノードリストの生成は、以下のようにして行なわれる。
 拒否ノードリスト生成部211は、不保持通知記憶部210に保持されている不保持通知のうちの、生成時点情報が共通し、ワンタイムIDが相違し、且つ、送信時点情報が表す時点が所定の判定期間に含まれる不保持通知の数を、送信元識別情報毎に取得する。本例では、当該判定期間は、現在の時点から、所定の判定時間だけ前の時点までの期間である。
In this example, the reject node list is generated as follows.
The refusal node list generation unit 211 has the same generation time point information among non-holding notifications held in the non-holding notification storage unit 210, the one-time ID is different, and the time point indicated by the transmission time point information is predetermined. The number of non-holding notifications included in the determination period is acquired for each transmission source identification information. In this example, the determination period is a period from the current time point to a time point that is a predetermined determination time before.
 拒否ノードリスト生成部211は、取得された不保持通知の数が、所定の閾値数以上である送信元識別情報を含む拒否ノードリストを生成する。これにより、拒否ノードリストの生成が行なわれる。 The reject node list generation unit 211 generates a reject node list including transmission source identification information in which the number of acquired non-holding notifications is equal to or greater than a predetermined threshold number. As a result, a reject node list is generated.
 なお、保存ノード200の拒否ノードリスト記憶部212に保持されている拒否ノードリストは、他の保存ノード200の少なくとも1つにより共有されてよい。拒否ノードリストの共有は、ブロックチェーンと呼ばれる技術を用いて実現されてよい。 Note that the reject node list held in the reject node list storage unit 212 of the storage node 200 may be shared by at least one of the other storage nodes 200. The sharing of the reject node list may be realized using a technique called a block chain.
 提供要求処理部203は、第2分散データ提供要求が受信された場合、当該第2分散データ提供要求の送信元であるユーザノード100を識別する送信元識別情報が、拒否ノードリスト要求処理部213により取得された拒否ノードリストに含まれるか否かを判定する。 When the second shared data provision request is received, the provision request processing unit 203 receives the source node identification information for identifying the user node 100 that is the transmission source of the second distributed data provision request, as a rejection node list request processing unit 213. It is determined whether or not it is included in the reject node list obtained by
 提供要求処理部203は、当該第2分散データ提供要求の送信元であるユーザノード100を識別する送信元識別情報が拒否ノードリストに含まれる場合、当該第2分散データ提供要求の送信元であるユーザノード100へダミーデータを送信する。ダミーデータの送信は、分散データの提供の禁止の一例である。なお、提供要求処理部203は、この場合、当該第2分散データ提供要求の送信元であるユーザノード100へデータを送信しなくてもよい。 The provision request processing unit 203 is the transmission source of the second distributed data provision request when the sender identification information for identifying the user node 100 that is the transmission source of the second distributed data provision request is included in the reject node list. Dummy data is transmitted to the user node 100. Transmission of dummy data is an example of prohibiting provision of distributed data. In this case, the provision request processing unit 203 may not transmit data to the user node 100 that is the transmission source of the second distributed data provision request.
 提供要求処理部203は、当該第2分散データ提供要求の送信元であるユーザノード100を識別する送信元識別情報が拒否ノードリストに含まれない場合、当該第2分散データ提供要求に含まれる第2データIDと関連付けて分散データ記憶部202に保持されている分散データを、当該第2分散データ提供要求の送信元であるユーザノード100へ送信する。 If the transmission source identification information for identifying the user node 100 that is the transmission source of the second distributed data provision request is not included in the reject node list, the provision request processing unit 203 includes the second distribution data provision request. The distributed data stored in the distributed data storage unit 202 in association with the two data IDs is transmitted to the user node 100 that is the transmission source of the second distributed data provision request.
 なお、提供要求処理部203は、第1分散データ提供要求が受信された場合においても、第2分散データ提供要求が受信された場合と同様に、拒否ノードリストに基づいて分散データの提供を禁止してもよい。 The provision request processing unit 203 prohibits provision of distributed data based on the reject node list even when the first distributed data provision request is received, as in the case where the second distributed data provision request is received. May be.
 次に、第3実施形態の情報処理システム1の動作について説明を加える。
 保存ノード10-wは、図10にフローチャートにより表される処理を、以下のようにして実行する。wは、2からPの各整数を表す。
Next, the operation of the information processing system 1 according to the third embodiment will be described.
The storage node 10-w executes the processing represented by the flowchart in FIG. 10 as follows. w represents an integer of 2 to P.
 保存ノード10-wは、第2分散データ提供要求をユーザノード10-1から受信するまで待機する(図10のステップS303の「No」ルート)。 The storage node 10-w waits until it receives the second distributed data provision request from the user node 10-1 (“No” route in step S303 in FIG. 10).
 その後、第2分散データ提供要求がユーザノード10-1から受信されると、保存ノード10-wは、「Yes」と判定し、送信元ノードが、保持された拒否ノードリストに存在するか否かを判定する(図10のステップS304)。送信元ノードは、第2分散データ提供要求の送信元である。本例では、送信元ノードは、ユーザノード10-1である。 Thereafter, when the second distributed data provision request is received from the user node 10-1, the storage node 10-w determines “Yes”, and whether or not the transmission source node exists in the held reject node list. Is determined (step S304 in FIG. 10). The transmission source node is a transmission source of the second distributed data provision request. In this example, the transmission source node is the user node 10-1.
 送信元ノードが拒否ノードリストに存在する場合、保存ノード10-wは、「Yes」と判定し、分散データ及び不保持通知をいずれも送信せずに、図10の処理を終了する。
 送信元ノードが拒否ノードリストに存在しない場合、保存ノード10-wは、「No」と判定し、図10のステップS303にて受信された第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが記憶装置12に保持されているか否かを判定する(図10のステップS305)。
When the transmission source node exists in the rejection node list, the storage node 10-w determines “Yes”, ends the processing of FIG. 10 without transmitting both the distributed data and the non-holding notification.
When the transmission source node does not exist in the rejection node list, the storage node 10-w determines “No” and the second data ID included in the second distributed data provision request received in step S303 in FIG. It is determined whether or not the associated distributed data is held in the storage device 12 (step S305 in FIG. 10).
 当該第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが記憶装置12に保持されている場合、保存ノード10-wは、「Yes」と判定し、第2分散データ提供要求の送信元であるユーザノード10-1へ、当該分散データである提供データを送信する(図10のステップS306)。そして、保存ノード10-wは、図10の処理を終了する。 If the storage device 12 holds the distributed data associated with the second data ID included in the second distributed data provision request, the storage node 10-w determines “Yes” and provides the second distributed data The provided data that is the distributed data is transmitted to the user node 10-1 that is the transmission source of the request (step S306 in FIG. 10). Then, the storage node 10-w ends the process of FIG.
 一方、当該第2分散データ提供要求に含まれる第2データIDと関連付けられた分散データが記憶装置12に保持されていない場合、保存ノード10-wは、「No」と判定し、他の保存ノード200のそれぞれへ不保持通知を送信する(図10のステップS307)。 On the other hand, when the shared data associated with the second data ID included in the second shared data provision request is not held in the storage device 12, the storage node 10-w determines “No” and performs another storage. A non-holding notification is transmitted to each of the nodes 200 (step S307 in FIG. 10).
 当該不保持通知は、当該第2分散データ提供要求の送信元であるユーザノード10-1を識別する送信元識別情報と、当該第2分散データ提供要求に含まれる第2データIDに含まれるワンタイムID及び生成時点情報と、当該不保持通知が送信された時点としての現在の時点を表す送信時点情報と、を含む。
 そして、保存ノード10-wは、図10の処理を終了する。
The non-holding notification includes transmission source identification information for identifying the user node 10-1 that is a transmission source of the second distributed data provision request, and a one included in the second data ID included in the second distributed data provision request. It includes a time ID and generation time information, and transmission time information indicating the current time as the time when the non-holding notification is transmitted.
Then, the storage node 10-w ends the process of FIG.
 以上、説明したように、第3実施形態の情報処理システム1は、第1実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第3実施形態の情報処理システム1において、メタデータから生成された分散データの要求は、ユーザノード100が保存ノード200へ、ワンタイムIDと生成時点情報とを含む第2分散データ提供要求を送信することにより行なわれる。
As described above, the information processing system 1 of the third embodiment can exhibit the same operations and effects as the information processing system 1 of the first embodiment.
Furthermore, in the information processing system 1 according to the third embodiment, the request for the distributed data generated from the metadata is the second distributed data provision request including the one-time ID and the generation time information from the user node 100 to the storage node 200. This is done by sending
 加えて、情報処理システム1は、ユーザノード100から、生成時点情報が共通し、且つ、ワンタイムIDが相違する、所定の閾値数以上の第2分散データ提供要求が所定の判定時間内に送信された場合、ユーザノード100からの上記要求に応じた提供データの提供を禁止する。 In addition, the information processing system 1 transmits, from the user node 100, a second distributed data provision request equal to or greater than a predetermined threshold number that has the same generation time information and a different one-time ID within a predetermined determination time. If it is, provision of provision data in response to the request from the user node 100 is prohibited.
 秘密データの保存を要求したユーザが、当該秘密データの復元を要求する場合、生成時点情報が共通し、且つ、ワンタイムIDが相違する、複数の第2分散データ提供要求が送信されることが少ない。従って、生成時点情報が共通し、且つ、ワンタイムIDが相違する、多数の第2分散データ提供要求が送信された場合、秘密データの保存を要求したユーザと異なるユーザが当該秘密データを不正に取得することを試行している確率が高い。 When a user who has requested storage of secret data requests restoration of the secret data, a plurality of second distributed data provision requests having the same generation time information and different one-time IDs may be transmitted. Few. Therefore, when a large number of second distributed data provision requests having the same generation time information and different one-time IDs are transmitted, a user different from the user who requested the storage of the secret data is illegally The probability of trying to get is high.
 そこで、上記のように、情報処理システム1は、生成時点情報が共通し、且つ、ワンタイムIDが相違する、所定の閾値数以上の第2分散データ提供要求が所定の判定時間内に送信された場合、ユーザノード100からの要求に応じた提供データの提供を禁止する。これによれば、秘密データが不正に取得されることを抑制できる。 Therefore, as described above, the information processing system 1 transmits the second distributed data provision request equal to or greater than the predetermined threshold number and having the same generation time information and different one-time IDs within the predetermined determination time. In this case, provision of provision data in response to a request from the user node 100 is prohibited. According to this, it is possible to suppress the secret data from being illegally acquired.
 なお、各保存ノード200は、他の保存ノード200により生成された拒否ノードリストを用いずに、自ノードが生成した拒否ノードリストのみを用いてもよい。これによれば、不正な拒否ノードリストによるサービス提供不能(DoS)攻撃を適切に抑制できる。DoSは、Denial of Serviceの略記である。 Note that each storage node 200 may use only the rejection node list generated by the own node without using the rejection node list generated by another storage node 200. According to this, it is possible to appropriately suppress a service provision failure (DoS) attack due to an unauthorized reject node list. DoS is an abbreviation for Denial of Service.
 また、拒否ノードリスト生成部211は、拒否ノードリストに含まれる送信元識別情報を、取得された不保持通知の数が所定の閾値通知数以上である送信元識別情報の中で、不保持通知の送信元である保存ノード200の数が所定の閾値ノード数以上(例えば、保存ノード200の総数の過半数)である送信元識別情報に制限してもよい。これによれば、不正な拒否ノードリストによるサービス提供不能(DoS)攻撃を適切に抑制できる。 Further, the reject node list generation unit 211 sets the sender identification information included in the reject node list among the sender identification information in which the number of acquired non-hold notifications is equal to or greater than a predetermined threshold notification number. May be limited to transmission source identification information in which the number of storage nodes 200 that are transmission sources of the node is greater than or equal to a predetermined threshold node number (for example, a majority of the total number of storage nodes 200). According to this, it is possible to appropriately suppress a service provision failure (DoS) attack due to an unauthorized reject node list.
 また、拒否ノードリスト生成部211は、拒否ノードリストに含まれる送信元識別情報を、取得された不保持通知の数が所定の閾値通知数以上である送信元識別情報の中で、自ノードに対する不正なアクセスが検知された送信元識別情報に制限してもよい。これによれば、不正な拒否ノードリストによるサービス提供不能(DoS)攻撃を適切に抑制できる。 Further, the reject node list generation unit 211 sets the source identification information included in the reject node list for the own node in the source identification information in which the number of acquired non-holding notifications is equal to or greater than a predetermined threshold notification number. You may restrict | limit to the transmission source identification information in which unauthorized access was detected. According to this, it is possible to appropriately suppress a service provision failure (DoS) attack due to an unauthorized reject node list.
<第3実施形態の第1変形例>
 次に、第3実施形態の第1変形例の情報処理システムについて説明する。第3実施形態の第1変形例の情報処理システムは、第3実施形態の情報処理システムに対して、ワンタイムIDとして用いる情報が相違している。以下、相違点を中心として説明する。なお、第3実施形態の第1変形例の説明において、第3実施形態にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<First Modification of Third Embodiment>
Next, an information processing system according to a first modification of the third embodiment will be described. The information processing system according to the first modification of the third embodiment differs from the information processing system according to the third embodiment in information used as a one-time ID. Hereinafter, the difference will be mainly described. In addition, in description of the 1st modification of 3rd Embodiment, what attached | subjected the code | symbol same as the code | symbol used in 3rd Embodiment is the same or substantially the same.
 本例では、第2データIDに含まれるワンタイムIDは、第1実施形態の第4変形例と同様に、第2分散データ群に対するノード群に含まれるN個の保存ノード200に対して、保存ノード200毎に異なる情報である。本例では、ワンタイムIDは、入力情報に基づいて生成された生成情報を構成する。 In this example, the one-time ID included in the second data ID is the same as that of the fourth modified example of the first embodiment for N storage nodes 200 included in the node group for the second distributed data group. The information is different for each storage node 200. In this example, the one-time ID constitutes generation information generated based on the input information.
 本例では、第2分散データ群に対するノード群に含まれるN個の保存ノード200のうちのn番目の保存ノード200に対するワンタイムIDは、当該N個の保存ノード200のうちのr番目の保存ノード200を識別するノードIDを、入力情報に含まれるユーザIDに付加した情報の、所定のハッシュ関数に対するハッシュ値である。rは、nが1からN-1の各整数を表す場合、n+1を表すとともに、nがNを表す場合、1を表す。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。 In this example, the one-time ID for the nth storage node 200 among the N storage nodes 200 included in the node group for the second distributed data group is the rth storage of the N storage nodes 200. This is a hash value for a predetermined hash function of information obtained by adding the node ID for identifying the node 200 to the user ID included in the input information. r represents n + 1 when n represents each integer from 1 to N-1, and represents 1 when n represents N. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
 以上、説明したように、第3実施形態の第1変形例の情報処理システム1は、第3実施形態の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第3実施形態の第1変形例の情報処理システム1は、選択された装置群に含まれるN個の記憶装置12に対して、記憶装置12毎に異なる情報を識別情報として生成する。
As described above, the information processing system 1 according to the first modification of the third embodiment can exhibit the same operations and effects as the information processing system 1 according to the third embodiment.
Furthermore, the information processing system 1 according to the first modification of the third embodiment generates different information as identification information for each storage device 12 for the N storage devices 12 included in the selected device group.
 これによれば、秘密データを復元するために用いられる分散データが、識別情報に基づいて特定される確率を低減できる。 According to this, the probability that the distributed data used for restoring the secret data is specified based on the identification information can be reduced.
 なお、上記N個の保存ノード200のうちのn番目の保存ノード200に対するワンタイムIDは、当該N個の保存ノード200のうちのr番目の保存ノード200を識別するノードIDを、入力情報に含まれるユーザIDに付加した情報の、上記ハッシュ関数に対するハッシュ値を、第1のパラメータにより除した場合における剰余であってよい。第1のパラメータは、正の整数である。本例では、第1のパラメータは、情報処理システム1において予め定められる。これによれば、ワンタイムIDを生成する基となった情報が特定される確率を低減できる。 The one-time ID for the n-th storage node 200 among the N storage nodes 200 is a node ID for identifying the r-th storage node 200 among the N storage nodes 200 as input information. It may be a remainder when the hash value for the hash function of the information added to the included user ID is divided by the first parameter. The first parameter is a positive integer. In the present example, the first parameter is predetermined in the information processing system 1. According to this, it is possible to reduce the probability that the information that is the basis for generating the one-time ID is specified.
 なお、第1のパラメータは、変動してもよい。この場合、第1のパラメータは、保存ノードリストに含まれるノードIDの数が大きくなるほど大きくなるように定められてよい。この場合、例えば、保存ノードリストに含まれるノードIDの数と、第1のパラメータと、の関係を定める第1のパラメータ関数が、情報処理システム1において予め定められる。 Note that the first parameter may vary. In this case, the first parameter may be determined so as to increase as the number of node IDs included in the storage node list increases. In this case, for example, a first parameter function that defines the relationship between the number of node IDs included in the storage node list and the first parameter is predetermined in the information processing system 1.
<第3実施形態の第2変形例>
 次に、第3実施形態の第2変形例の情報処理システムについて説明する。第3実施形態の第2変形例の情報処理システムは、第3実施形態の第1変形例の情報処理システムに対して、第2データIDが、生成時点情報に代えて、生成時点情報のハッシュ値を含む点において相違している。以下、相違点を中心として説明する。なお、第3実施形態の第2変形例の説明において、第3実施形態の第1変形例にて使用した符号と同じ符号を付したものは、同一又はほぼ同様のものである。
<Second Modification of Third Embodiment>
Next, an information processing system according to a second modification of the third embodiment will be described. The information processing system of the second modification example of the third embodiment is different from the information processing system of the first modification example of the third embodiment in that the second data ID is a hash of generation time information instead of the generation time information. It differs in that it contains a value. Hereinafter, the difference will be mainly described. In addition, in description of the 2nd modification of 3rd Embodiment, what attached | subjected the code | symbol same as the code | symbol used in the 1st modification of 3rd Embodiment is the same or substantially the same.
 本例では、第2データIDは、生成時点情報に代えて、生成時点識別情報を含む。本例では、生成時点識別情報は、生成時点情報の、所定のハッシュ関数に対するハッシュ値である。本例では、生成時点識別情報は、時点を識別する時点識別情報を構成する。例えば、ハッシュ関数は、MD5、SHA-0、SHA-1、SHA-2、又は、SHA-3と呼ばれるハッシュ関数である。 In this example, the second data ID includes generation point identification information instead of generation point information. In this example, the generation time point identification information is a hash value for the predetermined hash function of the generation time point information. In this example, the generation time point identification information constitutes time point identification information for identifying the time point. For example, the hash function is a hash function called MD5, SHA-0, SHA-1, SHA-2, or SHA-3.
 以上、説明したように、第3実施形態の第2変形例の情報処理システム1は、第3実施形態の第1変形例の情報処理システム1と同様の作用及び効果を奏することができる。
 更に、第3実施形態の第2変形例の情報処理システム1によれば、リスト生成時点が特定される確率を低減できる。
As described above, the information processing system 1 of the second modification example of the third embodiment can exhibit the same operations and effects as the information processing system 1 of the first modification example of the third embodiment.
Furthermore, according to the information processing system 1 of the second modified example of the third embodiment, the probability that the list generation time is specified can be reduced.
 なお、生成時点識別情報は、生成時点情報の、上記ハッシュ関数に対するハッシュ値を、第2のパラメータにより除した場合における剰余であってよい。第2のパラメータは、正の整数である。本例では、第2のパラメータは、情報処理システム1において予め定められる。これによれば、リスト生成時点が特定される確率を低減できる。 The generation time identification information may be a remainder when the hash value for the hash function of the generation time information is divided by the second parameter. The second parameter is a positive integer. In this example, the second parameter is predetermined in the information processing system 1. According to this, the probability that the list generation time is specified can be reduced.
 なお、第2のパラメータは、変動してもよい。この場合、第2のパラメータは、保存ノードリストが選択される対象の保存ノードリスト候補の数、所定の期間にて生成される保存ノードリスト候補の数、又は、保存ノード200として動作する情報処理装置10の数が大きくなるほど大きくなるように定められてよい。この場合、例えば、保存ノードリストが選択される対象の保存ノードリスト候補の数、所定の期間にて生成される保存ノードリスト候補の数、又は、保存ノード200として動作する情報処理装置10の数と、第2のパラメータと、の関係を定める第2のパラメータ関数が、情報処理システム1において予め定められる。 Note that the second parameter may vary. In this case, the second parameter is the number of storage node list candidates for which the storage node list is selected, the number of storage node list candidates generated in a predetermined period, or information processing that operates as the storage node 200. It may be determined to increase as the number of devices 10 increases. In this case, for example, the number of storage node list candidates for which the storage node list is selected, the number of storage node list candidates generated in a predetermined period, or the number of information processing apparatuses 10 operating as the storage node 200 And a second parameter function that defines the relationship between the second parameter and the second parameter are predetermined in the information processing system 1.
 なお、上記各実施形態において、データを保存する時点の変化に伴って分散データの保存先を変更する技術は、メタデータに適用されている。ところで、当該技術は、メタデータと異なるデータ(例えば、ユーザデータ)に適用されてもよい。 In each of the above-described embodiments, the technique for changing the storage destination of the distributed data in accordance with the change in the time when the data is stored is applied to the metadata. By the way, the technique may be applied to data different from metadata (for example, user data).
 また、上記各実施形態において、情報処理システム1は、P2P方式に従った通信を行なう。ところで、情報処理システム1は、P2P方式と異なる方式(例えば、クライアント・サーバ方式等)に従った通信を行なってもよい。 In each of the above embodiments, the information processing system 1 performs communication according to the P2P method. By the way, the information processing system 1 may perform communication according to a method (for example, a client / server method) different from the P2P method.
 なお、本発明は、上述した実施形態に限定されない。例えば、上述した実施形態に、本発明の趣旨を逸脱しない範囲内において当業者が理解し得る様々な変更が加えられてよい。例えば、本発明の趣旨を逸脱しない範囲内において、上述した実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。 Note that the present invention is not limited to the above-described embodiment. For example, various modifications that can be understood by those skilled in the art may be added to the above-described embodiments without departing from the spirit of the present invention. For example, any combination of the above-described embodiment and modification may be adopted as another modification of the above-described embodiment without departing from the spirit of the present invention.
1   情報処理システム
10  情報処理装置
11  処理装置
12  記憶装置
13  通信装置
14  入力装置
15  出力装置
100 ユーザノード
101 ユーザ認証受付部
102 ユーザデータ保存要求受付部
103 保存ノードリスト取得部
104 ノード群決定部
105 分散データ生成部
106 分散データ保存要求送信部
107 ユーザデータ復元要求受付部
108 提供データ取得部
109 秘密データ復元部
200 保存ノード
201 保存要求処理部
202 分散データ記憶部
203 提供要求処理部
204 動作通知処理部
205 動作通知記憶部
206 保存ノードリスト生成部
207 保存ノードリスト記憶部
208 保存ノードリスト要求処理部
209 不保持通知処理部
210 不保持通知記憶部
211 拒否ノードリスト生成部
212 拒否ノードリスト記憶部
BU  バス
NW  通信網
DESCRIPTION OF SYMBOLS 1 Information processing system 10 Information processing apparatus 11 Processing apparatus 12 Storage apparatus 13 Communication apparatus 14 Input apparatus 15 Output apparatus 100 User node 101 User authentication reception part 102 User data storage request reception part 103 Storage node list acquisition part 104 Node group determination part 105 Distributed data generation unit 106 Distributed data storage request transmission unit 107 User data recovery request reception unit 108 Provided data acquisition unit 109 Secret data recovery unit 200 Storage node 201 Storage request processing unit 202 Distributed data storage unit 203 Provision request processing unit 204 Operation notification process Unit 205 operation notification storage unit 206 storage node list generation unit 207 storage node list storage unit 208 storage node list request processing unit 209 non-retention notification processing unit 210 non-retention notification storage unit 211 reject node list generation unit 212 reject node list Storage unit BU bus NW communication network

Claims (13)

  1.  M(Mは、2以上の整数を表す)個の記憶装置を備える情報処理システムであって、
     秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成する生成手段と、
     複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と前記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、前記複数の装置群のそれぞれが、前記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、前記選択された装置群に含まれるN個の記憶装置に前記生成されたN個の分散データをそれぞれ保存する保存手段と、
     前記複数の装置群のうちの1つの装置群に対して復元処理を実行し、前記復元処理が、前記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに前記分散データを要求することと、前記要求に応じて提供された提供データから前記秘密分散法に従って前記秘密データを復元することと、を含み、前記復元が失敗した場合、前記複数の装置群のうちの、前記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して前記復元処理を実行する復元手段と、
     を備える、情報処理システム。
    An information processing system including M (M represents an integer of 2 or more) storage devices,
    Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method;
    One associated with a time point included in a period between a current time point and a time point a predetermined time before the current time point, out of a plurality of different device groups respectively associated with a plurality of different time points A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer greater than or equal to N and less than or equal to M) selected from the M storage devices, Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
    A restoration process is performed on one device group of the plurality of device groups, and the restoration process is performed on each of the at least some storage devices of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, Restoring means for executing the restoration processing on a device group associated with a time point prior to a time point associated with the device group that has caused the failure;
    An information processing system comprising:
  2.  請求項1に記載の情報処理システムであって、
     前記保存手段は、ユーザによって入力された入力情報と関連付けて保存要求を受け付けるとともに、前記保存要求が受け付けられた場合、前記複数の装置群を前記保存要求と関連付けられた前記入力情報に基づいて設定し、
     前記復元手段は、ユーザによって入力された入力情報と関連付けて復元要求を受け付けるとともに、前記復元要求が受け付けられた場合、前記複数の装置群を前記復元要求と関連付けられた前記入力情報に基づいて設定する、情報処理システム。
    The information processing system according to claim 1,
    The storage unit receives a storage request in association with input information input by a user, and sets the plurality of device groups based on the input information associated with the storage request when the storage request is received. And
    The restoration unit accepts a restoration request in association with input information input by a user, and sets the plurality of device groups based on the input information associated with the restoration request when the restoration request is accepted. Information processing system.
  3.  請求項1又は請求項2に記載の情報処理システムであって、
     前記複数の装置群は、前記複数の時点とそれぞれ関連付けられた複数の異なる装置順位情報と、前記入力情報とC個の異なる順位との予め定められた情報順位関係と、に基づいて設定され、前記装置順位情報が、前記M個の記憶装置の少なくとも一部の記憶装置と、前記少なくとも一部の記憶装置のそれぞれに付与された順位と、を表す情報である、情報処理システム。
    The information processing system according to claim 1 or 2,
    The plurality of device groups are set based on a plurality of different device ranking information respectively associated with the plurality of time points, and a predetermined information ranking relationship between the input information and C different rankings, The information processing system, wherein the device order information is information representing at least some of the M storage devices and the order assigned to each of the at least some storage devices.
  4.  請求項1又は請求項2に記載の情報処理システムであって、
     前記複数の装置群は、前記M個の記憶装置の少なくとも一部の記憶装置と、前記少なくとも一部の記憶装置のそれぞれに付与された順位と、を表す装置順位情報と、前記複数の時点とそれぞれ関連付けられた複数の異なる情報順位関係と、に基づいて設定され、前記情報順位関係が、前記入力情報とC個の異なる順位との予め定められた関係である、情報処理システム。
    The information processing system according to claim 1 or 2,
    The plurality of device groups include at least some storage devices of the M storage devices, device rank information indicating ranks assigned to the at least some storage devices, and the plurality of time points. An information processing system, which is set based on a plurality of different information rank relationships associated with each other, and the information rank relationship is a predetermined relationship between the input information and C different ranks.
  5.  請求項1乃至請求項4のいずれか一項に記載の情報処理システムであって、
     前記秘密データは、前記秘密データと異なる他の秘密データから秘密分散法に従って生成された複数の分散データがそれぞれ保存された複数の記憶装置を表す情報を含むデータである、情報処理システム。
    An information processing system according to any one of claims 1 to 4,
    The information processing system, wherein the secret data is data including information representing a plurality of storage devices each storing a plurality of shared data generated according to a secret sharing method from other secret data different from the secret data.
  6.  請求項1乃至請求項5のいずれか一項に記載の情報処理システムであって、
     前記復元手段は、ユーザによって入力され且つ期間を表す期間情報を受け付けるとともに、前記復元処理を実行する対象となる装置群を、前記複数の装置群の中で、前記受け付けられた期間情報が表す期間に含まれる時点と関連付けられた装置群に限定する、情報処理システム。
    An information processing system according to any one of claims 1 to 5,
    The restoration means accepts period information input by a user and represents a period, and a group of apparatuses to be subjected to the restoration process is represented by a period represented by the accepted period information in the plurality of apparatus groups. The information processing system is limited to a group of devices associated with the time points included in.
  7.  請求項1乃至請求項6のいずれか一項に記載の情報処理システムであって、
     前記保存手段は、前記選択された装置群と関連付けられた時点に基づいて識別情報を生成するとともに、前記N個の分散データのそれぞれを、前記生成された識別情報と関連付けて保存する、情報処理システム。
    An information processing system according to any one of claims 1 to 6,
    The storage unit generates identification information based on a time point associated with the selected device group, and stores each of the N pieces of distributed data in association with the generated identification information. system.
  8.  請求項7に記載の情報処理システムであって、
     前記保存手段は、前記選択された装置群に含まれるN個の記憶装置に対して、記憶装置毎に異なる情報を前記識別情報として生成する、情報処理システム。
    The information processing system according to claim 7,
    The information processing system, wherein the storage unit generates, as the identification information, different information for each storage device for N storage devices included in the selected device group.
  9.  請求項1乃至請求項8のいずれか一項に記載の情報処理システムであって、
     前記装置群に含まれる記憶装置の数Cは、ユーザの認証に用いられるパスワードが特定されやすいほど多い数に設定され、
     前記保存手段は、前記選択された装置群に含まれるC個の記憶装置の中からN個の記憶装置をランダムに選択し、前記選択されたN個の記憶装置に前記生成されたN個の分散データをそれぞれ保存し、
     前記復元処理は、前記装置群に含まれるC個の記憶装置のそれぞれに前記分散データを要求することと、前記要求に応じて提供されたC個の提供データから選択されるN個の提供データの組み合わせのそれぞれに対して、当該組み合わせを構成するN個の提供データから前記秘密分散法に従って前記秘密データを復元することと、を含む、情報処理システム。
    An information processing system according to any one of claims 1 to 8,
    The number C of storage devices included in the device group is set to a large number such that a password used for user authentication is easily identified,
    The storage means randomly selects N storage devices from the C storage devices included in the selected device group, and the generated N storage devices are stored in the selected N storage devices. Store each distributed data,
    The restoration process requests the distributed data to each of C storage devices included in the device group, and N provided data selected from the C provided data provided in response to the request. For each of the combinations, the information processing system includes: restoring the secret data from N pieces of provided data constituting the combination according to the secret sharing method.
  10.  請求項1乃至請求項9のいずれか一項に記載の情報処理システムであって、
     前記記憶装置に対する前記分散データの要求は、情報処理装置が前記記憶装置へ、時点を識別する時点識別情報と、ユーザによって入力された入力情報又は前記入力情報に基づいて生成された生成情報と、を含む提供要求を送信することにより行なわれ、
     前記情報処理装置から、前記時点識別情報が共通し、且つ、前記入力情報又は前記生成情報が相違する、所定の閾値数以上の提供要求が所定の判定時間内に送信された場合、前記情報処理装置からの前記要求に応じた前記提供データの提供を禁止する禁止手段を備える、情報処理システム。
    An information processing system according to any one of claims 1 to 9,
    The request for the distributed data to the storage device includes the time point identification information for identifying the time point by the information processing device to the storage device, the input information input by the user or the generation information generated based on the input information, By submitting an offer request containing
    When the information processing apparatus transmits a provision request equal to or greater than a predetermined threshold number in which the time point identification information is common and the input information or the generation information is different, within a predetermined determination time, the information processing An information processing system comprising prohibiting means for prohibiting provision of the provision data in response to the request from a device.
  11.  M(Mは、2以上の整数を表す)個の記憶装置と通信可能に接続された情報処理装置であって、
     秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成する生成手段と、
     複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と前記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、前記複数の装置群のそれぞれが、前記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、前記選択された装置群に含まれるN個の記憶装置に前記生成されたN個の分散データをそれぞれ保存する保存手段と、
     前記複数の装置群のうちの1つの装置群に対して復元処理を実行し、前記復元処理が、前記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに前記分散データを要求することと、前記要求に応じて提供された提供データから前記秘密分散法に従って前記秘密データを復元することと、を含み、前記復元が失敗した場合、前記複数の装置群のうちの、前記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して前記復元処理を実行する復元手段と、
     を備える、情報処理装置。
    An information processing apparatus communicably connected to M (M represents an integer of 2 or more) storage devices,
    Generating means for generating N (N represents an integer greater than or equal to 2 and less than or equal to M) pieces of shared data from the secret data according to a secret sharing method;
    One associated with a time point included in a period between a current time point and a time point a predetermined time before the current time point, out of a plurality of different device groups respectively associated with a plurality of different time points A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer greater than or equal to N and less than or equal to M) selected from the M storage devices, Storage means for storing the generated N distributed data in N storage devices included in the selected device group;
    A restoration process is performed on one device group of the plurality of device groups, and the restoration process is performed on each of the at least some storage devices of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, Restoring means for executing the restoration processing on a device group associated with a time point prior to a time point associated with the device group that has caused the failure;
    An information processing apparatus comprising:
  12.  M(Mは、2以上の整数を表す)個の記憶装置を用いる情報処理方法であって、
     秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成し、
     複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と前記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、前記複数の装置群のそれぞれが、前記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、前記選択された装置群に含まれるN個の記憶装置に前記生成されたN個の分散データをそれぞれ保存し、
     前記複数の装置群のうちの1つの装置群に対して復元処理を実行し、前記復元処理が、前記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに前記分散データを要求することと、前記要求に応じて提供された提供データから前記秘密分散法に従って前記秘密データを復元することと、を含み、前記復元が失敗した場合、前記複数の装置群のうちの、前記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して前記復元処理を実行する、情報処理方法。
    An information processing method using M storage devices (M represents an integer of 2 or more),
    Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method,
    One associated with a time point included in a period between a current time point and a time point a predetermined time before the current time point, out of a plurality of different device groups respectively associated with a plurality of different time points A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer greater than or equal to N and less than or equal to M) selected from the M storage devices, Storing the generated N distributed data in N storage devices included in the selected device group;
    A restoration process is performed on one device group of the plurality of device groups, and the restoration process is performed on each of the at least some storage devices of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, An information processing method for executing the restoration processing on a device group associated with a time point prior to a time point associated with the device group that has caused the failure.
  13.  M(Mは、2以上の整数を表す)個の記憶装置と通信可能に接続された情報処理装置に、
     秘密データから、秘密分散法に従って、N(Nは、2以上且つM以下の整数を表す)個の分散データを生成し、
     複数の異なる時点とそれぞれ関連付けられた複数の異なる装置群の中から、現在の時点と前記現在の時点よりも所定の時間だけ前の時点との間の期間に含まれる時点と関連付けられた1つの装置群を選択し、前記複数の装置群のそれぞれが、前記M個の記憶装置の中から選択されたC(Cは、N以上且つM以下の整数を表す)個の記憶装置を含み、前記選択された装置群に含まれるN個の記憶装置に前記生成されたN個の分散データをそれぞれ保存し、
     前記複数の装置群のうちの1つの装置群に対して復元処理を実行し、前記復元処理が、前記装置群に含まれるN個の記憶装置の少なくとも一部の記憶装置のそれぞれに前記分散データを要求することと、前記要求に応じて提供された提供データから前記秘密分散法に従って前記秘密データを復元することと、を含み、前記復元が失敗した場合、前記複数の装置群のうちの、前記失敗の基となった装置群と関連付けられた時点よりも前の時点と関連付けられた装置群に対して前記復元処理を実行する、処理を実行させるプログラム。
    To an information processing device connected to be communicable with M storage devices (M represents an integer of 2 or more),
    Generate N (N represents an integer of 2 or more and M or less) distributed data from the secret data according to the secret sharing method,
    One associated with a time point included in a period between a current time point and a time point a predetermined time before the current time point, out of a plurality of different device groups respectively associated with a plurality of different time points A device group is selected, and each of the plurality of device groups includes C storage devices (C represents an integer greater than or equal to N and less than or equal to M) selected from the M storage devices, Storing the generated N distributed data in N storage devices included in the selected device group;
    A restoration process is performed on one device group of the plurality of device groups, and the restoration process is performed on each of the at least some storage devices of the N storage devices included in the device group. And when the restoration fails, out of the plurality of device groups, and restoring the secret data according to the secret sharing method from the provided data provided in response to the request, A program for executing processing for executing the restoration processing on a device group associated with a time point prior to a time point associated with the device group that is the basis of the failure.
PCT/JP2016/080351 2015-10-16 2016-10-13 Information processing system, information processing device, information processing method, and program WO2017065209A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017545453A JP6567683B2 (en) 2015-10-16 2016-10-13 Information processing system, information processing apparatus, information processing method, and program
EP16855462.4A EP3364328A1 (en) 2015-10-16 2016-10-13 Information processing system, information processing device, information processing method, and program
US15/954,011 US10574455B2 (en) 2015-10-16 2018-04-16 Information processing system, information processing apparatus, method for information processing, and non-transitory computer-readable recording medium having stored therein information processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-204607 2015-10-16
JP2015204607 2015-10-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/954,011 Continuation US10574455B2 (en) 2015-10-16 2018-04-16 Information processing system, information processing apparatus, method for information processing, and non-transitory computer-readable recording medium having stored therein information processing program

Publications (1)

Publication Number Publication Date
WO2017065209A1 true WO2017065209A1 (en) 2017-04-20

Family

ID=58518303

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/080351 WO2017065209A1 (en) 2015-10-16 2016-10-13 Information processing system, information processing device, information processing method, and program

Country Status (4)

Country Link
US (1) US10574455B2 (en)
EP (1) EP3364328A1 (en)
JP (1) JP6567683B2 (en)
WO (1) WO2017065209A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019153842A (en) * 2018-02-28 2019-09-12 リアル・テクノロジー株式会社 Validity management system, validity management method, and program
CN110764690A (en) * 2018-07-28 2020-02-07 阿里巴巴集团控股有限公司 Distributed storage system and leader node election method and device thereof
CN111406396A (en) * 2017-11-27 2020-07-10 区块链控股有限公司 Computer-implemented systems and methods for data propagation and communication in a network, such as a blockchain network
JPWO2021014611A1 (en) * 2019-07-24 2021-01-28
JP2022528578A (en) * 2019-05-22 2022-06-14 ミョータ インコーポレイテッド Methods and systems for distributed data storage with enhanced security, resilience, and control

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
GB201720389D0 (en) * 2017-12-07 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method
EP3654578B1 (en) 2018-11-16 2022-04-06 SafeTech BV Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
WO2021014081A1 (en) * 2019-07-19 2021-01-28 Edgewhere Method for secure data storage and system for implementing said method
FR3098950B3 (en) * 2019-07-19 2021-07-30 Edgewhere "Method for secure data storage and system for implementing the method"
KR20220144810A (en) * 2020-02-26 2022-10-27 티제로 아이피, 엘엘씨 Secret partitioning and metadata storage
CN112966312A (en) * 2021-03-02 2021-06-15 中国银联股份有限公司 Data storage method, device, equipment and storage medium
CN114331430B (en) * 2021-12-24 2023-03-31 杭州钛度科技有限公司 Block chain consensus method, apparatus, device and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625692A (en) * 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
JP2004147218A (en) * 2002-10-25 2004-05-20 Ntt Communications Kk Data division management method and program
JP2005167794A (en) * 2003-12-04 2005-06-23 Nippon Telegr & Teleph Corp <Ntt> Secret information storage method and apparatus, secret information restoration method and program, secret information storage program, and secret information restoration program
JP2007073004A (en) * 2005-09-09 2007-03-22 Canon Inc Data maintenance information apparatus, dispersion storage system, and its method
US7577689B1 (en) * 2005-06-15 2009-08-18 Adobe Systems Incorporated Method and system to archive data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495292B2 (en) * 2006-12-06 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for an in-server storage area network
WO2008114441A1 (en) * 2007-03-20 2008-09-25 Fujitsu Limited Storage managing program, storage managing method, and storage managing device
US8341425B2 (en) * 2009-05-25 2012-12-25 Hitachi, Ltd. Storage device and its control method
JP5556816B2 (en) * 2009-09-01 2014-07-23 日本電気株式会社 Distributed storage system, distributed storage method, distributed storage program and storage node
US9811662B2 (en) * 2010-05-03 2017-11-07 Panzura, Inc. Performing anti-virus checks for a distributed filesystem
US9811532B2 (en) * 2010-05-03 2017-11-07 Panzura, Inc. Executing a cloud command for a distributed filesystem
JP4875781B1 (en) 2011-07-08 2012-02-15 株式会社野村総合研究所 Distributed data storage system
US9804928B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Restoring an archived file in a distributed filesystem
US9805054B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
US20150003809A1 (en) * 2012-02-01 2015-01-01 Masayuki Matsuda Content receiving device, content receiving method and digital broadcast transmitting and receiving system
US9730085B2 (en) * 2014-06-30 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless probe devices
US9794341B2 (en) * 2014-06-30 2017-10-17 Sandisk Technologies Llc Data storage verification in distributed storage system
US9923970B2 (en) * 2014-08-22 2018-03-20 Nexenta Systems, Inc. Multicast collaborative erasure encoding and distributed parity protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625692A (en) * 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
JP2004147218A (en) * 2002-10-25 2004-05-20 Ntt Communications Kk Data division management method and program
JP2005167794A (en) * 2003-12-04 2005-06-23 Nippon Telegr & Teleph Corp <Ntt> Secret information storage method and apparatus, secret information restoration method and program, secret information storage program, and secret information restoration program
US7577689B1 (en) * 2005-06-15 2009-08-18 Adobe Systems Incorporated Method and system to archive data
JP2007073004A (en) * 2005-09-09 2007-03-22 Canon Inc Data maintenance information apparatus, dispersion storage system, and its method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GANGER, G. R. ET AL.: "Survivable Storage Systems", PROCEEDINGS OF THE DARPA INFORMATION SURVIVABILITY CONFERENCE & EXPOSITION II, vol. II, June 2001 (2001-06-01), pages 184 - 195, XP010548746 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111406396A (en) * 2017-11-27 2020-07-10 区块链控股有限公司 Computer-implemented systems and methods for data propagation and communication in a network, such as a blockchain network
JP2021504783A (en) * 2017-11-27 2021-02-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Computer-implemented systems and methods for the propagation and communication of data within networks such as blockchain networks.
US11743328B2 (en) 2017-11-27 2023-08-29 Nchain Licensing Ag Computer-implemented system and method for propagation and communication of data in a network such as a blockchain network
JP2019153842A (en) * 2018-02-28 2019-09-12 リアル・テクノロジー株式会社 Validity management system, validity management method, and program
JP7074319B2 (en) 2018-02-28 2022-05-24 リアル・テクノロジー株式会社 Legitimacy management system, legitimacy management method and program
CN110764690A (en) * 2018-07-28 2020-02-07 阿里巴巴集团控股有限公司 Distributed storage system and leader node election method and device thereof
CN110764690B (en) * 2018-07-28 2023-04-14 阿里云计算有限公司 Distributed storage system and leader node election method and device thereof
JP2022528578A (en) * 2019-05-22 2022-06-14 ミョータ インコーポレイテッド Methods and systems for distributed data storage with enhanced security, resilience, and control
JP7173646B2 (en) 2019-05-22 2022-11-16 ミョータ インコーポレイテッド Methods and systems for distributed data storage with enhanced security, resilience and control
JPWO2021014611A1 (en) * 2019-07-24 2021-01-28
WO2021014611A1 (en) * 2019-07-24 2021-01-28 日本電気株式会社 Secret computation server, trail management method, and program
JP7409380B2 (en) 2019-07-24 2024-01-09 日本電気株式会社 Secure calculation server, trail management method and program

Also Published As

Publication number Publication date
JPWO2017065209A1 (en) 2018-08-30
US10574455B2 (en) 2020-02-25
EP3364328A1 (en) 2018-08-22
JP6567683B2 (en) 2019-08-28
US20180234239A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
JP6567683B2 (en) Information processing system, information processing apparatus, information processing method, and program
US7715565B2 (en) Information-centric security
US9985782B2 (en) Network bound decryption with offline encryption
US9374222B2 (en) Secure communication of data between devices
US11387999B2 (en) Access to secured information
EP3598714A1 (en) Method, device, and system for encrypting secret key
US20220385644A1 (en) Sharing encrypted items with participants verification
US20160359822A1 (en) Sovereign share encryption protocol
CN112889240A (en) Server device, communication terminal, communication system, and program
US20210144002A1 (en) Secondary Channel Authentication of Public Keys
US20190095628A1 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
JP5750728B2 (en) Key sharing system, key generation device, and program
JP2012029271A (en) Encryption device, decryption device, encryption system, encryption method and program
WO2015107561A1 (en) Search system, search method, and search program
JP2022523068A (en) Systems and methods for secure electronic data transfer
WO2020051833A1 (en) Information processing method, terminal device and network system
Arvin S. Lat et al. SOUL System: secure online USB login system
JP6492785B2 (en) Information processing system, information processing method, and information processing program
CN111480313B (en) Communication terminal, server device, and recording medium
US11818109B1 (en) Secure synchronization of data
US11831756B2 (en) Sharing access to data externally
KR102171463B1 (en) Data securing method, server thereof, and apparatus thereof
US20240070294A1 (en) Secure synchronization of data
JP6492786B2 (en) Information processing apparatus, information processing method, information processing program, and information processing system
Abdulhussein A Study of Email Encryption on Android OS

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017545453

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016855462

Country of ref document: EP