JP7501149B2 - Secure component, device, server, computer program and machine learning method - Google Patents
Secure component, device, server, computer program and machine learning method Download PDFInfo
- Publication number
- JP7501149B2 JP7501149B2 JP2020109731A JP2020109731A JP7501149B2 JP 7501149 B2 JP7501149 B2 JP 7501149B2 JP 2020109731 A JP2020109731 A JP 2020109731A JP 2020109731 A JP2020109731 A JP 2020109731A JP 7501149 B2 JP7501149 B2 JP 7501149B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- encrypted
- parameters
- server
- trained
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、セキュアコンポーネント、デバイス、サーバ、コンピュータプログラム及び機械学習方法に関する。 The present invention relates to a secure component, a device, a server, a computer program, and a machine learning method.
近年、IoTが普及しつつあり、現場にある末端の機器(エッジデバイスと称する)は収集したデータをサーバに送信し、サーバは収集されたデータを用いて機械学習を行うことにより学習済みモデルを生成することができる。また、サーバはエッジデバイスから送信されたデータと学習済みモデルを用いて判定処理や予測処理などを行い、判定結果や予測結果などをエッジデバイスに提供することができる。 In recent years, IoT has become widespread, and terminal equipment (called edge devices) at the site can send collected data to a server, and the server can generate a trained model by performing machine learning using the collected data. In addition, the server can perform judgment processing and prediction processing using the data sent from the edge device and the trained model, and provide the judgment results, prediction results, etc. to the edge device.
最近では、エッジデバイスに人工知能(AI)の学習済みモデルを実装し、エッジデバイスにおいて、判定処理や予測処理などを行う「エッジAI」が注目されている。特許文献1には、エッジデバイスが取得したデータをサーバに送信し、エッジデバイスとサーバの両方で機械学習するシステムが開示されている。
Recently, "edge AI" has been attracting attention, in which a trained model of artificial intelligence (AI) is implemented in an edge device, and the edge device performs judgment processing, prediction processing, and the like.
しかし、エッジデバイスは、第三者がアクセス可能な場所に設置される場合や、無人運転される場合がある。このため、機械学習の学習結果などの重要な情報をエッジデバイスに格納しておくと、このような重要な情報が不正に取得される可能性がある。また、エッジデバイスからサーバに送信するデータ量が増えると通信コストが高くなる。 However, edge devices may be installed in locations accessible to third parties or may be unmanned. For this reason, if important information such as the results of machine learning are stored on an edge device, there is a risk that such important information may be obtained illegally. Furthermore, communication costs increase as the amount of data sent from the edge device to the server increases.
本発明は、斯かる事情に鑑みてなされたものであり、機械学習により得られた学習結果を保護し、通信コストを低減することができるセキュアコンポーネント、デバイス、サーバ、コンピュータプログラム及び機械学習方法を提供することを目的とする。 The present invention has been made in consideration of the above circumstances, and aims to provide a secure component, device, server, computer program, and machine learning method that can protect the learning results obtained by machine learning and reduce communication costs.
本発明の実施の形態に係るセキュアコンポーネントは、機器が収集したデータを取得する取得部と、前記取得部で取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化する第1暗号化部と、前記第1暗号化部で暗号化した学習済みパラメータを第1サーバへ送信する送信部とを備える。 A secure component according to an embodiment of the present invention includes an acquisition unit that acquires data collected by a device, a first encryption unit that encrypts learned parameters obtained by machine learning using the data acquired by the acquisition unit, and a transmission unit that transmits the learned parameters encrypted by the first encryption unit to a first server.
本発明の実施の形態に係るデバイスは、前述のセキュアコンポーネントを備える。 The device according to the embodiment of the present invention includes the above-mentioned secure component.
本発明の実施の形態に係るサーバは、セキュアコンポーネントから、暗号化した学習済みパラメータを受信する受信部と、前記受信部で受信された暗号化した学習済みパラメータを復号する復号部と、前記復号部で復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する生成部とを備える。 A server according to an embodiment of the present invention includes a receiving unit that receives encrypted trained parameters from a secure component, a decrypting unit that decrypts the encrypted trained parameters received by the receiving unit, and a generating unit that generates a trained model based on the trained parameters decrypted by the decrypting unit and a required algorithm.
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、機器が収集したデータを取得し、取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、暗号化した学習済みパラメータをサーバへ送信する、処理を実行させる。 A computer program according to an embodiment of the present invention causes a computer to execute a process of acquiring data collected by a device, encrypting learned parameters obtained by machine learning using the acquired data, and transmitting the encrypted learned parameters to a server.
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、セキュアコンポーネントから、暗号化した学習済みパラメータを受信し、受信された暗号化した学習済みパラメータを復号し、復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する、処理を実行させる。 A computer program according to an embodiment of the present invention causes a computer to execute a process of receiving encrypted trained parameters from a secure component, decrypting the received encrypted trained parameters, and generating a trained model based on the decrypted trained parameters and a required algorithm.
本発明の実施の形態に係る機械学習方法は、セキュアコンポーネントが、機器が収集したデータを取得し、取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、暗号化した学習済みパラメータをサーバへ送信する。 In a machine learning method according to an embodiment of the present invention, a secure component acquires data collected by a device, encrypts learned parameters obtained by machine learning using the acquired data, and transmits the encrypted learned parameters to a server.
本発明によれば、機械学習により得られた学習結果を保護し、通信コストを低減することができる。 The present invention makes it possible to protect the learning results obtained through machine learning and reduce communication costs.
以下、本発明をその実施の形態を示す図面に基づいて説明する。図1は本実施の形態の機械学習システムの構成の一例を示す模式図である。機械学習システムは、複数(図1の例では3台)のIoTデバイス50を備える。IoTデバイス50は、例えば、OSを搭載して独立動作をすることができるデバイスであり、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイスである。IoTデバイス50は、デバイス本体としてのSoC(System on Chip)、及びセキュアコンポーネントとしてのセキュアエレメントを有する。IoTデバイス50の詳細は後述する。
The present invention will be described below with reference to the drawings showing an embodiment of the present invention. FIG. 1 is a schematic diagram showing an example of the configuration of a machine learning system according to the present embodiment. The machine learning system includes a plurality of IoT devices 50 (three in the example of FIG. 1). The
IoTデバイス50には、機器10が接続されている。機器10は、エッジデバイスとも称され、例えば、音声データや映像データ、あるいは、位置、長さ、時間、速度、加速度、圧力、温度、エネルギー又は電気量などのデータを収集又は生成できる装置であればよい。例えば、機器10には、各種センサ類、計測機器、カメラ、自動車部品、道路上の車両検知器、生産設備(工業機械)、家電製品、POS端末、スマートフォン、ウェアラブルデバイスなどのデータを収集又は生成できるものが含まれる。
The
図1の例では、1台のIoTデバイス50に1台の機器10が接続される形態、1台のIoTデバイス50に複数台(図1では3台)の機器10が接続される形態、及びIoTデバイス50が機器10の機能を備える形態を例示している。各IoTデバイス50は、機器10が収集したデータを取得することができる。また、IoTデバイス50は、自身がデータを収集することができる。各IoTデバイス50は、インターネットなどの通信ネットワーク1を介してサーバ100に接続することができる。
The example in FIG. 1 illustrates a form in which one
図2はIoTデバイス50の構成の一例を示すブロック図である。IoTデバイス50は、デバイス本体20、及びセキュアエレメント30を備える。デバイス本体20の大部分は、単一のSoC(System on a Chip)で構成され、一個の半導体チップ上にシステムの動作に必要な機能(例えば、CPU21、ネットワーク通信部23、記憶部24などを含む)の多く、あるいは全ての機能を一体化して実装している。アプリケーション22は、CPU21上で動作するアプリケーションである。なお、図2では、便宜上、一つのアプリケーション22を図示しているが、アプリケーション22の数は複数でもよい。アプリケーション22は、ネットワーク通信部23を介して、機器10が収集したデータを取得することができる。なお、デバイス本体20に機器10に相当する機能を組み込むこともできる。
Figure 2 is a block diagram showing an example of the configuration of an
セキュアエレメント30は、耐タンパ性を有するセキュリティチップである。セキュアエレメント30は、デバイス本体20との間で、I2C(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)等の通信路25で物理的に接続されている。
The
セキュアエレメント30は、認証部31、暗号化部32、復号部33、通信部34、更新部35、データ前処理部36、実行処理部37、機械学習処理部38、及びNVM(Non-volatile memory)39を備える。NVM39には、初期パラメータ41、アルゴリズム(プログラム)、学習済みパラメータ43、学習用データ44、評価用データ(テストデータ、検証データとも称する)45を保持する領域が確保されている。
The
図3はサーバ100の構成の一例を示すブロック図である。サーバ100は、サーバ100全体を制御する制御部101、通信部102、認証部103、暗号化・復号部104、評価部105、決定部106、学習処理部107、実行処理部108、及び記憶部109を備える。制御部101は、CPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)などで構成することができる。記憶部109は、半導体メモリ又はハードディスク等で構成され、初期パラメータ111、学習済みパラメータ112、アルゴリズム(プログラム)113、及び評価用データ114を記憶するための領域を有する。サーバ100は、学習用データが記憶されたデータベース110にアクセスして、データの読み出し、書き込みを行うことができる。サーバ100の詳細は後述する。
FIG. 3 is a block diagram showing an example of the configuration of the
本実施の形態の機械学習システムは、主に以下の3つの実施態様を有する。すなわち、第1態様として、(1)セキュアエレメント30にて機械学習を行い、学習結果をサーバ100に提供する態様、第2態様として、(2)セキュアエレメント30にてデータ前処理を行い、データ前処理の結果得られた要約データをサーバ100に提供する態様、第3態様として、(3)サーバ100から機械学習の学習結果を取得し、セキュアエレメント30で推論(判定処理や推定処理など)を行う態様である。以下では、まず、第1態様について説明するが、まず、セキュアエレメント30について説明する。
The machine learning system of this embodiment has the following three main aspects. That is, as a first aspect, (1) machine learning is performed in the
セキュアエレメント30は、通信路25を介してデバイス本体20から、機器10が収集したデータを取得することができる。セキュアエレメント30は、取得したデータを学習用データ44としてNVM39に記憶する。
The
認証部31は、デバイス認証を行う。デバイス認証は、セキュアエレメント30がデバイス本体20からデータを取得する際の認証である。本明細書では、アプリケーション22が、機器10で収集されたデータを取得するので、デバイス認証は、アプリケーションの認証となる。認証方法は、例えば、セキュアエレメント30が保持するアプリケーション検証鍵を用いて、アプリケーション22から受信したアプリケーション証明書を検証する方法などを用いることができる。認証が成功すれば、セキュアエレメント30は、デバイス本体20からデータを取得し、認証が不成功であれば、セキュアエレメント30は、デバイス本体20からデータを取得しない。これにより、アプリケーション22のふりをした不正なアプリケーションによって、不適切なデータや不正な意図を持ったデータがセキュアエレメント30に送られることを防止できる。
The
認証部31は、サーバ認証を行う。サーバ認証は、セキュアエレメント30がサーバ100との間でデータの授受を行う際の認証である。サーバ認証の詳細は後述する。
The
データ前処理部36は、生成部としての機能を有し、機器10から取得したデータに基づいて、要約データを生成することができる。要約データは、機器10から取得したデータに対してデータ前処理を行うことによって得られるデータであり、機械学習の学習段階、学習済みモデルを用いた推論段階、及び再学習段階において使用することができる。要約データは、例えば、取得したデータから不要なデータを除外する処理、取得したデータを間引く処理、取得したデータを変換する処理、取得したデータの正規化処理、統計処理又はベクトル化処理、教師ラベルの生成処理、画像処理、言語処理などによって生成することができる。なお、第1態様では、データ前処理部36は必須ではない。
The
機械学習処理部38は、機器10から取得したデータ(要約データを含めてもよい)を用いて機械学習を行う。機械学習は、ニューラルネットワークの学習であり、教師データ(正解及び不正解)の入力によってニューラルネットワークを問題に対して最適化する教師あり学習でもよく、あるいは、教師なし学習又は強化学習でもよい。学習方法は、例えば、ニューラルネットワークの構造(例えば、入力層、出力層、中間層)を定義し、アルゴリズム(問題の最適化アルゴリズム)を準備し、ニューラルネットワークに初期パラメータを設定し、学習用データをニューラルネットワークに与えることにより、パラメータ(例えば、ニューロン間の重み、ニューロンに与えるバイアス)の更新を繰り返す。これにより、学習結果としての学習済みパラメータを生成することができる。なお、学習済みパラメータは、ニューラルネットワークのニューロン間の重み、及びニューロンに与えるバイアスに限定されるものではなく、例えば、強化学習によって生成される、Q値やQ関数などを含めてもよく、機械学習処理の学習結果として生成されるパラメータを含むものとする。
The machine
図4はニューラルネットワークの機械学習の一例を示す模式図である。図4では、機器10として、各種の飲料水を販売する自動販売機を例に挙げて説明する。自動販売機が収集するデータ(学習用データセット)として、セキュアエレメント30は、購入時刻データ、温度データ、販売データなどを取得する。購入時刻データは、飲料水が購入された時刻の時系列データであり、温度データは、飲料水が購入された時点での温度データであり、販売データは、購入された飲料水の商品データ(商品名、商品コードなど)である。セキュアエレメント30は、機械学習に必要なデータ量が収集されると、収集した学習用データセットをニューラルネットワークに与えて、機械学習を行い、ニューラルネットワークのパラメータ(ニューラルネットワークの結合の重み、バイアスの値など)を更新して学習済みパラメータを生成する。ニューラルネットワークの規模が大きいほど、学習済みパラメータの数は多くなるが、ニューラルネットワークの全ての学習済みパラメータを纏めて学習済みパラメータ群Wと称することにする。
Figure 4 is a schematic diagram showing an example of machine learning of a neural network. In Figure 4, a vending machine that sells various types of beverages is taken as an example of the
学習済みパラメータ群Wを推論アルゴリズム(プログラム、アルゴリズムとも称する)に組み込むことにより、学習済みモデルを生成することができる。学習済みモデルは、未知の入力データが入力されると、推論結果を出力することができるプログラムである。図4の例では、未知のデータとして、気温予測データが学習済みモデルに入力されると、学習済みモデルは、飲料水の販売予測データを出力することができる。 By incorporating the trained parameter set W into an inference algorithm (also called a program or algorithm), a trained model can be generated. A trained model is a program that can output an inference result when unknown input data is input. In the example of Figure 4, when temperature forecast data is input to the trained model as unknown data, the trained model can output sales forecast data for drinking water.
暗号化部32は、機械学習処理部38によって生成された学習済みパラメータを暗号化する。暗号化アルゴリズムは、非対称鍵暗号(RSA等)、対象鍵暗号(共通鍵暗号)(AES:Advanced Encryption Standard等)のいずれでもよく、適宜の手法を用いることができる。セキュアエレメント30は、暗号化した学習済みパラメータをNVM39の学習済みパラメータ43の領域に記憶する。
The
通信部34は、通信ネットワーク1を介してサーバ100との間の通信機能を提供する。セキュアエレメント30は、通信部34を介して、暗号化した学習済みパラメータをサーバ100へ送信することができる。なお、セキュアエレメント30は、デバイス本体20側にサーバ100との通信機能が存在する場合、当該通信機能を用いて、暗号化した学習済みパラメータをサーバ100へ送信してもよい。
The
セキュアエレメント30は、機械学習の学習結果である学習済みパラメータをサーバ100へ送信するので、機器10が収集したデータを、そのままサーバ100へ送信する場合に比較して、データの通信量を低減することができ、通信コストを低減することができる。また、機械学習をセキュアエレメント30内で行い、学習結果(学習済みパラメータ)もセキュアエレメント30内に保持し、サーバ100へ送信する際には、暗号化するので、通信中の秘匿性や安全性を確保できるとともに、機械学習により得られた学習結果が漏洩又は不正に取得される可能性を低減することができ、学習結果を保護することができる。
The
また、セキュアエレメント30における各処理を、IoTデバイス50が特段の処理を実行していないアイドル時間内に実施してもよい。これにより、セキュアエレメント30に掛かる処理が、IoTデバイス50の処理に影響を与えることを防止できる。
Furthermore, each process in the
認証部31は、暗号化した学習済みパラメータをサーバ100へ送信する際に、サーバ認証を行う。セキュアエレメント30は、認証が成功した場合(例えば、サーバが正規のサーバである場合)、暗号化した学習済みパラメータをサーバ100へ送信する。なお、認証が成功しない場合には、セキュアエレメント30は、サーバが不正なサーバであるとして、学習済みパラメータの送信を行わない。暗号化した学習済みパラメータを送信する前にサーバ100の認証を行うので、学習結果が不正なサーバへ送信されることを防止できる。なお、セキュアエレメント30がサーバの認証を行うとともに、サーバ100がセキュアエレメント30の認証を行う、相互認証を実施してもよい。
The
認証方法は、例えば、セキュアエレメント30が保持するサーバ検証鍵を用いて、サーバ100から受信したサーバ証明書を検証する方法などを用いることができる。
The authentication method can be, for example, a method of verifying the server certificate received from the
また、認証方法として、以下のような手法を用いることができる。セキュアエレメント30は、サーバ100に対する認証要求に対して、サーバ100が送信したパラメータと、NVM39に記憶した機械学習に用いる所定のパラメータとを照合してサーバ100を認証する。所定のパラメータは、初期パラメータ41の領域に記憶したパラメータ(重み、バイアス)の初期値でもよく、学習済みパラメータ43の領域に記憶した、直近に行われた機械学習によって得られた、直近の学習済みパラメータでもよい。サーバ100が正規のサーバであれば、パラメータの初期値や直近の学習済みパラメータを保持しているので、認証に用いることができる。なお、所定のパラメータは、全てのパラメータ(パラメータ群と称する)から一定の規則で抽出された一部のパラメータでもよく、パラメータのハッシュ値などの当該パラメータから派生する派生値でもよい。
Furthermore, the following method can be used as an authentication method. In response to an authentication request to the
次に、第1態様における、サーバ100について説明する。
Next, we will explain the
通信部102は、通信ネットワーク1を介してセキュアエレメント30との間の通信機能を提供する。サーバ100は、通信部102を介して、暗号化した学習済みパラメータを受信することができる。
The
認証部103は、セキュアエレメント30の認証を行う。制御部101は、認証が成功すれば、暗号化した学習済みパラメータを受信する。制御部101は、認証が成功しない場合、暗号化した学習済みパラメータを受信しない。認証部103の認証方法は、認証部31と同様である。
The
暗号化・復号部104は、通信部102を介して受信した、暗号化した学習済みパラメータを復号する。制御部101は、復号した学習済みパラメータを学習済みパラメータ112として記憶部109に記憶する。
The encryption/
制御部101は、学習済みパラメータ112及びアルゴリズム113に基づいて学習済みモデルを生成することができる。アルゴリズム113は、推論アルゴリズム(プログラム)とすることができる。推論アルゴリズムは、組み込まれた学習済みパラメータ112を適用することにより、未知の入力データに対して、推論結果を出力することができるプログラムである。学習済みモデルは、学習済みパラメータ112が組み込まれた推論アルゴリズムである。
The
サーバ100は、学習用のデータを機器10から収集する必要がなく、セキュアエレメント30から学習済みパラメータを受信するだけで学習済みモデルを生成することができるので、通信コストを低減することができる。また、学習済みパラメータは、暗号化された状態でサーバ100によって受信されるので、機械学習により得られた学習結果を保護することができる。
The
実行処理部108は、生成された学習済みモデルを用いて、判定処理、予測処理又は推定処理などを含む推論アルゴリズムを実行する。機器10の種別に応じて、生成される学習済みモデルは異なるので、学習済みモデルの利用シーン(推論アルゴリズムの推論結果)も異なる。
The
図5は学習済みモデルの利用シーンの一例を示す説明図である。学習済みモデルの利用シーンとしては、図4にも機器10が自動販売機である場合の例を示した。図5では、機器10が、例えば、電気、水道、ガス等の各種メータの場合、生産設備(製造現場での生産機械、加工機械、塗装機械など)の場合、店舗内のカメラの場合、ウェアラブルデバイスの場合について説明する。なお、機器10の種別は、図5の例に限定されるものではなく、交通分野、建設・土木分野、製造分野、防災分野、流通分野、輸送分野、医療分野、健康管理分野など様々な分野での機器を含むことができる。
Figure 5 is an explanatory diagram showing an example of a usage scenario of the trained model. Figure 4 also shows an example of a usage scenario in which the
電気、水道、ガス等の各種メータの場合、セキュアエレメント30は、メータの時系列データ、メータの位置情報などを含む学習用データセットを取得することができる。学習用データセットは、各種メータの計測値でもよく、各種メータが表示する計測値をカメラで撮影して有られた値でもよい。学習済みモデルは、例えば、地域毎の需要予測、供給の最適化などの推論結果を提供できる。
In the case of various meters such as electricity, water, and gas meters, the
生産設備の場合、セキュアエレメント30は、振動データ、音響データ、設備の稼働データ(正常又は異常の別など)などを含む学習用データセットを取得することができる。学習用データセットは、生産設備に取り付けられた各種センサで検知された値とすることができる。学習済みモデルは、例えば、設備の劣化推定などの推論結果を提供できる。
In the case of production equipment, the
店舗内カメラの場合、セキュアエレメント30は、入店顧客データ、レジ前待人数データなどを含む学習用データセットを取得することができる。学習用データセットは、カメラで得られた画像データに対して画像認識などの前処理を施した結果とすることができる。学習済みモデルは、例えば、レジ混雑予測などの推論結果を提供できる。
In the case of an in-store camera, the
ウェアラブルデバイスの場合、セキュアエレメント30は、3次元加速度データ、時刻データ、位置情報などを含む学習用データセットを取得することができる。ウェアラブルデバイスは、例えば、高齢者などの対象者の手首や腰などに装着できる。学習済みモデルは、例えば、高齢者の行動パターン予測、健康状態の劣化予測などの推論結果を提供できる。
In the case of a wearable device, the
なお、機器10の種別が異なると、生成される学習済みモデルも異なり、利用シーンも異なるので、サーバ100を複数のサーバに分散し、分散した各サーバがそれぞれ異なる学習済みモデルを使用するようにしてもよい。
Note that, since different types of
評価部105は、生成した学習済みモデルに評価用データ114を入力した場合、学習済みモデルが出力する出力結果に応じて、学習済みモデルに含まれる学習済みパラメータを評価する。
When the
例えば、評価用データ114を学習済みモデルに入力した場合の学習済みモデルが出力する出力データの正答率が所定の閾値以上であれば、学習済みモデルが最適化されているとして、当該学習済みパラメータは、使用可能とすることができる。また、正答率が所定の閾値未満であれば、学習済みモデルが未だ最適化されていないとして、当該学習済みパラメータは、更新が必要とすることができる。これにより、セキュアエレメント30から受信した学習済みパラメータを選別することができ、学習済みパラメータの更新の要否を判定することができる。
For example, if the accuracy rate of the output data output by the trained model when the
複数のIoTデバイス50それぞれに同種の機器10が1又は複数接続され、各IoTデバイス50のセキュアエレメント30それぞれが、学習済みパラメータをサーバ100へ送信する態様を考える。この場合、サーバ100は、複数のセキュアエレメント30から学習済みパラメータ(暗号化された状態)それぞれを受信し、暗号化・復号部104は、受信した学習済みパラメータそれぞれを復号する。評価部105は、学習済みパラメータそれぞれを評価する。
Consider a case where one or
決定部106は、評価部105の評価結果に応じて、複数のセキュアエレメント30それぞれが提供する学習済みパラメータの使用頻度を決定することができる。例えば、いずれの学習済みパラメータの評価も使用可能であるとし、それぞれの学習済みパラメータの評価に差(例えば、正答率の差)がある場合、正答率のより高い学習済みパラメータを送信したセキュアエレメント30が提供する学習済みパラメータの使用頻度を高くする。一方、正答率のより低い学習済みパラメータを送信したセキュアエレメント30が提供する学習済みパラメータの使用頻度を低くする。正答率の高低に応じて重み付けして使用頻度を決定してもよい。これにより、複数のセキュアエレメント30(IoTデバイス50)が機器10から収集するデータの優劣を加味することができる。
The
セキュアエレメント30は、以下のような機能を備えてもよい。
The
セキュアエレメント30は、機械学習によって学習済みパラメータが得られる都度、暗号化した学習済みパラメータをNVM39に記憶する。セキュアエレメント30は、所要のタイミングで、NVM39から読み出された暗号化した学習済みパラメータをサーバ100へ送信することができる。所要のタイミングは、例えば、機械学習のタイミングに合わせることができ、機器10が使用される使用環境や使用形態、機器10から取得するデータの属性や種別に応じて適宜決定することができる。所要のタイミングは、1日に1回、1時間に1回、1分に1回でもよく、学習済みパラメータ43用の記憶容量の残量が閾値以下になった時点でもよい。学習結果が暗号化された状態でNVM39記憶されるので、学習結果の不正取得を防止してセキュリティを高めることができる。
Each time a learned parameter is obtained by machine learning, the
セキュアエレメント30は、機械学習を行う場合、暗号化した学習済みパラメータをNVM39から読み出し、読み出した、暗号化した学習済みパラメータを復号部33で復号し、復号した学習済みパラメータを使用する。セキュアエレメント30は、機械学習を終了した場合、機械学習によって得られた学習済みパラメータを暗号化部32で暗号化する。更新部35は、暗号化した学習済みパラメータでNVM39に記憶された、直近の暗号化した学習済みパラメータを更新することができる。このように、学習済みパラメータは、機械学習に使用するときだけ復号され、機械学習を行わないときは暗号化されているので、学習済みパラメータが仮に不正取得されたとしても、暗号化された学習済みパラメータを解読することができない。これにより、学習済みパラメータが第三者に悪用されることを防止できる。
When performing machine learning, the
セキュアエレメント30は、機械学習によって得られた学習済みパラメータを含む学習済みモデルに評価用データ45を入力した場合、学習済みモデルが出力する出力結果に応じて、当該学習済みパラメータを暗号化してサーバ100へ送信するか否かを判定してもよい。
When the
図6は学習済みモデルの送信可否の判定方法の一例を示す模式図である。図6に示すように、学習用データセットD1を用いた機械学習の結果、生成された学習済みパラメータ群をW1とする。学習済みパラメータ群W1を推論アルゴリズムに適用することにより生成された学習済みモデルの出力の正答率を95%とする。送信可否の判定閾値を90%とすると、学習済みパラメータ群W1は送信可と判定できる。 Figure 6 is a schematic diagram showing an example of a method for determining whether a trained model can be transmitted. As shown in Figure 6, a trained parameter group generated as a result of machine learning using a training dataset D1 is designated as W1. The accuracy rate of the output of a trained model generated by applying the trained parameter group W1 to an inference algorithm is designated as 95%. If the determination threshold for whether transmission is possible is set to 90%, the trained parameter group W1 can be determined to be transmittable.
学習用データセットD2を用いた機械学習の結果、生成された学習済みパラメータ群をW2とする。学習済みパラメータ群W2を推論アルゴリズムに適用することにより生成された学習済みモデルの出力の正答率を75%とすると、学習済みパラメータ群W2は送信不可と判定できる。 As a result of machine learning using the training dataset D2, the trained parameter set generated is designated as W2. If the accuracy rate of the output of the trained model generated by applying the trained parameter set W2 to the inference algorithm is 75%, then it can be determined that the trained parameter set W2 cannot be transmitted.
学習用データセットD3を用いた機械学習の結果、生成された学習済みパラメータ群をW3とする。学習済みパラメータ群W3を推論アルゴリズムに適用することにより生成された学習済みモデルの出力の正答率を90%とすると、学習済みパラメータ群W3は送信可と判定できる。 As a result of machine learning using the training dataset D3, the trained parameter group generated is designated as W3. If the accuracy rate of the output of the trained model generated by applying the trained parameter group W3 to the inference algorithm is 90%, then it can be determined that the trained parameter group W3 is suitable for transmission.
このように、評価用データ45を学習済みモデルに入力した場合に、学習済みモデルが出力する出力データの正答率が所定の閾値以上であれば、当該学習済みパラメータによってニューラルネットワークを最適化できるとして、当該学習済みパラメータを送信可と判定できる。また、正答率が所定の閾値未満であれば、当該学習済みパラメータによってニューラルネットワークを最適化できないとして、当該学習済みパラメータを送信不可と判定できる。これにより、セキュアエレメント30は、ニューラルネットワークを最適化できる学習済みパラメータだけを選別して送信することができ、サーバ100側では、有用でない学習済みパラメータが送信されてくることを防止できる。なお、セキュアエレメント30において、学習済みパラメータを評価する場合には、サーバ100の評価部105は必須でなくてもよい。
In this way, when the
次に、セキュアエレメント30にてデータ前処理を行い、データ前処理の結果得られた要約データをサーバ100に提供する第2態様について説明する。
Next, we will explain the second mode in which data preprocessing is performed in the
データ前処理部36の機能は第1態様で説明しものと同様であるので説明は省略する。
The function of the
暗号化部32は、データ前処理部36によって生成された要約データを暗号化することができる。暗号化アルゴリズムは、非対称鍵暗号(RSA等)、対象鍵暗号(共通鍵暗号)(AES:Advanced Encryption Standard等)のいずれでもよく、適宜の手法を用いることができる。セキュアエレメント30は、暗号化した要約データをNVM39に記憶することができる。
The
セキュアエレメント30は、暗号化した要約データをサーバ100へ送信することができる。要約データをサーバ100へ送信する際には、認証部31でサーバ認証を行うことができる。また、サーバ100によるセキュアエレメント30の認証を行うことで、相互認証を実施してもよい。
The
サーバ100では、暗号化・復号部104が、暗号化した要約データを復号する。学習処理部107は、復号した要約データを学習用データとして用いて機械学習を行い、学習済みパラメータを生成することができる。
In the
これにより、学習、推論、再学習などの各段階で必要となる要約データの生成をセキュアエレメント30内で行い、要約データをサーバ100へ送信する際には、要約データを暗号化するので、学習、推論、再学習などの各段階で重要な要約データが漏洩又は不正取得される可能性を低減することができ、要約データを保護することができる。
As a result, the generation of summary data required at each stage, such as learning, inference, and re-learning, is performed within the
次に、サーバ100から機械学習の学習結果を取得し、セキュアエレメント30で推論(判定処理や推定処理など)を行う第3態様について説明する。
Next, we will explain the third mode in which the machine learning learning results are obtained from the
サーバ100では、学習処理部107が、データベース110に記憶された学習用データを用いた機械学習によって、学習済みパラメータ112を生成する。データベース110に記憶された学習用データは、図1に示すIoTデバイス50以外の他のIoTデバイスから取得してもよく、他の装置から取得してもよい。データベース110に記憶された学習用データは、随時収集することができる。制御部101は、学習済みパラメータ112及びアルゴリズム113に基づいて学習済みモデルを生成することができる。
In the
サーバ100は、セキュアエレメント30との間で相互認証を行うことができる。認証が成功した場合、制御部101は、生成した学習済みモデル、あるいは、生成した学習済みパラメータを暗号化した状態でセキュアエレメント30へ送信する。セキュアエレメント30が推論アルゴリズムを保持している場合には、制御部101は、学習済みパラメータを送信すればよい。セキュアエレメント30が推論アルゴリズムを保持していない場合には、制御部101は、学習済みモデルを送信すればよい。
The
セキュアエレメント30は、サーバ100を認証し、認証が成功した場合、暗号化した学習済みパラメータ又は暗号化した学習済みモデルをサーバ100から受信する。なお、認証が成功しない場合には、サーバ100が不正なサーバであるとして、学習済みパラメータ又は学習済みモデルの受信を行わない。暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する前にサーバの認証を行うので、不正な学習済みパラメータ又は学習済みモデルを受信することを防止できる。
The
セキュアエレメント30は、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータを受信する際には、MAC(Message Authentication Code)検証を実施することができる。
When the
MAC検証は、例えば、以下のようにすることができる。認証部103は、自身が保持するMAC鍵を用いて、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータに対するMACを計算し、計算したMACを暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータに付与する。MAC計算は、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータのデータ列に対して、既存のMAC計算アルゴリズム(例えば、HMAC-SHA256など)を用いることができる。セキュアエレメント30は、自身が保持するMAC検証鍵を用いて、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータに付与されているMACを検証する。具体的には、サーバ100で実行したMAC計算と同一の計算を行ってMACを導出し、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータに付与されているMACと一致すれば、MAC検証が成功と判定することができる。両者が不一致の場合、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータは、不正なものとして、破棄することができる。
The MAC verification can be performed, for example, as follows. The
セキュアエレメント30は、暗号化した学習済みパラメータを受信した場合、更新部35は、NVM39に記憶した学習済みパラメータ43を、受信した学習済みパラメータで更新することができる。
When the
セキュアエレメント30が学習済みモデルを記憶している場合、学習済みパラメータを更新することにより学習済みモデルを更新することができる。セキュアエレメント30は、機器10から取得したデータをサーバ100へ送信し、サーバ100が実行する推論結果を得る必要がなく、当該データに基づいて、実行処理部37による所要の推論(例えば、判定処理、予測処理、推定処理など)をリアルタイムで実行することができる。
When the
セキュアエレメント30は、暗号化した学習済みモデルをサーバ100から受信した場合、復号部33は、暗号化した学習済みモデルを復号し、実行処理部37は、復号された学習済みモデルを用いて所要の推論(例えば、判定処理、予測処理、推定処理など)を行うことができる。
When the
セキュアエレメント30は、機械学習処理部38を具備せず、自身が機械学習を行うことができない場合でも、サーバ100から学習済みモデルを取得することができる。セキュアエレメント30は、機器10から取得したデータに基づいて、実行処理部37による所要の推論(例えば、判定処理、予測処理、推定処理など)をリアルタイムで実行することができる。
Even if the
セキュアエレメント30は、以下のような機能を備えてもよい。
The
セキュアエレメント30は、所要の推論(例えば、判定処理、予測処理、推定処理など)を行う場合、復号部33は、NVM39に記憶した、暗号化した学習済みモデル(アルゴリズム42及び学習済みパラメータ43)を読み出して復号する。実行処理部37は、復号された学習済みモデルに入力データを入力して、推論結果を出力する。実行処理部37の処理が終了した場合、暗号化部32は、学習済みモデルを暗号化して、NVM39に記憶する。なお、NVM39に読み出した学習済みモデルがNVM39に残っている場合には、再度書き込む必要はないので、実行処理部37の処理が終了した後に、推論に使用した学習済みモデルを消去してもよい。
When the
学習済みモデルは、所要の推論に使用するときだけ復号され、所要の推論を行わないときは暗号化されているので、学習済みモデルが仮に不正取得されたとしても、暗号化された学習済みモデルを解読することができない。これにより、学習済みモデルが第三者に悪用されることを防止できる。 The trained model is decrypted only when it is used for the required inference, and is encrypted when the required inference is not performed. Therefore, even if the trained model is illegally obtained, the encrypted trained model cannot be decrypted. This makes it possible to prevent the trained model from being misused by third parties.
次に、本実施の形態の機械学習システムの動作について説明する。 Next, we will explain the operation of the machine learning system of this embodiment.
図7は第1態様の場合の処理手順の一例を示すフローチャートである。デバイス本体20は、機器10で収集されたデータを取得する(S101)。セキュアエレメント30は、デバイス認証を行い(S301)、認証が成功したか否かを判定する(S302)。認証が成功した場合(S302でYES)、セキュアエレメント30は、デバイス本体20から機器10で収集されたデータを取得する(S303)。
Figure 7 is a flowchart showing an example of the processing procedure in the first mode. The device
セキュアエレメント30は、機械学習処理を行い(S304)、学習が完了したか否かを判定し(S305)、学習が完了していない場合(S305でNO)、ステップS304以降の処理を続ける。学習が完了した場合(S305でYES)、セキュアエレメント30は、評価用データを用いて、機械学習の結果、生成された学習済みパラメータを評価する(S306)。
The
セキュアエレメント30は、評価用データを用いたときの学習済みモデルが出力する出力結果の正答率が閾値以上であるか否かを判定し(S307)、正答率が閾値以上でない場合(S307でNO)、学習済みパラメータを破棄し(S308)、処理を終了する。正答率が閾値以上である場合(S307でYES)、セキュアエレメント30は、学習済みパラメータを暗号化し、暗号化した学習済みパラメータをNVM39に記憶する(S309)。
The
セキュアエレメント30は、サーバ認証を行う(S310)。なお、この場合、セキュアエレメント30とサーバ100とで相互認証を行ってもよい。セキュアエレメント30は、認証が成功したか否かを判定する(S311)。
The
認証が成功した場合(S311でYES)、セキュアエレメント30は、暗号化した学習済みパラメータをサーバ100へ送信する(S312)。認証が成功しない場合(S302でNO、S311でNO)、セキュアエレメント30は、処理を終了する。サーバ100は、学習済みパラメータを受信し、受信した学習済みパラメータを復号して記憶部109に記憶し(S501)、処理を終了する。
If authentication is successful (YES in S311), the
図8は第2態様の場合の処理手順の一例を示すフローチャートである。デバイス本体20は、機器10で収集されたデータを取得する(S111)。セキュアエレメント30は、デバイス認証を行い(S321)、認証が成功したか否かを判定する(S322)。認証が成功した場合(S322でYES)、セキュアエレメント30は、デバイス本体20から機器10で収集されたデータを取得する(S323)。
Figure 8 is a flowchart showing an example of the processing procedure in the second mode. The device
セキュアエレメント30は、取得したデータから要約データを生成し(S324)、生成した要約データを暗号化し、暗号化した要約データをNVM39に記憶する(S325)。セキュアエレメント30は、サーバ認証を行う(S326)。なお、この場合、セキュアエレメント30とサーバ100とで相互認証を行ってもよい。セキュアエレメント30は、認証が成功したか否かを判定する(S327)。
The
認証が成功した場合(S327でYES)、セキュアエレメント30は、暗号化した要約データをサーバ100へ送信する(S328)。認証が成功しない場合(S327でNO)、セキュアエレメント30は、処理を終了する。
If the authentication is successful (YES in S327), the
サーバ100は、要約データを受信し、受信した要約データを復号して記憶部109に記憶する(S511)。サーバ100は、要約データを用いて機械学習処理を行い(S512)、学習済みモデルを生成し(S513)、処理を終了する。
The
図9は第3態様の場合の処理手順の一例を示すフローチャートである。セキュアエレメント30は、サーバ認証を行う(S341)。なお、この場合、セキュアエレメント30とサーバ100とで相互認証を行ってもよい。セキュアエレメント30は、認証が成功したか否かを判定し(S342)、認証が成功しない場合(S342でNO)、処理を終了する。
Figure 9 is a flowchart showing an example of the processing procedure in the third mode. The
認証が成功した場合(S342でYES)、セキュアエレメント30は、暗号化された学習済みモデルをサーバ100から受信する(S343)。なお、暗号化された学習済みモデルに代えて、暗号化された学習済みパラメータを受信するようにしてもよい。セキュアエレメント30は、MAC検証を行い(S344)、検証が成功したか否かを判定する(S345)。
If the authentication is successful (YES in S342), the
検証が成功しない場合(S345でNO)、セキュアエレメント30は、受信した学習済みモデルを破棄し(S346)、処理を終了する。この場合、検証が不成功である旨をサーバ100に通知してもよい。検証が成功した場合(S345でYES)、セキュアエレメント30は、学習済みモデルを復号してNVM39に記憶し(S347)、処理を終了する。なお、学習済みモデルを暗号化した状態でNVM39に記憶してもよい。
If the verification is unsuccessful (NO in S345), the
図10はセキュアエレメント30での学習処理の手順の一例を示すフローチャートである。セキュアエレメント30は、学習用データセットを取得したか否かを判定し(S351)、学習用データセットを取得していない場合(S351でNO)、ステップS351の処理を続ける。学習用データセットを取得した場合(S351でYES)、セキュアエレメント30は、暗号化された直近の学習結果(学習済みパラメータ、学習済みパラメータに対応する直近の正答率)をNVM39から読み出して復号する(S352)。
Figure 10 is a flowchart showing an example of the procedure for the learning process in the
セキュアエレメント30は、機械学習処理を行い(S353)、評価用データを用いたときの学習済みモデルが出力する出力結果に基づいて学習済みパラメータを評価する(S354)。セキュアエレメント30は、学習済みモデルが出力する出力結果の正答率が直近の正答率以上であるか否かを判定し(S344)、正答率が直近の正答率以上である場合(S355でYES)、ステップS353で生成した学習済みパラメータを暗号化し、直近の学習済みパラメータを更新し(S356)、処理を終了する。正答率が直近の正答率以上でない場合(S355でNO)、セキュアエレメント30は、処理を終了する。この場合、ステップS353で生成した学習済みパラメータを破棄してもよい。
The
図11はセキュアエレメント30での推論処理の手順の一例を示すフローチャートである。セキュアエレメント30は、推論(判定、推定など)の実行タイミングであるか否かを判定し(S361)、推論の実行タイミングでない場合(S361でNO)、ステップS361の処理を続ける。推論の実行タイミングである場合(S361でYES)、セキュアエレメント30は、暗号化された学習済みモデルをNVM39から読み出し復号する(S362)。
Figure 11 is a flowchart showing an example of the procedure for inference processing in the
セキュアエレメント30は、入力データを取得し(S363)、取得した入力データを学習済モデルに入力し、学習済みモデルから推論結果(判定結果、推定結果など)を出力する(S364)。セキュアエレメント30は、推論処理(判定処理、推定処理など)が終了したか否かを判定し(S365)、推論処理が終了していない場合(S365でNO)、ステップS363の処理を続ける。推論処理が終了した場合(S365でYES)、セキュアエレメント30は、学習済みモデルを暗号化してNVM39に記憶し(S366)、処理を終了する。
The
本実施の形態において、セキュアエレメント30は、UICC(Universal Integrated Circuit Card)のように着脱可能な構成とすることもできる。仮に、セキュアエレメント30が第三者によって不正に取得されても、セキュアエレメント30は耐タンパ性を有するので、セキュアエレメント30内の情報が不正に取得される可能性は極めて低い。
In this embodiment, the
本実施の形態において、セキュアコンポーネントとして、セキュアエレメント30を一例として説明したが、セキュアコンポーネントは、セキュアエレメント30に限定されない。セキュアコンポーネントは、CPU仮想化支援技術(例えば、TrustZone(登録商標))と称される技術を用いることによって、SoC(System on Chip)上に区分されたトラステッド実行環境(TEEとも称する)でもよい。
In this embodiment, the
本実施の形態においては、サーバ100を1台備える構成であったが、サーバ100を複数のサーバに分散して構成してもよい。この場合、第1態様、第2態様、第3態様の3つの態様それぞれに対応させて3台のサーバで構成してもよい。
In this embodiment, the configuration includes one
本実施の形態のセキュアコンポーネントは、機器が収集したデータを取得する取得部と、前記取得部で取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化する第1暗号化部と、前記第1暗号化部で暗号化した学習済みパラメータを第1サーバへ送信する送信部とを備える。 The secure component of this embodiment includes an acquisition unit that acquires data collected by a device, a first encryption unit that encrypts learned parameters obtained by machine learning using the data acquired by the acquisition unit, and a transmission unit that transmits the learned parameters encrypted by the first encryption unit to a first server.
本実施の形態のコンピュータプログラムは、コンピュータに、機器が収集したデータを取得し、取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、暗号化した学習済みパラメータをサーバへ送信する、処理を実行させる。 The computer program of this embodiment causes a computer to execute a process of acquiring data collected by a device, encrypting learned parameters obtained by machine learning using the acquired data, and transmitting the encrypted learned parameters to a server.
本実施の形態の機械学習方法は、セキュアコンポーネントが、機器が収集したデータを取得し、取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、暗号化した学習済みパラメータをサーバへ送信する。 In the machine learning method of this embodiment, the secure component acquires data collected by the device, encrypts the learned parameters obtained by machine learning using the acquired data, and transmits the encrypted learned parameters to the server.
セキュアコンポーネントを実装するデバイスは、機器から当該機器が収集したデータを取得し、セキュアコンポーネントは、デバイスを介して当該機器が収集したデータを取得する。機器はエッジデバイスとも称され、例えば、音声データや映像データ、あるいは、位置、長さ、時間、速度、加速度、圧力、温度、エネルギー又は電気量などのデータを収集又は生成できる装置であればよい。例えば、機器には、各種センサ類、計測機器、カメラ、自動車部品、道路上の車両検知器、生産設備(工業機械)、家電製品、POS端末、スマートフォン、ウェアラブルデバイスなどのデータを収集又は生成できるものが含まれる。 A device that implements a secure component acquires data collected by the device from the equipment, and the secure component acquires data collected by the equipment via the device. The equipment is also called an edge device, and may be any device that can collect or generate data such as audio data, video data, or position, length, time, speed, acceleration, pressure, temperature, energy, or electrical quantity. For example, equipment includes various sensors, measuring instruments, cameras, automobile parts, vehicle detectors on roads, production equipment (industrial machinery), home appliances, POS terminals, smartphones, wearable devices, and other devices that can collect or generate data.
セキュアコンポーネントは、セキュアエレメントとすることができる。セキュアエレメントは、耐タンパ性を有するセキュリティチップであり、内部にCPU、NVM(Non-volatile memory)を有し、セキュアな不揮発性メモリを有する。また、セキュアコンポーネントは、CPU仮想化支援技術(例えば、TrustZone(登録商標))と称される技術を用いることによって、SoC(System on Chip)上に区分されたトラステッド実行環境(TEEとも称する)でもよい。 The secure component may be a secure element. The secure element is a tamper-resistant security chip that has an internal CPU, NVM (Non-volatile memory), and secure non-volatile memory. The secure component may also be a trusted execution environment (also called TEE) partitioned on a SoC (System on Chip) by using a technology called CPU virtualization support technology (e.g., TrustZone (registered trademark)).
セキュアコンポーネントは、取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化する。機械学習は、ニューラルネットワークの学習であり、教師データ(正解及び不正解)の入力によってニューラルネットワークを問題に対して最適化する教師あり学習でもよく、あるいは、教師なし学習又は強化学習でもよい。学習方法は、例えば、ニューラルネットワークの構造(例えば、入力層、出力層、中間層)を定義し、アルゴリズム(問題の最適化アルゴリズム)を準備し、ニューラルネットワークに初期パラメータを設定し、学習用データをニューラルネットワークに与えることにより、パラメータ(例えば、ニューロン間の重み、ニューロンに与えるバイアス)の更新を繰り返す。これにより、学習済みパラメータが生成される。 The secure component encrypts the learned parameters obtained by machine learning using the acquired data. Machine learning is learning of a neural network, and may be supervised learning in which the neural network is optimized for a problem by inputting training data (correct and incorrect answers), or it may be unsupervised learning or reinforcement learning. The learning method, for example, defines the structure of the neural network (e.g., input layer, output layer, intermediate layer), prepares an algorithm (problem optimization algorithm), sets initial parameters for the neural network, and provides learning data to the neural network, thereby repeatedly updating the parameters (e.g., weights between neurons, biases provided to neurons). This generates the learned parameters.
セキュアコンポーネントは、暗号化した学習済みパラメータを第1サーバへ送信する。セキュアコンポーネントにおける機械学習の学習結果である学習済みパラメータを第1サーバへ送信するので、機器が収集したデータを、そのまま第1サーバへ送信する場合に比較して、データの通信量を低減することができ、通信コストを低減することができる。また、機械学習をセキュアコンポーネント内で行い、学習結果(学習済みパラメータ)もセキュアコンポーネント内に保持し、第1サーバへ送信する際には、暗号化するので、機械学習により得られた学習結果が漏洩又は不正取得される可能性を低減することができ、学習結果を保護することができる。 The secure component transmits the encrypted learned parameters to the first server. Since the learned parameters, which are the learning results of machine learning in the secure component, are transmitted to the first server, the amount of data communication can be reduced compared to when data collected by the device is transmitted directly to the first server, and communication costs can be reduced. Furthermore, since machine learning is performed within the secure component and the learning results (learned parameters) are also stored within the secure component and are encrypted when transmitted to the first server, the possibility of the learning results obtained by machine learning being leaked or obtained illegally can be reduced, and the learning results can be protected.
本実施の形態のセキュアコンポーネントは、前記第1サーバを認証する第1認証部を備え、前記送信部は、前記第1認証部で認証が成功した場合、前記暗号化した学習済みパラメータを前記第1サーバへ送信する。 The secure component of this embodiment includes a first authentication unit that authenticates the first server, and the transmission unit transmits the encrypted learned parameters to the first server if authentication is successful in the first authentication unit.
セキュアコンポーネントは、第1サーバを認証し、認証が成功した場合(例えば、第1サーバが正規のサーバである場合)、暗号化した学習済みパラメータを第1サーバへ送信する。なお、認証が成功しない場合には、第1サーバが不正なサーバであるとして、学習済みパラメータの送信を行わない。暗号化した学習済みパラメータを送信する前にサーバの認証を行うので、学習結果が不正なサーバへ送信されることを防止できる。 The secure component authenticates the first server, and if the authentication is successful (for example, if the first server is a legitimate server), it transmits the encrypted learned parameters to the first server. If the authentication is not successful, it determines that the first server is an unauthorized server and does not transmit the learned parameters. Since the server is authenticated before transmitting the encrypted learned parameters, it is possible to prevent the learning results from being transmitted to an unauthorized server.
本実施の形態のセキュアコンポーネントは、前記機械学習に用いる所定のパラメータを記憶する第1記憶部を備え、前記第1認証部は、前記第1サーバに対する認証要求に対して前記第1サーバが送信したパラメータと前記第1記憶部に記憶した所定のパラメータとを照合して前記第1サーバを認証する。 The secure component of this embodiment includes a first storage unit that stores predetermined parameters used in the machine learning, and the first authentication unit authenticates the first server by comparing the parameters sent by the first server in response to an authentication request to the first server with the predetermined parameters stored in the first storage unit.
セキュアコンポーネントは、第1サーバに対する認証要求に対して、第1サーバが送信したパラメータと、第1記憶部に記憶した機械学習に用いる所定のパラメータとを照合して第1サーバを認証する。所定のパラメータは、ニューラルネットワークのパラメータ(重み、バイアス)の初期値でもよく、直近に行われた機械学習によって得られた、直近の学習済みパラメータでもよい。第1サーバが正規のサーバであれば、パラメータの初期値や直近の学習済みパラメータを保持しているので、認証に用いることができる。なお、所定のパラメータは、全てのパラメータ(パラメータ群と称する)から一定の規則で抽出された一部のパラメータでもよく、パラメータのハッシュ値などの当該パラメータから派生する派生値でもよい。 In response to an authentication request to the first server, the secure component authenticates the first server by comparing the parameters sent by the first server with the predetermined parameters used for machine learning stored in the first storage unit. The predetermined parameters may be the initial values of the neural network parameters (weights, biases), or the most recently learned parameters obtained by the most recently performed machine learning. If the first server is a legitimate server, it holds the initial values of the parameters and the most recently learned parameters, and can therefore be used for authentication. Note that the predetermined parameters may be a portion of parameters extracted from all parameters (referred to as a parameter group) according to a certain rule, or may be a derived value derived from the parameter, such as a hash value of the parameter.
本実施の形態のセキュアコンポーネントは、前記機械学習によって学習済みパラメータが得られる都度、前記第1暗号化部で暗号化した前記学習済みパラメータを記憶する第2記憶部を備え、前記送信部は、所要のタイミングで、前記第2記憶部から読み出された暗号化した学習済みパラメータを前記第1サーバへ送信する。 The secure component of this embodiment includes a second storage unit that stores the learned parameters encrypted by the first encryption unit each time a learned parameter is obtained by the machine learning, and the transmission unit transmits the encrypted learned parameters read from the second storage unit to the first server at the required timing.
セキュアコンポーネントは、機械学習によって学習済みパラメータが得られる都度、暗号化した学習済みパラメータを第2記憶部に記憶する。セキュアコンポーネントは、所要のタイミングで、第2記憶部から読み出された暗号化した学習済みパラメータを第1サーバへ送信する。所要のタイミングは、例えば、機械学習のタイミングに合わせることができ、機器が使用される使用環境や使用形態、機器から取得するデータの属性や種別に応じて適宜決定することができる。所要のタイミングは、1日に1回、1時間に1回、1分に1回でもよく、第2記憶部の記憶容量の残量が閾値以下になった時点でもよい。学習結果が暗号化された状態で記憶されるので、学習結果の不正取得を防止してセキュリティを高めることができる。 Each time a learned parameter is obtained by machine learning, the secure component stores the encrypted learned parameter in the second storage unit. The secure component transmits the encrypted learned parameter read from the second storage unit to the first server at a required timing. The required timing can be, for example, aligned with the timing of machine learning, and can be determined appropriately depending on the usage environment and usage form in which the device is used, and the attributes and type of data obtained from the device. The required timing can be once a day, once an hour, once a minute, or when the remaining storage capacity of the second storage unit falls below a threshold. Since the learning result is stored in an encrypted state, unauthorized acquisition of the learning result can be prevented, thereby enhancing security.
本実施の形態のセキュアコンポーネントは、前記第2記憶部に記憶された暗号化した学習済みパラメータを復号する第1復号部を備え、前記機械学習を行う場合、前記第1復号部で復号した学習済みパラメータを使用し、前記機械学習を終了した場合、前記第1暗号化部は、前記機械学習によって得られた学習済みパラメータを暗号化し、さらに、暗号化した学習済みパラメータで前記第2記憶部に記憶された暗号化した学習済みパラメータを更新する更新部を備える。 The secure component of this embodiment includes a first decryption unit that decrypts the encrypted learned parameters stored in the second storage unit, and when performing the machine learning, the learned parameters decrypted by the first decryption unit are used, and when the machine learning is terminated, the first encryption unit encrypts the learned parameters obtained by the machine learning, and further includes an update unit that updates the encrypted learned parameters stored in the second storage unit with the encrypted learned parameters.
セキュアコンポーネントは、機械学習を行う場合、暗号化した学習済みパラメータを第2記憶部から読み出し、読み出した、暗号化した学習済みパラメータを復号し、復号した学習済みパラメータを使用する。セキュアコンポーネントは、機械学習を終了した場合、機械学習によって得られた学習済みパラメータを暗号化し、暗号化した学習済みパラメータで第2記憶部に記憶された暗号化した学習済みパラメータを更新する。学習済みパラメータは、機械学習に使用するときだけ復号され、機械学習を行わないときは暗号化されているので、学習済みパラメータが仮に不正取得されたとしても、暗号化された学習済みパラメータを解読することができない。これにより、学習済みパラメータが第三者に悪用されることを防止できる。 When performing machine learning, the secure component reads the encrypted learned parameters from the second storage unit, decrypts the read encrypted learned parameters, and uses the decrypted learned parameters. When the secure component terminates machine learning, it encrypts the learned parameters obtained by machine learning and updates the encrypted learned parameters stored in the second storage unit with the encrypted learned parameters. Since the learned parameters are decrypted only when they are used for machine learning and are encrypted when machine learning is not being performed, even if the learned parameters are illegally obtained, the encrypted learned parameters cannot be decrypted. This makes it possible to prevent the learned parameters from being misused by a third party.
本実施の形態のセキュアコンポーネントは、評価用データを記憶する第3記憶部と、前記機械学習によって得られた学習済みパラメータを含む学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、暗号化した前記学習済みパラメータの前記第1サーバへの送信可否を判定する判定部とを備える。 The secure component of this embodiment includes a third storage unit that stores evaluation data, and a determination unit that, when the evaluation data is input to a trained model including trained parameters obtained by the machine learning, determines whether or not to transmit the encrypted trained parameters to the first server depending on the output result output by the trained model.
セキュアコンポーネントは、評価用データ(テストデータ、検証データとも称する)を記憶する。セキュアコンポーネントは、機械学習によって得られた学習済みパラメータを含む学習済みモデルに評価用データを入力した場合、学習済みモデルが出力する出力結果に応じて、当該学習済みパラメータを暗号化して第1サーバへ送信するか否かを判定する。 The secure component stores evaluation data (also referred to as test data or validation data). When the secure component inputs the evaluation data to a trained model including trained parameters obtained by machine learning, the secure component determines whether to encrypt and transmit the trained parameters to the first server, depending on the output results output by the trained model.
例えば、評価用データを学習済みモデルに入力した場合の学習済みモデルが出力する出力データの正答率が所定の閾値以上であれば、当該学習済みパラメータによってニューラルネットワークを最適化できるとして、当該学習済みパラメータを暗号化して第1サーバへ送信する。また、正答率が所定の閾値未満であれば、当該学習済みパラメータによってニューラルネットワークを最適化できないとして、当該学習済みパラメータを暗号化して第1サーバへ送信しない。これにより、ニューラルネットワークを最適化できる学習済みパラメータだけを選別して送信することができ、第1サーバ側では、有用でない学習済みパラメータが送信されてくることを防止できる。 For example, if the accuracy rate of the output data output by the trained model when the evaluation data is input to the trained model is equal to or higher than a predetermined threshold, it is determined that the neural network can be optimized using the trained parameters, and the trained parameters are encrypted and not transmitted to the first server. On the other hand, if the accuracy rate is less than the predetermined threshold, it is determined that the neural network cannot be optimized using the trained parameters, and the trained parameters are encrypted and not transmitted to the first server. This makes it possible to select and transmit only trained parameters that can optimize the neural network, and the first server can prevent the transmission of unuseful trained parameters.
本実施の形態のセキュアコンポーネントは、前記取得部で取得したデータに基づいて、要約データを生成する生成部を備え、前記第1暗号化部は、前記生成部で生成した要約データを暗号化し、前記送信部は、暗号化した要約データを前記第1サーバへ送信する。 The secure component of this embodiment includes a generation unit that generates summary data based on the data acquired by the acquisition unit, the first encryption unit encrypts the summary data generated by the generation unit, and the transmission unit transmits the encrypted summary data to the first server.
セキュアコンポーネントは、機器から取得したデータに基づいて、要約データを生成する。要約データは、機器から取得したデータに対してデータ前処理を行うことによって得られるデータであり、機械学習の学習段階、再学習段階、学習済みモデルを用いた推論段階において使用される。要約データは、例えば、取得したデータから不要なデータを除外する処理、取得したデータを間引く処理、取得したデータを変換する処理、取得したデータの正規化処理、統計処理又はベクトル化処理などによって生成することができる。 The secure component generates summary data based on the data acquired from the device. The summary data is obtained by performing data preprocessing on the data acquired from the device, and is used in the learning stage, re-learning stage, and inference stage using a trained model of machine learning. The summary data can be generated, for example, by a process of removing unnecessary data from the acquired data, a process of thinning the acquired data, a process of converting the acquired data, a normalization process of the acquired data, a statistical process, or a vectorization process.
セキュアコンポーネントは、生成した要約データを暗号化し、暗号化した要約データを第1サーバへ送信する。これにより、学習、推論、再学習などの各段階で必要となる要約データの生成をセキュアコンポーネント内で行い、第1サーバへ送信する際には、要約データを暗号化するので、学習、推論、再学習などの各段階で重要な要約データが漏洩又は不正取得される可能性を低減することができ、要約データを保護することができる。 The secure component encrypts the generated summary data and transmits the encrypted summary data to the first server. As a result, the generation of summary data required at each stage, such as learning, inference, and re-learning, is performed within the secure component, and the summary data is encrypted when transmitted to the first server. This reduces the possibility that important summary data will be leaked or illegally obtained at each stage, such as learning, inference, and re-learning, and enables the summary data to be protected.
本実施の形態のセキュアコンポーネントは、暗号化した学習済みパラメータを第2サーバから受信する受信部を備え、前記更新部は、前記受信部で受信された暗号化した学習済みパラメータで前記第2記憶部に記憶された暗号化した学習済みパラメータを更新する。 The secure component of this embodiment includes a receiving unit that receives the encrypted learned parameters from the second server, and the update unit updates the encrypted learned parameters stored in the second storage unit with the encrypted learned parameters received by the receiving unit.
セキュアコンポーネントは、暗号化した学習済みパラメータを第2サーバから受信する。学習済みパラメータは、第2サーバによる機械学習の学習結果とすることができる。セキュアコンポーネントは、第2記憶部に記憶された暗号化した学習済みパラメータを受信された暗号化した学習済みパラメータで更新する。 The secure component receives the encrypted learned parameters from the second server. The learned parameters can be the results of machine learning learning by the second server. The secure component updates the encrypted learned parameters stored in the second storage unit with the received encrypted learned parameters.
セキュアコンポーネントが学習済みモデルを記憶している場合、学習済みパラメータを更新することにより学習済みモデルを更新することができる。セキュアコンポーネントは、機器から取得したデータをサーバへ送信することなく、当該データに基づいて、所要の推論(例えば、判定処理、推定処理など)をリアルタイムで実行することができる。 When the secure component stores a trained model, the trained model can be updated by updating the trained parameters. The secure component can perform required inferences (e.g., judgment processing, estimation processing, etc.) in real time based on data acquired from the device without transmitting the data to a server.
本実施の形態のセキュアコンポーネントは、暗号化した学習済みモデルを第2サーバから受信する受信部と、前記受信部で受信された暗号化した学習済みモデルを復号する第2復号部と、前記第2復号部で復号した学習済みモデルを用いて所要の処理を行う処理部とを備える。 The secure component of this embodiment includes a receiving unit that receives the encrypted trained model from the second server, a second decryption unit that decrypts the encrypted trained model received by the receiving unit, and a processing unit that performs required processing using the trained model decrypted by the second decryption unit.
セキュアコンポーネントは、暗号化した学習済みモデルを第2サーバから受信する。学習済みモデルは、第2サーバによる機械学習の学習結果とすることができる。セキュアコンポーネントは、暗号化した学習済みモデルを復号し、復号した学習済みモデルを用いて所要の処理を行う。所要の処理は、推論(例えば、判定処理、推定処理など)とすることができる。 The secure component receives the encrypted trained model from the second server. The trained model may be a result of machine learning training by the second server. The secure component decrypts the encrypted trained model and performs required processing using the decrypted trained model. The required processing may be inference (e.g., a determination process, an estimation process, etc.).
セキュアコンポーネントは、自身が機械学習を行うことができない場合でも、第2サーバから学習済みモデルを取得することができる。セキュアコンポーネントは、機器から取得したデータに基づいて、所要の推論(例えば、判定処理、推定処理など)をリアルタイムで実行することができる。 Even if the secure component itself cannot perform machine learning, it can obtain a trained model from the second server. The secure component can perform required inferences (e.g., judgment processing, estimation processing, etc.) in real time based on data obtained from the device.
本実施の形態のセキュアコンポーネントは、前記受信部で受信された暗号化した学習済みモデルを記憶する第3記憶部を備え、前記第2復号部は、前記処理部で所要の処理を行う場合、前記第3記憶部から読み出した、暗号化した学習済みモデルを復号し、さらに、前記処理部が所要の処理を終了した場合、前記学習済みモデルを暗号化する第2暗号化部を備え、前記第2暗号化部で暗号化した学習済みモデルを前記第3記憶部に記憶する。 The secure component of this embodiment includes a third storage unit that stores the encrypted trained model received by the receiving unit, and the second decryption unit decrypts the encrypted trained model read from the third storage unit when the processing unit performs the required processing, and further includes a second encryption unit that encrypts the trained model when the processing unit has completed the required processing, and stores the trained model encrypted by the second encryption unit in the third storage unit.
セキュアコンポーネントは、受信した、暗号化した学習済みモデルを第3記憶部に記憶する。セキュアコンポーネントは、第3記憶部から読み出した、暗号化した学習済みモデルを復号して、所要の処理を行う。所要の処理は、推論(例えば、判定処理、推定処理など)とすることができる。セキュアコンポーネントは、所要の処理を終了した場合、学習済みモデルを暗号化し、暗号化した学習済みモデルを第3記憶部に記憶する。 The secure component stores the received encrypted trained model in the third storage unit. The secure component decrypts the encrypted trained model read from the third storage unit and performs the required processing. The required processing may be inference (e.g., a determination process, an estimation process, etc.). When the secure component finishes the required processing, it encrypts the trained model and stores the encrypted trained model in the third storage unit.
学習済みモデルは、所要の推論に使用するときだけ復号され、所要の推論を行わないときは暗号化されているので、学習済みモデルが仮に不正取得されたとしても、暗号化された学習済みモデルを解読することができない。これにより、学習済みモデルが第三者に悪用されることを防止できる。 The trained model is decrypted only when it is used for the required inference, and is encrypted when the required inference is not performed. Therefore, even if the trained model is illegally obtained, the encrypted trained model cannot be decrypted. This makes it possible to prevent the trained model from being misused by third parties.
本実施の形態のセキュアコンポーネントは、前記第2サーバを認証する第2認証部を備え、前記受信部は、前記第2認証部で認証が成功した場合、前記暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する。 The secure component of this embodiment includes a second authentication unit that authenticates the second server, and the receiving unit receives the encrypted trained parameters or the encrypted trained model if authentication is successful in the second authentication unit.
セキュアコンポーネントは、第2サーバを認証し、認証が成功した場合(例えば、第2サーバが正規のサーバである場合)、暗号化した学習済みパラメータ又は暗号化した学習済みモデルを第2サーバから受信する。なお、認証が成功しない場合には、第2サーバが不正なサーバであるとして、学習済みパラメータ又は学習済みモデルの受信を行わない。暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する前にサーバの認証を行うので、不正な学習済みパラメータ又は学習済みモデルを受信することを防止できる。 The secure component authenticates the second server, and if the authentication is successful (for example, if the second server is a legitimate server), receives the encrypted trained parameters or the encrypted trained model from the second server. If the authentication is not successful, the secure component determines that the second server is an unauthorized server and does not receive the trained parameters or the trained model. Since the server is authenticated before receiving the encrypted trained parameters or the encrypted trained model, it is possible to prevent the reception of unauthorized trained parameters or trained models.
本実施の形態のデバイスは、前述のセキュアコンポーネントを備える。 The device of this embodiment is equipped with the above-mentioned secure component.
機械学習により得られた学習結果を保護し、通信コストを低減することができるデバイスを実現することができる。 It is possible to realize a device that can protect the learning results obtained through machine learning and reduce communication costs.
本実施の形態のサーバは、セキュアコンポーネントから、暗号化した学習済みパラメータを受信する受信部と、前記受信部で受信された暗号化した学習済みパラメータを復号する復号部と、前記復号部で復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する生成部とを備える。 The server of this embodiment includes a receiving unit that receives encrypted trained parameters from the secure component, a decrypting unit that decrypts the encrypted trained parameters received by the receiving unit, and a generating unit that generates a trained model based on the trained parameters decrypted by the decrypting unit and a required algorithm.
本実施の形態のコンピュータプログラムは、コンピュータに、セキュアコンポーネントから、暗号化した学習済みパラメータを受信し、受信された暗号化した学習済みパラメータを復号し、復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する、処理を実行させる。 The computer program of this embodiment causes a computer to execute a process of receiving encrypted trained parameters from a secure component, decrypting the received encrypted trained parameters, and generating a trained model based on the decrypted trained parameters and a required algorithm.
サーバは、セキュアコンポーネントから、暗号化した学習済みパラメータを受信し、受信した、暗号化した学習済みパラメータを復号する。サーバは、復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する。所要のアルゴリズムは、推論アルゴリズム(プログラム)とすることができる。推論アルゴリズムは、組み込まれた学習済みパラメータを適用することにより、未知の入力データに対して、推論結果を出力することができるプログラムである。学習済みモデルは、学習済みパラメータが組み込まれた推論アルゴリズムである。 The server receives the encrypted trained parameters from the secure component and decrypts the received encrypted trained parameters. The server generates a trained model based on the decrypted trained parameters and a required algorithm. The required algorithm may be an inference algorithm (program). The inference algorithm is a program that can output an inference result for unknown input data by applying the built-in trained parameters. The trained model is an inference algorithm that incorporates the trained parameters.
サーバは、学習用のデータを機器から収集する必要がなく、セキュアコンポーネントから学習済みパラメータを受信するだけで学習済みモデルを生成することができるので、通信コストを低減することができる。また、学習済みパラメータは、暗号化された状態でサーバによって受信されるので、機械学習により得られた学習結果を保護することができる。 The server does not need to collect data for learning from the device, and can generate a trained model simply by receiving the trained parameters from the secure component, thereby reducing communication costs. In addition, the trained parameters are received by the server in an encrypted state, so the learning results obtained by machine learning can be protected.
本実施の形態のサーバは、評価用データを記憶する記憶部と、前記生成部で生成した学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、前記学習済みモデルに含まれる学習済みパラメータを評価する評価部とを備える。 The server of this embodiment includes a storage unit that stores evaluation data, and an evaluation unit that evaluates the trained parameters included in the trained model according to the output result output by the trained model when the evaluation data is input to the trained model generated by the generation unit.
サーバは、評価用データ(テストデータ、検証データとも称する)を記憶する。サーバは、生成した学習済みモデルに評価用データを入力した場合、学習済みモデルが出力する出力結果に応じて、学習済みモデルに含まれる学習済みパラメータを評価する。 The server stores evaluation data (also called test data or validation data). When the server inputs the evaluation data into the generated trained model, it evaluates the trained parameters included in the trained model according to the output results output by the trained model.
例えば、評価用データを学習済みモデルに入力した場合の学習済みモデルが出力する出力データの正答率が所定の閾値以上であれば、学習済みモデルが最適化されているとして、当該学習済みパラメータは、使用可能とすることができる。また、正答率が所定の閾値未満であれば、学習済みモデルが未だ最適化されていないとして、当該学習済みパラメータは、更新が必要とすることができる。これにより、セキュアコンポーネントから受信した学習済みパラメータを選別することができ、学習済みパラメータの更新の要否を判定することができる。 For example, if the accuracy rate of the output data output by the trained model when evaluation data is input to the trained model is equal to or higher than a predetermined threshold, the trained model is deemed to be optimized, and the trained parameters can be deemed usable. On the other hand, if the accuracy rate is less than a predetermined threshold, the trained model is deemed not yet optimized, and the trained parameters can be deemed to require updating. This makes it possible to select trained parameters received from the secure component, and to determine whether or not the trained parameters need to be updated.
本実施の形態のサーバにおいて、前記評価部は、複数の前記セキュアコンポーネントが機械学習によって得た学習済みパラメータそれぞれを評価し、評価結果に応じて、複数の前記セキュアコンポーネントそれぞれが提供する学習済みパラメータの使用頻度を決定する決定部を備える。 In the server of this embodiment, the evaluation unit includes a determination unit that evaluates each of the learned parameters obtained by the multiple secure components through machine learning, and determines the frequency of use of the learned parameters provided by each of the multiple secure components based on the evaluation results.
サーバは、複数のセキュアコンポーネントが機械学習によって得た学習済みパラメータ(暗号化された状態)それぞれを受信し、受信した学習済みパラメータそれぞれを復号して評価する。サーバは、評価結果に応じて、複数のセキュアコンポーネントそれぞれが提供する学習済みパラメータの使用頻度を決定する。例えば、いずれの学習済みパラメータの評価も使用可能であるとし、それぞれの学習済みパラメータの評価に差(例えば、正答率の差)がある場合、正答率のより高い学習済みパラメータを提供したセキュアコンポーネントが提供する学習済みパラメータの使用頻度を高くする。一方、正答率のより低い学習済みパラメータを提供したセキュアコンポーネントが提供する学習済みパラメータの使用頻度を低くする。これにより、機械学習という観点から、複数のセキュアコンポーネント(デバイス)が機器から収集するデータを層別することができる。 The server receives each of the learned parameters (encrypted state) obtained by the multiple secure components through machine learning, and decrypts and evaluates each of the received learned parameters. The server determines the frequency of use of the learned parameters provided by each of the multiple secure components according to the evaluation results. For example, if the evaluations of any of the learned parameters can be used and there is a difference in the evaluations of the respective learned parameters (e.g., a difference in the accuracy rate), the server increases the frequency of use of the learned parameters provided by the secure component that provided the learned parameters with a higher accuracy rate. On the other hand, the server decreases the frequency of use of the learned parameters provided by the secure component that provided the learned parameters with a lower accuracy rate. This makes it possible to stratify the data collected from equipment by multiple secure components (devices) from the perspective of machine learning.
1 通信ネットワーク
10 機器
20 デバイス本体
21 CPU
22 アプリケーション
23 ネットワーク通信部
24 記憶部
25 通信路
30 セキュアエレメント
31 認証部
32 暗号化部
33 復号部
34 通信部
35 更新部
36 データ前処理部
37 実行処理部
38 機械学習処理部
39 NVM
41 初期パラメータ
42 アルゴリズム
43 学習済みパラメータ
44 学習用データ
45 評価用データ
50 IoTデバイス
100 サーバ
101 制御部
102 通信部
103 認証部
104 暗号化・復号部
105 評価部
106 決定部
107 学習処理部
108 実行処理部
109 記憶部
110 データベース
111 初期パラメータ
112 学習済みパラメータ
113 アルゴリズム
114 評価用データ
22
41
Claims (16)
前記取得部で取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化する第1暗号化部と、
前記第1暗号化部で暗号化した学習済みパラメータを第1サーバへ送信する送信部と、
評価用データを記憶する第3記憶部と、
前記機械学習によって得られた学習済みパラメータを含む学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、暗号化した前記学習済みパラメータの前記第1サーバへの送信可否を判定する判定部と
を備え、
前記判定部は、
前記学習済みモデルが出力する出力データの正答率が閾値以上の場合、前記学習済みパラメータを送信可と判定する、
セキュアコンポーネント。 an acquisition unit that acquires data collected by the device;
a first encryption unit that encrypts learned parameters obtained by machine learning using the data acquired by the acquisition unit;
a transmission unit that transmits the learned parameters encrypted by the first encryption unit to a first server ;
a third storage unit that stores evaluation data;
a determination unit that, when the evaluation data is input to a trained model including trained parameters obtained by the machine learning, determines whether or not to transmit the encrypted trained parameters to the first server, depending on an output result output by the trained model;
Equipped with
The determination unit is
When the accuracy rate of the output data output by the trained model is equal to or greater than a threshold, it is determined that the trained parameters are transmittable .
Secure components.
前記送信部は、
前記第1認証部で認証が成功した場合、前記暗号化した学習済みパラメータを前記第1サーバへ送信する、
請求項1に記載のセキュアコンポーネント。 a first authentication unit that authenticates the first server;
The transmission unit is
If authentication is successful in the first authentication unit, the encrypted learned parameters are transmitted to the first server.
The secure component of claim 1 .
前記第1認証部は、
前記第1サーバに対する認証要求に対して前記第1サーバが送信したパラメータと前記第1記憶部に記憶した所定のパラメータとを照合して前記第1サーバを認証する、
請求項2に記載のセキュアコンポーネント。 A first storage unit that stores a predetermined parameter used in the machine learning,
The first authentication unit
authenticating the first server by comparing a parameter transmitted by the first server in response to an authentication request to the first server with a predetermined parameter stored in the first storage unit;
The secure component of claim 2 .
前記送信部は、
所要のタイミングで、前記第2記憶部から読み出された暗号化した学習済みパラメータを前記第1サーバへ送信する、
請求項1から請求項3のいずれか一項に記載のセキュアコンポーネント。 a second storage unit that stores the learned parameters encrypted by the first encryption unit each time a learned parameter is obtained by the machine learning;
The transmission unit is
Transmitting the encrypted learned parameters read from the second storage unit to the first server at a required timing.
A secure component according to any one of claims 1 to 3.
前記機械学習を行う場合、前記第1復号部で復号した学習済みパラメータを使用し、
前記機械学習を終了した場合、前記第1暗号化部は、前記機械学習によって得られた学習済みパラメータを暗号化し、
さらに、暗号化した学習済みパラメータで前記第2記憶部に記憶された暗号化した学習済みパラメータを更新する更新部を備える、
請求項4に記載のセキュアコンポーネント。 A first decryption unit that decrypts the encrypted learned parameters stored in the second storage unit,
When performing the machine learning, the learned parameters decoded by the first decoding unit are used,
When the machine learning is completed, the first encryption unit encrypts the learned parameters obtained by the machine learning,
Further, an update unit is provided that updates the encrypted learned parameters stored in the second storage unit with the encrypted learned parameters.
A secure component as claimed in claim 4.
前記第1暗号化部は、
前記生成部で生成した要約データを暗号化し、
前記送信部は、
暗号化した要約データを前記第1サーバへ送信する、
請求項1から請求項5のいずれか一項に記載のセキュアコンポーネント。 a generation unit that generates summary data based on the data acquired by the acquisition unit;
The first encryption unit
encrypting the abstract data generated by the generation unit;
The transmission unit is
Sending the encrypted abstract to the first server;
A secure component according to any one of claims 1 to 5 .
前記更新部は、
前記受信部で受信された暗号化した学習済みパラメータで前記第2記憶部に記憶された暗号化した学習済みパラメータを更新する、
請求項5に記載のセキュアコンポーネント。 A receiving unit that receives the encrypted learned parameters from the second server,
The update unit is
updating the encrypted learned parameters stored in the second storage unit with the encrypted learned parameters received by the receiving unit;
A secure component as claimed in claim 5.
前記受信部で受信された暗号化した学習済みモデルを復号する第2復号部と、
前記第2復号部で復号した学習済みモデルを用いて所要の処理を行う処理部と
を備える、
請求項1から請求項6のいずれか一項に記載のセキュアコンポーネント。 A receiving unit that receives the encrypted trained model from the second server;
A second decryption unit that decrypts the encrypted trained model received by the receiving unit;
A processing unit that performs required processing using the trained model decoded by the second decoding unit.
A secure component according to any one of claims 1 to 6 .
前記第2復号部は、
前記処理部で所要の処理を行う場合、前記第3記憶部から読み出した、暗号化した学習済みモデルを復号し、
さらに、前記処理部が所要の処理を終了した場合、前記学習済みモデルを暗号化する第2暗号化部を備え、
前記第2暗号化部で暗号化した学習済みモデルを前記第3記憶部に記憶する、
請求項8に記載のセキュアコンポーネント。 A third storage unit that stores the encrypted trained model received by the receiving unit,
The second decoding unit is
When performing required processing in the processing unit, the encrypted trained model read from the third storage unit is decrypted,
Further, a second encryption unit that encrypts the trained model when the processing unit has completed a required process,
The trained model encrypted by the second encryption unit is stored in the third storage unit.
A secure component as claimed in claim 8 .
前記受信部は、
前記第2認証部で認証が成功した場合、前記暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する、
請求項7から請求項9のいずれか一項に記載のセキュアコンポーネント。 a second authentication unit that authenticates the second server;
The receiving unit is
If authentication is successful in the second authentication unit, the encrypted trained parameters or the encrypted trained model are received.
A secure component according to any one of claims 7 to 9 .
デバイス。 A secure component according to any one of claims 1 to 10 ,
device.
前記受信部で受信された暗号化した学習済みパラメータを復号する復号部と、
前記復号部で復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成する生成部と、
評価用データを記憶する記憶部と、
前記生成部で生成した学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、前記学習済みモデルに含まれる学習済みパラメータを評価する評価部と、
前記学習済みモデルが出力する出力データの正答率が閾値以上の場合、前記学習済みパラメータを送信可と判定する判定部と
を備える、
サーバ。 a receiving unit that receives encrypted learned parameters from the secure component;
a decryption unit that decrypts the encrypted learned parameters received by the receiving unit;
A generation unit that generates a trained model based on the trained parameters decoded by the decoding unit and a required algorithm ;
A storage unit that stores evaluation data;
an evaluation unit that evaluates a trained parameter included in the trained model according to an output result output by the trained model when the evaluation data is input to the trained model generated by the generation unit;
a determination unit that determines that the trained parameters are transmittable when a correct answer rate of output data output by the trained model is equal to or greater than a threshold;
Equipped with
server.
複数の前記セキュアコンポーネントが機械学習によって得た学習済みパラメータそれぞれを評価し、
評価結果に応じて、複数の前記セキュアコンポーネントそれぞれが提供する学習済みパラメータの使用頻度を決定する決定部を備える、
請求項12に記載のサーバ。 The evaluation unit is
Evaluating each of the learned parameters obtained by machine learning by the multiple secure components;
a determination unit that determines a frequency of use of learned parameters provided by each of the plurality of secure components according to an evaluation result;
The server of claim 12 .
機器が収集したデータを取得し、
取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、
暗号化した学習済みパラメータをサーバへ送信し、
評価用データを記憶し、
前記機械学習によって得られた学習済みパラメータを含む学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、暗号化した前記学習済みパラメータの前記サーバへの送信可否を判定し、
前記学習済みモデルが出力する出力データの正答率が閾値以上の場合、前記学習済みパラメータを送信可と判定する、
処理を実行させるコンピュータプログラム。 On the computer,
Acquire the data collected by the device,
The learned parameters obtained through machine learning using the acquired data are encrypted,
The encrypted learned parameters are sent to the server.
Store evaluation data;
When the evaluation data is input to a trained model including trained parameters obtained by the machine learning, a determination is made as to whether or not the encrypted trained parameters can be transmitted to the server, depending on an output result output by the trained model;
When the accuracy rate of the output data output by the trained model is equal to or greater than a threshold, it is determined that the trained parameters are transmittable .
A computer program that executes a process.
セキュアコンポーネントから、暗号化した学習済みパラメータを受信し、
受信された暗号化した学習済みパラメータを復号し、
復号した学習済みパラメータ及び所要のアルゴリズムに基づいて学習済みモデルを生成し、
評価用データを記憶し、
生成した学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、前記学習済みモデルに含まれる学習済みパラメータを評価し、
前記学習済みモデルが出力する出力データの正答率が閾値以上の場合、前記学習済みパラメータを送信可と判定する、
処理を実行させるコンピュータプログラム。 On the computer,
Receives encrypted learned parameters from the secure component,
Decrypting the received encrypted learned parameters;
generating a trained model based on the decoded trained parameters and a required algorithm;
Store evaluation data;
When the evaluation data is input to the generated trained model, trained parameters included in the trained model are evaluated according to an output result output by the trained model;
When the accuracy rate of the output data output by the trained model is equal to or greater than a threshold, it is determined that the trained parameters are transmittable .
A computer program that executes a process.
機器が収集したデータを取得し、
取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化し、
暗号化した学習済みパラメータをサーバへ送信し、
評価用データを記憶し、
前記機械学習によって得られた学習済みパラメータを含む学習済みモデルに前記評価用データを入力した場合、前記学習済みモデルが出力する出力結果に応じて、暗号化した前記学習済みパラメータの前記サーバへの送信可否を判定し、
前記学習済みモデルが出力する出力データの正答率が閾値以上の場合、前記学習済みパラメータを送信可と判定する、
機械学習方法。 The secure component
Acquire the data collected by the device,
The learned parameters obtained through machine learning using the acquired data are encrypted,
The encrypted learned parameters are sent to the server .
Store evaluation data;
When the evaluation data is input to a trained model including trained parameters obtained by the machine learning, a determination is made as to whether or not the encrypted trained parameters can be transmitted to the server, depending on an output result output by the trained model;
When the accuracy rate of the output data output by the trained model is equal to or greater than a threshold, it is determined that the trained parameters are transmittable .
Machine learning methods.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020109731A JP7501149B2 (en) | 2020-06-25 | 2020-06-25 | Secure component, device, server, computer program and machine learning method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020109731A JP7501149B2 (en) | 2020-06-25 | 2020-06-25 | Secure component, device, server, computer program and machine learning method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022007052A JP2022007052A (en) | 2022-01-13 |
| JP7501149B2 true JP7501149B2 (en) | 2024-06-18 |
Family
ID=80110965
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020109731A Active JP7501149B2 (en) | 2020-06-25 | 2020-06-25 | Secure component, device, server, computer program and machine learning method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7501149B2 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180018590A1 (en) | 2016-07-18 | 2018-01-18 | NantOmics, Inc. | Distributed Machine Learning Systems, Apparatus, and Methods |
| JP2018190239A (en) | 2017-05-09 | 2018-11-29 | 公立大学法人県立広島大学 | Deep learning automatic learning system, client device and server device |
| WO2018216379A1 (en) | 2017-05-26 | 2018-11-29 | 株式会社日立国際電気 | Machine learning model illicitness sensing system and illicitness sensing method |
| JP2019109680A (en) | 2017-12-18 | 2019-07-04 | 大日本印刷株式会社 | Device, secure element, program, information processing method and information processing system |
| US20190279082A1 (en) | 2018-03-07 | 2019-09-12 | Movidius Ltd. | Methods and apparatus to determine weights for use with convolutional neural networks |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170034227A (en) * | 2015-09-18 | 2017-03-28 | 삼성전자주식회사 | Apparatus and method for speech recognition, apparatus and method for learning transformation parameter |
-
2020
- 2020-06-25 JP JP2020109731A patent/JP7501149B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180018590A1 (en) | 2016-07-18 | 2018-01-18 | NantOmics, Inc. | Distributed Machine Learning Systems, Apparatus, and Methods |
| JP2019526851A (en) | 2016-07-18 | 2019-09-19 | ナント ホールディングス アイピー エルエルシーNant Holdings IP, LLC | Distributed machine learning system, apparatus, and method |
| JP2018190239A (en) | 2017-05-09 | 2018-11-29 | 公立大学法人県立広島大学 | Deep learning automatic learning system, client device and server device |
| WO2018216379A1 (en) | 2017-05-26 | 2018-11-29 | 株式会社日立国際電気 | Machine learning model illicitness sensing system and illicitness sensing method |
| US20200082056A1 (en) | 2017-05-26 | 2020-03-12 | Hitachi Kokusai Electric Inc. | Machine-learning model fraud detection system and fraud detection method |
| JP2019109680A (en) | 2017-12-18 | 2019-07-04 | 大日本印刷株式会社 | Device, secure element, program, information processing method and information processing system |
| US20190279082A1 (en) | 2018-03-07 | 2019-09-12 | Movidius Ltd. | Methods and apparatus to determine weights for use with convolutional neural networks |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022007052A (en) | 2022-01-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11949771B2 (en) | Secure blockchain integrated circuit | |
| CN109325584B (en) | Neural network-based federated modeling method, device and readable storage medium | |
| US11544352B2 (en) | Machine-learning model fraud detection system and fraud detection method | |
| CN117557270B (en) | Mobile terminal secure payment management method and system | |
| CN113487042B (en) | A federated learning method, device and federated learning system | |
| CN111027981B (en) | Method and device for multi-party joint training of risk assessment model for IoT equipment | |
| CN111428887B (en) | Model training control method, device and system based on multiple computing nodes | |
| US12333056B2 (en) | Neural network cryptography coprocessor providing countermeasture against side-channel analysis | |
| US9292793B1 (en) | Analyzing device similarity | |
| Sodagari | Trends for mobile IoT crowdsourcing privacy and security in the big data era | |
| US11652803B2 (en) | System, method and computer-accessible medium for supporting at least one cyber-physical signaling game | |
| WO2018121377A1 (en) | Transaction method, device and system used in virtual reality environment | |
| CN116957104A (en) | Secure federal learning aggregation method, system, device and medium in wireless network | |
| CN113762968A (en) | Authentication method, related device, device and storage medium for transaction equipment | |
| JP7501149B2 (en) | Secure component, device, server, computer program and machine learning method | |
| TWI755210B (en) | Anonymous disclosure and many-to-many recognition system based on blockchain and allowing identity confirmation and method thereof | |
| William et al. | Securing Complex IoT Platforms with Token Based Access Control and Authenticated Key Establishment | |
| JP2011223495A (en) | Information processor and method, and program | |
| CN120013531A (en) | Methods for machine learning model validation and trading | |
| JP7612552B2 (en) | Verification device, verification method, and verification program | |
| KR102704646B1 (en) | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same | |
| US11880448B1 (en) | Secure authentication using recurrent neural networks | |
| Flikkema et al. | When things are sensors for cloud AI: Protecting privacy through data collection transparency in the age of digital assistants | |
| HK40027997A (en) | Method and device for multi-party joint training of risk assessment model for iot machine | |
| HK40027997B (en) | Method and device for multi-party joint training of risk assessment model for iot machine |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230427 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240130 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240131 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240326 |
|
| 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: 20240507 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240520 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7501149 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |