WO2013069770A1 - データベース装置と方法及びプログラム - Google Patents
データベース装置と方法及びプログラム Download PDFInfo
- Publication number
- WO2013069770A1 WO2013069770A1 PCT/JP2012/079126 JP2012079126W WO2013069770A1 WO 2013069770 A1 WO2013069770 A1 WO 2013069770A1 JP 2012079126 W JP2012079126 W JP 2012079126W WO 2013069770 A1 WO2013069770 A1 WO 2013069770A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- database
- data
- ciphertext
- column
- encrypted
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F21/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Definitions
- the present invention relates to information encryption technology, and more particularly to a database apparatus, method, and program.
- prevention of information leakage from the database is considered particularly important when outsourcing the database to the cloud.
- Various methods for encrypting data to be recorded in the database have been proposed so far in order to prevent information leakage from the database. Although not particularly limited, these methods are classified as follows as an example.
- Patent Document 1 discloses an automatic database encryption method and apparatus that automatically executes encryption transparently to a database user without being noticed by the database user. It has a client, database server, and database, and operates by receiving a request to store data in a column of the database system. When the user designates a column of the database system as an encrypted column, the data is automatically encrypted using the encryption function.
- the encryption function uses a key stored in a key file managed by the security administrator. After encrypting the data, the system stores the data using the storage function of the database system. It also operates by receiving a request to retrieve data from an encrypted column in the database system. The system checks the column ID metadata to determine whether the column is encrypted. If it is encrypted, the system executes the following processing.
- the system retrieves the encryption parameters, retrieves the decryption key, decrypts the data, and returns the decrypted data to the client.
- the request to retrieve data is not from an authorized user, the system does not decrypt the encrypted data.
- the encryption / decryption key is managed on the database side, and the user of the database system does not need to change the database query.
- the key is managed on the user side by using an encryption method that can be processed as a ciphertext.
- Patent Document 2 discloses an encrypted database search apparatus that performs index creation processing applicable to a search system that searches documents stored in an encrypted database while encrypting them, thereby speeding up the search processing. Yes.
- the search target data is encrypted with the same encryption method and key as the encrypted data, and the search is performed. In this system, even if there is information leakage on the database side, only ciphertext is leaked.
- Patent Document 3 discloses a database access system in which a user terminal uses a public key.
- a database access system that includes a decryption unit that can prevent leakage of data accurately to a third party who enters from the outside, an administrator who stores and manages data, and the like.
- Non-Patent Document 1 describes that by using fully homomorphic encryption (Fully Homomorphic Encryption), any logical operation can be performed on the encrypted data without decrypting the encryption. .
- a method of encrypting and storing data at the time of storing in the database and decrypting the data and returning it to the user at the time of retrieving the data has an encryption / decryption key arranged on the database side. Therefore, there is a possibility of information leakage due to an intrusion to the database system from the outside or an unauthorized / operation error of a database administrator (database administrator or the like).
- SQL general database operations
- the present invention has been made in view of the above problems, and its main object is to provide a system, method, and program for preventing leakage of confidential information in a database system and improving processing efficiency. There is.
- control means for performing data access control on the database
- the control means receives a database operation command from a user device, and regarding data and / or metadata handled by the database operation command, Means for performing database operations or operations with encrypted data and / or encrypted metadata as encrypted text; Means for performing database operations or operations on plaintext data and / or plaintext metadata; And a database device that returns a processing result to the user device.
- Database operations or operations with encrypted data and / or encrypted metadata as ciphertext Perform at least one of database operations or operations on plaintext data and / or plaintext metadata;
- a database control method for returning a processing result to the user device is provided.
- a computer composing a database control device that is connected to a user device and performs data access control on a database.
- a program for executing is provided.
- information leakage of the database system can be suppressed and processing efficiency can be improved.
- (A) is a table before encryption
- (B) is a ciphertext table information table
- (C) is a table after encryption
- (D) (F) to (F) are diagrams for explaining the ciphertext table.
- It is a flowchart which shows the processing flow of the safety setting means in one Embodiment of this invention.
- 12 is a flowchart illustrating a setting process with encryption in the setting update process of FIG. 11.
- 12 is a flowchart illustrating a setting process without encryption in the setting update process of FIG. 11.
- 12 is a flowchart for explaining confidentiality setting processing in the setting update processing of FIG. 11. It is a figure explaining the flow of the process in which the application response means of one Embodiment of this invention reflects the setting object and setting content input from the safety setting means. It is a flowchart explaining the process which adds data to the table already created in the database in the application response means of one Embodiment of this invention. It is a figure explaining an example of the encryption protocol information storage part in one Embodiment of this invention.
- the database device (for example, the database system 10 in FIG. 1) is a control unit (for example, the database control unit 12 in FIG. 1) that performs data access control on the database (for example, 11 in FIG. 1).
- the database control means (12) receives a database operation command from a user device (20 in FIG. 1), executes a cryptographic protocol process on the database (for example, 122 in FIG. 3), and a database for plain text data. Means for executing an operation, and returns a processing result to the user device (20).
- the user device (20) selects the presence or absence of encryption of data stored in the database (11) by the database operation command, and the data encrypted by the encryption algorithm corresponding to the security of the data as the data of the database operation command Or, plaintext data is transmitted to the database device (10).
- the database device (10) receives the database operation command transmitted from the user device (20), and stores the operation target data encrypted and stored in the database (11). Is encrypted with a cryptographic algorithm that can be operated or operated in a ciphertext, and the operation or operation of the database operation instruction includes an operation or operation that can be operated in a ciphertext, The operation or calculation is performed on the data as it is in the ciphertext, and the ciphertext processing result is transmitted to the user device (20).
- the said control means (12) returns the operation result of the partial operation of the operation of the said database operation instruction to the said user apparatus (20) by a ciphertext.
- the user apparatus (20) when a partial operation in plaintext is further required for the operation, the user device (20) performs a partial operation on the data obtained by decrypting the ciphertext into plaintext, When the operation remains and the partial operation in the ciphertext is possible, the user device (20) transmits the ciphertext obtained by encrypting the result of the partial operation in the plaintext to the control means (12).
- control means (12) uses the ciphertext from the user device (20), performs the remaining partial operation of the operation of the database operation instruction with the ciphertext, and obtains the operation result of the partial operation.
- Circular may be configured to return to the user device (20).
- the database device (10) is configured to encrypt or not encrypt metadata including a table name and a column name stored in the database (11).
- Confidential information indicating the degree of security of information a storage unit (for example, 14 in FIG. 1) for storing and storing identification information of an encryption algorithm corresponding to the confidential information, and processing contents in the database (11), It is good also as a structure provided with the memory
- the control means (12) may be configured to include an encryption protocol processing execution unit (122 in FIG. 3).
- An encryption protocol processing execution unit (122 in FIG. 3) performs the database operation instruction on the data encrypted with the encryption algorithm corresponding to the confidentiality information based on the encryption protocol identification information of the second storage unit.
- the cryptographic protocol processing with the processing content corresponding to is executed.
- the said control means (12) encrypts metadata and / or data using the public key transmitted from the said user apparatus (20). It is good also as a structure provided with the encryption calculating part (for example, 126 of FIG. 26) to perform.
- the column data when encrypting the column data of the table in the database (11), the column data is read from the database (11), and the public key information is obtained from the user device (20).
- the cipher operation unit (126) encrypts the column data and creates a ciphertext table including a pair of a serial number and a ciphertext of the column data.
- a ciphertext table information table including a table name, a column name, an encryption algorithm, and a ciphertext table name as a set may be provided.
- the user device (20) sets key utilization means (for example, 23 in FIG. 1) for managing key information for data encryption and decryption, and information related to data security setting stored in the database.
- Safety setting means for example, 26 in FIG. 1
- a first storage unit for example, 25 in FIG. 1 for storing information set by the safety setting means (26)
- application response means for example, FIG. 1).
- the application response means (22) receives a database operation command issued toward the database system (10), refers to the information in the first storage unit (25), and handles data and / or data handled by the database operation command.
- the key information (for example, the key utilization means (23) is used by using an encryption algorithm corresponding to the security of the data and / or column data.
- the encrypted data and / or encrypted column data encrypted with the public key is transmitted to the database control means (12) to execute the database operation, if the encryption is unnecessary, the database operation command is left as it is. (The data is not encrypted and remains in plain text), sent to the database control means (12) to execute the database operation, It may be formed.
- the user device (20) receives the database processing result transmitted from the database control means (12), and when conversion or decryption of data and / or column data is required, the key of the conversion or the key use means
- a configuration may be used in which decryption using information (for example, a secret key) is executed and returned to the issuer of the database operation instruction (for example, 21 in FIG. 1) as a response to the database operation instruction.
- the safety setting means (26) sets or changes the presence / absence of encryption of metadata including table names and column names of tables stored in the database (11); At least one of setting / changing of the presence / absence of encryption and setting / changing of confidential information indicating the degree of data security is performed.
- the first storage unit (25) stores confidential information indicating the degree of data security, whether or not the metadata including the table name and column name stored in the database is encrypted, whether or not the data is encrypted.
- the identification information of the encryption algorithm corresponding to the confidentiality information is held.
- key information used for data encryption / decryption is managed by the user system (20) as a database user, and data / metadata is encrypted on the user system (20) side. Above, it transmits to a database system (10) and stores in a database (11).
- the database operation should be transparent, and the application should be aware of data encryption.
- the database operation can be performed using a normal database operation command. For this reason, changes and modifications associated with encryption are not required in the database application (however, changes and modifications of the database application are not prohibited).
- ⁇ A. Prevention of information leakage> By providing the user system (10) side with a storage unit (24) for storing key information for data encryption / decryption and a key utilization means (23) for managing the key information, the database system Information leakage due to intrusion from the outside of the network, and fraud / operation mistakes by a database administrator or the like can be prevented.
- a process (encryption algorithm) corresponding to the degree of security (sensitivity) required for the operation target data of the database operation instruction input from the database application (21 in FIG. 1) is selected and executed.
- the required low-security data uses a cryptographic algorithm that is relatively fast but not relatively secure.
- data that does not require security can be efficiently processed by excluding it from encryption.
- ⁇ C Can handle any database operation>
- arithmetic processing (addition or multiplication, etc.) is executed in an encrypted state on the encrypted data stored in the database.
- E (m1 ⁇ m2) E (m1) ⁇ E (m2) with respect to ciphertext E (m1 ⁇ m2) of product m1 ⁇ m2 of plaintext m1 and m2.
- the plaintext m1 ⁇ m2 ciphertext is obtained directly from the product of the plaintext m1 ciphertext and the plaintext m2 ciphertext.
- the encryption algorithm is the homomorphic encryption described above, the operation with the encrypted data can be added or multiplied, but it can be used for complex operations such as addition / subtraction / multiplication / division and logical operations. Not. Therefore, when the operation of the database operation instruction cannot be obtained by directly calculating the encrypted data stored in the database, the encrypted data recorded in the database is read and returned to the user system side, and the user system side The data is decrypted into plain text and the arithmetic processing is performed, and the calculation result in plain text is returned to the database application that issued the database operation instruction.
- the plaintext operation result obtained by performing the arithmetic processing after decrypting the plaintext on the user system side is encrypted again, sent to the database side, and encrypted on the database side
- a process combining a plurality of processes with encrypted data on the database side and processes with plain text on the user system side may be performed so that the arithmetic processing with the sentence data is continuously executed. In this way, it is possible to cope with any database operation by combining the calculation with encrypted data and the calculation processing with plain text.
- sensitivity Whether or not the information stored in the database on the user system side is encrypted can be set, for example, in units of tables, columns, and column data, and the processing procedure according to the operation contents of the data and the required security (sensitivity) (Encryption algorithm) can be selected. This makes it possible to improve the processing efficiency.
- the database operation instruction (21 in FIG. 1) specifies the database operation instruction as it is (instruction syntax and instruction). (Table names, column names, data, etc., all in plain text) can be issued.
- a database operation command such as table creation, column addition, row addition, data operation, etc. is issued by a database application (21 in FIG. 1), it is input to the application response means (22 in FIG. 1), and data safety
- the encryption algorithm corresponding to the property is selected, encrypted with the encryption algorithm, and transmitted to the database system (10).
- safety setting means (26) for setting the safety of data stored in the database (11) separately from the database using application (21), it is not necessary to modify the existing application using the database. It is said. That is, in implementing the present invention, it is not necessary to perform data encryption, decryption, security setting, etc. by an application, and it can be applied to any existing application that issues a database operation command.
- the user terminal has a secret key generation unit that generates a secret key using a public key, a storage unit that stores the secret key, an encryption unit that encrypts data based on the public key, and an encrypted A database that has decryption means for decrypting data using a secret key, and that can accurately prevent data leakage even for third parties who invade from the outside, administrators who store and manage data, etc.
- Patent Document 3 that discloses an access system realizes the prevention of information leakage of A, but does not disclose B to E.
- FIG. 1 is a diagram for explaining an embodiment of the present invention.
- a database system (database device) 10 and a user system (user device) 20 are connected via a network 30 such as the Internet.
- the database system 10 includes a database 11, a database control unit 12, an encryption protocol information storage unit 13, and a safety setting information storage unit 14.
- the user system 20 includes a database usage application 21, an application response unit 22, a key usage unit 23, a key information storage unit 24, a safety setting information temporary storage unit 25, a safety setting unit 26, and an input / output.
- a device 27 is provided.
- the user system 20 is mounted on, for example, a data processing device (a CPU (Central Processing Unit), a processor) having a function of connecting to the network 30 and communicatively connecting to the database system 10.
- the database utilization application 21 is an application program that operates on the data processing apparatus.
- the application response unit 22, the key use unit 23, and the security setting unit 26 may also be realized by a program (control program or the like) that operates on the data processing apparatus.
- each means configuring the user system 20 is arranged in one block, but these may be configured as separate devices via a communication network such as a local area network.
- the database 11 and the database control means 12 are arranged in one block, but it goes without saying that they may be arranged separately.
- the application response unit 22, the key use unit 23, and the security setting unit 26 may also be realized by a program (control program or the like) that operates on the data processing apparatus.
- virtualization technology is introduced into the server, the user system is implemented on the virtual machine on the server, and the database utilization application on the virtual machine on the server is installed from the thin client terminal. You may make it input.
- FIG. 1 shows an example in which one user system 20 is provided for simple explanation, but there are a plurality of user systems 20 connected to the database system 10 via the network 30.
- the application response means 22 which communicates and connects with the database system 10 with respect to the several user system 20 in common.
- each of the plurality of user systems 20 includes a key use unit 23 and a key information storage unit 24 for each user, stores and manages key information on the user side, and further includes a safety setting unit 26.
- the application response means 22 is connected to the database system 10.
- the safety setting information temporary storage unit 25 may be arranged in a single storage device (system) for a plurality of user systems 20, or may be arranged in a distributed manner in each user system 20. Good.
- the database control means 12 includes means for performing an operation on the database 11 (database operation by a database operation command) and means for executing a cryptographic protocol.
- the safety setting information storage unit 14 stores, for example, information on cryptographic algorithms used for encryption as information for setting the safety of data stored in the database 11. For example, in the case of performing encryption of data including the presence / absence of encryption of metadata including table names and column names stored in the database 11, presence / absence of encryption of data, degree of data security, and data encryption Cryptographic algorithm identification information for identifying the cryptographic algorithm is stored and held.
- the encryption protocol information storage unit 13 stores encryption protocol information for encrypting data in the database 11. For example, the processing contents (simple matching, addition, etc.) of the database operation command, the encryption algorithm identification information corresponding to the degree of security required for the data (sensitivity), and the encryption protocol identification information are stored and held. In the cryptographic protocol information storage unit 13, information for selecting an additive homomorphic cryptographic algorithm is stored in accordance with the processing contents for the arithmetic processing for adding data in the database 11 as cipher text.
- the database control unit 12 receives a database operation command (database operation with plaintext data) or an instruction to execute a cryptographic protocol transmitted from the application response unit 22, executes the database operation with the plaintext data or the cryptographic protocol, and performs processing. The result is transmitted to the application response means 22.
- the database control means 12 may be implemented as a database server having the user system (10) as a client.
- the database use application 21 issues a database operation command.
- the database using application 21 includes an application program that issues a database operation instruction (SQL instruction) for executing a database operation.
- the database using application 21 is implemented as a GUI (Graphical User Interface) environment that performs operations such as table definition, data addition, search, and computation on the screen via the application response means 22 in the database control means 12 of the database system 10. May be.
- the operation selected on the screen by the user is converted into a corresponding SQL command and input to the application response means 22.
- the database application 21 can use an existing application as it is. This does not mean that the database usage application 21 should not be newly developed.
- the database usage application 21 is newly developed, modified, or revised, data encryption, decryption, data security This means that the database setting application 21 does not have to set the information for the sex setting.
- the safety setting means 26 sets data safety information.
- the key utilization unit 23 refers to the key information storage unit 24 and generates a key necessary for executing various cryptographic protocols such as data encryption / decryption.
- the input / output device 27 includes an input device such as a keyboard, a mouse, or a touch panel, and an output device such as a display device or a file device (printer). Output.
- the input / output device 27 includes an input / output integrated device such as a touch panel / tablet display, or an input / output device.
- the safety setting information temporary storage unit 25 stores information stored in the safety setting information storage unit 14 and information for specifying operation target data. For example, when metadata (for example, a table name or a column name) that is information for specifying data in the database 11 is encrypted, the encrypted metadata and the decrypted metadata (plain text) (Metadata) is stored in association with each other.
- metadata for example, a table name or a column name
- Methodadata plain text
- the application response means 22 refers to the safety setting information temporary storage unit 25, the safety setting information storage unit 14, and the encryption protocol information storage unit 13, and the table name / Replacing metadata such as column names with ciphertext metadata, encryption protocols corresponding to the contents of database operations (processing contents), or normal database operations in cooperation with the database control means 12 and the key utilization means 23 Execute.
- the application response unit 22 sets the safety setting unit. 26 the safety setting information is set, and a table is created in the database 11 via the database control means 12.
- the safety setting means 26 may display a screen prompting the user to input safety setting information.
- the input of the safety setting information when creating a new table can take various forms. For example, prior to the issuance of a database operation command by the database use application 21, safety setting information such as the presence / absence of encryption related to the newly created table name may be set in advance by the safety setting means 26. .
- sensitivity and encryption protocol identification information are set for a table name template in which a part of the table name is replaced with a wild card or the like. When a newly created table matches a table name including the wild card, encryption may be performed using an encryption protocol corresponding to the default sensitivity.
- the application response means 22 encrypts data when it is necessary to encrypt the operation target data of the database operation command input from the database using application 21. At this time, encryption is performed using the key information and the data is transmitted to the database control means 12.
- the application response unit 22 returns the database operation result (processing result) returned from the database control unit 12 to the database use application 21.
- the database use application 21 outputs the database operation result to the input / output device 27.
- the database control means 12 is an operation in which there is an encryption protocol that can be processed as it is in a ciphertext, such as a query (Query), for example, when a database operation command input from the database using application 21 and transferred via the application response means 22 If it is, the process (search etc.) is performed with the ciphertext.
- the database control unit 12 returns the processing result of the ciphertext in the database 11 to the application response unit 22 without changing the ciphertext.
- the application response means 22 receives the result of decrypting the ciphertext into plaintext by the key use means 23, and returns the plaintext database operation result to the database use application 21.
- the database control means 12 Is sent out from the database 11 as cipher text, and sent to the application response means 22 without performing any arithmetic operation.
- the application response means 22 decrypts the encrypted data sent from the database control means 12 using the decryption key of the key utilization means 23, and designates the obtained plain text with a database operation command. The operation result is performed, and the operation result is returned to the database utilization application 21.
- the database control unit 12 performs an operation result (ciphertext) obtained by performing the partial operation with the ciphertext. May be returned to the application response means 22, and the application response means 22 may decrypt the ciphertext operation result into plaintext by the key utilization means 23, and perform the remaining arithmetic operations in plaintext. In this way, the processing is made more efficient than the case where the composite calculation operation is performed after all the individual data is decoded.
- the application response means 22 refers to the safety setting information storage unit 14 with respect to the database operation command input from the database utilization application 21, so that the application response means 22 in the database 11 that is the operation target of the input database operation command. It is confirmed whether or not the data in (2) needs to be protected by encryption (whether encryption is necessary). When encryption is not required, the same processing as normal database operation is performed. Further, the application response means 22 refers to the safety setting information temporary storage unit 25, so that the metadata (for example, the table name in SQL) is the operation target of the database operation instruction input from the database use application 21. Even if the data is encrypted, the operation target data can be specified.
- the application response means 22 refers to the safety setting information with respect to the input database operation command, and thereby the safety required for the database 11 that is the operation target. Processing according to the degree can be determined. Thereby, the required low-security data is relatively high-speed, but efficient processing is possible by using a cryptographic algorithm that is not highly secure.
- FIGS. 2A and 2B are flowcharts summarizing the processing operations of the application response unit 22 and the database control unit 12 in the present embodiment, respectively.
- Step 1 A database operation command is input from the database use application 21.
- Step 2 By referring to the safety setting information temporary storage unit 25, it is determined whether or not metadata such as a table name or a column name specified as an operation target by the database operation instruction is encrypted.
- Step 3 When metadata such as table names and column names is encrypted and stored in the database, a replacement process is performed in which the metadata designated as the operation target by the database operation command is replaced with ciphertext.
- Step 4 Referring to the safety setting information storage unit 14, it is determined whether or not the data specified as the operation target by the database operation instruction is required to be encrypted.
- Step 5 When data encryption is unnecessary, a database operation command is transmitted to the database control means 12.
- Step 6 Receive the database operation result from the database control means 12.
- Step 7 Determine whether the database operation result needs to be converted. The determination in step 7 is performed because the operation result from the database control unit 12 may be returned in ciphertext.
- Step 8 When the database operation result needs to be converted (or decrypted), it is converted using the decryption key of the key utilization means 23. In this conversion process (decryption), conversion using the decryption key of the key utilization means 23, or conversion with reference to the post-decryption table name and post-decryption column name in the security setting information temporary storage unit 25 described later is performed.
- Step 14 The operation result (or conversion result) is output to the database utilization application 21.
- step 4 the application response means 22 performs the following processing.
- Step 9 The encryption protocol information storage unit 13 is referred to perform encryption processing with a corresponding encryption algorithm.
- Step 10 The application response means 22 transmits an encryption protocol execution instruction (request for execution of encryption protocol processing) to the database control means 12.
- Step 11 The encryption protocol is executed by the database control means 12.
- Step 12 Receive the execution result of the cryptographic protocol from the database control means 12.
- the application response means 22 decrypts the operation result of the ciphertext from the database control means 12 into plain text, encrypts the partial operation in plain text, and the database operation means after encrypting the partial operation result.
- the transmission to 12 and the computation in the ciphertext by the database control means 12 may be executed in cooperation.
- Step 13 A conversion process for decrypting the encryption protocol execution result using the key information of the key utilization means 23 is performed. Conversion processing by decrypting the execution result of the encryption protocol using the key information of the key utilization unit 23 or by referring to the decrypted table name and the decrypted column name of the security setting information temporary storage unit 25 I do.
- Step 14 Output the conversion result to the database using application 21.
- Step 1 Wait for reception of an instruction from the application response means 22.
- Step 2 When a database operation command is received from the application response means 22, the database operation command is executed.
- Step 3 Return the database operation result to the application response means 22.
- Step 4 When a cryptographic protocol processing request is received from the application response means 22, the cryptographic protocol is executed (corresponding to step 11 in FIG. 2A).
- Step 5 Return the cryptographic protocol execution processing result to the application response means 22.
- the user system 20 manages key information for encryption and decryption, transfers the encrypted data in the database 11 to the user system 20, and performs decryption processing on the user system 11 side. For this reason, an increase in the possibility of information leakage in the database system 10 is suppressed.
- a security setting information storage unit 14 that stores information on the presence / absence of encryption of the data in the database 11 and the required degree of safety is provided, and the application response unit 22 receives a safety command when a database operation command is input.
- the sex setting information storage unit 14 it is determined whether or not the operation target data needs to be encrypted.
- the encryption process is not performed ( Steps 5 and 6 in FIG. In this way, by excluding data that does not require confidentiality from the target of encryption, the influence on the processing performance that occurs when all database operations are encrypted is suppressed.
- FIG. 3 is a diagram showing an example of the configuration of the database control unit 12 of FIG.
- the database control unit 12 includes a database operation unit 121, an encryption protocol processing execution unit 122, a processing / communication control unit 125, an encryption protocol information operation unit 123, and a security setting information operation unit 124. I have.
- the cryptographic protocol processing execution unit 122 executes search and addition of the database 11 with the ciphertext.
- the database operation unit 121 performs database operations (table creation, data addition / deletion, data search, data calculation, etc.) on the database 11.
- database operations table creation, data addition / deletion, data search, data calculation, etc.
- the processing / communication control unit 125 receives a database operation command for storing, adding, deleting, updating, etc., plaintext data in the database 11 from the application response unit 22, the plaintext data is received from the processing / communication control unit 125.
- the data is transferred to the database operation unit 121 as it is, and the database operation unit 121 performs database operation with plain text data.
- the cryptographic protocol processing execution unit 122 operates while the data is in the ciphertext state, but accesses the database 11 through the database operation unit 121. For example, an instruction for acquiring columns B and C from a table A in the database 11, an SQL search statement SELECT B, C FROM A When the columns B and C in the table name A in the database 11 are encrypted, the database operation unit 121 performs the search process as it is with the ciphertext and returns the search result to the encryption protocol process execution unit 122.
- the processing / communication control unit 125 performs communication with the application response unit 22 via the network 30 and controls each unit in the database control unit 12.
- the cryptographic protocol information operation unit 123 reads / writes cryptographic protocol information from / to the cryptographic protocol information storage unit 13.
- the cryptographic protocol information operation unit 123 accesses the cryptographic protocol information storage unit 13 in response to an access request (reading request) to the cryptographic protocol information storage unit 13 from the application response unit 22, and processes and communicates the read cryptographic protocol information. It returns to the application response means 22 via the control unit 125.
- the safety setting information operation unit 124 reads safety setting information from the safety setting information storage unit 14 and writes to the safety setting information storage unit 14.
- the safety setting information operation unit 124 accesses the safety setting information storage unit 14 in response to an access request (reading request) to the safety setting information storage unit 14 from the application response unit 22, and the read safety setting information Is returned to the application response means 22 via the processing / communication control unit 125.
- FIG. 4 is a diagram showing a modification of FIG.
- cryptographic protocol information and security setting information are stored in the database 11 as a cryptographic protocol information table 111 and a security setting information table 112.
- the cryptographic protocol information operation unit 123 in FIG. 4 issues a database operation command (such as an SQL command specifying a table name as a cryptographic protocol information table) to the database operation unit 121, thereby causing the cryptographic protocol information table 111 in the database 11.
- a database operation command such as an SQL command specifying a table name as a cryptographic protocol information table
- the safety setting information operation unit 124 accesses information in the safety setting information table 112 in the database 11 via the database operation unit 121.
- FIG. 26 is a diagram showing still another configuration example of the database control unit 12 of FIG.
- the database control unit 12 includes a database operation unit 121, an encryption protocol processing execution unit 122, a processing / communication control unit 125, an encryption protocol information operation unit 123, and a security setting information operation unit 124.
- the cryptographic operation unit 126 is provided.
- the cryptographic operation unit 126 is different from FIG.
- the database operation unit 121, encryption protocol processing execution unit 122, processing / communication control unit 125, encryption protocol information operation unit 123, and security setting information operation unit 124 are the same as in FIG. .
- the application response means 22 transmits the public key used for encryption to the database control means 12 and encrypts it by the cryptographic operation unit 126 of the database control means 12.
- the data to be encrypted is sent from the database system 10 side to the user system 20 side, and encrypted by the user system 20 side.
- the ciphertext data needs to be transmitted from the user system 20 to the database system 10.
- FIG. 26 since it is not necessary to send the data to be encrypted from the database system 10 side to the user system 20 side, an increase in the amount of communication between the database system 10 and the user system 20 is suppressed. The effect can be expected.
- FIG. 27 is a diagram showing another example of the configuration of the database control unit 12 of FIG. Referring to FIG. 27, in the present embodiment, the encryption protocol information table 111 and the security setting information table 112 are provided in the database 11 in the configuration of FIG.
- the cryptographic operation unit 126 is the same as that in FIG.
- FIG. 5 is a diagram for explaining an example of the cryptographic protocol information storage unit 13 of FIG.
- the processing content identifier is information for identifying the processing content of the database operation.
- identification codes for database operations such as “simple match” (simply check whether the specified character string matches) or “addition” are set.
- the confidentiality indicates the degree of data security (confidentiality), and is not particularly limited. In this example, one of “high”, “medium”, and “low” is set. The confidentiality may be quantified.
- the encryption algorithm identifier represents an encryption algorithm used for data encryption.
- an identifier of an executable cryptographic protocol that stores confidentiality is stored for each information of the processing content identifier, confidentiality, and cryptographic algorithm identifier.
- the cryptographic protocol information operation unit 123 reads the cryptographic protocol identifier from the cryptographic protocol information storage unit 13 and decodes the processing content identifier, confidentiality, and cryptographic algorithm identifier, so that the data processing content, confidentiality, and cryptographic algorithm are derived.
- AES Advanced Encryption Standard
- HE1 indicates one of homomorphic encryption (HE: Homomorphic Encryption) (in this case, the Paillier cipher of additive homomorphic encryption).
- SE1 indicates one of public key searchable encryption (SE).
- FIG. 6 is a diagram illustrating an example of the safety setting information storage unit 14 of FIG.
- the safety setting information storage unit 14 determines whether the table name created in the database 11 is encrypted (table name encrypted / not encrypted), the column name, and the column name is encrypted. Whether the column data is encrypted (column data encryption presence / absence), the sensitivity of the column data, and the identifier of the encryption algorithm used to encrypt the column data (column data (Encryption algorithm identifier) column.
- the table name of the “employee table” in the first row is not encrypted, the column name “work location” is not encrypted, and the column data is encrypted.
- the sensitivity of the column data is “medium” and the encryption algorithm identifier is “SE1”.
- the table name in the fourth row is encrypted, and the column name and column data are not encrypted (NULL is set in the corresponding column).
- the table name in the fifth row is not encrypted, the column name is encrypted, and the column data is not encrypted.
- the metadata such as table name and column name may be encrypted with the same encryption algorithm as that for encrypting column data.
- the table name, the column name, and the column data encrypted with the same encryption algorithm are associated with each other to form one entry.
- the encryption algorithm used for encrypting the table name and the column name may be an encryption algorithm different from the encryption algorithm used for encrypting the column data.
- the encryption algorithm used for encrypting the table name and column name may be a specific encryption algorithm defined in common for a plurality of table names and column names.
- the safety setting information storage unit 14 stores safety setting information regarding all tables registered in the database 11, for example.
- the setting contents in each column are based on information set by the user in the safety setting means 26 of the user system 20.
- FIG. 7 is a diagram for explaining table information in the database 11.
- data may be encrypted with a plurality of encryption algorithms as in the column “work location”. Therefore, the main body of the ciphertext encrypted with a plurality of encryption algorithms is managed by another table.
- ciphertext table name which is the table storing the ciphertext body
- Cryptographic algorithms Parameters (parameters given to the encryption algorithm), Is held in correspondence.
- the encryption algorithm SE1 Searchable Encryption is a public key
- FIG. 7B includes security parameters used in a key generation algorithm (outputs a public key and a secret key).
- the encryption algorithm AES parameters include, for example, a key length, a plaintext block length, the number of rounds, etc. (AES parameters are not set in FIG. 7B. In this case, default values are used).
- serial number is stored in clear text in the column of the table storing the plaintext data before encryption (employee table in FIG. 7A).
- Serial numbers such as 1, 2,... Are assigned to the data “head office”, “Tama River”, etc., in the column “work location” of the table “employee table” in FIG.
- the column name “position” is encrypted to “0xa638...”, The column name “work location”, and the column name “0xa638”.
- the serial numbers 1, 2,... In "! correspond to IDs that indicate the encrypted contents.
- the data “head office”, “Tama River”,... Of the column name “work location” in the employee table of FIG. 7 (A) is “work” as shown in FIG. 7 (C) after encryption.
- Serial number ID 1, 2,...
- the information for specifying the table storing the ciphertext body and the parameters of the cipher algorithm are managed by the ciphertext table information table (FIG. 7B).
- the ciphertext table information table (FIG. 7B) may be stored in the security setting information storage unit 14.
- the safety setting information storage unit 14 may be managed by a separate storage unit.
- FIG. 8 is a diagram showing an example of the configuration of the application response unit 22, the security setting unit 26, and the key use unit 23 of FIG.
- the application response unit 22 includes a processing / communication control unit 221, a cryptographic protocol processing execution unit 222, a database operation conversion processing unit 223, a cryptographic operation unit 224, and a security setting information operation unit 225. I have.
- the safety setting means 26 includes a setting display unit 261 and a setting input unit 262.
- the setting display unit 261 and the setting input unit 262 perform output and input to the input / output device 27 of FIG. Specifically, an operation screen (menu) is displayed on the display device constituting the input / output device 27, menu selection, and input information is input.
- menu an operation screen
- the key utilization means 23 includes a cryptographic operation unit 231 and a key information management unit 232.
- the processing / communication control unit 221 performs communication with the database use application 21, the security setting means 26, the key use means 23, the database control means 12 of the database system 10, and controls each part within the application response means 22.
- the cryptographic computation unit 224 performs cryptographic computation using information that is not secret among key information, such as encryption computation using public key cryptography.
- the database operation conversion processing unit 223 determines whether to perform encryption protocol processing or normal database operation for the database operation command input from the database use application 21 according to the sensitivity of the operation target data. In the case of encryption, conversion processing to a cryptographic protocol is performed (corresponding to steps 4 and 9 in FIG. 2A).
- the database operation conversion processing unit 223 converts the processing result obtained by the encryption protocol processing or the normal database operation from the database control means 12 into a processing result corresponding to the input normal database operation command (FIG. 2 ( Corresponding to steps 7, 8, and 13 of A)).
- the cryptographic protocol processing execution unit 222 performs cryptographic protocol processing such as search, addition, or multiplication as it is in the ciphertext in the database control unit 12 that accesses the database 11 according to the processing contents. And execute (corresponding to step 11 in FIG. 2A).
- the safety setting information operation unit 225 receives information (including information such as the presence / absence of metadata encryption) stored in the safety setting information storage unit 14 of the database system 10 via the processing / communication control unit 221. To obtain auxiliary information for specifying the operation target data.
- the safety setting information operation unit 225 reads information from and writes information to the safety setting information temporary storage unit 25.
- the information held in the safety setting information storage unit 14 of the database system 10 is held (cached) in the safety setting information temporary storage unit 25 of the user system 20, so that the application response means 22 sends the information to the database system 10. Inquiries (traffic) are reduced, and the processing in the application response means 22 of the user system 20 is accelerated.
- the setting display unit 261 outputs safety setting information such as confidentiality information set for the data stored in the database 11 via the application response means 22 to the output device (FIG. 1). 27).
- the setting input unit 262 receives input information related to data confidentiality information from the user via the input device 27, and reflects the input setting information in the safety setting information temporary storage unit 25 via the application response unit 22. This is also reflected in the safety setting information storage unit 14 of the database system 10.
- the input setting information may be written in the safety setting information temporary storage unit 25 and the safety setting information storage unit 14 at the same time, or only in the safety setting information temporary storage unit 25, and then the safety setting information is stored.
- the data may be written in the sex setting information storage unit 14.
- the cryptographic operation unit 231 performs cryptographic operations such as decryption processing of ciphertext using the key information (secret key) read out via the key information management unit 232.
- the key information management unit 232 obtains the key information corresponding to the data to be operated on the database and the security setting information thereof from the user who is the owner of the key information (for example, the user of the database using application 21 or the user system side).
- the data is read from the key information storage unit 24 after being authenticated by the system administrator.
- the key information management unit 232 writes the key information in the key information storage unit 24.
- FIG. 9 is a diagram schematically showing an example of the contents of the safety setting information temporary storage unit 25 on the user system 20 side in FIG.
- the safety setting information temporary storage unit 25 includes “decoded table name” and “additional table name” as auxiliary information for specifying the database operation target in the contents of the safety setting information storage unit 14 of the database system 10 shown in FIG. "Decoded column name” is added.
- the other information is the same as the contents of the safety setting information storage unit 14 in FIG.
- the safety setting information operation unit 225 is safe when the database operation instruction input from the database use application 21 includes a table name “XX table” (for example, SQL instruction: select column name, from “XX table”).
- the encrypted table name “0x30c8a4...” Corresponding to “XX table” is extracted from the sex setting information temporary storage unit 25, and encrypted via the encryption protocol processing execution unit 222 and the processing / communication control unit 221.
- a database operation command (select column name, from “0x30c8a4...”) Relating to the table name “0x30c8a4...” Is transmitted to the database control means 12 via the processing / communication control unit 221.
- FIG. 10 is a diagram illustrating an example of the key information storage unit 24.
- the key information storage unit 24 includes an encryption algorithm identifier and key information.
- the key information used when data is encrypted or decrypted with the encryption algorithm “AES” is “0x51a4...”.
- the key information of the encryption algorithm HE1 that is public key cryptography is “0xb316...”,
- the key information includes public key information used for encryption and homomorphic operation processing, secret key information used for decryption, and It is included.
- the safety setting unit 26 sets safety information regarding data in the database 11.
- FIG. 11 is a flowchart showing an example of the processing procedure of the safety setting means 26.
- the database application 21 for example, an existing application is used.
- the process for setting the sensitivity and the like for the data is realized by inputting the sensitivity in the safety setting means 26.
- the processing flow of the safety setting means 26 will be described.
- Step 1 Safety setting information acquisition: The current response setting information in the database 11 is requested to the application response means 22 to acquire the safety setting information.
- the application response unit 22 refers to the safety setting information storage unit 14 of the database system 10 or the safety setting information temporary storage unit 25 of the user system 20 and acquires safety setting information corresponding to data to be operated by the database. And return to the safety setting means 26.
- the application response unit 22 When the application response unit 22 acquires the safety setting information (see FIG. 9) from the safety setting information storage unit 14, the application response unit 22 creates and returns the data format (see FIG. 6) of the safety setting information temporary storage unit 25. . That is, in the safety setting information (see FIG. 6) acquired from the safety setting information storage unit 14, the portion where the metadata (table name or column name) is “Yes” is encrypted. The decrypted metadata is decrypted by using the key utilization means 23 to generate plain text metadata and return it to the security setting means 26. Alternatively, in the safety setting information (see FIG. 9) acquired from the safety setting information storage unit 14, the decrypted table is used for a portion where the encryption of the metadata (table name or column name) is “present”. Name and column name information (plain text metadata) is returned to the security setting means 26.
- the acquisition of the safety setting information in step 1 may be performed by selectively (partially) acquiring and displaying information about the table name or information about a specific table, not the entire database 11. Good.
- Step 2 Safety setting information display: The setting display unit 261 of the safety setting unit 26 displays the safety setting information returned from the application response unit 22 on the input / output device 27.
- Step 3 Setting target and setting contents input:
- the setting input unit 262 of the safety setting means 26 has a setting target (for example, table name and column name) and setting contents (for example, encryption of the table name) input from the input / output device 27 by the database user (user). Presence / absence, presence / absence of encryption of column name, sensitivity of column data).
- Step 4 Setting update processing: The setting input unit 262 of the safety setting unit 26 transmits the input setting target and setting content to the application response unit 22 and requests a setting change (update).
- the safety setting is changed by the safety setting information operation unit 124 of the database control unit 12 and the safety setting information operation unit 225 of the application response unit 22 by the safety setting information storage unit 14 and the safety setting information temporary storage unit 25. Written to each.
- the user in the case of creating a new table in the database 11, before the database using application 21 issues a table creation command, the user must You may make it set.
- a table creation command is issued by the database use application 21, if the corresponding table name or the like is not registered in the safety setting information storage unit 14 or the safety setting information temporary storage unit 25, the table name, column name,
- the security setting means 26 may prompt the user to input information such as whether or not the table name is encrypted, whether or not the column name is encrypted, and the sensitivity of the column data. Good.
- the user changes the safety setting for a table or the like created in the database 11, the setting is changed via the safety setting means 26.
- the GUI Graphic User Interface
- the GUI Graphic User Interface
- the GUI Graphic User Interface
- the GUI Graphic User Interface
- a table list display command or the like is selected and executed as an operation menu, and the entire table name is displayed.
- a list of the parts is displayed on the screen (when the table name is encrypted, the table is displayed as a plaintext table name by referring to the decrypted table name in the security setting information temporary storage unit 25), and the user selects the corresponding table.
- the setting information may be updated by selecting and selecting a setting operation.
- FIG. 12 is a flowchart for explaining detailed processing of the setting update processing in step 4 of FIG.
- a process for setting the encryption of metadata (table name, column name) to “present” will be described.
- the encryption of the corresponding metadata (table name, column name) is set to “none” in the safety setting information storage unit 14 and the safety setting information temporary storage unit 25.
- Step 0 The safety setting means 26 receives the metadata (table name, column name) to be set and the set content (encrypted “Yes”) from the input / output device 27.
- Step 1 Create ciphertext for the target metadata:
- the application response means 22 that has received the setting update request from the security setting means 26 uses the key utilization means 23 to create ciphertext of the metadata (table name and / or column name) to be set.
- the application response unit 22 refers to the safety setting information temporary storage unit 25 or the safety setting information storage unit 14 to acquire encryption algorithm information corresponding to the corresponding metadata, and the encryption operation unit 231 uses the metadata (table Name and / or column name) is encrypted, and ciphertext metadata is created.
- Step 2 Change database plaintext metadata to ciphertext metadata: Upon receiving the setting change instruction from the safety setting unit 26, the application response unit 22 sends the setting target metadata in the database 11 to the ciphertext metadata created in step 1 above, to the database control unit 12. Upon requesting replacement, the database control unit 12 replaces the plaintext metadata in the database 11 with ciphertext metadata.
- the present invention is not particularly limited by implementation specific, when the table name is changed to ciphertext, for example, in the application response means 22, for example, the SQL command ALTER TABLE before change table RENAME TO after change table name In FIG. 4, an SQL sentence with the changed table name as the ciphertext table name may be automatically generated and issued to the database operation unit 121 (FIG. 4) of the data control means 12.
- the SQL command ALTER TABLE table name RENAME COLUMN column name before change TO column name after change the SQL statement with the column name after change as ciphertext column name is used as the application response means. 22 may be automatically generated and issued to the database operation unit 121 (FIG. 4).
- Step 3 Change safety setting information: Similarly, the application response unit 22 sends the plaintext table name or column name to be set to the ciphertext table name or ciphertext column to the database control unit 12 in the safety setting information storage unit 14 (see FIG. 6). And the security setting information operation unit 124 of the database control means 12 requests the safety setting information to be changed to “present” in the column of “table name encryption presence / absence or column name encryption presence / absence”. The safety setting information in the storage unit 14 is changed. Further, the corresponding table name and column name in the ciphertext table information table (FIG. 7B) are replaced with the ciphertext table name and ciphertext column name.
- Step 4 Change safety setting information temporary storage:
- the safety setting information operation unit 225 of the application response unit 22 converts the table name or column name of the original plaintext to be set into a post-decryption table name or decryption in the safety setting information temporary storage unit 25 (see FIG. 9). Write in the column name column afterwards, replace the table name or column name with the ciphertext table name or ciphertext column name, and change the table name table presence / absence encryption column presence / absence column presence / absence column to “present”.
- Step 5 The application response unit 22 returns a completion of the setting change (setting update process) to the safety setting unit 26.
- the safety setting means 26 displays completion on the input / output device 27.
- the changed content of the safety setting information temporary storage unit 25 may be displayed on the screen and the completion of the change may be presented to the user.
- the table name and the column name may be changed to “Yes” at the same time, or the table name and the column name may be changed individually. Alternatively, a plurality of tables or a plurality of columns may be collectively changed to encryption “present”. In this case, the processes in steps 1 to 4 are executed for each table / column.
- FIG. 13 is a flowchart illustrating another example of the setting update process 4 in FIG.
- FIG. 13 shows a processing procedure for changing the encryption of metadata (table name, column name) from “present” to “none”.
- encryption of metadata table name, column name
- Step 0 The safety setting means 26 receives the metadata (table name, column name) to be set and the setting content (encryption “none”) from the input / output device 27.
- Step 1 Get the target metadata (plaintext, ciphertext) pairs:
- the application response unit 22 Upon receiving the setting change instruction from the safety setting unit 26, the application response unit 22 refers to the safety setting information temporary storage unit 25 (see FIG. 9) and sets the metadata (table name or column name) to be set.
- the ciphertext metadata in the database 11 is acquired, and the corresponding plaintext table name or plaintext column name is acquired from the column of the decrypted table name or the column name after decryption.
- Step 2 Change the ciphertext metadata in database 11 to plaintext metadata:
- the application response means 22 requests the database control means 12 to replace the ciphertext metadata (table name or column name) with the corresponding plaintext metadata, and changes the table name / column name in the database 11 to the plaintext. Replace with table name / column name.
- the database control means 12 uses, for example, the SQL command ALTER TABLE pre-change table name RENAME TO the post-change table name, the pre-change table name as cipher text, and the post-change table name as the plain text table name. You may make it issue to the operation part 121 (FIG. 4).
- the column name before change is ciphertext
- the column name after change is plaintext. It may be issued to 121 (FIG. 4). Further, the corresponding table name and column name of the table name in the ciphertext table information table (FIG. 7B) are replaced with the plaintext table name and the plaintext column name.
- Step 3 Change safety setting information: For the database control unit 12, also in the security setting information storage unit 14 (see FIG. 6), the ciphertext table name or ciphertext column name column is replaced with a plaintext table name or plaintext column name. Further, a request is made to change the table name encryption presence / absence column column encryption presence / absence column to “None”, and the safety setting information operation unit 124 of the database control unit 12 changes the safety setting information.
- Step 4 Change safety setting information temporary storage:
- the safety setting information operation unit 225 of the application response means 22 converts the ciphertext table name or ciphertext column name into the corresponding plaintext table name or plaintext column name in the safety setting information temporary storage unit 25 (see FIG. 9). Replace and change the column of the table name after decryption or the column name after decryption to “NULL”, and change the column of presence / absence of table name encryption or column name encryption to “None”.
- Step 5 The application response means 22 returns a change completion message to the safety setting means 26.
- the table name and the column name may be changed to “None” at the same time, or the table name and the column name may be changed individually. Alternatively, a plurality of tables or a plurality of columns may be collectively changed to “no” encryption. In this case, the processes in steps 1 to 4 are executed for each table / column.
- the operation for setting the confidentiality of data is performed via the safety setting means 26.
- the safety setting unit 26 inquires of the application response unit 22 about the current contents of the safety setting information storage unit 14 and the contents of the database 11.
- the security setting means 26 does not inquire all information at a time, but inquires partly and stepwise, such as a list of all table names, followed by a column name and a list of safety settings of a table. You may make it perform.
- the application response means 22 reads the contents of the security setting information storage unit 14, and when the metadata is encrypted, the key use means 23 decrypts the encrypted metadata and then sets the safety. Send to means 26.
- the processing efficiency can be improved by using the information stored in the safety setting information temporary storage unit 25.
- the application response unit 22 reads the contents of the database 11 via the database control unit 12 and decrypts the metadata (table name, column name) and column data by the key use unit 23 when the column data is encrypted. Above, it sends to the safety setting means 26, and the safety setting means 26 displays safety setting information and database information.
- the database user can specify from the input / output device 27 the designation of the presence / absence of encryption for the metadata and the designation of the confidentiality of the column data (for example, three levels of “low”, “medium”, and “high”). Input to the sex setting means 26.
- the safety setting unit 26 transmits the input confidentiality information to the application response unit 22.
- the application response unit 22 reflects the confidentiality information transmitted from the safety setting unit 26 in the safety setting information temporary storage unit 25, and further stores the database in the safety setting information storage unit 14 via the database control unit 12. 11 contents are changed.
- FIG. 14 is a flowchart for explaining a processing procedure for setting a confidentiality to plaintext column data stored in the database 11 (encrypting plaintext column data).
- Step 0. The application response means 22 receives the table name and column name to be set and the setting contents (confidentiality) from the safety setting means 26.
- Step 1 Select cryptographic algorithm:
- the application response means 22 refers to the cryptographic protocol information storage unit 13 (see FIG. 5), acquires a list of cryptographic algorithm identifiers corresponding to the input confidentiality (high, medium, low), and selects one from the list. Select. When one is selected from the list of cryptographic algorithm identifiers corresponding to the same confidentiality, the one that is known to have high processing efficiency is selected.
- the application response means 22 may select the encryption algorithm identifier automatically, or a list of encryption algorithm identifiers may be displayed on the screen via the security setting means 26 so that the user who performs the confidentiality change operation selects it. May be.
- Step 2 Change safety setting information: The application response means 22 sets the table of the setting target table name and column name column data sensitivity in the safety setting information operation section 124 of the database control means 12 in the safety setting information storage section 14 (see FIG. 6), A request is made to change the entered confidentiality, and the column data encryption algorithm identifier field is requested to be changed to the one selected in step 1, and the safety setting information in the safety setting information storage unit 14 is updated.
- the application response unit 22 inputs from the security setting unit 26 from the decrypted table name or the decrypted column name of the security setting information temporary storage unit 25.
- a name that matches the plaintext table name or plaintext column name that has been set is detected, the corresponding ciphertext table name or ciphertext column name is obtained, and the security setting information storage unit 14 (see FIG. 6) Specify the sentence table name and ciphertext column name.
- Step 3 Change safety setting information temporary storage;
- the safety setting information operation unit 225 of the application response unit 22 sets the column name sensitivity column of the setting target table name and column name from Null to the security sensitivity input to the safety setting information temporary storage unit 25.
- the column data encryption algorithm identifier column is changed to the one selected in step 1.
- Step 4 Get the target column data:
- the application response unit 22 requests the database control unit 12 to acquire the column data of the setting target table name and column name, and acquires the column data.
- the column data is stored in the database 11 as a ciphertext table (FIG. 7). If there is no column data for the corresponding column in the database, control is passed to step 9.
- Step 5 Column data encryption, serial number, plaintext, and ciphertext creation:
- the application response means 22 sends the acquired column data (plaintext column data) and the encryption algorithm identifier selected in step 1 to the key utilization means 23 and requests encryption of the column data.
- the application response means 22 assigns a serial number to the obtained ciphertext column data, [Serial number, plaintext column data, ciphertext column data] Create a list of pairs.
- Step 6 Creating a ciphertext table:
- the application response means 22 creates [serial number, ciphertext column data] created in step 5
- the database control means 12 is requested to create a table for storing a list of pairs, and the ciphertext table is stored in the database 11 (the ciphertext table name is ciphertext_cryptographic algorithm identifier as shown in FIG. 7B).
- Step 7 Updating the ciphertext table information table:
- the application response unit 22 stores the ciphertext table information table (see FIG. 7B). [Table name to be set, column name to be set, encryption algorithm identifier selected in Step 1, and name of the created ciphertext table]
- the database control unit 12 is requested to add a set of
- the database control unit 12 stores the ciphertext table information table (see FIG. 7B). [Table name, column name, encryption algorithm identifier, ciphertext table name] Add a pair.
- Step 8 Replacing plain text column data:
- the application response unit 22 creates plain text column data of the database operation target column (for example, “work location” data of the column name in FIG. 7A) for the database control unit 12 in step 5 [serial number, Plain text column data, cipher text column data] A request is made to replace with a serial number associated with each other (see FIG. 7C).
- Step 9 Reply completed change:
- the application response unit 22 returns a change completion message to the safety setting unit 26.
- the procedure shown in FIG. 14 is not limited to the case where plain text column data already stored in the database 11 is encrypted with an encryption algorithm corresponding to confidentiality and stored in the database 11.
- plain text column data is stored in the database 11 by an operation command (for example, the security setting means 26 sets confidentiality for newly registered column data, but the encryption algorithm is selected, etc.) It is also applicable to cases where there is no such as).
- FIG. 14 is a processing procedure for setting confidentiality to plain text column data stored in the database 11 when the database control means 12 has the configuration of FIG. 3 or FIG.
- FIG. 28 is a flowchart for explaining a processing procedure for setting confidentiality to plain text column data stored in the database 11 when the database control means 12 has the configuration of FIG. 26 or FIG.
- steps 1 to 9 are the same as steps 1 to 9 in FIG.
- the encryption algorithm selected in step 1 is a public key encryption such as HE1
- the process branches to step 10 after step 3.
- Step 10 If the encryption algorithm selected in Step 1 is public key cryptography such as HE1, the application response means 22 obtains public key information via the key utilization means 23 and responds to the obtained public key information. Along with the encryption algorithm identifier, it is sent to the database control means 12 to request encryption of plain text column data.
- public key cryptography such as HE1
- Step 11 The database control means 12 acquires the plain text column data to be set from the database 11. If there is no corresponding column data, the process branches to step 16.
- Step 12 The database control unit 12 encrypts the column data at the cryptographic operation unit 126 using the encryption algorithm identifier and public key information received from the application response unit 22.
- a serial number is assigned to the column data of the obtained ciphertext, [Serial number, plaintext column data, ciphertext column data] Create a list of pairs.
- Step 13 The database control means 12 [Serial number, ciphertext column data] A ciphertext table (see FIGS. 7D to 7F) that stores a list of pairs is created.
- Step 14 The database control means 12 adds the ciphertext table information table (see FIG. 7B) to [Table name to be set, column name to be set, encryption algorithm identifier selected in Step 1, name of ciphertext table created in Step 12] Add a pair.
- Step 15 The database control means 12 creates the plain text column data of the operation target column in Step 12. [Serial number, plaintext column data, ciphertext column data] And is stored in the database 11.
- Step 16 The database control means 12 returns to the application response means 22 that the plaintext column data has been encrypted.
- the application response means 22 returns a change completion message to the safety setting means 26 (step 9).
- the application response means 22 refers to the safety setting information storage unit 14, acquires the column data confidentiality information set for the specified column, compares it with the newly specified confidentiality, and has the same confidentiality. In particular, no processing is performed. If the newly specified sensitivity is lower than the column data sensitivity set in the safety setting information storage unit 14, the column data sensitivity column of the safety setting information is newly specified. Change to density.
- FIG. 15 is a diagram for explaining the flow of processing in the application response means 22 for reflecting the setting object and the setting contents input from the safety setting means 26.
- the process which changes the set confidentiality (changes it to a higher value) is demonstrated.
- Step 0 The application response means 22 receives from the safety setting means 26 the table name and column name to be set, and the setting contents (change in sensitivity).
- Step 1 Get a list of configured cryptographic algorithm identifiers:
- the application response means 22 encrypts the column data specified by the setting target table name and the column name input from the safety setting information storage unit 14 (see FIG. 6) of the database system 10. Get a list of algorithm identifiers.
- the application response unit 22 determines the security setting unit 26 from the decrypted table name or the decrypted column name in the security setting information temporary storage unit 25. A name matching the plaintext table name or plaintext column name input from is detected, the corresponding ciphertext table name or ciphertext column name is obtained, and the setting target is set in the security setting information storage unit 14 (see FIG. 6). Specify the ciphertext table name and ciphertext column name.
- Step 2 Get a list of cryptographic algorithm identifiers corresponding to a specified sensitivity:
- the application response means 22 refers to the encryption protocol information storage unit 13 (FIG. 5) of the database system 10 and acquires a list of encryption algorithm identifiers corresponding to the newly input confidentiality.
- Step 3 Comparison of cryptographic algorithm identifiers: The application response means 22 compares and collates the list of encryption algorithm identifiers obtained in step 1 with the list of encryption algorithm identifiers corresponding to the new confidentiality obtained in step 2.
- Step 4 Create a new ciphertext table:
- the application response means 22 uses the common encryption algorithm in the list of encryption algorithm identifiers obtained in Step 1 and the list of encryption algorithm identifiers corresponding to the new confidentiality obtained in Step 2. If the algorithm identifier does not exist, a new ciphertext table is created by the following procedure. If there is a common cryptographic algorithm identifier, there is data that has been encrypted with the same sensitive cryptographic algorithm, so the following confidentiality change process (re-creates the data with the cryptographic algorithm corresponding to the new confidential information). The ciphertext table is encrypted and the ciphertext table information is updated).
- Step 5 Get all ciphertext from existing ciphertext table:
- the application response means 22 selects one encryption algorithm identifier from the list (if only one is included, the one encryption algorithm)
- the database control unit 12 is requested to acquire the contents of the ciphertext table corresponding to the selected encryption algorithm identifier from the database 11.
- the database control unit 12 refers to the ciphertext table information table (see FIG. 7B), identifies the ciphertext table name corresponding to the selected cipher algorithm identifier, and specifies the contents (ID and ciphertext) of the identified ciphertext table. (Stored in a sentence pair format) and sent to the application response means 22.
- Step 6 Decrypt ciphertext: The application response means 22 transmits the encryption algorithm identifier selected in step 5 and the acquired ciphertext to the key utilization means 23 and requests decryption into plaintext.
- Step 7 Create ciphertext with new identifier encryption algorithm: When there are a plurality of cryptographic algorithm identifiers included only in the list of cryptographic algorithm identifiers corresponding to the confidentiality obtained in step 2 (not included in the cryptographic algorithm identifier list acquired in step 1), the application response unit 22 One encryption algorithm identifier is selected from them (if only one is included, the one encryption algorithm identifier is selected), and is transmitted to the key utilization means 23 together with the plaintext obtained in step 6 to create a new Requests encryption of the identifier's encryption algorithm. And new [serial number, plaintext, ciphertext] Create a list of pairs.
- Step 8 Creating a ciphertext table:
- the application response means 22 sends the database control means 12 [Serial number, ciphertext] A request is made to create a ciphertext table that stores a list of pairs, and a ciphertext table (see the storage format in FIGS. 7D to 7F) is created.
- Step 9 Updating the ciphertext table information table:
- the application response unit 22 adds a new table to the encryption table information table (see FIG. 7B) with respect to the database control unit 12. [Target table name, target column name, new encryption algorithm identifier, ciphertext table name created in step 8] Ask to add a pair.
- Step 10 Deleting cryptographic tables that do not meet the specified sensitivity: For the encryption algorithm identifier included only in Step 1, refer to the ciphertext table information table (see FIG. 7B) to identify the corresponding ciphertext table name, and from the database 11, the corresponding ciphertext table, The database control unit 12 is requested to delete the corresponding part of the ciphertext table information table (the row (entry) including the table name of the ciphertext table to be deleted). With this operation, the encrypted column data encrypted with a cryptographic algorithm having a security level lower than the newly specified security level is deleted from the database 11 for the column data for which the security level change is specified.
- FIG. 16 is a flowchart for explaining processing for adding data to a table already created in the database 11 in the application response means 22.
- Step 1 Receive data addition instructions:
- the database operation command input from the database utilization application 21 is, for example, an SQL INSERT statement (INSERT INTO (column name 1, column name 2 %) VALUES (value 1, value 2 7) It is recognized that this is a data addition instruction.
- Step 1 Check for metadata encryption:
- the application response means 22 refers to the safety setting information storage unit 14 and the safety setting information temporary storage unit 25 of the database system 10 and confirms whether the table name and column name to be added are encrypted in the database 11. To do.
- Step 2 Replacing plaintext metadata with ciphertext:
- the application response unit 22 stores the decrypted table name and decrypted column name fields in the safety setting information temporary storage unit 25.
- the plaintext table name and ciphertext table name and column name corresponding to the column name are obtained, and the plaintext table name and plaintext column name included in the data addition instruction such as the INSERT statement are obtained. Replace with the sentence table name and ciphertext column name.
- the application response means 22 refers to the safety setting information storage unit 14 or the safety setting information temporary storage unit 25, and acquires the column data sensitivity and the encryption algorithm identifier for the column to be added.
- Step 3 Check the set density: In the safety setting information storage unit 14 or the safety setting information temporary storage unit 25, the application response unit 22 is configured when the column data sensitivity of the table name and the column name is Null (when the sensitivity is not set). ), And the control is transferred to step 8. On the other hand, when the column data sensitivity is set, the application response means 22 executes the next step 4.
- Step 4 Creating encrypted data according to the set density: When the column data sensitivity and the encryption algorithm identifier are set, the application response unit 22 sends the plaintext data to be added and the encryption algorithm identifier to the key use unit 23 for all the set encryption algorithm identifiers. Plain text data is encrypted with the set encryption algorithm [encryption algorithm identifier, encrypted data] Create a list of pairs.
- Step 5 Data addition request including encryption algorithm identifier and encryption data:
- Application response means 22 Table name to be added, column name, [Encryption algorithm identifier, encrypted data] obtained in step 4 Is sent to the database control means 12 to request addition to the database 11.
- Step 6 Add cipher data to ciphertext table:
- the database control unit 12 acquires the maximum value of the serial number stored in the column to be added, and sets the maximum value of the serial number + 1 as the start number IDx of the ID for addition.
- the database control means 12 receives all the [encryption algorithm identifier, encrypted data] obtained in step 4. , The ciphertext table name corresponding to the encryption algorithm identifier specified for the table to be added and the column is acquired with reference to the ciphertext table information table (FIG. 7B).
- the database control means 12 adds the obtained ciphertext table to [Additional ID, encrypted data] Add a pair.
- the ciphertext table stores pair information of ID and encrypted data. Therefore, [Additional ID, ciphertext data] Is added to the end of the ciphertext table.
- the ID for addition is incremented in order from the start number IDx to IDx + 1, IDx + 2,.
- Step 7 Add additional ID to target table column: The ID for addition obtained in step 6 is added as column data to the column of the table to be added. For example, an additional ID is added to the end of the column in the table (after encryption) in FIG. When there are N pieces of data to be added, IDx, IDx + 1, IDx + 2,... IDx + N-1 is added to the end of the column of the table (after encryption) in FIG. 7C, and the maximum value of ID is IDx + N-1 Updated to
- steps 4 to 7 are data addition processing when sensitivity is set.
- step 3 if the sensitivity is not set, the following processing is performed.
- Step 8 Request to add data to the target table:
- the application response means 22 sends an instruction to add data after the replacement of the table name and column name to be added obtained in step 2 to the ciphertext is sent to the database control means 12, and Request to add data.
- Step 9 Adding data to the target table:
- the database control unit 12 adds data to the database 11 according to the data addition instruction transmitted from the application response unit 22.
- the processing procedure for setting the presence / absence of encryption and the setting of confidentiality, and the processing procedure for adding column data as an example of database operation refer to the flowcharts, respectively. explained. In the following, some typical processes of the system of the present embodiment will be described (however, since there is basically no branching in the process, the flowchart is not referred to).
- the application response means 22 reads the contents of the safety setting information storage unit 14 of the database system 10 via the database control means 12 and stores them in the safety setting information temporary storage part 25.
- the application response unit 22 decrypts the encrypted metadata via the key use unit 23 and temporarily sets the security setting information.
- the data is stored in the decrypted table name and decrypted column name fields of the storage unit 25. Further, the contents of the encryption protocol information storage unit 13 of the database system 10 may also be read to the user system 20 side and stored in the storage unit during the initial operation of the application response means 22.
- the application response means 22 notifies the safety setting means 26 when a database operation command for adding a table is input from the database use application 21.
- the security setting means 26 displays the contents of the table addition command on the screen, and table safety setting information (table name, presence / absence of encryption of column name, sensitivity of column data) added to the database user. ).
- the safety setting unit 26 transmits the safety setting information input from the database user to the application response unit 22.
- the application response unit 22 encrypts the table name and the column name according to the safety setting information transmitted from the safety setting unit 26 and then transmits a database operation command for adding a table to the database control unit 12. Create a table.
- the application response unit 22 transmits the safety setting information to the database control unit 12 and stores it in the safety setting information storage unit 14.
- the application response unit 22 stores the same safety setting information as the safety setting information stored in the safety setting information storage unit 14 in the safety setting information temporary storage unit 25 in the safety setting information temporary storage unit 25.
- the table name and column name are encrypted, the table name and column name before encryption are stored in the decrypted table name and column name.
- the application response unit 22 searches the safety setting information temporary storage unit 25 and sets whether or not the table name or column name to be changed is encrypted. Confirm whether or not is “Yes”.
- the encryption setting is “None”, it is sent as it is to the database control means 12 as a normal database operation command, and the database operation is executed. Further, the table name and column name stored in the safety setting information storage unit 14 and the safety setting information temporary storage unit 25 are also changed. If the encryption setting is “Yes”, the following processing is performed.
- Step 1 The application response means 22 encrypts the specified plain text table name and column name after change by the key use means 23, and regarding the changed table name and column name, [Cleartext table name and column name, ciphertext table name and column name] Create a pair.
- Step 2 The application response means 22 refers to the safety setting information temporary storage unit 25, searches the table name and column name of the ciphertext corresponding to the designated plaintext table name and column name to be changed, The table name and column name of the ciphertext registered in the database 11 are specified.
- Step 3 The application response means 22 makes the table name and column name of the ciphertext currently registered in the database 11 identified in Step 2 to the database control means 12 after the change made in Step 1 A database operation command is transmitted to change the table name and column name of the database 11 so that the table name and column name of the ciphertext are replaced.
- Step 4 The application response means 22 uses the ciphertext table name and column name specified in Step 2 recorded in the safety setting information storage unit 14 and the safety setting information temporary storage unit 25 in Step 1. Replace with the created ciphertext table name and column name. Also, the corresponding plaintext table name and column name (decrypted table name and column name) recorded in the safety setting information temporary storage unit 25 are changed to the designated plaintext table name and column name after change. replace.
- adding data to an existing table> The addition of data to the columns of the existing table stored in the database 11 has been described with reference to FIG.
- the additional data is encrypted, and as the data for the specified column of the specified table, a numerical value (addition ID) obtained by adding 1 to the current table row number (maximum serial number) is added, and the ciphertext table information table ( With reference to FIG. 7 (B)), an additional ID is added to the ciphertext table of the encryption algorithm corresponding to the additional data (if there are a plurality of encryption algorithms, the plurality of ciphertext tables respectively corresponding to the plurality of encryption algorithms). And a ciphertext pair.
- Step 1 The application response means 22 refers to the safety setting information storage unit 14 (or the safety setting information temporary storage unit 25) and confirms whether the table name and column name to be changed are encrypted. .
- Step 2 When the table name and the column name to be changed are encrypted, the application response means 22 refers to the safety setting information temporary storage unit 25 and the table name of the ciphertext on the database 11 The column name is acquired, and the corresponding (plaintext) table name and column name corresponding to the database operation command input to the application response means 22 are replaced with the acquired ciphertext table name and column name.
- Step 3 The application response means 22 refers to the safety setting information storage unit 14 (or the safety setting information temporary storage unit 25), and confirms whether or not sensitivity is set in the column data to be changed.
- Step 4 When the column data sensitivity of the corresponding table name and column name in the safety setting information storage unit 14 (or safety setting information temporary storage unit 25) is Null (when the sensitivity is not set), The database operation command in which only the table name and column name are replaced is transmitted to the database control means 12 to execute the change.
- Step 5 The application response means 22 refers to the safety setting information storage unit 14 (or the safety setting information temporary storage unit 25) and acquires all the encryption algorithm identifiers of the target column.
- Step 6 The application response means 22 encrypts the plaintext data to be changed with the encryption algorithm of all the acquired identifiers.
- Step 7 The application response unit 22 specifies the table name and column name to be changed, the row to be changed, all the created items, [Cryptographic algorithm identifier, ciphertext] Send a pair of.
- Step 8 The database control means 12 refers to the table / column to be changed and acquires the serial number stored in the row to be changed.
- Step 9 The database control unit 12 refers to the ciphertext table information, identifies the ciphertext table for each cipher algorithm, and converts the ciphertext in the row corresponding to the serial number obtained in step 4 to the ciphertext received in step 7. rewrite.
- Step 1 The application response means 22 refers to the safety setting information storage unit 14 (or the safety setting information temporary storage unit 25) and confirms whether or not the table name to be operated is encrypted.
- Step 2 If the table name to be operated is not encrypted, the application response means 22 transmits it as it is to the database control means 12 as a normal database operation command.
- Step 3 When the table name to be operated is encrypted, the application response means 22 refers to the safety setting information temporary storage unit 25, acquires the table name of the ciphertext on the database 11, and operates. The target table name is replaced with the table name of the acquired ciphertext and transmitted to the database control means 12.
- Step 4 The database control means 12 deletes data in accordance with the database operation command from the application response means 22. At this time, it is checked whether or not there is a column for which data is encrypted in the table to be deleted. If there is a column for which data is encrypted, the data in the corresponding ciphertext table is also displayed. delete.
- Step 1 The application response means 22 refers to the safety setting information storage unit 14 (or the safety setting information temporary storage unit 25) and confirms whether the table name and column name to be operated are encrypted.
- Step 2 When the table name or column name to be operated is encrypted, the application response means 22 refers to the safety setting information temporary storage unit 25 and the table name or column name of the ciphertext on the database 11 And the plaintext table name and column name corresponding to the database operation command input to the application response means 22 are replaced with the acquired ciphertext table name and column name.
- Step 3 The application response means 22 refers to the safety setting information storage unit 14 or the safety setting information temporary storage unit 25 and confirms whether or not the column data sensitivity is set in the operation target column data. .
- Step 4 The application response means 22 transmits a database operation command (search or calculation) in which the table name or column name is replaced to the database control means 12.
- Step 5 The database control means 12 executes the database operation (search and calculation) received from the application response means 22 and returns the execution result to the application response means 22.
- Step 6 When the table name or column name included in the database operation command (search or calculation) is replaced with the ciphertext, the database control means 12 determines the table name or column name included in the execution result of the database operation. The data is replaced with the corresponding plain text table name and column name, and sent to the application response means 22.
- Step 7 The application response means 22 refers to the safety setting information storage unit 14 and acquires the identifier of the encryption algorithm used for encryption of the operation target column.
- Step 8 The application response means 22 refers to the encryption protocol information storage unit 13, [Processing content, confidentiality set for the operation target column, and encryption algorithm identifier used for encryption of the operation target column]
- the cryptographic protocol identifier (see FIG. 5) corresponding to the triplet (triplet) is acquired.
- Step 9 In the cryptographic protocol process execution unit 222 of the application response means 22, [Cryptographic protocol identifier, operation target column, processing contents] Enter.
- Step 10 The cryptographic protocol processing execution unit 222 of the application response unit 22 communicates with the database control unit 12 according to the input cryptographic protocol identifier, executes the database operation, and obtains the execution result. Note that the specific content of the cryptographic protocol processing varies depending on the cryptographic protocol.
- Step 11 If the database control means 12 has replaced the table name and column name included in the database operation command, the table name and column name of the ciphertext included in the obtained execution result are replaced with the plaintext table name. The result is sent to the application after replacing it with the column name again.
- Step 1 Cryptographic algorithm selection: The application response means 22 selects an encryption algorithm corresponding to the confidentiality designated by the user by the security setting means 26. As shown in FIG. 17, the encryption protocol information storage unit 13 is referred to, and a list of encryption algorithm identifiers (“SE1”, “AES”, “HE1”) corresponding to the confidentiality “medium” is acquired. One algorithm is selected from the list of cryptographic algorithm identifiers (“SE1”, “AES”, “HE1”). Here, “AES” is selected with emphasis on the efficiency of ciphertext creation.
- Step 2 Change of safety setting information storage: As shown in FIG. 18, the safety setting information operation unit 124 of the database system 10 stores information on the table name “employee table” and the column name “work location” in the safety setting information storage unit 14. , Change the “Column Data Encryption Presence” field from “No” to “Yes” Change the “Column Data Sensitivity” field from “NULL” to “Medium” In the “Column Data Encryption Algorithm Identifier” field, select “NULL” to “AES”. Change to
- Step 3 Change of the safety setting information temporary storage unit 25:
- the safety setting information operation unit 225 of the application response unit 22 executes the safety setting information for the row storing the table name “employee table” and the column name “work location” in the safety setting information temporary storage unit 25. It changes similarly to the memory
- Step 4 Get target column data:
- the table “employee table” is shown in FIG.
- the database control unit 12 acquires a list of data of the column “work location” from the table “employee table” and transmits it to the application response unit 22.
- the primary key column that uniquely identifies the column of the table “employee table” is also acquired.
- “employee number” is the primary key.
- Step 5 Encryption of the acquired column data:
- the application response means 22 encrypts the data in the column “work location” by the key use means 23, associates the ciphertext with the original plaintext and the employee number, and, as shown in FIG. Make a list with 2, 3, .... This list is held in the storage unit in the application response means 22.
- Step 6 Creating a ciphertext table: Of the list created in step 5 (FIG. 21A), the ciphertext (ciphertext “0x3d8...” Of plaintext “head office”, ciphertext “0x962 ⁇ .. ”) And a list of serial numbers (1, 2,%) Are sent, and a ciphertext table is created and stored. As shown in FIG. 21B, the ciphertext table name is “ciphertext_AES_1”. The ciphertext table is composed of serial number and ciphertext pairs.
- Step 7 Updating the ciphertext table information table: As shown in FIG. 21C, the ciphertext table information table stores the table name “employee table”, the column name “work location”, the cipher algorithm “AES”, and the ciphertext table name “ciphertext_AES_1”. .
- Step 8 Replacing plain text column data:
- the list of combinations of employee numbers and serial numbers created in step 5 (FIG. 22A) is sent to the database control means 12, and as shown in FIG. Replace the value of “Earth” with serial numbers (1, 2,).
- the list created in step 5 (FIG. 22A) is deleted.
- the ciphertext table and ciphertext table information table in FIGS. 22C and 22D are the same as the ciphertext table and ciphertext table information table in FIGS.
- FIG. 23 is a diagram illustrating an example of the safety setting information temporary storage unit 25 referred to in this example. A process for obtaining an average value when data of the column name “overtime hours” of the table name “working time management table” stored in the database 11 is encrypted will be described.
- the column data of the column “working time” and the column data of the first column “overtime working time” both have the column data sensitivity set to “medium”, and the identifier “ It is encrypted with the AES encryption algorithm. Further, the column data of the second column “overtime hours” is encrypted with the encryption algorithm of the identifier “HE1”.
- the security setting information storage unit 14 on the database system 10 side is obtained by removing “decoded table name” and “decoded column name” from the security setting information temporary storage unit 25 of FIG.
- the main body of the table name “working time management table” has the contents as shown in FIG.
- the serial numbers (ID) 1, 2, 3,... Of “working hours”, “overtime hours” are serial numbers (ID) 1, 2, 3,... Stored in pairs in the ciphertext table. It is.
- the cryptographic protocol information storage unit 13 is assumed to be as shown in FIG.
- the encryption algorithm identifier OPE1 represents one of the Order Preserving Symmetric Encryption algorithm (common key method).
- HE1 indicates one of homomorphic encryption (HomomorphicmorphEncryption), and SE1 indicates one of Searchable Encryption.
- the application response means 22 uses metadata (table name, column name). ) Is encrypted.
- the application response unit 22 refers to the safety setting information temporary storage unit 25 in FIG. 23 and acquires information corresponding to the column name “overtime hours” of the table name “working time management table”. Refer to the “Table name encryption presence / absence” and “Column name encryption presence / absence” fields, and confirm that encryption is set to “None” for both. In this case, the application response means 22 does not perform metadata replacement processing.
- the application response means 22 refers to the column “column data sensitivity” of the column name “overtime hours” of the table name “working time management table” in the safety setting information temporary storage unit 25 of FIG. Check that the data sensitivity is set to “Medium”. Therefore, processing with cryptographic protocol processing is performed.
- the application response means 22 confirms the column of “column data encryption algorithm identifier” in the table name “working time management table” of the safety setting information temporary storage unit 25 in FIG. 23 and checks the encryption algorithm identifier used for encryption. Acquire “AES” and “HE1”.
- the application response means 22 refers to the encryption protocol information storage unit 13 (see FIG. 25), and sets the encryption protocol identifier corresponding to the processing content “average” with the sensitivity “medium” to the encryption algorithms “AES” and “HE1”. Search for.
- the application response means 22 obtains the encryption protocol identifier “HE1_AVG_M” for the encryption algorithm “HE1” as a result of the search.
- Cryptographic protocol processing execution unit 222 of the application response means 22 For the cryptographic protocol processing execution unit 222 of the application response means 22, Cryptographic protocol identifier: “HE1_AVG_M”, Table name: “Working time management table”, Column name: “Overtime hours”, Cryptographic algorithm: “HE1”, Processing content: “Average” Enter.
- the cryptographic protocol processing execution unit 222 performs cryptographic protocol processing by exchanging with the cryptographic protocol processing execution unit 122 of the database control unit 12 in accordance with the input cryptographic protocol identifier.
- the specific operation varies depending on the cryptographic protocol and its implementation (although it is not particularly limited, an example of the operation is given below).
- the execution result in the cryptographic protocol processing execution unit 222 is returned to the database application 21.
- the encryption protocol processing execution unit 222 on the user system 20 side has four table names “operation time management table”, column name “overtime hours”, encryption algorithm identifier “HE1”, and encryption protocol identifier “HE1_AVG_M”. The data is sent to the encryption protocol processing execution unit 122 of the database control unit 12.
- the cryptographic protocol processing execution unit 122 operates as follows according to the processing procedure specified by the received cryptographic protocol identifier “HE1_AVG_M”.
- the encryption protocol processing execution unit 122 refers to the ciphertext table information table (FIG. 24B), and encrypts data encrypted with the encryption algorithm “HE1” for the column “working time” of the table “working time management table”.
- the table name “ciphertext_HE1_1” is stored.
- the cryptographic protocol processing execution unit 122 acquires all the ciphertext data stored in the column “ciphertext” of “ciphertext_HE1_1” and the number of data.
- the cryptographic protocol processing execution unit 122 calculates the ciphertext of the sum of plaintexts without decrypting the obtained ciphertext data.
- the cryptographic protocol processing execution unit 122 of the database control unit 12 executes the cryptographic protocol processing on the user system 20 side via the processing / communication control unit 125 (see FIG. 3), with the obtained total ciphertext and the number of data. This is sent to the unit 222 (see FIG. 8).
- the above-described RSA cipher and Elgamal cipher are multiplicative homomorphisms. Therefore, an encryption algorithm is set corresponding to the arithmetic operation (processing content identifier).
- a homomorphic encryption algorithm HE1 in this case, HE1 is a Paillier encryption or the like
- HE1 is set for the “average” processing content operator.
- the encryption protocol processing execution unit 222 on the user system 20 side sends the ciphertext of the sum received from the database control unit 12 and the cipher algorithm identifier “HE1” to the key use unit 23, decrypts the ciphertext of the sum, Get the plaintext of. Then, the cryptographic protocol processing execution unit 222 obtains an average value (plain text) by dividing the sum (plain text) by the number of data (plain text). The obtained average value is returned to the database use application 21 that issued the database operation command (average value).
- the cryptographic protocol processing execution unit 122 of the database control unit 12 returns the result (cipher text) obtained by the operation using the ciphertext to the cryptographic protocol processing execution unit 222 of the application response unit 22. Then, the application response means 22 decrypts the ciphertext of the processing result into plaintext by the key use means 23, performs the remaining operations of the complex arithmetic operation in plaintext, and returns the operation result to the database use application 21. With this configuration, the processing is made efficient.
- the processing is not performed with the ciphertext.
- the operation target data in the database 11 is sent to the application response means 22 in the form of ciphertext, decrypted by the application response means 22 using the key utilization means 23, and calculated on plaintext data, The calculation result is returned to the database using application 21.
- the SQL instruction is exemplified as an example of the database operation instruction.
- the database operation instruction is not limited to the SQL instruction.
- a control means for performing data access control on the database receives a database operation command from a user device, and regarding data and / or metadata handled by the database operation command, Means for performing database operations or operations with encrypted data and / or encrypted metadata as encrypted text; Means for performing database operations or operations on plaintext data and / or plaintext metadata; And a database device that returns a processing result to the user device.
- the control means receives the database operation command transmitted from the user device, and encrypts the operation target data encrypted and stored in the database with a cryptographic algorithm that can be operated or operated in a ciphertext. If the operation or operation of the database operation instruction is an operation or operation that can be operated or operated in the ciphertext, the operation or operation is performed on the operation target data as it is in the ciphertext.
- the database apparatus according to appendix 1, wherein the processing result is output as ciphertext and transmitted to the user apparatus.
- the control unit returns the operation result of the partial operation of the operation of the database operation instruction to the user device in a ciphertext, and the user device decrypts the ciphertext into the plaintext when further partial operation in the plaintext is required.
- the user device When the partial operation is performed on the converted data, and the partial operation in the ciphertext remains in the operation of the database operation instruction, and the partial operation in the ciphertext is possible, the user device is in the plaintext A ciphertext obtained by encrypting the result of the partial operation is sent to the control means, The control means uses the ciphertext transmitted from the user device, performs the remaining partial operation of the operation of the database operation instruction in ciphertext, and returns the operation result of the partial operation to the user device in ciphertext.
- the database apparatus according to appendix 1 or 2, characterized in that:
- Appendix 4 Table name stored in the database, presence / absence of encryption of the metadata including the column name, presence / absence of data encryption, confidentiality information indicating the degree of data security, and encryption algorithm corresponding to the confidentiality information
- a first storage unit that stores and holds the identification information
- a second storage unit that stores and holds at least cryptographic protocol identification information that associates processing contents of the database operation instruction, confidentiality information, and cryptographic algorithm;
- the database functions as at least one of the first and / or second storage units;
- the control means performs processing corresponding to the database operation instruction based on encryption protocol identification information stored in the second storage unit for data encrypted with an encryption algorithm corresponding to the confidentiality information.
- the database apparatus according to appendix 4 or 5, further comprising: an encryption protocol process execution unit that executes the process in a ciphertext state.
- the control means for the arithmetic operation of the database operation instruction, when the arithmetic operation corresponds to a homomorphic operation, and the cryptographic algorithm is a homomorphic encryption, performs the arithmetic operation with the ciphertext of the database data,
- the database apparatus according to any one of appendices 1 to 6, wherein a ciphertext operation result is transmitted to the user apparatus.
- the control means when the operation of the database operation instruction, the operation target data stored in the ciphertext in the database is encrypted with a cryptographic algorithm that can not perform the operation in the ciphertext, Sending the encrypted data to be operated to the user device;
- the database device according to any one of appendices 1 to 6, wherein the user device decrypts the encrypted data into plaintext and performs the calculation.
- the user device When encrypting the column data of the table in the database, the user device encrypts with the encryption algorithm corresponding to the confidentiality information set for the column data, and transmits to the control means,
- the control means creates a ciphertext table including a pair of serial number and ciphertext of the column data, Any one of appendices 1 to 8, further comprising a ciphertext table information table including a table name, a column name, a cipher algorithm, and a ciphertext table name as a set for managing the ciphertext table.
- the control unit includes a cryptographic operation unit that encrypts metadata and / or data using a public key transmitted from the user device, according to any one of appendices 1 to 9, Database device.
- the control means when a database operation command for adding column data is input from the user device, adds an updated serial number and ciphertext pair to the ciphertext table of the database. 11.
- the database device according to 11.
- the control means When receiving an instruction to change the confidentiality information of the data stored in the database, The control means transmits the encrypted data stored in the database to the user device, The user device side decrypts the encrypted data into plain text, receives the data obtained by re-encrypting the plain text with an encryption algorithm corresponding to the changed confidentiality information from the user device, and stores the data in the database.
- the database apparatus according to appendix 1, wherein encrypted data is stored.
- a database operation command is received from a user device, and the data and / or metadata handled by the database operation command is a database operation or calculation with encrypted data and / or encrypted metadata as encrypted.
- a database control method comprising: returning a processing result to the user device.
- Appendix 16 Table name stored in the database, presence / absence of encryption of the metadata including the column name, presence / absence of data encryption, confidentiality information indicating the degree of data security, and encryption algorithm corresponding to the confidentiality information Is stored and managed in the first storage unit, 16.
- Appendix 20 When encrypting column data of a table in the database, the user device encrypts it with an encryption algorithm corresponding to confidentiality information set for the column data, and transmits it to the database device.
- the database device creates a ciphertext table including a pair of a serial number and ciphertext of the column data, 20.
- the database control according to any one of appendices 14 to 19, wherein the ciphertext table is managed by a ciphertext table information table including a table name, a column name, an encryption algorithm, and a ciphertext table name as a set.
- Appendix 22 The database control according to appendix 20 or 21, wherein when a database operation command for adding column data is input from the user device, a pair of an updated serial number and ciphertext is added to the ciphertext table of the database. Method.
- the database device When receiving an instruction to change the confidentiality information of the data stored in the database, The database device transmits encrypted data stored in the database to the user device; The user device side decrypts the encrypted data into plain text, receives the plain text from the user device, and re-encrypts the data with the encryption algorithm corresponding to the changed confidentiality information. 15. The database control method according to appendix 14, wherein re-encrypted data is stored.
- Appendix 24 A computer composing a database control device that is connected to a user device and performs data access control on a database. Receiving a database operation command from the user device, regarding data and / or metadata handled by the database operation command, A process of performing database operation or computation with encrypted data and / or encrypted metadata as encrypted text; At least one of processing for performing database operations or operations on plaintext data and / or metadata; Processing for returning the processing result of the database operation to the user device; A program that executes
- Appendix 25 In response to a database operation command transmitted from the user device, the operation target data encrypted and stored in the database is encrypted with a cryptographic algorithm that can be operated or operated in a ciphertext, and When the operation or operation of the database operation instruction is an operation or operation that can be operated or operated in the ciphertext, the operation or operation is performed on the operation target data as it is in the ciphertext, and the processing result of the ciphertext is obtained.
- (Appendix 26) Causing the computer to execute a process of returning an operation result of a partial operation of the operation of the database operation instruction to the user device in a ciphertext;
- a partial operation in plaintext is further required, a partial operation is performed on data obtained by decrypting the ciphertext into plaintext, and a partial operation in ciphertext remains in the operation of the database operation instruction.
- the user device transmits the ciphertext obtained by encrypting the result of the partial operation in the plaintext to the database control device, Using the ciphertext transmitted from the user device, the remaining partial operation of the operation of the database operation instruction is performed in ciphertext, and the processing of returning the operation result of the partial operation to the user device in ciphertext is performed on the computer
- Appendix 28 The database functions as at least one of the first and / or second storage units; 28.
- Appendix 29 For data encrypted with an encryption algorithm corresponding to the confidentiality information, processing corresponding to the database operation instruction is performed in a ciphertext state based on encryption protocol identification information stored and held in the second storage unit. 29.
- Appendix 30 For the operation of the database operation instruction, when the operation corresponds to a homomorphic operation and the encryption algorithm is a homomorphic encryption, the operation is performed with the ciphertext of the data in the database, and the operation result of the ciphertext
- the program according to any one of appendices 24 to 29, which causes the computer to execute a process of transmitting the message to the user device.
- Appendix 32 When encrypting the column data of the table in the database, the user device encrypts with the encryption algorithm corresponding to the confidentiality information set for the column data, and transmits to the database control device, A process for creating a ciphertext table including a pair of a serial number and ciphertext of the column data; 32.
- Appendix 33 The program according to any one of appendices 24 to 32, which causes the computer to execute cryptographic operation processing for encrypting metadata and / or data using a public key transmitted from the user device.
- Appendix 34 When encrypting the column data of the table in the database, the column data is read from the database, public key information is obtained from the user device, and the column data is encrypted. A process for creating a ciphertext table including a pair of a serial number and ciphertext of the column data; 34.
- the program according to appendix 33 which causes the computer to execute processing for managing the ciphertext table using a ciphertext table information table including a table name, a column name, an encryption algorithm, and a ciphertext table name as a set.
- Patent Documents 1-3 and Non-Patent Document 1 are incorporated herein by reference.
- the embodiments and examples can be changed and adjusted based on the basic technical concept.
- Various disclosed elements including each element of each claim, each element of each embodiment, each element of each drawing, etc.
- the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、日本国特許出願:特願2011-247909号(2011年11月11日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
前記制御手段は、ユーザ装置からデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する手段と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算を実行する手段と、
を備え、処理結果を前記ユーザ装置に返すデータベース装置が提供される。
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算の少なくとも一方を実行し、
処理結果を前記ユーザ装置に返すデータベース制御方法が提供される。
前記ユーザ装置からのデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する処理と、
平文データ及び/又はメタデータに対するデータベース操作又は演算を実行する処理との少なくとも一方の処理と、
前記データベース操作の処理結果を前記ユーザ装置に返す処理と、
を実行させるプログラムが提供される。
データの暗号化、復号化のための鍵情報を記憶する記憶部(24)と、鍵情報を管理する鍵利用手段(23)を、ユーザシステム(10)側に備えたことで、データベースシステムへの外部からの侵入や、データベース管理者等による不正・操作ミスなどによる情報漏洩を防ぐことができる。
データベース利用アプリケーション(図1の21)から入力されたデータベース操作命令の操作対象データに対して求められる安全性の程度(機密度)に対応した処理(暗号アルゴリズム)を選択して実行する。例えば求められる安全性の低いデータは、相対的に高速であるが安全性が相対的に高くない暗号アルゴリズムを用いる。さらに、安全性(機密性)が要求されないデータは、暗号化の対象から外すことで、効率的な処理を可能としている。
データベース利用アプリケーション(図1の21)から入力されたデータベース操作命令に対して、データベースに格納された暗号化データに対して、暗号化された状態で演算処理(加算又は乗算等)を実行する。
ユーザシステム側でデータベースへ格納する情報の暗号化の有無を、例えばテーブル、カラム、カラムデータ単位で設定可能とするとともに、データの操作内容と求められる安全性(機密度)とに応じた処理手順(暗号アルゴリズム)を選択可能としている。これにより、処理の効率化を実現可能としている。
本発明の実施にあたり、データベース操作命令(SQL命令等)の構文の変更等を不要とし、データベース利用アプリケーション(図1の21)では、データベース操作命令をそのまま(命令の構文、及び、命令で指定するテーブル名、カラム名、データ等すべて平文のまま)発行すればよい。データベース利用アプリケーション(図1の21)でテーブル(表)作成、カラム追加、行追加、データの演算等のデータベース操作命令を発行すると、アプリケーション応答手段(図1の22)に入力され、データの安全性に対応した暗号アルゴリズムの選択が行われ、該暗号アルゴリズムで暗号化を行った上で、データベースシステム(10)に送信される。そして、データベース(11)に格納するデータの安全性設定を行う安全性設定手段(26)を、データベース利用アプリケーション(21)とは別に用意することで、データベースを利用する既存アプリケーションの改造等を不要としている。すなわち、本発明の実施にあたり、アプリケーションでデータの暗号化、復号、安全性の設定等を行うことは不要であり、データベース操作命令を発行する既存の任意のアプリケーションに対応可能である。
以下添付図面を参照して実施形態を説明する。
図1は、本発明の一実施形態を説明する図である。図1を参照すると、データベースシステム(データベース装置)10と、ユーザシステム(ユーザ装置)20とは、例えばインターネット等のネットワーク30を介して接続されている。データベースシステム10は、データベース11と、データベース制御手段12と、暗号プロトコル情報記憶部13と、安全性設定情報記憶部14とを備えている。
次に、データベースシステム10の要素についてその概略を説明する。データベース制御手段12は、データベース11に対する操作(データベース操作命令によるデータベース操作)を行う手段と、暗号プロトコルを実行する手段を備えている。
次に、ユーザシステム20の各要素についてその概略を説明する。データベース利用アプリケーション21は、データベース操作命令を発行する。なお、特に制限されないが、データベース利用アプリケーション21は、データベース操作を実行するためのデータベース操作命令(SQL命令)を発行するアプリケーションプログラムからなる。あるいは、データベース利用アプリケーション21では、データベースシステム10のデータベース制御手段12にアプリケーション応答手段22を介して、画面上でテーブル定義、データ追加、検索、演算等の操作行うGUI(Graphical User Interface)環境として実装してもよい。この場合、ユーザが画面上で選択した操作は、対応するSQL命令に変換され、アプリケーション応答手段22に入力される。データベース利用アプリケーション21は、既存のアプリケーションをそのまま用いることが可能である。これは、データベース利用アプリケーション21を新たに開発してはならないということを意味するものでなく、データベース利用アプリケーション21を新たに開発又は改造、改版するにあたり、データの暗号化、復号化、データの安全性設定のための情報の設定を、当該データベース利用アプリケーション21で行わなくてもよいことを意味している。
図1に示したシステムの動作例を概説する。データベース制御手段12は、データベース利用アプリケーション21から入力され、アプリケーション応答手段22を介して転送されたデータベース操作命令が、例えば検索(Query)など、暗号文のままで処理可能な暗号プロトコルが存在する操作である場合、暗号文のまま処理(検索等)を行う。データベース制御手段12は、データベース11内の暗号文の処理結果を、暗号文のままアプリケーション応答手段22に返す。アプリケーション応答手段22は、暗号文を鍵利用手段23で平文に復号した結果を受け取り、データベース利用アプリケーション21に、平文のデータベース操作結果を返す。
アプリケーション応答手段22の処理動作を説明する。図2(A)を参照すると、アプリケーション応答手段22は、以下のステップを実行する。
図2(B)を参照すると、データベース制御手段12では、
ステップ1: アプリケーション応答手段22からの指示の受信を待つ。
図2に示したように、データベース制御手段12とアプリケーション応答手段22との協働により、データベースシステム10における情報漏洩を防止するとともに、任意のデータベース操作への対応、効率的な処理実行を実現している。
次に、上記したデータベース制御手段12について詳細に説明する。図3は、図1のデータベース制御手段12の構成の一例を示す図である。図3を参照すると、データベース制御手段12は、データベース操作部121と、暗号プロトコル処理実行部122と、処理・通信制御部125と、暗号プロトコル情報操作部123と、安全性設定情報操作部124を備えている。
に関して、データベース11内のテーブル名AにおけるカラムB、Cが暗号化されている場合、データベース操作部121では、暗号文で、そのまま検索処理し、暗号プロトコル処理実行部122に検索結果を返す。
図4は、図3の変形例を示す図である。図4に示す例では、暗号プロトコル情報と、安全性設定情報はデータベース11内に、暗号プロトコル情報テーブル111と、安全性設定情報テーブル112として格納されている。図4の暗号プロトコル情報操作部123は、データベース操作部121に、データベース操作命令(テーブル名を暗号プロトコル情報テーブルとして指定したSQL命令等)を発行することで、データベース11内の暗号プロトコル情報テーブル111の情報にアクセスする。同様に、安全性設定情報操作部124は、データベース操作部121を介してデータベース11内の安全性設定情報テーブル112の情報にアクセスする。
図26は、図1のデータベース制御手段12のさらに別の構成例を示す図である。図26を参照すると、データベース制御手段12は、データベース操作部121と、暗号プロトコル処理実行部122と、処理・通信制御部125と、暗号プロトコル情報操作部123と、安全性設定情報操作部124と、暗号演算部126を備えている。図3とは、暗号演算部126が相違している。データベース操作部121と、暗号プロトコル処理実行部122と、処理・通信制御部125と、暗号プロトコル情報操作部123と、安全性設定情報操作部124は、図3と同様であるため説明は省略する。
図27は、図1のデータベース制御手段12の構成の別の例を示す図である。図27を参照すると、本実施形態は、図26の構成において、図4と同様に、暗号プロトコル情報テーブル111、安全性設定情報テーブル112をデータベース11内に備えている。暗号演算部126は、図26と同様であるため、説明は省略する。
図5は、図1の暗号プロトコル情報記憶部13の例を説明するための図である。図5において、処理内容識別子は、データベース操作の処理内容を識別する情報である。特に制限されないが、図5では、「単純一致」(指定された文字列と一致するかを単純に照合)、「加算」等のデータベース操作の識別コードが設定される。
図6は、図1の安全性設定情報記憶部14の一例を示す図である。図6を参照すると、安全性設定情報記憶部14は、データベース11に作成されたテーブル名が暗号化されているか否か(テーブル名暗号化有無)、カラム名、該カラム名が暗号化されているか否か(カラム名暗号化有無)、カラムデータが暗号化されているか否か(カラムデータ暗号化有無)、カラムデータの機密度、カラムデータの暗号化に用いられる暗号アルゴリズムの識別子(カラムデータ暗号化アルゴリズム識別子)の欄を含む。
図7は、データベース11内のテーブル情報を説明するための図である。前述の図6に示したように、カラム「勤務地」のように、データが複数の暗号アルゴリズムで暗号化される場合がある。そこで、複数の暗号アルゴリズムで暗号化される暗号文の本体は、別のテーブルで管理する。
暗号文本体を格納したテーブルである暗号文テーブルの名前(暗号文テーブル名)と、
暗号アルゴリズムと、
パラメータ(暗号アルゴリズムに与えるパラメータ)と、
を対応させて保持する。
カラム名は「勤務地」、
暗号アルゴリズムは「AES」、
パラメータは「Null」(無)、
暗号文テーブル名は「暗号文_AES_1」
である。
カラム名は「勤務地」、
暗号アルゴリズムは「SE1」、
パラメータは「0x16a・・・」(0xはヘキサデシマル表示を表す)、
暗号文テーブル名は「暗号文_SE1_1」
である。暗号文テーブル名が「暗号文_AES_1」、「暗号文_SE1_1」の表は、図7(D)、(E)にそれぞれ示される。
図8は、図1のアプリケーション応答手段22、安全性設定手段26、鍵利用手段23の構成の一例を示す図である。図8を参照すると、アプリケーション応答手段22は、処理・通信制御部221と、暗号プロトコル処理実行部222と、データベース操作変換処理部223と、暗号演算部224と、安全性設定情報操作部225を備えている。
図9は、図1のユーザシステム20側の安全性設定情報一時記憶部25の内容の一例を模式的に示す図である。安全性設定情報一時記憶部25は、図6に示したデータベースシステム10の安全性設定情報記憶部14の内容に、データベース操作対象を特定するための補助情報として、「復号後テーブル名」と「復号後カラム名」とが追加されている。その他の情報は、図6の安全性設定情報記憶部14の内容と同一である。
図10は、鍵情報記憶部24の一例を示す図である。鍵情報記憶部24は、暗号アルゴリズム識別子と鍵情報を含む。図9に示す例では、データを暗号アルゴリズム「AES」で暗号化や復号する際に用いる鍵情報は「0x51a4・・・」である。また、公開鍵暗号である暗号アルゴリズムHE1の鍵情報は「0xb316・・・」であり、鍵情報には、暗号化や準同型演算処理に用いる公開鍵情報と、復号に用いる秘密鍵情報と、が含まれている。
以下では、図1、図8を参照して説明した安全性設定手段26の処理手順を詳細に説明する。ユーザシステム20において、安全性設定手段26は、データベース11のデータに関する安全性情報を設定する。
アプリケーション応答手段22に対してデータベース11の現在の安全性設定情報を要求して安全性設定情報を取得する。アプリケーション応答手段22は、データベースシステム10の安全性設定情報記憶部14又はユーザシステム20の安全性設定情報一時記憶部25を参照して、データベース操作対象のデータ等に該当する安全性設定情報を取得し、安全性設定手段26に返す。
安全性設定手段26の設定表示部261は、アプリケーション応答手段22から返信された安全性設定情報を入力/出力装置27に表示する。
安全性設定手段26の設定入力部262は、データベースのユーザ(利用者)が入力/出力装置27から入力した、設定の対象(例えばテーブル名、カラム名)と設定内容(例えばテーブル名の暗号化有無、カラム名の暗号化有無、カラムデータの機密度)を受け付ける。
安全性設定手段26の設定入力部262は、アプリケーション応答手段22に対して、入力された設定対象、設定内容を送信して、設定変更(更新)を依頼する。安全性設定の変更は、データベース制御手段12の安全性設定情報操作部124、アプリケーション応答手段22の安全性設定情報操作部225により、安全性設定情報記憶部14、安全性設定情報一時記憶部25にそれぞれ書き込まれる。
図12は、図11のステップ4の設定更新処理の詳細な処理を説明する流れ図である。ここでは、メタデータ(テーブル名、カラム名)の暗号化を「有」に設定する処理について説明する。ここでは、安全性設定情報記憶部14、安全性設定情報一時記憶部25において、該当メタデータ(テーブル名、カラム名)の暗号化が「無」に設定されているものとする。
安全性設定手段26は、設定対象のメタデータ(テーブル名、カラム名)と設定内容(暗号化「有」)を入力/出力装置27から受けとる。
安全性設定手段26からの設定更新依頼を受けたアプリケーション応答手段22は、鍵利用手段23を用いて、設定対象のメタデータ(テーブル名、及び/又はカラム名)の暗号文を作成する。アプリケーション応答手段22は、安全性設定情報一時記憶部25、又は安全性設定情報記憶部14を参照して、該当メタデータに対応する暗号アルゴリズム情報を取得し、暗号演算部231でメタデータ(テーブル名、及び/又はカラム名)を暗号化し、暗号文メタデータを作成する。
安全性設定手段26からの設定変更の指示を受けたアプリケーション応答手段22は、データベース制御手段12に対して、データベース11内の設定対象のメタデータを、上記ステップ1で作成した暗号文メタデータに置き換えるよう依頼し、データベース制御手段12は、データベース11内の平文メタデータを、暗号文メタデータに置き換える。実装固有(Implementation Specific)で本発明を特に制限するものではないが、テーブル名を暗号文に変更する場合、例えば、アプリケーション応答手段22において、例えばSQL命令
ALTER TABLE 変更前テーブル RENAME TO 変更後テーブル名
において、変更後テーブル名を暗号文テーブル名としたSQL文を自動生成し、データ制御手段12のデータベース操作部121(図4)に発行するようにしてもよい。また、カラム名を暗号文で変更する場合、例えばSQL命令
ALTER TABLE テーブル名 RENAME COLUMN 変更前カラム名 TO 変更後カラム名
において、変更後カラム名を暗号文カラム名としたSQL文を、アプリケーション応答手段22で自動生成し、データベース操作部121(図4)に発行するようにしてもよい。
アプリケーション応答手段22は、データベース制御手段12に対して、安全性設定情報記憶部14(図6参照)において、同様に、設定対象の平文のテーブル名又はカラム名を暗号文デーブル名又は暗号文カラム名に置き換えるとともに、テーブル名暗号化有無又はカラム名暗号化有無)の欄の「有」への変更を行うよう依頼し、データベース制御手段12の安全性設定情報操作部124が、安全性設定情報記憶部14の安全性設定情報を変更する。また、暗号文テーブル情報表(図7(B))のテーブル名の該当テーブル名、カラム名を暗号文テーブル名、暗号文カラム名で置き換える。
アプリケーション応答手段22の安全性設定情報操作部225は、安全性設定情報一時記憶部25(図9参照)において、設定対象のもとの平文のテーブル名又はカラム名を、復号後テーブル名又は復号後カラム名の欄に書き込み、テーブル名又はカラム名を暗号文デーブル名又は暗号文カラム名で置き換え、テーブル名暗号化有無又はカラム名暗号化有無)の欄を「有」に変更する。
アプリケーション応答手段22は、安全性設定手段26に対して、設定変更(設定更新処理)の完了を返信する。安全性設定手段26は、入力/出力装置27に完了を表示する。その際、安全性設定情報一時記憶部25の変更後の内容を画面表示して変更完了をユーザに提示するようにしてもよい。
次に、図11のステップ4の設定更新処理の詳細な処理手順として、暗号化「無」への変更処理を説明する。図13は、図11の設定更新処理4の処理の別の例を説明する流れ図である。図13には、メタデータ(テーブル名、カラム名)の暗号化を「有」から「無」に変更する処理の手順が示されている。ここでは、メタデータ(テーブル名、カラム名)の暗号化が既に「有」に設定されているものとする。
安全性設定手段26からの設定変更の指示を受けたアプリケーション応答手段22は、安全性設定情報一時記憶部25(図9参照)を参照し、設定対象のメタデータ(テーブル名又はカラム名)について、データベース11中での暗号文メタデータを取得し、復号後テーブル名又は復号後カラム名の欄から、対応する平文のテーブル名又は平文のカラム名を取得する。
アプリケーション応答手段22は、データベース制御手段12に対して、暗号文メタデータ(テーブル名又はカラム名)を、対応する平文メタデータに置き換えるよう依頼し、データベース11内のテーブル名/カラム名を平文のテーブル名/カラム名に置き換える。テーブル名を変更する場合、データベース制御手段12において、例えばSQL命令
ALTER TABLE 変更前テーブル名 RENAME TO 変更後テーブル名
において、変更前テーブル名を暗号文とし、変更後テーブル名を平文テーブル名として、データベース操作部121(図4)に発行するようにしてもよい。またカラム名を暗号文で変更する場合、例えばSQL命令
ALTER TABLE テーブル名 RENAME COLUMN 変更前カラム名 TO 変更後カラム名
において、変更前カラム名を暗号文、変更後カラム名を平文として、データベース操作部121(図4)に発行するようにしてもよい。また、暗号文テーブル情報表(図7(B))のテーブル名の該当テーブル名、カラム名を平文テーブル名、平文カラム名で置き換える。
データベース制御手段12に対し、安全性設定情報記憶部14(図6参照)についても、暗号文テーブル名又は暗号文カラム名の欄を、平文テーブル名又は平文カラム名に置き換える。また、テーブル名暗号化有無又はカラム名の暗号化有無の欄を「無」に変更を行うよう依頼し、データベース制御手段12の安全性設定情報操作部124は、安全性設定情報を変更する。
アプリケーション応答手段22の安全性設定情報操作部225は、安全性設定情報一時記憶部25(図9参照)において、暗号文テーブル名又は暗号文カラム名を、対応する平文テーブル名又は平文カラム名に置き換え、復号後のテーブル名又は復号後カラム名の欄を「NULL」に変更し、テーブル名暗号化有無又はカラム名暗号化有無の欄を「無」に変更する。
アプリケーション応答手段22は安全性設定手段26に変更完了を返信する。
本実施形態では、既存のデータベース利用アプリケーション21への改造を避けるため、データの機密度を設定する操作は、安全性設定手段26を介して行う。安全性設定手段26は、アプリケーション応答手段22に対して、現在の安全性設定情報記憶部14の内容と、データベース11の内容とを問い合わせる。安全性設定手段26は一度に全部の情報を問い合わせるのではなく、全テーブル名の一覧、続いて、あるテーブルのカラム名と安全性設定の一覧、というように、部分的・段階的に問合せを行うようにしてもよい。
図14は、データベース11の格納された平文のカラムデータに機密度を設定する(平文のカラムデータを暗号化する)処理手順を説明する流れ図である。
アプリケーション応答手段22は、安全性設定手段26から設定対象のテーブル名、カラム名と、設定内容(機密度)を受信する。
アプリケーション応答手段22は、暗号プロトコル情報記憶部13(図5参照)を参照し、入力された機密度(高、中、低)に対応する暗号アルゴリズム識別子の一覧を取得し、その中から1つを選択する。同一の機密度に対応して暗号アルゴリズム識別子の一覧の中から1つを選択する場合、処理効率が良いことが知られているものを選択する。アプリケーション応答手段22で、暗号アルゴリズム識別子を自動で選択してもよいし、安全性設定手段26を介して暗号アルゴリズム識別子の一覧を画面表示し、機密度の変更作業を行うユーザが選択するようにしてもよい。
アプリケーション応答手段22は、データベース制御手段12の安全性設定情報操作部124に、安全性設定情報記憶部14(図6参照)に設定対象のテーブル名、カラム名のカラムデータ機密度の欄を、入力された機密度に変更を依頼するとともに、カラムデータ暗号アルゴリズム識別子の欄を、ステップ1で選択したものに変更するよう依頼し、安全性設定情報記憶部14の安全性設定情報を更新する。設定対象のテーブル名、カラム名が、暗号化されている場合、アプリケーション応答手段22は、安全性設定情報一時記憶部25の復号後テーブル名又は復号後カラム名から、安全性設定手段26から入力された平文テーブル名又は平文カラム名に一致する名前を検出し、対応する暗号文テーブル名又は暗号文カラム名を取得し、安全性設定情報記憶部14(図6参照)において、設定対象の暗号文テーブル名、暗号文カラム名を特定する。
アプリケーション応答手段22の安全性設定情報操作部225は、安全性設定情報一時記憶部25に対し、設定対象のテーブル名、カラム名のカラムデータ機密度の欄をNullから、入力された機密度に変更するとともに、カラムデータ暗号アルゴリズム識別子の欄を、ステップ1で選択したものに変更する。
アプリケーション応答手段22は、データベース制御手段12に対して、設定対象のテーブル名、カラム名のカラムデータの取得を依頼し、カラムデータを取得する。前述したように、カラムデータは、データベース11中に、暗号文テーブル(図7)として格納されている。データベースに該等するカラムのカラムデータがなければ、ステップ9へ制御を移す。
アプリケーション応答手段22は、取得したカラムデータ(平文カラムデータ)と、ステップ1で選択した暗号アルゴリズム識別子とを鍵利用手段23に送り、カラムデータの暗号化を依頼する。アプリケーション応答手段22は、得られた暗号文のカラムデータに、通し番号を付け、
[通し番号、平文カラムデータ、暗号文カラムデータ]
の組の一覧を作成する。
アプリケーション応答手段22は、ステップ5で作成した
[通し番号、暗号文カラムデータ]
の組の一覧を格納するテーブルの作成をデータベース制御手段12に依頼して、データベース11に暗号文テーブル(暗号文テーブル名は、図7(B)に示すように、暗号文_暗号アルゴリズム識別子)を作成する。
アプリケーション応答手段22は、暗号文テーブル情報表(図7(B)参照)に、
[設定対象のテーブル名、設定対象のカラム名、ステップ1で選択された暗号アルゴリズム識別子、作成した暗号文テーブルの名前]
の組を追加するように、データベース制御手段12に依頼する。データベース制御手段12は、暗号文テーブル情報表(図7(B)参照)に、
[テーブル名、カラム名、暗号アルゴリズム識別子、暗号文テーブル名]
の組を追加する。
アプリケーション応答手段22は、データベース制御手段12に対して、データベース操作対象カラムの平文カラムデータ(例えば図7(A)のカラム名の「勤務地」のデータ)を、ステップ5で作成した
[通し番号、平文カラムデータ、暗号文カラムデータ]
の組で対応付けられた、通し番号で置き換えるように依頼する(図7(C)参照)。データベース制御手段12は、暗号文テーブルにおいて、ID=1、2、・・・の各々に対して、ステップ5で暗号化された暗号文カラムデータを対応させて格納する(図7(D)乃至(F)の格納形式参照)。
アプリケーション応答手段22は、安全性設定手段26に変更完了を返信する。
図14に示した手順は、データベース制御手段12が図3又は図4の構成の場合における、データベース11に格納された平文のカラムデータに機密度を設定する処理手順である。図28は、データベース制御手段12が図26又は図27の構成の場合における、データベース11に格納された平文のカラムデータに機密度を設定する処理手順を説明する流れ図である。図28において、ステップ1から9は、図14のステップ1から9と同一である。図28において、ステップ1で選択した暗号アルゴリズムが、HE1等の公開鍵暗号の場合、ステップ3の後、ステップ10へ分岐する。
[通し番号、平文カラムデータ、暗号文カラムデータ]
の組の一覧を作成する。
[通し番号、暗号文カラムデータ]
の組の一覧を格納する暗号文テーブル(図7(D)乃至(F)参照)を作成する。
[設定対象のテーブル名、設定対象のカラム名、ステップ1で選択された暗号アルゴリズム識別子、ステップ12で作成した暗号文テーブルの名前]
の組を追加する。
[通し番号、平文カラムデータ、暗号文カラムデータ]
の組で対応付けられた通し番号に置き換え、データベース11に格納する。
カラムデータの機密度の指定を安全性設定情報記憶部14、安全性設定情報一時記憶部25、データベース11に反映する処理において、機密度が既に設定されている場合について、以下に説明する。
アプリケーション応答手段22は、安全性設定手段26から設定対象のテーブル名、カラム名と、設定内容(機密度の変更)を受信する。
アプリケーション応答手段22は、データベースシステム10の安全性設定情報記憶部14(図6参照)から、入力された設定対象テーブル名、カラム名で指定されているカラムデータの暗号化に用いられている暗号アルゴリズム識別子の一覧を取得する。なお、設定対象のテーブル名、カラム名が、暗号化されている場合、アプリケーション応答手段22は、安全性設定情報一時記憶部25の復号後テーブル名又は復号後カラム名から、安全性設定手段26から入力された平文テーブル名又は平文カラム名に一致する名前を検出し、対応する暗号文テーブル名又は暗号文カラム名を取得し、安全性設定情報記憶部14(図6参照)において、設定対象の暗号文テーブル名、暗号文カラム名を特定する。
アプリケーション応答手段22は、データベースシステム10の暗号プロトコル情報記憶部13(図5)を参照し、新たに入力された機密度に対応する暗号アルゴリズム識別子の一覧を取得する。
アプリケーション応答手段22は、ステップ1で得られた暗号アルゴリズム識別子の一覧と、ステップ2で得られた新たな機密度に対応する暗号アルゴリズム識別子の一覧を比較照合する。
アプリケーション応答手段22は、ステップ3で比較照合した結果、ステップ1で得られた暗号アルゴリズム識別子の一覧と、ステップ2で得られた新たな機密度に対応する暗号アルゴリズム識別子の一覧に、共通の暗号アルゴリズム識別子が存在しない場合、以下の手順で新たに暗号文テーブルを作成する。共通の暗号アルゴリズム識別子が存在する場合、同じ機密度の暗号アルゴリズムで暗号化されているデータが存在するため、以下の機密度の変更処理(新たな機密度情報に対応する暗号アルゴリズムでデータを再暗号化して暗号文テーブルを作成し暗号文テーブル情報を更新)は行わない。
アプリケーション応答手段22は、ステップ1で取得した暗号アルゴリズム識別子一覧に複数の暗号アルゴリズム識別子が含まれる場合、その中から暗号アルゴリズム識別子を1つ選択し(1つしか含まれない場合、当該1つの暗号アルゴリズム識別子が選択される)、データベース制御手段12に、選択した暗号アルゴリズム識別子に対応する暗号文テーブルの内容をデータベース11から取得するように依頼する。データベース制御手段12は、暗号文テーブル情報表(図7(B)参照)を参照し、選択した暗号アルゴリズム識別子に対応する暗号文テーブル名を特定し、特定した暗号文テーブルの内容(IDと暗号文の対形式で格納される)を取得し、アプリケーション応答手段22に送信する。
アプリケーション応答手段22は、ステップ5で選択した暗号アルゴリズム識別子と取得した暗号文を鍵利用手段23に送信し、平文への復号を依頼する。
アプリケーション応答手段22は、ステップ2で得られた機密度に対応する暗号アルゴリズム識別子の一覧にだけ含まれる暗号アルゴリズム識別子が複数存在する場合(ステップ1で取得した暗号アルゴリズム識別子一覧に含まれない)、その中から暗号アルゴリズム識別子を1つ選択し(1つしか含まれない場合、当該1つの暗号アルゴリズム識別子が選択される)、ステップ6で得た平文とともに、鍵利用手段23に送信し、新たな識別子の暗号アルゴリズムによる暗号化を依頼する。そして、新たな
[通し番号、平文、暗号文]
の組の一覧を作成する。
アプリケーション応答手段22は、データベース制御手段12に対し、
[通し番号、暗号文]
の組の一覧を格納する暗号文テーブルの作成を依頼し、暗号文テーブル(図7(D)乃至(F)の格納形式参照)を作成する。
アプリケーション応答手段22は、データベース制御手段12に対して、暗号テーブル情報表(図7(B)参照)に、新たなテーブルを追加するため、
[対象テーブル名、対象カラム名、新たな暗号アルゴリズム識別子、ステップ8で作成された暗号文テーブル名]
の組を追加するように依頼する。
ステップ1だけに含まれる暗号アルゴリズム識別子について、暗号文テーブル情報表(図7(B)参照)を参照して、対応する暗号文テーブル名を特定し、データベース11から、該当する暗号文テーブルと、暗号文テーブル情報表の対応部分(削除対象の暗号文テーブルのテーブル名を含む行(エントリ))を削除するように、データベース制御手段12に依頼する。この操作により、機密度の変更が指定されたカラムデータに関して、新たに指定された機密度よりも低い機密度の暗号アルゴリズムで暗号化された暗号カラムデータがデータベース11から削除される。
次に、データベースにカラムデータを新たに追加する場合の処理手順の一例を説明する。図16は、アプリケーション応答手段22において、データベース11内に既に作成されたテーブルに、データを追加する処理を説明する流れ図である。
アプリケーション応答手段22において、データベース利用アプリケーション21から入力されたデータベース操作命令が、例えばSQLの
INSERT文(INSERT INTO (列名1、列名2・・・) VALUES (値1、値2・・・)
等のデータ追加指示であることを認識する。
アプリケーション応答手段22は、データベースシステム10の安全性設定情報記憶部14や安全性設定情報一時記憶部25を参照し、追加対象のテーブル名やカラム名がデータベース11で暗号化されているか否か確認する。
データ追加指示のデータベース操作命令で指定されたテーブル名、カラム名が暗号化されている場合、アプリケーション応答手段22は、安全性設定情報一時記憶部25に復号後テーブル名、復号後カラム名の欄の平文のテーブル名、カラム名に対応する暗号文のテーブル名、カラム名を取得し、上記INSERT文等のデータ追加指示に含まれている平文のテーブル名、平文のカラム名を、取得した暗号文テーブル名、暗号文カラム名に置き換える。
アプリケーション応答手段22は、安全性設定情報記憶部14又は安全性設定情報一時記憶部25において、該等するテーブル名、カラム名のカラムデータ機密度がNullの場合(機密度が設定されていない場合)、ステップ8へ制御を移す。一方、カラムデータ機密度が設定されている場合、アプリケーション応答手段22は、次のステップ4を実行する。
アプリケーション応答手段22は、カラムデータ機密度と暗号アルゴリズム識別子が設定されている場合、設定されている全ての暗号アルゴリズム識別子について、追加する平文データと、暗号アルゴリズム識別子とを鍵利用手段23に送り、平文データを、設定された暗号アルゴリズムで暗号化した
[暗号アルゴリズム識別子、暗号データ]
の組のリストを作成する。
アプリケーション応答手段22は、
追加対象のテーブル名、カラム名、
ステップ4で得られた
[暗号アルゴリズム識別子、暗号データ]
をデータベース制御手段12に送信し、データベース11への追加を依頼する。
データベース制御手段12は、追加対象のカラムに格納されている通し番号の最大値を取得し、通し番号の最大値+1を追加用IDの開始番号IDxとする。
[暗号アルゴリズム識別子、暗号データ]
について、暗号文テーブル情報表(図7(B))を参照し、追加対象のテーブル、カラムの指定された暗号アルゴリズム識別子に対応する暗号文テーブル名を取得する。
[追加用ID、暗号データ]
の組を追加する。暗号文テーブルは、図7(D)乃至(F)等に示したように、IDと暗号データの対情報を記憶する。したがって、
[追加用ID、暗号文データ]
は暗号文テーブルの最後尾に追加される。追加するデータが複数の場合、追加用IDはその開始番号IDxから順に、IDx+1、IDx+2、・・・とインクリメントされる。
追加対象のテーブルのカラムに、カラムのデータとして、ステップ6で得られた追加用IDを追加する。例えば図7(C)のテーブル(暗号化後)のカラムの最後尾に追加用IDを追加する。追加するデータがN個の場合、IDx、IDx+1、IDx+2、・・IDx+N-1が図7(C)のテーブル(暗号化後)のカラムの最後尾に追加され、IDの最大値はIDx+N-1に更新される。
アプリケーション応答手段22は、ステップ2で得られた追加対象のテーブル名、カラム名の暗号文への置き換えが行われた後のデータの追加指示を、データベース制御手段12に送信し、データベース11へのデータの追加を依頼する。
データベース制御手段12は、アプリケーション応答手段22から送信されたデータ追加指示に従ってデータベース11にデータを追加する。
図1において、アプリケーション応答手段22を起動した後の初期動作について説明する。アプリケーション応答手段の初期動作では、以後の処理を効率化するため、起動後の初期動作として、データベースシステム10に置かれている情報の一部をユーザシステム20側に読み出す処理と、補助的な情報を生成する処理を行う。
データベース11への新たなテーブルの追加や、既存のテーブル名やカラム名を変更する操作(メタデータに対する操作)について説明する。データベース11に新たなテーブルを追加する場合に、前述したように、安全性設定手段26により安全性情報の設定が行われる。
データベース11に格納したテーブルのテーブル名やカラム名等のメタデータの設定内容の変更(暗号化「有」への変更、暗号化「無」への変更)は、すでに図12、図13を参照して説明した。以下では、テーブル名、カラム名の変更について説明する。
[平文のテーブル名やカラム名、暗号文のテーブル名やカラム名]
の組を作成する。
データベース11に格納済みの既存テーブルのカラムへのデータの追加は、図16を参照して説明した。追加データを暗号化し、指定されたテーブルの指定カラムのテータとして、現在のテーブルの行数(通し番号の最大値)に1を加算した数値(追加用ID)を追加し、暗号文テーブル情報表(図7(B))を参照して、追加データに対応する暗号アルゴリズムの暗号文テーブル(暗号アルゴリズムが複数存在する場合、複数の暗号アルゴリズムにそれぞれ対応した複数の暗号文テーブル)に、追加用IDと暗号文の対を追加する。
データベース利用アプリケーション21から入力されたデータベース操作命令がデータ変更の場合のアプリケーション応答手段22、データベース制御手段12の処理を説明する。データ変更は、例えばSQL命令:
UPDATE テーブル名 SET <列>=<値>
等に対応する。
[暗号アルゴリズム識別子、暗号文]
の組を送信する。
データベース利用アプリケーション21から入力されたデータベース操作命令がデータ削除の場合におけるアプリケーション応答手段22とデータベース制御手段12の処理を説明する。
データベース操作命令が既存テーブルのデータに対する検索や演算である場合の処理を以下に説明する。
[処理内容、操作対象のカラムに設定されている機密度、操作対象のカラムの暗号化に用いられている暗号アルゴリズム識別子]
の3つ組(triplet)に対応する暗号プロトコル識別子(図5参照)を取得する。
[暗号プロトコル識別子と、操作対象カラム、処理内容]
を入力する。
次に、本実施形態における、「社員表」のカラムと「勤務地」のカラムを、機密度「中」を設定する場合について説明する。
アプリケーション応答手段22は、安全性設定手段26でユーザから指定された機密度に対応する暗号アルゴリズムを選択する。図17に示すように、暗号プロトコル情報記憶部13を参照し、機密度「中」に対応する暗号アルゴリズム識別子の一覧 (「SE1」、「AES」、「HE1」)を取得する。暗号アルゴリズム識別子の一覧(「SE1」、「AES」、「HE1」)の中から、1つアルゴリズムを選択する。ここでは、暗号文作成の効率性を重視して「AES」を選ぶものとする。
データベースシステム10の安全性設定情報操作部124は、図18に示すように、安全性設定情報記憶部14のテーブル名「社員表」、カラム名「勤務地」の情報を格納している行について、
「カラムデータ暗号化有無」の欄を「無」から「有」に、
「カラムデータ機密度」の欄を「NULL」から「中」に、
「カラムデータ暗号アルゴリズム識別子」の欄を「NULL」から「AES」
に変更する。
アプリケーション応答手段22の安全性設定情報操作部225は、安全性設定情報一時記憶部25のテーブル名「社員表」、カラム名「勤務地」の情報を格納している行について、安全性設定情報記憶部14と同様に変更する。すなわち、図19に示すように、テーブル名「社員表」について、カラム名「勤務地」の情報を格納している行について、
「カラムデータ暗号化有無」の欄を「無」から「有」に、
「カラムデータ機密度」の欄を「NULL」から「中」に、
「カラムデータ暗号アルゴリズム識別子」の欄を「NULL」から「AES」
に変更する。
テーブル「社員表」は、図20(A)に示すものとする。データベース制御手段12は、テーブル「社員表」からカラム「勤務地」のデータの一覧を取得し、アプリケーション応答手段22に送信する。このとき、テーブル「社員表」の列を一意に識別する主キーのカラムについてもあわせて取得する。ここでは、「社員番号」を主キーとする。
アプリケーション応答手段22は、「勤務地」のカラムのデータを鍵利用手段23により暗号化し、暗号文を、元の平文、社員番号と対応付け、図20(B)に示すように、通し番号1、2、3、・・・をつけたリストを作る。なお、このリストは、アプリケーション応答手段22内の記憶部で保持する。
データベース制御手段12に、ステップ5で作成されたリスト(図21(A))のうち、暗号文(平文「本社」の暗号文「0x3d8・・・」、平文「多摩川」の暗号文「0x962・・・」)と、通し番号(1、2、・・・)の組のリストを送付し、暗号文テーブルを作成して格納する。図21(B)に示すように、暗号文テーブル名は、「暗号文_AES_1」とする。暗号文テーブルは、通し番号と暗号文の対からなる。
図21(C)に示すように、暗号文テーブル情報表に、テーブル名「社員表」、カラム名「勤務地」、暗号アルゴリズム「AES」、暗号文テーブル名「暗号文_AES_1」を格納する。
ステップ5で作成された、社員番号と通し番号の組のリスト(図22(A))をデータベース制御手段12に送付し、図22(B)に示すように、テーブル「社員表」のカラム「勤務地」の値を、通し番号(1、2、・・・)に置き換える。通し番号への置き換えが完了したら、ステップ5で作成されたリスト(図22(A))は削除する。図22(C)、(D)の暗号文テーブル、暗号文テーブル情報表は、図21(B)、(C)の暗号文テーブル、暗号文テーブル情報表と同じである。
次に、データベース11に記憶された暗号化データの平均値を求める演算操作の一例について説明する。図23は、この例で参照する安全性設定情報一時記憶部25の例を示す図である。データベース11に記憶されているテーブル名「勤務時間管理表」のカラム名「残業時間」のデータが暗号化されているとき、その平均値を求める処理について説明する。
暗号プロトコル識別子:「HE1_AVG_M」、
テーブル名:「勤務時間管理表」、
カラム名:「残業時間」、
暗号アルゴリズム:「HE1」、
処理内容:「平均」
を入力する。
データベースに対するデータアクセス制御を行う制御手段を備え、
前記制御手段は、ユーザ装置からデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する手段と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算を実行する手段と、
を備え、処理結果を前記ユーザ装置に返す、ことを特徴とするデータベース装置。
前記制御手段は、前記ユーザ装置から送信された前記データベース操作命令を受け、前記データベースに暗号化して格納されている操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、処理結果を暗号文として出力し、前記ユーザ装置に送信する、ことを特徴とする付記1記載のデータベース装置。
前記制御手段は、前記データベース操作命令の演算の部分演算の演算結果を暗号文で前記ユーザ装置に返し、前記ユーザ装置では、さらに平文での部分演算が必要な場合、前記暗号文を平文に復号化したデータに対する部分演算を行い、前記データベース操作命令の演算に、さらに暗号文での部分演算が残っており、且つ、暗号文での部分演算が可能な場合、前記ユーザ装置は、前記平文での部分演算の結果を暗号化した暗号文を、前記制御手段に送信し、
前記制御手段は、前記ユーザ装置から送信された前記暗号文を用い、前記データベース操作命令の演算の残りの部分演算を暗号文で行い、前記部分演算の演算結果を暗号文で前記ユーザ装置に返す、ことを特徴とする付記1又は2記載のデータベース装置。
前記データベースに格納されるテーブル名、カラム名を含む前記メタデータの暗号化の有無、データの暗号化の有無、データの安全性の程度を表す機密度情報、前記機密度情報に対応した暗号アルゴリズムの識別情報を記憶保持する第1の記憶部と、
前記データベース操作命令の処理内容と、機密度情報と、暗号アリゴリズムとを関連付ける暗号プロトコル識別情報を少なくとも記憶保持する第2の記憶部と、
を備えた、ことを特徴とする付記1乃至3のいずれか一に記載のデータベース装置。
前記データベースが、前記第1及び/又は第2の記憶部の少なくとも1方の記憶部として機能し、
前記第1及び/又は第2の記憶部に記憶される情報を前記データベース内のテーブルとして保持する、ことを特徴とする付記4記載のデータベース装置。
前記制御手段は、前記機密度情報に対応した暗号アルゴリズムで暗号化されるデータに対して、前記第2の記憶部に記憶保持された暗号プロトコル識別情報に基づき、前記データベース操作命令に対応した処理を暗号文状態のまま実行する暗号プロトコル処理実行部を備えた、ことを特徴とする付記4又は5記載のデータベース装置。
前記制御手段は、前記データベース操作命令の演算操作について、前記演算操作が準同型演算に対応し、暗号アルゴリズムが準同型暗号である場合、前記データベースのデータの暗号文のまま前記演算操作を行い、暗号文の演算結果を、前記ユーザ装置に送信する、ことを特徴とする付記1乃至6のいずれか一に記載のデータベース装置。
前記制御手段は、前記データベース操作命令の演算が、前記データベースに暗号文で格納されている操作対象のデータが、暗号文のままでは前記演算を行えない暗号アルゴリズムで暗号化されている場合、前記操作対象の暗号化データを、前記ユーザ装置に送信し、
前記ユーザ装置では、前記暗号化データを平文に復号して、前記演算を行う、ことを特徴とする付記1乃至6のいずれか一に記載のデータベース装置。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記ユーザ装置は、前記カラムデータに対して設定された機密度情報に対応する暗号アルゴリズムで暗号化して前記制御手段に送信し、
前記制御手段は、通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする付記1乃至8のいずれか一に記載のデータベース装置。
前記制御手段が、前記ユーザ装置から送信された公開鍵を用いてメタデータ及び/又はデータを暗号化する暗号演算部を備えた、ことを特徴とする付記1乃至9のいずれか一に記載のデータベース装置。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記データベースからカラムデータを読み出し、前記ユーザ装置から公開鍵情報を取得し、前記暗号演算部で前記カラムデータに対して暗号化を行い、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする付記10記載のデータベース装置。
前記制御手段は、前記ユーザ装置から、カラムデータを追加するデータベース操作命令を入力すると、前記データベースの前記暗号文テーブルに更新した通番と暗号文の対を追加する、ことを特徴とする付記9又は11記載のデータベース装置。
前記データベースに記憶されているデータの機密度情報を変更の指示を受けると、
前記制御手段は、前記データベースに格納されている暗号化データを前記ユーザ装置に送信し、
前記ユーザ装置側で前記暗号化データを平文に復号化し、前記平文を、変更された前記機密度情報に対応する暗号アルゴリズムで再暗号化したデータを、前記ユーザ装置から受け取り、前記データベースに前記再暗号化したデータを格納する、ことを特徴とする付記1記載のデータベース装置。
データベースに対するデータアクセス制御にあたり、ユーザ装置からのデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、 暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算
の少なくとも一方を実行し、
処理結果を前記ユーザ装置に返す、ことを特徴とするデータベース制御方法。
前記ユーザ装置から送信されたデータベース操作命令を受け、前記データベースに暗号化して格納された操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又は演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、暗号文の処理結果を前記ユーザ装置に送信する、ことを特徴とする付記14記載のデータベース制御方法。
前記データベースに格納されるテーブル名、カラム名を含む前記メタデータの暗号化の有無、データの暗号化の有無、データの安全性の程度を表す機密度情報、前記機密度情報に対応した暗号アルゴリズムの識別情報を第1の記憶部で記憶管理し、
前記データベース操作命令の処理内容と、機密度情報と、暗号アリゴリズムとを関連付ける暗号プロトコル識別情報を少なくとも第2の記憶部で記憶管理する、ことを特徴とする付記14又は15記載のデータベース制御方法。
前記機密度情報に対応した暗号アルゴリズムで暗号化されるデータに対して、前記第2の記憶部に記憶保持された暗号プロトコル識別情報に基づき、前記データベース操作命令に対応した処理を暗号文状態のまま実行する、ことを特徴とする付記16記載のデータベース制御方法。
前記データベース操作命令の演算操作について、前記演算操作が準同型演算に対応し、暗号アルゴリズムが準同型暗号である場合、前記データベースのデータの暗号文のまま前記演算操作を行い、暗号文の演算結果を、前記ユーザ装置に送信する、ことを特徴とする付記14乃至17のいずれか一に記載のデータベース制御方法。
前記データベース操作命令の演算が、前記データベースに暗号文で格納されている操作対象のデータが暗号文のままでは前記演算を行えない暗号アルゴリズムで暗号化されている場合、前記データベースの暗号化データを、前記ユーザ装置に送信し、
前記ユーザ装置では、前記暗号化データを復号した平文データに対して、演算を行う、ことを特徴とする付記14乃至17のいずれか一に記載のデータベース制御方法。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記ユーザ装置は、前記カラムデータに対して設定された機密度情報に対応する暗号アルゴリズムで暗号化して前記データベース装置に送信し、
前記データベース装置は、通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表にて前記暗号文テーブルを管理する、ことを特徴とする付記14乃至19のいずれか一に記載のデータベース制御方法。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記データベースからカラムデータを読み出し、前記ユーザ装置から公開鍵情報を取得して前記カラムデータに対して暗号化を行い、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする付記14乃至19のいずれか一に記載のデータベース制御方法。
前記ユーザ装置から、カラムデータを追加するデータベース操作命令を入力すると、前記データベースの前記暗号文テーブルに更新した通番と暗号文の対を追加する、ことを特徴とする付記20又は21記載のデータベース制御方法。
前記データベースに記憶されているデータの機密度情報を変更の指示を受けると、
前記データベース装置は、前記データベースに格納されている暗号化データを前記ユーザ装置に送信し、
前記ユーザ装置側で前記暗号化データを平文に復号化し、前記平文を、変更された前記機密度情報に対応する暗号アルゴリズムで再暗号化したデータを、前記ユーザ装置から受け取り、前記データベースに、前記再暗号化したデータを格納する、ことを特徴とする付記14記載のデータベース制御方法。
ユーザ装置に通信接続され、データベースに対するデータアクセス制御を行うデータベース制御装置を構成するコンピュータに、
前記ユーザ装置からのデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する処理と、
平文データ及び/又はメタデータに対するデータベース操作又は演算を実行する処理との少なくとも一方の処理と、
前記データベース操作の処理結果を前記ユーザ装置に返す処理と、
を実行させるプログラム。
前記ユーザ装置から送信されたデータベース操作命令を受け、前記データベースに暗号化して格納された操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又は演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、暗号文の処理結果を前記ユーザ装置に送信する処理を前記コンピュータに実行させる付記24記載のプログラム。
前記データベース操作命令の演算の部分演算の演算結果を暗号文で前記ユーザ装置に返す処理を前記コンピュータに実行させ、
前記ユーザ装置では、さらに平文での部分演算が必要な場合、前記暗号文を平文に復号化したデータに対する部分演算を行い、前記データベース操作命令の演算に、さらに暗号文での部分演算が残っており、且つ、暗号文での部分演算が可能な場合、前記ユーザ装置は、前記平文での部分演算の結果を暗号化した暗号文を、前記データベース制御装置に送信し、
前記ユーザ装置から送信された前記暗号文を用い、前記データベース操作命令の演算の残りの部分演算を暗号文で行い、前記部分演算の演算結果を暗号文で前記ユーザ装置に返す処理を前記コンピュータに実行させる付記24又は25記載のプログラム。
前記データベースに格納されるテーブル名、カラム名を含む前記メタデータの暗号化の有無、データの暗号化の有無、データの安全性の程度を表す機密度情報、前記機密度情報に対応した暗号アルゴリズムの識別情報を第1の記憶部に記憶する処理と、
前記データベース操作命令の処理内容と、機密度情報と、暗号アリゴリズムとを関連付ける暗号プロトコル識別情報を第2の記憶部に記憶する処理と、
前記コンピュータに実行させる、付記24乃至26のいずれか一に記載のプログラム。
前記データベースが、前記第1及び/又は第2の記憶部の少なくとも1方の記憶部として機能し、
前記第1及び/又は第2の記憶部に記憶される情報を前記データベース内のテーブルとして格納する処理を、前記コンピュータに実行させる、付記27記載のプログラム。
前記機密度情報に対応した暗号アルゴリズムで暗号化されるデータに対して、前記第2の記憶部に記憶保持された暗号プロトコル識別情報に基づき、前記データベース操作命令に対応した処理を暗号文状態のまま実行する暗号プロトコル処理を前記コンピュータに実行させる、付記27又は28記載のプログラム。
前記データベース操作命令の演算操作について、前記演算操作が準同型演算に対応し、暗号アルゴリズムが準同型暗号である場合、前記データベースのデータの暗号文のまま前記演算操作を行い、暗号文の演算結果を、前記ユーザ装置に送信する処理を前記コンピュータに実行させる付記24乃至29のいずれか一に記載のプログラム。
前記データベース操作命令の演算が、前記データベースに暗号文で格納されている操作対象のデータが、暗号文のままでは前記演算を行えない暗号アルゴリズムで暗号化されている場合、前記操作対象の暗号化データを、前記ユーザ装置に送信する処理を、前記コンピュータに実行させる、付記24乃至29のいずれか一に記載のプログラム。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記ユーザ装置は、前記カラムデータに対して設定された機密度情報に対応する暗号アルゴリズムで暗号化してデータベース制御装置に送信し、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成する処理、
テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表で前記暗号文テーブルを管理する処理
を、前記コンピュータに実行させる、付記24乃至31のいずれか一に記載のプログラム。
前記ユーザ装置から送信された公開鍵を用いてメタデータ及び/又はデータを暗号化する暗号演算処理を、前記コンピュータに実行させる、付記24乃至32のいずれか一に記載のプログラム。
前記データベース内のテーブルのカラムデータを暗号化する場合、前記データベースからカラムデータを読み出し、前記ユーザ装置から公開鍵情報を取得し、前記カラムデータに対して暗号化を行う処理、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成する処理、
テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表で前記暗号文テーブルを管理する処理
を前記コンピュータに実行させる、付記33記載のプログラム。
前記ユーザ装置から、カラムデータを追加するデータベース操作命令を入力すると、前記データベースの前記暗号文テーブルに更新した通番と暗号文の対を追加する処理を前記コンピュータに実行させる、付記32又は34記載のプログラム。
前記データベースに記憶されているデータの機密度情報を変更の指示を受けると、
前記データベースに格納されている暗号化データを前記ユーザ装置に送信する処理、
前記ユーザ装置側で前記暗号化データを平文に復号化し、前記平文を、変更された前記機密度情報に対応する暗号アルゴリズムで再暗号化したデータを、前記ユーザ装置から受け取り、前記データベースに前記再暗号化したデータを格納する処理
を前記コンピュータに実行させる、付記23記載のプログラム。
11 データベース
12 データベース制御手段
13 暗号プロトコル情報記憶部
14 安全性設定情報記憶部
20 ユーザシステム
21 データベース利用アプリケーション(プログラム)
22 アプリケーション応答手段
23 鍵利用手段
24 鍵情報記憶部
25 安全性設定情報一時記憶部
26 安全性設定手段
27 入力/出力装置
30 ネットワーク
111 暗号プロトコル情報テーブル
112 安全性設定情報テーブル
121 データベース操作部
122 暗号プロトコル処理実行部
123 暗号プロトコル情報操作部
124 安全性設定情報操作部
125 処理・通信制御部
126 暗号演算部
221 処理・通信制御部
222 暗号プロトコル処理実行部
223 データベース操作変換処理部
224 暗号演算部
225 安全性設定情報操作部
231 暗号演算部
232 鍵情報管理部
261 設定表示部
262 設定入力部
Claims (25)
- データベースに対するデータアクセス制御を行う制御手段を備え、
前記制御手段は、ユーザ装置からデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する手段と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算を実行する手段と、
を備え、処理結果を前記ユーザ装置に返す、ことを特徴とするデータベース装置。 - 前記制御手段は、前記ユーザ装置から送信された前記データベース操作命令を受け、前記データベースに暗号化して格納されている操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、処理結果を暗号文として出力し、前記ユーザ装置に送信する、ことを特徴とする請求項1記載のデータベース装置。
- 前記制御手段は、前記データベース操作命令の演算の部分演算の演算結果を暗号文で前記ユーザ装置に返し、前記ユーザ装置では、さらに平文での部分演算が必要な場合、前記暗号文を平文に復号化したデータに対する部分演算を行い、前記データベース操作命令の演算に、さらに暗号文での部分演算が残っており、且つ、暗号文での部分演算が可能な場合、前記ユーザ装置は、前記平文での部分演算の結果を暗号化した暗号文を、前記制御手段に送信し、
前記制御手段は、前記ユーザ装置から送信された前記暗号文を用い、前記データベース操作命令の演算の残りの部分演算を暗号文で行い、前記部分演算の演算結果を暗号文で前記ユーザ装置に返す、ことを特徴とする請求項1又は2記載のデータベース装置。 - 前記データベースに格納されるテーブル名、カラム名を含む前記メタデータの暗号化の有無、データの暗号化の有無、データの安全性の程度を表す機密度情報、前記機密度情報に対応した暗号アルゴリズムの識別情報を記憶保持する第1の記憶部と、
前記データベース操作命令の処理内容と、機密度情報と、暗号アリゴリズムとを関連付ける暗号プロトコル識別情報を少なくとも記憶保持する第2の記憶部と、
を備えた、ことを特徴とする請求項1乃至3のいずれか1項に記載のデータベース装置。 - 前記データベースが、前記第1及び/又は第2の記憶部の少なくとも1方の記憶部として機能し、
前記第1及び/又は第2の記憶部に記憶される情報を前記データベース内のテーブルとして保持する、ことを特徴とする請求項4記載のデータベース装置。 - 前記制御手段は、前記機密度情報に対応した暗号アルゴリズムで暗号化されるデータに対して、前記第2の記憶部に記憶保持された暗号プロトコル識別情報に基づき、前記データベース操作命令に対応した処理を暗号文状態のまま実行する暗号プロトコル処理実行部を備えた、ことを特徴とする請求項4又は5記載のデータベース装置。
- 前記制御手段は、前記データベース操作命令の演算操作について、前記演算操作が準同型演算に対応し、暗号アルゴリズムが準同型暗号である場合、前記データベースのデータの暗号文のまま前記演算操作を行い、暗号文の演算結果を、前記ユーザ装置に送信する、ことを特徴とする請求項1乃至6のいずれか1項に記載のデータベース装置。
- 前記制御手段は、前記データベース操作命令の演算が、前記データベースに暗号文で格納されている操作対象のデータが、暗号文のままでは前記演算を行えない暗号アルゴリズムで暗号化されている場合、前記操作対象の暗号化データを、前記ユーザ装置に送信し、
前記ユーザ装置では、前記暗号化データを平文に復号して、前記演算を行う、ことを特徴とする請求項1乃至6のいずれか1項に記載のデータベース装置。 - 前記データベース内のテーブルのカラムデータを暗号化する場合、前記ユーザ装置は、前記カラムデータに対して設定された機密度情報に対応する暗号アルゴリズムで暗号化して前記制御手段に送信し、
前記制御手段は、通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする請求項1乃至8のいずれか1項に記載のデータベース装置。 - 前記制御手段が、前記ユーザ装置から送信された公開鍵を用いてメタデータ及び/又はデータを暗号化する暗号演算部を備えた、ことを特徴とする請求項1乃至9のいずれか1項に記載のデータベース装置。
- 前記データベース内のテーブルのカラムデータを暗号化する場合、前記データベースからカラムデータを読み出し、前記ユーザ装置から公開鍵情報を取得し、前記暗号演算部で前記カラムデータに対して暗号化を行い、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする請求項10記載のデータベース装置。 - 前記制御手段は、前記ユーザ装置から、カラムデータを追加するデータベース操作命令を入力すると、前記データベースの前記暗号文テーブルに更新した通番と暗号文の対を追加する、ことを特徴とする請求項9又は11記載のデータベース装置。
- 前記データベースに記憶されているデータの機密度情報を変更の指示を受けると、
前記制御手段は、前記データベースに格納されている暗号化データを前記ユーザ装置に送信し、
前記ユーザ装置側で前記暗号化データを平文に復号化し、前記平文を、変更された前記機密度情報に対応する暗号アルゴリズムで再暗号化したデータを、前記ユーザ装置から受け取り、前記データベースに前記再暗号化したデータを格納する、ことを特徴とする請求項1記載のデータベース装置。 - データベースに対するデータアクセス制御にあたり、ユーザ装置からのデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算と、
平文データ及び/又は平文メタデータに対するデータベース操作又は演算
の少なくとも一方を実行し、
処理結果を前記ユーザ装置に返す、ことを特徴とするデータベース制御方法。 - 前記ユーザ装置から送信されたデータベース操作命令を受け、前記データベースに暗号化して格納された操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又は演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、暗号文の処理結果を前記ユーザ装置に送信する、ことを特徴とする請求項14記載のデータベース制御方法。
- 前記データベースに格納されるテーブル名、カラム名を含む前記メタデータの暗号化の有無、データの暗号化の有無、データの安全性の程度を表す機密度情報、前記機密度情報に対応した暗号アルゴリズムの識別情報を第1の記憶部で記憶管理し、
前記データベース操作命令の処理内容と、機密度情報と、暗号アリゴリズムとを関連付ける暗号プロトコル識別情報を少なくとも第2の記憶部で記憶管理する、ことを特徴とする請求項14又は15記載のデータベース制御方法。 - 前記機密度情報に対応した暗号アルゴリズムで暗号化されるデータに対して、前記第2の記憶部に記憶保持された暗号プロトコル識別情報に基づき、前記データベース操作命令に対応した処理を暗号文状態のまま実行する、ことを特徴とする請求項16記載のデータベース制御方法。
- 前記データベース操作命令の演算操作について、前記演算操作が準同型演算に対応し、暗号アルゴリズムが準同型暗号である場合、前記データベースのデータの暗号文のまま前記演算操作を行い、暗号文の演算結果を、前記ユーザ装置に送信する、ことを特徴とする請求項14乃至17のいずれか1項に記載のデータベース制御方法。
- 前記データベース操作命令の演算が、前記データベースに暗号文で格納されている操作対象のデータが暗号文のままでは前記演算を行えない暗号アルゴリズムで暗号化されている場合、前記データベースの暗号化データを、前記ユーザ装置に送信し、
前記ユーザ装置では、前記暗号化データを復号した平文データに対して、演算を行う、ことを特徴とする請求項14乃至17のいずれか1項に記載のデータベース制御方法。 - 前記データベース内のテーブルのカラムデータを暗号化する場合、前記ユーザ装置は、前記カラムデータに対して設定された機密度情報に対応する暗号アルゴリズムで暗号化して前記データベース装置に送信し、
前記データベース装置は、通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表にて前記暗号文テーブルを管理する、ことを特徴とする請求項14乃至19のいずれか1項に記載のデータベース制御方法。 - 前記データベース内のテーブルのカラムデータを暗号化する場合、前記データベースからカラムデータを読み出し、前記ユーザ装置から公開鍵情報を取得して前記カラムデータに対して暗号化を行い、
通番と前記カラムデータの暗号文との対を含む暗号文テーブルを作成し、
前記暗号文テーブルの管理のために、テーブル名、カラム名、暗号アルゴリズム、暗号文テーブル名を組として含む暗号文テーブル情報表を備えている、ことを特徴とする請求項14乃至19のいずれか1項に記載のデータベース制御方法。 - 前記ユーザ装置から、カラムデータを追加するデータベース操作命令を入力すると、前記データベースの前記暗号文テーブルに更新した通番と暗号文の対を追加する、ことを特徴とする請求項20又は21記載のデータベース制御方法。
- 前記データベースに記憶されているデータの機密度情報を変更の指示を受けると、
前記データベース装置は、前記データベースに格納されている暗号化データを前記ユーザ装置に送信し、
前記ユーザ装置側で前記暗号化データを平文に復号化し、前記平文を、変更された前記機密度情報に対応する暗号アルゴリズムで再暗号化したデータを、前記ユーザ装置から受け取り、前記データベースに、前記再暗号化したデータを格納する、ことを特徴とする請求項14記載のデータベース制御方法。 - ユーザ装置に通信接続され、データベースに対するデータアクセス制御を行うデータベース制御装置を構成するコンピュータに、
前記ユーザ装置からのデータベース操作命令を受け、前記データベース操作命令で扱うデータ及び/又はメタデータに関して、
暗号化データ及び/又は暗号化メタデータを暗号文のままデータベース操作又は演算を実行する処理と、
平文データ及び/又はメタデータに対するデータベース操作又は演算を実行する処理との少なくとも一方の処理と、
前記データベース操作の処理結果を前記ユーザ装置に返す処理と、
を実行させるプログラム。 - 前記ユーザ装置から送信されたデータベース操作命令を受け、前記データベースに暗号化して格納された操作対象のデータが、暗号文のまま操作又は演算が可能な暗号アルゴリズムで暗号化されており、且つ、前記データベース操作命令の操作又は演算が、暗号文のまま操作又は演算が可能な操作又は演算である場合、前記操作対象のデータに対して暗号文のまま操作又は演算を行い、暗号文の処理結果を前記ユーザ装置に送信する処理を前記コンピュータに実行させる請求項24記載のプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12848480.5A EP2778952B1 (en) | 2011-11-11 | 2012-11-09 | Database device, method and program |
JP2013543043A JP6048414B2 (ja) | 2011-11-11 | 2012-11-09 | データベース装置と方法及びプログラム |
US14/357,478 US9600677B2 (en) | 2011-11-11 | 2012-11-09 | Database apparatus, method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-247909 | 2011-11-11 | ||
JP2011247909 | 2011-11-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013069770A1 true WO2013069770A1 (ja) | 2013-05-16 |
Family
ID=48290137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/079126 WO2013069770A1 (ja) | 2011-11-11 | 2012-11-09 | データベース装置と方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9600677B2 (ja) |
EP (1) | EP2778952B1 (ja) |
JP (1) | JP6048414B2 (ja) |
WO (1) | WO2013069770A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170022455A (ko) * | 2015-08-20 | 2017-03-02 | 에스케이텔레콤 주식회사 | 협력형으로 개인정보를 보호하는 통신환경에서의 분석서버 및 분석서버의 동작 방법, 서비스제공장치 및 서비스제공장치의 동작 방법 |
JP2021132376A (ja) * | 2020-02-20 | 2021-09-09 | Eaglys株式会社 | 情報処理システム、情報処理装置、情報処理方法、および、情報処理プログラム |
JP7011874B1 (ja) | 2021-09-23 | 2022-01-27 | Eaglys株式会社 | データ共有システム、データ共有方法およびデータ共有プログラム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775823B2 (en) | 2006-12-29 | 2014-07-08 | Commvault Systems, Inc. | System and method for encrypting secondary copies of data |
US9087209B2 (en) * | 2012-09-26 | 2015-07-21 | Protegrity Corporation | Database access control |
JP6225918B2 (ja) * | 2012-12-12 | 2017-11-08 | 日本電気株式会社 | データベース検索装置、データベース検索方法及びプログラム |
US20140281545A1 (en) | 2013-03-12 | 2014-09-18 | Commvault Systems, Inc. | Multi-layer embedded encryption |
US9405928B2 (en) | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US9516065B2 (en) * | 2014-12-23 | 2016-12-06 | Freescale Semiconductor, Inc. | Secure communication device and method |
JP6186387B2 (ja) * | 2015-03-19 | 2017-08-23 | 株式会社日立製作所 | 秘匿データ処理システム |
WO2016179525A1 (en) * | 2015-05-07 | 2016-11-10 | ZeroDB, Inc. | Zero-knowledge databases |
US10742628B2 (en) * | 2016-08-11 | 2020-08-11 | Unisys Corporation | Secured cloud storage broker with enhanced security |
US10601593B2 (en) * | 2016-09-23 | 2020-03-24 | Microsoft Technology Licensing, Llc | Type-based database confidentiality using trusted computing |
KR101983120B1 (ko) * | 2016-11-25 | 2019-05-31 | 주식회사 실크로드소프트 | 데이터베이스의 이중화를 위한 방법 |
JP2018128602A (ja) * | 2017-02-09 | 2018-08-16 | 日本電気株式会社 | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム |
CN107392014B (zh) * | 2017-06-23 | 2021-04-30 | 复旦大学 | 基于数据库结构随机变化的sql注入防御方法和系统 |
US10893505B2 (en) | 2018-01-23 | 2021-01-12 | Statum Systems Inc. | Enhanced pager network |
US11074997B2 (en) * | 2018-01-23 | 2021-07-27 | Statum Systems Inc. | Multi-modal encrypted messaging system |
TW202030671A (zh) * | 2019-02-01 | 2020-08-16 | 和碩聯合科技股份有限公司 | 資料分析系統與資料分析方法 |
CN111200613B (zh) * | 2020-01-07 | 2022-06-07 | 北京链道科技有限公司 | 一种基于端到端模型的代码可信执行方法 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11222134B2 (en) | 2020-03-04 | 2022-01-11 | Sotero, Inc. | System and methods for data encryption and application-agnostic querying of encrypted data |
US11501014B2 (en) * | 2020-05-07 | 2022-11-15 | International Business Machines Corporation | Secure data replication in distributed data storage environments |
WO2023283423A1 (en) | 2021-07-09 | 2023-01-12 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting malicious database access |
US12032694B2 (en) | 2022-09-14 | 2024-07-09 | Sotero, Inc. | Autonomous machine learning methods for detecting and thwarting ransomware attacks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002029577A2 (en) | 2000-10-06 | 2002-04-11 | Oracle Corporation | Method and apparatus for automatic database encryption |
JP2002169808A (ja) * | 2000-11-30 | 2002-06-14 | Hitachi Ltd | セキュアマルチデータベースシステム |
JP2004234344A (ja) | 2003-01-30 | 2004-08-19 | Kddi Corp | データベースアクセスシステム |
JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260921A1 (en) * | 2002-07-18 | 2004-12-23 | Treadwell William S. | Cryptographic method, system and engine for enciphered message transmission |
US8666065B2 (en) * | 2003-02-07 | 2014-03-04 | Britesmart Llc | Real-time data encryption |
US7685437B2 (en) * | 2003-05-30 | 2010-03-23 | International Business Machines Corporation | Query optimization in encrypted database systems |
US7500111B2 (en) * | 2003-05-30 | 2009-03-03 | International Business Machines Corporation | Querying encrypted data in a relational database system |
US7395437B2 (en) * | 2004-01-05 | 2008-07-01 | International Business Machines Corporation | System and method for fast querying of encrypted databases |
US20060005017A1 (en) * | 2004-06-22 | 2006-01-05 | Black Alistair D | Method and apparatus for recognition and real time encryption of sensitive terms in documents |
US8171307B1 (en) * | 2006-05-26 | 2012-05-01 | Netapp, Inc. | Background encryption of disks in a large cluster |
US8284944B2 (en) * | 2008-03-13 | 2012-10-09 | International Business Machines Corporation | Unified and persistent system and method for automatic configuration of encryption |
US20100146299A1 (en) * | 2008-10-29 | 2010-06-10 | Ashwin Swaminathan | System and method for confidentiality-preserving rank-ordered search |
US8165305B2 (en) * | 2008-12-08 | 2012-04-24 | Harrison Corporation | Enhanced relational database security through encryption of table indices |
KR101371608B1 (ko) * | 2011-10-10 | 2014-03-14 | 주식회사 알티베이스 | Dbms 및 데이터베이스에서 암호화 방법 |
-
2012
- 2012-11-09 JP JP2013543043A patent/JP6048414B2/ja active Active
- 2012-11-09 US US14/357,478 patent/US9600677B2/en active Active
- 2012-11-09 EP EP12848480.5A patent/EP2778952B1/en active Active
- 2012-11-09 WO PCT/JP2012/079126 patent/WO2013069770A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002029577A2 (en) | 2000-10-06 | 2002-04-11 | Oracle Corporation | Method and apparatus for automatic database encryption |
JP2004528615A (ja) | 2000-10-06 | 2004-09-16 | オラクル コーポレーション | 自動データベース暗号化の方法および装置 |
JP2002169808A (ja) * | 2000-11-30 | 2002-06-14 | Hitachi Ltd | セキュアマルチデータベースシステム |
JP2004234344A (ja) | 2003-01-30 | 2004-08-19 | Kddi Corp | データベースアクセスシステム |
JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
Non-Patent Citations (2)
Title |
---|
CRAIG GENTRY: "Fully Homomorphic Encryption Using Ideal Lattices", STOC'09, 31 May 2009 (2009-05-31), pages 169 - 178, XP058164708, DOI: doi:10.1145/1536414.1536440 |
See also references of EP2778952A4 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170022455A (ko) * | 2015-08-20 | 2017-03-02 | 에스케이텔레콤 주식회사 | 협력형으로 개인정보를 보호하는 통신환경에서의 분석서버 및 분석서버의 동작 방법, 서비스제공장치 및 서비스제공장치의 동작 방법 |
KR102245886B1 (ko) * | 2015-08-20 | 2021-04-28 | 에스케이텔레콤 주식회사 | 협력형으로 개인정보를 보호하는 통신환경에서의 분석서버 및 분석서버의 동작 방법, 서비스제공장치 및 서비스제공장치의 동작 방법 |
JP2021132376A (ja) * | 2020-02-20 | 2021-09-09 | Eaglys株式会社 | 情報処理システム、情報処理装置、情報処理方法、および、情報処理プログラム |
JP7011874B1 (ja) | 2021-09-23 | 2022-01-27 | Eaglys株式会社 | データ共有システム、データ共有方法およびデータ共有プログラム |
WO2023047926A1 (ja) * | 2021-09-23 | 2023-03-30 | Eaglys株式会社 | データ共有システム、データ共有方法およびデータ共有プログラム |
JP2023046341A (ja) * | 2021-09-23 | 2023-04-04 | Eaglys株式会社 | データ共有システム、データ共有方法およびデータ共有プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP2778952B1 (en) | 2017-06-28 |
JP6048414B2 (ja) | 2016-12-21 |
EP2778952A4 (en) | 2015-04-22 |
JPWO2013069770A1 (ja) | 2015-04-02 |
EP2778952A1 (en) | 2014-09-17 |
US9600677B2 (en) | 2017-03-21 |
US20140325217A1 (en) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5679018B2 (ja) | データベース暗号化システムと方法及びプログラム | |
JP6048414B2 (ja) | データベース装置と方法及びプログラム | |
JP6609010B2 (ja) | 複数許可データセキュリティ及びアクセス | |
US10439804B2 (en) | Data encrypting system with encryption service module and supporting infrastructure for transparently providing encryption services to encryption service consumer processes across encryption service state changes | |
US8565422B2 (en) | Method and system for enryption key versioning and key rotation in a multi-tenant environment | |
US10642828B2 (en) | Searchable encryption scheme with external tokenizer | |
CN111884986B (zh) | 一种数据加密处理方法、装置及存储介质 | |
US20090138700A1 (en) | Cryptographic management apparatus, decryption management apparatus and program | |
US20170099144A1 (en) | Embedded encryption platform comprising an algorithmically flexible multiple parameter encryption system | |
US10142100B2 (en) | Managing user-controlled security keys in cloud-based scenarios | |
KR101648364B1 (ko) | 대칭키 암호화와 비대칭키 이중 암호화를 복합적으로 적용한 암/복호화 속도개선 방법 | |
JP2009510616A (ja) | データベース内の機密データを保護するためのシステム及び方法 | |
JP5140026B2 (ja) | データベース処理方法、データベース処理プログラム、および、暗号化装置 | |
CN113517981B (zh) | 一种密钥管理方法、代码版本的管理方法及装置 | |
JP7325872B1 (ja) | 秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 | |
JP5561782B2 (ja) | 電子データ管理システム、サーバ装置、電子データ管理方法、及びプログラム | |
CN112671766A (zh) | 一种使用私有前置服务器实现隐私信息安全存储的方法 | |
Tu | Lecture 20: Security and privacy for data processing |
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: 12848480 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2012848480 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012848480 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2013543043 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14357478 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |