(57)【特許請求の範囲】
【請求項１】
ニューラルネットワーク層を有し、入力データを学習識別処理して出力データを出力する学習識別部と、
タイミング攻撃対策として、前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記入力データに処理を加えて前記学習識別処理の処理時間を変更する入力制御部とを備えた学習識別装置。
【請求項２】
入力データを学習識別処理して出力データを出力する学習識別部と、
前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記入力データに処理を加えて前記学習識別処理の処理時間を変更する入力制御部とを備え、
前記入力制御部は、前記入力データにランダムなノイズを印加するデータマスク部を有する学習識別装置。
【請求項３】
入力データを学習識別処理して出力データを出力する学習識別部と、
前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記入力データに処理を加えて前記学習識別処理の処理時間を変更する入力制御部とを備え、
前記入力制御部は、前記入力データの入力時刻をランダム化する入力時刻拡散部を有する学習識別装置。
【請求項４】
入力データを学習識別処理して出力データを出力する学習識別部と、
前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記出力データに処理を加えて前記学習識別処理の処理時間を変更する出力制御部とを備えた学習識別装置。
【請求項５】
前記出力制御部は、前記出力データの出力時刻をランダム化する出力時刻拡散部を有する請求項４に記載の学習識別装置。
【請求項６】
前記出力制御部は、前記入力データの入力時刻から前記出力データの出力時刻までの時間を一定にする出力時刻調整部を有する請求項４に記載の学習識別装置。
【請求項７】
ニューラルネットワーク層を有し、入力データを学習識別処理して出力データを出力する学習識別部と、
タイミング攻撃対策として、前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記学習識別部の処理時刻を制御して、前記学習識別処理の処理時間を変更する処理制御部とを備えた学習識別装置。
【請求項８】
入力データを学習識別処理して出力データを出力する学習識別部と、
前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備え、
前記タイム制御部は、前記学習識別部の処理時刻を制御して、前記学習識別処理の処理時間を変更する処理制御部とを備え、
前記学習識別部は、複数層の処理を有し、
前記処理制御部は、前記学習識別部の各層の出力時刻をランダム化、又は、前記学習識別部の各層の出力時刻を一定にする出力時刻調整部を有する学習識別装置。
【請求項９】
学習識別方法において、
タイム制御部が、タイミング攻撃対策として、入力データに対する学習識別処理の処理時間を前記入力データに対して非依存にし、
学習識別部が、ニューラルネットワーク層を有し、前記入力データを学習識別処理して出力データを出力し、
前記タイム制御部は、前記入力データに処理を加えて前記学習識別処理の処理時間を変更する学習識別方法。
【請求項１０】
ニューラルネットワーク層を用いて学習識別処理を実行するコンピュータに、
入力データに対して学習識別処理させ、
タイミング攻撃対策として、前記入力データの入力時刻から出力データの出力時刻までの時間を前記入力データに対して非依存にさせて、前記出力データを出力させ、前記入力データに処理を加えて前記学習識別処理の処理時間を変更させる学習識別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習識別装置、学習識別方法、及び、学習識別プログラムに関するものである。特に、深層学習に対するタイミング攻撃対策に関するものである。
【背景技術】
【０００２】
学習済のニューラルネットワークを欺くサンプルをＡｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓという。Ａｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓは、人工的に生成することができる。
従来のＡｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓは、深層学習の内部パラメータ、又は、出力される確率情報から生成されていた。
非特許文献１によれば、Ａｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓによる攻撃の対策には、検知機能の組込み、又は、異常データの学習取り込み等があるが、攻撃の糸口となる内部パラメータ又は出力される確率情報の隠ぺいが効果的な対策の１つと考えられている。一方で、非特許文献１においては、深層学習の処理時間からの情報リークについては、考慮されていない。【０００３】
従来のタイミング攻撃対策では、暗号装置の処理時間に基づく秘密鍵の漏洩対策に着目している。
特許文献１では、漏洩対策として、暗号化又は復号の実行中にダミー処理を実行、暗号化又は復号の実行開始時間の遅延、データの変化量を均一化、又は、処理順序の変更を実施している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１９２７９３号公報
【非特許文献】
【０００５】
【非特許文献１】Ｘｉａｏｙｏｎｇ  Ｙｕａｎａら著、「Ａｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓ：Ａｔｔａｃｋｓ  ａｎｄ  Ｄｅｆｅｎｓｅｓ  ｆｏｒ  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ」ａｒＸｉｖ：１７１２．０７１０７ｖ３  ［ｃｓ．ＬＧ］  ７  Ｊｕｌ  ２０１８
【発明の概要】
【発明が解決しようとする課題】
【０００６】
深層学習に対する攻撃者は、入力データと処理時間の関係性からＡｄｖｅｒｓａｒｉａｌ  Ｅｘａｍｐｌｅｓを生成する可能がある。攻撃者が入力データと処理時間の関係に着目しているため、従来の対策である内部パラメータ又は確率情報の隠ぺいでは攻撃を防げないという課題がある。
また、従来のタイミング攻撃対策は、暗号装置に特化したものでそのまま深層学習に対する適用できないという課題もある。【０００７】
この発明は、深層学習に対するタイミング攻撃対策を目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る学習識別装置は、
入力データを学習識別処理して出力データを出力する学習識別部と、
入力データに対する学習識別処理の処理時間を入力データに対して非依存にするタイム制御部とを備えた。
【発明の効果】
【０００９】
本発明では、タイム制御部が入力データに対する処理時間を入力データに対して非依存にするので、学習識別装置に対する攻撃を防御することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る学習識別装置の全体構成図。
【図２】実施の形態１に係る学習識別装置の動作図。
【図３】実施の形態２に係る学習識別装置の全体構成図。
【図４】実施の形態２に係る学習識別装置の動作図。
【図５】実施の形態３に係る学習識別装置の全体構成図。
【図６】実施の形態３に係る学習識別装置の動作図。
【図７】実施の形態４に係る学習識別装置の全体構成図。
【図８】実施の形態４に係る学習識別装置の動作図。
【図９】実施の形態５に係る学習識別装置の全体構成図。
【図１０】実施の形態５に係る学習識別装置の動作図。
【図１１】実施の形態５に係る学習識別装置の全体構成図。
【図１２】実施の形態６に係る学習識別装置の全体構成図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
【００１２】
以下に述べる実施の形態で説明するタイミング攻撃対策は、入力データに対する処理時間を入力データに対して非依存にするものである。換言すれば、各実施の形態で説明するタイミング攻撃対策は、入力データの入力時刻から出力データの出力時刻までの時間を入力データに対して非依存にさせて出力データを出力するものである。
【００１３】
各実施の形態では、以下のような深層学習に対するタイミング攻撃対策について説明する。
１．深層学習への入力で対策
実施の形態１：入力データのマスク対策
実施の形態２：入力タイミングのランダム化対策
２．深層学習からの出力で対策
実施の形態３：出力タイミングのランダム化対策
実施の形態４：処理時間の一定化対策
３．深層学習の内部で対策
実施の形態５：内部処理時間のランダム化又は一定化対策
【００１４】
実施の形態１．
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を説明する。
【００１５】
＊＊＊構成の説明＊＊＊
図１は、学習識別装置２００の構成図である。
学習識別装置２００は、入力データを学習しながら入力データに対して識別作業をする装置である。
学習識別装置２００は、学習識別部１０２を有する。
学習識別部１０２は、入力データ１０１を学習識別処理して出力データ１０３を出力する。
学習識別部１０２は、深層学習を実施する。
学習識別部１０２は、複数のニューラルネットワーク層１００１を有する。
ニューラルネットワーク層１００１は、複数のパーセプトロン処理１００２を実行する。
学習識別部１０２は、各ニューラルネットワーク層１００１の演算として、パーセプトロン処理１００２を並列に実行する。
学習識別部１０２は、最終のニューラルネットワーク層１００１のパーセプトロン処理１００２の演算結果を出力する。
【００１６】
学習識別装置２００は、タイム制御部１１１を有する。
タイム制御部１１１は、入力データ１０１に対する学習識別部１０２の処理時間を入力データ１０１に対して非依存にする。
タイム制御部１１１は、入力制御部１１２を有する。
入力制御部１１２は、入力データ１０１に処理を加えて学習識別部１０２の処理時間を変更する。
入力制御部１１２は、データマスク部２０１を有する。
データマスク部２０１は、入力データ１０１にランダムなノイズを印加する。
【００１７】
学習識別装置２００は、学習識別部１０２の前に、入力データ１０１にランダムなノイズを印加するデータマスク部２０１を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にする。
【００１８】
実施の形態の説明で使用する用語の意味は、以下のとおりである。
「学習識別処理」：学習識別装置２００が実行する処理。
「学習識別装置２００の処理」：「学習識別処理」と同じ。
「学習識別処理の処理時間」：学習識別装置２００に入力データ１０１が入力される時刻から学習識別装置２００から出力データ１０３が出力される時刻までの時間。
「学習識別装置２００の処理時間」：「学習識別処理の処理時間」と同じ。
「学習識別部１０２の処理」：学習識別部１０２が実行する処理。
「学習識別部１０２の処理時間」：学習識別部１０２に入力データ１０１が入力される時刻から学習識別部１０２から出力データ１０３が出力される時刻までの時間。
【００１９】
「学習識別部１０２の処理時間」が変われば、「学習識別装置２００の処理時間」又は「学習識別処理の処理時間」も変わる。
以下の実施の形態の説明で受信部９０１と送信部９０２とのデータ入出力時間は、無視できるものとして説明する。
【００２０】
＊＊＊ハードウェア構成の説明＊＊＊
学習識別装置２００は、プロセッサ９１０を備える。
学習識別装置２００は、メモリ９２１、補助記憶装置９２２、通信インターフェース９２３、及び記録メディア９２０といった他のハードウェアを備える。
プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２１】
学習識別装置２００は、機能要素として、タイム制御部１１１と学習識別部１０２とを備える。
【００２２】
タイム制御部１１１と学習識別部１０２との機能は、ソフトウェアにより実現される。
【００２３】
プロセッサ９１０は、学習識別プログラムを実行する装置である。
学習識別プログラムは、タイム制御部１１１と学習識別部１０２との機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、あるいはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００２４】
メモリ９２１は、データを一時的に記憶する記憶装置である。
メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２５】
記録メディア９２０と補助記憶装置９２２は、データを保管する記憶装置である。
記録メディア９２０と補助記憶装置９２２の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
また、記録メディア９２０と補助記憶装置９２２は、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００２６】
通信インターフェース９２３は、データを受信する受信部９０１及びデータを送信する送信部９０２を有する。
通信インターフェース９２３は、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等を有する。
【００２７】
学習識別プログラムは、メモリ９２１からプロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。
メモリ９２１には、学習識別プログラムだけでなく、オペレーティングシステム６０７、ネットワークドライバ６０８及びストレージドライバ６０９も記憶されている。
プロセッサ９１０は、オペレーティングシステム６０７、ネットワークドライバ６０８及びストレージドライバ６０９を実行しながら、学習識別プログラムを実行する。
学習識別プログラム及びオペレーティングシステム６０７、ネットワークドライバ６０８及びストレージドライバ６０９は、補助記憶装置９２２に記憶されていてもよい。
補助記憶装置９２２に記憶されている学習識別プログラム及びオペレーティングシステム６０７、ネットワークドライバ６０８及びストレージドライバ６０９は、メモリ９２１にロードされ、プロセッサ９１０によって実行される。
なお、学習識別プログラムの一部又は全部がオペレーティングシステム６０７に組み込まれていてもよい。
【００２８】
学習識別装置２００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、学習識別プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、学習識別プログラムを実行する装置である。
【００２９】
学習識別プログラムにより利用、処理又は出力されるデータ、情報、信号値及び変数値は、メモリ９２１、補助記憶装置９２２、又は、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００３０】
タイム制御部１１１と学習識別部１０２との各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。また、タイム制御部１１１と学習識別部１０２との各処理の「処理」を「プログラム」、「プログラムプロダクト」又は「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
学習識別プログラムは、前記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、学習識別方法は、学習識別装置２００がプログラムを実行することにより行われる方法である。
プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、プログラムは、プログラムプロダクトとして提供されてもよい。
【００３１】
また、学習識別装置２００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった処理回路により実現されてもよい。
【００３２】
また、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、プロセッシングサーキットリという。つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれプロセッシングサーキットリの具体例である。
【００３３】
＊＊＊動作の説明＊＊＊
次に動作について説明する。
図２はこの実施の形態の学習識別装置２００の学習識別方法の動作を示すフローチャート３００である。以下の処理は、プロセッサ９１０が学習識別プログラムを実行することにより実現される。
【００３４】
まずステップＳ３０１において、入力制御部１１２が、学習識別装置２００の受信部９０１へ入力された入力データ１０１をデータマスク部２０１に入力する。
次にステップＳ３０２において、データマスク部２０１が、入力データ１０１にランダムなノイズを印加する。ここで、データマスク部２０１が印加するノイズの強度は、学習識別部１０２の処理に影響がない程度を上限とし、攻撃者が印加するノイズと同程度、又は、それ以上のものが設定される。
次にステップＳ３０３において、データマスク部２０１は、ランダムノイズを印加した入力データを、学習識別部１０２に入力する。
学習識別部１０２は、複数のニューラルネットワーク層１００１で、パーセプトロン処理１００２を実行する。
パーセプトロン処理１００２において、ランダムノイズを印加していない入力データの処理時間とランダムノイズを印加した入力データの処理時間とは異なる。
ニューラルネットワーク層１００１はパーセプトロン処理１００２の演算結果を出力する。
最終層のニューラルネットワーク層１００１が学習識別結果となる。
学習識別部１０２は、入力データ１０１から学習識別結果を得て学習識別結果を出力する。
最後にステップＳ３０４において、学習識別部１０２は、学習識別結果を、学習識別装置２００の出力データ１０３として送信部９０２に出力する。
送信部９０２は、出力データ１０３を外部に出力する。
【００３５】
以上のように、本実施の形態の学習識別方法は、タイム制御部１１１が、入力データ１０１に対する学習識別部１０２の処理時間を入力データ１０１に対して非依存にする。
そして、学習識別部１０２が、入力データ１０１を学習識別処理して出力データを出力する。
【００３６】
また、本実施の形態の学習識別プログラムは、学習識別処理を実行するコンピュータに、入力データ１０１に対して学習識別処理させ、学習識別部１０２への入力データ１０１の入力時刻から学習識別部１０２からの出力データ１０３の出力時刻までの時間を入力データに対して非依存にさせて、出力データ１０３を出力させる。
【００３７】
＊＊＊実施の形態の特徴＊＊＊
本実施の形態の学習識別装置２００は、学習識別部１０２の前に、入力データ１０１を処理する手段を追加することで、入力データ１０１と学習識別部１０２の処理時間とを非依存にすることを特徴とする。
【００３８】
本実施の形態の学習識別装置２００は、入力データ１０１を処理する手段を、学習識別装置２００の入力データ１０１にランダムなノイズを印加する手段で実現することを特徴とする。
【００３９】
本実施の形態の学習識別装置２００は、学習識別部１０２の前に、入力データ１０１にランダムなノイズを印加するデータマスク部２０１を追加することで、入力データ１０１と学習識別部１０２の処理時間とを非依存にする。
【００４０】
本実施の形態の学習識別装置２００は、入力データ１０１にランダムなノイズを印加するデータマスク部２０１により学習識別部１０２の処理時間をランダムなノイズが印加された入力データ１０１に依存した処理時間とすることでタイミング攻撃対策としたものである。
【００４１】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態の学習識別装置２００は、学習識別部１０２の処理時間がランダムなノイズが印加された入力データ１０１に依存したものとなるようにしているので、入力データ１０１と処理時間の関係に着目するタイミング攻撃を防御することができる。
【００４２】
実施の形態２．
以下、実施の形態１と異なる点について説明する。
本実施の形態では、学習識別部１０２への入力データ１０１の入力時刻をランダム化する入力時刻拡散部４０１を追加して、タイミング攻撃対策とする実施形態を示す。
【００４３】
図３は、学習識別装置２００の構成図である。
学習識別装置２００は、タイム制御部１１１を有する。
タイム制御部１１１は、入力制御部１１２を有する。
入力制御部１１２は、入力時刻拡散部４０１を有する。
入力時刻拡散部４０１は、学習識別部１０２への入力データ１０１の入力時刻をランダム化する。
【００４４】
学習識別装置２００は、学習識別部１０２の前に、入力時刻をランダム化する入力時刻拡散部４０１を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にする。
【００４５】
次に動作について説明する。
図４はこの実施の形態の学習識別装置２００の学習識別方法の動作を示すフローチャート５００である。以下の処理は、プロセッサ９１０が学習識別プログラムを実行することにより実現される。
まずステップＳ５０１において、学習識別装置２００へ入力された入力データ１０１が入力時刻拡散部４０１に入力される。
次にステップＳ５０２において、入力時刻拡散部４０１は、入力データ１０１の学習識別部１０２への入力時刻をランダム化する。
具体的には、入力時刻拡散部４０１は、受信部９０１への入力データ１０１の受信時刻から学習識別部１０２への入力データ１０１の出力時刻までの時間をランダム化する。
入力時刻のランダム化は、ダミー処理又はウェイト処理等により実現される。
次にステップＳ５０３において、入力時刻拡散部４０１は、ランダム化した入力時刻に従って、入力データ１０１を学習識別部１０２に入力する。
最後にステップＳ５０４において、学習識別部１０２は学習識別結果を出力データ１０３として、出力する。
【００４６】
＊＊＊実施の形態の特徴＊＊＊
【００４７】
本実施の形態の学習識別装置２００は、学習識別部の前に、入力データを処理する手段を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にすることを特徴とする。
【００４８】
本実施の形態の学習識別装置２００は、入力データを処理する手段を、学習識別装置２００の学習識別部のへ入力タイミングをランダム化する手段で実現することを特徴とする。
【００４９】
本実施の形態の学習識別装置２００は、入力データ１０１の入力時刻をランダム化する入力時刻拡散部４０１により、学習識別装置２００の処理時間をランダム化された入力時刻に依存した処理時間とすることでタイミング攻撃対策としたものである。
【００５０】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態の学習識別装置２００は、学習識別装置２００の処理時間がランダム化された入力時刻に依存したものとなるようにしているので、入力データ１０１と処理時間の関係に着目するタイミング攻撃を防御することができる。
【００５１】
実施の形態３．
以下、実施の形態１と異なる点について説明する。
次に学習識別部１０２の出力時刻をランダム化する出力時刻拡散部６０１を追加した場合に、タイミング攻撃対策となる実施形態を示す。
【００５２】
図５は、学習識別装置２００の構成図である。
学習識別装置２００は、学習識別部１０２の後に、出力時刻をランダム化する出力時刻拡散部６０１を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にする。
【００５３】
学習識別装置２００は、タイム制御部１１１を有する。
タイム制御部１１１は、出力制御部１１３を有する。
出力制御部１１３は、出力データ１０３に処理を加えて学習識別装置２００の処理時間を変更する。
入力制御部１１２は、出力時刻拡散部６０１を有する。
出力時刻拡散部６０１は、出力データ１０３の出力時刻をランダム化する。
【００５４】
この実施の形態の学習識別装置２００は、学習識別部１０２の後に、学習識別装置２００の出力データ１０３の出力時刻をランダム化する出力時刻拡散部６０１を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にする。
【００５５】
次に動作について説明する。
図６はこの実施の形態の学習識別装置２００の学習識別方法の動作を示すフローチャート７００である。以下の処理は、プロセッサ９１０が学習識別プログラムを実行することにより実現される。
まずステップＳ７０１において、学習識別装置２００へ入力された入力データ１０１が学習識別部１０２に入力される。
次にステップＳ７０２において、学習識別部１０２から出力された学習識別結果が、出力時刻拡散部６０１に入力される。
次にステップＳ７０３において、出力時刻拡散部６０１は、学習識別装置２００の出力データ１０３の出力時刻をランダム化する。
具体的には、出力時刻拡散部６０１は、学習識別部１０２からの出力データ１０３の入力時刻から送信部９０２への出力時刻までの時間をランダム化する。
出力時刻のランダム化は、ダミー処理又はウェイト処理等により実現される。
最後にステップＳ７０４において、出力時刻拡散部６０１は、ランダム化された出力時刻に従って、学習識別部１０２から出力された学習識別結果を出力データ１０３として、送信部９０２に出力する。
【００５６】
＊＊＊実施の形態の特徴＊＊＊
本実施の形態の学習識別装置２００は、学習識別部１０２の後に、出力データ１０３を処理する手段を追加することで、入力データ１０１と学習識別装置２００の処理時間を非依存にすることを特徴とする。
【００５７】
本実施の形態の学習識別装置２００は、出力データ１０３を処理する手段を、学習識別装置２００の出力タイミングをランダム化する手段で実現することを特徴とする。
【００５８】
本実施の形態の学習識別装置２００は、出力時刻拡散部６０１が出力データ１０３の出力時刻をランダム化して、学習識別装置２００の処理時間をランダム化された出力時刻に依存した処理時間とすることでタイミング攻撃対策としたものである。
【００５９】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態の学習識別装置２００は、学習識別装置２００の処理時間を入力データ１０１によらずランダム化された出力データ１０３の出力時刻に依存したものとなるようにしているので、入力データ１０１と処理時間の関係に着目するタイミング攻撃を防御することができる。
【００６０】
実施の形態４．
以下、実施の形態１と異なる点について説明する。
本実施の形態では、学習識別部１０２の処理時間を一定にして、タイミング攻撃対策とする実施形態を示す。
【００６１】
図７は、学習識別装置２００の構成図である。
学習識別装置２００は、タイム制御部１１１を有する。
タイム制御部１１１は、出力制御部１１３を有する。
出力制御部１１３は、タイムスタンプ生成部８０１と出力時刻調整部８０３とを有する。
【００６２】
タイムスタンプ生成部８０１は、タイムスタンプ生成部８０１への入力データ１０１の入力時刻をタイムスタンプ８０２として記録する。
出力時刻調整部８０３は、タイムスタンプ８０２を用いて、入力データ１０１の入力時刻から出力データ１０３の出力時刻までの時間を一定にする。
出力時刻調整部８０３は、タイムスタンプ８０２が示す入力データ１０１の入力時刻に対して一定の時間を加算して出力データ１０３の出力時刻とする。
【００６３】
学習識別装置２００は、学習識別部１０２の前に、タイムスタンプ生成部８０１への入力データ１０１の入力時刻を記録するタイムスタンプ生成部８０１を追加し、学習識別部１０２の後に、学習識別部１０２の処理時間を一定にする出力時刻調整部８０３を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にする。
【００６４】
次に動作について説明する。
図８はこの実施の形態の学習識別装置２００の学習識別方法の動作を示すフローチャート９００である。以下の処理は、プロセッサ９１０が学習識別プログラムを実行することにより実現される。
まずステップＳ９０１において、学習識別装置２００へ入力された入力データ１０１がタイムスタンプ生成部８０１に入力される。
次にステップＳ９０２において、タイムスタンプ生成部８０１は、入力データ１０１の入力時刻に応じたタイムスタンプ８０２を生成する。
タイムスタンプ８０２は、タイムスタンプ生成部８０１への入力データ１０１の入力時刻を含んでいる。
タイムスタンプ８０２はメモリ９２１に記憶される。
次にステップＳ９０３において、タイムスタンプ生成部８０１は、タイムスタンプ８０２をメモリ９２１に記録した入力データ１０１を学習識別部１０２に入力する。
次にステップＳ９０４において、学習識別部１０２は、学習識別結果を出力時刻調整部８０３に入力する。
次にステップＳ９０５において、出力時刻調整部８０３は、タイムスタンプ生成部８０１で生成したタイムスタンプ８０２を参照し、処理時間が一定になるようする。
具体的には、タイムスタンプ生成部８０１は、タイムスタンプ８０２が示す入力時刻に対して一定の時間を加算した時刻を学習識別結果の出力時刻とする。
処理時間の一定化は、ダミー処理又はウェイト処理等により実現される。
最後にステップＳ９０６において、出力時刻調整部８０３は処理時間が一定化された出力時刻に従って、学習識別部１０２から出力された学習識別結果を出力データ１０３として、送信部９０２に出力する。
【００６５】
＊＊＊実施の形態の特徴＊＊＊
本実施の形態の学習識別装置２００は、学習識別部１０２の後に、出力データ１０３を処理する手段を追加することで、入力データ１０１と学習識別装置２００の処理時間とを非依存にすることを特徴とする。
【００６６】
本実施の形態の学習識別装置２００は、出力データ１０３を処理する手段を、学習識別装置２００の学習識別部１０２の前にタイムスタンプを生成し、タイムスタンプ８０２を参照して学習識別部１０２の処理時間が一定になるように学習識別装置２００の出力タイミングを設定する手段で実現することを特徴とする。
【００６７】
本実施の形態の学習識別装置２００は、入力データ１０１の入力時刻を記録するタイムスタンプ生成部８０１と、学習識別部１０２の処理時間を一定にする出力時刻調整部８０３により、入力データ１０１によらず出力データ１０３の出力時刻を調整する。
【００６８】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態の学習識別装置２００は、学習識別装置２００の処理時間が一定となるように、出力データ１０３の出力時刻を調整しているので、入力データ１０１と処理時間の関係に着目するタイミング攻撃を防御することができる。
【００６９】
実施の形態５．
以下、実施の形態１と異なる点について説明する。
本実施の形態では、学習識別部１０２内の各ニューラルネットワーク層１００１のパーセプトロン処理１００２に、タイミング攻撃対策を施す実施形態を示す。
【００７０】
図９は、学習識別装置２００の構成図である。
学習識別部１０２は、ニューラルネットワーク層１００１からなる複数層の処理を有している。
学習識別装置２００は、学習識別部１０２内の各ニューラルネットワーク層１００１のパーセプトロン処理の処理結果の出力時刻をランダム化、又は、一定にする出力時刻調整部１００３を追加することで、入力データ１０１と学習識別部１０２の処理時間とを非依存にする。
【００７１】
学習識別装置２００は、タイム制御部１１１を有する。
タイム制御部１１１は、処理制御部１１４を有する。
処理制御部１１４は、学習識別部１０２の処理時刻を制御して、学習識別部１０２の処理時間を変更する。
処理制御部１１４は、複数の出力時刻調整部１００３を有する。
出力時刻調整部１００３は、ニューラルネットワーク層１００１の各層に後に配置されている。
ニューラルネットワーク層１００１と出力時刻調整部１００３は対応しており、ニューラルネットワーク層１００１の数と出力時刻調整部１００３の数は同じである。ただし、出力時刻調整部１００３は、１個以上あればよい。
出力時刻調整部１００３は、学習識別部１０２の各層の出力時刻をランダム化、又は、学習識別部１０２の各層の学習時刻を一定にする。
【００７２】
学習識別装置２００は、学習識別部１０２内のニューラルネットワーク層１００１の各層のパーセプトロン処理１００２に、出力時刻をランダム化、又は、一定にする出力時刻調整部１００３を追加することで、入力データ１０１と学習識別部１０２の処理時間とを非依存にする。
【００７３】
次に動作について説明する。
図１０はこの実施の形態の学習識別装置２００の学習識別方法の動作を示すフローチャート１１００である。以下の処理は、プロセッサ９１０が学習識別プログラムを実行することにより実現される。
【００７４】
まずステップＳ１１０１において、学習識別装置２００へ入力された入力データ１０１が学習識別部１０２に入力される。
次にプロセッサ９１０は、ステップＳ１１０２からステップＳ１１０５までの処理を、ニューラルネットワーク層１００１の全層の演算終了まで各層でループ処理する。
ステップＳ１１０３において、ニューラルネットワーク層１００１は、パーセプトロン処理１００２を実行する。
次にステップＳ１１０４において、ニューラルネットワーク層１００１は、パーセプトロン処理１００２の演算結果の出力を出力時刻調整部１００３に入力する。
次にステップＳ１１０５において、出力時刻調整部１００３は、ニューラルネットワーク層１００１の演算結果を中間データ１０９として受け取り、中間データ１０９の出力時刻を一定、又は、ランダムにする。
具体的には、出力時刻調整部１００３は、複数のパーセプトロン処理１００２の複数の処理結果を複数の中間データ１０９として受け取り、複数の中間データ１０９の出力時刻をランダムにして又は一定にして出力する。
複数の中間データ１０９の出力時刻の一定、又は、ランダム化は、ダミー処理又はウェイト処理等により実現される。
出力時刻調整部１００３は、複数の中間データ１０９を受信し複数の中間データ１０９を同時に出力することにより、中間データ１０９の出力時刻を一定にする。
あるいは、出力時刻調整部１００３は、複数の中間データ１０９を受信し複数の中間データ１０９を相互にランダムな時刻に出力することにより、複数の中間データ１０９の出力時刻をランダム化する。
複数の中間データ１０９の出力時刻の一定、又は、ランダム化は、パーセプトロン処理１００２内の一部として実現してもよい。
最後にステップＳ１１０６において、ニューラルネットワーク層１００１の全層の演算終了後、学習識別部１０２は学習識別結果を出力データ１０３として、送信部９０２に出力する。
【００７５】
＊＊＊実施の形態の特徴＊＊＊
本実施の形態の学習識別装置２００は、学習識別装置２００の学習識別部内の各層のパーセプトロン処理１００２の間に中間データ１０９を処理する手段を追加することで、学習識別部１０２の処理時間を変更し、入力データと学習識別装置２００の処理時間を非依存にすることを特徴とする。
【００７６】
本実施の形態の学習識別装置２００は、中間データ１０９を処理する手段を、学習識別装置２００の学習識別部内の各層の複数の中間データ１０９の出力タイミングをランダム化、又は、一定にする手段で実現することを特徴とする。
【００７７】
＊＊＊実施の形態の効果＊＊＊
以上のように、本実施の形態の学習識別装置２００は、複数の中間データ１０９の出力時刻が一定又はランダムとなるようにして学習識別部１０２の処理時間を変更しているので、入力データ１０１と処理時間の関係に着目するタイミング攻撃を防御することができる。
【００７８】
＊＊＊変形例＊＊＊
図１１は、本実施の形態に係る学習識別装置２００の別構成を示す図である。
図１１は、図９に示した学習識別装置２００の出力時刻調整部１００３を変更したものである。
図１１に示す出力時刻調整部１００３は、ニューラルネットワーク層１００１の全てのパーセプトロン処理１００２から中間データ１０９として受け取るのではなく、ニューラルネットワーク層１００１の全てのパーセプトロン処理１００２のうち一部のパーセプトロン処理１００２から中間データ１０９として受け取る。
出力時刻調整部１００３が中間データ１０９を受け取らない場合、パーセプトロン処理１００２の中間データ１０９は次のニューラルネットワーク層１００１に直接入力される。
【００７９】
実施の形態６．
この実施の形態では、実施の形態１と異なる点について説明する。
【００８０】
図１２は、本実施の形態に係る学習識別装置２００の構成を示す図である。
図１２は、図１に示した学習識別装置２００のプロセッサ９１０を電子回路９０９に変更したものである。
学習識別装置２００は、電子回路９０９、メモリ９２１、補助記憶装置９２２、通信インターフェース９２３、及び記録メディア９２０を備える。
【００８１】
電子回路９０９は、タイム制御部１１１と学習識別部１０２の機能を実現する専用の電子回路である。
電子回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、又は、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
タイム制御部１１１と学習識別部１０２の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
本実施の形態では、タイム制御部１１１と学習識別部１０２の機能がソフトウェアで実現されてもよい。
あるいは、タイム制御部１１１と学習識別部１０２の機能がハードウェアで実現されてもよい。
あるいは、タイム制御部１１１と学習識別部１０２の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
【００８２】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、学習識別装置２００において、タイム制御部１１１と学習識別部１０２の機能は、プロセッシングサーキットリにより実現される。
【００８３】
図示していないが、実施の形態１以外の学習識別装置２００のプロセッサ９１０を電子回路９０９に変更してもよい。
【００８４】
＊＊＊他の実施の形態＊＊＊
前述した実施の形態では、学習しながら識別作業をする学習識別装置２００について説明したが、学習識別装置２００ではなく、学習をする学習装置でもよいし、識別作業をする識別装置でもよい。
【００８５】
以上、複数の実施の形態について説明したが、これらの実施の形態のうち、２つ以上の実施の形態を組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、１つの実施の形態又は２つ以上の実施の形態の組み合わせを部分的に実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８６】
１０１  入力データ、１０２  学習識別部、１０３  出力データ、１０９  中間データ、１１１  タイム制御部、１１２  入力制御部、１１３  出力制御部、１１４  処理制御部、２００  学習識別装置、２０１  データマスク部、４０１  入力時刻拡散部、６０１  出力時刻拡散部、６０７  オペレーティングシステム、６０８  ネットワークドライバ、６０９  ストレージドライバ、８０１  タイムスタンプ生成部、８０２  タイムスタンプ、８０３  出力時刻調整部、９０１  受信部、９０２  送信部、９０９  電子回路、９１０  プロセッサ、９２０  記録メディア、９２１  メモリ、９２２  補助記憶装置、９２３  通信インターフェース、１００１  ニューラルネットワーク層、１００２  パーセプトロン処理、１００３  出力時刻調整部。
【要約】
学習識別装置（２００）は、入力データ（１０１）を学習識別処理して出力データを出力する学習識別部（１０２）と、入力データ（１０１）に対する学習識別部（１０２）の処理時間を入力データに対して非依存にするタイム制御部（１１１）とを備え、タイム制御部（１１１）は、入力データ（１０１）に処理を加えて学習識別部（１０２）の処理時間を変更する入力制御部（１１２）とを備え、入力制御部（１１２）は、入力データにランダムなノイズを印加するデータマスク部（２０１）を有する。【図１】
0006632773.tif 000002
【図２】
0006632773.tif 000003
【図３】
0006632773.tif 000004
【図４】
0006632773.tif 000005
【図５】
0006632773.tif 000006
【図６】
0006632773.tif 000007
【図７】
0006632773.tif 000008
【図８】
0006632773.tif 000009
【図９】
0006632773.tif 000010
【図１０】
0006632773.tif 000011
【図１１】
0006632773.tif 000012
【図１２】
0006632773.tif 000013