WO2020170695A1 - クラウドサービスを用いた安全な秘密分散保管システム - Google Patents

クラウドサービスを用いた安全な秘密分散保管システム Download PDF

Info

Publication number
WO2020170695A1
WO2020170695A1 PCT/JP2020/001990 JP2020001990W WO2020170695A1 WO 2020170695 A1 WO2020170695 A1 WO 2020170695A1 JP 2020001990 W JP2020001990 W JP 2020001990W WO 2020170695 A1 WO2020170695 A1 WO 2020170695A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
random number
distributed
main controller
controllers
Prior art date
Application number
PCT/JP2020/001990
Other languages
English (en)
French (fr)
Inventor
正克 松尾
勝則 古賀田
佐々木 雅英
藤原 幹生
Original Assignee
パナソニック株式会社
国立研究開発法人情報通信研究機構
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社, 国立研究開発法人情報通信研究機構 filed Critical パナソニック株式会社
Priority to US17/432,774 priority Critical patent/US20220147640A1/en
Priority to CN202080016062.5A priority patent/CN113474829B/zh
Priority to EP20759534.9A priority patent/EP3929896A4/en
Publication of WO2020170695A1 publication Critical patent/WO2020170695A1/ja

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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present disclosure relates to a secure secret distributed storage system using a cloud service that stores a plurality of distributed data generated by distributed processing of original data.
  • a threshold secret sharing method using exclusive OR is known as a method for satisfying the real-time property.
  • XOR processing a threshold secret sharing method that uses secure XOR processing in which the original data is not inferred from the shared data is used to reduce the data amount of the distributed data, and the number of shares and the threshold value can be freely set to make the secret sharing easy to use.
  • a device configuration has been proposed.
  • the conventional threshold secret sharing method including Patent Document 1 is used, for example, for secret sharing processing so that it is difficult to restore the original data from the distributed data (that is, to secure the security of the original data).
  • a method is known in which a physical random number generated based on a signal such as thermal noise (that is, a random number that is difficult to guess) is used as the random number.
  • the present disclosure has been devised in view of the above-described conventional situation, and increases the cost associated with the installation of a physical random number generator that generates a physical random number used in secret sharing regardless of the number of users who need secret sharing. It is an object of the present invention to provide a secret sharing storage system and a secret sharing storage method that suppress the above and support the safe storage of original data to be kept secret.
  • the present disclosure is a secret distributed storage system having at least one user terminal, each of n (n: an integer of 2 or more) storage devices, and a main controller communicatively connected to a random number generator. Then, when the main controller receives the original data sent from the user terminal, the main controller acquires the random number generated by the random number generator, and uses the random number to perform the distributed processing of the original data to obtain n pieces of data.
  • a secret distributed storage system that generates distributed data and stores each of the n distributed data in the corresponding n storage devices.
  • the present disclosure also provides n controllers provided corresponding to each of n (n: an integer of 2 or more) storage devices, the n controllers, at least one user terminal, and a random number generator. And a communication management server communicatively connected to the n controllers, the user terminal, and the second random number generator.
  • the management server receives the bibliographic information of the original data from the user terminal, the second random number generated by the second random number generator is distributed to generate n pieces of distributed random number data, and the n pieces of distributed random number data are distributed.
  • Each of the random number data is sent to the corresponding n controllers and the second random number is sent to the user terminal, and the main controller encrypts the original data using the second random number.
  • n encrypted distributed data are generated, A secret distributed storage system is provided, which sends each of the n encrypted distributed data to the corresponding n controllers.
  • a secret distributed storage having at least one user terminal, each of n (n: an integer of 2 or more) storage devices, and a main controller communicatively connected to a random number generator.
  • a secret sharing storage method using a system wherein when receiving original data sent from the user terminal, obtaining a random number generated by the random number generator, and distributing the original data using the random number.
  • a secret shared storage method is provided, which includes a step of processing to generate n pieces of distributed data, and a step of storing each of the n pieces of distributed data in the corresponding n storage devices.
  • the present disclosure also provides n controllers provided corresponding to each of n (n: an integer of 2 or more) storage devices, the n controllers, at least one user terminal, and a random number generator.
  • a secret sharing storage that includes a main controller communicatively connected to a communication controller and a communication management server communicatively connected to the n controllers, the user terminal, and a second random number generator.
  • a secret distributed sharing method using a system wherein when bibliographic information of original data is received from the user terminal, the second random number generated by the second random number generator is distributed to generate n pieces of distributed random number data.
  • FIG. 3 is a diagram showing a system configuration example of a secret sharing system according to the first embodiment.
  • Block diagram showing an example of the hardware configuration of the main controller Block diagram showing an example of hardware configuration of shareholder Sequence diagram showing an operation procedure example of distributed processing Sequence diagram showing an operation procedure example of restoration processing
  • Block diagram showing an example of the hardware configuration of the controller The figure which shows the system structural example of the secret sharing system which concerns on the modification 2 of Embodiment 1.
  • Block diagram showing a hardware configuration example of a proxy server Sequence diagram showing an operation procedure example of distributed processing Sequence diagram showing an operation procedure example of restoration processing The figure which shows the system configuration example of the secret sharing system which concerns on Embodiment 3.
  • Sequence diagram showing an operation procedure example of distributed processing Sequence diagram showing an operation procedure example of restoration processing A table showing an example of original data, physical random numbers, and distributed data Table showing an example of physical random numbers and encrypted original data Table showing an example of distributed encrypted distributed data generated by distributed processing of encrypted original data
  • the secret sharing system performs a secret sharing process (hereinafter “distributed process”) on original data that is secret data to store (store) a plurality of generated shared data in a plurality of storage devices. To do.
  • the secret sharing system restores original data which is secret data by performing restoration processing using a plurality of shared data.
  • hospital data electronic medical record data
  • personal information such as name, age, sex, address, occupation, and medical history of patients managed in a hospital.
  • the original data is not limited to the hospital data described above as long as it is secret data.
  • FIG. 1 is a diagram showing a system configuration example of a secret sharing storage system 5 according to the first embodiment.
  • the secret sharing storage system 5 includes a main controller 10, a random number generator 20, a plurality of hospital terminals H1,..., Hm, and a plurality of share holders S1,. Both m and n are integers of 2 or more, and may have the same value or different values.
  • Each of the plurality of hospital terminals H1 to Hm is communicably connected to the main controller 10 via the network NW1.
  • the network NW1 may be a wide area network such as the Internet.
  • the network NW1 may be a private network such as a VPN (Virtual Private Network) that virtually connects the hospital terminals H1 to Hm and the main controller 10, or may be a dedicated line.
  • VPN Virtual Private Network
  • Each of the plurality of share holders S1 to Sn as an example of the storage device is communicably connected to the main controller 10 via the network NW2.
  • the network NW2 may be a wide area network such as the Internet.
  • the network NW2 may be a private network such as a VPN that virtually connects the shareholders S1 to Sn and the main controller 10, or may be a dedicated line.
  • the hospital terminals H1 to Hm which are examples of user terminals, have the same internal configuration to simplify the description, and the hospital terminal H1 will be described as an example as necessary.
  • Each of the hospital terminals H1 to Hm is a user terminal used by an administrator who manages hospital data such as electronic medical record data.
  • a hospital terminal is illustrated as the user terminal here, it may be a business terminal used in a company or organization that handles secret data. Therefore, the original data which is the secret data is not only hospital data but also personal pension record data, product design data, experimental data, unpublished image data, unpublished music data and the like.
  • the random number generator 20 is a physical random number generator that generates a physically varying value (in other words, a value that a malicious third party cannot easily guess) as random number data.
  • Examples of the random number data include data such as thermal noise and quantum fluctuation.
  • the random number generator 20 is preferably a physical random number generator, but may be a pseudo random number generator. When the ramp secret sharing method is used for this method, part of the original data may be part of the random number of this method.
  • the main controller 10 When the main controller 10 receives the hospital data transmitted from at least one of the hospital terminals H1 to Hm (for example, the hospital terminal H1), it performs distributed processing using the physical random number generated by the random number generator 20. Then, a plurality of (for example, n) pieces of distributed data are generated.
  • the main controller 10 has a recording device 13 (see FIG. 2) that stores the physical random number generated by the random number generator 20, and uses this physical random number to perform distributed processing of hospital data.
  • the main controller 10 When executing the distributed processing, the main controller 10 has the same number (for example, n) of pieces of distributed information that indicates how the original data (hospital data) has been processed for distributed processing (for example, n pieces). To generate.
  • the distributed information is, in addition to the above-described information about the distributed data generation method, Bibliographical information of the distributed data, the file name of the original data, the file name of the distributed data, the date and time of the distributed processing, the size of the distributed data, It may include a part of the physical random number used to generate the distributed data (that is, the distributed processing), information on the storage location, authentication information for accessing the storage location, and the like.
  • the main controller 10 stores the set of the first distributed data and the corresponding first distributed information in the first share holder, and stores it in correspondence with the second distributed data.
  • the set of the second shared information to be stored is stored in the second share holder, and similarly, the set of the third shared data and the corresponding third shared information is stored in the third share holder.
  • the main controller 10 restores the original data (that is, the hospital data) by performing restoration processing on the hospital data (an example of the original data) using the plurality of distributed data already generated and the distributed information corresponding to each distributed data. Data). If the physical random number used in the distributed processing is stored in the recording device 13, the main controller 10 may restore the original hospital data from the plurality of distributed data using the physical random number.
  • FIG. 2 is a block diagram showing a hardware configuration example of the main controller 10.
  • the main controller 10 is configured to include at least a processor 11, a memory 12, a recording device 13, and a communication circuit 14.
  • the processor 11 is configured by using, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or an FPGA (Field Programmable Gate Array), and cooperates with the memory 12 in accordance with programs and data stored in advance in the memory 12. Operate.
  • a CPU Central Processing Unit
  • DSP Digital Signal Processor
  • FPGA Field Programmable Gate Array
  • the processor 11 uses the physical random number received from the random number generator 20 via the communication circuit 14 to transmit to the hospital sent from at least one of the hospital terminals H1 to Hm (for example, the hospital terminal H1) via the communication circuit 14. Performs distributed processing of data.
  • the processor 11 transmits, via the communication circuit 14, a set of the same number of pieces of distributed data generated by the distributed processing and shared information corresponding to the distributed data to the corresponding share holders S1 to Sn.
  • the processor 11 obtains a set of shared data and corresponding shared information from each of the plurality of share holders S1 to Sn, a predetermined value (threshold value) required for the restoration process, or all the shared data and the shared information.
  • the hospital data that is the original data is restored using the set of information.
  • the memory 12 is configured using, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory), and is a program and data required to execute the operation of the main controller 10, and further, data generated during the operation or Hold information temporarily.
  • the RAM is, for example, a work memory used when the main controller 10 operates.
  • the ROM stores and holds in advance programs and data for controlling the main controller 10, for example.
  • the recording device 13 is configured by using, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive), and stores the physical random number generated by the random number generator 20.
  • an HDD Hard Disk Drive
  • SSD Solid State Drive
  • the communication circuit 14 is configured using a circuit that communicates with various devices communicatively connected to the main controller 10.
  • the communication circuit 14 performs data communication with each of the plurality of hospital terminals H1 to Hm via the network NW1.
  • the communication circuit 14 performs data communication with each of the plurality of share holders S1 to Sn via the network NW2.
  • the main controller 10 and the random number generator 20 may be connected by wire or wirelessly.
  • Each of the share holders S1 to Sn is a recording device that stores any of the distributed data generated by the main controller 10.
  • Each of the share holders S1 to Sn may be an online cloud server as viewed from the main controller 10 or a storage built in the main controller.
  • FIG. 3 is a block diagram showing a hardware configuration example of the share holders S1 to Sn.
  • Each of the share holders S1 to Sn has the same internal configuration, specifically, a configuration including at least a processor 41, a memory 42, a recording device 43, and a communication circuit 44.
  • the processor 41 is configured by using, for example, a CPU, DSP, or FPGA, and operates according to a program and data stored in advance in the memory 42 in cooperation with the memory 42.
  • the processor 41 receives one of the sets of distributed data and distributed information transmitted from the main controller 10 via the communication circuit 44, the processor 41 stores (stores) the set of distributed data and distributed information in the recording device 43.
  • the processor 41 receives an acquisition request for distributed data transmitted from the main controller 10 via the communication circuit 44
  • the processor 41 reads and acquires a set of distributed data and distributed information stored in the recording device 43, and performs communication. It is transmitted to the main controller 10 via the circuit 44.
  • the memory 42 is configured by using, for example, a RAM and a ROM, and temporarily holds programs and data required to execute the operations of the share holders S1 to Sn, and further data or information generated during the operation.
  • the RAM is, for example, a work memory used when the share holders S1 to Sn are operated.
  • the ROM stores and holds in advance programs and data for controlling the share holders S1 to Sn, for example.
  • the recording device 43 is configured by using, for example, an HDD or SSD, and stores (stores) any set of distributed data and distributed information generated by the distributed processing of the main controller 10.
  • the communication circuit 44 is configured using a circuit that communicates with the main controller 10.
  • the communication circuit 44 performs data communication with the main controller 10 via the network NW2.
  • the distribution process and the restoration process were executed at the hospital terminals in each hospital. Therefore, an expensive random number generator such as the random number generator 20 is required in each hospital terminal, and an increase in cost associated with the construction of the secret sharing system in the hospital cannot be avoided.
  • the secret sharing storage system 5 only one random number generator 20 is provided corresponding to the main controller 10.
  • the main controller 10 performs distributed processing on the original data (that is, hospital data) transmitted from the hospital terminal (for example, the hospital terminal H1).
  • FIG. 4 is a sequence diagram showing an operation procedure example of distributed processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • the hospital terminal H1 requests (requests) the distributed processing of the hospital data ODH1 (an example of original data) to the main controller 10
  • the hospital data ODH1 of plaintext data is sent to the main controller 10. Is transmitted (T1).
  • the main controller 10 receives the hospital data ODH1 of plaintext data from the hospital terminal H1 via the network NW1.
  • the main controller 10 acquires the physical random number generated by the random number generator 20 at the time of receiving the hospital data ODH1 and stores it in the recording device 13 (T2).
  • the main controller 10 may temporarily store the acquired physical random number in the memory 12 without storing it in the recording device 13, and may delete the physical random number after executing the distributed processing in step T3.
  • the acquired physical random number is deleted so that information necessary for restoration is not left in the main controller 10.
  • the main controller 10 performs the distributed processing of the hospital data ODH1 using this physical random number, and creates a plurality (n) of distributed data H1D1 to H1Dn and respective distributed data so as to match the arrangement number of the share holders S1 to Sn. A pair with the corresponding shared information is generated (T3).
  • the main controller 10 delete the hospital data ODH1 that is the original data after executing the distributed processing in step T3.
  • the main controller 10 transmits a set of the generated distributed data H1D1 and the distributed information corresponding to the distributed data H1D1 to the share holder S1 via the network NW2 (T4).
  • the shareholder S1 stores the set of the distributed data H1D1 and the distributed information corresponding to the distributed data H1D1 received from the main controller 10 in the recording device 43 (T5).
  • the main controller 10 executes the same processing as that of step T5 for other share holders, and sets the generated distributed data H1Dn and the distributed information corresponding to the distributed data H1Dn via the network NW2.
  • the share holder Sn stores the set of the distributed data H1Dn and the distributed information corresponding to the distributed data H1Dn received from the main controller 10 in the recording device 43 (T7).
  • the distributed data stored in each of the share holders S1 to Sn is plaintext data (in other words, unencrypted data).
  • the hospital data may already be encrypted in the hospital terminal H1, and the distributed data is encrypted distributed data. Further, although the case where the distributed processing is performed on the hospital data ODH1 from the hospital terminal H1 is shown here, the distributed processing can be similarly performed on the hospital data from the other hospital terminals.
  • FIG. 5 is a sequence diagram showing an operation procedure example of restoration processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • each of the share holders S1 to Sn stores the corresponding distributed data H1D1 to H1Dn in the recording device 43 (T11, T12).
  • the hospital terminal H1 specifies the file name of the hospital data to be restored (T13).
  • the main controller 10 Based on the file name specified by the hospital terminal H1, the main controller 10 sends to the shareholder S1 an acquisition request for the distributed data generated corresponding to that file name (T14). In response to this acquisition request, the shareholder S1 reads the set of the shared data H1D1 stored in the recording device 43 and the corresponding shared information, and returns it to the main controller 10 (T15).
  • the main controller 10 sends a request for the distributed data generated corresponding to the file name to the share holder Sn (T16).
  • the shareholder Sn reads the distributed data H1Dn and the corresponding distributed information stored in the recording device 43, and returns the read data to the main controller 10 (T17).
  • the main controller 10 receives, via the network NW2, the distributed data and the corresponding distributed information sets transmitted from each of the shareholders S1 to Sn.
  • the main controller 10 may read and acquire the physical random number (T18).
  • the physical random number acquired in step T18 is not essential for restoring the distributed data H1D1 to H1Dn, and thus step T18 may be omitted.
  • the main controller 10 performs a restoration process using each of the plurality of distributed data H1D1 to H1Dn to restore the hospital data ODH1 that is the original data (T19).
  • the acquired physical random number may be used for the restoration process in step T19.
  • the main controller 10 transmits the restored hospital data ODH1 (that is, desired hospital data) to the hospital terminal H1 (T20).
  • the main controller 10 may omit the process of step T18. That is, the main controller 10 does not have to keep holding the physical random number stored in step T2.
  • the main controller 10 can restore the hospital data ODH1 that is the original data by using the shared information corresponding to the shared data transmitted from each of the shareholders S1 to Sn.
  • the hospital terminal H1 receives the hospital data ODH1 transmitted from the main controller 10 (T21). As a result, the hospital terminal H1 can safely obtain the hospital data ODH1.
  • the main controller 10 performs the distribution process and the restoration process of the hospital data that is the original data transmitted from the hospital terminal. Therefore, one random number generator 20 is installed in close proximity to the single main controller 10. For security reasons, it is preferable that the random number generator 20 be installed as close to the main controller 10 as possible. Therefore, the random number generator 20 may be provided inside the main controller 10. That is, the main controller 10 itself may have the function of the random number generator 20. Although the random number generator 20 may be installed remotely from the main controller 10 and connected to the main controller 10 via a network (not shown), a secure network is provided between the main controller 10 and the random number generator 20. preferable.
  • each of the hospital terminals H1 to Hm can request the main controller 10 arranged outside each hospital to perform distributed processing of the original data without having the configuration of the main controller 10. Therefore, compared to the case where the hospital terminals H1 to Hm have the configurations of the main controller 10 and the random number generator 20, respectively, the number of the main controller 10 and the random number generator 20 arranged is one, and thus the secret sharing storage system. 5 can be constructed at low cost.
  • the secret sharing storage system 5 includes the main controller 10 communicably connected to at least one hospital terminal H1 to Hm, each of the n share holders S1 to Sn, and the random number generator 20. Have.
  • the main controller 10 receives the hospital data ODH1 sent from the hospital terminal H1, it acquires the physical random number generated by the random number generator 20 and uses the physical random number to perform distributed processing on the hospital data ODH1 to distribute n pieces of data. Data H1D1 to H1Dn are generated.
  • the main controller 10 stores each of the n pieces of distributed data in the corresponding n share holders S1 to Sn.
  • the secret sharing storage system 5 uses the random number generator 20 that generates the physical random number used for secret sharing, regardless of the number of hospital terminals (that is, the number of users) that require secret sharing of the original data.
  • the cost increase due to installation can be suppressed. Therefore, the secret sharing storage system 5 can support realization of safe storage of the original data to be concealed while suppressing the cost increase due to the system construction as much as possible.
  • the main controller 10 acquires n pieces of distributed data H1D1 to H1Dn stored in each of the n share holders S1 to Sn in response to an instruction to restore the original data from the hospital terminal H1.
  • the main controller 10 restores the original hospital data ODH1 from the n pieces of distributed data H1D1 to H1Dn and sends it to the hospital terminal H1.
  • the secret distributed storage system 5 can narrow down the execution subjects that can perform the restoration process so that the restoration process of the hospital data that is the original data cannot be performed other than the main controller 10. That is, restoration of the original data by a third party other than the person who uses the main controller 10 can be effectively suppressed.
  • the main controller 10 can also obtain, for example, the hospital data managed by the hospital terminal (that is, the original data) with malicious intent of plaintext data.
  • the administrator of the main controller 10 does not know the storage destination of the distributed data.
  • FIG. 6 is a diagram showing a configuration example of the secret sharing storage system 5A according to the first modification of the first embodiment.
  • the same components as those of the shared secret storage system 5 according to the first embodiment are denoted by the same reference numerals, and the description thereof will be simplified or omitted.
  • the same number of controllers C1 to Cn as the number of share holders S1 to Sn installed are provided in a one-to-one correspondence. To do.
  • the main controller 10 receives hospital data (for example, hospital data ODH1) from at least one of the hospital terminals H1 to Hm via the network NW1, and the physical data generated by the random number generator 20.
  • Hospital data for example, hospital data ODH1
  • Distributed processing of hospital data is performed using random numbers, and a total of n distributed data H1D1 to H1Dn and logical distributed information are generated.
  • the logical distributed information is generated by the distributed processing of hospital data in the main controller 10.
  • the logical distribution information includes the file name of the original data, each file name of the n pieces of distributed data, the execution date and time of the distributed processing, and the size of the distributed data, in addition to the information on the method of generating the n pieces of distributed data.
  • the main controller 10 cannot determine the respective information of the share holders S1 to Sn in which the distributed data is finally stored (saved) based on the logical distribution information.
  • the main controller 10 performs a distribution process of distributing each of a total of n pieces of distributed data H1D1 to H1Dn and the above-mentioned logical distribution information to a plurality of controllers C1 to Cn via the network NW2.
  • the main controller 10 preferably deletes the hospital data, which is the original data, after executing the distributed processing.
  • FIG. 7 is a block diagram showing a hardware configuration example of the controllers C1 to Cn.
  • Each of the controllers C1 to Cn has the same internal configuration, specifically, a configuration including at least a processor 51, a memory 52, a recording device 53, and a communication circuit 54.
  • the processor 51 is configured by using, for example, a CPU, DSP, or FPGA, and operates according to a program and data stored in advance in the memory 52 in cooperation with the memory 52.
  • the processor 51 receives the distributed data and the logical distributed information transmitted from the main controller 10 via the communication circuit 54.
  • the processor 51 uses the logical distribution information and the information of the storage destination (for example, the share holder S1) corresponding to the own controller that is stored in advance, and the entity distribution information regarding the distributed data received by the own controller (for example, the controller C1). To generate.
  • the entity distribution information is distribution information (see Embodiment 1) related to generation of corresponding distributed data.
  • the processor 51 stores the corresponding distributed data in the corresponding shareholder (for example, the shareholder S1) according to the entity distribution information corresponding to the distributed data.
  • the memory 52 is configured by using, for example, a RAM and a ROM, and temporarily holds programs and data necessary for executing the operations of the controllers C1 to Cn, and further data or information generated during the operation.
  • the RAM is, for example, a work memory used when the controllers C1 to Cn operate.
  • the ROM stores and holds in advance programs and data for controlling the controllers C1 to Cn, for example.
  • the recording device 53 is configured by using, for example, an HDD or an SSD, and stores (stores) any set of distributed data and real distributed information generated by the distributed processing of the main controller 10.
  • the communication circuit 54 is configured using a circuit that communicates with the main controller 10 or a shareholder (eg, shareholder S1) corresponding to the own controller.
  • the communication circuit 54 performs data communication with the main controller 10 via the network NW2. Further, the communication circuit 54 performs data communication with a share holder (for example, share holder S1) corresponding to its own controller.
  • Each of the plurality of controllers C1 to Cn stores one set of distributed data and substance logical information for any corresponding share holder among the share holders S1 to Sn.
  • the respective managers of the plurality of controllers C1 to Cn know the storage location of the corresponding distributed data and the entity distribution information including the authentication information for accessing the storage location, but other distributed data.
  • the entity distribution information corresponding to can not be grasped.
  • Each of the controllers C1 to Cn is connected to a corresponding share holder among the share holders S1 to Sn, and holds authentication information for the corresponding share holder. Therefore, unlike the first embodiment, the main controller 10 can only indirectly receive the individual distributed data via each of the controllers C1 to Cn after the distributed processing of the original data. Not all distributed data can be directly acquired from each of S1 to Sn.
  • the secret sharing storage system 5A is provided corresponding to each of the n share holders S1 to Sn, and is communicably connected to the main controller 10. It further has n controllers C1 to Cn.
  • the main controller 10 generates logical distribution information regarding generation of each of the plurality of distributed data H1D1 to H1Dn.
  • the main controller 10 associates each of the n pieces of distributed data with the logical distribution information, and sends the data to each of the corresponding n controllers C1 to Cn.
  • Each of the n controllers C1 to Cn receives distributed data and logical distribution information corresponding to its own device (own controller) from the main controller 10, and uses the logical distribution information to identify the distributed data received by the own device. Generate distributed information.
  • Each of the n controllers C1 to Cn stores, in association with each of the corresponding n share holders S1 to Sn, the entity shared information and the distributed data received by the own device (own controller).
  • the secret distributed storage system 5A can safely store the distributed data so that the administrator of the main controller 10 does not know the final storage destination of the distributed data. Therefore, according to the secret distributed storage system 5A, the administrator who uses the main controller 10 can effectively prevent the leakage of highly confidential hospital data as a malicious attack.
  • FIG. 8 is a diagram showing a configuration example of the secret sharing storage system 5B according to the second modification of the first embodiment.
  • the same components as those of the shared secret storage system 5A according to the first modification of the first embodiment are denoted by the same reference numerals, and the description thereof will be simplified or omitted.
  • two share holders S1A and S1B are connected to one controller (for example, controller C1). Therefore, the total number of controllers is less than the total number of shareholder.
  • the controller C1 stores, in each of the two share holders S1A and S1B, the distributed data received by the own controller and the entity shared information generated to correspond to the distributed data in association with each other.
  • each administrator of the controllers C1 to Cn has only authentication information for accessing the shareholder corresponding to the own controller. do not do. Therefore, according to the secret distributed storage system 5B, the administrator of the main controller 10 cannot directly access the share holders S1 to Sn to acquire the distributed data.
  • controller C1 is shown here as being communicably connected between the two share holders S1A and S1B, at least one of the other controllers C2 to Cn is connected to a plurality of share holders. May be communicatively connected with.
  • At least one controller (for example, the controller C1) among the n controllers C1 to Cn is communicably connected to the plurality of share holders S1A and S1B.
  • the controller C1 stores, in each of the plurality of share holders S1A and S1B, the distributed data received by the own controller and the entity shared information generated to correspond to the distributed data in association with each other.
  • two or more share holders can be connected to one controller. Therefore, it is possible to appropriately construct a backup for storing the distributed data and the entity shared information in the case where any of the plurality of share holders fails.
  • Modification 3 of Embodiment 1 In the second modification of the first embodiment, only one main controller 10 is arranged. Therefore, for example, when either the distributed processing or the restored processing of the hospital data needs to be performed and the main controller 10 malfunctions due to a disaster or a failure, the distributed processing or the restored processing of the hospital data can be appropriately executed. Disappear.
  • the third modification of the first embodiment an example will be described in which, when the main controller 10 malfunctions or detects a sign of the malfunction, another main controller that performs either distributed processing or restoration processing is arranged.
  • FIG. 9 is a diagram showing a configuration example of the secret sharing storage system 5C according to the third modification of the first embodiment.
  • the same components as those of the shared secret storage system 5B according to the second modification of the first embodiment are denoted by the same reference numerals, and the description thereof will be simplified or omitted.
  • a backup main controller 10A is arranged separately from the main controller 10.
  • the main controller 10 and the main controller 10A may be geographically distant from each other or close to each other so that malfunctions do not occur simultaneously due to a disaster.
  • the main controller 10A is connected to the random number generator 20A and acquires the physical random number generated by the random number generator 20A.
  • the random number generator 20A is preferably configured by a physical random number generator like the random number generator 20, but may be configured by a pseudo random number generator.
  • the main controller 10A is connected to each of the hospital terminals H1 to Hm via the network NW1, and is also connected to each of the controllers C1 to Cn via the network NW2.
  • the main controller 10 monitors the life and death of its own device. For example, due to the occurrence of a disaster, the main controller 10 can detect a malfunction or a sign of the malfunction. When the detection is performed, the main controller 10A arranged for backup and the logical distribution information generated by the main controller 10 and the distributed information are distributed to the main controller 10A. Send notification of delegation of authority for processing and restoration processing.
  • the main controller 10A When the main controller 10A receives the logically distributed information and the authority delegation notification transmitted from the main controller 10, the main controller 10A continues the processing (for example, the distributed processing and the restoration processing) of the main controller 10 according to the authority delegation notification and continues. .. It should be noted that the main controller 10A may operate independently without being connected to the main controller 10 without any instruction from the main controller 10 such as a notification of delegation of authority.
  • main controller 10A may monitor the life of the main controller 10 instead of the main controller 10 monitoring the life of the device itself.
  • An external PC (not shown) or a mobile terminal (not shown) may monitor the main controller 10 for life and death.
  • the backup main controller 10A acts on its behalf. Therefore, the robustness of the secret sharing storage system 5C is improved.
  • the random number generator 20A is not provided, and the main controller 10A generates a physical random number from the random number generator 20 if it can be connected to the random number generator 20 connected to the main controller 10. You may get it.
  • the main controller 10A is eventually added, but since it is possible to avoid an increase in the number of random number generators installed, it is possible to suppress cost increase.
  • the main controller for backup is not limited to one main controller 10A, and a plurality of main controllers may be provided.
  • the secret sharing storage system 5C includes the main controller 10A communicably connected to at least one hospital terminal H1 to Hm, n share holders S1 to Sn, the random number generator 20A, and the main controller 10. Is further provided.
  • the main controller 10 detects a malfunction of its own device, the main controller 10 sends the logical distribution information and the authority transfer notification of the distributed processing and the restoration processing to the main controller 10A.
  • the main controller 10A receives the logical distribution information and the authority transfer notification from the main controller 10, the main controller 10A performs the hospital data distribution process and the restoration process on behalf of the main controller 10.
  • the main controller 10A does not interrupt the distributed processing and the restoration processing of the hospital data, and the distributed data based on the hospital data is safe. Storage and restoration of hospital data as needed can be continued.
  • FIG. 10 is a diagram showing a configuration example of the secret sharing storage system 5D according to the second embodiment.
  • the same components as those of the shared secret storage system 5 according to the first embodiment are denoted by the same reference numerals, and the description thereof will be simplified or omitted.
  • the secret sharing storage system 5D has a configuration further including a proxy server 70 and a random number generator 80 in addition to the configuration of the secret sharing storage system 5A according to the first modification of the first embodiment.
  • the proxy server 70 and each of the controllers C1 to Cn are connected via the network NW3.
  • the network NW3 may be the same network as the networks NW1 and NW2, or may be a different network.
  • the network NW3 may be a wide area network such as the Internet, a private network such as a VPN that virtually connects the proxy server 70 and each of the controllers C1 to Cn, or a dedicated line. Good.
  • the proxy server 70 and each of the hospital terminals H1 to Hm may be communicably connected via a network such as the network NW3.
  • the random number generator 80 which is an example of the second physical random number generator, is a value that physically changes (in other words, a value that is difficult for a malicious third party to easily guess), similarly to the random number generator 20. Is a random number generator that generates as a random number.
  • the random number generator 80 is a physical random number used for communication between each of the hospital terminals H1 to Hm and each of the main controller 10 and each of the controllers C1 to Cn (for example, for encryption and decryption). Common key) is generated. Note that pseudo random numbers may be used instead of physical random numbers.
  • the physical random number generated by the random number generator 80 is different from the physical random number used to generate the distributed data (that is, the physical random number generated by the random number generator 20).
  • the proxy server 70 as an example of the communication management server stores the physical random number (an example of the second physical random number) generated by the random number generator 80 in the recording device 73 as stream cipher information.
  • the proxy server 70 transmits to the hospital terminal H1 a physical random number positioned as a common key used for encryption or decryption of communication between each of the hospital terminals H1 to Hm and each of the main controller 10 and each of the controllers C1 to Cn. To do.
  • the hospital terminal H1 stores the common key transmitted from the proxy server 70 in the memory in the hospital terminal H1.
  • the proxy server 70 also transmits the common key to each of the controllers C1 to Cn via the network NW3.
  • Each of the controllers C1 to Cn stores the common key received from the proxy server 70 in each recording device 53 in its own controller. In this way, the same common key transmitted (distributed) from the proxy server 70A is held in each of the hospital terminal H1 and the controllers C1 to Cn.
  • FIG. 11 is a block diagram showing a hardware configuration example of the proxy server 70.
  • the proxy server 70 is configured to include at least a processor 71, a memory 72, a recording device 73, and a communication circuit 74.
  • the processor 71 is configured by using, for example, a CPU, DSP, or FPGA, and operates according to a program and data stored in advance in the memory 72 in cooperation with the memory 72.
  • the processor 71 acquires the physical random number (common key) transmitted from the random number generator 80 via the communication circuit 74.
  • the processor 71 transmits the common key to each of the hospital terminal H1 and the controllers C1 to Cn via the communication circuit 74.
  • the memory 72 is configured by using, for example, a RAM and a ROM, and temporarily holds a program and data required to execute the operation of the proxy server 70, and further, data or information generated during the operation.
  • the RAM is, for example, a work memory used when the proxy server 70 operates.
  • the ROM stores and holds, in advance, a program and data for controlling the proxy server 70, for example.
  • the recording device 73 is configured by using, for example, an HDD or SSD, and stores the physical random number generated by the random number generator 80.
  • the communication circuit 74 is configured by using a circuit that communicates with various devices communicatively connected to the proxy server 70.
  • the communication circuit 74 performs data communication with each of the plurality of hospital terminals H1 to Hm.
  • the communication circuit 74 performs data communication with each of the plurality of controllers C1 to Cn via the network NW3.
  • the proxy server 70 and the random number generator 80 may be connected by wire or wirelessly.
  • the hospital terminal (for example, the hospital terminal H1) encrypts the original hospital data OD using the common key transmitted from the proxy server 70, and transmits the encrypted hospital data E(OD) via the network NW1. It is transmitted to the main controller 10.
  • the hospital data OD which is the original data is encrypted
  • the encrypted hospital data is described as E(OD) for convenience.
  • the main controller 10 receives the hospital data E(OD) encrypted by the hospital terminal (for example, the hospital terminal H1) from the hospital terminal H1 and encrypts it using the physical random number generated by the random number generator 20. Distributed processing of hospital data E (OD) is performed.
  • the main controller 10 transmits each of the plurality of encrypted distributed data E(ODH1) to E(ODHn) generated by the distributed processing to the corresponding controller C1 to Cn via the network NW2. ..
  • FIG. 12 is a sequence diagram showing the procedure of distributed processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • the proxy server 70 first acquires the physical random number generated by the random number generator 80 as stream cipher information, and uses this physical random number as a common key, before executing the distributed processing. It transmits to each of the controllers C1 to Cn and the hospital terminal H1 (T31, T32, T33).
  • Each of the controllers C1 to Cn stores the common key received from the proxy server 70 in the recording device 53.
  • the hospital terminal H1 stores the common key received from the proxy server 70 in the memory 12 or the recording device 13.
  • the hospital terminal H1 encrypts the original data OD (for example, hospital data) with this common key (T34).
  • the hospital terminal H1 transmits the encrypted hospital data E(OD) as an example of the encryption source data to the main controller 10 (T35).
  • the main controller 10 acquires the physical random number generated by the random number generator 20 at the time of receiving the encrypted hospital data E(OD), for example, and stores it in the recording device 13 (T36).
  • the main controller 10 may temporarily store the acquired physical random number in the memory 12 without storing it in the recording device 13, and may delete the physical random number after performing the distributed processing in step T37.
  • the main controller 10 uses this physical random number to perform distributed processing of the encrypted hospital data E(OD), and a plurality (for example, n) of encrypted data is encrypted so as to match the number of controllers C1 to Cn arranged.
  • a set of each of the distributed data E(H1D1) to E(H1Dn) and the distributed information corresponding to each encrypted distributed data is generated (T37).
  • Each of the encrypted distributed data E(H1D1) to E(H1Dn) is an example of the encrypted distributed data.
  • the main controller 10 may delete the encrypted hospital data E(OD) after executing the distributed processing of step T37.
  • the main controller 10 sends a set of encrypted distributed data E (H1D1) and corresponding distributed information to the controller C1 (T38).
  • the controller C1 reads the common key stored in the recording device 53 in step T31, decrypts the encrypted distributed data E(H1D1) using this common key, and obtains the distributed data H1D1 that is plaintext data ( T39).
  • the controller C1 stores the set of the shared data H1D1 obtained by the decoding and the corresponding shared information in the corresponding share holder S1 (T40).
  • the main controller 10 also performs the same processing as steps T38 to T40 on the other controllers, and sends a pair of the encrypted distributed data E(H1Dn) and the corresponding distributed information to the controller Cn. (T41).
  • the controller Cn reads the common key stored in the recording device 53 in step T32, decrypts the encrypted distributed data E(H1Dn) using this common key, and obtains the distributed data H1Dn that is plaintext data ( T42).
  • the controller Cn stores the set of the shared data H1Dn obtained by the decoding and the corresponding shared information in the corresponding share holder Sn (T43).
  • each of the controllers C1 to Cn decrypts the distributed data E(H1D1) to E(H1Dn) encrypted with the common key received from the proxy server 70, and distributes the distributed data H1D1 to Obtain H1Dn.
  • Each of the controllers C1 to Cn stores the set of the shared data H1D1 to H1Dn obtained by the decoding and the corresponding shared information in the corresponding share holder S1 to Sn. Therefore, each of the share holders S1 to Sn stores a set of the shared data H1D1 to H1Dn that is plaintext data and the corresponding shared information.
  • FIG. 13 is a sequence diagram showing an operation procedure example of restoration processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • the proxy server 70 first obtains the physical random number generated by the random number generator 80 as stream cipher information, and uses this physical random number as a common key in the controller. It transmits to each of C1 to Cn and the hospital terminal H1 (T51, T52, T53).
  • Each of the controllers C1 to Cn stores the common key received from the proxy server 70 in the recording device 53.
  • the hospital terminal H1 stores the common key received from the proxy server 70 in the memory 12 or the recording device 13. Further, different common keys may be used during distributed processing and restoration processing, or the same common key may be used. When the same common key is used, steps T51 to T53 can be omitted.
  • the hospital terminal H1 When requesting (requesting) the restoration process of the hospital data OD (an example of the original data) from the main controller 10, the hospital terminal H1 specifies the file name of the hospital data to be restored (T54).
  • the main controller 10 Based on the file name specified by the hospital terminal H1, the main controller 10 sends to the controller C1 an acquisition request for the distributed data generated corresponding to the file name (T55).
  • the controller C1 reads the set of shared data H1D1 and corresponding shared information stored in the share holder S1 corresponding to its own controller.
  • the controller C1 reads the common key stored in the recording device 53 in step T51, encrypts the distributed data H1D1 using this common key, and obtains the encrypted distributed data E(H1D1) (T56).
  • the controller C1 transmits a set of encrypted shared data E(H1D1) and corresponding shared information to the main controller 10 (T57).
  • the main controller 10 acquires a set of shared information corresponding to the encrypted shared data E(H1D1).
  • the main controller 10 transmits to the controller Cn, an acquisition request for the distributed data generated corresponding to that file name (T58).
  • the controller Cn reads the set of shared data H1Dn and corresponding shared information stored in the share holder Sn corresponding to the own controller.
  • the controller Cn reads the common key stored in the recording device 53 in step T52, encrypts the distributed data H1Dn using this common key, and obtains the encrypted distributed data E(H1Dn) (T59).
  • the controller Cn transmits a set of encrypted shared data E(H1Dn) and corresponding shared information to the main controller 10 (T60).
  • the main controller 10 acquires a set of shared information corresponding to the encrypted shared data E(H1Dn).
  • the main controller 10 obtains the encrypted distributed data E(H1D1) to E(H1Dn) and the corresponding distributed information from all the controllers C1 to Cn. To receive.
  • the main controller 10 performs restoration processing based on each of the encrypted distributed data E(H1D1) to E(H1Dn) and the corresponding distributed information to obtain encrypted hospital data E(OD) ( T61).
  • the main controller 10 may perform the restoration process using the physical random number.
  • the main controller 10 transmits the encrypted hospital data E(OD) to the hospital terminal H1 (T62).
  • the hospital terminal H1 decrypts the encrypted hospital data E(OD) using the common key stored in the memory 12 or the recording device 13 to obtain the hospital data OD (desired original data) (T63).
  • the secret sharing storage system 5D of the second embodiment further includes the proxy server 70 communicably connected to the random number generator 80.
  • the proxy server 70 sends the common key generated by the random number generator 80 to each of the n controllers C1 to Cn and the hospital terminal (for example, the hospital terminal H1).
  • the main controller 10 receives the hospital data E(OD) encrypted by the hospital terminal H1 using the common key.
  • the main controller 10 uses the physical random number to perform distributed processing on the encrypted hospital data E(OD) to generate n pieces of encrypted distributed data E(H1D1) to E(H1Dn) to generate n units. To each of the controllers C1 to Cn.
  • each of the n controllers C1 to Cn receives encrypted distributed data E(H1D1) to E(H1Dn) corresponding to its own device (self controller) from the main controller 10, each of the controllers C1 to Cn uses a common key to The received distributed data E(H1D1) to E(H1Dn) are decoded.
  • the n controllers C1 to Cn store the distributed data H1D1 to H1Dn obtained by the decoding in the share holders S1 to Sn corresponding to their own devices.
  • the hospital data received from the hospital terminal has already been encrypted, so the contents of the hospital data are kept secret from the administrator of the main controller 10. it can.
  • the original data (hospital data) to be concealed is encrypted with the common key passed from the proxy server 70 different from the main controller 10 (that is, the common key that the main controller 10 cannot know)
  • the hospital terminal can transmit to the main controller 10 with peace of mind without worrying about leakage of hospital data by the administrator of the main controller 10.
  • the main controller 10 also sends an acquisition request for n distributed data to each of the n controllers C1 to Cn in response to a restoration instruction from the hospital terminal H1.
  • the n controllers C1 to Cn use the common key to encrypt the distributed data H1D1 to H1Dn stored in each of the share holders S1 to Sn, and the encrypted distributed data E(H1D1 ) To E(H1Dn) are generated and sent to the main controller 10.
  • the main controller 10 uses the physical random number to generate the encrypted hospital data E from the n encrypted distributed data E(H1D1) to E(H1Dn) received from each of the n controllers C1 to Cn. (OD) is restored and sent to the hospital terminal H1.
  • the main controller 10 when the main controller 10 performs the restoration process, the main controller 10 receives the encrypted distributed data from each of the controllers C1 to Cn. I can't. In other words, since the main controller 10 can only obtain encrypted data, the administrator of the main controller 10 cannot know the confidential information. Therefore, leakage of confidential information by the administrator of the main controller can be eliminated.
  • the physical random number generated by the random number generator 80 (that is, the common key used for the stream cipher) is transferred from the proxy server 70 to the hospital terminal (for example, the hospital terminal H1) and The same common key is transmitted to each of the controllers C1 to Cn.
  • the proxy server 70A assumes the use of another encryption method, performs distributed processing of the common key obtained by using the random number generator 80, and performs distributed processing on each of the controllers C1 to Cn.
  • the encryption method here is not particularly limited.
  • FIG. 14 is a diagram showing a configuration example of the secret sharing storage system 5E according to the third embodiment.
  • the same components as those of the secret sharing storage system 5D according to the second embodiment are denoted by the same reference numerals, and the description thereof will be simplified or omitted, and different contents will be described.
  • the proxy server 70A stores the physical random number generated by the random number generator 80 in the recording device 73 as cryptographic information.
  • the proxy server 70 performs distributed processing on the physical random number and transmits the distributed common key to the controllers C1 to Cn via the network NW3.
  • Each of the controllers C1 to Cn stores the distributed common key received from the proxy server 70A in the recording device 53 of its own controller.
  • the distributed common key is a physical random number generated as cryptographic information in a distributed manner, and therefore is different for each of the controllers C1 to Cn.
  • the proxy server 70A directly transmits the common key to the hospital terminal H1 without performing the distributed processing on the physical random number generated by the random number generator 80.
  • FIG. 15 is a sequence diagram showing an operation procedure example of distributed processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • the secret sharing storage system 5E makes preparations before starting the distributed processing.
  • advance preparation first, known device authentication and communication channel formation are performed between the hospital terminal H1 and the proxy server 70A (T101).
  • Device authentication is performed using, for example, a public key cryptosystem.
  • negotiation is performed between the hospital terminal H1 and the proxy server 70A, and a communication path capable of data communication is formed. VPN, for example, is used for this communication path.
  • T105 well-known device authentication and communication channel formation are performed between the main controller 10 and the controller C1 (T105). Similar device authentication and formation of a communication path are performed between the main controller 10 and the controllers after the controller C2, and finally known device authentication and formation of a communication path are performed between the main controller 10 and the controller Cn. (T106).
  • the hospital terminal H1 transmits the file information (including the file name and the data amount) of the original hospital data OD to the proxy server 70A (T107).
  • the proxy server 70A acquires and stores the physical random number generated by the random number generator 80 based on this file information (T108).
  • the random number generator 80 generates a physical random number having the same size length (number of digits) as the hospital data.
  • the proxy server 70A distributes the physical random number to generate a plurality (for example, n) of distributed common keys.
  • the proxy server 70A sends each of the n shared keys (hereinafter, "physical random number file") to the controllers C1 to Cn in a one-to-one correspondence (T109, T110). ..
  • the proxy server 70A sends the first physical random number file to the first controller, sends the second physical random number file to the second controller, and similarly sends the nth physical random number file to the nth physical random number file.
  • Each of the controllers C1 to Cn transmits and stores one of the n shared keys received from the proxy server 70A to each of the share holders S1 to Sn corresponding to its own controller.
  • the header information of the distributed common key includes the file name of the hospital data OD of the hospital terminal H1. Thereby, the distributed data of the hospital data OD, which will be described later, and the distributed common key are associated with the same file name (specifically, the file name of the hospital data OD).
  • each of the controllers C1 to Cn when storing the distributed common key (physical random number file) received from the proxy server 70A, each of the controllers C1 to Cn is in an unused state as a usage state of the distributed common key (physical random number file). Is set to "1". As will be described later, the value of this status flag is obtained by decrypting distributed data of encrypted hospital data (encrypted distributed data) with a distributed common key (physical random number file) to obtain distributed data that is plaintext data. When stored in each of the share holders S1 to Sn, it is changed to "0". That is, it is recognized whether the distributed common key (physical random number file) is unused or used depending on whether the value of the state flag is "1" or "0".
  • each of the controllers C1 to Cn can reject the reception of encrypted distributed data and can detect an error if there is no physical random number file (distributed random number data) having a status flag value of “1”.
  • the proxy server 70A transmits the distributed common key to each of the controllers C1 to Cn, and then transmits the common key to the hospital terminal H1 (T111).
  • the hospital terminal H1 stores the distributed common key in the memory 12 or the recording device 13.
  • the proxy server 70A may acquire and generate a physical random number from the random number generator 80 at the stage of preparation.
  • the hospital terminal H1 encrypts the hospital data OD using the common key stored in the memory 12 or the recording device 13, and obtains the encrypted hospital data E(OD) (T112).
  • the hospital terminal H1 transmits the encrypted hospital data E(OD) to the main controller 10 (T113).
  • the main controller 10 receives the encrypted hospital data E(OD).
  • the main controller 10 acquires the physical random number generated by the random number generator 20 at the time of receiving the encrypted hospital data E(OD), and stores it in the recording device 13.
  • the main controller 10 may delete the physical random number after executing the distributed processing. Further, the main controller 10 may obtain the physical random number generated at this stage, or may obtain the physical random number in advance.
  • the main controller 10 performs distributed processing using this physical random number, and stores a plurality of encrypted distributed data E(H1D1) to E(H1Dn) and the distributed information corresponding to each encrypted distributed data. A set is generated (T114). The main controller 10 transmits a set of shared information corresponding to each of the plurality of encrypted distributed data E(H1D1) to E(H1Dn) to each of the corresponding controllers C1 to Cn (T115, T116).
  • Each of the controllers C1 to Cn receives the set of shared information corresponding to each of the plurality of encrypted distributed data E(H1D1) to E(H1Dn), and then stores the distributed common data stored in the recording device 53.
  • the distributed data H1D1 to H1Dn which are plaintext data, are obtained by decryption using the key and stored in the corresponding share holders S1 to Sn.
  • the encrypted distributed data and the distributed common key are associated with each other by the file name, as described above.
  • the main controller 10 After finishing the distributed processing, the main controller 10 sends an end notification indicating that the distributed processing of the hospital data OD has ended to the hospital terminal H1 (T117).
  • Each of the controllers C1 to Cn changes the value of the status flag to "0" which is a value indicating the used state of the distributed common key (T118, T119).
  • the processes of steps T117 and T118 and T119 may be performed in the reverse order.
  • FIG. 16 is a sequence diagram showing an operation procedure example of restoration processing.
  • the hospital terminal H1 is illustrated as an example of the hospital terminal.
  • the restoration process is performed at an arbitrary time after the distributed process shown in FIG. 15 is performed (for example, half a year later).
  • the secret sharing storage system 5E performs the same preparation as before the start of the distributed processing before starting the restoration processing (T121 to T126). Since it is the same as the distributed processing, the description of the preparation is omitted.
  • the hospital terminal H1 specifies the file name of the desired original data (for example, hospital data OD) for which the restoration process is requested by the user's operation, and notifies the main controller 10 (T127). ..
  • This file name may be specified using plaintext data.
  • the main controller 10 calls only the respective header information of the distributed data H1D1 to H1Dn corresponding to the file name specified by the hospital terminal H1 to each of the controllers C1 to Cn (T128, T129).
  • Each of the controllers C1 to Cn reads out a set of shared information corresponding to the respective header information of the respective different shared data H1D1 to H1Dn stored in each of the share holders S1 to Sn, and sends it to the main controller 10.
  • the main controller 10 restores the header information of the hospital data OD based on the set of shared information corresponding to these header information (T130).
  • the main controller 10 acquires the file size (data amount) included in the restored header information, and transmits the data amount information to the hospital terminal H1 (T131).
  • the hospital terminal H1 specifies the file name and data amount of the hospital data OD to be restored and notifies the proxy server 70A (T132).
  • the proxy server 70A acquires the physical random number generated by the random number generator 80 based on this file information (T133). By specifying the file name and the data amount, the correspondence between the physical random number and the hospital data and the data size of the physical random number become clear.
  • the proxy server 70A performs a distributed process of the physical random numbers generated by the random number generator 80, and stores the distributed common key in the recording device 73.
  • the proxy server 70A transmits the distributed common key to each of the controllers C1 to Cn (T134, T135). Each of the controllers C1 to Cn temporarily stores the distributed common key in each of the corresponding share holders S1 to Sn.
  • This distributed common key head information includes the file name of the hospital data OD of the hospital terminal H1.
  • the proxy server 70A transmits the common key to the hospital terminal H1 (T136).
  • the hospital terminal H1 stores the common key in the memory 12 or the recording device 13.
  • the hospital terminal H1 notifies the main controller 10 by specifying the file name of the hospital data OD to be restored (T137).
  • the main controller 10 transmits a distributed data acquisition request to each of the controllers C1 to Cn.
  • each of the controllers C1 to Cn reads a set of shared information corresponding to any of the shared data H1D1 to H1Dn stored in each of the corresponding share holders S1 to Sn.
  • Each of the controllers C1 to Cn encrypts any of the corresponding distributed data H1D1 to H1Dn using the distributed common key stored in the recording device 53, and the encrypted distributed data E(H1D1) to Obtain each of E(H1Dn).
  • Each of the controllers C1 to Cn sends a set of shared information corresponding to each of the encrypted distributed data E(H1D1) to E(H1Dn) to the main controller 10 (T138, T139).
  • the main controller 10 When the main controller 10 receives a set of encrypted shared data and corresponding shared information from each of the controllers C1 to Cn, it is encrypted using the shared information corresponding to each encrypted distributed data. Perform restoration processing to restore hospital data. Thereby, the main controller 10 can obtain the encrypted hospital data E(OD) (T140). The main controller 10 transmits the encrypted hospital data E(OD) obtained by the restoration to the hospital terminal H1 (T141).
  • the hospital terminal H1 decrypts the encrypted hospital data E(OD) using the common key stored in the memory 12 or the recording device 13 in step T136 to obtain the hospital data OD (T142).
  • the hospital terminal H1 can acquire hospital data which is plaintext data.
  • the secret sharing storage system 5E since the shared common keys are distributed to the controllers C1 to Cn, the respective managers of the controllers C1 to Cn are stored in other controllers. I cannot know the distributed common key. Therefore, the leakage of confidential information by the administrator of each controller can be eliminated, and a system with higher security can be constructed. Further, as in the second embodiment, when the distributed processing is performed, the hospital data received from the hospital terminal is encrypted, so the administrator of the main controller 10 cannot know the content of the hospital data. Further, the main controller 10 does not know which physical random number was used for which hospital data.
  • the administrator of the main controller 10 receives the encrypted distributed data from each of the controllers C1 to Cn, and therefore cannot know the contents of the hospital data even if the restoration process is performed. That is, since only encrypted data is passed to the main controller 10, the administrator of the main controller 10 cannot know highly confidential hospital data in the form of plaintext data. Therefore, leakage of confidential information by the administrator of the main controller 10 can be eliminated.
  • FIG. 17 is a table showing an example of the original data OD, the physical random number A, and the distributed data ODD.
  • the original data OD (for example, hospital data) is configured by connecting, for example, eight original data OD1, original data OD2,..., Original data OD8.
  • the physical random number A is generated by the random number generator 20 for distributed processing, and is composed of, for example, eight random numbers A1, random numbers A2,... As shown in FIG. 17, when the Vernam cipher is used, for example, the size length of the original data OD and the size length of the physical random number A are the same, so the original data OD1 and the random number A1, the original data OD2 and the random number A2, The original data OD8 and the random number A8 both have the same size length.
  • the main controller 10 performs distributed processing using each of the original data OD1 to OD8 and each of the corresponding random numbers A1 to A8, the four distributed data OD1D, OD2D, and OD3D shown in FIG. , OD4D to obtain distributed data ODD.
  • the original data OD1D In the distributed data OD1D, the original data OD1, the original data OD5, the random number A1, and the random number A5 are subjected to exclusive OR (that is, XOR processing), so that "the original data OD1 XOR the original data OD5 XOR random number A1 XOR random number A5" Is generated like.
  • exclusive OR that is, XOR processing
  • the configuration example of the distributed data OD1D is not limited to the example shown in FIG. Therefore, the distributed data OD1D is stored as the corresponding share holder, for example, in the share holder S1.
  • the original data OD2, the original data OD6, the random number A2, and the random number A6 are subjected to exclusive OR (that is, XOR processing), so that the original data OD2 XOR original data OD6 XOR random number A2 XOR random number A6 Is generated.
  • exclusive OR that is, XOR processing
  • the configuration example of the distributed data OD2D is not limited to the example shown in FIG. Therefore, the distributed data OD2D is stored as the corresponding share holder, for example, in the share holder S2.
  • the original data OD3, the original data OD7, the random number A3, and the random number A7 are subjected to the exclusive OR (that is, XOR processing), so that the original data OD3 XOR original data OD7 XOR random number A3 XOR random number A7 Is generated.
  • the configuration example of the distributed data OD3D is not limited to the example shown in FIG. Therefore, the distributed data OD3D is stored as the corresponding share holder, for example, in the share holder S3.
  • the original data OD4, the original data OD8, the random number A4, and the random number A8 are subjected to exclusive OR (that is, XOR processing), so that the original data OD4 XOR original data OD8 XOR random number A4 XOR random number A8 Is generated.
  • exclusive OR that is, XOR processing
  • the configuration example of the distributed data OD4D is not limited to the example shown in FIG. Therefore, the distributed data OD4D is stored as the corresponding share holder, for example, in the share holder S4.
  • FIG. 18 is a table showing an example of the physical random number B and the encrypted original data (hospital data) E(OD).
  • the physical random number B is generated by the random number generator 80 for communication encryption or decryption, and is configured by connecting, for example, eight random numbers B1, random numbers B2,..., Random numbers B8.
  • the size length of the original data OD and the size length of the physical random number B are the same, so the original data OD1 and the random number B1, the original data OD2 and the random number B2, The original data OD8 and the random number B8 both have the same size length.
  • the hospital terminal for example, the hospital terminal H1
  • the hospital terminal H1 performs the encryption process using each of the original data OD1 to OD8 and each of the corresponding random numbers B1 to B8, the eight data shown in FIG. Encrypted hospital data E(OD) composed of codes 1 to 8 is obtained.
  • Encrypt 1 is generated as “random number B1 XOR original data OD1” by exclusive OR (that is, XOR processing) the original data OD1 and random number B1.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 1 is not limited to the example shown in FIG.
  • the cipher 2 is generated as "random number B2 XOR original data OD2" by exclusive OR (that is, XOR processing) the original data OD2 and the random number B2.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 2 is not limited to the example shown in FIG.
  • the cipher 3 is generated as "random number B3 XOR original data OD3" by exclusive OR (that is, XOR processing) the original data OD3 and the random number B3.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 3 is not limited to the example shown in FIG.
  • the cipher 4 is generated as "random number B4 XOR original data OD4" by exclusive OR (that is, XOR processing) the original data OD4 and the random number B4.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 4 is not limited to the example shown in FIG.
  • the cipher 5 is generated as "random number B5 XOR original data OD5" by exclusive OR (that is, XOR processing) the original data OD5 and the random number B5.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 5 is not limited to the example shown in FIG.
  • the cipher 6 is generated as "random number B6 XOR original data OD6" by exclusive OR (that is, XOR processing) the original data OD6 and the random number B6.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 6 is not limited to the example shown in FIG.
  • the cipher 7 is generated as "random number B7 XOR original data OD7" by exclusive OR (that is, XOR processing) the original data OD7 and the random number B7.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 7 is not limited to the example shown in FIG.
  • the cipher 8 is generated as "random number B8 XOR original data OD8" by exclusive OR (that is, XOR processing) the original data OD8 and the random number B8.
  • exclusive OR that is, XOR processing
  • the configuration example of the cipher 2 is not limited to the example shown in FIG.
  • the encrypted original data (hospital data) E(OD) is generated in the hospital terminal (for example, the hospital terminal H1) and transmitted from the hospital terminal H1 to the main controller 10.
  • the main controller 10 performs distributed processing on the encrypted original data (hospital data) E(OD) using the physical random number A generated by the random number generator 20, and the four encrypted data shown in FIG.
  • the distributed data (encryption 1D, encryption 2D, encryption 3D, encryption 4D) is generated.
  • FIG. 19 is a table showing an example of distributed encrypted distributed data E(ODD) generated by distributed processing of encrypted original data (hospital data) E(OD).
  • the encrypted distributed data E is composed of, for example, four ciphers 1D, 2D, 3D, and 4D. Cipher 1D to cipher 4D represent encrypted and encrypted original data.
  • the main controller 10 generates the encrypted original data (hospital data) E(OD) by the random number generator 20 according to the distributed data generation algorithm (distributed processing method) shown in FIG.
  • the distributed processing is performed using the physical random number A.
  • four distributed and encrypted original data specifically, cipher 1D to cipher 4D are generated.
  • the cipher 1D is generated as "cipher 1 XOR cipher 5 XOR random number B1 XOR random number B5" by performing exclusive OR (that is, XOR processing) of cipher 1, cipher 5, random number A1, and random number A5. It The configuration example of the cipher 1D is not limited to the example shown in FIG.
  • the cipher 2D is generated as "cipher 2 XOR cipher 6 XOR random number B2 XOR random number B6" by performing exclusive OR (that is, XOR processing) of cipher 2, cipher 6, random number A2, and random number A6. It
  • the configuration example of the encryption 2D is not limited to the example shown in FIG.
  • the cipher 3D is generated as "cipher 3 XOR cipher 7 XOR random number B3 XOR random number B7" by performing exclusive OR (that is, XOR processing) of cipher 3 and cipher 7, random number A3, and random number A7. It Note that the configuration example of the encryption 3D is not limited to the example shown in FIG.
  • the cipher 4D is generated as "cipher 4 XOR cipher 8 XOR random number B4 XOR random number B8" by performing exclusive OR (that is, XOR processing) of cipher 4, cipher 8, random number A4, and random number A8. It Note that the configuration example of the cipher 4D is not limited to the example shown in FIG.
  • the distributed encrypted original data (cipher 1D, cipher 2D, cipher 3D, cipher 4D) sent to each of the four controllers is, for example, "the distributed data generated by the distributed processing of the physical random number B.
  • Distributed random number data (“random number B1 XOR random number B5”, “random number B2 XOR random number B6”, “random number B3 XOR random number B7”, “random number B4 XOR random number B8”) and “source data OD generated by distributed processing
  • the distributed data “OD1D, OD2D, OD3D, OD4D” that is “distributed data” is subjected to exclusive OR (XOR processing).
  • each of the four controllers receives the distributed random number received from the proxy server 70A (“random number B1 XOR random number B5”, “random number B2 XOR random number B6”, “random number B3 XOR random number B7”, “random number B4 XOR”).
  • Random number B8 and encrypted distributed data (encryption 1D, encryption 2D, encryption 3D, encryption 4D) received from the main controller 10 can be used to generate distributed data OD1D, OD2D, OD3D, OD4D that is plaintext data. ..
  • Each of the four controllers stores the distributed data OD1D to OD4D, which is plaintext data, in any of the corresponding four share holders.
  • the secret distributed storage system 5E includes the n controllers C1 to Cn provided corresponding to the n share holders S1 to Sn, and at least one of the n controllers C1 to Cn, respectively.
  • Main hospital 10 communicatively connected to each of the hospital terminals H1 to Hn and the random number generator 20, each of the n controllers C1 to Cn, each of the hospital terminals H1 to Hn, and the random number generation.
  • the proxy server 70A is communicably connected to the device 80.
  • the proxy server 70A When the proxy server 70A receives the file name and data amount of the hospital data (an example of the bibliographic information of the original data) from the hospital terminal (for example, the hospital terminal H1), the common key (second physical random number) generated by the random number generator 80 ) Are subjected to distributed processing to generate n distributed-processed common keys (distributed random number data).
  • the proxy server 70A sends each of the n distributed common keys to the corresponding n controllers C1 to Cn, and also sends the common key to the hospital terminal H1.
  • the main controller 10 receives the hospital data E(OD) encrypted using the common key from the hospital terminal H1, the main controller 10 acquires the physical random number generated by the random number generator 20, and uses this physical random number to encrypt the physical random number.
  • the encrypted hospital data E(OD) is subjected to distributed processing to generate n pieces of encrypted distributed data E(H1D1) to E(H1Dn) (encrypted distributed data).
  • the main controller 10 sends each of the n pieces of encrypted distributed data E(H1D1) to E(H1Dn) to the corresponding n controllers C1 to Cn.
  • the proxy server 70A uses the physical random number obtained by the random number generator 80 as a common key, performs the distributed processing of the common key, and distributes the common key to the controllers C1 to Cn. It becomes possible for the administrator of 10 to pass the distributed common key safely without the knowledge. Therefore, according to the secret sharing storage system 5E, when the highly confidential hospital data held by the hospital terminal (for example, the hospital terminal H1) is distributed and processed, the main controller 10 includes the proxy server 70A, the hospital terminal, and the Since the hospital data is encrypted and passed by the common key known only to the controller, the administrator of the main controller 10 can prevent the contents of the hospital data from being known.
  • each of the n controllers C1 to Cn has the encrypted distributed data E(H1D1) to E(H1Dn) corresponding to its own device (self controller) (specifically, one of them). Is received from the main controller 10, it is decrypted by using the shared key which has been subjected to the distributed processing corresponding to its own device, and the distributed data obtained by the decryption is stored in the corresponding share holders S1 to Sn.
  • the secret distributed storage system 5E when storing the distributed data in the share holders S1 to Sn and decrypting any encrypted distributed data, the corresponding shared-processed common key can be easily processed. Can be specified.
  • the proxy server 70A performs a distributed process on the common key generated by the random number generator 80 according to a restore instruction including the data amount (size amount information) of the hospital data from the hospital terminal H1 to perform n distributed processes.
  • the generated common key (distributed random number data) is generated.
  • the proxy server 70A sends each of the n distributed common keys to the corresponding n controllers C1 to Cn, and also sends the common key to the hospital terminal H1.
  • Each of the n controllers C1 to Cn uses the distributed data H1D1 to H1Dn received from each of the share holders S1 to Sn corresponding to the own device, and the distributed common key received from the proxy server 70A by the own device.
  • the encrypted distributed data E(H1D1) to E(H1Dn) are generated and sent to the main controller 10.
  • the main controller 10 restores the encrypted hospital data E(OD) from the encrypted distributed data E(H1D1) to E(H1Dn) received from each of the n controllers C1 to Cn to restore the hospital terminal E(OD). Send to H1.
  • the proxy server 70A distributes the common key obtained by using the random number generator 80, and passes the distributed common key to each controller. Therefore, when performing restoration processing, the common key can be safely passed to each controller.
  • the main controller 10 responds to the restoration instruction from the hospital terminal H1 with the file names (an example of bibliographic information) of the distributed data received from the share holders S1 to Sn corresponding to the respective n controllers C1 to Cn , N controllers C1 to Cn, respectively.
  • the main controller 10 restores the bibliographic information of the hospital data and extracts the data amount (size amount information) of the hospital data from the bibliographic information of the hospital data. As a result, even when the distributed data stored in the share holders S1 to Sn is restored, it is possible to easily specify the corresponding distributed common key and encrypt the distributed data.
  • each of the n controllers C1 to Cn sets the value of the status flag indicating the usage state of the distributed-processed common key (distributed random number data) to “1” when storing the corresponding distributed-processed common key.
  • the n controllers C1 to Cn respectively decrypts the n pieces of encrypted distributed data E(H1D1) to E(H1Dn) using the shared key subjected to the distributed processing, and the decrypted distributed data is After storing in the corresponding share holders S1 to Sn, the information indicating the used state, that is, the value of the state flag is set to "0".
  • each of the controllers C1 to Cn can reject the reception of the encrypted distributed data and promptly generate an error if there is no distributed shared key having the value of the status flag of “1”.
  • a hospital terminal is illustrated as a user, but the present disclosure is not limited to this, and can be applied to an organization that handles hospital data such as a public institution or a private research facility.
  • the present disclosure suppresses an increase in cost associated with the installation of a physical random number generator that generates a physical random number used in secret sharing regardless of the number of users who need secret sharing, and secures the original data to be hidden. It is useful as a secure secret sharing storage system using a cloud service that supports the realization of secure storage.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

