処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020121527 - 学習識別装置、学習識別方法、及び、学習識別プログラム

Document

明 細 書

発明の名称 学習識別装置、学習識別方法、及び、学習識別プログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

非特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007  

課題を解決するための手段

0008  

発明の効果

0009  

図面の簡単な説明

0010  

発明を実施するための形態

0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085  

符号の説明

0086  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11  

図面

1   2   3   4   5   6   7   8   9   10   11   12  

明 細 書

発明の名称 : 学習識別装置、学習識別方法、及び、学習識別プログラム

技術分野

[0001]
 本発明は、学習識別装置、学習識別方法、及び、学習識別プログラムに関するものである。特に、深層学習に対するタイミング攻撃対策に関するものである。

背景技術

[0002]
 学習済のニューラルネットワークを欺くサンプルをAdversarial Examplesという。Adversarial Examplesは、人工的に生成することができる。
 従来のAdversarial Examplesは、深層学習の内部パラメータ、又は、出力される確率情報から生成されていた。
 非特許文献1によれば、Adversarial Examplesによる攻撃の対策には、検知機能の組込み、又は、異常データの学習取り込み等があるが、攻撃の糸口となる内部パラメータ又は出力される確率情報の隠ぺいが効果的な対策の1つと考えられている。一方で、非特許文献1においては、深層学習の処理時間からの情報リークについては、考慮されていない。
[0003]
 従来のタイミング攻撃対策では、暗号装置の処理時間に基づく秘密鍵の漏洩対策に着目している。
 特許文献1では、漏洩対策として、暗号化又は復号の実行中にダミー処理を実行、暗号化又は復号の実行開始時間の遅延、データの変化量を均一化、又は、処理順序の変更を実施している。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2014-192793号公報

非特許文献

[0005]
非特許文献1 : Xiaoyong Yuanaら著、「Adversarial Examples:Attacks and Defenses for Deep Learning」arXiv:1712.07107v3 [cs.LG] 7 Jul 2018

発明の概要

発明が解決しようとする課題

[0006]
 深層学習に対する攻撃者は、入力データと処理時間の関係性からAdversarial Examplesを生成する可能がある。攻撃者が入力データと処理時間の関係に着目しているため、従来の対策である内部パラメータ又は確率情報の隠ぺいでは攻撃を防げないという課題がある。
 また、従来のタイミング攻撃対策は、暗号装置に特化したものでそのまま深層学習に対する適用できないという課題もある。
[0007]
 この発明は、深層学習に対するタイミング攻撃対策を目的とする。

課題を解決するための手段

[0008]
 本発明の一態様に係る学習識別装置は、
 入力データを学習識別処理して出力データを出力する学習識別部と、
 入力データに対する学習識別処理の処理時間を入力データに対して非依存にするタイム制御部とを備えた。

発明の効果

[0009]
 本発明では、タイム制御部が入力データに対する処理時間を入力データに対して非依存にするので、学習識別装置に対する攻撃を防御することができる。

図面の簡単な説明

[0010]
[図1] 実施の形態1に係る学習識別装置の全体構成図。
[図2] 実施の形態1に係る学習識別装置の動作図。
[図3] 実施の形態2に係る学習識別装置の全体構成図。
[図4] 実施の形態2に係る学習識別装置の動作図。
[図5] 実施の形態3に係る学習識別装置の全体構成図。
[図6] 実施の形態3に係る学習識別装置の動作図。
[図7] 実施の形態4に係る学習識別装置の全体構成図。
[図8] 実施の形態4に係る学習識別装置の動作図。
[図9] 実施の形態5に係る学習識別装置の全体構成図。
[図10] 実施の形態5に係る学習識別装置の動作図。
[図11] 実施の形態5に係る学習識別装置の全体構成図。
[図12] 実施の形態6に係る学習識別装置の全体構成図。

発明を実施するための形態

[0011]
 以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
