WO2022130558A1 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
WO2022130558A1
WO2022130558A1 PCT/JP2020/047098 JP2020047098W WO2022130558A1 WO 2022130558 A1 WO2022130558 A1 WO 2022130558A1 JP 2020047098 W JP2020047098 W JP 2020047098W WO 2022130558 A1 WO2022130558 A1 WO 2022130558A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
encrypted
unit
falsification
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2020/047098
Other languages
English (en)
French (fr)
Inventor
綱人 中井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to PCT/JP2020/047098 priority Critical patent/WO2022130558A1/ja
Priority to JP2021522565A priority patent/JP6987308B1/ja
Priority to CN202080107801.1A priority patent/CN116569167B/zh
Priority to DE112020007680.6T priority patent/DE112020007680B4/de
Publication of WO2022130558A1 publication Critical patent/WO2022130558A1/ja
Priority to US18/138,972 priority patent/US12355883B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • This disclosure relates to confidentiality and falsification detection for model information of learning models.
  • model information such as architecture and parameters for the learning model obtained by machine learning. It is also desired to detect falsification when the model information is falsified.
  • Non-Patent Document 1 discloses a method for realizing concealment of learning model information.
  • the execution environment is virtually separated, and the encrypted learning model information is decrypted only in the secure execution environment (secure OS, trusted OS), and the machine learning calculation is executed.
  • Non-Patent Document 1 In the method of Non-Patent Document 1, only the learning model information is concealed, and falsification detection is not realized.
  • the purpose of this disclosure is to conceal the model information of the learning model and detect falsification of the learning model information.
  • the information processing device of the present disclosure is A rich execution unit that runs an application while running a rich operating system, A secure execution unit that executes a target operation, which is an operation based on a learning model, while executing a secure operating system.
  • the secure execution unit is A decryption processing unit that decodes model information from the encrypted model information of the learning model when the application requests execution of the target operation.
  • An operation execution unit that executes the target operation using the model information
  • a falsification detection unit that determines whether the encrypted model information is falsification information
  • An output control unit that passes the execution result of the target operation to the application when it is determined that the encrypted model information is not the falsification information.
  • FIG. The flowchart of the information processing method in Embodiment 1.
  • the flowchart of the information processing method in Embodiment 1. The block diagram of the information processing apparatus 100 in Embodiment 2.
  • FIG. The flowchart of the information processing method in Embodiment 2.
  • the flowchart of the information processing method in Embodiment 2. The figure which shows the application example of GCM in Embodiment 2.
  • FIG. The figure which shows the application example of GCM to the three-layer neural network in Embodiment 2.
  • FIG. The hardware configuration diagram of the information processing apparatus 100 in an embodiment.
  • Embodiment 1 The information processing apparatus 100 will be described with reference to FIGS. 1 to 3.
  • the configuration of the information processing apparatus 100 is a computer including hardware such as a processor 101, a memory management unit 102, a rich memory 103, a storage 104, and a secure memory 105. These hardware are connected to each other via a signal line.
  • the processor 101 is an IC that performs arithmetic processing and controls other hardware.
  • the processor 101 is a CPU, DSP or GPU.
  • IC is an abbreviation for Integrated Circuit.
  • CPU is an abbreviation for Central Processing Unit.
  • DSP is an abbreviation for Digital Signal Processor.
  • GPU is an abbreviation for Graphics Processing Unit.
  • the memory management unit 102 controls access to the rich memory 103.
  • the rich memory 103 is a general-purpose memory, and is also referred to as a main storage device or a main memory.
  • the memory is a volatile or non-volatile storage device.
  • the memory is RAM.
  • the data stored in the memory is stored in the storage 104 as needed.
  • RAM is an abbreviation for Random Access Memory.
  • the storage 104 is a non-volatile storage device and is also referred to as an auxiliary storage device.
  • the storage 104 is a ROM, HDD or flash memory.
  • the data stored in the storage 104 is loaded into the rich memory 103 as needed.
  • ROM is an abbreviation for Read Only Memory.
  • HDD is an abbreviation for Hard Disk Drive.
  • the storage 104 stores the learning model information 191 and the reference authentication tag 192.
  • the secure memory 105 is a memory having a security function and enhanced security.
  • the secure memory 105 stores the encryption key 193 and the like.
  • the information processing apparatus 100 includes elements such as a rich execution unit 110, a secure execution unit 120, and a monitor unit 130. These elements are realized by software.
  • the storage 104 stores an information processing program for operating a computer as a rich execution unit 110, a secure execution unit 120, and a monitor unit 130.
  • the information processing program is loaded into the rich memory 103 and executed by the processor 101.
  • the OS is further stored in the storage 104. At least a portion of the OS is loaded into the rich memory 103 and executed by the processor 101.
  • the processor 101 executes an information processing program while executing an OS.
  • OS is an abbreviation for Operating System.
  • the information processing device 100 may include a plurality of processors that replace the processor 101.
  • the information processing program can be recorded (stored) in a non-volatile recording medium such as an optical disk or a flash memory so that it can be read by a computer.
  • a non-volatile recording medium such as an optical disk or a flash memory
  • the rich execution unit 110 executes the application 111 while executing the rich OS.
  • the rich OS is a general-purpose OS.
  • Application 111 is an application program.
  • the secure execution unit 120 executes the target operation while executing the secure OS.
  • a secure OS is an OS that has a security function and has enhanced security.
  • the target operation is an operation based on a learning model. Specifically, the target operation is an operation that updates the learning model by machine learning, or an operation that analyzes input data using the learning model.
  • a specific example of machine learning is deep learning. However, machine learning is not limited to deep learning, and may be regression method, decision tree learning, Bayesian method, clustering, or the like.
  • the secure execution unit 120 includes elements such as a calculation execution unit 121, a decoding processing unit 122, a falsification detection unit 123, and an output control unit 124. These elements will be described later.
  • the monitor unit 130 functions as a virtual monitor and includes a switching unit 131.
  • the switching unit 131 switches the execution environment of the information processing apparatus 100 to an environment using a rich OS or an environment using a secure OS. However, switching of the execution environment may be realized by another method.
  • the information processing apparatus 100 may not include the monitor unit 130, and the memory management unit 102 may include the switching unit 131.
  • the decoding processing unit 122 decodes the model information from the learning model information 191 when the application 111 requests the execution of the target operation.
  • the learning model information 191 includes encryption model information.
  • the encrypted model information is the encrypted model information of the learning model.
  • the calculation execution unit 121 executes the target operation using the model information.
  • the falsification detection unit 123 determines whether the encryption model information is falsification information. Falsified information means tampered information.
  • the output control unit 124 passes the execution result of the target operation to the application 111 when it is determined that the encryption model information is not falsification information.
  • the calculation execution unit 121 executes the target operation using the model information when it is determined that the encrypted model information is not falsified information.
  • the output control unit 124 passes a falsification notification to the application 111 when it is determined that the encryption model information is falsification information.
  • the falsification notification is a notification for notifying the falsification of the encrypted model information, and is also called a falsification detection alert.
  • the operation procedure of the information processing apparatus 100 corresponds to the information processing method. Further, the operation procedure of the information processing apparatus 100 corresponds to the processing procedure by the information processing program.
  • step S101 the rich execution unit 110 starts executing the application 111. Then, the rich execution unit 110 sends a calculation request from the application 111 to the switching unit 131.
  • the operation request is a request for executing the target operation.
  • the switching unit 131 sends a calculation request to the calculation execution unit 121.
  • the calculation execution unit 121 acquires the learning model information 191 by the memory management unit 102.
  • the memory management unit 102 reads the learning model information 191 from the storage 104 into the memory area for the arithmetic execution unit 121 in the rich memory 103.
  • the learning model information 191 includes reference information and encryption model information.
  • the encrypted model information is the encrypted model information of the learning model.
  • the model information includes model configuration information and parameters.
  • the model configuration information indicates the configuration of the learning model.
  • the reference information indicates the reference destination of the encrypted model configuration information and the encryption parameter, respectively. The reference destination points to a position in the learning model information 191.
  • step S112 the calculation execution unit 121 refers to the reference information in the learning model information 191 and notifies the decoding processing unit 122 of the reference destination of the encrypted model configuration information.
  • the decryption processing unit 122 acquires the encrypted model configuration information of the reference destination notified by the memory management unit 102.
  • the memory management unit 102 reads the encrypted model configuration information from the storage 104 into the memory area for the decryption processing unit 122 in the rich memory 103. Then, the decryption processing unit 122 decodes the model configuration information from the encrypted model configuration information by using the encryption key 193 stored in the secure memory 105.
  • step S113 the calculation execution unit 121 acquires the model configuration information from the decoding processing unit 122 and sets the model configuration information in the target operation.
  • step S114 the calculation execution unit 121 refers to the reference information in the learning model information 191 and notifies the decoding processing unit 122 of the reference destination of the encrypted parameter.
  • the decryption processing unit 122 acquires the encrypted parameter of the reference destination notified by the memory management unit 102.
  • the memory management unit 102 reads the encrypted parameters from the storage 104 into the memory area for the decryption processing unit 122 in the rich memory 103. Then, the decryption processing unit 122 decodes the parameter from the encrypted parameter by using the encryption key 193 stored in the secure memory 105.
  • step S115 the calculation execution unit 121 acquires a parameter from the decoding processing unit 122 and sets the parameter in the target operation.
  • step S121 the calculation execution unit 121 passes the learning model information 191 to the falsification detection unit 123.
  • the falsification detection unit 123 generates an authentication tag for learning model information 191.
  • the authentication tag is calculated by a specific calculation.
  • the authentication tag is also called a message authentication code.
  • the generated authentication tag is referred to as a "verification authentication tag”.
  • the falsification detection unit 123 acquires the reference authentication tag 192 by the memory management unit 102.
  • the memory management unit 102 reads the reference authentication tag 192 from the storage 104 into the memory area for the tampering detection unit 123 in the rich memory 103.
  • the reference authentication tag 192 is an authentication tag of the original learning model information 191, that is, an authentication tag of the learning model information 191 that has not been tampered with.
  • step S123 the falsification detection unit 123 collates the verification authentication tag with the reference authentication tag 192. Then, the falsification detection unit 123 determines whether the encrypted model information is falsification information based on the collation result. When the verification authentication tag matches the reference authentication tag 192, the falsification detection unit 123 determines that the encrypted model information is not falsification information. Then, the process proceeds to step S131. If the verification authentication tag does not match the reference authentication tag 192, the falsification detection unit 123 determines that the encrypted model information is falsification information. Then, the process proceeds to step S141.
  • step S131 the falsification detection unit 123 notifies the output control unit 124 of a determination result indicating that the encrypted model information is not falsification information.
  • the output control unit 124 notifies the calculation execution unit 121 of the execution instruction.
  • the calculation execution unit 121 acquires input data from the application 111 by the memory management unit 102.
  • the memory management unit 102 reads the input data from the memory area for the application 111 in the rich memory 103 into the memory area for the calculation execution unit 121 in the rich memory 103.
  • step S132 the calculation execution unit 121 executes the target operation on the input data.
  • step S133 the calculation execution unit 121 passes the calculation result to the output control unit 124.
  • the operation result is the execution result of the target operation, that is, the result obtained by executing the target operation.
  • the output control unit 124 passes the calculation result to the application 111 by the memory management unit 102.
  • the memory management unit 102 writes the calculation result in the memory area for the application 111 in the rich memory 103.
  • step S141 the falsification detection unit 123 notifies the output control unit 124 of a determination result indicating that the encrypted model information is falsification information.
  • the output control unit 124 passes the falsification notification to the application 111 by the memory management unit 102.
  • the memory management unit 102 writes the falsification notification to the memory area for the application 111 in the rich memory 103.
  • step S151 the output control unit 124 sends a completion response to the switching unit 131.
  • the completion response is a response to the operation request.
  • the switching unit 131 sends a completion response to the rich execution unit 110.
  • the rich execution unit 110 executes a process when the calculation result is obtained or a process when the falsification notification is obtained by the application 111.
  • the information processing apparatus 100 decodes the encrypted model configuration information and the encrypted parameters. Further, the information processing apparatus 100 implements falsification detection. Then, the information processing apparatus 100 selects whether to execute an operation and output a result or to output a falsification notification based on the presence or absence of falsification. This makes it possible to both conceal model information and detect falsification of model information in a secure execution environment.
  • Embodiment 2 The mode of suppressing the overhead of the memory resource and the calculation time will be described mainly different from the first embodiment with reference to FIGS. 4 to 8.
  • the configuration of the information processing apparatus 100 will be described with reference to FIG.
  • the information processing device 100 further includes a storage reference unit 125.
  • the storage reference unit 125 is realized by software.
  • the information processing program further causes the computer to function as a storage reference unit 125.
  • the falsification detection unit 123 executes a calculation process for determining whether the encrypted model information is falsification information in parallel with the target operation or in parallel with the target operation.
  • the falsification detection unit 123 executes the above calculation process as follows.
  • the target operation includes operations on a plurality of arithmetic functions whose execution order is determined.
  • the encrypted model information contains the encrypted parameters of each of the plurality of arithmetic functions.
  • the decryption processing unit 122 decodes the parameter of each arithmetic function from the encrypted parameter of each arithmetic function.
  • the arithmetic execution unit 121 calculates each arithmetic function using the parameters of each arithmetic function according to the execution order.
  • the tampering detection unit 123 executes the above calculation process using the encrypted parameters of each arithmetic function in parallel with the arithmetic of each arithmetic function or in parallel with the arithmetic of each arithmetic function according to the execution order.
  • the falsification detection unit 123 executes the above calculation process as follows.
  • the encrypted model information includes the encrypted model configuration information.
  • the falsification detection unit 123 generates an authentication tag for the encrypted model configuration information as a provisional authentication tag.
  • the falsification detection unit 123 executes the above calculation process using the encrypted parameters of each arithmetic function according to the execution order to update the provisional authentication tag.
  • the falsification detection unit 123 generates a verification authentication tag using the updated provisional authentication tag.
  • the falsification detection unit 123 collates the verification authentication tag with the reference authentication tag 192, and determines whether the encrypted model information is falsification information.
  • the output control unit 124 passes a falsification notification to the application 111 when it is determined that the encrypted model information is falsification information.
  • step S201 the rich execution unit 110 sends a calculation request from the application 111 to the switching unit 131.
  • Step S201 is the same as step S101 in the first embodiment.
  • step S211th the calculation execution unit 121 acquires the learning model information 191 by the memory management unit 102.
  • Step S211 is the same as step S111 in the first embodiment.
  • step S212 the calculation execution unit 121 passes the learning model information 191 to the storage reference unit 125.
  • the storage reference unit 125 acquires the encrypted model configuration information from the learning model information 191 and passes the encrypted model configuration information to the decryption processing unit 122.
  • the decryption processing unit 122 decodes the model configuration information from the encrypted model configuration information by using the encryption key 193 stored in the secure memory 105.
  • step S213 the calculation execution unit 121 acquires the model configuration information from the decoding processing unit 122 and sets the model configuration information for the target operation.
  • Step S213 is the same as step S113 in the first embodiment.
  • step S221 the storage reference unit 125 passes the encrypted model configuration information to the falsification detection unit 123.
  • the falsification detection unit 123 generates an authentication tag for encrypted model configuration information.
  • the generated authentication tag is referred to as a "provisional authentication tag”.
  • step S222 the calculation execution unit 121 acquires input data from the application 111 by the memory management unit 102.
  • the memory management unit 102 reads the input data from the memory area for the application 111 in the rich memory 103 into the memory area for the calculation execution unit 121 in the rich memory 103.
  • the target operation includes operations on a plurality of arithmetic functions whose execution order is determined. Steps S231 to S234 are executed for each arithmetic function according to the execution order of the plurality of arithmetic functions. That is, steps S231 to S234 are repeated as many times as the number of arithmetic functions.
  • the target arithmetic function is called a "target function”.
  • step S231 the storage reference unit 125 acquires the encrypted parameter of the target function from the learning model information 191 and passes the encrypted parameter of the target function to the decryption processing unit 122.
  • the decryption processing unit 122 decodes the parameter from the encrypted parameter of the target function by using the encryption key 193 stored in the secure memory 105.
  • step S232 the calculation execution unit 121 acquires a parameter from the decoding processing unit 122 and sets the parameter in the target function.
  • step S233 the storage reference unit 125 passes the encrypted parameter of the target function to the falsification detection unit 123.
  • the falsification detection unit 123 executes a calculation process using the encrypted parameters of the target function and updates the provisional authentication tag.
  • step S234 the calculation execution unit 121 calculates the target function. For example, when the target function is the first arithmetic function, the arithmetic execution unit 121 executes the target function on the input data. Further, when the target function is the second or subsequent arithmetic function, the arithmetic execution unit 121 executes the target function with respect to the operation result of the previous target function.
  • step S235 the arithmetic execution unit 121 determines whether the arithmetic of all the arithmetic functions has been completed. If the operations of all the arithmetic functions are not completed, the process proceeds to step S231. When the operations of all the arithmetic functions are completed, the process proceeds to step S241.
  • step S241 the falsification detection unit 123 generates a verification authentication tag using the provisional authentication tag.
  • step S242 the storage reference unit 125 acquires the reference authentication tag 192 by the memory management unit 102.
  • the memory management unit 102 reads the reference authentication tag 192 from the storage 104 into the memory area for the storage reference unit 125 in the rich memory 103.
  • the storage reference unit 125 passes the reference authentication tag 192 to the falsification detection unit 123.
  • the falsification detection unit 123 acquires the reference authentication tag 192 from the storage reference unit 125.
  • step S243 the falsification detection unit 123 collates the verification authentication tag with the reference authentication tag 192. Then, the falsification detection unit 123 determines whether the encrypted model information is falsification information based on the collation result. When the verification authentication tag matches the reference authentication tag 192, the falsification detection unit 123 determines that the encrypted model information is not falsification information. Then, the process proceeds to step S251. If the verification authentication tag does not match the reference authentication tag 192, the falsification detection unit 123 determines that the encrypted model information is falsification information. Then, the process proceeds to step S261.
  • step S251 the calculation execution unit 121 passes the calculation result to the output control unit 124.
  • Step S251 is the same as step S133 in the first embodiment. However, the execution result of the last arithmetic function is passed to the output control unit 124.
  • step S261 the output control unit 124 passes the falsification notification to the application 111 by the memory management unit 102.
  • Step S261 is the same as step S141 in the first embodiment.
  • step S271 the output control unit 124 sends a completion response to the switching unit 131.
  • Step S271 is the same as step S151 in the first embodiment.
  • GCM Galois / Counter Mode
  • the machine learning algorithm is composed of a plurality of machine-learned arithmetic functions (ML), and returns an arithmetic result (Autoput Data) for input data (Input Data).
  • the parameters (Plaintext) used in the machine learning operation are encrypted.
  • the encrypted parameter (Ciphertext) is decrypted and the parameter is used for the arithmetic function.
  • the provisional authentication tag (Out Data) is also updated sequentially. It should be noted that the parameters expanded sequentially and the intermediate results obtained by the arithmetic function are deleted or overwritten each time the arithmetic function is executed. As a result, the amount of data expanded in the rich memory 103 is reduced.
  • a verification authentication tag (Tag) is generated, the reference authentication tag 192 (Autth Tag) stored in the storage 104 is compared with the verification tag, and the presence or absence of tampering is confirmed. To. If there is no tampering, the calculation result (Autoput Data) is output. If there is falsification, a falsification notification (Autoput Data) is output instead of the calculation result.
  • the authenticated cryptographic processing and the machine learning arithmetic processing may be executed in parallel or may be processed in parallel.
  • the rich execution unit 110 manages the input data, the learning model information 191 and the reference authentication tag 192.
  • the learning model information 191 includes encrypted model configuration information.
  • the secure execution unit 120 decodes the model configuration information from the encrypted model configuration information. A plurality of arithmetic functions of a three-layer neural network are set in the model configuration information.
  • the reference authentication tag 192 is generated in advance. First, the input data is passed from the rich execution unit 110 to the secure execution unit 120. Next, the operation function (convolution operation) of the first layer is executed.
  • the parameters of the first layer are decoded and expanded in the memory area for the secure execution unit 120.
  • the provisional authentication tag is updated.
  • the second layer arithmetic function (convolution operation) is executed.
  • the parameters of the second layer are decoded and expanded in the memory area for the secure execution unit 120.
  • the provisional authentication tag is updated.
  • the operation function of the second layer is completed, the data (parameters, etc.) used in the operation is deleted from the memory area.
  • the first arithmetic function (fully combined multiplication) of the third layer is executed.
  • the parameter (weight) of the third layer is decoded and expanded in the memory area for the secure execution unit 120.
  • the provisional authentication tag is updated. After the end of the first arithmetic function of the third layer, the data (parameters and the like) used in the arithmetic are deleted from the memory area.
  • the second arithmetic function (fully combined addition) of the third layer is executed. At this time, the parameter (bias) of the third layer is decoded and expanded in the memory area for the secure execution unit 120.
  • the provisional authentication tag is updated. After the end of the second arithmetic function of the third layer, the data (parameters and the like) used in the arithmetic are deleted from the memory area.
  • a verification authentication tag is generated using the provisional authentication tag, the verification authentication tag is compared with the reference authentication tag 192, and the presence or absence of falsification is determined. If there is no falsification, the calculation result (output data) is passed from the secure execution unit 120 to the rich execution unit 110. If there is falsification, the falsification notification (output data) is passed from the secure execution unit 120 to the rich execution unit 110.
  • the plurality of operations may be executed separately as in the third layer. Moreover, you may execute a plurality of operations collectively without separating them.
  • two or more layers may be grouped together. That is, two or more operations of different layers may be executed together. Further, the input data may be divided into fixed data sizes or each operation may be executed.
  • the information processing apparatus 100 processes machine learning operations in parallel or in parallel in units of arithmetic functions. As a result, it is possible to suppress the overhead of memory resources and calculation time, and to achieve both concealment of model information and detection of falsification of model information in a secure execution environment.
  • steps S231 to S234 not all the parameters are decoded and expanded, but the parameters are decoded and expanded for each arithmetic function, and the arithmetic function is calculated. As a result, the memory usage during calculation can be suppressed.
  • the storage device represents a rich memory 103, a storage 104, and a secure memory 105.
  • the information processing device 100 includes a processing circuit 109.
  • the processing circuit 109 is hardware that realizes the rich execution unit 110, the secure execution unit 120, and the monitor unit 130.
  • the processing circuit 109 may be dedicated hardware or a processor 101 that executes a program stored in the storage device.
  • the processing circuit 109 is dedicated hardware, the processing circuit 109 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • ASIC is an abbreviation for Application Specific Integrated Circuit.
  • FPGA is an abbreviation for Field Programmable Gate Array.
  • the information processing device 100 may include a plurality of processing circuits that replace the processing circuit 109.
  • processing circuit 109 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
  • the functions of the information processing apparatus 100 can be realized by hardware, software, firmware, or a combination thereof.
  • Each embodiment is an example of a preferred embodiment and is not intended to limit the technical scope of the present disclosure. Each embodiment may be partially implemented or may be implemented in combination with other embodiments. The procedure described using the flowchart or the like may be appropriately changed.
  • the "part” which is an element of the information processing apparatus 100 may be read as “processing”, “process”, “circuit” or “circuit re”.
  • 100 information processing device 101 processor, 102 memory management unit, 103 rich memory, 104 storage, 105 secure memory, 109 processing circuit, 110 rich execution unit, 111 application, 120 secure execution unit, 121 arithmetic execution unit, 122 decryption processing unit. , 123 tampering detection unit, 124 output control unit, 125 storage reference unit, 130 monitor unit, 131 switching unit, 191 learning model information, 192 reference authentication tag, 193 encryption key.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