秘密分散保管システム(5)では、メインコントローラ(10)は、病院端末(H1)から病院データ(OD)を受信すると、乱数生成器(20)により発生された物理乱数を用いて、病院データ(OD)を分散処理してn個の分散データ(H1D1~H1Dn)を生成し、対応するn台のシェアホルダ(S1~Sn)にそれぞれ保管する。メインコントローラ(10)は、病院端末(H1)の復元指示に応じてn台のシェアホルダ(S1~Sn)のそれぞれに保管されるn個の分散データ(H1D1~H1Dn)を取得する。メインコントローラ(10)は、物理乱数を用いて、n個の分散データ(H1D1~H1Dn)から病院データ(OD)を復元して病院端末(H1)に送る。

Description

クラウドサービスを用いた安全な秘密分散保管システム
 本開示は、元データの分散処理により生成された複数の分散データを保管するクラウドサービスを用いた安全な秘密分散保管システムに関する。
 従来、閾値秘密分散法として多項式補間を利用する手法がよく知られているが、この手法では計算処理に時間を要する。このため、リアルタイム性を満たすための手法として排他的論理和(いわゆるXOR処理)を用いた閾値秘密分散法が知られている。例えば特許文献1では、分散データから元データを推測されない安全なXOR処理を用いる閾値秘密分散法を用い、分散データのデータ量を削減し、分散数および閾値を自由に設定して使いやすい秘密分散装置の構成が提案されている。
 特許文献1を含む従来の閾値秘密分散法では、分散データから元データの復元が困難となるように(つまり、元データの安全性を担保するために)、例えば秘密分散の処理に使用される乱数に、熱雑音等の信号を元にして発生された物理乱数(つまり、推測が困難な乱数)を用いる手法が知られている。
