JP6808100B1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6808100B1
JP6808100B1 JP2020530398A JP2020530398A JP6808100B1 JP 6808100 B1 JP6808100 B1 JP 6808100B1 JP 2020530398 A JP2020530398 A JP 2020530398A JP 2020530398 A JP2020530398 A JP 2020530398A JP 6808100 B1 JP6808100 B1 JP 6808100B1
Authority
JP
Japan
Prior art keywords
calculation
calculation procedure
change
procedure
value
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
JP2020530398A
Other languages
English (en)
Other versions
JPWO2021140574A1 (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6808100B1 publication Critical patent/JP6808100B1/ja
Publication of JPWO2021140574A1 publication Critical patent/JPWO2021140574A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

演算手順変更部(100)は、機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる変更前の演算手順とは異なる演算手順に変更する。演算実行部(101)は、演算実行タイミングが到来する度に、演算手順変更部(100)による変更後の演算手順にて学習パラメータを用いた演算を実行する。

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
近年、インターネットの普及に伴い、インターネットを利用した多種多様なサービスが提供されている。そのうちの一つとして、ディープラーニングに代表される機械学習を用いた金融サービス、検索エンジン、パターン認識等のサービスが増加している。
一方で、サイバー攻撃による機密情報等の情報漏洩といったセキュリティインシデントが多数報告されている。そして、セキュリティインシデントによる情報資産の流出を防ぐため、データの暗号化といったサイバー攻撃に対するセキュリティ対策が取られるようになった。
機械学習を用いたサービスにおいては、機械学習の学習モデルを構成するモデルアーキテクチャ及び学習により値が調整される学習パラメータといった学習モデル情報は、サービスの品質を決定する重要な情報であり、産業上の価値を有する一つの情報資産とされている。そして、その学習モデル情報の盗難を目的としたサイバー攻撃の存在が指摘されている。そこで、学習モデル情報をサイバー攻撃から保護するセキュリティ対策が検討されている。
例えば、特許文献1では、耐タンパ性を有するセキュアエレメントに学習モデル情報を格納し、さらに学習モデル情報をスクランブル化して格納することで、学習モデル情報をサイバー攻撃から保護する方法が開示されている。
特開2019−101807号公報
特許文献1の手法では、学習モデル情報をスクランブル化してセキュアエレメントに格納するが、演算実行時には学習モデル情報はプロセッサにデスクランブルされ読み出され演算に用いられる。
そのため、演算実行時に発生する消費電力、漏洩電磁波といったサイドチャネル情報から、学習モデル情報を解析し、学習モデルを模倣するModel Reverse−Engineering攻撃手法から学習モデル情報を保護することが出来ないという課題があった。
本開示は、上記のような課題を解決することを主な目的とする。具体的には、本開示は、Model Reverse−Engineering攻撃手法から学習モデル情報である学習パラメータを保護することを主な目的とする。
本開示に係る情報処理装置は、
機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更する演算手順変更部と、
前記演算実行タイミングが到来する度に、前記演算手順変更部による変更後の演算手順にて前記学習パラメータを用いた演算を実行する演算実行部とを有する。
本開示によれば、Model Reverse−Engineering攻撃手法から学習パラメータを保護することができる。
実施の形態1に係る情報処理装置のハードウェアの構成例を示す図。 実施の形態1に係る情報処理装置の機能構成例を示す図。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。 実施の形態1に係る情報処理装置の演算処理を示すフローチャート。 実施の形態1に係る学習モデルのユニットの演算手順を示す図。 実施の形態1に係る演算手順の変更を示す図。 実施の形態1の変形例1に係る演算手順の変更を示す図。 実施の形態1の変形例2に係る演算手順の変更を示す図。 実施の形態1の変形例3に係る演算手順の変更を示す図。 実施の形態2に係る情報処理装置の演算処理を示すフローチャート。 実施の形態2に係る演算手順の変更を示す図。 実施の形態3に係る情報処理装置の演算処理を示すフローチャート。 実施の形態3に係る演算手順の変更を示す図。
以下、本開示の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
なお、以下の実施の形態では、学習モデルの基となる機械学習手法の例として、ニューラルネットワークを用いた手法を用いて説明を進める。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る情報処理装置1のハードウェア構成例を示す。
情報処理装置1は、コンピュータである。
情報処理装置1は、後述の学習モデル110を用いて、学習処理及び推論処理を行う情報処理装置である。
なお、学習処理は、例えば教師あり学習において教師データを与え、後述の学習パラメータ220を調整する処理である。また、推論処理は、学習処理によって調整された学習パラメータ220に基づき、未知のデータについての予測又は識別等を行う処理である。
情報処理装置1は、プロセッサ10、メモリ11、補助記憶装置12、入出力I/F13、通信装置14、及び乱数発生器15を備え、信号線を介して互いに接続される。
なお、情報処理装置1の動作手順は、情報処理方法に相当する。また、情報処理装置1の動作を実現するプログラムは、情報処理プログラムに相当する。
プロセッサ10は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ10は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
メモリ11は、データを一時的に記憶する記憶装置である。メモリ11は、具体例としては、RAM(Random Access Memory)である。
補助記憶装置12は、後述する演算手順変更部100、及び演算実行部101の機能を実現するプログラムを保管する補助記憶装置である。補助記憶装置12は、具体例としては、ハードディスクである。
また、補助記憶装置12は、SSD(登録商標、Solid State Drive)、SD(登録商標、Secure Digital)メモリカード、CF(登録商標、CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(登録商標、Digital Versatile Disk)といった可搬記録媒体であってもよい。
補助記憶装置12に記憶された演算手順変更部100、及び演算実行部101の機能を実現するプログラムは、メモリ11によりロードされる。また当該プログラムはプロセッサ10に読み出され、実行される。
また、補助記憶装置12には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ10により実行される。
プロセッサ10はOSの少なくとも一部を実行しながら、演算手順変更部100、及び演算実行部101の機能を実現するプログラムを実行する。
プロセッサ10がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、演算手順変更部100、及び演算実行部101の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、プロセッサ10、メモリ11、補助記憶装置12内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、演算手順変更部100、及び演算実行部101の機能を実現するプログラムは、ハードディスク、SSD(登録商標)、SD(登録商標)メモリカード、CF(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(登録商標)といった可搬記録媒体に格納されていてもよい。
そして、演算手順変更部100、及び演算実行部101の機能を実現するプログラムを流通させてもよい。
通信装置14は、信号線を介して接続先とのデータの通信処理を実行する電子回路である。通信装置14は、具体例としては、Ethernet(登録商標)用の通信チップ又はNIC(Network Interface Card)である。
乱数発生器15は、でたらめな乱数を発生させる電子回路である。また、乱数発生器15は、プロセッサ10で実現されるプログラムであってもよい。
図2は、本実施の形態に係る情報処理装置1の機能構成例を示す図である。
情報処理装置1は、演算手順変更部100、演算実行部101、及び記憶部200を備える。
演算手順変更部100は、後述の学習パラメータ220を用いる演算手順を変更する。
具体的には、演算手順変更部100は、学習パラメータ220を用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を変更する。なお、演算手順変更部100は、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる、変更前の演算手順とは異なる演算手順に変更する。
演算手順変更部100で行われる処理は演算手順変更処理に相当する。
演算実行部101は、学習モデル110に定められ、演算手順変更部100が変更した演算手順に基づき、演算を実行する。
具体的には、演算実行部101は、演算実行タイミングが到来する度に、演算手順変更部100による変更後の演算手順にて学習パラメータ220を用いた演算を実行する。
演算実行部101で行われる処理は演算実行処理に相当する。
なお、学習モデル110は、機械学習に基づく演算手順を定めたモデルである。学習モデル110は、後述の学習モデル情報により決定される。
なお、本実施の形態では、学習モデル110はニューラルネットワークである。
記憶部200は、情報処理装置1の学習処理及び推論処理に用いられる学習モデル情報が格納される記憶領域である。学習モデル情報は、具体的には、モデルアーキテクチャ210及び学習パラメータ220である。
なお、モデルアーキテクチャ210は、具体的には、ニューラルネットワークにおける、ユニット数、層数、又は活性化関数といった学習処理によって調整されないパラメータである。
図2では、学習モデル110の丸はユニットを示す。また、丸の列が層を示す。したがって、モデルアーキテクチャ210のユニット数、層数は、それぞれ、14、4であることを示す。
また、学習パラメータ220は、具体的には、ニューラルネットワークにおける、重み、又はバイアスといった学習処理によって値が調整されるパラメータである。
記憶部200は、メモリ11及び補助記憶装置12により実現される。
また、モデルアーキテクチャ210、及び学習パラメータ220は、ハードディスク、SSD(登録商標)、SD(登録商標)メモリカード、CF(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(登録商標)といった可搬記録媒体に格納されていてもよい。
また、モデルアーキテクチャ210、及び学習パラメータ220は、通信装置14を介した接続先に格納されていてもよい。
また、演算手順変更部100、演算実行部101、及び記憶部200の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、情報処理装置1は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
この場合は、演算手順変更部100、演算実行部101、及び記憶部200は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
***動作の説明***
次に、図3のフローチャートを用いて、本実施の形態に係る情報処理装置1の動作例について説明する。
なお、本実施の形態では、機械学習の処理の例として、推論処理を用いて説明を進める。
まず、ステップS100では、演算実行部101は、入出力I/F13を介して入力データを取得する。
次に、ステップS110では、演算実行部101は、記憶部200に格納されている学習モデル情報である、モデルアーキテクチャ210、及び学習パラメータ220をロードする。
次に、ステップS120では、演算実行部101は、ロードした学習モデル情報に基づき学習モデル110が定め、演算手順変更部100が変更した演算手順にて演算を実行する。なお、演算手順変更部100が演算を実行するタイミングは、演算実行タイミングである。演算の処理の詳細は後述する。
そして、ステップS130では、演算実行部101は、入出力I/F13を介して演算結果を出力する。
図4は、本実施の形態に係る情報処理装置1の演算処理例を示すフローチャートである。
なお、本実施の形態では、学習パラメータ220の値は、学習モデル110で定められた各々のユニットにおける重みである。また、学習パラメータ220の値と演算される被演算値は学習モデル110で定められた各々のユニットにおける入力値である。
まず、ステップS200では、演算実行部101は、学習モデル110で定められたニューラルネットワークの1つのユニットを指定する。
具体的には、演算実行部101は、2層目のユニットから指定されていないユニットを順に指定する。また、演算実行部101は、各層の全てのユニットを指定済みであれば、次の層のユニットを指定する。具体例としては、演算実行部101は、2層目の全てのユニットが指定済みであれば、3層目のいずれかのユニットを指定する。
次に、ステップS210では、演算手順変更部100は、マスキングを実施する。
具体的には、演算実行部101は、指定したユニットに入力される複数の入力値及び複数の重みを演算手順変更部100へ通知する。
演算手順変更部100は、演算実行部101からの通知を受け、乱数発生器15より乱数を取得する。そして、演算手順変更部100は、乱数発生器15より取得した乱数を用いて、演算実行部101から通知された値をマスキングする。マスキングの詳細は後述する。
さらに、演算手順変更部100は、乱数発生器15より取得した乱数及び演算実行部101から通知された値に基づき、アンマスキングに用いる値を算出し、記憶する。
アンマスキングとは、マスキング後の値を用いて演算した結果を、マスキングを実施せずに演算した結果と同一にする処理である。
そして、演算手順変更部100は、マスキング後の値を演算実行部101に通知する。
次に、ステップS220では、演算実行部101は、演算手順変更部100より通知されたマスキング後の値を用いて演算を実行する。マスキング後の演算の詳細は後述する。
そして、演算実行部101は、演算結果を演算手順変更部100へ通知する。
次に、ステップS230では、演算手順変更部100は、演算実行部101より通知された演算結果にアンマスキングを実施する。アンマスキングの詳細は後述する。
このアンマスキングにより得られる演算結果は、マスキングを実施する前の重みと入力値とを用いた演算結果と同一となる。
そして、演算手順変更部100は、このアンマスキングにより得られる演算結果を演算実行部101に通知する。
次に、ステップS240では、演算実行部101は、演算手順変更部100より通知された演算結果に、順に、バイアスの加算、活性化関数の演算を実行する。
なお、活性化関数の演算を実行した結果は、下層のユニットに入力される値となる。又は、下層のユニットが無い場合は、出力される演算結果となる。
演算手順変更部100は、ユニットへの入力値にマスキングを行い、演算実行部101にマスキング後の値を用いた演算を行わせ、演算実行部101の演算結果にアンマスキングを行い、また、演算実行部101にアンマスキング後の値を用いたバイアスの加算及び活性化関数の演算を行わせることで演算手順を変更する。演算手順の変更前の演算結果(活性化関数の演算結果)と演算手順の変更後の演算結果(活性化関数の演算結果)は同一である。
このように、演算手順変更部100は、活性化関数を用いた演算の演算結果の同一性を維持しつつ、演算手順を変更する。そして、演算実行部101は、変更後の演算手順にて演算を行う。具体的には、演算実行部101は、ユニットへの入力値に対して演算を行うのではなく、演算手順変更部100によるマスキング後の値に対して演算を行う。また、演算実行部101は、ユニットへの入力値に対する演算結果に対して活性化関数の演算を実行するのではなく、マスキング後の値に対する演算結果を演算手順変更部100に出力し、演算手順変更部100によるアンマスキング後の値に対してバイアスの加算及び活性化関数の演算を実行する。
次に、ステップS250では、演算実行部101は、演算が終了したか否かを判定する。
具体的には、演算実行部101は、学習モデル110で定めた1層目のユニットを除く全てのユニットが指定済みであるか否かを確認する。
そして、演算実行部101は、学習モデル110で定めた1層目のユニットを除く全てのユニットが指定済みであることを確認すれば、演算処理は終了する。
一方、演算実行部101は、学習モデル110で定めた1層目のユニットを除くユニットに指定済みでないユニットがあることを確認すれば、処理はステップS200に戻る。
次に、図5及び図6を用いて、マスキング、マスキング後の演算、及びアンマスキングの例を説明する。
図5は、学習モデル110の1つのユニットの演算手順の例を図示したものである。
入力値はそれぞれx、x、xである。また、重みはそれぞれw、w、wである。
入力値x、x、xと重みw、w、wとは、同じ添え字の値の組合せで乗算される。そして、それら各々の乗算値の総和が算出される。総和は、x+x+xである。
その後、その総和にバイアスbが加算される。そして、そのバイアスbの加算後の値は活性化関数による演算が行われ出力yとして出力される。
図6は、図5の演算手順に、加算によるマスキングとアンマスキングの処理とを実施し、変更した演算手順の例を図示したものである。
重みw、w、wの各々は、まず乱数mと加算され、マスキングされる。このように、学習パラメータ220の値及び被演算値のうち少なくともいずれか一方を、乱数発生器15により発生させた乱数を加算又は乗算することで秘匿する処理がマスキングである。
その後、入力値x、x、xとマスキング後の重みw+m、w+m、w+mとは、同じ添え字の値の組合せで乗算される。そして、それら各々の乗算値の総和が算出される。総和は、x+x+x+m(x+x+x)である。
そして、その総和は、演算手順変更部100が算出し、記憶するアンマスキングに用いられる値−m(x+x+x)と加算され、アンマスキングされる。このアンマスキングにより、バイアスbが加算される前の演算結果は、x+x+xとなり、マスキングを実施しない場合のバイアスbが加算される前の演算結果と同一となる。
なお、加算によるマスキングの場合は、アンマスキングの実施はバイアスbが加算された後であってもよい。
***実施の形態の効果の説明***
以上のように、本実施の形態では、学習モデルで定められた演算手順に、乱数を用いたマスキングの処理とアンマスキングの処理が追加される。このため、演算実行タイミングの度に、不規則に演算手順が変更される。これにより、演算実行時に発生するサイドチャネル情報が不規則に変化する。したがって、学習モデルである学習パラメータの解析を防ぐことが可能である。
なお、本実施の形態では、学習モデルの基となる機械学習手法の例として、ニューラルネットワークを用いた手法を用いて説明した。しかし、これに限らず、ディープラーニング、回帰法、決定木学習、ベイズ法、クラスタリング等の手法に基づく学習モデルであってもよい。
また、機械学習の処理は推論処理に限らず、学習処理に適用されてもよい。
***他の構成***
<変形例1>
実施の形態1では、学習パラメータ220の値である重みに乱数を加算してマスキングを実施した。しかし、重みに乱数を乗算してマスキングしてもよい。この変形例1について、実施の形態1と異なる点を説明する。
図7は、図5の演算手順に、重みへの乗算によるマスキングの処理とアンマスキングの処理とを実施し、変更した演算手順の例を図示したものである。
重みw、w、wの各々は、まず乱数mと乗算され、マスキングされる。
その後、入力値x、x、xとマスキング後の重みmw、mw、mwとは、同じ添え字の値の組合せで乗算される。そして、それら各々の乗算値の総和が算出される。総和は、mx+mx+mxである。
そして、その総和は、演算手順変更部100が算出し、記憶するアンマスキングに用いられる値1/mと乗算され、アンマスキングされる。このアンマスキングにより、バイアスbが加算される前の演算結果は、x+x+xとなり、マスキングを実施しない場合のバイアスbが加算される前の演算結果と同一となる。
<変形例2>
変形例2として、被演算値である入力値に乱数を加算してマスキングを実施してもよい。
図8は、図5の演算手順に、入力値への加算によるマスキングの処理とアンマスキングの処理とを実施し、変更した演算手順の例を図示したものである。
入力値x、x、xの各々は、まず乱数mと加算され、マスキングされる。
その後、マスキング後の入力値x+m、x+m、x+mと重みw、w、wは、同じ添え字の値の組合せで乗算される。そして、それら各々の乗算値の総和が算出される。総和は、x+x+x+m(w+w+w)である。
そして、その総和は、演算手順変更部100が算出し、記憶するアンマスキングに用いられる値−m(w+w+w)と加算され、アンマスキングされる。このアンマスキングにより、バイアスbが加算される前の演算結果は、x+x+xとなり、マスキングを実施しない場合のバイアスbが加算される前の演算結果と同一となる。
なお、加算によるマスキングの場合は、アンマスキングの実施はバイアスbが加算された後であってもよい。
<変形例3>
変形例3として、被演算値である入力値に乱数を乗算してマスキングを実施してもよい。
図9は、図5の演算手順に、入力値への乗算によるマスキングの処理とアンマスキングの処理とを実施し、変更した演算手順の例を図示したものである。
入力値x、x、xの各々は、まず乱数mと乗算され、マスキングされる。
その後、マスキング後の入力値mx、mx、mxと重みw、w、wは、同じ添え字の値の組合せで乗算される。そして、それら各々の乗算値の総和が算出される。総和は、mx+mx+mxである。
そして、その総和は、演算手順変更部100が算出し、記憶するアンマスキングに用いられる値1/mと乗算され、アンマスキングされる。このアンマスキングにより、バイアスbが加算される前の演算結果は、x+x+xとなり、マスキングを実施しない場合のバイアスbが加算される前の演算結果と同一となる。
実施の形態2.
本実施の構成では、演算順序を変更する処理の例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図10は、本実施の形態に係る情報処理装置1の演算処理例を示すフローチャートである。なお、実施の形態1と同一の動作には同一番号を付してその説明を省略する。
ステップS200が完了した後、ステップS300では、演算手順変更部100は、演算の順序を変更する。
具体的には、演算実行部101は、指定したユニットに入力される複数の入力値及び複数の重みを用いた演算の演算順序を演算手順変更部100へ通知する。
次に、演算手順変更部100は、乱数発生器15より乱数を取得し、変更後の演算順序を決定する。演算手順変更部100は、具体例としては、フィッシャー−イェーツのシャッフルを用いて演算順序を決定する。なお、変更後の演算順序の決定には、フィッシャー−イェーツのシャッフルに限らず、サットロのアルゴリズムといったその他のシャッフルアルゴリズムを用いてもよい。
そして、演算手順変更部100は、決定した変更後の演算順序を演算実行部101に通知する。
次に、ステップS310では、演算実行部101は、演算手順変更部100より通知された変更後の演算順序に基づき、演算を実行する。
その後、演算実行部101は、順に、バイアスの加算、活性化関数の演算を実行する。
次に、図11を用いて、本実施の形態に係る演算手順の変更例を示す。
図11では、左端の欄に演算の順序を示す。また、変更前、変更後の順序を示す。
変更前の順序は、順に、演算1:x×w、演算2:x×w、演算3:x×wであることが示されている。
また、変更後の演算順は、順に、演算1:x×w、演算2:x×w、演算3:x×wとなったことが示される。
以上のように、本実施の形態では、学習モデルで定められた演算手順に、乱数を用いた演算順序を変更する処理が追加される。このため、演算実行タイミングの度に、不規則に演算手順が変更される。これにより、演算実行時に発生するサイドチャネル情報が不規則に変化する。したがって、学習モデル情報である学習パラメータの解析を防ぐことが可能である。
実施の形態3.
本実施の形態では、シャミアの秘密分散法に基づき、学習パラメータ220の値及び学習パラメータ220と演算される被演算値を秘匿する秘密分散処理を実施する例を説明する。
なお、本実施の形態では、学習パラメータ220の値は、学習モデル110で定められた各々のユニットにおける重みである。また、学習パラメータ220の値と演算される被演算値は学習モデル110で定められた各々ユニットにおける入力値である。
本実施の形態では、主に実施の形態2との差異を説明する。
なお、以下で説明していない事項は、実施の形態2と同様である。
図12は、本実施の形態に係る情報処理装置1の演算処理例を示すフローチャートである。なお、実施の形態2と同一の動作には同一番号を付してその説明を省略する。
ステップS200が完了後、ステップS400では、演算手順変更部100は、シャミアの秘密分散法に基づき、秘密分散処理を実施する。
具体的には、演算実行部101は、指定したユニットに入力される複数の入力値及び複数の重みを演算手順変更部100へ通知する。
演算手順変更部100は、演算実行部101からの通知を受け、乱数発生器15より乱数を取得する。
そして、演算手順変更部100は、乱数発生器15より取得した乱数を用いて、演算実行部101から通知された複数の入力値の各々及び複数の重みの各々から各々5つずつのシェアを生成する。
そして、演算手順変更部100は、生成したシェアを演算実行部101に通知する。秘密分散処理の詳細は後述する。
次に、ステップS410では、演算実行部101は、演算手順変更部100より通知されたシェアを用いて演算を行う。シェアを用いた演算の詳細は後述する。
そして、演算実行部101は、シェアを用いた演算の結果を演算手順変更部100へ通知する。
次に、ステップS420では、演算手順変更部100は、演算実行部101から通知されたシェアを用いた演算の結果を用いて、複数の入力値の各々と複数の重みの各々との乗算結果を復元する復元処理を実施する。復元処理の詳細は後述する。
この復元処理により得られる演算結果は、秘密分散処理を実施する前の重みと入力値とを用いた演算結果と同一となる。
そして、演算手順変更部100は、復元した乗算結果を演算実行部101に通知する。
次に、ステップS430では、演算実行部101は、演算手順変更部100より通知された復元された乗算結果の総和を取る。その後、順に、バイアスの加算、活性化関数の演算を実行する。
演算手順変更部100は、ユニットへの入力値に秘密分散処理を行い、演算実行部101に秘密分散処理後の値を用いた演算を行わせ、演算実行部101の演算結果に復元処理を行い、また、演算実行部101に復元処理後の値を用いたバイアスの加算及び活性化関数の演算を行わせることで演算手順を変更する。演算手順の変更前の演算結果(活性化関数の演算結果)と演算手順の変更後の演算結果(活性化関数の演算結果)は同一である。
このように、演算手順変更部100は、活性化関数を用いた演算の演算結果の同一性を維持しつつ、演算手順を変更する。そして、演算実行部101は、変更後の演算手順にて演算を行う。具体的には、演算実行部101は、ユニットへの入力値に対して演算を行うのではなく、演算手順変更部100による秘密分散処理後の値に対して演算を行う。また、演算実行部101は、ユニットへの入力値に対する演算結果に対して活性化関数の演算を実行するのではなく、復元処理後の値に対する演算結果を演算手順変更部100に出力し、演算手順変更部100による復元処理後の値に対してバイアスの加算及び活性化関数の演算を実行する。
次に、図13を用いて、秘密分散処理、シェアを用いた演算、及び復元処理の詳細な説明をする。
図13は、本実施の形態に係る演算手順の変更例を示す。
図13では、秘密分散処理及び復元処理は、複数の入力値の各々と複数の重みの各々との演算の各々で実施されることを示す。
より具体的には、入力値xと重みwとの乗算に係る秘密分散処理と復元処理の例を示す。
演算手順変更部100は、乱数発生器15が発生した乱数を用いて識別子を生成する。また、演算手順変更部100は、生成した識別子を用いて、入力値及び重みをシェアに分散する。
図13では、識別子は、0、1、2、3、4の5つである。
そして、演算手順変更部100は、入力値xを5つの識別子に各々対応した5つのシェアx0−0、x0−1、x0−2、x0−3、x0−4に分散することを示す。
また、演算手順変更部100は、重みwを5つの識別子に各々対応した5つのシェアw0−0、w0−1、w0−2、w0−3、w0−4に分散することを示す。
上述の通り、5つの識別子は乱数発生器15が発生した乱数を用いるため、演算実行タイミングの度に、識別子及び識別子に対応した不規則な値となる。具体例としては、5つの識別子は、1、10、5、9、3であってもよい。その場合、入力値xの5つの識別子に対応した5つのシェアは、x0−1、x0−10、x0−5、x0−9、x0−3となる。また、重みwの5つの識別子に対応した5つのシェアは、w0−1、w0−10、w0−5、w0−9、w0−3となる。
次に、演算実行部101は、生成された各々5つのシェアを、それぞれ、同じ添え字である2つのシェアで乗算する。具体的には、x0−0はw0−0と乗算される。また、x0−1はw0−1と乗算される。
そして、乗算されて得られた各々の乗算値は、復元処理に用いられる。
次に、復元処理では、演算手順変更部100は、5つの各々の識別子及び各々の乗算値に基づき、入力値xと重みwとの乗算値を復元する。
なお、本実施の形態では、識別子の個数を5としたが、それに限らず、3以上のいずれかの値でもよい。
以上のように、本実施の形態では、学習モデルで定められた演算手順に、シャミアの秘密分散法に基づき、乱数を用いた秘密分散処理が追加される。このため、演算実行タイミングの度に、不規則に演算手順が変更される。これにより、演算実行時に発生するサイドチャネル情報が不規則に変化する。したがって、学習モデル情報である学習パラメータの解析を防ぐことが可能である。
以上、本開示の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
1 情報処理装置、10 プロセッサ、11 メモリ、12 補助記憶装置、13 入出力I/F、14 通信装置、15 乱数発生器、100 演算手順変更部、101 演算実行部、110 学習モデル、200 記憶部、210 モデルアーキテクチャ、220 学習パラメータ。

Claims (12)

  1. 機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更する演算手順変更部と、
    前記演算実行タイミングが到来する度に、前記演算手順変更部による変更後の演算手順にて前記学習パラメータを用いた演算を実行する演算実行部とを有し、
    前記演算手順変更部は、
    前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値が用いられる演算手順を、前記学習パラメータの値及び前記被演算値が秘匿されるように変更し、前記演算手順における演算順序をシャッフルアルゴリズムを用いて変更する情報処理装置。
  2. 機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更する演算手順変更部と、
    前記演算実行タイミングが到来する度に、前記演算手順変更部による変更後の演算手順にて前記学習パラメータを用いた演算を実行する演算実行部とを有し、
    前記演算手順変更部は、
    前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値をシャミアの秘密分散法に基づき変更する情報処理装置。
  3. 前記演算手順変更部は、
    前記学習パラメータの値及び前記被演算値以外の他の値の追加により前記演算手順を変更する請求項1に記載の情報処理装置。
  4. 前記演算手順変更部は、
    前記他の値を用いた加算の追加により前記演算手順を変更する請求項3に記載の情報処理装置。
  5. 前記演算手順変更部は、
    前記他の値を用いた乗算の追加により前記演算手順を変更する請求項3に記載の情報処理装置。
  6. 前記演算手順変更部は、
    前記学習パラメータの値及び前記被演算値をシャミアの秘密分散法に基づき変更する請求項1に記載の情報処理装置。
  7. 前記演算手順変更部は、
    前記シャッフルアルゴリズムとして、フィッシャー−イェーツのシャッフル又はサットロのアルゴリズムを用いる請求項1に記載の情報処理装置。
  8. 前記演算手順変更部は、
    乱数を用いて、前記演算手順を変更する請求項1又は7に記載の情報処理装置。
  9. コンピュータが、機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更し、
    前記演算実行タイミングが到来する度に、前記コンピュータが、変更された変更後の演算手順にて前記学習パラメータを用いた演算を実行し、
    前記コンピュータが前記変更前の演算手順とは異なる演算手順に変更する際、前記コンピュータが、前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値が用いられる演算手順を、前記学習パラメータの値及び前記被演算値が秘匿されるように変更し、前記演算手順における演算順序をシャッフルアルゴリズムを用いて変更する情報処理方法。
  10. 機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更する演算手順変更処理と、
    前記演算実行タイミングが到来する度に、前記演算手順変更処理による変更後の演算手順にて前記学習パラメータを用いた演算を実行する演算実行処理とをコンピュータに実行させる情報処理プログラムであって、
    前記演算手順変更処理が、
    前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値が用いられる演算手順を、前記学習パラメータの値及び前記被演算値が秘匿されるように変更し、前記演算手順における演算順序をシャッフルアルゴリズムを用いて変更する情報処理プログラム。
  11. コンピュータが、機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更し、
    前記演算実行タイミングが到来する度に、前記コンピュータが、変更された変更後の演算手順にて前記学習パラメータを用いた演算を実行し、
    前記コンピュータが前記変更前の演算手順とは異なる演算手順に変更する際、前記コンピュータが、前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値をシャミアの秘密分散法に基づき変更する情報処理方法。
  12. 機械学習により値が調整される学習パラメータを用いる演算を実行する演算実行タイミングが到来する度に、不規則に、演算手順を、変更前の演算手順にて演算を実行して得られる演算結果と同一の演算結果が得られる前記変更前の演算手順とは異なる演算手順に変更する演算手順変更処理と、
    前記演算実行タイミングが到来する度に、前記演算手順変更処理による変更後の演算手順にて前記学習パラメータを用いた演算を実行する演算実行処理とをコンピュータに実行させる情報処理プログラムであって、
    前記演算手順変更処理が、
    前記学習パラメータの値及び前記学習パラメータと演算される値である被演算値をシャミアの秘密分散法に基づき変更する情報処理プログラム。
JP2020530398A 2020-01-07 2020-01-07 情報処理装置、情報処理方法及び情報処理プログラム Active JP6808100B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/000196 WO2021140574A1 (ja) 2020-01-07 2020-01-07 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP6808100B1 true JP6808100B1 (ja) 2021-01-06
JPWO2021140574A1 JPWO2021140574A1 (ja) 2021-07-15

Family

ID=73993006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020530398A Active JP6808100B1 (ja) 2020-01-07 2020-01-07 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (5)

Country Link
US (1) US20220269826A1 (ja)
JP (1) JP6808100B1 (ja)
CN (1) CN114868127A (ja)
DE (1) DE112020005424T5 (ja)
WO (1) WO2021140574A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034124A1 (ja) * 2022-08-12 2024-02-15 日本電気株式会社 端末装置、計算システム、計算方法、およびコンピュータ可読媒体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003134103A (ja) * 2001-10-30 2003-05-09 Hitachi Ltd 情報処理装置
US20140130173A1 (en) * 2012-11-05 2014-05-08 Sap Ag Expression rewriting for secure computation optimization
JP2019168911A (ja) * 2018-03-23 2019-10-03 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5188189B2 (ja) * 2008-01-18 2013-04-24 富士通株式会社 認証システム、認証装置及びコンピュータプログラム
JP5957120B1 (ja) * 2015-05-12 2016-07-27 日本電信電話株式会社 秘密分散方法、秘密分散システム、分散装置、およびプログラム
US11876786B2 (en) * 2016-12-08 2024-01-16 Comcast Cable Communications, Llc Protocol obfuscation in moving target defense
US11196541B2 (en) * 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11715287B2 (en) * 2017-11-18 2023-08-01 Neuralmagic Inc. Systems and methods for exchange of data in distributed training of machine learning algorithms
US11030997B2 (en) * 2017-11-22 2021-06-08 Baidu Usa Llc Slim embedding layers for recurrent neural language models
JP7052325B2 (ja) 2017-12-04 2022-04-12 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法
US20210089927A9 (en) * 2018-06-12 2021-03-25 Ciena Corporation Unsupervised outlier detection in time-series data
US20210110384A1 (en) * 2019-07-04 2021-04-15 Vikatron, Inc. Ad Hoc Neural Network for Proof of Wallet
CN110647918B (zh) * 2019-08-26 2020-12-25 浙江工业大学 面向深度学习模型对抗攻击的拟态防御方法
US11431488B1 (en) * 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003134103A (ja) * 2001-10-30 2003-05-09 Hitachi Ltd 情報処理装置
US20140130173A1 (en) * 2012-11-05 2014-05-08 Sap Ag Expression rewriting for secure computation optimization
JP2019168911A (ja) * 2018-03-23 2019-10-03 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中井 綱人 ほか: "深層学習に対するタイミング攻撃:処理時間差を用いたAdversarial Examplesの生成", 2019年 暗号と情報セキュリティシンポジウム(SCIS2019)予稿集 [USB], JPN6020010427, 15 January 2019 (2019-01-15), JP, pages 1 - 3, ISSN: 0004329380 *
田中 哲士 ほか: "秘密分散ベース秘密計算を用いたニューラルネットワークのコスト評価", 情報処理学会研究報告[オンライン], vol. Vol.2016-CSEC-73, No.21, JPN6020030887, 27 May 2016 (2016-05-27), JP, pages 1 - 8, ISSN: 0004329381 *

Also Published As

Publication number Publication date
US20220269826A1 (en) 2022-08-25
CN114868127A (zh) 2022-08-05
JPWO2021140574A1 (ja) 2021-07-15
DE112020005424T5 (de) 2022-09-01
WO2021140574A1 (ja) 2021-07-15

Similar Documents

Publication Publication Date Title
Khan et al. A digital DNA sequencing engine for ransomware detection using machine learning
Clements et al. Hardware trojan attacks on neural networks
Jorstad et al. Cryptographic algorithm metrics
Huffmire et al. Handbook of FPGA design security
Ahmed et al. Mitigating adversarial evasion attacks of ransomware using ensemble learning
Adamu et al. Ransomware prediction using supervised learning algorithms
Isakov et al. Survey of attacks and defenses on edge-deployed neural networks
US20110302397A1 (en) Method and Apparatus for Improved Secure Computing and Communications
Huffmire et al. Managing security in FPGA-based embedded systems
CN107277065B (zh) 基于强化学习的检测高级持续威胁的资源调度方法
Hu et al. Gate-level information flow tracking for security lattices
Tajik et al. Artificial neural networks and fault injection attacks
Kaur et al. A secure data classification model in cloud computing using machine learning approach
Alrahis et al. Embracing graph neural networks for hardware security
JP6808100B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Tauhid et al. A survey on security analysis of machine learning-oriented hardware and software intellectual property
WO2024149202A1 (zh) 模型部署的方法、装置及电子设备
Yellu et al. Security threat analyses and attack models for approximate computing systems: From hardware and micro-architecture perspectives
Do et al. A novel non-profiled side channel attack based on multi-output regression neural network
Attuluri et al. Multi-objective discrete harmony search algorithm for privacy preservation in cloud data centers
Galli et al. Explainability in AI-based behavioral malware detection systems
Anshul et al. PSO based exploration of multi-phase encryption based secured image processing filter hardware IP core datapath during high level synthesis
Farhana et al. Evaluation of Boruta algorithm in DDoS detection
Müller et al. Process mining in trusted execution environments: Towards hardware guarantees for trust-aware inter-organizational process analysis
Breier et al. A desynchronization-based countermeasure against side-channel analysis of neural networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200602

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200602

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200914

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: 20201110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201208

R150 Certificate of patent or registration of utility model

Ref document number: 6808100

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250