リッチ実行部(110)は、リッチOSを実行しながらアプリケーション(111)を実行する。セキュア実行部(120)は、セキュアOSを実行しながら、学習モデルに基づく演算である対象演算を実行する。復号処理部(122)は、アプリケーションから対象演算の実行が要求された場合に、学習モデルの暗号化されたモデル情報からモデル情報を復号する。演算実行部(121)は、モデル情報を使って対象演算を実行する。改ざん検知部(123)は、暗号化されたモデル情報が改ざん情報であるか判定する。出力制御部(124)は、暗号化されたモデル情報が改ざん情報でないと判定された場合に、対象演算の実行結果をアプリケーションに渡す。

Description

情報処理装置、情報処理方法および情報処理プログラム
 本開示は、学習モデルのモデル情報のための秘匿と改ざん検知に関するものである。
 機械学習によって得られる学習モデルについて、アーキテクチャとパラメータといったモデル情報を秘匿することが望まれている。また、モデル情報が改ざんされた場合に改ざんを検知することが望まれている。
 非特許文献1は、学習モデル情報の秘匿を実現するための方法を開示している。この方法では、実行環境が仮想的に分離され、セキュアな実行環境(セキュアOS、トラステッドOS)でのみ、暗号化された学習モデル情報が復号され、機械学習の演算が実行される。
Peter M. VanNostrandら著、「ConfidentialDeep Learning:Executing Proprietary Modelson Untrusted Devices」arXiv、2019年8月28日発行
 非特許文献1の方法では、学習モデル情報の秘匿のみが実現され、改ざん検知が実現されない。
 本開示は、学習モデルのモデル情報の秘匿と学習モデル情報の改ざん検知とを実現することを目的とする。
 本開示の情報処理装置は、
 リッチオペレーティングシステムを実行しながらアプリケーションを実行するリッチ実行部と、
 セキュアオペレーティングシステムを実行しながら、学習モデルに基づく演算である対象演算を実行するセキュア実行部と、
を備える。
 前記セキュア実行部は、
 前記アプリケーションから前記対象演算の実行が要求された場合に、前記学習モデルの暗号化されたモデル情報からモデル情報を復号する復号処理部と、
 前記モデル情報を使って前記対象演算を実行する演算実行部と、
 前記暗号化されたモデル情報が改ざん情報であるか判定する改ざん検知部と、
 前記暗号化されたモデル情報が前記改ざん情報でないと判定された場合に、前記対象演算の実行結果を前記アプリケーションに渡す出力制御部と、
を備える。
 本開示によれば、学習モデルのモデル情報の秘匿と学習モデル情報の改ざん検知とを実現することができる。