日本国特表2014-509753号公報
 しかし、このような物理乱数を用いる場合、物理乱数生成器が高価であるため、秘密分散を行うユーザごとに物理乱数生成器を設置することは容易ではなく、秘密分散技術の実体的かつ社会的な普及が困難となるという課題があった。
 本開示は、上述した従来の状況に鑑みて案出され、秘密分散を必要とするユーザの数に拘わらず、秘密分散の際に用いる物理乱数を発生する物理乱数生成器の設置に伴うコストアップを抑制し、秘匿されるべき元データの安全な保管の実現を支援する秘密分散保管システムおよび秘密分散保管方法を提供することを目的とする。
 本開示は、少なくとも1台のユーザ端末、n(n:2以上の整数)台の保管装置のそれぞれ、および乱数生成器との間で通信可能に接続されるメインコントローラを有する秘密分散保管システムであって、前記メインコントローラは、前記ユーザ端末から送られる元データを受信すると、前記乱数生成器により発生された乱数を取得し、前記乱数を用いて、前記元データを分散処理してn個の分散データを生成し、前記n個の分散データのそれぞれを、対応する前記n台の保管装置に保管する、秘密分散保管システムを提供する。
 また、本開示は、n(n:2以上の整数)台の保管装置のそれぞれに対応して設けられるn台のコントローラと、前記n台のコントローラ、少なくとも1台のユーザ端末、および乱数生成器との間で通信可能に接続されるメインコントローラと、前記n台のコントローラ、前記ユーザ端末、および第2乱数生成器との間で通信可能に接続される通信管理サーバと、を備え、前記通信管理サーバは、元データの書誌情報を前記ユーザ端末から受信すると、前記第2乱数生成器により発生された第2乱数を分散処理してn個の分散乱数データを生成し、前記n個の分散乱数データのそれぞれを、対応する前記n台のコントローラに送るとともに、前記第2乱数を前記ユーザ端末に送り、前記メインコントローラは、前記第2乱数を用いて前記元データが暗号化された暗号化元データを前記ユーザ端末から受信すると、前記乱数生成器により発生された乱数を取得し、前記乱数を用いて、前記暗号化元データを分散処理してn個の暗号化分散データを生成し、前記n個の暗号化分散データのそれぞれを、対応する前記n台のコントローラに送る、秘密分散保管システムを提供する。
 また、本開示は、少なくとも1台のユーザ端末、n(n:2以上の整数)台の保管装置のそれぞれ、および乱数生成器との間で通信可能に接続されるメインコントローラを有する秘密分散保管システムを用いた秘密分散保管方法であって、前記ユーザ端末から送られる元データを受信すると、前記乱数生成器により発生された乱数を取得するステップと、前記乱数を用いて、前記元データを分散処理してn個の分散データを生成するステップと、前記n個の分散データのそれぞれを、対応する前記n台の保管装置に保管するステップと、を有する、秘密分散保管方法を提供する。
 また、本開示は、n(n:2以上の整数)台の保管装置のそれぞれに対応して設けられるn台のコントローラと、前記n台のコントローラ、少なくとも1台のユーザ端末、および乱数生成器との間で通信可能に接続されるメインコントローラと、前記n台のコントローラ、前記ユーザ端末、および第2乱数生成器との間で通信可能に接続される通信管理サーバと、を備える秘密分散保管システムを用いた秘密分散保管方法であって、元データの書誌情報を前記ユーザ端末から受信すると、前記第2乱数生成器により発生された第2乱数を分散処理してn個の分散乱数データを生成するステップと、前記n個の分散乱数データのそれぞれを、対応する前記n台のコントローラに送るとともに、前記第2乱数を前記ユーザ端末に送るステップと、前記第2乱数を用いて前記元データが暗号化された暗号化元データを前記ユーザ端末から受信すると、前記乱数生成器により発生された乱数を取得するステップと、前記乱数を用いて、前記暗号化元データを分散処理してn個の暗号化分散データを生成するステップと、前記n個の暗号化分散データのそれぞれを、対応する前記n台のコントローラに送るステップと、を有する、秘密分散保管方法を提供する。
 本開示によれば、秘密分散を必要とするユーザの数に拘わらず、秘密分散の際に用いる物理乱数を発生する物理乱数生成器の設置に伴うコストアップを抑制し、秘匿されるべき元データの安全な保管の実現を支援できる。
