JP2019113777A - 処理装置、処理方法、処理プログラム、及び暗号処理システム - Google Patents

処理装置、処理方法、処理プログラム、及び暗号処理システム Download PDF

Info

Publication number
JP2019113777A
JP2019113777A JP2017248682A JP2017248682A JP2019113777A JP 2019113777 A JP2019113777 A JP 2019113777A JP 2017248682 A JP2017248682 A JP 2017248682A JP 2017248682 A JP2017248682 A JP 2017248682A JP 2019113777 A JP2019113777 A JP 2019113777A
Authority
JP
Japan
Prior art keywords
processing
result
inference
multiplier
data
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.)
Granted
Application number
JP2017248682A
Other languages
English (en)
Other versions
JP6730741B2 (ja
Inventor
優佑 星月
Yusuke Hoshizuki
優佑 星月
将志 道上
Masashi Michigami
将志 道上
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.)
Axell Corp
Original Assignee
Axell 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 Axell Corp filed Critical Axell Corp
Priority to JP2017248682A priority Critical patent/JP6730741B2/ja
Priority to US16/227,212 priority patent/US11374735B2/en
Publication of JP2019113777A publication Critical patent/JP2019113777A/ja
Application granted granted Critical
Publication of JP6730741B2 publication Critical patent/JP6730741B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】準同型暗号の暗号化データを用いてより広範な処理を実行する処理装置、処理方法、処理プログラム及び暗号処理システムを提供する。【解決手段】準同型暗号による暗号化データを入力として、秘匿状態を維持した状態で所定の処理を実行する処理装置は、暗号化データに所定の処理を実行する推論部21を備える。推論部21は、1以上の処理部23を有し、処理部23は、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部23−1である。乗算対応処理部23−1は、所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、入力される第1暗号化データに対して平文データの乗数のうちの第1乗数成分以外の第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、第1演算結果と第2演算結果とを対応付けて出力する。【選択図】図3

Description