実施の形態1における情報処理装置100の構成図。 実施の形態1における情報処理方法のフローチャート。 実施の形態1における情報処理方法のフローチャート。 実施の形態2における情報処理装置100の構成図。 実施の形態2における情報処理方法のフローチャート。 実施の形態2における情報処理方法のフローチャート。 実施の形態2におけるGCMの適用例を示す図。 実施の形態2における3層ニューラルネットワークに対するGCMの適用例を示す図。 実施の形態における情報処理装置100のハードウェア構成図。
 実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
 実施の形態1.
 情報処理装置100について、図1から図3に基づいて説明する。
***構成の説明***
 図1に基づいて、情報処理装置100の構成を説明する。
 情報処理装置100は、プロセッサ101とメモリ管理ユニット102とリッチメモリ103とストレージ104とセキュアメモリ105といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ101は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ101は、CPU、DSPまたはGPUである。
 ICは、Integrated Circuitの略称である。
 CPUは、Central Processing Unitの略称である。
 DSPは、Digital Signal Processorの略称である。
 GPUは、Graphics Processing Unitの略称である。
 メモリ管理ユニット102は、リッチメモリ103へのアクセスを制御する。
 リッチメモリ103は、汎用のメモリであり、主記憶装置またはメインメモリともいう。
 メモリは、揮発性または不揮発性の記憶装置である。例えば、メモリはRAMである。メモリに記憶されたデータは必要に応じてストレージ104に保存される。
 RAMは、Random Access Memoryの略称である。
 ストレージ104は、不揮発性の記憶装置であり、補助記憶装置ともいう。
 例えば、ストレージ104は、ROM、HDDまたはフラッシュメモリである。ストレージ104に記憶されたデータは必要に応じてリッチメモリ103にロードされる。
 ROMは、Read Only Memoryの略称である。
 HDDは、Hard Disk Driveの略称である。
 例えば、ストレージ104には、学習モデル情報191および参照用認証タグ192などが記憶される。
 セキュアメモリ105は、セキュリティの機能を有してセキュリティが強化されたメモリである。
 例えば、セキュアメモリ105には、暗号鍵193などが記憶される。
 情報処理装置100は、リッチ実行部110とセキュア実行部120とモニタ部130といった要素を備える。これらの要素はソフトウェアで実現される。
 ストレージ104には、リッチ実行部110とセキュア実行部120とモニタ部130としてコンピュータを機能させるための情報処理プログラムが記憶されている。情報処理プログラムは、リッチメモリ103にロードされて、プロセッサ101によって実行される。
 ストレージ104には、さらに、OSが記憶されている。OSの少なくとも一部は、リッチメモリ103にロードされて、プロセッサ101によって実行される。
 プロセッサ101は、OSを実行しながら、情報処理プログラムを実行する。
 OSは、Operating Systemの略称である。
 情報処理装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。
 情報処理プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 リッチ実行部110とセキュア実行部120とモニタ部130について説明する。
 リッチ実行部110は、リッチOSを実行しながらアプリケーション111を実行する。
 リッチOSは、汎用のOSである。
 アプリケーション111は、アプリケーションプログラムである。
 セキュア実行部120は、セキュアOSを実行しながら、対象演算を実行する。
 セキュアOSは、セキュリティの機能を有してセキュリティが強化されたOSである。
 対象演算は、学習モデルに基づく演算である。具体的には、対象演算は、機械学習によって学習モデルを更新する演算、又は、学習モデルを利用して入力データを解析する演算である。機械学習の具体例はディープラーニングである。但し、機械学習は、ディープラーニングに限定されず、回帰法、決定木学習、ベイズ方またはクラスタリングなどであってもよい。
 セキュア実行部120は、演算実行部121と復号処理部122と改ざん検知部123と出力制御部124といった要素を備える。これら要素については後述する。
 モニタ部130は、仮想モニタとして機能し、切替部131を備える。
 切替部131は、情報処理装置100の実行環境をリッチOSによる環境またはセキュアOSによる環境に切り替える。
 但し、実行環境の切り替えは他の方法によって実現されてもよい。例えば、情報処理装置100がモニタ部130を備えず、メモリ管理ユニット102が切替部131を備えてもよい。
 セキュア実行部120の要素について説明する。
 復号処理部122は、アプリケーション111から対象演算の実行が要求された場合に、学習モデル情報191からモデル情報を復号する。学習モデル情報191は、暗号化モデル情報を含む。暗号化モデル情報は、学習モデルの暗号化されたモデル情報である。
 演算実行部121は、モデル情報を使って対象演算を実行する。
 改ざん検知部123は、暗号化モデル情報が改ざん情報であるか判定する。改ざん情報は改ざんされた情報を意味する。
 出力制御部124は、暗号化モデル情報が改ざん情報でないと判定された場合に、対象演算の実行結果をアプリケーション111に渡す。
 演算実行部121は、暗号化モデル情報が改ざん情報でないと判定された場合に、モデル情報を使って対象演算を実行する。
 出力制御部124は、暗号化モデル情報が改ざん情報であると判定された場合に、改ざん通知をアプリケーション111に渡す。改ざん通知は、暗号化モデル情報の改ざんを知らせるための通知であり、改ざん検知アラートともいう。
