(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018058
(43)【公開日】2024-02-08
(54)【発明の名称】機械学習システム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240201BHJP
H04L 9/32 20060101ALI20240201BHJP
G06N 20/00 20190101ALI20240201BHJP
【FI】
G09C1/00 650Z
H04L9/32 200B
G06N20/00
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022121118
(22)【出願日】2022-07-29
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】大竹 剛
(57)【要約】
【課題】ユーザの匿名性を保証し、プライバシーを保護できる機械学習システムを提供する。
【解決手段】機械学習システム1は、学習データを管理する学習データ管理装置10と、推論データを管理する推論データ管理装置30と、マルチパーティ計算により学習及び推論を行う複数のクラウドサーバ20とを備え、学習データ管理装置10、推論データ管理装置30、及び、複数のクラウドサーバ20が同一のリング署名方式を用いる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
学習データを管理する学習データ管理装置と、推論データを管理する推論データ管理装置と、マルチパーティ計算により学習及び推論を行う複数の学習推論装置と、を備える機械学習システムであって、
前記学習データ管理装置は、
リング署名方式の鍵生成アルゴリズムにより、前記学習データ管理装置の第1公開鍵及び第1秘密鍵を生成する鍵生成部と、
前記学習データを前記学習推論装置毎の第1シェアに秘密分散する秘密分散部と、
前記第1公開鍵と他の前記学習データ管理装置又は前記推論データ管理装置の公開鍵とが含まれる第1公開鍵リストを生成し、前記第1秘密鍵及び前記第1公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより前記第1シェアから署名を生成し、生成した当該署名を前記第1シェアに付加する匿名署名生成部と、を備え、
前記学習推論装置は、
前記第1公開鍵リストを用いたリング署名方式の署名検証アルゴリズムにより、前記第1シェアに付加された署名を検証する第1匿名署名検証部と、
他の前記学習推論装置との秘密計算により、署名検証済みの前記第1シェアから学習モデルを生成する第1秘密計算部と、
前記推論データ管理装置で生成された第2公開鍵リストを用いたリング署名の署名検証アルゴリズムにより、前記推論データ管理装置で秘密分散された第2シェアに付加された署名を検証する第2匿名署名検証部と、
前記学習モデルを用いた他の前記学習推論装置との秘密計算により、署名検証済みの前記第2シェアから前記学習推論装置毎の推論結果である第3シェアを求める第2秘密計算部と、
前記リング署名の鍵生成アルゴリズムにより、前記学習推論装置の第3公開鍵及び第3秘密鍵を生成する鍵生成部と、
前記第3公開鍵のみが含まれる第3公開鍵リストを生成し、前記第3秘密鍵及び前記第3公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより前記第3シェアから署名を生成し、生成した当該署名を前記第3シェアに付加する署名生成部と、を備え、
前記推論データ管理装置は、
リング署名方式の鍵生成アルゴリズムにより、前記推論データ管理装置の第2公開鍵及び第2秘密鍵を生成する鍵生成部と、
前記推論データを前記学習推論装置毎の前記第2シェアに秘密分散する秘密分散部と、
前記第2公開鍵と他の前記学習データ管理装置又は前記推論データ管理装置の公開鍵とが含まれる第2公開鍵リストを生成し、前記第2秘密鍵及び前記第2公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより前記第2シェアから署名を生成し、生成した当該署名を前記第2シェアに付加する匿名署名生成部と、
前記第3公開鍵リストを用いたリング署名方式の署名検証アルゴリズムにより、前記第3シェアに付加された署名を検証する署名検証部と、
前記学習推論装置毎に署名検証済みの第3シェアを合成することで、前記機械学習システムの推論結果を生成する推論結果合成部と、
を備えることを特徴とする機械学習システム。
【請求項2】
前記学習データ管理装置、前記推論データ管理装置、及び、前記複数の学習推論装置は、同一の前記リング署名方式を用いることを特徴とする請求項1に記載の機械学習システム。
【請求項3】
前記マルチパーティ計算は、3パーティー方式であり、
前記学習推論装置は、3台であることを特徴とする請求項1に記載の機械学習システム。
【請求項4】
前記学習データ管理装置は、複数であり、
前記推論データ管理装置は、複数であることを特徴とする請求項1から請求項3の何れか一項に記載の機械学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチパーティ計算により学習及び推論を行う機械学習システムに関する。
【背景技術】
【0002】
近年、機械学習があらゆる分野で利用されている。学習や推論を行う際にユーザのプライバシーが漏洩する問題が指摘されており、ユーザのプライバシーを保護したまま機械学習を行う手法が提案されている。例えば、非特許文献1では、3台のクラウドサーバを利用したマルチパーティ計算により、学習や推論を暗号化したまま行うことが可能なプライバシー保護機械学習システムが提案されている。
【0003】
非特許文献1に記載の技術(以下、「第1従来技術」)では、学習を行う際、データ保有者が保有する学習データを、秘密分散を用いて「シェア」と呼ばれる3つのデータに分割し、各シェアを3台のクラウドサーバにそれぞれ送信する。そして、3台のクラウドサーバは、受信したシェアを用いて、データを暗号化したまま計算を行う秘密計算を実施し、学習モデル(重みやバイアスなどのパラメータ)を生成する。推論を行う際、データ利用者が生成した推論データ(クエリ)を、秘密分散を用いて3つのシェアに分割し、各シェアを3台のクラウドサーバにそれぞれ送信する。そして、3台のクラウドサーバは、受信したシェアおよび学習モデルを用いて秘密計算(推論)を実施し、推論結果のシェアをデータ利用者に送信する。データ利用者は、受信したシェアを合成し推論結果を得る。このように、第1従来技術では、秘密分散をベースとするマルチパーティ計算を用いることにより、クラウド又はネットワーク上におけるプライバシー漏洩を防止することができる。
【0004】
ところで、第1従来技術では、データ保有者が学習データをクラウドサーバに送信する際、1つのシェアのみから学習データを復元することは情報理論的に困難である。このため、第1従来技術では、学習データからユーザのプライバシーが漏洩する危険性はない。しかし、第1従来技術では、ネットワーク上に流れるシェアを攻撃者が改ざんすることは可能であるため、3台のクラウドサーバによって生成された学習モデルが所望の性能を達成できなくなる恐れがある。
【0005】
この問題に対処するためには、RSA署名やDSA署名などのデジタル署名をプライバシー保護機械学習システムに適用する手法(以下、「第2従来技術」)が考えられる。すなわち、第2従来技術では、シェアにデータ保有者の署名を付加し、クラウドサーバが署名の検証を行うことにより、シェアが通信途中で改ざんされていないこと、及び、データ保有者によって送信されたシェアであることをクラウドサーバが確認できる。推論の場合も同様、第2従来技術では、シェアにデータ利用者の署名を付加し、クラウドサーバが署名の検証を行うことにより、シェアが通信途中で改ざんされていないこと、及び、データ利用者によって送信されたシェアであることをクラウドサーバが確認できる。さらに、第2従来技術では、各クラウドサーバが推論結果のシェアをデータ利用者に送信する際も、シェアにクラウドサーバの署名を付加し、データ利用者が署名の検証を行う。これにより、第2従来技術では、シェアが通信途中で改ざんされていないこと、及び、クラウドサーバによって送信されたシェアであることをデータ利用者が確認できる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】S. Wagh, S. Tople, F. Benhamouda, E. Kushilevitz, P. Mittal, and T. Rabin “Falcon: Honest-Majority Maliciously Secure Framework for Private Deep Learning”, PETS 2021, pp. 188-208, 2021.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、前記した第2従来技術では、以下で説明するような問題がある。すなわち、第2従来技術では、学習データを提供するデータ保有者、及び、推論結果を利用するデータ利用者が誰であるか、署名の検証によって署名検証者(クラウドサーバ)に知られてしまう。以後、データ保有者及びデータ利用者をユーザと記載する場合がある。このため、第2従来技術では、ユーザが学習データを提供していることや推論サービスを利用していることすらも隠したい、というプライバシー保護の強い要請には対応が困難である。
【0008】
そこで、本発明は、ユーザの匿名性を保証し、プライバシーを保護できる機械学習システムを提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決するため、本発明に係る機械学習システムは、学習データを管理する学習データ管理装置と、推論データを管理する推論データ管理装置と、マルチパーティ計算により学習及び推論を行う複数の学習推論装置と、を備える構成とした。
【0010】
学習データ管理装置は、リング署名方式の鍵生成アルゴリズムにより、学習データ管理装置の第1公開鍵及び第1秘密鍵を生成する鍵生成部と、学習データを学習推論装置毎の第1シェアに秘密分散する秘密分散部と、第1公開鍵と他の学習データ管理装置又は推論データ管理装置の公開鍵とが含まれる第1公開鍵リストを生成し、第1秘密鍵及び第1公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより第1シェアから署名を生成し、生成した署名を第1シェアに付加する匿名署名生成部と、を備える。
【0011】
学習推論装置は、第1公開鍵リストを用いたリング署名方式の署名検証アルゴリズムにより、第1シェアに付加された署名を検証する第1匿名署名検証部と、他の学習推論装置との秘密計算により、署名検証済みの第1シェアから学習モデルを生成する第1秘密計算部と、推論データ管理装置で生成された第2公開鍵リストを用いたリング署名の署名検証アルゴリズムにより、推論データ管理装置で秘密分散された第2シェアに付加された署名を検証する第2匿名署名検証部と、学習モデルを用いた他の学習推論装置との秘密計算により、署名検証済みの第2シェアから学習推論装置毎の推論結果である第3シェアを求める第2秘密計算部と、リング署名の鍵生成アルゴリズムにより、学習推論装置の第3公開鍵及び第3秘密鍵を生成する鍵生成部と、第3公開鍵のみが含まれる第3公開鍵リストを生成し、第3秘密鍵及び第3公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより第3シェアから署名を生成し、生成した署名を第3シェアに付加する署名生成部と、を備える。
【0012】
推論データ管理装置は、リング署名方式の鍵生成アルゴリズムにより、推論データ管理装置の第2公開鍵及び第2秘密鍵を生成する鍵生成部と、推論データを学習推論装置毎の第2シェアに秘密分散する秘密分散部と、第2公開鍵と他の学習データ管理装置又は推論データ管理装置の公開鍵とが含まれる第2公開鍵リストを生成し、第2秘密鍵及び第2公開鍵リストを用いたリング署名方式の署名生成アルゴリズムにより第2シェアから署名を生成し、生成した署名を第2シェアに付加する匿名署名生成部と、第3公開鍵リストを用いたリング署名方式の署名検証アルゴリズムにより、第3シェアに付加された署名を検証する署名検証部と、学習推論装置毎に署名検証済みの第3シェアを合成することで、機械学習システムの推論結果を生成する推論結果合成部と、を備える。
【0013】
ここで、リング署名では、署名生成時に自身の公開鍵に加えて他ユーザの公開鍵を公開鍵リストに含めることで、署名を生成したユーザを署名検証者(学習推論装置)が把握できないという性質を有する。そこで、機械学習システムでは、匿名性を有するリング署名方式で学習データおよび推論データに署名を付加するので、ユーザの匿名性を保証し、プライバシーを保護できる。
【0014】
また、リング署名では、自身の公開鍵のみを公開鍵リストに含める場合(他ユーザの公開鍵を公開鍵リストに含めない場合)、一般的な署名と同様に匿名性が無くなるという性質を有する。この性質を利用し、機械学習システムでは、学習推論装置が自身の公開鍵のみを第3公開鍵リストに含めることで、正規な学習推論装置から受信した推論結果(第3シェア)であることを推論データ管理装置が容易に確認できる。
【0015】
さらに、機械学習システムでは、学習データ管理装置、推論データ管理装置及び学習推論装置の全装置でリング署名方式を採用するので、簡易な構成を実現できる。
【発明の効果】
【0016】
本発明によれば、ユーザの匿名性を保証し、プライバシーを保護することができる。
【図面の簡単な説明】
【0017】
【
図1】実施形態に係る機械学習システムの概要構成図である。
【
図2】実施形態に係る機械学習システムにおいて、学習に関連した構成を示すブロック図である。
【
図3】実施形態に係る機械学習システムにおいて、推論に関連した構成を示すブロック図である。
【
図4】実施形態において、複製秘密分散法によるシェアの合成例を説明する説明図である。
【
図5】実施形態において、学習データ管理装置の動作を示すフローチャートである。
【
図6】実施形態において、学習時のクラウドサーバの動作を示すフローチャートである。
【
図7】実施形態において、推論データ管理装置の動作を示すフローチャートである。
【
図8】実施形態において、推論時のクラウドサーバの動作を示すフローチャートである。
【
図9】実施形態において、推論データ管理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について図面を参照して説明する。但し、以下に説明する実施形態は、本発明の技術思想を具体化するためのものであって、特定的な記載がない限り、本発明を以下のものに限定しない。また、同一の手段には同一の符号を付し、説明を省略する場合がある。
【0019】
(実施形態)
[機械学習システムの概要]
図1を参照し、実施形態に係る機械学習システム1の概要について説明する。
機械学習システム1は、学習データを管理する学習データ管理装置10と、マルチパーティ計算により学習及び推論を行う複数のクラウドサーバ(学習推論装置)20と、推論データを管理する推論データ管理装置30とを備える。
【0020】
ここで、データ保有者が学習データ管理装置10を利用し、データ利用者が推論データ管理装置30を利用する。また、学習推論装置がクラウドサーバ20として実装されている。
また、マルチパーティ計算が3パーティー方式であり、クラウドサーバ20が3台である。本実施形態では、機械学習システム1は、a台の学習データ管理装置101,…,10aと、3台のクラウドサーバ201,202,203と、b台の推論データ管理装置301,…,30bとを備える(但し、a及びbは2以上の整数)。
【0021】
なお、学習データ管理装置101,…,10aは同一構成であり、3台のクラウドサーバ201,202,203は同一構成であり、推論データ管理装置301,…,30bは同一構成である。以後、個別の説明が必要でない限り、単に学習データ管理装置10、クラウドサーバ20及び推論データ管理装置30と記載する。
【0022】
学習を行う際、学習データ管理装置10は、データ保有者が保有する学習データを秘密分散により3つの第1シェアに分割し、各第1シェアを3台のクラウドサーバ20にそれぞれ送信する。そして、3台のクラウドサーバ20は、受信した第1シェアを用いて秘密計算(学習)を実施し、学習モデルを生成する。
【0023】
推論を行う際、推論データ管理装置30は、データ利用者が生成した推論データを秘密分散により3つの第2シェアに分割し、各第2シェアを3台のクラウドサーバ20にそれぞれ送信する。そして、3台のクラウドサーバ20は、受信した第2シェア及び学習モデルを用いて秘密計算(推論)を実施し、各クラウドサーバ20の推論結果である第3シェアをデータ利用者に送信する。そして、推論データ管理装置30は、受信した第3シェアを合成し、最終的な機械学習システム1の推論結果を得る。
【0024】
なお、秘密計算とは、データを暗号化したまま計算することである。
また、マルチパーティ計算とは、秘密分散をベースとして、複数の装置が予め定められた手順に従って暗号化データの演算及び交換を行うことで、暗号化したままデータの計算を行う。このマルチパーティ計算は、秘密計算の一種である。
また、秘密分散とは、秘密情報(例えば、学習データや推論データ)をシェアとよばれる乱数の断片に分割して秘匿することである。
【0025】
また、学習データは、その種類や内容が特に制限されない。例えば、学習データとしては、正解ラベル付きの教師データがあげられる。
また、推論データは、学習データと同様、その種類や内容が特に制限されない。
【0026】
ここで、機械学習システム1は、学習データ及び推論データにリング署名を付加することとする。本実施形態では、機械学習システム1は、任意のリング署名方式を用いることができる。例えば、機械学習システム1は、以下参考文献1に記載のリング署名方式を用いる。
参考文献1: M. Abe, M. Ohkubo, and K. Suzuki, “1-out-of-n signatures from a variety of keys”, Asiacrypt 2002, pp. 415-432, 2002.
【0027】
リング署名方式は、以下の3つのアルゴリズムで構成されている。
鍵生成アルゴリズムは、セキュリティパラメータを入力し、秘密鍵及び公開鍵を出力するアルゴリズムである。なお、セキュリティパラメータは、鍵の長さを決定するパラメータであり、機械学習システム1全体で同じ値に設定する。
【0028】
署名生成アルゴリズムは、メッセージ、秘密鍵、及び公開鍵リストを入力し、署名を出力するアルゴリズムである。公開鍵リストには、署名者の秘密鍵に対応する公開鍵を含め、1以上の公開鍵が含まれている。
【0029】
署名検証アルゴリズムは、メッセージ、署名及び公開鍵リストを入力し、検証成功(1:accept)、又は、検証失敗(0:reject)を出力するアルゴリズムである。
【0030】
[機械学習システムの構成:学習時]
<学習データ管理装置>
図2を参照し、機械学習システム1のうち、学習に関連した構成を先に説明し、次に推論に関連した構成を説明する。
【0031】
図2に示すように、学習データ管理装置10は、学習データ管理部11と、鍵管理部12と、学習データ送信部13とを備える。
学習データ管理部11は、後記する学習モデルの生成に必要な学習データを管理するものであり、学習データ記憶部110を備える。
学習データ記憶部110は、学習データを記憶するメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの記憶装置である。なお、データ保有者が、学習データを学習データ記憶部110に予め記憶させておくこととする。
【0032】
鍵管理部12は、学習データ管理装置10の第1公開鍵及び第1秘密鍵からなる鍵ペアを管理するものであり、鍵生成部120と、鍵記憶部121とを備える。
【0033】
鍵生成部120は、リング署名方式の鍵生成アルゴリズムにより、学習データ管理装置10の第1公開鍵及び第1秘密鍵を生成するものである。そして、鍵生成部120は、第1公開鍵及び第1秘密鍵を鍵記憶部121に記憶させると共に、第1公開鍵を外部(例えば、インターネット上のクラウドサーバ)に公開する。
鍵記憶部121は、学習データ管理装置10の第1公開鍵及び第1秘密鍵を記憶する記憶装置である。
【0034】
学習データ送信部13は、学習データの第1シェアを各クラウドサーバ20に送信するものであり、秘密分散部130と、匿名署名生成部131と、シェア送信部132とを備える。
【0035】
秘密分散部130は、学習データをクラウドサーバ20毎の第1シェアMiに秘密分散するものである。なお、iは、各クラウドサーバ20の識別番号を表す整数である(本実施形態では、i=1,2,3)。本実施形態では、秘密分散部130は、学習データ記憶部110から学習データを読み出し、秘密分散を用いて、その学習データを3つの第1シェアM1,M2,M3に分割する。
【0036】
匿名署名生成部131は、第1公開鍵と他の学習データ管理装置10又は推論データ管理装置30の公開鍵とが含まれる第1公開鍵リストLを生成するものである。本実施形態では、匿名署名生成部131は、鍵記憶部121から自身の第1公開鍵及び第1秘密鍵を読み出すと共に、外部(例えば、インターネット上のクラウドサーバ)に公開されている他ユーザの公開鍵を1つ以上取得し、自身の第1公開鍵を含む公開鍵リストLを生成する。このように、第1公開鍵リストLには、自身の第1公開鍵に加えて他ユーザの公開鍵が含まれているので、署名を生成したユーザ(つまり、学習データを提供したデータ保有者)をクラウドサーバ20が把握できない。
【0037】
なお、匿名署名生成部131は、機械学習システム1の全ユーザの公開鍵を第1公開鍵リストLに含める必要はない。例えば、匿名署名生成部131は、自身の第1公開鍵に加え、他ユーザの公開鍵を10個程度、第1公開鍵リストLに含めればよい。このとき、第1公開鍵リストLには、データ保有者又はデータ利用者一方の公開鍵のみを含めてもよく、データ保有者及びデータ利用者両方の公開鍵を含めてもよい。
【0038】
次に、匿名署名生成部131は、第1秘密鍵及び第1公開鍵リストLを用いたリング署名方式の署名生成アルゴリズムにより第1シェアMiから署名Σiを生成し、生成した署名Σiを第1シェアMiに付加する。本実施形態では、匿名署名生成部131は、リング署名方式の署名生成アルゴリズムを用いて、第1シェアM1,M2,M3のそれぞれをメッセージとして署名Σ1,Σ2,Σ3を生成し、署名Σ1,Σ2,Σ3のそれぞれを第1シェアM1,M2,M3に付加する。以後、署名が付加された第1シェアを署名付き第1シェアと記載する場合がある。
【0039】
シェア送信部132は、署名付き第1シェア及び第1公開鍵リスト(Mi,Σi,L)をクラウドサーバ20に送信するものである。本実施形態では、シェア送信部132は、署名付き第1シェア及び第1公開鍵リスト(M1,Σ1,L)をクラウドサーバ201に送信し、署名付き第1シェア及び第1公開鍵リスト(M2,Σ2,L)をクラウドサーバ202に送信し、署名付き第1シェア及び第1公開鍵リスト(M3,Σ3,L)をクラウドサーバ203に送信する。
【0040】
<クラウドサーバ>
図2及び
図3に示すように、クラウドサーバ20は、学習データ受信部21と、学習部22と、推論データ受信部23と、鍵管理部24と、推論部25とを備える。なお、図面を見やすくするため、
図2には、クラウドサーバ20の各手段のうち、学習に関連した手段のみを図示し、
図3には、推論に関連した手段のみを図示した。
【0041】
図2に示すように、学習データ受信部21は、学習データの第1シェアMiを学習データ管理装置10から受信するものであり、シェア受信部210と、匿名署名検証部(第1匿名署名検証部)211とを備える。
【0042】
シェア受信部210は、署名付き第1シェア及び第1公開鍵リスト(Mi,Σi,L)を学習データ管理装置10から受信するものである。例えば、クラウドサーバ201のシェア受信部210は、署名付き第1シェア及び第1公開鍵リスト(M1,Σ1,L)を学習データ管理装置10から受信する。また、クラウドサーバ202のシェア受信部210は、署名付き第1シェア及び第1公開鍵リスト(M2,Σ2,L)を学習データ管理装置10から受信する。また、クラウドサーバ203のシェア受信部210は、署名付き第1シェア及び第1公開鍵リスト(M3,Σ3,L)を学習データ管理装置10から受信する。
【0043】
匿名署名検証部211は、第1公開鍵リストLを用いたリング署名方式の署名検証アルゴリズムにより、第1シェアMiに付加された署名Σiを検証するものである。本実施形態では、クラウドサーバ201の匿名署名検証部211は、第1シェアM1をメッセージとして、署名Σ1を検証する。また、クラウドサーバ202の匿名署名検証部211は、第1シェアM2をメッセージとして、署名Σ2を検証する。また、クラウドサーバ203の匿名署名検証部211は、第1シェアM3をメッセージとして、署名Σ3を検証する。
【0044】
署名Σiが検証成功の場合、匿名署名検証部211は、第1シェアMiを秘密計算部220に出力する。一方、署名Σiが検証失敗の場合、匿名署名検証部211は、第1シェアMiが改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0045】
学習部22は、学習データの第1シェアMiを用いて学習を行うものであり、秘密計算部(第1秘密計算部)220と、学習モデル記憶部221とを備える。
【0046】
秘密計算部220は、他のクラウドサーバ20との秘密計算により、署名検証済みのシェアMiから学習モデルを生成するものである。例えば、クラウドサーバ201,202,203の秘密計算部220は、互いに協調して秘密計算(学習)を行い、学習モデルを生成する。本実施形態では、秘密計算部220は、深層学習(ディープラーニング)を行うこととするが、サポートベクターマシンのような機械学習を行ってもよい。そして、秘密計算部220は、生成した学習モデルを学習モデル記憶部221に記憶させる。
【0047】
学習モデル記憶部221は、学習モデルを記憶する記憶装置である。なお、3台のクラウドサーバ201~203の学習モデル記憶部221は、同一の学習モデルを記憶する。つまり、クラウドサーバ201~203が記憶する3つの学習モデルは、重みやバイアスなどのパラメータが同一である。
【0048】
以上のように、機械学習システム1は、データ保有者(学習データ管理装置10)の匿名性を保証した状態で学習を行うことができる。
【0049】
[機械学習システムの構成:推論時]
<推論データ管理装置>
図3を参照し、機械学習システム1のうち、推論に関連した構成を説明する。
推論データ管理装置30は、鍵管理部31と、推論データ送信部32と、推論結果出力部33とを備える。
【0050】
鍵管理部31は、推論データ管理装置30の第2公開鍵及び第2秘密鍵からなる鍵ペアを管理するものであり、鍵生成部310と、鍵記憶部311とを備える。
【0051】
鍵生成部310は、リング署名方式の鍵生成アルゴリズムにより、推論データ管理装置30の第2公開鍵及び第2秘密鍵を生成するものである。そして、鍵生成部310は、第2公開鍵及び第2秘密鍵を鍵記憶部311に記憶させると共に、第2公開鍵を外部(例えば、インターネット上のクラウドサーバ)に公開する。
鍵記憶部311は、推論データ管理装置30の第2公開鍵及び第2秘密鍵を記憶する記憶装置である。
【0052】
推論データ送信部32は、推論データの第2シェアmiを各クラウドサーバ20に送信するものであり、推論データ生成部320と、秘密分散部321と、匿名署名生成部322と、シェア送信部323とを備える。
【0053】
推論データ生成部320は、推論データ(クエリ)を生成するものである。なお、推論データを生成する手法は、特に制限されず、一般的なものであればよい。また、推論データ生成部320を備える代わりに、データ利用者が、予め生成した推論データを推論データ送信部32に入力してもよい。
【0054】
秘密分散部321は、推論データをクラウドサーバ20毎の第2シェアmiに秘密分散するものである。本実施形態では、秘密分散部321は、推論データ生成部320から推論データが入力され、秘密分散を用いて、その推論データを3つのシェアm1,m2,m3に分割する。
【0055】
匿名署名生成部322は、第2公開鍵と他の学習データ管理装置10又は推論データ管理装置30の公開鍵とが含まれる第2公開鍵リストlを生成するものである。本実施形態では、匿名署名生成部322は、鍵記憶部311から自身の第2公開鍵及び第2秘密鍵を読み出すと共に、外部に公開されている他ユーザの公開鍵を1つ以上取得し、自身の第2公開鍵を含む公開鍵リストlを生成する。このように、第2公開鍵リストlには、自身の第2公開鍵に加えて他ユーザの公開鍵が含まれているので、署名を生成したユーザ(推論サービスを利用するデータ利用者)をクラウドサーバ20が知ることができない。
【0056】
なお、匿名署名生成部322は、匿名署名生成部131と同様、機械学習システム1の全ユーザの公開鍵を第2公開鍵リストlに含める必要はない。例えば、匿名署名生成部322は、自身の第2公開鍵に加え、他ユーザの公開鍵を10個程度、第2公開鍵リストlに含めればよい。
【0057】
次に、匿名署名生成部322は、第2秘密鍵及び第2公開鍵リストlを用いたリング署名方式の署名生成アルゴリズムにより第2シェアmiから署名σiを生成し、生成した署名σiを第2シェアmiに付加する。本実施形態では、匿名署名生成部322は、リング署名方式の署名生成アルゴリズムを用いて、第2シェアm1,m2,m3のそれぞれをメッセージとして署名σ1,σ2,σ3を生成し、署名σ1,σ2,σ3のそれぞれを第2シェアm1,m2,m3に付加する。
【0058】
シェア送信部323は、署名付き第2シェア及び第2公開鍵リスト(mi,σi,l)をクラウドサーバ20に送信するものである。本実施形態では、シェア送信部323は、署名付き第2シェア及び第2公開鍵リスト(m1,σ1,l)をクラウドサーバ201に送信し、署名付き第2シェア及び第2公開鍵リスト(m2,σ2,l)をクラウドサーバ202に送信し、署名付き第2シェア及び第2公開鍵リスト(m3,σ3,l)をクラウドサーバ203に送信する。
【0059】
推論結果出力部33は、機械学習システム1の最終的な推論結果を出力するものであり、シェア受信部330と、署名検証部331と、推論結果合成部332とを備える。
【0060】
シェア受信部330は、後記する署名付き第3シェア及び第3公開鍵リスト(mi´,σi´,l´)をクラウドサーバ20から受信するものである。本実施形態では、シェア受信部330は、署名付き第3シェア及び第3公開鍵リスト(m1´,σ1´,l´)をクラウドサーバ201から受信し、署名付き第3シェア及び第3公開鍵リスト(m2´,σ2´,l´)をクラウドサーバ202から受信し、署名付き第3シェア及び第3公開鍵リスト(m3´,σ3´,l´)をクラウドサーバ203から受信する。
【0061】
なお、署名付き第3シェアmi´は、各クラウドサーバ20の推論結果を表す第3シェアmi´に、各クラウドサーバ20の署名σi´が付加されたものである。また、第3公開鍵リストl´は、クラウドサーバ20の第3公開鍵のみが含まれている公開鍵リストである。
【0062】
署名検証部331は、第3公開鍵リストl´を用いたリング署名方式の署名検証アルゴリズムにより、第3シェアmi´に付加された署名σi´を検証するものである。本実施形態では、署名検証部331は、クラウドサーバ201の第3シェアm1´をメッセージとして署名σ1´を検証し、クラウドサーバ202の第3シェアm2´をメッセージとして署名σ2´を検証し、クラウドサーバ203の第3シェアm3´をメッセージとして署名σ3´を検証する。
【0063】
全ての署名σi´が検証成功の場合、署名検証部331は、第3シェアmi´を推論結果合成部332に出力する。一方、何れかの署名σi´が検証失敗の場合、署名検証部331は、第3シェアmi´が改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0064】
推論結果合成部332は、クラウドサーバ20毎に署名検証済みの第3シェアmi´を合成することで、機械学習システム1の推論結果を生成するものである。本実施形態では、推論結果合成部332は、非特許文献1に記載の複製秘密分散法により、第3シェアm1´,m2´,m3´を合成する。その後、推論結果合成部332は、合成した機械学習システム1の推論結果をディスプレイに出力(表示)する。
【0065】
<<複製秘密分散法による合成>>
図4を参照し、複製秘密分散法によるシェアの合成例を説明する。
図4に示すように、あるデータrを3つのシェアr1,r2,r3に秘密分散した場合を考える。この場合、複製秘密分散法では、3つのシェアr1,r2,r3をシェア(r1,r2)、シェア(r2,r3)、シェア(r3,r1)の組に変更する。すると、シェア(r1,r2),(r2,r3)のうち2組を合成すれば、元のデータrを復元できる。
図4の例において、シェアr1,r2,r3のそれぞれを第3シェアm1´,m2´,m3´に置き換えて合成すれば、最終的な推論結果が得られる。
【0066】
<クラウドサーバ>
図3に戻り、クラウドサーバ20の構成を説明する。
推論データ受信部23は、推論データの第2シェアmiを推論データ管理装置30から受信するものであり、シェア受信部230と、匿名署名検証部(第2匿名署名検証部)231とを備える。
【0067】
シェア受信部230は、署名付き第2シェア及び第2公開鍵リスト(mi,σi,l)を推論データ管理装置30から受信するものである。本実施形態では、クラウドサーバ201のシェア受信部230は、署名付き第2シェア及び第2公開鍵リスト(m1,σ1,l)を推論データ管理装置30から受信する。また、クラウドサーバ202のシェア受信部230は、署名付き第2シェア及び第2公開鍵リスト(m2,σ2,l)を推論データ管理装置30から受信する。また、クラウドサーバ203のシェア受信部230は、署名付き第2シェア及び第2公開鍵リスト(m3,σ3,l)を推論データ管理装置30から受信する。
【0068】
匿名署名検証部231は、推論データ管理装置30で生成された第2公開鍵リストlを用いたリング署名の署名検証アルゴリズムにより、推論データ管理装置30で秘密分散された第2シェアmiに付加された署名σiを検証するものである。本実施形態では、クラウドサーバ201の匿名署名検証部231は、第2シェアm1をメッセージとして署名σ1を検証する。また、クラウドサーバ202の匿名署名検証部231は、第2シェアm2をメッセージとして署名σ2を検証する。また、クラウドサーバ203の匿名署名検証部231は、第2シェアm3をメッセージとして署名σ3を検証する。
【0069】
署名σiが検証成功の場合、匿名署名検証部231は、第2シェアmiを秘密計算部250に出力する。一方、署名σiが検証失敗の場合、匿名署名検証部231は、第2シェアmiが改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0070】
鍵管理部24は、クラウドサーバ20の第3公開鍵及び第3秘密鍵からなる鍵ペアを管理するものであり、鍵生成部240と、鍵記憶部241とを備える。
【0071】
鍵生成部240は、リング署名方式の鍵生成アルゴリズムにより、クラウドサーバ20の第3公開鍵及び第3秘密鍵を生成するものである。そして、鍵生成部240は、第3公開鍵及び第3秘密鍵を鍵記憶部241に記憶させる。
鍵記憶部241は、クラウドサーバ20の第3公開鍵及び第3秘密鍵を記憶する記憶装置である。
【0072】
推論部25は、推論データの第2シェアmiを用いて推論を行うものであり、秘密計算部(第2秘密計算部)250と、署名生成部251と、シェア送信部252とを備える。
【0073】
秘密計算部250は、学習モデルを用いた他のクラウドサーバ20との秘密計算により、署名検証済みの第2シェアmiからクラウドサーバ20毎の推論結果である第3シェアmi´を求めるものである。例えば、クラウドサーバ201,202,203の秘密計算部250は、学習モデル記憶部221の学習モデルを参照し、互いに協調して秘密計算(推論)を行い、第3シェアm1´,m2´,m3´をそれぞれ生成する。
【0074】
署名生成部251は、第3公開鍵のみが含まれる第3公開鍵リストl´を生成するものである。本実施形態では、署名生成部251は、鍵記憶部241から自身の第3公開鍵及び第3秘密鍵を読み出し、自身の第3公開鍵のみを含む公開鍵リストl´を生成する。このように、公開鍵リストl´にはクラウドサーバ20の第3公開鍵のみが含まれているので、正規なクラウドサーバ20から受信した第3シェアであることを推論データ管理装置30が確認できる。
【0075】
次に、署名生成部251は、第3秘密鍵及び第3公開鍵リストl´を用いたリング署名方式の署名生成アルゴリズムにより第3シェアmi´から署名σi´を生成し、生成した署名σi´を第3シェアmi´に付加する。本実施形態では、クラウドサーバ201の署名生成部251は、リング署名方式の署名生成アルゴリズムを用いて、第3シェアm1´をメッセージとして署名σ1´を生成し、署名σ1´を第3シェアm1´に付加する。また、クラウドサーバ202の署名生成部251は、リング署名方式の署名生成アルゴリズムを用いて、第3シェアm2´をメッセージとして署名σ2´を生成し、署名σ2´を第3シェアm2´に付加する。また、クラウドサーバ203の署名生成部251は、リング署名方式の署名生成アルゴリズムを用いて、第3シェアm3´をメッセージとして署名σ3´を生成し、署名σ3´を第3シェアm3´に付加する。
【0076】
シェア送信部252は、署名付き第3シェア及び第3公開鍵リスト(mi´,σi´,l´)を推論データ管理装置30に送信するものである。本実施形態では、クラウドサーバ201のシェア送信部252は、署名付き第3シェア及び第3公開鍵リスト(m1´,σ1´,l´)を推論データ管理装置30に送信する。また、クラウドサーバ202のシェア送信部252は、署名付き第3シェア及び第3公開鍵リスト(m2´,σ2´,l´)を推論データ管理装置30に送信する。また、クラウドサーバ203のシェア送信部252は、署名付き第3シェア及び第3公開鍵リスト(m3´,σ3´,l´)を推論データ管理装置30に送信する。
【0077】
以上のように、機械学習システム1は、データ利用者(推論データ管理装置30)の匿名性を保証した状態で推論を行うことができる。
【0078】
[機械学習システムの動作:学習時]
<学習データ管理装置>
図5及び
図6を参照し、機械学習システム1の学習時の動作について説明する。
図5に示すように、ステップS1において、鍵生成部120は、リング署名方式の鍵生成アルゴリズムにより、学習データ管理装置10の第1公開鍵及び第1秘密鍵を生成する。
ステップS2において、鍵生成部120は、第1公開鍵及び第1秘密鍵を鍵記憶部121に記憶させると共に、第1公開鍵を外部に公開する。
【0079】
ステップS3において、秘密分散部130は、学習データ記憶部110から学習データを読み出す。
ステップS4において、秘密分散部130は、秘密分散を用いて、学習データを3つの第1シェアMiに分割する。
【0080】
ステップS5において、匿名署名生成部131は、鍵記憶部121から自身の第1公開鍵及び第1秘密鍵を読み出す。
ステップS6において、匿名署名生成部131は、外部に公開されている他ユーザの公開鍵を1つ以上取得する。
ステップS7において、匿名署名生成部131は、ステップS5で読み出した自身の第1公開鍵、及び、ステップS6で取得した他ユーザの公開鍵を含む第1公開鍵リストLを生成する。
【0081】
ステップS8において、匿名署名生成部131は、リング署名方式の署名生成アルゴリズムを用いて、署名Σiを生成し、署名Σiを第1シェアMiに付加する。
ステップS9において、シェア送信部132は、署名付き第1シェア及び第1公開鍵リスト(Mi,Σi,L)をクラウドサーバ20に送信する。
【0082】
<クラウドサーバ>
図6に示すように、ステップS10において、シェア受信部210は、署名付き第1シェア及び第1公開鍵リスト(Mi,Σi,L)を学習データ管理装置10から受信する。
ステップS11において、匿名署名検証部211は、第1公開鍵リストLを用いたリング署名方式の署名検証アルゴリズムにより、第1シェアMiに付加された署名Σiを検証する。
【0083】
ステップS12において、匿名署名検証部211は、署名Σiの検証成功又は検証失敗を判定する。
検証成功の場合(ステップS12でYes)、匿名署名検証部211は、ステップS13の処理に進む。
検証失敗の場合(ステップS12でNo)、匿名署名検証部211は、ステップS15の処理に進む。
【0084】
ステップS13において、秘密計算部220は、他のクラウドサーバ20との秘密計算により、署名検証済みの第1シェアMiから学習モデルを生成する。
ステップS14において、秘密計算部220は、生成した学習モデルを学習モデル記憶部221に記憶させる。
ステップS15において、匿名署名検証部211は、第1シェアMiが改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0085】
[機械学習システムの動作:推論時]
<推論データ管理装置>
図7~
図9を参照し、機械学習システム1の推論時の動作について説明する。
図7に示すように、ステップS20において、鍵生成部310は、リング署名方式の鍵生成アルゴリズムにより、推論データ管理装置30の第2公開鍵及び第2秘密鍵を生成する。
ステップS21において、鍵生成部310は、第2公開鍵及び第2秘密鍵を鍵記憶部311に記憶させると共に、第2公開鍵を外部に公開する。
【0086】
ステップS22において、推論データ生成部320は、推論データ(クエリ)を生成する。
ステップS23において、秘密分散部321は、秘密分散を用いて、推論データを3つのシェアmiに分割する。
【0087】
ステップS24において、匿名署名生成部322は、鍵記憶部311から自身の第2公開鍵及び第2秘密鍵を読み出す。
ステップS25において、匿名署名生成部322は、外部に公開されている他ユーザの公開鍵を1つ以上取得する。
【0088】
ステップS26において、匿名署名生成部322は、ステップS24で読み出した自身の第2公開鍵、及び、ステップS25で取得した他ユーザの公開鍵を含む第2公開鍵リストlを生成する。
【0089】
ステップS27において、匿名署名生成部322は、リング署名方式の署名生成アルゴリズムを用いて、署名σiを生成し、署名σiを第2シェアmiに付加する。
ステップS28において、シェア送信部323は、署名付き第2シェア及び第2公開鍵リスト(mi,σi,l)をクラウドサーバ20に送信する。
【0090】
<クラウドサーバ>
図8に示すように、ステップS30において、シェア受信部230は、署名付き第2シェア及び第2公開鍵リスト(mi,σi,l)を学習データ管理装置10から受信する。
ステップS31において、匿名署名検証部231は、第2公開鍵リストlを用いたリング署名方式の署名検証アルゴリズムにより、第2シェアmiに付加された署名σiを検証する。
【0091】
ステップS32において、匿名署名検証部231は、署名σiの検証成功又は検証失敗を判定する。
検証成功の場合(ステップS32でYes)、匿名署名検証部231は、ステップS33の処理に進む。
検証失敗の場合(ステップS32でNo)、匿名署名検証部231は、ステップS38の処理に進む。
ステップS33において、秘密計算部250は、学習モデルを用いた他のクラウドサーバ20との秘密計算により、署名検証済みの第2シェアmiから第3シェアmi´を求める。
【0092】
ステップS34において、鍵生成部240は、リング署名方式の鍵生成アルゴリズムにより、クラウドサーバ20の第3公開鍵及び第3秘密鍵を生成し、第3公開鍵及び第3秘密を鍵記憶部241に記憶させる。そして、署名生成部251は、鍵記憶部241から自身の第3公開鍵及び第3秘密鍵を読み出す。
【0093】
ステップS35において、署名生成部251は、自身の第3公開鍵のみを含む第3公開鍵リストl´を生成する。
ステップS36において、署名生成部251は、リング署名方式の署名生成アルゴリズムを用いて、署名σi´を生成し、署名σi´を第3シェアmi´に付加する。
【0094】
ステップS37において、シェア送信部252は、署名付き第3シェア及び第3公開鍵リスト(mi´,σi´,l´)を推論データ管理装置30に送信する。
ステップS38において、匿名署名検証部231は、第2シェアmiが改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0095】
<推論データ管理装置>
図9に示すように、ステップS40において、シェア受信部330は、署名付き第3シェア及び第3公開鍵リスト(mi´,σi´,l´)をクラウドサーバ20から受信する。
ステップS41において、署名検証部331は、第3公開鍵リストl´を用いたリング署名方式の署名検証アルゴリズムにより、第3シェアmi´に付加された署名σi´を検証する。
【0096】
ステップS42において、署名検証部331は、署名σi´の検証成功又は検証失敗を判定する。
検証成功の場合(ステップS42でYes)、署名検証部331は、ステップS43の処理に進む。
検証失敗の場合(ステップS42でNo)、署名検証部331は、は、ステップS45の処理に進む。
【0097】
ステップS43において、推論結果合成部332は、署名検証済みの各クラウドサーバ20の第3シェアmi´を合成する。
ステップS44において、推論結果合成部332は、合成した機械学習システム1の推論結果をディスプレイに出力(表示)する。
ステップS45において、署名検証部331は、第3シェアmi´が改竄されているとみなし、エラーメッセージを出力して処理を終了する。
【0098】
[作用・効果]
以上のように、機械学習システム1では、匿名性を有するリング署名方式により学習データおよび推論データに署名を付加するので、ユーザの匿名性を保証し、プライバシーを保護できる。
【0099】
ここで、リング署名では、自身の公開鍵のみを公開鍵リストに含める場合(他ユーザの公開鍵を公開鍵リストに含めない場合)、一般的な署名と同様に匿名性が無くなるという性質を有する。この性質を利用し、機械学習システム1では、クラウドサーバ20が自身の公開鍵のみを第3公開鍵リストに含めることで、正規な学習推論装置から受信した推論結果(第3シェア)であることを推論データ管理装置30が容易に確認できる。
【0100】
さらに、機械学習システム1では、学習データ管理装置10、推論データ管理装置30及びクラウドサーバ20の全てでリング署名方式を採用するので、簡易な構成を実現できる。すなわち、機械学習システム1では、匿名性の有無によらず、同一のリング署名方式のみを用いて全ての署名を生成・検証できるため、実装に必要なリソース(CPUやメモリなど)を最小限にすることができる。
【0101】
以上、実施形態を詳述してきたが、本発明は前記した実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
前記した実施形態では、学習推論装置がクラウドサーバに実装されていることとして説明したが、これに限定されない。
前記した実施形態では、マルチパーティ計算が3パーティー方式であることとして説明したが、これに限定されない。つまり、マルチパーティ計算は、2パーティー方式又は、4以上のパーティー方式であってもよい。
【符号の説明】
【0102】
1 機械学習システム
10 学習データ管理装置
11 学習データ管理部
110 学習データ記憶部
12 鍵管理部
120 鍵生成部
121 鍵記憶部
13 学習データ送信部
130 秘密分散部
131 匿名署名生成部
132 シェア送信部
20 クラウドサーバ(学習推論装置)
21 学習データ受信部
210 シェア受信部
211 匿名署名検証部(第1匿名署名検証部)
22 学習部
220 秘密計算部(第1秘密計算部)
221 学習モデル記憶部
23 推論データ受信部
230 シェア受信部
231 匿名署名検証部(第2匿名署名検証部)
24 鍵管理部
240 鍵生成部
241 鍵記憶部
25 推論部
250 秘密計算部(第2秘密計算部)
251 署名生成部
252 シェア送信部
30 推論データ管理装置
31 鍵管理部
310 鍵生成部
311 鍵記憶部
32 推論データ送信部
320 推論データ生成部
321 秘密分散部
322 匿名署名生成部
323 シェア送信部
33 推論結果出力部
330シェア受信部
331 署名検証部
332 推論結果合成部