(57)【要約】【課題】学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供する。【解決手段】モデル提供サーバ１のモデル生成部１１０は、機械学習を用いて学習モデルを生成する。暗号化部１１２は、完全準同型暗号の公開鍵である第１公開鍵を用いて学習モデルを暗号化して暗号化学習モデルを生成する。送信部１２は、暗号化学習モデルをサービス提供サーバ２に送信する。サービス提供サーバ２の受信部２３は、モデル提供サーバ１から暗号化学習モデルを受信するとともに、ユーザ端末３から第１公開鍵を用いて処理対象データを暗号化した暗号化処理対象データを受信する。モデル実行部２１０は、暗号化学習モデルと暗号化処理対象データとを用いて第１暗号化出力を生成する。送信部２２は、第１暗号化出力をユーザ端末３が生成した第２公開鍵による暗号に置換した第２暗号化出力をユーザ端末３に送信する。【選択図】図２
2019168590.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバ、サービス提供サーバ、及びユーザ端末を含む情報処理システムにおいて実行される情報処理方法であって、
前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第１公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、
前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、
前記モデル提供サーバが、前記第１公開鍵を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記モデル提供サーバから受信した前記第１公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、
前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第１公開鍵とは異なる第２公開鍵とを前記サービス提供サーバに送信するステップと、
前記ユーザ端末が、前記第２公開鍵を前記モデル提供サーバに送信するステップと、
前記モデル提供サーバが、前記ユーザ端末から受信した前記第２公開鍵を用いて前記第１公開鍵に対応する第１秘密鍵を暗号化した第２公開鍵暗号化第１秘密鍵を生成するステップと、
前記モデル提供サーバが、前記第２公開鍵暗号化第１秘密鍵を前記モデル提供サーバに送信するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第１公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第１暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第１暗号化出力を前記第２公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、
前記サービス提供サーバが、前記第２公開鍵暗号化第１秘密鍵を用いて、前記第２公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第１公開鍵による暗号化を復号して得られる第２暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第２暗号化出力を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記第２公開鍵に対応する第２秘密鍵を用いて、前記サービス提供サーバから受信した前記第２暗号化出力を復号するステップと、
を含む情報処理方法。
【請求項２】
前記モデル提供サーバが、前記完全準同型暗号の公開鍵であって前記第１公開鍵及び前記第２公開鍵とは異なる第３公開鍵を生成するステップと、
前記モデル提供サーバが、前記第３公開鍵で前記第１秘密鍵を暗号化した第３公開鍵暗号化第１秘密鍵を生成するステップと、
前記モデル提供サーバが、前記第３公開鍵と前記第３公開鍵暗号化第１秘密鍵とを前記モデル提供サーバに送信するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記第３公開鍵を用いて、前記暗号化学習モデルを再度暗号化して二重暗号化学習モデルを生成するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記第３公開鍵暗号化第１秘密鍵を用いて、前記第３公開鍵で暗号化された状態のまま前記二重暗号化学習モデルのうち前記第１公開鍵による暗号化を復号するステップと、
をさらに含む請求項１に記載の情報処理方法。
【請求項３】
前記学習モデルは、前記学習モデルの処理対象データと前記学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、前記処理対象データを入力とする前記学習モデルの出力を算出するように構成されている、
請求項１又は２に記載の情報処理方法。
【請求項４】
通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバとサービス提供サーバとを含む情報処理システムであって、
前記モデル提供サーバは、
機械学習を用いて学習モデルを生成するモデル生成部と、
完全準同型暗号の公開鍵である第１公開鍵を用いて前記学習モデルを暗号化して暗号化学習モデルを生成する暗号化部と、
前記暗号化学習モデルを前記サービス提供サーバに送信するとともに、前記第１公開鍵をユーザ端末に送信する送信部と、
前記完全準同型暗号の公開鍵であって前記第１公開鍵とは異なる第２公開鍵を前記ユーザ端末から受信する受信部と、を備え、
前記暗号化部は、前記第２公開鍵を用いて、前記第１公開鍵に対応する第１秘密鍵を暗号化した第２公開鍵暗号化第１秘密鍵を生成し、
前記送信部は、前記第２公開鍵暗号化第１秘密鍵を前記モデル提供サーバに送信し、
前記サービス提供サーバは、
前記モデル提供サーバから前記暗号化学習モデルを受信するとともに、前記ユーザ端末から前記第１公開鍵を用いて前記学習モデルの処理対象データを暗号化した暗号化処理対象データを受信する受信部と、
前記暗号化学習モデルと前記暗号化処理対象データとを用いて、前記第１公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第１暗号化出力を生成するモデル実行部と、
前記第１暗号化出力を前記第２公開鍵を用いて再度暗号化した二重暗号化出力を生成する暗号化部と、
前記第２公開鍵暗号化第１秘密鍵を用いて、前記第２公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第１公開鍵による暗号化を復号して得られる第２暗号化出力を取得する復号部と、
前記第２暗号化出力を前記ユーザ端末に送信する送信部と、を備える、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理方法及び情報処理システムに関し、特に、機械学習を用いて生成した学習モデルと、その学習モデルの処理対象とするデータとを秘匿化する技術に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 675-678). ACM.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。したがって、学習モデルの作成者がユーザに利用させることを目的として学習モデルをユーザに提供すると、提供した学習モデルがその後不正に利用される恐れが生じる。
【０００５】
一方、学習モデルのユーザに学習モデル自体を提供せずに、通信ネットワークを介してユーザから処理対象データを取得し、学習モデルの処理結果のみをユーザに提供する態様も考えられる。しかしながら、この態様では、学習モデルに入力するデータに個人情報が含まれる等によって漏洩が問題となるデータの場合、ユーザは学習モデルの利用に二の足を踏みかねない。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバ、サービス提供サーバ、及びユーザ端末を含む情報処理システムにおいて実行される情報処理方法である。この方法は、前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第１公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、前記モデル提供サーバが、前記第１公開鍵を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記モデル提供サーバから受信した前記第１公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第１公開鍵とは異なる第２公開鍵とを前記サービス提供サーバに送信するステップと、前記ユーザ端末が、前記第２公開鍵を前記モデル提供サーバに送信するステップと、前記モデル提供サーバが、前記ユーザ端末から受信した前記第２公開鍵を用いて前記第１公開鍵に対応する第１秘密鍵を暗号化した第２公開鍵暗号化第１秘密鍵を生成するステップと、前記モデル提供サーバが、前記第２公開鍵暗号化第１秘密鍵を前記モデル提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第１公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第１暗号化出力を取得するステップと、前記サービス提供サーバが、前記第１暗号化出力を前記第２公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、前記サービス提供サーバが、前記第２公開鍵暗号化第１秘密鍵を用いて、前記第２公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第１公開鍵による暗号化を復号して得られる第２暗号化出力を取得するステップと、前記サービス提供サーバが、前記第２暗号化出力を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記第２公開鍵に対応する第２秘密鍵を用いて、前記サービス提供サーバから受信した前記第２暗号化出力を復号するステップと、を含む。
【０００８】
前記情報処理方法は、前記モデル提供サーバが、前記完全準同型暗号の公開鍵であって前記第１公開鍵及び前記第２公開鍵とは異なる第３公開鍵を生成するステップと、前記モデル提供サーバが、前記第３公開鍵で前記第１秘密鍵を暗号化した第３公開鍵暗号化第１秘密鍵を生成するステップと、前記モデル提供サーバが、前記第３公開鍵と前記第３公開鍵暗号化第１秘密鍵とを前記モデル提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第３公開鍵を用いて、前記暗号化学習モデルを再度暗号化して二重暗号化学習モデルを生成するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第３公開鍵暗号化第１秘密鍵を用いて、前記第３公開鍵で暗号化された状態のまま前記二重暗号化学習モデルのうち前記第１公開鍵による暗号化を復号するステップと、をさらに含んでもよい。
【０００９】
前記情報処理方法において、前記学習モデルは、前記学習モデルの処理対象データと前記学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、前記処理対象データを入力とする前記学習モデルの出力を算出するように構成されていてもよい。
【００１０】
本発明の第２の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバとサービス提供サーバとを含む情報処理システムである。このシステムにおいて、前記モデル提供サーバは、機械学習を用いて学習モデルを生成するモデル生成部と、完全準同型暗号の公開鍵である第１公開鍵を用いて前記学習モデルを暗号化して暗号化学習モデルを生成する暗号化部と、前記暗号化学習モデルを前記サービス提供サーバに送信するとともに、前記第１公開鍵をユーザ端末に送信する送信部と、前記完全準同型暗号の公開鍵であって前記第１公開鍵とは異なる第２公開鍵を前記ユーザ端末から受信する受信部と、を備える。前記暗号化部は、前記第２公開鍵を用いて、前記第１公開鍵に対応する第１秘密鍵を暗号化した第２公開鍵暗号化第１秘密鍵を生成し、前記送信部は、前記第２公開鍵暗号化第１秘密鍵を前記モデル提供サーバに送信する。また、前記サービス提供サーバは、前記モデル提供サーバから前記暗号化学習モデルを受信するとともに、前記ユーザ端末から前記第１公開鍵を用いて前記学習モデルの処理対象データを暗号化した暗号化処理対象データを受信する受信部と、前記暗号化学習モデルと前記暗号化処理対象データとを用いて、前記第１公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第１暗号化出力を生成するモデル実行部と、前記第１暗号化出力を前記第２公開鍵を用いて再度暗号化した二重暗号化出力を生成する暗号化部と、前記第２公開鍵暗号化第１秘密鍵を用いて、前記第２公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第１公開鍵による暗号化を復号して得られる第２暗号化出力を取得する復号部と、前記第２暗号化出力を前記ユーザ端末に送信する送信部と、を備える。
【発明の効果】
【００１１】
本発明によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る情報処理システムの構成の概要を模式的に示す図である。
【図２】実施の形態に係るモデル提供サーバ、サービス提供サーバ、及びユーザ端末の機能構成を模式的に示す図である。
【図３】実施の形態に係る情報処理システムで実行される処理の流れを説明するためのシーケンス図の前半部を示す図である。
【図４】実施の形態に係る情報処理システムで実行される処理の流れを説明するためのシーケンス図の後半部を示す図である。
【図５】実施の形態に係るモデル提供サーバ、サービス提供サーバ、及びユーザ端末がそれぞれ生成又は取得するデータの一覧を表形式でまとめた図である。
【図６】実施の形態に係る情報処理システムで実行される暗号鍵の更新処理を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１３】
＜実施の形態の概要＞
図１は、実施の形態に係る情報処理システムＳの構成の概要を模式的に示す図である。以下、図１を参照して、実施の形態の概要を述べる。
【００１４】
図１に示すように、実施の形態に係る情報処理システムＳは、モデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３を含んでいる。モデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３は、通信ネットワークＮを介して互いに通信可能な態様で接続している。
【００１５】
モデル提供サーバ１は、機械学習によって学習モデルを生成する装置である。モデル提供サーバ１が生成する学習モデルは、処理対象とするデータを入力として、何らかの処理結果を出力するように構成されたデジタルデータである。一例として、モデル提供サーバ１が生成する学習モデルは、処理対象として画像データが入力されると、その画像データに含まれる被写体を認識して被写体の種類、数、及び画像中の場所等を出力する画像認識エンジンである。
【００１６】
サービス提供サーバ２は、モデル提供サーバ１が生成した学習モデルを受け取り、ユーザにサービスを提供する装置である。サービス提供サーバ２は、ユーザが使用するユーザ端末３から通信ネットワークＮを介して処理対象のデータを受け取る。続いて、サービス提供サーバ２は、受け取ったデータを学習モデルに適用し、出力を取得する。最後に、サービス提供サーバ２は、取得した学習モデルの出力を通信ネットワークＮを介してユーザ端末３に送信する。
【００１７】
ここで、モデル提供サーバ１は、学習モデルを完全準同型暗号（Fully Homomorphic. Encryption）の公開鍵で暗号化した学習モデルを、サービス提供サーバ２に送信する。また、ユーザ端末３は、学習モデルの暗号化に用いられた公開鍵をモデル提供サーバ１から受信しており、その公開鍵を用いて処理対象のデータを暗号化した後に、サービス提供サーバ２に送信する。すなわち、サービス提供サーバ２は、同じ公開鍵で暗号化された学習モデルと処理対象のデータとを取得することになる。
【００１８】
完全準同型暗号は、データを暗号化したまま、加法演算及び乗法演算が可能な暗号である。具体的には、ふたつの数値の平文をａ及びｂとし、ａ及びｂをそれぞれ暗号化したものをＥｎｃ（ａ）及びＥｎｃ（ｂ）とする。また、ａとｂとの加法ａ＋ｂを暗号化したものをＥｎｃ（ａ＋ｂ）、ａとｂとの乗法ａ×ｂを暗号化したものをＥｎｃ（ａ×ｂ）とする。このとき、完全準同型暗号では、以下の式（１）及び式（２）が成り立つ。
Ｅｎｃ（ａ）＋Ｅｎｃ（ｂ）＝Ｅｎｃ（ａ＋ｂ）    （１）
Ｅｎｃ（ａ）×Ｅｎｃ（ｂ）＝Ｅｎｃ（ａ×ｂ）    （２）
【００１９】
実施の形態に係るモデル提供サーバ１が生成する学習モデルは、学習モデルの処理対象データと学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、処理対象データを入力とする学習モデルの出力を算出するように構成されている。言い換えると、実施の形態に係るモデル提供サーバ１が生成する学習モデルは、処理の途中にシグモイド関数等の非線形関数が含まれず、加法演算又は乗法演算のみ含まれる。これにより、実施の形態に係るサービス提供サーバ２は、完全準同型暗号の公開鍵で暗号化された学習モデルと処理対象のデータとを取得し、暗号化されたままの状態で処理対象のデータを学習モデルに適用することができる。
【００２０】
なお、サービス提供サーバ２が処理対象のデータを学習モデルに適用することで得られる出力も、モデル提供サーバ１が生成した公開鍵によって暗号化されたままの状態である。このため、サービス提供サーバ２が暗号化された状態の出力をユーザ端末３に送信しても、ユーザ端末３は出力内容を確認することができない。
【００２１】
そこで、サービス提供サーバ２は、モデル提供サーバ１が生成した公開鍵で暗号された状態の出力を、ユーザ端末３が生成した別の公開鍵で暗号化した状態に書き換えてからユーザ端末３に送信する。これにより、ユーザ端末３は、自身が所有する秘密鍵で出力を復号することにより、出力内容を確認することができる。
【００２２】
このように、実施の形態に係る情報処理システムＳによれば、サービス提供サーバ２及びユーザ端末３は、平文の状態の学習モデルを取得することができない。また、モデル提供サーバ１及びサービス提供サーバ２は、平文の状態の処理対象データを取得することができない。それにもかかわらず、ユーザ端末３は、処理対象データを学習モデルに適用した結果を取得することができる。したがって、実施の形態に係る情報処理システムＳは、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができ、学習モデルと処理対象データとの漏洩を抑制できる。
【００２３】
＜実施の形態に係るモデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３の機能構成＞
図２は、実施の形態に係るモデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３の機能構成を模式的に示す図である。モデル提供サーバ１は、記憶部１０、制御部１１、送信部１２、及び受信部１３を備える。サービス提供サーバ２は、記憶部２０、制御部２１、送信部２２、及び受信部２３を備える。ユーザ端末３は、記憶部３０、制御部３１、送信部３２、及び受信部３３を備える。
【００２４】
記憶部１０は、モデル提供サーバ１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）やモデル提供サーバ１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置である。
【００２５】
同様に、記憶部２０は、サービス提供サーバ２を実現するコンピュータのＢＩＯＳ等を格納するＲＯＭやサービス提供サーバ２の作業領域となるＲＡＭ、ＯＳやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤやＳＳＤ等の大容量記憶装置である。さらに、記憶部３０は、ユーザ端末３を実現するコンピュータのＢＩＯＳ等を格納するＲＯＭやユーザ端末３の作業領域となるＲＡＭ、ＯＳやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤやＳＳＤ等の大容量記憶装置である。
【００２６】
制御部１１は、モデル提供サーバ１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部１０に記憶されたプログラムを実行することによってモデル生成部１１０、鍵生成部１１１、及び暗号化部１１２として機能する。同様に、制御部２１は、サービス提供サーバ２のＣＰＵやＧＰＵ等のプロセッサであり、記憶部２０に記憶されたプログラムを実行することによってモデル実行部２１０、暗号化部２１１、及び復号部２１２として機能する。さらに、制御部３１は、ユーザ端末３のＣＰＵやＧＰＵ等のプロセッサであり、記憶部３０に記憶されたプログラムを実行することによって暗号化部３１０、鍵生成部３１１、及び復号部３１２として機能する。
【００２７】
なお、図２は、モデル提供サーバ１及びサービス提供サーバ２が単一の装置で構成されている場合の例を示している。しかしながら、モデル提供サーバ１及びサービス提供サーバ２は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部１１及び制御部２１を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【００２８】
＜情報処理システムＳで実行される処理のシーケンス図＞
図３は、実施の形態に係る情報処理システムＳで実行される処理の流れを説明するためのシーケンス図の前半部を示す図である。また、図４は、実施の形態に係る情報処理システムＳで実行される処理の流れを説明するためのシーケンス図の後半部分を示す図である。以下、モデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３が連携して実行する処理を、図２、図３、及び図４を参照して説明する。
【００２９】
モデル生成部１１０は、機械学習を用いて学習モデルを生成する（Ｓ２）。具体的には、モデル生成部１１０は、あらかじめ収集した学習用データをニューラルネットワーク、ＳＶＭ（Support Vector Machine）、ブースティング等の既知の機械学習で処理することにより、学習モデルを生成する。ここで、モデル生成部１１０は、既知の学習モデルにおいて非線形な関数が用いられている場合には、あらかじめ線形関数で近似することによって乗法演算及び加法演算のみの学習モデルに置き換えてから学習を実行する。
【００３０】
鍵生成部１１１は、完全準同型暗号の公開鍵方式の暗号鍵を生成する（Ｓ４）。公開鍵方式の暗号鍵であるため、鍵生成部１１１は、公開鍵と、その公開鍵に対応する秘密鍵とを生成する。後述するが、完全準同型暗号の公開鍵方式の暗号鍵はサービス提供サーバ２によっても生成される。したがって、鍵生成部１１１が生成する公開鍵を「第１公開鍵ｐｋ１」又は単に「ｐｋ１」と記載する。同様に、第１秘密鍵を「第１秘密鍵ｓｋ１」又は単に「ｓｋ１」と記載する。なお、鍵生成部１１１及びサービス提供サーバ２は、完全準同型暗号として、例えばＢＶＧ方式（Brakerski-Gentry-Vaikuntanathan cryptosystem）の暗号を用いればよい。
【００３１】
暗号化部１１２は、第１公開鍵ｐｋ１を用いて学習モデルを暗号化して暗号化学習モデルを生成する（Ｓ６）。以下、学習モデルを「学習モデルｗ」又は単に「ｗ」と記載する。また、第１秘密鍵ｓｋ１で暗号化した学習モデルｗを「暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）」又は単に「Ｅｎｃ（ｐｋ１，ｗ）」と記載する。以下、公開鍵ｐｋを用いてデータｄを暗号化して得られるデータをＥｎｃ（ｐｋ，ｄ）のように記載する。
【００３２】
送信部１２は、暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）をサービス提供サーバ２に送信する（Ｓ８）。また、送信部１２は、第１公開鍵ｐｋ１をユーザ端末３に送信する（Ｓ１０）。
【００３３】
ユーザ端末３の受信部３３は、モデル提供サーバ１から送信された第１公開鍵ｐｋ１を受信する（Ｓ１２）。暗号化部３１０は、第１公開鍵ｐｋ１を用いて学習モデルｗの処理対象データｘを暗号化して暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）を生成する（Ｓ１４）。
【００３４】
鍵生成部３１１は、完全準同型暗号の公開鍵であって第１公開鍵ｐｋ１とは異なる第２公開鍵ｐｋ２と、第２公開鍵ｐｋ２に対応する第２秘密鍵ｓｋ２とを含む第２暗号鍵を生成する（Ｓ１６）。送信部３２は、第２公開鍵ｐｋ２をモデル提供サーバ１及びサービス提供サーバ２に送信する（Ｓ１８）。
【００３５】
モデル提供サーバ１の受信部１３は、ユーザ端末３から第２公開鍵ｐｋ２を受信する（Ｓ２０）。また、サービス提供サーバ２の受信部２３は、モデル提供サーバ１から暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）を受信する（Ｓ２２）。受信部２３は、ユーザ端末３から第２公開鍵ｐｋ２を受信する（Ｓ２４）。
【００３６】
ユーザ端末３の送信部３２は、暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）をサービス提供サーバ２に送信する（Ｓ２６）。サービス提供サーバ２の受信部２３は、ユーザ端末３から暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）を受信する（Ｓ２８）。
【００３７】
モデル提供サーバ１の暗号化部１１２は、ユーザ端末３から受信した第２公開鍵ｐｋ２を用いて第１秘密鍵ｓｋ１を暗号化した第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）を生成する（Ｓ３０）。送信部１２は、第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）をサービス提供サーバ２に送信する（Ｓ３２）。
【００３８】
サービス提供サーバ２の受信部２３は、モデル提供サーバ１から第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）を受信する（Ｓ３４）。モデル実行部２１０は、暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）と暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）とを用いて、第１公開鍵ｐｋ１で暗号化された状態の処理対象データｘを入力とする学習モデルｗの出力である第１暗号化出力Ｅｎｃ（ｐｋ１，ｆｗ（ｘ））を生成する（Ｓ３６）。
【００３９】
暗号化部２１１は、第１暗号化出力Ｅｎｃ（ｐｋ１，ｆｗ（ｘ））を、ユーザ端末３から受信した第２公開鍵ｐｋ２を用いて再度暗号化した二重暗号化出力Ｅｎｃ（ｐｋ２，Ｅｎｃ（ｐｋ１，ｆｗ（ｘ）））を生成する（Ｓ３８）。
【００４０】
復号部２１２は、モデル提供サーバ１から受信した第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）を用いて、第２公開鍵ｐｋ２で暗号化された状態のまま二重暗号化出力Ｅｎｃ（ｐｋ２，Ｅｎｃ（ｐｋ１，ｆｗ（ｘ）））のうち第１公開鍵ｐｋ１による暗号化を復号して得られる第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））を取得する（Ｓ４０）。送信部２２は、第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））をユーザ端末３に送信する（Ｓ４２）。
【００４１】
ユーザ端末３の受信部３３は、サービス提供サーバ２から第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））を受信する（Ｓ４４）。復号部３１２は、第２秘密鍵ｓｋ２を用いて、サービス提供サーバ２から受信した第２暗号化出力第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））を復号する（Ｓ４６）。これにより、ユーザ端末３は、暗号化されていない処理対象データｘを入力とする学習モデルｗの出力ｆｗ（ｘ）を得ることができる。
【００４２】
図５（ａ）−（ｃ）は、実施の形態に係るモデル提供サーバ１、サービス提供サーバ２、及びユーザ端末３がそれぞれ生成又は取得するデータの一覧を表形式でまとめた図である。図５（ａ）に示すように、モデル提供サーバ１は、学習モデルｗ、第１公開鍵ｐｋ１、及び第１秘密鍵ｓｋ１を生成し、ユーザ端末３から第２公開鍵ｐｋ２を取得する。モデル提供サーバ１はさらに、第２公開鍵ｐｋ２を用いて第１秘密鍵ｓｋ１を暗号化した第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）も生成する。
【００４３】
図５（ｂ）に示すように、サービス提供サーバ２は、モデル提供サーバ１から暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）と第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）とを取得する。また、サービス提供サーバ２は、ユーザ端末３から第２公開鍵ｐｋ２と暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）とを取得する。
【００４４】
サービス提供サーバ２は、暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）と暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）とに基づいて、第１暗号化出力Ｅｎｃ（ｐｋ１，ｆｗ（ｘ））を生成する。サービス提供サーバ２は、第２公開鍵ｐｋ２を用いて第１暗号化出力Ｅｎｃ（ｐｋ１，ｆｗ（ｘ））を暗号化した二重暗号化出力Ｅｎｃ（ｐｋ２，Ｅｎｃ（ｐｋ１，ｆｗ（ｘ）））を生成する。さらに、サービス提供サーバ２は、第２公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ２，ｓｋ１）を用いて二重暗号化出力Ｅｎｃ（ｐｋ２，Ｅｎｃ（ｐｋ１，ｆｗ（ｘ）））を復号して第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））も生成する。
【００４５】
図５（ｃ）に示すように、ユーザ端末３は、処理対象データｘ、第２公開鍵ｐｋ２、第２秘密鍵ｓｋ２を生成する。ユーザ端末３は、モデル提供サーバ１から第１公開鍵ｐｋ１を取得する。ユーザ端末３は、第１公開鍵ｐｋ１を用いて処理対象データｘを暗号化した暗号化処理対象データＥｎｃ（ｐｋ１，ｘ）を生成する。さらに、ユーザ端末３は、サービス提供サーバ２から第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））を取得する。ユーザ端末３は、第２秘密鍵ｓｋ２を用いて第２暗号化出力Ｅｎｃ（ｐｋ２，ｆｗ（ｘ））を復号することにより、処理対象データｘを入力とする学習モデルｗの出力ｆｗ（ｘ）を生成する。
【００４６】
このように、実施の形態に係るモデル提供サーバ１が生成した学習モデルｗは、平文のままでサービス提供サーバ２又はユーザ端末３に送信されることはない。また、サービス提供サーバ２及びユーザ端末３はいずれも、暗号化された学習モデルｗを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムＳは、学習モデルｗを秘匿することができ、学習モデルｗが漏洩することを抑制することができる。
【００４７】
また、実施の形態に係るユーザ端末３が生成した処理対象データｘは、平文のままでモデル提供サーバ１又はサービス提供サーバ２に送信されることはない。さらに、モデル提供サーバ１及びサービス提供サーバ２はいずれも、暗号化された処理対象データｘを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムＳは、処理対象データｘを秘匿することができ、処理対象データｘが漏洩することを抑制することができる。
【００４８】
（学習モデルｗの暗号鍵の更新）
上述したように、実施の形態に係るモデル提供サーバ１は、学習モデルｗを暗号化した状態でサービス提供サーバ２に送信する。ここで、学習モデルｗを暗号化する公開鍵を定期的に更新できれば、万が一公開鍵に対応する秘密鍵が漏洩したとしても、学習モデルを漏洩から守ることができる。そこで、以下、学習モデルｗを暗号化する公開鍵の更新処理について説明する。
【００４９】
図６は、実施の形態に係る情報処理システムＳで実行される暗号鍵の更新処理を説明するためのシーケンス図である。モデル提供サーバ１の鍵生成部１１１は、完全準同型暗号の公開鍵であって第１公開鍵ｐｋ１及び第２公開鍵ｐｋ２とは異なる第３公開鍵ｐｋ３と、第３公開鍵ｐｋ３に対応する第３秘密鍵ｓｋ３とを含む第３暗号鍵を生成する（Ｓ４８）。
【００５０】
暗号化部１１２は、第３公開鍵ｐｋ３で第１秘密鍵ｓｋ１を暗号化した第３公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ３，ｓｋ１）を生成する（Ｓ５０）。送信部１２は、第３公開鍵ｐｋ３と第３公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ３，ｓｋ１）とをサービス提供サーバ２に送信する（Ｓ５２）。
【００５１】
サービス提供サーバ２の受信部２３は、モデル提供サーバ１から第３公開鍵ｐｋ３と第３公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ３，ｓｋ１）とを受信する（Ｓ５４）。暗号化部２１１は、第３公開鍵ｐｋ３を用いて、暗号化学習モデルＥｎｃ（ｐｋ１，ｗ）を再度暗号化して二重暗号化学習モデル暗号化学習モデルＥｎｃ（ｐｋ３，Ｅｎｃ（ｐｋ１，ｗ））を生成する（Ｓ５６）。
【００５２】
復号部２１２は、第３公開鍵暗号化第１秘密鍵Ｅｎｃ（ｐｋ３，ｓｋ１）を用いて、第３公開鍵ｐｋ３で暗号化された状態のまま二重暗号化学習モデル暗号化学習モデルＥｎｃ（ｐｋ３，Ｅｎｃ（ｐｋ１，ｗ））のうち第１公開鍵ｐｋ１による暗号化を復号する（Ｓ５８）。これにより、復号部２１２は、第３公開鍵ｐｋ３で暗号化した学習モデルｗであるＥｎｃ（ｐｋ３，ｗ）を生成することができる。
【００５３】
以上より、情報処理システムＳは、サービス提供サーバ２が保持する学習モデルｗの暗号鍵を更新することができる。例えば、数十万から百万といったオーダーの大量の学習データを用いる機械学習で生成した学習モデルｗはデータサイズも大きく、また、暗号化後のデータサイズも同様である。したがって、モデル提供サーバ１が第３公開鍵ｐｋ３で学習モデルｗを暗号化した後にサービス提供サーバ２に送信する場合と比較して、上述した暗号鍵の更新処理は、通信ネットワークＮを経由するデータ量を大幅に削減できる点で有利である。
【００５４】
＜実施の形態に係るモデル提供サーバ１が奏する効果＞
以上説明したように、実施の形態に係るモデル提供サーバ１によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる。
【００５５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【００５６】
１・・・モデル提供サーバ
１０・・・記憶部
１１・・・制御部
１１０・・・モデル生成部
１１１・・・鍵生成部
１１２・・・暗号化部
１２・・・送信部
１３・・・受信部
２・・・サービス提供サーバ
２０・・・記憶部
２１・・・制御部
２１０・・・モデル実行部
２１１・・・暗号化部
２１２・・・復号部
２２・・・送信部
２３・・・受信部
３・・・ユーザ端末
３０・・・記憶部
３１・・・制御部
３１０・・・暗号化部
３１１・・・鍵生成部
３１２・・・復号部
３２・・・送信部
３３・・・受信部
Ｎ・・・通信ネットワーク
Ｓ・・・情報処理システム
【図１】
2019168590.tif 000003
【図２】
2019168590.tif 000004
【図３】
2019168590.tif 000005
【図４】
2019168590.tif 000006
【図５】
2019168590.tif 000007
【図６】
2019168590.tif 000008