本発明は、準同型暗号を用いて情報を処理する技術に関する。
従来、機械学習のアーキテクチャの1つであるニューラルネットワークモデルを用いることにより、画像、文字、及び音声などの認識処理(推論処理)が行われている。
ニューラルネットワークモデルにおける学習済みの係数データは、規模が大きく、クライアント装置のみで処理を行うには負荷が大きかったり、処理の実行が困難であったりという問題がある。これに対して、サーバ・クライアントモデルを用いることにより、大規模な演算が可能なクラウド資源をニューラルネットワークモデルによる推論処理等に利用したいという要求が存在している。
サーバ・クライアントモデルを用いると、データをクライアントからサーバに送信することになるため、個人情報等の機密性の高い情報が流出してしまう虞がある。
上述の問題に対処するため、サーバに対して暗号化したデータ(暗号化データ)を送信し、暗号化データのまま演算を行うことができる準同型暗号を用いてサーバ側で暗号化データを処理することが考えられる。
しかし、ニューラルネットワークモデルで使用されるシグモイド関数や、ReLU関数(Rectified Linear Unit Rectifier:正規化線形関数)等の一般的な活性化関数は、既に知られている準同型暗号で行える演算の範疇を超えるため、準同型暗号による暗号化データに対する演算が不可能である。
例えば、特許文献1には、活性化関数として近似多項式を用いるニューラルネットワークに関する技術が開示されている。
また、非特許文献1には、ニューラルネットワークモデルにおける活性化関数の演算時に都度クライアントに問合せることにより、準同型暗号を用いた処理を実現する技術が開示されている。
米国特許出願公開第2016/0350648号明細書
C.Orlandi, A.Piva, and M.Barni Research Article Oblivious Neural Network Computing via Homomorphic Encryption, インターネット<http://clem.dii.unisi.it/~vipp/files/publications/S1687416107373439.pdf>
ニューラルネットワークモデルにおいて、暗号化データのままで処理するようにすることは、不可能であったり、処理負荷が多大となり困難であったりする。例えば、非特許文献1の技術では、活性化関数の演算の都度、クライアントとのデータのやり取りが発生するとともに、クライアント側での処理が発生するために、通信量が多くなるとともに、処理時間が長期化してしまう。
また、より多くの演算に対応することのできる準同型暗号である完全準同型暗号や、SomeWhat準同型暗号等を用いることも考えられるが、このような暗号による暗号化データは、データ量が多くなるので、処理負荷が多大となるという問題がある。
処理負荷を抑える点を考慮すると、加法準同型暗号を用いて処理をすることが好ましいが、加法準同型暗号を用いる場合には、利用できる演算が限定されており、実行できる処理が限られてしまう。例えば、加法準同型暗号を用いると、整数以外の乗算(例えば、1未満の数の乗算(除算に相当)も含む)を行う処理が実行できない。
また、加法準同型暗号を用いて処理を行う場合には、ニューラルネットワークモデルを使用した処理に限らず、ニューラルネットワークモデルを使用しない処理においても、同様に、実行できる処理が限られてしまうという問題が生じる。
本発明は、上記事情に鑑みなされたものであり、その目的は、準同型暗号による暗号化データを用いてより広範な処理を実行することのできる技術を提供することにある。
上記目的を達成するため、第1の観点に係る処理装置は、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、暗号化データを受け付ける入力部と、暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、処理実行部は、1以上の処理部を有し、処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、乗算対応処理部は、乗算対応処理部は、所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、所定の乗数のうちの第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して平文データの第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、第1演算結果と第2演算結果とを対応付けて出力する。
上記処理装置において、乗算対応処理部は、前段から第1演算結果が入力されている場合には、入力された第1演算結果に対して第1乗数成分を積算して出力する第1演算結果を生成してもよい。
また、上記処理装置において、乗算対応処理部は、複数の第1暗号化データのそれぞれに対して、所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、乗算対応処理部は、前段から入力される複数の第1暗号化データに対応する複数の第2演算結果に対して、1つの第1演算結果を対応付けて出力するようにしてもよい。
また、上記処理装置において、第1乗数成分は、所定の乗数のうち、除数として扱われる成分であってもよい。
また、上記処理装置において、処理部の少なくとも1つは、複数の第1暗号化データに対して、平文データの加算に対応する演算を実行する際に、一の第1暗号化データに対応付けられている第1演算結果と、他の第1暗号化データに対応付けられている第1演算結果とを同一の値とするために少なくとも一の第2暗号化データを調整すべき平文データの演算における乗数を特定し、特定した乗数による平文データに対する乗算に対応する演算を、対応する第2演算結果に実行し、演算後の複数の第2演算結果に対して、平文データの加算に対応する演算を実行し、この演算の結果を出力するとともに、前記同一の値を前記第1演算結果として出力してもよい。
上記目的を達成するため、第2の観点に係る処理方法は、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行する際に、所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、所定の乗数のうちの第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して平文データの第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、第1演算結果と第2演算結果とを対応付けて出力する
上記目的を達成するため、第3の観点に係る処理プログラムは、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、コンピュータに、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行させる際に、所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成させるとともに、前記所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して前記平文データの前記第2乗数成分の乗算に対応する暗号文空間上の演算を実行させて第2演算結果を生成させ、前記第1演算結果と前記第2演算結果とを対応付けて出力させる。
上記目的を達成するため、第4の観点に係る暗号処理システムは、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、処理装置による処理結果を入力して、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、1以上の処理部を有し、処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、乗算対応処理部は、乗算対応処理部は、所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して平文データの第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、第1演算結果と第2演算結果とを対応付けて出力し、結果生成装置は、処理装置から第1処理結果と、第2処理結果とを受信する処理結果受信部と、第2処理結果を復号する復号部と、復号部で復号された平文データに対して、第1処理結果を反映させる反映処理を実行する反映処理部とを備える。
本発明によれば、準同型暗号による暗号化データを用いてより広範な処理を実行することができるようになる。
図1は、一実施形態に係る処理システムの全体構成図である。 図2は、一実施形態に係る学習装置の機能構成図である。 図3は、一実施形態に係る推論装置の機能構成図である。 図4は、一実施形態に係るクライアント装置の機能構成図である 図5は、一実施形態に係る処理システムの一例の機能構成図である。 図6は、一実施形態に係る処理システムの動作を示すシーケンス図である。 図7は、一実施形態に係るコンピュータ装置の構成図である。 図8は、第1変形例に係る処理システムの機能構成図である。 図9は、第2変形例に係る処理システムの機能構成図である。 図10は、第3変形例に係る処理システムの機能構成図である。 図11は、第4変形例に係る処理システムの学習装置の機能構成図である。 図12は、第4変形例に係る処理システムの推論装置及びクライアント装置の機能構成図である。 図13は、第5変形例に係る処理システムの推論装置及びクライアント装置の機能構成図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
まず、一実施形態に係る処理システムについて説明する。
図1は、一実施形態に係る処理システムの全体構成図である。
処理システム1は、暗号処理システムの一例であり、学習装置10と、処理装置の一例としての推論装置20と、結果生成装置の一例としてのクライアント装置30とを備える。学習装置10と推論装置20とは、ネットワーク40を介して接続されている。また、推論装置20とクライアント装置30とは、ネットワーク50を介して接続されている。ネットワーク40,50は、例えば、LAN(Local Area Netowork)や、WAN(Wide Area Network)等である。なお、図1では、ネットワーク40と、ネットワーク50とを別のネットワークとしているが、それらを同一のネットワークとしてもよい。
学習装置10は、ニューラルネットワークモデルの学習を行う。推論装置20は、学習装置10によるニューラルネットワークモデルの学習結果(ニューラルネットワークモデルの係数(重みやバイアス)等の設定値)に基づいてニューラルネットワークモデルを設定し、推論処理を行う。クライアント装置30は、例えば、ユーザにより利用される装置であり、推論装置20に対して推論処理の対象となるデータ(対象データ)を暗号化して送信し、推論装置20による推論処理の結果(推論結果)を受け取る。
図2は、一実施形態に係る学習装置の機能構成図である。
学習装置10は、学習部11と、記憶部15と、設定値通知部18とを備える。
学習部11は、ニューラルネットワークモデル12と、学習制御部14とを備える。
ニューラルネットワークモデル12は、例えば、所定の推論処理を実行して推論結果を出力するためのニューラルネットワークモデルである。ニューラルネットワークモデル12は、1以上の処理レイヤー(レイヤー)により構成されている。なお、本実施形態では、ニューラルネットワークモデル12は、設定値の学習のために使用される。図2の例では、ニューラルネットワークモデル12は、レイヤー1〜レイヤーN(Nは、1以上の整数)により構成されている。各レイヤーにおける処理(部分処理)は、各処理部13によって実行される。ニューラルネットワークモデル12は、例えば、処理対象とする画像データが何を表しているか(例えば、人、犬、猫等の何が含まれているか)を推論する推論処理を実行して推論結果を出力するモデルであってもよい。ニューラルネットワークモデル12におけるレイヤー数や、各レイヤーで実行する部分処理の種類及び内容は、任意に設定することができる。
ニューラルネットワークモデル12のレイヤーを構成する処理部13としては、例えば、入力された画像データに対して、複数のフィルタデータ(設定値の一例)のそれぞれを用いて畳込処理を行う畳込処理部や、入力されたデータを活性化関数により変換する処理を実行する活性化関数部や、入力データについてダウンサンプリングする処理を実行するプーリング処理部や、入力データについてのアフィン変換処理を実行するアフィン処理部や、入力データについてソフトマックス関数による処理を実行するSoftMax処理部等がある。
学習制御部14は、記憶部15に格納されている学習用データ16を受け付けて、ニューラルネットワークモデル12に入力し、ニューラルネットワークモデル12から出力される推論結果に基づいて、ニューラルネットワークモデル12における設定値を学習する。学習制御部14は、学習用データ16による学習を終えた場合には、学習によって得られた設定値に関する情報を記憶部15に格納する。
記憶部15は、学習部11のニューラルネットワークモデル12の学習に使用する学習用データ16と、ニューラルネットワークモデル12の係数等の設定値に関する情報である設定値情報17とを記憶する。なお、学習用データ16を、学習用データ16に対応する推論結果データと対応付けた教師データとして記憶部15に格納するようにしてもよい。学習用データ16は、例えば、暗号化されていないデータ(平文データ)であってもよい。設定値情報17に含まれる設定値としては、例えば、畳込処理部で使用されるフィルタの係数や、アフィン処理部で用いられる重み等があり、これらは、例えば処理部13の乗算において乗数として用いられる。
設定値通知部18は、記憶部15に格納されている設定値情報17を、推論装置20に送信する。
次に、推論装置20について詳細に説明する。
図3は、一実施形態に係る推論装置の機能構成図である。
推論装置20は、処理実行部の一例としての推論部21と、記憶部25と、入力部の一例としての受信部28と、推論結果送信部29とを備える。
推論部21は、ニューラルネットワークモデル22と、推論制御部24とを備える。
ニューラルネットワークモデル22は、例えば、加法準同型暗号(例えば、Paillier暗号やlifted−ElGamal暗号)による暗号化が行われた暗号化データを入力として、所定の推論処理を実行して推論結果を出力するためのニューラルネットワークモデルである。ニューラルネットワークモデル22は、1以上の処理レイヤー(レイヤー)により構成されている。なお、本実施形態では、ニューラルネットワークモデル22は、学習装置10のニューラルネットワークモデル12に対応する処理を暗号化データに対して実行する構成であり、例えば、ニューラルネットワーク12のそれぞれの処理部13に、ニューラルネットワーク22のそれぞれの処理部23が対応する。図3の例では、ニューラルネットワークモデル22は、レイヤー1〜レイヤーNにより構成されている。各レイヤーにおける処理(部分処理)は、各処理部23によって実行される。ニューラルネットワークモデル22は、例えば、処理対象とする画像データが何を表しているか(例えば、人、犬、猫等の何が含まれているか)を推論する推論処理を実行して推論結果を出力するモデルであってもよい。ニューラルネットワークモデル22におけるレイヤー数や、各レイヤーで実行する部分処理の種類及び内容は、任意に設定することができる。
ニューラルネットワークモデル22のレイヤーを構成する処理部23としては、入力された画像データに対して、複数のフィルタデータ(設定値の一例)のそれぞれを用いて畳込処理を行う畳込処理部や、入力されたデータを活性化関数により変換する処理を実行する活性化関数部や、入力データについてダウンサンプリングする処理を実行するプーリング処理部や、入力データについてのアフィン変換処理を実行するアフィン処理部や、入力データについてソフトマックス関数による処理を実行するSoftMax処理部等がある。
推論制御部24は、記憶部25に格納されている設定値情報27に基づいて、ニューラルネットワークモデル22の設定を行う、すなわち、処理レイヤーの処理部23における係数等を設定する。本実施形態では、例えば、処理部23に対する乗数の設定値を、分子及び分母を整数とする仮分数の形式とした場合の分母を、暗号化データに対する演算で使用する対象(演算実行対象)としない成分(第1乗数成分)とし、分子(整数)を、演算実行対象とする成分(第2乗数成分)としている。そこで、本実施形態では、例えば、推論制御部24は、乗数の設定値を仮分数の形式とした場合の分母を、前段からの平文データである非反映値(前段からの入力がない場合には、非反映値の初期値(例えば、1))に対して乗算して非反映値(第1演算結果)を算出するように処理部23を設定する。また、推論制御部24は、処理部23における暗号文空間上での演算が、平文空間上における仮分数の分子の乗算に対応するように、処理部23に仮分数の分子に対応する値を用いた処理を設定する。このように設定された処理部23(乗算対応処理部)は、分母を前段からの非反映値に対して乗算して非反映値(第1演算結果)を算出する。また、処理部23は、入力された暗号化データに対して、平文データに対する分子(整数)を乗数とする乗算の演算に対応する、暗号文空間上の演算を実行して第2演算結果を算出する。処理部23は、非反映値(第1演算結果)と、第2演算結果とを対応付けて、後段に出力する。
ここで、本実施形態で使用した準同型暗号について説明する。なお、ここでは、加法準同型暗号であるPaillier暗号を例に挙げて説明する。
暗号に係る処理を行う場合には、以下のような各種設定を決定しておく。すなわち、暗号において使用する安全な素数p及びqを用意する。なお、素数の決定における手順や注意点は、RSA暗号と同じでよい。また、N=p×qとする。また、kを0≦k≦N−1の範囲で任意に設定する。g=1+kNとする。ここで、p、qは、秘密鍵、g、Nは、公開鍵、兼システムパラメータである。
例えば、平文データをA、B(0≦A≦N−1、0≦B≦N−1)とすると、それぞれを暗号化した暗号化データe、eは、以下の式(1)、(2)に示すように表される。
=g×r mod N ・・・(1)
=g×r mod N ・・・(2)
ここで、r1(0≦r1≦N−1)、及びr2(0≦r2≦N−1)は、乱数である。
Paillier暗号の暗号化データは、平文データ同士の和演算に対応する演算を、暗号化データの乗算として実行可能である。
暗号化データの乗算、すなわち、e×eは、式(3)に示すようになる。
×e=g×g×r ×r mod N
=gA+B×r ×r mod N
=eA+B ・・・・(3)
式(3)に示すeA+Bは、復号すると、A+Bとなる。したがって、暗号化データの乗算は、平文データの和演算に対応していることがわかる。
また、Paillier暗号の暗号化データは、平文データと、平文データの整数との乗算に対応する演算を実行可能である。
平文データAと整数Cとの乗算であるA×Cは、AをC回加算するという和演算に対応する。したがって、この和演算のそれぞれについて、暗号化データの乗算を行うことにより、暗号化データに対して平文データAと整数Cとの乗算に対応する演算を実行することができる。
具体的には、e×e×・・・、すなわち暗号化データの累乗(整数C乗)を行えばよいこととなり、式(4)に示すようになる。
×e×・・・=eA+A+・・・=eAC ・・・(4)
式(4)に示すeACは、復号すると、ACとなり、平文データAと整数Cとの乗算の結果となる。したがって、Paillier暗号の同じ暗号化データを累乗する演算が、平文データと、平文データの整数との乗算に対応する演算であることがわかる。
また、推論制御部24は、処理対象のデータである対象データ26をニューラルネットワークモデル22に入力し、ニューラルネットワークモデル22による推論処理を実行させる。本実施形態では、対象データ26は、準同型暗号で暗号化された暗号化データである。
記憶部25は、推論部21のニューラルネットワークモデル22で推論処理を実行させる対象の対象データ26と、ニューラルネットワークモデル22の係数等の設定値に関する情報である設定値情報27とを記憶する。設定値情報27に含まれる設定値としては、例えば、処理部23で乗数として使用されるフィルタの係数や、重み等がある。
受信部28は、学習装置10から送信される設定値情報を受信して記憶部25に格納する。また、受信部28は、クライアント装置30から送信される暗号化された対象データ26を受信して記憶部25に格納する。
推論結果送信部29は、推論部21のニューラルネットワークモデル22による推論処理の結果、すなわち、最後段の処理部23から出力される第1推論結果及び第2推論結果(推論結果(途中))をクライアント装置30に送信する。
次に、クライアント装置30について詳細に説明する。
図4は、一実施形態に係るクライアント装置の機能構成図である。
クライアント装置30は、結果表示部31と、送信部32と、記憶部33と、処理結果受信部の一例としての受信部36と、暗号部37と、復号部38と、反映処理部39と備える。
記憶部33は、推論処理を実行させる平文データである対象データ34と、推論処理の推論結果35とを記憶する。なお、推論結果35は、推論装置20から推論結果が送信されて所定の処理が行われた場合に格納されるものであり、推論装置20による推論処理が行われていない対象データ34に対する推論結果については、存在しない。
暗号部37は、記憶部33に格納されている暗号化されていない対象データ34を、準同型暗号(例えば、Paillier暗号)による暗号化を行って暗号化データとし、暗号化データを送信部32に渡す。
送信部32は、暗号部37から渡された暗号化データを、推論処理の対象データとして推論装置20に送信する。受信部36は、推論装置20から推論結果(途中)を受信して復号部38に渡す。
復号部38は、受信部36から渡された推論結果(途中)を受け取り、推論結果(途中)に含まれる第2推論結果に対して暗号部37の暗号方式に対応する復号化を行い、復号された第2推論結果と、第1推論結果とを反映処理部39に渡す。
反映処理部39は、復号された第2推論結果に対して、第1推論結果を反映させる反映処理を実行することにより、最終的な推論結果(推論結果(最終))を生成し、生成した推論結果(最終)を記憶部33に格納する。本実施形態では、反映処理部39は、復号された第2推論結果を、第1推論結果で除算することにより、推論結果(最終)を静止する。
結果表示部31は、記憶部33に格納された推論結果35(推論結果(最終))に基づいて各種情報を表示出力する。結果表示部31は、推論結果35をそのまま表示してもよく、推論結果35に基づいて所定の処理を実行し、その実行結果を表示するようにしてもよい。
次に、処理システム1のより具体的な例を説明する。
図5は、一実施形態に係る処理システムの一例の機能構成図である。
学習装置10は、処理レイヤー1を構成する処理部13−1と、処理レイヤー2を構成する処理部13−2とを有する。
処理部13−1は、入力されるデータに対して、1/2倍する乗算処理を行う。なお、1/2は、学習装置10による学習によって処理部13−1での演算に用いる設定値として得られたものである。例えば、平文データAが処理部13−1に入力されると、処理部13−1では、A×(1/2)が演算されて、1/2・Aが出力される。なお、学習された処理部13−1用の設定値(本例では、1/2)は、設定値通知部18により推論装置20に送信される。
処理部13−2は、入力されるデータに対して、3/4倍する乗算処理を行って出力する。なお、3/4は、学習装置10による学習によって処理部13−2での演算に用いる設定値として得られたものである。例えば、処理部13−1から出力された平文データである1/2・Aが処理部13−2に入力されると、処理部13−2では、1/2・A×3/4が演算されて、3/8・Aが出力される。なお、学習された処理部13−2用の設定値(本例では、3/4)は、設定値通知部18により推論装置20に送信される。
推論装置20は、処理レイヤー1を構成する処理部23−1と、処理レイヤー2を構成する処理部23−2と、推論制御部24とを有する。
推論制御部24は、学習装置10から送信された各設定値について、乗数の設定値を仮分数の形式とした場合の分母を、前段からの平文データである非反映値(前段からの入力がない場合には、非反映値の初期値(例えば、1))に対して乗算して非反映値を算出するように処理部23−1,23−2を設定する。また、推論制御部24は、処理部23における暗号文空間上での演算が、平文空間上における仮分数の分子の乗算に対応するように、処理部23−1,23−2に仮分数の分子に対応する値を用いた処理を設定する。
本例では、処理部23−1用の設定値は、1/2であり、処理部13−2用の設定値は、3/4となっている。本例においては、推論調整部24は、処理部23−1に対して、非反映値に対する乗数(第1乗数成分)を2に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定する。また、推論調整部24は、処理部23−2に対して、非反映値に対する乗数を4に設定し、暗号化データの演算に使用する乗数を3に設定する。
処理部23−1は、暗号化データの演算に使用する、平文データに対する乗数(同図では、1)を乗算する処理に対応する暗号文空間上の演算(対応演算)を、入力される暗号化データに対して行う。例えば、Paillier暗号を用いている場合には、処理部23−1は、対応演算として、入力された暗号化データを、平文データに対する乗数だけ累乗する演算を行うことにより第2推論結果を算出する。また、処理部23−1は、非反映値の初期値(例えば、1)に対して乗数(第1乗数成分)を乗算することにより第1推論結果を算出する。また、処理部23−1は、第1推論結果と、第2推論結果とを後段に出力する。本例では、処理部23−1は、入力された暗号化データe(eは、平文データAを暗号化した値を示す)を、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23−1は、非反映値の初期値(例えば、1)に対して乗数(本例では、2)を乗算することにより、第1推論結果として2を算出する。そして、処理部23−1は、第1推論結果及び第2推論結果(e,2)を出力する。eは、復号すると、平文データAとなり、これを、第2推論結果である2で除算することにより、処理部13−1の出力結果である1/2・Aと同じ結果となる。
処理部23−2は、暗号化データの演算に使用する、平文データに対する乗数(同図では、3)を乗算する処理に対応する暗号文空間上の演算(対応演算)を、入力される暗号化データに対して行う。例えば、Paillier暗号を用いている場合には、処理部23−2は、対応演算として、入力された暗号化データを、平文データに対する乗数だけ累乗する演算を行うことにより第2推論結果を算出する。また、処理部23−1は、前段から入力される非反映値(第2推論結果)に対して乗数(第1乗数成分)を乗算することにより第1推論結果を算出する。また、処理部23−2は、第1推論結果と、第2推論結果とを後段に出力する。本例では、処理部23−2は、入力された暗号化データeを、設定された乗数だけ累乗(本例では、3乗)することにより、e3Aを算出する。また、処理部23−2は、入力された非反映値(本例では、2)に対して乗数(本例では、4)を乗算することにより、第1推論結果として8を算出する。そして、処理部23−2は、第1推論結果及び第2推論結果(e3A,8)を出力する。e3Aは、復号すると、平文データ3Aとなり、これを、第2推論結果である8で除算することにより、処理部13−2の出力結果である3/8・Aと同じ結果となる。処理部23−2の処理結果(推論結果(途中))は、推論結果送信部29によりクライアント装置30に送信される。
クライアント装置30では、復号部38は、推論装置20から送信される推論結果(途中)を取得し、推論結果(途中)に含まれる第2推論結果に対して、暗号化データの暗号方式に対応する復号を行って、平文データの第2推論結果を得て、第1推論結果とともに反映処理部39に渡す。例えば、本例では、復号部38は、e3Aを復号して、3Aを得て、(3A,8)を反映処理部39に渡す。
反映処理部39は、復号部38から受け取った平文データの第2推論結果(本例では、3A)を、第1推論結果(本例では、8)で除算することにより、第1推論結果を反映させた推論結果(本例では、3/8・A)を生成する。これにより、クライアント装置30では、平文データに対して学習装置10の処理部13−1、13−2の処理を実行した実行結果と同じ値を得ることができる。
以上説明したように、処理システム1では、推論装置20においては、暗号化データを用いて秘匿状態を維持したまま処理を行うことができ、クライアント装置30において、平文データに対する処理結果と同じ結果を得ることができる。
次に、一実施形態に係る処理システム1における処理動作について説明する。
図6は、一実施形態に係る処理システムの動作を示すシーケンス図である。
学習装置10の学習制御部14が記憶部15に格納されている学習用データ16を用いて、学習部11のニューラルネットワークモデル12により推論処理を実行させることで、ニューラルネットワークモデル12の処理部13における各種設定値の学習を行う(S101)。次いで、学習制御部14は、学習によって得られた設定値に関する設定値情報を記憶部15に格納する(S102)。
次いで、設定値通知部18は、記憶部15に格納された設定値情報17を読み出して、推論装置20に送信する(S103)。
推論装置20の受信部28は、学習装置10から送信された設定値情報17を受信して、記憶部25に格納する(S104)。一方、クライアント装置30の暗号部37は、記憶部33から対象データ34を取得し、対象データ34を所定の暗号により暗号化し(S105)、送信部32は、暗号化した対象データを推論装置20に送信する(S106)。
推論装置20の受信部28は、クライアント装置30から推論対象の対象データを受信し、記憶部25に格納する(S107)。なお、設定値情報17を受信する時点と、対象データを受信する時点とは、いずれが先であってもよく、要は、推論処理を実行するまでに両方がそろっていればよい。
推論処理20の推論制御部24は、記憶部25から設定値情報27を取得し、設定値情報27に基づいて、各処理部23を設定する(S108)。次いで、推論制御部24は、記憶部25から暗号化データである対象データ26を読み出して、ニューラルネットワークモデル22の最初の処理レイヤー(レイヤー1)の処理部23に入力する。この結果、ニューラルネットワークモデル22において、対象データ26を対象とした推論処理が実行されて、最終の処理レイヤー(レイヤーN)の処理部23から推論結果(途中)が推論結果送信部29に出力されることとなる(S109)。
次いで、推論装置20の推論結果送信部29は、ニューラルネットワークモデル22から渡された推論結果(途中)を対象データの推論処理を要求したクライアント装置30に対して送信する(S110)。
クライアント装置30の受信部36は、推論装置20から推論結果(途中)を受信して復号部38に渡し、復号部38が推論結果(途中)に含まれている第2推論結果を復号化し、第1推論結果とともに反映処理部39に渡す(S111)。反映処理部39は、復号された第2推論結果に対して、第1推論結果を反映する処理を実行することにより、最終的な推論結果(推論結果(最終))を生成し(S112)、生成した推論結果(最終)35を記憶部33に格納する(S113)。その後、結果表示部31が、記憶部33に格納された推論結果35に基づいて、推論結果を表示出力する(S114)。
以上説明したように、本実施形態に係る処理システムによると、平文データに対する乗算処理を行う場合において、推論装置20側では、乗算処理を平文データに対する乗算処理として、又は、平文データに対する乗算処理及び暗号化データに対する演算処理として実行する。このため、平文に対する整数以外の乗算処理を含む処理であっても、推論装置20側では、暗号化データによる秘匿状態を維持したままで処理をすることができる。これにより、推論装置20から情報が漏えいしてしまうことを適切に防止することができる。
上記した学習装置10、推論装置20、クライアント装置30は、それぞれコンピュータ装置により構成することができる。
図7は、コンピュータ装置の一実施例を示すブロック図である。なお、本実施形態では、学習装置10、推論装置20、及びクライアント装置30は、別々のコンピュータ装置で構成されているが、これらコンピュータ装置は、同様な構成を有するものとすることができる。以下の説明では、便宜的に図7に示すコンピュータ装置を用いて、学習装置10、推論装置20、及びクライアント装置30のそれぞれを構成するコンピュータ装置について説明することとする。
コンピュータ装置100は、例えば、CPU(Central Processin Unit)101と、メインメモリ102と、GPU(Graphics Processing Unit)103と、リーダライタ104と、通信インターフェース(通信I/F)105と、補助記憶装置106と、入出力インターフェース(入出力I/F)107と、表示装置108と、入力装置109とを備える。CPU101、メインメモリ102、GPU103、リーダライタ104、通信I/F105、補助記憶装置106、入出力I/F107、及び表示装置108は、バス110を介して接続されている。学習装置10と、推論装置20と、クライアント装置30とは、それぞれコンピュータ装置100に記載の構成要素の一部または全てを適宜選択して構成される。
ここで、メインメモリ102又は補助記憶装置106の少なくとも一方が、学習装置10の記憶部15、推論装置20の記憶部25、及びクライアント装置30の記憶部33として機能する。
学習装置10を構成するコンピュータ装置100のCPU101は、学習装置10の全体を統括制御する。CPU101は、補助記憶装置106に格納されているプログラムをメインメモリ102に読み出して実行することにより各種処理を実行する。学習装置10において、CPU101は、補助記憶装置106に格納された処理プログラムを実行することにより、例えば、学習部11のニューラルネットワークモデル12を構成する。また、推論装置20を構成するコンピュータ装置100において、CPU101は、補助記憶装置106に格納された処理プログラムを実行することにより、例えば、推論部21のニューラルネットワークモデル22を構成する。また、クライアント装置30を構成するコンピュータ装置100において、CPU101は、補助記憶装置106に格納された処理プログラムを実行することにより、例えば、結果表示部31、暗号部37、復号部38、及び反映処理部39を構成する。なお、推論装置20を構成するコンピュータ装置100のCPU101は、クライアント装置30を構成するコンピュータ装置100のCPU101よりも処理性能が良いものとしてもよい。
メインメモリ102は、例えば、RAM、ROM等であり、CPU101に実行されるプログラム(処理プログラム等)や、各種情報を記憶する。補助記憶装置106は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の非一時的記憶デバイス(不揮発性記憶デバイス)であり、CPU101で実行されるプログラムや、各種情報を記憶する。学習装置10を構成するコンピュータ装置100では、メインメモリ102は、例えば、学習データ16や設定値情報17を記憶する。推論装置20を構成するコンピュータ装置100では、メインメモリ102は、例えば、対象データ26や設定値情報27を記憶する。クライアント装置30を構成するコンピュータ装置100では、メインメモリ102は、例えば、対象データ34や推論結果35を記憶する。
GPU103は、例えば、画像処理等の特定の処理の実行に適しているプロセッサであり、例えば、並列的に行われる処理の実行に適している。本実施形態では、GPU103は、CPU101の指示に従って所定の処理を実行する。学習装置10を構成するコンピュータ装置100において、GPU103は、少なくとも1つの処理部13を構成してもよい。また、推論装置20を構成するコンピュータ装置100において、GPU103は、少なくとも1つの処理部23を構成してもよい。
リーダライタ104は、記録媒体111を着脱可能であり、記録媒体111からのデータの読み出し、及び記録媒体111へのデータの書き込みを行う。記録媒体111としては、例えば、SDメモリーカード、FD(フロッピーディスク:登録商標)、CD、DVD、BD(登録商標)、フラッシュメモリ等の非一時的記録媒体(不揮発性記録媒体)がある。本実施形態においては、記録媒体111に、処理プログラムを格納しておき、リードライタ104により、これを読み出して、利用するようにしてもよい。また、学習装置10を構成するコンピュータ装置100において、記録媒体111に、学習用データを格納しておき、リードライタ104により、これを読み出して利用するようにしてもよい。また、クライアント装置30を構成するコンピュータ装置100において、記録媒体111に、対象データを格納しておき、リードライタ104により、これを読み出して記憶部33に格納するようにしてもよい。
通信I/F105は、ネットワーク40、50に接続されており、ネットワーク40、50に接続された他の装置との間でのデータの送受信を行う。学習装置10は、例えば、通信I/F105を介してネットワーク40に接続された推論装置20に設定値情報を送信する。学習装置10の設定値通知部18、推論装置20の受信部28及び推論結果送信部29、並びにクライアント装置30の送信部32及び受信部36は、それぞれを構成するコンピュータ装置100の通信I/F105及びCPU101によって構成される。
入出力I/F107は、例えば、マウス、キーボード等の入力装置109と接続されている。学習装置10を構成するコンピュータ装置100において、入出力I/F107は、入力装置109を用いた、学習装置10の管理者による操作入力を受け付ける。また、推論装置20を構成するコンピュータ装置100において、入出力I/F107は、入力装置109を用いた、推論装置20の管理者による操作入力を受け付ける。さらに、クライアント装置30を構成するコンピュータ装置100において、入出力I/F107は、入力装置109を用いた、クライアント装置30のユーザによる操作入力を受け付ける。
表示装置108は、例えば、液晶ディスプレイ等のディスプレイ装置であり、各種情報を表示出力する。
次に、第1変形例に係る処理システムについて説明する。
図8は、第1変形例に係る処理システムの機能構成図である。
第1変形例に係る処理システム1Aは、上記した図5に示す処理システム1において、推論装置20に代えて、推論装置20Aを備え、クライアント装置30に代えて、クライアント装置30Aを備えるようにしたものである。なお、上記実施形態と同様な部分については、同一番号を付し、重複する説明を省略する。
推論装置20Aは、推論制御部24に代えて推論制御部24Aを備える。推論制御部24Aは、乗数の設定値の全体を暗号化データに対する演算で使用する対象(演算実行対象)としない成分(第1乗数成分)としている。この結果、第2乗算成分は、存在しない。そこで、本実施形態では、推論制御部24Aは、乗数を、前段からの平文データである非反映値(入力がない場合には、非反映値の初期値(例えば、1))に対して乗算して非反映値(第1演算結果)を算出するように処理部23A−1,23A−2を設定する。また、推論制御部24Aは、処理部23における暗号文空間上での演算が、乗算を行わないことを示す値1を平文データに乗算する演算に対応するように、処理部23A−1,23A−2に1に対応する値を用いた処理を設定する。このように設定された処理部23A−1,23A−2は、乗数を前段からの非反映値に対して乗算して非反映値(第1演算結果)を算出する。また、処理部23は、入力された暗号化データをそのまま第2演算結果とする。処理部23は、非反映値(第1演算結果)と、第2演算結果とを対応付けて、後段に出力する。
本例では、処理部23A−1用の設定値は、1/2であり、処理部23A−2用の設定値は、3/4となっている。本例においては、推論調整部24Aは、処理部23A−1に対して、非反映値に対する乗数(第1乗数成分)を1/2に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定する。また、推論調整部24は、処理部23−2に対して、非反映値に対する乗数を3/4に設定し、暗号化データの演算に使用する乗数を1に設定する。
本例では、処理部23A−1は、入力された暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23−1は、非反映値の初期値(例えば、1)に対して乗数(本例では、1/2)を乗算することにより、第1推論結果として1/2を算出する。そして、処理部23−1は、第1推論結果及び第2推論結果(e,1/2)を出力する。eは、復号すると、平文データAとなり、これを、第1推論結果である1/2を乗算することにより、処理部13−1の出力結果である1/2・Aと同じ結果となる。
本例では、処理部23A−2は、入力された第2演算結果である暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23A−2は、入力された非反映値(本例では、1/2)に対して乗数(本例では、3/4)を乗算することにより、第1推論結果として3/8を算出する。そして、処理部23A−2は、第1推論結果及び第2推論結果(e,3/8)を出力する。eは、復号すると、平文データAとなり、これを、第1推論結果である3/8を乗算することにより、処理部13−2の出力結果である3/8・Aと同じ結果となる。処理部23A−2の処理結果(推論結果(途中))は、推論結果送信部29によりクライアント装置30に送信される。
クライアント装置30Aの反映処理部39は、復号部38から受け取った平文データの第2推論結果(本例では、A)に、第1推論結果(本例では、3/8)を乗算することにより、第1推論結果を反映させた推論結果(本例では、3/8・A)を生成する。これにより、クライアント装置30では、平文データに対して学習装置10の処理部13−1、13−2の処理を実行した実行結果と同じ値を得ることができる。
この処理システム1Aによると、推論装置20A側では、乗算において、平文データの乗算に対応する暗号化データの累乗(2乗以上)を行わずに済むので、暗号化データに対する演算の処理負荷が軽減される。
次に、第2変形例に係る処理システムについて説明する。
図9は、第2変形例に係る処理システムの機能構成図である。
第2変形例に係る処理システム1Bは、上記した図5に示す処理システム1において、学習装置10に代えて、学習装置10Bを備え、推論装置20に代えて、推論装置20Bを備え、クライアント装置30に代えて、クライアント装置30Bを備えるようにしたものである。
学習装置10Bは、処理部13B−1と、処理部13B−2とを備える。本例では、処理部13B−1の設定値は、1/4であり、処理部13−2の設定値は、3となっている。
推論装置20Bは、推論装置20において、推論制御部24に代えて推論制御部24Bを備える。推論制御部24Bは、乗数の設定値の全体を暗号化データに対する演算実行対象としない成分(第1乗数成分)としている。この結果、第2乗算成分は、存在しない。本実施形態では、推論制御部24Bは、前段からの平文データである非反映値(前段からの入力がない場合には、非反映値の初期値(例えば、1))を、乗数の設定値で除算して非反映値(第1演算結果)を算出するように処理部23B−1,23B−2を設定する。本実施例では、非反映値は、最終的に除算する値として用いられる。また、推論制御部24Bは、処理部23における暗号文空間上の演算が、乗算を行わないことを示す値1を平文データに乗算する演算に対応するように、処理部23B−1,23B−2に1に対応する値を用いた処理を設定する。このように設定された処理部23B−1、23B−2は、前段からの非反映値を設定値で除算して非反映値(第1演算結果)を算出する。また、処理部23は、入力された暗号化データをそのまま第2演算結果とする。処理部23は、非反映値(第1演算結果)と、第2演算結果とを対応付けて、後段に出力する。
本例においては、推論調整部24Aは、処理部23B−1に対して、非反映値に対する乗数(第1乗数成分)を4に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定する。また、推論調整部24Aは、処理部23B−2に対して、非反映値に対する除数を3(乗数でいうと1/3)に設定し、暗号化データの演算に使用する乗数を1に設定する。
本例では、処理部23B−1は、入力された暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23−1は、非反映値の初期値(例えば、1)に対して乗数(本例では、4)を乗算することにより、第1推論結果として4を算出する。そして、処理部23B−1は、第1推論結果及び第2推論結果(e,4)を出力する。eは、復号すると、平文データAとなり、これを、第2推論結果である4で除算することにより、処理部13B−1の出力結果である1/4・Aと同じ結果となる。
本例では、処理部23B−2は、入力された第2演算結果である暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23B−2は、入力された非反映値(本例では、4)を除数(本例では、3)で除算することにより、第1推論結果として4/3を算出する。そして、処理部23B−2は、第1推論結果及び第2推論結果(e,4/3)を出力する。eは、復号すると、平文データAとなり、これを、第1推論結果である4/3で除算することにより、処理部13B−2の出力結果である3/4・Aと同じ結果となる。処理部23B−2の処理結果(推論結果(途中))は、推論結果送信部29によりクライアント装置30Bに送信される。
クライアント装置30Bの反映処理部39Bは、復号部38から受け取った平文データの第2推論結果(本例では、A)を、第1推論結果(本例では、4/3)で除算することにより、第1推論結果を反映させた推論結果(本例では、3/4・A)を生成する。これにより、クライアント装置30Bでは、平文データに対して学習装置10Bの処理部13B−1、13B−2の処理を実行した実行結果と同じ値を得ることができる。
この処理システム1Bによると、推論装置20B側では、乗算において、平文データの乗算に対応する暗号化データの累乗(2乗以上)を行わずに済むので、暗号化データに対する演算の処理負荷が軽減される。
次に、第3変形例に係る処理システムについて説明する。
図10は、第3変形例に係る処理システムの機能構成図である。
第3変形例に係る処理システム1Cは、上記した図9に示す処理システム1Bにおいて、推論装置20Bに代えて、推論装置20Cを備え、クライアント装置30Bに代えて、クライアント装置30Cを備えるようにしたものである。
推論装置20Cは、推論装置20Bにおいて、推論制御部24Bに代えて推論制御部24Cを備える。推論制御部24Cは、乗数の設定値を仮分数の形式とした場合の分母を、暗号化データに対する演算で使用する対象(演算実行対象)としない成分(第1乗数成分)とし、分子(整数)を、演算実行対象とする成分(第2乗数成分)としている。そこで、本実施形態では、例えば、推論制御部24は、乗数の設定値を仮分数の形式とした場合の分母分の1(1/分母)を、前段からの平文データである非反映値(前段からの入力がない場合には、非反映値の初期値(例えば、1))に対して乗算して非反映値(第1演算結果)を算出するように処理部23C−1,23C−2を設定する。また、推論制御部24Cは、乗数の設定値を仮分数の形式とした場合の分子を、処理部23における暗号文空間上での演算が、平文空間上における仮分数の分子の乗算に対応するように、処理部23C−1,23C−2に仮分数の分子に対応する値を用いた処理を設定する。このように設定された処理部23C−1、23C−2は、前段からの非反映値に対して1/分母を乗算して非反映値(第1演算結果)を算出する。また、処理部23C−1、23C−2は、入力された暗号化データに対して、平文データに対する分子(整数)を乗数とする乗算の演算に対応する暗号文空間上の演算を実行して第2演算結果を算出する。処理部23は、非反映値(第1演算結果)と、第2演算結果とを対応付けて、後段に出力する。
本例においては、推論調整部24Bは、処理部23C−1に対して、非反映値に対する乗数(第1乗数成分)を1/4に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定する。また、推論調整部24Bは、処理部23C−2に対して、非反映値に対する乗数を1に設定し、暗号化データの演算に使用する乗数を3に設定する。
本例では、処理部23C−1は、入力された暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23C−1は、非反映値の初期値(例えば、1)に対して乗数(本例では、1/4)を乗算することにより、第1推論結果として1/4を算出する。そして、処理部23C−1は、第1推論結果及び第2推論結果(e,1/4)を出力する。eは、復号すると、平文データAとなり、これを、第2推論結果である1/4で乗算することにより、処理部13C−1の出力結果である1/4・Aと同じ結果となる。
本例では、処理部23C−2は、入力された第2演算結果である暗号化データeを、設定された乗数だけ累乗(本例では、3乗)することにより、e3Aを算出する。また、処理部23C−2は、入力された非反映値(本例では、1/4)を乗数(本例では、1)で乗算することにより、第1推論結果として1/4を算出する。そして、処理部23C−2は、第1推論結果及び第2推論結果(e3A,1/4)を出力する。e3Aは、復号すると、平文データ3Aとなり、これを、第1推論結果である1/4で乗算することにより、処理部13C−2の出力結果である3/4・Aと同じ結果となる。処理部23C−2の処理結果(推論結果(途中))は、推論結果送信部29によりクライアント装置30Cに送信される。
クライアント装置30Cの反映処理部39Cは、復号部38から受け取った平文データの第2推論結果(本例では、3A)に、第1推論結果(本例では、1/4)で乗算することにより、第1推論結果を反映させた推論結果(本例では、3/4・A)を生成する。これにより、クライアント装置30Cでは、平文データに対して学習装置10Bの処理部13B−1、13B−2の処理を実行した実行結果と同じ値を得ることができる。
次に、第4変形例に係る処理システムについて説明する。
図11は、第4変形例に係る処理システムの学習装置の機能構成図である。
第4変形例に係る処理システムの学習装置10Cは、処理レイヤー1を構成する処理部13C−1と、処理レイヤー2を構成する処理部13C−2とを有する。
処理部13C−1は、3つの入力されるデータに対して、それぞれ乗算処理を行う。本例では、処理部13C−1は、1番目のデータに対して、1/8倍する乗算処理を行い、2番目のデータに対して、1/4倍する乗算処理を行い、3番目のデータに対して、1/8倍する乗算処理を行う。なお、3つの乗算処理における乗数は、学習装置10による学習によって処理部13C−1での演算に用いる設定値として得られたものである。例えば、平文データA、B、Cが処理部13C−1に入力されると、処理部13C−1では、A×(1/8)、B×(1/4)、C×(1/8)が演算されて、1/8・A、1/4・B、1/8・Cが出力される。なお、学習された処理部13C−1用の設定値(本例では、1/8,1/4,1/8)は、設定値通知部18により推論装置20に送信される。
処理部13C−2は、処理部13C−1から入力される3つのデータを加算する処理を行って出力する。例えば、処理部13C−1から出力された平文データである1/8・A、1/4・B、1/8・Cが処理部13C−2に入力されると、処理部13C−2では、1/8・A、1/4・B、1/8・Cを加算する演算が実行されて、(A+2B+C)/8が出力される。
次に、第4変形例に係る処理システムの推論装置及びクライアント装置の機能構成について説明する。
図12は、第4変形例に係る処理システムの推論装置及びクライアント装置の機能構成図である。
推論装置20Dは、推論制御部24Dと、処理レイヤー1を構成する処理部23D−1と、処理レイヤー2を構成する処理部23D−2と、処理レイヤー3を構成する処理部23D−3と、処理レイヤー4を構成する処理部23D−4と、処理レイヤー5を構成する処理部23D−5とを有する。本例においては、学習装置10Cの処理レイヤー1と、推論装置20Dの処理レイヤー1が対応し、学習装置10Cの処理レイヤー2と、推論装置20Dの処理レイヤー2〜5とが対応している。
推論制御部24Dは、乗数の設定値の全体を暗号化データに対する演算実行対象としない成分(第1乗数成分)としている。この結果、第2乗算成分は、存在しない。本実施形態では、推論制御部24Dは、同一の処理部で乗算が行われる各入力データのそれぞれについて、前段からの平文データである非反映値(前段から入力されない場合には、非反映値の初期値(例えば、1))を、乗数の設定値で乗算して非反映値(第1演算結果)を算出するように処理部23D−1を設定する。本例では、非反映値は、最終的に乗算する値として用いられる。また、推論制御部24Dは、処理部23における暗号文空間上の演算が、乗算を行わないことを示す値1を平文データに対する乗算する演算に対応するように、処理部23D−1に1に対応する値を用いた処理を設定する。このように設定された処理部23D−1は、入力される暗号化データのそれぞれについて、非反映値の初期値を設定値で除算して非反映値(第1演算結果)を算出する。また、処理部23は、入力された暗号化データをそのまま第2演算結果とする。処理部23D−1は、それぞれの入力毎に、非反映値(第1演算結果)と、第2演算結果とを対応付けて、後段に出力する。
本例においては、推論調整部24Dは、処理部23D−1の1番目の入力に対して、非反映値に対する乗数(第1乗数成分)を1/8に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定し、処理部23D−1の2番目の入力に対して、非反映値に対する乗数(第1乗数成分)を1/4に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定し、処理部23D−1の3番目の入力に対して、非反映値に対する乗数(第1乗数成分)を1/4に設定し、暗号化データの演算に使用する乗数(第2乗数成分)を1に設定する。
本例では、処理部23D−1は、入力された1番目の暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出し、また、1番目のデータに対応する非反映値の初期値(例えば、1)に対して乗数(本例では、1/8)を乗算することにより、第1推論結果として1/8を算出する。そして、処理部23D−1は、1番目の暗号化データeに対応する第1推論結果及び第2推論結果(e,1/8)を処理部23D−2に出力する。
また、処理部23D−1は、入力された2番目の暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出し、また、2番目のデータに対応する非反映値の初期値(例えば、1)に対して乗数(本例では、1/4)を乗算することにより、第1推論結果として1/4を算出する。そして、処理部23D−1は、2番目の暗号化データeに対応する第1推論結果及び第2推論結果(e,1/4)を処理部23D−2に出力する。
また、処理部23D−1は、入力された3番目の暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出し、また、3番目のデータに対応する非反映値の初期値(例えば、1)に対して乗数(本例では、1/8)を乗算することにより、第1推論結果として1/8を算出する。そして、処理部23D−1は、3番目の暗号化データeに対応する第1推論結果及び第2推論結果(e,1/8)を処理部23D−4に出力する。
処理部23D−2は、1番目の暗号化データに基づいて出力される第1推論結果及び第2推論結果(e,1/8)と、2番目の暗号化データに基づいて出力される第1推論結果及び第2推論結果(e,1/4)とを入力し、これらの間の通分処理を実行して、実行結果を処理部23D−3に出力する。具体的には、処理部23D−2は、2つの入力データにおける第1推論結果(分母に相当)を同一の値とするように通分するための、それぞれの第2推論結果(分子に相当)に対する乗数(通分用乗数)を決定し、それぞれの第1推論結果について、同一の値を第1推論結果とし、2つの入力データのそれぞれの第2推論結果に対して、平文データに対して通分用乗数を乗算する演算に対応する暗号文空間上の演算を実行し、その結果をこの処理部におけるそれぞれの第2推論結果とする。本例においては、処理部23D−2は、1番目の入力データである(e,1/8)については、通分用乗数が1と決定されるので、新たな第1推論結果及び第2推論結果は、(e,1/8)となり、2番目の入力データである(e,1/4)については、通分用乗数が2と決定されるので、新たな第1推論結果及び第2推論結果は、(e2B,1/8)となる。
処理部23D−2は、通分処理により得られた、1番目と、2番目の入力データに対応する第1推論結果及び第2推論結果((e,1/8)及び(e2B,1/8))をそれぞれ処理部23D−3に出力する。
処理部23D−3は、1番目と、2番目の暗号化データに対応する第1推論結果及び第2推論結果((e,1/8)及び(e2B,1/8))に対して、平文データにおける加算処理に対応する処理を実行する。処理部23D−3は、2つの入力データの第2推論結果を平文データの加算に対応する暗号文空間上の演算(本例では、暗号化データの乗算)を実行した結果(本例では、eA+2B)を新たな第2推論結果とし、第1推論結果及び第2推論結果(eA+2B,1/8)を処理部23D−4に出力する。
処理部23D−4は、処理部23D−3から出力された第1推論結果及び第2推論結果(eA+2B,1/8)と、処理部23D−1から出力された3番目の暗号化データに対応する第1推論結果及び第2推論結果(e,1/8)とを入力し、これらの間の通分処理を実行して、実行結果を処理部23D−5に出力する。具体的には、処理部23D−4は、2つの入力データにおける第1推論結果(分母に相当)を同一の値とするように通分するための、それぞれの第2推論結果(分子に相当)に対する乗数(通分用乗数)を決定し、それぞれの第1推論結果について、同一の値を第1推論結果とし、2つの入力データのそれぞれの第2推論結果に対して、平文データに対して通分用乗数を乗算する演算に対応する暗号文空間上の演算を実行し、その結果をこの処理部におけるそれぞれの第2推論結果とする。本例においては、処理部23D−4は、一方の入力データである(eA+2B,1/8)については、通分用乗数が1と決定されるので、新たな第1推論結果及び第2推論結果は、(eA+2B,1/8)となり、他方の入力データである(e,1/8)については、通分用乗数が1と決定されるので、新たな第1推論結果及び第2推論結果は、(e,1/8)となる。処理部23D−4は、通分処理により得られた、2つの第1推論結果及び第2推論結果((eA+2B,1/8)及び(e,1/8))をそれぞれ処理部23D−5に出力する。
処理部23D−5は、処理部23D−4から入力される2つの第1推論結果及び第2推論結果((eA+2B,1/8)及び(e,1/8))に対して、平文データにおける加算処理に対応する処理を実行する。処理部23D−5は、2つの入力データの第2推論結果を平文データの加算に対応する暗号文空間上の演算(本例では、暗号化データの乗算)を実行した結果(本例では、eA+2B+C)を新たな第2推論結果とし、第1推論結果及び第2推論結果(eA+2B+C,1/8)を、推論結果送信部29を介して、クライアント装置30Aに出力する。
クライアント装置30Aでは、復号部38が、推論装置20Dから受信した第1推論結果及び第2推論結果(eA+2B+C,1/8)のうちの第2推論結果を復号して、復号した第2推論結果(A+2B+C)と第2推論結果を反映処理部39Aに出力する。
反映処理部39Aは、復号部38から受け取った平文データの第2推論結果(本例では、A+2B+C)に、第1推論結果(本例では、1/8)を乗算することにより、第1推論結果を反映させた推論結果(本例では、(A+2B+C)/8)を生成する。これにより、クライアント装置30Aでは、平文データに対して学習装置10Cの処理部13C−1、13C−2の処理を実行した実行結果と同じ値を得ることができる。
次に、第5変形例に係る処理システムについて説明する。
図13は、第5変形例に係る処理システムの推論装置及びクライアント装置の機能構成図である。
第5変形例に係る処理システムは、図12に示す第4変形例に係る処理システムにおける推論装置20Dに代えて、推論装置20Eを備え、クライアント装置30Aに代えて、クライアント装置30Bを備えるようにしたものである。なお、上記実施形態及び第1変形例〜第4変形例と同一部分については、同一符号を付し、重複する説明を省略する。
推論装置20Eは、推論制御部24Eと、処理レイヤー1を構成する処理部23E−1と、処理レイヤー2を構成する処理部23E−2と、処理レイヤー3を構成する処理部23E−3とを有する。本例においては、学習装置10Cの処理レイヤー1と、推論装置20Eの処理レイヤー1が対応し、学習装置10Cの処理レイヤー2と、推論装置20Eの処理レイヤー2及び3とが対応している。
推論制御部24Eは、同一の処理部に対する複数の乗算の設定値について、通分を行い、通分した結果の分母に相当する成分を暗号化データに対する演算実行対象としない成分(第1乗数成分)とし、通分後の分子(整数)を、演算実行対象とする成分(第2乗数成分)としている。そこで、本例では、推論制御部24Eは、乗数の設定値を通分した際の共通の分母を、前段からの平文データである非反映値(前段から入力がない場合には、非反映値の初期値(例えば、1))に対して乗算して非反映値(第1演算結果)を算出するように処理部23E−1を設定する。本実施形態では、複数の出力に対して、共通の1つの第1演算結果が算出されるように設定される。本例では、非反映値は、最終的に除算する値として用いられる。また、推論制御部24Eは、処理部23における暗号文空間上での演算が、平文空間上における通分後の各分子の乗算に対応するように、処理部23E−1に通分後の各分子に対応する値を用いた処理を設定する。このように設定された処理部23E−1は、初期値の非反映値に対して分母を乗算して非反映値(第1演算結果)を算出する。また、処理部23E−1は、入力された複数の暗号化データのそれぞれに対して、対応する通分後の分子(整数)を乗数とする平文データの乗算の演算に対応する暗号文空間上の演算を実行して第2演算結果を算出する。処理部23E−1は、1つの非反映値(第1演算結果)と、入力された各データに対応する複数の第2演算結果とを対応させて、後段に出力する。
本例においては、推論調整部24Eは、処理部23E−1に対して、1番目の暗号化データの演算に使用する乗数(第2乗数成分)を1に設定し、2番目の暗号化データの演算に使用する乗数(第2乗数成分)を2に設定し、3番目の暗号化データの演算に使用する乗数(第2乗数成分)を1に設定し、非反映値に対する乗数(第1乗数成分)を8に設定する。
本例では、処理部23E−1は、入力された1番目の暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出し、入力された2番目の暗号化データeを、設定された乗数だけ累乗(本例では、2乗)することにより、e2Bを算出し、入力された3番目の暗号化データeを、設定された乗数だけ累乗(本例では、1乗)することにより、eを算出する。また、処理部23E−1は、非反映値の初期値(例えば、1)に対して分母(本例では、8)を乗算することにより、第1推論結果として8を算出する。そして、処理部23E−1は、各入力データに対応する第1推論結果(e、e2B、e)及び第2推論結果(8)を出力する。
処理部23E−2は、1番目及び2番目の暗号化データに対応する第2推論結果(e,e2B)に対して、平文データにおける加算処理に対応する暗号文空間上の演算を実行し、その結果(本例では、eA+2B)を新たな第2推論結果とし、演算から得られた第2推論結果と、入力された3番目の暗号化データに対する第2推論結果(e)と、入力された第1推論結果(8)とを処理部23E−3に出力する。
処理部23E−3は、処理部23E−2での演算で得られた第2推論結果(eA+2B)と、3番目の暗号化データに対応する第2推論結果(e)とに対して、平文データにおける加算処理に対応する暗号文空間上の演算を実行し、その結果(eA+2B+C)を新たな第2推論結果とし、この第2推論結果と、入力された第1推論結果(8)とを推論結果送信部29を介して、クライアント装置30Bに出力する。
クライアント装置30Bでは、復号部38が、推論装置20Eから受信した第1推論結果及び第2推論結果(eA+2B+C,8)のうちの第2推論結果を復号して、復号した第2推論結果(A+2B+C)と第2推論結果を反映処理部39Bに出力する。
反映処理部39Bは、復号部38から受け取った平文データの第2推論結果(本例では、A+2B+C)を、第1推論結果(本例では、8)で除算することにより、第1推論結果を反映させた推論結果(本例では、(A+2B+C)/8)を生成する。これにより、クライアント装置30Bでは、平文データに対して学習装置10Cの処理部13C−1、13C−2の処理を実行した実行結果と同じ値を得ることができる。
本例に係る暗号処理システムでは、複数の暗号化データに対して乗算を行う場合に、乗算における共通の分母を非反映値として管理するようにしたので、これらデータに対して、平文データの加算に対応する暗号文空間上の演算を実行する場合において、通分処理(例えば、図12の処理部23D−2における処理)を実行しなくてもよく、処理の負荷や処理時間を短縮することができる。
なお、本発明は、上述の実施形態及び変形例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、学習装置及び推論装置で使用するニューラルネットワークモデルは、上記した例に限られず、より多くの処理レイヤーを有してもよく、上記した例と異なる処理を実行する処理レイヤーを含んでいてもよい。
また、上記実施形態及び変形例では、ニューラルネットワークモデルを用いた処理を実行する処理装置に適用される例を示していたが、本発明はこれに限られず、例えば、ニューラルネットワークモデルを用いずに処理を実行する処理装置に対しても同様に適用することができる。
また、上記実施形態及び変形例においては、準同型暗号として、加法準同型暗号を例にしていたが、本発明はこれに限られず、完全準同型暗号や、SomeWhat準同型暗号としてもよい。
また、上記実施形態及び変形例において、学習装置10(又は10B,10C)、推論装置20(又は、20A〜20E)又はクライアント装置30(又は、30A〜30C)のCPU101がプログラムを実行することにより構成していた機能部の少なくとも一部を、各装置内の他のプロセッサや、特定の処理を実行するハードウェア回路で構成するようにしてもよい。また、学習装置10(又は10B,10C)のGPU103により構成していた処理部13を、CPU101により構成するようにしてもよく、別のハードウェア回路で構成してもよい。また、推論装置20(又は、20A〜20E)のGPU103により構成していた処理部23を、CPU101により構成するようにしてもよく、別のハードウェア回路で構成してもよい。
また、上記実施形態及び変形例では、対象データを受け付ける入力部の一例として受信部28を例に挙げていたが、本発明はこれに限られず、例えば、入力部として、対象データが格納された記録媒体から対象データを読み取るリーダライタとしてもよく、また、対象データとなる画像データを取り込むカメラとしてもよい。
また、上記実施形態及び変形例では、学習装置10(又は10B,10C)と推論装置20(又は、20A〜20E)を別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、同一のハードウェアにより構成してもよい。
また、上記実施形態では、推論装置20(又は、20A〜20E)とクライアント装置30(又は、30A〜30C)とを別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、例えば、クライアント装置30の処理能力が十分であれば、推論処理20(又は、20A〜20E)とクライアント装置30(又は、30A〜30C)とを同一のハードウェアにより構成してもよい。
1,1A,1B,1C…処理システム、10,10B,10C…学習装置、11…学習部、12…ニューラルネットワークモデル、13…処理部、14…学習制御部、15…記憶部、16…学習用データ、17…設定値情報、18,18A…設定値通知部、20,20A,20B,20C,20D,20E…推論装置、21…推論部、22…ニューラルネットワークモデル、23…処理部、24…推論制御部、25…記憶部、26…対象データ、27…設定値情報、28…受信部、29…推論結果送信部、30,30A,30B,30C…クライアント装置、33…記憶部、37…暗号部、38…復号部、39,39A,39B,39C…反映処理部、101…CPU