***動作の説明***
 情報処理装置100の動作の手順は情報処理方法に相当する。また、情報処理装置100の動作の手順は情報処理プログラムによる処理の手順に相当する。
 図2および図3に基づいて、情報処理方法を説明する。
 ステップS101において、リッチ実行部110は、アプリケーション111の実行を開始する。
 そして、リッチ実行部110は、アプリケーション111からの演算要求を切替部131に送る。演算要求は、対象演算の実行の要求である。
 切替部131は、演算要求を演算実行部121に送る。
 ステップS111において、演算実行部121は、メモリ管理ユニット102によって、学習モデル情報191を取得する。メモリ管理ユニット102は、学習モデル情報191をストレージ104からリッチメモリ103の中の演算実行部121用のメモリ領域に読み込む。
 学習モデル情報191は、参照情報と暗号化モデル情報とを含む。
 暗号化モデル情報は、学習モデルの暗号化されたモデル情報である。
 モデル情報は、モデル構成情報とパラメータとを含む。モデル構成情報は学習モデルの構成を示す。
 参照情報は、暗号化されたモデル構成情報と暗号化パラメータとのそれぞれの参照先を示す。参照先は、学習モデル情報191の中の位置を指す。
 ステップS112において、演算実行部121は、学習モデル情報191の中の参照情報を参照し、暗号化されたモデル構成情報の参照先を復号処理部122に通知する。
 復号処理部122は、メモリ管理ユニット102によって、通知された参照先の暗号化されたモデル構成情報を取得する。メモリ管理ユニット102は、暗号化されたモデル構成情報をストレージ104からリッチメモリ103の中の復号処理部122用のメモリ領域に読み込む。
 そして、復号処理部122は、セキュアメモリ105に記憶されている暗号鍵193を使って、暗号化されたモデル構成情報からモデル構成情報を復号する。
 ステップS113において、演算実行部121は、復号処理部122からモデル構成情報を取得し、モデル構成情報を対象演算に設定する。
 ステップS114において、演算実行部121は、学習モデル情報191の中の参照情報を参照し、暗号化されたパラメータの参照先を復号処理部122に通知する。
 復号処理部122は、メモリ管理ユニット102によって、通知された参照先の暗号化されたパラメータを取得する。メモリ管理ユニット102は、暗号化されたパラメータをストレージ104からリッチメモリ103の中の復号処理部122用のメモリ領域に読み込む。
 そして、復号処理部122は、セキュアメモリ105に記憶されている暗号鍵193を使って、暗号化されたパラメータからパラメータを復号する。
 ステップS115において、演算実行部121は、復号処理部122からパラメータを取得し、パラメータを対象演算に設定する。
 ステップS121において、演算実行部121は、学習モデル情報191を改ざん検知部123に渡す。
 改ざん検知部123は、学習モデル情報191の認証タグを生成する。認証タグは、特定の計算によって算出される。認証タグはメッセージ認証コードともいう。
 生成される認証タグを「検証用認証タグ」と称する。
 ステップS122において、改ざん検知部123は、メモリ管理ユニット102によって、参照用認証タグ192を取得する。メモリ管理ユニット102は、参照用認証タグ192をストレージ104からリッチメモリ103の中の改ざん検知部123用のメモリ領域に読み込む。
 参照用認証タグ192は、当初の学習モデル情報191の認証タグ、つまり、改ざんされていない学習モデル情報191の認証タグである。
 ステップS123において、改ざん検知部123は、検証用認証タグを参照用認証タグ192と照合する。
 そして、改ざん検知部123は、照合結果に基づいて、暗号化されたモデル情報が改ざん情報であるか判定する。
 検証用認証タグが参照用認証タグ192と一致する場合、改ざん検知部123は、暗号化されたモデル情報が改ざん情報でないと判定する。そして、処理はステップS131に進む。
 検証用認証タグが参照用認証タグ192と一致しない場合、改ざん検知部123は、暗号化されたモデル情報が改ざん情報であると判定する。そして、処理はステップS141に進む。
 ステップS131において、改ざん検知部123は、暗号化されたモデル情報が改ざん情報でないことを示す判定結果を出力制御部124に通知する。
 出力制御部124は、実行指示を演算実行部121に通知する。
 演算実行部121は、メモリ管理ユニット102によって、アプリケーション111から入力データを取得する。メモリ管理ユニット102は、入力データをリッチメモリ103の中のアプリケーション111用のメモリ領域からリッチメモリ103の中の演算実行部121用のメモリ領域に読み込む。
 ステップS132において、演算実行部121は、入力データに対して対象演算を実行する。
 ステップS133において、演算実行部121は、演算結果を出力制御部124に渡す。演算結果は、対象演算の実行結果、すなわち、対象演算を実行して得られた結果である。
 出力制御部124は、メモリ管理ユニット102によって、演算結果をアプリケーション111に渡す。メモリ管理ユニット102は、演算結果をリッチメモリ103の中のアプリケーション111用のメモリ領域に書き込む。
 ステップS133の後、処理はステップS151に進む。
 ステップS141において、改ざん検知部123は、暗号化されたモデル情報が改ざん情報であることを示す判定結果を出力制御部124に通知する。
 出力制御部124は、メモリ管理ユニット102によって、改ざん通知をアプリケーション111に渡す。メモリ管理ユニット102は、改ざん通知をリッチメモリ103の中のアプリケーション111用のメモリ領域に書き込む。
 ステップS141の後、処理はステップS151に進む。
 ステップS151において、出力制御部124は、完了応答を切替部131に送る。完了応答は演算要求に対する応答である。
 切替部131は、完了応答をリッチ実行部110に送る。
 リッチ実行部110は、アプリケーション111により、演算結果が得られた場合の処理または改ざん通知が得られた場合の処理を実行する。
***実施の形態1の効果***
 セキュアな実行環境での機械学習演算において、情報処理装置100は、暗号化されたモデル構成情報と暗号化されたパラメータとを復号する。また、情報処理装置100は、改ざん検知を実施する。そして、情報処理装置100は、改ざんの有無に基づいて、演算を実行して結果を出力するか、または、改ざん通知を出力するかを選択する。
 これにより、セキュアな実行環境において、モデル情報の秘匿とモデル情報の改ざん検知とを両立することができる。
 実施の形態2.
 メモリリソースおよび計算時間のオーバヘッドを抑える形態について、主に実施の形態1と異なる点を図4から図8に基づいて説明する。