[0012]
 以下に述べる実施の形態で説明するタイミング攻撃対策は、入力データに対する処理時間を入力データに対して非依存にするものである。換言すれば、各実施の形態で説明するタイミング攻撃対策は、入力データの入力時刻から出力データの出力時刻までの時間を入力データに対して非依存にさせて出力データを出力するものである。
[0013]
 各実施の形態では、以下のような深層学習に対するタイミング攻撃対策について説明する。
 1.深層学習への入力で対策
  実施の形態1:入力データのマスク対策
  実施の形態2:入力タイミングのランダム化対策
 2.深層学習からの出力で対策
  実施の形態3:出力タイミングのランダム化対策
  実施の形態4:処理時間の一定化対策
 3.深層学習の内部で対策
  実施の形態5:内部処理時間のランダム化又は一定化対策
[0014]
 実施の形態1.
 本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を説明する。
[0015]
 ***構成の説明***
 図1は、学習識別装置200の構成図である。
 学習識別装置200は、入力データを学習しながら入力データに対して識別作業をする装置である。
 学習識別装置200は、学習識別部102を有する。
 学習識別部102は、入力データ101を学習識別処理して出力データ103を出力する。
 学習識別部102は、深層学習を実施する。
 学習識別部102は、複数のニューラルネットワーク層1001を有する。
 ニューラルネットワーク層1001は、複数のパーセプトロン処理1002を実行する。
 学習識別部102は、各ニューラルネットワーク層1001の演算として、パーセプトロン処理1002を並列に実行する。
 学習識別部102は、最終のニューラルネットワーク層1001のパーセプトロン処理1002の演算結果を出力する。
[0016]
 学習識別装置200は、タイム制御部111を有する。
 タイム制御部111は、入力データ101に対する学習識別部102の処理時間を入力データ101に対して非依存にする。
 タイム制御部111は、入力制御部112を有する。
 入力制御部112は、入力データ101に処理を加えて学習識別部102の処理時間を変更する。
 入力制御部112は、データマスク部201を有する。
 データマスク部201は、入力データ101にランダムなノイズを印加する。
[0017]
 学習識別装置200は、学習識別部102の前に、入力データ101にランダムなノイズを印加するデータマスク部201を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にする。
[0018]
 実施の形態の説明で使用する用語の意味は、以下のとおりである。
「学習識別処理」:学習識別装置200が実行する処理。
「学習識別装置200の処理」:「学習識別処理」と同じ。
「学習識別処理の処理時間」:学習識別装置200に入力データ101が入力される時刻から学習識別装置200から出力データ103が出力される時刻までの時間。
「学習識別装置200の処理時間」:「学習識別処理の処理時間」と同じ。
「学習識別部102の処理」:学習識別部102が実行する処理。
「学習識別部102の処理時間」:学習識別部102に入力データ101が入力される時刻から学習識別部102から出力データ103が出力される時刻までの時間。
[0019]
「学習識別部102の処理時間」が変われば、「学習識別装置200の処理時間」又は「学習識別処理の処理時間」も変わる。
 以下の実施の形態の説明で受信部901と送信部902とのデータ入出力時間は、無視できるものとして説明する。
[0020]
***ハードウェア構成の説明***
 学習識別装置200は、プロセッサ910を備える。
 学習識別装置200は、メモリ921、補助記憶装置922、通信インターフェース923、及び記録メディア920といった他のハードウェアを備える。
 プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
[0021]
 学習識別装置200は、機能要素として、タイム制御部111と学習識別部102とを備える。
[0022]
 タイム制御部111と学習識別部102との機能は、ソフトウェアにより実現される。
[0023]
 プロセッサ910は、学習識別プログラムを実行する装置である。
 学習識別プログラムは、タイム制御部111と学習識別部102との機能を実現するプログラムである。
 プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、あるいはGPU(Graphics Processing Unit)である。
[0024]
 メモリ921は、データを一時的に記憶する記憶装置である。
 メモリ921の具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。
[0025]
 記録メディア920と補助記憶装置922は、データを保管する記憶装置である。
 記録メディア920と補助記憶装置922の具体例は、HDD(Hard Disk Drive)である。
 また、記録メディア920と補助記憶装置922は、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