実施の形態1に係る秘密分散システムのシステム構成例を示す図 メインコントローラのハードウェア構成例を示すブロック図 シェアホルダのハードウェア構成例を示すブロック図 分散処理の動作手順例を示すシーケンス図 復元処理の動作手順例を示すシーケンス図 実施の形態1の変形例1に係る秘密分散システムのシステム構成例を示す図 コントローラのハードウェア構成例を示すブロック図 実施の形態1の変形例2に係る秘密分散システムのシステム構成例を示す図 実施の形態1の変形例3に係る秘密分散システムのシステム構成例を示す図 実施の形態2に係る秘密分散システムのシステム構成例を示す図 代理サーバのハードウェア構成例を示すブロック図 分散処理の動作手順例を示すシーケンス図 復元処理の動作手順例を示すシーケンス図 実施の形態3に係る秘密分散システムのシステム構成例を示す図 分散処理の動作手順例を示すシーケンス図 復元処理の動作手順例を示すシーケンス図 元データ、物理乱数、および分散データの一例を示すテーブル 物理乱数、および暗号化された元データの一例を示すテーブル 暗号化された元データが分散処理されて生成された、分散された暗号化分散データの一例を示すテーブル
 以下、適宜図面を参照しながら、本開示に係る秘密分散保管システムおよび秘密分散保管方法の構成および作用を具体的に開示した実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
 本開示に係る秘密分散システムは、秘匿データである元データに対して秘密分散処理(以下「分散処理」)を行うことで、生成された複数の分散データを複数の保管装置に保管(保存)する。秘密分散システムは、複数の分散データを用いて復元処理を行うことで、秘匿データである元データを復元する。
 以下の実施の形態では、秘匿データである元データの一例として、病院で管理される患者の氏名、年齢、性別、住所、職業、既往歴等の個人情報を含む電子カルテデータ(以下「病院データ」)を例示して説明する。但し、以下の実施の形態においては、元データは秘匿データであれば、上述した病院データに限定されない。