Claims (8)

  1. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、前記所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、前記所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して前記平文データの前記第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、前記第1演算結果と前記第2演算結果とを対応付けて出力する
    処理装置。
  2. 前記乗算対応処理部は、前段から前記第1演算結果が入力されている場合には、入力された前記第1演算結果に対して前記第1乗数成分を乗算して出力する前記第1演算結果を生成する
    請求項1に記載の処理装置。
  3. 前記乗算対応処理部は、複数の第1暗号化データのそれぞれに対して、所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、前段から入力される複数の第1暗号化データに対応する複数の第2演算結果に対して、1つの第1演算結果を対応付けて出力する
    請求項1又は請求項2に記載の処理装置。
  4. 前記第1乗数成分は、前記所定の乗数のうち、除数として扱われる成分である
    請求項1から請求項3のいずれか一項に記載の処理装置。
  5. 前記処理部の少なくとも1つは、複数の第1暗号化データに対して、平文データの加算に対応する演算を実行する際に、一の第1暗号化データに対応付けられている第1演算結果と、他の第1暗号化データに対応付けられている第1演算結果とを同一の値とするために、少なくとも一の第2暗号化データを調整すべき平文データの演算における乗数を特定し、特定した乗数による平文データに対する乗算に対応する演算を、対応する第2演算結果に実行し、演算後の複数の第2演算結果に対して、平文データの加算に対応する演算を実行し、この演算の結果を出力するとともに、前記同一の値を前記第1演算結果として出力する
    請求項1から4のいずれか一項に記載の処理装置。
  6. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、
    平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行する際に、前記所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、前記所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して前記平文データの前記第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、前記第1演算結果と前記第2演算結果とを対応付けて出力する
    処理方法。
  7. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、
    前記処理プログラムは、
    前記コンピュータに、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行させる際に、前記所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成させるとともに、前記所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して前記平文データの前記第2乗数成分の乗算に対応する暗号文空間上の演算を実行させて第2演算結果を生成させ、前記第1演算結果と前記第2演算結果とを対応付けて出力させる
    処理プログラム。
  8. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、前記処理装置による処理結果を入力して、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、前記所定の乗数のうちの暗号化データによる演算実行対象としない第1乗数成分に基づいて第1演算結果を生成するとともに、前記所定の乗数のうちの前記第1乗数成分以外の第2乗数成分について、入力される第1暗号化データに対して前記平文データの前記第2乗数成分の乗算に対応する暗号文空間上の演算を実行して第2演算結果を生成し、前記第1演算結果と前記第2演算結果とを対応付けて出力し、
    前記結果生成装置は、
    前記処理装置から前記第1処理結果と、前記第2処理結果とを受信する処理結果受信部と、
    前記第2処理結果を復号する復号部と、
    前記復号部で復号された平文データに対して、前記第1処理結果を反映させる反映処理を実行する反映処理部と
    を備える暗号処理システム。
