(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024159627
(43)【公開日】2024-11-08
(54)【発明の名称】計算システム、計算方法、及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20241031BHJP
G06N 3/098 20230101ALI20241031BHJP
【FI】
G09C1/00 650Z
G06N3/098
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024070185
(22)【出願日】2024-04-24
(31)【優先権主張番号】18/140,628
(32)【優先日】2023-04-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】楊 斌
(72)【発明者】
【氏名】鄭 容朱
(57)【要約】
【課題】セキュリティを高める。
【解決手段】第1秘密情報と、第1並替情報と、を秘密に管理する第1装置と、第2秘密情報と、第2並替情報と、を秘密に管理する第2装置と、を含み、第1装置は、第1装置及び第2装置で分散して管理される第1並替結果のうち、第1装置が管理する第1管理情報を取得し、第1装置及び第2装置で分散して管理される第2並替結果のうち、第1装置が管理する第2管理情報を取得し、第2装置は、第1並替結果のうち、第2装置が管理する第3管理情報を取得し、第2並替結果のうち、第2装置が管理する第4管理情報を取得し、第1管理情報、第2管理情報、第3管理情報、及び第4管理情報に基づいて、第1秘密情報と、第2秘密情報と、の積である秘密積が計算される、計算システム。
【選択図】
図5
【特許請求の範囲】
【請求項1】
2以上の要素数の第1秘密情報と、前記要素数の要素を並び替えるための第1並替情報と、を秘密に管理する第1装置と、
前記要素数の第2秘密情報と、前記要素数の要素を並び替えるための第2並替情報と、を秘密に管理する第2装置と、
を含み、
前記第1装置は、
前記第1並替情報及び前記第2並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第1並替結果のうち、前記第1装置が管理する第1管理情報を取得する第1管理情報取得部と、
前記第1並替情報及び前記第2並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第2並替結果のうち、前記第1装置が管理する第2管理情報を取得する第2管理情報取得部と、
を含み、
前記第2装置は、
前記第1並替結果のうち、前記第2装置が管理する第3管理情報を取得する第3管理情報取得部と、
前記第2並替結果のうち、前記第2装置が管理する第4管理情報を取得する第4管理情報取得部と、
を含み、
前記第1管理情報、前記第2管理情報、前記第3管理情報、及び第4管理情報に基づいて、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算システム。
【請求項2】
前記第1装置は、前記第1装置及び前記第2装置で分散して管理される第1分散情報のうち、前記第1装置が管理する第5管理情報を取得する第5管理情報取得部を更に含み、
前記第1装置の前記第1管理情報取得部は、前記第1分散情報が前記第2並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第3並替結果のうち、前記第1装置が管理する第6管理情報を、前記第1管理情報として取得し、
前記第2装置は、
前記第1分散情報のうち、前記第2装置が管理する第7管理情報を取得する第7管理情報取得部と、
前記第3並替結果のうち、前記第2装置が管理する第8管理情報を取得する第8管理情報取得部と、
前記第1並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第4並替結果のうち、前記第2装置が管理する第9管理情報として、前記第1装置に公開される第1公開情報を取得する第1公開情報取得部と、
前記第1装置に対し、前記第1公開情報を送信する第1公開情報送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第1公開情報を受信する第1公開情報受信部と、
前記第1公開情報に基づいて、前記第4並替結果のうち、前記第1装置が管理する第10管理情報を取得する第10管理情報取得部と、
前記第10管理情報と、前記第5管理情報と、に基づいて、前記第2装置に公開される第2公開情報を取得する第2公開情報取得部と、
前記第2装置に対し、前記第2公開情報を送信する第2公開情報送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第2公開情報を受信する第2公開情報受信部と、
前記第8管理情報、前記第9管理情報、及び前記第2公開情報に基づいて、第1計算情報を取得する第1計算情報取得部と、
を更に含み、
前記第2装置の前記第3管理情報取得部は、前記第2並替情報で前記第1計算情報が並び替えられた第5並替結果と、前記第8管理情報と、に基づいて、前記第3管理情報を取得する、
請求項1に記載の計算システム。
【請求項3】
前記第2装置の前記第1公開情報取得部は、第1乱数に基づいて、前記第1公開情報を取得する、
請求項2に記載の計算システム。
【請求項4】
前記第1装置は、前記第2装置に対し、前記第5管理情報を送信する第5管理情報送信部を含み、
前記第2装置は、
前記第1装置から、前記第5管理情報を受信する第5管理情報受信部と、
前記第5管理情報と、前記第7管理情報と、に基づいて、前記第3並替結果を取得する前記第3並替結果取得部と、
前記第3並替結果と、前記第8管理情報と、に基づいて、前記第6管理情報を取得する第6管理情報取得部と、
前記第1装置に対し、前記第6管理情報を送信する第6管理情報送信部と、
を更に含み、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記第6管理情報を受信し、前記第1管理情報として取得する、
請求項2又は3に記載の計算システム。
【請求項5】
前記第1装置の前記第5管理情報取得部は、第2乱数に基づいて、前記第5管理情報を取得し、
前記第2装置の前記第7管理情報取得部は、第3乱数に基づいて、前記第7管理情報を取得し、
前記第2装置の前記第8管理情報取得部は、第4乱数に基づいて、前記第8管理情報を取得する、
請求項4に記載の計算システム。
【請求項6】
前記第1装置は、
第1公開鍵と、第1秘密鍵と、を取得する第1鍵取得部と、
前記第2装置に対し、前記第1公開鍵を送信する第1公開鍵送信部と、
を更に含み、
前記第2装置は、前記第1装置から、前記第1公開鍵を受信する第1公開鍵受信部を更に含み、
前記第1装置の第5管理情報送信部は、前記第1公開鍵に基づいて、前記第5管理情報を暗号化し、前記第2装置に対し、当該暗号化された第5管理情報を送信し、
前記第2装置の前記第5管理情報受信部は、前記第1装置から、前記暗号化された第5管理情報を受信し、
前記第2装置の前記第3並替結果取得部は、前記第1公開鍵に基づいて、前記第7管理情報を暗号化し、前記暗号化された第5管理情報と、当該暗号化された第7管理情報と、に基づいて、暗号化された前記第3並替結果を取得し、
前記第2装置の前記第6管理情報取得部は、前記第1公開鍵に基づいて、前記第8管理情報を暗号化し、前記暗号化された第3並替結果と、当該暗号化された第8管理情報と、に基づいて、暗号化された前記第6管理情報を取得し、
前記第2装置の前記第6管理情報送信部は、前記第1装置に対し、前記暗号化された第6管理情報を送信し、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記暗号化された第6管理情報を受信して前記第1秘密鍵で復号化し、前記第1管理情報として取得する、
請求項4に記載の計算システム。
【請求項7】
前記第1装置は、
前記第1装置及び前記第2装置で分散して管理される第2分散情報のうち、前記第1装置が管理する第11管理情報を取得する第11管理情報取得部と、
前記第2分散情報が前記第1並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第6並替結果のうち、前記第1装置が管理する第12管理情報を取得する第12管理情報取得部と、
前記第1装置及び前記第2装置で分散して管理される第1分散情報のうち、前記第1装置が管理する第5管理情報を取得する第5管理情報取得部と、
を更に含み、
前記第1装置の前記第2管理情報取得部は、前記第1分散情報が前記第2並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第3並替結果のうち、前記第1装置が管理する第6管理情報を、前記第2管理情報として取得し、
前記第2装置は、
前記第2分散情報のうち、前記第2装置が管理する第13管理情報を取得する第13管理情報取得部と、
前記第1並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第7並替結果のうち、前記第2装置が管理する第14管理情報として、前記第6並替結果のうち、前記第2装置が管理する第15管理情報を取得する第14管理情報取得部と、
前記第1分散情報Sのうち、前記第2装置が管理する第7管理情報を取得する第7管理情報取得部と、
前記第3並替結果のうち、前記第2装置が管理する第8管理情報を取得する第8管理情報取得部と、
前記第2秘密情報と、前記第13管理情報と、に基づいて、前記第1装置に公開される第3公開情報を取得する第3公開情報取得部と、
前記第1装置に対し、前記第3公開情報を送信する第3公開情報送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第3公開情報を受信する第3公開情報受信部と、
前記第11管理情報と、前記第3公開情報と、に基づいて、第2計算情報を取得する第2計算情報取得部と、
前記第1並替情報で前記第2計算情報が並び替えられた第8並替結果と、前記第12管理情報と、基づいて、前記第7並替結果のうち、前記第1装置が管理する第16管理情報を取得する第16管理情報取得部と、
前記第16管理情報と、前記第5管理情報と、に基づいて、前記第2装置に公開される第4公開情報を取得する第4公開情報取得部と、
前記第2装置に対し、前記第4公開情報を送信する第4公開情報送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第4公開情報を受信する第4公開情報受信部と、
前記第14管理情報、前記第7管理情報、及び前記第4公開情報に基づいて、第3計算情報を取得する第3計算情報取得部と、
を更に含み、
前記第2装置の前記第4管理情報取得部は、前記第2並替情報で前記第3計算情報が並び替えられた第9並替結果と、前記第8管理情報と、に基づいて、前記第4管理情報を取得する、
請求項1~3の何れかに記載の計算システム。
【請求項8】
前記第2装置は、前記第1装置に対し、前記第13管理情報を送信する第13管理情報送信部を含み、
前記第1装置は、
前記第2装置から、前記第13管理情報を受信する第13管理情報受信部と、
前記第11管理情報と、前記第13管理情報と、に基づいて、前記第6並替結果を取得する第6並替結果取得部と、
前記第6並替結果と、前記第12管理情報と、に基づいて、前記第15管理情報を取得する第15管理情報取得部と、
前記第2装置に対し、前記第15管理情報を送信する第15管理情報送信部と、
を更に含み、
前記第2装置の前記第14管理情報取得部は、前記第1装置から、前記第15管理情報を受信し、当該第15管理情報を、前記第14管理情報として取得する、
請求項7に記載の計算システム。
【請求項9】
前記第1装置の前記第11管理情報取得部は、第5乱数に基づいて、前記第11管理情報を取得し、
前記第1装置の前記第12管理情報取得部は、第6乱数に基づいて、前記第12管理情報を取得し、
前記第2装置の前記第13管理情報取得部は、第7乱数に基づいて、前記第13管理情報を取得する、
請求項8に記載の計算システム。
【請求項10】
前記第2装置は、
第2公開鍵と、第2秘密鍵と、を取得する第2鍵取得部と、
前記第1装置に対し、前記第2公開鍵を送信する第2公開鍵送信部と、
を更に含み、
前記第1装置は、前記第2装置から、前記第2公開鍵を受信する第2公開鍵受信部を更に含み、
前記第2装置の前記第13管理情報送信部は、前記第2公開鍵に基づいて、前記第13管理情報を暗号化し、前記第1装置に対し、当該暗号化された第13管理情報を送信し、
前記第1装置の前記第13管理情報受信部は、前記第2装置から、前記暗号化された第13管理情報を受信し、
前記第1装置の前記第6並替結果取得部は、前記第2公開鍵に基づいて、前記第11管理情報を暗号化し、前記暗号化された第13管理情報と、当該暗号化された第11管理情報と、に基づいて、暗号化された前記第6並替結果を取得し、
前記第1装置の前記第15管理情報取得部は、前記第2公開鍵に基づいて、前記第12管理情報を暗号化し、前記暗号化された第6並替結果と、当該暗号化された第12管理情報と、に基づいて、暗号化された前記第15管理情報を取得し、
前記第1装置の前記第15管理情報送信部は、前記第2装置に対し、前記暗号化された第15管理情報を送信し、
前記第2装置の前記第15管理情報取得部は、前記第1装置から、前記暗号化された第15管理情報を受信して前記第2秘密鍵で復号化し、当該復号化された第15管理情報を前記第14管理情報として取得する、
請求項8に記載の計算システム。
【請求項11】
前記第1装置は、前記第5管理情報取得部は、第2乱数に基づいて、前記第5管理情報を取得し、
前記第2装置は、前記第7管理情報取得部は、第3乱数に基づいて、前記第7管理情報を取得し、
前記第2装置は、前記第8管理情報取得部は、第4乱数に基づいて、前記第8管理情報を取得する、
請求項7に記載の計算システム。
【請求項12】
前記第1装置は、
第1公開鍵と、第1秘密鍵と、を生成する第1鍵取得部と、
前記第2装置に対し、前記第1公開鍵を送信する第1公開鍵送信部と、
を更に含み、
前記第2装置は、前記第1装置から、前記第1公開鍵を受信する第1公開鍵受信部を更に含み、
前記第1装置の第5管理情報送信部は、前記第1公開鍵に基づいて、前記第5管理情報を暗号化し、前記第2装置に対し、当該暗号化された第5管理情報を送信し、
前記第2装置の前記第5管理情報受信部は、前記第1装置から、前記暗号化された第5管理情報を受信し、
前記第2装置の前記第3並替結果取得部は、前記第1公開鍵に基づいて、前記第7管理情報を暗号化し、前記暗号化された第5管理情報と、当該暗号化された第7管理情報と、に基づいて、暗号化された前記第3並替結果を取得し、
前記第2装置の前記第6管理情報取得部は、前記第1公開鍵に基づいて、前記第8管理情報を暗号化し、前記暗号化された第3並替結果と、当該暗号化された第8管理情報と、に基づいて、暗号化された前記第6管理情報を取得し、
前記第2装置の前記第6管理情報送信部は、前記第1装置に対し、前記暗号化された第6管理情報を送信し、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記暗号化された第6管理情報を受信して前記第1秘密鍵で復号化する、
請求項7に記載の計算システム。
【請求項13】
前記第1装置は、
前記第1管理情報と、前記第2管理情報と、に基づいて、前記第1並替結果と、前記第2並替結果と、の積であって、前記第1装置及び前記第2装置で分散して管理される分散積のうち、前記第1装置が管理する第1管理積を取得する第1管理積取得部と、
前記第1管理積の合計である第1合計を取得する第1合計取得部と、
を更に含み、
前記第2装置は、
前記第3管理情報と、前記第4管理情報と、に基づいて、前記分散積のうち、前記第2装置が管理する第2管理積を取得する第2管理積取得部と、
前記第2管理積の各要素の合計である第2合計を取得する第2合計取得部と、
を更に含み、
前記第1合計と、前記第2合計と、に基づいて、前記秘密積が計算される、
請求項1~3の何れかに記載の計算システム。
【請求項14】
前記第1装置の前記第1管理積取得部は、BMT(Beaver Multiplication Triples)の手法に基づいて、第1管理積を取得し、
前記第2装置の前記第2管理積取得部は、前記BMTの手法に基づいて、前記第2管理積を取得する、
請求項13に記載の計算システム。
【請求項15】
前記第2装置は、前記第1装置に対し、前記第2合計を送信する第2合計送信部を更に含み、
前記第1装置は、
前記第2装置から、前記第2合計を受信する第2合計受信部と、
前記第1合計と、前記第2合計と、に基づいて、前記秘密積を計算する秘密積計算部と、
を更に含む請求項13に記載の計算システム。
【請求項16】
前記第1秘密情報、前記第2秘密情報、前記第1並替結果、前記第1管理情報、前記第2並替結果、前記第2管理情報、前記第3管理情報、及び前記第4管理情報の各々は、ベクトル形式であり、
前記第1並替情報及び前記第2並替情報の各々は、配列形式であり、
前記秘密積は、内積である、
請求項1~3の何れかに記載の計算システム。
【請求項17】
前記計算システムでは、前記秘密積に基づいて、連合学習における学習モデルの学習が実行される、
請求項1~3の何れかに記載の計算システム。
【請求項18】
前記第1秘密情報は、第1サービスにおける複数のユーザの各々に関する情報であり、
前記第2秘密情報は、第2サービスにおける前記複数のユーザの各々に関する情報である、
請求項1~3の何れかに記載の計算システム。
【請求項19】
2以上の要素数の第1秘密情報と、前記要素数の要素を並び替えるための第1並替情報と、を秘密に管理する第1装置と、
前記要素数の第2秘密情報と、前記要素数の要素を並び替えるための第2並替情報と、を秘密に管理する第2装置と、
により実行され、
前記第1装置は、
前記第1並替情報及び前記第2並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第1並替結果のうち、前記第1装置が管理する第1管理情報を取得し、
前記第1並替情報及び前記第2並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第2並替結果のうち、前記第1装置が管理する第2管理情報を取得し、
前記第2装置は、
前記第1並替結果のうち、前記第2装置が管理する第3管理情報を取得し、
前記第2並替結果のうち、前記第2装置が管理する第4管理情報を取得し、
前記第1管理情報、前記第2管理情報、前記第3管理情報、及び第4管理情報に基づいて、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算方法。
【請求項20】
請求項1に記載の第1装置又は第2装置としてコンピュータを動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、計算システム、計算方法、及びプログラムに関する。
【背景技術】
【0002】
従来、装置が秘密に管理する情報の漏洩を防止するための技術が検討されている。例えば、非特許文献1には、訓練データを1つの拠点に集約することなく、機械学習の手法を利用した学習モデルを作成するための連合学習の手法が記載されている。連合学習では、複数の装置の各々が、他の装置に対し、自身が秘密に管理する情報を送信することなく、学習モデルの学習を実行できることが知られている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Qinbin Li, Zeyi Wen, Zhaomin Wu, Sixu Hu, Naibo Wang, Yuan Li, Xu Liu, Bingsheng He, “A Survey on Federated Learning Systems: Vision, Hype and Reality for Data Privacy and Protection”, インターネット, 2023年3月16日検索,https://arxiv.org/abs/1907.09693
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、非特許文献のような連合学習では、学習モデルの学習のために、第1装置が秘密に管理する第1秘密情報と、第2装置が秘密に管理する第2秘密情報と、の秘密積を計算するといった要望がある。連合学習以外の他の分野でも、秘密に管理される複数の情報の積である秘密積が計算される場合には、同様の要望がある。この場合に、しかしながら、第2装置が第1秘密情報及び第2秘密情報の秘密積を計算する場合に、第1装置が第2装置に第1秘密情報を送信すると、第1秘密情報がネットワーク上に送信されるので、セキュリティが十分ではない。第1秘密情報を暗号化したとしても、第三者に解読される可能性がある。第1装置が秘密積を計算する場合も同様である。
【0005】
本開示の目的の1つは、セキュリティを高めることである。
【課題を解決するための手段】
【0006】
本開示に係る計算システムは、2以上の要素数の第1秘密情報と、前記要素数の要素を並び替えるための第1並替情報と、を秘密に管理する第1装置と、前記要素数の第2秘密情報と、前記要素数の要素を並び替えるための第2並替情報と、を秘密に管理する第2装置と、を含み、前記第1装置は、前記第1並替情報及び前記第2並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第1並替結果のうち、前記第1装置が管理する第1管理情報を取得する第1管理情報取得部と、前記第1並替情報及び前記第2並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第2並替結果のうち、前記第1装置が管理する第2管理情報を取得する第2管理情報取得部と、を含み、前記第2装置は、前記第1並替結果のうち、前記第2装置が管理する第3管理情報を取得する第3管理情報取得部と、前記第2並替結果のうち、前記第2装置が管理する第4管理情報を取得する第4管理情報取得部と、を含み、前記第1管理情報、前記第2管理情報、前記第3管理情報、及び第4管理情報に基づいて、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される。
【発明の効果】
【0007】
本開示によれば、セキュリティが高まる。
【図面の簡単な説明】
【0008】
【
図1】計算システムで実行される連合学習の一例を示す図である。
【
図2】連合学習における計算式の一例を示す図である。
【
図4】計算システムのハードウェア構成の一例を示す図である。
【
図5】計算システムで実現される機能の一例を示す図である。
【
図6】第1並替情報及び第2並替情報に基づいて実行される第1秘密情報の並び替えの一例を示す図である。
【
図7】第1秘密情報がシェアされる様子の一例を示す図である。
【
図8】第1秘密情報及び第2秘密情報の内積を取得するための技術思想の一例を示す図である。
【
図9】計算システムで実行される処理の一例を示す図である。
【
図10】S20及びS21の処理の詳細の一例を示す図である。
【
図11】S200~S203の処理の詳細の一例を示す図である。
【
図12】S30及びS31の処理の詳細の一例を示す図である。
【
図13】S300~S303の処理の詳細の一例を示す図である。
【発明を実施するための形態】
【0009】
[1.計算システムの概要]
本開示に係る計算システムの実施形態の一例である本実施形態を説明する。本実施形態では、機械学習における連合学習に計算システムが利用される場合を例に挙げる。連合学習は、複数の装置で分散して実行される学習の手法である。複数の装置のうちの何れかは、他の装置から学習結果を集約して学習モデルを作成する。
【0010】
従来の学習では、学習モデルの学習を実行する装置は、他の装置から訓練データを集める必要があった。このため、訓練データが第三者に流出する可能性があるので、セキュリティの観点で懸念が生じる。この点、連合学習では、個々の装置が、他の装置に対し、原則として訓練データを送信せずに学習結果だけを送信するので、セキュリティの観点で有用である。例えば、訓練データが個人情報を含む場合には、連合学習は、個人情報の流出を防止できる。
【0011】
図1は、計算システムで実行される連合学習の一例を示す図である。
図1の例では、4つのサービス0~3が互いに協力して連合学習を実行する場合が示されている。例えば、サービス0は、ユーザに関する各種情報を管理する管理会社が提供する情報管理サービスである。サービス1は、銀行が提供する金融サービスである。サービス2は、証券会社が提供する金融サービスである。サービス3は、保険会社が提供する保険サービスである。
【0012】
例えば、サービス0~3の各々におけるコンピュータが、互いに連携して連合学習を実行する。
図1では、コンピュータを省略している。以降、
図1の簡略化のために、連合学習における処理を実行する実行主体がサービス0~3であるものとして説明するが、実際には、実行主体は、サービス0~3の各々におけるコンピュータである。以降、サービス0~3を区別しない時は、符号を省略してサービスという。
【0013】
例えば、連合学習では、各サービスは、自身の学習モデルを初期化する。各サービスは、自身が管理する訓練データに基づいて、自身の学習モデルの学習を実行する。訓練データは、原則として、第三者に公開されない。訓練データは、各サービスで秘密に管理される。本実施形態では、ユーザの年収を推定する学習モデルが連合学習で作成される場合を例に挙げるが、他の任意の目的で学習モデルが作成されてよい。例えば、年収以外の属性を推定する学習モデル、画像処理で利用される学習モデル、自然言語処理で利用される学習モデル、又はその他の学習モデルが連合学習で作成されてもよい。
【0014】
例えば、訓練データは、年収と相関関係があると考えられるデモグラフィック情報、サービスにおける決済履歴、ウェブページの閲覧履歴、又はその他の情報を含む。各サービスは、独自に訓練データを管理し、原則として外部に訓練データを送信しない。本実施形態では、ユーザがサービス1~3の全てを利用するユーザの特徴が訓練データに示される場合を例に挙げるが、サービス1~3のうちの少なくとも1つを利用するユーザの特徴が訓練データに示されるようにすればよい。
【0015】
図2は、連合学習における計算式の一例を示す図である。例えば、サービス1は、銀行が秘密に管理するユーザの特徴x
1を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM1の学習を実行する。サービス2は、証券会社が秘密に管理するユーザの特徴x
2を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM2の学習を実行する。サービス3は、保険会社が秘密に管理するユーザの特徴x
3を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM3の学習を実行する。
【0016】
図2の例では、特徴x
1,x
2,x
3を包含する概念を特徴Xと記載する。特徴Xは、n×mの行列形式である。nとmは、任意の自然数である。例えば、サービス0は、正解となる年収であるラベルyを管理する。
図2の例では、yは、n×1の行列(いわゆる列ベクトル)である。サービス0は、サービス1~3の各々によるローカルの学習結果を収集し、ユーザの年収を推定する学習モデルM0の学習を実行する。
【0017】
図1の例では、サービス0は、学習モデルM1による推定結果y
1、学習モデルM2による推定結果y
2、及び学習モデルM3による推定結果y
3に基づいて、ユーザの年収yを推定する学習モデルM0を作成する。即ち、学習モデルM0には、推定結果y
1~y
3が入力される。学習モデルM0は、推定結果y
1~y
3に基づいて特徴量を計算し、当該特徴量に応じた推定結果として、ユーザの年収yを出力する。学習モデルM0は、学習モデルM1~M3の推定結果y
1~y
3を利用するアンサンブル学習の一種であるスタッキング学習におけるモデルということができる。
【0018】
例えば、学習モデルM0は、学習によって調整されるパラメータとして、重み係数w
0~w
4を含む。学習モデルM0は、重み係数w
0~w
4以外の他のパラメータ(例えば、バイアス)を含んでもよい。
図2のiは、個々のユーザを示す数値である。
図2のように、正解となるラベルy
iと、学習モデルM0の推定結果y
i(
図2では上部に記号が付与されている)と、の差に基づいて損失Lが計算される。サービス0は、損失Lが小さくなるように、学習モデルM0の学習を実行する。
【0019】
例えば、サービス0は、サービス1~3の各々に対し、学習モデルM0の学習結果を送信する。サービス1は、学習モデルM0の学習結果に基づいて、学習モデルM1を更新する。サービス2は、学習モデルM0の学習結果に基づいて、学習モデルM2を更新する。サービス3は、学習モデルM0の学習結果に基づいて、学習モデルM3を更新する。サービス1~3の各々は、サービス0に対し、新たな学習結果を送信する。以降同様にして、サービス0と、サービス1~3の各々と、の間で学習結果の共有が繰り返されることによって、学習モデルM0~M3の改善が期待される。
【0020】
なお、
図1では、簡略化のために線を省略しているが、本実施形態では、サービス1~3は、互いの学習結果を共有するものとする。例えば、サービス1は、サービス2,3から、学習モデルM2,M3の学習結果を取得し、学習モデルM1を更新する。サービス2は、サービス1,3から、学習モデルM1,M3の学習結果を取得し、学習モデルM2を更新する。サービス3は、サービス1,2から、学習モデルM1,M2の学習結果を取得し、学習モデルM3を更新する。
【0021】
以降、学習モデルM0~M4を区別しない時には、単に学習モデルMという。学習モデルMの学習手法自体は、公知の手法であってよく、例えば、勾配降下法又は誤差逆伝播法を利用可能である。本実施形態では、学習モデルMの種類及び学習手法が互いに同じである場合を例に挙げるが、学習モデルMの種類及び学習手法の少なくとも一方は、互いに異なってもよい。例えば、学習モデルM0がニューラルネットワークであり、学習モデルM1がサポートベクターマシンであり、学習モデルM2が勾配ブースティング回帰木であり、学習モデルM3が線型回帰モデルであってもよい。学習手法は、これらの種類に応じた手法であればよい。
【0022】
本実施形態では、学習モデルMがニューラルネットワークであり、かつ、学習モデルMの学習手法が勾配降下法である場合を例に挙げる。勾配降下法は、学習モデルMのパラメータを反復的に更新し、損失の勾配(傾き)を計算して勾配が最も降下する方向にパラメータが更新される。例えば、学習モデルM0の学習で勾配降下法が利用される場合、
図2のような微分の計算式が利用される。学習モデルM1~M3の学習で勾配降下法が利用される場合も、同様の計算式が利用される。勾配降下法自体は、公知の技術のため、
図2の計算式の詳細は省略する。
【0023】
例えば、
図2の計算式で下線を引いた部分は、サービス1に関する列ベクトルと、サービス2に関する列ベクトルと、の内積である。サービス1,2がそれぞれ学習モデルM1,M2の学習を実行する場合にも、同様の情報を取得する必要がある。この場合、サービス1,2が、互いに秘密に管理すべき情報を送信することなく、
図2の計算式で下線を引いた内積を取得することが求められている。
図1の表C1は、このような要求を満たすための問題を一般化したものである。計算システムは、表C1の問題を解決できれば、サービス間で秘密に管理する情報をサービス間で送信しあうことなく、内積を取得できる。
【0024】
図3は、
図1の表C1の問題の具体例を示す図である。例えば、あるサービスの第1装置Aは、m次元のベクトルaを秘密に管理する。他のサービスの第2装置Bは、m次元のベクトルbを秘密に管理する。例えば、m次元のベクトルに含まれる要素は、個々のユーザに関する何らかの特徴を示す。第2装置Bは、高いセキュリティが要求されている。第1装置A及び第2装置Bの各々は、セキュリティの観点で、ベクトルa及びベクトルbではなく、何らかの統合された情報を送信するといった制約条件がある。
【0025】
例えば、表C2のように、第2装置Bが、第1装置Aからベクトルaを取得することなく、ベクトルaと、ベクトルbと、の内積a・bを取得できれば、第2装置Bが管理する学習モデルMの学習で有用である。本実施形態では、この手法の一例を説明する。逆に、表C3のように、第1装置Aが、第2装置Bからベクトルbを取得することなく、ベクトルaと、ベクトルと、の内積a・bを取得できれば、第1装置Aが管理する学習モデルMの学習で有用である。計算システム1は、このような手法も可能である。
【0026】
[2.計算システムのハードウェア構成]
図4は、計算システムのハードウェア構成の一例を示す図である。第1装置Aと、第2装置Bと、の各々は、インターネット又はLAN等のネットワークNに接続される。
【0027】
第1装置Aは、第1サービスのコンピュータである。本実施形態では、第1サービスが
図1のサービス1(銀行が提供するサービス)である場合を例に挙げるが、第1サービスは、他の任意のサービスであってよい。例えば、第1サービスは、
図1のサービス0,2,3であってもよいし、
図1には示さない他のサービスであってもよい。他のサービスは、通信サービス、電子商取引サービス、旅行予約サービス、電子決済サービス、又はポイント管理サービスであってもよい。
【0028】
例えば、第1装置Aは、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。第1装置Aは、制御部A11、記憶部A12、及び通信部A13を含む。制御部A11は、少なくとも1つのプロセッサを含む。記憶部A12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部A13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0029】
第2装置Bは、第2サービスのコンピュータである。例えば、第2装置Bは、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。第2装置Bは、制御部B11、記憶部B12、及び通信部B13を含む。制御部B11、記憶部B12、及び通信部B13のハードウェア構成は、それぞれ制御部A11、記憶部A12、及び通信部A13と同様であってよい。
【0030】
本実施形態では、第2サービスが
図1のサービス2(証券会社が提供するサービス)である場合を例に挙げるが、第2サービスは、他の任意のサービスであってもよい。例えば、第2サービスは、第1サービスと同じであってもよい。第2サービスが第1サービスと異なる場合には、第2サービスは、第1サービスの説明で例示したサービスのうち、第1サービス以外のものであってもよい。第1装置A及び第2装置Bは、何らかのサービスに関係なく、私的に又はその他の目的で利用される装置であってもよい。
【0031】
本実施形態では、第2装置Bは、第1装置Aよりも高いセキュリティが要求される場合を例に挙げる。例えば、ネットワークNに送信可能なデータが制限されることは、セキュリティが高いことに相当する。第2装置Bが第1装置Aと同様のデータを外部に送信する場合には、第2装置Bは、第1装置Aよりもデータを加工する必要がある。例えば、第1装置Aは、行列形式のデータの行数を変えずにネットワークNに送信可能であるが、第2装置Bは、行列形式のデータの行数を変えてネットワークNに送信する必要がある。
【0032】
以降、第1装置A及び第2装置Bを区別しない場合には、単に装置と記載して符号を省略する。制御部A11,B11、記憶部A12,B12、及び通信部A13,B13を区別しない場合には、それぞれ制御部11、記憶部12、及び通信部13と記載して符号の冒頭のアルファベットを省略する。記憶部12に記憶されるプログラムは、ネットワークNを介して装置に供給されてもよい。また、コンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムが、情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)、又は、外部機器とデータの入出力をするための入出力部(例えば、USBポート)を介して装置に供給されてもよい。
【0033】
また、計算システム10では、第1装置A、第2装置B、及び他の装置を含む複数の装置の各々が通信可能であってもよい。即ち、計算システム10は、第1装置A及び第2装置B以外の他の装置を含んでもよい。例えば、他の装置は、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。計算システム10は、複数の他の装置を含んでもよい。
図1のように4つのサービスが存在する場合には、計算システム10は、第1装置A、第2装置B、及び少なくとも2つの他の装置を含む。
【0034】
例えば、計算システム10が他の装置を含む場合、第2装置Bは、複数の装置の中で相対的に高いセキュリティが要求される。他の装置は、第1装置A又は第2装置Bと同様の機能を有していてもよい。他の装置が第1装置Aと同様の機能を有する場合には、計算システム10が第1装置A及び他の装置を含むことは、計算システム10が複数の第1装置Aを含むことを意味する。他の装置が第2装置Bと同様の機能を有する場合には、計算システム10が第2装置B及び他の装置を含むことは、計算システム10が複数の第2装置Bを含むことを意味する。
【0035】
[3.計算システムで実現される機能]
図5は、計算システム10で実現される機能の一例を示す図である。例えば、第1装置Aは、第1データ記憶部A100、第1秘密情報取得部A101、第1並替情報取得部A102、第1管理情報取得部A103、第2管理情報取得部A104、第5管理情報取得部A105、第1公開情報受信部A106、第10管理情報取得部A107、第2公開情報取得部A108、第2公開情報送信部A109、第5管理情報送信部A110、第1鍵取得部A111、第1公開鍵送信部A112、第11管理情報取得部A113、第12管理情報取得部A114、第3公開情報受信部A115、第2計算情報取得部A116、第16管理情報取得部A117、第4公開情報取得部A118、第4公開情報送信部A119、第13管理情報受信部A120、第6並替結果取得部A121、第15管理情報取得部A122、第15管理情報送信部A123、第2公開鍵受信部A124、第1管理積取得部A125、第1合計取得部A126、第2合計受信部A127、及び秘密積計算部A128を含む。
【0036】
例えば、第1データ記憶部A100は、記憶部A12により実現される。第1秘密情報取得部A101、第1並替情報取得部A102、第1管理情報取得部A103、第2管理情報取得部A104、第5管理情報取得部A105、第1公開情報受信部A106、第10管理情報取得部A107、第2公開情報取得部A108、第2公開情報送信部A109、第5管理情報送信部A110、第1鍵取得部A111、第1公開鍵送信部A112、第11管理情報取得部A113、第12管理情報取得部A114、第3公開情報受信部A115、第2計算情報取得部A116、第16管理情報取得部A117、第4公開情報取得部A118、第4公開情報送信部A119、第13管理情報受信部A120、第6並替結果取得部A121、第15管理情報取得部A122、第15管理情報送信部A123、第2公開鍵受信部A124、第1管理積取得部A125、第1合計取得部A126、第2合計受信部A127、及び秘密積計算部A128は、制御部A11により実現される。
【0037】
例えば、第2装置Bは、第2データ記憶部B100、第2秘密情報取得部B101、第2並替情報取得部B102、第3管理情報取得部B103、第4管理情報取得部B104、第7管理情報取得部B105、第8管理情報取得部B106、第1公開情報取得部B107、第1公開情報送信部B108、第2公開情報受信部B109、第1計算情報取得部B110、第5管理情報受信部B111、第3並替結果取得部B112、第6管理情報取得部B113、第6管理情報送信部B114、第1公開鍵受信部B115、第13管理情報取得部B116、第14管理情報取得部B117、第3公開情報取得部B118、第3公開情報送信部B119、第4公開情報受信部B120、第3計算情報取得部B121、第2鍵取得部B122、第2公開鍵送信部B123、第2管理積取得部B124、第2合計取得部B125、及び第2合計送信部B126を含む。
【0038】
例えば、第2データ記憶部B100は、記憶部B12により実現される。第2秘密情報取得部B101、第2並替情報取得部B102、第3管理情報取得部B103、第4管理情報取得部B104、第7管理情報取得部B105、第8管理情報取得部B106、第1公開情報取得部B107、第1公開情報送信部B108、第2公開情報受信部B109、第1計算情報取得部B110、第5管理情報受信部B111、第3並替結果取得部B112、第6管理情報取得部B113、第6管理情報送信部B114、第1公開鍵受信部B115、第13管理情報取得部B116、第13管理情報送信部、第14管理情報取得部B117、第3公開情報取得部B118、第3公開情報送信部B119、第4公開情報受信部B120、第3計算情報取得部B121、第2鍵取得部B122、第2公開鍵送信部B123、第2管理積取得部B124、第2合計取得部B125、及び第2合計送信部B126は、制御部B11により実現される。
【0039】
[第1データ記憶部]
第1データ記憶部A100は、第1装置Aが実行する処理に必要なデータを記憶する。例えば、第1データ記憶部A100は、第1学習モデルAMを記憶する。第1学習モデルAMは、第1装置Aが管理する学習モデルMである。第1装置Aは、連合学習の手法を利用して、第1学習モデルAMの学習を実行する。
【0040】
例えば、第1装置Aは、2以上の要素数i(iは2以上の整数)の第1秘密情報aを秘密に管理する。第1データ記憶部A100は、第1秘密情報aを記憶する。第1秘密情報aは、第1装置Aで秘密に管理される情報である。第1秘密情報aは、原則として、第1装置A以外の他の装置に送信されない。第1秘密情報aは、複数の要素を含む。要素は、第1秘密情報aを構成する数値である。本実施形態では、第1秘密情報aがベクトル形式である場合を例に挙げるが、第1秘密情報aは、複数の要素を含み、かつ、積を計算可能な情報であればよく、例えば、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。
【0041】
本実施形態では、第1装置Aは、連合学習における第1学習モデルAMの学習過程において、第1秘密情報aを計算する。例えば、第1装置Aは、第1学習モデルAMのパラメータの一部を第1秘密情報aとして取得してもよいし、当該一部から計算した情報を第1秘密情報aとして取得してもよい。例えば、第1秘密情報aは、現状の第1学習モデルAMのパラメータの一部と、現状の第1学習モデルAMの推定結果と、を乗算した値である。
【0042】
なお、第1秘密情報aは、第1サービスにおける複数のユーザの各々に関する情報であってもよい。例えば、第1秘密情報aは、現状の第1学習モデルAMのパラメータの一部と、現状の第1学習モデルAMによる複数のユーザの各々の年収の推定結果と、を乗算した値を含んでもよい。この場合、第1秘密情報aの次元数は、ユーザ数となる。他にも例えば、第1秘密情報aは、ユーザの年齢層又は性別といった個人情報が数値化(定量化)された情報であってもよい。第1秘密情報aは、ユーザの複数の個人情報の各々が数値化された情報であってもよい。
【0043】
また、第1サービスにおける複数のユーザの各々のユーザ識別情報と、第2サービスにおける複数のユーザの各々のユーザ識別情報と、は同じであってもよい。ユーザ識別情報は、ユーザを識別可能な情報である。例えば、ログインアカウント、メールアドレス、又は電話番号は、ユーザ識別情報に相当する。本実施形態では、第1サービス及び第2サービスでユーザ識別情報が共通である場合を例に挙げるが、第1サービス及び第2サービスでユーザ識別情報が異なってもよい。この場合、ユーザごとに、第1サービスにおけるユーザ識別情報と、第2サービスにおけるユーザ識別情報と、の対応関係が定められたデータが存在するものとする。このデータは、第1データ記憶部A100、第2データ記憶部B100、又はその他の場所に記憶されているものとする。
【0044】
例えば、第1装置Aは、要素数iの要素を並び替えるための第1並替情報πAを秘密に管理する。第1データ記憶部A100は、第1並替情報πAを記憶する。第1並替情報πAは、第1装置Aで秘密に管理される情報である。第1並替情報πAは、原則として、第1装置A以外の他の装置に送信されない。第1並替情報πAは、要素の並び替えのルール示す。例えば、第1並替情報πAは、並び替え前の要素の順序と、並び替え後の要素の順序と、関係を示す。本実施形態では、第1並替情報πAが配列形式である場合を例に挙げるが、第1並替情報πAは、要素の並び替えルールを示せばよく、例えば、単一の数値、複数の数値、行列、ベクトル、データフレーム、又はその他の情報であってもよい。
【0045】
なお、第1データ記憶部A100が記憶するデータは、上記の例に限られない。第1データ記憶部A100は、任意のデータを記憶可能である。例えば、第1データ記憶部A100は、第1学習モデルAMの訓練データを記憶する。訓練データは、第1学習モデルAMに入力される入力部分と、当該入力部分に対応する出力部分と、を含む。出力部分は、学習時における正解に相当する。第1装置Aは、第1データ記憶部A100に記憶された訓練データに基づいて、第1学習モデルAMのローカルな学習を実行する。第1装置Aは、訓練データの入力部分が入力された場合に、訓練データの出力部分が出力されるように、第1学習モデルAMのパラメータを調整する。
【0046】
本実施形態では、ユーザの年収を推定する第1学習モデルAMが作成されるので、訓練データの入力部分は、ユーザに関する何らかの情報である。例えば、第1サービスにおけるユーザのデモグラフィック情報等の特徴が訓練データの入力部分に相当する。訓練データの出力部分は、ユーザの年収である。訓練データの出力部分に相当する年収は、ユーザが第1サービスに登録した年収であってもよいし、ユーザが他のサービスに登録した年収であってもよい。訓練データの出力部分に相当する年収は、第1学習モデルAMの作成者が指定した年収であってもよい。第1装置Aは、連合学習の手法を利用して、ローカルで学習された第1学習モデルAMを更新してもよい。例えば、第1データ記憶部A100は、上記説明したデータ以外にも、本実施形態で説明する各種情報を記憶してよい。
【0047】
[第2データ記憶部]
第2データ記憶部B100は、第2装置Bが実行する処理に必要なデータを記憶する。例えば、第2データ記憶部B100は、第2学習モデルBMを記憶する。第2学習モデルBMは、第2装置Bが管理する学習モデルMである。第2装置Bは、連合学習の手法を利用して、第2学習モデルBMの学習を実行する。
【0048】
例えば、第2装置Bは、要素数iの第2秘密情報bを秘密に管理する。第2データ記憶部B100は、第2秘密情報bを記憶する。第2秘密情報bは、第2装置Bで秘密に管理される情報である。第2秘密情報bは、原則として、第2装置B以外の他の装置に送信されない。第2秘密情報bは、1つの数値を示す情報、又は、複数の数値を含む情報である。本実施形態では、第2秘密情報bがベクトル形式である場合を例に挙げるが、第2秘密情報bは、複数の要素を含み、かつ、積を計算可能な情報であればよく、例えば、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。
【0049】
本実施形態では、第2装置Bは、連合学習における第2学習モデルBMの学習過程において、第2秘密情報bを計算する。例えば、第2装置Bは、第2学習モデルBMのパラメータの一部を第2秘密情報bとして取得してもよいし、当該一部から計算した情報を第2秘密情報bとして取得してもよい。例えば、第2秘密情報bは、現状の第2学習モデルBMのパラメータの一部と、現状の第2学習モデルBMの推定結果と、を乗算した値である。
【0050】
なお、第2秘密情報bは、第2サービスにおける複数のユーザの各々に関する情報であってもよい。例えば、第2秘密情報bは、現状の第2学習モデルBMのパラメータの一部と、現状の第2学習モデルBMによる複数のユーザの各々の年収の推定結果と、を乗算した値を含んでもよい。この場合、第2秘密情報bの次元数は、ユーザ数となる。他にも例えば、第2秘密情報bは、ユーザの年齢層又は性別といった個人情報が数値化(定量化)された情報であってもよい。第2秘密情報bは、ユーザの複数の個人情報の各々が数値化された情報であってもよい。
【0051】
例えば、第2装置Bは、要素数iの要素を並び替えるための第2並替情報πBと、を秘密に管理する。第2データ記憶部B100は、第2並替情報πBを記憶する。第2並替情報πBは、第2装置Bで秘密に管理される情報である。第2並替情報πBは、原則として、第2装置B以外の他の装置に送信されない。第2並替情報πBは、要素の並び替えのルール示す。例えば、第2並替情報πBは、並び替え前の要素の順序と、並び替え後の要素の順序と、関係を示す。本実施形態では、第2並替情報πBが配列形式である場合を例に挙げるが、第2並替情報πBは、要素の並び替えルールを示せばよく、例えば、単一の数値、複数の数値、行列、ベクトル、データフレーム、又はその他の情報であってもよい。
【0052】
なお、第2データ記憶部B100が記憶するデータは、上記の例に限られない。第2データ記憶部B100は、任意のデータを記憶可能である。例えば、第2データ記憶部B100は、第2学習モデルBMの訓練データを記憶する。訓練データは、第2学習モデルBMに入力される入力部分と、当該入力部分に対応する出力部分と、を含む。出力部分は、学習時における正解に相当する。第2装置Bは、第2データ記憶部B100に記憶された訓練データに基づいて、第2学習モデルBMのローカルな学習を実行する。第2装置Bは、訓練データの入力部分が入力された場合に、訓練データの出力部分が出力されるように、第2学習モデルBMのパラメータを調整する。
【0053】
本実施形態では、ユーザの年収を推定する第2学習モデルBMが作成されるので、訓練データの入力部分は、ユーザに関する何らかの情報である。例えば、第2サービスにおけるユーザのデモグラフィック情報等の特徴が訓練データの入力部分に相当する。訓練データの出力部分は、ユーザの年収である。訓練データの出力部分に相当する年収は、ユーザが第2サービスに登録した年収であってもよいし、ユーザが他のサービスに登録した年収であってもよい。訓練データの出力部分に相当する年収は、第2学習モデルBMの作成者が指定した年収であってもよい。第2装置Bは、連合学習の手法を利用して、ローカルで学習された第2学習モデルBMを更新してもよい。例えば、第2データ記憶部B100は、上記説明したデータ以外にも、本実施形態で説明する各種情報を記憶してよい。
【0054】
以降、
図6~
図8を参照し、第1データ記憶部A100及び第2データ記憶部B100以外の他の機能により実行される処理に関する技術思想を説明する。
【0055】
図6は、第1並替情報π
A及び第2並替情報π
Bに基づいて実行される第1秘密情報aの並び替えの一例を示す図である。
図6の並び替えは、実際に第1装置A及び第2装置Bが実行する処理ではない。
図6の並び替えは、上記技術思想の説明用の例である。
図6の例では、第1秘密情報aは、(5,30,65,6,62)である。要素数iは、5である。第1並替情報π
Aは、(1,3,5,2,4)である。配列は、大かっこで表現されることもあるが、
図6の例では、小かっこで表現されるものとする。第2並替情報π
Bは、(2,5,1,3,4)である。
【0056】
例えば、第1並替情報π
A及び第2並替情報π
Bの各要素は、並び替え後の順序を示す。第1並替情報π
Aのm(mはi以下の自然数)番目の要素は、第1秘密情報aのm番目の要素の並び替え後の順序である。
図6の例では、第1並替情報π
Aが(1,3,5,2,4)なので、第1秘密情報aの1番目の要素は、並び替え後には1番目になる。第1秘密情報aの2番目の要素は、並び替え後には3番目になる。第1秘密情報aの3番目の要素は、並び替え後には5番目になる。第1秘密情報aの4番目の要素は、並び替え後には4番目になる。
【0057】
本実施形態では、第1並替情報π
Aに基づいて第1秘密情報aが並び替えられた並替結果を、π
A(a)とする。他の並び替えも同様のルールで記号が記載される。並替結果は、並び替えの対象となる情報が並び替えられた後の状態である。
図6の例では、第1並替情報π
Aに基づいて並び替えられた後の第1秘密情報aが並替結果π
A(a)に相当する。並替結果π
A(a)は、(5,6,30,62,65)になる。
【0058】
本実施形態では、第2並替情報π
Bに基づく並び替えのルールが第1並替情報π
Aと同様であるものとするが、第1並替情報π
Aに基づく並び替えのルールと、第2並替情報π
Bに基づく並び替えのルールと、が異なってもよい。
図6の例では、第2並替情報π
Bに基づいて並替結果π
A(a)が並び替えられた並替結果π
B(π
A(a))は、(30,5,62,65,6)になる。最終的な並び替えを示す並替情報をπとすると、πは、(2,1,4,5,3)である。なお、
図6のπ
A・π
Bの・は、積ではなく、最終的な並び替え順序を示すための記号である。
【0059】
図7は、第1秘密情報aがシェアされる様子の一例を示す図である。本実施形態では、第1秘密情報a、第2秘密情報b、第1並替情報π
A、及び第2並替情報π
Bの各々がネットワークNに送信されることなく、第1秘密情報aと、第2秘密情報bと、の内積を計算するために、秘密分散法が利用される。秘密分散法は、それ自体は意味を持たない乱数の断片をシェアする方法である。全部又は一部のシェアがあつまると、元のデータが復元される。本実施形態では、公知の秘密分散法に対し、並び替えの技術思想が適用されているので、従来の技術に対して革新的な構成を有している。
【0060】
図7の例では、第1秘密情報aが(3,2,2,1,1)である。第1秘密情報aに記載したID1~5は、ユーザ識別情報である。例えば、第1秘密情報aの1番目の要素は、ID1のユーザに関する情報である。同様に、第1秘密情報aの2番目~5番目の要素は、それぞれID2~ID5のユーザに関する情報である。後述する
図8の第2秘密情報bに記載したID1~5も、第1秘密情報aに記載したID1~5と同様の意味である。このため、第1秘密情報aのm番目の要素に対応するユーザと、第2秘密情報bのmb番目の要素に対応するユーザと、は同じユーザである。
【0061】
図7の例では、第1並替情報π
Aは、(1,3,5,2,4)である。第2並替情報π
Bは、(2,5,1,3,4)である。
図7のように、秘密分散法により、第1秘密情報aがシェアされたとすると、第1装置Aは、情報<a>
Aを管理する。第2装置Bは、情報<a>
Bを管理する。このように、本実施形態では、秘密分散法によりシェアされる情報が<>の記号で囲まれて、かつ、その情報管理する主体を記号の後にA又はBの文字で示される。秘密分散法によりシェアされる情報は、単にシェアと呼ばれることもある。情報<a>
A及び情報<a>
Bの各々は、乱数の断片ではあるが、これらが集まると第1秘密情報aを復元可能になる。秘密分散法自体は、公知の手法を利用可能である。
【0062】
例えば、第1装置Aが管理する情報<a>Aは、(5,9,6,2,4)である。第1並替情報πAで情報<a>Aが並び替えられた並替結果<πA(a)>Aは、(5,2,9,4,6)である。もし仮に、第2並替情報πBで情報<πA(a)>Aが並び替えられたとすると、並替結果<πB<πA(a))>Aは、(9,5,4,6,2)である。第1装置Aは、第2並替情報πBを取得できないので、この並び替えが第1装置Aによって直接的に実行されるわけではない。あくまで、本実施形態の技術思想を説明するための並び替えとして説明する。
【0063】
例えば、第2装置Aが管理する情報<a>Bは、(8,3,6,9,7)である。もし仮に、第1並替情報πAで情報<a>Bが並び替えられたとすると、並替結果<πA(a)>Bは、(8,9,3,7,6)である。第2装置Bは、第1並替情報πAを取得できないので、この並び替えが第2装置Bによって直接的に実行されるわけではない。あくまで、本実施形態の技術思想を説明するための並び替えとして説明する。第2並替情報πBで情報<πA(a)>Bが並び替えられた並替結果<πB<πA(a))>Bは、(3,8,7,6,9)である。
【0064】
図7のように、第1秘密情報aは、並び替えの技術思想が適用されたうえで、第1装置A及び第2装置Bでシェアされる。第2秘密情報bも同様であり、並び替えの技術思想が適用されたうえで、第1装置A及び第2装置Bでシェアされる。これらのシェアが成功すると、第1装置A及び第2装置Bの少なくとも一方は、第1秘密情報a及び第2秘密情報bの内積を取得できる。本実施形態では、第1装置Aが第1秘密情報a及び第2秘密情報bの内積を取得する場合を例に挙げるが、第2装置Bが第1秘密情報a及び第2秘密情報bの内積を取得してもよい。
【0065】
図8は、第1秘密情報a及び第2秘密情報bの内積を取得するための技術思想の一例を示す図である。
図8の例では、第2秘密情報bは、(1,3,1,2,3)である。第1秘密情報aと、第2秘密情報bと、の内積は、16である。例えば、10で割った余りが学習で利用されたとすると、最終的な内積は、6である。
図8のように、本実施形態では、第1秘密情報aと、第2秘密情報bと、の内積を計算する問題を、第1装置Aが並替結果<π
B<π
A(a))>
A,<π
B<π
A(b))>
Aを取得し、かつ、第2装置Bが並替結果<π
B<π
A(a))>
B,<π
B<π
A(b))>
Bを取得する問題と定義する。
【0066】
以降、この問題を解くための処理の一例を説明する。即ち、第1データ記憶部A100及び第2データ記憶部B100以外の他の機能により実行される処理の一例を説明する。
【0067】
図9は、計算システム10で実行される処理の一例を示す図である。
図9の処理は、メインルーチンに相当する。
図10以降の処理は、サブルーチンに相当する。即ち、
図9の処理は、計算システム10で実行される全体的な処理である。
図10以降の処理は、個々の処理の具体例である。第1装置Aが第1データ記憶部A100に記憶されたプログラムを実行し、第2装置Bが第2データ記憶部B100に記憶されたプログラムを実行することによって、
図9の処理が実行される。
【0068】
例えば、第1秘密情報取得部A101は、第1データ記憶部A100に記憶された第1秘密情報aを取得する(S10)。S10の処理により、第1秘密情報aが読み出されて不揮発性メモリの記憶領域に展開される。第1秘密情報aが予め当該記憶領域に展開されている場合には、S10の処理は実行されなくてもよい。
【0069】
例えば、第1並替情報取得部A102は、第1並替情報πAを取得する(S11)。S11では、第1並替情報取得部A102は、乱数に基づいて、第1並替情報πAを生成する。例えば、第1並替情報取得部A102は、要素数iと同じ個数の乱数を生成し、第1並替情報πAの各要素とする。乱数を生成するためのアルゴリズムは、公知のアルゴリズムを利用可能である。例えば、線型合同法、乗算型合同法、M系列法、メルセンヌ・ツイスター法に基づいて、乱数が生成されてもよい。第1装置Aは、以降の処理で乱数が必要な場合には、これらの手法に基づいて、乱数を生成可能である。
【0070】
なお、第1並替情報取得部A102は、乱数に基づかずに、第1並替情報πAを取得してもよい。例えば、第1並替情報取得部A102は、第1並替情報πAの一部の要素だけを乱数を利用して取得し、他の要素は、予め定められた固定値としてもよい。第1並替情報取得部A102は、第1並替情報πAの全ての要素を乱数に基づかずに取得してもよい。第1並替情報πAは、その場で生成されるのではなく、予め第1データ記憶部A100に記憶されていてもよい。この場合、第1並替情報取得部A102は、第1データ記憶部A100を参照し、第1並替情報πAを取得すればよい。
【0071】
例えば、第2秘密情報取得部B101は、第2データ記憶部B100に記憶された第2秘密情報bを取得する(S12)。S12の処理により、第2秘密情報bが読み出されて不揮発性メモリの記憶領域に展開される。第2秘密情報bが予め当該記憶領域に展開されている場合には、S12の処理は実行されなくてもよい。
【0072】
例えば、第2並替情報取得部B102は、第2並替情報πBを取得する(S13)。S13では、第2並替情報取得部B102は、乱数に基づいて、第2並替情報πBを生成する。例えば、第2並替情報取得部B102は、要素数iと同じ個数の乱数を生成し、第2並替情報πBの各要素とする。乱数を生成するためのアルゴリズムは、公知のアルゴリズムを利用可能である。例えば、線型合同法、乗算型合同法、M系列法、メルセンヌ・ツイスター法に基づいて、乱数が生成されてもよい。第2装置Bは、以降の処理で乱数が必要な場合には、これらの手法に基づいて、乱数を生成可能である。
【0073】
なお、第2並替情報取得部B102は、乱数に基づかずに、第2並替情報πBを取得してもよい。例えば、第2並替情報取得部B102は、第2並替情報πBの一部の要素だけを乱数を利用して取得し、他の要素は、予め定められた固定値としてもよい。第2並替情報取得部B102は、第2並替情報πBの全ての要素を乱数に基づかずに取得してもよい。第2並替情報πBは、その場で生成されるのではなく、予め第2データ記憶部B100に記憶されていてもよい。この場合、第2並替情報取得部B102は、第2データ記憶部B100を参照し、第2並替情報πBを取得すればよい。
【0074】
例えば、第1管理情報取得部A103は、第1並替情報πA及び第2並替情報πBで第1秘密情報aが並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第1並替結果(πB(πA(a))のうち、第1装置Aが管理する第1管理情報<c>A=<πB(πA(a))>Aを取得する(S20)。なお、本実施形態では、第1並替結果(πB(πA(a))及び第1管理情報<c>Aがベクトル形式である場合を説明するが、第1並替結果(πB(πA(a))及び第1管理情報<c>Aは、複数の数値、行列、配列、ベクトル、データフレーム、又はその他の情報であってもよい。
【0075】
例えば、第3管理情報取得部B103は、第1並替結果πB(πA(a))のうち、第2装置Bが管理する第3管理情報<c>B=<πB(πA(a))>Bを取得する(S21)。S20及びS21の処理は、第1装置A及び第2装置Bの各々が、第1並替情報πA及び第2並替情報πBに関する並び替えを利用して秘密分散法で第1秘密情報aをシェアするための処理である。
【0076】
図10は、S20及びS21の処理の詳細の一例を示す図である。例えば、第5管理情報取得部A105は、第1装置A及び第2装置Bで分散して管理される第1分散情報Sのうち、第1装置Aが管理する第5管理情報<S>
Aを取得する(S200)。第1分散情報Sは、秘密分散法でシェアされる対象となる情報である。本実施形態では、第1分散情報Sが乱数である場合を説明するが、第1分散情報Sは、任意の情報であってよく、乱数に限られない。例えば、第1分散情報Sは、予め定められた固定値であってもよいし、現在の時刻であってもよい。
【0077】
S200の処理の詳細例は、後述の
図11で説明する。同様に、後述のS201~S203の詳細例も、
図11で説明する。第5管理情報<S>
Aを取得するための処理は、
図11の例に限られない。第5管理情報取得部A105は、
図11以外の他の秘密分散法に基づいて、第5管理情報<S>
Aを取得してもよい。他の秘密分散法自体は、公知の手法を利用可能であり、例えば、Shamir's Secret Sharing又はBlakley's Secret Sharingといった手法が利用されてもよい。この点は、以降の説明で何らかの情報がシェアされる場合も同様である。
【0078】
例えば、第1管理情報取得部A103は、第1分散情報Sが第2並替情報πBで並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第3並替結果πB(S)のうち、第1装置Aが管理する第6管理情報<πB(S)>Aを、第1管理情報<πB(πA(a))>Aとして取得する(S201)。第1装置A及び第2装置Bは、実際には第3並替結果πB(S)を取得せずに、あくまで第3並替結果πB(S)のシェアのみを取得する。例えば、第7管理情報取得部B105は、第1分散情報Sのうち、第2装置Bが管理する第7管理情報<S>Bを取得する(S202)。第8管理情報取得部B106、第3並替結果πB(S)のうち、第2装置Bが管理する第8管理情報<πB(S)>Bを取得する(S203)。
【0079】
図11は、S200~S203の処理の詳細の一例を示す図である。S200~S203の処理は、秘密分散法が利用されて実行される。本実施形態では、「Wenjing Fang, Derun Zhao, Jin Tan, Chaochao Chen, Chaofan Yu, Li Wang, Lei Wang, Jun Zhou, Benyu Zhang, “Large-Scale Secure XGB for Vertical Federated Learning”」に記載の秘密分散法が利用される場合を例に挙げる。この手法は、後述のS300~S303の処理と、S304~S307の処理と、についても同様である。なお、S200~S203の処理、S300~S303の処理、及びS304~S307の処理は、他の秘密分散法が利用されて実行されてもよい。他の秘密分散法の例は、先述した通りである。
【0080】
例えば、第1鍵取得部A111は、第1公開鍵PK1と、第1秘密鍵SK1と、を取得する(S2000)。本実施形態では、第1鍵取得部A111が、公開鍵暗号方式の手法(準同型公開鍵暗号方式の手法を含む)に基づいて、第1公開鍵PK1と、第1秘密鍵SK1と、を取得する場合を例に挙げる。例えば、公開鍵暗号方式としては、RSA、Paillier、DSA、又はECDSAといった種々の手法が利用されてよい。また、公開鍵暗号方式以外の他の暗号方式が利用されてもよい。例えば、第1鍵取得部A111は、共通鍵暗号方式、秘密鍵暗号方式、又はハイブリッド方式の手法に基づいて、鍵を生成してもよい。第1装置A及び第2装置Bの間で暗号通信が実行される場合には、公知の種々の暗号方式における任意の鍵が利用されてよい。
【0081】
例えば、第1公開鍵送信部A112は、第2装置Bに対し、第1公開鍵PK1を送信する(S2001)。第1公開鍵受信部B115は、第2装置Bは、第1装置Aから、第1公開鍵PK1を受信する(S2002)。第1公開鍵PK1の受け渡し自体は、公知の公開鍵暗号方式の手法が利用されてよい。
【0082】
例えば、第5管理情報取得部A105は、第2乱数に基づいて、第5管理情報<S>Aを取得する(S2003)。S2003では、第5管理情報取得部A105は、要素数iと同じ個数の第2乱数を生成し、第5管理情報<S>Aとして取得する。第5管理情報取得部A105は、第2乱数に基づかずに、第5管理情報<S>Aを取得してもよい。例えば、第5管理情報取得部A105は、予め定められた値を含む第5管理情報<S>Aを取得してもよいし、第5管理情報<S>Aの一部の要素だけを第2乱数に基づいて決定してもよい。
【0083】
例えば、第7管理情報取得部B105は、第3乱数に基づいて、第7管理情報<S>Bを取得する(S2004)。S2004では、第7管理情報取得部B105は、要素数iと同じ個数の第3乱数を生成し、第7管理情報<S>Bとして取得する。第7管理情報取得部B105は、第3乱数に基づかずに、第7管理情報<S>Bを取得してもよい。例えば、第7管理情報取得部B105は、予め定められた値を含む第7管理情報<S>Bを取得してもよいし、第7管理情報<S>Bの一部の要素だけを第3乱数に基づいて決定してもよい。
【0084】
例えば、第8管理情報取得部B106は、第4乱数に基づいて、第8管理情報<πB(S)>Bを取得する(S2005)。S2005では、第8管理情報取得部B106は、要素数iと同じ個数の第4乱数を生成し、第8管理情報<πB(S)>Bとして取得する。第8管理情報取得部B106は、第4乱数に基づかずに、第8管理情報<πB(S)>Bを取得してもよい。例えば、第8管理情報取得部B106は、予め定められた値を含む第8管理情報<πB(S)>Bを取得してもよいし、第8管理情報<πB(S)>Bの一部の要素だけを第4乱数に基づいて決定してもよい。
【0085】
例えば、第5管理情報送信部A110は、第2装置Bに対し、第5管理情報<S>Aを送信する(S2006)。S2006では、第5管理情報送信部A110は、第1公開鍵PK1に基づいて、第5管理情報<S>Aを暗号化し、第2装置Bに対し、当該暗号化された第5管理情報[<S>A]を送信する。本実施形態では、暗号化された情報を[]で囲う。なお、第5管理情報送信部A110は、第1秘密鍵SKに基づいて暗号化を実行しもよい。また、公開鍵暗号方式以外の他の暗号方式が利用される場合には、第5管理情報送信部A110は、第2装置Bに対し、他の暗号方式で暗号化した第5管理情報[<S>A]を送信してもよい。例えば、暗号通信が利用されない場合には、第5管理情報送信部A110は、第2装置Bに対し、平文で第5管理情報<S>Aを送信してもよい。
【0086】
例えば、第5管理情報受信部B111は、第1装置Aから、第5管理情報<S>Aを受信する(S2007)。S2007では、第2装置Bの第5管理情報受信部B111は、第1装置Aから、暗号化された第5管理情報[<S>A]を受信する。なお、公開鍵暗号方式以外の他の暗号方式が利用される場合には、第5管理情報受信部B111は、他の暗号方式で暗号化された第5管理情報[<S>A]を受信する。また、平文で第5管理情報<S>Aが送信される場合には、第5管理情報受信部B111は、平文の第5管理情報<S>Aを受信する。
【0087】
例えば、第3並替結果取得部B112は、第5管理情報<S>Aと、第7管理情報<S>Bと、に基づいて、第3並替結果πB(S)=<S>A+<S>Bを取得する(S2008)。なお、第3並替結果取得部B112は、加算ではなく、減算、乗算、除算、又はその他の計算式に基づいて、第3並替結果πB(S)を取得してもよい。S2008では、第3並替結果取得部B112は、第1公開鍵PK1に基づいて、第7管理情報<S>Bを暗号化し、暗号化された第5管理情報[<S>A]と、当該暗号化された第7管理情報[<S>B]と、に基づいて、暗号化された第3並替結果[πB(S)]=[<S>A]+[<S>B]を取得する。
【0088】
例えば、第6管理情報取得部B113は、第3並替結果πB(S)と、第8管理情報<πB(S)>Bと、に基づいて、第6管理情報<πB(S)>A=πB(S)-<πB(S)>Bを取得する(S2009)。なお、第6管理情報取得部B113は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第6管理情報<πB(S)>Aを取得してもよい。S2009では、第6管理情報取得部B113は、第1公開鍵PK1に基づいて、第8管理情報<πB(S)>Bを暗号化し、暗号化された第3並替結果[πB(S)]と、当該暗号化された第8管理情報[<πB(S)>B]と、に基づいて、暗号化された第6管理情報[<πB(S)>A]=[πB(S)]-[<πB(S)>B]を取得する。なお、第6管理情報取得部B113は、公開鍵暗号方式以外の他の暗号方式に基づいて、第8管理情報<πB(S)>を暗号化してもよい。また、暗号通信が利用されない場合には、第6管理情報取得部B113は、第8管理情報<πB(S)>Bの暗号化を実行しなくてもよい。
【0089】
例えば、第6管理情報送信部B114は、第1装置Aに対し、第6管理情報<πB(S)>Aを送信する(S2010)。S2010では、第6管理情報送信部B114は、第1装置Aに対し、暗号化された第6管理情報[<πB(S)>A]を送信する。暗号通信が利用されない場合には、第6管理情報送信部B114は、平文の第6管理情報<πB(S)>の暗号化を実行しなくてもよい。
【0090】
例えば、第1管理情報取得部A103は、第2装置Bから、第6管理情報<πB(S)>Aを受信し、第1管理情報<πB(πA(a))>Aとして取得する(S2011)。S2011では、第1管理情報取得部A103は、第2装置Bから、暗号化された第6管理情報[<πB(S)>A]を受信して第1秘密鍵SK1で復号化し、第1管理情報<πB(πA(a))>Aとして取得する。なお、第1管理情報取得部A103は、公開鍵暗号方式以外の他の暗号方式に基づいて、暗号化された第6管理情報[<πB(S)>A]を復号化してもよい。また、暗号通信が利用されない場合には、第1管理情報取得部A103は、復号化を実行しなくてもよい。以上説明したS2000~S2011の処理がS200~S203の処理の詳細である。
【0091】
図10に戻り、例えば、第1公開情報取得部B107は、第1並替情報π
Aで第1秘密情報aが並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第4並替結果π
A(a)のうち、第2装置Bが管理する第9管理情報<π
A(a)>
Bとして、第1装置Aに公開される第1公開情報rを取得する(S204)。S204では、第2装置Bの第1公開情報取得部B107は、第1乱数に基づいて、第1公開情報rを取得する。第1公開情報取得部B107は、本実施形態で例示された任意の乱数生成アルゴリズムに基づいて、要素数iと同じ個数の第1乱数を生成し、第1公開情報rとして取得する。第1公開情報取得部B107は、第1乱数ではなく、予め定められた固定値を第1公開情報rとして取得してもよいし、現在日時を第1公開情報rとして取得してもよい。
【0092】
例えば、第1公開情報送信部B108は、第1装置Aに対し、第1公開情報rを送信する(S205)。本実施形態では、第1公開情報送信部B108が、所定の暗号化アルゴリズムに基づいて第1公開情報rを暗号化したうえで第1装置Aに送信する場合を例に挙げるが、第1公開情報送信部B108は、第1装置Aに対し、第1公開情報rを暗号化せずに平文で送信してもよい。
【0093】
例えば、第1公開情報受信部A106は、第2装置Bから、第1公開情報rを受信する(S206)。本実施形態では、第1公開情報rが暗号化されているので、第1公開情報受信部A106は、第2装置Bから受信した第1公開情報rを復号化する。第1公開情報rが平文で送信される場合には、第1公開情報受信部A106は、復号化を行わない。
【0094】
例えば、第10管理情報取得部A107は、第1公開情報rに基づいて、第4並替結果πA(a)のうち、第1装置Aが管理する第10管理情報<πA(a)>Aを取得する(S207)。S207では、第10管理情報取得部A107は、第4並替結果πA(a)と、第1公開情報rと、の差を第10管理情報<πA(a)>A=πA(a)-rとして取得する。なお、第10管理情報取得部A107は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第10管理情報<πA(a)>Aを取得してもよい。
【0095】
例えば、第2公開情報取得部A108は、第10管理情報<πA(a)>Aと、第5管理情報<S>Aと、に基づいて、第2装置Bに公開される第2公開情報<πA(a)>A-<S>Aを取得する(S208)。なお、第2公開情報取得部A108は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第2公開情報を取得してもよい。
【0096】
例えば、第2公開情報送信部A109は、第2装置Bに対し、第2公開情報<πA(a)>A-<S>Aを送信する(S209)。本実施形態では、第2公開情報送信部A109が、所定の暗号化アルゴリズムに基づいて第2公開情報<πA(a)>A-<S>Aを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第2公開情報送信部A109は、第2装置Bに対し、第2公開情報<πA(a)>A-<S>Aを暗号化せずに平文で送信してもよい。
【0097】
例えば、第2公開情報受信部B109は、第1装置Aから、第2公開情報<πA(a)>A-<S>Aを受信する(S210)。本実施形態では、第2公開情報<πA(a)>A-<S>Aが暗号化されているので、第2公開情報受信部B109は、第1装置Aから受信した第2公開情報<πA(a)>A-<S>Aを復号化する。第2公開情報<πA(a)>A-<S>Aが平文で送信される場合には、第2公開情報受信部B109は、復号化を行わない。
【0098】
例えば、第1計算情報取得部B110は、第8管理情報<S>B、第9管理情報<πA(a)>B、及び第2公開情報<πA(a)>A-<S>Aに基づいて、第1計算情報πA(a)-S=<πA(a)>A-<S>A+<πA(a)>B-<S>Bを取得する(S211)。第1計算情報取得部B110は、予め定められた計算式に基づいてS211の計算を実行すればよく、他の計算式に基づいてS211の計算を実行してもよい。
【0099】
例えば、第2装置Bの第3管理情報取得部B103は、第2並替情報πBで第1計算情報πA(a)-Sが並び替えられた第5並替結果πB(πA(a)-S)と、第8管理情報<πB(S)>Bと、に基づいて、第3管理情報<πB(πA(a))>B=πB(πA(a)-S)+<πB(S)>Bを取得する(S212)。第3管理情報取得部B103は、予め定められた計算式に基づいてS212の計算を実行すればよく、他の計算式に基づいてS212の計算を実行してもよい。以上説明したS200~S212の処理がS20及びS21の処理の詳細である。
【0100】
図9に戻り、例えば、第2管理情報取得部A104は、第1並替情報π
A及び第2並替情報π
Bで第2秘密情報bが並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第2並替結果π
B(π
A(b))のうち、第1装置Aが管理する第2管理情報<d>
A=<π
B(π
A(b))>
Aを取得する(S30)。なお、本実施形態では、第2並替結果π
B(π
A(b))及び第2管理情報<d>
Aがベクトル形式である場合を説明するが、第2並替結果π
B(π
A(b))及び第2管理情報<d>
Aは、複数の数値、行列、ベクトル、データフレーム、又はその他の情報であってもよい。
【0101】
例えば、第4管理情報取得部B104は、第2並替結果πB(πA(b))のうち、第2装置Bが管理する第4管理情報<d>B=<πB(πA(b))>Bを取得する(S31)。S30及びS31の処理は、第1装置A及び第2装置Bの各々が、第1並替情報πA及び第2並替情報πBに関する並び替えを利用して秘密分散法で第2秘密情報bをシェアするための処理である。
【0102】
図12は、S30及びS31の処理の詳細の一例を示す図である。例えば、第11管理情報取得部A113は、第1装置A及び第2装置Bで分散して管理される第2分散情報Rのうち、第1装置Aが管理する第11管理情報<R>
Aを取得する(S300)。第2分散情報Rは、秘密分散法でシェアされる対象となる情報である。本実施形態では、第2分散情報Rが乱数である場合を説明するが、第2分散情報Rは、任意の情報であってよく、乱数に限られない。例えば、第2分散情報Rは、予め定められた固定値であってもよいし、現在の時刻であってもよい。
【0103】
S300の処理の詳細例は、後述の
図13で説明する。同様に、後述のS301~S303の詳細例も、
図13で説明する。第11管理情報<R>
Aを取得するための処理は、
図13の例に限られない。第11管理情報取得部A113は、
図13以外の他の秘密分散法に基づいて、第11管理情報<R>
Aを取得してもよい。他の秘密分散法自体は、公知の手法を利用可能であり、例えば、Shamir's Secret Sharing又はBlakley's Secret Sharingといった手法が利用されてもよい。この点は、以降の説明で何らかの情報がシェアされる場合も同様である。
【0104】
例えば、第12管理情報取得部A114は、第2分散情報Rが第1並替情報πAで並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第6並替結果πA(R)のうち、第1装置Aが管理する第12管理情報<πA(R)>Aを取得する(S301)。第1装置A及び第2装置Bは、実際には第6並替結果πA(R)を取得せずに、あくまで第6並替結果πA(R)のシェアのみを取得する。
【0105】
例えば、第13管理情報取得部B116は、第2分散情報Rのうち、第2装置Bが管理する第13管理情報<R>Bを取得する(S302)。第14管理情報取得部B117は、第1並替情報πAで第2秘密情報bが並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第7並替結果πA(b)のうち、第2装置Bが管理する第14管理情報<πA(b)>Bとして、第6並替結果πA(R)のうち、第2装置Bが管理する第15管理情報<πA(R)>Bを取得する(S303)。
【0106】
図13は、S300~S303の処理の詳細の一例を示す図である。第2鍵取得部B122は、第2公開鍵PK2と、第2秘密鍵SK2と、を取得する(S3000)。本実施形態では、第2鍵取得部B122が、公開鍵暗号方式の手法に基づいて、第2公開鍵PK2と、第2秘密鍵SK2と、を取得する場合を例に挙げるが、第2鍵取得部B122が生成する鍵自体は、公知の種々の鍵であってよい。例えば、第2鍵取得部B122は、共通鍵暗号方式の手法に基づいて、鍵を生成してもよい。第1装置A及び第2装置Bの間で暗号通信が実行される場合には、公知の種々の暗号方式における任意の鍵が利用されてよい。
【0107】
例えば、第2公開鍵送信部B123は、第1装置Aに対し、第2公開鍵PK2を送信する(S3001)。第2公開鍵受信部A124は、第1装置Aは、第2装置Bから、第2公開鍵PK2を受信する(S3002)。第2公開鍵PK2の受け渡し自体は、公知の公開鍵暗号方式の手法が利用されてよい。
【0108】
例えば、第11管理情報取得部A113は、第5乱数に基づいて、第11管理情報<R>Aを取得する(S3003)。S3003では、第11管理情報取得部A113は、要素数iと同じ個数の第5乱数を生成し、第11管理情報<R>Aとして取得する。第11管理情報取得部A113は、第5乱数に基づかずに、第11管理情報<R>Aを取得してもよい。例えば、第11管理情報取得部A113は、予め定められた値を含む第11管理情報<R>Aを取得してもよいし、第11管理情報<R>Aの一部の要素だけを第5乱数に基づいて決定してもよい。
【0109】
例えば、第12管理情報取得部A114は、第6乱数に基づいて、第12管理情報<πA(R)>Aを取得する(S3004)。S3004では、第12管理情報取得部A114は、要素数iと同じ個数の第6乱数を生成し、第12管理情報<πA(R)>Aとして取得する。第12管理情報取得部A114は、第6乱数に基づかずに、第12管理情報<πA(R)>Aを取得してもよい。例えば、第12管理情報取得部A114は、予め定められた値を含む第12管理情報<πA(R)>Aを取得してもよいし、第7管理情報<S>Bの一部の要素だけを第6乱数に基づいて決定してもよい。
【0110】
例えば、第13管理情報取得部B116は、第7乱数に基づいて、第13管理情報<R>Bを取得する(S3005)。S3005では、第13管理情報取得部B116は、要素数iと同じ個数の第7乱数を生成し、第13管理情報<R>Bとして取得する。第13管理情報取得部B116は、第7乱数に基づかずに、第13管理情報<R>Bを取得してもよい。例えば、第13管理情報取得部B116は、予め定められた値を含む第13管理情報<R>Bを取得してもよいし、第13管理情報<R>Bの一部の要素だけを第7乱数に基づいて決定してもよい。
【0111】
例えば、第13管理情報送信部は、第1装置Aに対し、第13管理情報<R>Bを送信する(S3006)。S3006では、第2装置Bの第13管理情報送信部は、第2公開鍵PK2に基づいて、第13管理情報<R>Bを暗号化し、第1装置Aに対し、当該暗号化された第13管理情報[<R>B]を送信する。なお、第13管理情報送信部は、第1秘密鍵SKに基づいて暗号化を実行しもよい。また、公開鍵暗号方式以外の他の暗号方式が利用される場合には、第13管理情報送信部は、第1装置Aに対し、他の暗号方式で暗号化した第13管理情報[<R>B]を送信してもよい。例えば、暗号通信が利用されない場合には、第13管理情報送信部は、第1装置Aに対し、平文で第13管理情報<R>Bを送信してもよい。
【0112】
例えば、第13管理情報受信部A120は、第2装置Bから、第13管理情報<R>Bを受信する(S3007)。S3007では、第13管理情報受信部A120は、第2装置Bから、暗号化された第13管理情報[<R>B]を受信する。S3007では、第13管理情報受信部A120は、第2装置Bから、暗号化された第13管理情報[<R>B]を受信する。なお、公開鍵暗号方式以外の他の暗号方式が利用される場合には、第13管理情報受信部A120は、他の暗号方式で暗号化された第13管理情報[<R>B]を受信する。また、平文で第13管理情報<R>Bが送信される場合には、第13管理情報受信部A120は、平文の第13管理情報<R>Bを受信する。
【0113】
例えば、第6並替結果取得部A121は、第11管理情報<R>Aと、第13管理情報<R>Bと、に基づいて、第6並替結果πA(R)を=<R>A+<R>Bを取得する(S3008)。なお、第6並替結果取得部A121は、加算ではなく、減算、乗算、除算、又はその他の計算式に基づいて、第6並替結果πA(R)を取得してもよい。S3008では、第6並替結果取得部A121は、第2公開鍵PK2に基づいて、第11管理情報<R>Aを暗号化し、暗号化された第13管理情報[<R>B]と、当該暗号化された第11管理情報[<R>A]と、に基づいて、暗号化された第6並替結果[πA(R)]=[<R>A]+[<R>B]を取得する。
【0114】
例えば、第15管理情報取得部A122は、第6並替結果πA(R)と、第12管理情報<πA(R)>Aと、に基づいて、第15管理情報<πA(R)>B=πA(R)-<πA(R)>Aを取得する(S3009)。なお、第15管理情報取得部A122は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第15管理情報<πA(R)>Bを取得してもよい。S3009では、第15管理情報取得部A122は、第2公開鍵PK2に基づいて、第12管理情報<πA(R)>Aを暗号化し、暗号化された第6並替結果[πA(R)]と、当該暗号化された第12管理情報[<πA(R)>A]と、に基づいて、暗号化された第15管理情報[<πA(R)>B]=[πA(R)]+[<πA(R)>A]を取得する。なお、第15管理情報取得部A122は、公開鍵暗号方式以外の他の暗号方式に基づいて、第12管理情報<πA(R)>Aを暗号化してもよい。また、暗号通信が利用されない場合には、第15管理情報取得部A122は、第12管理情報<πA(R)>Aの暗号化を実行しなくてもよい。
【0115】
例えば、第15管理情報送信部A123は、第2装置Bに対し、第15管理情報<πA(R)>Bを送信する(S3010)。S3010では、第15管理情報送信部A123は、第2装置Bに対し、暗号化された第15管理情報[<πA(R)>B]を送信する。暗号通信が利用されない場合には、第15管理情報送信部A123は、平文の第15管理情報<πA(R)>Bの暗号化を実行しなくてもよい。
【0116】
例えば、第2装置Bの第14管理情報取得部B117は、第1装置Aから、第15管理情報<πA(R)>Bを受信し、当該第15管理情報<πA(R)>Bを、第14管理情報<πA(b)>Bとして取得する(S3011)。S3011では、第2装置Bの第14管理情報取得部B117は、第1装置Aから、暗号化された第15管理情報[<πA(R)>B]を受信して第2秘密鍵SK2で復号化し、当該復号化された第15管理情報[<πA(R)>B]を第14管理情報<πA(b)>Bとして取得する。なお、第14管理情報取得部B117は、公開鍵暗号方式以外の他の暗号方式に基づいて、暗号化された第15管理情報[<πA(R)>B]を復号化してもよい。また、暗号通信が利用されない場合には、第14管理情報取得部B117は、復号化を実行しなくてもよい。以上説明したS3000~S3011の処理がS300~S303の処理の詳細である。
【0117】
図12に戻り、S304~S307の処理は、S200~S203と同様である。なお、既にS200~S203の処理が実行されているので、S304~S307の処理は省略してもよい。なお、S304において、第2管理情報取得部A104は、第1分散情報Sが第2並替情報π
Bで並び替えられた結果であって、第1装置A及び第2装置Bで分散して管理される第3並替結果π
B(S)のうち、第1装置Aが管理する第6管理情報<π
B(S)>
Aを、第2管理情報<π
B(π
A(b))>
Aとして取得する。
【0118】
例えば、第3公開情報取得部B118は、第2秘密情報bと、第13管理情報<R>Bと、に基づいて、第1装置Aに公開される第3公開情報b-<R>Bを取得する(S308)。なお、第3公開情報取得部B118は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第3公開情報b-<R>Bを取得してもよい。
【0119】
例えば、第3公開情報送信部B119は、第1装置Aに対し、第3公開情報b-<R>Bを送信する(S309)。本実施形態では、第3公開情報送信部B119は、所定の暗号化アルゴリズムに基づいて第3公開情報b-<R>Bを暗号化したうえで第1装置Aに送信する場合を例に挙げるが、第3公開情報送信部B119は、第1装置Aに対し、第3公開情報b-<R>Bを暗号化せずに平文で送信してもよい。
【0120】
例えば、第3公開情報受信部A115は、第2装置Bから、第3公開情報b-<R>Bを受信する(S310)。本実施形態では、第3公開情報b-<R>Bが暗号化されているので、第3公開情報受信部A115は、第2装置Bから受信した第3公開情報b-<R>Bを復号化する。第3公開情報b-<R>Bが平文で送信される場合には、第3公開情報受信部A115は、復号化を行わない。
【0121】
例えば、第2計算情報取得部A116は、第11管理情報<R>Aと、第3公開情報b-<R>Bと、に基づいて、第2計算情報b-R=<R>A+(b-<R>B)を取得する(S311)。なお、第2計算情報取得部A116は、加算ではなく、減算、乗算、除算、又はその他の計算式に基づいて、S311の処理を実行してもよい。
【0122】
例えば、第16管理情報取得部A117は、第1並替情報πAで第2計算情報b-Rが並び替えられた第8並替結果πB(πA(b)-S)と、第12管理情報<πA(R)>Aと、基づいて、第7並替結果πA(b)のうち、第1装置Aが管理する第16管理情報<πA(b)>A=πA(b-R)+<πA(R)>Aを取得する(S312)。第16管理情報取得部A117は、加算ではなく、減算、乗算、除算、又はその他の計算式に基づいて、S312の処理を実行してもよい。
【0123】
例えば、第4公開情報取得部A118は、第16管理情報<πA(b)>Aと、第5管理情報<S>Aと、に基づいて、第2装置Bに公開される第4公開情報<πA(b)>A-<S>Aを取得する(S313)。なお、第4公開情報取得部A118は、減算ではなく、加算、乗算、除算、又はその他の計算式に基づいて、第4公開情報を取得してもよい。
【0124】
例えば、第4公開情報送信部A119は、第2装置Bに対し、第4公開情報<πA(b)>A-<S>Aを送信する(S314)。本実施形態では、第4公開情報送信部A119は、所定の暗号化アルゴリズムに基づいて第4公開情報<πA(b)>A-<S>Aを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第4公開情報送信部A119は、第2装置Bに対し、第4公開情報<πA(b)>A-<S>Aを暗号化せずに平文で送信してもよい。
【0125】
例えば、第4公開情報受信部B120は、第1装置Aから、第4公開情報<πA(b)>A-<S>Aを受信する(S315)。本実施形態では、第4公開情報<πA(b)>A-<S>Aが暗号化されているので、第4公開情報受信部B120は、第1装置Aから受信した第4公開情報<πA(b)>A-<S>Aを復号化する。第4公開情報<πA(b)>A-<S>Aが平文で送信される場合には、第4公開情報受信部B120は、復号化を行わない。
【0126】
例えば、第3計算情報取得部B121は、第14管理情報<πA(b)>B、第7管理情報<S>B、及び第4公開情報<πA(b)>A-<S>Aに基づいて、第3計算情報πA(b)-S=<πA(b)>B-<S>B+(<πA(b)>A-<S>A)を取得する(S316)。第3計算情報取得部B121は、予め定められた計算式に基づいてS316の計算を実行すればよく、他の計算式に基づいてS316の計算を実行してもよい。
【0127】
例えば、第2装置Bの第4管理情報取得部B104は、第2並替情報πBで第3計算情報πA(b)-Sが並び替えられた第9並替結果πB(πA(b)-S)と、第8管理情報<πB(S)>Bと、に基づいて、第4管理情報<πB(πA(b))>B=πB(πA(b)-S)+<πB(S)>Bを取得する(S317)。第4管理情報取得部B104は、予め定められた計算式に基づいてS317の計算を実行すればよく、他の計算式に基づいてS317の計算を実行してもよい。以上説明したS300~S317の処理がS30及びS31の処理の詳細である。
【0128】
図10に戻り、例えば、第1管理積取得部A125は、第1管理情報<c>
Aと、第2管理情報<d>
Aと、に基づいて、第1並替結果(π
B(π
A(a))と、第2並替結果π
B(π
A(b))と、の積であって、第1装置A及び第2装置Bで分散して管理される分散積e
i=c
id
iのうち、第1装置Aが管理する第1管理積<e
i>
Aを取得する(S40)。S40では、第1管理積取得部A125は、BMT(Beaver Multiplication Triples)の手法に基づいて、第1管理積<e
i>
Aを取得する。なお、第1管理積取得部A125は、BMT以外の他の秘密計算に基づいて、第1管理積<e
i>
Aを取得してもよい。
【0129】
例えば、第2管理積取得部B124は、第3管理情報<c>Bと、第4管理情報<d>Bと、に基づいて、分散積ei=cidiのうち、第2装置Bが管理する第2管理積<ei>Bを取得する(S41)。S41では、第2管理積取得部B124は、BMTの手法に基づいて、第2管理積<ei>Bを取得する。なお、第2管理積取得部B124は、BMT以外の他の秘密計算に基づいて、第2管理積<ei>Bを取得してもよい。秘密計算は、装置が情報を公開することなく計算するための技術である。例えば、秘密計算は、秘密分散法、MPC(Multi-Party Computation)、ホモモーフィック暗号、可逆性秘密計算、又はTEE(Trusted Execution Environment)が利用されてもよい。
【0130】
例えば、第1合計取得部A126、第1管理積<ei>Aの合計である第1合計Σi<ei>Aを取得する(S42)。第2合計取得部B125は、第2管理積<ei>Bの各要素の合計である第2合計Σi<ei>Bを取得する(S43)。第2合計送信部B126は、第1装置Aに対し、第2合計Σi<ei>Bを送信する(S44)。本実施形態では、第2合計送信部B126が、所定の暗号化アルゴリズムに基づいて第2合計Σi<ei>Bを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第2合計送信部B126は、第1装置Aに対し、第2合計Σi<ei>Bを暗号化せずに平文で送信してもよい。
【0131】
例えば、第2合計受信部A127は、第2装置Bから、第2合計Σi<ei>Bを受信する(S45)。本実施形態では、第2合計Σi<ei>Bが暗号化されているので、第2合計受信部A127は、第2装置Bから受信した第2合計Σi<ei>Bを復号化する。第2合計Σi<ei>Bが平文で送信される場合には、第2合計受信部A127は、復号化を行わない。
【0132】
秘密積計算部A128は、第1合計Σi<ei>Aと、第2合計Σi<ei>Bと、に基づいて、秘密積Σiaibi=Σicidi=Σiei=Σi<ei>A+Σi<ei>Bを計算し(S46)、本処理は終了する。本実施形態では、秘密積Σiaibiが内積である場合を説明するが、秘密積Σiaibiは、何らかの積を示す情報であればよい。以上のように、計算システム10では、第1管理情報<c>A、第2管理情報<d>A、第3管理情報<c>B及び第4管理情報<d>Bに基づいて、第1秘密情報aと、第2秘密情報bと、の積である秘密積Σiaibi=Σicidi=Σiei=Σi<ei>A+Σi<ei>Bが計算される。即ち、計算システム10では、第1合計Σi<ei>Aと、第2合計Σi<ei>Bと、に基づいて、秘密積Σiaibiが計算される。
【0133】
例えば、計算システム10では、秘密積Σ
ia
ib
iに基づいて、連合学習における学習モデルMの学習が実行される。例えば、学習モデルMは、複数の他の学習モデルの各々の推定結果に基づいて、所定の推定を実行するスタッキング学習におけるモデルであってもよい。本実施形態では、第2装置Bは、秘密積Σ
ia
ib
iに基づいて、第2学習モデルBMの学習を実行する。例えば、第2装置Bは、
図2に示す計算式に基づいて、第2学習モデルBMの学習を実行する。
【0134】
[4.実施形態のまとめ]
本実施形態の第1装置Aは、第1装置A及び第2装置Bで分散して管理される第1並替結果(πB(πA(a))のうち、第1装置Aが管理する第1管理情報<c>A=<πB(πA(a))>Aを取得する。第1装置Aは、第1装置A及び第2装置Bで分散して管理される第2並替結果πB(πA(b))のうち、第1装置Aが管理する第2管理情報<d>A=<πB(πA(b))>Aを取得する。第2装置Bは、第1並替結果πB(πA(a))のうち、第2装置Bが管理する第3管理情報<c>B=<πB(πA(a))>Bを取得する。第2装置Bは、第2並替結果πB(πA(b))のうち、第2装置Bが管理する第4管理情報<d>B=<πB(πA(b))>Bを取得する。計算システム10では、第1管理情報<c>A、第2管理情報<d>A、第3管理情報<c>B及び第4管理情報<d>Bに基づいて、第1秘密情報aと、第2秘密情報bと、の積である秘密積Σiaibiが計算される。これにより、第1装置Aが秘密に管理する第1秘密情報aと、第2装置Bが秘密に管理する第2秘密情報bと、が直接的に送信されるわけではないので、秘密積Σiaibiを計算する場合のセキュリティが高まる。第三者は、第1装置A及び第2装置Bの間でやりとりされる情報を取得しても、第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。特に、従来の秘密分散法に比べて、要素の並び替えといった新規な構成を有するので、セキュリティがより高まる。
【0135】
また、第1装置Aは、第1装置A及び第2装置Bで分散して管理される第1分散情報Sのうち、第1装置Aが管理する第5管理情報<S>Aを取得する。第1装置Aは、第1装置A及び第2装置Bで分散して管理される第3並替結果πB(S)のうち、第1装置Aが管理する第6管理情報<πB(S)>Aを、第1管理情報<πB(πA(a))>Aとして取得する。第2装置Bは、第1分散情報Sのうち、第2装置Bが管理する第7管理情報<S>Bを取得する。第2装置Bは、第3並替結果πB(S)のうち、第2装置Bが管理する第8管理情報<πB(S)>Bを取得する。第2装置Bは、第1装置A及び第2装置Bで分散して管理される第4並替結果πA(a)のうち、第2装置Bが管理する第9管理情報<πA(a)>Bとして、第1装置Aに公開される第1公開情報rを取得する。第2装置Bは、第1装置Aに対し、第1公開情報rを送信する。第1装置Aは、第2装置Bから、第1公開情報rを受信する。第1装置Aは、第1公開情報rに基づいて、第4並替結果πA(a)のうち、第1装置Aが管理する第10管理情報<πA(a)>Aを取得する。第1装置Aは、第10管理情報<πA(a)>Aと、第5管理情報<S>Aと、に基づいて、第2装置Bに公開される第2公開情報<πA(a)>A-<S>Aを取得する。第1装置Aは、第2装置Bに対し、第2公開情報<πA(a)>A-<S>Aを送信する。第2装置Bは、第1装置Aから、第2公開情報<πA(a)>A-<S>Aを受信する。第2装置Bは、第8管理情報<S>B、第9管理情報<πA(a)>B、及び第2公開情報<πA(a)>A-<S>Aに基づいて、第1計算情報πA(a)-S=<πA(a)>A-<S>A+<πA(a)>B-<S>Bを取得する。第2装置Bは、第2並替情報πBで第1計算情報πA(a)-Sが並び替えられた第5並替結果πB(πA(a)-S)と、第8管理情報<πB(S)>Bと、に基づいて、第3管理情報<πB(πA(a))>Bを取得する。これにより、第1並替情報πA及び第2並替情報πBに基づく並び替えを利用して第1秘密情報aを第1装置A及び第2装置Bでシェアできるので、並び替えが利用されない従来の手法に比べてセキュリティが高まる。
【0136】
また、第2装置Bは、第1乱数に基づいて、第1公開情報rを取得する。これにより、仮に第三者が、ネットワークNに送信される第1公開情報rを取得しても、それだけでは第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0137】
また、第1装置Aは、第2装置Bに対し、第5管理情報<S>Aを送信する。第2装置Bは、第1装置Aから、第5管理情報<S>Aを受信する。第2装置Bは、第5管理情報<S>Aと、第7管理情報<S>Bと、に基づいて、第3並替結果πB(S)を取得する。第2装置Bは、第3並替結果πB(S)と、第8管理情報<πB(S)>Bと、に基づいて、第6管理情報<πB(S)>Aを取得する。第2装置Bは、第1装置Aに対し、第6管理情報<πB(S)>Aを送信する。第1装置Aは、第2装置Bから、第6管理情報<πB(S)>Aを受信し、第1管理情報<πB(πA(a))>Aとして取得する。これにより、仮に第三者が、ネットワークNに送信される第5管理情報<S>A及び第6管理情報<πB(S)>Aを取得しても、それだけでは第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0138】
また、第1装置Aは、第2乱数に基づいて、第5管理情報<S>Aを取得する。第2装置Bは、第3乱数に基づいて、第7管理情報<S>Bを取得する。第2装置Bは、第4乱数に基づいて、第8管理情報<πB(S)>Bを取得する。これにより、第三者が入手可能な情報に乱数の要素を含めることができるので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0139】
また、第1装置Aは、第1公開鍵PK1と、第1秘密鍵SK1と、を取得する。第1装置Aは、第2装置Bに対し、第1公開鍵PK1を送信する。第2装置Bは、第1装置Aから、第1公開鍵PK1を受信する。第1装置Aは、第1公開鍵PK1に基づいて、第5管理情報<S>Aを暗号化し、第2装置Bに対し、当該暗号化された第5管理情報[<S>A]を送信する。第2装置Bは、第1装置Aから、暗号化された第5管理情報[<S>A]を受信する。第2装置Bは、第1公開鍵PK1に基づいて、第7管理情報<S>Bを暗号化し、暗号化された第5管理情報[<S>A]と、当該暗号化された第7管理情報[<S>B]と、に基づいて、暗号化された第3並替結果[πB(S)]を取得する。第2装置Bは、第1公開鍵PK1に基づいて、第8管理情報<πB(S)>Bを暗号化し、暗号化された第3並替結果[πB(S)]と、当該暗号化された第8管理情報[<πB(S)>B]と、に基づいて、暗号化された第6管理情報[<πB(S)>A]を取得する。第2装置Bは、第1装置Aに対し、暗号化された第6管理情報[<πB(S)>A]を送信する。第1装置Aは、第2装置Bから、暗号化された第6管理情報[<πB(S)>A]を受信して第1秘密鍵SK1で復号化し、第1管理情報<πB(πA(a))>Aとして取得する。これにより、ただでさえ第三者が入手しても第1秘密情報a及び第2秘密情報bを特定するのが難しい情報のやりとりが、第1公開鍵PK1及び第1秘密鍵SK1を利用して暗号化されるので、セキュリティがより高まる。
【0140】
また、第1装置Aは、第1装置A及び第2装置Bで分散して管理される第2分散情報Rのうち、第1装置Aが管理する第11管理情報<R>Aを取得する。第1装置Aは、第1装置A及び第2装置Bで分散して管理される第6並替結果πA(R)のうち、第1装置Aが管理する第12管理情報<πA(R)>Aを取得する。第1装置Aは、第1装置A及び第2装置Bで分散して管理される第1分散情報Sのうち、第1装置Aが管理する第5管理情報<S>Aを取得する。第1装置Aは、第1装置A及び第2装置Bで分散して管理される第3並替結果πB(S)のうち、第1装置Aが管理する第6管理情報<πB(S)>Aを、第2管理情報<πB(πA(b))>Aとして取得する。第2装置Bは、第2分散情報Rのうち、第2装置Bが管理する第13管理情報<R>Bを取得する。第2装置Bは、第1装置A及び第2装置Bで分散して管理される第7並替結果πA(b)のうち、第2装置Bが管理する第14管理情報<πA(b)>Bとして、第6並替結果πA(R)のうち、第2装置Bが管理する第15管理情報<πA(R)>Bを取得する。第2装置Bは、第1分散情報Sのうち、第2装置Bが管理する第7管理情報<S>Bを取得する第7管理情報取得部B105と、第3並替結果πB(S)のうち、第2装置Bが管理する第8管理情報<πB(S)>Bを取得する。第2装置Bは、第2秘密情報bと、第13管理情報<R>Bと、に基づいて、第1装置Aに公開される第3公開情報b-<R>Bを取得する。第2装置Bは、第1装置Aに対し、第3公開情報b-<R>Bを送信する。第1装置Aは、第2装置Bから、第3公開情報b-<R>Bを受信する。第1装置Aは、第11管理情報<R>Aと、第3公開情報b-<R>Bと、に基づいて、第2計算情報b-Rを取得する第2計算情報取得部A116と、第1並替情報πAで第2計算情報b-Rが並び替えられた第8並替結果πB(πA(b)-S)と、第12管理情報<πA(R)>Aと、基づいて、第7並替結果πA(b)のうち、第1装置Aが管理する第16管理情報<πA(b)>A=πA(b-R)+<πA(R)>Aを取得する。第1装置Aは、第16管理情報<πA(b)>Aと、第5管理情報<S>Aと、に基づいて、第2装置Bに公開される第4公開情報<πA(b)>A-<S>Aを取得する。第1装置Aは、第2装置Bに対し、第4公開情報<πA(b)>A-<S>Aを送信する。第2装置Bは、第1装置Aから、第4公開情報<πA(b)>A-<S>Aを受信する。第2装置Bは、第14管理情報<πA(b)>B、第7管理情報<S>B、及び第4公開情報<πA(b)>A-<S>Aに基づいて、第3計算情報πA(b)-S=<πA(b)>B-<S>B+(<πA(b)>A-<S>A)を取得する。第2装置Bは、第2並替情報πBで第3計算情報πA(b)-Sが並び替えられた第9並替結果πB(πA(b)-S)と、第8管理情報<πB(S)>Bと、に基づいて、第4管理情報<πB(πA(b))>Bを取得する。これにより、第1並替情報πA及び第2並替情報πBに基づく並び替えを利用して第2秘密情報bを第1装置A及び第2装置Bでシェアできるので、並び替えが利用されない従来の手法に比べてセキュリティが高まる。
【0141】
また、第2装置Bは、第1装置Aに対し、第13管理情報<R>Bを送信する。第1装置Aは、第2装置Bから、第13管理情報<R>Bを受信する。第1装置Aは、第11管理情報<R>Aと、第13管理情報<R>Bと、に基づいて、第6並替結果πA(R)を取得する。第1装置Aは、第6並替結果πA(R)と、第12管理情報<πA(R)>Aと、に基づいて、第15管理情報<πA(R)>Bを取得する。第1装置Aは、第2装置Bに対し、第15管理情報<πA(R)>Bを送信する。第2装置Bは、第1装置Aから、第15管理情報<πA(R)>Bを受信し、当該第15管理情報<πA(R)>Bを、第14管理情報<πA(b)>Bとして取得する。これにより、仮に第三者が、ネットワークNに送信される第13管理情報<R>B及び第15管理情報<πA(R)>Bを取得しても、それだけでは第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0142】
また、第1装置Aは、第5乱数に基づいて、第11管理情報<R>Aを取得する。第1装置Aは、第6乱数に基づいて、第12管理情報<πA(R)>Aを取得する。第2装置Bは、第7乱数に基づいて、第13管理情報<R>Bを取得する。これにより、第三者が入手可能な情報に乱数の要素を含めることができるので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0143】
また、第2装置Bは、第2公開鍵PK2と、第2秘密鍵SK2と、を取得する。第2装置Bは、第1装置Aに対し、第2公開鍵PK2を送信する。第1装置Aは、第2装置Bから、第2公開鍵PK2を受信する。第2装置Bは、第2公開鍵PK2に基づいて、第13管理情報<R>Bを暗号化し、第1装置Aに対し、当該暗号化された第13管理情報[<R>B]を送信する。第1装置Aは、第2装置Bから、暗号化された第13管理情報[<R>B]を受信する。第1装置Aは、第2公開鍵PK2に基づいて、第11管理情報<R>Aを暗号化し、暗号化された第13管理情報[<R>B]と、当該暗号化された第11管理情報[<R>A]と、に基づいて、暗号化された第6並替結果[πA(R)]を取得する。第1装置Aは、第2公開鍵PK2に基づいて、第12管理情報<πA(R)>Aを暗号化し、暗号化された第6並替結果[πA(R)]と、当該暗号化された第12管理情報[<πA(R)>A]と、に基づいて、暗号化された第15管理情報[<πA(R)>B]を取得する。第1装置Aは、第2装置Bに対し、暗号化された第15管理情報[<πA(R)>B]を送信する。第2装置Bの第14管理情報取得部B117は、第1装置Aから、暗号化された第15管理情報[<πA(R)>B]を受信して第2秘密鍵SK2で復号化し、当該復号化された第15管理情報[<πA(R)>B]を第14管理情報<πA(b)>Bとして取得する。これにより、ただでさえ第三者が入手しても第1秘密情報a及び第2秘密情報bを特定するのが難しい情報のやりとりが、第2公開鍵PK2及び第2秘密鍵SK2を利用して暗号化されるので、セキュリティがより高まる。
【0144】
また、第1装置Aは、第1管理情報<c>Aと、第2管理情報<d>Aと、に基づいて、第1並替結果(πB(πA(a))と、第2並替結果πB(πA(b))と、の積であって、第1装置A及び第2装置Bで分散して管理される分散積eiのうち、第1装置Aが管理する第1管理積<ei>Aを取得する。第1装置Aは、第1管理積<ei>Aの合計である第1合計Σi<ei>Aを取得する。第2装置Bは、第3管理情報<c>Bと、第4管理情報<d>Bと、に基づいて、分散積eiのうち、第2装置Bが管理する第2管理積<ei>Bを取得する。第2装置Bは、第2管理積<ei>Bの各要素の合計である第2合計Σi<ei>Bを取得する。第1合計Σi<ei>Aと、第2合計Σi<ei>Bと、に基づいて、秘密積Σiaibiが計算される。第三者は、第1装置A及び第2装置Bの間でやりとりされる情報を取得しても、第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0145】
また、第1装置Aは、BMT(Beaver Multiplication Triples)の手法に基づいて、第1管理積<ei>Aを取得する。第2装置Bは、BMTの手法に基づいて、第2管理積<ei>Bを取得する。これにより、第1管理積<ei>A及び第2管理積<ei>Bにも秘密計算の手法が利用されるので、セキュリティがより高まる。
【0146】
また、第2装置Bは、第1装置Aに対し、第2合計Σi<ei>Bを送信する。第1装置Aは、第2装置Bから、第2合計Σi<ei>Bを受信する。第1装置Aは、第1合計Σi<ei>Aと、第2合計Σi<ei>Bと、に基づいて、秘密積Σiaibiを計算する。これにより、秘密積Σiaibiの計算に必要な情報を第三者が入手したとしても、それだけでは、第1秘密情報a及び第2秘密情報bを特定できないので、第1秘密情報a及び第2秘密情報bが第三者に漏洩するリスクを低減できる。
【0147】
また、第1秘密情報a、第2秘密情報b、第1並替結果(πB(πA(a))、第1管理情報<c>A、第2並替結果πB(πA(b))、第2管理情報<d>A、第3管理情報<c>B、及び第4管理情報<d>Bの各々は、ベクトル形式である。第1並替情報πA及び第2並替情報πBの各々は、配列形式である。秘密積Σiaibiは、内積である。これにより、計算システム10は、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できる。
【0148】
また、計算システム10では、秘密積Σiaibiに基づいて、連合学習における学習モデルの学習が実行される。これにより、連合学習における学習時のセキュリティが高まる。
【0149】
また、第1秘密情報は、第1サービスにおける複数のユーザの各々に関する情報である。第2秘密情報は、第2サービスにおける複数のユーザの各々に関する情報である。計算システム10は、ユーザに関する情報を秘密に管理したまま積を計算できるので、ユーザに関する情報が漏洩するリスクを低減できる。
【0150】
[5.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。例えば、計算システム1は、連合学習以外の他の場面にも適用可能である。計算システム1は、何らかの目的で複数の秘密情報同士の積が計算される場面に適用可能である。
【0151】
例えば、第1装置A又は第2装置Bで実現されるものとして説明した機能は、計算システム10における少なくとも1つのコンピュータにより実現されるようにすればよく、複数のコンピュータで機能が分担されてもよい。この場合、複数のコンピュータの各々が、他のコンピュータに対し、自身の処理結果を送信することによって、機能の分担が実現されるようにすればよい。
【0152】
[6.付記]
例えば、計算システムは、下記のような構成も可能である。
(1)
2以上の要素数の第1秘密情報と、前記要素数の要素を並び替えるための第1並替情報と、を秘密に管理する第1装置と、
前記要素数の第2秘密情報と、前記要素数の要素を並び替えるための第2並替情報と、を秘密に管理する第2装置と、
を含み、
前記第1装置は、
前記第1並替情報及び前記第2並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第1並替結果のうち、前記第1装置が管理する第1管理情報を取得する第1管理情報取得部と、
前記第1並替情報及び前記第2並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第2並替結果のうち、前記第1装置が管理する第2管理情報を取得する第2管理情報取得部と、
を含み、
前記第2装置は、
前記第1並替結果のうち、前記第2装置が管理する第3管理情報を取得する第3管理情報取得部と、
前記第2並替結果のうち、前記第2装置が管理する第4管理情報を取得する第4管理情報取得部と、
を含み、
前記第1管理情報、前記第2管理情報、前記第3管理情報、及び第4管理情報に基づいて、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算システム。
(2)
前記第1装置は、前記第1装置及び前記第2装置で分散して管理される第1分散情報のうち、前記第1装置が管理する第5管理情報を取得する第5管理情報取得部を更に含み、
前記第1装置の前記第1管理情報取得部は、前記第1分散情報が前記第2並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第3並替結果のうち、前記第1装置が管理する第6管理情報を、前記第1管理情報として取得し、
前記第2装置は、
前記第1分散情報のうち、前記第2装置が管理する第7管理情報を取得する第7管理情報取得部と、
前記第3並替結果のうち、前記第2装置が管理する第8管理情報を取得する第8管理情報取得部と、
前記第1並替情報で前記第1秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第4並替結果のうち、前記第2装置が管理する第9管理情報として、前記第1装置に公開される第1公開情報を取得する第1公開情報取得部と、
前記第1装置に対し、前記第1公開情報を送信する第1公開情報送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第1公開情報を受信する第1公開情報受信部と、
前記第1公開情報に基づいて、前記第4並替結果のうち、前記第1装置が管理する第10管理情報を取得する第10管理情報取得部と、
前記第10管理情報と、前記第5管理情報と、に基づいて、前記第2装置に公開される第2公開情報を取得する第2公開情報取得部と、
前記第2装置に対し、前記第2公開情報を送信する第2公開情報送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第2公開情報を受信する第2公開情報受信部と、
前記第8管理情報、前記第9管理情報、及び前記第2公開情報に基づいて、第1計算情報を取得する第1計算情報取得部と、
を更に含み、
前記第2装置の前記第3管理情報取得部は、前記第2並替情報で前記第1計算情報が並び替えられた第5並替結果と、前記第8管理情報と、に基づいて、前記第3管理情報を取得する、
(1)に記載の計算システム。
(3)
前記第2装置の前記第1公開情報取得部は、第1乱数に基づいて、前記第1公開情報を取得する、
(2)に記載の計算システム。
(4)
前記第1装置は、前記第2装置に対し、前記第5管理情報を送信する第5管理情報送信部を含み、
前記第2装置は、
前記第1装置から、前記第5管理情報を受信する第5管理情報受信部と、
前記第5管理情報と、前記第7管理情報と、に基づいて、前記第3並替結果を取得する前記第3並替結果取得部と、
前記第3並替結果と、前記第8管理情報と、に基づいて、前記第6管理情報を取得する第6管理情報取得部と、
前記第1装置に対し、前記第6管理情報を送信する第6管理情報送信部と、
を更に含み、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記第6管理情報を受信し、前記第1管理情報として取得する、
(2)又は(3)に記載の計算システム。
(5)
前記第1装置の前記第5管理情報取得部は、第2乱数に基づいて、前記第5管理情報を取得し、
前記第2装置の前記第7管理情報取得部は、第3乱数に基づいて、前記第7管理情報を取得し、
前記第2装置の前記第8管理情報取得部は、第4乱数に基づいて、前記第8管理情報を取得する、
(4)に記載の計算システム。
(6)
前記第1装置は、
第1公開鍵と、第1秘密鍵と、を取得する第1鍵取得部と、
前記第2装置に対し、前記第1公開鍵を送信する第1公開鍵送信部と、
を更に含み、
前記第2装置は、前記第1装置から、前記第1公開鍵を受信する第1公開鍵受信部を更に含み、
前記第1装置の第5管理情報送信部は、前記第1公開鍵に基づいて、前記第5管理情報を暗号化し、前記第2装置に対し、当該暗号化された第5管理情報を送信し、
前記第2装置の前記第5管理情報受信部は、前記第1装置から、前記暗号化された第5管理情報を受信し、
前記第2装置の前記第3並替結果取得部は、前記第1公開鍵に基づいて、前記第7管理情報を暗号化し、前記暗号化された第5管理情報と、当該暗号化された第7管理情報と、に基づいて、暗号化された前記第3並替結果を取得し、
前記第2装置の前記第6管理情報取得部は、前記第1公開鍵に基づいて、前記第8管理情報を暗号化し、前記暗号化された第3並替結果と、当該暗号化された第8管理情報と、に基づいて、暗号化された前記第6管理情報を取得し、
前記第2装置の前記第6管理情報送信部は、前記第1装置に対し、前記暗号化された第6管理情報を送信し、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記暗号化された第6管理情報を受信して前記第1秘密鍵で復号化し、前記第1管理情報として取得する、
(4)又は(5)に記載の計算システム。
(7)
前記第1装置は、
前記第1装置及び前記第2装置で分散して管理される第2分散情報のうち、前記第1装置が管理する第11管理情報を取得する第11管理情報取得部と、
前記第2分散情報が前記第1並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第6並替結果のうち、前記第1装置が管理する第12管理情報を取得する第12管理情報取得部と、
前記第1装置及び前記第2装置で分散して管理される第1分散情報のうち、前記第1装置が管理する第5管理情報を取得する第5管理情報取得部と、
を更に含み、
前記第1装置の前記第2管理情報取得部は、前記第1分散情報が前記第2並替情報で並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第3並替結果のうち、前記第1装置が管理する第6管理情報を、前記第2管理情報として取得し、
前記第2装置は、
前記第2分散情報のうち、前記第2装置が管理する第13管理情報を取得する第13管理情報取得部と、
前記第1並替情報で前記第2秘密情報が並び替えられた結果であって、前記第1装置及び前記第2装置で分散して管理される第7並替結果のうち、前記第2装置が管理する第14管理情報として、前記第6並替結果のうち、前記第2装置が管理する第15管理情報を取得する第14管理情報取得部と、
前記第1分散情報Sのうち、前記第2装置が管理する第7管理情報を取得する第7管理情報取得部と、
前記第3並替結果のうち、前記第2装置が管理する第8管理情報を取得する第8管理情報取得部と、
前記第2秘密情報と、前記第13管理情報と、に基づいて、前記第1装置に公開される第3公開情報を取得する第3公開情報取得部と、
前記第1装置に対し、前記第3公開情報を送信する第3公開情報送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第3公開情報を受信する第3公開情報受信部と、
前記第11管理情報と、前記第3公開情報と、に基づいて、第2計算情報を取得する第2計算情報取得部と、
前記第1並替情報で前記第2計算情報が並び替えられた第8並替結果と、前記第12管理情報と、基づいて、前記第7並替結果のうち、前記第1装置が管理する第16管理情報を取得する第16管理情報取得部と、
前記第16管理情報と、前記第5管理情報と、に基づいて、前記第2装置に公開される第4公開情報を取得する第4公開情報取得部と、
前記第2装置に対し、前記第4公開情報を送信する第4公開情報送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第4公開情報を受信する第4公開情報受信部と、
前記第14管理情報、前記第7管理情報、及び前記第4公開情報に基づいて、第3計算情報を取得する第3計算情報取得部と、
を更に含み、
前記第2装置の前記第4管理情報取得部は、前記第2並替情報で前記第3計算情報が並び替えられた第9並替結果と、前記第8管理情報と、に基づいて、前記第4管理情報を取得する、
(1)~(6)の何れかに記載の計算システム。
(8)
前記第2装置は、前記第1装置に対し、前記第13管理情報を送信する第13管理情報送信部を含み、
前記第1装置は、
前記第2装置から、前記第13管理情報を受信する第13管理情報受信部と、
前記第11管理情報と、前記第13管理情報と、に基づいて、前記第6並替結果を取得する第6並替結果取得部と、
前記第6並替結果と、前記第12管理情報と、に基づいて、前記第15管理情報を取得する第15管理情報取得部と、
前記第2装置に対し、前記第15管理情報を送信する第15管理情報送信部と、
を更に含み、
前記第2装置の前記第14管理情報取得部は、前記第1装置から、前記第15管理情報を受信し、当該第15管理情報を、前記第14管理情報として取得する、
(7)に記載の計算システム。
(9)
前記第1装置の前記第11管理情報取得部は、第5乱数に基づいて、前記第11管理情報を取得し、
前記第1装置の前記第12管理情報取得部は、第6乱数に基づいて、前記第12管理情報を取得し、
前記第2装置の前記第13管理情報取得部は、第7乱数に基づいて、前記第13管理情報を取得する、
(8)に記載の計算システム。
(10)
前記第2装置は、
第2公開鍵と、第2秘密鍵と、を取得する第2鍵取得部と、
前記第1装置に対し、前記第2公開鍵を送信する第2公開鍵送信部と、
を更に含み、
前記第1装置は、前記第2装置から、前記第2公開鍵を受信する第2公開鍵受信部を更に含み、
前記第2装置の前記第13管理情報送信部は、前記第2公開鍵に基づいて、前記第13管理情報を暗号化し、前記第1装置に対し、当該暗号化された第13管理情報を送信し、
前記第1装置の前記第13管理情報受信部は、前記第2装置から、前記暗号化された第13管理情報を受信し、
前記第1装置の前記第6並替結果取得部は、前記第2公開鍵に基づいて、前記第11管理情報を暗号化し、前記暗号化された第13管理情報と、当該暗号化された第11管理情報と、に基づいて、暗号化された前記第6並替結果を取得し、
前記第1装置の前記第15管理情報取得部は、前記第2公開鍵に基づいて、前記第12管理情報を暗号化し、前記暗号化された第6並替結果と、当該暗号化された第12管理情報と、に基づいて、暗号化された前記第15管理情報を取得し、
前記第1装置の前記第15管理情報送信部は、前記第2装置に対し、前記暗号化された第15管理情報を送信し、
前記第2装置の前記第15管理情報取得部は、前記第1装置から、前記暗号化された第15管理情報を受信して前記第2秘密鍵で復号化し、当該復号化された第15管理情報を前記第14管理情報として取得する、
(8)又は(9)に記載の計算システム。
(11)
前記第1装置は、前記第5管理情報取得部は、第2乱数に基づいて、前記第5管理情報を取得し、
前記第2装置は、前記第7管理情報取得部は、第3乱数に基づいて、前記第7管理情報を取得し、
前記第2装置は、前記第8管理情報取得部は、第4乱数に基づいて、前記第8管理情報を取得する、
(7)~(10)の何れかに記載の計算システム。
(12)
前記第1装置は、
第1公開鍵と、第1秘密鍵と、を生成する第1鍵取得部と、
前記第2装置に対し、前記第1公開鍵を送信する第1公開鍵送信部と、
を更に含み、
前記第2装置は、前記第1装置から、前記第1公開鍵を受信する第1公開鍵受信部を更に含み、
前記第1装置の第5管理情報送信部は、前記第1公開鍵に基づいて、前記第5管理情報を暗号化し、前記第2装置に対し、当該暗号化された第5管理情報を送信し、
前記第2装置の前記第5管理情報受信部は、前記第1装置から、前記暗号化された第5管理情報を受信し、
前記第2装置の前記第3並替結果取得部は、前記第1公開鍵に基づいて、前記第7管理情報を暗号化し、前記暗号化された第5管理情報と、当該暗号化された第7管理情報と、に基づいて、暗号化された前記第3並替結果を取得し、
前記第2装置の前記第6管理情報取得部は、前記第1公開鍵に基づいて、前記第8管理情報を暗号化し、前記暗号化された第3並替結果と、当該暗号化された第8管理情報と、に基づいて、暗号化された前記第6管理情報を取得し、
前記第2装置の前記第6管理情報送信部は、前記第1装置に対し、前記暗号化された第6管理情報を送信し、
前記第1装置の前記第1管理情報取得部は、前記第2装置から、前記暗号化された第6管理情報を受信して前記第1秘密鍵で復号化する、
(7)~(11)の何れかに記載の計算システム。
(13)
前記第1装置は、
前記第1管理情報と、前記第2管理情報と、に基づいて、前記第1並替結果と、前記第2並替結果と、の積であって、前記第1装置及び前記第2装置で分散して管理される分散積のうち、前記第1装置が管理する第1管理積を取得する第1管理積取得部と、
前記第1管理積の合計である第1合計を取得する第1合計取得部と、
を更に含み、
前記第2装置は、
前記第3管理情報と、前記第4管理情報と、に基づいて、前記分散積のうち、前記第2装置が管理する第2管理積を取得する第2管理積取得部と、
前記第2管理積の各要素の合計である第2合計を取得する第2合計取得部と、
を更に含み、
前記第1合計と、前記第2合計と、に基づいて、前記秘密積が計算される、
(1)~(12)の何れかに記載の計算システム。
(14)
前記第1装置の前記第1管理積取得部は、BMT(Beaver Multiplication Triples)の手法に基づいて、第1管理積を取得し、
前記第2装置の前記第2管理積取得部は、前記BMTの手法に基づいて、前記第2管理積を取得する、
(13)に記載の計算システム。
(15)
前記第2装置は、前記第1装置に対し、前記第2合計を送信する第2合計送信部を更に含み、
前記第1装置は、
前記第2装置から、前記第2合計を受信する第2合計受信部と、
前記第1合計と、前記第2合計と、に基づいて、前記秘密積を計算する秘密積計算部と、
を更に含む(13)又は(14)に記載の計算システム。
(16)
前記第1秘密情報、前記第2秘密情報、前記第1並替結果、前記第1管理情報、前記第2並替結果、前記第2管理情報、前記第3管理情報、及び前記第4管理情報の各々は、ベクトル形式であり、
前記第1並替情報及び前記第2並替情報の各々は、配列形式であり、
前記秘密積は、内積である、
(1)~(15)の何れかに記載の計算システム。
(17)
前記計算システムでは、前記秘密積に基づいて、連合学習における学習モデルの学習が実行される、
(1)~(16)の何れかに記載の計算システム。
(18)
前記第1秘密情報は、第1サービスにおける複数のユーザの各々に関する情報であり、
前記第2秘密情報は、第2サービスにおける前記複数のユーザの各々に関する情報である、
(1)~(17)の何れかに記載の計算システム。
【符号の説明】
【0153】
10 計算システム、A 第1装置、B 第2装置、A11 制御部、A12 記憶部、A13 通信部、B11 制御部、B12 記憶部、B13 通信部、A100 第1データ記憶部、A101 第1秘密情報取得部、A102 第1並替情報取得部、A103 第1管理情報取得部、A104 第2管理情報取得部、A105 第5管理情報取得部、A106 第1公開情報受信部、A107 第10管理情報取得部、A108 第2公開情報取得部、A109 第2公開情報送信部、A110 第5管理情報送信部、A111 第1鍵取得部、A112 第1公開鍵送信部、A113 第11管理情報取得部、A114 第12管理情報取得部、A115 第3公開情報受信部、A116 第2計算情報取得部、A117 第16管理情報取得部、A118 第4公開情報取得部、A119 第4公開情報送信部、A120 第13管理情報受信部、A121 第6並替結果取得部、A122 第15管理情報取得部、A123 第15管理情報送信部、A124 第2公開鍵受信部、A125 第1管理積取得部、A126 第1合計取得部、A127 第2合計受信部、A128 秘密積計算部、B100 第2データ記憶部、B101 第2秘密情報取得部、B102 第2並替情報取得部、B103 第3管理情報取得部、B104 第4管理情報取得部、B105 第7管理情報取得部、B106 第8管理情報取得部、B107 第1公開情報取得部、B108 第1公開情報送信部、B109 第2公開情報受信部、B110 第1計算情報取得部、B111 第5管理情報受信部、B112 第3並替結果取得部、B113 第6管理情報取得部、B114 第6管理情報送信部、B115 第1公開鍵受信部、B116 第13管理情報取得部、B117 第14管理情報取得部、B118 第3公開情報取得部、B119 第3公開情報送信部、B120 第4公開情報受信部、B121 第3計算情報取得部、B122 第2鍵取得部、B123 第2公開鍵送信部、B124 第2管理積取得部、B125 第2合計取得部、B126 第2合計送信部。