(実施の形態1)
 図1は、実施の形態1に係る秘密分散保管システム5のシステム構成例を示す図である。秘密分散保管システム5は、メインコントローラ10と、乱数生成器20と、複数の病院端末H1,…,Hmと、複数のシェアホルダS1,…,Snとを含む構成である。m,nはともに2以上の整数であり、同一の値でも異なる値でもよい。
 複数の病院端末H1~Hmのそれぞれは、ネットワークNW1を介して、メインコントローラ10との間で通信可能に接続される。ネットワークNW1は、例えばインターネット等の広域ネットワークでよい。また、ネットワークNW1は、病院端末H1~Hmのそれぞれとメインコントローラ10との間を仮想的に接続するVPN(Virtual Private Network)等のプライベートネットワークでもよいし、専用線でもよい。
 保管装置の一例としての複数のシェアホルダS1~Snのそれぞれは、ネットワークNW2を介して、メインコントローラ10との間で通信可能に接続される。ネットワークNW2は、ネットワークNW1と同様、例えばインターネット等の広域ネットワークでよい。また、ネットワークNW2は、シェアホルダS1~Snのそれぞれとメインコントローラ10との間を仮想的に接続するVPN等のプライベートネットワークでもよいし、専用線でもよい。
 ユーザ端末の一例としての病院端末H1~Hmは、説明を簡単にするために、それぞれ同一の内部構成を有し、必要に応じて病院端末H1を例示して説明する。病院端末H1~Hmのそれぞれは、電子カルテデータ等の病院データを管理する管理者により使用されるユーザ端末である。なお、ここでは、ユーザ端末として、病院端末を例示しているが、秘匿データを取り扱う企業あるいは組織において使用される業務用端末でもよい。従って、秘匿データである元データは、病院データである他、例えば個人の年金記録データ、製品の設計データ、実験データ、未公開の画像データ、未発表の音楽データ等が挙げられる。
 乱数生成器20は、物理的に変動する値(言い換えると、悪意ある第三者が容易に推測することが困難な値)を乱数データとして発生する物理乱数生成器である。乱数データは、例えば、熱雑音あるいは量子ゆらぎ等のデータが挙げられる。なお、秘密分散保管システム5において、乱数生成器20は、物理乱数生成器の方が好ましいが、擬似乱数生成器でもよい。なお、本方式にランプ型秘密分散法を使用した場合、元データの一部を本方式の乱数の一部としてもよい。
 メインコントローラ10は、それぞれの病院端末H1~Hmのうち少なくとも1台(例えば病院端末H1)から送信された病院データを受信すると、乱数生成器20により発生された物理乱数を用いて分散処理することで、複数(例えばn個)の分散データを生成する。メインコントローラ10は、乱数生成器20で生成された物理乱数を記憶する記録装置13(図2参照)を有し、この物理乱数を用いて病院データを分散処理する。メインコントローラ10は、分散処理の実行時に、元データ(病院データ)をどのようにして分散処理したかを示す分散情報を分散データの生成数(例えばn個)と同数(例えばn個)分だけ生成する。なお、分散情報は、上述した分散データの生成方法に関する情報の他に、分散データの書誌的情報として、元データのファイル名、分散データのファイル名、分散処理の実行日時、分散データのサイズ、分散データの生成(つまり、分散処理)に用いた物理乱数の一部、保管先の情報、保管先にアクセスするための認証情報等を含んでよい。
 メインコントローラ10は、例えば、3個の分散データを生成した場合、第1の分散データと対応する第1の分散情報との組を第1のシェアホルダに保管し、第2の分散データと対応する第2の分散情報との組を第2のシェアホルダに保管し、同様に、第3の分散データと対応する第3の分散情報との組を第3のシェアホルダに保管する。
 メインコントローラ10は、病院データ(元データの一例)に対して既に生成された複数の分散データとそれぞれの分散データに対応する分散情報とを用いて復元処理することで、元データ(つまり、病院データ)を復元する。なお、メインコントローラ10は、分散処理時に使用した物理乱数が記録装置13に記憶されている場合には、その物理乱数を用いて、複数の分散データから元の病院データを復元してもよい。
 図2は、メインコントローラ10のハードウェア構成例を示すブロック図である。メインコントローラ10は、プロセッサ11と、メモリ12と、記録装置13と、通信回路14とを少なくとも含む構成である。
 プロセッサ11は、例えばCPU(Central Processing Unit)、DSP(Digital Signal Processor)あるいはFPGA(Field Programmable Gate Array)を用いて構成され、メモリ12と協働してメモリ12に予め記憶されるプログラムおよびデータに従って動作する。
 プロセッサ11は、通信回路14を介して乱数生成器20から受信した物理乱数を用いて、通信回路14を介して病院端末H1~Hmのうち少なくとも1台(例えば病院端末H1)から送られた病院データの分散処理を行う。プロセッサ11は、通信回路14を介して、分散処理により生成された同数個の分散データとその分散データに対応する分散情報との組を、それぞれ対応するシェアホルダS1~Snに送信する。
 また、プロセッサ11は、複数のシェアホルダS1~Snのそれぞれから分散データと対応する分散情報との組を取得すると、復元処理に必要な所定値(閾値)個分、あるいは全ての分散データおよび分散情報の組を用いて、元データである病院データの復元処理を行う。
 メモリ12は、例えばRAM(Random Access Memory)とROM(Read Only Memory)とを用いて構成され、メインコントローラ10の動作の実行に必要なプログラムおよびデータ、さらには、動作中に生成されたデータもしくは情報を一時的に保持する。RAMは、例えば、メインコントローラ10の動作時に使用されるワークメモリである。ROMは、例えば、メインコントローラ10を制御するためのプログラムおよびデータを予め記憶して保持する。
 記録装置13は、例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)を用いて構成され、乱数生成器20で生成された物理乱数を記憶する。
 通信回路14は、メインコントローラ10との間で通信可能に接続された各種の機器との間で通信を行う回路を用いて構成される。通信回路14は、ネットワークNW1を介して、複数の病院端末H1~Hmのそれぞれとの間でデータ通信を行う。通信回路14は、ネットワークNW2を介して、複数のシェアホルダS1~Snのそれぞれとの間でデータ通信を行う。なお、メインコントローラ10と乱数生成器20とは、有線あるいは無線で接続されてよい。
 シェアホルダS1~Snのそれぞれは、メインコントローラ10により生成された複数の分散データのうちいずれかの分散データを保管する記録装置である。シェアホルダS1~Snのそれぞれは、メインコントローラ10から見てオンライン上のクラウドサーバであってもよいし、メインコントローラに内蔵されたストレージであってもよい。
 図3は、シェアホルダS1~Snのハードウェア構成例を示すブロック図である。シェアホルダS1~Snのそれぞれは、同一の内部構成を有し、具体的にはプロセッサ41と、メモリ42と、記録装置43と、通信回路44とを少なくとも含む構成である。
 プロセッサ41は、例えばCPU、DSPあるいはFPGAを用いて構成され、メモリ42と協働してメモリ42に予め記憶されるプログラムおよびデータに従って動作する。プロセッサ41は、通信回路44を介してメインコントローラ10から送信されたいずれかの分散データおよび分散情報の組を受信すると、その分散データおよび分散情報の組を記録装置43に保管(保存)する。また、プロセッサ41は、通信回路44を介してメインコントローラ10から送信された分散データの取得要求を受けると、記録装置43に保管されていた分散データおよび分散情報の組を読み出して取得し、通信回路44を介してメインコントローラ10に送信する。
 メモリ42は、例えばRAMとROMとを用いて構成され、シェアホルダS1~Snの動作の実行に必要なプログラムおよびデータ、さらには、動作中に生成されたデータもしくは情報を一時的に保持する。RAMは、例えば、シェアホルダS1~Snの動作時に使用されるワークメモリである。ROMは、例えば、シェアホルダS1~Snを制御するためのプログラムおよびデータを予め記憶して保持する。
 記録装置43は、例えばHDDまたはSSDを用いて構成され、メインコントローラ10の分散処理により生成されたいずれかの分散データおよび分散情報の組を保管(保存)する。
 通信回路44は、メインコントローラ10との間で通信を行う回路を用いて構成される。通信回路44は、ネットワークNW2を介して、メインコントローラ10との間でデータ通信を行う。
 次に、実施の形態1に係る秘密分散保管システム5の分散処理および復元処理を説明する。
 上述したように、従来の秘密分散システムでは、分散処理および復元処理は個々の病院内の病院端末において実行されていた。このため、個々の病院端末において乱数生成器20のような高価な乱数生成器が必要となり、病院における秘密分散システムの構築に伴うコストアップが避けられなかった。一方、実施の形態1に係る秘密分散保管システム5では、乱数生成器20はメインコントローラ10に対応して1つだけ設けられる。メインコントローラ10は、病院端末(例えば病院端末H1)から送信される元データ(つまり、病院データ)に対して分散処理を行う。
 図4は、分散処理の動作手順例を示すシーケンス図である。図4の説明では、病院端末の一例として病院端末H1を例示する。
 図4において、秘密分散保管システム5では、病院端末H1は、病院データODH1(元データの一例)の分散処理をメインコントローラ10に依頼(要求)する際、メインコントローラ10に平文データの病院データODH1を送信する(T1)。メインコントローラ10は、病院端末H1からネットワークNW1を介して、平文データの病院データODH1を受信する。
 メインコントローラ10は、例えば病院データODH1を受信した時点で乱数生成器20により生成された物理乱数を取得し、記録装置13に記憶する(T2)。なお、メインコントローラ10は、取得された物理乱数を記録装置13に記憶せず、メモリ12に一時的に保存してよく、ステップT3の分散処理の実行後に物理乱数を削除してよい。但し、メインコントローラ10に復元に必要な情報を残さないために、取得された物理乱数は削除される方が好ましい。メインコントローラ10は、この物理乱数を用いて病院データODH1の分散処理を行い、シェアホルダS1~Snの配置数と一致するように複数(n個)の分散データH1D1~H1Dnとそれぞれの分散データに対応する分散情報との組を生成する(T3)。なお、メインコントローラ10は、ステップT3の分散処理を実行した後、元データである病院データODH1を削除することが好ましい。
 メインコントローラ10は、ネットワークNW2を介して、生成された分散データH1D1と分散データH1D1に対応する分散情報との組をシェアホルダS1に送信する(T4)。シェアホルダS1は、メインコントローラ10から受信した、分散データH1D1と分散データH1D1に対応する分散情報との組を記録装置43に保管する(T5)。
 同様に、メインコントローラ10は、他のシェアホルダに対してもステップT5と同様な処理を実行し、ネットワークNW2を介して、生成された分散データH1Dnと分散データH1Dnに対応する分散情報との組をシェアホルダSnに送信する(T6)。シェアホルダSnは、メインコントローラ10から受信した、分散データH1Dnと分散データH1Dnに対応する分散情報との組を記録装置43に保管する(T7)。シェアホルダS1~Snのそれぞれに保管される分散データは、平文データ(言い換えると、暗号化されていないデータ)である。
 なお、メインコントローラ10が受信した時点で、その受信された病院データが病院端末H1において既に暗号化されていてもよく、分散データは、暗号化された分散データとなる。また、ここでは、病院端末H1からの病院データODH1に対し、分散処理を行う場合を示したが、他の病院端末からの病院データに対しても、同様に分散処理が可能である。
 図5は、復元処理の動作手順例を示すシーケンス図である。図5の説明では、病院端末の一例として病院端末H1を例示する。
 図5において、秘密分散保管システム5では、シェアホルダS1~Snのそれぞれは、対応する分散データH1D1~H1Dnのそれぞれを記録装置43に保管している(T11,T12)。病院端末H1は、病院データODH1(元データの一例)の復元処理をメインコントローラ10に依頼(要求)する際、復元処理の対象となる病院データのファイル名を指定する(T13)。
 メインコントローラ10は、病院端末H1により指定されたファイル名に基づいて、そのファイル名に対応して生成された分散データの取得要求をシェアホルダS1に送信する(T14)。シェアホルダS1は、この取得要求に応じて、記録装置43に保管された分散データH1D1および対応する分散情報の組を読み出し、メインコントローラ10に返信する(T15)。
 同様に、メインコントローラ10は、病院端末H1により指定されたファイル名に基づいて、そのファイル名に対応して生成された分散データの取得要求をシェアホルダSnに送信する(T16)。シェアホルダSnは、この取得要求に応じて、記録装置43に保管された分散データH1Dnおよび対応する分散情報を読み出し、メインコントローラ10に返信する(T17)。
 このように、ステップT11~T17を経ることで、メインコントローラ10は、ネットワークNW2を介して、全てのシェアホルダS1~Snのそれぞれから送信された分散データおよび対応する分散情報の組を受信する。メインコントローラ10は、記録装置13に分散処理(ステップT3参照)時に用いた物理乱数が記憶されている場合には、その物理乱数を読み出して取得してもよい(T18)。なお、ステップT18で取得する物理乱数は分散データH1D1~H1Dnを復元するために必須ではないためステップT18は省略されてもよい。次に、メインコントローラ10は、複数の分散データH1D1~H1Dnのそれぞれを用いて復元処理を行い、元データである病院データODH1を復元する(T19)。なお、ステップT18で物理乱数を取得する場合は、この取得した物理乱数をステップT19での復元処理に用いてもよい。次に、メインコントローラ10は、復元した病院データODH1(つまり、所望の病院データ)を病院端末H1に送信する(T20)。なお、メインコントローラ10は、ステップT18の処理を省略してよい。つまり、メインコントローラ10は、ステップT2において記憶された物理乱数を保持し続ける必要はない。この場合、メインコントローラ10は、シェアホルダS1~Snのそれぞれから送信された分散データに対応する分散情報を用いて、元データである病院データODH1を復元できる。
 病院端末H1は、メインコントローラ10から送信された病院データODH1を受信する(T21)。これにより、病院端末H1は、病院データODH1を安全に入手できる。
 このように、実施の形態1の秘密分散保管システム5では、メインコントローラ10が、病院端末から送信された元データである病院データの分散処理および復元処理を行う。このため、乱数生成器20は、単一のメインコントローラ10に対応して近接して1台設置される。乱数生成器20は、セキュリティ上、メインコントローラ10に極力近接して設置される方が好ましい。このため、乱数生成器20は、メインコントローラ10内部に設けられてもよい。すなわち、メインコントローラ10自身が乱数生成器20の機能を有しても良い。なお、乱数生成器20は、メインコントローラ10から遠隔に設置され、ネットワーク(図示略)を介してメインコントローラ10と接続されてもよいが、メインコントローラ10および乱数生成器20間はセキュアなネットワークが好ましい。
 また、各病院端末H1~Hmのそれぞれは、メインコントローラ10の構成を有することなく、それぞれの病院外に配置されるメインコントローラ10に対して元データの分散処理を依頼できる。従って、病院端末H1~Hmのそれぞれにメインコントローラ10および乱数生成器20の構成を有する場合と比べて、メインコントローラ10および乱数生成器20の配置数が1つずつで済むので、秘密分散保管システム5を低コストで構築できる。
 以上により、秘密分散保管システム5は、少なくとも1台の病院端末H1~Hm、n台のシェアホルダS1~Snのそれぞれ、および乱数生成器20との間で通信可能に接続されるメインコントローラ10を有する。メインコントローラ10は、病院端末H1から送られる病院データODH1を受信すると、乱数生成器20により発生された物理乱数を取得し、物理乱数を用いて、病院データODH1を分散処理してn個の分散データH1D1~H1Dnを生成する。メインコントローラ10は、n個の分散データのそれぞれを、対応するn台のシェアホルダS1~Snに保管する。
 これにより、秘密分散保管システム5は、元データの秘密分散を必要とする病院端末の数(つまり、ユーザの数)に拘わらず、秘密分散の際に用いる物理乱数を発生する乱数生成器20の設置に伴うコストアップを抑制できる。従って、秘密分散保管システム5は、システム構築に伴うコストアップを極力抑えながら、秘匿されるべき元データの安全な保管の実現を支援できる。
 また、メインコントローラ10は、病院端末H1からの元データの復元指示に応じて、n台のシェアホルダS1~Snのそれぞれに保管されるn個の分散データH1D1~H1Dnを取得する。メインコントローラ10は、n個の分散データH1D1~H1Dnから元データである病院データODH1を復元して病院端末H1に送る。これにより、秘密分散保管システム5は、メインコントローラ10以外に元データである病院データの復元処理を実行できないように、復元処理を可能とする実行主体を絞り込むことができる。つまり、メインコントローラ10を使用する人物以外の第三者による元データへの復元を効果的に抑制できる。仮に前述の元データの復元ができた場合、極めて個人情報性の高い病院データの流出に繋がるが、実施の形態1によれば病院データのデータ漏洩を強固に防止できることで、責任分界点が明確となる。
(実施の形態1の変形例1)
 実施の形態1では、メインコントローラ10は、例えば病院端末が管理する病院データ(つまり、元データ)を平文データ悪意で取得することも可能であった。実施の形態1の変形例1では、メインコントローラ10の管理者に分散データの保存先が分からないようにする。
 図6は、実施の形態1の変形例1に係る秘密分散保管システム5Aの構成例を示す図である。秘密分散保管システム5Aにおいて、実施の形態1に係る秘密分散保管システム5と同一の構成要素については、同一の符号を付すことでその説明を簡略化または省略する。
 秘密分散保管システム5Aでは、メインコントローラ10と複数のシェアホルダS1~Snのそれぞれとの間には、シェアホルダS1~Snの設置数と同数のコントローラC1~Cnが1対1に対応して介在する。
 実施の形態1と同様に、メインコントローラ10は、病院端末H1~Hmのうち少なくとも1台からネットワークNW1を介して病院データ(例えば病院データODH1)を受信し、乱数生成器20で生成された物理乱数を用いて病院データの分散処理を行い、合計n個の分散データH1D1~H1Dnおよび論理分散情報を生成する。論理分散情報は、メインコントローラ10における病院データの分散処理により生成される。具体的には、論理分散情報は、n個の分散データの生成方法に関する情報の他に、元データのファイル名、n個の分散データの各ファイル名、分散処理の実行日時、分散データのサイズ、分散データの生成(つまり、分散処理)に用いた物理乱数、分配先であるn個のコントローラに関する情報等である。従って、メインコントローラ10は、論理分散情報を基にして、最終的に分散データが保管(保存)されるシェアホルダS1~Snのそれぞれの情報は判別不能である。
 メインコントローラ10は、ネットワークNW2を介して、合計n個の分散データH1D1~H1Dnのそれぞれと上述した論理分散情報とを複数のコントローラC1~Cnに1個ずつ振り分ける分配処理を行う。なお、メインコントローラ10は、分散処理を実行した後、元データである病院データを削除することが好ましい。
 図7は、コントローラC1~Cnのハードウェア構成例を示すブロック図である。コントローラC1~Cnのそれぞれは、同一の内部構成を有し、具体的にはプロセッサ51と、メモリ52と、記録装置53と、通信回路54とを少なくとも含む構成である。
 プロセッサ51は、例えばCPU、DSPあるいはFPGAを用いて構成され、メモリ52と協働してメモリ52に予め記憶されるプログラムおよびデータに従って動作する。プロセッサ51は、メインコントローラ10から送信された分散データと論理分散情報とを、通信回路54を介して受信する。プロセッサ51は、論理分散情報と予め保持している自コントローラに対応する保管先(例えばシェアホルダS1)の情報とを用いて、自コントローラ(例えばコントローラC1)により受信された分散データに関する実体分散情報を生成する。実体分散情報は、対応する分散データの生成に関連する分散情報(実施の形態1参照)であり、例えば、分散データの生成方法に関する情報の他に、分散データの書誌的情報として、元データのファイル名、分散データのファイル名、分散処理の実行日時、分散データのサイズ、分散データの生成(つまり、分散処理)に用いた物理乱数の一部、保管先の情報、保管先にアクセスするための認証情報等を含んでよい。プロセッサ51は、分散データに対応する実体分散情報に従って、該当する分散データを対応するシェアホルダ(例えば、シェアホルダS1)に保管する。
 メモリ52は、例えばRAMとROMとを用いて構成され、コントローラC1~Cnの動作の実行に必要なプログラムおよびデータ、さらには、動作中に生成されたデータもしくは情報を一時的に保持する。RAMは、例えば、コントローラC1~Cnの動作時に使用されるワークメモリである。ROMは、例えば、コントローラC1~Cnを制御するためのプログラムおよびデータを予め記憶して保持する。
 記録装置53は、例えばHDDまたはSSDを用いて構成され、メインコントローラ10の分散処理により生成されたいずれかの分散データおよび実体分散情報の組を保管(保存)する。
 通信回路54は、メインコントローラ10あるいは自コントローラに対応するシェアホルダ(例えば、シェアホルダS1)との間で通信を行う回路を用いて構成される。通信回路54は、ネットワークNW2を介して、メインコントローラ10との間でデータ通信を行う。また、通信回路54は、自コントローラに対応するシェアホルダ(例えば、シェアホルダS1)との間でデータ通信を行う。
 複数のコントローラC1~Cnのそれぞれは、シェアホルダS1~Snのうち対応するいずれかのシェアホルダに対し、1個の分散データおよび実体論理情報の組を保管する。つまり、複数のコントローラC1~Cnのそれぞれの管理者は、対応する分散データの保管先およびその保管先にアクセスするための認証情報を含む実体分散情報をそれぞれ把握しているが、他の分散データに対応する実体分散情報を把握できない。各コントローラC1~Cnのそれぞれは、シェアホルダS1~Snのうち対応するシェアホルダと連結し、対応するシェアホルダへの認証情報を保持する。従って、実施の形態1と異なり、メインコントローラ10は、元データの分散処理の後は、コントローラC1~Cnのそれぞれを介して個々の分散データを間接的に受け取ることしかできず、複数のシェアホルダS1~Snのそれぞれから直接的に全ての分散データを取得できない。
 このように、実施の形態1の変形例1に係る秘密分散保管システム5Aでは、全ての分散データの保存先を含む分散情報を把握可能な管理者が存在できなくなる。従って、実施の形態1に比べて、分散データの保管に関するセキュリティをより一層向上できる。また、メインコントローラ10と複数のシェアホルダS1~Snのそれぞれとの間に複数のコントローラC1~Cnのそれぞれとを設けたため、例えば、仮にいずれかの分散データの漏洩が生じた場合にどのコントローラの管理者による責任であるかを明確に判別し易くなる。なお、メインコントローラ10とコントローラC1~Cnのそれぞれとの間では、機器認証を行い、第三者によるなりすましを防止してもよい。機器認証には、例えば双方向の公開鍵暗号方式による暗号化復号技術が用いられる。
 以上により、実施の形態1の変形例1に係る秘密分散保管システム5Aは、n台のシェアホルダS1~Snのそれぞれに対応して設けられ、メインコントローラ10との間で通信可能に接続されるn台のコントローラC1~Cnを更に有する。メインコントローラ10は、複数の分散データH1D1~H1Dnのそれぞれの生成に関する論理分散情報を生成する。メインコントローラ10は、n個の分散データのそれぞれと論理分散情報とを対応付けて、対応するn台のコントローラC1~Cnのそれぞれに送信する。n台のコントローラC1~Cnのそれぞれは、自装置(自コントローラ)に対応する分散データと論理分散情報とをメインコントローラ10から受信し、論理分散情報を用いて自装置が受信した分散データに関する実体分散情報を生成する。n台のコントローラC1~Cnのそれぞれは、対応するn台のシェアホルダS1~Snのそれぞれに、実体分散情報と自装置(自コントローラ)が受信した分散データとを対応付けて保管する。
 これにより、秘密分散保管システム5Aは、メインコントローラ10の管理者に分散データの最終的な保存先が分からないように、分散データを安全に保管できる。従って、秘密分散保管システム5Aによれば、メインコントローラ10を使用する管理者が仮に悪意による攻撃として、秘匿性の高い病院データの漏洩を効果的に阻むことが可能となる。
(実施の形態1の変形例2)
 実施の形態1の変形例1では、コントローラとシェアホルダとが1対1で対応するように連結していた。実施の形態1の変形例2では、1台のコントローラに2台以上のシェアホルダが接続される例を説明する。
 図8は、実施の形態1の変形例2に係る秘密分散保管システム5Bの構成例を示す図である。秘密分散保管システム5Bにおいて、実施の形態1の変形例1に係る秘密分散保管システム5Aと同一の構成要素については、同一の符号を付すことでその説明を簡略化または省略する。
 実施の形態1の変形例2では、1台のコントローラ(例えばコントローラC1)に2台のシェアホルダS1A,S1Bが接続される。従って、コントローラの総数は、シェアホルダの総数より少ない。コントローラC1は、2台のシェアホルダS1A,S1Bのそれぞれに、自コントローラが受信した分散データとその分散データに対応するように生成した実体分散情報とを対応付けてそれぞれ保管する。
 実施の形態1の変形例2においても、実施の形態1の変形例1と同様に、コントローラC1~Cnのそれぞれの管理者は、自コントローラに対応するシェアホルダにアクセスするための認証情報しか保有しない。従って、秘密分散保管システム5Bによれば、メインコントローラ10の管理者は、それぞれのシェアホルダS1~Snに直接アクセスして分散データを取得することはできない。
 なお、ここでは、コントローラC1が2台のシェアホルダS1A,S1Bの間で通信可能に接続される場合を示したが、他のコントローラC2~Cnのうち少なくとも1台が複数のシェアホルダとの間で通信可能に接続されてもよい。
 以上により、秘密分散保管システム5Bでは、n台のコントローラC1~Cnのうち少なくとも1台のコントローラ(例えばコントローラC1)は、複数のシェアホルダS1A,S1Bとの間で通信可能に接続される。そのコントローラC1は、複数のシェアホルダS1A,S1Bのそれぞれに、自コントローラが受信した分散データとその分散データに対応するように生成した実体分散情報とを対応付けてそれぞれ保管する。これにより、秘密分散保管システム5Bによれば、1台のコントローラに2台以上のシェアホルダを接続できる。従って、複数のシェアホルダのうちいずれかが故障した場合等の分散データおよび実体分散情報の保管用のバックアップを適切に構築できる。
