Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7501149B2 - Secure component, device, server, computer program and machine learning method - Google Patents
[go: Go Back, main page]

JP7501149B2 - Secure component, device, server, computer program and machine learning method - Google Patents

Secure component, device, server, computer program and machine learning method Download PDF

Info

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
Application number
JP2020109731A
Other languages
Japanese (ja)
Other versions
JP2022007052A (en
Inventor
正剛 福永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2020109731A priority Critical patent/JP7501149B2/en
Publication of JP2022007052A publication Critical patent/JP2022007052A/en
Application granted granted Critical
Publication of JP7501149B2 publication Critical patent/JP7501149B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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. Patent Document 1 discloses a system in which data acquired by an edge device is sent to a server, and machine learning is performed on both the edge device and the server.

特許第6267840号公報Patent No. 6267840

しかし、エッジデバイスは、第三者がアクセス可能な場所に設置される場合や、無人運転される場合がある。このため、機械学習の学習結果などの重要な情報をエッジデバイスに格納しておくと、このような重要な情報が不正に取得される可能性がある。また、エッジデバイスからサーバに送信するデータ量が増えると通信コストが高くなる。 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.

実施の形態の機械学習システムの構成の一例を示す模式図である。FIG. 1 is a schematic diagram illustrating an example of a configuration of a machine learning system according to an embodiment. IoTデバイスの構成の一例を示すブロック図である。FIG. 1 is a block diagram showing an example of the configuration of an IoT device. サーバの構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of a configuration of a server. ニューラルネットワークの機械学習の一例を示す模式図である。FIG. 1 is a schematic diagram illustrating an example of machine learning using a neural network. 学習済みモデルの利用シーンの一例を示す説明図である。FIG. 1 is an explanatory diagram illustrating an example of a usage scene of a trained model. 学習済みモデルの送信可否の判定方法の一例を示す模式図である。FIG. 11 is a schematic diagram showing an example of a method for determining whether or not a trained model can be transmitted. 第1態様の場合の処理手順の一例を示すフローチャートである。11 is a flowchart showing an example of a processing procedure in the first aspect. 第2態様の場合の処理手順の一例を示すフローチャートである。13 is a flowchart illustrating an example of a processing procedure in the case of a second aspect. 第3態様の場合の処理手順の一例を示すフローチャートである。13 is a flowchart illustrating an example of a processing procedure in the case of a third aspect. セキュアエレメントでの学習処理の手順の一例を示すフローチャートである。13 is a flowchart showing an example of a procedure of a learning process in a secure element. セキュアエレメントでの推論処理の手順の一例を示すフローチャートである。13 is a flowchart showing an example of an inference processing procedure in a secure element.

以下、本発明をその実施の形態を示す図面に基づいて説明する。図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 devices 50 are, for example, devices that are equipped with an OS and can operate independently, and correspond to the "things" in the "Internet of Things" (IoT). The IoT devices 50 include a SoC (System on Chip) as the device body, and a secure element as a secure component. Details of the IoT devices 50 will be described later.

IoTデバイス50には、機器10が接続されている。機器10は、エッジデバイスとも称され、例えば、音声データや映像データ、あるいは、位置、長さ、時間、速度、加速度、圧力、温度、エネルギー又は電気量などのデータを収集又は生成できる装置であればよい。例えば、機器10には、各種センサ類、計測機器、カメラ、自動車部品、道路上の車両検知器、生産設備(工業機械)、家電製品、POS端末、スマートフォン、ウェアラブルデバイスなどのデータを収集又は生成できるものが含まれる。 The IoT device 50 is connected to an apparatus 10. The apparatus 10 is also called an edge device, and may be any device capable of collecting or generating data such as audio data, video data, or data such as position, length, time, speed, acceleration, pressure, temperature, energy, or electrical quantity. For example, the apparatus 10 includes devices capable of collecting or generating data such as various sensors, measuring instruments, cameras, automobile parts, vehicle detectors on roads, production equipment (industrial machinery), home appliances, POS terminals, smartphones, and wearable devices.

図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 device 10 is connected to one IoT device 50, a form in which multiple devices 10 (three in FIG. 1) are connected to one IoT device 50, and a form in which the IoT device 50 has the functions of the device 10. Each IoT device 50 can acquire data collected by the device 10. Also, the IoT device 50 can collect data by itself. Each IoT device 50 can be connected to a server 100 via a communication network 1 such as the Internet.

図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 IoT device 50. The IoT device 50 includes a device main body 20 and a secure element 30. Most of the device main body 20 is composed of a single SoC (System on a Chip), and many or all of the functions required for the operation of the system (including, for example, a CPU 21, a network communication unit 23, a storage unit 24, etc.) are integrated and implemented on a single semiconductor chip. The application 22 is an application that runs on the CPU 21. Note that, for convenience, one application 22 is illustrated in Figure 2, but the number of applications 22 may be multiple. The application 22 can acquire data collected by the device 10 via the network communication unit 23. Note that a function equivalent to the device 10 can also be incorporated into the device main body 20.

セキュアエレメント30は、耐タンパ性を有するセキュリティチップである。セキュアエレメント30は、デバイス本体20との間で、I2C(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)等の通信路25で物理的に接続されている。 The secure element 30 is a tamper-resistant security chip. The secure element 30 is physically connected to the device main body 20 via a communication path 25 such as I2C (Inter-Integrated Circuit) or SPI (Serial Peripheral Interface).

セキュアエレメント30は、認証部31、暗号化部32、復号部33、通信部34、更新部35、データ前処理部36、実行処理部37、機械学習処理部38、及びNVM(Non-volatile memory)39を備える。NVM39には、初期パラメータ41、アルゴリズム(プログラム)、学習済みパラメータ43、学習用データ44、評価用データ(テストデータ、検証データとも称する)45を保持する領域が確保されている。 The secure element 30 includes an authentication unit 31, an encryption unit 32, a decryption unit 33, a communication unit 34, an update unit 35, a data preprocessing unit 36, an execution processing unit 37, a machine learning processing unit 38, and a non-volatile memory (NVM) 39. The NVM 39 has areas reserved for storing initial parameters 41, an algorithm (program), learned parameters 43, learning data 44, and evaluation data (also called test data or verification data) 45.

図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 server 100. The server 100 includes a control unit 101 that controls the entire server 100, a communication unit 102, an authentication unit 103, an encryption/decryption unit 104, an evaluation unit 105, a determination unit 106, a learning processing unit 107, an execution processing unit 108, and a storage unit 109. The control unit 101 can be configured with a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and the like. The storage unit 109 is configured with a semiconductor memory or a hard disk, and has areas for storing initial parameters 111, learned parameters 112, an algorithm (program) 113, and evaluation data 114. The server 100 can access a database 110 in which learning data is stored, and read and write data. Details of the server 100 will be described later.

本実施の形態の機械学習システムは、主に以下の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 secure element 30 and the learning result is provided to the server 100. As a second aspect, (2) data preprocessing is performed in the secure element 30 and summary data obtained as a result of the data preprocessing is provided to the server 100. As a third aspect, (3) machine learning learning results are obtained from the server 100 and inference (such as judgment processing and estimation processing) is performed in the secure element 30. Below, the first aspect will be described first, but first the secure element 30 will be described.

セキュアエレメント30は、通信路25を介してデバイス本体20から、機器10が収集したデータを取得することができる。セキュアエレメント30は、取得したデータを学習用データ44としてNVM39に記憶する。 The secure element 30 can acquire data collected by the device 10 from the device main body 20 via the communication path 25. The secure element 30 stores the acquired data in the NVM 39 as learning data 44.

認証部31は、デバイス認証を行う。デバイス認証は、セキュアエレメント30がデバイス本体20からデータを取得する際の認証である。本明細書では、アプリケーション22が、機器10で収集されたデータを取得するので、デバイス認証は、アプリケーションの認証となる。認証方法は、例えば、セキュアエレメント30が保持するアプリケーション検証鍵を用いて、アプリケーション22から受信したアプリケーション証明書を検証する方法などを用いることができる。認証が成功すれば、セキュアエレメント30は、デバイス本体20からデータを取得し、認証が不成功であれば、セキュアエレメント30は、デバイス本体20からデータを取得しない。これにより、アプリケーション22のふりをした不正なアプリケーションによって、不適切なデータや不正な意図を持ったデータがセキュアエレメント30に送られることを防止できる。 The authentication unit 31 performs device authentication. Device authentication is authentication when the secure element 30 acquires data from the device main body 20. In this specification, since the application 22 acquires data collected by the equipment 10, device authentication is authentication of the application. For example, an authentication method can be used in which an application certificate received from the application 22 is verified using an application verification key held by the secure element 30. If authentication is successful, the secure element 30 acquires data from the device main body 20, and if authentication is unsuccessful, the secure element 30 does not acquire data from the device main body 20. This makes it possible to prevent inappropriate data or data with fraudulent intent from being sent to the secure element 30 by a fraudulent application masquerading as the application 22.

認証部31は、サーバ認証を行う。サーバ認証は、セキュアエレメント30がサーバ100との間でデータの授受を行う際の認証である。サーバ認証の詳細は後述する。 The authentication unit 31 performs server authentication. Server authentication is performed when the secure element 30 exchanges data with the server 100. Details of server authentication will be described later.

データ前処理部36は、生成部としての機能を有し、機器10から取得したデータに基づいて、要約データを生成することができる。要約データは、機器10から取得したデータに対してデータ前処理を行うことによって得られるデータであり、機械学習の学習段階、学習済みモデルを用いた推論段階、及び再学習段階において使用することができる。要約データは、例えば、取得したデータから不要なデータを除外する処理、取得したデータを間引く処理、取得したデータを変換する処理、取得したデータの正規化処理、統計処理又はベクトル化処理、教師ラベルの生成処理、画像処理、言語処理などによって生成することができる。なお、第1態様では、データ前処理部36は必須ではない。 The data preprocessing unit 36 has a function as a generating unit, and can generate summary data based on the data acquired from the device 10. The summary data is data obtained by performing data preprocessing on the data acquired from the device 10, and can be used in the learning stage of machine learning, the inference stage using a trained model, and the re-learning stage. 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 vectorization process, a process of generating teacher labels, image processing, language processing, etc. Note that in the first aspect, the data preprocessing unit 36 is not essential.

機械学習処理部38は、機器10から取得したデータ(要約データを含めてもよい)を用いて機械学習を行う。機械学習は、ニューラルネットワークの学習であり、教師データ(正解及び不正解)の入力によってニューラルネットワークを問題に対して最適化する教師あり学習でもよく、あるいは、教師なし学習又は強化学習でもよい。学習方法は、例えば、ニューラルネットワークの構造(例えば、入力層、出力層、中間層)を定義し、アルゴリズム(問題の最適化アルゴリズム)を準備し、ニューラルネットワークに初期パラメータを設定し、学習用データをニューラルネットワークに与えることにより、パラメータ(例えば、ニューロン間の重み、ニューロンに与えるバイアス)の更新を繰り返す。これにより、学習結果としての学習済みパラメータを生成することができる。なお、学習済みパラメータは、ニューラルネットワークのニューロン間の重み、及びニューロンに与えるバイアスに限定されるものではなく、例えば、強化学習によって生成される、Q値やQ関数などを含めてもよく、機械学習処理の学習結果として生成されるパラメータを含むものとする。 The machine learning processing unit 38 performs machine learning using data (which may include summary data) acquired from the device 10. 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 teacher data (correct answers and incorrect answers), or 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 in the neural network, and provides learning data to the neural network, thereby repeatedly updating parameters (e.g., weights between neurons, biases to be given to neurons). This makes it possible to generate learned parameters as the learning result. Note that the learned parameters are not limited to the weights between neurons of the neural network and the biases to be given to neurons, and may include, for example, Q values and Q functions generated by reinforcement learning, and include parameters generated as the learning result of the machine learning process.

図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 device 10. The secure element 30 acquires purchase time data, temperature data, sales data, etc. as data collected by the vending machine (learning data set). The purchase time data is time series data of the time when the beverage was purchased, the temperature data is temperature data at the time when the beverage was purchased, and the sales data is product data (product name, product code, etc.) of the purchased beverage. When the secure element 30 collects the amount of data required for machine learning, it provides the collected learning data set to the neural network to perform machine learning, and updates the parameters of the neural network (such as the weight of the neural network's connections and bias values) to generate learned parameters. The larger the scale of the neural network, the greater the number of learned parameters, but all the learned parameters of the neural network are collectively referred to as the learned parameter group W.

学習済みパラメータ群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 encryption unit 32 encrypts the learned parameters generated by the machine learning processing unit 38. The encryption algorithm may be either an asymmetric key encryption (e.g., RSA) or a symmetric key encryption (shared key encryption) (e.g., AES: Advanced Encryption Standard), and any appropriate method may be used. The secure element 30 stores the encrypted learned parameters in the learned parameters 43 area of the NVM 39.

通信部34は、通信ネットワーク1を介してサーバ100との間の通信機能を提供する。セキュアエレメント30は、通信部34を介して、暗号化した学習済みパラメータをサーバ100へ送信することができる。なお、セキュアエレメント30は、デバイス本体20側にサーバ100との通信機能が存在する場合、当該通信機能を用いて、暗号化した学習済みパラメータをサーバ100へ送信してもよい。 The communication unit 34 provides a communication function with the server 100 via the communication network 1. The secure element 30 can transmit encrypted learned parameters to the server 100 via the communication unit 34. Note that, if the device main body 20 has a communication function with the server 100, the secure element 30 may transmit encrypted learned parameters to the server 100 using the communication function.

セキュアエレメント30は、機械学習の学習結果である学習済みパラメータをサーバ100へ送信するので、機器10が収集したデータを、そのままサーバ100へ送信する場合に比較して、データの通信量を低減することができ、通信コストを低減することができる。また、機械学習をセキュアエレメント30内で行い、学習結果(学習済みパラメータ)もセキュアエレメント30内に保持し、サーバ100へ送信する際には、暗号化するので、通信中の秘匿性や安全性を確保できるとともに、機械学習により得られた学習結果が漏洩又は不正に取得される可能性を低減することができ、学習結果を保護することができる。 The secure element 30 transmits the learned parameters, which are the results of machine learning, to the server 100, so that the amount of data communication can be reduced and communication costs can be reduced compared to when the data collected by the device 10 is transmitted directly to the server 100. In addition, the machine learning is performed within the secure element 30, and the learning results (learned parameters) are also stored within the secure element 30 and encrypted when transmitted to the server 100, so that confidentiality and safety during communication can be ensured, and the possibility of the learning results obtained by machine learning being leaked or illegally obtained can be reduced, and the learning results can be protected.

また、セキュアエレメント30における各処理を、IoTデバイス50が特段の処理を実行していないアイドル時間内に実施してもよい。これにより、セキュアエレメント30に掛かる処理が、IoTデバイス50の処理に影響を与えることを防止できる。 Furthermore, each process in the secure element 30 may be performed during an idle time when the IoT device 50 is not performing any particular process. This makes it possible to prevent the processes in the secure element 30 from affecting the processes in the IoT device 50.

認証部31は、暗号化した学習済みパラメータをサーバ100へ送信する際に、サーバ認証を行う。セキュアエレメント30は、認証が成功した場合(例えば、サーバが正規のサーバである場合)、暗号化した学習済みパラメータをサーバ100へ送信する。なお、認証が成功しない場合には、セキュアエレメント30は、サーバが不正なサーバであるとして、学習済みパラメータの送信を行わない。暗号化した学習済みパラメータを送信する前にサーバ100の認証を行うので、学習結果が不正なサーバへ送信されることを防止できる。なお、セキュアエレメント30がサーバの認証を行うとともに、サーバ100がセキュアエレメント30の認証を行う、相互認証を実施してもよい。 The authentication unit 31 performs server authentication when transmitting the encrypted learned parameters to the server 100. If the authentication is successful (for example, if the server is a legitimate server), the secure element 30 transmits the encrypted learned parameters to the server 100. If the authentication is unsuccessful, the secure element 30 determines that the server is an unauthorized server and does not transmit the learned parameters. Since the server 100 is authenticated before transmitting the encrypted learned parameters, it is possible to prevent the learning results from being transmitted to an unauthorized server. Mutual authentication may be performed in which the secure element 30 authenticates the server and the server 100 authenticates the secure element 30.

認証方法は、例えば、セキュアエレメント30が保持するサーバ検証鍵を用いて、サーバ100から受信したサーバ証明書を検証する方法などを用いることができる。 The authentication method can be, for example, a method of verifying the server certificate received from the server 100 using a server verification key held by the secure element 30.

また、認証方法として、以下のような手法を用いることができる。セキュアエレメント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 server 100, the secure element 30 authenticates the server 100 by comparing the parameters transmitted by the server 100 with the predetermined parameters used for machine learning stored in the NVM 39. The predetermined parameters may be the initial values of the parameters (weights, biases) stored in the initial parameters 41 area, or the most recently learned parameters obtained by the most recently performed machine learning stored in the learned parameters 43 area. If the server 100 is a legitimate server, it holds the initial values of the parameters and the most recently learned parameters, and therefore can 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態様における、サーバ100について説明する。 Next, we will explain the server 100 in the first embodiment.

通信部102は、通信ネットワーク1を介してセキュアエレメント30との間の通信機能を提供する。サーバ100は、通信部102を介して、暗号化した学習済みパラメータを受信することができる。 The communication unit 102 provides a communication function with the secure element 30 via the communication network 1. The server 100 can receive encrypted learned parameters via the communication unit 102.

認証部103は、セキュアエレメント30の認証を行う。制御部101は、認証が成功すれば、暗号化した学習済みパラメータを受信する。制御部101は、認証が成功しない場合、暗号化した学習済みパラメータを受信しない。認証部103の認証方法は、認証部31と同様である。 The authentication unit 103 authenticates the secure element 30. If the authentication is successful, the control unit 101 receives the encrypted learned parameters. If the authentication is not successful, the control unit 101 does not receive the encrypted learned parameters. The authentication method of the authentication unit 103 is the same as that of the authentication unit 31.

暗号化・復号部104は、通信部102を介して受信した、暗号化した学習済みパラメータを復号する。制御部101は、復号した学習済みパラメータを学習済みパラメータ112として記憶部109に記憶する。 The encryption/decryption unit 104 decrypts the encrypted learned parameters received via the communication unit 102. The control unit 101 stores the decrypted learned parameters in the memory unit 109 as learned parameters 112.

制御部101は、学習済みパラメータ112及びアルゴリズム113に基づいて学習済みモデルを生成することができる。アルゴリズム113は、推論アルゴリズム(プログラム)とすることができる。推論アルゴリズムは、組み込まれた学習済みパラメータ112を適用することにより、未知の入力データに対して、推論結果を出力することができるプログラムである。学習済みモデルは、学習済みパラメータ112が組み込まれた推論アルゴリズムである。 The control unit 101 can generate a trained model based on the trained parameters 112 and the algorithm 113. The algorithm 113 can be an inference algorithm (program). The inference algorithm is a program that can output an inference result for unknown input data by applying the incorporated trained parameters 112. The trained model is an inference algorithm that incorporates the trained parameters 112.

サーバ100は、学習用のデータを機器10から収集する必要がなく、セキュアエレメント30から学習済みパラメータを受信するだけで学習済みモデルを生成することができるので、通信コストを低減することができる。また、学習済みパラメータは、暗号化された状態でサーバ100によって受信されるので、機械学習により得られた学習結果を保護することができる。 The server 100 does not need to collect data for learning from the device 10, and can generate a trained model simply by receiving trained parameters from the secure element 30, thereby reducing communication costs. In addition, the trained parameters are received by the server 100 in an encrypted state, so the learning results obtained by machine learning can be protected.

実行処理部108は、生成された学習済みモデルを用いて、判定処理、予測処理又は推定処理などを含む推論アルゴリズムを実行する。機器10の種別に応じて、生成される学習済みモデルは異なるので、学習済みモデルの利用シーン(推論アルゴリズムの推論結果)も異なる。 The execution processing unit 108 uses the generated trained model to execute an inference algorithm including a judgment process, a prediction process, or an estimation process. Since the trained model generated differs depending on the type of device 10, the usage scenario of the trained model (the inference result of the inference algorithm) also differs.

図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 device 10 is a vending machine. Figure 5 explains cases in which the device 10 is, for example, various meters for electricity, water, gas, etc., production equipment (production machines, processing machines, painting machines, etc. at a manufacturing site), a camera in a store, and a wearable device. Note that the type of device 10 is not limited to the example in Figure 5, and can include devices in various fields such as the transportation field, construction/civil engineering field, manufacturing field, disaster prevention field, distribution field, transportation field, medical field, and health management field.

電気、水道、ガス等の各種メータの場合、セキュアエレメント30は、メータの時系列データ、メータの位置情報などを含む学習用データセットを取得することができる。学習用データセットは、各種メータの計測値でもよく、各種メータが表示する計測値をカメラで撮影して有られた値でもよい。学習済みモデルは、例えば、地域毎の需要予測、供給の最適化などの推論結果を提供できる。 In the case of various meters such as electricity, water, and gas meters, the secure element 30 can acquire a learning dataset including meter time series data, meter location information, and the like. The learning dataset may be the measurement values of the various meters, or may be values captured by a camera that show the measurement values displayed by the various meters. The trained model can provide inference results such as demand forecasts for each region and supply optimization, for example.

生産設備の場合、セキュアエレメント30は、振動データ、音響データ、設備の稼働データ(正常又は異常の別など)などを含む学習用データセットを取得することができる。学習用データセットは、生産設備に取り付けられた各種センサで検知された値とすることができる。学習済みモデルは、例えば、設備の劣化推定などの推論結果を提供できる。 In the case of production equipment, the secure element 30 can acquire a training data set including vibration data, acoustic data, equipment operation data (e.g., whether the equipment is normal or abnormal), etc. The training data set can be values detected by various sensors attached to the production equipment. The trained model can provide inference results such as an estimation of equipment deterioration.

店舗内カメラの場合、セキュアエレメント30は、入店顧客データ、レジ前待人数データなどを含む学習用データセットを取得することができる。学習用データセットは、カメラで得られた画像データに対して画像認識などの前処理を施した結果とすることができる。学習済みモデルは、例えば、レジ混雑予測などの推論結果を提供できる。 In the case of an in-store camera, the secure element 30 can acquire a learning dataset that includes data on customers entering the store, data on the number of people waiting in front of the register, and so on. The learning dataset can be the result of applying preprocessing such as image recognition to image data obtained by the camera. The trained model can provide inference results such as predictions of crowded registers, for example.

ウェアラブルデバイスの場合、セキュアエレメント30は、3次元加速度データ、時刻データ、位置情報などを含む学習用データセットを取得することができる。ウェアラブルデバイスは、例えば、高齢者などの対象者の手首や腰などに装着できる。学習済みモデルは、例えば、高齢者の行動パターン予測、健康状態の劣化予測などの推論結果を提供できる。 In the case of a wearable device, the secure element 30 can acquire a learning data set including three-dimensional acceleration data, time data, location information, and the like. The wearable device can be worn, for example, on the wrist or waist of a subject such as an elderly person. The trained model can provide inference results such as prediction of behavioral patterns of elderly people and prediction of deterioration of their health condition.

なお、機器10の種別が異なると、生成される学習済みモデルも異なり、利用シーンも異なるので、サーバ100を複数のサーバに分散し、分散した各サーバがそれぞれ異なる学習済みモデルを使用するようにしてもよい。 Note that, since different types of devices 10 generate different trained models and have different usage scenarios, the server 100 may be distributed among multiple servers, with each distributed server using a different trained model.

評価部105は、生成した学習済みモデルに評価用データ114を入力した場合、学習済みモデルが出力する出力結果に応じて、学習済みモデルに含まれる学習済みパラメータを評価する。 When the evaluation data 114 is input to the generated trained model, the evaluation unit 105 evaluates the trained parameters included in the trained model according to the output results output by the trained model.

例えば、評価用データ114を学習済みモデルに入力した場合の学習済みモデルが出力する出力データの正答率が所定の閾値以上であれば、学習済みモデルが最適化されているとして、当該学習済みパラメータは、使用可能とすることができる。また、正答率が所定の閾値未満であれば、学習済みモデルが未だ最適化されていないとして、当該学習済みパラメータは、更新が必要とすることができる。これにより、セキュアエレメント30から受信した学習済みパラメータを選別することができ、学習済みパラメータの更新の要否を判定することができる。 For example, if the accuracy rate of the output data output by the trained model when the evaluation data 114 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 made 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 the trained parameters received from the secure element 30, and to determine whether the trained parameters need to be updated.

複数のIoTデバイス50それぞれに同種の機器10が1又は複数接続され、各IoTデバイス50のセキュアエレメント30それぞれが、学習済みパラメータをサーバ100へ送信する態様を考える。この場合、サーバ100は、複数のセキュアエレメント30から学習済みパラメータ(暗号化された状態)それぞれを受信し、暗号化・復号部104は、受信した学習済みパラメータそれぞれを復号する。評価部105は、学習済みパラメータそれぞれを評価する。 Consider a case where one or more devices 10 of the same type are connected to each of multiple IoT devices 50, and each secure element 30 of each IoT device 50 transmits learned parameters to the server 100. In this case, the server 100 receives each of the learned parameters (encrypted state) from each of the multiple secure elements 30, and the encryption/decryption unit 104 decrypts each of the received learned parameters. The evaluation unit 105 evaluates each of the learned parameters.

決定部106は、評価部105の評価結果に応じて、複数のセキュアエレメント30それぞれが提供する学習済みパラメータの使用頻度を決定することができる。例えば、いずれの学習済みパラメータの評価も使用可能であるとし、それぞれの学習済みパラメータの評価に差(例えば、正答率の差)がある場合、正答率のより高い学習済みパラメータを送信したセキュアエレメント30が提供する学習済みパラメータの使用頻度を高くする。一方、正答率のより低い学習済みパラメータを送信したセキュアエレメント30が提供する学習済みパラメータの使用頻度を低くする。正答率の高低に応じて重み付けして使用頻度を決定してもよい。これにより、複数のセキュアエレメント30(IoTデバイス50)が機器10から収集するデータの優劣を加味することができる。 The determination unit 106 can determine the frequency of use of the learned parameters provided by each of the multiple secure elements 30 according to the evaluation result of the evaluation unit 105. For example, if the evaluation of any of the learned parameters can be used and there is a difference in the evaluation of each learned parameter (e.g., a difference in the accuracy rate), the frequency of use of the learned parameter provided by the secure element 30 that transmitted the learned parameter with a higher accuracy rate is increased. On the other hand, the frequency of use of the learned parameter provided by the secure element 30 that transmitted the learned parameter with a lower accuracy rate is decreased. The frequency of use may be determined by weighting according to the accuracy rate. This makes it possible to take into account the merits of the data collected by the multiple secure elements 30 (IoT devices 50) from the equipment 10.

セキュアエレメント30は、以下のような機能を備えてもよい。 The secure element 30 may have the following functions:

セキュアエレメント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 secure element 30 stores the encrypted learned parameter in the NVM 39. The secure element 30 can transmit the encrypted learned parameter read from the NVM 39 to the server 100 at a required timing. The required timing can be, for example, aligned with the timing of machine learning, and can be determined appropriately according to the usage environment and usage form in which the device 10 is used, and the attributes and type of data obtained from the device 10. The required timing can be once a day, once an hour, once a minute, or when the remaining storage capacity for the learned parameters 43 falls below a threshold. Since the learning result is stored in the NVM 39 in an encrypted state, unauthorized acquisition of the learning result can be prevented, thereby enhancing security.

セキュアエレメント30は、機械学習を行う場合、暗号化した学習済みパラメータをNVM39から読み出し、読み出した、暗号化した学習済みパラメータを復号部33で復号し、復号した学習済みパラメータを使用する。セキュアエレメント30は、機械学習を終了した場合、機械学習によって得られた学習済みパラメータを暗号化部32で暗号化する。更新部35は、暗号化した学習済みパラメータでNVM39に記憶された、直近の暗号化した学習済みパラメータを更新することができる。このように、学習済みパラメータは、機械学習に使用するときだけ復号され、機械学習を行わないときは暗号化されているので、学習済みパラメータが仮に不正取得されたとしても、暗号化された学習済みパラメータを解読することができない。これにより、学習済みパラメータが第三者に悪用されることを防止できる。 When performing machine learning, the secure element 30 reads the encrypted learned parameters from the NVM 39, decrypts the read encrypted learned parameters in the decryption unit 33, and uses the decrypted learned parameters. When the secure element 30 ends machine learning, the encryption unit 32 encrypts the learned parameters obtained by machine learning. The update unit 35 can update the most recently encrypted learned parameters stored in the NVM 39 with the encrypted learned parameters. In this way, the learned parameters are decrypted only when they are used for machine learning and are encrypted when machine learning is not performed. Therefore, 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.

セキュアエレメント30は、機械学習によって得られた学習済みパラメータを含む学習済みモデルに評価用データ45を入力した場合、学習済みモデルが出力する出力結果に応じて、当該学習済みパラメータを暗号化してサーバ100へ送信するか否かを判定してもよい。 When the secure element 30 inputs evaluation data 45 into a trained model including trained parameters obtained by machine learning, the secure element 30 may determine whether or not to encrypt and transmit the trained parameters to the server 100 depending on the output results output by the trained model.

図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 evaluation data 45 is input to the trained model, if the accuracy rate of the output data output by the trained model is equal to or greater than a predetermined threshold, it is determined that the trained parameters can optimize the neural network, and it is possible to determine that the trained parameters can be transmitted. Also, if the accuracy rate is less than the predetermined threshold, it is determined that the trained parameters cannot optimize the neural network, and it is possible to determine that the trained parameters cannot be transmitted. This allows the secure element 30 to select and transmit only trained parameters that can optimize the neural network, and the server 100 can prevent the transmission of unuseful trained parameters. Note that when the secure element 30 evaluates trained parameters, the evaluation unit 105 of the server 100 may not be essential.

次に、セキュアエレメント30にてデータ前処理を行い、データ前処理の結果得られた要約データをサーバ100に提供する第2態様について説明する。 Next, we will explain the second mode in which data preprocessing is performed in the secure element 30 and the summary data obtained as a result of the data preprocessing is provided to the server 100.

データ前処理部36の機能は第1態様で説明しものと同様であるので説明は省略する。 The function of the data preprocessing unit 36 is the same as that described in the first aspect, so the description will be omitted.

暗号化部32は、データ前処理部36によって生成された要約データを暗号化することができる。暗号化アルゴリズムは、非対称鍵暗号(RSA等)、対象鍵暗号(共通鍵暗号)(AES:Advanced Encryption Standard等)のいずれでもよく、適宜の手法を用いることができる。セキュアエレメント30は、暗号化した要約データをNVM39に記憶することができる。 The encryption unit 32 can encrypt the summary data generated by the data preprocessing unit 36. The encryption algorithm can be either asymmetric key cryptography (e.g., RSA) or symmetric key cryptography (shared key cryptography) (e.g., AES: Advanced Encryption Standard), and any appropriate method can be used. The secure element 30 can store the encrypted summary data in the NVM 39.

セキュアエレメント30は、暗号化した要約データをサーバ100へ送信することができる。要約データをサーバ100へ送信する際には、認証部31でサーバ認証を行うことができる。また、サーバ100によるセキュアエレメント30の認証を行うことで、相互認証を実施してもよい。 The secure element 30 can transmit encrypted summary data to the server 100. When transmitting the summary data to the server 100, the authentication unit 31 can perform server authentication. In addition, mutual authentication may be performed by having the server 100 authenticate the secure element 30.

サーバ100では、暗号化・復号部104が、暗号化した要約データを復号する。学習処理部107は、復号した要約データを学習用データとして用いて機械学習を行い、学習済みパラメータを生成することができる。 In the server 100, the encryption/decryption unit 104 decrypts the encrypted summary data. The learning processing unit 107 performs machine learning using the decrypted summary data as learning data, and can generate learned parameters.

これにより、学習、推論、再学習などの各段階で必要となる要約データの生成をセキュアエレメント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 secure element 30, and the summary data is encrypted when it is sent to the server 100, thereby reducing the possibility of important summary data being leaked or illegally obtained at each stage, such as learning, inference, and re-learning, and protecting the summary data.

次に、サーバ100から機械学習の学習結果を取得し、セキュアエレメント30で推論(判定処理や推定処理など)を行う第3態様について説明する。 Next, we will explain the third mode in which the machine learning learning results are obtained from the server 100 and inference (such as judgment processing and estimation processing) is performed by the secure element 30.

サーバ100では、学習処理部107が、データベース110に記憶された学習用データを用いた機械学習によって、学習済みパラメータ112を生成する。データベース110に記憶された学習用データは、図1に示すIoTデバイス50以外の他のIoTデバイスから取得してもよく、他の装置から取得してもよい。データベース110に記憶された学習用データは、随時収集することができる。制御部101は、学習済みパラメータ112及びアルゴリズム113に基づいて学習済みモデルを生成することができる。 In the server 100, the learning processing unit 107 generates learned parameters 112 by machine learning using the learning data stored in the database 110. The learning data stored in the database 110 may be acquired from an IoT device other than the IoT device 50 shown in FIG. 1, or may be acquired from another device. The learning data stored in the database 110 can be collected at any time. The control unit 101 can generate a learned model based on the learned parameters 112 and the algorithm 113.

サーバ100は、セキュアエレメント30との間で相互認証を行うことができる。認証が成功した場合、制御部101は、生成した学習済みモデル、あるいは、生成した学習済みパラメータを暗号化した状態でセキュアエレメント30へ送信する。セキュアエレメント30が推論アルゴリズムを保持している場合には、制御部101は、学習済みパラメータを送信すればよい。セキュアエレメント30が推論アルゴリズムを保持していない場合には、制御部101は、学習済みモデルを送信すればよい。 The server 100 can perform mutual authentication with the secure element 30. If the authentication is successful, the control unit 101 transmits the generated trained model or the generated trained parameters in an encrypted state to the secure element 30. If the secure element 30 holds an inference algorithm, the control unit 101 can transmit the trained parameters. If the secure element 30 does not hold an inference algorithm, the control unit 101 can transmit the trained model.

セキュアエレメント30は、サーバ100を認証し、認証が成功した場合、暗号化した学習済みパラメータ又は暗号化した学習済みモデルをサーバ100から受信する。なお、認証が成功しない場合には、サーバ100が不正なサーバであるとして、学習済みパラメータ又は学習済みモデルの受信を行わない。暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する前にサーバの認証を行うので、不正な学習済みパラメータ又は学習済みモデルを受信することを防止できる。 The secure element 30 authenticates the server 100, and if the authentication is successful, receives the encrypted trained parameters or the encrypted trained model from the server 100. If the authentication is not successful, the secure element 30 determines that the server 100 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.

セキュアエレメント30は、暗号化した学習済みモデル、あるいは、暗号化した学習済みパラメータを受信する際には、MAC(Message Authentication Code)検証を実施することができる。 When the secure element 30 receives an encrypted trained model or encrypted trained parameters, it can perform MAC (Message Authentication Code) verification.

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 authentication unit 103 uses a MAC key held by itself to calculate a MAC for the encrypted learned model or the encrypted learned parameters, and assigns the calculated MAC to the encrypted learned model or the encrypted learned parameters. For the MAC calculation, an existing MAC calculation algorithm (e.g., HMAC-SHA256, etc.) can be used for the data string of the encrypted learned model or the encrypted learned parameters. The secure element 30 uses a MAC verification key held by itself to verify the MAC assigned to the encrypted learned model or the encrypted learned parameters. Specifically, the MAC is derived by performing the same calculation as the MAC calculation performed by the server 100, and if it matches the MAC assigned to the encrypted learned model or the encrypted learned parameters, it can be determined that the MAC verification is successful. If the two do not match, the encrypted learned model or the encrypted learned parameters can be discarded as being invalid.

セキュアエレメント30は、暗号化した学習済みパラメータを受信した場合、更新部35は、NVM39に記憶した学習済みパラメータ43を、受信した学習済みパラメータで更新することができる。 When the secure element 30 receives encrypted learned parameters, the update unit 35 can update the learned parameters 43 stored in the NVM 39 with the received learned parameters.

セキュアエレメント30が学習済みモデルを記憶している場合、学習済みパラメータを更新することにより学習済みモデルを更新することができる。セキュアエレメント30は、機器10から取得したデータをサーバ100へ送信し、サーバ100が実行する推論結果を得る必要がなく、当該データに基づいて、実行処理部37による所要の推論(例えば、判定処理、予測処理、推定処理など)をリアルタイムで実行することができる。 When the secure element 30 stores a trained model, it is possible to update the trained model by updating the trained parameters. The secure element 30 does not need to transmit data acquired from the device 10 to the server 100 and obtain the inference results executed by the server 100, and can execute the required inference (e.g., judgment processing, prediction processing, estimation processing, etc.) by the execution processing unit 37 in real time based on the data.

セキュアエレメント30は、暗号化した学習済みモデルをサーバ100から受信した場合、復号部33は、暗号化した学習済みモデルを復号し、実行処理部37は、復号された学習済みモデルを用いて所要の推論(例えば、判定処理、予測処理、推定処理など)を行うことができる。 When the secure element 30 receives an encrypted trained model from the server 100, the decryption unit 33 decrypts the encrypted trained model, and the execution processing unit 37 can perform the required inference (e.g., judgment processing, prediction processing, estimation processing, etc.) using the decrypted trained model.

セキュアエレメント30は、機械学習処理部38を具備せず、自身が機械学習を行うことができない場合でも、サーバ100から学習済みモデルを取得することができる。セキュアエレメント30は、機器10から取得したデータに基づいて、実行処理部37による所要の推論(例えば、判定処理、予測処理、推定処理など)をリアルタイムで実行することができる。 Even if the secure element 30 does not have a machine learning processing unit 38 and is unable to perform machine learning itself, it can obtain a trained model from the server 100. The secure element 30 can execute the required inference (e.g., judgment processing, prediction processing, estimation processing, etc.) in real time using the execution processing unit 37 based on the data obtained from the device 10.

セキュアエレメント30は、以下のような機能を備えてもよい。 The secure element 30 may have the following functions:

セキュアエレメント30は、所要の推論(例えば、判定処理、予測処理、推定処理など)を行う場合、復号部33は、NVM39に記憶した、暗号化した学習済みモデル(アルゴリズム42及び学習済みパラメータ43)を読み出して復号する。実行処理部37は、復号された学習済みモデルに入力データを入力して、推論結果を出力する。実行処理部37の処理が終了した場合、暗号化部32は、学習済みモデルを暗号化して、NVM39に記憶する。なお、NVM39に読み出した学習済みモデルがNVM39に残っている場合には、再度書き込む必要はないので、実行処理部37の処理が終了した後に、推論に使用した学習済みモデルを消去してもよい。 When the secure element 30 performs a required inference (e.g., a judgment process, a prediction process, an estimation process, etc.), the decryption unit 33 reads out and decrypts the encrypted trained model (algorithm 42 and trained parameters 43) stored in the NVM 39. The execution processing unit 37 inputs input data into the decrypted trained model and outputs the inference result. When the processing of the execution processing unit 37 is completed, the encryption unit 32 encrypts the trained model and stores it in the NVM 39. Note that if the trained model read out to the NVM 39 remains in the NVM 39, there is no need to write it again, so the trained model used for the inference may be erased after the processing of the execution processing unit 37 is completed.

学習済みモデルは、所要の推論に使用するときだけ復号され、所要の推論を行わないときは暗号化されているので、学習済みモデルが仮に不正取得されたとしても、暗号化された学習済みモデルを解読することができない。これにより、学習済みモデルが第三者に悪用されることを防止できる。 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 main body 20 acquires data collected by the device 10 (S101). The secure element 30 performs device authentication (S301) and determines whether the authentication is successful (S302). If the authentication is successful (YES in S302), the secure element 30 acquires the data collected by the device 10 from the device main body 20 (S303).

セキュアエレメント30は、機械学習処理を行い(S304)、学習が完了したか否かを判定し(S305)、学習が完了していない場合(S305でNO)、ステップS304以降の処理を続ける。学習が完了した場合(S305でYES)、セキュアエレメント30は、評価用データを用いて、機械学習の結果、生成された学習済みパラメータを評価する(S306)。 The secure element 30 performs machine learning processing (S304) and determines whether learning is complete (S305). If learning is not complete (NO in S305), the secure element 30 continues processing from step S304 onwards. If learning is complete (YES in S305), the secure element 30 uses the evaluation data to evaluate the learned parameters generated as a result of the machine learning (S306).

セキュアエレメント30は、評価用データを用いたときの学習済みモデルが出力する出力結果の正答率が閾値以上であるか否かを判定し(S307)、正答率が閾値以上でない場合(S307でNO)、学習済みパラメータを破棄し(S308)、処理を終了する。正答率が閾値以上である場合(S307でYES)、セキュアエレメント30は、学習済みパラメータを暗号化し、暗号化した学習済みパラメータをNVM39に記憶する(S309)。 The secure element 30 determines whether the accuracy rate of the output result output by the trained model when the evaluation data is used is equal to or greater than a threshold (S307), and if the accuracy rate is not equal to or greater than the threshold (NO in S307), discards the trained parameters (S308) and ends the process. If the accuracy rate is equal to or greater than the threshold (YES in S307), the secure element 30 encrypts the trained parameters and stores the encrypted trained parameters in the NVM 39 (S309).

セキュアエレメント30は、サーバ認証を行う(S310)。なお、この場合、セキュアエレメント30とサーバ100とで相互認証を行ってもよい。セキュアエレメント30は、認証が成功したか否かを判定する(S311)。 The secure element 30 performs server authentication (S310). In this case, mutual authentication may be performed between the secure element 30 and the server 100. The secure element 30 determines whether the authentication is successful (S311).

認証が成功した場合(S311でYES)、セキュアエレメント30は、暗号化した学習済みパラメータをサーバ100へ送信する(S312)。認証が成功しない場合(S302でNO、S311でNO)、セキュアエレメント30は、処理を終了する。サーバ100は、学習済みパラメータを受信し、受信した学習済みパラメータを復号して記憶部109に記憶し(S501)、処理を終了する。 If authentication is successful (YES in S311), the secure element 30 transmits the encrypted learned parameters to the server 100 (S312). If authentication is not successful (NO in S302, NO in S311), the secure element 30 ends the processing. The server 100 receives the learned parameters, decrypts the received learned parameters, stores them in the memory unit 109 (S501), and ends the processing.

図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 main body 20 acquires data collected by the device 10 (S111). The secure element 30 performs device authentication (S321) and determines whether the authentication is successful (S322). If the authentication is successful (YES in S322), the secure element 30 acquires the data collected by the device 10 from the device main body 20 (S323).

セキュアエレメント30は、取得したデータから要約データを生成し(S324)、生成した要約データを暗号化し、暗号化した要約データをNVM39に記憶する(S325)。セキュアエレメント30は、サーバ認証を行う(S326)。なお、この場合、セキュアエレメント30とサーバ100とで相互認証を行ってもよい。セキュアエレメント30は、認証が成功したか否かを判定する(S327)。 The secure element 30 generates summary data from the acquired data (S324), encrypts the generated summary data, and stores the encrypted summary data in the NVM 39 (S325). The secure element 30 performs server authentication (S326). Note that in this case, mutual authentication may be performed between the secure element 30 and the server 100. The secure element 30 determines whether the authentication is successful (S327).

認証が成功した場合(S327でYES)、セキュアエレメント30は、暗号化した要約データをサーバ100へ送信する(S328)。認証が成功しない場合(S327でNO)、セキュアエレメント30は、処理を終了する。 If the authentication is successful (YES in S327), the secure element 30 transmits the encrypted summary data to the server 100 (S328). If the authentication is not successful (NO in S327), the secure element 30 ends the process.

サーバ100は、要約データを受信し、受信した要約データを復号して記憶部109に記憶する(S511)。サーバ100は、要約データを用いて機械学習処理を行い(S512)、学習済みモデルを生成し(S513)、処理を終了する。 The server 100 receives the summary data, decrypts the received summary data, and stores it in the storage unit 109 (S511). The server 100 performs machine learning processing using the summary data (S512), generates a trained model (S513), and ends the processing.

図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 secure element 30 performs server authentication (S341). In this case, mutual authentication may be performed between the secure element 30 and the server 100. The secure element 30 determines whether the authentication is successful (S342), and ends the processing if the authentication is not successful (NO in S342).

認証が成功した場合(S342でYES)、セキュアエレメント30は、暗号化された学習済みモデルをサーバ100から受信する(S343)。なお、暗号化された学習済みモデルに代えて、暗号化された学習済みパラメータを受信するようにしてもよい。セキュアエレメント30は、MAC検証を行い(S344)、検証が成功したか否かを判定する(S345)。 If the authentication is successful (YES in S342), the secure element 30 receives the encrypted trained model from the server 100 (S343). Note that encrypted trained parameters may be received instead of the encrypted trained model. The secure element 30 performs MAC verification (S344) and determines whether the verification is successful (S345).

検証が成功しない場合(S345でNO)、セキュアエレメント30は、受信した学習済みモデルを破棄し(S346)、処理を終了する。この場合、検証が不成功である旨をサーバ100に通知してもよい。検証が成功した場合(S345でYES)、セキュアエレメント30は、学習済みモデルを復号してNVM39に記憶し(S347)、処理を終了する。なお、学習済みモデルを暗号化した状態でNVM39に記憶してもよい。 If the verification is unsuccessful (NO in S345), the secure element 30 discards the received trained model (S346) and ends the process. In this case, the server 100 may be notified that the verification was unsuccessful. If the verification is successful (YES in S345), the secure element 30 decrypts the trained model and stores it in NVM 39 (S347), and ends the process. Note that the trained model may also be stored in NVM 39 in an encrypted state.

図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 secure element 30. The secure element 30 determines whether or not a learning data set has been acquired (S351), and if the learning data set has not been acquired (NO in S351), continues the process of step S351. If the learning data set has been acquired (YES in S351), the secure element 30 reads the encrypted most recent learning result (learned parameters, most recent accuracy rate corresponding to the learned parameters) from the NVM 39 and decrypts it (S352).

セキュアエレメント30は、機械学習処理を行い(S353)、評価用データを用いたときの学習済みモデルが出力する出力結果に基づいて学習済みパラメータを評価する(S354)。セキュアエレメント30は、学習済みモデルが出力する出力結果の正答率が直近の正答率以上であるか否かを判定し(S344)、正答率が直近の正答率以上である場合(S355でYES)、ステップS353で生成した学習済みパラメータを暗号化し、直近の学習済みパラメータを更新し(S356)、処理を終了する。正答率が直近の正答率以上でない場合(S355でNO)、セキュアエレメント30は、処理を終了する。この場合、ステップS353で生成した学習済みパラメータを破棄してもよい。 The secure element 30 performs machine learning processing (S353) and evaluates the learned parameters based on the output results output by the learned model when the evaluation data is used (S354). The secure element 30 determines whether the accuracy rate of the output results output by the learned model is equal to or higher than the most recent accuracy rate (S344), and if the accuracy rate is equal to or higher than the most recent accuracy rate (YES in S355), it encrypts the learned parameters generated in step S353, updates the most recent learned parameters (S356), and ends the process. If the accuracy rate is not equal to or higher than the most recent accuracy rate (NO in S355), the secure element 30 ends the process. In this case, the learned parameters generated in step S353 may be discarded.

図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 secure element 30. The secure element 30 determines whether it is time to perform inference (judgment, estimation, etc.) (S361), and if it is not time to perform inference (NO in S361), it continues the processing of step S361. If it is time to perform inference (YES in S361), the secure element 30 reads the encrypted trained model from the NVM 39 and decrypts it (S362).

セキュアエレメント30は、入力データを取得し(S363)、取得した入力データを学習済モデルに入力し、学習済みモデルから推論結果(判定結果、推定結果など)を出力する(S364)。セキュアエレメント30は、推論処理(判定処理、推定処理など)が終了したか否かを判定し(S365)、推論処理が終了していない場合(S365でNO)、ステップS363の処理を続ける。推論処理が終了した場合(S365でYES)、セキュアエレメント30は、学習済みモデルを暗号化してNVM39に記憶し(S366)、処理を終了する。 The secure element 30 acquires input data (S363), inputs the acquired input data into the trained model, and outputs an inference result (judgment result, estimation result, etc.) from the trained model (S364). The secure element 30 judges whether the inference process (judgment process, estimation process, etc.) has ended (S365), and if the inference process has not ended (NO in S365), it continues the process of step S363. If the inference process has ended (YES in S365), the secure element 30 encrypts the trained model and stores it in the NVM 39 (S366), and ends the process.

本実施の形態において、セキュアエレメント30は、UICC(Universal Integrated Circuit Card)のように着脱可能な構成とすることもできる。仮に、セキュアエレメント30が第三者によって不正に取得されても、セキュアエレメント30は耐タンパ性を有するので、セキュアエレメント30内の情報が不正に取得される可能性は極めて低い。 In this embodiment, the secure element 30 can be configured to be removable, like a UICC (Universal Integrated Circuit Card). Even if the secure element 30 is illegally obtained by a third party, the secure element 30 is tamper-resistant, so the possibility of the information in the secure element 30 being illegally obtained is extremely low.

本実施の形態において、セキュアコンポーネントとして、セキュアエレメント30を一例として説明したが、セキュアコンポーネントは、セキュアエレメント30に限定されない。セキュアコンポーネントは、CPU仮想化支援技術(例えば、TrustZone(登録商標))と称される技術を用いることによって、SoC(System on Chip)上に区分されたトラステッド実行環境(TEEとも称する)でもよい。 In this embodiment, the secure element 30 has been described as an example of a secure component, but the secure component is not limited to the secure element 30. The secure component may be a trusted execution environment (also called a TEE) partitioned on a SoC (System on Chip) by using a technology called CPU virtualization support technology (for example, TrustZone (registered trademark)).

本実施の形態においては、サーバ100を1台備える構成であったが、サーバ100を複数のサーバに分散して構成してもよい。この場合、第1態様、第2態様、第3態様の3つの態様それぞれに対応させて3台のサーバで構成してもよい。 In this embodiment, the configuration includes one server 100, but the server 100 may be distributed across multiple servers. In this case, the configuration may include three servers corresponding to the first, second, and third aspects.

本実施の形態のセキュアコンポーネントは、機器が収集したデータを取得する取得部と、前記取得部で取得したデータを用いた機械学習によって得られた学習済みパラメータを暗号化する第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 評価用データ
Reference Signs List 1 Communication network 10 Equipment 20 Device body 21 CPU
22 Application 23 Network communication unit 24 Memory unit 25 Communication path 30 Secure element 31 Authentication unit 32 Encryption unit 33 Decryption unit 34 Communication unit 35 Update unit 36 Data preprocessing unit 37 Execution processing unit 38 Machine learning processing unit 39 NVM
41 Initial parameters 42 Algorithm 43 Learned parameters 44 Learning data 45 Evaluation data 50 IoT device 100 Server 101 Control unit 102 Communication unit 103 Authentication unit 104 Encryption/decryption unit 105 Evaluation unit 106 Determination unit 107 Learning processing unit 108 Execution processing unit 109 Storage unit 110 Database 111 Initial parameters 112 Learned parameters 113 Algorithm 114 Evaluation data

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認証部で認証が成功した場合、前記暗号化した学習済みパラメータを前記第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記憶部に記憶した所定のパラメータとを照合して前記第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 .
前記機械学習によって学習済みパラメータが得られる都度、前記第1暗号化部で暗号化した前記学習済みパラメータを記憶する第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.
前記第2記憶部に記憶された暗号化した学習済みパラメータを復号する第1復号部を備え、
前記機械学習を行う場合、前記第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から請求項のいずれか一項に記載のセキュアコンポーネント。
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サーバから受信する受信部を備え、
前記更新部は、
前記受信部で受信された暗号化した学習済みパラメータで前記第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復号部と、
前記第2復号部で復号した学習済みモデルを用いて所要の処理を行う処理部と
を備える、
請求項1から請求項のいずれか一項に記載のセキュアコンポーネント。
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 .
前記受信部で受信された暗号化した学習済みモデルを記憶する第3記憶部を備え、
前記第2復号部は、
前記処理部で所要の処理を行う場合、前記第3記憶部から読み出した、暗号化した学習済みモデルを復号し、
さらに、前記処理部が所要の処理を終了した場合、前記学習済みモデルを暗号化する第2暗号化部を備え、
前記第2暗号化部で暗号化した学習済みモデルを前記第3記憶部に記憶する、
請求項に記載のセキュアコンポーネント。
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サーバを認証する第2認証部を備え、
前記受信部は、
前記第2認証部で認証が成功した場合、前記暗号化した学習済みパラメータ又は暗号化した学習済みモデルを受信する、
請求項から請求項のいずれか一項に記載のセキュアコンポーネント。
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 .
請求項1から請求項10のいずれか一項に記載のセキュアコンポーネントを備える、
デバイス。
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.
JP2020109731A 2020-06-25 2020-06-25 Secure component, device, server, computer program and machine learning method Active JP7501149B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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