(57)【要約】【課題】機械学習結果を利用した処理を安全に実行することができるデバイス等を提供することを目的とする。【解決手段】デバイス１は、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、前記学習済みモデルに基づく処理を実行する実行部と、該実行部が処理を実行する場合、前記パラメータを特定する情報を、前記実行部よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力する出力部とを備え、前記実行部は、前記セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行することを特徴とする。【選択図】図１
2019109680.tif 000002
【特許請求の範囲】
【請求項１】
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、
前記学習済みモデルに基づく処理を実行する実行部と、
該実行部が処理を実行する場合、前記パラメータを特定する情報を、前記実行部よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力する出力部と
を備え、
前記実行部は、前記セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行する
ことを特徴とするデバイス。
【請求項２】
前記出力部は、前記パラメータを特定する情報と、該パラメータに対応する前記スクランブル値とを前記セキュアなユニットに出力し、
前記セキュアなユニットは、
前記パラメータを特定する情報に基づき、前記デスクランブルに必要なデータを特定し、
特定したデータを参照して、前記パラメータのデスクランブルを実行し、
デスクランブルした前記パラメータを前記実行部に出力し、
前記実行部は、前記セキュアなユニットから出力された前記パラメータを用いて処理を実行する
ことを特徴とする請求項１に記載のデバイス。
【請求項３】
前記セキュアなユニットは、
前記パラメータを特定する情報に基づき、前記デスクランブルに必要なデータを特定し、
特定したデータを前記実行部に出力し、
前記実行部は、
前記セキュアなユニットから出力されたデータに基づき、前記パラメータのデスクランブルを実行し、
デスクランブルした前記パラメータを用いて処理を実行する
ことを特徴とする請求項１に記載のデバイス。
【請求項４】
前記モデルデータは、複数のニューロンから構成されるニューラルネットワークに対し、前記ニューロン夫々における演算処理に必要な前記パラメータを、前記スクランブル値により設定したデータであり、
前記出力部は、前記ニューラルネットワークの所定区分毎に、前記ニューロンを特定する情報を出力し、
前記実行部は、前記所定区分毎に前記セキュアなユニットからデータを順次取得し、処理を実行する
ことを特徴とする請求項１〜３のいずれか１項に記載のデバイス。
【請求項５】
前記セキュアなユニットは、
前記パラメータのデスクランブルの実行回数をカウントし、
カウントした前記実行回数に応じて、前記パラメータのデスクランブルを制限する
ことを特徴とする請求項１〜４のいずれか１項に記載のデバイス。
【請求項６】
前記セキュアなユニットは、カウントした前記実行回数を、前記デバイスに通信接続された管理装置に通知する
ことを特徴とする請求項５に記載のデバイス。
【請求項７】
前記セキュアなユニットは、
前記パラメータを特定する情報又は前記実行回数に応じて、前記学習済みモデルに基づく処理が完了したか否かを判定し、
完了したと判定した場合、前記学習済みモデルに基づく処理の完了を、前記デバイスに通信接続された管理装置に通知する
ことを特徴とする請求項５に記載のデバイス。
【請求項８】
前記セキュアなユニットは、前記デバイスに搭載されたセキュアエレメント、前記実行部が処理を実行する実行環境よりもセキュアなトラステッド実行環境、又は前記デバイスに通信接続された管理装置である
ことを特徴とする請求項１〜７のいずれか１項に記載のデバイス。
【請求項９】
前記パラメータは、所定の検査値が付加されており、
前記セキュアなユニット又は実行部は、
前記パラメータのデスクランブル後に、復号された前記検査値と、前記検査値を除く前記パラメータから計算される前記検査値とを照合し、
前記検査値が不一致の場合、前記学習済みモデルに基づく処理を停止する
ことを特徴とする請求項１〜８のいずれか１項に記載のデバイス。
【請求項１０】
前記セキュアなユニットは、
前記パラメータから前記スクランブル値を演算するスクランブル処理を行い、
演算した前記スクランブル値を出力し、
前記スクランブル処理に用いたデータを保持し、
前記実行部は、
前記スクランブル値を前記セキュアなユニットから取得し、
取得した前記スクランブル値に基づき、前記モデルデータを展開して前記記憶部に格納する
ことを特徴とする請求項１〜９のいずれか１項に記載のデバイス。
【請求項１１】
前記セキュアなユニットは、該セキュアなユニット、又は前記デバイスに固有の個体識別情報を用いて前記スクランブル値を演算する
ことを特徴とする請求項１０に記載のデバイス。
【請求項１２】
前記セキュアなユニットは、
乱数値を生成し、
生成した乱数値を用いて前記スクランブル値を演算する
ことを特徴とする請求項１０又は１１に記載のデバイス。
【請求項１３】
前記デバイスは、少なくとも２つの前記セキュアなユニットと接続され動作するデバイスであって、
第１の前記セキュアなユニットが、前記スクランブル処理を実行し、
前記実行部は、第２の前記セキュアなユニットからデータを取得して処理を実行する
ことを特徴とする請求項１０に記載のデバイス。
【請求項１４】
前記第１のセキュアなユニットは、前記第２のセキュアなユニットに固有の個体識別情報を用いて前記スクランブル処理を実行する
ことを特徴とする請求項１３に記載のデバイス。
【請求項１５】
前記第２のセキュアなユニットは、前記実行部が前記学習済みモデルに基づく処理を実行する場合、前記スクランブル処理に用いたデータを前記第１のセキュアなユニットから取得する
ことを特徴とする請求項１３又は１４に記載のデバイス。
【請求項１６】
前記スクランブル処理に用いたデータは、前記第１のセキュアなユニットが生成した乱数値である
ことを特徴とする請求項１５に記載のデバイス。
【請求項１７】
前記第１及び第２のセキュアなユニットは、通信内容を暗号化した秘匿通信路を介してデータの送受信を行う
ことを特徴とする請求項１５又は１６に記載のデバイス。
【請求項１８】
前記セキュアなユニットは、
前記パラメータのデスクランブルが許可又は禁止されている旨を示す許否情報を保持し、
前記出力部から前記パラメータを特定する情報が出力された場合、前記許否情報を参照して、デスクランブルの実行の可否を判定する
ことを特徴とする請求項１〜１７のいずれか１項に記載のデバイス。
【請求項１９】
前記セキュアなユニットは、前記デバイスと通信接続された管理装置からの指示に従って前記許否情報を設定する
ことを特徴とする請求項１８に記載のデバイス。
【請求項２０】
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部を備え、前記学習済みモデルに基づく処理を実行するデバイスに搭載されたセキュアエレメントであって、
前記パラメータのデスクランブルに必要なデータを格納する格納部と、
前記デバイスが前記学習済みモデルに基づく処理を実行する場合、デバイス本体から前記パラメータを特定する情報を取得する取得部と、
前記パラメータを特定する情報に基づき、前記デスクランブルに必要なデータを特定する特定部と、
特定したデータに基づいてデスクランブルした前記パラメータ、又は特定したデータを前記デバイス本体に返送する
ことを特徴とするセキュアエレメント。
【請求項２１】
セキュアエレメントを搭載したコンピュータに、
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶部に記憶させ、
前記学習済みモデルに基づく処理を実行する場合、前記パラメータを特定する情報を、前記パラメータのデスクランブルに必要なデータを保持する前記セキュアエレメントに対して出力させ、
前記セキュアエレメントから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行させる
ことを特徴とするプログラム。
【請求項２２】
コンピュータに、
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを第１の実行環境に展開させ、
前記パラメータのデスクランブルに必要なデータを、前記第１の実行環境よりもセキュアな第２の実行環境に保持させ、
前記第１の実行環境において前記学習済みモデルに基づく処理を実行する場合、前記第１の実行環境から前記第２の実行環境に対し、前記パラメータを特定する情報を出力させ、
前記第２の実行環境から前記第１の実行環境に返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行させる
ことを特徴とするプログラム。
【請求項２３】
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、前記学習済みモデルに基づく処理を実行する実行部とを備えたデバイスに、
前記実行部が処理を実行する場合、前記パラメータを特定する情報を、前記実行部よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力させ、
前記セキュアなユニットから返送されるデータに基づき、前記実行部に、デスクランブルされた前記パラメータを用いて処理を実行させる
ことを特徴とする情報処理方法。
【請求項２４】
デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、
前記デバイスは、
機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、
前記学習済みモデルに基づく処理を実行する実行部と、
前記実行部よりもセキュアなコンポーネントであって、前記パラメータのデスクランブルに必要なデータと、デスクランブルが許可又は禁止されている旨を示す許否情報とを保持するセキュア部と、
該実行部が処理を実行する場合、前記パラメータを特定する情報を前記セキュア部に出力する出力部と
を備え、
前記セキュア部は、
前記管理装置からの指示に従って前記許否情報を設定し、
前記パラメータを特定する情報を取得した場合、前記許否情報を参照してデスクランブルの実行の可否を判定し、
デスクランブルの実行が許可されていると前記セキュア部が判定した場合、前記実行部は、該セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行する
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス、セキュアエレメント、プログラム、情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）技術が急速に普及し、様々なデバイスがインターネットに接続されるようになっている。一方で、インターネットに接続されるデバイスが拡大することによって、デバイスの脆弱性に起因するセキュリティ上の問題が顕在化している。
【０００３】
また、ＩｏＴに限らず、ディープラーニングに代表される機械学習への関心が高まっている。これに伴い、機械学習技術をＩｏＴに係るクラウドコンピューティングに適用し、データセンタであるクラウドサーバが機械学習を行って学習済みモデルを構築し、学習結果をＩｏＴデバイスに提供して種々の処理を行うシステムが検討されている（例えば特許文献１）。
【０００４】
一方で、クラウド上に全てのデータ及び機能を集約するクラウドコンピューティングでは、ユーザとクラウドサーバとの間の通信距離が長くなることから、レイテンシー（処理速度）の遅延が避けられないとの問題がある。この問題に対し、クラウドサーバが行う処理の一部を、よりユーザに近いクライアント側で行うことで、通信距離を短縮してレイテンシーを向上させるエッジコンピューティングの技術が注目を集めている。
【０００５】
上記の機械学習とエッジコンピューティングとの相補についても注目を集めている。すなわち、クライアントであるＩｏＴデバイスに機械学習演算の一部を委譲することで、クラウドコンピューティングに比べて演算結果を早くユーザに伝達する、という考え方である。例えばクラウドサーバが機械学習を行って学習結果をＩｏＴデバイスに配信し、ＩｏＴデバイスが学習結果である学習済みモデルをメモリ上に展開して、学習済みモデルに基づく種々の処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１４２６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の如くＩｏＴデバイスでのセキュリティの問題から、デバイス上に展開された学習済みモデルを第三者により盗難、模倣される等の課題が顕在化するであろうことが予測される。
【０００８】
一つの側面では、機械学習結果を利用した処理を安全に実行することができるデバイス等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの側面に係るデバイスは、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、前記学習済みモデルに基づく処理を実行する実行部と、該実行部が処理を実行する場合、前記パラメータを特定する情報を、前記実行部よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力する出力部とを備え、前記実行部は、前記セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行することを特徴とする。
【００１０】
一つの側面に係るセキュアエレメントは、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部を備え、前記学習済みモデルに基づく処理を実行するデバイスに搭載されたセキュアエレメントであって、前記パラメータのデスクランブルに必要なデータを格納する格納部と、前記デバイスが前記学習済みモデルに基づく処理を実行する場合、デバイス本体から前記パラメータを特定する情報を取得する取得部と、前記パラメータを特定する情報に基づき、前記デスクランブルに必要なデータを特定する特定部と、特定したデータに基づいてデスクランブルした前記パラメータ、又は特定したデータを前記デバイス本体に返送することを特徴とする。
【００１１】
一つの側面に係るプログラムは、セキュアエレメントを搭載したコンピュータに、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶部に記憶させ、前記学習済みモデルに基づく処理を実行する場合、前記パラメータを特定する情報を、前記パラメータのデスクランブルに必要なデータを保持する前記セキュアエレメントに対して出力させ、前記セキュアエレメントから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行させることを特徴とする。
【００１２】
一つの側面に係るプログラムは、コンピュータに、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを第１の実行環境に展開させ、前記パラメータのデスクランブルに必要なデータを、前記第１の実行環境よりもセキュアな第２の実行環境に保持させ、前記第１の実行環境において前記学習済みモデルに基づく処理を実行する場合、前記第１の実行環境から前記第２の実行環境に対し、前記パラメータを特定する情報を出力させ、前記第２の実行環境から前記第１の実行環境に返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行させることを特徴とする。
【００１３】
一つの側面に係る情報処理方法は、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、前記学習済みモデルに基づく処理を実行する実行部とを備えたデバイスに、前記実行部が処理を実行する場合、前記パラメータを特定する情報を、前記実行部よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力させ、前記セキュアなユニットから返送されるデータに基づき、前記実行部に、デスクランブルされた前記パラメータを用いて処理を実行させることを特徴とする。
【００１４】
一つの側面に係る情報処理システムは、デバイスと、該デバイスと通信可能な管理装置とを有する情報処理システムであって、前記デバイスは、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する記憶部と、前記学習済みモデルに基づく処理を実行する実行部と、前記実行部よりもセキュアなコンポーネントであって、前記パラメータのデスクランブルに必要なデータと、デスクランブルが許可又は禁止されている旨を示す許否情報とを保持するセキュア部と、該実行部が処理を実行する場合、前記パラメータを特定する情報を前記セキュア部に出力する出力部とを備え、前記セキュア部は、前記管理装置からの指示に従って前記許否情報を設定し、前記パラメータを特定する情報を取得した場合、前記許否情報を参照してデスクランブルの実行の可否を判定し、デスクランブルの実行が許可されていると前記セキュア部が判定した場合、前記実行部は、該セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行することを特徴とする。
【発明の効果】
【００１５】
一つの側面では、機械学習結果を利用した処理を安全に実行することができる。
【図面の簡単な説明】
【００１６】
【図１】ＩｏＴシステムの構成例を示すブロック図である。
【図２】推論モデルの展開処理における処理動作を示す説明図である。
【図３】推論モデルの基本構造に関する説明図である。
【図４】学習パラメータのスクランブル化及び推論モデルへの適用処理を説明するための説明図である。
【図５】推論処理に関する説明図である。
【図６】デバイスが実行する処理手順の一例を示すフローチャートである。
【図７】モデル展開処理のサブルーチンの一例を示すフローチャートである。
【図８】推論処理のサブルーチンの一例を示すフローチャートである。
【図９】実施の形態２に係るデスクランブル処理に関する説明図である。
【図１０】実施の形態２に係る推論処理のサブルーチンの一例を示すフローチャートである。
【図１１】実施の形態３に係るＩｏＴシステムの構成例を示すブロック図である。
【図１２】実施の形態４に係るＩｏＴシステムの構成例を示すブロック図である。
【図１３】デバイスＤＢのレコードレイアウトの一例を示す説明図である。
【図１４】実施の形態５に係るスクランブル処理に関する説明図である。
【図１５】実施の形態５に係るデスクランブル処理に関する説明図である。
【図１６】実施の形態５に係るモデル展開のサブルーチンの一例を示すフローチャートである。
【図１７】実施の形態５に係る推論処理のサブルーチンの一例を示すフローチャートである。
【図１８】実施の形態５に係る推論処理のサブルーチンの一例を示すフローチャートである。
【図１９】上述した形態のデバイスの動作を示す機能ブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、ＩｏＴシステムの構成例を示すブロック図である。本実施の形態では、ＩｏＴ端末であるデバイス１に機械学習の成果物である推論モデル１２１をインストールし、デバイス１が推論モデル１２１を利用して、入力データから適切な出力データを推論する推論処理を行う形態について述べる。なお、本明細書において「推論」とは機械学習結果を利用した処理全般を表す文言として用い、「推論モデル」とは機械学習により生成された学習済みモデルを表す文言として用いる。
【００１８】
ＩｏＴシステムは、デバイス１と、サーバ３とを有する。デバイス１は、インターネットであるネットワークＮに接続された電子機器であり、例えば監視カメラ、車両に搭載されたＥＣＵ（Electronic Control Unit）、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。本実施の形態においてデバイス１は監視カメラであるものとして説明する。
【００１９】
サーバ３は、デバイス１の動作状況を管理する管理装置であり、ネットワークＮを介して複数のデバイス１に通信接続されている。本実施の形態では、サーバ３が機械学習を行って推論モデル１２１を生成し、生成した推論モデル１２１のデータ（図１に示す推論モデル用パラメータ２８１）をデバイス１に配信する。デバイス１は、当該データに基づいて推論モデル１２１を自装置のメモリ上に展開し、推論処理を行う。例えばデバイス１が監視カメラである場合、デバイス１は撮像画像に含まれる物体が何であるかを推論（推定）し、推論結果を外部に通知する。
【００２０】
また、サーバ３は、自装置と推論モデル１２１のデータを同期する各デバイス１の情報を収集し、データベース上で管理する。なお、本実施の形態ではデバイス１側での処理について説明し、サーバ３の処理内容については実施の形態４以降で詳述する。
【００２１】
デバイス１は、デバイス本体１０と、セキュアエレメント（セキュアなユニット、セキュア部）２０とを有する。デバイス本体１０は、ＳｏＣ（System on Chip）により構成され、デバイス１の多く又は全部の機能を実現するデバイス１の本体部分である。セキュアエレメント２０は、デバイス本体１０とは分離されたハードウェアであり、外部からの物理的又は論理的な攻撃に対して耐タンパ性を有するチップである。セキュアエレメント２０は内部に不揮発性メモリを有し、データを安全に保管する。なお、セキュアエレメント２０はＵＩＣＣ（Universal Integrated Circuit Card）のように、デバイス１に対して着脱自在な構成であってもよい。デバイス本体１０及びセキュアエレメント２０は、例えばＩＳＯ（International Organization Standardization）７８１６、ＳＰＩ（Serial Peripheral Interface）等の規格で相互に接続されている。
【００２２】
デバイス本体１０は、制御部１１、記憶部１２、入出力Ｉ／Ｆ１３、通信部１４、入力部１５、及び撮像部１６を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を有し、記憶部１２に記憶されたプログラムＰ１を読み出して実行することにより、デバイス１に係る種々の情報処理、制御処理を行う。記憶部１２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を有し、制御部１１が演算処理を実行するために必要なプログラムＰ１、その他のデータを記憶する。また、記憶部１２は、後述するように、セキュアエレメント２０に格納された推論モデル用パラメータ２８１に基づき構築した推論モデル１２１を記憶する。
【００２３】
入出力Ｉ／Ｆ１３は、セキュアエレメント２０と情報の入出力を行うためのインターフェイスであり、上述の如く、ＩＳＯ７８１６、ＳＰＩ等の規格で情報の入出力を行う。通信部１４は、インターネット通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークＮを介してサーバ３等と情報の送受信を行う。入力部１５は、ユーザから情報の入力を受け付ける入力インターフェイスであり、デバイス１の種類に応じて、例えばメカニカルキー、タッチパネル、音声入力マイク等、種々の形態であり得る。撮像部１６は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサ等を有する撮像機構であり、画像の撮像を行う。
【００２４】
セキュアエレメント２０は、読出部２１、スクランブル部２２、乱数発生器２３、デスクランブル部２４、照合部２５、計数部２６、入出力Ｉ／Ｆ２７、記憶部２８を備える。
読出部２１は、記憶部２８からデータを読み出してデバイス本体１０に出力する。入出力Ｉ／Ｆ２７は、デバイス本体１０の入出力Ｉ／Ｆ１３との間でデータの入出力を行う。記憶部２８は不揮発性メモリであり、後述するように、デバイス本体１０が推論モデル１２１を展開するために必要な推論モデル用パラメータ２８１を記憶している。
【００２５】
スクランブル部２２は、記憶部２８に記憶してある推論モデル用パラメータ２８１をスクランブル化するスクランブル処理を実行する。乱数発生器２３は、スクランブルに用いる乱数値を生成する。デスクランブル部２４は、スクランブル化された推論モデル用パラメータ２８１を復号するデスクランブル処理を実行する。照合部２５は、後述するように、推論モデル用パラメータ２８１のスクランブルが正しく解除されたか否かを検証するため、スクランブル解除後、当該パラメータに予め付加されているＣＲＣ（Cyclic Redundancy Check）値を照合する処理を行う。計数部２６は、デスクランブル部２４によるパラメータのスクランブル解除回数をカウントする。
【００２６】
サーバ３は、制御部３１、主記憶部３２、通信部３３、及び補助記憶部３４を備える。
制御部３１は、一又は複数のＣＰＵ、ＭＰＵ等の演算装置を備え、サーバ３に係る種々の情報処理、制御処理を行う。主記憶部３２は、ＲＡＭ等の揮発性メモリであり、制御部３１が処理を実行する上で必要なデータを一時的に記憶する。通信部３３は、通信に関する処理を行う処理回路等を有し、ネットワークＮを介してデバイス１等と通信を行う。
【００２７】
補助記憶部３４は、大容量メモリ、ハードディスク等であり、サーバ３が処理を行うために必要なプログラムＰ２、その他のデータを記憶している。また、補助記憶部３４は、推論モデル用パラメータ２８１及びデバイスＤＢ３４１を記憶している。推論モデル用パラメータ２８１は、デバイス１に配信する最新の推論モデル１２１のデータであり、デバイス１が推論モデル１２１を展開する上で必要なパラメータである。デバイスＤＢ３４１は、サーバ３と推論モデル１２１のデータを同期する各デバイス１を管理するためのデータベースである。
【００２８】
なお、補助記憶部３４はサーバ３に接続された外部記憶装置であってもよい。また、サーバ３は複数のコンピュータからなるマルチサーバであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【００２９】
図２は、推論モデル１２１の展開処理における処理動作を示す説明図である。図２では、デバイス本体１０がセキュアエレメント２０から推論モデル用パラメータ２８１を読み出し、当該パラメータに基づいて推論モデル１２１をメモリ上に展開する様子を概念的に図示している。
上述の如く、セキュアエレメント２０は記憶部２８に、機械学習により生成された推論モデル１２１を展開するための推論モデル用パラメータ２８１を記憶している。本実施の形態において推論モデル１２１は、ディープラーニングにより生成されたニューラルネットワークであるものとして説明する。なお、機械学習のアルゴリズムはディープラーニングに限定されるものではなく、例えば回帰法、決定木学習、ベイズ法、クラスタリング等であってもよく、また、推論モデル１２１はニューラルネットワークに限定されるものではなく、線形モデル、決定木、ベイジアンネットワーク等であってもよい。
【００３０】
例えばサーバ３は、定期的に推論モデル１２１のアップデート（学習）を行い、最新の推論モデル用パラメータ２８１をデバイス１に配信する。デバイス１は、サーバ３から配信された推論モデル用パラメータ２８１をセキュアエレメント２０に格納しておく。なお、機械学習は、パラメータの配信元であるサーバ３が主体となって行うものでもよく、他のコンピュータが機械学習を行って学習結果をサーバ３に保存しておいてもよい。
【００３１】
推論モデル用パラメータ２８１は、ハイパーパラメータ２８１ａ（図３参照）と、学習パラメータ２８１ｂ（図４参照）とから成るデータ群である。ハイパーパラメータ２８１ａは、コンピュータに機械学習を行わせるために手動設定される設定値であり、推論モデル１２１の基本構造を一意に特定可能なパラメータである。学習パラメータ２８１ｂは、ハイパーパラメータ２８１ａで規定されるネットワーク構造の下、機械学習によりコンピュータが学習した学習値である。サーバ３は、正解値付きの教師データの入力を受け、各ニューロンに適用する学習パラメータ２８１ｂを学習する。なお、各パラメータの詳細については後述する。
なお、機械学習は教師なし学習、半教師学習等であってもよい。また、機械学習は強化学習であってもよく、この場合、推論モデル用パラメータ２８１はＱ値（Ｑ（ｓ，ａ）；ｓは状態、ａは行動）であってもよい。
【００３２】
図２において符号Ｐ１〜Ｐ８で示す処理プロセスについて、順に説明する。なお、初期段階でデバイス本体１０には推論モデル１２１が未展開であるものとする。
例えばデバイス１の起動時、又は推論を伴うアプリケーションの動作開始時等に、デバイス本体１０の制御部１１は、セキュアエレメント２０に対して推論モデル用パラメータ２８１の読み出しを要求する（Ｐ１）。
【００３３】
読出要求を受け付けた場合、セキュアエレメント２０の読出部２１は、記憶部２８から推論モデル用パラメータ２８１を読み出す（Ｐ２）。具体的には、読出部２１は上記のハイパーパラメータ２８１ａ及び学習パラメータ２８１ｂを読み出す。
【００３４】
読出部２１は、読み出した推論モデル用パラメータ２８１をスクランブル部２２に出力し、パラメータのスクランブル化を要求する（Ｐ３）。具体的には、読出部２１は、後述するようにハイパーパラメータ２８１ａで基本構造が決定される推論モデル１２１に対して適用する学習パラメータ２８１ｂのスクランブル化を要求する。
【００３５】
スクランブル化の要求を受け付けた場合、スクランブル部２２は記憶部２８から、固有ＩＤ２８２及びスクランブル鍵２８３を取得する（Ｐ４）。固有ＩＤ２８２は、個々のデバイス１に搭載されているセキュアエレメント２０に固有の個体識別情報であり、例えば製造番号等、同種のセキュアエレメント２０であっても個体によって別々に割り当てられた識別情報である。なお、固有ＩＤは個体に応じて異なる固有の情報であればよく、例えばセキュアエレメント２０ではなくデバイス１自体の製造番号等であってもよい。
【００３６】
スクランブル鍵２８３は、スクランブル化に用いる鍵値であり、例えば共通鍵方式の共通鍵、公開鍵方式の公開鍵等の秘密の固定値である。スクランブル鍵２８３は、全てのデバイス１のセキュアエレメント２０において共通としても良いが、固有ＩＤ２８２に紐付かせ、個体毎に個別化すると好適である。本実施の形態では、スクランブル鍵２８３はセキュアエレメント２０毎に異なるものとする。
【００３７】
また、スクランブル部２２は、乱数発生器２３から乱数値を取得する（Ｐ５）。
【００３８】
スクランブル部２２は、取得した固有ＩＤ２８２、スクランブル鍵２８３、及び乱数値に基づいてマスク値を演算し、演算したマスク値を用いて推論モデル用パラメータ２８１のスクランブル化を行う。具体的には、スクランブル部２２は、推論モデル用パラメータ２８１のうち、学習パラメータ２８１ｂのスクランブル値を演算する。学習パラメータ２８１ｂのスクランブル化について、詳細は後述する。スクランブル部２２は、スクランブル化されていない平文のハイパーパラメータ２８１ａと、スクランブル化された学習パラメータ２８１ｂとを含む推論モデル用パラメータ２８１を、デバイス本体１０に出力する（Ｐ６）。また、スクランブル部２２は、スクランブル時に用いたマスク値を記憶部２８に保存しておく（Ｐ７）。
【００３９】
推論モデル用パラメータ２８１を取得した場合、デバイス本体１０の制御部１１は、当該パラメータに基づいて、メモリ（記憶部１２）上に推論モデル１２１を展開する（Ｐ８）。具体的には以下に説明するように、制御部１１は、ハイパーパラメータ２８１ａに基づいて推論モデル１２１の基本構造を決定し、基本構造を決定した推論モデル１２１に対して学習パラメータ２８１ｂのスクランブル値を適用することで、演算処理内容を暗号化した推論モデル１２１のモデルデータを構築する。
【００４０】
図３は、推論モデル１２１の基本構造に関する説明図である。図３の上側に示す表は、ハイパーパラメータ２８１ａの一例である。例えば図３に示すように、推論モデル１２１がニューラルネットワークである場合、ハイパーパラメータ２８１ａは、各ニューロン層に入力される入力数、各ニューロン層から出力される出力数、ニューロン間の層間結合、各ニューロンの演算処理に用いられる活性化関数等が該当し、ニューロン層毎に構造を一意に特定可能なように規定されている。
【００４１】
図３では、ハイパーパラメータ２８１ａに基づいてニューラルネットワークの基本構造を決定する様子を概念的に図示している。図３の例では、第０層（入力層）の入力数は「３」に規定されているため、デバイス本体１０の制御部１１は、入力値ｘ０〜ｘ２を想定する。また、第０層の出力数は「３」であるため、制御部１１は、ニューロンを３つ配置する。また、層間結合は「全結合」であるため、制御部１１は、第０層の全てのニューロンの出力値を、次の層（第１層）の全てのニューロンに対して入力する。さらに、第０層の活性化関数はＲｅＬＵ（Rectified Linear Unit）で定義されているため、制御部１１は、第０層の各ニューロンにおいて、ＲｅＬＵ関数を用いて出力値を演算する。
【００４２】
以下同様にして、制御部１１は、各ニューロン層における構造を決定する。これによって制御部１１は、図３に示すように、入力から出力に至るニューラルネットワークの基本構造を決定する。
【００４３】
図４は、学習パラメータ２８１ｂのスクランブル化及び推論モデル１２１への適用処理を説明するための説明図である。図４では、セキュアエレメント２０が学習パラメータ２８１ｂのスクランブル値を演算すると共に、スクランブル化されたパラメータを推論モデル１２１に適用することで、演算内容を暗号化したモデルデータを展開する様子を図示している。なお、図４では簡潔のため、第０〜３層のニューロン層からなるニューラルネットワークのうち、第０層の部分についてのみ図示してある。
【００４４】
図４の右側中段に示す表は、ニューラルネットワークに適用される学習パラメータ２８１ｂの一例である。例えば推論モデル１２１がニューラルネットワークである場合、学習パラメータ２８１ｂは、各ニューロンに入力される入力値に対して乗算される重み付け係数、各ニューロンにおいて演算を行う際に加えられるバイアス値等が該当する。なお、図４に示す学習パラメータ２８１ｂの表において、「０」〜「２」の縦列に示す値は重み付け係数であり、「ｂｉａｓ」の縦列に示す値はバイアス値であり、「ＣＲＣ」の列に示す値は、学習パラメータ２８１ｂに付加されているＣＲＣ値である。ＣＲＣ値については後述する。本実施の形態において学習パラメータ２８１ｂは、１６ビットの半精度浮動小数点数で表現されている。
【００４５】
まず、セキュアエレメント２０によるスクランブル処理について説明する。セキュアエレメント２０は、上述の如く、固有ＩＤ２８２、スクランブル鍵２８３、及び乱数値に基づいてマスク値を計算し、当該マスク値に基づいて学習パラメータ２８１ｂをスクランブル値に変換する。例えばセキュアエレメント２０は、乱数発生器２３が生成した１６バイトの乱数値と、同じく１６バイトで規定されている固有ＩＤ２８２とを連結し、１６バイトのスクランブル鍵２８３を用いて連結値からマスク値を計算する。例えばセキュアエレメントは、ＨＭＡＣ−ＳＨＡ２５６の関数を用いてＭＡＣ値を計算し、計算したＭＡＣ値をマスク値とする。
【００４６】
セキュアエレメント２０は、マスク値を１０バイト毎に分割した後、分割したマスク値と、半精度浮動小数点で表現された学習パラメータ２８１ｂとの排他的論理和演算を行って、スクランブル値（図４右上の表参照）を計算する。なお、セキュアエレメント２０は、学習パラメータ２８１ｂに付加されているＣＲＣ値もスクランブル値に変換する。
【００４７】
なお上記では排他的論理和演算を用いて学習パラメータ２８１ｂのスクランブル化を行っているが、本実施の形態はこれに限定されるものではない。例えばセキュアエレメント２０は、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）等の共通鍵暗号方式、あるいはＲＳＡ、ＥＣＣ（Elliptic Curve Cryptography；楕円曲線暗号）等の公開鍵暗号方式を用いてスクランブル処理を行ってもよい。なお、鍵値は上記のマスク値と同様、セキュアエレメント２０内部で生成して使用すればよい。このように、セキュアエレメント２０は学習パラメータ２８１ｂを解析困難なようにスクランブル化することができればよく、論理演算以外の手法でスクランブル処理を行ってもよい。
【００４８】
次に、デバイス本体１０におけるスクランブル値の適用処理について説明する。セキュアエレメント２０は、上記のようにして計算したスクランブル値をデバイス本体１０に出力する。デバイス本体１０は、セキュアエレメント２０から取得した学習パラメータ２８１ｂのスクランブル値を、本来の学習パラメータ２８１ｂを適用すべきニューラルネットワーク上の適用箇所にそのまま適用していく。例えば第０層でニューロン番号が「０」のニューロンについて考えた場合、デバイス本体１０は、０番目のニューロンに入力される入力値ｘ０〜ｘ２の重み付け係数として、セキュアエレメント２０が演算した重み付け係数のスクランブル値を、元のパラメータに復号することなく、そのまま設定する。また、デバイス本体１０は、当該ニューロンにおいて演算時に用いるバイアス値として、セキュアエレメント２０が演算したバイアス値のスクランブル値をそのまま設定する。これにより、図４左上に示すように、本来設定されるべき学習パラメータ２８１ｂ（図４右下の表参照）に代えて、当該パラメータをスクランブル化したパラメータ（図４右上の表参照）が０番目のニューロンに対して設定される。デバイス本体１０は、第０層の１番目、２番目のニューロン、及び第１〜３層のニューロンについても同様に、学習パラメータ２８１ｂのスクランブル値を設定していく。
【００４９】
なお、デバイス本体１０は重み付け係数やバイアス値と同様にして、各ニューロンに対応付けてＣＲＣ値（のスクランブル値）を推論モデル１２１上に格納しておく。後述するように、デバイス本体１０は学習パラメータ２８１ｂのスクランブル解除をセキュアエレメント２０に要求する場合、ＣＲＣ値も併せてセキュアエレメント２０に受け渡し、セキュアエレメント２０は、ＣＲＣ値も復号する。
【００５０】
上記により、デバイス１は、学習パラメータ２８１ｂがスクランブル化された推論モデル１２１をメモリ上に展開する。この状態でデバイス１のメモリダンプを行っても、推論モデル１２１を構築可能な学習パラメータ２８１ｂを搾取することができない。これによって、安全性が確保される。
【００５１】
一方で、このままでは推論処理自体を実行できないため、デバイス１は、推論処理を実行する場合に学習パラメータ２８１ｂのスクランブルを解除（デスクランブル）することで、搾取に備えつつ演算を行う。具体的には、デバイス１は、演算対象とするニューロンに適用してあるスクランブル値を逐次セキュアエレメント２０に出力し、セキュアエレメント２０にスクランブルの解除を実行させ、スクランブルが解除された学習パラメータ２８１ｂを元のニューロンに適用する。これにより、デバイス１は推論モデル１２１を演算可能な状態にし、演算を行う。
【００５２】
図５は、推論処理に関する説明図である。図５では、デバイス本体１０が推論モデル１２１に基づく推論処理を実行する際に、セキュアエレメント２０が学習パラメータ２８１ｂのスクランブルを解除し、解除したパラメータをデバイス本体１０に返送して、デバイス本体１０が演算を行う様子を概念的に図示している。図５では、図４と対比する形で、第０層（入力層）のニューロンに適用されている学習パラメータ２８１ｂのスクランブルを解除する様子を図示している。
【００５３】
図５において符号Ｐ２１〜Ｐ２８で示す処理プロセスについて、順に説明する。まずデバイス本体１０の制御部１１は、推論を行うニューロン層の入力値を用意する（Ｐ２１）。図５の例は入力層であるため、推論対象とする入力データのパラメータを用意する。例えばデバイス１が監視カメラである場合、デバイス本体１０は、撮像部１６で撮像した画像を入力データとして取得し、当該画像データのパラメータ（例えば画素値）を入力値ｘ０〜ｘ２として準備する。
【００５４】
制御部１１は、演算を行う層における一のニューロンについて、当該ニューロンに適用されているスクランブル値を抽出する（Ｐ２２）。図５の例では、制御部１１は、まず第０層の０番目のニューロンに設定してあるスクランブル値を抽出する。具体的には、制御部１１は、入力値ｘ０〜ｘ２を０番目のニューロンに入力する際に乗算される重み付け係数、０番目のニューロンにおいて演算を行う際のバイアス値、及び当該ニューロンと対応付けて格納されているＣＲＣ値について、各々のパラメータのスクランブル値を抽出する。
【００５５】
制御部１１は、抽出した学習パラメータ２８１ｂのスクランブル値を、スクランブル解除対象とする学習パラメータ２８１ｂを特定可能な特定情報と共にセキュアエレメント２０へ出力し、スクランブルの解除を要求する（Ｐ２３）。特定情報は、推論モデル１２１における学習パラメータ２８１ｂの適用箇所を示す情報であり、推論モデル１２１がニューラルネットワークである場合、学習パラメータ２８１ｂが適用されているニューロンの層番号、ニューロン番号等の情報である。図５の例の場合、制御部１１は、第０層の０番目のニューロンが解除対象である旨の情報を出力する。後述するように、セキュアエレメント２０がスクランブル解除に用いるマスク値を特定可能なように、デバイス本体１０は、学習パラメータ２８１ｂのスクランブル値と共に特定情報を出力する。
【００５６】
解除要求を受け付けた場合、まずセキュアエレメント２０の計数部２６が、スクランブル解除回数（デスクランブルの実行回数）をカウントし、解除回数が一定回数に達していないか否かを確認する（Ｐ２４）。例えば計数部２６は、スクランブル解除の残回数を保持しており、デバイス本体１０からの要求に応じて解除を試行する度に、残回数をデクリメントする。そして計数部２６は、残回数が０になっていないかを確認する。残回数が０になった場合、セキュアエレメント２０は以降の処理を行わず、スクランブルを解除しない。これにより、外部からの不正なスクランブル解除の試行を抑止することができる。
【００５７】
解除回数が一定回数に達していない場合、セキュアエレメント２０は、デバイス本体１０から取得した特定情報を参照して、スクランブル解除に必要なマスク値を特定する（Ｐ２５）。図５の例では、第０層の０番目のニューロンであることから、セキュアエレメント２０は、第０層の０番目のニューロンの学習パラメータ２８１ｂをスクランブル化した際に用いたマスク値を、記憶部２８に記憶してあるマスク値から特定する。このように、セキュアエレメント２０は、学習パラメータ２８１ｂをスクランブル化した際に用いたマスク値、つまり学習パラメータ２８１ｂのスクランブル解除に必要なデータを特定する。
【００５８】
セキュアエレメント２０のデスクランブル部２４は、デバイス本体１０から取得したスクランブル値に対し、上記で特定したマスク値を適用して、スクランブルが解除された平文の学習パラメータ２８１ｂを取得する（Ｐ２６）。例えばデスクランブル部２４は、上述の重み付け係数、バイアス値、及びＣＲＣ値のスクランブルを解除する。
【００５９】
セキュアエレメント２０の照合部２５は、スクランブル解除後の学習パラメータ２８１ｂからＣＲＣ値を計算し、スクランブルを解除することで取得したＣＲＣ値と照合する（Ｐ２７）。ＣＲＣ値は、上述の如く学習パラメータ２８１ｂに予め付加された検査値であり、学習パラメータ２８１ｂの改竄検知用に付加されたパラメータである。照合部２５は、デスクランブル部２４がスクランブルを解除した重み付け係数及びバイアス値から、ＣＲＣ値を計算する。また、ＣＲＣ値は、重み付け係数やバイアス値と同様にスクランブル化した上で推論モデル１２１に格納されており、デスクランブル部２４は、ＣＲＣ値についてもスクランブルの解除を行っている。照合部２５は、スクランブル解除後にＣＲＣ値を除く学習パラメータ２８１ｂから計算したＣＲＣ値と、スクランブル解除により得たＣＲＣ値との比較を行い、両者が一致するか否かを確認する。このように、ＣＲＣ値のようなパラメータを付加しておき、スクランブル解除後に検算を行うことで、学習パラメータ２８１ｂが第三者によって改竄されている事態を検知することができる。
【００６０】
ＣＲＣ値が一致しない場合、セキュアエレメント２０は、学習パラメータ２８１ｂが改竄されているものと判断する。セキュアエレメント２０は、スクランブル解除が失敗した旨をデバイス本体１０に通知し、推論を実行させない。ＣＲＣ値が一致する場合、セキュアエレメント２０は、学習パラメータ２８１ｂをデバイス本体１０に出力する（Ｐ２８）。
【００６１】
セキュアエレメント２０から学習パラメータ２８１ｂが返送された場合、デバイス本体１０の制御部１１は、スクランブル解除後の学習パラメータ２８１ｂを推論モデル１２１に適用し、出力値を演算する（Ｐ２９）。図５の例の場合、制御部１１は第０層の０番目のニューロンに対して学習パラメータ２８１ｂを設定し、入力値ｘ０〜ｘ２を当該ニューロンに入力する。制御部１１は演算を行い、当該ニューロンから次のニューロン層（第１層）に出力する出力値を演算する。
【００６２】
一のニューロン（上記では０番目のニューロン）において演算が終了した場合、制御部１１は、当該ニューロンの学習パラメータ２８１ｂを再び演算不可能な状態に戻す。例えば制御部１１は、演算終了後にセキュアエレメント２０に対して再スクランブルを要求し、適用されているパラメータをスクランブル値に戻す。また、例えば制御部１１は、学習パラメータ２８１ｂを一旦破棄し、一連の推論処理が終了後にセキュアエレメント２０からスクランブル値を取得して推論モデル１２１に再設定するようにしてもよい。
【００６３】
デバイス１は、第０層の１番目、２番目のニューロンについても順次パラメータのスクランブルを解除し、出力値を演算していく。第０層の演算が完了後、デバイス１は第１層、第２層についても同様にスクランブル解除を行い、出力層（第３層）の最後のニューロンまで演算を繰り返す。これにより、デバイス１は最終的な出力値ｙ０〜ｙ２を得て、推論モデル１２１による推論を完了する。例えばデバイス１は、画像内に含まれる物体が、機械学習時にその特徴量を学習した特定の物体である確率を示す値を出力値として演算し、特定の物体が撮像されたか否かを推論（推定）して、推論結果を出力する。
【００６４】
なお、上記ではニューロン単位で学習パラメータ２８１ｂのデスクランブル及び演算を行っているが、例えば層単位で一度にスクランブルを解除して演算を行う等してもよい。つまり、デバイス１はニューラルネットワーク上の所定区分毎にデスクランブルを実行することができればよく、個々のニューロン単位でデスクランブルを実行せずともよい。
【００６５】
図６は、デバイス１が実行する処理手順の一例を示すフローチャートである。図６に基づき、デバイス１が実行する全般的な処理内容について説明する。
デバイス１は、セキュアエレメント２０から推論モデル用パラメータ２８１を読み出し、メモリ（記憶部１２）上に推論モデル１２１を展開する処理を実行する（ステップＳ１１）。具体的には、デバイス１はセキュアエレメント２０から、平文のハイパーパラメータ２８１ａと、学習パラメータ２８１ｂのスクランブル値とを取得する。デバイス１は、ハイパーパラメータ２８１ａに基づいて推論モデル１２１の基本構造を決定し、当該推論モデルに対して学習パラメータ２８１ｂのスクランブル値を適用することで、演算内容を暗号化した推論モデル１２１を構築する。
【００６６】
デバイス１は、推論モデル１２１に基づく推論処理を実行する（ステップＳ１２）。具体的には、デバイス本体１０はセキュアエレメント２０に対して学習パラメータ２８１ｂのスクランブル解除を要求し、当該要求に対してセキュアエレメント２０は学習パラメータ２８１ｂのデスクランブルを行う。デバイス本体１０は、セキュアエレメント２０から返送された学習パラメータ２８１ｂを推論モデル１２１に適用し、推論に係る演算処理を実行する。デバイス１は、一連の処理を終了する。
【００６７】
図７は、モデル展開処理のサブルーチンの一例を示すフローチャートである。図７に基づき、ステップＳ１１のモデル展開処理について説明する。
デバイス本体１０の制御部１１は、セキュアエレメント２０に対し、推論モデル１２１を展開するために必要な推論モデル用パラメータ２８１の出力を要求する（ステップＳ３１）。パラメータの出力要求を受け付けた場合、セキュアエレメント２０は、記憶部２８に記憶してある推論モデル用パラメータ２８１を読み出す（ステップＳ３２）。具体的には、セキュアエレメント２０は、推論モデル１２１の基本構造を一意に特定可能なハイパーパラメータ２８１ａと、ハイパーパラメータ２８１ａで規定するモデル構造の下で、コンピュータ（サーバ３）が機械学習により学習した学習パラメータ２８１ｂとを読み出す。
【００６８】
セキュアエレメント２０は、読み出したパラメータをスクランブル部２２に入力し、当該パラメータのスクランブル化を行う（ステップＳ３３）。具体的には、セキュアエレメント２０は、推論モデル用パラメータ２８１のうち、学習パラメータ２８１ｂのスクランブル値を演算する。例えばセキュアエレメント２０は、セキュアエレメント２０に固有の個体識別情報である固有ＩＤ２８２と、個々のセキュアエレメント２０に応じて個別化されているスクランブル鍵２８３と、セキュアエレメント２０内の乱数発生器２３で生成した乱数とに基づき、スクランブル用のマスク値を計算する。セキュアエレメント２０は、当該マスク値を学習パラメータ２８１ｂに適用し、スクランブル値を計算する。セキュアエレメント２０は、計算したスクランブル値をデバイス本体１０に出力する（ステップＳ３４）。より詳しくは、セキュアエレメント２０は、平文のハイパーパラメータ２８１ａと、学習パラメータ２８１ｂのスクランブル値とを出力する。
【００６９】
セキュアエレメント２０から推論モデル用パラメータ２８１が出力された場合、デバイス本体１０の制御部１１は、ハイパーパラメータ２８１ａに基づいて推論モデル１２１の基本構造を決定する（ステップＳ３５）。制御部１１は、基本構造を決定した当該推論モデル１２１に対し、学習パラメータ２８１ｂのスクランブル値を適用する（ステップＳ３６）。これにより、制御部１１は推論モデル１２１を展開する。制御部１１は、サブルーチンをリターンする。
【００７０】
図８は、推論処理のサブルーチンの一例を示すフローチャートである。図８に基づき、ステップＳ１２の推論処理のサブルーチンについて説明する。
デバイス本体１０の制御部１１は、推論モデル１２１に入力する入力値を取得する（ステップＳ５１）。例えばデバイス１が監視カメラである場合、制御部１１は、撮像部１６で撮像した画像のパラメータを入力値として用意する。制御部１１は、当該入力値の入力対象であるニューロンに適用されている学習パラメータ２８１ｂのスクランブル値を、推論モデル１２１から抽出する（ステップＳ５２）。制御部１１は、抽出したスクランブル値と、該スクランブル値に係る学習パラメータ２８１ｂを特定する特定情報とをセキュアエレメント２０へ出力する（ステップＳ５３）。特定情報は、推論モデル１２１において学習パラメータ２８１ｂが適用される適用箇所を示す情報であり、推論モデル１２１がニューラルネットワークである場合、学習パラメータ２８１ｂを適用するニューロンを示す情報である。
【００７１】
スクランブル値及び特定情報をデバイス本体１０から取得した場合、セキュアエレメント２０は、デスクランブルの実行回数（解除回数）をカウントする（ステップＳ５４）。セキュアエレメント２０は、実行回数が一定回数に達したか否かを判定する（ステップＳ５５）。一定回数に達していないと判定した場合（Ｓ５５：ＮＯ）、セキュアエレメント２０は特定情報を参照して、学習パラメータ２８１ｂのスクランブル化を行った際に用いたマスク値を特定する（ステップＳ５６）。マスク値は、学習パラメータ２８１ｂのデスクランブルに必要なデータであり、上記のように、デバイス１の固有ＩＤ２８２、乱数値、及びスクランブル鍵２８３から生成されたデータである。
【００７２】
セキュアエレメント２０は、マスク値を用いて学習パラメータ２８１ｂのデスクランブルを実行する（ステップＳ５７）。セキュアエレメント２０は、学習パラメータ２８１ｂに付加してある検査値の照合を行う（ステップＳ５８）。当該検査値は、学習パラメータ２８１ｂの改竄を検知するために付加してあるパラメータであり、例えば学習パラメータ２８１ｂから計算されたＣＲＣ値である。セキュアエレメント２０は、デスクランブル後の学習パラメータ２８１ｂから抽出したＣＲＣ値が、ＣＲＣ値を除くデスクランブル後の学習パラメータ２８１ｂから計算したＣＲＣ値と一致したか否かを判定する（ステップＳ５９）。
【００７３】
デスクランブルの実行回数が一定回数に達したと判定した場合（Ｓ５５：ＹＥＳ）、又は検査値が一致しないと判定した場合（Ｓ５９：ＮＯ）、セキュアエレメント２０は、デスクランブルに失敗した旨をデバイス本体１０に通知する（ステップＳ６０）。当該通知を受けた場合、デバイス本体１０の制御部１１は、推論モデル１２１に基づく処理動作を停止し（ステップＳ６１）、サブルーチンをリターンする。
【００７４】
検査値が一致したと判定した場合（Ｓ５９：ＹＥＳ）、セキュアエレメント２０は、デスクランブルを行った学習パラメータ２８１ｂをデバイス本体１０に出力する（ステップＳ６２）。デバイス本体１０の制御部１１は、ステップＳ５３の出力要求に対してセキュアエレメント２０から返送された当該パラメータを、推論モデル１２１の該当箇所に適用し、推論に係る演算処理を行う（ステップＳ６３）。制御部１１は、全ての演算が完了したか否かを判定する（ステップＳ６４）。全ての演算が完了していないと判定した場合（Ｓ６４：ＮＯ）、制御部１１は、処理をステップＳ５２に戻す。これにより、デバイス１は次の演算箇所（ニューロン）についてスクランブル値を解除し、演算を進めていく。全ての演算が完了したと判定した場合（Ｓ６４：ＹＥＳ）、制御部１１は、推論結果を出力し（ステップＳ６５）、サブルーチンをリターンする。
【００７５】
なお、上記では全ての推論モデル用パラメータ２８１をセキュアエレメント２０に格納し、デバイス本体１０は全ての推論モデル用パラメータ２８１をセキュアエレメント２０から読み出して推論モデル１２１を構築することとした。一方で、例えばスクランブル対象である学習パラメータ２８１ｂのみをセキュアエレメント２０に格納し、ハイパーパラメータ２８１ａはデバイス本体１０に予めセットする等、推論モデル用パラメータ２８１を一部だけセキュアエレメント２０に用意するようにしてもよい。
【００７６】
また、上記では別段説明しなかったが、例えばニューロン層毎に異なる乱数値を用いてマスク値を計算するなど、マスク値の計算方法については種々の応用が考えられる。
【００７７】
また、スクランブル解除回数の管理についても種々の応用が考えられる。例えば推論処理が完了した場合に解除回数をリセットする、ニューロン層毎に解除回数をカウントする等、運用形態に応じて変更が考えられる。
【００７８】
また、例えばセキュアエレメント２０は、上記でカウントしたスクランブルの解除回数（デスクランブルの実行回数）をサーバ３へ通知し、サーバ３で個々のデバイス１における解除回数を管理するようにしてもよい。例えばセキュアエレメント２０は、推論処理の実行完了後、カウントした解除回数を、自身の固有ＩＤ２８２と共にサーバ３へ通知する。サーバ３は、固有ＩＤ２８２と対応付けて、通知された解除回数をデバイスＤＢ３４１に記憶する。これにより、サーバ３は個々のデバイス１における推論回数を遠隔監視することができる。
【００７９】
また、上記では、スクランブル解除回数が一定回数に達した場合は以降の推論処理を行わないこととしている。つまり、残回数が０となった場合は推論処理を実行できない。この場合、例えばデバイス１はサーバ３と通信を行って、スクランブル解除回数を制限回数（上限数）にリセットすると共に、サーバ３から最新の推論モデル１２１のパラメータを取得し、推論モデル１２１を更新するようにしてもよい。例えばサーバ３は、デバイス１から残回数が０になった旨の通知を受けた場合、所定の認証処理（スクランブル鍵２８３を用いた暗号認証等）を行ってデバイス１の正当性を確認した後、最新の推論モデル用パラメータ２８１を配信すると共に、解除回数をリセットするよう指示する。これにより、不正なスクランブル解除の試行を抑止しつつ、デバイス１における動作を適切に推移させることができる。
【００８０】
なお、例えば最新のパラメータの配信を契機として、デバイス１のユーザ宛にアップデート名目で料金を請求する処理（例えばクレジットカード会社への支払請求通知等）を行ってもよい。
また、上記では最新の推論モデル用パラメータ２８１をデバイス１に配信することにしたが、例えば最新の推論モデル用パラメータ２８１を格納したセキュアエレメント２０をユーザ宛に発行することで対応してもよい。つまり、何らかの手段でセキュアエレメント２０内のパラメータを更新することができればよい。
【００８１】
以上より、本実施の形態１によれば、デバイス１は、デバイス本体１０に推論モデル１２１の学習パラメータ２８１ｂをスクランブル化して保持しておき、デスクランブルに必要なデータはセキュアエレメント２０に保持しておく。そしてデバイス１は、推論処理を行う場合に必要なデータをセキュアエレメント２０から取り出し、デスクランブルした学習パラメータ２８１ｂを推論モデル１２１に適用して演算を行う。これにより、第三者がデバイス本体１０から推論モデル１２１のデータを搾取しても、学習パラメータ２８１ｂはスクランブル化されているため、推論モデル１２１を構築できない。従って、ＩｏＴ端末であるデバイス１において、機械学習結果を利用した処理を安全に実行することができる。
【００８２】
また、本実施の形態１によれば、デバイス本体１０よりも安全なセキュアエレメント２０でパラメータのデスクランブルを行うことで、安全性をより高めることができる。
【００８３】
また、本実施の形態１によれば、推論モデル１２１がニューラルネットワークである場合に、各ニューロンに適用したスクランブル値を逐次デスクランブルして処理を行っていく。これにより、全てのニューロンが同時に演算可能な状態とはならないため、パラメータ搾取に対する安全性を高めることができる。
【００８４】
また、本実施の形態１によれば、デスクランブル回数を制限することで、外部からの不正なデスクランブル試行を抑止することができる。
【００８５】
また、本実施の形態１によれば、学習パラメータ２８１ｂに付加された検査値をデスクランブル後に照合することで、デバイス本体１０に展開されている推論モデル１２１のパラメータ改竄等を検知することができる。
【００８６】
また、本実施の形態１によれば、セキュアエレメント２０がデスクランブルのみではなく、学習パラメータ２８１ｂのスクランブルも行うことで、推論モデル１２１展開時の安全性も確保することができる。
【００８７】
また、本実施の形態１によれば、セキュアエレメント２０は、自身の固有ＩＤを用いて学習パラメータ２８１ｂのスクランブルを行う。これにより、第三者による学習パラメータ２８１ｂの解析をより困難にすることができる。
【００８８】
また、本実施の形態１によれば、セキュアエレメント２０内で生成した乱数値を用いてスクランブルを行う。これにより、第三者による学習パラメータ２８１ｂの解析をより困難にすることができる。
【００８９】
（実施の形態２）
実施の形態１では、セキュアエレメント２０において学習パラメータ２８１ｂのスクランブル解除を行った。本実施の形態では、デバイス本体１０においてスクランブルを解除する形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図９は、実施の形態２に係るデスクランブル処理に関する説明図である。図９では図５と同様に、デバイス１が学習パラメータ２８１ｂのスクランブルを解除して推論モデル１２１に適用する様子を図示している。図９において符号Ｐ３１〜Ｐ４０に示す処理プロセスについて、順に説明する。
【００９０】
実施の形態１と同様に、デバイス本体１０は、推論を行うニューロン層の入力値を用意する（Ｐ３１）。また、デバイス本体１０は、当該ニューロン層の一のニューロンに適用してある学習パラメータ２８１ｂのスクランブル値を抽出する（Ｐ３２）。
【００９１】
本実施の形態においてデバイス本体１０は、学習パラメータ２８１ｂのスクランブル値をセキュアエレメント２０に出力せず、学習パラメータ２８１ｂの特定情報のみを出力し、当該学習パラメータ２８１ｂのスクランブル解除に必要なマスク値を出力するようセキュアエレメント２０に要求する（Ｐ３３）。このように、本実施の形態ではスクランブル解除に必要なマスク値の授受を行い、推論モデル１２１のパラメータ自体の授受は行わない。
【００９２】
特定情報を取得した場合、セキュアエレメント２０はまず、スクランブル解除回数をカウントする（Ｐ３４）。解除回数が一定回数に達していない場合、セキュアエレメント２０は、特定情報に基づき、解除対象であるニューロンの学習パラメータ２８１ｂのスクランブル解除に必要なマスク値を特定する（Ｐ３５）。そしてセキュアエレメント２０は、当該マスク値をデバイス本体１０に出力する（Ｐ３６）。
【００９３】
なお、上記でセキュアエレメント２０は、学習パラメータ２８１ｂとの論理演算（スクランブル）に用いたマスク値をデバイス本体１０へ供給することにしたが、例えばマスク値の計算に用いた固有ＩＤ２８２、スクランブル鍵２８３等の情報をデバイス本体１０に出力し、デバイス本体１０にマスク値の計算を行わせてもよい。
【００９４】
セキュアエレメント２０からマスク値を取得した場合、デバイス本体１０の制御部１１は、当該マスク値をスクランブル値に適用して、学習パラメータ２８１ｂのスクランブルを解除する（Ｐ３６）。そして制御部１１は、ＣＲＣ値の照合を行った後（Ｐ３８）、スクランブルを解除した学習パラメータ２８１ｂを対象ニューロンに適用し（Ｐ３９）、出力値を演算する（Ｐ４０）。
【００９５】
図１０は、実施の形態２に係る推論処理のサブルーチンの一例を示すフローチャートである。図１０に基づき、本実施の形態における推論処理の処理内容について説明する。
推論モデル１２１から学習パラメータ２８１ｂのスクランブル値を抽出した後（ステップＳ５２）、デバイス１は以下の処理を実行する。デバイス本体１０の制御部１１は、抽出した学習パラメータ２８１ｂを特定可能な特定情報を、学習パラメータ２８１ｂのスクランブルを解除するために必要なマスク値を格納するセキュアエレメント２０に出力する（ステップＳ２０１）。特定情報は、実施の形態１と同様に、例えばニューロン層の番号、各ニューロンに割り当てられたニューロン番号等である。
【００９６】
スクランブル解除回数をカウントし（ステップＳ５４）、解除回数が一定回数に達していないと判定した場合（Ｓ５５：ＮＯ）、セキュアエレメント２０は、デバイス本体１０から取得した特定情報を参照して、デバイス本体１０がスクランブル解除を実行するために必要なマスク値を特定する（ステップＳ２０２）。セキュアエレメント２０は、当該マスク値をデバイス本体１０に出力する（ステップＳ２０３）。
【００９７】
セキュアエレメント２０からマスク値を取得した場合、デバイス本体１０の制御部１１は、当該マスク値を用いて学習パラメータ２８１ｂのスクランブルを解除する（ステップ２０４）。制御部１１は、学習パラメータ２８１ｂに付加してある検査値（ＣＲＣ値）の照合を行う（ステップＳ２０５）。制御部１１は、デスクランブル後の学習パラメータ２８１ｂから抽出した検査値が、ＣＲＣ値を除くデスクランブル後の学習パラメータ２８１ｂから計算した検査値と一致したか否かを判定する（ステップＳ２０６）。検査値が一致しないと判定した場合（Ｓ２０６：ＮＯ）、制御部１１は推論処理の処理動作を停止し（ステップＳ６１）、サブルーチンをリターンする。
【００９８】
検査値が一致すると判定した場合（Ｓ２０６：ＹＥＳ）、制御部１１は、スクランブル解除後の学習パラメータ２８１ｂを推論モデル１２１に適用した上で、入力値から出力値を演算する演算処理を実行する（ステップＳ２０７）。制御部１１は、処理をステップＳ６４に移行する。
【００９９】
なお、本実施の形態では特定情報のみをデバイス本体１０からセキュアエレメント２０に出力し、デバイス本体１０がセキュアエレメント２０からマスク値を得てデスクランブルを実行したが、本実施の形態はこれに限定されるものではない。例えばデバイス本体１０は、特定情報だけでなく、解除対象である学習パラメータ２８１ｂの一部（例えばバイアス値）もセキュアエレメント２０に出力し、セキュアエレメント２０が当該一部のパラメータのスクランブルを解除する一方、デバイス本体１０が他のパラメータ（例えば重み付け係数）のスクランブルを解除するようにしてもよい。つまり、実施の形態１及び２を組み合わせて、一部のパラメータのスクランブル解除をセキュアエレメント２０で、他のパラメータのスクランブル解除をデバイス本体１０で行うようにしてもよい。
【０１００】
以上より、本実施の形態２によれば、セキュアエレメント２０ではスクランブル解除を行わず、デバイス本体１０でスクランブルを解除する。従って、例えばセキュアエレメント２０の計算能力が低い一方で推論を頻繁に行う場合等、よりマシンパワーの大きいデバイス本体１０で解除を実施することが適切なケースに対応することができる。
【０１０１】
上述の如く、デバイス本体１０は少なくともパラメータの特定情報をセキュアエレメント２０に受け渡し、セキュアエレメント２０がデスクランブル対象のパラメータを特定可能であればよく、デスクランブルを実行する処理主体はデバイス本体１０であってもよい。
【０１０２】
（実施の形態３）
実施の形態１では、学習パラメータ２８１ｂのスクランブル及びデスクランブルを行う処理主体がセキュアエレメント２０である場合について説明した。本実施の形態では、デバイス１において仮想的に構築されたトラステッド実行環境（ＴＥＥ；Trusted Execution Environment）においてスクランブル及びデスクランブルを行う形態について説明する。
【０１０３】
図１１は、実施の形態３に係るＩｏＴシステムの構成例を示すブロック図である。本実施の形態に係るデバイス１は、例えばＴｒｕｓｔＺｏｎｅ（登録商標）と称される技術を用いることによって、ソフトウェア（ＯＳ、アプケーションなど）の実行環境を、通常実行環境（ＲＥＥ；Rich Execution Environment）４１と、トラステッド実行環境４２とに分離している。
【０１０４】
通常実行環境４１は、広く一般的に利用されている汎用ＯＳ４１１の実行環境であり、トラステッド実行環境４２へのアクセスが制限される以外に、特段の機能制約がない実行環境である。汎用ＯＳ４１１は、通常実行環境４１においてＯＳの機能を果たすソフトウェアであり、アプリケーション４１２からの要求に応じて、デバイス１に接続されたハードウェアの制御等を含む各種ＯＳ機能を提供する。制御部１１は、汎用ＯＳ４１１上でアプリケーション４１２を実行することで、デバイス１の基本的、汎用的な処理を実行する。
【０１０５】
トラステッド実行環境４２は、セキュリティ機能を隔離する目的で、同一のＳｏＣ上で通常実行環境とは別に提供される独立した実行環境である。トラステッド実行環境４２は、通常実行環境４１からのアクセスが制限されており、実行可能な機能も限定されている。なお、トラステッド実行環境は、ＴＥＥのような称呼に限定されるものではなく、通常実行環境４１と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。デバイス１は、セキュリティ上保護すべきソフトウェア及びデータをトラステッド実行環境４２に配置すると共に、通常実行環境４１及びデバイス１の外部からのアクセスを制限することで、安全性を確保する。
【０１０６】
上述のように、通常実行環境４１からトラステッド実行環境４２にはアクセスできないように制限されており、通常実行環境４１からはトラステッド実行環境４２の存在を認識できない。通常実行環境４１からトラステッド実行環境４２で実行する処理を呼び出すためには、ソフトウェア上実現されるセキュアモニタ４３を経由しなければならない。
【０１０７】
トラステッドＯＳ４２１は、トラステッド実行環境４２においてＯＳの機能を果たすソフトウェアであり、アプリケーション４２２からの要求に応じて、セキュリティ機能を中心としたＯＳ機能を提供する。制御部１１は、トラステッドＯＳ４２１上でアプリケーション４２２を実行することで、本実施の形態に係るパラメータのスクランブル及びデスクランブル処理を含む、セキュリティ上重要な処理を実行する。
【０１０８】
なお、本実施の形態では、デバイス１の各種機能がＯＳ、アプリケーションのいずれで実装されるかは本質的事項ではなく、実装者が適宜選択すべき設計事項であることから、ＯＳ、アプリケーションの機能分担については説明を省略する。
【０１０９】
図１１に示すように、本実施の形態においてデバイス１の制御部１１は、トラステッド実行環境４２に推論モデル用パラメータ２８１、固有ＩＤ２８２、及びスクランブル鍵２８３を配置する。制御部１１は、トラステッド実行環境４２において推論モデル用パラメータ２８１（学習パラメータ２８１ｂ）のスクランブル化を行い、スクランブル値を通常実行環境４１へ受け渡す。制御部１１は、通常実行環境４１において推論モデル１２１を展開し、推論処理を実行する。
【０１１０】
推論処理を実行する場合、制御部１１は、演算対象とするニューロンに設定されたスクランブル値をトラステッド実行環境４２に受け渡す。制御部１１は、トラステッド実行環境においてパラメータのスクランブル解除、解除回数のカウント、及びＣＲＣ値の照合等を行い、スクランブル解除後のパラメータを通常実行環境４１に返送する。制御部１１は、返送されたパラメータを推論モデル１２１に適用し、推論処理に係る演算を行う。
【０１１１】
以上より、本実施の形態３によれば、デバイス１は、通常実行環境４１と、通常実行環境４１よりもセキュアなトラステッド実行環境４２とを構築し、トラステッド実行環境４２においてパラメータのスクランブル及びデスクランブル処理を実行する。このように、セキュアエレメント２０を搭載せずとも、ソフトウェア上の構成によって推論処理に係る安全性を確保することができる。
【０１１２】
上述の如く、デバイス１は、推論処理に係る演算を実行するコンポーネントよりもセキュアなコンポーネント（セキュア部）を有し、当該セキュアなコンポーネントにおいてデスクランブルに必要なデータを保持し、デスクランブルを実行可能（あるいは実施の形態２のようにデスクランブルに必要なデータを供給可能）であればよい。当該セキュアなコンポーネントは、ハードウェア上分離されたセキュアエレメント２０等であってもよく、ソフトウェア上分離されたトラステッド実行環境４２等であってもよい。
【０１１３】
セキュアエレメント２０に代えてトラステッド実行環境４２を実装する以外は実施の形態１と共通するため、本実施の形態では詳細な図示及び説明を省略する。
【０１１４】
（実施の形態４）
本実施の形態では、デバイス１が外部のサーバ３と相互に通信を行い、サーバ３が推論モデル用パラメータ２８１のスクランブル及びデスクランブルを行う形態について説明する。
図１２は、実施の形態４に係るＩｏＴシステムの構成例を示すブロック図である。本実施の形態では、デバイス１は、推論モデル用パラメータ２８１のスクランブル及びデスクランブルに関わるセキュアエレメント２０を有していない。一方で、サーバ３が推論モデル用パラメータ２８１のスクランブル及びデスクランブルに関わるスクランブル部３５、乱数発生器３６、デスクランブル部３７、照合部３８、及び計数部３９を有する。
【０１１５】
図１３は、デバイスＤＢ３４１のレコードレイアウトの一例を示す説明図である。デバイスＤＢ３４１は、固有ＩＤ列、スクランブル鍵列、解除回数列、乱数列を有する。固有ＩＤ列は、個々のデバイス１を識別可能な固有ＩＤ２８２を記憶している。スクランブル鍵列は、固有ＩＤ２８２と対応付けて、各デバイス１について学習パラメータ２８１ｂのスクランブル化を行う際に用いるスクランブル鍵２８３を記憶している。解除回数列は、固有ＩＤ２８２と対応付けて、各デバイス１についてデスクランブルを実行した回数（例えば残回数）を記憶している。乱数列は、固有ＩＤ２８２と対応付けて、各デバイス１に配信したパラメータのスクランブル時に用いた乱数値を記憶している。
【０１１６】
本実施の形態では、デバイス１内部のセキュアエレメント２０ではなく、外部のサーバ３がパラメータのスクランブル及びデスクランブルを行う。
まずサーバ３は、推論モデル用パラメータ２８１の出力要求をデバイス１から受け付けた場合、学習パラメータ２８１ｂのスクランブル化を行い、学習パラメータ２８１ｂのスクランブル値を含む推論モデル用パラメータ２８１をデバイス１に送信する。具体的には、デバイス１は自装置の固有ＩＤ２８２を送信して出力要求を行う。サーバ３は、当該固有ＩＤ２８２と対応付けられたスクランブル鍵２８３をデバイスＤＢ３４１から読み出す。また、サーバ３は、乱数発生器３６により乱数値を生成する。サーバ３は、実施の形態１でセキュアエレメント２０が行った処理と同様に、固有ＩＤ２８２、スクランブル鍵２８３、及び乱数値を用いてマスク値を生成し、当該マスク値を学習パラメータ２８１ｂに適用してスクランブル値を演算する。なお、サーバ３は、スクランブル時に生成した乱数値をデバイスＤＢ３４１に格納し、デバイス１からスクランブル解除要求があった場合に当該乱数値を用いてスクランブルを解除できるようにしておく。
【０１１７】
サーバ３は、平文のハイパーパラメータ２８１ａと、スクランブル化した学習パラメータ２８１ｂとを含む推論モデル用パラメータ２８１をデバイス１に送信する。デバイス１の制御部１１は、当該パラメータに基づいて推論モデル１２１をメモリ上に展開する。具体的には実施の形態１と同様に、制御部１１は、学習パラメータ２８１ｂのスクランブル値を適用した推論モデル１２１を構築する。
【０１１８】
推論処理を実行する場合、デバイス１は、学習パラメータ２８１ｂのスクランブルを解除するようサーバ３に要求する。具体的には、デバイス１は、推論モデル１２１に適用されている学習パラメータ２８１ｂのスクランブル値と、自装置の固有ＩＤ２８２とを送信し、スクランブル解除を要求する。解除要求を受け付けた場合、サーバ３は解除回数のチェックを行い、解除回数が一定回数に達していない場合、スクランブル解除を行う。サーバ３は、デバイス１から送信された固有ＩＤ２８２に基づき、デバイスＤＢ３４１から、スクランブル解除に必要なスクランブル鍵２８３及び乱数値を読み出す。サーバ３は、デバイス１の固有ＩＤ２８２と、デバイスＤＢ３４１から読み出したスクランブル鍵２８３及び乱数値とに基づき、学習パラメータ２８１ｂのスクランブルを解除する。
【０１１９】
サーバ３は、スクランブルを解除した学習パラメータ２８１ｂをデバイス１に返信する。デバイス１は、サーバ３から返信された学習パラメータ２８１ｂを推論モデル１２１に適用し、推論処理に係る演算を行う。
【０１２０】
以上より、本実施の形態４によれば、デバイス１内部のセキュアエレメント２０ではなく、外部のサーバ３においてスクランブル及びデスクランブルを行う。当該構成であっても、実施の形態１と同様の効果を奏する。
【０１２１】
上述の如く、本システムは、推論処理を実行するユニット（デバイス本体１０）と、当該ユニットよりもセキュアなユニットとを有し、当該セキュアなユニットにおいてデスクランブルに必要なデータを保持し、デスクランブルを実行可能（あるいは実施の形態２のようにデスクランブルに必要なデータを供給可能）であればよい。当該セキュアなユニットは、デバイス１内部のコンポーネント（セキュアエレメント２０、トラステッド実行環境４２等）であってもよく、デバイス１に通信接続された外部装置（ネットワークＮ上のサーバ３）であってもよい。
【０１２２】
セキュアエレメント２０に代えてサーバ３がスクランブル及びデスクランブルを行う以外は実施の形態１と共通するため、本実施の形態では詳細な図示及び説明を省略する。
【０１２３】
（実施の形態５）
実施の形態１〜４では、パラメータのスクランブルを行う主体と、スクランブル解除を行う又はスクランブル解除に必要なデータを供給する主体とが同一であるものとして説明した。本実施の形態では、スクランブルを行う主体（第１のセキュアなユニット）と、スクランブル解除を行う主体（第２のセキュアなユニット）とが異なる形態について説明する。
図１４は、実施の形態５に係るスクランブル処理に関する説明図である。本実施の形態では、パラメータのスクランブル及びデスクランブルを複数の処理主体に分けて行う場合の一例として、サーバ３がパラメータのスクランブル化を行い、デバイス１のセキュアエレメント２０がデスクランブルを行う形態について説明する。
【０１２４】
サーバ３は、スクランブル部３５、乱数発生器３６等、パラメータのスクランブル化に関わる構成を有する。一方、デバイス１のセキュアエレメント２０は、デスクランブル部２４等、パラメータのスクランブル解除に関わる構成を有する。
【０１２５】
また、本実施の形態に係るセキュアエレメント２０は、通信路開設部２９を有する。通信路開設部２９は、セキュアエレメント２０（デバイス１）とサーバ３との間で秘匿通信路５１（図１５参照）を開設する処理を行う。秘匿通信路５１については後述する。
【０１２６】
また、セキュアエレメント２０は、記憶部２８に許可フラグ２８４をセットしてある。許可フラグ２８４は、セキュアエレメント２０でのスクランブル解除が許可又は禁止されている旨を表すフラグであり、サーバ３からの指示に従って設定される。許可フラグ２８４については後述する。
【０１２７】
まず、図１４に基づいて、推論モデル１２１の展開時の処理について、符号Ｐ５１〜Ｐ６１に示す処理プロセスを順に説明する。なお、図１４では図示の便宜のため、デバイス本体１０の入出力Ｉ／Ｆ１３及び通信部１４、セキュアエレメント２０の入出力Ｉ／Ｆ２７、サーバ３の通信部３３を点線の矩形枠により図示してある。
【０１２８】
まずデバイス本体１０の制御部１１は、セキュアエレメント２０に対し、固有ＩＤ２８２の読み出しを要求する（Ｐ５１）。読出要求を受け付けた場合、セキュアエレメント２０の読出部２１は、記憶部２８から固有ＩＤ２８２を読み出し、デバイス本体１０に出力する（Ｐ５２）。
【０１２９】
デバイス本体１０の制御部１１は、セキュアエレメント２０から取得した固有ＩＤ２８２をサーバ３に送信し、推論モデル用パラメータ２８１の出力を要求する（Ｐ５３）。出力要求を受け付けた場合、サーバ３の制御部３１は、補助記憶部３４に記憶してある推論モデル用パラメータ２８１を読み出す（Ｐ５４）。
【０１３０】
制御部３１は、読み出した推論モデル用パラメータ２８１のうち、学習パラメータ２８１ｂをスクランブル部３５に出力し、スクランブル化を要求する（Ｐ５５）。具体的には、制御部３１は、補助記憶部３４から読み出した学習パラメータ２８１ｂと、デバイス１から取得した固有ＩＤ２８２とをスクランブル部３５に受け渡す。
【０１３１】
スクランブル部３５は、デバイスＤＢ３４１から、スクランブル化に必要なスクランブル鍵２８３を読み出す（Ｐ５６）。具体的には、スクランブル部３５は、制御部３１から取得したデバイス１の固有ＩＤ２８２に対応付けて記憶されている、各デバイス１（セキュアエレメント２０）に応じて個別化されているスクランブル鍵２８３を読み出す。実施の形態４で既に述べたように、デバイスＤＢ３４１には、各セキュアエレメント２０（デバイス１）に固有の固有ＩＤ２８２と対応付けて、個々のセキュアエレメント２０専用のスクランブル鍵２８３が記憶されており、当該スクランブル鍵２８３は、デバイス１及びサーバ３の間で共有されている。サーバ３は、セキュアエレメント２０毎に個別化されたスクランブル鍵２８３を用いてスクランブル処理を行う。
【０１３２】
また、スクランブル部３５は、乱数発生器３６から乱数値を取得する（Ｐ５７）。そしてスクランブル部３５は、デバイス１から取得した固有ＩＤ２８２、当該固有ＩＤに対応するスクランブル鍵２８３、及び自装置で生成した乱数値を用いて、学習パラメータ２８１ｂのスクランブル化を実行する。スクランブル部３５は、学習パラメータ２８１ｂのスクランブル値を制御部３１に出力する（Ｐ５８）。また、デスクランブル部３７は、学習パラメータ２８１ｂのスクランブル化に用いた乱数値を、固有ＩＤ２８２と対応付けてデバイスＤＢ３４１に記憶しておく（Ｐ５９）
【０１３３】
サーバ３の制御部３１は、平文のハイパーパラメータ２８１ａと、スクランブル化した学習パラメータ２８１ｂとを含む推論モデル用パラメータ２８１をデバイス１に送信する（Ｐ６０）。デバイス本体１０の制御部１１は、サーバ３から取得した推論モデル用パラメータ２８１に基づき、学習パラメータ２８１ｂのスクランブル値を適用した推論モデル１２１をメモリ上に展開する（Ｐ６１）。
【０１３４】
図１５は、実施の形態５に係るデスクランブル処理に関する説明図である。デバイス１が推論処理を行う際の処理内容について、図１５で符号Ｐ７１〜Ｐ８０に示す処理プロセスを順に説明する。
推論対象である入力データを取得し、推論処理を実行する場合、まずデバイス本体１０の制御部１１は、セキュアエレメント２０に対し、サーバ３との間で乱数値を同期するよう要求する（Ｐ７１）。上述の如く、パラメータのスクランブル化は固有ＩＤ２８２、スクランブル鍵２８３、及び乱数値を用いて行われているため、デスクランブルを行う場合、各データが必要になる。この三者のうち、セキュアエレメント２０は固有ＩＤ２８２及びスクランブル鍵２８３を保有しているが、乱数値はサーバ３が生成したものであるため、保有していない。そこでデバイス１はまず、サーバ３との間で乱数値を同期する。
【０１３５】
同期要求を受け付けた場合、セキュアエレメント２０の通信路開設部２９は、サーバ３との間でエンドツーエンドの秘匿通信路５１を開設する（Ｐ７２）。秘匿通信路５１は、例えばＴＬＳ（Transport Layer Security）のプロトコルで通信内容を暗号化した通信路である。通信路開設部２９は、デバイス本体１０におけるネットワークＮとの通信インターフェイスである通信部１４を経由して、サーバ３との間の秘匿通信路５１を開設する。
【０１３６】
なお、秘匿通信路５１は通信内容を秘匿可能であればよく、例えばＳＳＬ（Secure Sockets Layer）等のプロトコルを採用してもよい。また、上記ではデバイス本体１０の物理的な通信手段（通信部１４）を経由して秘匿通信路５１を確立しているが、セキュアエレメント２０がサーバ３との間で秘匿通信路５１を開設可能であればよく、セキュアエレメント２０自体が物理的な通信手段（ＬＡＮ、Ｗｉ−Ｆｉ（登録商標）等）を有する場合、セキュアエレメント２０はサーバ３との間で秘匿通信路５１を直接確立してもよい。
【０１３７】
セキュアエレメント２０は、当該秘匿通信路５１を介してサーバ３から乱数値を取得する（Ｐ７３）。具体的には、セキュアエレメント２０がサーバ３に対し、自身の固有ＩＤ２８２を送信して乱数値の出力を要求する。サーバ３は、当該固有ＩＤ２８２に対応付けてデバイスＤＢ３４１に保存してある乱数値を読み出し、セキュアエレメント２０に返信する。
【０１３８】
また、サーバ３の制御部３１は、セキュアエレメント２０に対し、スクランブル解除を許可する旨の許否情報を送信する（Ｐ７４）。許否情報は、ＩｏＴ端末であるデバイス１でのスクランブル解除の是非を管理するための情報であり、スクランブル解除の許可又は禁止を表す情報である。サーバ３は、デバイス１で推論処理を実行し、スクランブルの解除処理を行う場合、許否情報を送信してスクランブル解除を遠隔管理する。これにより、第三者が不正にスクランブル解除を試行する事態を抑止する。許否情報を受信した場合、セキュアエレメント２０は、記憶部２８で保持してある許可フラグ２８４を「禁止」から「許可」に変更することで、サーバ３によりデスクランブルが許可された旨の許否情報を保持する（Ｐ７５）。なお、サーバ３も、デバイス１に対してスクランブル解除を許可した旨をデバイスＤＢ３４１に保持しておく（Ｐ７６）。
【０１３９】
セキュアエレメント２０のデスクランブル部２４は、サーバ３から取得した乱数値と、記憶部２８に記憶してある固有ＩＤ２８２及びスクランブル鍵２８３とを用いて、推論モデル１２１に適用されている学習パラメータ２８１ｂのスクランブルを解除する（Ｐ７７）。詳細な図示及び説明は省略するが、デスクランブル部２４は実施の形態１と同様に、デバイス本体１０から各ニューロンの学習パラメータ２８１ｂのスクランブル値及び特定情報を逐次取得し、スクランブル解除回数、ＣＲＣ値等を確認した上でスクランブル解除を行う。本実施の形態ではさらに、デスクランブル部２４は、許可フラグ２８４が「許可」に設定されているか否かを確認した上でスクランブル解除を行う。許可フラグ２８４が「禁止」に設定されている場合、デスクランブル部２４はスクランブル解除を行わずにその旨をデバイス本体１０に通知し、処理を終了する。
【０１４０】
全てのニューロンについてスクランブル解除が完了した場合、セキュアエレメント２０はサーバ３に対し、推論処理の完了を通知する（Ｐ７８）。なお、セキュアエレメント２０は、デバイス本体１０から取得した特定情報に基づき、解除要求がなされたニューロンが最後のニューロンであるか否かを判定することで、スクランブル解除の完了を検知する。または、セキュアエレメント２０は、自身がカウントしているスクランブル解除回数に基づき、スクランブル解除の完了を検知してもよい。デバイス１から推論処理の完了通知を受信した場合、サーバ３の制御部３１は、スクランブル解除を禁止する旨の許否情報をデバイス１に返信する（Ｐ７９）。また、制御部３１は、デバイスＤＢ３４１で管理してある許否情報を「許可」から「禁止」に変更する（Ｐ８０）。
【０１４１】
当該許否情報を受信した場合、セキュアエレメント２０は、許可フラグ２８４を「許可」から「禁止」に変更する（Ｐ８１）。セキュアエレメント２０は、サーバ３から受信した乱数値、及びスクランブル解除のため演算したマスク値等、スクランブル解除のために用いたデータを破棄し、一連の処理を完了する。
【０１４２】
上述の如く、本システムは複数の処理主体に分けて動作することができる。これにより、推論モデル１２１に係るセキュリティが特定のユニットに依存しない構成とすることができ、安全性を高めることができる。
【０１４３】
図１６は、実施の形態５に係るモデル展開のサブルーチンの一例を示すフローチャートである。図１６に基づき、本実施の形態に係るステップＳ１１のサブルーチンの処理内容について説明する。
デバイス本体１０の制御部１１は、セキュアエレメント２０に対し、固有ＩＤ２８２の出力を要求する（ステップＳ５０１）。固有ＩＤ２８２の出力要求を受け付けた場合、セキュアエレメント２０は、記憶部２８から固有ＩＤ２８２を読み出してデバイス本体１０に出力する（ステップＳ５０２）。
【０１４４】
デバイス本体１０の制御部１１は、セキュアエレメント２０から取得した固有ＩＤ２８２をサーバ３へ送信し、推論モデル用パラメータ２８１の出力を要求する（ステップＳ５０３）。パラメータの出力要求を受け付けた場合、サーバ３の制御部３１は、推論モデル用パラメータ２８１を補助記憶部３４から読み出す（ステップＳ５０４）。また、制御部３１は、デバイス本体１０から取得した固有ＩＤ２８２を参照して、スクランブル処理に用いるスクランブル鍵２８３をデバイスＤＢ３４１から読み出す（ステップＳ５０５）。上述の如く、デバイスＤＢ３４１には各セキュアエレメント２０（デバイス１）に応じて個別化されたスクランブル鍵２８３が記憶されており、当該スクランブル鍵２８３は、デバイス１及びサーバ３の間で共有されている。制御部３１は、デバイス１との間で共有している個別のスクランブル鍵２８３を、デバイス１から取得した固有ＩＤ２８２に基づいて特定する。
【０１４５】
制御部３１は、乱数発生器３６により乱数値を生成する（ステップＳ５０６）。そして制御部３１は、デバイス１から取得した固有ＩＤ２８２と、当該固有ＩＤ２８２に基づき特定したスクランブル鍵２８３と、自装置の乱数発生器３６で生成した乱数値とに基づいて、推論モデル用パラメータ２８１をスクランブル化する処理を実行する（ステップＳ５０７）。具体的には実施の形態１と同様に、制御部３１は、固有ＩＤ２８２、スクランブル鍵２８３及び乱数値に基づいてマスク値を計算し、当該マスク値を学習パラメータ２８１ｂに適用することで、学習パラメータ２８１ｂのスクランブル値を計算する。制御部１１は、平文のハイパーパラメータ２８１ａと、スクランブル化した学習パラメータ２８１ｂとを含む推論モデル用パラメータ２８１をデバイス１に出力する（ステップＳ５０８）。
【０１４６】
推論モデル用パラメータ２８１をサーバ３から取得した場合、デバイス本体１０の制御部１１は、推論モデル用パラメータ２８１のうち、ハイパーパラメータ２８１ａに基づいて推論モデル１２１の基本構造を決定する（ステップＳ５０９）。そして制御部１１は、基本構造を決定した推論モデル１２１に対して学習パラメータ２８１ｂのスクランブル値を適用する（ステップＳ５１０）。これにより、制御部１１は、学習パラメータ２８１ｂのスクランブル値を設定した推論モデル１２１をメモリ上に展開する。制御部１１は、サブルーチンをリターンする。
【０１４７】
図１７及び図１８は、実施の形態５に係る推論処理のサブルーチンの一例を示すフローチャートである。図１７及び図１８に基づき、本実施の形態に係るステップＳ１２のサブルーチンの処理内容について説明する。
推論モデル１２１に入力する入力値を取得した後（ステップＳ５１）、デバイス本体１０の制御部１１は、以下の処理を実行する。制御部１１はセキュアエレメント２０に対し、サーバ３との間で乱数値を同期するよう要求する（ステップＳ５２１）。同期要求を受け付けた場合、セキュアエレメント２０は、通信内容を暗号化した秘匿通信路５１をサーバ３との間に開設する（ステップＳ５２２）。セキュアエレメント２０は、当該秘匿通信路５１を介して、サーバ３に対し乱数値の同期を要求する（ステップＳ５２３）。具体的には、セキュアエレメント２０は、デバイス１（又はセキュアエレメント２０）に固有の固有ＩＤ２８２をサーバ３へ送信し、デバイス本体１０に展開されている推論モデル１２１の学習パラメータ２８１ｂのスクランブル解除に必要な乱数値を出力するよう要求する。
【０１４８】
出力要求を受け付けた場合、サーバ３の制御部３１は、スクランブル解除に必要な乱数値を、秘匿通信路５１を介してデバイス１に出力する（ステップＳ５２４）。具体的には、制御部３１は、セキュアエレメント２０から取得した固有ＩＤ２８２を参照して、当該固有ＩＤ２８２に対応付けられた乱数値をデバイスＤＢ３４１から読み出し、デバイス１へ返信する。
【０１４９】
また、制御部３１は、デバイス１におけるスクランブル解除を許可する旨の許否情報をデバイス１に送信する（ステップＳ５２５）。許否情報は、ＩｏＴ端末であるデバイス１でのスクランブル解除の是非を管理するための情報であり、デバイス１でのスクランブル解除の許可又は禁止を表す情報である。制御部３１は、乱数値をセキュアエレメント２０へ送信（出力）後、スクランブル解除を許可する旨の許否情報を送信し、解除を許可する。なお、制御部３１は、デバイスＤＢ３４１に記憶してある許否情報を更新し、スクランブル解除を許可した旨の許否情報をデバイスＤＢ３４１に記憶しておく。
【０１５０】
許否情報を受信した場合、セキュアエレメント２０は、記憶部１２に記憶してある許可フラグ２８４を「許可」に設定することで、許否情報を保持する（ステップＳ５２６）。セキュアエレメント２０は、デバイス本体１０に対して学習パラメータ２８１ｂのスクランブル値の出力を要求し（ステップＳ５２７）、処理をステップＳ５２に移行する。
【０１５１】
デバイス本体１０から学習パラメータ２８１ｂの特定情報及びスクランブル値を取得した場合（ステップＳ５３）、セキュアエレメント２０は、許可フラグ２８４（許否情報）を参照して、スクランブル解除が許可されているか否かを判定する（ステップＳ５２８）。許可されていないと判定した場合（Ｓ５２８：ＮＯ）、セキュアエレメント２０は処理をステップＳ６０に移行し、スクランブル解除を実行しない旨をデバイス本体１０に通知して、推論処理に係る処理動作を停止させる（図１８参照）。スクランブル解除が許可されていると判定した場合（Ｓ５２８：ＹＥＳ）、セキュアエレメント２０は処理をステップＳ５４に移行する。
【０１５２】
デスクランブルの実行回数（解除回数）が一定回数に達していないと判定した場合（Ｓ５５：ＮＯ）、セキュアエレメント２０は、記憶部２８に予め記憶してある固有ＩＤ２８２及びスクランブル鍵２８３と、ステップＳ５２４でサーバ３から取得した乱数値とに基づき、デスクランブルに必要なマスク値を生成する（ステップＳ５２９）。そしてセキュアエレメント２０は、デバイス本体１０から取得した推論モデル用パラメータ２８１のデスクランブル処理を実行する（ステップＳ５３０）。セキュアエレメント２０は、処理をステップＳ５８に移行する。
【０１５３】
図１８に移って、スクランブル解除後のパラメータをデバイス本体１０に出力した後（ステップＳ６２）、セキュアエレメント２０は、デバイス本体１０から要求されたデスクランブル処理の実行内容、又はデスクランブル処理の実行回数に応じて、推論モデル１２１に基づく一連の推論処理を完了したか否かを判定する（ステップＳ５３１）。例えばセキュアエレメント２０は、デバイス本体１０からスクランブル値と共に取得した特定情報を参照して、最後のニューロンに係る演算を実行したか否かを判定する。または、例えばセキュアエレメント２０は、ステップＳ５５でカウントした実行回数（解除回数）に基づき、最後のニューロンに係る演算を実行したか否かを判定する。推論処理が完了していないと判定した場合（Ｓ５３１：ＮＯ）、セキュアエレメント２０は、処理をステップＳ５２８に戻す。
【０１５４】
推論処理が完了したと判定した場合（Ｓ５３１：ＹＥＳ）、セキュアエレメント２０は、推論処理が完了した旨をサーバ３に通知する（ステップＳ５３２）。当該通知を取得した場合、サーバ３の制御部３１は、スクランブル解除を禁止する旨の許否情報をセキュアエレメント２０に送信する（ステップＳ５３３）。なお、サーバ３自体も、スクランブル解除を禁止した旨をデバイスＤＢ３４１に記憶しておく。
【０１５５】
サーバ３から許否情報を取得した場合、セキュアエレメント２０は、許可フラグ２８４を「許可」から「禁止」に変更する（ステップＳ５３４）。セキュアエレメント２０は、スクランブル解除に用いた乱数値、マスク値等のデータを削除し（ステップＳ５３５）、サブルーチンをリターンする。
【０１５６】
なお、上記でセキュアエレメント２０（第２のユニット）は学習パラメータ２８１ｂのスクランブルを解除しているが、実施の形態２のように、スクランブル解除のためのマスク値等のデータをデバイス本体１０へ出力し、デバイス本体１０がデスクランブルを行ってもよい。
【０１５７】
以上より、本実施の形態５によれば、複数の処理主体にスクランブル及びデスクランブルに必要なデータ（例えば固有ＩＤ２８２、スクランブル鍵２８３等）を共有させ、一の処理主体（第１のユニット）で学習パラメータ２８１ｂのスクランブル処理を、他の処理主体（第２のユニット）でデスクランブル処理を実行する。複数の処理主体に分けて学習パラメータ２８１ｂのスクランブル及びデスクランブル（又はデスクランブルに必要なデータの供給）を行うことで、本システムのセキュリティを特定の要素に依存しない構成とすることができる。
【０１５８】
また、本実施の形態５によれば、推論処理を実行する際、スクランブルを行った処理主体（上記ではサーバ３）がデスクランブルを行う処理主体（上記ではセキュアエレメント２０）に対し、乱数値等、デスクランブルに必要なデータを与えて同期する。好適には、推論処理完了後、後者は前者から与えられたデータを破棄することが望ましい。これにより、デスクランブルを行う処理主体は、通常時においてスクランブルを解除できないため、安全性を高めることができる。
【０１５９】
また、本実施の形態５によれば、セキュアエレメント２０はデスクランブルの許否を定める許否情報（許可フラグ２８４）を保持し、許否情報においてデスクランブルが禁止されている場合、スクランブル解除を実行しない。これにより、不正なスクランブル解除の試行を抑止し、安全性を高めることができる。
【０１６０】
また、本実施の形態５によれば、セキュアエレメント２０は、管理装置であるサーバ３からの指示に従って許否情報を設定する。これにより、サーバ３においてデバイス１の遠隔管理を行い、セキュリティの確保を図ることができる。
【０１６１】
（実施の形態６）
図１９は、上述した形態のデバイス１の動作を示す機能ブロック図である。制御部１１がプログラムＰ１を実行することにより、デバイス１は以下のように動作する。記憶部１９１は、機械学習により生成された学習済みモデルに対し、該学習済みモデルに基づく処理を実行する際に必要なパラメータのスクランブル値を適用したモデルデータを記憶する。実行部１９２は、前記学習済みモデルに基づく処理を実行する。出力部１９３は、該実行部１９２が処理を実行する場合、前記パラメータを特定する情報を、前記実行部１９２よりもセキュアなユニットであって、前記パラメータのデスクランブルに必要なデータを保持するセキュアなユニットに対して出力する。前記実行部１９２は、前記セキュアなユニットから返送されるデータに基づき、デスクランブルされた前記パラメータを用いて処理を実行する。
【０１６２】
本実施の形態６は以上の如きであり、その他は実施の形態１から５と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【０１６３】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６４】
１  デバイス
１０  デバイス本体
１２１  推論モデル（学習済みモデル）
２０  セキュアエレメント
２８１  推論モデル用パラメータ
２８１ａ  ハイパーパラメータ
２８１ｂ  学習パラメータ
２８２  固有ＩＤ
２８３  スクランブル鍵
３  サーバ
３４２  デバイスＤＢ
【図１】
2019109680.tif 000003
【図２】
2019109680.tif 000004
【図３】
2019109680.tif 000005
【図４】
2019109680.tif 000006
【図５】
2019109680.tif 000007
【図６】
2019109680.tif 000008
【図７】
2019109680.tif 000009
【図８】
2019109680.tif 000010
【図９】
2019109680.tif 000011
【図１０】
2019109680.tif 000012
【図１１】
2019109680.tif 000013
【図１２】
2019109680.tif 000014
【図１３】
2019109680.tif 000015
【図１４】
2019109680.tif 000016
【図１５】
2019109680.tif 000017
【図１６】
2019109680.tif 000018
【図１７】
2019109680.tif 000019
【図１８】
2019109680.tif 000020
【図１９】
2019109680.tif 000021