(実施の形態1の変形例3)
 実施の形態1の変形例2では、1台のメインコントローラ10だけが配置されていた。このため、例えば病院データの分散処理あるいは復元処理のいずれかを行う必要がある際に、災害あるいは故障等によってメインコントローラ10が動作不良となると、病院データの分散処理あるいは復元処理を適切に実行できなくなる。実施の形態1の変形例3では、メインコントローラ10が動作不良に陥るまたはその予兆を検知した際に、分散処理あるいは復元処理のいずれかを代行する他のメインコントローラを配置する例を説明する。
 図9は、実施の形態1の変形例3に係る秘密分散保管システム5Cの構成例を示す図である。秘密分散保管システム5Cにおいて、実施の形態1の変形例2に係る秘密分散保管システム5Bと同一の構成要素については、同一の符号を用いることでその説明を簡略化または省略する。
 秘密分散保管システム5Cでは、メインコントローラ10とは別に、バックアップ用のメインコントローラ10Aが配置される。メインコントローラ10とメインコントローラ10Aとは、例えば災害の発生によって同時に動作不良が起きないように、地理的に遠方に配置されてよいし、近くに配置されてもよい。
 第2メインコントローラの一例としてのメインコントローラ10Aはメインコントローラ10と同一の構成を有するので、メインコントローラ10Aの内部構成の詳細な説明は省略する。メインコントローラ10Aは、メインコントローラ10と同様に、乱数生成器20Aと接続され、乱数生成器20Aで生成された物理乱数を取得する。乱数生成器20Aは、乱数生成器20と同様に物理乱数生成器によって構成される方が好ましいが、擬似乱数生成器によって構成されてもよい。メインコントローラ10Aは、ネットワークNW1を介して、病院端末H1~Hmのそれぞれと接続されるとともに、ネットワークNW2を介して、コントローラC1~Cnのそれぞれと接続される。
 秘密分散保管システム5Cでは、メインコントローラ10は、自装置の死活監視を行う。例えば災害の発生によってメインコントローラ10は、動作不良あるいはその予兆を検知でき、その検知を行った場合、バックアップ用に配置されたメインコントローラ10Aに対し、メインコントローラ10により生成された論理分散情報と分散処理および復元処理の権限委譲通知とを送る。
 メインコントローラ10Aは、メインコントローラ10から送信された、論理分散情報と権限委譲通知とを受け取ると、その権限委譲通知に従い、メインコントローラ10の処理(例えば分散処理および復元処理)を代行して継続する。なお、メインコントローラ10Aはメインコントローラ10に接続せず、メインコントローラ10からの権限委譲通知等の指示なしに独立に動作してもよい。
 なお、メインコントローラ10が自装置の死活監視を行う代わりに、メインコントローラ10Aがメインコントローラ10の死活監視を行ってもよい。なお、外部のPC(図示略)あるいは携帯端末(図示略)がメインコントローラ10の死活監視を行ってもよい。
 このように、実施の形態1の変形例3では、例えば災害時等において、メインコントローラ10が動作不良に陥っても、バックアップ用のメインコントローラ10Aが代行して作動する。従って、秘密分散保管システム5Cのロバスト性が向上する。また、秘密分散保管システム5Cにおいて、乱数生成器20Aを設けず、メインコントローラ10Aは、メインコントローラ10に接続される乱数生成器20との間で接続可能であれば乱数生成器20から物理乱数を取得してもよい。これにより、秘密分散保管システム5Cにおいて、メインコントローラ10Aが結果的に増設となるが、乱数生成器の設置数の増大を回避できるので、コストアップの抑制が可能となる。なお、バックアップ用のメインコントローラは、1台のメインコントローラ10Aに限らず、複数台設けられてもよい。
 以上により、秘密分散保管システム5Cは、少なくとも1台の病院端末H1~Hm、n台のシェアホルダS1~Sn、乱数生成器20Aおよびメインコントローラ10との間で通信可能に接続されるメインコントローラ10Aを更に備える。メインコントローラ10は、自装置の動作不良を検知すると、論理分散情報と分散処理および復元処理の権限移譲通知とをメインコントローラ10Aに送る。メインコントローラ10Aは、論理分散情報と権限移譲通知とをメインコントローラ10から受信すると、メインコントローラ10に代わって、病院データの分散処理および復元処理を代行する。これにより、メインコントローラ10が動作不良に陥った時あるいはその予兆が検知された時でも、メインコントローラ10Aにより、病院データの分散処理および復元処理が中断されず、病院データに基づく分散データの安全な保管ならびに必要に応じた病院データの復元が継続できる。
(実施の形態2)
 上述した実施の形態1あるいはその各種の変形例では、病院端末(例えば病院端末H1)とメインコントローラ10との間のデータ通信においては、平文データの送受信が行われることが主に想定されていた。実施の形態2では、病院端末H1~Hmのそれぞれ、メインコントローラ10、コントローラC1~Cnのそれぞれの間での通信に先立って、病院データを暗号化する例を説明する。従って、メインコントローラ10は、病院端末により暗号化された病院データを受信し、その暗号化された病院データに分散処理を行う。
 図10は、実施の形態2に係る秘密分散保管システム5Dの構成例を示す図である。秘密分散保管システム5Dにおいて、実施の形態1に係る秘密分散保管システム5と同一の構成要素については、同一の符号を付すことでその説明を簡略化または省略する。
 秘密分散保管システム5Dは、実施の形態1の変形例1に係る秘密分散保管システム5Aの構成に加え、代理サーバ70および乱数生成器80を更に含む構成である。代理サーバ70とコントローラC1~Cnのそれぞれとは、ネットワークNW3を介して接続される。ネットワークNW3は、ネットワークNW1,NW2と同一のネットワークであってもよいし、異なるネットワークであってもよい。具体的には、ネットワークNW3は、例えばインターネット等の広域ネットワークでもよいし、代理サーバ70とコントローラC1~Cnのそれぞれとの間を仮想的に接続するVPN等のプライベートネットワークでもよいし、専用線でもよい。なお、図10では図示されていないが、代理サーバ70と病院端末H1~HmのそれぞれとはネットワークNW3のようなネットワークを介して通信可能に接続されてもよい。
 第2物理乱数生成器の一例としての乱数生成器80は、乱数生成器20と同様に、物理的に変動する値(言い換えると、悪意ある第三者が容易に推測することが困難な値)を乱数として発生する乱数生成器である。具体的には、乱数生成器80は、病院端末H1~Hmのそれぞれとメインコントローラ10とコントローラC1~Cnのそれぞれとの間での通信に使用される物理乱数(例えば、暗号化および復号のための共通鍵)を生成する。なお、物理乱数の代わりに、擬似乱数が用いられてもよい。また、乱数生成器80により生成される物理乱数は、分散データを生成するために用いられる物理乱数(つまり、乱数生成器20により生成される物理乱数)とは異なる。
 通信管理サーバの一例としての代理サーバ70は、乱数生成器80で生成された物理乱数(第2物理乱数の一例)をストリーム暗号情報として記録装置73に記憶する。代理サーバ70は、病院端末H1~Hmのそれぞれとメインコントローラ10とコントローラC1~Cnのそれぞれとの間の通信の暗号化あるいは復号に用いる共通鍵としての位置付けられる物理乱数を、病院端末H1に送信する。病院端末H1は、代理サーバ70から送信された共通鍵を、病院端末H1内のメモリに記憶する。また、代理サーバ70は、ネットワークNW3を介して、コントローラC1~Cnのそれぞれに共通鍵を送信する。コントローラC1~Cnのそれぞれは、代理サーバ70から受信した共通鍵を、自コントローラ内の各記録装置53に記憶する。このように、代理サーバ70Aから送信(配布)された同一の共通鍵が病院端末H1およびコントローラC1~Cnのそれぞれに保持される。
 図11は、代理サーバ70のハードウェア構成例を示すブロック図である。代理サーバ70は、プロセッサ71と、メモリ72と、記録装置73と、通信回路74とを少なくとも含む構成である。
 プロセッサ71は、例えばCPU、DSPあるいはFPGAを用いて構成され、メモリ72と協働してメモリ72に予め記憶されるプログラムおよびデータに従って動作する。プロセッサ71は、通信回路74を介して乱数生成器80から送信された物理乱数(共通鍵)を取得する。プロセッサ71は、通信回路74を介して、病院端末H1およびコントローラC1~Cnのそれぞれに共通鍵を送信する。
 メモリ72は、例えばRAMとROMとを用いて構成され、代理サーバ70の動作の実行に必要なプログラムおよびデータ、さらには、動作中に生成されたデータもしくは情報を一時的に保持する。RAMは、例えば、代理サーバ70の動作時に使用されるワークメモリである。ROMは、例えば、代理サーバ70を制御するためのプログラムおよびデータを予め記憶して保持する。
 記録装置73は、例えばHDDまたはSSDを用いて構成され、乱数生成器80で生成された物理乱数を記憶する。
 通信回路74は、代理サーバ70との間で通信可能に接続された各種の機器との間で通信を行う回路を用いて構成される。通信回路74は、複数の病院端末H1~Hmのそれぞれとの間でデータ通信を行う。通信回路74は、ネットワークNW3を介して、複数のコントローラC1~Cnのそれぞれとの間でデータ通信を行う。なお、代理サーバ70と乱数生成器80とは、有線あるいは無線で接続されてよい。
 病院端末(例えば病院端末H1)は、代理サーバ70から送信された共通鍵を用いて元データである病院データODを暗号化し、暗号化された病院データE(OD)を、ネットワークNW1を介してメインコントローラ10に送信する。なお、以下の説明では、元データである病院データODが暗号化された場合、その暗号化された病院データを、便宜的にE(OD)と記載する。
 メインコントローラ10は、病院端末(例えば病院端末H1)により暗号化された病院データE(OD)を病院端末H1から受信し、乱数生成器20で生成された物理乱数を用いて、暗号化された病院データE(OD)の分散処理を行う。メインコントローラ10は、分散処理により生成された、複数の暗号化された分散データE(ODH1)~E(ODHn)のそれぞれを、ネットワークNW2を介して、対応するコントローラC1~Cnのそれぞれに送信する。
 次に、実施の形態2に係る秘密分散保管システム5Dの分散処理および復元処理を説明する。
 図12は、分散処理の手順を示すシーケンス図である。図12の説明では、病院端末の一例として病院端末H1を例示する。
 図12において、秘密分散保管システム5Dでは、分散処理の実行に先立って先ず、代理サーバ70は、乱数生成器80で生成された物理乱数をストリーム暗号情報として取得し、この物理乱数を共通鍵としてコントローラC1~Cnのそれぞれと病院端末H1に送信する(T31,T32,T33)。
 コントローラC1~Cnのそれぞれは、代理サーバ70から受信した共通鍵をそれぞれ記録装置53に保管する。
 病院端末H1は、代理サーバ70から受信した共通鍵をメモリ12あるいは記録装置13に保管する。病院端末H1は、この共通鍵で元データOD(例えば、病院データ)を暗号化する(T34)。病院端末H1は、暗号化元データの一例としての暗号化された病院データE(OD)をメインコントローラ10に送信する(T35)。
 メインコントローラ10は、例えば暗号化された病院データE(OD)を受信した時点で乱数生成器20により生成された物理乱数を取得し、記録装置13に記憶する(T36)。なお、メインコントローラ10は、取得された物理乱数を記録装置13に記憶せず、メモリ12に一時的に保存してよく、ステップT37の分散処理の実行後に物理乱数を削除してよい。メインコントローラ10は、この物理乱数を用いて、暗号化された病院データE(OD)の分散処理を行い、コントローラC1~Cnの配置数と一致するように複数(例えばn個)の暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれとそれぞれの暗号化された分散データに対応する分散情報との組を生成する(T37)。暗号化分散データE(H1D1)~E(H1Dn)のそれぞれは、暗号化分散データの一例である。なお、メインコントローラ10は、ステップT37の分散処理を実行した後、暗号化された病院データE(OD)を削除してもよい。
 メインコントローラ10は、暗号化された分散データE(H1D1)と対応する分散情報との組をコントローラC1に送信する(T38)。コントローラC1は、ステップT31において記録装置53に保管された共通鍵を読み出し、この共通鍵を用いて、暗号化された分散データE(H1D1)を復号して平文データである分散データH1D1を得る(T39)。コントローラC1は、復号により得られた分散データH1D1および対応する分散情報との組を、対応するシェアホルダS1に保管する(T40)。
 同様に、メインコントローラ10は、他のコントローラに対してもステップT38~T40と同様な処理を実行し、暗号化された分散データE(H1Dn)と対応する分散情報との組をコントローラCnに送信する(T41)。コントローラCnは、ステップT32において記録装置53に保管された共通鍵を読み出し、この共通鍵を用いて、暗号化された分散データE(H1Dn)を復号して平文データである分散データH1Dnを得る(T42)。コントローラCnは、復号により得られた分散データH1Dnおよび対応する分散情報との組を、対応するシェアホルダSnに保管する(T43)。
 このように、分散処理を行う場合、コントローラC1~Cnのそれぞれは、代理サーバ70から受信した共通鍵で暗号化された分散データE(H1D1)~E(H1Dn)を復号して分散データH1D1~H1Dnを得る。コントローラC1~Cnのそれぞれは、復号により得られた分散データH1D1~H1Dnのそれぞれと対応する分散情報との組を、対応するシェアホルダS1~Snに保管する。従って、シェアホルダS1~Snのそれぞれには、平文データである分散データH1D1~H1Dnのそれぞれと対応する分散情報との組が保管される。
 図13は、復元処理の動作手順例を示すシーケンス図である。図13の説明では、病院端末の一例として病院端末H1を例示する。
 図13において、秘密分散保管システム5Dでは、復元処理の実行に先だって先ず、代理サーバ70は、乱数生成器80で生成された物理乱数をストリーム暗号情報として取得し、この物理乱数を共通鍵としてコントローラC1~Cnのそれぞれと病院端末H1に送信する(T51,T52,T53)。
 コントローラC1~Cnのそれぞれは、代理サーバ70から受信した共通鍵をそれぞれ記録装置53に保管する。
 病院端末H1は、代理サーバ70から受信した共通鍵をメモリ12あるいは記録装置13に保管する。また、分散処理時と復元処理時とで、異なる共通鍵を用いてもよいし同一の共通鍵を用いてもよい。同一の共通鍵を用いる場合には、ステップT51~T53を省略可能である。
 病院端末H1は、病院データOD(元データの一例)の復元処理をメインコントローラ10に依頼(要求)する際、復元処理の対象となる病院データのファイル名を指定する(T54)。
 メインコントローラ10は、病院端末H1により指定されたファイル名に基づいて、そのファイル名に対応して生成された分散データの取得要求をコントローラC1に送信する(T55)。コントローラC1は、この取得要求に応じて、自コントローラに対応するシェアホルダS1に保管されている分散データH1D1および対応する分散情報の組を読み出す。コントローラC1は、ステップT51において記録装置53に保管された共通鍵を読み出し、この共通鍵を用いて分散データH1D1を暗号化し、暗号化された分散データE(H1D1)を得る(T56)。コントローラC1は、暗号化された分散データE(H1D1)と対応する分散情報の組をメインコントローラ10に送信する(T57)。メインコントローラ10は、暗号化された分散データE(H1D1)と対応する分散情報の組を取得する。
 同様に、メインコントローラ10は、病院端末H1により指定されたファイル名に基づいて、そのファイル名に対応して生成された分散データの取得要求をコントローラCnに送信する(T58)。コントローラCnは、この取得要求に応じて、自コントローラに対応するシェアホルダSnに保管されている分散データH1Dnおよび対応する分散情報の組を読み出す。コントローラCnは、ステップT52において記録装置53に保管された共通鍵を読み出し、この共通鍵を用いて分散データH1Dnを暗号化し、暗号化された分散データE(H1Dn)を得る(T59)。コントローラCnは、暗号化された分散データE(H1Dn)と対応する分散情報の組をメインコントローラ10に送信する(T60)。メインコントローラ10は、暗号化された分散データE(H1Dn)と対応する分散情報の組を取得する。
 このように、ステップT55~T60を経ることで、メインコントローラ10は、全てのコントローラC1~Cnから、暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれと対応する分散情報とを受信する。メインコントローラ10は、暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれと対応する分散情報とを基にして復元処理を行い、暗号化された病院データE(OD)を得る(T61)。なお、メインコントローラ10は、分散処理時に使用した物理乱数が記録装置13に保管されている場合には、その物理乱数を用いて復元処理を行ってもよい。メインコントローラ10は、暗号化された病院データE(OD)を病院端末H1に送信する(T62)。病院端末H1は、メモリ12あるいは記録装置13に記憶された共通鍵を用いて暗号化された病院データE(OD)を復号して病院データOD(所望の元データ)を取得する(T63)。
 以上により、実施の形態2の秘密分散保管システム5Dは、乱数生成器80との間で通信可能に接続される代理サーバ70を更に有する。代理サーバ70は、乱数生成器80により発生された共通鍵を、n台のコントローラC1~Cnのそれぞれと病院端末(例えば病院端末H1)とに送る。メインコントローラ10は、病院端末H1により共通鍵を用いて暗号化された病院データE(OD)を受信する。メインコントローラ10は、物理乱数を用いて、暗号化された病院データE(OD)を分散処理してn個の暗号化された分散データE(H1D1)~E(H1Dn)を生成してn台のコントローラC1~Cnのそれぞれに送る。n台のコントローラC1~Cnのそれぞれは、自装置(自コントローラ)に対応する、暗号化された分散データE(H1D1)~E(H1Dn)をメインコントローラ10から受信すると、共通鍵を用いて、その受信された分散データE(H1D1)~E(H1Dn)を復号する。n台のコントローラC1~Cnは、その復号により得られた分散データH1D1~H1Dnを自装置に対応するシェアホルダS1~Snに保管する。
 これにより、秘密分散保管システム5Dでは、メインコントローラ10が分散処理を行う場合、病院端末から受け取る病院データが既に暗号化されているので、メインコントローラ10の管理者に対して病院データの内容を秘匿できる。言い換えると、秘匿されるべき元データ(病院データ)が、メインコントローラ10とは異なる代理サーバ70から渡された共通鍵(つまり、メインコントローラ10が知り得ない共通鍵)によって暗号化されるので、病院端末は、メインコントローラ10の管理者による病院データの漏えいを心配することなく安心してメインコントローラ10に送信できる。
 また、メインコントローラ10は、病院端末H1からの復元指示に応じて、n個の分散データの取得要求をn台のコントローラC1~Cnのそれぞれに送る。n台のコントローラC1~Cnは、取得要求に応じて、共通鍵を用いて、シェアホルダS1~Snのそれぞれに保管された分散データH1D1~H1Dnを暗号化し、暗号化された分散データE(H1D1)~E(H1Dn)を生成してメインコントローラ10に送る。メインコントローラ10は、物理乱数を用いて、n台のコントローラC1~Cnのそれぞれから受信したn個の暗号化された分散データE(H1D1)~E(H1Dn)から、暗号化された病院データE(OD)を復元して病院端末H1に送る。
 これにより、メインコントローラ10が復元処理を行う場合、メインコントローラ10は、コントローラC1~Cnのそれぞれから暗号化された分散データを受け取るので、復元処理しても平文データである病院データの内容を知ることができない。つまり、メインコントローラ10には、暗号化されたデータしか取得されないので、メインコントローラ10の管理者は、機密情報を知ることができない。従って、メインコントローラの管理者による機密情報の漏洩を排除できる。