***構成の説明***
 図4に基づいて、情報処理装置100の構成を説明する。
 情報処理装置100は、さらに、ストレージ参照部125を備える。ストレージ参照部125は、ソフトウェアによって実現される。
 情報処理プログラムは、さらに、ストレージ参照部125としてコンピュータを機能させる。
 セキュア実行部120の要素について説明する。
 改ざん検知部123は、暗号化されたモデル情報が改ざん情報であるか判定するための計算処理を対象演算と並列に又は対象演算と並行に実行する。
 改ざん検知部123は、上記計算処理を以下のように実行する。
 対象演算は、実行順序が決められた複数の演算関数に対する演算を含む。
 暗号化されたモデル情報は、複数の演算関数のそれぞれの暗号化されたパラメータを含む。
 復号処理部122は、各演算関数の暗号化されたパラメータから各演算関数のパラメータを復号する。
 演算実行部121は、実行順序にしたがって、各演算関数のパラメータを使って各演算関数を演算する。
 改ざん検知部123は、実行順序にしたがって、各演算関数の演算と並列に又は各演算関数の演算と並行に、各演算関数の暗号化されたパラメータを使って上記計算処理を実行する。
 具体的には、改ざん検知部123は、上記計算処理を以下のように実行する。
 暗号化されたモデル情報は、暗号化されたモデル構成情報を含む。
 まず、改ざん検知部123は、暗号化されたモデル構成情報の認証タグを暫定認証タグとして生成する。
 次に、改ざん検知部123は、実行順序にしたがって各演算関数の暗号化されたパラメータを使って上記計算処理を実行して暫定認証タグの更新を行う。
 次に、改ざん検知部123は、更新後の暫定認証タグを用いて検証用認証タグを生成する。
 そして、改ざん検知部123は、検証用認証タグを参照用認証タグ192と照合して、暗号化されたモデル情報が改ざん情報であるか判定する。
 出力制御部124は、暗号化されたモデル情報が改ざん情報であると判定された場合に、改ざん通知をアプリケーション111に渡す。
***動作の説明***
 図5および図6に基づいて、情報処理方法を説明する。
 ステップS201において、リッチ実行部110は、アプリケーション111からの演算要求を切替部131に送る。
 ステップS201は、実施の形態1におけるステップS101と同じである。
 ステップS211において、演算実行部121は、メモリ管理ユニット102によって、学習モデル情報191を取得する。
 ステップS211は、実施の形態1におけるステップS111と同じである。
 ステップS212において、演算実行部121は、学習モデル情報191をストレージ参照部125に渡す。
 ストレージ参照部125は、暗号化されたモデル構成情報を学習モデル情報191から取得し、暗号化されたモデル構成情報を復号処理部122に渡す。
 復号処理部122は、セキュアメモリ105に記憶されている暗号鍵193を使って、暗号化されたモデル構成情報からモデル構成情報を復号する。
 ステップS213において、演算実行部121は、復号処理部122からモデル構成情報を取得し、モデル構成情報を対象演算に設定する。
 ステップS213は、実施の形態1におけるステップS113と同じである。
 ステップS221において、ストレージ参照部125は、暗号化されたモデル構成情報を改ざん検知部123に渡す。
 改ざん検知部123は、暗号化されたモデル構成情報の認証タグを生成する。
 生成される認証タグを「暫定認証タグ」と称する。
 ステップS222において、演算実行部121は、メモリ管理ユニット102により、アプリケーション111から入力データを取得する。メモリ管理ユニット102は、入力データをリッチメモリ103の中のアプリケーション111用のメモリ領域からリッチメモリ103の中の演算実行部121用のメモリ領域に読み込む。
 対象演算は、実行順序が決められた複数の演算関数に対する演算を含む。
 ステップS231からステップS234は、複数の演算関数の実行順序にしたがって各演算関数に対して実行される。つまり、ステップS231からステップS234は、演算関数の数だけ繰り返される。
 対象となる演算関数を「対象関数」と称する。
 ステップS231において、ストレージ参照部125は、対象関数の暗号化されたパラメータを学習モデル情報191から取得し、対象関数の暗号化されたパラメータを復号処理部122に渡す。
 復号処理部122は、セキュアメモリ105に記憶されている暗号鍵193を使って、対象関数の暗号化されたパラメータからパラメータを復号する。
 ステップS232において、演算実行部121は、復号処理部122からパラメータを取得し、パラメータを対象関数に設定する。
 ステップS233において、ストレージ参照部125は、対象関数の暗号化されたパラメータを改ざん検知部123に渡す。
 改ざん検知部123は、対象関数の暗号化されたパラメータを使って計算処理を実行して暫定認証タグを更新する。
 ステップS234において、演算実行部121は、対象関数を演算する。
 例えば、対象関数が1番目の演算関数である場合、演算実行部121は、入力データに対して対象関数を実行する。また、対象関数が2番目以降の演算関数である場合、演算実行部121は、前回の対象関数の演算結果に対して対象関数を実行する。
 ステップS235において、演算実行部121は、全ての演算関数の演算が終了したか判定する。
 全ての演算関数の演算が終了していない場合、処理はステップS231に進む。
 全ての演算関数の演算が終了した場合、処理はステップS241に進む。
 ステップS241において、改ざん検知部123は、暫定認証タグを用いて検証用認証タグを生成する。
 ステップS242において、ストレージ参照部125は、メモリ管理ユニット102によって、参照用認証タグ192を取得する。メモリ管理ユニット102は、参照用認証タグ192をストレージ104からリッチメモリ103の中のストレージ参照部125用のメモリ領域に読み込む。
 ストレージ参照部125は、参照用認証タグ192を改ざん検知部123に渡す。
 改ざん検知部123は、参照用認証タグ192をストレージ参照部125から取得する。
 ステップS243において、改ざん検知部123は、検証用認証タグを参照用認証タグ192と照合する。
 そして、改ざん検知部123は、照合結果に基づいて、暗号化されたモデル情報が改ざん情報であるか判定する。
 検証用認証タグが参照用認証タグ192と一致する場合、改ざん検知部123は、暗号化されたモデル情報が改ざん情報でないと判定する。そして、処理はステップS251に進む。
 検証用認証タグが参照用認証タグ192と一致しない場合、改ざん検知部123は、暗号化されたモデル情報が改ざん情報であると判定する。そして、処理はステップS261に進む。
 ステップS251において、演算実行部121は、演算結果を出力制御部124に渡す。
 ステップS251は、実施の形態1におけるステップS133と同じである。但し、出力制御部124には、最後の演算関数の実行結果が渡される。
 ステップS261において、出力制御部124は、メモリ管理ユニット102によって、改ざん通知をアプリケーション111に渡す。
 ステップS261は、実施の形態1におけるステップS141と同じである。
 ステップS271において、出力制御部124は、完了応答を切替部131に送る。
 ステップS271は、実施の形態1におけるステップS151と同じである。
