JP7056151B2 - デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法 - Google Patents

デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法 Download PDF

Info

Publication number
JP7056151B2
JP7056151B2 JP2017255173A JP2017255173A JP7056151B2 JP 7056151 B2 JP7056151 B2 JP 7056151B2 JP 2017255173 A JP2017255173 A JP 2017255173A JP 2017255173 A JP2017255173 A JP 2017255173A JP 7056151 B2 JP7056151 B2 JP 7056151B2
Authority
JP
Japan
Prior art keywords
secure
arithmetic
unit
trained model
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017255173A
Other languages
English (en)
Other versions
JP2019121141A (ja
Inventor
正徳 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2019121141A publication Critical patent/JP2019121141A/ja
Application granted granted Critical
Publication of JP7056151B2 publication Critical patent/JP7056151B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法に関する。
近年、IoT(Internet of Things)技術が急速に普及し、様々なデバイスがインターネットに接続されるようになっている。一方で、インターネットに接続されるデバイスが拡大することによって、デバイスの脆弱性に起因するセキュリティ上の問題が顕在化している。
また、IoTに限らず、ディープラーニングに代表される機械学習への関心が高まっている。これに伴い、機械学習技術をIoTに係るクラウドコンピューティングに適用し、データセンタであるクラウドサーバが機械学習を行って学習済みモデルを構築し、学習結果をIoTデバイスに提供して種々の処理を行うシステムが検討されている(例えば特許文献1)。
一方で、クラウド上に全てのデータ及び機能を集約するクラウドコンピューティングでは、ユーザとクラウドサーバとの間の通信距離が長くなることから、レイテンシー(処理速度)の遅延が避けられないとの問題がある。この問題に対し、クラウドサーバが行う処理の一部を、よりユーザに近いクライアント側で行うことで、通信距離を短縮してレイテンシーを向上させるエッジコンピューティングの技術が注目を集めている。
上記の機械学習とエッジコンピューティングとの相補についても注目を集めている。すなわち、クライアントであるIoTデバイスに機械学習演算の一部を委譲することで、クラウドコンピューティングに比べて演算結果を早くユーザに伝達する、という考え方である。例えばクラウドサーバが機械学習を行って学習結果をIoTデバイスに配信し、IoTデバイスが学習結果である学習済みモデルをメモリ上に展開して、学習済みモデルに基づく種々の処理を実行する。
特開2017-142654号公報
しかしながら、上述の如くIoTデバイスでのセキュリティの問題から、デバイス上に展開された学習済みモデルを第三者により盗難、模倣される等の課題が顕在化するであろうことが予測される。
一つの側面では、機械学習結果を利用した処理を安全に実行することができるデバイス等を提供することを目的とする。
一つの側面に係るデバイスは、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部と、該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部とを備え、前記実行部は、前記学習済みモデルの一部の前記演算要素に係る演算を行い、該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを前記セキュア部に出力し、前記セキュア部は、前記実行部から出力された演算結果を用いて、指定された前記演算要素に係る演算を実行し、指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って、前記実行部に返送する演算結果を変換し、変換後の演算結果を前記実行部に返送し、前記実行部は、前記セキュア部から返送された演算結果を用いて、最終的な演算結果を出力することを特徴とする。
一つの側面に係るセキュアエレメントは、デバイスに搭載されるセキュアエレメントであって、前記デバイスから、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルに基づく演算処理の実行要求を受け付ける受付部と、受け付けた実行要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する演算部と、演算結果を前記デバイスに出力する出力部と、前記デバイスから要求された前記演算処理の一部又は全部の実行を、前記デバイスと通信可能な管理装置に要求する要求部と、前記管理装置から演算結果を取得する取得部とを備えることを特徴とする。
一つの側面に係るプログラムは、セキュアエレメントを搭載したデバイスに、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、該学習済みモデルに基づく演算処理を実行する処理を実行させるプログラムであって、前記学習済みモデルの一部の前記演算要素に係る演算を行い、該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを前記セキュアエレメントに出力し、前記セキュアエレメントに対し、前記一部の演算要素とは異なる前記演算要素に係る演算処理を要求し、前記セキュアエレメントによって前記一部の演算要素に係る演算結果を用いて演算処理された前記異なる前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理が行われた変換後の演算結果を、前記セキュアエレメントから返送され、前記セキュアエレメントから返送された演算結果を用いて、最終的な演算結果を出力する処理を前記デバイスに実行させることを特徴とする。
一つの側面に係るプログラムは、デバイスに、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する処理を実行させるプログラムであって、前記第1の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算を行い、該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを、前記第1の実行環境よりもセキュアな第2の実行環境に出力し、前記第2の実行環境において、前記一部の演算要素に係る演算結果を用いて、指定された前記演算要素に係る演算を実行し、前記第2の実行環境において、指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って演算結果を変換し、前記第1の実行環境において、変換後の演算結果を用いて、最終的な演算結果を出力する処理を前記デバイスに実行させることを特徴とする。
一つの側面に係る情報処理システムは、デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、前記デバイスは、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部と、該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部とを備え、前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、前記セキュア部は、前記演算処理の実行回数、又は該演算処理を実行した旨を示す情報を前記管理装置に通知し、前記管理装置は、前記セキュア部からの通知に基づき、前記実行回数を管理することを特徴とする。
一つの側面に係る情報処理方法は、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部とを備えたデバイスに、前記実行部が、前記学習済みモデルの一部の前記演算要素に係る演算を行い、該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを、前記実行部よりもセキュアなコンポーネントに出力し、前記セキュアなコンポーネントに対し、前記異なる前記演算要素に係る演算処理を要求し、前記セキュアなコンポーネントが、前記実行部から出力された演算結果を用いて、指定された前記演算要素に係る演算処理を実行し、指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って、前記実行部に返送する演算結果を変換し、変換後の演算結果を前記実行部に返送し、前記実行部は、前記セキュアなコンポーネントから返送された演算結果を用いて、最終的な演算結果を出力する処理を実行させることを特徴とする。
一つの側面では、機械学習結果を利用した処理を安全に実行することができる。
IoTシステムの構成例を示すブロック図である。 動作管理DBのレコードレイアウトの一例を示す説明図である。 推論モデルの展開処理を説明するための説明図である。 推論モデルの基本構造の一例を示す説明図である。 学習パラメータの適用処理に関する説明図である。 教師モデルを用いた生徒モデルの生成に関する説明図である。 推論処理を説明するための説明図である。 デバイス本体及びセキュアエレメントがそれぞれ行う演算内容について説明するための説明図である。 推論実行回数及び許否情報の更新処理に関する説明図である。 推論モデルの展開処理の処理手順の一例を示すフローチャートである。 推論処理の処理手順の一例を示すフローチャートである。 推論実行回数及び許否情報の更新処理の処理手順の一例を示すフローチャートである。 実施の形態2に係る推論処理に関する説明図である。 デバイス本体、セキュアエレメント及びサーバがそれぞれ行う演算内容について説明するための説明図である。 実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。 実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。 応用実施例に係る推論処理の処理手順を示すフローチャートである。 実施の形態3に係るIoTシステムの構成例を示すブロック図である。 推論モデルの更新処理に関する説明図である。 推論モデルの更新処理の処理手順の一例を示すフローチャートである。 推論処理の実行頻度に基づく推論禁止処理に関する説明図である。 推論禁止処理の処理手順の一例を示すフローチャートである。 上述した形態のデバイスの動作を示す機能ブロック図である。
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、IoTシステムの構成例を示すブロック図である。本実施の形態では、IoT端末であるデバイス1に機械学習の成果物である推論モデル121をインストールし、デバイス1が推論モデル121を利用して、入力データから適切な出力データを推論する推論処理を行う形態について述べる。なお、本明細書において「推論」とは機械学習結果を利用した処理全般を表す文言として用い、「推論モデル」とは機械学習により生成された学習済みモデルを表す文言として用いる。
IoTシステムは、デバイス1と、サーバ3とを有する。デバイス1は、インターネットであるネットワークNに接続された電子機器であり、例えば監視カメラ、多機能端末、車両に搭載されたECU(Electronic Control Unit)、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。本実施の形態においてデバイス1は監視カメラであるものとして説明する。
サーバ3は、デバイス1の動作状況を管理する管理装置であり、ネットワークNを介してデバイス1に通信接続されている。本実施の形態では、サーバ3が機械学習を行って推論モデル121を生成し、生成した推論モデル121のデータ(図1に示す最新モデル用パラメータ341)をデバイス1に配信する。デバイス1は、当該データに基づいて推論モデル121を自装置のメモリ上に展開し、推論処理を行う。例えばデバイス1が監視カメラである場合、デバイス1は撮像画像に含まれる物体が何であるかを推論(推定)し、推論結果を外部に通知する。
また、サーバ3は、推論モデル121に基づくデバイス1の動作状況に関するデータを収集し、データベース上でデバイス1の動作状況を管理する。詳しくは後述するように、サーバ3は、各デバイス1にインストールした推論モデル121の種類やバージョン情報のほか、各デバイス1において実行させた推論処理の実行回数、及び各デバイス1における推論処理を許可するか否か等の情報を管理する。
デバイス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)等の規格で相互に接続されている。
デバイス本体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を記憶する。
入出力I/F13は、セキュアエレメント20と情報の入出力を行うためのインターフェイスであり、上述の如く、ISO7816、SPI等の規格で情報の入出力を行う。通信部14は、インターネット通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークNを介してサーバ3等と情報の送受信を行う。入力部15は、ユーザから情報の入力を受け付ける入力インターフェイスであり、デバイス1の種類に応じて、例えばメカニカルキー、タッチパネル、音声入力マイク等、種々の形態であり得る。撮像部16は、CMOS(Complementary Metal Oxide Semiconductor)センサ等を有する撮像機構であり、画像の撮像を行う。
セキュアエレメント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との間でデータの入出力を行う。
記憶部27は不揮発性メモリであり、推論モデル用パラメータ271、推論モデル121、許可フラグ272、及び固有ID273を記憶している。推論モデル用パラメータ271は、後述するように、デバイス本体10が推論モデル121を展開するために必要なパラメータである。推論モデル121は、デバイス本体10の記憶部12に記憶してあるモデルデータと同じデータであり、機械学習により生成された学習済みモデルのデータである。許可フラグ272は、自装置(デバイス1)での推論処理の実行が許可又は禁止されていることを示す許否情報であり、後述するように、サーバ3からの指示に従って設定される。固有ID273は、セキュアエレメント20に固有の個体識別情報であり、例えばセキュアエレメント20の製造番号等である。
サーバ3は、制御部31、主記憶部32、通信部33、及び補助記憶部34を備える。
制御部31は、一又は複数のCPU、MPU等の演算装置を備え、サーバ3に係る種々の情報処理、制御処理を行う。主記憶部32は、RAM等の揮発性メモリであり、制御部31が処理を実行する上で必要なデータを一時的に記憶する。通信部33は、通信に関する処理を行う処理回路等を有し、ネットワークNを介してデバイス1等と通信を行う。
補助記憶部34は、大容量メモリ、ハードディスク等であり、サーバ3が処理を行うために必要なプログラムP2、その他のデータを記憶している。また、補助記憶部34は、最新モデル用パラメータ341及び動作管理DB342を記憶している。最新モデル用パラメータ341は、デバイス1に配信する最新の推論モデル121のデータであり、デバイス1が推論モデル121を展開する上で必要なパラメータである。動作管理DB342は、デバイス1の動作状況を管理するデータベースである。
なお、補助記憶部34はサーバ3に接続された外部記憶装置であってもよい。また、サーバ3は複数のコンピュータからなるマルチサーバであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
図2は、動作管理DB342のレコードレイアウトの一例を示す説明図である。動作管理DB342は、ID列、実行回数列、実行日時列、実行許可列、種別列、バージョン列を含む。ID列は、各デバイス1(セキュアエレメント20)の識別情報である固有ID273を記憶している。実行回数列は、固有ID273と対応付けて、各デバイス1で推論処理を実行した実行回数を記憶している。実行日時列は、固有ID273と対応付けて、各デバイス1で推論処理を実行した日時を記憶している。実行許可列は、固有ID273と対応付けて、各デバイス1において推論処理を許可又は禁止していることを示す許否情報を記憶している。種別列は、固有ID273と対応付けて、各デバイス1に適用(インストール)してある推論モデル121の種別を記憶している。バージョン列は、固有ID273と対応付けて、各デバイス1に適用してある推論モデル121のバージョン情報を記憶している。
図3は、推論モデル121の展開処理を説明するための説明図である。図3では、デバイス本体10がセキュアエレメント20から推論モデル用パラメータ271を読み出し、当該パラメータに基づいて推論モデル121をメモリ上に展開する様子を概念的に図示している。
上述の如く、セキュアエレメント20は記憶部27に、機械学習により生成された推論モデル121を展開するための推論モデル用パラメータ271を記憶している。本実施の形態において推論モデル121は、ディープラーニングにより生成されたニューラルネットワークであるものとして説明する。なお、機械学習のアルゴリズムはディープラーニングに限定されるものではなく、例えば回帰法、決定木学習、ベイズ法、クラスタリング等であってもよく、また、推論モデル121はニューラルネットワークに限定されるものではなく、線形モデル、決定木、ベイジアンネットワーク等であってもよい。
例えばサーバ3は、定期的に推論モデル121のアップデート(学習)を行い、最新モデル用パラメータ341をデバイス1に配信する。デバイス1は、サーバ3から配信された最新モデル用パラメータ341を、推論モデル用パラメータ271としてセキュアエレメント20に格納しておく。なお、機械学習は、パラメータの配信元であるサーバ3が主体となって行うものでもよく、他のコンピュータが機械学習を行って学習結果をサーバ3に保存しておいてもよい。
推論モデル用パラメータ271は、ハイパーパラメータ271aと、学習パラメータ271bと、バージョン情報271cとから成るデータ群である。ハイパーパラメータ271aは、コンピュータに機械学習を行わせるために手動設定される設定値であり、推論モデル121の基本構造を一意に特定可能なパラメータである。例えば推論モデル121がニューラルネットワークである場合、ハイパーパラメータ271aは、各ニューロン層に入力される入力数、各ニューロン層から出力される出力数、ニューロン間の層間結合、各ニューロンの演算処理に用いられる活性化関数等を指し示す情報である。
学習パラメータ271bは、ハイパーパラメータ271aで規定されるネットワーク構造の下、機械学習によりコンピュータが学習した学習値である。例えば推論モデル121がニューラルネットワークである場合、学習パラメータ271bは、各ニューロンの重み付け係数、バイアス値等のパラメータである。サーバ3は、正解値付きの教師データの入力を受け、各ニューロンに適用する学習パラメータ271bを学習する。
なお、機械学習は教師なし学習、半教師学習等であってもよい。また、機械学習は強化学習であってもよく、この場合、推論モデル用パラメータ271はQ値(Q(s,a);sは状態、aは行動)であってもよい。
バージョン情報271cは、推論モデル121のバージョン数を表す情報である。上述の如く、サーバ3は定期的に推論モデル121をアップデートし、最新モデル用パラメータ341を配信する。バージョン情報271cは、当該アップデートによるバージョン数を表す。
図3において符号P1~P8で示す処理プロセスについて、順に説明する。なお、初期段階でデバイス本体10には推論モデル121が未展開であるものとする。
例えばデバイス1の起動時、又は推論を伴うアプリケーションの動作開始時等に、デバイス本体10の制御部11は、セキュアエレメント20に対して推論モデル用パラメータ271の読み出しを要求する(P1)。
読出要求を受け付けた場合、セキュアエレメント20の読出部21はまず、当該読出要求が正当なものであるか否か、運用者認証を行う。読出部21は認証部22に対し、運用者(デバイス1のユーザ等)の認証に必要な認証情報を確認するよう要求する(P2)。当該要求を受け付けた場合、認証部22はデバイス本体10に対し、認証情報の出力を要求する(P3)。
認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、セキュアエレメント20に対して認証情報を出力する(P4)。認証情報は例えば、入力部15を介して入力されるPIN(Personal Identification Number)コード、パスワード、生体情報等である。なお、認証情報はこれらに限定されるものではなく、運用者の正当性を適切に確認することができればよい。認証部22は、デバイス本体10から取得した認証情報を、セキュアエレメント20で事前に保持してある認証情報(不図示)と照合し、認証を行う。
認証に失敗した場合、セキュアエレメント20は推論モデル用パラメータ271を出力せず、一連の処理を終了する。認証に成功した場合、認証部22は認証が完了した旨をセキュアエレメント20内に保持すると共に、認証が完了した旨をデバイス本体10に通知する。
認証完了の通知を受けた場合、デバイス本体10の制御部11は再度、パラメータの読出要求を行う(P5)。読出要求を受け付けた場合、セキュアエレメント20の読出部21は、記憶部27から推論モデル用パラメータ271を読み出す(P6)。読出部21は、読み出したパラメータをデバイス本体10に出力する(P7)。
デバイス本体10の制御部11は、セキュアエレメント20から取得したパラメータに基づき、推論モデル121をメモリ上に展開する(P8)。具体的には以下に説明するように、制御部11は、推論モデル用パラメータ271のうち、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定し、基本構造を決定したニューラルネットワークの各ニューロンに対して学習パラメータ271bを適用することで、推論モデル121を展開する。
図4は、推論モデル121の基本構造の一例を示す説明図である。図4では、ハイパーパラメータ271aに基づいてニューラルネットワークの基本構造を決定する様子を概念的に図示している。ハイパーパラメータ271aは、各ニューロン層の入力数、出力数、層間結合等を規定するデータであり、ニューロン層毎に構造を一意に特定可能なように規定されている。
図4の例では、第0層(入力層)の入力数は「3」に規定されているため、デバイス本体10の制御部11は、入力値x0~x2を想定する。また、第0層の出力数は「3」であるため、制御部11は、ニューロンを3つ配置する。また、層間結合は「全結合」であるため、制御部11は、第0層の全てのニューロンの出力値を、次の層(第1層)の全てのニューロンに対して入力する。さらに、第0層の活性化関数はReLU(Rectified Linear Unit)で定義されているため、制御部11は、第0層の各ニューロンにおいて、ReLU関数を用いて出力値を演算する。
以下同様にして、制御部11は、各ニューロン層における構造を決定する。これによって制御部11は、図4に示すように、入力から出力に至るニューラルネットワークの基本構造を決定する。
図5は、学習パラメータ271bの適用処理に関する説明図である。図5では、図4で示したニューラルネットワークの基本構造に対し、機械学習結果に応じた学習パラメータ271bを適用する様子を図示している。
例えばセキュアエレメント20には、ハイパーパラメータ271aで規定する第0~3層のニューロン層に対応して、各ニューロン層に適用する学習パラメータ271bが保持されている。具体的には、セキュアエレメント20は各ニューロンに対して適用する重み付け係数、バイアス値等のパラメータを格納しており、制御部11は、当該パラメータを各々のニューロンに対して適用する。
図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、…として設定する。
また、図3、図5の表における「bias」は、各ニューロンにおいて、重み付け係数を乗算後の入力値に対して加えるバイアス値を示す。例えば第0層におけるバイアス値は全て0.6である。従って、制御部11は、バイアス値0.6を第0層の各ニューロンに対して設定する。
以下同様にして、制御部11は第1~3層のニューロン層についても、重み付け係数及びバイアス値を設定する。これによって制御部11は、学習パラメータをネットワーク全体に展開し、最初の入力値x0~x2から最終的な出力値y0~y2を演算するニューラルネットワークを生成する。
デバイス本体10は、上記のようにして展開した推論モデル121(ニューラルネットワーク)を利用して、所定の推論処理を行う。詳細な図示及び説明は省略するが、例えばデバイス1が監視カメラである場合、デバイス本体10は、撮像部16で撮像した画像を入力データとして取得し、当該入力データを推論モデル121に入力して、画像内に含まれる物体を推定(推論)する処理を行う。デバイス本体10は、撮像画像の各画素の色度、輝度等の値を入力値として推論モデル121に入力し、出力値を演算する。例えば出力値は、画像内に含まれる物体が、機械学習時にその特徴量を学習した特定の物体である確率を示す値である。デバイス本体10は、当該出力値を、サーバ3やその他の装置に出力する。例えば画像から不審物を特定した場合、デバイス本体10は、不審物を発見した旨を報知する。
なお、上記でデバイス1は、セキュアエレメント20からハイパーパラメータ271a及び学習パラメータ271bの両方を読み出して推論モデル121を展開しているが、本実施の形態はこれに限定されるものではない。例えばデバイス1は、ハイパーパラメータ271aはデバイス本体10に保持しておき、学習パラメータ271bはセキュアエレメント20に格納しておいて、デバイス本体10がセキュアエレメント20から学習パラメータ271bのみを読み出して推論モデル121を展開するようにしてもよい。このように、推論モデル用パラメータ271の一部のみをセキュアエレメント20で保存するようにしてもよい。
上記のようにデバイス1は、デバイス本体10とは物理的又は論理的に分離されたセキュアエレメント20に推論モデル用パラメータ271を格納しておき、セキュアエレメント20から推論モデル用パラメータ271を読み出して推論モデル121を展開する。デバイス本体10よりセキュアなコンポーネントに推論モデル用パラメータ271を保持しておくことで、第三者による推論モデル121の盗難、模倣等の可能性を低減することができる。
しかしながら、以下で述べる理由により、推論モデル121自体のデータを保護するだけでは安全性を損なう虞がある。
図6は、教師モデルを用いた生徒モデルの生成に関する説明図である。図6を用いて、蒸留と呼ばれる学習済みモデルの生成アルゴリズムについて説明する。
蒸留とは、既存の学習済みモデル(図6の例ではニューラルネットワーク)の出力を、より小規模な他のモデルに対する教師データとすることで、学習済みモデルの規模を縮小しつつ、同等の推論を行うことが可能な生徒モデルを生成する手法である。
図6上側では、一般的なディープラーニングの手法を概念的に図示する。一般的な学習手法では、入力値に対して正解値(ラベル)が付加された教師データをニューラルネットワークに与え、ニューラルネットワークの出力値が正解値に近づくように重み付け係数、バイアス値等を調整(学習)する。例えば画像認識のための学習モデルを想定した場合、入力画像に映っている物体が特定の物体であるかどうか(例えば犬か猫か)を表現する出力値y0、y1の正解値を与える。教師データでは、ある入力画像が犬であるか、又は猫であるかが予め規定されるため、正解値は0又は1の値で与えられる。一方で、入力値から演算されるニューラルネットワークの出力値は、確率で表現された0~1の値となる。教師データを得たコンピュータは、0~1の確率値で演算される出力値y0、y1が、正解値である0又は1に近づくように重み付け係数、バイアス値等(図6では下線付きの三点リーダで図示)を学習する。
一方で、蒸留による学習手法では、学習済みのニューラルネットワークを教師モデルとし、教師モデルの入出力値を教師データとして利用して、当該教師データを、教師モデルよりも小規模な生徒モデルに学習させる。図6下側に、蒸留による学習手法を概念的に図示する。図6に示す例では、生徒モデルは教師モデルよりもニューロン層の数が少なくなっている。
当該生徒モデルに対し、教師モデルで推論処理を実行した際の入出力値を与える。ここで、出力値y0、y1の正解値として、犬か猫かの推論結果を示す0又は1の二値ではなく、教師モデルから出力された確率値を用いる点が、一般的な学習手法と相違する。例えば図6下側の表に示すように、生徒モデルには出力値y0、y1の正解値として、0~1の確率値が与えられる。
蒸留では、上記のように確率で表現された教師モデルの出力値を正解値として用い、生徒モデルの出力値との差異が最小化するように、重み付け係数、バイアス値等を調整する。これにより、教師モデルよりも演算工数を削減しながらも、同等の推論を行うことが可能な学習済みモデルが生成される。
蒸留のアルゴリズムによれば、教師データとして教師モデルの入出力値のみを用いており、教師モデルの基本構造を規定するハイパーパラメータ271a、又は教師モデルの学習パラメータ271bを参照していない。従って、本実施の形態のように推論モデル用パラメータ271をブラックボックス化しても、デバイス本体10から推論処理実行時の入出力値を搾取することにより、推論モデル121を模倣される虞がある。
そこで本実施の形態に係るデバイス1は、推論処理の一部をデバイス本体10ではなくセキュアエレメント20で実行することで、上記の問題を解決する。
図7は、推論処理を説明するための説明図である。図8は、デバイス本体10及びセキュアエレメント20がそれぞれ行う演算内容について説明するための説明図である。図7では、デバイス本体10が推論モデル121の一部の演算を実行して演算結果をセキュアエレメント20に出力し、セキュアエレメント20が推論モデル121の残りの部分の演算を実行して、最終的な推論結果をデバイス本体10へ返送する様子を概念的に図示している。図8では、図7を用いて説明する演算処理の具体例を図示している。
図7において符号P21~P42で示す処理プロセスについて、図8も用いながら順に説明する。なお、図7では便宜上、デバイス本体10の入出力I/F13、及びセキュアエレメント20の入出力I/F26を点線の矩形枠で図示している。
まずデバイス本体10の制御部11は、推論対象である入力データを推論モデル121に入力し、推論モデル121の一部の演算を実行する(P21)。例えば推論モデル121がニューラルネットワークである場合、推論モデル121は複数のニューロン層、つまり複数の演算要素を有する。制御部11は、推論モデル121を構成する複数の演算要素のうち、入力層を含む前段要素の演算を行う。
図8の例では、デバイス本体10が、第0~3層から成るニューラルネットワークにおいて、入力層である第0層と、次の第1層の演算を行っている。デバイス本体10は入力データに係る入力値x0~x2(例えば入力画像の画素値)を第0層に入力し、第0層、第1層の演算を行って、第1層までの演算結果、つまり前段要素の演算結果を得る。
前段要素の演算が完了した場合、デバイス本体10の制御部11は、前段要素の演算結果をセキュアエレメント20に出力し、前段要素を除く推論モデル121の後段要素の演算をセキュアエレメント20に要求する(P22)。具体的には、制御部11は、前段要素の演算結果と共に、セキュアエレメント20に演算させる後段要素を指定する指定情報を出力し、演算を要求する。指定情報は、自身が演算すべき要素をセキュアエレメント20が特定可能な情報であり、例えばニューラルネットワークである場合、演算すべきニューロン層の層番号を示す情報である。
図8の例では、デバイス本体10は、第1層までの演算結果を入力値としてセキュアエレメント20に入力し、推論モデル121の後段要素である第2層、第3層の演算をセキュアエレメント20に要求する。デバイス本体10は、演算すべきニューロン層をセキュアエレメント20が判別可能なように、演算処理の開始層の層番号である「2」と、終了層の層番号である「3」とを併せて通知し、具体的に演算を指示する。
デバイス本体10から演算要求を受け付けた場合、まずセキュアエレメント20の認証部22が運用者認証を行い、正当な運用者からの演算要求であるか否かを確認する(P23)。具体的には推論モデル121の展開時と同様に、認証部22はデバイス本体10からPINコード、パスワード等の認証情報を取得し、認証情報に基づいて運用者の認証を行う。認証に失敗した場合、認証部22は認証に失敗した旨をデバイス本体10に通知し、推論処理を停止させる。なお、例えばすでに運用者認証が行われている場合は、当該認証処理をスキップしてもよい。認証に成功した場合、認証部22は、デバイス本体10から取得した前段要素の演算結果及び後段要素の指定情報を演算部23に受け渡し、演算を要求する(P24)。
認証部22から演算要求を受け付けた場合、演算部23はまず、カウンタ24に推論処理(演算処理)の実行回数をカウントさせ、推論実行回数が一定回数に達しているか否かを確認する(P25)。例えばカウンタ24は、推論実行回数の制限回数を保持しており、デバイス本体10から演算要求を受け付ける毎に残回数をデクリメントする。推論実行回数の制限回数は、各デバイス1のセキュアエレメント20毎に異なる。後述するように、サーバ3は各デバイス1のセキュアエレメント20に対して個別に制限回数を付与し、動作管理DB342上で各デバイス1の推論実行回数を一元的に管理する。カウンタ24は、残回数が0になったか否かをチェックすることで、サーバ3から付与された制限回数に至ったか否かを確認する。実行回数が一定回数に達した場合、演算部23は演算処理を実行せず、実行回数が一定回数に達した旨をデバイス本体10に通知して、推論処理を停止させる。これにより、外部からの不正アクセスにより推論処理が実行され、入出力値が大量に搾取される事態を防ぐことができる。
実行回数が一定回数に達していない場合、演算部23は、許可フラグ272を参照して、推論処理が許可されているか否かを確認する(P26)。上述の如く、許可フラグ272は推論処理の許可又は禁止を表す許否情報である。例えば許可フラグ272は、推論実行回数と同様にサーバ3が動作管理DB342上で管理しており、セキュアエレメント20は、サーバ3からの指示に従って許可フラグ272を「許可」又は「禁止」に設定する。許可フラグ272が「禁止」である場合、演算部23は演算を行わず、推論処理が禁止されている旨をデバイス本体10に通知して処理を停止させる。
許可フラグ272が「許可」である場合、演算部23は、記憶部27に保持してある推論モデル121のデータを参照して、デバイス本体10から要求された後段要素の演算処理を実行する(P27)。例えば推論モデル121がニューラルネットワークである場合、演算部23は、推論モデル121を構成する複数の演算要素(ニューロン層)のうち、出力層を含む後段要素の演算を行う。
図8の例では、セキュアエレメント20が、第0~3層のうち、第2層と、出力層である第3層との演算を行う様子を図示している。セキュアエレメント20は、デバイス本体10から指定された演算処理の開始層である第2層に、デバイス本体10で演算された第1層の演算結果を入力する。セキュアエレメント20は、第2層、第3層の演算を実行し、出力値y0、y1、y2を得る。このように、本実施の形態ではセキュアエレメント20が推論モデル121の後段要素の演算を行い、推論結果に相当する出力値y0、y1、y2を計算する。
演算部23は、後段要素の演算結果をデバイス本体10に出力する(P28)。ここで演算部23は、確率で表現された推論モデル121の出力値をそのままデバイス本体10に出力することなく、確率値を0又は1の二値に変換する端数処理を行い、変換後の値をデバイス本体10に出力する。
例えば図8に示すように、推論モデル121を構成する演算要素として、0~1で表現された確率値を0又は1の二値に変換する変換層を用意しておく。セキュアエレメント20は、出力層(第3層)から出力された出力値y0、y1、y2を当該変換層に入力する。セキュアエレメント20は、変換層において出力値y0、y1、y2を端数処理し、0又は1の値を出力する。
上記のように、セキュアエレメント20は推論モデル121の出力値を確率値で出力することなく、0又は1の二値に表現し直して出力する。従って、デバイス本体10から出力値が搾取された場合であっても、確率で表現されていないため、推論モデル121の模倣が困難になる。
セキュアエレメント20から後段要素の演算結果を取得した場合、デバイス本体10の制御部11は、取得した演算結果を用いて、一連の推論処理に係る推論結果を出力する。例えばデバイス1が監視カメラである場合、制御部11は、入力画像に含まれる物体を推論した推論結果を外部に出力する。このように、デバイス本体10はセキュアエレメント20での演算結果を推論結果に用いることで、推論モデル121の模倣を困難にする。
さらに本実施の形態では、推論処理の実行後、推論処理を実行した旨をセキュアエレメント20がサーバ3に通知(報告)することで、サーバ3が各デバイス1における推論処理の実行回数を管理する。まずセキュアエレメント20のカウンタ24が、カウントした推論実行回数を通信路開設部25に受け渡す(P29)。そして通信路開設部25が、デバイス1とサーバ3との間で、エンドツーエンドの秘匿通信路41を開設する(P30)。
秘匿通信路41は、例えばTLS(Transport Layer Security)のプロトコルで通信内容を暗号化した通信路である。通信路開設部25は、デバイス本体10におけるネットワークNとの通信インターフェイスである通信部14を経由して、サーバ3との間の秘匿通信路41を開設する。
なお、秘匿通信路41は通信内容を秘匿可能であればよく、例えばSSL(Secure Sockets Layer)等のプロトコルを採用してもよい。また、上記ではデバイス本体10の物理的な通信手段(通信部14)を経由して秘匿通信路41を確立しているが、セキュアエレメント20がサーバ3との間で秘匿通信路41を開設可能であればよく、セキュアエレメント20自体が物理的な通信手段(LAN、Wi-Fi(登録商標)等)を有する場合、セキュアエレメント20はサーバ3との間で秘匿通信路41を直接確立してもよい。
通信路開設部25は秘匿通信路41を介して、現在までカウントした推論実行回数をサーバ3に通知する(P41)。具体的には、通信路開設部25は、セキュアエレメント20の個体識別情報である固有ID273と、カウンタ24の現在の値(残回数)とを、推論処理を実行する現在の実行日時と共にサーバ3に通知する。サーバ3の制御部31は、通知された推論実行回数を動作管理DB342に記憶する(P42)。具体的には、制御部31は、セキュアエレメント20から通知された固有ID273と対応付けて、通知された推論処理の残回数と、実行日時とを動作管理DB342に記憶する。
上記のように、セキュアエレメント20は推論実行回数をサーバ3へ通知し、サーバ3が各デバイス1(セキュアエレメント20)の実行回数を管理する。これにより、各デバイス1での推論実行回数が一元管理される。
図9は、推論実行回数及び許否情報の更新処理に関する説明図である。既に触れたように、本実施の形態ではサーバ3が各デバイス1における推論処理の実行回数、及び推論処理の許否情報を管理する。ここでは図9を用いて、推論実行回数及び許否情報の具体的な管理手法の一つとして、サーバ3が各デバイス1と通信を行い、セキュアエレメント20に保持してある推論実行回数及び許否情報を更新する処理について説明する。なお、図9では図示の便宜のため、デバイス本体10の通信部14、及びサーバ3の通信部33を点線の矩形枠で図示している。
例えばサーバ3は、本システムの管理者が、動作管理DB342において各デバイス1の固有ID273に紐付く推論実行回数及び許否情報を更新した場合、更新内容を各デバイス1に通知し、セキュアエレメント20に保持してある推論実行回数及び許否情報を更新させる。
例えばサーバ3は、バッチ処理により動作管理DB342を参照して、推論実行回数又は許否情報が変更されたデバイス1があるか否かを確認する(P41)。推論実行回数又は許否情報が変更されたデバイス1がある場合、サーバ3は、当該デバイス1の固有ID273を特定する。
サーバ3は、特定した固有ID273のデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(P42)。そしてサーバ3は、秘匿通信路41を介して、推論実行回数又は許否情報に関する更新内容をセキュアエレメント20に送信する(P43)。
サーバ3から更新内容を受信した場合、セキュアエレメント20の通信路開設部25は、更新内容をセキュアエレメント20内に格納し、推論実行回数又は許否情報を更新する(P44)。例えば図9に図示するように、通信路開設部25は、カウンタ24が保持する推論処理の残回数、又は記憶部27に保持してある許可フラグ272の値を、サーバ3から受信した値に上書きする。
上記のように、セキュアエレメント20は、動作管理DB342に設定されている推論実行回数及び許否情報と、自身が保持している推論実行回数及び許否情報とを同期する。セキュアエレメント20は、上記のようにしてサーバ3から指示された推論実行回数及び許否情報に従って推論処理の可否を判断する。これにより、サーバ3からのセキュアエレメント20の遠隔制御が可能となる。
なお、上記では管理者による手動設定に従って推論実行回数及び許否情報を更新することにしたが、本実施の形態はこれに限定されるものではない。例えばサーバ3は、セキュアエレメント20からの通知により残回数が0となった場合、セキュアエレメント20と通信を行い、残回数を所定のデフォルト値に自動的にリセットさせることにしてもよい。このように、セキュアエレメント20が保持する推論実行回数及び許否情報をサーバ3が遠隔制御することができればよく、更新のタイミングや処理内容は特に限定されない。
図10は、推論モデル121の展開処理の処理手順の一例を示すフローチャートである。図10に基づき、推論モデル121の展開処理の処理内容について説明する。
例えばデバイス1は、自装置の起動時、又は推論処理を伴うアプリケーションの起動時等、所定のタイミングで以下の処理を実行する。デバイス本体10の制御部11は、推論モデル121を展開するために必要なパラメータを保持するセキュアエレメント20に対し、当該パラメータの読み出しを要求する(ステップS11)。上述の如く、セキュアエレメント20は耐タンパ性を有するチップであり、デバイス本体10とは物理的に分離され、推論モデル用のパラメータを安全に保持する。
デバイス本体10からパラメータの読出要求を受け付けた場合、セキュアエレメント20は、デバイス本体10に対し、運用者認証に必要な認証情報の出力を要求する(ステップS12)。認証情報の出力要求を受け付けた場合、デバイス本体10の制御部11は、入力部15を介して認証情報の入力を受け付け、セキュアエレメント20に出力する(ステップS13)。認証情報は、例えばPINコード、パスワード、生体情報等であるが、運用者の正当性を適切に確認可能な情報であればよい。
セキュアエレメント20は、認証情報に基づく運用者認証を行う(ステップS14)。セキュアエレメント20は、運用者認証が成功したか否かを判定する(ステップS15)。認証に失敗した場合(S15:NO)、セキュアエレメント20はパラメータの読み出しを行わず、一連の処理を終了する。認証が成功した場合(S15:YES)、セキュアエレメント20は推論モデル用パラメータ271を記憶部27から読み出す(ステップS16)。例えば推論モデル121がディープラーニングにより生成されるニューラルネットワークである場合、セキュアエレメント20は、ニューラルネットワークの基本構造を規定するハイパーパラメータ271aと、各ニューロン層に適用する学習パラメータ271bとを読み出す。セキュアエレメント20は、読み出したパラメータをデバイス本体10に出力する(ステップS17)。
セキュアエレメント20からパラメータの出力を受けた場合、デバイス本体10の制御部11は、当該パラメータに基づき、推論モデル121を記憶部12に展開する(ステップS18)。具体的には、制御部11はハイパーパラメータ271aに従ってニューラルネットワークの基本構造を決定し、決定した基本構造のニューラルネットワークの各ニューロンに学習パラメータ271bを適用することで、推論モデル121を展開する。制御部11は、一連の処理を終了する。
図11は、推論処理の処理手順の一例を示すフローチャートである。図11に基づき、推論モデル121に基づく推論処理の処理内容について説明する。
デバイス本体10の制御部11は、推論モデル121に入力する入力データを取得する(ステップS31)。例えばデバイス1が監視カメラである場合、制御部11は、撮像部16で撮像された画像データを取得する。制御部11は、推論モデル121を構成する前段要素の演算処理を実行する(ステップS32)。例えば推論モデル121がニューラルネットワークである場合、制御部11は、ニューラルネットワークの入力層を含む一又は複数のニューロン層の演算を実行する。
制御部11は、前段要素の演算結果を出力し、前段要素とは異なる推論モデル121の後段要素の演算処理をセキュアエレメント20に要求する(ステップS33)。具体的には、制御部11は、デバイス本体10で演算した前段要素の演算結果と共に、セキュアエレメント20が演算すべき演算要素を指定する情報(例えばニューロン層の層番号等)をセキュアエレメント20に出力する。
デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、真正の運用者による演算要求であるか否かを確認する認証処理を行う(ステップS34)。例えばセキュアエレメント20は、PIN情報、パスワード等の認証情報をデバイス本体10に問い合わせ、デバイス本体10は認証情報を返信する。セキュアエレメント20は、当該認証情報に基づいて認証処理を行う。
セキュアエレメント20は、認証が成功したか否かを判定する(ステップS35)。認証が成功したと判定した場合(S35:YES)、セキュアエレメント20は、デバイス1における推論処理(演算処理)の実行回数をカウントする(ステップS36)。セキュアエレメント20は、カウントした実行回数が一定回数に達したか否かを判定する(ステップS37)。判定基準とする回数は、デバイス1に許可されている推論処理の制限回数であり、サーバ3がデバイス1(セキュアエレメント20)毎に制限回数を管理している。
実行回数が一定回数に達していないと判定した場合(S37:NO)、セキュアエレメント20は許可フラグ272を確認し、推論モデル121に基づく推論処理(演算処理)が許可されているか否かを判定する(ステップS38)。許可フラグ272は、デバイス1での推論処理が許可又は禁止されていることを示す許否情報であり、推論実行回数と同じく、サーバ3がデバイス1毎に許可又は禁止を管理している。
認証に成功しなかったと判定した場合(S35:NO)、実行回数が一定回数に達したと判定した場合(S37:YES)、又は推論処理が許可されていないと判定した場合(S38:NO)、セキュアエレメント20は、要求された演算処理の実行を拒否する旨をデバイス本体10に通知する(ステップS39)。セキュアエレメント20から演算拒否の通知を取得した場合、デバイス本体10の制御部11は推論処理を停止し(ステップS40)、一連の処理を終了する。
推論処理が許可されていると判定した場合(S38:YES)、セキュアエレメント20は、デバイス本体10から要求された後段要素の演算処理を実行する(ステップS41)。例えば推論モデル121がニューラルネットワークである場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層に対し、デバイス本体10から取得した前段要素の演算結果を入力値として入力する。デバイス本体10から指定されるニューロン層は、ニューラルネットワークを構成する一又は複数のニューロン層であり、出力層を含むニューロン層である。セキュアエレメント20は、出力層に至るまで各ニューロンの演算を行い、最終的な出力値を演算する。
セキュアエレメント20は、ステップS41における演算結果(出力値)の端数処理を行い、演算結果を変換する(ステップS42)。セキュアエレメント20は、変換後の演算結果をデバイス本体10に出力する(ステップS43)。セキュアエレメント20から演算結果を取得した場合、デバイス本体10の制御部11は、当該演算結果を用いて最終的な推論結果(演算結果)を出力し(ステップS44)、一連の処理を終了する。
ステップS43の処理を実行後、セキュアエレメント20は、サーバ3との間で通信内容を暗号化した秘匿通信路41を開設する(ステップS45)。セキュアエレメント20は当該秘匿通信路41を介して、ステップS36でカウントした推論実行回数をサーバ3に通知する(ステップS46)。具体的には、セキュアエレメント20は、カウントした推論実行回数と共に、セキュアエレメント20の固有ID273、及び推論処理の実行日時をサーバ3に通知する。セキュアエレメント20から推論実行回数の通知を取得した場合、サーバ3の制御部31は、デバイス1(セキュアエレメント20)の固有ID273と対応付けて、通知された推論実行回数、及び実行日時を動作管理DB342に記憶する(ステップS47)。制御部31は、一連の処理を終了する。
図12は、推論実行回数及び許否情報の更新処理の処理手順の一例を示すフローチャートである。図12に基づき、サーバ3が、個々のデバイス1のセキュアエレメント20に保持されている推論実行回数のカウント値、及び許否情報を更新する処理について説明する。
例えばサーバ3は、バッチ処理により一連の処理をスタートする。サーバ3の制御部31は、動作管理DB342を確認し、推論実行回数又は許否情報が更新されているデバイス1があるか否かを判定する(ステップS71)。上述の如く、動作管理DB342には、個々のデバイス1の固有ID273と対応付けて、各デバイス1の推論実行回数、及び推論処理の許可又は禁止を表す許否情報を記憶している。例えばサーバ3は、本システムの管理者から各データの更新入力を受け付け、動作管理DB342に更新値を記憶しておく。制御部31は、バッチ処理で動作管理DB342を参照し、更新を検知する。
更新されているデバイス1がないと判定した場合、(S71:NO)、制御部31は特段の処理を行うことなく一連の処理を終了する。更新されているデバイス1があると判定した場合、制御部31は、推論実行回数又は許否情報が更新されているデバイス1の固有ID273を特定する(ステップS72)。
制御部31は、当該固有ID273が示すデバイス1のセキュアエレメント20との間で、秘匿通信路41を開設する(ステップS73)。制御部31は、開設した秘匿通信路41を介して、更新後の実行回数又は許否情報をセキュアエレメント20に送信する(ステップS74)。
サーバ3から実行回数又は許否情報を受信した場合、デバイス1のセキュアエレメント20は、自身が保持してある実行回数又は許否情報を、受信した実行回数又は許否情報に更新する(ステップS75)。セキュアエレメント20は、一連の処理を終了する。
なお、上記でセキュアエレメント20は、推論処理の実行直後に実行回数をサーバ3へ通知しているが、通知のタイミングは実行直後に限定されず、別途独立して行ってもよい。また、セキュアエレメント20は推論実行回数のカウント値(残回数)を通知しているが、実行した旨を示す事実のみを通知し、サーバ3が実行回数を別途カウントしてもよい。また、上記ではセキュアエレメント20から通知された実行日時を動作管理DB342に保存しているが、実行回数の通知を受けた際にサーバ3がタイムスタンプを付し、これを動作管理DB342に保存してもよい。つまり、セキュアエレメント20からの実行日時の送信は必須ではない。
また、上記ではデバイス本体10が推論モデル121の前段要素を、セキュアエレメント20が後段要素の演算を担当しているが、どちらの処理主体がどの演算要素を演算するかは任意の設計事項であり、特に限定されない。後述するように、実施の形態によってはすべての演算をセキュアエレメント20に指示する設計も想定され得る。また、デバイス本体10及びセキュアエレメント20は、それぞれ推論モデル121の一部のみ演算を行うため、少なくとも自身が演算を行う推論モデル121の一部分のデータを保持してあればよく、完全な推論モデル121のデータを保持していなくともよい。また、上記ではセキュアエレメント20が演算する演算要素をデバイス本体10が指定しているが、例えば各々が担当する演算要素を予め固定化しておいてもよく、この場合、デバイス本体10は、演算要素を指定する指定情報(例えばニューロン層の層番号)をセキュアエレメント20に出力する必要はない。つまり、デバイス本体10は少なくとも自身で演算した演算結果、または制御部11から受け取った入力データをセキュアエレメント20に入力し、演算処理を要求することができればよい。
以上より、本実施の形態1によれば、デバイス1は、推論モデル121の一部の演算要素の演算をデバイス本体10よりも安全なセキュアエレメント20で実行する。これにより、デバイス1は、機械学習結果に基づく処理を安全に実行することができる。
また、本実施の形態1によれば、デバイス1は、推論モデル121の前段要素の演算をデバイス本体10で実行し、最終的な出力値を得る後段要素の演算を、セキュアエレメント20で実行する。これにより、上記で説明した蒸留の問題に対して適切な対策が取られ、安全性を高めることができる。
また、本実施の形態1によれば、セキュアエレメント20は、確率で表現された出力値の端数処理を行い、変換後の出力値をデバイス本体10に返送する。これにより、たとえデバイス本体10から出力値が搾取された場合であっても、蒸留のために必要な確率値を搾取されることは避けることができ、安全性をより高めることができる。
また、本実施の形態1によれば、セキュアエレメント20は運用者認証を行い、認証に成功した場合にのみ演算処理を実行する。これにより、安全性をさらに高めることができる。
また、本実施の形態1によれば、推論処理(演算処理)の実行回数が一定回数に至った場合に演算処理を制限することで、外部からの不正操作による演算処理の過剰な実行を防止し、安全性を高めることができる。
また、本実施の形態1によれば、カウントした推論実行回数、又は推論処理を実行した旨をサーバ3へ通知することで、サーバ3において各デバイス1での推論実行回数を一元管理することができる。
また、本実施の形態1によれば、単に実行回数を通知するだけでなく、実行日時を併せて通知することで、サーバ3においてデバイス1の動作状況を実行履歴として適切に管理することができる。
また、本実施の形態1によれば、セキュアエレメント20がカウントしている推論実行回数をサーバ3から更新することで、デバイス1における推論処理の遠隔制御が可能となる。
また、本実施の形態1によれば、安全性が高いセキュアエレメント20に許否情報(許可フラグ272)を保持し、当該許否情報に従って推論の可否を判断することで、外部から不正操作が行われる事態に適切に対応することができる。
また、本実施の形態1によれば、セキュアエレメント20が保持する許否情報を、サーバ3の指示に従って設定させることで、サーバ3からデバイス1(セキュアエレメント20)の遠隔制御が可能となる。
また、本実施の形態1によれば、サーバ3とセキュアエレメント20との間の通信を、秘匿通信路41を介して行うことで、実行回数、許否情報等の送受信を安全に行うことができ、通信伝送路上で命令や通知が改竄される事態を防止することができる。
(実施の形態2)
実施の形態1では、デバイス1内のセキュアエレメント20において推論モデル121の一部の演算処理を実行する形態について述べた。本実施の形態では、デバイス1外部のサーバ3が、セキュアエレメント20が実行すべき演算処理の一部を行う形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
図13は、実施の形態2に係る推論処理に関する説明図である。図13に基づき、本実施の形態に係る推論処理の処理プロセスについて説明する。なお、符号P21~P26に示す処理プロセスは実施の形態1と同様であるため、ここでは同一の符号を付し、説明を省略する。本実施の形態では、符号P41~P49に示す処理プロセスについて順に説明する。
推論実行回数及び許可フラグ272を確認した後(P25、P26)、セキュアエレメント20の演算部23は、デバイス本体10から演算を要求された推論モデル121の演算要素のうち、一部の演算要素について演算処理を実行する(P41)。例えば推論モデル121がニューラルネットワークである場合、演算部23は、デバイス本体10から指定された複数のニューロン層のうち、少なくとも出力層を除く、一部のニューロン層についてのみ演算を実行する。
図14は、デバイス本体10、セキュアエレメント20及びサーバ3がそれぞれ行う演算内容について説明するための説明図である。図14では、第0層の演算をデバイス本体10が、第1層の演算をセキュアエレメント20が、第2層及び第3層の演算をサーバ3が行う様子を図示している。
図14に示すように、本実施の形態でデバイス本体10は第0層の演算を行い、第0層の演算結果を入力値としてセキュアエレメント20に受け渡す。そしてデバイス本体10は、残りの第1~3層を演算すべきニューロン層として指定し、演算処理を実行するようセキュアエレメント20に要求する。
デバイス本体10から演算要求を受け付けた場合、セキュアエレメント20は、デバイス本体10から指定されたニューロン層の演算を実行する。ここで、セキュアエレメント20は指定された全てのニューロン層の演算を行わず、一部のニューロン層についてのみ演算を行う。例えば図14のように、セキュアエレメント20は、デバイス本体10から指定された第1~3層のうち、演算開始層である第1層についてのみ演算を行う。
そしてセキュアエレメント20は、デバイス本体10から指定されたニューロン層のうち、自身が演算を行わない残りの第2層、第3層の演算を行うよう、サーバ3に要求する。具体的には図14のように、セキュアエレメント20は、第1層の演算結果を入力値とし、第2層及び第3層を演算対象として指定して、斯かる演算を実行するよう要求する。
図13に戻って、演算処理を実行後、演算部23は通信路開設部25に演算結果を受け渡す(P42)。通信路開設部25は、サーバ3との間で秘匿通信路41を開設する(P43)。そして通信路開設部25は、演算部23が演算した演算結果をサーバ3に送信し、推論モデル121の一部の演算を実行するよう要求する(P44)。具体的には、通信路開設部25は、演算部23が演算した演算結果と共に、サーバ3が演算すべき演算要素を指定する指定情報と、セキュアエレメント20の固有ID273とをサーバ3に送信する。
演算要求を受け付けた場合、サーバ3の制御部31はまず、要求元のデバイス1における推論実行回数をカウントし、推論実行回数が一定回数に達しているか否かを確認する(P45)。実施の形態1で述べたように、動作管理DB342には、セキュアエレメント20の固有ID273と対応付けて、各デバイス1における推論実行回数(残回数)が記憶されている。制御部31は、セキュアエレメント20から取得した固有ID273を参照して、当該固有ID273に対応付けられた残回数をデクリメントする。そして制御部31は、残回数が0、つまり一定回数に達したか否かを確認する。なお、制御部31はデクリメント後の値を実行日時と共に動作管理DB342に格納し、推論実行回数を更新する。
一定回数に達している場合、制御部31は演算処理を実行せず、実行回数が一定回数に達した旨をデバイス1に通知して推論処理を停止させる。一方、実行回数が一定回数に達していない場合、次に制御部31は、要求元のデバイス1における推論処理を許可してあるか否かを確認する(P46)。具体的には上記と同様に、制御部31は固有ID273に対応付けられた許否情報を動作管理DB342から参照して、推論処理の許可又は禁止を判別する。推論処理を許可していない場合、制御部31は演算処理を実行せず、推論処理が禁止されている旨をデバイス1に通知して処理を停止させる。
推論処理を許可してある場合、制御部31は、セキュアエレメント20から要求された推論モデル121の一部の演算処理を実行する(P47)。具体的には既に述べたように、制御部31は、セキュアエレメント20から取得した演算結果を入力値として用い、セキュアエレメント20から指定された、ニューラルネットワークの出力層を含む一又は複数のニューロン層の演算を実行する。
また、制御部31は実施の形態1と同様に、ニューラルネットワークの出力層からの出力値に対して端数処理を行い、確率表現された出力値を、0又は1の二値で表現された値に変換する(図14参照)。
制御部31は、変換後の出力値を演算結果として、秘匿通信路41を介してセキュアエレメント20に送信する(P48)。セキュアエレメント20は、サーバ3から取得した演算結果を、デバイス本体10からの演算要求に対する出力値として返送する(P49)。デバイス本体10の制御部11は、セキュアエレメント20から返送された出力値を用いて推論結果を出力する。
なお、上記ではデバイス本体10から要求された演算処理を、セキュアエレメント20及びサーバ3が分担して行ったが、本実施の形態はこれに限定されず、セキュアエレメント20は特段の演算を行わず、サーバ3に演算要求を転送して演算処理を実行させてもよい。つまり、デバイス本体10から要求された演算処理をセキュアエレメント20又はサーバ3が実行可能であればよく、どちらがどの程度の演算を負担するかは限定されない。
図15及び図16は、実施の形態2に係る推論処理の処理手順の一例を示すフローチャートである。図15及び図16に基づき、本実施の形態に係る推論処理の処理内容について説明する。
許可フラグ272を参照して、推論処理が許可されていると判定した場合(S38:YES)、セキュアエレメント20は以下の処理を実行する。セキュアエレメント20は、デバイス本体10から指定された推論モデル121の演算要素のうち、一部の演算要素について演算を実行する(ステップS201)。例えば推論モデル121がニューラルネットワークである場合、セキュアエレメント20は、少なくともデバイス本体10から指定された演算開始層を含む、一又は複数のニューロン層の演算を実行する。なお、セキュアエレメント20では演算処理を実行しないものとする場合、ステップS201の処理をスキップして良い。
セキュアエレメント20は、サーバ3との間で秘匿通信路41を開設する(ステップS202)。セキュアエレメント20は、秘匿通信路41を介してステップS201における演算結果をサーバ3に送信し、推論モデル121の一部の演算処理の実行をサーバ3に要求する(ステップS203)。具体的には、セキュアエレメント20は、自身が演算した演算結果と共に、サーバ3が演算すべき演算要素(ニューロン層)を指定する指定情報と、セキュアエレメント20の固有ID273とを送信する。
セキュアエレメント20から演算要求を受け付けた場合、サーバ3の制御部31は、演算要求の送信元であるデバイス1での推論処理の実行回数をカウントする(ステップS204)。具体的には、制御部31は動作管理DB342を参照して、セキュアエレメント20から受信した固有ID273に基づき、当該固有ID273に対応付けられたデバイス1の推論実行回数(残回数)を読み出す。制御部31は、読み出した残回数をデクリメントすることで、実行回数をカウントする。なお、制御部31は、カウントした実行回数を、現在の実行日時と共に動作管理DB342に記憶する。
制御部31は、カウントした推論実行回数が一定回数に達したか否かを判定する(ステップS205)。一定回数に達していないと判定した場合(S205:NO)、制御部31は動作管理DB342を参照して、要求元であるデバイス1での推論処理を許可してあるか否かを判定する(ステップS206)。具体的にはステップS204と同様に、制御部31は固有ID273に対応付けられた許否情報(許可フラグ)を参照し、デバイス1に対して推論処理を許可又は禁止していたかを確認する。推論処理を許可してあると判定した場合(S206:YES)、制御部31は、処理をステップS210に移行する。
推論実行回数が一定回数に達したと判定した場合(S205:YES)、又は推論処理を許可していないと判定した場合(S206:NO)、制御部31は、演算要求を拒否する旨を、秘匿通信路41を介してセキュアエレメント20に通知する(ステップ207)。セキュアエレメント20は、当該通知をデバイス本体10に転送する(ステップS208)。当該通知を取得した場合、デバイス本体10は推論処理を停止し(ステップS209)、一連の処理を終了する。
図16に移って、ステップS206でYESの場合、サーバ3の制御部31は、セキュアエレメント20からの要求に従い、推論モデル121の一部の演算を実行する(ステップS210)。具体的には、制御部31は、セキュアエレメント20から取得した演算結果(入力値)を指定されたニューロン層に入力し、最終的な出力値を演算する。
制御部31は、ステップS210の演算結果の端数処理を行い、出力値を変換する(ステップS211)。制御部31は、変換後の出力値(演算結果)をセキュアエレメント20に送信する(ステップS212)。セキュアエレメント20は、サーバ3から取得した出力値をデバイス本体10に転送する(ステップS213)。制御部31は、セキュアエレメント20から取得した出力値を用いて推論結果を出力し(ステップS214)、一連の処理を終了する。
なお、上記では、セキュアエレメント20が演算を行った後にサーバ3が残る演算要素(出力層を含むニューロン層)の演算を行ったが、例えばサーバ3が演算を行った後でセキュアエレメント20が残る演算要素の演算を行うようにしてもよい。つまり、デバイス本体10から要求された演算要素のうち、少なくとも一部の演算要素の演算をサーバ3が実行することができればよく、演算処理の前後関係は特に限定されない。
以上より、本実施の形態2によれば、サーバ3にも推論モデル121に基づく演算処理の一部を実行させることで、例えばセキュアエレメント20のみでは演算能力が足りない場合等に対応することができる。
実施の形態2に基づけば、デバイス本体10、セキュアエレメント20、サーバ3の3者に推論処理を分担させて実施することも可能であるが、加えて、デバイス本体10が実施すべき処理を含め、推論処理の一部ではなく全部の実施をセキュアエレメント20に指示し、セキュアエレメント20、サーバ3の2者のみで推論処理を行うことも、本実施の形態の応用実施例として示すことができる。
図17は応用実施例に係る推論処理の処理手順を示すフローチャートである。図17では、図15に代替するフローチャートを図示する。この場合、実施の形態1や2における前段要素の演算(ステップS32、図15参照)をデバイス本体10にて行うことなく、制御部11は推論モデルの演算処理をセキュアエレメント20に要求する(ステップS33)。具体的には、セキュアエレメント20が演算すべき演算要素を指定する情報として、前段要素(例えばニューラルネットワークの最初の層を示す情報)を指定しつつ、制御部11が受け取った入力データをセキュアエレメント20に出力する。
従前にて述べた通り、デバイス本体10及びセキュアエレメント20がどの演算要素を演算するかは任意の設計事項である。よってデバイス本体10が意図的に一切の演算を行わず、セキュアエレメント20及びサーバ3のみが連携して演算を行う実施についても、本実施の形態の範疇に含まれることは容易に理解されよう。
(実施の形態3)
実施の形態1では、デバイス1に搭載されたセキュアエレメント20において推論モデル121の一部の演算処理を実行する形態について述べた。本実施の形態では、デバイス1に仮想的に構築されたトラステッド実行環境(TEE;Trusted Execution Environment)において演算処理を実行する形態について述べる。
図18は、実施の形態3に係るIoTシステムの構成例を示すブロック図である。本実施の形態に係るデバイス1は、例えばTrustZone(登録商標)と称される技術を用いることによって、ソフトウェア(OS、アプリケーションなど)の実行環境を、通常実行環境(REE;Rich Execution Environment)51と、トラステッド実行環境52とに分離している。
通常実行環境51は、広く一般的に利用されている汎用OS511の実行環境であり、トラステッド実行環境52へのアクセスが制限される以外に、特段の機能制約がない実行環境である。汎用OS511は、通常実行環境51においてOSの機能を果たすソフトウェアであり、アプリケーション512からの要求に応じて、デバイス1に接続されたハードウェアの制御等を含む各種OS機能を提供する。制御部11は、汎用OS511上でアプリケーション512を実行することで、デバイス1の基本的、汎用的な処理を実行する。
トラステッド実行環境52は、セキュリティ機能を隔離する目的で、同一のSoC上で通常実行環境とは別に提供される独立した実行環境である。トラステッド実行環境52は、通常実行環境51からのアクセスが制限されており、実行可能な機能も限定されている。なお、トラステッド実行環境は、TEEのような称呼に限定されるものではなく、通常実行環境51と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。デバイス1は、セキュリティ上保護すべきソフトウェア及びデータをトラステッド実行環境52に配置すると共に、通常実行環境51及びデバイス1の外部からのアクセスを制限することで、安全性を確保する。
上述のように、通常実行環境51からトラステッド実行環境52にはアクセスできないように制限されており、通常実行環境51からはトラステッド実行環境52の存在を認識できない。通常実行環境51からトラステッド実行環境52で実行する処理を呼び出すためには、ソフトウェア上実現されるセキュアモニタ53を経由しなければならない。
トラステッドOS521は、トラステッド実行環境52においてOSの機能を果たすソフトウェアであり、アプリケーション522からの要求に応じて、セキュリティ機能を中心としたOS機能を提供する。制御部11は、トラステッドOS521上でアプリケーション522を実行することで、推論モデル121に基づく演算処理を含む、セキュリティ上重要な処理を実行する。
なお、本実施の形態では、デバイス1の各種機能がOS、アプリケーションのいずれで実装されるかは本質的事項ではなく、実装者が適宜選択すべき設計事項であることから、OS、アプリケーションの機能分担については説明を省略する。
図18に示すように、本実施の形態においてデバイス1の制御部11は、トラステッド実行環境52に推論モデル用パラメータ271、許可フラグ272、固有ID273等を配置する。制御部11は、トラステッド実行環境52に配置された推論モデル用パラメータ271を読み出し、通常実行環境51に推論モデル121を展開する。
推論処理を実行する場合、制御部11は、通常実行環境51において推論モデル121の一部の演算処理を行った後、演算結果をトラステッド実行環境52に受け渡す。制御部11は、トラステッド実行環境52において推論実行回数のカウント、許可フラグ272のチェック、及び推論モデル121の一部演算処理を実行し、演算結果を通常実行環境51に返送する。制御部11は、返送された演算結果を用いて、推論結果を出力する。
以上より、本実施の形態3によれば、デバイス1は、通常実行環境51と、通常実行環境51よりもセキュアなトラステッド実行環境52とを構築し、トラステッド実行環境52において推論モデル121の一部の演算処理を実行する。このように、セキュアエレメント20を搭載せずとも、ソフトウェア上の構成によって推論処理に係る安全性を確保することができる。
上述の如く、デバイス1は、推論処理に係る演算を実行するコンポーネントよりもセキュアなコンポーネント(セキュア部)を有し、当該セキュアなコンポーネントにおいて推論モデル121の一部の演算処理を実行可能(あるいは実施の形態2のように、サーバ3に対して推論モデル121の一部演算を要求し、サーバ3から出力された演算結果を通常実行環境51に返送可能)であればよい。当該セキュアなコンポーネントは、ハードウェア上分離されたセキュアエレメント20等であってもよく、ソフトウェア上分離されたトラステッド実行環境52等であってもよい。
セキュアエレメント20に代えてトラステッド実行環境52を実装する以外は実施の形態1と共通するため、本実施の形態では詳細な図示及び説明を省略する。
(実施の形態4)
本実施の形態では、デバイス1に格納されている推論モデル121を更新する形態について述べる。
図19は、推論モデル121の更新処理に関する説明図である。図19では、セキュアエレメント20がサーバ3との間で通信を行い、推論モデル用パラメータ271を更新する様子を概念的に図示している。
本実施の形態に係るセキュアエレメント20は、更新部28を備える。更新部28は、サーバ3から最新モデル用パラメータ341を取得し、記憶部27に格納してあるパラメータを更新する。
図19において符号P51~P58に示す処理プロセスについて、順に説明する。まずデバイス本体10がセキュアエレメント20に対し、推論モデル121が最新のデータに更新済みであるか否かをサーバ3に確認するよう要求する(P51)。確認要求を受け付けた場合、セキュアエレメント20の更新部28は、通信路開設部25に対して秘匿通信路41の開設を要求する(P52)。当該要求を受け付けた場合、通信路開設部25は、秘匿通信路41を開設する(P53)。
更新部28は、秘匿通信路41を介してサーバ3に対し、推論モデル用パラメータ271の更新要求を行う(P54)。具体的には、更新部28は、セキュアエレメント20で保持している現在の推論モデル用パラメータ271のバージョン情報271cと、自装置に係る固有ID273とを送信する。
セキュアエレメント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を記憶しておくなど、日時以外の情報を更新情報として記憶しておいてもよい。
セキュアエレメント20の更新部28は、サーバ3から送信された最新モデル用パラメータ341に記憶部27に格納し、パラメータの更新を行う(P58)。例えば更新部28は、パラメータのダウンロード直後に当該パラメータをデバイス本体10に出力し、デバイス本体10は、当該パラメータを基に推論モデル121を更新(再構築)する。なお、パラメータのダウンロード直後に推論モデル121の更新を行うことなく、デバイス1の次回起動時、アプリケーションの次回実行時等、任意のタイミングで更新を行ってよい。以上より、IoTデバイスに格納されているデータを最新のものに更新することができ、陳腐化を防止する等、更新のニーズに応えることができる。
なお、上記ではデバイス本体10からのリクエストに従って一連の処理を開始しているが、本実施の形態はこれに限定されない。例えば推論処理の残回数が0になった場合に更新を行う、あるいはサーバ3が動作管理DB342から古いバージョンで稼働しているデバイス1を検知し、サーバ3側からデバイス1側へパラメータの更新要求を行うなど、任意のタイミングで推論モデル121の更新処理を開始してよい。
図20は、推論モデル121の更新処理の処理手順の一例を示すフローチャートである。図20に基づき、本実施の形態に係るIoTシステムが実行する処理内容について説明する。
デバイス本体10の制御部11は、推論モデル121の最新のモデルであるか否かをサーバ3に確認するよう、セキュアエレメント20に要求する(ステップS401)。当該要求を受け付けた場合、セキュアエレメント20はサーバ3との間で秘匿通信路41を開設する(ステップS402)。セキュアエレメント20は秘匿通信路41を介して、推論モデル用パラメータ271の更新要求を行う(ステップS403)。例えばセキュアエレメント20は、上記のように、記憶部27に格納してあるパラメータのバージョン情報271cと、自装置の固有ID273とをサーバ3へ送信する。
更新要求を受け付けた場合、サーバ3の制御部31は、更新要求を行ったデバイス1において推論モデル用パラメータ271を更新済みであるか否かを判定する(ステップS404)。例えば制御部31は、最新モデルのバージョン情報341cが、セキュアエレメント20から送信されたバージョン情報271cと一致するか否かを判定する。更新済みであると判定した場合(S404:YES)、制御部31は一連の処理を終了する。
更新済みでないと判定した場合(S404:NO)、制御部31は秘匿通信路41を介して、最新モデル用パラメータ341をセキュアエレメント20に送信する(ステップS405)。また、最新モデル用パラメータ341を送信した場合、制御部31は、デバイス1の推論モデル121を更新した旨を示す更新情報を動作管理DB342に記憶し(ステップS406)、一連の処理を終了する。
最新モデル用パラメータ341をサーバ3から受信した場合、セキュアエレメント20は、当該パラメータを記憶部27に格納する(ステップS407)。セキュアエレメント20は、新たに格納した最新モデル用パラメータ341をデバイス本体10に出力する(ステップS408)。セキュアエレメント20は、一連の処理を終了する。
最新モデル用パラメータ341がセキュアエレメント20から出力された場合、デバイス本体10の制御部11は、当該パラメータに基づいて最新の推論モデル121をメモリ上に展開する(ステップS409)。制御部11は、一連の処理を終了する。
なお、上記ではバージョン情報271c、341cがバージョン数、つまりバージョンを表す番号であるものとして図示及び説明を行ったが、本実施の形態はこれに限定されるものではない。例えばバージョン情報271c、341cは、パラメータの更新が行われた日付等の時間を表す情報であってもよい。また、例えばサーバ3は、デバイス1に展開されている推論モデル121と、最新の推論モデル121とのハッシュ値の比較を行って最新バージョンであるか否かを判定するようにしてもよい。このように、サーバ3は推論モデル121の新旧を判定可能な情報に基づいて推論モデル用パラメータ271を更新することができればよく、バージョン情報271c、341cは番号に限定されない。
以上より、本実施の形態4によれば、サーバ3からデバイス1へ最新モデル用パラメータ341を配信することで、最新の推論モデル121をデバイス1に展開することができ、モデルの陳腐化等、更新のニーズに対応することができる。特に本実施の形態では、実施の形態1と同様に、セキュアエレメント20にパラメータを一旦保管(格納)し、デバイス本体10はセキュアエレメント20からパラメータを読み出してメモリ(記憶部12)上に推論モデル121を展開する。これにより、推論モデル121を模倣可能なパラメータを搾取される可能性が低減し、安全性を確保することができる。
(実施の形態5)
本実施の形態では、サーバ3が、デバイス1における推論処理の実行頻度に基づいて異常を検知し、推論処理を禁止する形態について述べる。
図21は、推論処理の実行頻度に基づく推論禁止処理に関する説明図である。図21に基づき、本実施の形態の概要について説明する。
実施の形態1で述べたように、サーバ3は、セキュアエレメント20から推論実行回数のカウント値を取得し、動作管理DB342上で実行回数を管理する。特にサーバ3は、セキュアエレメント20から推論実行日時を併せて取得し、動作管理DB342に格納してあるため、各デバイス1での実行回数の時系列変化、つまり推論処理の頻度を一元的に可視化することができる。
本実施の形態でサーバ3は、推論処理の頻度に基づき、デバイス1に対する外部からの不正解析を検知する。図6を用いて説明したように、推論モデル121の蒸留を試みる場合、デバイス1に推論処理を実行させ、大量の推論結果のデータを取得(搾取)する必要がある。このような不正行為は比較的短時間で行われ、不正行為が行われている間に推論実行回数が飛躍的に増大する。つまり、推論処理の頻度に不正行為の特徴が現れる。サーバ3は、推論処理頻度の増大を判別することで、外部からの不正解析を検知する。
図21の例では、推論処理の残回数を太字で表すデバイス1において、推論処理頻度が大幅に増大している。例えば固有ID273が「100002」であるデバイス1では、数分間の間に残回数を使い果たしている。また、固有ID273が「100003」のデバイス1でも同様に、数分間の間で100回以上の推論演算が実行されている。
サーバ3は、チェックポリシーとして、推論処理頻度が一定頻度以上の場合、不正解析が行われているものと判定する。判定基準となる頻度は、例えば10回/分であるが、特に数値は限定されない。サーバ3は、10回/分以上で推論処理を実行しているデバイス1を動作管理DB342から特定する。
サーバ3は、特定したデバイス1に対し、推論処理を停止するよう指示する。例えばサーバ3は、動作管理DB342上の許否情報を「許可」から「禁止」に変更し、変更した許否情報を、秘匿通信路41を介してデバイス1に送信する。セキュアエレメント20は、サーバ3から送信された許否情報に従って許可フラグ272を「禁止」に変更し、以降の推論処理を停止させる。
また、サーバ3は、推論処理頻度が高いデバイス1だけでなく、当該デバイス1と同種の推論モデル121を適用(展開)してある他のデバイス1に対しても、推論処理の実行を停止するよう指示する。
上述の如く、サーバ3は複数のデバイス1に推論モデル用パラメータ271を配信し、推論モデル121に基づく推論処理を実行させる。この場合、攻撃者は複数のデバイス1を解析対象とした上で、並列的に解析を行うことが想定される。そこでサーバ3は、攻撃者によって近い将来解析対象となり得るデバイス1での推論処理を先に禁止し、不正解析を未然に防ぐ。
例えばサーバ3は、チェックポリシーとして、2以上のデバイス1(セキュアエレメント20)で推論処理頻度が一定頻度以上となった場合、当該デバイス1と同種の推論モデル121を適用した他のデバイス1(セキュアエレメント20)に対し、推論処理を停止するよう指示する。具体的には図21に示すように、サーバ3は該当するデバイス1のセキュアエレメント20に対し、秘匿通信路41を介して許否情報を送信し、許可フラグ272を「許可」から「禁止」に設定変更させる。
なお、上記では推論モデル121の種類に応じてグルーピングを行い、推論処理を一斉に禁止することにしているが、グルーピングの基準は推論モデル121の種類に限定されるものではない。例えばサーバ3は、デバイス1の物理的な配置場所、コンポーネントの種類(例えばセキュアエレメント20よりも比較的解析用意なトラステッド実行環境52であるか)などに応じてグルーピングを行ってもよい。つまりサーバ3は、動作管理DB342上で各デバイス1を所定のチェックポリシーに従って互いに関連付けておき、いずれかのデバイス1における推論処理頻度に応じて、関連付けられた複数のデバイス1の推論処理を禁止することができればよい。
図22は、推論禁止処理の処理手順の一例を示すフローチャートである。図22に基づき、本実施の形態に係るIoTシステムの処理内容について説明する。
例えばサーバ3は、バッチ処理により以下の処理を実行する。サーバ3の制御部31は、動作管理DB342を参照して、各デバイス1における推論処理の実行頻度を計算する(ステップS501)。上述の如く、各デバイス1は、推論処理の実行回数を実行時刻と共にサーバ3へ通知している。サーバ3は動作管理DB342に、推論処理の実行時刻も含めて、各デバイス1における推論処理の実行回数を記憶している。サーバ3は、動作管理DB342に記憶してある各推論時の実行時刻から、デバイス1における推論処理の実行頻度を計算する。
制御部31は、各デバイス1の実行頻度を所定の閾値と比較して、閾値以上の実行頻度で推論処理を行っているデバイス1があるか否かを判定する(ステップS502)。実行頻度が閾値以上のデバイス1がないと判定した場合(S502:NO)、制御部31は一連の処理を終了する。
実行頻度が閾値以上のデバイス1があると判定した場合(S502:YES)、制御部31は、当該デバイス1に適用(インストール)されている推論モデル121を特定する(ステップS503)。そして制御部31は、管理DB341を参照して、特定した推論モデル121と同種類の推論モデル121を適用した他のデバイス1を特定する(ステップS504)。
制御部31は、実行頻度が閾値以上のデバイス1、及び当該デバイス1と同種類の推論モデル121を適用した他のデバイス1に対し、推論処理の禁止指示を送信する(ステップS505)。制御部31は、各デバイス1に対して推論処理を禁止した旨の許否情報を管理DB341に格納(更新)し(ステップS506)、一連の処理を終了する。
サーバ3から禁止指示を受信した場合、デバイス1のセキュアエレメント20は、当該指示に従い、推論処理を禁止する旨の許否情報を設定する(ステップS507)。例えばセキュアエレメント20は、許可フラグ272を「許可」から「禁止」に設定変更する。セキュアエレメント20は、一連の処理を終了する。
以上より、本実施の形態5によれば、推論処理(演算処理)の実行頻度に応じてデバイス1での推論処理を禁止することで、不正解析を検知し、適切な対策を取ることができる。
また、本実施の形態5によれば、推論実行頻度が高いデバイス1だけでなく、当該デバイス1と関連付けられた他のデバイス1の推論処理も併せて禁止することで、推論モデル121の不正解析をより効果的に防止することができる。
(実施の形態6)
図23は、上述した形態のデバイス1の動作を示す機能ブロック図である。制御部11がプログラムP1を実行することにより、デバイス1は以下のように動作する。記憶部221は、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する。実行部222は、前記学習済みモデルに基づく演算処理を実行する。セキュア部223は、該実行部222よりセキュアなコンポーネントであって、前記実行部222からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する。前記実行部222は、前記セキュア部223による演算結果を用いて、最終的な演算結果を出力する
本実施の形態6は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 デバイス
10 デバイス本体
11 制御部
12 記憶部
121 推論モデル
20 セキュアエレメント(セキュア部)
23 演算部
27 記憶部
271 推論モデル用パラメータ
272 許可フラグ(許否情報)
273 固有ID
51 通常実行環境
52 トラステッド実行環境(セキュア部)
3 サーバ(管理装置)
31 制御部
34 補助記憶部
341 最新モデル用パラメータ
342 動作管理DB

Claims (30)

  1. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記実行部は、
    前記学習済みモデルの一部の前記演算要素に係る演算を行い、
    該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを前記セキュア部に出力し、
    前記セキュア部は、
    前記実行部から出力された演算結果を用いて、指定された前記演算要素に係る演算を実行し、
    指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って、前記実行部に返送する演算結果を変換し、
    変換後の演算結果を前記実行部に返送し、
    前記実行部は、前記セキュア部から返送された演算結果を用いて、最終的な演算結果を出力する
    ことを特徴とするデバイス。
  2. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    運用者認証に必要な認証情報を取得する取得部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記セキュア部は、前記認証情報に基づく運用者認証に成功した場合、前記演算処理を実行し、
    前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力する
    ことを特徴とするデバイス。
  3. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記セキュア部は、
    前記実行部から要求された前記演算処理の一部又は全部の実行を、デバイスと通信可能な管理装置に要求し、
    前記管理装置から演算結果を取得し、
    前記管理装置から取得した演算結果を、又は該取得した演算結果を用いて前記セキュア部が実行した前記演算処理の結果を、前記実行部に返送し、
    前記実行部は、前記セキュア部から返送された演算結果を用いて、最終的な演算結果を出力する
    ことを特徴とするデバイス。
  4. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、
    前記セキュア部は、
    前記実行部からの演算要求を受け付けた場合、前記演算処理の実行回数をカウントし、
    前記実行回数が所定回数に達した場合、前記演算処理を制限する
    ことを特徴とするデバイス。
  5. 前記セキュア部は、カウントした前記実行回数、又は前記演算処理を実行した旨を示す情報を、デバイスと通信可能な管理装置に通知する
    ことを特徴とする請求項に記載のデバイス。
  6. 前記セキュア部は、前記演算処理を実行した実行日時を併せて通知する
    ことを特徴とする請求項に記載のデバイス。
  7. 前記セキュア部は、
    前記所定回数を、前記管理装置からの指示に従って更新する
    ことを特徴とする請求項又はに記載のデバイス。
  8. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、
    前記セキュア部は、
    前記演算処理の許可又は禁止を表す許否情報を保持し、
    前記演算処理の許可を表す前記許否情報を保持してある場合、前記演算処理を実行する
    ことを特徴とするデバイス。
  9. デバイスの動作状況を管理する管理装置と通信を行い、該管理装置からの指示に従って前記許否情報を設定する
    ことを特徴とする請求項に記載のデバイス。
  10. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記セキュア部は、
    デバイスと通信可能な管理装置から、最新の前記学習済みモデルを展開するために必要なパラメータを取得し、
    取得した前記パラメータを、前記実行部に出力し、
    前記実行部は、前記セキュア部から取得した前記パラメータに基づき、前記最新の学習済みモデルを前記記憶部に展開する
    ことを特徴とするデバイス。
  11. 前記セキュア部は、耐タンパ性を有するセキュアエレメント、又は前記実行部が処理を行う実行環境からのアクセスが制限されたトラステッド実行環境である
    ことを特徴とする請求項1~10のいずれか1項に記載のデバイス。
  12. 前記セキュア部は、通信内容を暗号化した秘匿通信路を介して、前記管理装置との間の通信を行う
    ことを特徴とする請求項及び10のいずれか1項に記載のデバイス。
  13. デバイスに搭載されるセキュアエレメントであって、
    前記デバイスから、機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルに基づく演算処理の実行要求を受け付ける受付部と、
    受け付けた実行要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行する演算部と、
    演算結果を前記デバイスに出力する出力部と
    前記デバイスから要求された前記演算処理の一部又は全部の実行を、前記デバイスと通信可能な管理装置に要求する要求部と、
    前記管理装置から演算結果を取得する取得部と
    を備えることを特徴とするセキュアエレメント。
  14. セキュアエレメントを搭載したデバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、
    該学習済みモデルに基づく演算処理を実行する
    処理を実行させるプログラムであって、
    前記学習済みモデルの一部の前記演算要素に係る演算を行い、
    該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを前記セキュアエレメントに出力し、前記セキュアエレメントに対し、前記一部の演算要素とは異なる前記演算要素に係る演算処理を要求し、
    前記セキュアエレメントによって前記一部の演算要素に係る演算結果を用いて演算処理された前記異なる前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理が行われた変換後の演算結果を、前記セキュアエレメントから返送され、
    前記セキュアエレメントから返送された演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  15. セキュアエレメントを搭載したデバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、
    該学習済みモデルに基づく演算処理を実行する
    処理を実行させるプログラムであって、
    運用者認証に必要な認証情報を取得し、
    前記セキュアエレメントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、
    前記セキュアエレメントが前記認証情報に基づく運用者認証に成功した場合に前記演算処理を実行した演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  16. セキュアエレメントを搭載したデバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、
    該学習済みモデルに基づく演算処理を実行する
    処理を実行させるプログラムであって、
    前記セキュアエレメントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、
    前記セキュアエレメントに対して要求した前記演算処理の一部又は全部の、前記デバイスと通信可能な管理装置による演算結果を、又は前記管理装置による演算結果を用いて前記セキュアエレメントが実行した前記演算処理の結果を、前記セキュアエレメントから取得し、
    前記セキュアエレメントから取得した演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  17. セキュアエレメントを搭載したデバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶部に記憶し、
    該学習済みモデルに基づく演算処理を実行する
    処理を実行させるプログラムであって、
    前記セキュアエレメントに対し、前記学習済みモデルの一部の前記演算要素に係る演算処理を要求し、
    前記セキュアエレメントによる演算結果を用いて、最終的な演算結果を出力する処理を前記デバイスに実行させ、
    前記セキュアエレメントは、演算要求を受け付けた場合に、前記演算処理の実行回数をカウントし、前記実行回数が所定回数に達した場合、前記演算処理を制限する
    ことを特徴とするプログラム。
  18. デバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、
    前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する
    処理を実行させるプログラムであって、
    前記第1の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算を行い、
    該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを、前記第1の実行環境よりもセキュアな第2の実行環境に出力し、
    前記第2の実行環境において、前記一部の演算要素に係る演算結果を用いて、指定された前記演算要素に係る演算を実行し、
    前記第2の実行環境において、指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って演算結果を変換し、
    前記第1の実行環境において、変換後の演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  19. デバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、
    前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する
    処理を実行させるプログラムであって、
    運用者認証に必要な認証情報を取得し、
    前記第1の実行環境よりもセキュアな第2の実行環境において、前記認証情報に基づく運用者認証に成功した場合に、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行し、
    前記第2の実行環境における演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  20. デバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、
    前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する
    処理を実行させるプログラムであって、
    前記第1の実行環境よりもセキュアな第2の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行し、
    前記第2の実行環境において、前記演算処理の一部又は全部の実行を、前記デバイスと通信可能な管理装置に要求し、
    前記第2の実行環境において、前記管理装置から演算結果を取得し、
    前記第1の実行環境において、前記管理装置から取得した演算結果を、又は該取得した演算結果を用いた前記第2の実行環境における演算結果を用いて、最終的な演算結果を出力する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  21. デバイスに、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを第1の実行環境に保持し、
    前記学習済みモデルに基づく演算処理を前記第1の実行環境において実行する
    処理を実行させるプログラムであって、
    前記第1の実行環境よりもセキュアな第2の実行環境において、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行し、
    前記第2の実行環境における演算結果を用いて、最終的な演算結果を出力し、
    前記第2の実行環境において、前記演算処理の実行回数をカウントし、前記実行回数が所定回数に達した場合、前記演算処理を制限する
    処理を前記デバイスに実行させることを特徴とするプログラム。
  22. デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、
    前記デバイスは、
    機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、
    前記学習済みモデルに基づく演算処理を実行する実行部と、
    該実行部よりセキュアなコンポーネントであって、前記実行部からの演算要求に従い、前記学習済みモデルの一部の前記演算要素に係る演算処理を実行するセキュア部と
    を備え、
    前記実行部は、前記セキュア部による演算結果を用いて、最終的な演算結果を出力し、
    前記セキュア部は、前記演算処理の実行回数、又は該演算処理を実行した旨を示す情報を前記管理装置に通知し、
    前記管理装置は、前記セキュア部からの通知に基づき、前記実行回数を管理する
    ことを特徴とする情報処理システム。
  23. 前記セキュア部は、
    前記実行部からの演算要求を受け付けた場合、前記実行回数をカウントし、
    カウントした前記実行回数を前記管理装置に通知する
    ことを特徴とする請求項22に記載の情報処理システム。
  24. 前記セキュア部は、前記演算処理を実行した場合に、該演算処理を実行した旨を示す情報を前記管理装置に通知し、
    前記管理装置は、前記セキュア部からの通知に基づいて前記実行回数をカウントする
    ことを特徴とする請求項23に記載の情報処理システム。
  25. 前記セキュア部は、前記実行回数が所定回数に達していない場合、前記演算処理を実行
    する
    ことを特徴とする請求項2224のいずれか1項に記載の情報処理システム。
  26. 前記セキュア部は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記デバイスの識別情報と共に前記管理装置に通知し、
    前記管理装置は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記識別情報と対応付けて記憶部に記憶する
    ことを特徴とする請求項2225のいずれか1項に記載の情報処理システム。
  27. 前記セキュア部は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記演算処理を実行した実行日時と共に前記管理装置に通知し、
    前記管理装置は、前記実行回数又は前記演算処理を実行した旨を示す情報を、前記実行日時と共に記憶部に記憶する
    ことを特徴とする請求項22~2のいずれか1項に記載の情報処理システム。
  28. 前記管理装置は、
    前記実行回数及び実行日時に基づき、前記演算処理の実行頻度が閾値以上であるか否かを判定する判定部と、
    前記実行頻度が閾値以上であると前記判定部が判定した場合、前記演算処理の禁止を前記セキュア部に指示する指示部と
    を備えることを特徴とする請求項2に記載の情報処理システム。
  29. 前記管理装置の前記記憶部は、複数の前記デバイスを互いに関連付けて記憶してあり、
    前記指示部は、互いに関連付けられた複数の前記デバイスに対し、前記演算処理の禁止を指示する
    ことを特徴とする請求項2に記載の情報処理システム。
  30. 機械学習により生成された学習済みモデルであって、複数の演算要素を有する学習済みモデルを記憶する記憶部と、前記学習済みモデルに基づく演算処理を実行する実行部とを備えたデバイスに、
    前記実行部が、
    前記学習済みモデルの一部の前記演算要素に係る演算を行い、
    該一部の演算要素に係る演算結果と、該一部の演算要素とは異なる前記演算要素を演算対象に指定する情報とを、前記実行部よりもセキュアなコンポーネントに出力し、前記セキュアなコンポーネントに対し、前記異なる前記演算要素に係る演算処理を要求し、
    前記セキュアなコンポーネントが、
    前記実行部から出力された演算結果を用いて、指定された前記演算要素に係る演算処理を実行し、
    指定された前記演算要素の演算結果に対して、確率で表現された演算結果の端数処理を行って、前記実行部に返送する演算結果を変換し、
    変換後の演算結果を前記実行部に返送し、
    前記実行部は、前記セキュアなコンポーネントから返送された演算結果を用いて、最終的な演算結果を出力する
    処理を実行させることを特徴とする情報処理方法。