[0026]
 通信インターフェース923は、データを受信する受信部901及びデータを送信する送信部902を有する。
 通信インターフェース923は、通信チップ又はNIC(Network Interface Card)等を有する。
[0027]
 学習識別プログラムは、メモリ921からプロセッサ910に読み込まれ、プロセッサ910によって実行される。
 メモリ921には、学習識別プログラムだけでなく、オペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609も記憶されている。
 プロセッサ910は、オペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609を実行しながら、学習識別プログラムを実行する。
 学習識別プログラム及びオペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609は、補助記憶装置922に記憶されていてもよい。
 補助記憶装置922に記憶されている学習識別プログラム及びオペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609は、メモリ921にロードされ、プロセッサ910によって実行される。
 なお、学習識別プログラムの一部又は全部がオペレーティングシステム607に組み込まれていてもよい。
[0028]
 学習識別装置200は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、学習識別プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、学習識別プログラムを実行する装置である。
[0029]
 学習識別プログラムにより利用、処理又は出力されるデータ、情報、信号値及び変数値は、メモリ921、補助記憶装置922、又は、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
[0030]
 タイム制御部111と学習識別部102との各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。また、タイム制御部111と学習識別部102との各処理の「処理」を「プログラム」、「プログラムプロダクト」又は「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
 学習識別プログラムは、前記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、学習識別方法は、学習識別装置200がプログラムを実行することにより行われる方法である。
 プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、プログラムは、プログラムプロダクトとして提供されてもよい。
[0031]
 また、学習識別装置200は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)といった処理回路により実現されてもよい。
[0032]
 また、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、プロセッシングサーキットリという。つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれプロセッシングサーキットリの具体例である。
[0033]
 ***動作の説明***
 次に動作について説明する。
 図2はこの実施の形態の学習識別装置200の学習識別方法の動作を示すフローチャート300である。以下の処理は、プロセッサ910が学習識別プログラムを実行することにより実現される。
[0034]
 まずステップS301において、入力制御部112が、学習識別装置200の受信部901へ入力された入力データ101をデータマスク部201に入力する。
 次にステップS302において、データマスク部201が、入力データ101にランダムなノイズを印加する。ここで、データマスク部201が印加するノイズの強度は、学習識別部102の処理に影響がない程度を上限とし、攻撃者が印加するノイズと同程度、又は、それ以上のものが設定される。
 次にステップS303において、データマスク部201は、ランダムノイズを印加した入力データを、学習識別部102に入力する。
 学習識別部102は、複数のニューラルネットワーク層1001で、パーセプトロン処理1002を実行する。
 パーセプトロン処理1002において、ランダムノイズを印加していない入力データの処理時間とランダムノイズを印加した入力データの処理時間とは異なる。
 ニューラルネットワーク層1001はパーセプトロン処理1002の演算結果を出力する。
 最終層のニューラルネットワーク層1001が学習識別結果となる。
 学習識別部102は、入力データ101から学習識別結果を得て学習識別結果を出力する。
 最後にステップS304において、学習識別部102は、学習識別結果を、学習識別装置200の出力データ103として送信部902に出力する。
 送信部902は、出力データ103を外部に出力する。
[0035]
 以上のように、本実施の形態の学習識別方法は、タイム制御部111が、入力データ101に対する学習識別部102の処理時間を入力データ101に対して非依存にする。
 そして、学習識別部102が、入力データ101を学習識別処理して出力データを出力する。
[0036]
 また、本実施の形態の学習識別プログラムは、学習識別処理を実行するコンピュータに、入力データ101に対して学習識別処理させ、学習識別部102への入力データ101の入力時刻から学習識別部102からの出力データ103の出力時刻までの時間を入力データに対して非依存にさせて、出力データ103を出力させる。
[0037]
***実施の形態の特徴***
 本実施の形態の学習識別装置200は、学習識別部102の前に、入力データ101を処理する手段を追加することで、入力データ101と学習識別部102の処理時間とを非依存にすることを特徴とする。
