WO2014109059A1 - データの暗号化記憶システム及び方法 - Google Patents
データの暗号化記憶システム及び方法 Download PDFInfo
- Publication number
- WO2014109059A1 WO2014109059A1 PCT/JP2013/050477 JP2013050477W WO2014109059A1 WO 2014109059 A1 WO2014109059 A1 WO 2014109059A1 JP 2013050477 W JP2013050477 W JP 2013050477W WO 2014109059 A1 WO2014109059 A1 WO 2014109059A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encryption
- storage
- storage device
- storage system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Definitions
- the present invention relates to data encryption processing technology and its application technology.
- Cloud services often use external storage, and it is difficult to completely manage individual storage. Data centers and storage that perform strict data management including key renewal use costs. Is expected to be bulky. On the other hand, when the cloud servicer performs key management in a centralized manner, when re-encrypting, data is extracted from the external storage via the network, re-encrypted, and then re-encrypted to the external storage via the network. A series of work of entrusting is necessary.
- Non-Patent Document 1 proposes a method of encrypting target data with a new key when a user's access right is revoked.
- Non-Patent Document 1 the re-encryption process is consigned, but the cost of the re-encryption process itself is not reduced. Also, it cannot be verified that the external storage has correctly executed re-encryption. Therefore, a re-encryption processing technique with low calculation and communication costs is desired.
- the present invention has been made in view of the above problems, and is a method in which a servicer (or data owner) executes an encryption process, and a re-encryption processing method or system with a low encryption processing cost. I will provide a.
- the present invention also provides a method for confirming that the external storage correctly holds the data and a method for updating the electronic signature for the data in the above system.
- the present invention is characterized by the following two points.
- AONT All-or-Nothing Transform
- an encrypted storage system of the present invention for encrypting and storing data includes an interface I / F for inputting / outputting data, an encryption key generation device, a cryptographic processing device, a data management device, A first storage device for storing the secret key generated by the encryption key generation device; second and third storage devices for storing data encrypted by the encryption processing device; and control for controlling the device With the device,
- the cryptographic processing device receives selectors and data input to the cryptographic processing device, and performs conversion in which all values of input bits affect the respective values of output bits (AONT).
- the encrypted storage system stores the first stored data in the third storage device;
- the encryption processing device includes a parameter data agitation device that performs the data conversion using the secret key generated by the encryption key generation device as a parameter, the output of the selector as an input, and outputs the second stored data.
- the encrypted storage system stores the second stored data in the second storage device;
- the cryptographic processing device further uses the secret key stored in the first storage device as a parameter, and the second stored data stored in the second storage device as an input to the data mixing device with parameters.
- Data combining unit that combines parameterized data reverse agitation device that performs inverse transformation and outputs second intermediate data, said second intermediate data, and said first stored data stored in said third storage device A device, and an AONT inverse conversion device that receives the data combined by the data combination device, performs an inverse conversion of the AONT device, and generates an output of the cryptographic processing device,
- the selector switches the outputs of the data dividing device and the parameterized data back agitation device in accordance with instructions from the control device.
- the key of the encrypted data is updated without affecting a large amount of data stored in the external storage (replay). It is possible to provide an encryption processing method.
- AONT All-or-Nothing Transform
- -Hash function A function that generates a fixed-length pseudorandom number (hash value) from arbitrary finite-length data.
- Pseudorandom number A finite or infinite bit string that cannot be distinguished from a true random number in any way.
- True random number An infinite bit sequence, which is a sequence that cannot be estimated for the next 1 bit even if given any continuous subsequence.
- -Symmetric key encryption Encryption technology that uses the same key for encryption and decryption. Key: A secret parameter used for encryption processing.
- Plaintext Data before encryption processing or after decryption processing, and also includes digitized multimedia data.
- -Ciphertext Data that has been encrypted.
- Block encryption Encryption technology that performs encryption processing or decryption processing by dividing input data into fixed-length data (delimited fixed-length data is called a block) and mixing with the key.
- Stream cipher A cryptographic technique for generating a random number sequence by giving information for determining a random number sequence to a pseudo-random number generator, and generating a ciphertext by stirring the random number sequence and plaintext.
- FIG. 1 is a diagram illustrating a functional configuration of a data center (hereinafter referred to as an encryption storage system) including an encryption processing apparatus according to the present embodiment.
- the configuration of the encrypted storage system (100) will be described below with reference to FIG.
- This system includes three storage devices (storage device 1 (101), storage device 2 (102), storage device 3 (103)), encryption processing device (104), encryption key generation device (105), and data management device. (106), an interface (I / F) (107) for transmitting / receiving data to / from the outside, and a control device (108) for controlling these devices.
- storage device 1 101
- storage device 2 102
- storage device 3 103
- encryption processing device 104
- encryption key generation device 105
- data management device data management device.
- 106 an interface (I / F) (107) for transmitting / receiving data to / from the outside
- a control device (108) for controlling these devices.
- 1 can be realized by a computer having a CPU, a memory, a storage device, and an input / output terminal.
- the storage device 1 (101) is a storage device for storing a secret key, and it is desirable to store the secret key in a secure area.
- Each capacity of the storage device is not particularly limited. In the following, it is assumed that the storage device 3 has a larger storage capacity than the storage devices 1 (101) and 2 (102).
- the storage device 2 (102) and the storage device 3 (103) provide a storage area for storing the ciphertext.
- the encryption key generation device (105) is a random number generator, and generates a random bit string (secret key) having a length determined according to a request from the control device (108).
- the data management device (106) is a database that manages the header information of data and the association of data stored in the three storage devices, and from each storage device in response to a request from the control device (108). The corresponding data is read out and passed to the cryptographic processing device (104). The data management device (106) passes the data received from the cryptographic processing device (104) to each storage device, and stores the correspondence in the database.
- FIG. 2 illustrates a table (201) managed by the database of the data management device (106).
- the table (201) managed by the database in addition to general items such as data ID (201a), data owner ID (201b), search key (201c) for searching data, long-term storage is performed.
- the storage period (201d) and the address (201e, 201f, 201g) of the area where the data is written are included as items for each storage device.
- data is read and written mainly by the data management device (106).
- the cryptographic processing device (104) directly reads and writes data, and the result is sent to the data management device (106). You may tell and manage.
- FIG. 3 is a schematic diagram of a system in which the encrypted storage system (100) of FIG. 1 is composed of two data centers each having a computer.
- the encryption storage system (300) includes a data center 1 (301), a data center 2 (302), and a network (303) connecting these two data centers.
- the data center 1 (301) includes a storage device 1 (311), a storage device 2 (312), a cryptographic processing device (313), a data management device (314), and a communication device 1 (315).
- 302) includes a storage device 3 (321) and a communication device 2 (322).
- the data center 1 (301) is a secure private cloud (private cloud)
- the data center 2 (302) is a public cloud (public cloud) that is a low-cost storage.
- the network (303) may be a dedicated line or a general line such as the Internet.
- the data owner (304) entrusts the servicer (306) with the data (305) desired to be stored via the network (303).
- Data entrusted to the encrypted storage system (300) via the servicer (306) is encrypted by the cryptographic processing device (313), and the data (which is desired to be stored based on the instruction of the data owner (304)) 305) is divided into data to be concealed and data not to be concealed, and these data are divided and stored in the data center 1 (301) and the data center 2 (302).
- the storage device 2 (312) and the storage device 3 (321) store data obtained by encrypting the data (305) desired to be stored, but the data to be concealed stored in the storage device 2 (312).
- the network (303) is a general line such as the Internet, it is desirable to protect the entire communication path with an encryption function such as IPSec or TLS.
- the storage device 1 (311) and the storage device 2 (312) are used as a hard disk or a USB memory at hand,
- a public cloud may be used as the storage device 3 (321).
- FIG. 4 is a diagram showing a functional configuration of the cryptographic processing apparatus (104) in the present embodiment.
- the encryption processing device (400) includes an AONT device (or AONT conversion device) (401) used in encryption processing, and a data division device (402) that divides the data (305) based on an instruction from the data owner (304). , A data agitation device (403) with parameters for further agitating the encrypted data, an AONT inverse transformation device (404) used in the decryption process, and data combination for combining the divided data into the original one data An apparatus (405), a parameter data reverse stirring apparatus (406) for returning the stirred data, and a selector (407) for controlling data input to the parameter data stirring apparatus (403).
- an AONT device or AONT conversion device
- a data division device 402 that divides the data (305) based on an instruction from the data owner (304).
- a data agitation device (403) with parameters for further agitating the encrypted data an AONT inverse transformation device (404) used in the decryption process, and data combination for combining the divided data into the original one data
- the selector (407) passes the output of the data dividing device (402) to the parameterized data mixing device (403) when there is a data write request, and when there is a data re-encryption request, the selector (407)
- the output of the reverse stirring device (406) is passed to the parameterized data stirring device (403).
- AONT All-or-Nothing Transform
- Block cipher is an encryption technology that divides input data into fixed-length data (delimited fixed-length data is called a block), and performs encryption processing or decryption processing by performing agitation processing together with a key.
- the stream cipher is a cryptographic technique that generates a random number sequence by giving information for determining a random number sequence to a pseudo-random number generation device, and generates a ciphertext by stirring the random number sequence and plaintext.
- FIG. 12 shows a data flow in the encryption and decryption processing executed by the cryptographic processing apparatus (104) shown in FIG.
- FIG. 12 shows the relationship between the components in FIG. 4 as a data flow.
- D represents data obtained by transforming D by the AONT device (401)
- D ⁇ D represents inverse transform by the AONT inverse transform device (404)
- D * is parameterized data.
- D represents data obtained by stirring D by the stirring device (403)
- D * ⁇ D represents reverse stirring by the data-back stirring device with parameters (406).
- the input of the data agitation device with parameters (403) is provided with a selector (407) for selecting either normal data agitation data or re-encryption data. Further, data agitation corresponds to data encryption processing, and data reverse agitation corresponds to data decryption processing.
- FIG. 5 is a sequence diagram showing the flow of data write processing of the encrypted storage system (100) in this embodiment.
- the encryption processing procedure of the encryption storage system (100) will be described with reference to FIG.
- Step 1 (502) When the encrypted storage system (101) receives a data write request from the outside, it receives plaintext data via the I / F (107). The received data is input to the cryptographic processing device (104).
- Step 3 (504) The cryptographic processing device (400 (104)) receives the plaintext data, and converts (encrypts) the plaintext data using the AONT device (401).
- the data 3 is stored in the storage device 3 (413 (103)) via the data management device (414 (106)). How to divide the data, that is, which part of the data is to be concealed is determined based on a user instruction.
- Step 5 (506, 507): Using the secret key generated in step 2 (503) as a parameter, data 2 is agitated by the parameter data agitation device (403). The output of the data mixing device with parameters (403) is stored in the storage device 2 (412 (102)) via the data management device (414 (106)).
- Step 6 (508) The secret key is stored in the storage device 1 (415 (105)).
- FIG. 6 is a sequence diagram showing the flow of data read processing of the encrypted storage system (100) in this embodiment.
- the decryption processing procedure of the encrypted storage system (100) will be described with reference to FIG.
- Step 1 When the encrypted storage system (100) receives a data read request from the outside, the encryption storage system (100) assigns the corresponding private key to the storage device 2 (412 (102) according to the read request from the storage device 1 (411 (101)). )) And data 3 from the storage device 3 via the data management device (413 (103)).
- Step 2 (603): The parameter-backed stirring device (406) converts data 2 (back-stirring) using the secret key as a parameter.
- Step 3 (604) The data combiner (405) combines the data 3 with the output of the parameterized back agitator (406).
- Step 4 (605) The AONT inverse conversion device (407) converts (decodes) the combined data.
- Step 5 (606) The plain text data output from step 4 (605) is output as output data (110) via the interface (107).
- FIG. 7 is a sequence diagram showing the flow of the re-encryption process of the encryption storage system (100) in this embodiment.
- the re-encryption processing procedure of the encrypted storage system (100) will be described with reference to FIG.
- Step 1 (702) Upon receiving a data read request from the outside, the encrypted storage system (100) reads the corresponding private key from the storage device 1 (411 (101)) according to the read request, and stores the storage device 2 (412 ( 102)) to read data 2.
- Step 4 (705) The parameterized stirring device (403) converts (stirs) the data converted in step 2 using the new secret key as a parameter.
- Step 5 (706) The new secret key generated in step 3 is overwritten with the secret key data stored in the storage device 1 (411 (101)).
- Step 6 (706) The data 2 stored in the storage device 2 (412 (102)) is overwritten by the output of step 4.
- the output of the AONT device (401) is divided into the storage device 2 (412 (102)) and the storage device 3 (413 (103)), thereby storing the data.
- the re-encryption process can be performed using only the data stored in the device 1 (411 (101)) and the storage device 2 (412 (102)). That is, since access to the storage device 3 (413 (103)) storing data that is not re-encrypted does not occur, the communication load and the processing load of the storage device can be reduced.
- the above effect is particularly remarkable when the storage device 3 (413 (103)) is an external storage on the network and most of the divided data is stored in the storage device 3 (413 (103)). It is.
- FIG. 8 is a diagram showing a functional configuration and a data processing flow of the AONT conversion apparatus (800 (401)) in the present embodiment.
- FIG. 8 is configured using two hash functions (811, 812), one pseudo-random number generator (813), and an exclusive OR.
- the symbol “10 characters in circle” represents exclusive OR processing.
- the hash function is a function that generates a fixed-length pseudorandom number (hash value) from arbitrary finite-length data.
- Encryption processing by the AONT conversion apparatus (800 (401)) shown in FIG. 8 will be described.
- Data X having a predetermined length constituting plaintext data (801) is divided into n1-bit data (XL) and n2-bit data (XR).
- the first data (T1) is generated by exclusive OR of the hash value generated from XR by the hash function 1 (811) and XL.
- the second data (T2) is generated by the exclusive OR of the pseudorandom number generated by the pseudorandom number generator (813) and XR with the first data (T1) as an input.
- the third data (T3) is generated by exclusive OR of the hash value generated from the second data (T2) by the hash function 2 (812) and the first data (T1).
- the third data (T3) and the second data (T2) are concatenated to generate intermediate data (802) as output data (Y).
- the same function may be used for the two hash functions (811, 812), or different functions may be used.
- a part of the input of the hash function may be a constant, and different constants may be used for the hash function 1 (811) and the hash function 2 (812).
- the AONT inverse conversion device (404) may perform the processing of FIG. 8 in reverse order from the bottom.
- the data dividing device (402) may perform arbitrary division on the output of the AONT conversion device (401). However, from a security point of view, it is not desirable that the segmentation fragment is too small. In general, each fragment is preferably 128 bits or more.
- the data combining device (405) performs processing for combining the data divided by the data dividing device (402) and restoring the original data.
- FIG. 9 is a diagram showing a functional configuration and a data processing flow for another method for realizing the AONT conversion apparatus (401) in the present embodiment.
- the AONT conversion device (900 (401)) in FIG. 9 includes a random number generation device (911), a pseudo random number generation device (912), a data compression device (913), and an exclusive OR.
- the second data (Z2) is generated by exclusive OR of the compressed data obtained by compressing the first data (Z1) by the data compression device (913) and the n1-bit data (X1).
- the second data (Z2) and the first data (Z1) are connected to generate intermediate data (902) as output data (Y) of n1 + n2 bits.
- the data compression device (913) may use a hash function or may perform exclusive OR by dividing n2-bit data every n1 bits.
- the data division apparatus (402) divides the output of the AONT conversion apparatus (900 (401)) into left n1 bits and right n2 bits.
- the pseudo random number generation device (912) may use MUGI, Enocoro, or the like, or may use AES in the counter mode. Also, a key derivation function using a hash function may be used.
- a pseudorandom number (pseudorandom number) is a finite or infinite bit string that cannot be distinguished from a true random number by any method. Given a sequence, the next one bit cannot be estimated.
- the AONT conversion device (401) in the present embodiment is not limited to the methods shown in FIGS. 8 and 9, and other generally known methods may be applied.
- FIG. 10 shows an embodiment in which the data processing device with parameters (403) and the data reverse mixing device with parameters (406) are realized by the encryption function and the decryption function of the stream cipher in the encryption processing device (400) of FIG. It is a figure showing the function structure of 2.
- FIG. 10 shows an embodiment in which the data processing device with parameters (403) and the data reverse mixing device with parameters (406) are realized by the encryption function and the decryption function of the stream cipher in the encryption processing device (400) of FIG. It is a figure showing the function structure of 2.
- the parameter data agitation device (400) includes a pseudo random number generation device (1051) and an addition device 2 (1052), and the parameter data agitation device (406) includes a subtraction device (1053).
- a pseudo-random number generator (1051) and an adder 1 (1054) are used.
- the addition devices 1 and 2 (1054 and 1052) are devices that perform arithmetic addition or exclusive OR.
- the subtracting device (1053) is a device that performs an inverse operation of the adding device, that is, an operation for dividing x + y data into x and y.
- the output of the encryption key generation device (1004 (105)) is not stored in the storage device 1 (1001 (101)) as it is, but the output of the addition device 1 (1054) is written. At the time of the first writing, the data of the storage device 1 (1001 (101)) is previously reset to zero.
- a random number is generated by the pseudo-random number generator (1051) based on the key generated by the encryption key generator (1004 (105)).
- the adder 2 (1052) divides the random number and the second saved data saved in the storage device 2 (1002 (102)) (or the result of converting (encrypting) the input plaintext.
- the result of adding the first intermediate data to be concealed is stored in the storage device 2 (1002 (102)).
- the addition device 1 (1054) stores the result of adding the random number and the key information stored in the storage device 1 (1001 (101)) in the storage device 1 (1001 (101)).
- the subtraction device (1053) subtracts the added random number from the second stored data stored in the storage device 2 (1002 (102)) and the storage device 3 (1003 (103)).
- the original plaintext can be output as output data by synthesizing the first saved data stored in, and by inversely transforming (decoding) the combined result.
- FIG. 11 is a sequence diagram showing the flow of processing when re-encryption processing is performed in the cryptographic processing apparatus (1000 (104)) of FIG. The re-encryption processing procedure of the encrypted storage system (100) will be described below with reference to FIG.
- the pseudo-random number generator (1051) generates a key stream from a new secret key.
- Step 3 (1103) The adding device 1 (1054) adds the key stream to the data 1, and overwrites the data 1 stored in the storage device 1 (1001 (101)) with the calculation result.
- the encrypted storage system (100) has a function for confirming that the external storage correctly stores data and that the data has not been lost or altered. It is desirable that This can be confirmed by, for example, a management log stored in the external storage.
- the management device (106) or the cryptographic processing device (104) includes a MAC (Message Authentication Code) generation device 1, and the encryption storage system (100) includes a storage device 4 that stores the MAC key and MAC. In this case, a method for cryptographically verifying data retention will be described.
- MAC Message Authentication Code
- MAC is an output of a MAC function similar to a hash function, which receives a common key and a message, and is a kind of “tag”.
- the transmitting side transmits the MAC generated from the message using the common key and the message to the receiving side, and the receiving side includes the MAC generated from the message received using the common key and the MAC transmitted from the transmitting side. Determine if they match and verify the authenticity of the message. Further, in the following data holding certification, the receiving side storage device 3 requires the MAC generating device 2 that performs the same operation as the transmitting side MAC generating device.
- Step 1 The encrypted storage system (100) generates a plurality of random numbers r_1, r_2,..., R_T each time a data write request is received.
- the encryption key generation device (105) may be used, or a separate random number generator may be prepared.
- Step 2 The encryption storage system (100) calculates the MAC value of data to be written to the storage device 3 (103) using each random number as a key, and stores the random number and the MAC value as a pair.
- the storage device 4 that holds this data is desirably an area that is securely managed in the same manner as the storage device 1 (101).
- Step 1 The encryption storage system (100) transmits a random number r_i and data ID_j to an external storage that retains the storage device 3 (103).
- Step 2 The external storage calculates the MAC value using the random number r_i and the data D_j, and sends it back to the encryption storage system (main body).
- Step 3 The encrypted storage system (101) checks whether or not the received MAC value matches the MAC value stored in the storage device 4 (whether or not the data is authentic).
- the number of years that must be stored is often determined. Therefore, in the case of the system as shown in FIG. 3, when the data owner requests the servicer to encrypt and store the data, the number of random numbers to be calculated in advance is determined by setting the retention period. Can do. Thereby, the storage area for storing the random number and the MAC value can be optimized.
- all pairs of random numbers and MAC values are stored in the database (201) held by the data management device (106) shown in FIG.
- the random number and MAC value are encrypted and stored so as not to leak outside.
- This secret key is stored in a secure area such as the storage device 1 (101).
- the random number and the MAC value itself may be stored in a secure area such as the storage device 1 (101).
- Step 1 The existence of data is verified for the external storage that manages the storage device 3 (103), and it is confirmed that the data has not been tampered with.
- Step 2 Re-signature the hash value that was originally calculated with a new signature key.
- the digital signature value is stored in the database (201) held by the data management device (106) in the same manner as the data retention certificate.
- the servicer (306) sends a hash value of the corresponding data to the data owner (304) after performing the data retention certificate, What is necessary is just to perform a signature process.
- the above re-signature method does not recalculate the hash value of plaintext data, but confirms that the data has not been tampered with, and then re-signatures the hash value of plaintext data, so that communication required for resignature The amount and calculation amount are greatly reduced. In cases where strict management is required, the validity of the resignature procedure can be ensured by storing the result of step 1 with a time stamp.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
従来技術では、再暗号化処理の委託を可能としているが、再暗号化処理のコストが大きく、また、委託先が再暗号化を正しく実行したことを検証することができない。サービサ(もしくはデータの所有者)が暗号化処理を実行する方法であって、暗号化の処理コストが小さい再暗号化処理方法を提供する。また、外部ストレージがデータを正しく保持していることを確認する方法、さらに、データに対する電子署名を更新する方法を提供する。本発明の暗号化記憶方法は、All-or-Nothing Transform (AONT)と呼ばれる可逆変換と部分暗号化処理を組み合わせてデータ全体の暗号化を行い、暗号文を、部分暗号化を施した部分とそれ以外の部分に分割し、それぞれを異なる記憶装置に保存し、 秘密鍵と、部分暗号化処理した部分のみを用いて再暗号化処理を行う。
Description
本発明は、データの暗号化処理技術とその応用技術に関する。
IT技術の普及が進むと共に、公文書など重要な文書データについても電子的に保存するようになっている。このような重要データは、長期間の保存が必要であり、最長で30年程度の保存が義務付けられている場合もある。これらの重要文書データは今後増加の一途をたどり、ストレージを大量に消費するため、データセンタなどクラウドを利用して保存していくことになると考えられる。これらのデータは概ね暗号化された上で保管されているが、アルゴリズム危殆化や鍵漏えいの観点から、秘密鍵は定期的にと変える必要がある。たとえば、NIST (National Institute of Standards and Technology)は少なくとも5年に1度、秘密鍵を更新することを要求している。しかし、データの再暗号化はデータのread/writeが大量に発生し、ストレージの性能にも影響を与える作業である。
また、クラウドサービスでは、外部ストレージを利用する場合が多々あり、個々のストレージを完全に管理することが困難であり、鍵更新を含めたデータ管理を厳密に行うようなデータセンタやストレージは利用コストがかさむことが予想される。その一方で、鍵管理をクラウドのサービサが集約して行う場合には、再暗号化に際して、外部ストレージからネットワークを介してデータを取り出し、再暗号化を施し、さらにネットワークを介して外部ストレージに再委託するという一連の作業が必要である。
データの再暗号化については、たとえば、以下の非特許文献1で取り上げられている。非特許文献1は、ユーザのアクセス権失効させるときに、対象データを新しい鍵で暗号化する方法を提案している。
高山 一樹,外1名,「平文を生成しない分散ストレージ上での再暗号化手法」 ,日本データベース学会論文誌 ,日本データベース学会,2008年12月,第7巻、第3号
非特許文献1では、再暗号化処理の委託を実現しているが、再暗号化処理のコスト自体を削減しているわけではない。また、外部ストレージが再暗号化を正しく実行したことを検証することができない。したがって、計算および通信コストが小さい再暗号化処理技術が望まれている。
本発明は上記のような課題に鑑みてなされたもので、サービサ(もしくはデータの所有者)が暗号化処理を実行する方式であって、暗号化の処理コストが小さい再暗号化処理方法またはシステムを提供する。
本発明は、また、上記システムにおいて、外部ストレージがデータを正しく保持していることを確認する方法と、データに対する電子署名を更新する方法を提供する。
本発明は以下の2点を特徴とする。
1.出力すべてが揃わないと入力を復元できないような変換であるAll-or-Nothing Transform (AONT)と呼ばれる可逆変換と部分暗号化処理を組み合わせてデータ全体の暗号化を行い、暗号文を、部分暗号化を施した部分とそれ以外の部分に分割し、それぞれを異なる記憶装置に保存する。
2. 秘密鍵と、部分暗号化処理した部分のみを用いて再暗号化処理を行う。
具体的には、データを暗号化して保管する本発明の暗号化記憶システムは、データを入出力するインターフェースI/Fと、暗号化鍵生成装置と、暗号処理装置と、データ管理装置と、前記暗号化鍵生成装置で生成された秘密鍵を記憶する第1の記憶装置と、前記暗号処理装置で暗号化されたデータを記憶する第2及び第3の記憶装置と、上記装置を制御する制御装置とを備え、
前記暗号処理装置は、セレクタと、前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAll-or-Nothing変換(AONT)装置と、前記AONT装置の出力を分割し、第1の保存データと第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ変換を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆変換を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、前記データ結合装置で結合されたデータを受け取り、前記AONT装置の逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置とを備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える。
前記暗号処理装置は、セレクタと、前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAll-or-Nothing変換(AONT)装置と、前記AONT装置の出力を分割し、第1の保存データと第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ変換を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆変換を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、前記データ結合装置で結合されたデータを受け取り、前記AONT装置の逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置とを備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える。
本発明によれば、暗号化されたデータの一部の保管を外部ストレージに委託するシステムで、外部ストレージに保管した大量のデータに影響を与えることなく、暗号化データの鍵を更新する(再暗号化する)暗号化処理方法を提供できる。
まず始めに用語を説明する。
・All-or-Nothing Transform (AONT):出力すべてが揃わないと、入力を復元できないような変換。
・ハッシュ関数(hash function):任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数。
・疑似乱数(pseudorandom number):有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないもの。
・真性乱数:無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のこと。
・共通鍵暗号(symmetric-key encryption):暗号化処理と復号処理に同じ鍵を用いる暗号化技術。
・鍵:暗号化処理の際に用いる秘匿パラメータ。
・平文(plaintext):暗号化処理前、または復号処理後のデータであり、ディジタル化されたマルチメディアデータも含まれる。
・暗号文(ciphertext):暗号化処理されたデータ。
・ブロック暗号:入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術。
・ストリーム暗号:疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術。
・All-or-Nothing Transform (AONT):出力すべてが揃わないと、入力を復元できないような変換。
・ハッシュ関数(hash function):任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数。
・疑似乱数(pseudorandom number):有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないもの。
・真性乱数:無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のこと。
・共通鍵暗号(symmetric-key encryption):暗号化処理と復号処理に同じ鍵を用いる暗号化技術。
・鍵:暗号化処理の際に用いる秘匿パラメータ。
・平文(plaintext):暗号化処理前、または復号処理後のデータであり、ディジタル化されたマルチメディアデータも含まれる。
・暗号文(ciphertext):暗号化処理されたデータ。
・ブロック暗号:入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術。
・ストリーム暗号:疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術。
以下、本発明の実施形態を、図を用いて説明する。
(システム構成)
図1は本実施形態における暗号化処理装置を備えたデータセンタ(以下、暗号化記憶システム)の機能構成を表す図である。以下、図1に従って暗号化記憶システム(100)の構成を説明する。
図1は本実施形態における暗号化処理装置を備えたデータセンタ(以下、暗号化記憶システム)の機能構成を表す図である。以下、図1に従って暗号化記憶システム(100)の構成を説明する。
本システムは、3つの記憶装置(記憶装置1(101)、記憶装置2(102)、記憶装置3(103))、暗号処理装置(104)、暗号化鍵生成装置(105)、データ管理装置(106)、外部とデータを送受信するインターフェース(I/F)(107)と、これらの装置を制御する制御装置(108)で構成される。また、図1に示す暗号化記憶システムは、CPU、メモリ、記憶装置、及び入出力端末を有する計算機で実現できる。
一般に、記憶装置1(101)は秘密鍵を保存するための記憶装置であり、秘密鍵はセキュアな領域に保存することが望ましい。記憶装置の各容量は特段限定されないが、以下では、記憶装置1(101)、2(102)に比べると、記憶装置3は大規模な記憶容量を持っているものとする。記憶装置2(102)、及び記憶装置3(103)は暗号文を格納するための記憶領域を提供する。暗号化鍵生成装置(105)は、乱数生成器であり、制御装置(108)の要求に応じて定められた長さのランダムなビット列(秘密鍵)を生成する。制御装置(108)に入力される信号(109)は、データ書き込み(暗号化)要求、データ読み出し(復号)要求、及びデータ再暗号化(鍵更新)要求の3つである。
(データの対応付け)
データ管理装置(106)は、データのヘッダ情報や、3つの記憶装置に保存されているデータの対応付けを管理するデータベースであり、制御装置(108)の要求に応じて、それぞれの記憶装置から該当するデータを読み出し、暗号処理装置(104)に渡す。また、データ管理装置(106)は、暗号処理装置(104)から受け取ったデータをそれぞれの記憶装置に渡し、データベースにその対応を記憶する。
データ管理装置(106)は、データのヘッダ情報や、3つの記憶装置に保存されているデータの対応付けを管理するデータベースであり、制御装置(108)の要求に応じて、それぞれの記憶装置から該当するデータを読み出し、暗号処理装置(104)に渡す。また、データ管理装置(106)は、暗号処理装置(104)から受け取ったデータをそれぞれの記憶装置に渡し、データベースにその対応を記憶する。
図2は、データ管理装置(106)のデータベースで管理されているテーブル(201)を例示したものである。データベースで管理されるテーブル(201)には、データのID(201a)、データ所有者のID(201b)、データを検索するための検索キー(201c)など一般的な項目の他、長期保存を目的として保存期間(201d)と、それぞれの記憶装置について、データを書き込んだ領域のアドレス(201e、201f、201g)が項目として含まれる。
なお、図1では、データ管理装置(106)が中心となってデータの読み書きを行っているが、データの読み書きは暗号処理装置(104)が直接行い、その結果をデータ管理装置(106)に伝えて管理してもよい。
(システムの概要)
図3は、図1の暗号化記憶システム(100)を、それぞれが計算機を有する2つのデータセンタで構成したシステムの概要図である。
図3は、図1の暗号化記憶システム(100)を、それぞれが計算機を有する2つのデータセンタで構成したシステムの概要図である。
図3のシステムでは、暗号化記憶システム(300)はデータセンタ1(301)とデータセンタ2(302)およびこれら2つのデータセンタを接続するネットワーク(303)で構成される。データセンタ1(301)は、記憶装置1(311)と記憶装置2(312)、暗号処理装置(313)、データ管理装置(314)、通信装置1(315)で構成され、データセンタ2(302)は記憶装置3(321)と通信装置2(322)で構成される。このような構成例として、データセンタ1(301)をセキュアなプライベートクラウド(private cloud)とし、データセンタ2(302)をコストの安いストレージであるパブリッククラウド(public cloud)とすることで、データ記憶の役割の分担を図ることができる。ネットワーク(303)は専用線でもよいし、インターネットなどの一般回線でもよい。
図3のシステムにおいて、データ所有者(304)は、保管して欲しいデータ(305)を、ネットワーク(303)を介してサービサ(306)に委託する。サービサ(306)を介して暗号化記憶システム(300)に委託されたデータは、暗号処理装置(313)で暗号化され、データ所有者(304)の指示に基づいて、保管して欲しいデータ(305)を、秘匿化すべきデータとそうでないデータとに分け、これらのデータはデータセンタ1(301)とデータセンタ2(302)に分割して保存される。記憶装置2(312)と記憶装置3(321)には、保管して欲しいデータ(305)を暗号化したデータが格納されるが、記憶装置2(312)に格納される秘匿化すべきデータに対しては、秘匿化のレベルを高めるために上記の変換(暗号化)に加えて、更にデータの攪拌処理が行われる。なお、ネットワーク(303)がインターネットなどの一般回線の場合には、IPSecやTLSなどの暗号機能により、通信路全般を保護することが望ましい。
また、個人が大量のデータを保持しており、その大部分をパブリッククラウドに保存したい場合に、記憶装置1(311)および記憶装置2(312)として手元のハードディスクやUSBメモリなどを利用し、記憶装置3(321)としてパブリッククラウドを利用してもよい。
(暗号処理装置の機能)
図4は本実施形態における暗号処理装置(104)の機能構成を表す図である。
図4は本実施形態における暗号処理装置(104)の機能構成を表す図である。
暗号処理装置(400)は、暗号化処理で用いられるAONT装置(又はAONT変換装置)(401)、データ所有者(304)の指示に基づいてデータ(305)を分割するデータ分割装置(402)、暗号化されたデータを更に攪拌させるためのパラメータ付きデータ攪拌装置(403)と、復号処理で用いられるAONT逆変換装置(404)、分割されたデータを元の1つのデータに結合するデータ結合装置(405)、攪拌されたデータを元に戻すパラメータ付きデータ逆攪拌装置(406)、およびパラメータ付きデータ攪拌装置(403)へのデータ入力を制御するセレクタ(407)で構成される。セレクタ(407)は、データ書き込み要求があった場合にはデータ分割装置(402)の出力をパラメータ付きデータ攪拌装置(403)に渡し、データ再暗号化要求があった場合には、パラメータ付きデータ逆攪拌装置(406)の出力をパラメータ付きデータ攪拌装置(403)に渡す。
ここで、AONT(All-or-Nothing Transform)は、出力すべてが揃わないと入力を復元できないようなデータ変換であり、可逆変換と部分暗号化処理を組み合わせたデータ全体の暗号化である。
パラメータ付きデータ攪拌装置(403)および逆攪拌装置(406)は、たとえばブロック暗号やストリーム暗号などを用いてもよい。また、公開鍵を用いてもよい。以下の実施例では共通鍵暗号を用いる場合について説明する。この場合、秘密鍵がパラメータに相当する。ブロック暗号は、入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術であり、ストリーム暗号は、疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術である。
(暗号化及び復号処理におけるデータの流れ)
図12に、図4に示した暗号処理装置(104)によって実行される暗号化及び復号の処理におけるデータの流れを示す。図12は、図4における各部の関連をデータの流れとして示したものである。図12及び以下の説明では、Dは、AONT装置(401)によりDを変換したデータを表し、D→Dは、AONT逆変換装置(404)による逆変換を表し、D*は、パラメータ付きデータ攪拌装置(403)によりDを攪拌したデータを表し、D*→Dは、パラメータ付きデータ逆攪拌装置(406)による逆攪拌を表す。
図12に、図4に示した暗号処理装置(104)によって実行される暗号化及び復号の処理におけるデータの流れを示す。図12は、図4における各部の関連をデータの流れとして示したものである。図12及び以下の説明では、Dは、AONT装置(401)によりDを変換したデータを表し、D→Dは、AONT逆変換装置(404)による逆変換を表し、D*は、パラメータ付きデータ攪拌装置(403)によりDを攪拌したデータを表し、D*→Dは、パラメータ付きデータ逆攪拌装置(406)による逆攪拌を表す。
(1)データ分割: 平文である入力データDをAONT装置(401)で変換して得られたDを、データ分割装置(402)で、非書き換えデータである第1の保存データD
R と書き換えデータである第1の中間データD
M とに分割し、第1の保存データD
R を記憶装置3(413)に保存する。
(2)データ攪拌: 暗号鍵生成装置(415)で生成した秘密鍵K1を記憶装置1(411)に保存すると共に、秘密鍵K1を用いて、パラメータ付きデータ攪拌装置(403)により、第1の中間データD
M をデータ攪拌した第2の保存データD
M
*を生成し、記憶装置2(412)に保存する。
(3)データ逆攪拌: 記憶装置1(411)から取り出した秘密鍵K1を用いて、パラメータ付きデータ逆攪拌装置(406)により、記憶装置2(412)から取り出した第2の保存データD
M
*をデータ逆攪拌して第2の中間データD
M を生成する。
(4)データ合成: 生成した第2の中間データD
M と記憶装置3(413)から取り出した第1の保存データD
R とを、データ結合装置(405)により、データ合成してデータDを生成し、データ合成した結果をAONT逆変換装置(404)により逆変換すると出力データD(入力データの平文と同じ)が得られる。
(5)再暗号化: 上記ステップ(3)で用いた秘密鍵K1を用いて、記憶装置2(412)に保存されていた第2の保存データD
M
*をデータ逆攪拌して第2の中間データD
M を生成し、これを再度、新たな秘密鍵を用いて、上記ステップ(2)と同等に、データ攪拌して第2の保存データD
M
*を生成して、記憶装置2(412)に保存する。
パラメータ付きデータ攪拌装置(403)の入力には、通常のデータ攪拌のためのデータ、あるいは、再暗号化のためのデータのいずれかを選択するセレクタ(407)が設けられている。また、データ攪拌はデータの暗号化処理に相当し、データ逆攪拌はデータの復号処理に相当する。
(暗号化処理のシーケンス)
図5は本実施形態における暗号化記憶システム(100)のデータ書き込み処理の流れを表すシーケンス図である。以下、図5に沿って暗号化記憶システム(100)の暗号化処理手順を説明する。
図5は本実施形態における暗号化記憶システム(100)のデータ書き込み処理の流れを表すシーケンス図である。以下、図5に沿って暗号化記憶システム(100)の暗号化処理手順を説明する。
ステップ1(502):暗号化記憶システム(101)は、外部からデータ書き込み要求を受け取ると、I/F(107)を介して平文データを受信する。受信したデータは暗号処理装置(104)に入力される。
ステップ2(503):暗号化鍵生成装置(105)は、制御装置(108)からデータ書き込み要求信号を受け取ると、秘密鍵を生成する。
ステップ3(504):暗号処理装置(400(104))は、平文データを受け取り、AONT装置(401)を用いて平文データを変換(暗号化)する。
ステップ4(505):AONT装置(401)の出力(中間データ)をデータ分割装置(402)で2つ(秘匿化すべきデータ2(第1の中間データ)、そうでないデータ3(第1の保存データ))に分割する。データ3は、データ管理装置(414(106))を介して記憶装置3(413(103))に格納する。データをどのように分割するか、即ち、データのどの部分を秘匿化するかは、ユーザの指示に基づいて決められる。
ステップ5(506、507):ステップ2(503)で生成した秘密鍵をパラメータとして、パラメータ付きデータ攪拌装置(403)でデータ2を攪拌する。パラメータ付きデータ攪拌装置(403)の出力はデータ管理装置(414(106))を介して記憶装置2(412(102))に格納する。
ステップ6(508):秘密鍵を記憶装置1(415(105))に格納する。
(復号処理のシーケンス)
図6は本実施形態における暗号化記憶システム(100)のデータ読み出し処理の流れを表すシーケンス図である。以下、図6に沿って暗号化記憶システム(100)の復号処理手順を説明する。
図6は本実施形態における暗号化記憶システム(100)のデータ読み出し処理の流れを表すシーケンス図である。以下、図6に沿って暗号化記憶システム(100)の復号処理手順を説明する。
ステップ1(602):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(411(101))から読み出し要求に従って該当する秘密鍵を、記憶装置2(412(102))からデータ2を、記憶装置3からデータ3をデータ管理装置(413(103))を介してそれぞれ読み出す。
ステップ2(603):パラメータ付き逆攪拌装置(406)は、秘密鍵をパラメータとして、データ2を変換(逆攪拌)する。
ステップ3(604):データ結合装置(405)は、パラメータ付き逆攪拌装置(406)の出力とデータ3を結合する。
ステップ4(605):AONT逆変換装置(407)は、結合したデータを変換(復号)する。
ステップ5(606):ステップ4(605)の出力である平文データを、インターフェース(107)を介して出力データ(110)として出力する。
(再暗号化処理のシーケンス)
図7は本実施形態における暗号化記憶システム(100)の再暗号化処理の流れを表すシーケンス図である。以下、図7に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
図7は本実施形態における暗号化記憶システム(100)の再暗号化処理の流れを表すシーケンス図である。以下、図7に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
ステップ1(702):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(411(101))から読み出し要求に従って該当する秘密鍵を読み出し、記憶装置2(412(102))からデータ2を読み出す。
ステップ2(703):パラメータ付き逆攪拌装置(406)は、秘密鍵をパラメータとして、データ2を変換(逆攪拌)する。
ステップ3(704):暗号化鍵生成装置(415(105))は、新しい秘密鍵を生成する。
ステップ4(705):パラメータ付き攪拌装置(403)は、新しい秘密鍵をパラメータとして、ステップ2で変換されたデータを変換(攪拌)する。
ステップ5(706):ステップ3で生成した新しい秘密鍵で、記憶装置1(411(101))に格納されていた秘密鍵のデータを上書きする。
ステップ6(706):ステップ4の出力で、記憶装置2(412(102))に格納されていたデータ2を上書きする。
このように、本実施形態における再暗号化処理では、AONT装置(401)の出力を記憶装置2(412(102))と記憶装置3(413(103))に分割しておくことで、記憶装置1(411(101))と記憶装置2(412(102))に記憶されているデータだけで再暗号化処理を行うことができる。すなわち、再暗号化を行わないデータが格納されている記憶装置3(413(103))に対するアクセスが発生しないため、通信負荷および記憶装置の処理負荷を小さくすることができる。記憶装置3(413(103))がネットワーク上にある外部ストレージであり、記憶装置3(413(103))に分割されたデータの大部分が格納されている場合に、特に上記の効果が顕著である。
(AONTサンプル(1))
図8は本実施形態におけるAONT変換装置(800(401))の機能構成およびデータ処理フローを表す図である。図8は2つのハッシュ関数(811、812)と1つの疑似乱数生成装置(813)、排他的論理和を用いて構成される。図中の「○に十文字」の記号は排他的論理和処理を表す。ハッシュ関数(hash function)は、任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数である。
図8は本実施形態におけるAONT変換装置(800(401))の機能構成およびデータ処理フローを表す図である。図8は2つのハッシュ関数(811、812)と1つの疑似乱数生成装置(813)、排他的論理和を用いて構成される。図中の「○に十文字」の記号は排他的論理和処理を表す。ハッシュ関数(hash function)は、任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数である。
図8に示したAONT変換装置(800(401))による暗号化処理を説明する。
(1)平文データ(801)を構成する所定の長さのデータXを、n1ビットのデータ(XL)とn2ビットのデータ(XR)に分割する。
(2)ハッシュ関数1(811)によってXRから生成したハッシュ値とXLとの排他的論理和により第1のデータ(T1)を生成する。
(3)第1のデータ(T1)を入力として疑似乱数生成装置(813)によって生成した疑似乱数とXRとの排他的論理和により第2のデータ(T2)を生成する。
(4)ハッシュ関数2(812)によって第2のデータ(T2)から生成したハッシュ値と第1のデータ(T1)との排他的論理和により第3のデータ(T3)を生成する。
(5)第3のデータ(T3)と第2のデータ(T2)を連結して出力データ(Y)として中間データ(802)を生成する。
(1)平文データ(801)を構成する所定の長さのデータXを、n1ビットのデータ(XL)とn2ビットのデータ(XR)に分割する。
(2)ハッシュ関数1(811)によってXRから生成したハッシュ値とXLとの排他的論理和により第1のデータ(T1)を生成する。
(3)第1のデータ(T1)を入力として疑似乱数生成装置(813)によって生成した疑似乱数とXRとの排他的論理和により第2のデータ(T2)を生成する。
(4)ハッシュ関数2(812)によって第2のデータ(T2)から生成したハッシュ値と第1のデータ(T1)との排他的論理和により第3のデータ(T3)を生成する。
(5)第3のデータ(T3)と第2のデータ(T2)を連結して出力データ(Y)として中間データ(802)を生成する。
2つのハッシュ関数(811、812)は同じ関数を用いてもよいし、別の関数を用いてもよい。異なるハッシュ関数を用いる代わりに、ハッシュ関数の入力の一部を定数とし、ハッシュ関数1(811)とハッシュ関数2(812)で異なる定数を用いてもよい。AONT逆変換装置(404)は、図8の処理を下から逆順に行えばよい。
データ分割装置(402)は、AONT変換装置(401)の出力に対して任意の分割を行えばよい。ただし、セキュリティ上の観点から、分割の断片があまりに小さいことは望ましくない。一般的に、それぞれの断片は128ビット以上であることが望ましい。データ結合装置(405)は、データ分割装置(402)で分割したデータを結合して元通りに復元する処理を行う。
(AONTサンプル(2))
図9は本実施形態におけるAONT変換装置(401)を実現する別の方法について、機能構成およびデータ処理フローを表す図である。図9のAONT変換装置(900(401))は、乱数生成装置(911)、疑似乱数生成装置(912)、データ圧縮装置(913)、および排他的論理和で構成される。
図9は本実施形態におけるAONT変換装置(401)を実現する別の方法について、機能構成およびデータ処理フローを表す図である。図9のAONT変換装置(900(401))は、乱数生成装置(911)、疑似乱数生成装置(912)、データ圧縮装置(913)、および排他的論理和で構成される。
図9に示したAONT変換装置(800(401))による暗号化処理を説明する。
(1)乱数生成装置(911)で生成したn1ビットのデータ(X1)を入力として疑似乱数生成装置(912)によって生成した乱数データと、平文データ(901)を構成するn2ビットのデータ(X2)との排他的論理和により第1のデータ(Z1)を生成する。
(2)第1のデータ(Z1)をデータ圧縮装置(913)によって圧縮した圧縮データと、n1ビットのデータ(X1)との排他的論理和により第2のデータ(Z2)を生成する。
(3)第2のデータ(Z2)と第1のデータ(Z1)を連結してn1+n2ビットの出力データ(Y)として中間データ(902)を生成する。
(1)乱数生成装置(911)で生成したn1ビットのデータ(X1)を入力として疑似乱数生成装置(912)によって生成した乱数データと、平文データ(901)を構成するn2ビットのデータ(X2)との排他的論理和により第1のデータ(Z1)を生成する。
(2)第1のデータ(Z1)をデータ圧縮装置(913)によって圧縮した圧縮データと、n1ビットのデータ(X1)との排他的論理和により第2のデータ(Z2)を生成する。
(3)第2のデータ(Z2)と第1のデータ(Z1)を連結してn1+n2ビットの出力データ(Y)として中間データ(902)を生成する。
データ圧縮装置(913)は、ハッシュ関数を用いてもよいし、n2ビットのデータをn1ビットごとに区切って排他的論理和してもよい。データ圧縮装置を排他的論理和で構成した場合には、データ分割装置(402)はAONT変換装置(900(401))の出力を左側n1ビットと右側n2ビットに分割する。疑似乱数生成装置(912)は、MUGIやEnocoroなどを用いてもよいし、AESをカウンタモードで用いてもよい。また、ハッシュ関数を使った鍵導出関数を用いてもよい。
疑似乱数(pseudorandom number)は、有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないものであり、真性乱数は、無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のことである。
また、本実施形態におけるAONT変換装置(401)は、図8、図9に挙げた方法に限らず、一般的に知られている他の方法を適用してもよい。
(後処理がストリーム暗号の場合の再暗号化処理(機能構成))
図10は、図4の暗号処理装置(400)で、パラメータ付きデータ攪拌装置(403)およびパラメータ付きデータ逆攪拌装置(406)をストリーム暗号の暗号化関数と復号関数で実現した場合の実施例2の機能構成を表す図である。
図10は、図4の暗号処理装置(400)で、パラメータ付きデータ攪拌装置(403)およびパラメータ付きデータ逆攪拌装置(406)をストリーム暗号の暗号化関数と復号関数で実現した場合の実施例2の機能構成を表す図である。
パラメータ付きデータ攪拌装置(400)は、疑似乱数生成装置(1051)と加算装置2(1052)で構成され、パラメータ付きデータ逆攪拌装置(406)は減算装置(1053)で構成される。データの再暗号化では、疑似乱数生成器と(1051)と加算装置1(1054)を用いる。ここで、加算装置1、2(1054、1052)は算術加算もしくは排他的論理和を行う装置である。また、減算装置(1053)は加算装置の逆演算、即ち、x+yのデータをxとyに分ける演算を行う装置である。
図10の機能構成では、暗号化鍵生成装置(1004(105))の出力をそのまま記憶装置1(1001(101))に格納するのではなく、加算装置1(1054)の出力を書き込む。初回書き込み時には、あらかじめ記憶装置1(1001(101))のデータをゼロリセットしておく。
図10の再暗号化処理では、暗号化鍵生成装置(1004(105))で生成された鍵に基づいて、疑似乱数生成装置(1051)によって乱数を生成する。その後、加算装置2(1052)により、この乱数と、記憶装置2(1002(102))に保存された第2の保存データ(あるいは、入力された平文を変換(暗号化)した結果を分割した秘匿化対象の第1の中間データ)を加算した結果を記憶装置2(1002(102))に保存する。同様に、加算装置1(1054)により、この乱数と、記憶装置1(1001(101))に保存された鍵情報を加算した結果を記憶装置1(1001(101))に保存する。上記の処理を、再暗号化の際に実行することで、保存データ及び鍵情報のストリーム暗号が生成される。即ち、再暗号化の際に、実施例1のデータ攪拌及びデータ逆攪拌の代わりに、実施例2ではストリーム暗号が生成される。
また、減算装置(1053)により、記憶装置2(1002(102))に保存されていた第2の保存データから、加算されていた乱数を減算した結果と、記憶装置3(1003(103))に保存されていた第1の保存データとを合成し、更に、この合成結果を逆変換(復号)することで元の平文を出力データとして出力できる。(データ出力時の処理の詳細は実施例1と同様であるため、図10ではその詳細は図示せず。)
(後処理がストリーム暗号の場合の再暗号化処理のシーケンス)
図11は、図10の暗号処理装置(1000(104))で再暗号化処理を行う場合の処理の流れを表すシーケンス図である。以下、図11に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
(後処理がストリーム暗号の場合の再暗号化処理のシーケンス)
図11は、図10の暗号処理装置(1000(104))で再暗号化処理を行う場合の処理の流れを表すシーケンス図である。以下、図11に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
ステップ1(1101):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(1001(101))から読み出し要求に従って該当するデータ1(鍵データ)を、記憶装置2(1002(102))からデータ2(中間データ)を読み出す。
ステップ2(1102):暗号化鍵生成装置(1004(105))は、新しい秘密鍵を生成する。疑似乱数生成装置(1051)は、新しい秘密鍵から鍵ストリームを生成する。
ステップ3(1103):加算装置1(1054)は、データ1に鍵ストリームを加算し、その計算結果で記憶装置1(1001(101))に格納されているデータ1を上書きする。
ステップ4(1104):加算装置2(1052)は、データ2に鍵ストリームを加算し、その計算結果で記憶装置2(1002(102))に格納されているデータ2を上書きする。
このように、図4の暗号処理装置において、パラメータ付きデータ攪拌装置(403)をストリーム暗号で実現した場合、復号を行わずに再暗号化処理を行うことが可能であり、一般的な構成に比べて情報漏えいの危険性が低いと期待できる。
(追加機能1:データの保持証明)
記憶装置3(103)が外部ストレージである場合、暗号化記憶システム(100)は、外部ストレージが正しくデータを保管しており、データの紛失や改ざんが行われていないことを確認できる機能を持っていることが望ましい。これは、たとえば、外部ストレージが保管している管理ログなどにより確認できる。
記憶装置3(103)が外部ストレージである場合、暗号化記憶システム(100)は、外部ストレージが正しくデータを保管しており、データの紛失や改ざんが行われていないことを確認できる機能を持っていることが望ましい。これは、たとえば、外部ストレージが保管している管理ログなどにより確認できる。
ただし、管理ログは外部ストレージ自身が生成しているものであるため、暗号学的な信頼性は保証できない。そこで、管理装置(106)もしくは暗号処理装置(104)がMAC(Message Authentication Code) 生成装置1を備え、暗号化記憶システム(100)がMAC用鍵とMACを保存する記憶装置4を備えている場合に、暗号学的にデータの保持証明を行う方法について説明する。
一般に、MACは、共通鍵とメッセージを入力とする、ハッシュ関数に類似したMAC関数の出力であり、一種の「タグ」である。送信側は、共通鍵を用いてメッセージから生成されたMACとメッセージを受信側に送信し、受信側では、共通鍵を用いて受け取ったメッセージから生成したMACと送信側から送られたMACとが一致するかどうかを判定して、メッセージの真正性を確認する。また、下記のデータ保持証明では、受信側の記憶装置3に上記の送信側のMAC生成装置と同じ演算を行うMAC生成装置2が必要である。
(1)事前準備(データの保存時の処理)
ステップ1:暗号化記憶システム(100)は、データの書き込み要求を受けるごとに、複数個の乱数r_1、r_2、…、r_Tを生成する。乱数の生成には、暗号化鍵生成装置(105)を用いてもよいし、別途乱数生成器を用意してもよい。
ステップ1:暗号化記憶システム(100)は、データの書き込み要求を受けるごとに、複数個の乱数r_1、r_2、…、r_Tを生成する。乱数の生成には、暗号化鍵生成装置(105)を用いてもよいし、別途乱数生成器を用意してもよい。
ステップ2:暗号化記憶システム(100)は、それぞれの乱数を鍵として、記憶装置3(103)に書き込むデータのMAC値を計算し、乱数とMAC値をペアにして保管しておく。このデータを保持する記憶装置4は、記憶装置1(101)と同じくセキュアに管理された領域であることが望ましい。
(2)データの保持証明
ステップ1:暗号化記憶システム(100)は、記憶装置3(103)を保持する外部ストレージに乱数r_iと、データのID_jを送信する。
ステップ1:暗号化記憶システム(100)は、記憶装置3(103)を保持する外部ストレージに乱数r_iと、データのID_jを送信する。
ステップ2:外部ストレージは、乱数r_iとデータD_jを用いてMAC値を計算し、暗号化記憶システム(の本体)に返信する。
ステップ3:暗号化記憶システム(101)は、受信したMAC値が記憶装置4に保管されているMAC値と一致するかどうか(データが真正であるかどうか)を確認する。
上記の方法により、一定回数のデータ保持確認が可能である。外部ストレージが独自に再暗号化を行う場合には、記憶装置3(103)に保管されているデータが書き換えられてしまうため、上記のデータ保持証明方法は適用できない。たとえば、非特許文献1の再暗号化方法で再暗号化を行った場合、上記の方法では、データの真正性を確認することができない。上記のデータ保持証明方法は、再暗号化により記憶装置3のデータが書き換えられない場合に適用可能な方法である。
一般に、文書の長期保存が義務付けられているケースでは、保存しなければならない年数が決まっていることが多い。そこで、図3のようなシステムであれば、データ所有者がデータの暗号化及び保管をサービサに依頼する際に、保存期間を設定することで、事前に計算しておく乱数の個数を決めることができる。これにより、乱数およびMAC値を保存するためのストレージ領域を最適化することができる。
データの保持証明を行う場合には、図2に記載したデータ管理装置(106)が保持しているデータベース(201)に、乱数とMAC値の対をすべて保存し、データの対応付けを行う。乱数とMAC値は外部に漏れないよう、暗号化して保存する。この秘密鍵は、記憶装置1(101)などのセキュアな領域に保存する。または、乱数とMAC値そのものを記憶装置1(101)などのセキュアな領域に保存してもよい。
(追加機能2:署名の更新)
データの真正性が要求される文書の場合、データには電子署名が付されていることが一般的である。これらの電子署名についても、署名鍵や公開鍵証明書には有効期限が設定されており、定期的な再署名が必要となる。そこで、本発明の実施形態に合わせて電子署名の更新を行う方法について説明する。以下のシーケンスでは、管理装置(106)もしくは暗号処理装置(104)が電子署名生成装置を備えているものとする。
データの真正性が要求される文書の場合、データには電子署名が付されていることが一般的である。これらの電子署名についても、署名鍵や公開鍵証明書には有効期限が設定されており、定期的な再署名が必要となる。そこで、本発明の実施形態に合わせて電子署名の更新を行う方法について説明する。以下のシーケンスでは、管理装置(106)もしくは暗号処理装置(104)が電子署名生成装置を備えているものとする。
ステップ1:記憶装置3(103)を管理する外部ストレージに対して、データの存在証明を行い、データに対する改ざんが行われていないことを確認する。
ステップ2:もともと計算されていたハッシュ値に対して、新しい署名鍵で再署名を施す。
署名についても、データの保持証明と同じように、データ管理装置(106)が保持しているデータベース(201)に電子署名値を保存する。
データ所有者(304)が署名処理を行う必要がある場合には、サービサ(306)がデータの保持証明を行った後で、該当データのハッシュ値をデータ所有者(304)に送信し、再署名処理を行えばよい。
上記の再署名方式では、平文データのハッシュ値を再計算するのではなく、データに改ざんが無いことを確認したうえで、平文データのハッシュ値に再署名を施すことで、再署名に要する通信量と計算量を大幅に削減している。厳密な管理が要求されるような場合であれば、ステップ1の結果にタイムスタンプを付して保管しておくことで、再署名手続きの妥当性を保証することができる。
100:暗号化記憶システム、101:記憶装置1、102:記憶装置2、103:記憶装置3、104:暗号処理装置、105:暗号化鍵生成装置、106:データ管理装置、107:I/F、108:制御装置、201:データベース、401:AONT装置、402:データ分割装置、403:パラメータ付きデータ攪拌装置、404:AONT逆変換装置、405:データ結合装置、406:パラメータ付きデータ逆攪拌装置
Claims (15)
- データを暗号化して保管する暗号化記憶システムであって、
前記システムは、
データを入出力するインターフェースI/Fと、
暗号化鍵生成装置と、
暗号処理装置と、
データ管理装置と、
前記暗号化鍵生成装置で生成された秘密鍵を記憶する第1の記憶装置と、
前記暗号処理装置で暗号化されたデータを記憶する第2の記憶装置及び第3の記憶装置と、
前記装置のそれぞれを制御する制御装置と、を備え、
前記暗号処理装置は、
セレクタと、
前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAONT装置と、
前記AONT装置の出力を分割し、秘匿化対象以外の第1の保存データと秘匿化対象の第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、
前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ攪拌を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、
前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆攪拌を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、
前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、
前記データ結合装置で結合されたデータを受け取り、前記AONT装置により逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置と、を備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記制御装置は、再暗号化要求の制御信号を受信すると、
前記第1の記憶装置から前記秘密鍵を読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、
前記秘密鍵をパラメータとして、前記パラメータ付きデータ逆攪拌装置を用いて前記第2の保存データを逆攪拌して再暗号化用の前記第2の中間データを生成し、
前記暗号化鍵生成装置で新しい秘密鍵を生成し、
前記新しい秘密鍵をパラメータとして、前記パラメータ付きデータ攪拌装置で前記再暗号化用の前記第2の中間データを攪拌し、前記攪拌の出力である前記第2の保存データを前記第2の記憶装置に記憶し、
前記新しい秘密鍵を前記第1の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記パラメータ付きデータ攪拌装置は、第1の疑似乱数生成装置と第1の加算器とを備え、前記第1の疑似乱数生成装置は、前記秘密鍵に基づいて暗号化用鍵ストリームを生成し、前記鍵ストリームと前記セレクタの出力するデータを前記加算器で加算することでデータの攪拌処理を行ない、
前記暗号化記憶システムは、前記鍵ストリームを前記第1の記憶装置に記憶することを特徴とする暗号化記憶システム。 - 請求項3に記載の暗号化記憶システムであって、
前記パラメータ付きデータ逆攪拌装置は減算器を備え、
前記制御装置が復号処理要求の制御信号を受信すると、前記パラメータ付きデータ逆攪拌装置は前記第1の記憶装置から前記鍵ストリームを読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、前記減算器で減算処理を行い、データの逆攪拌を行うことを特徴とする暗号化記憶システム。 - 請求項4に記載の暗号化記憶システムであって、
前記暗号処理装置は、さらに第2の加算器を備え、前記制御装置が再暗号化要求の制御信号を受信すると、
前記第1の記憶装置に記憶されている前記鍵ストリームを第1の鍵ストリームとして読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、
前記暗号化鍵生成装置で新しい秘密鍵を生成し、
前記疑似乱数生成装置は前記新しい秘密鍵に基づいて新しい鍵ストリームを第2の鍵ストリームとして生成し、
前記第1の鍵ストリームと前記第2の保存データを前記第1の加算器で加算することで前記第2の保存データを更新し、前記第2の記憶装置に書き込み、
前記第1の鍵ストリームと前記第2の鍵ストリームを前記第2の加算器で加算することで前記第1の鍵ストリームを更新し、前記第1の記憶装置に書き込む
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記データ管理装置はデータベースを備え、前記第1の記憶装置に記憶されているデータと、前記第2の記憶装置に記憶されているデータと、前記第3の記憶装置に記憶されているデータとの対応を管理することを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記AONT装置は、n1ビットのハッシュ値を生成する第1ハッシュ関数及び第2のハッシュ関数と、n1ビットのデータを入力とする疑似乱数生成器とを備え、
暗号化対象のデータを構成する所定の長さの単位データを、n1ビットの第1のデータとn2ビットの第2のデータに分割し、
前記第1のハッシュ関数によって前記第2のデータから生成したハッシュ値と前記第1のデータとの排他的論理和により第1の内部データを生成し、
前記第1の内部データを入力として前記疑似乱数生成装置によって生成した疑似乱数と前記第2のデータとの排他的論理和により第2の内部データを生成し、
前記第2のハッシュ関数2によって前記第2の内部データから生成したハッシュ値と前記第1の内部データとの排他的論理和により第3の内部データを生成し、
前記第3の内部データと前記第2の内部データを連結して出力データとして中間データを生成する、
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記AONT装置は、乱数生成装置と、n1ビットのデータを入力とする疑似乱数生成器と、n1ビットの圧縮値を生成するデータ圧縮装置とを備え、
前記乱数生成装置で生成したn1ビットの第1のデータを入力として前記疑似乱数生成装置によって生成した乱数データと、暗号化対象のデータを構成するn2ビットの第2のデータとの排他的論理和により第1の内部データを生成し、
前記第1の内部データを前記データ圧縮装置によって圧縮した圧縮データと、n1ビットのデータとの排他的論理和により第2の内部データを生成し、
前記第2の内部データと前記第1の内部データを連結してn1+n2ビットの出力データとして中間データを生成する、
ことを特徴とする暗号化記憶システム。 - 請求項8に記載の暗号化記憶システムであって、
入力データを詰め込むことによりn1ビットの倍数のデータに成形し、前記データ圧縮装置は、前記計算の途中結果の前記第1の内部データをn1ビットずつに分割して排他的論理和する
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記暗号化装置は、さらに第1のMAC値生成装置と、MAC用乱数生成装置と、第4の記憶装置とを備え、
前記第3の記憶装置は、前記第1のMAC値生成装置と同じ処理を行う第2のMAC値生成装置を備えることを特徴とする暗号化記憶システム。 - 請求項10に記載の暗号化記憶システムであって、
前記制御装置がデータの書き込み信号と保存期間に関する情報を受信すると、
前記MAC用乱数生成装置は保存期間に応じて少なくとも一つの乱数を生成し、
前記第1のMAC値生成装置は、それぞれの乱数を鍵として、前記少なくとも1つの乱数のそれぞれに対応して、前記第1の保存データのMAC値を計算し、
前記暗号化記憶システムは、前記計算の結果を前記第4の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項11に記載の暗号化記憶システムであって、
前記制御装置がデータの保持証明信号を受信すると、
前記管理装置は、前記データに対応する、前記第4の記憶装置に記憶した当該乱数を読み出し、前記データを特定する情報と合わせて、前記第3の記憶装置に送信し、
前記第3の記憶装置は、前記データを特定する情報に従って該当データを読み出し、
前記第2のMAC生成装置は、前記受信した前記当該乱数を鍵として、前記該当データのMAC値Tを計算し、
前記第3の記憶装置は、前記MAC値Tを前記管理装置に送信し、
前記管理装置は、前記データと前記当該乱数に対応する、前記第4の記憶装置に記憶されているMAC値を読み出し、受信した前記MAC値Tとを比較し、一致していれば正しくデータ保持されているという信号を、一致しなければ不正であるという信号を返信する、
ことを特徴とする暗号化記憶システム。 - 請求項10に記載の暗号化記憶システムであって、
前記暗号化装置は、さらに署名用ハッシュ値生成装置と、電子署名生成装置と、第5の記憶装置とを備え、
前記制御装置がデータの書き込み信号を受信すると、
前記署名用ハッシュ値生成装置は、前記I/Fを介して受信したデータのハッシュ値を計算し、
前記電子署名生成装置は、前記ハッシュ値を入力として署名値を生成し、
前記暗号化記憶システムは、前記ハッシュ値と、前記署名値を前記第5の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項13に記載の暗号化システムであって、
前記制御装置がデータの再署名信号を受信すると、
前記管理装置は、前記第1のMAC値生成装置と前記第2のMAC値生成装置を用いて、データの保持証明を行ない、
正しくデータ保持されていることが確認できれば、前記第5の記憶装置に記憶した、前記ハッシュ値を読み出し、
前記電子署名生成装置は、前記ハッシュ値に対して新しい署名鍵で署名値を生成し、前記署名値を前記新しく生成した署名値で更新する、
ことを特徴とする暗号化記憶システム。 - 記憶装置を有する処理装置を用いた暗号化記憶方法であって、
入力データを変換した変換データを、非書き換えデータである第1の保存データと書き換えデータである第1の中間データとに分割し、前記第1の保存データを第3の記憶装置に保存し、
生成した秘密鍵を第1の記憶装置に保存すると共に、前記秘密鍵を用いて、前記第1の中間データをデータ攪拌した第2の保存データを生成し、第2の記憶装置に保存し、
前記第1の記憶装置から取り出した前記秘密鍵を用いて、前記第2の記憶装置から取り出した前記第2の保存データをデータ逆攪拌して第2の中間データを生成し、
前記生成した第2の中間データと前記第3の記憶装置から取り出した前記第1の保存データとを、データ合成して前記変換データを生成し、前記変換データを復号した出力データを出力し、
再暗号化の際は、前記秘密鍵を用いて、前記第2の記憶装置に保存されていた前記第2の保存データをデータ逆攪拌して前記第2の中間データを生成し、前記生成した第2の中間データを再度データ攪拌して前記第2の保存データを生成し、前記第2の保存データを前記第2の記憶装置に保存する、
ことを特徴とする暗号化記憶方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014556312A JP5964460B2 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム |
| PCT/JP2013/050477 WO2014109059A1 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム及び方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2013/050477 WO2014109059A1 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム及び方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014109059A1 true WO2014109059A1 (ja) | 2014-07-17 |
Family
ID=51166726
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2013/050477 Ceased WO2014109059A1 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム及び方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP5964460B2 (ja) |
| WO (1) | WO2014109059A1 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016004170A (ja) * | 2014-06-17 | 2016-01-12 | Kddi株式会社 | 暗号化装置及び復号装置、暗号化方法及び復号方法、並びに暗号化プログラム及び復号プログラム |
| CN109840426A (zh) * | 2019-03-05 | 2019-06-04 | 深圳市汇顶科技股份有限公司 | 加密方法、加密装置及电子设备 |
| US10728021B2 (en) * | 2014-09-30 | 2020-07-28 | Nec Corporation | Method and system for encrypting data with an all-or-nothing encryption scheme having additional randomness |
| CN112560071A (zh) * | 2020-12-28 | 2021-03-26 | 杭州趣链科技有限公司 | 具有审核和指定验证者功能的数据共享方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006114841A1 (ja) * | 2005-04-08 | 2006-11-02 | Trusted Solutions Corporation | 情報処理方法および情報処理システム |
| JP2008035305A (ja) * | 2006-07-31 | 2008-02-14 | Nec Engineering Ltd | 暗号化方法及びデータ秘匿方法 |
| JP2008109611A (ja) * | 2006-09-29 | 2008-05-08 | Fujitsu Ltd | 暗号変換装置、暗号変換方法および暗号変換プログラム |
| JP2008242720A (ja) * | 2007-03-27 | 2008-10-09 | Hitachi Ltd | 記憶装置及びデータ管理方法 |
| JP2008269173A (ja) * | 2007-04-18 | 2008-11-06 | Hitachi Ltd | 計算機システム、ストレージシステムおよびデータ管理方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5870470A (en) * | 1996-02-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for encrypting long blocks using a short-block encryption procedure |
| JPH1115738A (ja) * | 1997-06-25 | 1999-01-22 | Nec Corp | 暗号化機能付きデータ蓄積装置 |
| JP2006311383A (ja) * | 2005-04-28 | 2006-11-09 | Trusted Solutions Kk | データ管理方法、データ管理システムおよびデータ管理装置 |
-
2013
- 2013-01-11 WO PCT/JP2013/050477 patent/WO2014109059A1/ja not_active Ceased
- 2013-01-11 JP JP2014556312A patent/JP5964460B2/ja not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006114841A1 (ja) * | 2005-04-08 | 2006-11-02 | Trusted Solutions Corporation | 情報処理方法および情報処理システム |
| JP2008035305A (ja) * | 2006-07-31 | 2008-02-14 | Nec Engineering Ltd | 暗号化方法及びデータ秘匿方法 |
| JP2008109611A (ja) * | 2006-09-29 | 2008-05-08 | Fujitsu Ltd | 暗号変換装置、暗号変換方法および暗号変換プログラム |
| JP2008242720A (ja) * | 2007-03-27 | 2008-10-09 | Hitachi Ltd | 記憶装置及びデータ管理方法 |
| JP2008269173A (ja) * | 2007-04-18 | 2008-11-06 | Hitachi Ltd | 計算機システム、ストレージシステムおよびデータ管理方法 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016004170A (ja) * | 2014-06-17 | 2016-01-12 | Kddi株式会社 | 暗号化装置及び復号装置、暗号化方法及び復号方法、並びに暗号化プログラム及び復号プログラム |
| US10728021B2 (en) * | 2014-09-30 | 2020-07-28 | Nec Corporation | Method and system for encrypting data with an all-or-nothing encryption scheme having additional randomness |
| CN109840426A (zh) * | 2019-03-05 | 2019-06-04 | 深圳市汇顶科技股份有限公司 | 加密方法、加密装置及电子设备 |
| CN109840426B (zh) * | 2019-03-05 | 2023-07-25 | 深圳市汇顶科技股份有限公司 | 加密方法、加密装置及电子设备 |
| CN112560071A (zh) * | 2020-12-28 | 2021-03-26 | 杭州趣链科技有限公司 | 具有审核和指定验证者功能的数据共享方法 |
| CN112560071B (zh) * | 2020-12-28 | 2022-06-14 | 杭州趣链科技有限公司 | 具有审核和指定验证者功能的数据共享方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5964460B2 (ja) | 2016-08-03 |
| JPWO2014109059A1 (ja) | 2017-01-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11818262B2 (en) | Method and system for one-to-many symmetric cryptography and a network employing the same | |
| US10880100B2 (en) | Apparatus and method for certificate enrollment | |
| US12225106B2 (en) | File sharing method and system, electronic device and readable storage medium | |
| EP1636664A2 (en) | Proof of execution using random function | |
| WO2018154623A1 (ja) | 暗号化装置及び復号装置 | |
| US11431489B2 (en) | Encryption processing system and encryption processing method | |
| KR20210036700A (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 | |
| JP5964460B2 (ja) | データの暗号化記憶システム | |
| CN119892452B (zh) | 一种基于密文策略属性基加密的电力数据隐私安全保护系统、方法和应用 | |
| US12328397B2 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
| JP7385025B2 (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
| CN116755618A (zh) | 一种基于区块链和分布存储的文件安全存取方法 | |
| JP5850888B2 (ja) | 情報記憶システム、情報記憶装置、その方法、及びプログラム | |
| CN114676452A (zh) | 一种数据安全存储方法和装置 | |
| CN119675984B (zh) | 属性基加密方法、系统、设备和存储介质 | |
| WO2021044465A1 (ja) | 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造 | |
| WO2020240630A1 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
| JP5539024B2 (ja) | データ暗号化装置およびその制御方法 | |
| Singh et al. | Security of Data with 3DES & Watermarking Algorithm | |
| Zadka | Cryptography | |
| JP2025184230A (ja) | クライアント装置、サーバ装置、パラメータ秘匿化システム、パラメータ秘匿化方法、及びパラメータ秘匿化プログラム | |
| WO2025230990A1 (en) | Secure and efficient signing of cryptocurrency transactions under fully homomorphic encryption | |
| JP2017009914A (ja) | 指標算出システム、指標算出方法、指標算出プログラム、及び、照合システム |
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: 13870510 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2014556312 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13870510 Country of ref document: EP Kind code of ref document: A1 |