JP2017255173A 2017-12-29 2017-12-29 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法 Active JP7056151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017255173A JP7056151B2 (ja) 2017-12-29 2017-12-29 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017255173A JP7056151B2 (ja) 2017-12-29 2017-12-29 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Publications (2)

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

Family

ID=67306358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017255173A Active JP7056151B2 (ja) 2017-12-29 2017-12-29 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Country Status (1)

Country Link
JP (1) JP7056151B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7396040B2 (ja) * 2019-12-27 2023-12-12 日本電気株式会社 画像分析装置、画像分析方法及びコンピュータプログラム
IT202000001462A1 (it) * 2020-01-24 2021-07-24 St Microelectronics Srl Apparato per azionare una rete neurale, corrispondente procedimento e prodotto informatico
WO2021182723A1 (ko) * 2020-03-09 2021-09-16 한국과학기술원 인간의 지능을 인공 지능으로 이식하기 위한 정밀 행동 프로파일링을 위한 전자 장치 및 그의 동작 방법
JP7487502B2 (ja) * 2020-03-13 2024-05-21 オムロン株式会社 学習用データ生成装置、学習装置、制御装置、学習用データ生成方法、学習方法、制御方法、学習用データ生成プログラム、学習プログラム、及び制御プログラム
CN113868662A (zh) * 2020-06-30 2021-12-31 微软技术许可有限责任公司 机器学习网络的安全执行
JP7041374B2 (ja) 2020-09-04 2022-03-24 ダイキン工業株式会社 生成方法、プログラム、情報処理装置、情報処理方法、及び学習済みモデル
JP6997401B1 (ja) 2020-09-04 2022-01-17 ダイキン工業株式会社 生成方法、プログラム、情報処理装置、情報処理方法、及び学習済みモデル
JP6987308B1 (ja) * 2020-12-17 2021-12-22 三菱電機株式会社 情報処理装置、情報処理方法および情報処理プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257302A (ja) 2009-04-27 2010-11-11 Toppan Printing Co Ltd セキュア媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108595A (ja) * 1991-10-17 1993-04-30 Hitachi Ltd ニユーラルネツトワークの分散学習装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257302A (ja) 2009-04-27 2010-11-11 Toppan Printing Co Ltd セキュア媒体