[0038]
 本実施の形態の学習識別装置200は、入力データ101を処理する手段を、学習識別装置200の入力データ101にランダムなノイズを印加する手段で実現することを特徴とする。
[0039]
 本実施の形態の学習識別装置200は、学習識別部102の前に、入力データ101にランダムなノイズを印加するデータマスク部201を追加することで、入力データ101と学習識別部102の処理時間とを非依存にする。
[0040]
 本実施の形態の学習識別装置200は、入力データ101にランダムなノイズを印加するデータマスク部201により学習識別部102の処理時間をランダムなノイズが印加された入力データ101に依存した処理時間とすることでタイミング攻撃対策としたものである。
[0041]
***実施の形態の効果***
 以上のように、本実施の形態の学習識別装置200は、学習識別部102の処理時間がランダムなノイズが印加された入力データ101に依存したものとなるようにしているので、入力データ101と処理時間の関係に着目するタイミング攻撃を防御することができる。
[0042]
 実施の形態2.
 以下、実施の形態1と異なる点について説明する。
 本実施の形態では、学習識別部102への入力データ101の入力時刻をランダム化する入力時刻拡散部401を追加して、タイミング攻撃対策とする実施形態を示す。
[0043]
 図3は、学習識別装置200の構成図である。
 学習識別装置200は、タイム制御部111を有する。
 タイム制御部111は、入力制御部112を有する。
 入力制御部112は、入力時刻拡散部401を有する。
 入力時刻拡散部401は、学習識別部102への入力データ101の入力時刻をランダム化する。
[0044]
 学習識別装置200は、学習識別部102の前に、入力時刻をランダム化する入力時刻拡散部401を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にする。
[0045]
 次に動作について説明する。
 図4はこの実施の形態の学習識別装置200の学習識別方法の動作を示すフローチャート500である。以下の処理は、プロセッサ910が学習識別プログラムを実行することにより実現される。
 まずステップS501において、学習識別装置200へ入力された入力データ101が入力時刻拡散部401に入力される。
 次にステップS502において、入力時刻拡散部401は、入力データ101の学習識別部102への入力時刻をランダム化する。
 具体的には、入力時刻拡散部401は、受信部901への入力データ101の受信時刻から学習識別部102への入力データ101の出力時刻までの時間をランダム化する。
 入力時刻のランダム化は、ダミー処理又はウェイト処理等により実現される。
 次にステップS503において、入力時刻拡散部401は、ランダム化した入力時刻に従って、入力データ101を学習識別部102に入力する。
 最後にステップS504において、学習識別部102は学習識別結果を出力データ103として、出力する。
[0046]
***実施の形態の特徴***
[0047]
 本実施の形態の学習識別装置200は、学習識別部の前に、入力データを処理する手段を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にすることを特徴とする。
[0048]
 本実施の形態の学習識別装置200は、入力データを処理する手段を、学習識別装置200の学習識別部のへ入力タイミングをランダム化する手段で実現することを特徴とする。
[0049]
 本実施の形態の学習識別装置200は、入力データ101の入力時刻をランダム化する入力時刻拡散部401により、学習識別装置200の処理時間をランダム化された入力時刻に依存した処理時間とすることでタイミング攻撃対策としたものである。
[0050]
***実施の形態の効果***
 以上のように、本実施の形態の学習識別装置200は、学習識別装置200の処理時間がランダム化された入力時刻に依存したものとなるようにしているので、入力データ101と処理時間の関係に着目するタイミング攻撃を防御することができる。
[0051]
 実施の形態3.
 以下、実施の形態1と異なる点について説明する。
 次に学習識別部102の出力時刻をランダム化する出力時刻拡散部601を追加した場合に、タイミング攻撃対策となる実施形態を示す。
[0052]
 図5は、学習識別装置200の構成図である。
 学習識別装置200は、学習識別部102の後に、出力時刻をランダム化する出力時刻拡散部601を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にする。