(実施の形態3)
 実施の形態2では、ストリーム暗号が使用されるため、乱数生成器80により生成された物理乱数(つまり、ストリーム暗号に用いられる共通鍵)は、代理サーバ70から病院端末(例えば病院端末H1)およびコントローラC1~Cnのそれぞれに同一の共通鍵として送信された。実施の形態3では、代理サーバ70Aは、他の暗号方式の使用を想定し、乱数生成器80を用いて得られる共通鍵を分散処理し、コントローラC1~Cnのそれぞれに、分散処理された共通鍵(つまり、乱数生成器80からの物理乱数を分散処理した分散データ)を送信することで、共通鍵の漏洩をできるだけ抑制するために、共通鍵全体そのものを送信しないように配慮する。なお、ここでの暗号方式は特に限定するものではない。
 図14は、実施の形態3に係る秘密分散保管システム5Eの構成例を示す図である。秘密分散保管システム5Eにおいて、実施の形態2に係る秘密分散保管システム5Dと同一の構成要素には同一の符号を用いることで、その説明を簡略化または省略し、異なる内容について説明する。
 秘密分散保管システム5Eでは、代理サーバ70Aは、乱数生成器80で生成された物理乱数を暗号情報として記録装置73に記憶する。代理サーバ70は、この物理乱数を分散処理し、ネットワークNW3を介して、分散された共通鍵を各コントローラC1~Cnに送信する。コントローラC1~Cnのそれぞれは、代理サーバ70Aから受信した、分散された共通鍵を自コントローラの記録装置53に記憶する。分散された共通鍵は、暗号情報として生成された物理乱数を分散処理したものであるので、コントローラC1~Cnのそれぞれで異なる。一方、代理サーバ70Aは、乱数生成器80で生成された物理乱数を分散処理せずに、そのまま病院端末H1に共通鍵を送信する。
 図15は、分散処理の動作手順例を示すシーケンス図である。図15の説明では、病院端末の一例として病院端末H1を例示する。
 図15において、秘密分散保管システム5Eは、分散処理を開始する前に事前準備を行う。事前準備では、先ず、病院端末H1と代理サーバ70Aとの間で公知の機器認証および通信路の形成が行われる(T101)。機器認証は、例えば公開鍵暗号方式を用いて行われる。また、病院端末H1と代理サーバ70Aとの間でネゴシエーションが行われ、データ通信可能な通信路が形成される。この通信路には、例えばVPNが利用される。
 同様に、病院端末H1とメインコントローラ10との間で公知の機器認証および通信路の形成が行われる(T102)。代理サーバ70AとコントローラC1との間で公知の機器認証および通信路の形成が行われる(T103)。代理サーバ70AとコントローラC2以降のコントローラとの間でも同様の機器認証および通信路の形成が行われ、最終的に代理サーバ70AとコントローラCnとの間で公知の機器認証および通信路の形成が行われる(T104)。
 また同様に、メインコントローラ10とコントローラC1との間で公知の機器認証および通信路の形成が行われる(T105)。メインコントローラ10とコントローラC2以降のコントローラとの間でも同様の機器認証および通信路の形成が行われ、最終的にメインコントローラ10とコントローラCnとの間で公知の機器認証および通信路の形成が行われる(T106)。
 分散処理が開始される際、病院端末H1は、元データである病院データODのファイル情報(ファイル名およびデータ量を含む)を代理サーバ70Aに送信する(T107)。代理サーバ70Aは、病院端末H1から病院データODのファイル情報を受信すると、このファイル情報を基に、乱数生成器80で生成された物理乱数を取得して保管する(T108)。例えば暗号アルゴリズムの一例としてバーナム暗号が使用される場合、乱数生成器80は、病院データのサイズ長(桁数)と同じサイズ長を有する物理乱数を生成する。代理サーバ70Aは、物理乱数を分散処理し、複数(例えばn個)の分散された共通鍵を生成する。
 代理サーバ70Aは、コントローラC1~Cnのそれぞれに対し、n個に分散された共通鍵(以下「物理乱数ファイル」)のそれぞれを1対1となるように対応付けて送信する(T109,T110)。例えば、代理サーバ70Aは、第1の物理乱数ファイルを第1のコントローラに送信し、第2の物理乱数ファイルを第2のコントローラに送信し、同様にして第nの物理乱数ファイルを第nのコントローラに送信する。コントローラC1~Cnのそれぞれは、自コントローラに対応するシェアホルダS1~Snのそれぞれに、代理サーバ70Aから受信した、n個に分散された共通鍵のうちいずれかを送信して保管する。この分散された共通鍵のヘッダ情報には、病院端末H1の病院データODのファイル名が含まれる。これにより、後述する病院データODの分散データと、分散された共通鍵とは、同一のファイル名(具体的には、病院データODのファイル名)で対応付けられる。
 ここで、コントローラC1~Cnのそれぞれは、代理サーバ70Aから受信した、分散された共通鍵(物理乱数ファイル)を記憶する際、分散された共通鍵(物理乱数ファイル)の使用状態として未使用状態を示す状態フラグの値を「1」に設定する。この状態フラグの値は、後述するように、暗号化された病院データの分散データ(暗号化分散データ)を分散された共通鍵(物理乱数ファイル)で復号して、平文データである分散データをシェアホルダS1~Snのそれぞれに保管する際、「0」に変更される。つまり、状態フラグの値が「1」か「0」かによって、分散された共通鍵(物理乱数ファイル)が未使用であるか使用済みであるかが認識される。これにより、病院データの分散データが保管される前に一連の処理が中断された場合、状態フラグの値が「1」である分散された共通鍵(物理乱数ファイル)を消去することが可能であり、病院データの分散データの保管に使用されない分散乱数データが徒に残ってしまうことを回避できる。従って、メモリの使用効率を上げることができる。また、コントローラC1~Cnのそれぞれは、状態フラグの値が「1」である物理乱数ファイル(分散乱数データ)が無い場合、暗号化分散データの受信を拒否でき、エラーを検知できる。
 代理サーバ70Aは、コントローラC1~Cnのそれぞれに、分散された共通鍵を送信した後に病院端末H1に共通鍵を送信する(T111)。病院端末H1は、分散された共通鍵をメモリ12あるいは記録装置13に記憶する。なお、代理サーバ70Aは、事前準備の段階で、乱数生成器80から物理乱数を取得して生成してもよい。
 病院端末H1は、メモリ12あるいは記録装置13に記憶された共通鍵を用いて病院データODを暗号化し、暗号化された病院データE(OD)を得る(T112)。病院端末H1は、暗号化された病院データE(OD)をメインコントローラ10に送信する(T113)。メインコントローラ10は、暗号化された病院データE(OD)を受信する。
 メインコントローラ10は、例えば暗号化された病院データE(OD)を受信した時点で乱数生成器20により生成された物理乱数を取得し、記録装置13に保管する。なお、メインコントローラ10は、分散処理の実行後に物理乱数を削除してよい。また、メインコントローラ10は、この段階で生成された物理乱数を取得してもよいし、事前準備で物理乱数を取得してもよい。
 メインコントローラ10は、この物理乱数を用いて分散処理を行い、複数の暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれとそれぞれの暗号化された分散データに対応する分散情報の組を生成する(T114)。メインコントローラ10は、複数の暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれと対応する分散情報の組を、対応するコントローラC1~Cnのそれぞれに送信する(T115,T116)。
 コントローラC1~Cnのそれぞれは、複数の暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれと対応する分散情報の組を受信した後、記録装置53に記憶された分散された共通鍵を用いて復号し、平文データである分散データH1D1~H1Dnのそれぞれを取得し、対応するシェアホルダS1~Snのそれぞれに保管する。ここで、暗号化された分散データと分散された共通鍵とは、上述したように、ファイル名で対応付けられる。
 メインコントローラ10は、分散処理を終えると、病院端末H1に病院データODの分散処理が終了したことを表す終了通知を送信する(T117)。コントローラC1~Cnのそれぞれは、状態フラグの値を、分散された共通鍵の使用済みを示す値である「0」に変更する(T118,T119)。なお、ステップT117とステップT118,T119の処理は、逆の順番で行われてもよい。
 図16は、復元処理の動作手順例を示すシーケンス図である。図16の説明では、病院端末の一例として病院端末H1を例示する。
 図16において、復元処理は、図15に示した分散処理が行われた後(例えば半年後等)の任意の時期に行われる。秘密分散保管システム5Eは、復元処理を開始する前に分散処理の開始前と同様の事前準備を行う(T121~T126)。分散処理と同様であるので、事前準備の説明を省略する。
 復元処理が開始される際、病院端末H1は、ユーザの操作により、復元処理が要請される所望の元データ(例えば病院データOD)のファイル名を指定し、メインコントローラ10に通知する(T127)。このファイル名の指定は平文データを用いて行われてよい。
 メインコントローラ10は、コントローラC1~Cnのそれぞれに対し、病院端末H1により指定されたファイル名に対応する分散データH1D1~H1Dnのそれぞれのヘッダ情報だけの呼び出しを行う(T128,T129)。コントローラC1~Cnのそれぞれは、シェアホルダS1~Snのそれぞれに保管されている個々の異なる分散データH1D1~H1Dnのそれぞれのヘッダ情報と対応する分散情報の組を読み出してメインコントローラ10に送信する。メインコントローラ10は、これらのヘッダ情報と対応する分散情報の組を基に、病院データODのヘッダ情報を復元する(T130)。メインコントローラ10は、復元したヘッダ情報に含まれるファイルサイズ(データ量)を取得し、病院端末H1にデータ量の情報を送信する(T131)。
 病院端末H1は、復元する病院データODのファイル名およびデータ量を指定して代理サーバ70Aに通知する(T132)。代理サーバ70Aは、病院端末H1から病院データODのファイル名およびデータ量を受信すると、このファイル情報を基に乱数生成器80で生成される物理乱数を取得する(T133)。ファイル名およびデータ量を用いて指定することで、物理乱数と病院データとの対応、および物理乱数のデータサイズが明確になる。代理サーバ70Aは、乱数生成器80で生成された物理乱数の分散処理を行い、分散された共通鍵を記録装置73に記憶する。
 代理サーバ70Aは、コントローラC1~Cnのそれぞれに、分散された共通鍵を送信する(T134,T135)。コントローラC1~Cnのそれぞれは、対応するシェアホルダS1~Snのそれぞれに、分散された共通鍵を一時的に保管する。この分散された共通鍵のヘッド情報には、病院端末H1の病院データODのファイル名が含まれる。代理サーバ70Aは、病院端末H1に共通鍵を送信する(T136)。病院端末H1は、共通鍵をメモリ12あるいは記録装置13に記憶する。
 病院端末H1は、復元する病院データODのファイル名を指定してメインコントローラ10に通知する(T137)。メインコントローラ10は、コントローラC1~Cnのそれぞれに、分散データの取得要求を送信する。コントローラC1~Cnのそれぞれは、この取得要求に応じ、対応するシェアホルダS1~Snのそれぞれに保管された分散データH1D1~H1Dnのいずれかと対応する分散情報の組を読み出す。コントローラC1~Cnのそれぞれは、記録装置53に記憶されている分散された共通鍵を用いて、対応する分散データH1D1~H1Dnのいずれかを暗号化し、暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれを得る。コントローラC1~Cnのそれぞれは、暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれと対応する分散情報の組をメインコントローラ10に送信する(T138,T139)。
 メインコントローラ10は、コントローラC1~Cnのそれぞれから暗号化された分散データと対応する分散情報の組を受信すると、それぞれの暗号化された分散データに対応する分散情報を用いて、暗号化された病院データを復元するための復元処理を行う。これにより、メインコントローラ10は、暗号化された病院データE(OD)を得ることができる(T140)。メインコントローラ10は、復元により得られた暗号化された病院データE(OD)を病院端末H1に送信する(T141)。
 病院端末H1は、ステップT136でメモリ12あるいは記録装置13に記憶された共通鍵を用いて、暗号化された病院データE(OD)を復号し、病院データODを得る(T142)。病院端末H1は、平文データである病院データを取得できる。
 このように、実施の形態3に係る秘密分散保管システム5Eでは、コントローラC1~Cnのそれぞれに分散された共通鍵が渡るので、コントローラC1~Cnのそれぞれの管理者は、他のコントローラに保管されている分散された共通鍵を知ることができない。従って、各コントローラの管理者による機密情報の漏洩を排除でき、よりセキュリティの高いシステムを構築できる。また、実施の形態2と同様、分散処理を行う場合、病院端末から受け取る病院データが暗号化されているので、メインコントローラ10の管理者は、病院データの内容を知ることができない。また、メインコントローラ10は、どの病院データにどの物理乱数を用いられたかが分からない。同様に、復元処理を行う場合、メインコントローラ10の管理者は、コントローラC1~Cnのそれぞれから暗号化された分散データを受け取るので、復元処理しても病院データの内容を知ることができない。つまり、メインコントローラ10には、暗号化されたデータしか渡らないので、メインコントローラ10の管理者は、機密性の高い病院データを平文データの形式で知ることができない。従って、メインコントローラ10の管理者による機密情報の漏洩を排除できる。
(データ構造例)
 次に、上述した実施の形態1~3に係る各種のデータの構造例について、図17、図18および図19を参照して説明する。図17~図19の説明においては、説明を分かり易くするために、コントローラおよびシェアホルダの配置数は「4」とする。
 図17は、元データOD、物理乱数A、および分散データODDの一例を示すテーブルである。
 一例として、元データOD(例えば病院データ)は、例えば8個の元データOD1,元データOD2,…,元データOD8が連接されて構成される。
 同様に、物理乱数Aは、分散処理用に乱数生成器20により生成され、例えば8個の乱数A1,乱数A2,…,乱数A8が連接されて構成される。図17に示すように、例えばバーナム暗号が使用される場合、元データODのサイズ長と物理乱数Aのサイズ長とは同一であるため、元データOD1と乱数A1、元データOD2と乱数A2、…、元データOD8と乱数A8とはともに同一のサイズ長を有する。
 ここで、メインコントローラ10により、元データOD1~OD8のそれぞれと対応する乱数A1~A8のそれぞれとが用いて分散処理が実行される際、図17に示す4個の分散データOD1D,OD2D,OD3D,OD4Dから構成される分散データODDが得られる。
 分散データOD1Dは、元データOD1と元データOD5と乱数A1と乱数A5とが排他的論理和(つまり、XOR処理)されることで、「元データOD1 XOR 元データOD5 XOR 乱数A1 XOR 乱数A5」のように生成される。なお、分散データOD1Dの構成例は、図17に示す例に限定されない。従って、分散データOD1Dは、対応するシェアホルダとして、例えばシェアホルダS1にて保管される。
 同様に、元データOD2と元データOD6と乱数A2と乱数A6とが排他的論理和(つまり、XOR処理)されることで、「元データOD2 XOR 元データOD6 XOR 乱数A2 XOR 乱数A6」のように生成される。なお、分散データOD2Dの構成例は、図17に示す例に限定されない。従って、分散データOD2Dは、対応するシェアホルダとして、例えばシェアホルダS2にて保管される。
 同様に、元データOD3と元データOD7と乱数A3と乱数A7とが排他的論理和(つまり、XOR処理)されることで、「元データOD3 XOR 元データOD7 XOR 乱数A3 XOR 乱数A7」のように生成される。なお、分散データOD3Dの構成例は、図17に示す例に限定されない。従って、分散データOD3Dは、対応するシェアホルダとして、例えばシェアホルダS3にて保管される。
 同様に、元データOD4と元データOD8と乱数A4と乱数A8とが排他的論理和(つまり、XOR処理)されることで、「元データOD4 XOR 元データOD8 XOR 乱数A4 XOR 乱数A8」のように生成される。なお、分散データOD4Dの構成例は、図17に示す例に限定されない。従って、分散データOD4Dは、対応するシェアホルダとして、例えばシェアホルダS4にて保管される。
 図18は、物理乱数B、および暗号化された元データ(病院データ)E(OD)の一例を示すテーブルである。
 物理乱数Bは、通信の暗号化用あるいは復号用に乱数生成器80により生成され、例えば8個の乱数B1,乱数B2,…,乱数B8が連接されて構成される。図18に示すように、例えばバーナム暗号が使用される場合、元データODのサイズ長と物理乱数Bのサイズ長とは同一であるため、元データOD1と乱数B1、元データOD2と乱数B2、…、元データOD8と乱数B8とはともに同一のサイズ長を有する。
 ここで、病院端末(例えば病院端末H1)により、元データOD1~OD8のそれぞれと対応する乱数B1~B8のそれぞれとを用いて暗号化の処理が実行される際、図18に示す8個の暗号1~8から構成される暗号化された病院データE(OD)が得られる。
 暗号1は、元データOD1と乱数B1とが排他的論理和(つまり、XOR処理)されることで、「乱数B1 XOR 元データOD1」のように生成される。なお、暗号1の構成例は、図18に示す例に限定されない。
 同様に、暗号2は、元データOD2と乱数B2とが排他的論理和(つまり、XOR処理)されることで、「乱数B2 XOR 元データOD2」のように生成される。なお、暗号2の構成例は、図18に示す例に限定されない。
 同様に、暗号3は、元データOD3と乱数B3とが排他的論理和(つまり、XOR処理)されることで、「乱数B3 XOR 元データOD3」のように生成される。なお、暗号3の構成例は、図18に示す例に限定されない。
 同様に、暗号4は、元データOD4と乱数B4とが排他的論理和(つまり、XOR処理)されることで、「乱数B4 XOR 元データOD4」のように生成される。なお、暗号4の構成例は、図18に示す例に限定されない。
 同様に、暗号5は、元データOD5と乱数B5とが排他的論理和(つまり、XOR処理)されることで、「乱数B5 XOR 元データOD5」のように生成される。なお、暗号5の構成例は、図18に示す例に限定されない。
 同様に、暗号6は、元データOD6と乱数B6とが排他的論理和(つまり、XOR処理)されることで、「乱数B6 XOR 元データOD6」のように生成される。なお、暗号6の構成例は、図18に示す例に限定されない。
 同様に、暗号7は、元データOD7と乱数B7とが排他的論理和(つまり、XOR処理)されることで、「乱数B7 XOR 元データOD7」のように生成される。なお、暗号7の構成例は、図18に示す例に限定されない。
 同様に、暗号8は、元データOD8と乱数B8とが排他的論理和(つまり、XOR処理)されることで、「乱数B8 XOR 元データOD8」のように生成される。なお、暗号2の構成例は、図18に示す例に限定されない。
 実施の形態2あるいは実施の形態3では、暗号化された元データ(病院データ)E(OD)は、病院端末(例えば病院端末H1)において生成され、病院端末H1からメインコントローラ10に対して送信される。メインコントローラ10は、暗号化された元データ(病院データ)E(OD)を、乱数生成器20により生成された物理乱数Aを用いて分散処理を行い、図19に示す4個の暗号化された分散データ(暗号1D,暗号2D,暗号3D,暗号4D)を生成する。
 図19は、暗号化された元データ(病院データ)E(OD)が分散処理されて生成された、分散された暗号化分散データE(ODD)の一例を示すテーブルである。
 暗号化分散データE(ODD)は、例えば4個の暗号1D,暗号2D,暗号3D,暗号4Dから構成される。暗号1D~暗号4Dは、それぞれ分散された、暗号化された元データを示す。
 実施の形態3において、メインコントローラ10は、図17に示す分散データの生成アルゴリズム(分散処理方法)に従い、暗号化された元データ(病院データ)E(OD)を、乱数生成器20により生成された物理乱数Aを用いて分散処理を行う。これにより、例えば4個の分散された、暗号化された元データ(具体的には、暗号1D~暗号4D)が生成される。
 暗号1Dは、暗号1と暗号5と乱数A1と乱数A5とが排他的論理和(つまり、XOR処理)されることで、「暗号1 XOR 暗号5 XOR 乱数B1 XOR 乱数B5」のように生成される。なお、暗号1Dの構成例は、図19に示す例に限定されない。
 暗号2Dは、暗号2と暗号6と乱数A2と乱数A6とが排他的論理和(つまり、XOR処理)されることで、「暗号2 XOR 暗号6 XOR 乱数B2 XOR 乱数B6」のように生成される。なお、暗号2Dの構成例は、図19に示す例に限定されない。
 暗号3Dは、暗号3と暗号7と乱数A3と乱数A7とが排他的論理和(つまり、XOR処理)されることで、「暗号3 XOR 暗号7 XOR 乱数B3 XOR 乱数B7」のように生成される。なお、暗号3Dの構成例は、図19に示す例に限定されない。
 暗号4Dは、暗号4と暗号8と乱数A4と乱数A8とが排他的論理和(つまり、XOR処理)されることで、「暗号4 XOR 暗号8 XOR 乱数B4 XOR 乱数B8」のように生成される。なお、暗号4Dの構成例は、図19に示す例に限定されない。
 従って、例えば4台のコントローラのそれぞれに送られる、分散された暗号化された元データ(暗号1D,暗号2D,暗号3D,暗号4D)は、「物理乱数Bの分散処理により生成された分散データ」である分散乱数データ(「乱数B1 XOR 乱数B5」,「乱数B2 XOR 乱数B6」,「乱数B3 XOR 乱数B7」,「乱数B4 XOR 乱数B8」)と、「元データODの分散処理により生成された分散データ」である分散データOD1D,OD2D,OD3D,OD4Dとを排他論理和(XOR処理)したものとなる。
 従って、4台のコントローラのそれぞれは、代理サーバ70Aから受け取った分散処理された乱数(「乱数B1 XOR 乱数B5」,「乱数B2 XOR 乱数B6」,「乱数B3 XOR 乱数B7」,「乱数B4 XOR 乱数B8」)と、メインコントローラ10から受け取った暗号化分散データ(暗号1D,暗号2D,暗号3D,暗号4D)とを用いて、平文データである分散データOD1D,OD2D,OD3D,OD4Dを生成できる。4台のコントローラのそれぞれは、対応する4台のシェアホルダのいずれかに平文データである分散データOD1D~OD4Dのそれぞれを保管する。
 以上により、秘密分散保管システム5Eは、n台のシェアホルダS1~Snのそれぞれに対応して設けられるn台のコントローラC1~Cnのそれぞれと、n台のコントローラC1~Cnのそれぞれ、少なくとも1台の病院端末H1~Hnのそれぞれ、および乱数生成器20との間で通信可能に接続されるメインコントローラ10と、n台のコントローラC1~Cnのそれぞれ、病院端末H1~Hnのそれぞれ、および乱数生成器80との間で通信可能に接続される代理サーバ70Aとを備える。代理サーバ70Aは、病院データのファイル名およびデータ量(元データの書誌情報の一例)を病院端末(例えば病院端末H1)から受信すると、乱数生成器80により発生された共通鍵(第2物理乱数)を分散処理してn個の分散処理された共通鍵(分散乱数データ)を生成する。代理サーバ70Aは、n個の分散処理された共通鍵のそれぞれを、対応するn台のコントローラC1~Cnに送るとともに、共通鍵を病院端末H1に送る。メインコントローラ10は、共通鍵を用いて暗号化された病院データE(OD)を病院端末H1から受信すると、乱数生成器20により発生された物理乱数を取得し、この物理乱数を用いて、暗号化された病院データE(OD)を分散処理してn個の暗号化された分散データE(H1D1)~E(H1Dn)(暗号化分散データ)を生成する。メインコントローラ10は、n個の暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれを、対応するn台のコントローラC1~Cnに送る。
 これにより、秘密分散保管システム5Eでは、代理サーバ70Aは、乱数生成器80により得られた物理乱数を共通鍵として使用し、その共通鍵を分散処理してコントローラC1~Cnのそれぞれに、メインコントローラ10の管理者が知得することなく、分散処理された共通鍵を安全に渡すことが可能となる。従って、秘密分散保管システム5Eによれば、病院端末(例えば病院端末H1)が保持する秘匿性の高い病院データが分散処理される際に、メインコントローラ10には、代理サーバ70A、病院端末およびそれぞれのコントローラしか知り得ない共通鍵により病院データが暗号化された上で渡されるので、メインコントローラ10の管理者は病院データの内容の知得を防ぐことができる。
 また、n台のコントローラC1~Cnのそれぞれは、自装置(自コントローラ)に対応する暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれ(具体的には、いずれか一つ)をメインコントローラ10から受信すると、自装置に対応する分散処理された共通鍵を用いて復号し、復号により得られた分散データを対応するシェアホルダS1~Snに保管する。これにより、秘密分散保管システム5Eによれば、シェアホルダS1~Snに分散データを保管する際、いずれの暗号化された分散データを復号する際も、対応する分散処理された共通鍵を容易に特定できる。
 また、代理サーバ70Aは、病院端末H1からの病院データのデータ量(サイズ量情報)を含む復元指示に応じて、乱数生成器80により生成された共通鍵を分散処理してn個の分散処理された共通鍵(分散乱数データ)を生成する。代理サーバ70Aは、n個の分散処理された共通鍵のそれぞれを、対応するn台のコントローラC1~Cnに送るとともに、共通鍵を病院端末H1に送る。n台のコントローラC1~Cnのそれぞれは、自装置に対応するシェアホルダS1~Snのそれぞれから受信した分散データH1D1~H1Dnを、自装置が代理サーバ70Aから受信した分散処理された共通鍵を用いて暗号化し、暗号化された分散データE(H1D1)~E(H1Dn)のそれぞれを生成してメインコントローラ10に送る。メインコントローラ10は、n台のコントローラC1~Cnのそれぞれから受信した、暗号化された分散データE(H1D1)~E(H1Dn)から暗号化された病院データE(OD)を復元して病院端末H1に送る。これにより、代理サーバ70Aは、乱数生成器80を用いて得られる共通鍵を分散処理して各コントローラに分散処理された共通鍵を渡す。従って、復元処理する場合、共通鍵を安全に各コントローラに渡すことができる。
 また、メインコントローラ10は、病院端末H1からの復元指示に応じて、n台のコントローラC1~Cnのそれぞれが対応するシェアホルダS1~Snから受信した分散データのファイル名(書誌情報の一例)を、n台のコントローラC1~Cnからそれぞれ受信する。メインコントローラ10は、病院データの書誌情報を復元し、病院データの書誌情報から病院データのデータ量(サイズ量情報)を抽出する。これにより、シェアホルダS1~Snに保管される分散データを復元する際も、対応する分散処理された共通鍵を容易に特定して分散データを暗号化できる。
 また、n台のコントローラC1~Cnのそれぞれは、対応する分散処理された共通鍵を保管する際、その分散処理された共通鍵(分散乱数データ)の使用状態を示す状態フラグの値を「1」に設定する。その後、n台のコントローラC1~Cnのそれぞれは、分散処理された共通鍵を用いてn個の暗号化された分散データE(H1D1)~E(H1Dn)をそれぞれ復号し、復号した分散データを対応シェアホルダS1~Snに保管した後、使用済みを表す情報、つまり状態フラグの値を「0」に設定する。これにより、病院データの分散データが保管される前に一連の処理が中断された場合、状態フラグの値が「1」である分散処理された共通鍵を消去することで、保管に使用されない分散処理された共通鍵が残ってしまうことを回避できる。つまり、メモリの使用効率を上げることができる。また、コントローラC1~Cnのそれぞれは、状態フラグの値が「1」である分散処理された共通鍵が無い場合、暗号化された分散データの受信を拒否でき、速やかにエラーを発生できる。
 以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
 例えば、上記実施形態では、ユーザとして病院端末を例示したが、これに限らず、公的機関や民間の研究施設等、病院データを扱う組織において、本開示は適用可能である。
 なお、本出願は、2019年2月22日出願の日本特許出願(特願2019-031022)に基づくものであり、その内容は本出願の中に参照として援用される。
 本開示は、秘密分散を必要とするユーザの数に拘わらず、秘密分散の際に用いる物理乱数を発生する物理乱数生成器の設置に伴うコストアップを抑制し、秘匿されるべき元データの安全な保管の実現を支援するクラウドサービスを用いた安全な秘密分散保管システムとして有用である。