JP2017248682A 2017-12-26 2017-12-26 処理装置、処理方法、処理プログラム、及び暗号処理システム Active JP6730741B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017248682A JP6730741B2 (ja) 2017-12-26 2017-12-26 処理装置、処理方法、処理プログラム、及び暗号処理システム
US16/227,212 US11374735B2 (en) 2017-12-26 2018-12-20 Processing apparatus, processing method, storage medium, and encryption processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017248682A JP6730741B2 (ja) 2017-12-26 2017-12-26 処理装置、処理方法、処理プログラム、及び暗号処理システム

Publications (2)

Publication Number Publication Date
JP2019113777A true JP2019113777A (ja) 2019-07-11
JP6730741B2 JP6730741B2 (ja) 2020-07-29

Family

ID=66949681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017248682A Active JP6730741B2 (ja) 2017-12-26 2017-12-26 処理装置、処理方法、処理プログラム、及び暗号処理システム

Country Status (2)

Country Link
US (1) US11374735B2 (ja)
JP (1) JP6730741B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021029034A1 (ja) * 2019-08-14 2021-02-18
JP2022160985A (ja) * 2021-04-07 2022-10-20 クリプト ラボ インク 同型暗号文に対する非多項式演算を行う装置及び方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3713148B1 (en) * 2019-03-22 2022-08-03 Giesecke+Devrient Mobile Security GmbH White-box ecc implementation
US10635837B1 (en) 2019-04-30 2020-04-28 HealthBlock, Inc. Dynamic data protection
US20210256162A1 (en) * 2019-04-30 2021-08-19 Enya, Inc. Resource-efficient privacy-preserving transactions
US11489659B2 (en) 2019-10-30 2022-11-01 Via Science, Inc. Multiple data source secure data processing
KR20210130044A (ko) * 2020-04-21 2021-10-29 삼성에스디에스 주식회사 데이터 분석 장치 및 방법
US20230208639A1 (en) * 2021-12-27 2023-06-29 Industrial Technology Research Institute Neural network processing method and server and electrical device therefor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972742B2 (en) * 2009-09-04 2015-03-03 Gradiant System for secure image recognition
US8416955B2 (en) * 2009-12-07 2013-04-09 Mitsubishi Electric Research Laboratories, Inc. Method for determining functions applied to signals
JP5846198B2 (ja) * 2011-03-04 2016-01-20 日本電気株式会社 乱数値特定装置、乱数値特定システム、および、乱数値特定方法
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
US9946970B2 (en) * 2014-11-07 2018-04-17 Microsoft Technology Licensing, Llc Neural networks for encrypted data
KR102402625B1 (ko) * 2015-07-02 2022-05-27 삼성전자주식회사 데이터를 관리하는 방법 및 그를 위한 장치들
US20190386814A1 (en) * 2016-11-07 2019-12-19 Sherjil Ahmed Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021029034A1 (ja) * 2019-08-14 2021-02-18
JP7279796B2 (ja) 2019-08-14 2023-05-23 日本電信電話株式会社 秘密勾配降下法計算方法、秘密深層学習方法、秘密勾配降下法計算システム、秘密深層学習システム、秘密計算装置、およびプログラム
JP2022160985A (ja) * 2021-04-07 2022-10-20 クリプト ラボ インク 同型暗号文に対する非多項式演算を行う装置及び方法
US11757618B2 (en) 2021-04-07 2023-09-12 CRYPTO LAB INC., et al. Apparatus for processing non-polynomial operation on homomorphic encrypted messages and methods thereof
JP7449911B2 (ja) 2021-04-07 2024-03-14 クリプト ラボ インク 同型暗号文に対する非多項式演算を行う装置