[0053]
 学習識別装置200は、タイム制御部111を有する。
 タイム制御部111は、出力制御部113を有する。
 出力制御部113は、出力データ103に処理を加えて学習識別装置200の処理時間を変更する。
 入力制御部112は、出力時刻拡散部601を有する。
 出力時刻拡散部601は、出力データ103の出力時刻をランダム化する。
[0054]
 この実施の形態の学習識別装置200は、学習識別部102の後に、学習識別装置200の出力データ103の出力時刻をランダム化する出力時刻拡散部601を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にする。
[0055]
 次に動作について説明する。
 図6はこの実施の形態の学習識別装置200の学習識別方法の動作を示すフローチャート700である。以下の処理は、プロセッサ910が学習識別プログラムを実行することにより実現される。
 まずステップS701において、学習識別装置200へ入力された入力データ101が学習識別部102に入力される。
 次にステップS702において、学習識別部102から出力された学習識別結果が、出力時刻拡散部601に入力される。
 次にステップS703において、出力時刻拡散部601は、学習識別装置200の出力データ103の出力時刻をランダム化する。
 具体的には、出力時刻拡散部601は、学習識別部102からの出力データ103の入力時刻から送信部902への出力時刻までの時間をランダム化する。
 出力時刻のランダム化は、ダミー処理又はウェイト処理等により実現される。
 最後にステップS704において、出力時刻拡散部601は、ランダム化された出力時刻に従って、学習識別部102から出力された学習識別結果を出力データ103として、送信部902に出力する。
[0056]
***実施の形態の特徴***
 本実施の形態の学習識別装置200は、学習識別部102の後に、出力データ103を処理する手段を追加することで、入力データ101と学習識別装置200の処理時間を非依存にすることを特徴とする。
[0057]
 本実施の形態の学習識別装置200は、出力データ103を処理する手段を、学習識別装置200の出力タイミングをランダム化する手段で実現することを特徴とする。
[0058]
 本実施の形態の学習識別装置200は、出力時刻拡散部601が出力データ103の出力時刻をランダム化して、学習識別装置200の処理時間をランダム化された出力時刻に依存した処理時間とすることでタイミング攻撃対策としたものである。
[0059]
***実施の形態の効果***
 以上のように、本実施の形態の学習識別装置200は、学習識別装置200の処理時間を入力データ101によらずランダム化された出力データ103の出力時刻に依存したものとなるようにしているので、入力データ101と処理時間の関係に着目するタイミング攻撃を防御することができる。
[0060]
 実施の形態4.
 以下、実施の形態1と異なる点について説明する。
 本実施の形態では、学習識別部102の処理時間を一定にして、タイミング攻撃対策とする実施形態を示す。
[0061]
 図7は、学習識別装置200の構成図である。
 学習識別装置200は、タイム制御部111を有する。
 タイム制御部111は、出力制御部113を有する。
 出力制御部113は、タイムスタンプ生成部801と出力時刻調整部803とを有する。
[0062]
 タイムスタンプ生成部801は、タイムスタンプ生成部801への入力データ101の入力時刻をタイムスタンプ802として記録する。
 出力時刻調整部803は、タイムスタンプ802を用いて、入力データ101の入力時刻から出力データ103の出力時刻までの時間を一定にする。
 出力時刻調整部803は、タイムスタンプ802が示す入力データ101の入力時刻に対して一定の時間を加算して出力データ103の出力時刻とする。
[0063]
 学習識別装置200は、学習識別部102の前に、タイムスタンプ生成部801への入力データ101の入力時刻を記録するタイムスタンプ生成部801を追加し、学習識別部102の後に、学習識別部102の処理時間を一定にする出力時刻調整部803を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にする。