***実施の形態2の補足***
 モデル情報の暗号化とモデル情報の改ざん検知のためのアルゴリズムとして、Galois/Counter Mode(GCM)による認証付き暗号を利用することができる。
 図7に基づいて、GCMによる認証付き暗号処理を実施の形態2に適用した例を説明する。
 機械学習アルゴリズムは、機械学習済みの複数の演算関数(ML)で構成され、入力データ(Input Data)に対する演算結果(Output Data)を返す。
 機械学習演算に用いるパラメータ(Plaintext)は暗号化されている。
 演算関数の実行時には、暗号化されたパラメータ(Ciphertext)が復号され、パラメータが演算関数に用いられる。また、暫定認証タグ(Auth Data)も逐次的に更新される。
 なお、逐次的に展開されるパラメータおよび演算関数によって得らえる中間結果は、演算関数の実行ごとに削除または上書きされる。これにより、リッチメモリ103に展開されるデータ量が削減される。
 全ての演算関数が実行されると、検証用認証タグ(Tag)が生成され、ストレージ104に格納された参照用認証タグ192(Auth Tag)と検証用タグが比較され、改ざんの有無が確認される。
 改ざんが無い場合には、演算結果(Output Data)が出力される。
 改ざんが有る場合には、演算結果の代わりに改ざん通知(Output Data)が出力される。
 認証付き暗号処理と機械学習演算処理は、並列で実行されてもよいし、並行で処理されてもよい。
 図8に基づいて、学習モデルが3層のニューラルネットワークである場合について、GCMによる認証付き暗号処理を実施の形態2に適用した例を説明する。
 リッチ実行部110により、入力データと学習モデル情報191と参照用認証タグ192が管理される。
 学習モデル情報191は、暗号化されたモデル構成情報を含む。セキュア実行部120により、暗号化されたモデル構成情報からモデル構成情報が復号される。モデル構成情報には、3層のニューラルネットワークの複数の演算関数が設定されている。
 参照用認証タグ192は、予め生成されている。
 まず、入力データがリッチ実行部110からセキュア実行部120に渡される。
 次に、第1層の演算関数(畳込み演算)が実行される。このとき、第1層のパラメータが復号されてセキュア実行部120用のメモリ領域に展開される。また、暫定認証タグが更新される。第1層の演算関数の終了後、演算に用いられたデータ(パラメータなど)はメモリ領域から削除される。
 次に、第2層の演算関数(畳込み演算)が実行される。このとき、第2層のパラメータが復号されてセキュア実行部120用のメモリ領域に展開される。また、暫定認証タグが更新される。第2層の演算関数の終了後、演算に用いられたデータ(パラメータなど)はメモリ領域から削除される。
 次に、第3層の第1演算関数(全結合乗算)が実行される。このとき、第3層のパラメータ(重み)が復号されてセキュア実行部120用のメモリ領域に展開される。また、暫定認証タグが更新される。第3層の第1演算関数の終了後、演算に用いられたデータ(パラメータなど)はメモリ領域から削除される。
 次に、第3層の第2演算関数(全結合加算)が実行される。このとき、第3層のパラメータ(バイアス)が復号されてセキュア実行部120用のメモリ領域に展開される。また、暫定認証タグが更新される。第3層の第2演算関数の終了後、演算に用いられたデータ(パラメータなど)はメモリ領域から削除される。
 そして、暫定認証タグを用いて検証用認証タグが生成され、検証用認証タグが参照用認証タグ192と比較され、改ざんの有無が判定される。
 改ざんが無い場合、演算結果(出力データ)がセキュア実行部120からリッチ実行部110に渡される。
 改ざんが有る場合、改ざん通知(出力データ)がセキュア実行部120からリッチ実行部110に渡される。
 1つの層に複数の演算がある場合、第3層のように複数の演算を分離して実行してもよい。また、複数の演算を分離せずにまとめて実行してもよい。
 また、2つ以上の層をまとめてもよい。つまり、異なる層の2つ以上の演算をまとめて実行してもよい。さらに、入力データを一定のデータサイズに分割しても各演算を実行してもよい。
***実施の形態2の効果***
 情報処理装置100は、機械学習演算を演算関数単位で並列または並行に処理する。これにより、メモリリソースおよび計算時間のオーバヘッドを抑えて、セキュアな実行環境においてモデル情報の秘匿とモデル情報の改ざん検知とを両立することができる。
 ステップS231からステップS234において、全てのパラメータが復号して展開されるのではなく、演算関数ごとにパラメータが復号して展開され演算関数が演算される。これにより、演算時のメモリ使用量を抑えることができる。
***実施の形態の補足***
 図9に基づいて、情報処理装置100のハードウェア構成を説明する。記憶装置はリッチメモリ103、ストレージ104およびセキュアメモリ105を表している。
 情報処理装置100は処理回路109を備える。
 処理回路109は、リッチ実行部110とセキュア実行部120とモニタ部130とを実現するハードウェアである。
 処理回路109は、専用のハードウェアであってもよいし、記憶装置に格納されるプログラムを実行するプロセッサ101であってもよい。
 処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICは、Application Specific Integrated Circuitの略称である。
 FPGAは、Field Programmable Gate Arrayの略称である。
 情報処理装置100は、処理回路109を代替する複数の処理回路を備えてもよい。
 処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、情報処理装置100の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 各実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
 情報処理装置100の要素である「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
 100 情報処理装置、101 プロセッサ、102 メモリ管理ユニット、103 リッチメモリ、104 ストレージ、105 セキュアメモリ、109 処理回路、110 リッチ実行部、111 アプリケーション、120 セキュア実行部、121 演算実行部、122 復号処理部、123 改ざん検知部、124 出力制御部、125 ストレージ参照部、130 モニタ部、131 切替部、191 学習モデル情報、192 参照用認証タグ、193 暗号鍵。

Claims (9)

  1.  リッチオペレーティングシステムを実行しながらアプリケーションを実行するリッチ実行部と、
     セキュアオペレーティングシステムを実行しながら、学習モデルに基づく演算である対象演算を実行するセキュア実行部と、
    を備え、
     前記セキュア実行部は、
     前記アプリケーションから前記対象演算の実行が要求された場合に、前記学習モデルの暗号化されたモデル情報からモデル情報を復号する復号処理部と、
     前記モデル情報を使って前記対象演算を実行する演算実行部と、
     前記暗号化されたモデル情報が改ざん情報であるか判定する改ざん検知部と、
     前記暗号化されたモデル情報が前記改ざん情報でないと判定された場合に、前記対象演算の実行結果を前記アプリケーションに渡す出力制御部と、
    を備える情報処理装置。
  2.  前記演算実行部は、前記暗号化されたモデル情報が前記改ざん情報でないと判定された場合に、前記モデル情報を使って前記対象演算を実行する
    請求項1に記載の情報処理装置。
  3.  前記出力制御部は、前記暗号化されたモデル情報が前記改ざん情報であると判定された場合に、改ざん通知を前記アプリケーションに渡す
    請求項1または請求項2に記載の情報処理装置。
  4.  前記改ざん検知部は、前記暗号化されたモデル情報が前記改ざん情報であるか判定するための計算処理を前記対象演算と並列に又は前記対象演算と並行に実行する
    請求項1に記載の情報処理装置。
  5.  前記対象演算は、実行順序が決められた複数の演算関数に対する演算を含み、
     前記暗号化されたモデル情報は、前記複数の演算関数のそれぞれの暗号化されたパラメータを含み、
     前記復号処理部は、各演算関数の暗号化されたパラメータから各演算関数のパラメータを復号し、
     前記演算実行部は、前記実行順序にしたがって、各演算関数のパラメータを使って各演算関数を演算し、
     前記改ざん検知部は、前記実行順序にしたがって、各演算関数の演算と並列に又は各演算関数の演算と並行に、各演算関数の暗号化されたパラメータを使って前記計算処理を実行する
    請求項4に記載の情報処理装置。
  6.  前記暗号化されたモデル情報は、暗号化されたモデル構成情報を含み、
     前記改ざん検知部は、前記暗号化されたモデル構成情報の認証タグを暫定認証タグとして生成し、前記実行順序にしたがって各演算関数の暗号化されたパラメータを使って前記計算処理を実行して前記暫定認証タグの更新を行い、更新後の前記暫定認証タグを用いて検証用認証タグを生成し、前記検証用認証タグを参照用認証タグと照合して前記暗号化されたモデル情報が前記改ざん情報であるか判定する
    請求項5に記載の情報処理装置。
  7.  前記出力制御部は、前記暗号化されたモデル情報が前記改ざん情報であると判定された場合に、改ざん通知を前記アプリケーションに渡す
    請求項4から請求項6のいずれか1項に記載の情報処理装置。
  8.  リッチ実行部が、リッチオペレーティングシステムを実行しながらアプリケーションを実行し、
     セキュア実行部が、セキュアオペレーティングシステムを実行しながら、学習モデルに基づく演算である対象演算を実行する
    情報処理方法であって、
     前記セキュア実行部において、
     復号処理部が、前記アプリケーションから前記対象演算の実行が要求された場合に、前記学習モデルの暗号化されたモデル情報からモデル情報を復号し、
     演算実行部が、前記モデル情報を使って前記対象演算を実行し、
     改ざん検知部が、前記暗号化されたモデル情報が改ざん情報であるか判定し、
     出力制御部が、前記暗号化されたモデル情報が前記改ざん情報でないと判定された場合に、前記対象演算の実行結果を前記アプリケーションに渡す
    情報処理方法。
  9.  リッチオペレーティングシステムを実行しながらアプリケーションを実行するリッチ実行処理と、
     セキュアオペレーティングシステムを実行しながら、学習モデルに基づく演算である対象演算を実行するセキュア実行処理と、
    をコンピュータに実行させるための情報処理プログラムであって、
     前記セキュア実行処理は、
     前記アプリケーションから前記対象演算の実行が要求された場合に、前記学習モデルの暗号化されたモデル情報からモデル情報を復号する復号処理と、
     前記モデル情報を使って前記対象演算を実行する演算実行処理と、
     前記暗号化されたモデル情報が改ざん情報であるか判定する改ざん検知処理と、
     前記暗号化されたモデル情報が前記改ざん情報でないと判定された場合に、前記対象演算の実行結果を前記アプリケーションに渡す出力制御処理と、を含む
    情報処理プログラム。
