JP2019121141A - Device, secure element, program, information processing system and information processing method - Google Patents

Device, secure element, program, information processing system and information processing method Download PDF

Info

Publication number
JP2019121141A
JP2019121141A JP2017255173A JP2017255173A JP2019121141A JP 2019121141 A JP2019121141 A JP 2019121141A JP 2017255173 A JP2017255173 A JP 2017255173A JP 2017255173 A JP2017255173 A JP 2017255173A JP 2019121141 A JP2019121141 A JP 2019121141A
Authority
JP
Japan
Prior art keywords
unit
execution
secure
inference
processing
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.)
Granted
Application number
JP2017255173A
Other languages
Japanese (ja)
Other versions
JP7056151B2 (en
Inventor
正徳 浅野
Masanori Asano
正徳 浅野
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2017255173A priority Critical patent/JP7056151B2/en
Publication of JP2019121141A publication Critical patent/JP2019121141A/en
Application granted granted Critical
Publication of JP7056151B2 publication Critical patent/JP7056151B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

To provide a device or the like capable of securely executing processing using results of machine learning.SOLUTION: A device 1 includes: a storage unit that stores a learned model having a plurality of arithmetic elements, the learned model being a learned model generated by machine learning; an execution unit that executes arithmetic processing based on the learned model; and a secure unit that is a component more secure than the execution unit, and executes arithmetic processing related to a part of the arithmetic elements of the learned model in accordance with an arithmetic request from the execution unit. The execution unit outputs a final arithmetic result using a result of the arithmetic processing performed by the secure unit.SELECTED DRAWING: Figure 1

Description

本発明は、デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法に関する。   The present invention relates to a device, a secure element, a program, an information processing system, and an information processing method.

近年、IoT(Internet of Things)技術が急速に普及し、様々なデバイスがインターネットに接続されるようになっている。一方で、インターネットに接続されるデバイスが拡大することによって、デバイスの脆弱性に起因するセキュリティ上の問題が顕在化している。   In recent years, IoT (Internet of Things) technology has rapidly spread and various devices are connected to the Internet. On the other hand, with the expansion of devices connected to the Internet, security problems resulting from device vulnerabilities have become apparent.

また、IoTに限らず、ディープラーニングに代表される機械学習への関心が高まっている。これに伴い、機械学習技術をIoTに係るクラウドコンピューティングに適用し、データセンタであるクラウドサーバが機械学習を行って学習済みモデルを構築し、学習結果をIoTデバイスに提供して種々の処理を行うシステムが検討されている(例えば特許文献1)。   In addition, interest in machine learning represented by deep learning as well as IoT is increasing. Along with this, machine learning technology is applied to cloud computing related to IoT, the cloud server which is a data center performs machine learning, builds a learned model, provides learning results to the IoT device, and performs various processing A system to perform is being studied (for example, Patent Document 1).

一方で、クラウド上に全てのデータ及び機能を集約するクラウドコンピューティングでは、ユーザとクラウドサーバとの間の通信距離が長くなることから、レイテンシー(処理速度)の遅延が避けられないとの問題がある。この問題に対し、クラウドサーバが行う処理の一部を、よりユーザに近いクライアント側で行うことで、通信距離を短縮してレイテンシーを向上させるエッジコンピューティングの技術が注目を集めている。   On the other hand, in cloud computing where all data and functions are integrated on the cloud, there is a problem that latency (processing speed) delay can not be avoided because the communication distance between the user and the cloud server becomes long. is there. In order to address this problem, edge computing technology that shortens the communication distance and improves latency has attracted attention by performing a part of the processing performed by the cloud server on the client side closer to the user.

上記の機械学習とエッジコンピューティングとの相補についても注目を集めている。すなわち、クライアントであるIoTデバイスに機械学習演算の一部を委譲することで、クラウドコンピューティングに比べて演算結果を早くユーザに伝達する、という考え方である。例えばクラウドサーバが機械学習を行って学習結果をIoTデバイスに配信し、IoTデバイスが学習結果である学習済みモデルをメモリ上に展開して、学習済みモデルに基づく種々の処理を実行する。   Attention has also been drawn to the complementation of machine learning and edge computing described above. That is, by delegating a part of the machine learning operation to the IoT device which is the client, it is an idea that the operation result is transmitted to the user earlier than in cloud computing. For example, a cloud server performs machine learning and distributes learning results to an IoT device, and the IoT device develops a learned model, which is a learning result, on a memory, and executes various processes based on the learned model.

特開2017−142654号公報Unexamined-Japanese-Patent No. 2017-142654

しかしながら、上述の如くIoTデバイスでのセキュリティの問題から、デバイス上に展開された学習済みモデルを第三者により盗難、模倣される等の課題が顕在化するであろうことが予測される。   However, as described above, it is predicted from the security problem in the IoT device that a problem such as theft or imitation by a third party of the learned model developed on the device will be apparent.

一つの側面では、機械学習結果を利用した処理を安全に実行することができるデバイス等を提供することを目的とする。   In one aspect, it is an object of the present invention to provide a device or the like capable of safely executing processing using machine learning results.

一つの側面に係るデバイスは、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部と、該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部とを備え、前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力することを特徴とする。   A device according to one aspect is a learned model generated by machine learning, and a storage unit that stores a learned model having a plurality of arithmetic elements, and an execution unit that executes arithmetic processing based on the learned model And a secure unit which is more secure than the execution unit, and executes an operation process related to the operation element of a part of the learned model according to the operation request from the execution unit, the execution unit The final calculation result is output using the calculation result of the secure unit.

一つの側面に係るセキュアエレメントは、デバイスに搭載されるセキュアエレメントであって、前記デバイスから、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルに基づく演算処理の実行要求を受け付ける受付部と、受け付けた実行要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する演算部と、演算結果を前記デバイスに出力する出力部とを備えることを特徴とする。   A secure element according to one aspect is a secure element mounted on a device, which is a learned model generated by machine learning from the device, and an arithmetic processing based on the learned model having a plurality of arithmetic elements And an output unit configured to output an operation result to the device. It is characterized by

一つの側面に係るプログラムは、セキュアエレメントを搭載したデバイスに、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、該学習済みモデルに基づく演算処理を実行する処理を実行させるプログラムであって、前記セキュアエレメントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、前記セキュアエレメントによる演算結果を用いて、最終的な演算結果を出力することを特徴とする。   A program according to one aspect is a learned model generated by machine learning in a device equipped with a secure element, storing a learned model having a plurality of computing elements in a storage unit, and using the learned model. A program for executing processing based on the operation processing, which requests the secure element to perform operation processing related to the operation element of a part of the learned model, and using the operation result by the secure element, It is characterized by outputting a final calculation result.

一つの側面に係るプログラムは、デバイスに、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する処理を実行させるプログラムであって、前記第1の実行環境よりもセキュアな第2の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行し、前記第2の実行環境における演算結果を用いて、最終的な演算結果を出力することを特徴とする。   A program according to one aspect is a trained model generated by machine learning in a device, wherein a trained model having a plurality of computing elements is held in a first execution environment, and computation based on the trained model A program that executes processing for executing processing in the first execution environment, and relates to the computing element of a part of the learned model in a second execution environment that is more secure than the first execution environment. An arithmetic processing is performed, and a final arithmetic result is output using the arithmetic result in the second execution environment.

一つの側面に係る情報処理システムは、デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、前記デバイスは、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部と、該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部とを備え、前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、前記セキュア部は、前記演算処理の実行回数、又は該演算処理を実行した旨を示す情報を前記管理装置に通知し、前記管理装置は、前記セキュア部からの通知に基づき、前記実行回数を管理することを特徴とする。   An information processing system according to one aspect is an information processing system including a device and a management apparatus capable of communicating with the device, wherein the device is a learned model generated by machine learning, and a plurality of the information processing system are generated. A storage unit for storing a learned model having an arithmetic element, an execution unit for executing arithmetic processing based on the learned model, and a component that is more secure than the execution unit according to an arithmetic request from the execution unit; And a secure unit that executes arithmetic processing related to part of the arithmetic elements of a learned model, the execution unit outputting a final arithmetic result using the arithmetic result by the secure unit, and the secure unit Notifies the management apparatus of the number of executions of the arithmetic processing, or information indicating that the arithmetic processing has been executed, and the management apparatus communicates from the secure unit. Based on, characterized by managing the number of executions.

一つの側面に係る情報処理方法は、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部とを備えたデバイスに、前記実行部が、該実行部よりもセキュアなコンポーネントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、前記セキュアなコンポーネントが、前記一部の演算要素に係る演算処理を実行し、前記実行部は、前記セキュアなコンポーネントによる演算結果を用いて、最終的な演算結果を出力する処理を実行させることを特徴とする。   An information processing method according to one aspect is a learned model generated by machine learning, and executes a storage unit that stores a learned model having a plurality of computing elements, and an arithmetic process based on the learned model. The execution unit requests the component more secure than the execution unit to perform operation processing on the operation element of the part of the learned model, to the device including the execution unit; The arithmetic processing according to the part of the arithmetic elements may be performed, and the execution unit may execute a process of outputting a final arithmetic result using the arithmetic result of the secure component.

一つの側面では、機械学習結果を利用した処理を安全に実行することができる。   In one aspect, processing using machine learning results can be performed safely.

IoTシステムの構成例を示すブロック図である。It is a block diagram showing an example of composition of an IoT system. 動作管理DBのレコードレイアウトの一例を示す説明図である。It is explanatory drawing which shows an example of the record layout of operation management DB. 推論モデルの展開処理を説明するための説明図である。It is an explanatory view for explaining expansion processing of an inference model. 推論モデルの基本構造の一例を示す説明図である。It is explanatory drawing which shows an example of the basic structure of an inference model. 学習パラメータの適用処理に関する説明図である。It is an explanatory view about application processing of a learning parameter. 教師モデルを用いた生徒モデルの生成に関する説明図である。It is an explanatory view about generation of a student model using a teacher model. 推論処理を説明するための説明図である。It is an explanatory view for explaining inference processing. デバイス本体及びセキュアエレメントがそれぞれ行う演算内容について説明するための説明図である。It is an explanatory view for explaining operation contents which a device main part and a secure element perform, respectively. 推論実行回数及び許否情報の更新処理に関する説明図である。It is explanatory drawing regarding the update process of the frequency | count of inference execution, and permission information. 推論モデルの展開処理の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the expansion process of an inference model. 推論処理の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of an inference process. 推論実行回数及び許否情報の更新処理の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of a process procedure of the update process of the frequency | count of inference execution, and permission information. 実施の形態2に係る推論処理に関する説明図である。FIG. 18 is an explanatory diagram of inference processing according to the second embodiment; デバイス本体、セキュアエレメント及びサーバがそれぞれ行う演算内容について説明するための説明図である。It is an explanatory view for explaining operation contents which a device main part, a secure element, and a server perform, respectively. 実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。FIG. 16 is a flowchart illustrating an example of a processing procedure of inference processing according to Embodiment 2. FIG. 実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。FIG. 16 is a flowchart illustrating an example of a processing procedure of inference processing according to Embodiment 2. FIG. 応用実施例に係る推論処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the inference process which concerns on an applied Example. 実施の形態3に係るIoTシステムの構成例を示すブロック図である。FIG. 18 is a block diagram showing an example of configuration of an IoT system according to a third embodiment. 推論モデルの更新処理に関する説明図である。It is explanatory drawing regarding the update process of an inference model. 推論モデルの更新処理の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of an update process of an inference model. 推論処理の実行頻度に基づく推論禁止処理に関する説明図である。It is explanatory drawing regarding the inference prohibition process based on the execution frequency of an inference process. 推論禁止処理の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of an inference prohibition process. 上述した形態のデバイスの動作を示す機能ブロック図である。It is a functional block diagram which shows operation | movement of the device of the form mentioned above.

以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、IoTシステムの構成例を示すブロック図である。本実施の形態では、IoT端末であるデバイス1に機械学習の成果物である推論モデル121をインストールし、デバイス1が推論モデル121を利用して、入力データから適切な出力データを推論する推論処理を行う形態について述べる。なお、本明細書において「推論」とは機械学習結果を利用した処理全般を表す文言として用い、「推論モデル」とは機械学習により生成された学習済みモデルを表す文言として用いる。
Hereinafter, the present invention will be described in detail based on the drawings showing the embodiments.
Embodiment 1
FIG. 1 is a block diagram showing an example of the configuration of an IoT system. In the present embodiment, an inference process is performed in which an inference model 121, which is a product of machine learning, is installed in a device 1 which is an IoT terminal, and the device 1 infers appropriate output data from input data using the inference model 121. Describe the form in which In the present specification, “inference” is used as a term representing the whole process using machine learning results, and “inference model” is used as a term representing a learned model generated by machine learning.

IoTシステムは、デバイス1と、サーバ3とを有する。デバイス1は、インターネットであるネットワークNに接続された電子機器であり、例えば監視カメラ、多機能端末、車両に搭載されたECU(Electronic Control Unit)、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。本実施の形態においてデバイス1は監視カメラであるものとして説明する。   The IoT system has a device 1 and a server 3. The device 1 is an electronic device connected to the network N which is the Internet, and various devices such as a monitoring camera, a multifunctional terminal, an ECU (Electronic Control Unit) mounted on a vehicle, an abnormality monitoring device for production facilities and infrastructure facilities, etc. Can be In the present embodiment, the device 1 is described as a surveillance camera.

サーバ3は、デバイス1の動作状況を管理する管理装置であり、ネットワークNを介してデバイス1に通信接続されている。本実施の形態では、サーバ3が機械学習を行って推論モデル121を生成し、生成した推論モデル121のデータ(図1に示す最新モデル用パラメータ341)をデバイス1に配信する。デバイス1は、当該データに基づいて推論モデル121を自装置のメモリ上に展開し、推論処理を行う。例えばデバイス1が監視カメラである場合、デバイス1は撮像画像に含まれる物体が何であるかを推論(推定)し、推論結果を外部に通知する。   The server 3 is a management device that manages the operation status of the device 1 and is communicably connected to the device 1 via the network N. In the present embodiment, the server 3 performs machine learning to generate the inference model 121, and distributes data of the generated inference model 121 (the latest model parameter 341 shown in FIG. 1) to the device 1. The device 1 develops the inference model 121 on the memory of the own device based on the data and performs inference processing. For example, when the device 1 is a surveillance camera, the device 1 infers (estimates) what object is included in the captured image, and notifies the inference result to the outside.

また、サーバ3は、推論モデル121に基づくデバイス1の動作状況に関するデータを収集し、データベース上でデバイス1の動作状況を管理する。詳しくは後述するように、サーバ3は、各デバイス1にインストールした推論モデル121の種類やバージョン情報のほか、各デバイス1において実行させた推論処理の実行回数、及び各デバイス1における推論処理を許可するか否か等の情報を管理する。   Also, the server 3 collects data on the operation status of the device 1 based on the inference model 121, and manages the operation status of the device 1 on a database. As described later in detail, the server 3 permits the number of times of execution of inference processing executed in each device 1 in addition to the type and version information of the inference model 121 installed in each device 1, and inference processing in each device 1 Manage information such as whether to

デバイス1は、デバイス本体10と、セキュアエレメント(セキュア部)20とを有する。デバイス本体10は、SoC(System on Chip)により構成され、デバイス1の多く又は全部の機能を実現するデバイス1の本体部分である。セキュアエレメント20は、デバイス本体10とは物理的又は論理的に分離されたハードウェアであり、外部からの攻撃に対して耐タンパ性を有するチップである。セキュアエレメント20は内部に不揮発性メモリを有し、データを安全に保管する。なお、セキュアエレメント20はUICC(Universal Integrated Circuit Card)のように、デバイス1に対して着脱自在な構成であってもよい。デバイス本体10及びセキュアエレメント20は、例えばISO(International Organization Standardization)7816、SPI(Serial Peripheral Interface)等の規格で相互に接続されている。   The device 1 has a device body 10 and a secure element (secure unit) 20. The device body 10 is a body portion of the device 1 configured by a SoC (System on Chip) and implementing many or all of the functions of the device 1. The secure element 20 is hardware physically or logically separated from the device body 10, and is a chip having tamper resistance against external attacks. The secure element 20 has a non-volatile memory inside, and securely stores data. The secure element 20 may be configured to be removable from the device 1 like a universal integrated circuit card (UICC). The device body 10 and the secure element 20 are mutually connected by a standard such as, for example, ISO (International Organization Standardization) 7816, SPI (Serial Peripheral Interface).

デバイス本体10は、制御部11、記憶部12、入出力I/F13、通信部14、入力部15、及び撮像部16を備える。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、記憶部12に記憶されたプログラムP1を読み出して実行することにより、デバイス1に係る種々の情報処理、制御処理を行う。記憶部12は、RAM(Random Access Memory)、ROM(Read Only Memory)等を有し、制御部11が演算処理を実行するために必要なプログラムP1、その他のデータを記憶する。また、記憶部12は、後述するように、セキュアエレメント20に格納された推論モデル用パラメータ271に基づき構築した推論モデル121を記憶する。
The device body 10 includes a control unit 11, a storage unit 12, an input / output I / F 13, a communication unit 14, an input unit 15, and an imaging unit 16.
The control unit 11 includes an arithmetic processing unit such as one or more central processing units (CPUs), a micro-processing unit (MPU), and a graphics processing unit (GPU), and reads out the program P1 stored in the storage unit 12 By performing the processing, various information processing and control processing related to the device 1 are performed. The storage unit 12 includes a random access memory (RAM), a read only memory (ROM), and the like, and stores a program P1 necessary for the control unit 11 to execute arithmetic processing and other data. The storage unit 12 also stores an inference model 121 built based on the inference model parameters 271 stored in the secure element 20, as described later.

入出力I/F13は、セキュアエレメント20と情報の入出力を行うためのインターフェイスであり、上述の如く、ISO7816、SPI等の規格で情報の入出力を行う。通信部14は、インターネット通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークNを介してサーバ3等と情報の送受信を行う。入力部15は、ユーザから情報の入力を受け付ける入力インターフェイスであり、デバイス1の種類に応じて、例えばメカニカルキー、タッチパネル、音声入力マイク等、種々の形態であり得る。撮像部16は、CMOS(Complementary Metal Oxide Semiconductor)センサ等を有する撮像機構であり、画像の撮像を行う。   The input / output I / F 13 is an interface for performing input and output of information with the secure element 20, and as described above, performs input and output of information according to a standard such as ISO 7816 and SPI. The communication unit 14 includes a processing circuit for performing processing related to Internet communication, an antenna, and the like, and transmits and receives information with the server 3 and the like through the network N. The input unit 15 is an input interface that receives an input of information from the user, and may be in various forms such as a mechanical key, a touch panel, a voice input microphone, or the like according to the type of the device 1. The imaging unit 16 is an imaging mechanism having a Complementary Metal Oxide Semiconductor (CMOS) sensor or the like, and captures an image.

セキュアエレメント20は、読出部21、認証部22、演算部23、カウンタ24、通信路開設部25、入出力I/F26、及び記憶部27を備える。
読出部21は、記憶部27からデータを読み出してデバイス本体10に出力する。認証部22は、後述するように、デバイス本体10から入力される認証情報の確認を行う。演算部23は、推論モデル121に基づく演算処理を実行する。カウンタ24は、デバイス1における推論処理の実行回数をカウントする。通信路開設部25は、サーバ3との間で通信内容を暗号化した秘匿通信路41(図7等参照)を開設する。入出力I/F26は、デバイス本体10の入出力I/F13との間でデータの入出力を行う。
The secure element 20 includes a read unit 21, an authentication unit 22, an operation unit 23, a counter 24, a communication path establishment unit 25, an input / output I / F 26, and a storage unit 27.
The reading unit 21 reads data from the storage unit 27 and outputs the data to the device body 10. The authentication unit 22 confirms authentication information input from the device main body 10 as described later. The arithmetic unit 23 executes arithmetic processing based on the inference model 121. The counter 24 counts the number of times of execution of inference processing in the device 1. The communication path establishment unit 25 establishes a secret communication path 41 (see FIG. 7 and the like) in which the communication content is encrypted with the server 3. The input / output I / F 26 performs data input / output with the input / output I / F 13 of the device body 10.

記憶部27は不揮発性メモリであり、推論モデル用パラメータ271、推論モデル121、許可フラグ272、及び固有ID273を記憶している。推論モデル用パラメータ271は、後述するように、デバイス本体10が推論モデル121を展開するために必要なパラメータである。推論モデル121は、デバイス本体10の記憶部12に記憶してあるモデルデータと同じデータであり、機械学習により生成された学習済みモデルのデータである。許可フラグ272は、自装置(デバイス1)での推論処理の実行が許可又は禁止されていることを示す許否情報であり、後述するように、サーバ3からの指示に従って設定される。固有ID273は、セキュアエレメント20に固有の個体識別情報であり、例えばセキュアエレメント20の製造番号等である。   The storage unit 27 is a non-volatile memory, and stores an inference model parameter 271, an inference model 121, a permission flag 272, and a unique ID 273. The inference model parameter 271 is a parameter necessary for the device body 10 to expand the inference model 121 as described later. The inference model 121 is the same data as model data stored in the storage unit 12 of the device body 10, and is data of a learned model generated by machine learning. The permission flag 272 is permission / disapproval information indicating that execution of inference processing in the own device (device 1) is permitted or prohibited, and is set in accordance with an instruction from the server 3 as described later. The unique ID 273 is individual identification information unique to the secure element 20, and is, for example, a serial number of the secure element 20 or the like.

サーバ3は、制御部31、主記憶部32、通信部33、及び補助記憶部34を備える。
制御部31は、一又は複数のCPU、MPU等の演算装置を備え、サーバ3に係る種々の情報処理、制御処理を行う。主記憶部32は、RAM等の揮発性メモリであり、制御部31が処理を実行する上で必要なデータを一時的に記憶する。通信部33は、通信に関する処理を行う処理回路等を有し、ネットワークNを介してデバイス1等と通信を行う。
The server 3 includes a control unit 31, a main storage unit 32, a communication unit 33, and an auxiliary storage unit 34.
The control unit 31 includes arithmetic devices such as one or more CPUs and MPUs, and performs various information processing and control processes related to the server 3. The main storage unit 32 is a volatile memory such as a RAM, and temporarily stores data necessary for the control unit 31 to execute processing. The communication unit 33 includes a processing circuit that performs processing related to communication, and communicates with the device 1 and the like via the network N.

補助記憶部34は、大容量メモリ、ハードディスク等であり、サーバ3が処理を行うために必要なプログラムP2、その他のデータを記憶している。また、補助記憶部34は、最新モデル用パラメータ341及び動作管理DB342を記憶している。最新モデル用パラメータ341は、デバイス1に配信する最新の推論モデル121のデータであり、デバイス1が推論モデル121を展開する上で必要なパラメータである。動作管理DB342は、デバイス1の動作状況を管理するデータベースである。   The auxiliary storage unit 34 is a large capacity memory, a hard disk or the like, and stores a program P2 necessary for the server 3 to perform processing and other data. Further, the auxiliary storage unit 34 stores the latest model parameter 341 and the operation management DB 342. The latest model parameter 341 is data of the latest inference model 121 distributed to the device 1, and is a parameter necessary for the device 1 to deploy the inference model 121. The operation management DB 342 is a database that manages the operation status of the device 1.

なお、補助記憶部34はサーバ3に接続された外部記憶装置であってもよい。また、サーバ3は複数のコンピュータからなるマルチサーバであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。   The auxiliary storage unit 34 may be an external storage device connected to the server 3. Also, the server 3 may be a multi server consisting of a plurality of computers, or may be a virtual machine virtually constructed by software.

図2は、動作管理DB342のレコードレイアウトの一例を示す説明図である。動作管理DB342は、ID列、実行回数列、実行日時列、実行許可列、種別列、バージョン列を含む。ID列は、各デバイス1(セキュアエレメント20)の識別情報である固有ID273を記憶している。実行回数列は、固有ID273と対応付けて、各デバイス1で推論処理を実行した実行回数を記憶している。実行日時列は、固有ID273と対応付けて、各デバイス1で推論処理を実行した日時を記憶している。実行許可列は、固有ID273と対応付けて、各デバイス1において推論処理を許可又は禁止していることを示す許否情報を記憶している。種別列は、固有ID273と対応付けて、各デバイス1に適用(インストール)してある推論モデル121の種別を記憶している。バージョン列は、固有ID273と対応付けて、各デバイス1に適用してある推論モデル121のバージョン情報を記憶している。   FIG. 2 is an explanatory view showing an example of the record layout of the operation management DB 342. As shown in FIG. The operation management DB 342 includes an ID column, an execution count column, an execution date column, an execution permission column, a type column, and a version column. The ID column stores a unique ID 273 which is identification information of each device 1 (secure element 20). The execution number column stores the number of executions of inference processing performed by each device 1 in association with the unique ID 273. The execution date and time column stores the date and time when the inference process was performed in each device 1 in association with the unique ID 273. The execution permission column stores permission / refusal information indicating that each device 1 permits or prohibits inference processing in association with the unique ID 273. The type column stores the type of the inference model 121 applied (installed) to each device 1 in association with the unique ID 273. The version column stores version information of the inference model 121 applied to each device 1 in association with the unique ID 273.

図3は、推論モデル121の展開処理を説明するための説明図である。図3では、デバイス本体10がセキュアエレメント20から推論モデル用パラメータ271を読み出し、当該パラメータに基づいて推論モデル121をメモリ上に展開する様子を概念的に図示している。
上述の如く、セキュアエレメント20は記憶部27に、機械学習により生成された推論モデル121を展開するための推論モデル用パラメータ271を記憶している。本実施の形態において推論モデル121は、ディープラーニングにより生成されたニューラルネットワークであるものとして説明する。なお、機械学習のアルゴリズムはディープラーニングに限定されるものではなく、例えば回帰法、決定木学習、ベイズ法、クラスタリング等であってもよく、また、推論モデル121はニューラルネットワークに限定されるものではなく、線形モデル、決定木、ベイジアンネットワーク等であってもよい。
FIG. 3 is an explanatory diagram for explaining expansion processing of the inference model 121. As shown in FIG. FIG. 3 conceptually illustrates how the device body 10 reads the inference model parameter 271 from the secure element 20 and develops the inference model 121 on the memory based on the parameter.
As described above, the secure element 20 stores the inference model parameters 271 for expanding the inference model 121 generated by machine learning in the storage unit 27. In the present embodiment, the inference model 121 is described as a neural network generated by deep learning. Note that the machine learning algorithm is not limited to deep learning, and may be, for example, regression method, decision tree learning, Bayesian method, clustering, etc. Further, if the inference model 121 is limited to a neural network Instead, they may be linear models, decision trees, Bayesian networks, etc.

例えばサーバ3は、定期的に推論モデル121のアップデート(学習)を行い、最新モデル用パラメータ341をデバイス1に配信する。デバイス1は、サーバ3から配信された最新モデル用パラメータ341を、推論モデル用パラメータ271としてセキュアエレメント20に格納しておく。なお、機械学習は、パラメータの配信元であるサーバ3が主体となって行うものでもよく、他のコンピュータが機械学習を行って学習結果をサーバ3に保存しておいてもよい。   For example, the server 3 periodically updates (learns) the inference model 121 and distributes the latest model parameter 341 to the device 1. The device 1 stores the latest model parameter 341 distributed from the server 3 in the secure element 20 as the inference model parameter 271. The machine learning may be performed mainly by the server 3 that is the distribution source of the parameter, or another computer may perform machine learning and store the learning result in the server 3.

推論モデル用パラメータ271は、ハイパーパラメータ271aと、学習パラメータ271bと、バージョン情報271cとから成るデータ群である。ハイパーパラメータ271aは、コンピュータに機械学習を行わせるために手動設定される設定値であり、推論モデル121の基本構造を一意に特定可能なパラメータである。例えば推論モデル121がニューラルネットワークである場合、ハイパーパラメータ271aは、各ニューロン層に入力される入力数、各ニューロン層から出力される出力数、ニューロン間の層間結合、各ニューロンの演算処理に用いられる活性化関数等を指し示す情報である。   The inference model parameter 271 is a data group including a hyper parameter 271 a, a learning parameter 271 b, and version information 271 c. The hyper parameter 271 a is a setting value manually set to cause the computer to perform machine learning, and is a parameter that can uniquely identify the basic structure of the inference model 121. For example, when the inference model 121 is a neural network, the hyperparameter 271a is used for the number of inputs input to each neuron layer, the number of outputs output from each neuron layer, interlayer connection between neurons, and arithmetic processing of each neuron Information indicating an activation function or the like.

学習パラメータ271bは、ハイパーパラメータ271aで規定されるネットワーク構造の下、機械学習によりコンピュータが学習した学習値である。例えば推論モデル121がニューラルネットワークである場合、学習パラメータ271bは、各ニューロンの重み付け係数、バイアス値等のパラメータである。サーバ3は、正解値付きの教師データの入力を受け、各ニューロンに適用する学習パラメータ271bを学習する。
なお、機械学習は教師なし学習、半教師学習等であってもよい。また、機械学習は強化学習であってもよく、この場合、推論モデル用パラメータ271はQ値(Q(s,a);sは状態、aは行動)であってもよい。
The learning parameter 271 b is a learning value learned by a computer by machine learning under the network structure defined by the hyper parameter 271 a. For example, when the inference model 121 is a neural network, the learning parameter 271b is a parameter such as a weighting coefficient or a bias value of each neuron. The server 3 receives the input of the teacher data with the correct value, and learns the learning parameter 271b to be applied to each neuron.
Machine learning may be unsupervised learning, semi-supervised learning, or the like. Machine learning may be reinforcement learning, and in this case, the inference model parameter 271 may be a Q value (Q (s, a); s is a state, a is an action).

バージョン情報271cは、推論モデル121のバージョン数を表す情報である。上述の如く、サーバ3は定期的に推論モデル121をアップデートし、最新モデル用パラメータ341を配信する。バージョン情報271cは、当該アップデートによるバージョン数を表す。   The version information 271 c is information indicating the number of versions of the inference model 121. As described above, the server 3 periodically updates the inference model 121 and distributes the latest model parameters 341. The version information 271 c indicates the number of versions according to the update.

図3において符号P1〜P8で示す処理プロセスについて、順に説明する。なお、初期段階でデバイス本体10には推論モデル121が未展開であるものとする。
例えばデバイス1の起動時、又は推論を伴うアプリケーションの動作開始時等に、デバイス本体10の制御部11は、セキュアエレメント20に対して推論モデル用パラメータ271の読み出しを要求する(P1)。
The processing processes indicated by reference signs P1 to P8 in FIG. 3 will be described in order. It is assumed that the inference model 121 is not developed in the device body 10 at the initial stage.
The control unit 11 of the device body 10 requests the secure element 20 to read out the inference model parameter 271 (P1), for example, when the device 1 starts up or when the operation of an application involving inference starts.

読出要求を受け付けた場合、セキュアエレメント20の読出部21はまず、当該読出要求が正当なものであるか否か、運用者認証を行う。読出部21は認証部22に対し、運用者(デバイス1のユーザ等)の認証に必要な認証情報を確認するよう要求する(P2)。当該要求を受け付けた場合、認証部22はデバイス本体10に対し、認証情報の出力を要求する(P3)。   When a read request is received, the read unit 21 of the secure element 20 first performs operator authentication to determine whether the read request is valid. The reading unit 21 requests the authenticating unit 22 to confirm the authentication information necessary for authenticating the operator (the user of the device 1 or the like) (P2). When the request is received, the authentication unit 22 requests the device body 10 to output the authentication information (P3).

認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、セキュアエレメント20に対して認証情報を出力する(P4)。認証情報は例えば、入力部15を介して入力されるPIN(Personal Identification Number)コード、パスワード、生体情報等である。なお、認証情報はこれらに限定されるものではなく、運用者の正当性を適切に確認することができればよい。認証部22は、デバイス本体10から取得した認証情報を、セキュアエレメント20で事前に保持してある認証情報(不図示)と照合し、認証を行う。   When the output request for the authentication information is received, the control unit 11 of the device body 10 outputs the authentication information to the secure element 20 (P4). The authentication information is, for example, a PIN (Personal Identification Number) code input via the input unit 15, a password, biometric information and the like. The authentication information is not limited to these, as long as the legitimacy of the operator can be appropriately confirmed. The authentication unit 22 performs authentication by collating the authentication information acquired from the device body 10 with the authentication information (not shown) held in advance by the secure element 20.

認証に失敗した場合、セキュアエレメント20は推論モデル用パラメータ271を出力せず、一連の処理を終了する。認証に成功した場合、認証部22は認証が完了した旨をセキュアエレメント20内に保持すると共に、認証が完了した旨をデバイス本体10に通知する。   If the authentication fails, the secure element 20 does not output the inference model parameter 271 and ends the series of processes. If the authentication is successful, the authentication unit 22 holds that the authentication is completed in the secure element 20 and notifies the device body 10 that the authentication is completed.

認証完了の通知を受けた場合、デバイス本体10の制御部11は再度、パラメータの読出要求を行う(P5)。読出要求を受け付けた場合、セキュアエレメント20の読出部21は、記憶部27から推論モデル用パラメータ271を読み出す(P6)。読出部21は、読み出したパラメータをデバイス本体10に出力する(P7)。   When the notification of the authentication completion is received, the control unit 11 of the device main body 10 makes a read request of the parameter again (P5). When the reading request is received, the reading unit 21 of the secure element 20 reads the inference model parameter 271 from the storage unit 27 (P6). The reading unit 21 outputs the read parameter to the device body 10 (P7).

デバイス本体10の制御部11は、セキュアエレメント20から取得したパラメータに基づき、推論モデル121をメモリ上に展開する(P8)。具体的には以下に説明するように、制御部11は、推論モデル用パラメータ271のうち、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定し、基本構造を決定したニューラルネットワークの各ニューロンに対して学習パラメータ271bを適用することで、推論モデル121を展開する。   The control unit 11 of the device body 10 develops the inference model 121 on the memory based on the parameters acquired from the secure element 20 (P8). Specifically, as described below, the control unit 11 determines the basic structure of the neural network based on the hyper parameter 271 a of the inference model parameters 271, and determines each neuron of the neural network whose basic structure has been determined. The inference model 121 is developed by applying the learning parameter 271b to the program.

図4は、推論モデル121の基本構造の一例を示す説明図である。図4では、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定する様子を概念的に図示している。ハイパーパラメータ271aは、各ニューロン層の入力数、出力数、層間結合等を規定するデータであり、ニューロン層毎に構造を一意に特定可能なように規定されている。   FIG. 4 is an explanatory view showing an example of the basic structure of the inference model 121. As shown in FIG. FIG. 4 conceptually illustrates how the basic structure of the neural network is determined based on the hyper parameter 271a. The hyper parameter 271 a is data defining the number of inputs, the number of outputs, interlayer coupling and the like of each neuron layer, and is defined such that the structure can be uniquely identified for each neuron layer.

図4の例では、第0層(入力層)の入力数は「3」に規定されているため、デバイス本体10の制御部11は、入力値x0〜x2を想定する。また、第0層の出力数は「3」であるため、制御部11は、ニューロンを3つ配置する。また、層間結合は「全結合」であるため、制御部11は、第0層の全てのニューロンの出力値を、次の層(第1層)の全てのニューロンに対して入力する。さらに、第0層の活性化関数はReLU(Rectified Linear Unit)で定義されているため、制御部11は、第0層の各ニューロンにおいて、ReLU関数を用いて出力値を演算する。   In the example of FIG. 4, since the number of inputs of the 0th layer (input layer) is defined as “3”, the control unit 11 of the device main body 10 assumes input values x0 to x2. Further, since the number of outputs of the zeroth layer is “3”, the control unit 11 arranges three neurons. Further, since the interlayer coupling is “all coupling”, the control unit 11 inputs the output value of all neurons in the zeroth layer to all neurons in the next layer (first layer). Furthermore, since the activation function of the 0th layer is defined by ReLU (Rectified Linear Unit), the control unit 11 calculates the output value using the ReLU function in each neuron of the 0th layer.

以下同様にして、制御部11は、各ニューロン層における構造を決定する。これによって制御部11は、図4に示すように、入力から出力に至るニューラルネットワークの基本構造を決定する。   Likewise, the control unit 11 determines the structure in each neuron layer in the same manner. Thus, the control unit 11 determines the basic structure of the neural network from the input to the output as shown in FIG.

図5は、学習パラメータ271bの適用処理に関する説明図である。図5では、図4で示したニューラルネットワークの基本構造に対し、機械学習結果に応じた学習パラメータ271bを適用する様子を図示している。
例えばセキュアエレメント20には、ハイパーパラメータ271aで規定する第0〜3層のニューロン層に対応して、各ニューロン層に適用する学習パラメータ271bが保持されている。具体的には、セキュアエレメント20は各ニューロンに対して適用する重み付け係数、バイアス値等のパラメータを格納しており、制御部11は、当該パラメータを各々のニューロンに対して適用する。
FIG. 5 is an explanatory diagram of an application process of the learning parameter 271b. FIG. 5 illustrates how a learning parameter 271b according to the machine learning result is applied to the basic structure of the neural network shown in FIG.
For example, in the secure element 20, learning parameters 271b to be applied to each neuron layer are held corresponding to the 0th to 3rd neuron layers defined by the hyper parameter 271a. Specifically, the secure element 20 stores parameters such as weighting factors and bias values to be applied to each neuron, and the control unit 11 applies the parameters to each neuron.

図3、図5の表では、「from/to」で示す表部分の値が重み付け係数に該当する。なお、「from」は入力元である入力値x0〜x2、あるいは前層のニューロンを、「to」は入力対象となるニューロンを示している。例えば第0層において、(from,to)=(0,0)のとき、表の値は0.1である。この値は、0番目の入力(x0)が、ニューロン番号が「0」である0番目のニューロンに入力される際の重み付け係数を示している。従って、制御部11は入力値x0が0番目のニューロンに対して入力される際の重みを0.1として計算する。以下同様にして、制御部11は、入力値x0が1番目のニューロンに対して入力される際の重みを0.2、入力値x0が2番目のニューロンに対して入力される際の重みを0.3、入力値x1が0番目のニューロンに対して入力される際の重みを0.1、…として設定する。   In the tables of FIG. 3 and FIG. 5, the value of the table portion indicated by “from / to” corresponds to the weighting factor. Note that "from" indicates input values x0 to x2 as input sources, or neurons in the anterior layer, and "to" indicates neurons to be input targets. For example, in the 0th layer, when (from, to) = (0, 0), the value in the table is 0.1. This value indicates the weighting factor when the zeroth input (x0) is input to the zeroth neuron whose neuron number is "0". Therefore, the control unit 11 calculates the weight when the input value x0 is input to the zeroth neuron as 0.1. Likewise, the control unit 11 sets the weight when the input value x0 is input to the first neuron to 0.2 and the weight when the input value x0 is input to the second neuron. The weight when the input value x1 is input to the 0-th neuron is set to 0.1,.

また、図3、図5の表における「bias」は、各ニューロンにおいて、重み付け係数を乗算後の入力値に対して加えるバイアス値を示す。例えば第0層におけるバイアス値は全て0.6である。従って、制御部11は、バイアス値0.6を第0層の各ニューロンに対して設定する。   Also, “bias” in the tables of FIG. 3 and FIG. 5 indicates a bias value to be applied to the input value after multiplication of the weighting coefficient in each neuron. For example, the bias values in the zeroth layer are all 0.6. Therefore, the control unit 11 sets a bias value of 0.6 for each neuron in the zeroth layer.

以下同様にして、制御部11は第1〜3層のニューロン層についても、重み付け係数及びバイアス値を設定する。これによって制御部11は、学習パラメータをネットワーク全体に展開し、最初の入力値x0〜x2から最終的な出力値y0〜y2を演算するニューラルネットワークを生成する。   Likewise, the control unit 11 also sets weighting coefficients and bias values for the first to third neuron layers. Thus, the control unit 11 develops a learning parameter in the entire network, and generates a neural network that calculates final output values y0 to y2 from the first input values x0 to x2.

デバイス本体10は、上記のようにして展開した推論モデル121(ニューラルネットワーク)を利用して、所定の推論処理を行う。詳細な図示及び説明は省略するが、例えばデバイス1が監視カメラである場合、デバイス本体10は、撮像部16で撮像した画像を入力データとして取得し、当該入力データを推論モデル121に入力して、画像内に含まれる物体を推定(推論)する処理を行う。デバイス本体10は、撮像画像の各画素の色度、輝度等の値を入力値として推論モデル121に入力し、出力値を演算する。例えば出力値は、画像内に含まれる物体が、機械学習時にその特徴量を学習した特定の物体である確率を示す値である。デバイス本体10は、当該出力値を、サーバ3やその他の装置に出力する。例えば画像から不審物を特定した場合、デバイス本体10は、不審物を発見した旨を報知する。   The device body 10 performs predetermined inference processing using the inference model 121 (neural network) developed as described above. Although detailed illustration and description are omitted, for example, when the device 1 is a surveillance camera, the device body 10 acquires an image captured by the imaging unit 16 as input data, and inputs the input data to the inference model 121. , And perform processing of estimating (inferring) an object included in the image. The device body 10 inputs values such as chromaticity and luminance of each pixel of the captured image as input values into the inference model 121, and calculates output values. For example, the output value is a value indicating the probability that the object included in the image is a specific object for which the feature amount has been learned at the time of machine learning. The device body 10 outputs the output value to the server 3 or another device. For example, when the suspicious object is specified from the image, the device body 10 notifies that the suspicious object has been found.

なお、上記でデバイス1は、セキュアエレメント20からハイパーパラメータ271a及び学習パラメータ271bの両方を読み出して推論モデル121を展開しているが、本実施の形態はこれに限定されるものではない。例えばデバイス1は、ハイパーパラメータ271aはデバイス本体10に保持しておき、学習パラメータ271bはセキュアエレメント20に格納しておいて、デバイス本体10がセキュアエレメント20から学習パラメータ271bのみを読み出して推論モデル121を展開するようにしてもよい。このように、推論モデル用パラメータ271の一部のみをセキュアエレメント20で保存するようにしてもよい。   Although the device 1 reads out both the hyper parameter 271 a and the learning parameter 271 b from the secure element 20 and develops the inference model 121 in the above, the present embodiment is not limited to this. For example, in the device 1, the hyper parameter 271a is held in the device body 10, the learning parameter 271b is stored in the secure element 20, and the device body 10 reads only the learning parameter 271b from the secure element 20. May be expanded. As described above, only part of the inference model parameters 271 may be stored in the secure element 20.

上記のようにデバイス1は、デバイス本体10とは物理的又は論理的に分離されたセキュアエレメント20に推論モデル用パラメータ271を格納しておき、セキュアエレメント20から推論モデル用パラメータ271を読み出して推論モデル121を展開する。デバイス本体10よりセキュアなコンポーネントに推論モデル用パラメータ271を保持しておくことで、第三者による推論モデル121の盗難、模倣等の可能性を低減することができる。   As described above, the device 1 stores the inference model parameter 271 in the secure element 20 physically or logically separated from the device body 10, reads out the inference model parameter 271 from the secure element 20, and performs inference Expand the model 121. By holding the inference model parameter 271 in a more secure component than the device body 10, the possibility of theft, imitation, etc. of the inference model 121 by a third party can be reduced.

しかしながら、以下で述べる理由により、推論モデル121自体のデータを保護するだけでは安全性を損なう虞がある。   However, protecting the data of the inference model 121 itself may impair the security for the reason described below.

図6は、教師モデルを用いた生徒モデルの生成に関する説明図である。図6を用いて、蒸留と呼ばれる学習済みモデルの生成アルゴリズムについて説明する。
蒸留とは、既存の学習済みモデル(図6の例ではニューラルネットワーク)の出力を、より小規模な他のモデルに対する教師データとすることで、学習済みモデルの規模を縮小しつつ、同等の推論を行うことが可能な生徒モデルを生成する手法である。
FIG. 6 is an explanatory diagram regarding generation of a student model using a teacher model. An algorithm for generating a learned model called distillation will be described with reference to FIG.
Distillation is equivalent to inference while reducing the size of the learned model by using the output of the existing learned model (neural network in the example of FIG. 6) as teacher data for other smaller models. Is a method of generating a student model that can

図6上側では、一般的なディープラーニングの手法を概念的に図示する。一般的な学習手法では、入力値に対して正解値(ラベル)が付加された教師データをニューラルネットワークに与え、ニューラルネットワークの出力値が正解値に近づくように重み付け係数、バイアス値等を調整(学習)する。例えば画像認識のための学習モデルを想定した場合、入力画像に映っている物体が特定の物体であるかどうか(例えば犬か猫か)を表現する出力値y0、y1の正解値を与える。教師データでは、ある入力画像が犬であるか、又は猫であるかが予め規定されるため、正解値は0又は1の値で与えられる。一方で、入力値から演算されるニューラルネットワークの出力値は、確率で表現された0〜1の値となる。教師データを得たコンピュータは、0〜1の確率値で演算される出力値y0、y1が、正解値である0又は1に近づくように重み付け係数、バイアス値等(図6では下線付きの三点リーダで図示)を学習する。   The upper part of FIG. 6 conceptually illustrates a general deep learning method. In a general learning method, the training data to which the correct value (label) is added to the input value is given to the neural network, and the weighting coefficient, bias value, etc. are adjusted so that the output value of the neural network approaches the correct value ( learn. For example, when a learning model for image recognition is assumed, correct values of output values y0 and y1 that indicate whether an object shown in an input image is a specific object (for example, a dog or a cat) are given. In teacher data, since it is previously defined whether a certain input image is a dog or a cat, the correct value is given as a value of 0 or 1. On the other hand, the output value of the neural network calculated from the input value is a value of 0 to 1 expressed by the probability. The computer that has obtained the teacher data sets weighting coefficients, bias values, etc. so that the output values y0 and y1 calculated with probability values of 0 and 1 approach 0 or 1 which is the correct value (in FIG. Learn with point leader).

一方で、蒸留による学習手法では、学習済みのニューラルネットワークを教師モデルとし、教師モデルの入出力値を教師データとして利用して、当該教師データを、教師モデルよりも小規模な生徒モデルに学習させる。図6下側に、蒸留による学習手法を概念的に図示する。図6に示す例では、生徒モデルは教師モデルよりもニューロン層の数が少なくなっている。   On the other hand, in the learning method by distillation, a learned neural network is used as a teacher model, and the input and output values of the teacher model are used as teacher data, and the teacher data is made to learn to a student model smaller than the teacher model. . The lower side of FIG. 6 conceptually illustrates a learning method by distillation. In the example shown in FIG. 6, the student model has fewer neuron layers than the teacher model.

当該生徒モデルに対し、教師モデルで推論処理を実行した際の入出力値を与える。ここで、出力値y0、y1の正解値として、犬か猫かの推論結果を示す0又は1の二値ではなく、教師モデルから出力された確率値を用いる点が、一般的な学習手法と相違する。例えば図6下側の表に示すように、生徒モデルには出力値y0、y1の正解値として、0〜1の確率値が与えられる。   Input and output values are given to the student model when inference processing is performed using the teacher model. Here, as the correct value of the output values y0 and y1, not the binary value of 0 or 1 indicating the inference result of dog or cat but the probability value output from the teacher model is a general learning method It is different. For example, as shown in the table on the lower side of FIG. 6, probability values of 0 to 1 are given to the student model as the correct values of the output values y0 and y1.

蒸留では、上記のように確率で表現された教師モデルの出力値を正解値として用い、生徒モデルの出力値との差異が最小化するように、重み付け係数、バイアス値等を調整する。これにより、教師モデルよりも演算工数を削減しながらも、同等の推論を行うことが可能な学習済みモデルが生成される。   In the distillation, using the output value of the teacher model represented by the probability as described above as the correct value, the weighting coefficient, the bias value, etc. are adjusted so as to minimize the difference from the output value of the student model. As a result, a learned model capable of performing equivalent inference while reducing the number of operation steps more than the teacher model is generated.

蒸留のアルゴリズムによれば、教師データとして教師モデルの入出力値のみを用いており、教師モデルの基本構造を規定するハイパーパラメータ271a、又は教師モデルの学習パラメータ271bを参照していない。従って、本実施の形態のように推論モデル用パラメータ271をブラックボックス化しても、デバイス本体10から推論処理実行時の入出力値を搾取することにより、推論モデル121を模倣される虞がある。   According to the distillation algorithm, only input and output values of the teacher model are used as teacher data, and hyper parameters 271a defining the basic structure of the teacher model or learning parameters 271b of the teacher model are not referred to. Therefore, even if the inference model parameter 271 is black boxed as in the present embodiment, there is a possibility that the inference model 121 may be mimicked by extracting input / output values at the time of inference processing execution from the device body 10.

そこで本実施の形態に係るデバイス1は、推論処理の一部をデバイス本体10ではなくセキュアエレメント20で実行することで、上記の問題を解決する。   Therefore, the device 1 according to the present embodiment solves the above-mentioned problem by executing part of the inference processing not by the device body 10 but by the secure element 20.

図7は、推論処理を説明するための説明図である。図8は、デバイス本体10及びセキュアエレメント20がそれぞれ行う演算内容について説明するための説明図である。図7では、デバイス本体10が推論モデル121の一部の演算を実行して演算結果をセキュアエレメント20に出力し、セキュアエレメント20が推論モデル121の残りの部分の演算を実行して、最終的な推論結果をデバイス本体10へ返送する様子を概念的に図示している。図8では、図7を用いて説明する演算処理の具体例を図示している。   FIG. 7 is an explanatory diagram for explaining an inference process. FIG. 8 is an explanatory diagram for explaining the contents of operations performed by the device body 10 and the secure element 20. In FIG. 7, the device main body 10 executes a part of operation of the inference model 121 and outputs the operation result to the secure element 20, and the secure element 20 executes the operation of the remaining part of the inference model 121 to finally It is conceptually illustrated that the inference result is returned to the device body 10. FIG. 8 shows a specific example of the arithmetic processing described with reference to FIG.

図7において符号P21〜P42で示す処理プロセスについて、図8も用いながら順に説明する。なお、図7では便宜上、デバイス本体10の入出力I/F13、及びセキュアエレメント20の入出力I/F26を点線の矩形枠で図示している。
まずデバイス本体10の制御部11は、推論対象である入力データを推論モデル121に入力し、推論モデル121の一部の演算を実行する(P21)。例えば推論モデル121がニューラルネットワークである場合、推論モデル121は複数のニューロン層、つまり複数の演算要素を有する。制御部11は、推論モデル121を構成する複数の演算要素のうち、入力層を含む前段要素の演算を行う。
Processing processes indicated by reference signs P21 to P42 in FIG. 7 will be sequentially described using FIG. In FIG. 7, for convenience, the input / output I / F 13 of the device body 10 and the input / output I / F 26 of the secure element 20 are illustrated by a dotted rectangular frame.
First, the control unit 11 of the device body 10 inputs input data to be inferred into the inference model 121, and executes a part of operation of the inference model 121 (P21). For example, when the inference model 121 is a neural network, the inference model 121 has a plurality of neuron layers, that is, a plurality of operation elements. The control unit 11 performs an operation of a former element including an input layer among a plurality of arithmetic elements constituting the inference model 121.

図8の例では、デバイス本体10が、第0〜3層から成るニューラルネットワークにおいて、入力層である第0層と、次の第1層の演算を行っている。デバイス本体10は入力データに係る入力値x0〜x2(例えば入力画像の画素値)を第0層に入力し、第0層、第1層の演算を行って、第1層までの演算結果、つまり前段要素の演算結果を得る。   In the example of FIG. 8, in the neural network in which the device body 10 includes 0th to 3rd layers, calculation of the 0th layer, which is the input layer, and the next first layer is performed. The device body 10 inputs the input values x0 to x2 (for example, pixel values of the input image) relating to the input data into the 0th layer, performs the operation of the 0th layer and the 1st layer, and calculates That is, the operation result of the former element is obtained.

前段要素の演算が完了した場合、デバイス本体10の制御部11は、前段要素の演算結果をセキュアエレメント20に出力し、前段要素を除く推論モデル121の後段要素の演算をセキュアエレメント20に要求する(P22)。具体的には、制御部11は、前段要素の演算結果と共に、セキュアエレメント20に演算させる後段要素を指定する指定情報を出力し、演算を要求する。指定情報は、自身が演算すべき要素をセキュアエレメント20が特定可能な情報であり、例えばニューラルネットワークである場合、演算すべきニューロン層の層番号を示す情報である。   When the calculation of the former element is completed, the control unit 11 of the device body 10 outputs the calculation result of the former element to the secure element 20 and requests the secure element 20 to calculate the latter element of the inference model 121 excluding the former element. (P22). Specifically, the control unit 11 outputs, together with the calculation result of the former element, specification information for specifying the latter element to be operated by the secure element 20, and requests the calculation. The designation information is information that allows the secure element 20 to identify an element to be operated by itself, and is, for example, in the case of a neural network, information indicating a layer number of a neuron layer to be operated.

図8の例では、デバイス本体10は、第1層までの演算結果を入力値としてセキュアエレメント20に入力し、推論モデル121の後段要素である第2層、第3層の演算をセキュアエレメント20に要求する。デバイス本体10は、演算すべきニューロン層をセキュアエレメント20が判別可能なように、演算処理の開始層の層番号である「2」と、終了層の層番号である「3」とを併せて通知し、具体的に演算を指示する。   In the example of FIG. 8, the device body 10 inputs the calculation result of the first layer to the secure element 20 as an input value, and the calculation of the second layer and the third layer, which are subsequent elements of the inference model 121, is secure element 20. To request. The device body 10 combines the layer number “2” of the start layer of the arithmetic processing and the layer number “3” of the end layer so that the secure element 20 can determine the neuron layer to be calculated. Notify and instruct the operation specifically.

デバイス本体10から演算要求を受け付けた場合、まずセキュアエレメント20の認証部22が運用者認証を行い、正当な運用者からの演算要求であるか否かを確認する(P23)。具体的には推論モデル121の展開時と同様に、認証部22はデバイス本体10からPINコード、パスワード等の認証情報を取得し、認証情報に基づいて運用者の認証を行う。認証に失敗した場合、認証部22は認証に失敗した旨をデバイス本体10に通知し、推論処理を停止させる。なお、例えばすでに運用者認証が行われている場合は、当該認証処理をスキップしてもよい。認証に成功した場合、認証部22は、デバイス本体10から取得した前段要素の演算結果及び後段要素の指定情報を演算部23に受け渡し、演算を要求する(P24)。   When an operation request is received from the device body 10, first, the authentication unit 22 of the secure element 20 performs operator authentication, and confirms whether or not the operation request is from a valid operator (P23). Specifically, as at the time of expansion of the inference model 121, the authentication unit 22 acquires authentication information such as a PIN code and a password from the device body 10, and authenticates the operator based on the authentication information. If the authentication fails, the authentication unit 22 notifies the device body 10 that the authentication has failed, and stops the inference process. In addition, for example, when operator authentication has already been performed, the authentication process may be skipped. If the authentication is successful, the authentication unit 22 passes the calculation result of the former element obtained from the device body 10 and the designation information of the latter element to the calculation unit 23, and requests the calculation (P24).

認証部22から演算要求を受け付けた場合、演算部23はまず、カウンタ24に推論処理(演算処理)の実行回数をカウントさせ、推論実行回数が一定回数に達しているか否かを確認する(P25)。例えばカウンタ24は、推論実行回数の制限回数を保持しており、デバイス本体10から演算要求を受け付ける毎に残回数をデクリメントする。推論実行回数の制限回数は、各デバイス1のセキュアエレメント20毎に異なる。後述するように、サーバ3は各デバイス1のセキュアエレメント20に対して個別に制限回数を付与し、動作管理DB342上で各デバイス1の推論実行回数を一元的に管理する。カウンタ24は、残回数が0になったか否かをチェックすることで、サーバ3から付与された制限回数に至ったか否かを確認する。実行回数が一定回数に達した場合、演算部23は演算処理を実行せず、実行回数が一定回数に達した旨をデバイス本体10に通知して、推論処理を停止させる。これにより、外部からの不正アクセスにより推論処理が実行され、入出力値が大量に搾取される事態を防ぐことができる。   When an operation request is received from the authentication unit 22, the operation unit 23 first causes the counter 24 to count the number of times of execution of the inference process (operation process) to check whether the number of times of inference execution has reached a certain number (P25 ). For example, the counter 24 holds the limited number of times of inference execution number, and decrements the remaining number each time an operation request is received from the device main body 10. The limit number of times of inference execution is different for each secure element 20 of each device 1. As will be described later, the server 3 individually assigns a limited number of times to the secure element 20 of each device 1 and centrally manages the number of inference execution times of each device 1 on the operation management DB 342. The counter 24 checks whether the remaining number has reached 0 or not, thereby confirming whether or not the limit number given by the server 3 has been reached. If the number of executions reaches a predetermined number, the arithmetic unit 23 does not execute the arithmetic processing, notifies the device main body 10 that the number of executions has reached a predetermined number, and stops the inference processing. As a result, it is possible to prevent a situation in which a large amount of input / output values are exploited by execution of inference processing due to unauthorized access from the outside.

実行回数が一定回数に達していない場合、演算部23は、許可フラグ272を参照して、推論処理が許可されているか否かを確認する(P26)。上述の如く、許可フラグ272は推論処理の許可又は禁止を表す許否情報である。例えば許可フラグ272は、推論実行回数と同様にサーバ3が動作管理DB342上で管理しており、セキュアエレメント20は、サーバ3からの指示に従って許可フラグ272を「許可」又は「禁止」に設定する。許可フラグ272が「禁止」である場合、演算部23は演算を行わず、推論処理が禁止されている旨をデバイス本体10に通知して処理を停止させる。   If the number of executions has not reached the predetermined number, the operation unit 23 refers to the permission flag 272 and confirms whether inference processing is permitted (P26). As described above, the permission flag 272 is permission information indicating permission or prohibition of inference processing. For example, the permission flag 272 is managed by the server 3 on the operation management DB 342 in the same manner as the number of inference executions, and the secure element 20 sets the permission flag 272 to “permit” or “prohibit” according to an instruction from the server 3 . If the permission flag 272 is "prohibit", the operation unit 23 does not perform the operation, and notifies the device main body 10 that the inference process is prohibited to stop the process.

許可フラグ272が「許可」である場合、演算部23は、記憶部27に保持してある推論モデル121のデータを参照して、デバイス本体10から要求された後段要素の演算処理を実行する(P27)。例えば推論モデル121がニューラルネットワークである場合、演算部23は、推論モデル121を構成する複数の演算要素(ニューロン層)のうち、出力層を含む後段要素の演算を行う。   When the permission flag 272 is “permitted”, the operation unit 23 refers to the data of the inference model 121 stored in the storage unit 27 and executes the operation process of the subsequent element requested from the device body 10 (see FIG. P27). For example, when the inference model 121 is a neural network, the operation unit 23 performs an operation of a subsequent element including an output layer among a plurality of operation elements (neuron layers) constituting the inference model 121.

図8の例では、セキュアエレメント20が、第0〜3層のうち、第2層と、出力層である第3層との演算を行う様子を図示している。セキュアエレメント20は、デバイス本体10から指定された演算処理の開始層である第2層に、デバイス本体10で演算された第1層の演算結果を入力する。セキュアエレメント20は、第2層、第3層の演算を実行し、出力値y0、y1、y2を得る。このように、本実施の形態ではセキュアエレメント20が推論モデル121の後段要素の演算を行い、推論結果に相当する出力値y0、y1、y2を計算する。   In the example of FIG. 8, it is illustrated that the secure element 20 performs the calculation of the second layer among the 0th to third layers and the third layer which is the output layer. The secure element 20 inputs the calculation result of the first layer calculated by the device main body 10 to the second layer which is the start layer of the arithmetic processing designated from the device main body 10. The secure element 20 executes operations of the second and third layers to obtain output values y0, y1 and y2. As described above, in the present embodiment, the secure element 20 performs the operation of the subsequent element of the inference model 121, and calculates the output values y0, y1, and y2 corresponding to the inference result.

演算部23は、後段要素の演算結果をデバイス本体10に出力する(P28)。ここで演算部23は、確率で表現された推論モデル121の出力値をそのままデバイス本体10に出力することなく、確率値を0又は1の二値に変換する端数処理を行い、変換後の値をデバイス本体10に出力する。   The operation unit 23 outputs the operation result of the post-stage element to the device body 10 (P28). Here, the arithmetic unit 23 performs a fraction process of converting the probability value into a binary value of 0 or 1 without directly outputting the output value of the inference model 121 expressed by the probability to the device body 10, and the converted value Is output to the device body 10.

例えば図8に示すように、推論モデル121を構成する演算要素として、0〜1で表現された確率値を0又は1の二値に変換する変換層を用意しておく。セキュアエレメント20は、出力層(第3層)から出力された出力値y0、y1、y2を当該変換層に入力する。セキュアエレメント20は、変換層において出力値y0、y1、y2を端数処理し、0又は1の値を出力する。   For example, as shown in FIG. 8, a conversion layer for converting the probability value represented by 0 to 1 into a binary value of 0 or 1 is prepared as an operation element constituting the inference model 121. The secure element 20 inputs the output values y0, y1, y2 output from the output layer (third layer) to the conversion layer. The secure element 20 rounds the output values y0, y1, y2 in the conversion layer and outputs a value of 0 or 1.

上記のように、セキュアエレメント20は推論モデル121の出力値を確率値で出力することなく、0又は1の二値に表現し直して出力する。従って、デバイス本体10から出力値が搾取された場合であっても、確率で表現されていないため、推論モデル121の模倣が困難になる。   As described above, the secure element 20 expresses the output value of the inference model 121 as a binary value of 0 or 1 without outputting it as a probability value and outputs it. Therefore, even if the output value is exploited from the device body 10, implication of the inference model 121 becomes difficult because it is not expressed by the probability.

セキュアエレメント20から後段要素の演算結果を取得した場合、デバイス本体10の制御部11は、取得した演算結果を用いて、一連の推論処理に係る推論結果を出力する。例えばデバイス1が監視カメラである場合、制御部11は、入力画像に含まれる物体を推論した推論結果を外部に出力する。このように、デバイス本体10はセキュアエレメント20での演算結果を推論結果に用いることで、推論モデル121の模倣を困難にする。   When the calculation result of the subsequent element is acquired from the secure element 20, the control unit 11 of the device body 10 outputs an inference result related to a series of inference processing using the acquired calculation result. For example, when the device 1 is a surveillance camera, the control unit 11 outputs the inference result obtained by inferring the object included in the input image to the outside. Thus, the device body 10 makes it difficult to imitate the inference model 121 by using the operation result in the secure element 20 as the inference result.

さらに本実施の形態では、推論処理の実行後、推論処理を実行した旨をセキュアエレメント20がサーバ3に通知(報告)することで、サーバ3が各デバイス1における推論処理の実行回数を管理する。まずセキュアエレメント20のカウンタ24が、カウントした推論実行回数を通信路開設部25に受け渡す(P29)。そして通信路開設部25が、デバイス1とサーバ3との間で、エンドツーエンドの秘匿通信路41を開設する(P30)。   Furthermore, in the present embodiment, after the execution of the inference process, the secure element 20 notifies (reports) the server 3 that the inference process has been executed, so that the server 3 manages the number of times of execution of the inference process in each device 1. . First, the counter 24 of the secure element 20 delivers the counted number of inference execution times to the communication path establishment unit 25 (P29). Then, the communication path establishment unit 25 establishes an end-to-end confidential communication path 41 between the device 1 and the server 3 (P30).

秘匿通信路41は、例えばTLS(Transport Layer Security)のプロトコルで通信内容を暗号化した通信路である。通信路開設部25は、デバイス本体10におけるネットワークNとの通信インターフェイスである通信部14を経由して、サーバ3との間の秘匿通信路41を開設する。   The secret communication path 41 is, for example, a communication path in which the communication content is encrypted by a protocol of TLS (Transport Layer Security). The communication path establishment unit 25 establishes the secret communication path 41 with the server 3 via the communication unit 14 which is a communication interface with the network N in the device main body 10.

なお、秘匿通信路41は通信内容を秘匿可能であればよく、例えばSSL(Secure Sockets Layer)等のプロトコルを採用してもよい。また、上記ではデバイス本体10の物理的な通信手段(通信部14)を経由して秘匿通信路41を確立しているが、セキュアエレメント20がサーバ3との間で秘匿通信路41を開設可能であればよく、セキュアエレメント20自体が物理的な通信手段(LAN、Wi−Fi(登録商標)等)を有する場合、セキュアエレメント20はサーバ3との間で秘匿通信路41を直接確立してもよい。   The secret communication path 41 may be any type as long as the communication content can be concealed, and for example, a protocol such as SSL (Secure Sockets Layer) may be adopted. Further, although the secret communication path 41 is established through the physical communication means (communication unit 14) of the device main body 10 in the above, the secure element 20 can establish the secret communication path 41 with the server 3 If the secure element 20 itself has physical communication means (LAN, Wi-Fi (registered trademark), etc.), the secure element 20 directly establishes the secret communication path 41 with the server 3. It is also good.

通信路開設部25は秘匿通信路41を介して、現在までカウントした推論実行回数をサーバ3に通知する(P41)。具体的には、通信路開設部25は、セキュアエレメント20の個体識別情報である固有ID273と、カウンタ24の現在の値(残回数)とを、推論処理を実行する現在の実行日時と共にサーバ3に通知する。サーバ3の制御部31は、通知された推論実行回数を動作管理DB342に記憶する(P42)。具体的には、制御部31は、セキュアエレメント20から通知された固有ID273と対応付けて、通知された推論処理の残回数と、実行日時とを動作管理DB342に記憶する。   The communication path establishment unit 25 notifies the server 3 of the number of inference execution times counted up to the present via the secret communication path 41 (P41). Specifically, the communication channel establishment unit 25 sets the unique ID 273, which is individual identification information of the secure element 20, and the current value (remaining number of times) of the counter 24 together with the current execution date and time to execute the inference processing. Notify The control unit 31 of the server 3 stores the notified inference execution count in the operation management DB 342 (P42). Specifically, the control unit 31 stores the number of remaining notified inference processes and the execution date in the operation management DB 342 in association with the unique ID 273 notified from the secure element 20.

上記のように、セキュアエレメント20は推論実行回数をサーバ3へ通知し、サーバ3が各デバイス1(セキュアエレメント20)の実行回数を管理する。これにより、各デバイス1での推論実行回数が一元管理される。   As described above, the secure element 20 notifies the server 3 of the inference execution count, and the server 3 manages the execution count of each device 1 (secure element 20). Thereby, the number of times of inference execution in each device 1 is centrally managed.

図9は、推論実行回数及び許否情報の更新処理に関する説明図である。既に触れたように、本実施の形態ではサーバ3が各デバイス1における推論処理の実行回数、及び推論処理の許否情報を管理する。ここでは図9を用いて、推論実行回数及び許否情報の具体的な管理手法の一つとして、サーバ3が各デバイス1と通信を行い、セキュアエレメント20に保持してある推論実行回数及び許否情報を更新する処理について説明する。なお、図9では図示の便宜のため、デバイス本体10の通信部14、及びサーバ3の通信部33を点線の矩形枠で図示している。   FIG. 9 is an explanatory diagram of the process of updating the number of times of inference execution and the permission / refusal information. As mentioned above, in the present embodiment, the server 3 manages the number of times of execution of inference processing in each device 1 and permission information of the inference processing. Here, using FIG. 9, the server 3 communicates with each device 1 as one of the specific management methods of the inference execution frequency and the permission / refusal information, and the inference execution frequency and permission / refusal information held in the secure element 20 The process of updating the In FIG. 9, for convenience of illustration, the communication unit 14 of the device body 10 and the communication unit 33 of the server 3 are illustrated by dotted rectangular frames.

例えばサーバ3は、本システムの管理者が、動作管理DB342において各デバイス1の固有ID273に紐付く推論実行回数及び許否情報を更新した場合、更新内容を各デバイス1に通知し、セキュアエレメント20に保持してある推論実行回数及び許否情報を更新させる。   For example, when the administrator of this system updates the number of inference execution times and permission information linked to the unique ID 273 of each device 1 in the operation management DB 342, the server 3 notifies each device 1 of the updated contents and sends it to the secure element 20. Update the number of inference execution times and permission information that is held.

例えばサーバ3は、バッチ処理により動作管理DB342を参照して、推論実行回数又は許否情報が変更されたデバイス1があるか否かを確認する(P41)。推論実行回数又は許否情報が変更されたデバイス1がある場合、サーバ3は、当該デバイス1の固有ID273を特定する。   For example, the server 3 refers to the operation management DB 342 by batch processing to confirm whether there is a device 1 for which the number of times of inference execution or permission / refusal information has been changed (P41). If there is a device 1 for which the number of times of inference execution or permission information has been changed, the server 3 identifies the unique ID 273 of the device 1.

サーバ3は、特定した固有ID273のデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(P42)。そしてサーバ3は、秘匿通信路41を介して、推論実行回数又は許否情報に関する更新内容をセキュアエレメント20に送信する(P43)。   The server 3 establishes the secret communication path 41 with the secure element 20 of the device 1 of the identified unique ID 273 (P42). Then, the server 3 transmits the updated content regarding the number of times of inference execution or permission / refusal information to the secure element 20 via the secret communication path 41 (P43).

サーバ3から更新内容を受信した場合、セキュアエレメント20の通信路開設部25は、更新内容をセキュアエレメント20内に格納し、推論実行回数又は許否情報を更新する(P44)。例えば図9に図示するように、通信路開設部25は、カウンタ24が保持する推論処理の残回数、又は記憶部27に保持してある許可フラグ272の値を、サーバ3から受信した値に上書きする。   When the update content is received from the server 3, the communication channel establishment unit 25 of the secure element 20 stores the update content in the secure element 20, and updates the number of times of inference execution or permission / refusal information (P44). For example, as illustrated in FIG. 9, the communication channel establishment unit 25 sets the remaining number of inference processing held by the counter 24 or the value of the permission flag 272 held in the storage unit 27 to the value received from the server 3. Overwrite.

上記のように、セキュアエレメント20は、動作管理DB342に設定されている推論実行回数及び許否情報と、自身が保持している推論実行回数及び許否情報とを同期する。セキュアエレメント20は、上記のようにしてサーバ3から指示された推論実行回数及び許否情報に従って推論処理の可否を判断する。これにより、サーバ3からのセキュアエレメント20の遠隔制御が可能となる。   As described above, the secure element 20 synchronizes the inference execution count and permission information set in the operation management DB 342 with the inference execution count and permission information that the secure element 20 holds. The secure element 20 determines the propriety of the inference process according to the number of times of inference execution and permission / refusal information instructed from the server 3 as described above. This enables remote control of the secure element 20 from the server 3.

なお、上記では管理者による手動設定に従って推論実行回数及び許否情報を更新することにしたが、本実施の形態はこれに限定されるものではない。例えばサーバ3は、セキュアエレメント20からの通知により残回数が0となった場合、セキュアエレメント20と通信を行い、残回数を所定のデフォルト値に自動的にリセットさせることにしてもよい。このように、セキュアエレメント20が保持する推論実行回数及び許否情報をサーバ3が遠隔制御することができればよく、更新のタイミングや処理内容は特に限定されない。   Although the number of times of inference execution and permission / refusal information are updated in accordance with the manual setting by the administrator in the above, the present embodiment is not limited to this. For example, the server 3 may communicate with the secure element 20 and automatically reset the remaining number to a predetermined default value when the remaining number becomes 0 by notification from the secure element 20. As described above, the server 3 can remotely control the number of inference execution times and the permission / refusal information held by the secure element 20, and the timing of update and the process content are not particularly limited.

図10は、推論モデル121の展開処理の処理手順の一例を示すフローチャートである。図10に基づき、推論モデル121の展開処理の処理内容について説明する。
例えばデバイス1は、自装置の起動時、又は推論処理を伴うアプリケーションの起動時等、所定のタイミングで以下の処理を実行する。デバイス本体10の制御部11は、推論モデル121を展開するために必要なパラメータを保持するセキュアエレメント20に対し、当該パラメータの読み出しを要求する(ステップS11)。上述の如く、セキュアエレメント20は耐タンパ性を有するチップであり、デバイス本体10とは物理的に分離され、推論モデル用のパラメータを安全に保持する。
FIG. 10 is a flowchart showing an example of the processing procedure of the expansion processing of the inference model 121. The processing content of the expansion processing of the inference model 121 will be described based on FIG.
For example, the device 1 executes the following processing at a predetermined timing, such as when the device 1 is activated or when an application involving inference processing is activated. The control unit 11 of the device body 10 requests the secure element 20 holding parameters necessary for developing the inference model 121 to read the parameters (step S11). As described above, the secure element 20 is a chip having tamper resistance, is physically separated from the device body 10, and securely holds parameters for the inference model.

デバイス本体10からパラメータの読出要求を受け付けた場合、セキュアエレメント20は、デバイス本体10に対し、運用者認証に必要な認証情報の出力を要求する(ステップS12)。認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、入力部15を介して認証情報の入力を受け付け、セキュアエレメント20に出力する(ステップS13)。認証情報は、例えばPINコード、パスワード、生体情報等であるが、運用者の正当性を適切に確認可能な情報であればよい。   When receiving the parameter read request from the device body 10, the secure element 20 requests the device body 10 to output authentication information required for operator authentication (step S12). When receiving the output request of the authentication information, the control unit 11 of the device main body 10 receives the input of the authentication information through the input unit 15, and outputs the input to the secure element 20 (step S13). The authentication information is, for example, a PIN code, a password, biometric information, etc., but may be any information that can properly confirm the legitimacy of the operator.

セキュアエレメント20は、認証情報に基づく運用者認証を行う(ステップS14)。セキュアエレメント20は、運用者認証が成功したか否かを判定する(ステップS15)。認証に失敗した場合(S15:NO)、セキュアエレメント20はパラメータの読み出しを行わず、一連の処理を終了する。認証が成功した場合(S15:YES)、セキュアエレメント20は推論モデル用パラメータ271を記憶部27から読み出す(ステップS16)。例えば推論モデル121がディープラーニングにより生成されるニューラルネットワークである場合、セキュアエレメント20は、ニューラルネットワークの基本構造を規定するハイパーパラメータ271aと、各ニューロン層に適用する学習パラメータ271bとを読み出す。セキュアエレメント20は、読み出したパラメータをデバイス本体10に出力する(ステップS17)。   The secure element 20 performs operator authentication based on the authentication information (step S14). The secure element 20 determines whether the operator authentication is successful (step S15). If the authentication fails (S15: NO), the secure element 20 does not read the parameter and ends the series of processes. If the authentication is successful (S15: YES), the secure element 20 reads the inference model parameter 271 from the storage unit 27 (step S16). For example, when the inference model 121 is a neural network generated by deep learning, the secure element 20 reads out hyper parameters 271a defining the basic structure of the neural network and learning parameters 271b applied to each neuron layer. The secure element 20 outputs the read parameter to the device body 10 (step S17).

セキュアエレメント20からパラメータの出力を受けた場合、デバイス本体10の制御部11は、当該パラメータに基づき、推論モデル121を記憶部12に展開する(ステップS18)。具体的には、制御部11はハイパーパラメータ271aに従ってニューラルネットワークの基本構造を決定し、決定した基本構造のニューラルネットワークの各ニューロンに学習パラメータ271bを適用することで、推論モデル121を展開する。制御部11は、一連の処理を終了する。   When receiving the output of the parameter from the secure element 20, the control unit 11 of the device body 10 develops the inference model 121 in the storage unit 12 based on the parameter (step S18). Specifically, the control unit 11 determines the basic structure of the neural network according to the hyper parameter 271a, and develops the inference model 121 by applying the learning parameter 271b to each neuron of the neural network of the determined basic structure. The control unit 11 ends the series of processes.

図11は、推論処理の処理手順の一例を示すフローチャートである。図11に基づき、推論モデル121に基づく推論処理の処理内容について説明する。
デバイス本体10の制御部11は、推論モデル121に入力する入力データを取得する(ステップS31)。例えばデバイス1が監視カメラである場合、制御部11は、撮像部16で撮像された画像データを取得する。制御部11は、推論モデル121を構成する前段要素の演算処理を実行する(ステップS32)。例えば推論モデル121がニューラルネットワークである場合、制御部11は、ニューラルネットワークの入力層を含む一又は複数のニューロン層の演算を実行する。
FIG. 11 is a flowchart illustrating an example of a process procedure of inference processing. The processing content of the inference processing based on the inference model 121 will be described based on FIG.
The control unit 11 of the device body 10 acquires input data to be input to the inference model 121 (step S31). For example, when the device 1 is a surveillance camera, the control unit 11 acquires image data captured by the imaging unit 16. The control unit 11 executes arithmetic processing of the preceding elements constituting the inference model 121 (step S32). For example, when the inference model 121 is a neural network, the control unit 11 executes an operation of one or more neuron layers including the input layer of the neural network.

制御部11は、前段要素の演算結果を出力し、前段要素とは異なる推論モデル121の後段要素の演算処理をセキュアエレメント20に要求する(ステップS33)。具体的には、制御部11は、デバイス本体10で演算した前段要素の演算結果と共に、セキュアエレメント20が演算すべき演算要素を指定する情報(例えばニューロン層の層番号等)をセキュアエレメント20に出力する。   The control unit 11 outputs the calculation result of the former element, and requests the secure element 20 to perform the arithmetic process of the latter element of the inference model 121 different from the former element (step S33). Specifically, the control unit 11 adds the information (for example, the layer number of the neuron layer, etc.) specifying the operation element to be operated by the secure element 20 to the secure element 20 together with the operation result of the former element operated by the device body 10. Output.

デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、真正の運用者による演算要求であるか否かを確認する認証処理を行う(ステップS34)。例えばセキュアエレメント20は、PIN情報、パスワード等の認証情報をデバイス本体10に問い合わせ、デバイス本体10は認証情報を返信する。セキュアエレメント20は、当該認証情報に基づいて認証処理を行う。   When an operation request is received from the device body 10, the secure element 20 performs an authentication process to confirm whether the operation request is a genuine operator (step S34). For example, the secure element 20 queries the device body 10 for authentication information such as PIN information and a password, and the device body 10 returns authentication information. The secure element 20 performs an authentication process based on the authentication information.

セキュアエレメント20は、認証が成功したか否かを判定する(ステップS35)。認証が成功したと判定した場合(S35:YES)、セキュアエレメント20は、デバイス1における推論処理(演算処理)の実行回数をカウントする(ステップS36)。セキュアエレメント20は、カウントした実行回数が一定回数に達したか否かを判定する(ステップS37)。判定基準とする回数は、デバイス1に許可されている推論処理の制限回数であり、サーバ3がデバイス1(セキュアエレメント20)毎に制限回数を管理している。   The secure element 20 determines whether the authentication is successful (step S35). When it is determined that the authentication is successful (S35: YES), the secure element 20 counts the number of times of execution of inference processing (calculation processing) in the device 1 (step S36). The secure element 20 determines whether the counted number of executions has reached a certain number (step S37). The number of times used as the determination reference is the limited number of times of inference processing permitted for the device 1, and the server 3 manages the limited number of times for each device 1 (secure element 20).

実行回数が一定回数に達していないと判定した場合(S37:NO)、セキュアエレメント20は許可フラグ272を確認し、推論モデル121に基づく推論処理(演算処理)が許可されているか否かを判定する(ステップS38)。許可フラグ272は、デバイス1での推論処理が許可又は禁止されていることを示す許否情報であり、推論実行回数と同じく、サーバ3がデバイス1毎に許可又は禁止を管理している。   If it is determined that the number of executions has not reached the fixed number (S37: NO), the secure element 20 checks the permission flag 272 and determines whether inference processing (calculation processing) based on the inference model 121 is permitted. (Step S38). The permission flag 272 is permission / disapproval information indicating that inference processing in the device 1 is permitted or prohibited, and the server 3 manages permission or prohibition for each device 1 as in the number of times of inference execution.

認証に成功しなかったと判定した場合(S35:NO)、実行回数が一定回数に達したと判定した場合(S37:YES)、又は推論処理が許可されていないと判定した場合(S38:NO)、セキュアエレメント20は、要求された演算処理の実行を拒否する旨をデバイス本体10に通知する(ステップS39)。セキュアエレメント20から演算拒否の通知を取得した場合、デバイス本体10の制御部11は推論処理を停止し(ステップS40)、一連の処理を終了する。   If it is determined that the authentication is not successful (S35: NO), if it is determined that the number of executions has reached a certain number (S37: YES), or if it is determined that the inference process is not permitted (S38: NO) The secure element 20 notifies the device body 10 that the execution of the requested arithmetic processing is refused (step S39). When the notification of operation refusal is acquired from the secure element 20, the control unit 11 of the device main body 10 stops the inference processing (step S40), and ends the series of processing.

推論処理が許可されていると判定した場合(S38:YES)、セキュアエレメント20は、デバイス本体10から要求された後段要素の演算処理を実行する(ステップS41)。例えば推論モデル121がニューラルネットワークである場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層に対し、デバイス本体10から取得した前段要素の演算結果を入力値として入力する。デバイス本体10から指定されるニューロン層は、ニューラルネットワークを構成する一又は複数のニューロン層であり、出力層を含むニューロン層である。セキュアエレメント20は、出力層に至るまで各ニューロンの演算を行い、最終的な出力値を演算する。   If it is determined that the inference process is permitted (S38: YES), the secure element 20 executes an arithmetic process of the subsequent element requested from the device body 10 (step S41). For example, when the inference model 121 is a neural network, the secure element 20 inputs, as an input value, the operation result of the preceding element acquired from the device body 10 to the neuron layer specified from the device body 10. The neuron layer designated from the device body 10 is one or more neuron layers constituting a neural network, and is a neuron layer including an output layer. The secure element 20 performs operations on each neuron up to the output layer and calculates the final output value.

セキュアエレメント20は、ステップS41における演算結果(出力値)の端数処理を行い、演算結果を変換する(ステップS42)。セキュアエレメント20は、変換後の演算結果をデバイス本体10に出力する(ステップS43)。セキュアエレメント20から演算結果を取得した場合、デバイス本体10の制御部11は、当該演算結果を用いて最終的な推論結果(演算結果)を出力し(ステップS44)、一連の処理を終了する。   The secure element 20 performs a rounding process on the calculation result (output value) in step S41, and converts the calculation result (step S42). The secure element 20 outputs the converted operation result to the device body 10 (step S43). When the calculation result is acquired from the secure element 20, the control unit 11 of the device body 10 outputs a final inference result (calculation result) using the calculation result (step S44), and ends the series of processing.

ステップS43の処理を実行後、セキュアエレメント20は、サーバ3との間で通信内容を暗号化した秘匿通信路41を開設する(ステップS45)。セキュアエレメント20は当該秘匿通信路41を介して、ステップS36でカウントした推論実行回数をサーバ3に通知する(ステップS46)。具体的には、セキュアエレメント20は、カウントした推論実行回数と共に、セキュアエレメント20の固有ID273、及び推論処理の実行日時をサーバ3に通知する。セキュアエレメント20から推論実行回数の通知を取得した場合、サーバ3の制御部31は、デバイス1(セキュアエレメント20)の固有ID273と対応付けて、通知された推論実行回数、及び実行日時を動作管理DB342に記憶する(ステップS47)。制御部31は、一連の処理を終了する。   After executing the process of step S43, the secure element 20 establishes the secret communication path 41 in which the communication content is encrypted with the server 3 (step S45). The secure element 20 notifies the server 3 of the inference execution count counted in step S36 via the secret communication path 41 (step S46). Specifically, the secure element 20 notifies the server 3 of the unique ID 273 of the secure element 20 and the execution date and time of the inference process, along with the counted number of times of inference execution. When the notification of the number of inference execution times is acquired from the secure element 20, the control unit 31 of the server 3 manages the number of inference execution times notified and the execution date and time in association with the unique ID 273 of the device 1 (secure element 20). It is stored in the DB 342 (step S47). The control unit 31 ends the series of processes.

図12は、推論実行回数及び許否情報の更新処理の処理手順の一例を示すフローチャートである。図12に基づき、サーバ3が、個々のデバイス1のセキュアエレメント20に保持されている推論実行回数のカウント値、及び許否情報を更新する処理について説明する。
例えばサーバ3は、バッチ処理により一連の処理をスタートする。サーバ3の制御部31は、動作管理DB342を確認し、推論実行回数又は許否情報が更新されているデバイス1があるか否かを判定する(ステップS71)。上述の如く、動作管理DB342には、個々のデバイス1の固有ID273と対応付けて、各デバイス1の推論実行回数、及び推論処理の許可又は禁止を表す許否情報を記憶している。例えばサーバ3は、本システムの管理者から各データの更新入力を受け付け、動作管理DB342に更新値を記憶しておく。制御部31は、バッチ処理で動作管理DB342を参照し、更新を検知する。
FIG. 12 is a flow chart showing an example of the procedure of updating the number of times of inference execution and permission / refusal information. Based on FIG. 12, a process in which the server 3 updates the count value of the number of inference execution times held in the secure element 20 of each device 1 and the permission / refusal information will be described.
For example, the server 3 starts a series of processing by batch processing. The control unit 31 of the server 3 checks the operation management DB 342, and determines whether there is a device 1 for which the number of inference execution times or permission / refusal information has been updated (step S71). As described above, the operation management DB 342 stores the number of times of inference execution of each device 1 and permission information indicating permission or prohibition of inference processing in association with the unique ID 273 of each device 1. For example, the server 3 receives an update input of each data from the administrator of this system, and stores the update value in the operation management DB 342. The control unit 31 refers to the operation management DB 342 in batch processing to detect an update.

更新されているデバイス1がないと判定した場合、(S71:NO)、制御部31は特段の処理を行うことなく一連の処理を終了する。更新されているデバイス1があると判定した場合、制御部31は、推論実行回数又は許否情報が更新されているデバイス1の固有ID273を特定する(ステップS72)。   If it is determined that there is no updated device 1 (S71: NO), the control unit 31 ends the series of processing without performing any particular processing. If it is determined that there is a device 1 that has been updated, the control unit 31 specifies the unique ID 273 of the device 1 for which the number of times of inference execution or permission information has been updated (step S72).

制御部31は、当該固有ID273が示すデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(ステップS73)。制御部31は、開設した秘匿通信路41を介して、更新後の実行回数又は許否情報をセキュアエレメント20に送信する(ステップS74)。   The control unit 31 establishes the secret communication path 41 with the secure element 20 of the device 1 indicated by the unique ID 273 (step S73). The control unit 31 transmits the updated number of executions or permission information to the secure element 20 via the opened secret communication channel 41 (step S74).

サーバ3から実行回数又は許否情報を受信した場合、デバイス1のセキュアエレメント20は、自身が保持してある実行回数又は許否情報を、受信した実行回数又は許否情報に更新する(ステップS75)。セキュアエレメント20は、一連の処理を終了する。   When the number of executions or permission information is received from the server 3, the secure element 20 of the device 1 updates the number of executions or permission information held by itself to the received number of executions or permission information (step S 75). The secure element 20 ends the series of processes.

なお、上記でセキュアエレメント20は、推論処理の実行直後に実行回数をサーバ3へ通知しているが、通知のタイミングは実行直後に限定されず、別途独立して行ってもよい。また、セキュアエレメント20は推論実行回数のカウント値(残回数)を通知しているが、実行した旨を示す事実のみを通知し、サーバ3が実行回数を別途カウントしてもよい。また、上記ではセキュアエレメント20から通知された実行日時を動作管理DB342に保存しているが、実行回数の通知を受けた際にサーバ3がタイムスタンプを付し、これを動作管理DB342に保存してもよい。つまり、セキュアエレメント20からの実行日時の送信は必須ではない。   Although the secure element 20 notifies the server 3 of the number of executions immediately after the execution of the inference process, the timing of the notification is not limited to immediately after the execution, and may be performed independently. Also, although the secure element 20 notifies the count value (remaining number) of the number of inference execution times, it may notify only the fact indicating that it has been executed, and the server 3 may separately count the number of execution times. Furthermore, although the execution date and time notified from the secure element 20 is stored in the operation management DB 342 in the above, when the notification of the number of executions is received, the server 3 adds a time stamp and stores this in the operation management DB 342 May be That is, transmission of the execution date and time from the secure element 20 is not essential.

また、上記ではデバイス本体10が推論モデル121の前段要素を、セキュアエレメント20が後段要素の演算を担当しているが、どちらの処理主体がどの演算要素を演算するかは任意の設計事項であり、特に限定されない。後述するように、実施の形態によってはすべての演算をセキュアエレメント20に指示する設計も想定され得る。また、デバイス本体10及びセキュアエレメント20は、それぞれ推論モデル121の一部のみ演算を行うため、少なくとも自身が演算を行う推論モデル121の一部分のデータを保持してあればよく、完全な推論モデル121のデータを保持していなくともよい。また、上記ではセキュアエレメント20が演算する演算要素をデバイス本体10が指定しているが、例えば各々が担当する演算要素を予め固定化しておいてもよく、この場合、デバイス本体10は、演算要素を指定する指定情報(例えばニューロン層の層番号)をセキュアエレメント20に出力する必要はない。つまり、デバイス本体10は少なくとも自身で演算した演算結果、または制御部11から受け取った入力データをセキュアエレメント20に入力し、演算処理を要求することができればよい。   In the above, the device body 10 is in charge of the former element of the inference model 121, and the secure element 20 is in charge of the latter element operation. However, it is an optional design matter which processing entity calculates which operation element. There is no particular limitation. As will be described later, in some embodiments, a design may be envisioned that directs all operations to the secure element 20. In addition, since the device body 10 and the secure element 20 each perform only part of the inference model 121, at least a part of data of the inference model 121 which itself performs the operation may be stored. It is not necessary to hold the data of Further, although the device body 10 designates the computing element operated by the secure element 20 in the above, for example, the computing element which each is in charge may be fixed in advance. In this case, the device body 10 is a computing element It is not necessary to output to the secure element 20 designation information (for example, a layer number of a neuron layer) that designates. That is, the device main body 10 only needs to input the calculation result calculated at least by itself or the input data received from the control unit 11 to the secure element 20 and request the calculation processing.

以上より、本実施の形態1によれば、デバイス1は、推論モデル121の一部の演算要素の演算をデバイス本体10よりも安全なセキュアエレメント20で実行する。これにより、デバイス1は、機械学習結果に基づく処理を安全に実行することができる。   As described above, according to the first embodiment, the device 1 executes the computation of a part of the computation elements of the inference model 121 with the secure element 20 that is more secure than the device body 10. Thereby, the device 1 can safely execute processing based on the machine learning result.

また、本実施の形態1によれば、デバイス1は、推論モデル121の前段要素の演算をデバイス本体10で実行し、最終的な出力値を得る後段要素の演算を、セキュアエレメント20で実行する。これにより、上記で説明した蒸留の問題に対して適切な対策が取られ、安全性を高めることができる。   Further, according to the first embodiment, the device 1 executes the operation of the former element of the inference model 121 in the device body 10, and the operation of the latter element in which the final output value is obtained, in the secure element 20. . Thereby, appropriate measures can be taken against the above-described problems of distillation, and safety can be enhanced.

また、本実施の形態1によれば、セキュアエレメント20は、確率で表現された出力値の端数処理を行い、変換後の出力値をデバイス本体10に返送する。これにより、たとえデバイス本体10から出力値が搾取された場合であっても、蒸留のために必要な確率値を搾取されることは避けることができ、安全性をより高めることができる。   Further, according to the first embodiment, the secure element 20 performs rounding of the output value represented by the probability, and returns the converted output value to the device body 10. Thereby, even if the output value is extracted from the device body 10, it is possible to avoid the extraction of the probability value necessary for the distillation, and the security can be further improved.

また、本実施の形態1によれば、セキュアエレメント20は運用者認証を行い、認証に成功した場合にのみ演算処理を実行する。これにより、安全性をさらに高めることができる。   Further, according to the first embodiment, the secure element 20 performs operator authentication, and executes arithmetic processing only when the authentication is successful. This can further enhance the safety.

また、本実施の形態1によれば、推論処理(演算処理)の実行回数が一定回数に至った場合に演算処理を制限することで、外部からの不正操作による演算処理の過剰な実行を防止し、安全性を高めることができる。   Further, according to the first embodiment, by limiting calculation processing when the number of times of execution of inference processing (calculation processing) reaches a certain number of times, excessive execution of calculation processing due to an unauthorized operation from the outside can be prevented. And improve safety.

また、本実施の形態1によれば、カウントした推論実行回数、又は推論処理を実行した旨をサーバ3へ通知することで、サーバ3において各デバイス1での推論実行回数を一元管理することができる。   Further, according to the first embodiment, the server 3 can centrally manage the number of inference execution times in each device 1 by notifying the server 3 of the counted number of inference execution times or that the inference process has been executed. it can.

また、本実施の形態1によれば、単に実行回数を通知するだけでなく、実行日時を併せて通知することで、サーバ3においてデバイス1の動作状況を実行履歴として適切に管理することができる。   Further, according to the first embodiment, the server 3 can appropriately manage the operation status of the device 1 as an execution history by not only notifying the number of executions but also notifying together the execution date and time. .

また、本実施の形態1によれば、セキュアエレメント20がカウントしている推論実行回数をサーバ3から更新することで、デバイス1における推論処理の遠隔制御が可能となる。   Also, according to the first embodiment, remote control of inference processing in the device 1 can be performed by updating the number of inference execution times counted by the secure element 20 from the server 3.

また、本実施の形態1によれば、安全性が高いセキュアエレメント20に許否情報(許可フラグ272)を保持し、当該許否情報に従って推論の可否を判断することで、外部から不正操作が行われる事態に適切に対応することができる。   Further, according to the first embodiment, the secure element 20 having high security holds the permission / disapproval information (permission flag 272), and by determining whether the inference is possible or not according to the permission / permission information, an unauthorized operation is performed from the outside. We can respond appropriately to the situation.

また、本実施の形態1によれば、セキュアエレメント20が保持する許否情報を、サーバ3の指示に従って設定させることで、サーバ3からデバイス1(セキュアエレメント20)の遠隔制御が可能となる。   Further, according to the first embodiment, by setting the permission information held by the secure element 20 according to the instruction of the server 3, remote control of the device 1 (secure element 20) from the server 3 becomes possible.

また、本実施の形態1によれば、サーバ3とセキュアエレメント20との間の通信を、秘匿通信路41を介して行うことで、実行回数、許否情報等の送受信を安全に行うことができ、通信伝送路上で命令や通知が改竄される事態を防止することができる。   Further, according to the first embodiment, by performing communication between the server 3 and the secure element 20 via the secret communication path 41, it is possible to safely transmit and receive the number of executions, permission / refusal information, etc. It is possible to prevent an instruction or notification from being falsified on the communication channel.

(実施の形態2)
実施の形態1では、デバイス1内のセキュアエレメント20において推論モデル121の一部の演算処理を実行する形態について述べた。本実施の形態では、デバイス1外部のサーバ3が、セキュアエレメント20が実行すべき演算処理の一部を行う形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
Second Embodiment
In the first embodiment, the form has been described in which part of operation processing of the inference model 121 is executed in the secure element 20 in the device 1. In this embodiment, a mode will be described in which the server 3 outside the device 1 performs part of the arithmetic processing to be executed by the secure element 20. The same reference numerals as in the first embodiment denote the same parts as in the first embodiment, and a description thereof will be omitted.

図13は、実施の形態2に係る推論処理に関する説明図である。図13に基づき、本実施の形態に係る推論処理の処理プロセスについて説明する。なお、符号P21〜P26に示す処理プロセスは実施の形態1と同様であるため、ここでは同一の符号を付し、説明を省略する。本実施の形態では、符号P41〜P49に示す処理プロセスについて順に説明する。   FIG. 13 is an explanatory diagram of inference processing according to the second embodiment. The process of the inference process according to the present embodiment will be described based on FIG. In addition, since the process shown to code | symbol P21-P26 is the same as that of Embodiment 1, the same code | symbol is attached | subjected here and description is abbreviate | omitted. In the present embodiment, processing processes indicated by reference numerals P41 to P49 will be sequentially described.

推論実行回数及び許可フラグ272を確認した後(P25、P26)、セキュアエレメント20の演算部23は、デバイス本体10から演算を要求された推論モデル121の演算要素のうち、一部の演算要素について演算処理を実行する(P41)。例えば推論モデル121がニューラルネットワークである場合、演算部23は、デバイス本体10から指定された複数のニューロン層のうち、少なくとも出力層を除く、一部のニューロン層についてのみ演算を実行する。   After confirming the number of times of inference execution and the permission flag 272 (P25, P26), the operation unit 23 of the secure element 20 processes some of the operation elements of the inference model 121 for which the device body 10 requests the operation. The arithmetic processing is executed (P41). For example, when the inference model 121 is a neural network, the operation unit 23 executes the operation on only a part of neuron layers out of the plurality of neuron layers specified from the device body 10 except at least the output layer.

図14は、デバイス本体10、セキュアエレメント20及びサーバ3がそれぞれ行う演算内容について説明するための説明図である。図14では、第0層の演算をデバイス本体10が、第1層の演算をセキュアエレメント20が、第2層及び第3層の演算をサーバ3が行う様子を図示している。   FIG. 14 is an explanatory diagram for describing the contents of operations performed by the device body 10, the secure element 20, and the server 3 respectively. FIG. 14 illustrates how the device body 10 performs the operation of the zeroth layer, the secure element 20 performs the operation of the first layer, and the server 3 performs the operations of the second and third layers.

図14に示すように、本実施の形態でデバイス本体10は第0層の演算を行い、第0層の演算結果を入力値としてセキュアエレメント20に受け渡す。そしてデバイス本体10は、残りの第1〜3層を演算すべきニューロン層として指定し、演算処理を実行するようセキュアエレメント20に要求する。   As shown in FIG. 14, in the present embodiment, the device body 10 performs the calculation of the zeroth layer, and passes the calculation result of the zeroth layer to the secure element 20 as an input value. Then, the device body 10 designates the remaining first to third layers as neuron layers to be calculated, and requests the secure element 20 to execute the calculation processing.

デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層の演算を実行する。ここで、セキュアエレメント20は指定された全てのニューロン層の演算を行わず、一部のニューロン層についてのみ演算を行う。例えば図14のように、セキュアエレメント20は、デバイス本体10から指定された第1〜3層のうち、演算開始層である第1層についてのみ演算を行う。   When receiving the operation request from the device body 10, the secure element 20 executes the operation of the neuron layer specified by the device body 10. Here, the secure element 20 does not operate on all designated neuron layers, but only on some neuron layers. For example, as illustrated in FIG. 14, the secure element 20 performs the operation only on the first layer which is the operation start layer among the first to third layers specified from the device body 10.

そしてセキュアエレメント20は、デバイス本体10から指定されたニューロン層のうち、自身が演算を行わない残りの第2層、第3層の演算を行うよう、サーバ3に要求する。具体的には図14のように、セキュアエレメント20は、第1層の演算結果を入力値とし、第2層及び第3層を演算対象として指定して、斯かる演算を実行するよう要求する。   Then, the secure element 20 requests the server 3 to perform the operation of the remaining second and third layers of the neuron layer specified by the device body 10 in which the self does not perform the operation. Specifically, as shown in FIG. 14, the secure element 20 requests the calculation result of the first layer to be an input value, specify the second layer and the third layer as calculation targets, and execute such calculation. .

図13に戻って、演算処理を実行後、演算部23は通信路開設部25に演算結果を受け渡す(P42)。通信路開設部25は、サーバ3との間で秘匿通信路41を開設する(P43)。そして通信路開設部25は、演算部23が演算した演算結果をサーバ3に送信し、推論モデル121の一部の演算を実行するよう要求する(P44)。具体的には、通信路開設部25は、演算部23が演算した演算結果と共に、サーバ3が演算すべき演算要素を指定する指定情報と、セキュアエレメント20の固有ID273とをサーバ3に送信する。   Returning to FIG. 13, after executing the arithmetic processing, the arithmetic unit 23 delivers the arithmetic result to the communication path establishment unit 25 (P42). The communication path establishment unit 25 establishes the secret communication path 41 with the server 3 (P43). Then, the communication path establishment unit 25 transmits the calculation result calculated by the calculation unit 23 to the server 3 and requests to execute a part of the calculation of the inference model 121 (P44). Specifically, the communication path establishment unit 25 transmits, to the server 3, specification information for specifying the calculation element to be calculated by the server 3 and the unique ID 273 of the secure element 20 together with the calculation result calculated by the calculation unit 23. .

演算要求を受け付けた場合、サーバ3の制御部31はまず、要求元のデバイス1における推論実行回数をカウントし、推論実行回数が一定回数に達しているか否かを確認する(P45)。実施の形態1で述べたように、動作管理DB342には、セキュアエレメント20の固有ID273と対応付けて、各デバイス1における推論実行回数(残回数)が記憶されている。制御部31は、セキュアエレメント20から取得した固有ID273を参照して、当該固有ID273に対応付けられた残回数をデクリメントする。そして制御部31は、残回数が0、つまり一定回数に達したか否かを確認する。なお、制御部31はデクリメント後の値を実行日時と共に動作管理DB342に格納し、推論実行回数を更新する。   When an operation request is received, the control unit 31 of the server 3 first counts the number of inference executions in the device 1 of the request source, and confirms whether the number of inference executions has reached a certain number (P45). As described in the first embodiment, the operation management DB 342 stores the inference execution count (remaining count) in each device 1 in association with the unique ID 273 of the secure element 20. The control unit 31 refers to the unique ID 273 acquired from the secure element 20, and decrements the remaining number associated with the unique ID 273. Then, the control unit 31 confirms whether the remaining number of times has reached 0, that is, a predetermined number of times. The control unit 31 stores the decremented value together with the execution date and time in the operation management DB 342, and updates the inference execution count.

一定回数に達している場合、制御部31は演算処理を実行せず、実行回数が一定回数に達した旨をデバイス1に通知して推論処理を停止させる。一方、実行回数が一定回数に達していない場合、次に制御部31は、要求元のデバイス1における推論処理を許可してあるか否かを確認する(P46)。具体的には上記と同様に、制御部31は固有ID273に対応付けられた許否情報を動作管理DB342から参照して、推論処理の許可又は禁止を判別する。推論処理を許可していない場合、制御部31は演算処理を実行せず、推論処理が禁止されている旨をデバイス1に通知して処理を停止させる。   If the number of times has reached a predetermined number, the control unit 31 does not execute the arithmetic process, and notifies the device 1 that the number of times of execution has reached a predetermined number to stop the inference process. On the other hand, if the number of executions has not reached the predetermined number, then the control section 31 checks whether or not the inference process in the request source device 1 is permitted (P46). Specifically, as described above, the control unit 31 refers to the permission information associated with the unique ID 273 from the operation management DB 342 to determine permission or prohibition of the inference process. If the inference process is not permitted, the control unit 31 does not execute the arithmetic process, notifies the device 1 that the inference process is prohibited, and stops the process.

推論処理を許可してある場合、制御部31は、セキュアエレメント20から要求された推論モデル121の一部の演算処理を実行する(P47)。具体的には既に述べたように、制御部31は、セキュアエレメント20から取得した演算結果を入力値として用い、セキュアエレメント20から指定された、ニューラルネットワークの出力層を含む一又は複数のニューロン層の演算を実行する。   When the inference process is permitted, the control unit 31 executes an arithmetic process of part of the inference model 121 requested from the secure element 20 (P47). Specifically, as described above, the control unit 31 uses the calculation result obtained from the secure element 20 as an input value, and one or more neuron layers including the output layer of the neural network designated from the secure element 20. Perform the operation of

また、制御部31は実施の形態1と同様に、ニューラルネットワークの出力層からの出力値に対して端数処理を行い、確率表現された出力値を、0又は1の二値で表現された値に変換する(図14参照)。   Further, as in the first embodiment, the control unit 31 performs a rounding process on the output value from the output layer of the neural network, and outputs the probability-expressed output value as a binary value of 0 or 1. (See FIG. 14).

制御部31は、変換後の出力値を演算結果として、秘匿通信路41を介してセキュアエレメント20に送信する(P48)。セキュアエレメント20は、サーバ3から取得した演算結果を、デバイス本体10からの演算要求に対する出力値として返送する(P49)。デバイス本体10の制御部11は、セキュアエレメント20から返送された出力値を用いて推論結果を出力する。   The control unit 31 transmits the converted output value as the calculation result to the secure element 20 via the secret communication path 41 (P48). The secure element 20 returns the calculation result obtained from the server 3 as an output value for the calculation request from the device body 10 (P49). The control unit 11 of the device body 10 outputs an inference result using the output value returned from the secure element 20.

なお、上記ではデバイス本体10から要求された演算処理を、セキュアエレメント20及びサーバ3が分担して行ったが、本実施の形態はこれに限定されず、セキュアエレメント20は特段の演算を行わず、サーバ3に演算要求を転送して演算処理を実行させてもよい。つまり、デバイス本体10から要求された演算処理をセキュアエレメント20又はサーバ3が実行可能であればよく、どちらがどの程度の演算を負担するかは限定されない。   Although the secure element 20 and the server 3 share the calculation processing requested from the device main body 10 in the above description, the present embodiment is not limited to this, and the secure element 20 does not perform any special calculation. The processing request may be transferred to the server 3 to execute the processing. That is, as long as the secure element 20 or the server 3 can execute the arithmetic processing requested from the device main body 10, it does not limit which of the operations is to be burdened.

図15及び図16は、実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。図15及び図16に基づき、本実施の形態に係る推論処理の処理内容について説明する。
許可フラグ272を参照して、推論処理が許可されていると判定した場合(S38:YES)、セキュアエレメント20は以下の処理を実行する。セキュアエレメント20は、デバイス本体10から指定された推論モデル121の演算要素のうち、一部の演算要素について演算を実行する(ステップS201)。例えば推論モデル121がニューラルネットワークである場合、セキュアエレメント20は、少なくともデバイス本体10から指定された演算開始層を含む、一又は複数のニューロン層の演算を実行する。なお、セキュアエレメント20では演算処理を実行しないものとする場合、ステップS201の処理をスキップして良い。
FIG. 15 and FIG. 16 are flowcharts showing an example of the processing procedure of the inference processing according to the second embodiment. The processing content of the inference processing according to the present embodiment will be described based on FIG. 15 and FIG.
With reference to the permission flag 272, when it is determined that the inference process is permitted (S38: YES), the secure element 20 executes the following process. The secure element 20 executes an operation on some of the operation elements of the inference model 121 specified from the device body 10 (step S201). For example, when the inference model 121 is a neural network, the secure element 20 executes the operation of one or more neuron layers including at least the operation start layer designated from the device body 10. In the case where the secure element 20 does not execute the arithmetic process, the process of step S201 may be skipped.

セキュアエレメント20は、サーバ3との間で秘匿通信路41を開設する(ステップS202)。セキュアエレメント20は、秘匿通信路41を介してステップS201における演算結果をサーバ3に送信し、推論モデル121の一部の演算処理の実行をサーバ3に要求する(ステップS203)。具体的には、セキュアエレメント20は、自身が演算した演算結果と共に、サーバ3が演算すべき演算要素(ニューロン層)を指定する指定情報と、セキュアエレメント20の固有ID273とを送信する。   The secure element 20 establishes the secret communication path 41 with the server 3 (step S202). The secure element 20 transmits the calculation result in step S201 to the server 3 via the secret communication channel 41, and requests the server 3 to execute part of the calculation processing of the inference model 121 (step S203). Specifically, the secure element 20 transmits specification information for specifying the calculation element (neuron layer) to be calculated by the server 3 and the unique ID 273 of the secure element 20, together with the calculation result calculated by itself.

セキュアエレメント20から演算要求を受け付けた場合、サーバ3の制御部31は、演算要求の送信元であるデバイス1での推論処理の実行回数をカウントする(ステップS204)。具体的には、制御部31は動作管理DB342を参照して、セキュアエレメント20から受信した固有ID273に基づき、当該固有ID273に対応付けられたデバイス1の推論実行回数(残回数)を読み出す。制御部31は、読み出した残回数をデクリメントすることで、実行回数をカウントする。なお、制御部31は、カウントした実行回数を、現在の実行日時と共に動作管理DB342に記憶する。   When an operation request is received from the secure element 20, the control unit 31 of the server 3 counts the number of times of execution of inference processing in the device 1 that is the transmission source of the operation request (step S204). Specifically, the control unit 31 reads out the inference execution count (remaining count) of the device 1 associated with the unique ID 273 based on the unique ID 273 received from the secure element 20 with reference to the operation management DB 342. The control unit 31 counts the number of executions by decrementing the read remaining number. The control unit 31 stores the counted number of times of execution in the operation management DB 342 together with the current execution date and time.

制御部31は、カウントした推論実行回数が一定回数に達したか否かを判定する(ステップS205)。一定回数に達していないと判定した場合(S205:NO)、制御部31は動作管理DB342を参照して、要求元であるデバイス1での推論処理を許可してあるか否かを判定する(ステップS206)。具体的にはステップS204と同様に、制御部31は固有ID273に対応付けられた許否情報(許可フラグ)を参照し、デバイス1に対して推論処理を許可又は禁止していたかを確認する。推論処理を許可してあると判定した場合(S206:YES)、制御部31は、処理をステップS210に移行する。   The control unit 31 determines whether the counted number of inference execution times has reached a predetermined number (step S205). If it is determined that the predetermined number of times has not been reached (S205: NO), the control unit 31 refers to the operation management DB 342 and determines whether inference processing at the request source device 1 is permitted ( Step S206). Specifically, as in step S204, the control unit 31 refers to the permission / disapproval information (permission flag) associated with the unique ID 273 to confirm whether the device 1 has been permitted or prohibited to perform the inference process. When it is determined that the inference process is permitted (S206: YES), the control unit 31 shifts the process to step S210.

推論実行回数が一定回数に達したと判定した場合(S205:YES)、又は推論処理を許可していないと判定した場合(S206:NO)、制御部31は、演算要求を拒否する旨を、秘匿通信路41を介してセキュアエレメント20に通知する(ステップ207)。セキュアエレメント20は、当該通知をデバイス本体10に転送する(ステップS208)。当該通知を取得した場合、デバイス本体10は推論処理を停止し(ステップS209)、一連の処理を終了する。   If it is determined that the number of times of inference execution has reached a certain number (S205: YES), or if it is determined that inference processing is not permitted (S206: NO), the control unit 31 rejects the operation request, The secure element 20 is notified via the secret communication path 41 (step 207). The secure element 20 transfers the notification to the device body 10 (step S208). When the notification is acquired, the device body 10 stops the inference process (step S209), and ends the series of processes.

図16に移って、ステップS206でYESの場合、サーバ3の制御部31は、セキュアエレメント20からの要求に従い、推論モデル121の一部の演算を実行する(ステップS210)。具体的には、制御部31は、セキュアエレメント20から取得した演算結果(入力値)を指定されたニューロン層に入力し、最終的な出力値を演算する。   Moving to FIG. 16, in the case of YES in step S206, the control unit 31 of the server 3 executes a part of the operation of the inference model 121 according to the request from the secure element 20 (step S210). Specifically, the control unit 31 inputs the calculation result (input value) acquired from the secure element 20 into the designated neuron layer, and calculates the final output value.

制御部31は、ステップS210の演算結果の端数処理を行い、出力値を変換する(ステップS211)。制御部31は、変換後の出力値(演算結果)をセキュアエレメント20に送信する(ステップS212)。セキュアエレメント20は、サーバ3から取得した出力値をデバイス本体10に転送する(ステップS213)。制御部31は、セキュアエレメント20から取得した出力値を用いて推論結果を出力し(ステップS214)、一連の処理を終了する。   The control unit 31 performs a rounding process on the calculation result of step S210 and converts an output value (step S211). The control unit 31 transmits the converted output value (operation result) to the secure element 20 (step S212). The secure element 20 transfers the output value acquired from the server 3 to the device body 10 (step S213). The control unit 31 outputs an inference result using the output value acquired from the secure element 20 (step S214), and ends the series of processes.

なお、上記では、セキュアエレメント20が演算を行った後にサーバ3が残る演算要素(出力層を含むニューロン層)の演算を行ったが、例えばサーバ3が演算を行った後でセキュアエレメント20が残る演算要素の演算を行うようにしてもよい。つまり、デバイス本体10から要求された演算要素のうち、少なくとも一部の演算要素の演算をサーバ3が実行することができればよく、演算処理の前後関係は特に限定されない。   In the above, although the server 3 performs the operation of the remaining operation element (neuron layer including the output layer) after the secure element 20 performs the operation, for example, the secure element 20 remains after the server 3 performs the operation. The calculation of the calculation element may be performed. That is, it is only necessary that the server 3 can execute the operation of at least a part of the operation elements requested by the device body 10, and the context of the operation process is not particularly limited.

以上より、本実施の形態2によれば、サーバ3にも推論モデル121に基づく演算処理の一部を実行させることで、例えばセキュアエレメント20のみでは演算能力が足りない場合等に対応することができる。   As described above, according to the second embodiment, by causing the server 3 to execute a part of the arithmetic processing based on the inference model 121, for example, it is possible to cope with the case where the computing capacity is insufficient with only the secure element 20. it can.

実施の形態2に基づけば、デバイス本体10、セキュアエレメント20、サーバ3の3者に推論処理を分担させて実施することも可能であるが、加えて、デバイス本体10が実施すべき処理を含め、推論処理の一部ではなく全部の実施をセキュアエレメント20に指示し、セキュアエレメント20、サーバ3の2者のみで推論処理を行うことも、本実施の形態の応用実施例として示すことができる。   According to the second embodiment, it is possible to share the inference process with the device body 10, the secure element 20, and the server 3 and perform the process, but in addition, the process to be performed by the device body 10 is included. Also, instructing the secure element 20 to execute all but not a part of the inference process and performing the inference process by only the two of the secure element 20 and the server 3 can also be shown as an application example of the present embodiment. .

図17は応用実施例に係る推論処理の処理手順を示すフローチャートである。図17では、図15に代替するフローチャートを図示する。この場合、実施の形態1や2における前段要素の演算(ステップS32、図15参照)をデバイス本体10にて行うことなく、制御部11は推論モデルの演算処理をセキュアエレメント20に要求する(ステップS33)。具体的には、セキュアエレメント20が演算すべき演算要素を指定する情報として、前段要素(例えばニューラルネットワークの最初の層を示す情報)を指定しつつ、制御部11が受け取った入力データをセキュアエレメント20に出力する。   FIG. 17 is a flowchart showing the procedure of inference processing according to the applied embodiment. FIG. 17 illustrates a flowchart that substitutes for FIG. In this case, the control unit 11 requests the secure element 20 to process the inference model without performing the operation (step S32, refer to FIG. 15) of the former stage element in the first and second embodiments in the device body 10 (step S33). Specifically, the secure element 20 designates input data received by the control unit 11 as the secure element while designating a former element (for example, information indicating the first layer of the neural network) as the information for specifying the computing element to be computed by the secure element 20. Output to 20.

従前にて述べた通り、デバイス本体10及びセキュアエレメント20がどの演算要素を演算するかは任意の設計事項である。よってデバイス本体10が意図的に一切の演算を行わず、セキュアエレメント20及びサーバ3のみが連携して演算を行う実施についても、本実施の形態の範疇に含まれることは容易に理解されよう。   As described above, which computing element the device body 10 and the secure element 20 calculate is an arbitrary design matter. Therefore, it can be easily understood that the implementation in which only the secure element 20 and the server 3 perform the calculation in cooperation with each other is intentionally included in the scope of the present embodiment.

(実施の形態3)
実施の形態1では、デバイス1に搭載されたセキュアエレメント20において推論モデル121の一部の演算処理を実行する形態について述べた。本実施の形態では、デバイス1に仮想的に構築されたトラステッド実行環境(TEE;Trusted Execution Environment)において演算処理を実行する形態について述べる。
図18は、実施の形態3に係るIoTシステムの構成例を示すブロック図である。本実施の形態に係るデバイス1は、例えばTrustZone(登録商標)と称される技術を用いることによって、ソフトウェア(OS、アプリケーションなど)の実行環境を、通常実行環境(REE;Rich Execution Environment)51と、トラステッド実行環境52とに分離している。
Third Embodiment
The first embodiment has described a mode in which part of arithmetic processing of the inference model 121 is executed in the secure element 20 mounted on the device 1. In the present embodiment, an embodiment will be described in which arithmetic processing is performed in a trusted execution environment (TEE) that is virtually built in the device 1.
FIG. 18 is a block diagram showing a configuration example of the IoT system according to the third embodiment. The device 1 according to the present embodiment uses, for example, a technology called TrustZone (registered trademark) to execute an execution environment of software (OS, application, etc.) as a normal execution environment (REE; Rich Execution Environment) 51 , And the trusted execution environment 52.

通常実行環境51は、広く一般的に利用されている汎用OS511の実行環境であり、トラステッド実行環境52へのアクセスが制限される以外に、特段の機能制約がない実行環境である。汎用OS511は、通常実行環境51においてOSの機能を果たすソフトウェアであり、アプリケーション512からの要求に応じて、デバイス1に接続されたハードウェアの制御等を含む各種OS機能を提供する。制御部11は、汎用OS511上でアプリケーション512を実行することで、デバイス1の基本的、汎用的な処理を実行する。   The normal execution environment 51 is an execution environment of a general-purpose OS 511 that is widely and generally used, and is an execution environment that has no special functional restrictions other than the access to the trusted execution environment 52 being restricted. The general-purpose OS 511 is software that performs the function of the OS in the normal execution environment 51, and provides various OS functions including control of hardware connected to the device 1 in response to a request from the application 512. The control unit 11 executes basic and general processing of the device 1 by executing the application 512 on the general-purpose OS 511.

トラステッド実行環境52は、セキュリティ機能を隔離する目的で、同一のSoC上で通常実行環境とは別に提供される独立した実行環境である。トラステッド実行環境52は、通常実行環境51からのアクセスが制限されており、実行可能な機能も限定されている。なお、トラステッド実行環境は、TEEのような称呼に限定されるものではなく、通常実行環境51と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。デバイス1は、セキュリティ上保護すべきソフトウェア及びデータをトラステッド実行環境52に配置すると共に、通常実行環境51及びデバイス1の外部からのアクセスを制限することで、安全性を確保する。   The trusted execution environment 52 is an independent execution environment provided separately from the normal execution environment on the same SoC in order to isolate security functions. In the trusted execution environment 52, access from the normal execution environment 51 is limited, and executable functions are also limited. Note that the trusted execution environment is not limited to acronym like TEE, and it is separated from the normal execution environment 51, and any execution environment that is more secure in terms of security may be used. Good. The device 1 secures security by placing software and data to be secured in the trusted execution environment 52 and restricting access from outside of the normal execution environment 51 and the device 1.

上述のように、通常実行環境51からトラステッド実行環境52にはアクセスできないように制限されており、通常実行環境51からはトラステッド実行環境52の存在を認識できない。通常実行環境51からトラステッド実行環境52で実行する処理を呼び出すためには、ソフトウェア上実現されるセキュアモニタ53を経由しなければならない。   As described above, the normal execution environment 51 is restricted from accessing the trusted execution environment 52, and the normal execution environment 51 can not recognize the existence of the trusted execution environment 52. In order to call a process to be executed in the trusted execution environment 52 from the normal execution environment 51, it is necessary to go through a secure monitor 53 implemented on software.

トラステッドOS521は、トラステッド実行環境52においてOSの機能を果たすソフトウェアであり、アプリケーション522からの要求に応じて、セキュリティ機能を中心としたOS機能を提供する。制御部11は、トラステッドOS521上でアプリケーション522を実行することで、推論モデル121に基づく演算処理を含む、セキュリティ上重要な処理を実行する。   The trusted OS 521 is software that performs the function of the OS in the trusted execution environment 52, and provides the OS function centering on the security function in response to a request from the application 522. The control unit 11 executes the application 522 on the trusted OS 521 to execute security-critical processing including arithmetic processing based on the inference model 121.

なお、本実施の形態では、デバイス1の各種機能がOS、アプリケーションのいずれで実装されるかは本質的事項ではなく、実装者が適宜選択すべき設計事項であることから、OS、アプリケーションの機能分担については説明を省略する。   In the present embodiment, it is not an essential matter whether the various functions of the device 1 are implemented by the OS or the application, and it is a design matter that the implementer should select as appropriate. Description of sharing will be omitted.

図18に示すように、本実施の形態においてデバイス1の制御部11は、トラステッド実行環境52に推論モデル用パラメータ271、許可フラグ272、固有ID273等を配置する。制御部11は、トラステッド実行環境52に配置された推論モデル用パラメータ271を読み出し、通常実行環境51に推論モデル121を展開する。   As shown in FIG. 18, in the present embodiment, the control unit 11 of the device 1 arranges the inference model parameter 271, the permission flag 272, the unique ID 273 and the like in the trusted execution environment 52. The control unit 11 reads out the inference model parameters 271 arranged in the trusted execution environment 52, and develops the inference model 121 in the normal execution environment 51.

推論処理を実行する場合、制御部11は、通常実行環境51において推論モデル121の一部の演算処理を行った後、演算結果をトラステッド実行環境52に受け渡す。制御部11は、トラステッド実行環境52において推論実行回数のカウント、許可フラグ272のチェック、及び推論モデル121の一部演算処理を実行し、演算結果を通常実行環境51に返送する。制御部11は、返送された演算結果を用いて、推論結果を出力する。   When executing the inference process, the control unit 11 performs a calculation process on part of the inference model 121 in the normal execution environment 51 and then passes the operation result to the trusted execution environment 52. The control unit 11 executes counting of the number of times of inference execution, checking of the permission flag 272, and partial arithmetic processing of the inference model 121 in the trusted execution environment 52, and returns the operation result to the normal execution environment 51. The control unit 11 outputs an inference result using the returned operation result.

以上より、本実施の形態3によれば、デバイス1は、通常実行環境51と、通常実行環境51よりもセキュアなトラステッド実行環境52とを構築し、トラステッド実行環境52において推論モデル121の一部の演算処理を実行する。このように、セキュアエレメント20を搭載せずとも、ソフトウェア上の構成によって推論処理に係る安全性を確保することができる。   As described above, according to the third embodiment, the device 1 constructs the normal execution environment 51 and the trusted execution environment 52 that is more secure than the normal execution environment 51, and part of the inference model 121 in the trusted execution environment 52. Execute the arithmetic processing of As described above, even if the secure element 20 is not mounted, the security of the inference process can be secured by the configuration on software.

上述の如く、デバイス1は、推論処理に係る演算を実行するコンポーネントよりもセキュアなコンポーネント(セキュア部)を有し、当該セキュアなコンポーネントにおいて推論モデル121の一部の演算処理を実行可能(あるいは実施の形態2のように、サーバ3に対して推論モデル121の一部演算を要求し、サーバ3から出力された演算結果を通常実行環境51に返送可能)であればよい。当該セキュアなコンポーネントは、ハードウェア上分離されたセキュアエレメント20等であってもよく、ソフトウェア上分離されたトラステッド実行環境52等であってもよい。   As described above, the device 1 has a component (secure unit) that is more secure than a component that executes an operation related to inference processing, and can execute (or execute) operation processing of part of the inference model 121 in the secure component. As in mode 2, the partial calculation of the inference model 121 can be requested to the server 3 and the calculation result output from the server 3 can be returned to the normal execution environment 51). The secure component may be a hardware-isolated secure element 20 or the like, or a software-isolated trusted execution environment 52 or the like.

セキュアエレメント20に代えてトラステッド実行環境52を実装する以外は実施の形態1と共通するため、本実施の形態では詳細な図示及び説明を省略する。   The second embodiment is the same as the first embodiment except that the trusted execution environment 52 is implemented instead of the secure element 20, and thus the detailed illustration and the description will be omitted in the present embodiment.

(実施の形態4)
本実施の形態では、デバイス1に格納されている推論モデル121を更新する形態について述べる。
図19は、推論モデル121の更新処理に関する説明図である。図19では、セキュアエレメント20がサーバ3との間で通信を行い、推論モデル用パラメータ271を更新する様子を概念的に図示している。
Embodiment 4
In the present embodiment, an aspect will be described in which the inference model 121 stored in the device 1 is updated.
FIG. 19 is an explanatory diagram of the updating process of the inference model 121. FIG. 19 conceptually illustrates that the secure element 20 communicates with the server 3 and updates the inference model parameter 271.

本実施の形態に係るセキュアエレメント20は、更新部28を備える。更新部28は、サーバ3から最新モデル用パラメータ341を取得し、記憶部27に格納してあるパラメータを更新する。   The secure element 20 according to the present embodiment includes the updating unit 28. The updating unit 28 acquires the latest model parameters 341 from the server 3 and updates the parameters stored in the storage unit 27.

図19において符号P51〜P58に示す処理プロセスについて、順に説明する。まずデバイス本体10がセキュアエレメント20に対し、推論モデル121が最新のデータに更新済みであるか否かをサーバ3に確認するよう要求する(P51)。確認要求を受け付けた場合、セキュアエレメント20の更新部28は、通信路開設部25に対して秘匿通信路41の開設を要求する(P52)。当該要求を受け付けた場合、通信路開設部25は、秘匿通信路41を開設する(P53)。   The processing processes indicated by reference numerals P51 to P58 in FIG. 19 will be described in order. First, the device body 10 requests the secure element 20 to confirm to the server 3 whether the inference model 121 has been updated to the latest data (P51). When the confirmation request is received, the updating unit 28 of the secure element 20 requests the communication channel opening unit 25 to open the secret communication channel 41 (P52). When the request is received, the communication path establishment unit 25 establishes the secret communication path 41 (P53).

更新部28は、秘匿通信路41を介してサーバ3に対し、推論モデル用パラメータ271の更新要求を行う(P54)。具体的には、更新部28は、セキュアエレメント20で保持している現在の推論モデル用パラメータ271のバージョン情報271cと、自装置に係る固有ID273とを送信する。   The updating unit 28 requests the server 3 to update the inference model parameter 271 via the secret communication path 41 (P54). Specifically, the updating unit 28 transmits version information 271 c of the current inference model parameter 271 held in the secure element 20 and the unique ID 273 of the own device.

セキュアエレメント20(デバイス1)から更新要求を受け付けた場合、サーバ3は、要求元であるデバイス1において推論モデル121を更新済みであるか否かを判定する(P55)。具体的には、サーバ3は、セキュアエレメント20から送信されたバージョン情報271cと、最新モデル用パラメータ341のバージョン情報341c(図19参照)とを照合する。バージョン情報が最新のものと一致する場合、デバイス1の推論モデル121は最新モデルに更新済みであるため、サーバ3は特段の処理を行わず、一連の処理を終了する。一方、バージョン情報が最新のものと不一致の場合、サーバ3は最新モデル用パラメータ341を、秘匿通信路41を介してデバイス1に送信する(P56)。また、サーバ3は、最新モデル用パラメータ341を送信した場合、バージョン情報271cと共に受信した固有ID273と対応付けて、デバイス1の推論モデル121を更新した旨を示す更新情報を動作管理DB342に記憶する(P57)。例えばサーバ3は、現在の日時を最終更新日時として動作管理DB342に記憶する。なお、サーバ3は、更新された旨をデータベース上で格納することができればよく、例えば最新モデルのバージョン情報341cを記憶しておくなど、日時以外の情報を更新情報として記憶しておいてもよい。   When receiving the update request from the secure element 20 (device 1), the server 3 determines whether the inference model 121 has been updated in the device 1 as the request source (P55). Specifically, the server 3 collates the version information 271 c transmitted from the secure element 20 with the version information 341 c (see FIG. 19) of the latest model parameter 341. If the version information matches the latest one, the inference model 121 of the device 1 has been updated to the latest model, and the server 3 does not perform any particular processing, and ends the series of processing. On the other hand, if the version information does not match the latest version, the server 3 transmits the latest model parameter 341 to the device 1 via the secret communication path 41 (P56). In addition, when transmitting the latest model parameter 341, the server 3 stores update information indicating that the inference model 121 of the device 1 has been updated in the operation management DB 342 in association with the unique ID 273 received together with the version information 271c. (P57). For example, the server 3 stores the current date and time in the operation management DB 342 as the final update date and time. The server 3 may store information that has been updated on the database, and may store information other than date and time as update information, such as storing version information 341c of the latest model, for example. .

セキュアエレメント20の更新部28は、サーバ3から送信された最新モデル用パラメータ341に記憶部27に格納し、パラメータの更新を行う(P58)。例えば更新部28は、パラメータのダウンロード直後に当該パラメータをデバイス本体10に出力し、デバイス本体10は、当該パラメータを基に推論モデル121を更新(再構築)する。なお、パラメータのダウンロード直後に推論モデル121の更新を行うことなく、デバイス1の次回起動時、アプリケーションの次回実行時等、任意のタイミングで更新を行ってよい。以上より、IoTデバイスに格納されているデータを最新のものに更新することができ、陳腐化を防止する等、更新のニーズに応えることができる。   The update unit 28 of the secure element 20 stores the latest model parameter 341 transmitted from the server 3 in the storage unit 27 and updates the parameter (P58). For example, the updating unit 28 outputs the parameter to the device body 10 immediately after downloading the parameter, and the device body 10 updates (reconstructs) the inference model 121 based on the parameter. Note that the updating may be performed at any timing such as the next activation of the device 1 or the next execution of the application without updating the inference model 121 immediately after downloading the parameter. As described above, the data stored in the IoT device can be updated to the latest one, and it is possible to meet the update needs, such as preventing obsolescence.

なお、上記ではデバイス本体10からのリクエストに従って一連の処理を開始しているが、本実施の形態はこれに限定されない。例えば推論処理の残回数が0になった場合に更新を行う、あるいはサーバ3が動作管理DB342から古いバージョンで稼働しているデバイス1を検知し、サーバ3側からデバイス1側へパラメータの更新要求を行うなど、任意のタイミングで推論モデル121の更新処理を開始してよい。   Although a series of processes are started according to a request from the device main body 10 in the above, the present embodiment is not limited to this. For example, update is performed when the remaining number of inference processes becomes 0, or the server 3 detects the device 1 operating in the old version from the operation management DB 342, and the parameter update request from the server 3 to the device 1 The update process of the inference model 121 may be started at any timing such as

図20は、推論モデル121の更新処理の処理手順の一例を示すフローチャートである。図20に基づき、本実施の形態に係るIoTシステムが実行する処理内容について説明する。
デバイス本体10の制御部11は、推論モデル121の最新のモデルであるか否かをサーバ3に確認するよう、セキュアエレメント20に要求する(ステップS401)。当該要求を受け付けた場合、セキュアエレメント20はサーバ3との間で秘匿通信路41を開設する(ステップS402)。セキュアエレメント20は秘匿通信路41を介して、推論モデル用パラメータ271の更新要求を行う(ステップS403)。例えばセキュアエレメント20は、上記のように、記憶部27に格納してあるパラメータのバージョン情報271cと、自装置の固有ID273とをサーバ3へ送信する。
FIG. 20 is a flowchart illustrating an example of the processing procedure of the process of updating the inference model 121. The contents of processing performed by the IoT system according to the present embodiment will be described based on FIG.
The control unit 11 of the device body 10 requests the secure element 20 to confirm with the server 3 whether it is the latest model of the inference model 121 (step S401). When the request is received, the secure element 20 establishes the secret communication path 41 with the server 3 (step S402). The secure element 20 issues an update request for the inference model parameter 271 via the secret communication path 41 (step S403). For example, as described above, the secure element 20 transmits the version information 271 c of the parameter stored in the storage unit 27 and the unique ID 273 of the own device to the server 3.

更新要求を受け付けた場合、サーバ3の制御部31は、更新要求を行ったデバイス1において推論モデル用パラメータ271を更新済みであるか否かを判定する(ステップS404)。例えば制御部31は、最新モデルのバージョン情報341cが、セキュアエレメント20から送信されたバージョン情報271cと一致するか否かを判定する。更新済みであると判定した場合(S404:YES)、制御部31は一連の処理を終了する。   If the update request has been received, the control unit 31 of the server 3 determines whether the inference model parameter 271 has been updated in the device 1 that has made the update request (step S404). For example, the control unit 31 determines whether the version information 341c of the latest model matches the version information 271c transmitted from the secure element 20. If it is determined that the update has been completed (S404: YES), the control unit 31 ends the series of processing.

更新済みでないと判定した場合(S404:NO)、制御部31は秘匿通信路41を介して、最新モデル用パラメータ341をセキュアエレメント20に送信する(ステップS405)。また、最新モデル用パラメータ341を送信した場合、制御部31は、デバイス1の推論モデル121を更新した旨を示す更新情報を動作管理DB342に記憶し(ステップS406)、一連の処理を終了する。   When it is determined that the update is not completed (S404: NO), the control unit 31 transmits the latest model parameter 341 to the secure element 20 via the secret communication path 41 (step S405). When the latest model parameter 341 is transmitted, the control unit 31 stores update information indicating that the inference model 121 of the device 1 has been updated in the operation management DB 342 (step S406), and ends the series of processing.

最新モデル用パラメータ341をサーバ3から受信した場合、セキュアエレメント20は、当該パラメータを記憶部27に格納する(ステップS407)。セキュアエレメント20は、新たに格納した最新モデル用パラメータ341をデバイス本体10に出力する(ステップS408)。セキュアエレメント20は、一連の処理を終了する。   When the latest model parameter 341 is received from the server 3, the secure element 20 stores the parameter in the storage unit 27 (step S407). The secure element 20 outputs the newly stored latest model parameter 341 to the device body 10 (step S408). The secure element 20 ends the series of processes.

最新モデル用パラメータ341がセキュアエレメント20から出力された場合、デバイス本体10の制御部11は、当該パラメータに基づいて最新の推論モデル121をメモリ上に展開する(ステップS409)。制御部11は、一連の処理を終了する。   When the latest model parameter 341 is output from the secure element 20, the control unit 11 of the device body 10 deploys the latest inference model 121 on the memory based on the parameter (step S409). The control unit 11 ends the series of processes.

なお、上記ではバージョン情報271c、341cがバージョン数、つまりバージョンを表す番号であるものとして図示及び説明を行ったが、本実施の形態はこれに限定されるものではない。例えばバージョン情報271c、341cは、パラメータの更新が行われた日付等の時間を表す情報であってもよい。また、例えばサーバ3は、デバイス1に展開されている推論モデル121と、最新の推論モデル121とのハッシュ値の比較を行って最新バージョンであるか否かを判定するようにしてもよい。このように、サーバ3は推論モデル121の新旧を判定可能な情報に基づいて推論モデル用パラメータ271を更新することができればよく、バージョン情報271c、341cは番号に限定されない。   Although the version information 271c and 341c are illustrated and described as being the version number, that is, the number indicating the version in the above description, the present embodiment is not limited to this. For example, the version information 271 c and 341 c may be information representing a time such as a date when the parameter was updated. Also, for example, the server 3 may compare the hash value of the inference model 121 developed in the device 1 with the latest inference model 121 to determine whether or not the latest version. As described above, the server 3 only needs to update the inference model parameter 271 based on the information that can determine the new and old of the inference model 121, and the version information 271c and 341c are not limited to numbers.

以上より、本実施の形態4によれば、サーバ3からデバイス1へ最新モデル用パラメータ341を配信することで、最新の推論モデル121をデバイス1に展開することができ、モデルの陳腐化等、更新のニーズに対応することができる。特に本実施の形態では、実施の形態1と同様に、セキュアエレメント20にパラメータを一旦保管(格納)し、デバイス本体10はセキュアエレメント20からパラメータを読み出してメモリ(記憶部12)上に推論モデル121を展開する。これにより、推論モデル121を模倣可能なパラメータを搾取される可能性が低減し、安全性を確保することができる。   As described above, according to the fourth embodiment, by distributing the latest model parameter 341 from the server 3 to the device 1, the latest inference model 121 can be developed in the device 1, and obsolescence of the model, etc. It can meet the need for updating. Particularly, in the present embodiment, as in the first embodiment, the parameter is temporarily stored (stored) in the secure element 20, and the device body 10 reads the parameter from the secure element 20 and uses the inference model on the memory (storage unit 12). Expand 121. As a result, the possibility of exploiting parameters that can mimic the inference model 121 can be reduced, and security can be ensured.

(実施の形態5)
本実施の形態では、サーバ3が、デバイス1における推論処理の実行頻度に基づいて異常を検知し、推論処理を禁止する形態について述べる。
図21は、推論処理の実行頻度に基づく推論禁止処理に関する説明図である。図21に基づき、本実施の形態の概要について説明する。
Fifth Embodiment
In the present embodiment, a mode will be described in which the server 3 detects an abnormality based on the execution frequency of the inference process in the device 1 and prohibits the inference process.
FIG. 21 is an explanatory diagram of inference prohibition processing based on the execution frequency of the inference processing. An outline of the present embodiment will be described based on FIG.

実施の形態1で述べたように、サーバ3は、セキュアエレメント20から推論実行回数のカウント値を取得し、動作管理DB342上で実行回数を管理する。特にサーバ3は、セキュアエレメント20から推論実行日時を併せて取得し、動作管理DB342に格納してあるため、各デバイス1での実行回数の時系列変化、つまり推論処理の頻度を一元的に可視化することができる。   As described in the first embodiment, the server 3 acquires the count value of the inference execution number from the secure element 20, and manages the execution number on the operation management DB 342. In particular, since the server 3 additionally acquires the inference execution date and time from the secure element 20 and stores it in the operation management DB 342, the time series change in the number of executions in each device 1, that is, the frequency of inference processing is unified can do.

本実施の形態でサーバ3は、推論処理の頻度に基づき、デバイス1に対する外部からの不正解析を検知する。図6を用いて説明したように、推論モデル121の蒸留を試みる場合、デバイス1に推論処理を実行させ、大量の推論結果のデータを取得(搾取)する必要がある。このような不正行為は比較的短時間で行われ、不正行為が行われている間に推論実行回数が飛躍的に増大する。つまり、推論処理の頻度に不正行為の特徴が現れる。サーバ3は、推論処理頻度の増大を判別することで、外部からの不正解析を検知する。   In the present embodiment, the server 3 detects fraud analysis from the outside of the device 1 based on the frequency of inference processing. As described with reference to FIG. 6, when attempting to distill the inference model 121, it is necessary to cause the device 1 to perform inference processing and acquire (exploit) a large amount of inference result data. Such fraudulent activity takes place in a relatively short time, and the number of inference executions increases dramatically while the fraudulent activity is being conducted. In other words, the frequency of inference processing is characterized by fraud. The server 3 detects an unauthorized analysis from the outside by determining an increase in the frequency of inference processing.

図21の例では、推論処理の残回数を太字で表すデバイス1において、推論処理頻度が大幅に増大している。例えば固有ID273が「100002」であるデバイス1では、数分間の間に残回数を使い果たしている。また、固有ID273が「100003」のデバイス1でも同様に、数分間の間で100回以上の推論演算が実行されている。   In the example of FIG. 21, the frequency of inference processing is significantly increased in the device 1 in which the remaining number of inference processing is indicated in bold. For example, in the device 1 in which the unique ID 273 is "100002", the remaining number is exhausted in a few minutes. Further, even in the device 1 with the unique ID 273 of “100003”, more than 100 inference operations are performed in a few minutes.

サーバ3は、チェックポリシーとして、推論処理頻度が一定頻度以上の場合、不正解析が行われているものと判定する。判定基準となる頻度は、例えば10回/分であるが、特に数値は限定されない。サーバ3は、10回/分以上で推論処理を実行しているデバイス1を動作管理DB342から特定する。   When the inference processing frequency is equal to or higher than a predetermined frequency as the check policy, the server 3 determines that the fraud analysis is being performed. The frequency serving as the criterion is, for example, 10 times / minute, but the numerical value is not particularly limited. The server 3 specifies, from the operation management DB 342, the device 1 which is executing the inference process at 10 times / minute or more.

サーバ3は、特定したデバイス1に対し、推論処理を停止するよう指示する。例えばサーバ3は、動作管理DB342上の許否情報を「許可」から「禁止」に変更し、変更した許否情報を、秘匿通信路41を介してデバイス1に送信する。セキュアエレメント20は、サーバ3から送信された許否情報に従って許可フラグ272を「禁止」に変更し、以降の推論処理を停止させる。   The server 3 instructs the identified device 1 to stop the inference process. For example, the server 3 changes the permission information on the operation management DB 342 from “permitted” to “prohibited”, and transmits the changed permission information to the device 1 via the secret communication path 41. The secure element 20 changes the permission flag 272 to "prohibit" according to the permission information transmitted from the server 3, and stops the subsequent inference processing.

また、サーバ3は、推論処理頻度が高いデバイス1だけでなく、当該デバイス1と同種の推論モデル121を適用(展開)してある他のデバイス1に対しても、推論処理の実行を停止するよう指示する。   In addition, the server 3 stops the execution of the inference processing not only for the device 1 with high inference processing frequency but also for other devices 1 to which the inference model 121 of the same type as the device 1 is applied (expanded). To tell.

上述の如く、サーバ3は複数のデバイス1に推論モデル用パラメータ271を配信し、推論モデル121に基づく推論処理を実行させる。この場合、攻撃者は複数のデバイス1を解析対象とした上で、並列的に解析を行うことが想定される。そこでサーバ3は、攻撃者によって近い将来解析対象となり得るデバイス1での推論処理を先に禁止し、不正解析を未然に防ぐ。   As described above, the server 3 distributes the inference model parameters 271 to the plurality of devices 1 to execute inference processing based on the inference model 121. In this case, it is assumed that an attacker analyzes a plurality of devices 1 in parallel and analyzes them. Therefore, the server 3 first prohibits inference processing in the device 1 that can be an analysis target in the near future by an attacker, and prevents unauthorized analysis in advance.

例えばサーバ3は、チェックポリシーとして、2以上のデバイス1(セキュアエレメント20)で推論処理頻度が一定頻度以上となった場合、当該デバイス1と同種の推論モデル121を適用した他のデバイス1(セキュアエレメント20)に対し、推論処理を停止するよう指示する。具体的には図21に示すように、サーバ3は該当するデバイス1のセキュアエレメント20に対し、秘匿通信路41を介して許否情報を送信し、許可フラグ272を「許可」から「禁止」に設定変更させる。   For example, when the frequency of inference processing in the two or more devices 1 (secure element 20) becomes a predetermined frequency or more as the check policy, the server 3 applies another inference model 121 of the same type as the device 1 (secure Instructs element 20) to stop inference processing. Specifically, as shown in FIG. 21, the server 3 transmits permission information to the secure element 20 of the corresponding device 1 via the secret communication path 41, and changes the permission flag 272 from "permit" to "prohibit". Change the setting.

なお、上記では推論モデル121の種類に応じてグルーピングを行い、推論処理を一斉に禁止することにしているが、グルーピングの基準は推論モデル121の種類に限定されるものではない。例えばサーバ3は、デバイス1の物理的な配置場所、コンポーネントの種類(例えばセキュアエレメント20よりも比較的解析用意なトラステッド実行環境52であるか)などに応じてグルーピングを行ってもよい。つまりサーバ3は、動作管理DB342上で各デバイス1を所定のチェックポリシーに従って互いに関連付けておき、いずれかのデバイス1における推論処理頻度に応じて、関連付けられた複数のデバイス1の推論処理を禁止することができればよい。   Although grouping is performed according to the type of the inference model 121 and inference processing is simultaneously prohibited in the above description, the grouping criterion is not limited to the type of the inference model 121. For example, the server 3 may perform grouping in accordance with the physical arrangement place of the device 1, the type of component (for example, whether it is the trusted execution environment 52 relatively prepared for analysis than the secure element 20) or the like. That is, the server 3 associates the devices 1 with each other according to a predetermined check policy on the operation management DB 342, and prohibits the inference processing of the associated plurality of devices 1 according to the frequency of inference processing in any of the devices 1 I wish I could.

図22は、推論禁止処理の処理手順の一例を示すフローチャートである。図22に基づき、本実施の形態に係るIoTシステムの処理内容について説明する。
例えばサーバ3は、バッチ処理により以下の処理を実行する。サーバ3の制御部31は、動作管理DB342を参照して、各デバイス1における推論処理の実行頻度を計算する(ステップS501)。上述の如く、各デバイス1は、推論処理の実行回数を実行時刻と共にサーバ3へ通知している。サーバ3は動作管理DB342に、推論処理の実行時刻も含めて、各デバイス1における推論処理の実行回数を記憶している。サーバ3は、動作管理DB342に記憶してある各推論時の実行時刻から、デバイス1における推論処理の実行頻度を計算する。
FIG. 22 is a flowchart of an example of the process procedure of the inference prohibition process. The processing content of the IoT system according to the present embodiment will be described based on FIG.
For example, the server 3 executes the following processing by batch processing. The control unit 31 of the server 3 calculates the execution frequency of the inference process in each device 1 with reference to the operation management DB 342 (step S501). As described above, each device 1 notifies the server 3 of the number of times of execution of the inference process along with the execution time. The server 3 stores the number of times of execution of the inference process in each device 1 in the operation management DB 342, including the execution time of the inference process. The server 3 calculates the execution frequency of the inference process in the device 1 from the execution time at each inference time stored in the operation management DB 342.

制御部31は、各デバイス1の実行頻度を所定の閾値と比較して、閾値以上の実行頻度で推論処理を行っているデバイス1があるか否かを判定する(ステップS502)。実行頻度が閾値以上のデバイス1がないと判定した場合(S502:NO)、制御部31は一連の処理を終了する。   The control unit 31 compares the execution frequency of each device 1 with a predetermined threshold value, and determines whether there is a device 1 that is performing inference processing with an execution frequency equal to or higher than the threshold value (step S502). If it is determined that there is no device 1 whose execution frequency is equal to or higher than the threshold (S502: NO), the control unit 31 ends the series of processing.

実行頻度が閾値以上のデバイス1があると判定した場合(S502:YES)、制御部31は、当該デバイス1に適用(インストール)されている推論モデル121を特定する(ステップS503)。そして制御部31は、管理DB341を参照して、特定した推論モデル121と同種類の推論モデル121を適用した他のデバイス1を特定する(ステップS504)。   When it is determined that there is a device 1 whose execution frequency is equal to or higher than the threshold (S502: YES), the control unit 31 specifies the inference model 121 applied (installed) to the device 1 (step S503). Then, the control unit 31 refers to the management DB 341, and identifies another device 1 to which the inference model 121 of the same type as the identified inference model 121 is applied (step S504).

制御部31は、実行頻度が閾値以上のデバイス1、及び当該デバイス1と同種類の推論モデル121を適用した他のデバイス1に対し、推論処理の禁止指示を送信する(ステップS505)。制御部31は、各デバイス1に対して推論処理を禁止した旨の許否情報を管理DB341に格納(更新)し(ステップS506)、一連の処理を終了する。   The control unit 31 transmits an instruction to prohibit the inference process to the device 1 whose execution frequency is equal to or higher than the threshold and the other device 1 to which the inference model 121 of the same type as the device 1 is applied (step S505). The control unit 31 stores (updates) in the management DB 341 permission / disapproval information to the effect that the inference processing has been prohibited for each device 1 (step S506), and ends the series of processing.

サーバ3から禁止指示を受信した場合、デバイス1のセキュアエレメント20は、当該指示に従い、推論処理を禁止する旨の許否情報を設定する(ステップS507)。例えばセキュアエレメント20は、許可フラグ272を「許可」から「禁止」に設定変更する。セキュアエレメント20は、一連の処理を終了する。   When the prohibition instruction is received from the server 3, the secure element 20 of the device 1 sets permission / disapproval information indicating that the inference process is prohibited according to the instruction (step S 507). For example, the secure element 20 changes the setting of the permission flag 272 from “permitted” to “prohibited”. The secure element 20 ends the series of processes.

以上より、本実施の形態5によれば、推論処理(演算処理)の実行頻度に応じてデバイス1での推論処理を禁止することで、不正解析を検知し、適切な対策を取ることができる。   As described above, according to the fifth embodiment, by prohibiting the inference process in the device 1 according to the execution frequency of the inference process (calculation process), it is possible to detect fraud analysis and take appropriate measures. .

また、本実施の形態5によれば、推論実行頻度が高いデバイス1だけでなく、当該デバイス1と関連付けられた他のデバイス1の推論処理も併せて禁止することで、推論モデル121の不正解析をより効果的に防止することができる。   Further, according to the fifth embodiment, not only the device 1 with a high frequency of inference execution but also the inference processing of other devices 1 associated with the device 1 are prohibited together, whereby fraud analysis of the inference model 121 is performed. Can be more effectively prevented.

(実施の形態6)
図23は、上述した形態のデバイス1の動作を示す機能ブロック図である。制御部11がプログラムP1を実行することにより、デバイス1は以下のように動作する。記憶部221は、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する。実行部222は、前記学習済みモデルに基づく演算処理を実行する。セキュア部223は、該実行部222よりセキュアなコンポーネントであって、前記実行部222からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する。前記実行部222は、前記セキュア部223による演算結果を用いて、最終的な演算結果を出力する
Sixth Embodiment
FIG. 23 is a functional block diagram showing the operation of the device 1 in the form described above. When the control unit 11 executes the program P1, the device 1 operates as follows. The storage unit 221 is a learned model generated by machine learning, and stores the learned model having a plurality of operation elements. The execution unit 222 executes arithmetic processing based on the learned model. The secure unit 223 is a component that is more secure than the execution unit 222, and executes an operation process related to the operation element of a part of the learned model according to the operation request from the execution unit 222. The execution unit 222 outputs a final calculation result using the calculation result by the secure unit 223.

本実施の形態6は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。   The sixth embodiment is as described above, and the other parts are the same as the first to fifth embodiments, so the corresponding parts are denoted with the same reference numerals and the detailed description thereof will be omitted.

今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。   It should be understood that the embodiments disclosed herein are illustrative in all respects and not restrictive. The scope of the present invention is indicated not by the meaning described above but by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.

1 デバイス
10 デバイス本体
11 制御部
12 記憶部
121 推論モデル
20 セキュアエレメント(セキュア部)
23 演算部
27 記憶部
271 推論モデル用パラメータ
272 許可フラグ(許否情報)
273 固有ID
51 通常実行環境
52 トラステッド実行環境(セキュア部)
3 サーバ(管理装置)
31 制御部
34 補助記憶部
341 最新モデル用パラメータ
342 動作管理DB
1 device 10 device main body 11 control unit 12 storage unit 121 inference model 20 secure element (secure unit)
23 operation unit 27 storage unit 271 parameters for inference model 272 permission flag (permission or rejection information)
273 Unique ID
51 Normal execution environment 52 Trusted execution environment (secure part)
3 Server (management device)
31 control unit 34 auxiliary storage unit 341 parameter for latest model 342 operation management DB

Claims (27)

機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
前記学習済みモデルに基づく演算処理を実行する実行部と、
該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
を備え、
前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力する
ことを特徴とするデバイス。
A storage unit storing a learned model having a plurality of operation elements, which is a learned model generated by machine learning;
An execution unit that executes arithmetic processing based on the learned model;
A component that is more secure than the execution unit, and executes an operation process related to the operation element of a part of the learned model according to the operation request from the execution unit;
A device characterized in that the execution unit outputs a final calculation result using the calculation result by the secure unit.
前記実行部は、
前記学習済みモデルの一部の前記演算要素に係る演算を行い、
該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを前記セキュア部に出力し、
前記セキュア部は、
前記実行部から出力された演算結果を用いて、指定された前記演算要素に係る演算を実行し、
指定された前記演算要素の演算結果を前記実行部に返送する
ことを特徴とする請求項1に記載のデバイス。
The execution unit is
Performing an operation relating to the operation element of a part of the learned model,
Outputting, to the secure unit, an operation result related to the part of the operation elements, and information for designating the operation element different from the part of the operation elements as an operation target;
The secure unit
Performing an operation relating to the specified operation element using the operation result output from the execution unit;
The device according to claim 1, wherein an operation result of the specified operation element is returned to the execution unit.
前記セキュア部は、
確率で表現された演算結果の端数処理を行って、前記実行部に返送する演算結果を変換し、
変換後の演算結果を前記実行部に返送する
ことを特徴とする請求項2に記載のデバイス。
The secure unit
Performing a rounding process on the operation result represented by the probability, and converting the operation result to be returned to the execution unit;
The device according to claim 2, wherein the converted operation result is returned to the execution unit.
運用者認証に必要な認証情報を取得する取得部を備え、
前記セキュア部は、前記認証情報に基づく運用者認証に成功した場合、前記演算処理を実行する
ことを特徴とする請求項1〜3のいずれか1項に記載のデバイス。
It has an acquisition unit that acquires authentication information required for operator authentication,
The device according to any one of claims 1 to 3, wherein the secure unit executes the arithmetic processing when the operator authentication based on the authentication information succeeds.
前記セキュア部は、耐タンパ性を有するセキュアエレメント、又は前記実行部が処理を行う実行環境からのアクセスが制限されたトラステッド実行環境である
ことを特徴とする請求項1〜4のいずれか1項に記載のデバイス。
The secure part is a secure element having tamper resistance, or a trusted execution environment in which access from the execution environment in which the execution part performs processing is restricted. Device described in.
前記セキュア部は、
前記実行部から要求された前記演算処理の一部又は全部の実行を、デバイスと通信可能な管理装置に要求し、
前記管理装置から演算結果を取得し、
前記管理装置から取得した演算結果を、又は該取得した演算結果を用いて前記セキュア部が実行した前記演算処理の結果を、前記実行部に返送する
ことを特徴とする請求項1〜5のいずれか1項に記載のデバイス。
The secure unit
Requesting execution of part or all of the arithmetic processing requested from the execution unit from a management apparatus capable of communicating with a device;
Obtain the calculation result from the management device,
The result of the arithmetic processing executed by the secure unit using the operation result acquired from the management apparatus or the acquired operation result is returned to the execution unit. Or a device according to clause 1.
前記セキュア部は、
前記実行部からの演算要求を受け付けた場合、前記演算処理の実行回数をカウントし、
前記実行回数が所定回数に達した場合、前記演算処理を制限する
ことを特徴とする請求項1〜5のいずれか1項に記載のデバイス。
The secure unit
When an operation request from the execution unit is received, the number of executions of the operation process is counted,
The device according to any one of claims 1 to 5, wherein when the number of executions reaches a predetermined number, the arithmetic processing is limited.
前記セキュア部は、カウントした前記実行回数、又は前記演算処理を実行した旨を示す情報を、デバイスと通信可能な管理装置に通知する
ことを特徴とする請求項7に記載のデバイス。
The device according to claim 7, wherein the secure unit notifies the management apparatus capable of communicating with the device of the counted number of times of execution or information indicating that the calculation process has been performed.
前記セキュア部は、前記演算処理を実行した実行日時を併せて通知する
ことを特徴とする請求項8に記載のデバイス。
The device according to claim 8, wherein the secure unit notifies of the execution date and time when the arithmetic processing is performed.
前記セキュア部は、
前記所定回数を、前記管理装置からの指示に従って更新する
ことを特徴とする請求項8又は9に記載のデバイス。
The secure unit
The device according to claim 8 or 9, wherein the predetermined number of times is updated according to an instruction from the management device.
前記セキュア部は、
前記演算処理の許可又は禁止を表す許否情報を保持し、
前記演算処理の許可を表す前記許否情報を保持してある場合、前記演算処理を実行する
ことを特徴とする請求項1〜5のいずれか1項に記載のデバイス。
The secure unit
Holding permission information indicating permission or prohibition of the arithmetic processing;
The device according to any one of claims 1 to 5, wherein when the permission information indicating permission of the operation processing is held, the operation processing is executed.
デバイスの動作状況を管理する管理装置と通信を行い、該管理装置からの指示に従って前記許否情報を設定する
ことを特徴とする請求項11に記載のデバイス。
The device according to claim 11, wherein communication is performed with a management device that manages the operation status of the device, and the permission information is set according to an instruction from the management device.
前記セキュア部は、
デバイスと通信可能な管理装置から、最新の前記学習済みモデルを展開するために必要なパラメータを取得し、
取得した前記パラメータを、前記実行部に出力し、
前記実行部は、前記セキュア部から取得した前記パラメータに基づき、前記最新の学習済みモデルを前記記憶部に展開する
ことを特徴とする請求項1〜5のいずれか1項に記載のデバイス。
The secure unit
Obtain parameters necessary for deploying the latest learned model from a management device capable of communicating with the device,
Outputting the acquired parameter to the execution unit;
The device according to any one of claims 1 to 5, wherein the execution unit develops the latest learned model in the storage unit based on the parameter acquired from the secure unit.
前記セキュア部は、通信内容を暗号化した秘匿通信路を介して、前記管理装置との間の通信を行う
ことを特徴とする請求項6、8〜10、12及び13のいずれか1項に記載のデバイス。
The communication system according to any one of claims 6, 8 to 10, 12 and 13, wherein the secure unit performs communication with the management apparatus via a secret communication path in which communication content is encrypted. Device described.
デバイスに搭載されるセキュアエレメントであって、
前記デバイスから、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルに基づく演算処理の実行要求を受け付ける受付部と、
受け付けた実行要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する演算部と、
演算結果を前記デバイスに出力する出力部と
を備えることを特徴とするセキュアエレメント。
A secure element mounted on the device,
A receiving unit that receives, from the device, a request for execution of arithmetic processing based on a learned model that is a learned model generated by machine learning and has a plurality of arithmetic elements;
An operation unit that executes an operation process related to the operation element of a part of the learned model according to the received execution request;
An output unit that outputs an operation result to the device.
前記デバイスから要求された前記演算処理の一部又は全部の実行を、前記デバイスと通信可能な管理装置に要求する要求部と、
前記管理装置から演算結果を取得する取得部と
を備えることを特徴とする請求項15に記載のセキュアエレメント。
A request unit that requests a management apparatus capable of communicating with the device to execute part or all of the arithmetic processing requested from the device;
The secure element according to claim 15, further comprising: an acquisition unit configured to acquire an operation result from the management device.
セキュアエレメントを搭載したデバイスに、
機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、
該学習済みモデルに基づく演算処理を実行する
処理を実行させるプログラムであって、
前記セキュアエレメントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、
前記セキュアエレメントによる演算結果を用いて、最終的な演算結果を出力する
ことを特徴とするプログラム。
On devices equipped with a Secure Element,
Storing in a storage unit a learned model generated by machine learning and having a plurality of operation elements;
A program for executing processing to execute arithmetic processing based on the learned model,
Requesting the secure element to perform an arithmetic process related to the arithmetic element of a part of the learned model;
A program that outputs a final calculation result using the calculation result of the secure element.
デバイスに、
機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、
前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する
処理を実行させるプログラムであって、
前記第1の実行環境よりもセキュアな第2の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行し、
前記第2の実行環境における演算結果を用いて、最終的な演算結果を出力する
ことを特徴とするプログラム。
To the device
A trained model generated by machine learning, which has a plurality of operation elements, is held in a first execution environment,
A program that executes processing for executing arithmetic processing based on the learned model in the first execution environment,
In a second execution environment that is more secure than the first execution environment, an arithmetic process related to the arithmetic element of a part of the learned model is executed.
A program that outputs a final calculation result using the calculation result in the second execution environment.
デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、
前記デバイスは、
機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
前記学習済みモデルに基づく演算処理を実行する実行部と、
該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
を備え、
前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、
前記セキュア部は、前記演算処理の実行回数、又は該演算処理を実行した旨を示す情報を前記管理装置に通知し、
前記管理装置は、前記セキュア部からの通知に基づき、前記実行回数を管理する
ことを特徴とする情報処理システム。
An information processing system comprising a device and a management device capable of communicating with the device, the information processing system comprising:
The device is
A storage unit storing a learned model having a plurality of operation elements, which is a learned model generated by machine learning;
An execution unit that executes arithmetic processing based on the learned model;
A component that is more secure than the execution unit, and executes an operation process related to the operation element of a part of the learned model according to the operation request from the execution unit;
The execution unit outputs a final calculation result using the calculation result by the secure unit,
The secure unit notifies the management apparatus of the number of executions of the arithmetic processing or information indicating that the arithmetic processing has been executed.
The information processing system, wherein the management apparatus manages the number of times of execution based on a notification from the secure unit.
前記セキュア部は、
前記実行部からの演算要求を受け付けた場合、前記実行回数をカウントし、
カウントした前記実行回数を前記管理装置に通知する
ことを特徴とする請求項19に記載の情報処理システム。
The secure unit
When the operation request from the execution unit is received, the number of executions is counted,
The information processing system according to claim 19, wherein the management apparatus is notified of the counted number of times of execution.
前記セキュア部は、前記演算処理を実行した場合に、該演算処理を実行した旨を示す情報を前記管理装置に通知し、
前記管理装置は、前記セキュア部からの通知に基づいて前記実行回数をカウントする
ことを特徴とする請求項20に記載の情報処理システム。
The secure unit, when executing the arithmetic process, notifies the management apparatus of information indicating that the arithmetic process has been executed.
The information processing system according to claim 20, wherein the management device counts the number of times of execution based on a notification from the secure unit.
前記セキュア部は、前記実行回数が所定回数に達していない場合、前記演算処理を実行する
ことを特徴とする請求項19〜21のいずれか1項に記載の情報処理システム。
The information processing system according to any one of claims 19 to 21, wherein the secure unit executes the arithmetic processing when the number of times of execution has not reached a predetermined number of times.
前記セキュア部は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記デバイスの識別情報と共に前記管理装置に通知し、
前記管理装置は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記識別情報と対応付けて記憶部に記憶する
ことを特徴とする請求項19〜22のいずれか1項に記載の情報処理システム。
The secure unit notifies the management apparatus of the number of times of execution or information indicating that the arithmetic processing has been performed, together with identification information of the device.
The information processing apparatus according to any one of claims 19 to 22, wherein the management apparatus stores information indicating the number of times of execution or that the arithmetic processing has been performed in a storage unit in association with the identification information. Information processing system.
前記セキュア部は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記演算処理を実行した実行日時と共に前記管理装置に通知し、
前記管理装置は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記実行日時と共に記憶部に記憶する
ことを特徴とする請求項19〜23のいずれか1項に記載の情報処理システム。
The secure unit notifies the management apparatus of the number of times of execution or information indicating that the arithmetic process has been performed, together with the date and time of execution of the arithmetic process.
The information processing apparatus according to any one of claims 19 to 23, wherein the management device stores information indicating the number of times of execution or that the arithmetic processing has been performed, in a storage unit together with the execution date and time. system.
前記管理装置は、
前記実行回数及び実行日時に基づき、前記演算処理の実行頻度が閾値以上であるか否かを判定する判定部と、
前記実行頻度が閾値以上であると前記判定部が判定した場合、前記演算処理の禁止を前記セキュア部に指示する指示部と
を備えることを特徴とする請求項24に記載の情報処理システム。
The management device is
A determination unit that determines whether the execution frequency of the arithmetic processing is equal to or higher than a threshold based on the number of times of execution and the date and time of execution;
The information processing system according to claim 24, further comprising: an instruction unit that instructs the secure unit to prohibit the arithmetic processing when the determination unit determines that the execution frequency is equal to or higher than a threshold.
前記記憶部は、複数の前記デバイスを互いに関連付けて記憶してあり、
前記指示部は、互いに関連付けられた複数の前記デバイスに対し、前記演算処理の禁止を指示する
ことを特徴とする請求項25に記載の情報処理システム。
The storage unit stores a plurality of the devices in association with each other,
The information processing system according to claim 25, wherein the instruction unit instructs the plurality of devices associated with one another to prohibit the arithmetic processing.
機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部とを備えたデバイスに、
前記実行部が、該実行部よりもセキュアなコンポーネントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、
前記セキュアなコンポーネントが、前記一部の演算要素に係る演算処理を実行し、
前記実行部は、前記セキュアなコンポーネントによる演算結果を用いて、最終的な演算結果を出力する
処理を実行させることを特徴とする情報処理方法。
What is claimed is: 1. A device comprising: a storage unit for storing a learned model having a plurality of computing elements, the learning model being generated by machine learning, and an execution unit for executing computing processing based on the learned model.
The execution unit requests the component more secure than the execution unit to perform an arithmetic process related to the arithmetic element of a part of the learned model;
The secure component executes arithmetic processing relating to the part of the arithmetic elements,
An information processing method comprising: executing the processing of outputting a final calculation result using the calculation result of the secure component.
JP2017255173A 2017-12-29 2017-12-29 Devices, secure elements, programs, information processing systems and information processing methods Active JP7056151B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017255173A JP7056151B2 (en) 2017-12-29 2017-12-29 Devices, secure elements, programs, information processing systems and information processing methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017255173A JP7056151B2 (en) 2017-12-29 2017-12-29 Devices, secure elements, programs, information processing systems and information processing methods

Publications (2)

Publication Number Publication Date
JP2019121141A true JP2019121141A (en) 2019-07-22
JP7056151B2 JP7056151B2 (en) 2022-04-19

Family

ID=67306358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017255173A Active JP7056151B2 (en) 2017-12-29 2017-12-29 Devices, secure elements, programs, information processing systems and information processing methods

Country Status (1)

Country Link
JP (1) JP7056151B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202000001462A1 (en) * 2020-01-24 2021-07-24 St Microelectronics Srl EQUIPMENT TO OPERATE A NEURAL NETWORK, CORRESPONDING PROCEDURE AND IT PRODUCT
JP2021105951A (en) * 2019-12-27 2021-07-26 日本電気株式会社 Image analysis device, image analysis method, and computer program
WO2021181963A1 (en) * 2020-03-13 2021-09-16 オムロン株式会社 Learning data generation device, learning device, control device, learning data generation method, learning method, control method, learning data generation program, learning program, and control program
JP2021140749A (en) * 2020-03-09 2021-09-16 コリア アドバンスド インスティチュート オブ サイエンス アンド テクノロジィ Electronic device for precise action profiling for implanting human's knowledge to artificial intelligence, and operation method thereof
JP6987308B1 (en) * 2020-12-17 2021-12-22 三菱電機株式会社 Information processing equipment, information processing methods and information processing programs
CN113868662A (en) * 2020-06-30 2021-12-31 微软技术许可有限责任公司 Secure execution of machine learning networks
JP6997401B1 (en) 2020-09-04 2022-01-17 ダイキン工業株式会社 Generation method, program, information processing device, information processing method, and trained model
CN116097046A (en) * 2020-09-04 2023-05-09 大金工业株式会社 Generating method, program, information processing device, information processing method, and learning-completed model
JP7572132B2 (en) 2019-10-24 2024-10-23 インターナショナル・ビジネス・マシーンズ・コーポレーション Private Transfer Learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (en) * 1991-10-17 1993-04-30 Hitachi Ltd Distributed learning device for neural network
JP2010257302A (en) * 2009-04-27 2010-11-11 Toppan Printing Co Ltd Secure medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (en) * 1991-10-17 1993-04-30 Hitachi Ltd Distributed learning device for neural network
JP2010257302A (en) * 2009-04-27 2010-11-11 Toppan Printing Co Ltd Secure medium

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7572132B2 (en) 2019-10-24 2024-10-23 インターナショナル・ビジネス・マシーンズ・コーポレーション Private Transfer Learning
JP2021105951A (en) * 2019-12-27 2021-07-26 日本電気株式会社 Image analysis device, image analysis method, and computer program
JP7396040B2 (en) 2019-12-27 2023-12-12 日本電気株式会社 Image analysis device, image analysis method and computer program
IT202000001462A1 (en) * 2020-01-24 2021-07-24 St Microelectronics Srl EQUIPMENT TO OPERATE A NEURAL NETWORK, CORRESPONDING PROCEDURE AND IT PRODUCT
JP2021140749A (en) * 2020-03-09 2021-09-16 コリア アドバンスド インスティチュート オブ サイエンス アンド テクノロジィ Electronic device for precise action profiling for implanting human's knowledge to artificial intelligence, and operation method thereof
JP7283774B2 (en) 2020-03-09 2023-05-30 コリア アドバンスド インスティチュート オブ サイエンス アンド テクノロジィ ELECTRONIC APPARATUS AND OPERATING METHOD THEREOF, AND COMPUTER PROGRAM FOR PRECISE BEHAVIOR PROFILING FOR IMPLANTING HUMAN INTELLIGENCE TO ARTIFICIAL INTELLIGENCE
WO2021181963A1 (en) * 2020-03-13 2021-09-16 オムロン株式会社 Learning data generation device, learning device, control device, learning data generation method, learning method, control method, learning data generation program, learning program, and control program
CN113868662A (en) * 2020-06-30 2021-12-31 微软技术许可有限责任公司 Secure execution of machine learning networks
JP6997401B1 (en) 2020-09-04 2022-01-17 ダイキン工業株式会社 Generation method, program, information processing device, information processing method, and trained model
WO2022050370A1 (en) * 2020-09-04 2022-03-10 ダイキン工業株式会社 Generation method, program, information processing device, information processing method, and trained model
JP2022043923A (en) * 2020-09-04 2022-03-16 ダイキン工業株式会社 Generation method, program, information processing apparatus, information processing method, and learned model
CN116097046A (en) * 2020-09-04 2023-05-09 大金工业株式会社 Generating method, program, information processing device, information processing method, and learning-completed model
US11965667B2 (en) 2020-09-04 2024-04-23 Daikin Industries, Ltd. Generation method, program, information processing apparatus, information processing method, and trained model
CN116097046B (en) * 2020-09-04 2023-12-08 大金工业株式会社 Generating method, information processing apparatus, information processing method, and learning-completed model
JP6987308B1 (en) * 2020-12-17 2021-12-22 三菱電機株式会社 Information processing equipment, information processing methods and information processing programs
CN116569167A (en) * 2020-12-17 2023-08-08 三菱电机株式会社 Information processing device, information processing method, and information processing program
WO2022130558A1 (en) * 2020-12-17 2022-06-23 三菱電機株式会社 Information processing device, information processing method, and information processing program

Also Published As

Publication number Publication date
JP7056151B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
JP7056151B2 (en) Devices, secure elements, programs, information processing systems and information processing methods
US10270600B2 (en) Secure revisioning auditing system for electronic document files
EP4035050B1 (en) Consensus protocol for blockchain dag structure
JP6655762B2 (en) Machine learning model fraud detection system and fraud detection method
JP7419325B2 (en) Devices, programs and information processing methods
CN114144781A (en) Identity verification and management system
US10277608B2 (en) System and method for verification lineage tracking of data sets
WO2020085557A1 (en) Firmware updating method using low-power wireless network
CN104246698B (en) Elastic operation is system computerized
DE112016003625T5 (en) PEER-TO-PEER CREDENTIALS
US12079694B2 (en) Training machine learning models with training data
CN107431692A (en) Predictive user authentication
CN110598375B (en) Data processing method, device and storage medium
JP6954084B2 (en) Devices, secure elements, programs, information processing methods and information processing systems
CN107533611A (en) Protect user can identification information in the transmission of telemetry
Sandeepa et al. A survey on privacy for B5G/6G: New privacy challenges, and research directions
CN108920919A (en) Control method, device and system of interactive intelligent equipment
CN108140099A (en) The newer signature exchanged in binary data synchronous protocol
CN112699406A (en) Block chain-based medical image data security management method and system
CN109359450A (en) Safety access method, device, equipment and the storage medium of linux system
CN115118462A (en) Data privacy protection method based on convolution enhancement chain
CN113961911A (en) Model data sending method, model data integration method and device
KR102132901B1 (en) Firmware packaging and unpackaging methods
WO2019171443A1 (en) Machine learning-trained model update system, edge device, machine learning-trained model update method, and program
Ahmadi Mehri et al. Designing a secure IoT system architecture from a virtual premise for a collaborative AI lab

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220321

R150 Certificate of patent or registration of utility model

Ref document number: 7056151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150