Also Published As

Publication number Publication date
US20190199509A1 (en) 2019-06-27
US11374735B2 (en) 2022-06-28
JP6730741B2 (ja) 2020-07-29

Similar Documents

Publication Publication Date Title
JP2019113777A (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6730740B2 (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
RU2691874C2 (ru) Способ защиты информации в облачных вычислениях с использованием гомоморфного шифрования
CN107683502B (zh) 根据紧凑源代码生成加密函数参数
US20240113858A1 (en) Systems and Methods for Performing Secure Machine Learning Analytics Using Homomorphic Encryption
Aguilar-Melchor et al. NFLlib: NTT-based fast lattice library
JP6962578B2 (ja) 暗号処理システム、暗号処理装置、暗号処理プログラム、及び暗号処理方法
JP6832013B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JP6016948B2 (ja) 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
JP7096610B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JP6583970B2 (ja) 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
WO2018135563A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
Mashhadi How to fairly share multiple secrets stage by stage
JP6777816B2 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP6767933B2 (ja) パラメータ変換方法、パラメータ変換装置、パラメータ変換プログラム、ペアリング演算方法、ペアリング演算装置、及びペアリング演算プログラム
Ugwuoke et al. Secure fixed-point division for homomorphically encrypted operands
JP6532843B2 (ja) 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム
CN114817954A (zh) 图像的处理方法、系统和装置
Muhammed et al. Improved cloud-based N-primes model for symmetric-based fully homomorphic encryption using residue number system
JP4663421B2 (ja) 離散対数演算装置、方法及びプログラム
JP6825119B2 (ja) 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
JPWO2011033672A1 (ja) 演算装置、方法およびプログラム
Marwan et al. Using homomorphic encryption in cloud-based medical image processing: Opportunities and challenges
Huang et al. Secure Neural Network Prediction in the Cloud-Based Open Neural Network Service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200630

R150 Certificate of patent or registration of utility model

Ref document number: 6730741

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250