[0064]
 次に動作について説明する。
 図8はこの実施の形態の学習識別装置200の学習識別方法の動作を示すフローチャート900である。以下の処理は、プロセッサ910が学習識別プログラムを実行することにより実現される。
 まずステップS901において、学習識別装置200へ入力された入力データ101がタイムスタンプ生成部801に入力される。
 次にステップS902において、タイムスタンプ生成部801は、入力データ101の入力時刻に応じたタイムスタンプ802を生成する。
 タイムスタンプ802は、タイムスタンプ生成部801への入力データ101の入力時刻を含んでいる。
 タイムスタンプ802はメモリ921に記憶される。
 次にステップS903において、タイムスタンプ生成部801は、タイムスタンプ802をメモリ921に記録した入力データ101を学習識別部102に入力する。
 次にステップS904において、学習識別部102は、学習識別結果を出力時刻調整部803に入力する。
 次にステップS905において、出力時刻調整部803は、タイムスタンプ生成部801で生成したタイムスタンプ802を参照し、処理時間が一定になるようする。
 具体的には、タイムスタンプ生成部801は、タイムスタンプ802が示す入力時刻に対して一定の時間を加算した時刻を学習識別結果の出力時刻とする。
 処理時間の一定化は、ダミー処理又はウェイト処理等により実現される。
 最後にステップS906において、出力時刻調整部803は処理時間が一定化された出力時刻に従って、学習識別部102から出力された学習識別結果を出力データ103として、送信部902に出力する。
[0065]
***実施の形態の特徴***
 本実施の形態の学習識別装置200は、学習識別部102の後に、出力データ103を処理する手段を追加することで、入力データ101と学習識別装置200の処理時間とを非依存にすることを特徴とする。
[0066]
 本実施の形態の学習識別装置200は、出力データ103を処理する手段を、学習識別装置200の学習識別部102の前にタイムスタンプを生成し、タイムスタンプ802を参照して学習識別部102の処理時間が一定になるように学習識別装置200の出力タイミングを設定する手段で実現することを特徴とする。
[0067]
 本実施の形態の学習識別装置200は、入力データ101の入力時刻を記録するタイムスタンプ生成部801と、学習識別部102の処理時間を一定にする出力時刻調整部803により、入力データ101によらず出力データ103の出力時刻を調整する。
[0068]
***実施の形態の効果***
 以上のように、本実施の形態の学習識別装置200は、学習識別装置200の処理時間が一定となるように、出力データ103の出力時刻を調整しているので、入力データ101と処理時間の関係に着目するタイミング攻撃を防御することができる。
[0069]
 実施の形態5.
 以下、実施の形態1と異なる点について説明する。
 本実施の形態では、学習識別部102内の各ニューラルネットワーク層1001のパーセプトロン処理1002に、タイミング攻撃対策を施す実施形態を示す。
[0070]
 図9は、学習識別装置200の構成図である。
 学習識別部102は、ニューラルネットワーク層1001からなる複数層の処理を有している。
 学習識別装置200は、学習識別部102内の各ニューラルネットワーク層1001のパーセプトロン処理の処理結果の出力時刻をランダム化、又は、一定にする出力時刻調整部1003を追加することで、入力データ101と学習識別部102の処理時間とを非依存にする。
[0071]
 学習識別装置200は、タイム制御部111を有する。
 タイム制御部111は、処理制御部114を有する。
 処理制御部114は、学習識別部102の処理時刻を制御して、学習識別部102の処理時間を変更する。
 処理制御部114は、複数の出力時刻調整部1003を有する。
 出力時刻調整部1003は、ニューラルネットワーク層1001の各層に後に配置されている。
 ニューラルネットワーク層1001と出力時刻調整部1003は対応しており、ニューラルネットワーク層1001の数と出力時刻調整部1003の数は同じである。ただし、出力時刻調整部1003は、1個以上あればよい。
 出力時刻調整部1003は、学習識別部102の各層の出力時刻をランダム化、又は、学習識別部102の各層の学習時刻を一定にする。
[0072]
 学習識別装置200は、学習識別部102内のニューラルネットワーク層1001の各層のパーセプトロン処理1002に、出力時刻をランダム化、又は、一定にする出力時刻調整部1003を追加することで、入力データ101と学習識別部102の処理時間とを非依存にする。