Also Published As

Publication number Publication date
JP2019121141A (ja) 2019-07-22

Similar Documents

Publication Publication Date Title
JP7056151B2 (ja) デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法
US11544352B2 (en) Machine-learning model fraud detection system and fraud detection method
JP7419325B2 (ja) デバイス、プログラム及び情報処理方法
US11899808B2 (en) Machine learning for identity access management
US10721227B1 (en) Identity management system
CN104246698B (zh) 弹性操作系统电脑
CN106462716B (zh) 候选敏感数据项的可分解保护
CN107209701A (zh) 滚动安全平台
EP3336735B1 (de) Erstellen einer datenbank für eine dynamische multifaktorauthentifizierung
CN110929806B (zh) 基于人工智能的图片处理方法、装置及电子设备
EP1399796B1 (en) Method and apparatus for tracking status of resource in a system for managing use of the resources
CN112488712A (zh) 基于区块链大数据的安全识别方法及安全识别系统
AU2002312333A1 (en) Method and apparatus for tracking status of resource in a system for managing use of the resources
CN114254360A (zh) 模型训练方法、装置、存储介质、系统以及区块链节点
CN112068854B (zh) 智能设备算法更新系统、智能设备及平台服务器
EP3404569B1 (de) Verfahren, system und computerprogrammprodukt zur verhaltensbasierten authentifizierung eines nutzers
CN108334788A (zh) 文件防篡改方法及装置
Pinzón et al. Improving the security level of the FUSION@ multi-agent architecture
CN115118462A (zh) 一种基于卷积增强链的数据隐私保护方法
KR101988205B1 (ko) 가상사설망 서비스 시스템
EP3811559B1 (de) Automatisches adaptives kalibrieren von authentifizierungsanforderungen
EP3513354A1 (en) Dynamic registration seed
WO2019171443A1 (ja) 機械学習済みモデルアップデートシステム、エッジデバイス、機械学習済みモデルアップデート方法、及びプログラム
DE102017219261A1 (de) Bereitstellen physiologischer Daten
CN111881433B (zh) 基于验证手势的资源转移方法、装置和计算机设备

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