PCT/JP2020/047098 2020-12-17 2020-12-17 情報処理装置、情報処理方法および情報処理プログラム Ceased WO2022130558A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2020/047098 WO2022130558A1 (ja) 2020-12-17 2020-12-17 情報処理装置、情報処理方法および情報処理プログラム
JP2021522565A JP6987308B1 (ja) 2020-12-17 2020-12-17 情報処理装置、情報処理方法および情報処理プログラム
CN202080107801.1A CN116569167B (zh) 2020-12-17 2020-12-17 信息处理装置、信息处理方法及计算机可读取的记录介质
DE112020007680.6T DE112020007680B4 (de) 2020-12-17 2020-12-17 Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
US18/138,972 US12355883B2 (en) 2020-12-17 2023-04-25 Information processing device, information processing method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/047098 WO2022130558A1 (ja) 2020-12-17 2020-12-17 情報処理装置、情報処理方法および情報処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/138,972 Continuation US12355883B2 (en) 2020-12-17 2023-04-25 Information processing device, information processing method, and computer readable medium

Publications (1)

Publication Number Publication Date
WO2022130558A1 true WO2022130558A1 (ja) 2022-06-23

Family

ID=79193228

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047098 Ceased WO2022130558A1 (ja) 2020-12-17 2020-12-17 情報処理装置、情報処理方法および情報処理プログラム

Country Status (5)

Country Link
US (1) US12355883B2 (ja)
JP (1) JP6987308B1 (ja)
CN (1) CN116569167B (ja)
DE (1) DE112020007680B4 (ja)
WO (1) WO2022130558A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4515372A4 (en) * 2022-11-09 2025-08-20 Samsung Electronics Co Ltd METHOD AND ELECTRONIC DEVICE FOR SECURE ON-DEVICE STORAGE FOR MACHINE LEARNING MODELS

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109680A (ja) * 2017-12-18 2019-07-04 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理方法及び情報処理システム
JP2019121141A (ja) * 2017-12-29 2019-07-22 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1757006A2 (en) * 2004-06-01 2007-02-28 Ben-Gurion University of the Negev Research and Development Authority Structure preserving database encryption method and system
JP5126447B1 (ja) * 2012-08-31 2013-01-23 大日本印刷株式会社 アプリケーションプログラムの実行方法
JP6718405B2 (ja) 2017-03-31 2020-07-08 三菱重工業株式会社 情報提供装置、情報提供システム、情報提供方法及びプログラム
US20190065974A1 (en) 2017-08-30 2019-02-28 Axell Corporation Inference device, inference system, and inference method
JP6695595B2 (ja) 2017-08-30 2020-05-20 株式会社アクセル 推論装置、及び推論方法
CN107832839B (zh) 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置
JP7052325B2 (ja) * 2017-12-04 2022-04-12 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法
US11115187B2 (en) * 2018-09-07 2021-09-07 Korea University Research And Business Foundation Apparatus and method for block ciphers for real-time data transmission
JP6953376B2 (ja) 2018-09-27 2021-10-27 Kddi株式会社 ニューラルネットワーク、情報付加装置、学習方法、情報付加方法、およびプログラム
JP6926045B2 (ja) 2018-09-27 2021-08-25 Kddi株式会社 ニューラルネットワーク、学習装置、学習方法、およびプログラム
US11544411B2 (en) * 2019-01-17 2023-01-03 Koninklijke Philips N.V. Machine learning model validation and authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109680A (ja) * 2017-12-18 2019-07-04 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理方法及び情報処理システム
JP2019121141A (ja) * 2017-12-29 2019-07-22 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VANNOSTRAND, PETER M. ET AL. ET AL.: "Confidential Deep Learning: Executing Proprietary Models on Untrusted Devices", ARXIV:1908.10730V1, 28 August 2019 (2019-08-28), pages 1 - 6, XP081471435, Retrieved from the Internet <URL:https://arxiv.org/abs/1908.10730v1> [retrieved on 20210310] *

Also Published As

Publication number Publication date
CN116569167B (zh) 2024-06-18
JPWO2022130558A1 (ja) 2022-06-23
DE112020007680B4 (de) 2024-10-17
US20230261868A1 (en) 2023-08-17
CN116569167A (zh) 2023-08-08
US12355883B2 (en) 2025-07-08
DE112020007680T5 (de) 2023-09-07
JP6987308B1 (ja) 2021-12-22

Similar Documents

Publication Publication Date Title
Bayerl et al. Offline model guard: Secure and private ML on mobile devices
JP6067449B2 (ja) 情報処理装置、情報処理プログラム
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
CN114651253B (zh) 用于策略强制实施的虚拟环境类型验证
CN101816004B (zh) 通过安全内核设计划分的安全策略
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
CN101421739B (zh) 包括bios的系统以及用于bios的方法
JP2008537224A (ja) 安全な起動方法およびシステム
CN102279760A (zh) 利用初始保护组件来进行设备引导
JP2005531086A (ja) スリープ攻撃からの保護
CN105320895B (zh) 用于联机加密处理的高性能自主硬件引擎
JP7031070B1 (ja) プログラム処理装置、プログラム処理方法、及び、プログラム
JP6987308B1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN116484375A (zh) 一种加壳恶意程序脱壳的方法、装置、介质及电子设备
CN114154164B (zh) 一种fpga安全启动的方法、装置、设备及可读介质
CN113268737A (zh) 环境安全验证方法、系统和客户端
US9213864B2 (en) Data processing apparatus and validity verification method
JP2009253490A (ja) メモリシステムの暗号化方式
CN112580031B (zh) 用于防止程序代码对车辆恶意攻击的设备、系统和方法
CN110023940A (zh) 适合于在受保护的和/或开放的运行状态下运行的设备单元以及所属的方法
CN111355576B (zh) 数据处理方法和计算机系统
US12306932B2 (en) Attesting on-the-fly encrypted root disks for confidential virtual machines
CN114201761B (zh) 在可信计算系统中增强度量代理安全性
JP6554764B2 (ja) 改変領域抽出システム、改変領域抽出方法、及び、改変領域抽出プログラム
Wagner et al. Lightweight attestation and secure code update for multiple separated microkernel tasks

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021522565

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20965946

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202080107801.1

Country of ref document: CN

122 Ep: pct application non-entry in european phase

Ref document number: 20965946

Country of ref document: EP

Kind code of ref document: A1