【文献】
田中 哲士,秘密分散ベース秘密計算を用いたニューラルネットワークのコスト評価,情報処理学会研究報告,2016年 5月27日,Vol.2016-CSEC-73 No.21,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバ、サービス提供サーバ、及びユーザ端末を含む情報処理システムにおいて実行される情報処理方法であって、
前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第1公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、
前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、
前記モデル提供サーバが、前記第1公開鍵を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記モデル提供サーバから受信した前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、
前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵とを前記サービス提供サーバに送信するステップと、
前記ユーザ端末が、前記第2公開鍵を前記モデル提供サーバに送信するステップと、
前記モデル提供サーバが、前記ユーザ端末から受信した前記第2公開鍵を用いて前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成するステップと、
前記モデル提供サーバが、前記第2公開鍵暗号化第1秘密鍵を前記サービス提供サーバに送信するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、
前記サービス提供サーバが、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第2暗号化出力を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記第2公開鍵に対応する第2秘密鍵を用いて、前記サービス提供サーバから受信した前記第2暗号化出力を復号するステップと、
を含む情報処理方法。
前記学習モデルは、前記学習モデルの処理対象データと前記学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、前記処理対象データを入力とする前記学習モデルの出力を算出するように構成されている、
請求項1又は2に記載の情報処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。したがって、学習モデルの作成者がユーザに利用させることを目的として学習モデルをユーザに提供すると、提供した学習モデルがその後不正に利用される恐れが生じる。
【0005】
一方、学習モデルのユーザに学習モデル自体を提供せずに、通信ネットワークを介してユーザから処理対象データを取得し、学習モデルの処理結果のみをユーザに提供する態様も考えられる。しかしながら、この態様では、学習モデルに入力するデータに個人情報が含まれる等によって漏洩が問題となるデータの場合、ユーザは学習モデルの利用に二の足を踏みかねない。
【0006】
本発明はこれらの点に鑑みてなされたものであり、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバ、サービス提供サーバ、及びユーザ端末を含む情報処理システムにおいて実行される情報処理方法である。この方法は、前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第1公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、前記モデル提供サーバが、前記第1公開鍵を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記モデル提供サーバから受信した前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵とを前記サービス提供サーバに送信するステップと、前記ユーザ端末が、前記第2公開鍵を前記モデル提供サーバに送信するステップと、前記モデル提供サーバが、前記ユーザ端末から受信した前記第2公開鍵を用いて前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成するステップと、前記モデル提供サーバが、前記第2公開鍵暗号化第1秘密鍵を前記
サービス提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を取得するステップと、前記サービス提供サーバが、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、前記サービス提供サーバが、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得するステップと、前記サービス提供サーバが、前記第2暗号化出力を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記第2公開鍵に対応する第2秘密鍵を用いて、前記サービス提供サーバから受信した前記第2暗号化出力を復号するステップと、を含む。
【0008】
前記情報処理方法は、前記モデル提供サーバが、前記完全準同型暗号の公開鍵であって前記第1公開鍵及び前記第2公開鍵とは異なる第3公開鍵を生成するステップと、前記モデル提供サーバが、前記第3公開鍵で前記第1秘密鍵を暗号化した第3公開鍵暗号化第1秘密鍵を生成するステップと、前記モデル提供サーバが、前記第3公開鍵と前記第3公開鍵暗号化第1秘密鍵とを前記
サービス提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵を用いて、前記暗号化学習モデルを再度暗号化して二重暗号化学習モデルを生成するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵暗号化第1秘密鍵を用いて、前記第3公開鍵で暗号化された状態のまま前記二重暗号化学習モデルのうち前記第1公開鍵による暗号化を復号するステップと、をさらに含んでもよい。
【0009】
前記情報処理方法において、前記学習モデルは、前記学習モデルの処理対象データと前記学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、前記処理対象データを入力とする前記学習モデルの出力を算出するように構成されていてもよい。
【0010】
本発明の第2の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバとサービス提供サーバとを含む情報処理システムである。このシステムにおいて、前記モデル提供サーバは、機械学習を用いて学習モデルを生成するモデル生成部と、完全準同型暗号の公開鍵である第1公開鍵を用いて前記学習モデルを暗号化して暗号化学習モデルを生成する暗号化部と、前記暗号化学習モデルを前記サービス提供サーバに送信するとともに、前記第1公開鍵をユーザ端末に送信する送信部と、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵を前記ユーザ端末から受信する受信部と、を備える。前記暗号化部は、前記第2公開鍵を用いて、前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成し、前記送信部は、前記第2公開鍵暗号化第1秘密鍵を前記
サービス提供サーバに送信する。また、前記サービス提供サーバは、前記モデル提供サーバから前記暗号化学習モデルを受信するとともに、前記ユーザ端末から前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化した暗号化処理対象データを受信する受信部と、前記暗号化学習モデルと前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を生成するモデル実行部と、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成する暗号化部と、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得する復号部と、前記第2暗号化出力を前記ユーザ端末に送信する送信部と、を備える。
【発明の効果】
【0011】
本発明によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することができる。
【発明を実施するための形態】
【0013】
<実施の形態の概要>
図1は、実施の形態に係る情報処理システムSの構成の概要を模式的に示す図である。以下、
図1を参照して、実施の形態の概要を述べる。
【0014】
図1に示すように、実施の形態に係る情報処理システムSは、モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3を含んでいる。モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3は、通信ネットワークNを介して互いに通信可能な態様で接続している。
【0015】
モデル提供サーバ1は、機械学習によって学習モデルを生成する装置である。モデル提供サーバ1が生成する学習モデルは、処理対象とするデータを入力として、何らかの処理結果を出力するように構成されたデジタルデータである。一例として、モデル提供サーバ1が生成する学習モデルは、処理対象として画像データが入力されると、その画像データに含まれる被写体を認識して被写体の種類、数、及び画像中の場所等を出力する画像認識エンジンである。
【0016】
サービス提供サーバ2は、モデル提供サーバ1が生成した学習モデルを受け取り、ユーザにサービスを提供する装置である。サービス提供サーバ2は、ユーザが使用するユーザ端末3から通信ネットワークNを介して処理対象のデータを受け取る。続いて、サービス提供サーバ2は、受け取ったデータを学習モデルに適用し、出力を取得する。最後に、サービス提供サーバ2は、取得した学習モデルの出力を通信ネットワークNを介してユーザ端末3に送信する。
【0017】
ここで、モデル提供サーバ1は、学習モデルを完全準同型暗号(Fully Homomorphic. Encryption)の公開鍵で暗号化した学習モデルを、サービス提供サーバ2に送信する。また、ユーザ端末3は、学習モデルの暗号化に用いられた公開鍵をモデル提供サーバ1から受信しており、その公開鍵を用いて処理対象のデータを暗号化した後に、サービス提供サーバ2に送信する。すなわち、サービス提供サーバ2は、同じ公開鍵で暗号化された学習モデルと処理対象のデータとを取得することになる。
【0018】
完全準同型暗号は、データを暗号化したまま、加法演算及び乗法演算が可能な暗号である。具体的には、ふたつの数値の平文をa及びbとし、a及びbをそれぞれ暗号化したものをEnc(a)及びEnc(b)とする。また、aとbとの加法a+bを暗号化したものをEnc(a+b)、aとbとの乗法a×bを暗号化したものをEnc(a×b)とする。このとき、完全準同型暗号では、以下の式(1)及び式(2)が成り立つ。
Enc(a)+Enc(b)=Enc(a+b) (1)
Enc(a)×Enc(b)=Enc(a×b) (2)
【0019】
実施の形態に係るモデル提供サーバ1が生成する学習モデルは、学習モデルの処理対象データと学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、処理対象データを入力とする学習モデルの出力を算出するように構成されている。言い換えると、実施の形態に係るモデル提供サーバ1が生成する学習モデルは、処理の途中にシグモイド関数等の非線形関数が含まれず、加法演算又は乗法演算のみ含まれる。これにより、実施の形態に係るサービス提供サーバ2は、完全準同型暗号の公開鍵で暗号化された学習モデルと処理対象のデータとを取得し、暗号化されたままの状態で処理対象のデータを学習モデルに適用することができる。
【0020】
なお、サービス提供サーバ2が処理対象のデータを学習モデルに適用することで得られる出力も、モデル提供サーバ1が生成した公開鍵によって暗号化されたままの状態である。このため、サービス提供サーバ2が暗号化された状態の出力をユーザ端末3に送信しても、ユーザ端末3は出力内容を確認することができない。
【0021】
そこで、サービス提供サーバ2は、モデル提供サーバ1が生成した公開鍵で暗号された状態の出力を、ユーザ端末3が生成した別の公開鍵で暗号化した状態に書き換えてからユーザ端末3に送信する。これにより、ユーザ端末3は、自身が所有する秘密鍵で出力を復号することにより、出力内容を確認することができる。
【0022】
このように、実施の形態に係る情報処理システムSによれば、サービス提供サーバ2及びユーザ端末3は、平文の状態の学習モデルを取得することができない。また、モデル提供サーバ1及びサービス提供サーバ2は、平文の状態の処理対象データを取得することができない。それにもかかわらず、ユーザ端末3は、処理対象データを学習モデルに適用した結果を取得することができる。したがって、実施の形態に係る情報処理システムSは、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができ、学習モデルと処理対象データとの漏洩を抑制できる。
【0023】
<実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3の機能構成>
図2は、実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3の機能構成を模式的に示す図である。モデル提供サーバ1は、記憶部10、制御部11、送信部12、及び受信部13を備える。サービス提供サーバ2は、記憶部20、制御部21、送信部22、及び受信部23を備える。ユーザ端末3は、記憶部30、制御部31、送信部32、及び受信部33を備える。
【0024】
記憶部10は、モデル提供サーバ1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)やモデル提供サーバ1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
【0025】
同様に、記憶部20は、サービス提供サーバ2を実現するコンピュータのBIOS等を格納するROMやサービス提供サーバ2の作業領域となるRAM、OSやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。さらに、記憶部30は、ユーザ端末3を実現するコンピュータのBIOS等を格納するROMやユーザ端末3の作業領域となるRAM、OSやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。
【0026】
制御部11は、モデル提供サーバ1のCPUやGPU等のプロセッサであり、記憶部10に記憶されたプログラムを実行することによってモデル生成部110、鍵生成部111、及び暗号化部112として機能する。同様に、制御部21は、サービス提供サーバ2のCPUやGPU等のプロセッサであり、記憶部20に記憶されたプログラムを実行することによってモデル実行部210、暗号化部211、及び復号部212として機能する。さらに、制御部31は、ユーザ端末3のCPUやGPU等のプロセッサであり、記憶部30に記憶されたプログラムを実行することによって暗号化部310、鍵生成部311、及び復号部312として機能する。
【0027】
なお、
図2は、モデル提供サーバ1及びサービス提供サーバ2が単一の装置で構成されている場合の例を示している。しかしながら、モデル提供サーバ1及びサービス提供サーバ2は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部11及び制御部21を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【0028】
<情報処理システムSで実行される処理のシーケンス図>
図3は、実施の形態に係る情報処理システムSで実行される処理の流れを説明するためのシーケンス図の前半部を示す図である。また、
図4は、実施の形態に係る情報処理システムSで実行される処理の流れを説明するためのシーケンス図の後半部分を示す図である。以下、モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3が連携して実行する処理を、
図2、
図3、及び
図4を参照して説明する。
【0029】
モデル生成部110は、機械学習を用いて学習モデルを生成する(S2)。具体的には、モデル生成部110は、あらかじめ収集した学習用データをニューラルネットワーク、SVM(Support Vector Machine)、ブースティング等の既知の機械学習で処理することにより、学習モデルを生成する。ここで、モデル生成部110は、既知の学習モデルにおいて非線形な関数が用いられている場合には、あらかじめ線形関数で近似することによって乗法演算及び加法演算のみの学習モデルに置き換えてから学習を実行する。
【0030】
鍵生成部111は、完全準同型暗号の公開鍵方式の暗号鍵を生成する(S4)。公開鍵方式の暗号鍵であるため、鍵生成部111は、公開鍵と、その公開鍵に対応する秘密鍵とを生成する。後述するが、完全準同型暗号の公開鍵方式の暗号鍵はサービス提供サーバ2によっても生成される。したがって、鍵生成部111が生成する公開鍵を「第1公開鍵pk1」又は単に「pk1」と記載する。同様に、第1秘密鍵を「第1秘密鍵sk1」又は単に「sk1」と記載する。なお、鍵生成部111及びサービス提供サーバ2は、完全準同型暗号として、例えばBVG方式(Brakerski-Gentry-Vaikuntanathan cryptosystem)の暗号を用いればよい。
【0031】
暗号化部112は、第1公開鍵pk1を用いて学習モデルを暗号化して暗号化学習モデルを生成する(S6)。以下、学習モデルを「学習モデルw」又は単に「w」と記載する。また、第1秘密鍵sk1で暗号化した学習モデルwを「暗号化学習モデルEnc(pk1,w)」又は単に「Enc(pk1,w)」と記載する。以下、公開鍵pkを用いてデータdを暗号化して得られるデータをEnc(pk,d)のように記載する。
【0032】
送信部12は、暗号化学習モデルEnc(pk1,w)をサービス提供サーバ2に送信する(S8)。また、送信部12は、第1公開鍵pk1をユーザ端末3に送信する(S10)。
【0033】
ユーザ端末3の受信部33は、モデル提供サーバ1から送信された第1公開鍵pk1を受信する(S12)。暗号化部310は、第1公開鍵pk1を用いて学習モデルwの処理対象データxを暗号化して暗号化処理対象データEnc(pk1,x)を生成する(S14)。
【0034】
鍵生成部311は、完全準同型暗号の公開鍵であって第1公開鍵pk1とは異なる第2公開鍵pk2と、第2公開鍵pk2に対応する第2秘密鍵sk2とを含む第2暗号鍵を生成する(S16)。送信部32は、第2公開鍵pk2をモデル提供サーバ1及びサービス提供サーバ2に送信する(S18)。
【0035】
モデル提供サーバ1の受信部13は、ユーザ端末3から第2公開鍵pk2を受信する(S20)。また、サービス提供サーバ2の受信部23は、モデル提供サーバ1から暗号化学習モデルEnc(pk1,w)を受信する(S22)。受信部23は、ユーザ端末3から第2公開鍵pk2を受信する(S24)。
【0036】
ユーザ端末3の送信部32は、暗号化処理対象データEnc(pk1,x)をサービス提供サーバ2に送信する(S26)。サービス提供サーバ2の受信部23は、ユーザ端末3から暗号化処理対象データEnc(pk1,x)を受信する(S28)。
【0037】
モデル提供サーバ1の暗号化部112は、ユーザ端末3から受信した第2公開鍵pk2を用いて第1秘密鍵sk1を暗号化した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を生成する(S30)。送信部12は、第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)をサービス提供サーバ2に送信する(S32)。
【0038】
サービス提供サーバ2の受信部23は、モデル提供サーバ1から第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を受信する(S34)。モデル実行部210は、暗号化学習モデルEnc(pk1,w)と暗号化処理対象データEnc(pk1,x)とを用いて、第1公開鍵pk1で暗号化された状態の処理対象データxを入力とする学習モデルwの出力である第1暗号化出力Enc(pk1,f
w(x))を生成する(S36)。
【0039】
暗号化部211は、第1暗号化出力Enc(pk1,f
w(x))を、ユーザ端末3から受信した第2公開鍵pk2を用いて再度暗号化した二重暗号化出力Enc(pk2,Enc(pk1,f
w(x)))を生成する(S38)。
【0040】
復号部212は、モデル提供サーバ1から受信した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を用いて、第2公開鍵pk2で暗号化された状態のまま二重暗号化出力Enc(pk2,Enc(pk1,f
w(x)))のうち第1公開鍵pk1による暗号化を復号して得られる第2暗号化出力Enc(pk2,f
w(x))を取得する(S40)。送信部22は、第2暗号化出力Enc(pk2,f
w(x))をユーザ端末3に送信する(S42)。
【0041】
ユーザ端末3の受信部33は、サービス提供サーバ2から第2暗号化出力Enc(pk2,f
w(x))を受信する(S44)。復号部312は、第2秘密鍵sk2を用いて、サービス提供サーバ2から受信した第2暗号化出力第2暗号化出力Enc(pk2,f
w(x))を復号する(S46)。これにより、ユーザ端末3は、暗号化されていない処理対象データxを入力とする学習モデルwの出力f
w(x)を得ることができる。
【0042】
図5(a)−(c)は、実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3がそれぞれ生成又は取得するデータの一覧を表形式でまとめた図である。
図5(a)に示すように、モデル提供サーバ1は、学習モデルw、第1公開鍵pk1、及び第1秘密鍵sk1を生成し、ユーザ端末3から第2公開鍵pk2を取得する。モデル提供サーバ1はさらに、第2公開鍵pk2を用いて第1秘密鍵sk1を暗号化した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)も生成する。
【0043】
図5(b)に示すように、サービス提供サーバ2は、モデル提供サーバ1から暗号化学習モデルEnc(pk1,w)と第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)とを取得する。また、サービス提供サーバ2は、ユーザ端末3から第2公開鍵pk2と暗号化処理対象データEnc(pk1,x)とを取得する。
【0044】
サービス提供サーバ2は、暗号化学習モデルEnc(pk1,w)と暗号化処理対象データEnc(pk1,x)とに基づいて、第1暗号化出力Enc(pk1,f
w(x))を生成する。サービス提供サーバ2は、第2公開鍵pk2を用いて第1暗号化出力Enc(pk1,f
w(x))を暗号化した二重暗号化出力Enc(pk2,Enc(pk1,f
w(x)))を生成する。さらに、サービス提供サーバ2は、第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を用いて二重暗号化出力Enc(pk2,Enc(pk1,f
w(x)))を復号して第2暗号化出力Enc(pk2,f
w(x))も生成する。
【0045】
図5(c)に示すように、ユーザ端末3は、処理対象データx、第2公開鍵pk2、第2秘密鍵sk2を生成する。ユーザ端末3は、モデル提供サーバ1から第1公開鍵pk1を取得する。ユーザ端末3は、第1公開鍵pk1を用いて処理対象データxを暗号化した暗号化処理対象データEnc(pk1,x)を生成する。さらに、ユーザ端末3は、サービス提供サーバ2から第2暗号化出力Enc(pk2,f
w(x))を取得する。ユーザ端末3は、第2秘密鍵sk2を用いて第2暗号化出力Enc(pk2,f
w(x))を復号することにより、処理対象データxを入力とする学習モデルwの出力f
w(x)を生成する。
【0046】
このように、実施の形態に係るモデル提供サーバ1が生成した学習モデルwは、平文のままでサービス提供サーバ2又はユーザ端末3に送信されることはない。また、サービス提供サーバ2及びユーザ端末3はいずれも、暗号化された学習モデルwを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムSは、学習モデルwを秘匿することができ、学習モデルwが漏洩することを抑制することができる。
【0047】
また、実施の形態に係るユーザ端末3が生成した処理対象データxは、平文のままでモデル提供サーバ1又はサービス提供サーバ2に送信されることはない。さらに、モデル提供サーバ1及びサービス提供サーバ2はいずれも、暗号化された処理対象データxを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムSは、処理対象データxを秘匿することができ、処理対象データxが漏洩することを抑制することができる。
【0048】
(学習モデルwの暗号鍵の更新)
上述したように、実施の形態に係るモデル提供サーバ1は、学習モデルwを暗号化した状態でサービス提供サーバ2に送信する。ここで、学習モデルwを暗号化する公開鍵を定期的に更新できれば、万が一公開鍵に対応する秘密鍵が漏洩したとしても、学習モデルを漏洩から守ることができる。そこで、以下、学習モデルwを暗号化する公開鍵の更新処理について説明する。
【0049】
図6は、実施の形態に係る情報処理システムSで実行される暗号鍵の更新処理を説明するためのシーケンス図である。モデル提供サーバ1の鍵生成部111は、完全準同型暗号の公開鍵であって第1公開鍵pk1及び第2公開鍵pk2とは異なる第3公開鍵pk3と、第3公開鍵pk3に対応する第3秘密鍵sk3とを含む第3暗号鍵を生成する(S48)。
【0050】
暗号化部112は、第3公開鍵pk3で第1秘密鍵sk1を暗号化した第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)を生成する(S50)。送信部12は、第3公開鍵pk3と第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)とをサービス提供サーバ2に送信する(S52)。
【0051】
サービス提供サーバ2の受信部23は、モデル提供サーバ1から第3公開鍵pk3と第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)とを受信する(S54)。暗号化部211は、第3公開鍵pk3を用いて、暗号化学習モデルEnc(pk1,w)を再度暗号化して二重暗号化学習モデル暗号化学習モデルEnc(pk3,Enc(pk1,w))を生成する(S56)。
【0052】
復号部212は、第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)を用いて、第3公開鍵pk3で暗号化された状態のまま二重暗号化学習モデル暗号化学習モデルEnc(pk3,Enc(pk1,w))のうち第1公開鍵pk1による暗号化を復号する(S58)。これにより、復号部212は、第3公開鍵pk3で暗号化した学習モデルwであるEnc(pk3,w)を生成することができる。
【0053】
以上より、情報処理システムSは、サービス提供サーバ2が保持する学習モデルwの暗号鍵を更新することができる。例えば、数十万から百万といったオーダーの大量の学習データを用いる機械学習で生成した学習モデルwはデータサイズも大きく、また、暗号化後のデータサイズも同様である。したがって、モデル提供サーバ1が第3公開鍵pk3で学習モデルwを暗号化した後にサービス提供サーバ2に送信する場合と比較して、上述した暗号鍵の更新処理は、通信ネットワークNを経由するデータ量を大幅に削減できる点で有利である。
【0054】
<実施の形態に係るモデル提供サーバ1が奏する効果>
以上説明したように、実施の形態に係るモデル提供サーバ1によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる。
【0055】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。