[0073]
 次に動作について説明する。
 図10はこの実施の形態の学習識別装置200の学習識別方法の動作を示すフローチャート1100である。以下の処理は、プロセッサ910が学習識別プログラムを実行することにより実現される。
[0074]
 まずステップS1101において、学習識別装置200へ入力された入力データ101が学習識別部102に入力される。
 次にプロセッサ910は、ステップS1102からステップS1105までの処理を、ニューラルネットワーク層1001の全層の演算終了まで各層でループ処理する。
 ステップS1103において、ニューラルネットワーク層1001は、パーセプトロン処理1002を実行する。
 次にステップS1104において、ニューラルネットワーク層1001は、パーセプトロン処理1002の演算結果の出力を出力時刻調整部1003に入力する。
 次にステップS1105において、出力時刻調整部1003は、ニューラルネットワーク層1001の演算結果を中間データ109として受け取り、中間データ109の出力時刻を一定、又は、ランダムにする。
 具体的には、出力時刻調整部1003は、複数のパーセプトロン処理1002の複数の処理結果を複数の中間データ109として受け取り、複数の中間データ109の出力時刻をランダムにして又は一定にして出力する。
 複数の中間データ109の出力時刻の一定、又は、ランダム化は、ダミー処理又はウェイト処理等により実現される。
 出力時刻調整部1003は、複数の中間データ109を受信し複数の中間データ109を同時に出力することにより、中間データ109の出力時刻を一定にする。
 あるいは、出力時刻調整部1003は、複数の中間データ109を受信し複数の中間データ109を相互にランダムな時刻に出力することにより、複数の中間データ109の出力時刻をランダム化する。
 複数の中間データ109の出力時刻の一定、又は、ランダム化は、パーセプトロン処理1002内の一部として実現してもよい。
 最後にステップS1106において、ニューラルネットワーク層1001の全層の演算終了後、学習識別部102は学習識別結果を出力データ103として、送信部902に出力する。
[0075]
***実施の形態の特徴***
 本実施の形態の学習識別装置200は、学習識別装置200の学習識別部内の各層のパーセプトロン処理1002の間に中間データ109を処理する手段を追加することで、学習識別部102の処理時間を変更し、入力データと学習識別装置200の処理時間を非依存にすることを特徴とする。
[0076]
 本実施の形態の学習識別装置200は、中間データ109を処理する手段を、学習識別装置200の学習識別部内の各層の複数の中間データ109の出力タイミングをランダム化、又は、一定にする手段で実現することを特徴とする。
[0077]
***実施の形態の効果***
 以上のように、本実施の形態の学習識別装置200は、複数の中間データ109の出力時刻が一定又はランダムとなるようにして学習識別部102の処理時間を変更しているので、入力データ101と処理時間の関係に着目するタイミング攻撃を防御することができる。
[0078]
***変形例***
 図11は、本実施の形態に係る学習識別装置200の別構成を示す図である。
 図11は、図9に示した学習識別装置200の出力時刻調整部1003を変更したものである。
 図11に示す出力時刻調整部1003は、ニューラルネットワーク層1001の全てのパーセプトロン処理1002から中間データ109として受け取るのではなく、ニューラルネットワーク層1001の全てのパーセプトロン処理1002のうち一部のパーセプトロン処理1002から中間データ109として受け取る。
 出力時刻調整部1003が中間データ109を受け取らない場合、パーセプトロン処理1002の中間データ109は次のニューラルネットワーク層1001に直接入力される。
[0079]
 実施の形態6.
 この実施の形態では、実施の形態1と異なる点について説明する。
[0080]
 図12は、本実施の形態に係る学習識別装置200の構成を示す図である。
 図12は、図1に示した学習識別装置200のプロセッサ910を電子回路909に変更したものである。
 学習識別装置200は、電子回路909、メモリ921、補助記憶装置922、通信インターフェース923、及び記録メディア920を備える。