5 秘密分散保管システム
10 メインコントローラ
11、41、51、71 プロセッサ
12、42、52、72 メモリ
13、43、53、73 記録装置
14、44、54、74 通信回路
20 乱数生成器
70 代理サーバ
C1、Cn コントローラ
H1、Hm 病院端末
S1、Sn シェアホルダ

Claims (14)

  1.  少なくとも1台のユーザ端末、n(n:2以上の整数)台の保管装置のそれぞれ、および乱数生成器との間で通信可能に接続されるメインコントローラを有する秘密分散保管システムであって、
     前記メインコントローラは、
     前記ユーザ端末から送られる元データを受信すると、前記乱数生成器により発生された乱数を取得し、
     前記乱数を用いて、前記元データを分散処理してn個の分散データを生成し、
     前記n個の分散データのそれぞれを、対応する前記n台の保管装置に保管する、
     秘密分散保管システム。
  2.  前記メインコントローラは、
     前記ユーザ端末からの復元指示に応じて前記n台の保管装置のそれぞれに保管される前記n個の分散データを取得し、前記n個の分散データから前記元データを復元して前記ユーザ端末に送る、
     請求項1に記載の秘密分散保管システム。
  3.  前記n台の保管装置のそれぞれに対応して設けられ、前記メインコントローラとの間で通信可能に接続されるn台のコントローラ、を更に有し、
     前記メインコントローラは、
     前記n個の分散データの生成に関する論理分散情報を生成し、
     前記n個の分散データのそれぞれと前記論理分散情報とを対応付けて、対応する前記n台のコントローラに送信し、
     前記n台のコントローラは、
     自装置に対応する前記分散データと前記論理分散情報とを前記メインコントローラから受信し、前記論理分散情報を用いて自装置が受信した分散データに関する実体分散情報を生成し、対応する前記n台の保管装置に、前記実体分散情報と前記自装置が受信した分散データとを対応付けて保管する、
     請求項1に記載の秘密分散保管システム。
  4.  前記n台のコントローラのうち少なくとも1台は、
     複数の保管装置との間で通信可能に接続され、前記複数の保管装置のそれぞれに、前記実体分散情報と前記自装置が受信する分散データとを対応付けて保管する、
     請求項3に記載の秘密分散保管システム。
  5.  前記少なくとも1台のユーザ端末、前記n台の保管装置、前記乱数生成器および前記メインコントローラとの間で通信可能に接続される第2メインコントローラ、を更に備え、
     前記メインコントローラは、
     自装置の動作不良を検知すると、前記論理分散情報と権限移譲通知とを前記第2メインコントローラに送り、
     前記第2メインコントローラは、
     前記論理分散情報と前記権限移譲通知とを前記メインコントローラから受信すると、前記メインコントローラに代わって、前記元データの分散処理および復元処理を代行する、
     請求項3または4に記載の秘密分散保管システム。
  6.  第2乱数生成器との間で通信可能に接続される通信管理サーバ、を更に有し、
     前記通信管理サーバは、
     前記第2乱数生成器により発生された第2乱数を前記n台のコントローラおよび前記ユーザ端末に送り、
     前記メインコントローラは、
     前記ユーザ端末により前記第2乱数を用いて暗号化された暗号化元データを前記元データとして受信し、
     前記乱数を用いて、前記暗号化元データを分散処理してn個の暗号化分散データを生成して前記n台のコントローラにそれぞれ送り、
     前記n台のコントローラは、
     自装置に対応する前記暗号化分散データを前記メインコントローラから受信すると、前記第2乱数を用いて、その受信された前記暗号化分散データを復号し、その復号により得られた分散データを自装置に対応する前記保管装置に保管する、
     請求項3に記載の秘密分散保管システム。
  7.  前記メインコントローラは、
     前記ユーザ端末からの復元指示に応じて、n個の分散データの取得要求を前記n台の保管装置のそれぞれに送り、
     前記n台のコントローラは、
     前記取得要求に応じて、前記第2乱数を用いて、前記n台の保管装置のそれぞれに保管された前記分散データを暗号化して暗号化分散データを生成して前記メインコントローラに送り、
     前記メインコントローラは、
     前記乱数を用いて、前記n台のコントローラのそれぞれから受信したn個の前記暗号化分散データから、暗号化元データを復元して前記ユーザ端末に送る、
     請求項6に記載の秘密分散保管システム。
  8.  n(n:2以上の整数)台の保管装置のそれぞれに対応して設けられるn台のコントローラと、
     前記n台のコントローラ、少なくとも1台のユーザ端末、および乱数生成器との間で通信可能に接続されるメインコントローラと、
     前記n台のコントローラ、前記ユーザ端末、および第2乱数生成器との間で通信可能に接続される通信管理サーバと、を備え、
     前記通信管理サーバは、
     元データの書誌情報を前記ユーザ端末から受信すると、前記第2乱数生成器により発生された第2乱数を分散処理してn個の分散乱数データを生成し、
     前記n個の分散乱数データのそれぞれを、対応する前記n台のコントローラに送るとともに、前記第2乱数を前記ユーザ端末に送り、
     前記メインコントローラは、
     前記第2乱数を用いて前記元データが暗号化された暗号化元データを前記ユーザ端末から受信すると、前記乱数生成器により発生された乱数を取得し、
     前記乱数を用いて、前記暗号化元データを分散処理してn個の暗号化分散データを生成し、
     前記n個の暗号化分散データのそれぞれを、対応する前記n台のコントローラに送る、
     秘密分散保管システム。
  9.  前記n台のコントローラは、
     自装置に対応する前記暗号化分散データを前記メインコントローラから受信すると、自装置に対応する前記分散乱数データを用いて復号し、復号により得られた分散データを対応する前記保管装置に保管する、
     請求項8に記載の秘密分散保管システム。
  10.  前記通信管理サーバは、
     前記ユーザ端末からの元データのサイズ量情報を含む復元指示に応じて、前記第2乱数生成器により発生された第2乱数を分散処理してn個の分散乱数データを生成し、
     前記n個の分散乱数データのそれぞれを、対応する前記n台のコントローラに送るとともに、前記第2乱数を前記ユーザ端末に送り、
     前記n台のコントローラは、
     自装置に対応する前記保管装置から受信した分散データを、自装置が前記通信管理サーバから受信した分散乱数データを用いて暗号化した暗号化分散データを生成して前記メインコントローラに送り、
     前記メインコントローラは、
     前記n台のコントローラのそれぞれから受信した前記暗号化分散データから、暗号化元データを復元して前記ユーザ端末に送る、
     請求項8に記載の秘密分散保管システム。
  11.  前記メインコントローラは、
     前記ユーザ端末からの復元指示に応じて、前記n台のコントローラのそれぞれが対応する前記保管装置から受信した分散データの書誌情報を、前記n台のコントローラからそれぞれ受信し、
     前記元データの書誌情報を復元し、前記元データの書誌情報から前記元データのサイズ量情報を抽出する、
     請求項10に記載の秘密分散保管システム。
  12.  前記n台のコントローラのそれぞれは、対応する前記分散乱数データを保管する際、その分散乱数データの使用状態を示す状態フラグを未使用に設定し、
     対応する前記分散乱数データを用いて対応する前記暗号化分散データを復号し、その復号により得られた分散データを対応する前記保管装置に保管した後、前記状態フラグを使用済みに更新する、
     請求項9に記載の秘密分散保管システム。
  13.  少なくとも1台のユーザ端末、n(n:2以上の整数)台の保管装置のそれぞれ、および乱数生成器との間で通信可能に接続されるメインコントローラを有する秘密分散保管システムを用いた秘密分散保管方法であって、
     前記ユーザ端末から送られる元データを受信すると、前記乱数生成器により発生された乱数を取得するステップと、
     前記乱数を用いて、前記元データを分散処理してn個の分散データを生成するステップと、
     前記n個の分散データのそれぞれを、対応する前記n台の保管装置に保管するステップと、を有する、
     秘密分散保管方法。
  14.  n(n:2以上の整数)台の保管装置のそれぞれに対応して設けられるn台のコントローラと、
     前記n台のコントローラ、少なくとも1台のユーザ端末、および乱数生成器との間で通信可能に接続されるメインコントローラと、
     前記n台のコントローラ、前記ユーザ端末、および第2乱数生成器との間で通信可能に接続される通信管理サーバと、を備える秘密分散保管システムを用いた秘密分散保管方法であって、
     元データの書誌情報を前記ユーザ端末から受信すると、前記第2乱数生成器により発生された第2乱数を分散処理してn個の分散乱数データを生成するステップと、
     前記n個の分散乱数データのそれぞれを、対応する前記n台のコントローラに送るとともに、前記第2乱数を前記ユーザ端末に送るステップと、
     前記第2乱数を用いて前記元データが暗号化された暗号化元データを前記ユーザ端末から受信すると、前記乱数生成器により発生された乱数を取得するステップと、
     前記乱数を用いて、前記暗号化元データを分散処理してn個の暗号化分散データを生成するステップと、
     前記n個の暗号化分散データのそれぞれを、対応する前記n台のコントローラに送るステップと、を有する、
     秘密分散保管方法。
     
PCT/JP2020/001990 2019-02-22 2020-01-21 クラウドサービスを用いた安全な秘密分散保管システム WO2020170695A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/432,774 US20220147640A1 (en) 2019-02-22 2020-01-21 Secure secret sharing storage system using cloud service
CN202080016062.5A CN113474829B (zh) 2019-02-22 2020-01-21 使用云服务的安全秘密共享存储系统
EP20759534.9A EP3929896A4 (en) 2019-02-22 2020-01-21 SECURE SECRET SHARING STORAGE SYSTEM USING A CLOUD SERVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-031022 2019-02-22
JP2019031022A JP7356673B2 (ja) 2019-02-22 2019-02-22 クラウドサービスを用いた安全な秘密分散保管システム

Publications (1)

Publication Number Publication Date
WO2020170695A1 true WO2020170695A1 (ja) 2020-08-27

Family

ID=72144218

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/001990 WO2020170695A1 (ja) 2019-02-22 2020-01-21 クラウドサービスを用いた安全な秘密分散保管システム

Country Status (5)

Country Link
US (1) US20220147640A1 (ja)
EP (1) EP3929896A4 (ja)
JP (1) JP7356673B2 (ja)
CN (1) CN113474829B (ja)
WO (1) WO2020170695A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271724B2 (en) * 2019-02-21 2022-03-08 Quantum Lock, Inc. One-time-pad encryption system and methods
US11985240B2 (en) * 2020-07-20 2024-05-14 Seagate Technology Llc Computing system with decentralized authentication and authorization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248711A (ja) * 2010-05-28 2011-12-08 Nomura Research Institute Ltd 秘密分散によるデータ管理システム
JP2014044264A (ja) * 2012-08-24 2014-03-13 Panasonic Corp 秘密分散装置および秘密分散プログラム
JP2014509753A (ja) 2011-03-31 2014-04-21 パナソニック株式会社 秘密分散装置、分散装置および秘密分散方法
JP2014096692A (ja) * 2012-11-09 2014-05-22 Fujitsu Ltd 情報分析システム及び情報分析方法
JP2019031022A (ja) 2017-08-08 2019-02-28 アオイ電子株式会社 サーマルヘッド

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3560860B2 (ja) * 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
JP2004534333A (ja) * 2001-07-05 2004-11-11 ヴラディミール ヴラディミロヴィッチ ナシプニ コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム
JP2006099697A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報プログラム保護方法及び装置
RU2006114900A (ru) * 2006-05-03 2007-11-20 Самсунг Электроникс Ко., Лтд. (KR) Способ распределенного управления ключами на основе схемы предварительного распределения ключей
JP4798796B2 (ja) * 2006-09-11 2011-10-19 Kddi株式会社 データの秘匿性及び復元性を提供するデータ保護方法、クライアント装置及びプログラム
JP2008103936A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 秘密情報管理装置および秘密情報管理システム
JP2008199278A (ja) 2007-02-13 2008-08-28 Toshiba Corp 情報管理システム、情報管理装置、情報管理プログラム
JP4304215B2 (ja) * 2007-03-23 2009-07-29 株式会社東芝 秘密分散装置、方法及びプログラム
JP2013235535A (ja) * 2012-05-11 2013-11-21 Nippon Yunishisu Kk データ管理システムおよびデータ管理用プログラム
US10331519B2 (en) * 2012-10-08 2019-06-25 International Business Machines Corporation Application of secret sharing schemes at multiple levels of a dispersed storage network
US10305686B2 (en) * 2015-10-02 2019-05-28 Orion Labs Encrypted group communications
US10205594B1 (en) * 2016-03-30 2019-02-12 EMC IP Holding Company LLC Crypto-erasure resilient to network outage
CN106100832A (zh) * 2016-06-12 2016-11-09 广东工业大学 一种云存储数据去重中基于收敛加密的密钥管理方法
US10803023B2 (en) * 2017-04-02 2020-10-13 Sas Institute Inc. Techniques for reading from and writing to distributed data stores
US10084600B1 (en) * 2018-04-16 2018-09-25 Xage Security, Inc. Decentralized information protection for confidentiality and tamper-proofing on distributed database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248711A (ja) * 2010-05-28 2011-12-08 Nomura Research Institute Ltd 秘密分散によるデータ管理システム
JP2014509753A (ja) 2011-03-31 2014-04-21 パナソニック株式会社 秘密分散装置、分散装置および秘密分散方法
JP2014044264A (ja) * 2012-08-24 2014-03-13 Panasonic Corp 秘密分散装置および秘密分散プログラム
JP2014096692A (ja) * 2012-11-09 2014-05-22 Fujitsu Ltd 情報分析システム及び情報分析方法
JP2019031022A (ja) 2017-08-08 2019-02-28 アオイ電子株式会社 サーマルヘッド

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KITAMIKADO, YASUHIRO; OYA, TAKAFUMI; TAKAHASHI, RYO; ICHIKAWA, YASUYUKI; MIYOSHI, JUN: "B-6-27 IPsecGW Redundancy Architecture Using MOBIKE", PROCEEDINGS OF THE 2009 IEICE SOCIETY CONFERENCE, 1 September 2009 (2009-09-01), JP, pages 27, XP009529611 *

Also Published As

Publication number Publication date
US20220147640A1 (en) 2022-05-12
JP2020134841A (ja) 2020-08-31
CN113474829B (zh) 2024-03-15
EP3929896A4 (en) 2022-04-20
EP3929896A1 (en) 2021-12-29
JP7356673B2 (ja) 2023-10-05
CN113474829A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
US10142300B1 (en) Decentralized authoritative messaging
US11716195B2 (en) Facilitating communications using hybrid cryptography
US12008131B2 (en) Systems and methods for a cryptographic file system layer
CN107534667B (zh) 密钥导出方法和系统以及非暂时性计算机可读存储介质
GB2560434B (en) Securely transferring user information between applications
US10819510B2 (en) Facilitating communications using hybrid cryptography
US6978378B1 (en) Secure file transfer system
WO2020170695A1 (ja) クラウドサービスを用いた安全な秘密分散保管システム
EP3282670B1 (en) Maintaining data security in a network device
CN103634313A (zh) 一种通讯录的处理方法、装置及移动终端
KR20150034591A (ko) 암호화된 데이터를 재암호화하는 클라우드 서버 및 그것의 재암호화 방법
WO2023150565A1 (en) Method and system for secure cloud data storage and retrieval
CN116318897A (zh) 一种数据传输方法、系统、装置、计算机设备及存储介质
Abel Practical, scalable alternative session encryption using one-time pads

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020759534

Country of ref document: EP

Effective date: 20210922