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

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

Info

Publication number
JP6730740B2
JP6730740B2 JP2017248185A JP2017248185A JP6730740B2 JP 6730740 B2 JP6730740 B2 JP 6730740B2 JP 2017248185 A JP2017248185 A JP 2017248185A JP 2017248185 A JP2017248185 A JP 2017248185A JP 6730740 B2 JP6730740 B2 JP 6730740B2
Authority
JP
Japan
Prior art keywords
processing
unit
multiplication
predetermined
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
JP2017248185A
Other languages
English (en)
Other versions
JP2019113761A (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.)
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 JP2017248185A priority Critical patent/JP6730740B2/ja
Priority to US16/227,217 priority patent/US11368279B2/en
Publication of JP2019113761A publication Critical patent/JP2019113761A/ja
Application granted granted Critical
Publication of JP6730740B2 publication Critical patent/JP6730740B2/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/08Learning methods
    • 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
    • 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)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Executing Machine-Instructions (AREA)

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暗号化データに対して実行して出力する。
上記処理装置において、所定の乗数を受信する乗数受信部と、受信した所定の乗数に対して、所定の調整値を乗算させて調整乗算値を算出する乗算値調整部と、をさらに備えるようにしてもよい。
また、上記処理装置において、所定の乗数に所定の調整値を乗算させた調整乗算値を受信する調整乗算値受信部をさらに備えるようにしてもよい。
また、上記処理装置において、所定の乗数は、浮動小数点形式の数であり、所定の調整値は、2の累乗の整数であり、調整乗算値は、所定の乗数を固定小数点形式に変換した後、所定の調整値を乗算させることにより得られる整数であってもよい。
また、上記処理装置において、処理部は、ニューラルネットワークモデルを構成する処理部であってもよい。
また、上記処理装置において、準同型暗号は、加法準同型暗号であってもよい。
上記目的を達成するため、第2の観点に係る処理方法は、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するために、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第1暗号化データに対して実行して出力する。
上記目的を達成するため、第3の観点に係る処理プログラムは、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、コンピュータは、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、1以上の処理部を有し、処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、処理プログラムは、コンピュータに、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第1暗号化データに対して実行して出力させる。
上記目的を達成するため、第4の観点に係る暗号処理システムであって、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、処理装置による処理結果を入力して、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、1以上の処理部を有し、処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、乗算対応処理部は、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第1暗号化データに対して実行して出力し、結果生成装置は、処理装置から処理実行部の処理結果を受信する処理結果受信部と、処理結果を復号する復号部と、復号部で復号された平文データに対して、処理実行部の全ての乗算対応処理部に対応する所定の調整値に基づいて、調整値による調整を除去する処理を実行して処理結果を生成する調整除去処理部とを備える。
本発明によれば、準同型暗号による暗号化データを用いてより広範な処理を実行することができるようになる。
図1は、一実施形態に係る処理システムの全体構成図である。 図2は、一実施形態に係る学習装置の機能構成図である。 図3は、一実施形態に係る推論装置の機能構成図である。 図4は、一実施形態に係るクライアント装置の機能構成図である 図5は、一実施形態に係る処理システムの一例の機能構成図である。 図6は、一実施形態に係る処理システムの動作を示すシーケンス図である。 図7は、一実施形態に係るコンピュータ装置の構成図である。 図8は、変形例に係る処理システムの機能構成図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
まず、一実施形態に係る処理システムについて説明する。
図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は、第1実施形態に係る学習装置の機能構成図である。
学習装置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に含まれる設定値としては、例えば、畳込処理部で使用されるフィルタの係数や、アフィン処理部で用いられる重み等があり、これらは、例えば処理部の乗算において乗数として用いられる。
設定値通知部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における係数等を設定する。本実施形態では、推論制御部24は、整数以外の乗算の処理を実行する学習装置10の処理部13に対応する処理部23(乗算対応処理部)に対して、設定値情報27が示す値に、この処理部23に対して予め決定されている調整値(例えば、1より大きい数)を乗算して整数化した調整乗算値を設定する。なお、設定値に調整値を乗算した結果が整数とならない場合には、例えば、その値に近い整数を調整乗算値としてもよい。これにより、処理部23においては、平文データに対して調整乗算値を乗算する処理に対応する暗号文空間上の演算が、前段から入力される暗号化データ(第1暗号化データ)に対して行われることとなる。すなわち、この処理部23においては、対応する処理部13よりも調整値倍(設定値に調整値を乗算した値が整数とならなかった場合には、ほぼ調整値倍)だけ大きい数を乗算する演算が行われることとなる。例えば、或る処理部23に入力される暗号データが、対応する処理部13に入力される平文データを暗号化させた暗号データである場合においては、処理部23から出力される暗号化データの処理結果を復号すると、処理部13による処理結果の調整値倍の値となる。
例えば、学習装置10から送信される設定値(学習装置10における学習で得られる設定値に相当)が浮動小数点形式のデータである場合には、推論制御部24が設定値を所定ビット数の固定小数点形式のデータに変換した後、調整値を乗算させて整数化して調整乗算値を求めるようにしてもよい。この際、調整値を、所定ビット数の固定小数点形式のデータを整数化可能な2の累乗の調整値としてもよく、このようにすると、調整乗算値を確実に整数化することができる。また、学習装置10から送信される設定値(学習装置10における学習で得られる設定値に相当)が固定小数点形式のデータである場合には、調整値を乗算させて整数化して調整乗算値を求めるようにしてもよい。
ここで、本実施形態で使用した準同型暗号について説明する。なお、ここでは、加法準同型暗号である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による推論処理の結果、すなわち、調整値による調整分が含まれている推論結果(推論結果(調整込))をクライアント装置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から渡された推論結果(調整込)を受け取り、推論結果(調整込)に対して暗号部37の暗号方式に対応する復号化を行い、復号された推論結果(調整込)を調整除去処理部39に渡す。
調整除去処理部39は、復号された推論結果(調整込)に対して、推論装置20における各調整値により調整された乗数(例えば、累積的に乗算を行った場合には、各調整値を乗算した値)に基づいて、推論結果から調整を除去する処理を実行することにより、最終的な推論結果(推論結果(最終))を生成し、生成した推論結果(最終)を記憶部33に格納する。なお、推論装置20における各調整値により調整された乗数は、推論装置20の構成により特定されるので、予め調整除去処理部39に設定されていてもよく、学習装置10や推論装置20から処理前に取得して調整除去処理部39に設定されるようにしてもよい。
結果表示部31は、記憶部33に格納された推論結果35に基づいて各種情報を表示出力する。結果表示部31は、推論結果35をそのまま表示してもよく、推論結果35に基づいて所定の処理を実行し、その実行結果を表示するようにしてもよい。
次に、処理システム1のより具体的な例を説明する。
図5は、一実施形態に係る処理システムの一例の機能構成図である。
学習装置10は、処理レイヤー1を構成する処理部13−1と、処理レイヤー2を構成する処理部13−2とを有する。
処理部13−1は、入力されるデータに対して、0.5倍する乗算処理を行う。なお、0.5は、学習装置10による学習によって処理部13−1での演算に用いる設定値として得られたものである。例えば、平文データAが処理部13−1に入力されると、処理部13−1では、A×0.5が演算されて、0.5Aが出力される。なお、学習された処理部13−1用の設定値(本例では、0.5)は、設定値通知部18により推論装置20に送信される。
処理部13−2は、入力されるデータに対して、0.25倍する乗算処理を行って出力する。なお、0.25は、学習装置10による学習によって処理部13−2での演算に用いる設定値として得られたものである。例えば、処理部13−1から出力された平文データである0.5Aが処理部13−2に入力されると、処理部13−2では、0.5A×0.25が演算されて、0.125Aが出力される。なお、学習された処理部13−2用の設定値(本例では、0.25)は、設定値通知部18により推論装置20に送信される。
推論装置20は、処理レイヤー1を構成する処理部23−1と、処理レイヤー2を構成する処理部23−2と、推論制御部24とを有する。
推論制御部24は、学習装置10から送信された各設定値に対して、各処理部23−1,23−2に対応する調整値を乗算させて整数化させることにより調整乗算値を生成し、調整乗算値を各処理部23−1、23−2に設定する。
本例では、処理部23−1の調整値は、4であり、処理部23−2の調整値は、4となっている。本例においては、推論調整部24は、学習装置10から送信された処理部23−1用の調整値0.5に、処理部23−1の調整値4を乗算して、調整乗算値2を生成し、調整乗算値2を処理部23−1に設定する。また、推論調整部24は、学習装置10から送信された処理部23−2用の調整値0.25に、処理部23−2の調整値4を乗算して、調整乗算値1を生成し、調整乗算値1を処理部23−2に設定する。
処理部23−1は、平文データに対して設定された調整乗算値(同図では、2)を乗算する処理に対応する暗号文空間上の演算(対応演算)を、入力される暗号化データに対して行う。例えば、Paillier暗号を用いている場合には、処理部23−1は、対応演算として、入力された暗号化データを、調整乗算値だけ累乗する演算を行う。本例では、処理部23−1は、入力された暗号化データe(eは、平文データAを暗号化した値を示す)を、調整乗算値だけ累乗(ここでは、2乗)することにより、e2Aを算出して出力する。e2Aは、復号すると、平文データ2Aとなる。したがって、処理部23−1の出力結果は、処理部13−1の出力結果である0.5Aに対して、調整値倍(4倍)の値となる暗号化データとなっている。
処理部23−2は、平文データに対して設定された調整乗算値(同図では、1)を乗算する処理に対応する暗号文空間上の演算(対応演算)を入力される暗号化データに対して行う。例えば、Paillier暗号を用いている場合には、処理部23−1は、対応演算として、入力された暗号化データを、調整乗算値だけ累乗する演算を行う。本例では、処理部23−2は、入力された暗号化データe2Aを、調整乗算値だけ累乗(1乗)することにより、e2Aを算出して出力する。e2Aは、復号すると、平文データ2Aとなる。したがって、処理部23−2の出力結果は、処理部13−2の出力結果である0.125Aに対して、処理部23−1の調整値(4)と処理部23−2の調整値(4)とを乗算した倍数(16倍)の値となる暗号化データとなっている。処理部23−2の処理結果(調整値による乗算の内容が含まれている推論結果、推論結果(調整込)という)は、推論結果送信部29によりクライアント装置30に送信される。
クライアント装置30では、復号部38は、推論装置20から送信される暗号化データである推論結果(調整込)を取得し、暗号データの暗号方式に対応する復号を行って、平文データの推論結果(調整込)を得て調整除去処理部39に渡す。例えば、本例では、復号部38は、e2Aを復号して、2Aを得て、調整除去処理部39に渡す。
調整除去処理部39は、復号部38から受け取った平文データの推論結果(調整込)(本例では、2A)を、推論装置20における各調整値により調整された乗数(本例では、4×4=16)で除算することにより、調整を除去した推論結果(0.125A)を生成する。これにより、クライアント装置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用の設定値に対して、各処理部23に対応する調整値を乗算させて整数化させることにより調整乗算値を生成し、調整乗算値を各処理部23に設定する(S108)。次いで、推論制御部24は、記憶部25から暗号化データである対象データ26を読み出して、ニューラルネットワークモデル22の最初の処理レイヤー(レイヤー1)の処理部23に入力する。この結果、ニューラルネットワークモデル22において、対象データ26を対象とした推論処理が実行されて、最終の処理レイヤー(レイヤーN)の処理部23から推論結果(調整込)が推論結果送信部29に出力されることとなる(S109)。
次いで、推論装置20の推論結果送信部29は、ニューラルネットワークモデル22から渡された推論結果(調整込)を対象データの推論処理を要求したクライアント装置30に対して送信する(S110)。
クライアント装置30の受信部36は、推論装置20から推論結果(調整込)を受信して復号部38に渡し、復号部38が推論結果(調整込)を復号化し、調整除去処理部39に渡す(S111)。調整除去処理部39は、復号された推論結果(調整込)に対して、推論装置20における各基準値により調整された乗数に基づいて、調整を除去する処理を実行することにより、最終的な推論結果(推論結果(最終))を生成し(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は、例えば、液晶ディスプレイ等のディスプレイ装置であり、各種情報を表示出力する。
次に、変形例に係る処理システムについて説明する。
変形例に係る処理システムは、上記した図5に示す処理システムにおいて、学習装置10に代えて、学習装置10Aを備え、推論装置20に代えて、推論装置20Aを備えるようにしたものである。
学習装置10Aは、設定値通知部18に代えて、設定通知部18Aを備える。設定通知部18Aは、設定値通知部18の機能に加えて、学習された処理部13の乗数となる設定値(係数)に対して、推論装置20側の対応する処理部23における調整値を乗算することにより、調整乗算値を算出し、推論装置20Aの対応する処理部23に設定されるように調整乗算値を送信する。
推論装置20Aにおいては、調整乗算値受信部の一例としての受信部28が学習装置10Aから送信される調整乗算値を記憶部25に格納し、推論制御部24が各処理部23に設定する調整乗算値を記憶部25から取得して各処理部23に設定する。各処理部23は、設定された調整乗算値を用いて、暗号化データの演算処理を実行する。
この処理システム1によると、推論装置20A側では、学習装置10Aから取得した調整乗算値をそのまま利用することができるので、処理負荷が軽減される。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、2つの処理レイヤー(処理部)を有するニューラルネットワークモデルを用いて処理を実行する学習装置及び推論装置を例に示していたが、本発明はこれに限られず、1つの処理レイヤー(処理部)のみのニューラルネットワークモデルや、3つ以上の処理レイヤー(処理部)を有するニューラルネットワークモデルを用いて処理を実行する学習装置及び推論装置に対しても同様に適用することができる。
また、上記実施形態では、ニューラルネットワークモデルを用いた処理を実行する処理装置に適用される例を示していたが、本発明はこれに限られず、例えば、ニューラルネットワークモデルを用いずに処理を実行する処理装置に対しても同様に適用することができる。
また、上記実施形態においては、準同型暗号として、加法準同型暗号を例にしていたが、本発明はこれに限られず、完全準同型暗号や、SomeWhat準同型暗号としてもよい。
また、上記実施形態において、学習装置10(10A)、推論装置20(20A)、又はクライアント装置30のCPU101がプログラムを実行することにより構成していた機能部の少なくとも一部を、各装置内の他のプロセッサや、特定の処理を実行するハードウェア回路で構成するようにしてもよい。また、学習装置10(10A)のGPU103により構成していた処理部13を、CPU101により構成するようにしてもよく、別のハードウェア回路で構成してもよい。また、推論装置20(20A)のGPU103により構成していた処理部23を、CPU101により構成するようにしてもよく、別のハードウェア回路で構成してもよい。
また、上記実施形態では、対象データを受け付ける入力部の一例として受信部28を例に挙げていたが、本発明はこれに限られず、例えば、入力部として、対象データが格納された記録媒体から対象データを読み取るリーダライタとしてもよく、また、対象データとなる画像データを取り込むカメラとしてもよい。
また、上記実施形態では、学習装置10(10A)と推論装置20(20A)を別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、同一のハードウェアにより構成してもよい。
また、上記実施形態では、推論装置20(20A)とクライアント装置30とを別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、例えば、クライアント装置30の処理能力が十分であれば、推論処理20(20A)とクライアント装置30とを同一のハードウェアにより構成してもよい。
1…処理システム、10,10A…学習装置、11…学習部、12…ニューラルネットワークモデル、13…処理部、14…学習制御部、15…記憶部、16…学習用データ、17…設定値情報、18,18A…設定値通知部、20,20A…推論装置、21…推論部、22…ニューラルネットワークモデル、23…処理部、24…推論制御部、25…記憶部、26…対象データ、27…設定値情報、28…受信部、29…推論結果送信部、30…クライアント装置、33…記憶部、37…暗号部、38…復号部、39…調整除去処理部、101…CPU

Claims (9)

  1. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、調整乗算値を前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記乗算対応処理部に対して入力される第1暗号化データに対して実行して出力し、前記調整乗算値は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した値である
    処理装置。
  2. 前記所定の乗数を受信する乗数受信部と、
    受信した前記所定の乗数に対して、前記所定の調整値を乗算させて前記調整乗算値を算出する乗算値調整部と、
    をさらに備える請求項1に記載の処理装置。
  3. 前記所定の乗数に前記所定の調整値を乗算させた前記調整乗算値を受信する調整乗算値受信部
    をさらに備える請求項1に記載の処理装置。
  4. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、調整乗算値を前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記乗算対応処理部に対して入力される第1暗号化データに対して実行して出力し、
    前記所定の乗数は、浮動小数点形式の数であり、
    前記調整乗算値は、前記所定の乗数を固定小数点形式に変換した後、前記乗算対応処理部に対応する所定の調整値を乗算させることにより得られる整数であり、
    前記所定の調整値は、2の累乗の整数である
    処理装置。
  5. 前記1以上の処理部は、ニューラルネットワークモデルを構成するための要素である
    請求項1から請求項4のいずれか一項に記載の処理装置。
  6. 前記準同型暗号は、加法準同型暗号である
    請求項1から請求項5のいずれか一項に記載の処理装置。
  7. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、
    前記処理装置は、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部が、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するために、調整乗算値を前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記乗算対応処理部に対して入力される第1暗号化データに対して実行して出力し、前記調整乗算値は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した値である
    処理方法。
  8. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、
    前記コンピュータは、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
    前記処理プログラムは、
    前記コンピュータに、調整乗算値を前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記乗算対応処理部に対して入力される第1暗号化データに対して実行して出力させ、前記調整乗算値は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した値である
    処理プログラム。
  9. 準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、前記処理装置による処理結果を入力として、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、
    前記暗号化データを受け付ける入力部と、
    前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
    前記処理実行部は、1以上の処理部を有し、
    前記処理部の少なくとも1つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
    前記乗算対応処理部は、調整乗算値を前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記乗算対応処理部に対して入力される第1暗号化データに対して実行して出力し、前記調整乗算値は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した値であり、
    前記結果生成装置は、
    前記処理装置から前記処理実行部の処理結果を受信する処理結果受信部と、
    前記処理結果を復号する復号部と、
    前記復号部で復号された平文データに対して、前記処理実行部の全ての乗算対応処理部における前記所定の調整値に基づいて、調整値による調整を除去する処理を実行して処理結果を生成する調整除去処理部と
    を備える暗号処理システム。
JP2017248185A 2017-12-25 2017-12-25 処理装置、処理方法、処理プログラム、及び暗号処理システム Active JP6730740B2 (ja)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2019113761A JP2019113761A (ja) 2019-07-11
JP6730740B2 true JP6730740B2 (ja) 2020-07-29

Family

ID=66951540

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US11368279B2 (ja)
JP (1) JP6730740B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6962578B2 (ja) 2019-05-21 2021-11-05 株式会社アクセル 暗号処理システム、暗号処理装置、暗号処理プログラム、及び暗号処理方法
EP4016507A4 (en) * 2019-08-14 2023-05-10 Nippon Telegraph And Telephone Corporation SECRET GRADIENT DESCENT CALCULATION METHOD, SECRET DEEP LEARNING METHOD, SECRET GRADIENT DESCENT CALCULATION SYSTEM, SECRET DEEP LEARNING SYSTEM, SECRET CALCULATION DEVICE AND PROGRAM
US11431470B2 (en) * 2019-08-19 2022-08-30 The Board Of Regents Of The University Of Texas System Performing computations on sensitive data while guaranteeing privacy
US11275585B2 (en) * 2019-09-12 2022-03-15 Intuit Inc. System and method for approximating branching operations for use with data encrypted by fully homomorphic encryption (FHE)
KR20210133471A (ko) 2020-04-29 2021-11-08 삼성전자주식회사 전자 장치 및 그의 제어 방법
JP7076167B1 (ja) * 2021-12-01 2022-05-27 Eaglys株式会社 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
CN114500068B (zh) * 2022-02-10 2024-01-09 广州云羲网络科技有限公司 一种基于安全隔离网闸的信息数据交换系统

Family Cites Families (10)

* 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
JP5496756B2 (ja) * 2010-04-16 2014-05-21 日本電信電話株式会社 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
JP5846198B2 (ja) * 2011-03-04 2016-01-20 日本電気株式会社 乱数値特定装置、乱数値特定システム、および、乱数値特定方法
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
EP3192015A1 (en) * 2014-09-09 2017-07-19 Intel Corporation Improved fixed point integer implementations for neural networks
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
EP3602422B1 (en) * 2017-03-22 2022-03-16 Visa International Service Association Privacy-preserving machine learning

Also Published As

Publication number Publication date
JP2019113761A (ja) 2019-07-11
US20190199510A1 (en) 2019-06-27
US11368279B2 (en) 2022-06-21

Similar Documents

Publication Publication Date Title
JP6730740B2 (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6730741B2 (ja) 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6962578B2 (ja) 暗号処理システム、暗号処理装置、暗号処理プログラム、及び暗号処理方法
JP4334582B2 (ja) 秘密分散装置、方法及びプログラム
JP6832013B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
CN111373401B (zh) 同态推理装置、同态推理方法、计算机能读取的存储介质和隐匿信息处理系统
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP7096610B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JP2012150399A (ja) プロキシ再暗号化システム、委譲情報生成装置、被委譲情報生成装置、変換鍵生成装置、暗号文変換装置、プロキシ再暗号化方法、及びそれらのプログラム
JP2011145512A (ja) 鍵生成装置、鍵生成方法、プログラム及び記録媒体
JP6777816B2 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7017800B2 (ja) 演算装置、演算システム、及び演算方法
JP6767933B2 (ja) パラメータ変換方法、パラメータ変換装置、パラメータ変換プログラム、ペアリング演算方法、ペアリング演算装置、及びペアリング演算プログラム
JP6729119B2 (ja) 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体
JP6059159B2 (ja) シェア変換システム、シェア変換方法、プログラム
JP7205016B2 (ja) 秘匿情報処理システムおよび秘匿情報処理方法
JP6825119B2 (ja) 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
JPWO2011033672A1 (ja) 演算装置、方法およびプログラム
JP2024009581A (ja) 情報処理システムの制御方法、情報処理システム、及びプログラム
JP2023178201A (ja) 暗号化装置、復号装置、ストレージシステム、情報処理装置、暗号化方法、復号方法、解凍装置、及び解凍方法
KR20230128728A (ko) 동형암호 시스템 및 방법
JP2023184198A (ja) 連合学習システム及び連合学習方法
US8615649B2 (en) Use of a private key to encrypt and decrypt a message
JP2010002525A (ja) 文書・平文空間写像装置、平文空間・文書写像装置、方法及びプログラム

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

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250