[0081]
 電子回路909は、タイム制御部111と学習識別部102の機能を実現する専用の電子回路である。
 電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、又は、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。
 タイム制御部111と学習識別部102の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
 本実施の形態では、タイム制御部111と学習識別部102の機能がソフトウェアで実現されてもよい。
 あるいは、タイム制御部111と学習識別部102の機能がハードウェアで実現されてもよい。
 あるいは、タイム制御部111と学習識別部102の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
[0082]
 プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、学習識別装置200において、タイム制御部111と学習識別部102の機能は、プロセッシングサーキットリにより実現される。
[0083]
 図示していないが、実施の形態1以外の学習識別装置200のプロセッサ910を電子回路909に変更してもよい。
[0084]
***他の実施の形態***
 前述した実施の形態では、学習しながら識別作業をする学習識別装置200について説明したが、学習識別装置200ではなく、学習をする学習装置でもよいし、識別作業をする識別装置でもよい。
[0085]
 以上、複数の実施の形態について説明したが、これらの実施の形態のうち、2つ以上の実施の形態を組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、1つの実施の形態又は2つ以上の実施の形態の組み合わせを部分的に実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。

符号の説明

[0086]
 101 入力データ、102 学習識別部、103 出力データ、109 中間データ、111 タイム制御部、112 入力制御部、113 出力制御部、114 処理制御部、200 学習識別装置、201 データマスク部、401 入力時刻拡散部、601 出力時刻拡散部、607 オペレーティングシステム、608 ネットワークドライバ、609 ストレージドライバ、801 タイムスタンプ生成部、802 タイムスタンプ、803 出力時刻調整部、901 受信部、902 送信部、909 電子回路、910 プロセッサ、920 記録メディア、921 メモリ、922 補助記憶装置、923 通信インターフェース、1001 ニューラルネットワーク層、1002 パーセプトロン処理、1003 出力時刻調整部。

請求の範囲

[請求項1]
 入力データを学習識別処理して出力データを出力する学習識別部と、
 前記入力データに対する前記学習識別処理の処理時間を前記入力データに対して非依存にするタイム制御部と
を備えた学習識別装置。
[請求項2]
 前記タイム制御部は、前記入力データに処理を加えて前記学習識別処理の処理時間を変更する入力制御部とを備えた請求項1に記載の学習識別装置。
[請求項3]
 前記入力制御部は、前記入力データにランダムなノイズを印加するデータマスク部を有する請求項2に記載の学習識別装置。
[請求項4]
 前記入力制御部は、前記入力データの入力時刻をランダム化する入力時刻拡散部を有する請求項2に記載の学習識別装置。
[請求項5]
 前記タイム制御部は、前記出力データに処理を加えて前記学習識別処理の処理時間を変更する出力制御部とを備えた請求項1に記載の学習識別装置。
[請求項6]
 前記出力制御部は、前記出力データの出力時刻をランダム化する出力時刻拡散部を有する請求項5に記載の学習識別装置。
[請求項7]
 前記出力制御部は、前記入力データの入力時刻から前記出力データの出力時刻までの時間を一定にする出力時刻調整部を有する請求項5に記載の学習識別装置。
[請求項8]
 前記タイム制御部は、前記学習識別部の処理時刻を制御して、前記学習識別処理の処理時間を変更する処理制御部とを備えた請求項1に記載の学習識別装置。
[請求項9]
 前記学習識別部は、複数層の処理を有し、
 前記処理制御部は、前記学習識別部の各層の出力時刻をランダム化、又は、前記学習識別部の各層の出力時刻を一定にする出力時刻調整部を有する請求項8に記載の学習識別装置。
[請求項10]
 学習識別方法において、
 タイム制御部が、入力データに対する学習識別処理の処理時間を前記入力データに対して非依存にし、
 学習識別部が、前記入力データを学習識別処理して出力データを出力する学習識別方法。
[請求項11]
 学習識別処理を実行するコンピュータに、
 入力データに対して学習識別処理させ、
 前記入力データの入力時刻から出力データの出力時刻までの時間を前記入力データに対して非依存にさせて、前記出力データを出力させる学習識別プログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]