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 PDFInfo
- 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
Links
Images
Landscapes
- Image Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
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.
しかしながら、上述の如く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.
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、IoTシステムの構成例を示すブロック図である。本実施の形態では、IoT端末であるデバイス1に機械学習の成果物である推論モデル121をインストールし、デバイス1が推論モデル121を利用して、入力データから適切な出力データを推論する推論処理を行う形態について述べる。なお、本明細書において「推論」とは機械学習結果を利用した処理全般を表す文言として用い、「推論モデル」とは機械学習により生成された学習済みモデルを表す文言として用いる。
Hereinafter, the present invention will be described in detail based on the drawings showing the embodiments.
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
IoTシステムは、デバイス1と、サーバ3とを有する。デバイス1は、インターネットであるネットワークNに接続された電子機器であり、例えば監視カメラ、多機能端末、車両に搭載されたECU(Electronic Control Unit)、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。本実施の形態においてデバイス1は監視カメラであるものとして説明する。
The IoT system has a
サーバ3は、デバイス1の動作状況を管理する管理装置であり、ネットワークNを介してデバイス1に通信接続されている。本実施の形態では、サーバ3が機械学習を行って推論モデル121を生成し、生成した推論モデル121のデータ(図1に示す最新モデル用パラメータ341)をデバイス1に配信する。デバイス1は、当該データに基づいて推論モデル121を自装置のメモリ上に展開し、推論処理を行う。例えばデバイス1が監視カメラである場合、デバイス1は撮像画像に含まれる物体が何であるかを推論(推定)し、推論結果を外部に通知する。
The
また、サーバ3は、推論モデル121に基づくデバイス1の動作状況に関するデータを収集し、データベース上でデバイス1の動作状況を管理する。詳しくは後述するように、サーバ3は、各デバイス1にインストールした推論モデル121の種類やバージョン情報のほか、各デバイス1において実行させた推論処理の実行回数、及び各デバイス1における推論処理を許可するか否か等の情報を管理する。
Also, the
デバイス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
デバイス本体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
The
入出力I/F13は、セキュアエレメント20と情報の入出力を行うためのインターフェイスであり、上述の如く、ISO7816、SPI等の規格で情報の入出力を行う。通信部14は、インターネット通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークNを介してサーバ3等と情報の送受信を行う。入力部15は、ユーザから情報の入力を受け付ける入力インターフェイスであり、デバイス1の種類に応じて、例えばメカニカルキー、タッチパネル、音声入力マイク等、種々の形態であり得る。撮像部16は、CMOS(Complementary Metal Oxide Semiconductor)センサ等を有する撮像機構であり、画像の撮像を行う。
The input / output I /
セキュアエレメント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
The
記憶部27は不揮発性メモリであり、推論モデル用パラメータ271、推論モデル121、許可フラグ272、及び固有ID273を記憶している。推論モデル用パラメータ271は、後述するように、デバイス本体10が推論モデル121を展開するために必要なパラメータである。推論モデル121は、デバイス本体10の記憶部12に記憶してあるモデルデータと同じデータであり、機械学習により生成された学習済みモデルのデータである。許可フラグ272は、自装置(デバイス1)での推論処理の実行が許可又は禁止されていることを示す許否情報であり、後述するように、サーバ3からの指示に従って設定される。固有ID273は、セキュアエレメント20に固有の個体識別情報であり、例えばセキュアエレメント20の製造番号等である。
The
サーバ3は、制御部31、主記憶部32、通信部33、及び補助記憶部34を備える。
制御部31は、一又は複数のCPU、MPU等の演算装置を備え、サーバ3に係る種々の情報処理、制御処理を行う。主記憶部32は、RAM等の揮発性メモリであり、制御部31が処理を実行する上で必要なデータを一時的に記憶する。通信部33は、通信に関する処理を行う処理回路等を有し、ネットワークNを介してデバイス1等と通信を行う。
The
The
補助記憶部34は、大容量メモリ、ハードディスク等であり、サーバ3が処理を行うために必要なプログラムP2、その他のデータを記憶している。また、補助記憶部34は、最新モデル用パラメータ341及び動作管理DB342を記憶している。最新モデル用パラメータ341は、デバイス1に配信する最新の推論モデル121のデータであり、デバイス1が推論モデル121を展開する上で必要なパラメータである。動作管理DB342は、デバイス1の動作状況を管理するデータベースである。
The
なお、補助記憶部34はサーバ3に接続された外部記憶装置であってもよい。また、サーバ3は複数のコンピュータからなるマルチサーバであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
The
図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
図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
As described above, the
例えばサーバ3は、定期的に推論モデル121のアップデート(学習)を行い、最新モデル用パラメータ341をデバイス1に配信する。デバイス1は、サーバ3から配信された最新モデル用パラメータ341を、推論モデル用パラメータ271としてセキュアエレメント20に格納しておく。なお、機械学習は、パラメータの配信元であるサーバ3が主体となって行うものでもよく、他のコンピュータが機械学習を行って学習結果をサーバ3に保存しておいてもよい。
For example, the
推論モデル用パラメータ271は、ハイパーパラメータ271aと、学習パラメータ271bと、バージョン情報271cとから成るデータ群である。ハイパーパラメータ271aは、コンピュータに機械学習を行わせるために手動設定される設定値であり、推論モデル121の基本構造を一意に特定可能なパラメータである。例えば推論モデル121がニューラルネットワークである場合、ハイパーパラメータ271aは、各ニューロン層に入力される入力数、各ニューロン層から出力される出力数、ニューロン間の層間結合、各ニューロンの演算処理に用いられる活性化関数等を指し示す情報である。
The
学習パラメータ271bは、ハイパーパラメータ271aで規定されるネットワーク構造の下、機械学習によりコンピュータが学習した学習値である。例えば推論モデル121がニューラルネットワークである場合、学習パラメータ271bは、各ニューロンの重み付け係数、バイアス値等のパラメータである。サーバ3は、正解値付きの教師データの入力を受け、各ニューロンに適用する学習パラメータ271bを学習する。
なお、機械学習は教師なし学習、半教師学習等であってもよい。また、機械学習は強化学習であってもよく、この場合、推論モデル用パラメータ271はQ値(Q(s,a);sは状態、aは行動)であってもよい。
The learning
Machine learning may be unsupervised learning, semi-supervised learning, or the like. Machine learning may be reinforcement learning, and in this case, the
バージョン情報271cは、推論モデル121のバージョン数を表す情報である。上述の如く、サーバ3は定期的に推論モデル121をアップデートし、最新モデル用パラメータ341を配信する。バージョン情報271cは、当該アップデートによるバージョン数を表す。
The
図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
The
読出要求を受け付けた場合、セキュアエレメント20の読出部21はまず、当該読出要求が正当なものであるか否か、運用者認証を行う。読出部21は認証部22に対し、運用者(デバイス1のユーザ等)の認証に必要な認証情報を確認するよう要求する(P2)。当該要求を受け付けた場合、認証部22はデバイス本体10に対し、認証情報の出力を要求する(P3)。
When a read request is received, the
認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、セキュアエレメント20に対して認証情報を出力する(P4)。認証情報は例えば、入力部15を介して入力されるPIN(Personal Identification Number)コード、パスワード、生体情報等である。なお、認証情報はこれらに限定されるものではなく、運用者の正当性を適切に確認することができればよい。認証部22は、デバイス本体10から取得した認証情報を、セキュアエレメント20で事前に保持してある認証情報(不図示)と照合し、認証を行う。
When the output request for the authentication information is received, the
認証に失敗した場合、セキュアエレメント20は推論モデル用パラメータ271を出力せず、一連の処理を終了する。認証に成功した場合、認証部22は認証が完了した旨をセキュアエレメント20内に保持すると共に、認証が完了した旨をデバイス本体10に通知する。
If the authentication fails, the
認証完了の通知を受けた場合、デバイス本体10の制御部11は再度、パラメータの読出要求を行う(P5)。読出要求を受け付けた場合、セキュアエレメント20の読出部21は、記憶部27から推論モデル用パラメータ271を読み出す(P6)。読出部21は、読み出したパラメータをデバイス本体10に出力する(P7)。
When the notification of the authentication completion is received, the
デバイス本体10の制御部11は、セキュアエレメント20から取得したパラメータに基づき、推論モデル121をメモリ上に展開する(P8)。具体的には以下に説明するように、制御部11は、推論モデル用パラメータ271のうち、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定し、基本構造を決定したニューラルネットワークの各ニューロンに対して学習パラメータ271bを適用することで、推論モデル121を展開する。
The
図4は、推論モデル121の基本構造の一例を示す説明図である。図4では、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定する様子を概念的に図示している。ハイパーパラメータ271aは、各ニューロン層の入力数、出力数、層間結合等を規定するデータであり、ニューロン層毎に構造を一意に特定可能なように規定されている。
FIG. 4 is an explanatory view showing an example of the basic structure of the
図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
以下同様にして、制御部11は、各ニューロン層における構造を決定する。これによって制御部11は、図4に示すように、入力から出力に至るニューラルネットワークの基本構造を決定する。
Likewise, the
図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
For example, in the
図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
また、図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
以下同様にして、制御部11は第1〜3層のニューロン層についても、重み付け係数及びバイアス値を設定する。これによって制御部11は、学習パラメータをネットワーク全体に展開し、最初の入力値x0〜x2から最終的な出力値y0〜y2を演算するニューラルネットワークを生成する。
Likewise, the
デバイス本体10は、上記のようにして展開した推論モデル121(ニューラルネットワーク)を利用して、所定の推論処理を行う。詳細な図示及び説明は省略するが、例えばデバイス1が監視カメラである場合、デバイス本体10は、撮像部16で撮像した画像を入力データとして取得し、当該入力データを推論モデル121に入力して、画像内に含まれる物体を推定(推論)する処理を行う。デバイス本体10は、撮像画像の各画素の色度、輝度等の値を入力値として推論モデル121に入力し、出力値を演算する。例えば出力値は、画像内に含まれる物体が、機械学習時にその特徴量を学習した特定の物体である確率を示す値である。デバイス本体10は、当該出力値を、サーバ3やその他の装置に出力する。例えば画像から不審物を特定した場合、デバイス本体10は、不審物を発見した旨を報知する。
The
なお、上記でデバイス1は、セキュアエレメント20からハイパーパラメータ271a及び学習パラメータ271bの両方を読み出して推論モデル121を展開しているが、本実施の形態はこれに限定されるものではない。例えばデバイス1は、ハイパーパラメータ271aはデバイス本体10に保持しておき、学習パラメータ271bはセキュアエレメント20に格納しておいて、デバイス本体10がセキュアエレメント20から学習パラメータ271bのみを読み出して推論モデル121を展開するようにしてもよい。このように、推論モデル用パラメータ271の一部のみをセキュアエレメント20で保存するようにしてもよい。
Although the
上記のようにデバイス1は、デバイス本体10とは物理的又は論理的に分離されたセキュアエレメント20に推論モデル用パラメータ271を格納しておき、セキュアエレメント20から推論モデル用パラメータ271を読み出して推論モデル121を展開する。デバイス本体10よりセキュアなコンポーネントに推論モデル用パラメータ271を保持しておくことで、第三者による推論モデル121の盗難、模倣等の可能性を低減することができる。
As described above, the
しかしながら、以下で述べる理由により、推論モデル121自体のデータを保護するだけでは安全性を損なう虞がある。
However, protecting the data of the
図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
一方で、蒸留による学習手法では、学習済みのニューラルネットワークを教師モデルとし、教師モデルの入出力値を教師データとして利用して、当該教師データを、教師モデルよりも小規模な生徒モデルに学習させる。図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
そこで本実施の形態に係るデバイス1は、推論処理の一部をデバイス本体10ではなくセキュアエレメント20で実行することで、上記の問題を解決する。
Therefore, the
図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
図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 /
First, the
図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
前段要素の演算が完了した場合、デバイス本体10の制御部11は、前段要素の演算結果をセキュアエレメント20に出力し、前段要素を除く推論モデル121の後段要素の演算をセキュアエレメント20に要求する(P22)。具体的には、制御部11は、前段要素の演算結果と共に、セキュアエレメント20に演算させる後段要素を指定する指定情報を出力し、演算を要求する。指定情報は、自身が演算すべき要素をセキュアエレメント20が特定可能な情報であり、例えばニューラルネットワークである場合、演算すべきニューロン層の層番号を示す情報である。
When the calculation of the former element is completed, the
図8の例では、デバイス本体10は、第1層までの演算結果を入力値としてセキュアエレメント20に入力し、推論モデル121の後段要素である第2層、第3層の演算をセキュアエレメント20に要求する。デバイス本体10は、演算すべきニューロン層をセキュアエレメント20が判別可能なように、演算処理の開始層の層番号である「2」と、終了層の層番号である「3」とを併せて通知し、具体的に演算を指示する。
In the example of FIG. 8, the
デバイス本体10から演算要求を受け付けた場合、まずセキュアエレメント20の認証部22が運用者認証を行い、正当な運用者からの演算要求であるか否かを確認する(P23)。具体的には推論モデル121の展開時と同様に、認証部22はデバイス本体10からPINコード、パスワード等の認証情報を取得し、認証情報に基づいて運用者の認証を行う。認証に失敗した場合、認証部22は認証に失敗した旨をデバイス本体10に通知し、推論処理を停止させる。なお、例えばすでに運用者認証が行われている場合は、当該認証処理をスキップしてもよい。認証に成功した場合、認証部22は、デバイス本体10から取得した前段要素の演算結果及び後段要素の指定情報を演算部23に受け渡し、演算を要求する(P24)。
When an operation request is received from the
認証部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
実行回数が一定回数に達していない場合、演算部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
許可フラグ272が「許可」である場合、演算部23は、記憶部27に保持してある推論モデル121のデータを参照して、デバイス本体10から要求された後段要素の演算処理を実行する(P27)。例えば推論モデル121がニューラルネットワークである場合、演算部23は、推論モデル121を構成する複数の演算要素(ニューロン層)のうち、出力層を含む後段要素の演算を行う。
When the
図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
演算部23は、後段要素の演算結果をデバイス本体10に出力する(P28)。ここで演算部23は、確率で表現された推論モデル121の出力値をそのままデバイス本体10に出力することなく、確率値を0又は1の二値に変換する端数処理を行い、変換後の値をデバイス本体10に出力する。
The
例えば図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
上記のように、セキュアエレメント20は推論モデル121の出力値を確率値で出力することなく、0又は1の二値に表現し直して出力する。従って、デバイス本体10から出力値が搾取された場合であっても、確率で表現されていないため、推論モデル121の模倣が困難になる。
As described above, the
セキュアエレメント20から後段要素の演算結果を取得した場合、デバイス本体10の制御部11は、取得した演算結果を用いて、一連の推論処理に係る推論結果を出力する。例えばデバイス1が監視カメラである場合、制御部11は、入力画像に含まれる物体を推論した推論結果を外部に出力する。このように、デバイス本体10はセキュアエレメント20での演算結果を推論結果に用いることで、推論モデル121の模倣を困難にする。
When the calculation result of the subsequent element is acquired from the
さらに本実施の形態では、推論処理の実行後、推論処理を実行した旨をセキュアエレメント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
秘匿通信路41は、例えばTLS(Transport Layer Security)のプロトコルで通信内容を暗号化した通信路である。通信路開設部25は、デバイス本体10におけるネットワークNとの通信インターフェイスである通信部14を経由して、サーバ3との間の秘匿通信路41を開設する。
The
なお、秘匿通信路41は通信内容を秘匿可能であればよく、例えばSSL(Secure Sockets Layer)等のプロトコルを採用してもよい。また、上記ではデバイス本体10の物理的な通信手段(通信部14)を経由して秘匿通信路41を確立しているが、セキュアエレメント20がサーバ3との間で秘匿通信路41を開設可能であればよく、セキュアエレメント20自体が物理的な通信手段(LAN、Wi−Fi(登録商標)等)を有する場合、セキュアエレメント20はサーバ3との間で秘匿通信路41を直接確立してもよい。
The
通信路開設部25は秘匿通信路41を介して、現在までカウントした推論実行回数をサーバ3に通知する(P41)。具体的には、通信路開設部25は、セキュアエレメント20の個体識別情報である固有ID273と、カウンタ24の現在の値(残回数)とを、推論処理を実行する現在の実行日時と共にサーバ3に通知する。サーバ3の制御部31は、通知された推論実行回数を動作管理DB342に記憶する(P42)。具体的には、制御部31は、セキュアエレメント20から通知された固有ID273と対応付けて、通知された推論処理の残回数と、実行日時とを動作管理DB342に記憶する。
The communication
上記のように、セキュアエレメント20は推論実行回数をサーバ3へ通知し、サーバ3が各デバイス1(セキュアエレメント20)の実行回数を管理する。これにより、各デバイス1での推論実行回数が一元管理される。
As described above, the
図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
例えばサーバ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
例えばサーバ3は、バッチ処理により動作管理DB342を参照して、推論実行回数又は許否情報が変更されたデバイス1があるか否かを確認する(P41)。推論実行回数又は許否情報が変更されたデバイス1がある場合、サーバ3は、当該デバイス1の固有ID273を特定する。
For example, the
サーバ3は、特定した固有ID273のデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(P42)。そしてサーバ3は、秘匿通信路41を介して、推論実行回数又は許否情報に関する更新内容をセキュアエレメント20に送信する(P43)。
The
サーバ3から更新内容を受信した場合、セキュアエレメント20の通信路開設部25は、更新内容をセキュアエレメント20内に格納し、推論実行回数又は許否情報を更新する(P44)。例えば図9に図示するように、通信路開設部25は、カウンタ24が保持する推論処理の残回数、又は記憶部27に保持してある許可フラグ272の値を、サーバ3から受信した値に上書きする。
When the update content is received from the
上記のように、セキュアエレメント20は、動作管理DB342に設定されている推論実行回数及び許否情報と、自身が保持している推論実行回数及び許否情報とを同期する。セキュアエレメント20は、上記のようにしてサーバ3から指示された推論実行回数及び許否情報に従って推論処理の可否を判断する。これにより、サーバ3からのセキュアエレメント20の遠隔制御が可能となる。
As described above, the
なお、上記では管理者による手動設定に従って推論実行回数及び許否情報を更新することにしたが、本実施の形態はこれに限定されるものではない。例えばサーバ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
図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
For example, the
デバイス本体10からパラメータの読出要求を受け付けた場合、セキュアエレメント20は、デバイス本体10に対し、運用者認証に必要な認証情報の出力を要求する(ステップS12)。認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、入力部15を介して認証情報の入力を受け付け、セキュアエレメント20に出力する(ステップS13)。認証情報は、例えばPINコード、パスワード、生体情報等であるが、運用者の正当性を適切に確認可能な情報であればよい。
When receiving the parameter read request from the
セキュアエレメント20は、認証情報に基づく運用者認証を行う(ステップS14)。セキュアエレメント20は、運用者認証が成功したか否かを判定する(ステップS15)。認証に失敗した場合(S15:NO)、セキュアエレメント20はパラメータの読み出しを行わず、一連の処理を終了する。認証が成功した場合(S15:YES)、セキュアエレメント20は推論モデル用パラメータ271を記憶部27から読み出す(ステップS16)。例えば推論モデル121がディープラーニングにより生成されるニューラルネットワークである場合、セキュアエレメント20は、ニューラルネットワークの基本構造を規定するハイパーパラメータ271aと、各ニューロン層に適用する学習パラメータ271bとを読み出す。セキュアエレメント20は、読み出したパラメータをデバイス本体10に出力する(ステップS17)。
The
セキュアエレメント20からパラメータの出力を受けた場合、デバイス本体10の制御部11は、当該パラメータに基づき、推論モデル121を記憶部12に展開する(ステップS18)。具体的には、制御部11はハイパーパラメータ271aに従ってニューラルネットワークの基本構造を決定し、決定した基本構造のニューラルネットワークの各ニューロンに学習パラメータ271bを適用することで、推論モデル121を展開する。制御部11は、一連の処理を終了する。
When receiving the output of the parameter from the
図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
The
制御部11は、前段要素の演算結果を出力し、前段要素とは異なる推論モデル121の後段要素の演算処理をセキュアエレメント20に要求する(ステップS33)。具体的には、制御部11は、デバイス本体10で演算した前段要素の演算結果と共に、セキュアエレメント20が演算すべき演算要素を指定する情報(例えばニューロン層の層番号等)をセキュアエレメント20に出力する。
The
デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、真正の運用者による演算要求であるか否かを確認する認証処理を行う(ステップS34)。例えばセキュアエレメント20は、PIN情報、パスワード等の認証情報をデバイス本体10に問い合わせ、デバイス本体10は認証情報を返信する。セキュアエレメント20は、当該認証情報に基づいて認証処理を行う。
When an operation request is received from the
セキュアエレメント20は、認証が成功したか否かを判定する(ステップS35)。認証が成功したと判定した場合(S35:YES)、セキュアエレメント20は、デバイス1における推論処理(演算処理)の実行回数をカウントする(ステップS36)。セキュアエレメント20は、カウントした実行回数が一定回数に達したか否かを判定する(ステップS37)。判定基準とする回数は、デバイス1に許可されている推論処理の制限回数であり、サーバ3がデバイス1(セキュアエレメント20)毎に制限回数を管理している。
The
実行回数が一定回数に達していないと判定した場合(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
認証に成功しなかったと判定した場合(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
推論処理が許可されていると判定した場合(S38:YES)、セキュアエレメント20は、デバイス本体10から要求された後段要素の演算処理を実行する(ステップS41)。例えば推論モデル121がニューラルネットワークである場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層に対し、デバイス本体10から取得した前段要素の演算結果を入力値として入力する。デバイス本体10から指定されるニューロン層は、ニューラルネットワークを構成する一又は複数のニューロン層であり、出力層を含むニューロン層である。セキュアエレメント20は、出力層に至るまで各ニューロンの演算を行い、最終的な出力値を演算する。
If it is determined that the inference process is permitted (S38: YES), the
セキュアエレメント20は、ステップS41における演算結果(出力値)の端数処理を行い、演算結果を変換する(ステップS42)。セキュアエレメント20は、変換後の演算結果をデバイス本体10に出力する(ステップS43)。セキュアエレメント20から演算結果を取得した場合、デバイス本体10の制御部11は、当該演算結果を用いて最終的な推論結果(演算結果)を出力し(ステップS44)、一連の処理を終了する。
The
ステップ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
図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
For example, the
更新されているデバイス1がないと判定した場合、(S71:NO)、制御部31は特段の処理を行うことなく一連の処理を終了する。更新されているデバイス1があると判定した場合、制御部31は、推論実行回数又は許否情報が更新されているデバイス1の固有ID273を特定する(ステップS72)。
If it is determined that there is no updated device 1 (S71: NO), the
制御部31は、当該固有ID273が示すデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(ステップS73)。制御部31は、開設した秘匿通信路41を介して、更新後の実行回数又は許否情報をセキュアエレメント20に送信する(ステップS74)。
The
サーバ3から実行回数又は許否情報を受信した場合、デバイス1のセキュアエレメント20は、自身が保持してある実行回数又は許否情報を、受信した実行回数又は許否情報に更新する(ステップS75)。セキュアエレメント20は、一連の処理を終了する。
When the number of executions or permission information is received from the
なお、上記でセキュアエレメント20は、推論処理の実行直後に実行回数をサーバ3へ通知しているが、通知のタイミングは実行直後に限定されず、別途独立して行ってもよい。また、セキュアエレメント20は推論実行回数のカウント値(残回数)を通知しているが、実行した旨を示す事実のみを通知し、サーバ3が実行回数を別途カウントしてもよい。また、上記ではセキュアエレメント20から通知された実行日時を動作管理DB342に保存しているが、実行回数の通知を受けた際にサーバ3がタイムスタンプを付し、これを動作管理DB342に保存してもよい。つまり、セキュアエレメント20からの実行日時の送信は必須ではない。
Although the
また、上記ではデバイス本体10が推論モデル121の前段要素を、セキュアエレメント20が後段要素の演算を担当しているが、どちらの処理主体がどの演算要素を演算するかは任意の設計事項であり、特に限定されない。後述するように、実施の形態によってはすべての演算をセキュアエレメント20に指示する設計も想定され得る。また、デバイス本体10及びセキュアエレメント20は、それぞれ推論モデル121の一部のみ演算を行うため、少なくとも自身が演算を行う推論モデル121の一部分のデータを保持してあればよく、完全な推論モデル121のデータを保持していなくともよい。また、上記ではセキュアエレメント20が演算する演算要素をデバイス本体10が指定しているが、例えば各々が担当する演算要素を予め固定化しておいてもよく、この場合、デバイス本体10は、演算要素を指定する指定情報(例えばニューロン層の層番号)をセキュアエレメント20に出力する必要はない。つまり、デバイス本体10は少なくとも自身で演算した演算結果、または制御部11から受け取った入力データをセキュアエレメント20に入力し、演算処理を要求することができればよい。
In the above, the
以上より、本実施の形態1によれば、デバイス1は、推論モデル121の一部の演算要素の演算をデバイス本体10よりも安全なセキュアエレメント20で実行する。これにより、デバイス1は、機械学習結果に基づく処理を安全に実行することができる。
As described above, according to the first embodiment, the
また、本実施の形態1によれば、デバイス1は、推論モデル121の前段要素の演算をデバイス本体10で実行し、最終的な出力値を得る後段要素の演算を、セキュアエレメント20で実行する。これにより、上記で説明した蒸留の問題に対して適切な対策が取られ、安全性を高めることができる。
Further, according to the first embodiment, the
また、本実施の形態1によれば、セキュアエレメント20は、確率で表現された出力値の端数処理を行い、変換後の出力値をデバイス本体10に返送する。これにより、たとえデバイス本体10から出力値が搾取された場合であっても、蒸留のために必要な確率値を搾取されることは避けることができ、安全性をより高めることができる。
Further, according to the first embodiment, the
また、本実施の形態1によれば、セキュアエレメント20は運用者認証を行い、認証に成功した場合にのみ演算処理を実行する。これにより、安全性をさらに高めることができる。
Further, according to the first embodiment, the
また、本実施の形態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
また、本実施の形態1によれば、単に実行回数を通知するだけでなく、実行日時を併せて通知することで、サーバ3においてデバイス1の動作状況を実行履歴として適切に管理することができる。
Further, according to the first embodiment, the
また、本実施の形態1によれば、セキュアエレメント20がカウントしている推論実行回数をサーバ3から更新することで、デバイス1における推論処理の遠隔制御が可能となる。
Also, according to the first embodiment, remote control of inference processing in the
また、本実施の形態1によれば、安全性が高いセキュアエレメント20に許否情報(許可フラグ272)を保持し、当該許否情報に従って推論の可否を判断することで、外部から不正操作が行われる事態に適切に対応することができる。
Further, according to the first embodiment, the
また、本実施の形態1によれば、セキュアエレメント20が保持する許否情報を、サーバ3の指示に従って設定させることで、サーバ3からデバイス1(セキュアエレメント20)の遠隔制御が可能となる。
Further, according to the first embodiment, by setting the permission information held by the
また、本実施の形態1によれば、サーバ3とセキュアエレメント20との間の通信を、秘匿通信路41を介して行うことで、実行回数、許否情報等の送受信を安全に行うことができ、通信伝送路上で命令や通知が改竄される事態を防止することができる。
Further, according to the first embodiment, by performing communication between the
(実施の形態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
図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
推論実行回数及び許可フラグ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
図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
図14に示すように、本実施の形態でデバイス本体10は第0層の演算を行い、第0層の演算結果を入力値としてセキュアエレメント20に受け渡す。そしてデバイス本体10は、残りの第1〜3層を演算すべきニューロン層として指定し、演算処理を実行するようセキュアエレメント20に要求する。
As shown in FIG. 14, in the present embodiment, the
デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層の演算を実行する。ここで、セキュアエレメント20は指定された全てのニューロン層の演算を行わず、一部のニューロン層についてのみ演算を行う。例えば図14のように、セキュアエレメント20は、デバイス本体10から指定された第1〜3層のうち、演算開始層である第1層についてのみ演算を行う。
When receiving the operation request from the
そしてセキュアエレメント20は、デバイス本体10から指定されたニューロン層のうち、自身が演算を行わない残りの第2層、第3層の演算を行うよう、サーバ3に要求する。具体的には図14のように、セキュアエレメント20は、第1層の演算結果を入力値とし、第2層及び第3層を演算対象として指定して、斯かる演算を実行するよう要求する。
Then, the
図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
演算要求を受け付けた場合、サーバ3の制御部31はまず、要求元のデバイス1における推論実行回数をカウントし、推論実行回数が一定回数に達しているか否かを確認する(P45)。実施の形態1で述べたように、動作管理DB342には、セキュアエレメント20の固有ID273と対応付けて、各デバイス1における推論実行回数(残回数)が記憶されている。制御部31は、セキュアエレメント20から取得した固有ID273を参照して、当該固有ID273に対応付けられた残回数をデクリメントする。そして制御部31は、残回数が0、つまり一定回数に達したか否かを確認する。なお、制御部31はデクリメント後の値を実行日時と共に動作管理DB342に格納し、推論実行回数を更新する。
When an operation request is received, the
一定回数に達している場合、制御部31は演算処理を実行せず、実行回数が一定回数に達した旨をデバイス1に通知して推論処理を停止させる。一方、実行回数が一定回数に達していない場合、次に制御部31は、要求元のデバイス1における推論処理を許可してあるか否かを確認する(P46)。具体的には上記と同様に、制御部31は固有ID273に対応付けられた許否情報を動作管理DB342から参照して、推論処理の許可又は禁止を判別する。推論処理を許可していない場合、制御部31は演算処理を実行せず、推論処理が禁止されている旨をデバイス1に通知して処理を停止させる。
If the number of times has reached a predetermined number, the
推論処理を許可してある場合、制御部31は、セキュアエレメント20から要求された推論モデル121の一部の演算処理を実行する(P47)。具体的には既に述べたように、制御部31は、セキュアエレメント20から取得した演算結果を入力値として用い、セキュアエレメント20から指定された、ニューラルネットワークの出力層を含む一又は複数のニューロン層の演算を実行する。
When the inference process is permitted, the
また、制御部31は実施の形態1と同様に、ニューラルネットワークの出力層からの出力値に対して端数処理を行い、確率表現された出力値を、0又は1の二値で表現された値に変換する(図14参照)。
Further, as in the first embodiment, the
制御部31は、変換後の出力値を演算結果として、秘匿通信路41を介してセキュアエレメント20に送信する(P48)。セキュアエレメント20は、サーバ3から取得した演算結果を、デバイス本体10からの演算要求に対する出力値として返送する(P49)。デバイス本体10の制御部11は、セキュアエレメント20から返送された出力値を用いて推論結果を出力する。
The
なお、上記ではデバイス本体10から要求された演算処理を、セキュアエレメント20及びサーバ3が分担して行ったが、本実施の形態はこれに限定されず、セキュアエレメント20は特段の演算を行わず、サーバ3に演算要求を転送して演算処理を実行させてもよい。つまり、デバイス本体10から要求された演算処理をセキュアエレメント20又はサーバ3が実行可能であればよく、どちらがどの程度の演算を負担するかは限定されない。
Although the
図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
セキュアエレメント20は、サーバ3との間で秘匿通信路41を開設する(ステップS202)。セキュアエレメント20は、秘匿通信路41を介してステップS201における演算結果をサーバ3に送信し、推論モデル121の一部の演算処理の実行をサーバ3に要求する(ステップS203)。具体的には、セキュアエレメント20は、自身が演算した演算結果と共に、サーバ3が演算すべき演算要素(ニューロン層)を指定する指定情報と、セキュアエレメント20の固有ID273とを送信する。
The
セキュアエレメント20から演算要求を受け付けた場合、サーバ3の制御部31は、演算要求の送信元であるデバイス1での推論処理の実行回数をカウントする(ステップS204)。具体的には、制御部31は動作管理DB342を参照して、セキュアエレメント20から受信した固有ID273に基づき、当該固有ID273に対応付けられたデバイス1の推論実行回数(残回数)を読み出す。制御部31は、読み出した残回数をデクリメントすることで、実行回数をカウントする。なお、制御部31は、カウントした実行回数を、現在の実行日時と共に動作管理DB342に記憶する。
When an operation request is received from the
制御部31は、カウントした推論実行回数が一定回数に達したか否かを判定する(ステップS205)。一定回数に達していないと判定した場合(S205:NO)、制御部31は動作管理DB342を参照して、要求元であるデバイス1での推論処理を許可してあるか否かを判定する(ステップS206)。具体的にはステップS204と同様に、制御部31は固有ID273に対応付けられた許否情報(許可フラグ)を参照し、デバイス1に対して推論処理を許可又は禁止していたかを確認する。推論処理を許可してあると判定した場合(S206:YES)、制御部31は、処理をステップS210に移行する。
The
推論実行回数が一定回数に達したと判定した場合(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
図16に移って、ステップS206でYESの場合、サーバ3の制御部31は、セキュアエレメント20からの要求に従い、推論モデル121の一部の演算を実行する(ステップS210)。具体的には、制御部31は、セキュアエレメント20から取得した演算結果(入力値)を指定されたニューロン層に入力し、最終的な出力値を演算する。
Moving to FIG. 16, in the case of YES in step S206, the
制御部31は、ステップS210の演算結果の端数処理を行い、出力値を変換する(ステップS211)。制御部31は、変換後の出力値(演算結果)をセキュアエレメント20に送信する(ステップS212)。セキュアエレメント20は、サーバ3から取得した出力値をデバイス本体10に転送する(ステップS213)。制御部31は、セキュアエレメント20から取得した出力値を用いて推論結果を出力し(ステップS214)、一連の処理を終了する。
The
なお、上記では、セキュアエレメント20が演算を行った後にサーバ3が残る演算要素(出力層を含むニューロン層)の演算を行ったが、例えばサーバ3が演算を行った後でセキュアエレメント20が残る演算要素の演算を行うようにしてもよい。つまり、デバイス本体10から要求された演算要素のうち、少なくとも一部の演算要素の演算をサーバ3が実行することができればよく、演算処理の前後関係は特に限定されない。
In the above, although the
以上より、本実施の形態2によれば、サーバ3にも推論モデル121に基づく演算処理の一部を実行させることで、例えばセキュアエレメント20のみでは演算能力が足りない場合等に対応することができる。
As described above, according to the second embodiment, by causing the
実施の形態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
図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
従前にて述べた通り、デバイス本体10及びセキュアエレメント20がどの演算要素を演算するかは任意の設計事項である。よってデバイス本体10が意図的に一切の演算を行わず、セキュアエレメント20及びサーバ3のみが連携して演算を行う実施についても、本実施の形態の範疇に含まれることは容易に理解されよう。
As described above, which computing element the
(実施の形態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
FIG. 18 is a block diagram showing a configuration example of the IoT system according to the third embodiment. The
通常実行環境51は、広く一般的に利用されている汎用OS511の実行環境であり、トラステッド実行環境52へのアクセスが制限される以外に、特段の機能制約がない実行環境である。汎用OS511は、通常実行環境51においてOSの機能を果たすソフトウェアであり、アプリケーション512からの要求に応じて、デバイス1に接続されたハードウェアの制御等を含む各種OS機能を提供する。制御部11は、汎用OS511上でアプリケーション512を実行することで、デバイス1の基本的、汎用的な処理を実行する。
The
トラステッド実行環境52は、セキュリティ機能を隔離する目的で、同一のSoC上で通常実行環境とは別に提供される独立した実行環境である。トラステッド実行環境52は、通常実行環境51からのアクセスが制限されており、実行可能な機能も限定されている。なお、トラステッド実行環境は、TEEのような称呼に限定されるものではなく、通常実行環境51と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。デバイス1は、セキュリティ上保護すべきソフトウェア及びデータをトラステッド実行環境52に配置すると共に、通常実行環境51及びデバイス1の外部からのアクセスを制限することで、安全性を確保する。
The trusted
上述のように、通常実行環境51からトラステッド実行環境52にはアクセスできないように制限されており、通常実行環境51からはトラステッド実行環境52の存在を認識できない。通常実行環境51からトラステッド実行環境52で実行する処理を呼び出すためには、ソフトウェア上実現されるセキュアモニタ53を経由しなければならない。
As described above, the
トラステッドOS521は、トラステッド実行環境52においてOSの機能を果たすソフトウェアであり、アプリケーション522からの要求に応じて、セキュリティ機能を中心としたOS機能を提供する。制御部11は、トラステッドOS521上でアプリケーション522を実行することで、推論モデル121に基づく演算処理を含む、セキュリティ上重要な処理を実行する。
The trusted
なお、本実施の形態では、デバイス1の各種機能がOS、アプリケーションのいずれで実装されるかは本質的事項ではなく、実装者が適宜選択すべき設計事項であることから、OS、アプリケーションの機能分担については説明を省略する。
In the present embodiment, it is not an essential matter whether the various functions of the
図18に示すように、本実施の形態においてデバイス1の制御部11は、トラステッド実行環境52に推論モデル用パラメータ271、許可フラグ272、固有ID273等を配置する。制御部11は、トラステッド実行環境52に配置された推論モデル用パラメータ271を読み出し、通常実行環境51に推論モデル121を展開する。
As shown in FIG. 18, in the present embodiment, the
推論処理を実行する場合、制御部11は、通常実行環境51において推論モデル121の一部の演算処理を行った後、演算結果をトラステッド実行環境52に受け渡す。制御部11は、トラステッド実行環境52において推論実行回数のカウント、許可フラグ272のチェック、及び推論モデル121の一部演算処理を実行し、演算結果を通常実行環境51に返送する。制御部11は、返送された演算結果を用いて、推論結果を出力する。
When executing the inference process, the
以上より、本実施の形態3によれば、デバイス1は、通常実行環境51と、通常実行環境51よりもセキュアなトラステッド実行環境52とを構築し、トラステッド実行環境52において推論モデル121の一部の演算処理を実行する。このように、セキュアエレメント20を搭載せずとも、ソフトウェア上の構成によって推論処理に係る安全性を確保することができる。
As described above, according to the third embodiment, the
上述の如く、デバイス1は、推論処理に係る演算を実行するコンポーネントよりもセキュアなコンポーネント(セキュア部)を有し、当該セキュアなコンポーネントにおいて推論モデル121の一部の演算処理を実行可能(あるいは実施の形態2のように、サーバ3に対して推論モデル121の一部演算を要求し、サーバ3から出力された演算結果を通常実行環境51に返送可能)であればよい。当該セキュアなコンポーネントは、ハードウェア上分離されたセキュアエレメント20等であってもよく、ソフトウェア上分離されたトラステッド実行環境52等であってもよい。
As described above, the
セキュアエレメント20に代えてトラステッド実行環境52を実装する以外は実施の形態1と共通するため、本実施の形態では詳細な図示及び説明を省略する。
The second embodiment is the same as the first embodiment except that the trusted
(実施の形態4)
本実施の形態では、デバイス1に格納されている推論モデル121を更新する形態について述べる。
図19は、推論モデル121の更新処理に関する説明図である。図19では、セキュアエレメント20がサーバ3との間で通信を行い、推論モデル用パラメータ271を更新する様子を概念的に図示している。
In the present embodiment, an aspect will be described in which the
FIG. 19 is an explanatory diagram of the updating process of the
本実施の形態に係るセキュアエレメント20は、更新部28を備える。更新部28は、サーバ3から最新モデル用パラメータ341を取得し、記憶部27に格納してあるパラメータを更新する。
The
図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
更新部28は、秘匿通信路41を介してサーバ3に対し、推論モデル用パラメータ271の更新要求を行う(P54)。具体的には、更新部28は、セキュアエレメント20で保持している現在の推論モデル用パラメータ271のバージョン情報271cと、自装置に係る固有ID273とを送信する。
The updating
セキュアエレメント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
セキュアエレメント20の更新部28は、サーバ3から送信された最新モデル用パラメータ341に記憶部27に格納し、パラメータの更新を行う(P58)。例えば更新部28は、パラメータのダウンロード直後に当該パラメータをデバイス本体10に出力し、デバイス本体10は、当該パラメータを基に推論モデル121を更新(再構築)する。なお、パラメータのダウンロード直後に推論モデル121の更新を行うことなく、デバイス1の次回起動時、アプリケーションの次回実行時等、任意のタイミングで更新を行ってよい。以上より、IoTデバイスに格納されているデータを最新のものに更新することができ、陳腐化を防止する等、更新のニーズに応えることができる。
The
なお、上記ではデバイス本体10からのリクエストに従って一連の処理を開始しているが、本実施の形態はこれに限定されない。例えば推論処理の残回数が0になった場合に更新を行う、あるいはサーバ3が動作管理DB342から古いバージョンで稼働しているデバイス1を検知し、サーバ3側からデバイス1側へパラメータの更新要求を行うなど、任意のタイミングで推論モデル121の更新処理を開始してよい。
Although a series of processes are started according to a request from the device
図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
The
更新要求を受け付けた場合、サーバ3の制御部31は、更新要求を行ったデバイス1において推論モデル用パラメータ271を更新済みであるか否かを判定する(ステップS404)。例えば制御部31は、最新モデルのバージョン情報341cが、セキュアエレメント20から送信されたバージョン情報271cと一致するか否かを判定する。更新済みであると判定した場合(S404:YES)、制御部31は一連の処理を終了する。
If the update request has been received, the
更新済みでないと判定した場合(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
最新モデル用パラメータ341をサーバ3から受信した場合、セキュアエレメント20は、当該パラメータを記憶部27に格納する(ステップS407)。セキュアエレメント20は、新たに格納した最新モデル用パラメータ341をデバイス本体10に出力する(ステップS408)。セキュアエレメント20は、一連の処理を終了する。
When the
最新モデル用パラメータ341がセキュアエレメント20から出力された場合、デバイス本体10の制御部11は、当該パラメータに基づいて最新の推論モデル121をメモリ上に展開する(ステップS409)。制御部11は、一連の処理を終了する。
When the
なお、上記ではバージョン情報271c、341cがバージョン数、つまりバージョンを表す番号であるものとして図示及び説明を行ったが、本実施の形態はこれに限定されるものではない。例えばバージョン情報271c、341cは、パラメータの更新が行われた日付等の時間を表す情報であってもよい。また、例えばサーバ3は、デバイス1に展開されている推論モデル121と、最新の推論モデル121とのハッシュ値の比較を行って最新バージョンであるか否かを判定するようにしてもよい。このように、サーバ3は推論モデル121の新旧を判定可能な情報に基づいて推論モデル用パラメータ271を更新することができればよく、バージョン情報271c、341cは番号に限定されない。
Although the
以上より、本実施の形態4によれば、サーバ3からデバイス1へ最新モデル用パラメータ341を配信することで、最新の推論モデル121をデバイス1に展開することができ、モデルの陳腐化等、更新のニーズに対応することができる。特に本実施の形態では、実施の形態1と同様に、セキュアエレメント20にパラメータを一旦保管(格納)し、デバイス本体10はセキュアエレメント20からパラメータを読み出してメモリ(記憶部12)上に推論モデル121を展開する。これにより、推論モデル121を模倣可能なパラメータを搾取される可能性が低減し、安全性を確保することができる。
As described above, according to the fourth embodiment, by distributing the
(実施の形態5)
本実施の形態では、サーバ3が、デバイス1における推論処理の実行頻度に基づいて異常を検知し、推論処理を禁止する形態について述べる。
図21は、推論処理の実行頻度に基づく推論禁止処理に関する説明図である。図21に基づき、本実施の形態の概要について説明する。
Fifth Embodiment
In the present embodiment, a mode will be described in which the
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
本実施の形態でサーバ3は、推論処理の頻度に基づき、デバイス1に対する外部からの不正解析を検知する。図6を用いて説明したように、推論モデル121の蒸留を試みる場合、デバイス1に推論処理を実行させ、大量の推論結果のデータを取得(搾取)する必要がある。このような不正行為は比較的短時間で行われ、不正行為が行われている間に推論実行回数が飛躍的に増大する。つまり、推論処理の頻度に不正行為の特徴が現れる。サーバ3は、推論処理頻度の増大を判別することで、外部からの不正解析を検知する。
In the present embodiment, the
図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
サーバ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
サーバ3は、特定したデバイス1に対し、推論処理を停止するよう指示する。例えばサーバ3は、動作管理DB342上の許否情報を「許可」から「禁止」に変更し、変更した許否情報を、秘匿通信路41を介してデバイス1に送信する。セキュアエレメント20は、サーバ3から送信された許否情報に従って許可フラグ272を「禁止」に変更し、以降の推論処理を停止させる。
The
また、サーバ3は、推論処理頻度が高いデバイス1だけでなく、当該デバイス1と同種の推論モデル121を適用(展開)してある他のデバイス1に対しても、推論処理の実行を停止するよう指示する。
In addition, the
上述の如く、サーバ3は複数のデバイス1に推論モデル用パラメータ271を配信し、推論モデル121に基づく推論処理を実行させる。この場合、攻撃者は複数のデバイス1を解析対象とした上で、並列的に解析を行うことが想定される。そこでサーバ3は、攻撃者によって近い将来解析対象となり得るデバイス1での推論処理を先に禁止し、不正解析を未然に防ぐ。
As described above, the
例えばサーバ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
なお、上記では推論モデル121の種類に応じてグルーピングを行い、推論処理を一斉に禁止することにしているが、グルーピングの基準は推論モデル121の種類に限定されるものではない。例えばサーバ3は、デバイス1の物理的な配置場所、コンポーネントの種類(例えばセキュアエレメント20よりも比較的解析用意なトラステッド実行環境52であるか)などに応じてグルーピングを行ってもよい。つまりサーバ3は、動作管理DB342上で各デバイス1を所定のチェックポリシーに従って互いに関連付けておき、いずれかのデバイス1における推論処理頻度に応じて、関連付けられた複数のデバイス1の推論処理を禁止することができればよい。
Although grouping is performed according to the type of the
図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
制御部31は、各デバイス1の実行頻度を所定の閾値と比較して、閾値以上の実行頻度で推論処理を行っているデバイス1があるか否かを判定する(ステップS502)。実行頻度が閾値以上のデバイス1がないと判定した場合(S502:NO)、制御部31は一連の処理を終了する。
The
実行頻度が閾値以上のデバイス1があると判定した場合(S502:YES)、制御部31は、当該デバイス1に適用(インストール)されている推論モデル121を特定する(ステップS503)。そして制御部31は、管理DB341を参照して、特定した推論モデル121と同種類の推論モデル121を適用した他のデバイス1を特定する(ステップS504)。
When it is determined that there is a
制御部31は、実行頻度が閾値以上のデバイス1、及び当該デバイス1と同種類の推論モデル121を適用した他のデバイス1に対し、推論処理の禁止指示を送信する(ステップS505)。制御部31は、各デバイス1に対して推論処理を禁止した旨の許否情報を管理DB341に格納(更新)し(ステップS506)、一連の処理を終了する。
The
サーバ3から禁止指示を受信した場合、デバイス1のセキュアエレメント20は、当該指示に従い、推論処理を禁止する旨の許否情報を設定する(ステップS507)。例えばセキュアエレメント20は、許可フラグ272を「許可」から「禁止」に設定変更する。セキュアエレメント20は、一連の処理を終了する。
When the prohibition instruction is received from the
以上より、本実施の形態5によれば、推論処理(演算処理)の実行頻度に応じてデバイス1での推論処理を禁止することで、不正解析を検知し、適切な対策を取ることができる。
As described above, according to the fifth embodiment, by prohibiting the inference process in the
また、本実施の形態5によれば、推論実行頻度が高いデバイス1だけでなく、当該デバイス1と関連付けられた他のデバイス1の推論処理も併せて禁止することで、推論モデル121の不正解析をより効果的に防止することができる。
Further, according to the fifth embodiment, not only the
(実施の形態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
本実施の形態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
23
273 Unique ID
51
3 Server (management device)
31
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.
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)
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)
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 |
-
2017
- 2017-12-29 JP JP2017255173A patent/JP7056151B2/en active Active
Patent Citations (2)
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)
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 |