(57)【要約】      （修正有）【課題】準同型暗号の暗号化データを用いてより広範な処理を実行することができる処理装置、処理方法、処理プログラム及び暗号処理システムを提供する。【解決手段】準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置は、暗号化データを受け付け、暗号化データを用いて所定の処理を実行する推論部２１を備える。推論部２１は、１以上の処理部２３を有する。処理部２３の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部２３−１である。乗算対応処理部２３−１は、所定の乗数に、乗算対応処理部２３−１に対応する所定の調整値を乗算して整数化した調整乗算値を平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力する。【選択図】図３
2019113761.tif 000002
【特許請求の範囲】
【請求項１】
準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、
前記暗号化データを受け付ける入力部と、
前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
前記処理実行部は、１以上の処理部を有し、
前記処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
前記乗算対応処理部は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力する
処理装置。
【請求項２】
前記所定の乗数を受信する乗数受信部と、
受信した前記所定の乗数に対して、前記所定の調整値を乗算させて前記調整乗算値を算出する乗算値調整部と、
をさらに備える請求項１に記載の処理装置。
【請求項３】
前記所定の乗数に前記所定の調整値を乗算させた前記調整乗算値を受信する調整乗算値受信部
をさらに備える請求項１に記載の処理装置。
【請求項４】
前記所定の乗数は、浮動小数点形式の数であり、
前記所定の調整値は、２の累乗の整数であり、
前記調整乗算値は、前記所定の乗数を固定小数点形式に変換した後、前記所定の調整値を乗算させることにより得られる整数である
請求項１から請求項３のいずれか一項に記載の処理装置。
【請求項５】
前記処理部は、ニューラルネットワークモデルを構成する処理部である
請求項１から請求項４のいずれか一項に記載の処理装置。
【請求項６】
前記準同型暗号は、加法準同型暗号である
請求項１から請求項５のいずれか一項に記載の処理装置。
【請求項７】
準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、
平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するために、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前記前段から入力される第１暗号化データに対して実行して出力する
処理方法。
【請求項８】
準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、
前記コンピュータは、
前記暗号化データを受け付ける入力部と、
前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
前記処理実行部は、１以上の処理部を有し、
前記処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
前記処理プログラムは、
前記コンピュータに、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力させる
処理プログラム。
【請求項９】
準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、前記処理装置による処理結果を入力として、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、
前記暗号化データを受け付ける入力部と、
前記暗号化データを用いて前記所定の処理を実行する処理実行部と、を備え、
前記処理実行部は、１以上の処理部を有し、
前記処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、
前記乗算対応処理部は、前記所定の乗数に前記乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、前記平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力し、
前記結果生成装置は、
前記処理装置から前記処理実行部の処理結果を受信する処理結果受信部と、
前記処理結果を復号する復号部と、
前記復号部で復号された平文データに対して、前記処理実行部の全ての乗算対応処理部における前記所定の調整値に基づいて、調整値による調整を除去する処理を実行して処理結果を生成する調整除去処理部と
を備える暗号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、準同型暗号を用いて情報を処理する技術に関する。
【背景技術】
【０００２】
従来、機械学習のアーキテクチャの１つであるニューラルネットワークモデルを用いることにより、画像、文字、及び音声などの認識処理（推論処理）が行われている。
【０００３】
ニューラルネットワークモデルにおける学習済みの係数データは、規模が大きく、クライアント装置のみで処理を行うには負荷が大きかったり、処理の実行が困難であったりという問題がある。これに対して、サーバ・クライアントモデルを用いることにより、大規模な演算が可能なクラウド資源をニューラルネットワークモデルによる推論処理等に利用したいという要求が存在している。
【０００４】
サーバ・クライアントモデルを用いると、データをクライアントからサーバに送信することになるため、個人情報等の機密性の高い情報が流出してしまう虞がある。
【０００５】
上述の問題に対処するため、サーバに対して暗号化したデータ(暗号化データ)を送信し、暗号化データのまま演算を行うことができる準同型暗号を用いてサーバ側で暗号化データを処理することが考えられる。
【０００６】
しかし、ニューラルネットワークモデルで使用されるシグモイド関数や、ＲｅＬＵ関数（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ  Ｒｅｃｔｉｆｉｅｒ：正規化線形関数）等の一般的な活性化関数は、既に知られている準同型暗号で行える演算の範疇を超えるため、準同型暗号による暗号化データに対する演算が不可能である。
【０００７】
例えば、特許文献１には、活性化関数として近似多項式を用いるニューラルネットワークに関する技術が開示されている。
【０００８】
また、非特許文献１には、ニューラルネットワークモデルにおける活性化関数の演算時に都度クライアントに問合せることにより、準同型暗号を用いた処理を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許出願公開第２０１６／０３５０６４８号明細書
【非特許文献】
【００１０】
【非特許文献１】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>
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ニューラルネットワークモデルにおいて、暗号化データのままで処理するようにすることは、不可能であったり、処理負荷が多大となり困難であったりする。例えば、非特許文献１の技術では、活性化関数の演算の都度、クライアントとのデータのやり取りが発生するとともに、クライアント側での処理が発生するために、通信量が多くなるとともに、処理時間が長期化してしまう。
【００１２】
また、より多くの演算に対応することのできる準同型暗号である完全準同型暗号や、ＳｏｍｅＷｈａｔ準同型暗号等を用いることも考えられるが、このような暗号による暗号化データは、データ量が多くなるので、処理負荷が多大となるという問題がある。
【００１３】
処理負荷を抑える点を考慮すると、加法準同型暗号を用いて処理をすることが好ましいが、加法準同型暗号を用いる場合には、利用できる演算が限定されており、実行できる処理が限られてしまう。例えば、加法準同型暗号を用いると、整数以外の乗算（例えば、１未満の数の乗算（除算に相当）も含む）を行う処理が実行できない。
【００１４】
また、加法準同型暗号を用いて処理を行う場合には、ニューラルネットワークモデルを使用した処理に限らず、ニューラルネットワークモデルを使用しない処理においても、同様に、実行できる処理が限られてしまうという問題が生じる。
【００１５】
本発明は、上記事情に鑑みなされたものであり、その目的は、準同型暗号による暗号化データを用いてより広範な処理を実行することのできる技術を提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、第１の観点に係る処理装置は、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置であって、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、１以上の処理部を有し、処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、乗算対応処理部は、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力する。
【００１７】
上記処理装置において、所定の乗数を受信する乗数受信部と、受信した所定の乗数に対して、所定の調整値を乗算させて調整乗算値を算出する乗算値調整部と、をさらに備えるようにしてもよい。
【００１８】
また、上記処理装置において、所定の乗数に所定の調整値を乗算させた調整乗算値を受信する調整乗算値受信部をさらに備えるようにしてもよい。
【００１９】
また、上記処理装置において、所定の乗数は、浮動小数点形式の数であり、所定の調整値は、２の累乗の整数であり、調整乗算値は、所定の乗数を固定小数点形式に変換した後、所定の調整値を乗算させることにより得られる整数であってもよい。
【００２０】
また、上記処理装置において、処理部は、ニューラルネットワークモデルを構成する処理部であってもよい。
【００２１】
また、上記処理装置において、準同型暗号は、加法準同型暗号であってもよい。
【００２２】
上記目的を達成するため、第２の観点に係る処理方法は、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置による処理方法であって、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するために、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力する。
【００２３】
上記目的を達成するため、第３の観点に係る処理プログラムは、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置を構成するコンピュータに実行させる処理プログラムであって、コンピュータは、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、１以上の処理部を有し、処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、処理プログラムは、コンピュータに、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力させる。
【００２４】
上記目的を達成するため、第４の観点に係る暗号処理システムであって、準同型暗号による暗号化データを入力として、暗号化による秘匿状態を維持した状態で所定の処理を実行するための処理装置と、処理装置による処理結果を入力して、平文データに対応する処理結果を生成する処理を実行する結果生成装置とを備える暗号処理システムであって、暗号化データを受け付ける入力部と、暗号化データを用いて所定の処理を実行する処理実行部と、を備え、処理実行部は、１以上の処理部を有し、処理部の少なくとも１つは、平文データに対して所定の乗数により乗算を行う処理に対応する暗号文空間上の演算を実行するための乗算対応処理部であり、乗算対応処理部は、所定の乗数に乗算対応処理部に対応する所定の調整値を乗算して整数化した調整乗算値を、平文データに乗算させる演算に対応する暗号文空間上の演算を、前段から入力される第１暗号化データに対して実行して出力し、結果生成装置は、処理装置から処理実行部の処理結果を受信する処理結果受信部と、処理結果を復号する復号部と、復号部で復号された平文データに対して、処理実行部の全ての乗算対応処理部に対応する所定の調整値に基づいて、調整値による調整を除去する処理を実行して処理結果を生成する調整除去処理部とを備える。
【発明の効果】
【００２５】
本発明によれば、準同型暗号による暗号化データを用いてより広範な処理を実行することができるようになる。
【図面の簡単な説明】
【００２６】
【図１】図１は、一実施形態に係る処理システムの全体構成図である。
【図２】図２は、一実施形態に係る学習装置の機能構成図である。
【図３】図３は、一実施形態に係る推論装置の機能構成図である。
【図４】図４は、一実施形態に係るクライアント装置の機能構成図である
【図５】図５は、一実施形態に係る処理システムの一例の機能構成図である。
【図６】図６は、一実施形態に係る処理システムの動作を示すシーケンス図である。
【図７】図７は、一実施形態に係るコンピュータ装置の構成図である。
【図８】図８は、変形例に係る処理システムの機能構成図である。
【発明を実施するための形態】
【００２７】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２８】
まず、一実施形態に係る処理システムについて説明する。
【００２９】
図１は、一実施形態に係る処理システムの全体構成図である。
【００３０】
処理システム１は、暗号処理システムの一例であり、学習装置１０と、処理装置の一例としての推論装置２０と、結果生成装置の一例としてのクライアント装置３０とを備える。学習装置１０と推論装置２０とは、ネットワーク４０を介して接続されている。また、推論装置２０とクライアント装置３０とは、ネットワーク５０を介して接続されている。ネットワーク４０，５０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｏｗｏｒｋ）や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。なお、図１では、ネットワーク４０と、ネットワーク５０とを別のネットワークとしているが、それらを同一のネットワークとしてもよい。
【００３１】
学習装置１０は、ニューラルネットワークモデルの学習を行う。推論装置２０は、学習装置１０によるニューラルネットワークモデルの学習結果（ニューラルネットワークモデルの係数（重みやバイアス）等の設定値）に基づいてニューラルネットワークモデルを設定し、推論処理を行う。クライアント装置３０は、例えば、ユーザにより利用される装置であり、推論装置２０に対して推論処理の対象となるデータ（対象データ）を暗号化して送信し、推論装置２０による推論処理の結果（推論結果）を受け取る。
【００３２】
図２は、第１実施形態に係る学習装置の機能構成図である。
【００３３】
学習装置１０は、学習部１１と、記憶部１５と、設定値通知部１８とを備える。
【００３４】
学習部１１は、ニューラルネットワークモデル１２と、学習制御部１４とを備える。
【００３５】
ニューラルネットワークモデル１２は、例えば、所定の推論処理を実行して推論結果を出力するためのニューラルネットワークモデルである。ニューラルネットワークモデル１２は、１以上の処理レイヤー（レイヤー）により構成されている。なお、本実施形態では、ニューラルネットワークモデル１２は、設定値の学習のために使用される。図２の例では、ニューラルネットワークモデル１２は、レイヤー１〜レイヤーＮ（Ｎは、１以上の整数）により構成されている。各レイヤーにおける処理（部分処理）は、各処理部１３によって実行される。ニューラルネットワークモデル１２は、例えば、処理対象とする画像データが何を表しているか（例えば、人、犬、猫等の何が含まれているか）を推論する推論処理を実行して推論結果を出力するモデルであってもよい。ニューラルネットワークモデル１２におけるレイヤー数や、各レイヤーで実行する部分処理の種類及び内容は、任意に設定することができる。
【００３６】
ニューラルネットワークモデル１２のレイヤーを構成する処理部１３としては、例えば、入力された画像データに対して、複数のフィルタデータ（設定値の一例）のそれぞれを用いて畳込処理を行う畳込処理部や、入力されたデータを活性化関数により変換する処理を実行する活性化関数部や、入力データについてダウンサンプリングする処理を実行するプーリング処理部や、入力データについてのアフィン変換処理を実行するアフィン処理部や、入力データについてソフトマックス関数による処理を実行するＳｏｆｔＭａｘ処理部等がある。
【００３７】
学習制御部１４は、記憶部１５に格納されている学習用データ１６を受け付けて、ニューラルネットワークモデル１２に入力し、ニューラルネットワークモデル１２から出力される推論結果に基づいて、ニューラルネットワークモデル１２における設定値を学習する。学習制御部１４は、学習用データ１６による学習を終えた場合には、学習によって得られた設定値に関する情報を記憶部１５に格納する。
【００３８】
記憶部１５は、学習部１１のニューラルネットワークモデル１２の学習に使用する学習用データ１６と、ニューラルネットワークモデル１２の係数等の設定値に関する情報である設定値情報１７とを記憶する。なお、学習用データ１６を、学習用データ１６に対応する推論結果データと対応付けた教師データとして記憶部１５に格納するようにしてもよい。学習用データ１６は、例えば、暗号化されていないデータ（平文データ）であってもよい。設定値情報１７に含まれる設定値としては、例えば、畳込処理部で使用されるフィルタの係数や、アフィン処理部で用いられる重み等があり、これらは、例えば処理部の乗算において乗数として用いられる。
【００３９】
設定値通知部１８は、記憶部１５に格納されている設定値情報１７を、推論装置２０に送信する。
【００４０】
次に、推論装置２０について詳細に説明する。
【００４１】
図３は、一実施形態に係る推論装置の機能構成図である。
【００４２】
推論装置２０は、処理実行部の一例としての推論部２１と、記憶部２５と、入力部の一例としての受信部２８と、推論結果送信部２９とを備える。
【００４３】
推論部２１は、ニューラルネットワークモデル２２と、乗算値調整部の一例としての推論制御部２４とを備える。
【００４４】
ニューラルネットワークモデル２２は、例えば、準同型暗号（例えば、Ｐａｉｌｌｉｅｒ暗号やｌｉｆｔｅｄ−ＥｌＧａｍａｌ暗号）による暗号化が行われた暗号データを入力として、所定の推論処理を実行して推論結果を出力するためのニューラルネットワークモデルである。ニューラルネットワークモデル２２は、１以上の処理レイヤー（レイヤー）により構成されている。なお、本実施形態では、ニューラルネットワークモデル２２は、学習装置１０のニューラルネットワークモデル１２に対応する処理を暗号化データに対して実行する構成であり、例えば、ニューラルネットワーク１２のそれぞれの処理部１３に、ニューラルネットワーク２２のそれぞれの処理部２３が対応する。図３の例では、ニューラルネットワークモデル２２は、レイヤー１〜レイヤーＮにより構成されている。各レイヤーにおける処理（部分処理）は、各処理部２３によって実行される。ニューラルネットワークモデル２２は、例えば、処理対象とする画像データが何を表しているか（例えば、人、犬、猫等の何が含まれているか）を推論する推論処理を実行して推論結果を出力するモデルであってもよい。ニューラルネットワークモデル２２におけるレイヤー数や、各レイヤーで実行する部分処理の種類及び内容は、任意に設定することができる。
【００４５】
ニューラルネットワークモデル２２のレイヤーを構成する処理部２３としては、入力された画像データに対して、複数のフィルタデータ（設定値の一例）のそれぞれを用いて畳込処理を行う畳込処理部や、入力されたデータを活性化関数により変換する処理を実行する活性化関数部や、入力データについてダウンサンプリングする処理を実行するプーリング処理部や、入力データについてのアフィン変換処理を実行するアフィン処理部や、入力データについてソフトマックス関数による処理を実行するＳｏｆｔＭａｘ処理部等がある。
【００４６】
推論制御部２４は、記憶部２５に格納されている設定値情報２７に基づいて、ニューラルネットワークモデル２２の設定を行う、すなわち、処理レイヤーの処理部２３における係数等を設定する。本実施形態では、推論制御部２４は、整数以外の乗算の処理を実行する学習装置１０の処理部１３に対応する処理部２３（乗算対応処理部）に対して、設定値情報２７が示す値に、この処理部２３に対して予め決定されている調整値（例えば、１より大きい数）を乗算して整数化した調整乗算値を設定する。なお、設定値に調整値を乗算した結果が整数とならない場合には、例えば、その値に近い整数を調整乗算値としてもよい。これにより、処理部２３においては、平文データに対して調整乗算値を乗算する処理に対応する暗号文空間上の演算が、前段から入力される暗号化データ（第１暗号化データ）に対して行われることとなる。すなわち、この処理部２３においては、対応する処理部１３よりも調整値倍（設定値に調整値を乗算した値が整数とならなかった場合には、ほぼ調整値倍）だけ大きい数を乗算する演算が行われることとなる。例えば、或る処理部２３に入力される暗号データが、対応する処理部１３に入力される平文データを暗号化させた暗号データである場合においては、処理部２３から出力される暗号化データの処理結果を復号すると、処理部１３による処理結果の調整値倍の値となる。
【００４７】
例えば、学習装置１０から送信される設定値（学習装置１０における学習で得られる設定値に相当）が浮動小数点形式のデータである場合には、推論制御部２４が設定値を所定ビット数の固定小数点形式のデータに変換した後、調整値を乗算させて整数化して調整乗算値を求めるようにしてもよい。この際、調整値を、所定ビット数の固定小数点形式のデータを整数化可能な２の累乗の調整値としてもよく、このようにすると、調整乗算値を確実に整数化することができる。また、学習装置１０から送信される設定値（学習装置１０における学習で得られる設定値に相当）が固定小数点形式のデータである場合には、調整値を乗算させて整数化して調整乗算値を求めるようにしてもよい。
【００４８】
ここで、本実施形態で使用した準同型暗号について説明する。なお、ここでは、加法準同型暗号であるＰａｉｌｌｉｅｒ暗号を例に挙げて説明する。
【００４９】
暗号に係る処理を行う場合には、以下のような各種設定を決定しておく。すなわち、暗号において使用する安全な素数ｐ及びｑを用意する。なお、素数の決定における手順や注意点は、ＲＳＡ暗号と同じでよい。また、Ｎ＝ｐ×ｑとする。また、ｋを０≦ｋ≦Ｎ−１の範囲で任意に設定する。ｇ＝１＋ｋＮとする。ここで、ｐ、ｑは、秘密鍵、ｇ、Ｎは、公開鍵、兼システムパラメータである。
【００５０】
例えば、平文データをＡ、Ｂ（０≦Ａ≦Ｎ−１、０≦Ｂ≦Ｎ−１）とすると、それぞれを暗号化した暗号化データｅＡ、ｅＢは、以下の式（１）、（２）に示すように表される。
ｅＡ＝ｇＡ×ｒ１Ｎ  ｍｏｄ  Ｎ２      ・・・（１）
ｅＢ＝ｇＢ×ｒ２Ｎ  ｍｏｄ  Ｎ２      ・・・（２）
ここで、ｒ１（０≦ｒ１≦Ｎ−１）、及びｒ２（０≦ｒ２≦Ｎ−１）は、乱数である。
【００５１】
Ｐａｉｌｌｉｅｒ暗号の暗号化データは、平文データ同士の和演算に対応する演算を、暗号化データの乗算として実行可能である。
暗号化データの乗算、すなわち、ｅＡ×ｅＢは、式（３）に示すようになる。
ｅＡ×ｅＢ＝ｇＡ×ｇＢ×ｒ１Ｎ×ｒ２Ｎ  ｍｏｄ  Ｎ２ 
＝ｇＡ＋Ｂ×ｒ１Ｎ×ｒ２Ｎ  ｍｏｄ  Ｎ２ 
＝ｅＡ＋Ｂ    ・・・・（３）
式（３）に示すｅＡ＋Ｂは、復号すると、Ａ＋Ｂとなる。したがって、暗号化データの乗算は、平文データの和演算に対応していることがわかる。
【００５２】
また、Ｐａｉｌｌｉｅｒ暗号の暗号化データは、平文データと、平文データの整数との乗算に対応する演算を実行可能である。
平文データＡと整数Ｃとの乗算であるＡ×Ｃは、ＡをＣ回加算するという和演算に対応する。したがって、この和演算のそれぞれについて、暗号化データの乗算を行うことにより、暗号化データに対して平文データＡと整数Ｃとの乗算に対応する演算を実行することができる。
具体的には、ｅＡ×ｅＡ×・・・、すなわち暗号化データの累乗（整数Ｃ乗）を行えばよいこととなり、式（４）に示すようになる。
ｅＡ×ｅＡ×・・・＝ｅＡ＋Ａ＋・・・＝ｅＡＣ      ・・・（４）
式（４）に示すｅＡＣは、復号すると、ＡＣとなり、平文データＡと整数Ｃとの乗算の結果となる。したがって、Ｐａｉｌｌｉｅｒ暗号の同じ暗号化データを累乗する演算が、平文データと、平文データの整数との乗算に対応する演算であることがわかる。
【００５３】
また、推論制御部２４は、処理対象のデータである対象データ２６をニューラルネットワークモデル２２に入力し、ニューラルネットワークモデル２２による推論処理を実行させる。本実施形態では、対象データ２６は、準同型暗号で暗号化された暗号化データである。
【００５４】
記憶部２５は、推論部２１のニューラルネットワークモデル２２で推論処理を実行させる対象の対象データ２６と、ニューラルネットワークモデル２２の係数等の設定値に関する情報である設定値情報２７とを記憶する。設定値情報２７に含まれる設定値としては、例えば、処理部２３で乗数として使用されるフィルタの係数や、重み等がある。
【００５５】
受信部２８は、学習装置１０から送信される設定値情報を受信して記憶部２５に格納する。また、受信部２８は、クライアント装置３０から送信される暗号化された対象データ２６を受信して記憶部２５に格納する。
【００５６】
推論結果送信部２９は、推論部２１のニューラルネットワークモデル２２による推論処理の結果、すなわち、調整値による調整分が含まれている推論結果（推論結果（調整込））をクライアント装置３０に送信する。
【００５７】
次に、クライアント装置３０について詳細に説明する。
【００５８】
図４は、一実施形態に係るクライアント装置の機能構成図である。
【００５９】
クライアント装置３０は、結果表示部３１と、送信部３２と、記憶部３３と、処理結果受信部の一例としての受信部３６と、暗号部３７と、復号部３８と、調整除去処理部３９とを備える。
【００６０】
記憶部３３は、推論処理を実行させる平文データである対象データ３４と、推論処理の推論結果３５とを記憶する。なお、推論結果３５は、推論装置２０から推論結果が送信されて所定の処理が行われた場合に格納されるものであり、推論装置２０による推論処理が行われていない対象データ３４に対する推論結果については、存在しない。
【００６１】
暗号部３７は、記憶部３３に格納されている暗号化されていない対象データ３４を、準同型暗号（例えば、Ｐａｉｌｌｉｅｒ暗号）による暗号化を行って暗号化データとし、暗号化データを送信部３２に渡す。
【００６２】
送信部３２は、暗号部３７から渡された暗号化データを、推論処理の対象データとして推論装置２０に送信する。受信部３６は、推論装置２０から推論処理の推論結果（調整込）を受信して復号部３８に渡す。
【００６３】
復号部３８は、受信部３６から渡された推論結果（調整込）を受け取り、推論結果(調整込)に対して暗号部３７の暗号方式に対応する復号化を行い、復号された推論結果(調整込）を調整除去処理部３９に渡す。
【００６４】
調整除去処理部３９は、復号された推論結果（調整込）に対して、推論装置２０における各調整値により調整された乗数（例えば、累積的に乗算を行った場合には、各調整値を乗算した値）に基づいて、推論結果から調整を除去する処理を実行することにより、最終的な推論結果（推論結果（最終））を生成し、生成した推論結果(最終)を記憶部３３に格納する。なお、推論装置２０における各調整値により調整された乗数は、推論装置２０の構成により特定されるので、予め調整除去処理部３９に設定されていてもよく、学習装置１０や推論装置２０から処理前に取得して調整除去処理部３９に設定されるようにしてもよい。
【００６５】
結果表示部３１は、記憶部３３に格納された推論結果３５に基づいて各種情報を表示出力する。結果表示部３１は、推論結果３５をそのまま表示してもよく、推論結果３５に基づいて所定の処理を実行し、その実行結果を表示するようにしてもよい。
【００６６】
次に、処理システム１のより具体的な例を説明する。
【００６７】
図５は、一実施形態に係る処理システムの一例の機能構成図である。
【００６８】
学習装置１０は、処理レイヤー１を構成する処理部１３−１と、処理レイヤー２を構成する処理部１３−２とを有する。
【００６９】
処理部１３−１は、入力されるデータに対して、０．５倍する乗算処理を行う。なお、０．５は、学習装置１０による学習によって処理部１３−１での演算に用いる設定値として得られたものである。例えば、平文データＡが処理部１３−１に入力されると、処理部１３−１では、Ａ×０．５が演算されて、０．５Ａが出力される。なお、学習された処理部１３−１用の設定値（本例では、０．５）は、設定値通知部１８により推論装置２０に送信される。
【００７０】
処理部１３−２は、入力されるデータに対して、０．２５倍する乗算処理を行って出力する。なお、０．２５は、学習装置１０による学習によって処理部１３−２での演算に用いる設定値として得られたものである。例えば、処理部１３−１から出力された平文データである０．５Ａが処理部１３−２に入力されると、処理部１３−２では、０．５Ａ×０．２５が演算されて、０．１２５Ａが出力される。なお、学習された処理部１３−２用の設定値（本例では、０．２５）は、設定値通知部１８により推論装置２０に送信される。
【００７１】
推論装置２０は、処理レイヤー１を構成する処理部２３−１と、処理レイヤー２を構成する処理部２３−２と、推論制御部２４とを有する。
【００７２】
推論制御部２４は、学習装置１０から送信された各設定値に対して、各処理部２３−１，２３−２に対応する調整値を乗算させて整数化させることにより調整乗算値を生成し、調整乗算値を各処理部２３−１、２３−２に設定する。
【００７３】
本例では、処理部２３−１の調整値は、４であり、処理部２３−２の調整値は、４となっている。本例においては、推論調整部２４は、学習装置１０から送信された処理部２３−１用の調整値０．５に、処理部２３−１の調整値４を乗算して、調整乗算値２を生成し、調整乗算値２を処理部２３−１に設定する。また、推論調整部２４は、学習装置１０から送信された処理部２３−２用の調整値０．２５に、処理部２３−２の調整値４を乗算して、調整乗算値１を生成し、調整乗算値１を処理部２３−２に設定する。
【００７４】
処理部２３−１は、平文データに対して設定された調整乗算値（同図では、２）を乗算する処理に対応する暗号文空間上の演算（対応演算）を、入力される暗号化データに対して行う。例えば、Ｐａｉｌｌｉｅｒ暗号を用いている場合には、処理部２３−１は、対応演算として、入力された暗号化データを、調整乗算値だけ累乗する演算を行う。本例では、処理部２３−１は、入力された暗号化データｅＡ（ｅＡは、平文データＡを暗号化した値を示す）を、調整乗算値だけ累乗（ここでは、２乗）することにより、ｅ２Ａを算出して出力する。ｅ２Ａは、復号すると、平文データ２Ａとなる。したがって、処理部２３−１の出力結果は、処理部１３−１の出力結果である０．５Ａに対して、調整値倍（４倍）の値となる暗号化データとなっている。
【００７５】
処理部２３−２は、平文データに対して設定された調整乗算値（同図では、１）を乗算する処理に対応する暗号文空間上の演算（対応演算）を入力される暗号化データに対して行う。例えば、Ｐａｉｌｌｉｅｒ暗号を用いている場合には、処理部２３−１は、対応演算として、入力された暗号化データを、調整乗算値だけ累乗する演算を行う。本例では、処理部２３−２は、入力された暗号化データｅ２Ａを、調整乗算値だけ累乗（１乗）することにより、ｅ２Ａを算出して出力する。ｅ２Ａは、復号すると、平文データ２Ａとなる。したがって、処理部２３−２の出力結果は、処理部１３−２の出力結果である０．１２５Ａに対して、処理部２３−１の調整値（４）と処理部２３−２の調整値（４）とを乗算した倍数（１６倍）の値となる暗号化データとなっている。処理部２３−２の処理結果（調整値による乗算の内容が含まれている推論結果、推論結果（調整込）という）は、推論結果送信部２９によりクライアント装置３０に送信される。
【００７６】
クライアント装置３０では、復号部３８は、推論装置２０から送信される暗号化データである推論結果（調整込）を取得し、暗号データの暗号方式に対応する復号を行って、平文データの推論結果（調整込）を得て調整除去処理部３９に渡す。例えば、本例では、復号部３８は、ｅ２Ａを復号して、２Ａを得て、調整除去処理部３９に渡す。
【００７７】
調整除去処理部３９は、復号部３８から受け取った平文データの推論結果（調整込）（本例では、２Ａ）を、推論装置２０における各調整値により調整された乗数（本例では、４×４＝１６）で除算することにより、調整を除去した推論結果（０．１２５Ａ）を生成する。これにより、クライアント装置３０では、平文データに対して学習装置１０の処理部１３−１、１３−２の処理を実行した実行結果と同じ値を得ることができる。
【００７８】
以上説明したように、処理システム１では、推論装置２０においては、暗号化データを用いて秘匿状態を維持したまま処理を行うことができ、クライアント装置３０において、平文データに対して処理をした結果と同じ結果を得ることができる。
【００７９】
次に、一実施形態に係る処理システム１における処理動作について説明する。
【００８０】
図６は、一実施形態に係る処理システムの動作を示すシーケンス図である。
【００８１】
学習装置１０の学習制御部１４が記憶部１５に格納されている学習用データ１６を用いて、学習部１１のニューラルネットワークモデル１２により推論処理を実行させることで、ニューラルネットワークモデル１２の処理部１３における各種設定値の学習を行う（Ｓ１０１）。次いで、学習制御部１４は、学習によって得られた設定値に関する設定値情報を記憶部１５に格納する（Ｓ１０２）。
【００８２】
次いで、設定値通知部１８は、記憶部１５に格納された設定値情報１７を読み出して、推論装置２０に送信する（Ｓ１０３）。
【００８３】
推論装置２０の受信部２８は、学習装置１０から送信された設定値情報１７を受信して、記憶部２５に格納する（Ｓ１０４）。一方、クライアント装置３０の暗号部３７は、記憶部３３から対象データ３４を取得し、対象データ３４を所定の暗号により暗号化し(Ｓ１０５)、送信部３２は、暗号化した対象データを推論装置２０に送信する（Ｓ１０６）。
【００８４】
推論装置２０の受信部２８は、クライアント装置３０から推論対象の対象データを受信し、記憶部２５に格納する（Ｓ１０７）。なお、設定値情報１７を受信する時点と、対象データを受信する時点とは、いずれが先であってもよく、要は、推論処理を実行するまでに両方がそろっていればよい。
【００８５】
推論処理２０の推論制御部２４は、記憶部２５から設定値情報２７を取得し、設定値情報２７の各処理部２３用の設定値に対して、各処理部２３に対応する調整値を乗算させて整数化させることにより調整乗算値を生成し、調整乗算値を各処理部２３に設定する（Ｓ１０８）。次いで、推論制御部２４は、記憶部２５から暗号化データである対象データ２６を読み出して、ニューラルネットワークモデル２２の最初の処理レイヤー（レイヤー１）の処理部２３に入力する。この結果、ニューラルネットワークモデル２２において、対象データ２６を対象とした推論処理が実行されて、最終の処理レイヤー（レイヤーＮ）の処理部２３から推論結果（調整込）が推論結果送信部２９に出力されることとなる（Ｓ１０９）。
【００８６】
次いで、推論装置２０の推論結果送信部２９は、ニューラルネットワークモデル２２から渡された推論結果（調整込）を対象データの推論処理を要求したクライアント装置３０に対して送信する（Ｓ１１０）。
【００８７】
クライアント装置３０の受信部３６は、推論装置２０から推論結果（調整込）を受信して復号部３８に渡し、復号部３８が推論結果(調整込)を復号化し、調整除去処理部３９に渡す（Ｓ１１１）。調整除去処理部３９は、復号された推論結果(調整込)に対して、推論装置２０における各基準値により調整された乗数に基づいて、調整を除去する処理を実行することにより、最終的な推論結果（推論結果（最終））を生成し（Ｓ１１２）、生成した推論結果(最終)３５を記憶部３３に格納する（Ｓ１１３）。その後、結果表示部３１が、記憶部３３に格納された推論結果３５に基づいて、推論結果を表示出力する（Ｓ１１４）。
【００８８】
以上説明したように、本実施形態に係る処理システムによると、平文データに対する整数以外の乗算処理が必要な場合であっても、推論装置２０側では、暗号化データに対して、平文データに対する整数の乗算処理に対応する処理を実行すれば済むようになる。このため、平文に対する整数以外の乗算処理を含む処理について、推論装置２０側では、暗号化データによる秘匿状態を維持したままで処理をすることができる。これにより、推論装置２０から情報が漏えいしてしまうことを適切に防止することができる。
【００８９】
上記した学習装置１０、推論装置２０、クライアント装置３０は、それぞれコンピュータ装置により構成することができる。
【００９０】
図７は、コンピュータ装置の一実施例を示すブロック図である。なお、本実施形態では、学習装置１０、推論装置２０、及びクライアント装置３０は、別々のコンピュータ装置で構成されているが、これらコンピュータ装置は、同様な構成を有するものとすることができる。以下の説明では、便宜的に図７に示すコンピュータ装置を用いて、学習装置１０、推論装置２０、及びクライアント装置３０のそれぞれを構成するコンピュータ装置について説明することとする。
【００９１】
コンピュータ装置１００は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎ  Ｕｎｉｔ）１０１と、メインメモリ１０２と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０３と、リーダライタ１０４と、通信インターフェース（通信Ｉ／Ｆ）１０５と、補助記憶装置１０６と、入出力インターフェース（入出力Ｉ／Ｆ）１０７と、表示装置１０８と、入力装置１０９とを備える。ＣＰＵ１０１、メインメモリ１０２、ＧＰＵ１０３、リーダライタ１０４、通信Ｉ／Ｆ１０５、補助記憶装置１０６、入出力Ｉ／Ｆ１０７、及び表示装置１０８は、バス１１０を介して接続されている。学習装置１０と、推論装置２０と、クライアント装置３０とは、それぞれコンピュータ装置１００に記載の構成要素の一部または全てを適宜選択して構成される。
【００９２】
ここで、メインメモリ１０２又は補助記憶装置１０６の少なくとも一方が、学習装置１０の記憶部１５、推論装置２０の記憶部２５、及びクライアント装置３０の記憶部３３として機能する。
【００９３】
学習装置１０を構成するコンピュータ装置１００のＣＰＵ１０１は、学習装置１０の全体を統括制御する。ＣＰＵ１０１は、補助記憶装置１０６に格納されているプログラムをメインメモリ１０２に読み出して実行することにより各種処理を実行する。学習装置１０において、ＣＰＵ１０１は、補助記憶装置１０６に格納された処理プログラムを実行することにより、例えば、学習部１１のニューラルネットワークモデル１２を構成する。また、推論装置２０を構成するコンピュータ装置１００において、ＣＰＵ１０１は、補助記憶装置１０６に格納された処理プログラムを実行することにより、例えば、推論部２１のニューラルネットワークモデル２２を構成する。また、クライアント装置３０を構成するコンピュータ装置１００において、ＣＰＵ１０１は、補助記憶装置１０６に格納された処理プログラムを実行することにより、例えば、結果表示部３１、暗号部３７、復号部３８、及び調整除去処理部３９を構成する。なお、推論装置２０を構成するコンピュータ装置１００のＣＰＵ１０１は、クライアント装置３０を構成するコンピュータ装置１００のＣＰＵ１０１よりも処理性能が良いものとしてもよい。
【００９４】
メインメモリ１０２は、例えば、ＲＡＭ、ＲＯＭ等であり、ＣＰＵ１０１に実行されるプログラム（処理プログラム等）や、各種情報を記憶する。補助記憶装置１０６は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の非一時的記憶デバイス（不揮発性記憶デバイス）であり、ＣＰＵ１０１で実行されるプログラムや、各種情報を記憶する。学習装置１０を構成するコンピュータ装置１００では、メインメモリ１０２は、例えば、学習データ１６や設定値情報１７を記憶する。推論装置２０を構成するコンピュータ装置１００では、メインメモリ１０２は、例えば、対象データ２６や設定値情報２７を記憶する。クライアント装置３０を構成するコンピュータ装置１００では、メインメモリ１０２は、例えば、対象データ３４や推論結果３５を記憶する。
【００９５】
ＧＰＵ１０３は、例えば、画像処理等の特定の処理の実行に適しているプロセッサであり、例えば、並列的に行われる処理の実行に適している。本実施形態では、ＧＰＵ１０３は、ＣＰＵ１０１の指示に従って所定の処理を実行する。学習装置１０を構成するコンピュータ装置１００において、ＧＰＵ１０３は、少なくとも１つの処理部１３を構成してもよい。また、推論装置２０を構成するコンピュータ装置１００において、ＧＰＵ１０３は、少なくとも１つの処理部２３を構成してもよい。
【００９６】
リーダライタ１０４は、記録媒体１１１を着脱可能であり、記録媒体１１１からのデータの読み出し、及び記録媒体１１１へのデータの書き込みを行う。記録媒体１１１としては、例えば、ＳＤメモリーカード、ＦＤ（フロッピーディスク：登録商標）、ＣＤ、ＤＶＤ、ＢＤ（登録商標）、フラッシュメモリ等の非一時的記録媒体（不揮発性記録媒体）がある。本実施形態においては、記録媒体１１１に、処理プログラムを格納しておき、リードライタ１０４により、これを読み出して、利用するようにしてもよい。また、学習装置１０を構成するコンピュータ装置１００において、記録媒体１１１に、学習用データを格納しておき、リードライタ１０４により、これを読み出して利用するようにしてもよい。また、クライアント装置３０を構成するコンピュータ装置１００において、記録媒体１１１に、対象データを格納しておき、リードライタ１０４により、これを読み出して記憶部３３に格納するようにしてもよい。
【００９７】
通信Ｉ／Ｆ１０５は、ネットワーク４０、５０に接続されており、ネットワーク４０、５０に接続された他の装置との間でのデータの送受信を行う。学習装置１０は、例えば、通信Ｉ／Ｆ１０５を介してネットワーク４０に接続された推論装置２０に設定値情報を送信する。学習装置１０の設定値通知部１８、推論装置２０の受信部２８及び推論結果送信部２９、並びにクライアント装置３０の送信部３２及び受信部３６は、それぞれを構成するコンピュータ装置１００の通信Ｉ／Ｆ１０５及びＣＰＵ１０１によって構成される。
【００９８】
入出力Ｉ／Ｆ１０７は、例えば、マウス、キーボード等の入力装置１０９と接続されている。学習装置１０を構成するコンピュータ装置１００において、入出力Ｉ／Ｆ１０７は、入力装置１０９を用いた、学習装置１０の管理者による操作入力を受け付ける。また、推論装置２０を構成するコンピュータ装置１００において、入出力Ｉ／Ｆ１０７は、入力装置１０９を用いた、推論装置２０の管理者による操作入力を受け付ける。さらに、クライアント装置３０を構成するコンピュータ装置１００において、入出力Ｉ／Ｆ１０７は、入力装置１０９を用いた、クライアント装置３０のユーザによる操作入力を受け付ける。
【００９９】
表示装置１０８は、例えば、液晶ディスプレイ等のディスプレイ装置であり、各種情報を表示出力する。
【０１００】
次に、変形例に係る処理システムについて説明する。
【０１０１】
変形例に係る処理システムは、上記した図５に示す処理システムにおいて、学習装置１０に代えて、学習装置１０Ａを備え、推論装置２０に代えて、推論装置２０Ａを備えるようにしたものである。
【０１０２】
学習装置１０Ａは、設定値通知部１８に代えて、設定通知部１８Ａを備える。設定通知部１８Ａは、設定値通知部１８の機能に加えて、学習された処理部１３の乗数となる設定値（係数）に対して、推論装置２０側の対応する処理部２３における調整値を乗算することにより、調整乗算値を算出し、推論装置２０Ａの対応する処理部２３に設定されるように調整乗算値を送信する。
【０１０３】
推論装置２０Ａにおいては、調整乗算値受信部の一例としての受信部２８が学習装置１０Ａから送信される調整乗算値を記憶部２５に格納し、推論制御部２４が各処理部２３に設定する調整乗算値を記憶部２５から取得して各処理部２３に設定する。各処理部２３は、設定された調整乗算値を用いて、暗号化データの演算処理を実行する。
【０１０４】
この処理システム１によると、推論装置２０Ａ側では、学習装置１０Ａから取得した調整乗算値をそのまま利用することができるので、処理負荷が軽減される。
【０１０５】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１０６】
例えば、上記実施形態では、２つの処理レイヤー（処理部）を有するニューラルネットワークモデルを用いて処理を実行する学習装置及び推論装置を例に示していたが、本発明はこれに限られず、１つの処理レイヤー（処理部）のみのニューラルネットワークモデルや、３つ以上の処理レイヤー（処理部）を有するニューラルネットワークモデルを用いて処理を実行する学習装置及び推論装置に対しても同様に適用することができる。
【０１０７】
また、上記実施形態では、ニューラルネットワークモデルを用いた処理を実行する処理装置に適用される例を示していたが、本発明はこれに限られず、例えば、ニューラルネットワークモデルを用いずに処理を実行する処理装置に対しても同様に適用することができる。
【０１０８】
また、上記実施形態においては、準同型暗号として、加法準同型暗号を例にしていたが、本発明はこれに限られず、完全準同型暗号や、ＳｏｍｅＷｈａｔ準同型暗号としてもよい。
【０１０９】
また、上記実施形態において、学習装置１０（１０Ａ）、推論装置２０（２０Ａ）、又はクライアント装置３０のＣＰＵ１０１がプログラムを実行することにより構成していた機能部の少なくとも一部を、各装置内の他のプロセッサや、特定の処理を実行するハードウェア回路で構成するようにしてもよい。また、学習装置１０（１０Ａ）のＧＰＵ１０３により構成していた処理部１３を、ＣＰＵ１０１により構成するようにしてもよく、別のハードウェア回路で構成してもよい。また、推論装置２０（２０Ａ）のＧＰＵ１０３により構成していた処理部２３を、ＣＰＵ１０１により構成するようにしてもよく、別のハードウェア回路で構成してもよい。
【０１１０】
また、上記実施形態では、対象データを受け付ける入力部の一例として受信部２８を例に挙げていたが、本発明はこれに限られず、例えば、入力部として、対象データが格納された記録媒体から対象データを読み取るリーダライタとしてもよく、また、対象データとなる画像データを取り込むカメラとしてもよい。
【０１１１】
また、上記実施形態では、学習装置１０（１０Ａ）と推論装置２０（２０Ａ）を別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、同一のハードウェアにより構成してもよい。
【０１１２】
また、上記実施形態では、推論装置２０（２０Ａ）とクライアント装置３０とを別体のハードウェアで構成した例を示していたが、本発明はこれに限られず、例えば、クライアント装置３０の処理能力が十分であれば、推論処理２０（２０Ａ）とクライアント装置３０とを同一のハードウェアにより構成してもよい。
【符号の説明】
【０１１３】
１…処理システム、１０，１０Ａ…学習装置、１１…学習部、１２…ニューラルネットワークモデル、１３…処理部、１４…学習制御部、１５…記憶部、１６…学習用データ、１７…設定値情報、１８，１８Ａ…設定値通知部、２０，２０Ａ…推論装置、２１…推論部、２２…ニューラルネットワークモデル、２３…処理部、２４…推論制御部、２５…記憶部、２６…対象データ、２７…設定値情報、２８…受信部、２９…推論結果送信部、３０…クライアント装置、３３…記憶部、３７…暗号部、３８…復号部、３９…調整除去処理部、１０１…ＣＰＵ
【図１】
2019113761.tif 000003
【図２】
2019113761.tif 000004
【図３】
2019113761.tif 000005
【図４】
2019113761.tif 000006
【図５】
2019113761.tif 000007
【図６】
2019113761.tif 000008
【図７】
2019113761.tif 000009
【図８】
2019113761.tif 000010