(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044429
(43)【公開日】2024-04-02
(54)【発明の名称】秘密計算システム、ユーザ端末、委託演算者サーバ、復号管理者端末及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240326BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022149935
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】岡田 大樹
(72)【発明者】
【氏名】清本 晋作
(57)【要約】
【課題】十分に効率的かつ安全で実用的な秘密計算システムを提供すること。
【解決手段】秘密計算システム1は複数のユーザ端末10と、委託演算者サーバ20と、復号管理者端末30とを備え、複数のユーザ端末10は、第1の秘密鍵を共有する第1秘密鍵保持部11と、自身のユーザデータをマスタ公開鍵により暗号化する暗号化部12と、演算結果の暗号文を受信すると、第1の秘密鍵により第1の部分復号文に復号する第1部分復号部13と、第2の部分復号文を受信すると、第1の部分復号文と統合することで復号した演算結果を出力する演算結果出力部14とを備え、委託演算者サーバ20は、暗号化されたユーザデータに対して所定の演算を実行する準同型演算部21を備え、復号管理者端末30は、第2の秘密鍵を保持する第2秘密鍵保持部31と、演算結果の暗号文を受信すると、第2の秘密鍵により第2の部分復号文に復号する第2部分復号部32とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数のユーザ端末と、委託演算者サーバと、復号管理者端末と、を備え、
前記複数のユーザ端末は、
マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵を共有する第1秘密鍵保持部と、
自身のユーザデータを、それぞれ前記マスタ公開鍵により暗号化して前記委託演算者サーバに送信する暗号化部と、
前記委託演算者サーバから演算結果の暗号文を受信すると、前記第1の秘密鍵により第1の部分復号文に復号する第1部分復号部と、
前記復号管理者端末から第2の部分復号文を受信すると、前記第1の部分復号文と統合することで復号した演算結果を出力する演算結果出力部と、を備え、
前記委託演算者サーバは、
前記複数のユーザ端末から受信した暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行し、演算結果の暗号文を前記ユーザ端末及び前記復号管理者端末に送信する準同型演算部を備え、
前記復号管理者端末は、
前記第1の秘密鍵とは異なる第2の秘密鍵を保持する第2秘密鍵保持部と、
前記委託演算者サーバから前記演算結果の暗号文を受信すると、前記第2の秘密鍵により復号した第2の部分復号文を、前記複数のユーザ端末のいずれかに送信する第2部分復号部と、を備える秘密計算システム。
【請求項2】
前記第1の秘密鍵を保持せず、自身のユーザデータを、前記マスタ公開鍵により暗号化して前記委託演算者サーバに送信する一つ以上のデータ提供端末を備え、
前記準同型演算部は、前記複数のユーザ端末、及び前記データ提供端末から受信した暗号化されたユーザデータに対して、前記所定の演算を実行する請求項1に記載の秘密計算システム。
【請求項3】
マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵を他の端末と共有する第1秘密鍵保持部と、
自身のユーザデータを、それぞれ前記マスタ公開鍵により暗号化して委託演算者サーバに送信する暗号化部と、
前記委託演算者サーバが複数の端末から受信した暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行した演算結果の暗号文を、当該委託演算者サーバから受信すると、前記第1の秘密鍵により第1の部分復号文に復号する第1部分復号部と、
復号管理者端末が前記演算結果の暗号文を前記第1の秘密鍵とは異なる第2の秘密鍵により復号した第2の部分復号文を、当該復号管理者端末から受信すると、前記第1の部分復号文と統合することで復号した演算結果を出力する演算結果出力部と、を備えるユーザ端末。
【請求項4】
マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵により暗号化されたユーザデータを複数のユーザ端末から受信し、当該暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行し、演算結果の暗号文を前記ユーザ端末及び復号管理者端末に送信する準同型演算部を備え、
前記ユーザ端末が前記第1の秘密鍵により復号した第1の部分復号文、及び前記復号管理者端末が前記第1の秘密鍵とは異なる第2の秘密鍵により復号した第2の部分復号文を統合することで、復号した演算結果を出力させる委託演算者サーバ。
【請求項5】
マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第2の秘密鍵を保持する第2秘密鍵保持部と、
複数のユーザ端末が前記第2の秘密鍵とは異なる第1の秘密鍵により暗号化したユーザデータに対して、委託演算者サーバが前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行した演算結果の暗号文を、当該委託演算者サーバから受信すると、前記第2の秘密鍵により復号した第2の部分復号文を、前記複数のユーザ端末のいずれかに送信する第2部分復号部と、を備え、
前記複数のユーザ端末のいずれかにおいて、前記演算結果の暗号文を前記第1の秘密鍵により復号した第1の部分復号文、及び前記第2の部分復号文を統合することで、復号した演算結果を出力させる復号管理者端末。
【請求項6】
請求項3に記載のユーザ端末としてコンピュータを機能させるためのプログラム。
【請求項7】
請求項4に記載の委託演算者サーバとしてコンピュータを機能させるためのプログラム。
【請求項8】
請求項5に記載の復号管理者端末としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数ユーザのデータを入力とした完全準同型演算による秘密計算システムに関する。
【背景技術】
【0002】
完全準同型暗号方式(FHE: fully homomorphic encryption)は、データを暗号化したまま任意の計算を可能とする公開鍵暗号方式である。FHEは、例えば、非特許文献1~3などにおいて構成が示されている。
【0003】
マルチ鍵完全準同型暗号方式(MKFHE: Multi-key FHE)は、複数ユーザで利用することを目的に拡張されたFHEである。MKFHEは、例えば、非特許文献4,5などにおいて構成が示されている。
【0004】
しきい値完全準同型暗号方式(ThFHE: Threshold FHE)は、MKFHEと類似し複数ユーザの利用に向けた機能を持つFHEであるが、暗号化の際に用いる鍵が異なっている。ThFHEは、例えば、非特許文献6,7などにおいて構成が示されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Craig Gentry. "Fully Homomorphic Encryption Using Ideal Lattices". In: STOC 2009. ACM, 2009, pp. 169-178.
【非特許文献2】Jung Hee Cheon, Andrey Kim, Miran Kim, and Yongsoo Song. "Homomorphic Encryption for Arithmetic of Approximate Numbers". In: ASIACRYPT 2017. 2017, pp. 409-437.
【非特許文献3】Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, and Malika Izabachene. "TFHE: Fast Fully Homomorphic Encryption Over the Torus". In: Journal of Cryptology 33.1 (2020), pp. 34-91.
【非特許文献4】Hao Chen, Wei Dai, Miran Kim, and Yongsoo Song. "Efficient Multi-Key Homomorphic Encryption with Packed Ciphertexts with Application to Oblivious Neural Network Inference". In: Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. CCS '19. ACM, 2019, pp. 395-412.
【非特許文献5】Hao Chen, Ilaria Chillotti, and Yongsoo Song. "Multi-Key Homomorphic Encryption from TFHE". In: ASIACRYPT 2019. Springer, 2019, pp. 446-472.
【非特許文献6】Gilad Asharov, Abhishek Jain, Adriana Lopez-Alt, Eran Tromer, Vinod Vaikuntanathan, and Daniel Wichs. "Multiparty Computation with Low Communication, Computation and Interaction via Threshold FHE". In: EUROCRYPT 2012. Springer, 2012, pp. 483-501.
【非特許文献7】Dan Boneh, Rosario Gennaro, Steven Goldfeder, Aayush Jain, Sam Kim, Peter M. R. Rasmussen, and Amit Sahai. "Threshold Cryptosystems from Threshold Fully Homomorphic Encryption". In: CRYPTO 2018. Springer, 2018, pp. 565-596.
【発明の概要】
【発明が解決しようとする課題】
【0006】
各種の完全準同型暗号方式を用いることで、複数のユーザが他人に開示すること無く機微な情報を持ち寄って、委託演算者(例えば、クラウドサーバ)がAI・統計解析などの計算を行う秘密計算システムを構成することができる。
Single-key FHEによる秘密計算システムを構成した場合、ユーザ間で共通する単一の鍵ペアが利用されることにより効率的である一方、安全性(漏洩耐性、結託耐性)に課題があった。
また、MKFHE又はThFHEによる秘密計算システムを構成した場合、複数の鍵ペアにより高い安全性(漏洩耐性、結託耐性)を達成する一方で、効率性(暗号文サイズ、復号の通信コスト、遅延)に課題がある上に、可用性を損なう脆弱性(復号停止攻撃)があることも知られている。
【0007】
本発明は、効率性と安全性というトレードオフの関係にある課題を同時に緩和でき、十分に効率的かつ安全で、実用的な秘密計算システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る秘密計算システムは複数のユーザ端末と、委託演算者サーバと、復号管理者端末と、を備え、前記複数のユーザ端末は、マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵を共有する第1秘密鍵保持部と、自身のユーザデータを、それぞれ前記マスタ公開鍵により暗号化して前記委託演算者サーバに送信する暗号化部と、前記委託演算者サーバから演算結果の暗号文を受信すると、前記第1の秘密鍵により第1の部分復号文に復号する第1部分復号部と、前記復号管理者端末から第2の部分復号文を受信すると、前記第1の部分復号文と統合することで復号した演算結果を出力する演算結果出力部と、を備え、前記委託演算者サーバは、前記複数のユーザ端末から受信した暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行し、演算結果の暗号文を前記ユーザ端末及び前記復号管理者端末に送信する準同型演算部を備え、前記復号管理者端末は、前記第1の秘密鍵とは異なる第2の秘密鍵を保持する第2秘密鍵保持部と、前記委託演算者サーバから前記演算結果の暗号文を受信すると、前記第2の秘密鍵により復号した第2の部分復号文を、前記複数のユーザ端末のいずれかに送信する第2部分復号部と、を備える。
【0009】
前記第1の秘密鍵を保持せず、自身のユーザデータを、前記マスタ公開鍵により暗号化して前記委託演算者サーバに送信する一つ以上のデータ提供端末を備え、前記準同型演算部は、前記複数のユーザ端末、及び前記データ提供端末から受信した暗号化されたユーザデータに対して、前記所定の演算を実行してもよい。
【0010】
本発明に係るユーザ端末は、マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵を他の端末と共有する第1秘密鍵保持部と、自身のユーザデータを、それぞれ前記マスタ公開鍵により暗号化して委託演算者サーバに送信する暗号化部と、前記委託演算者サーバが複数の端末から受信した暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行した演算結果の暗号文を、当該委託演算者サーバから受信すると、前記第1の秘密鍵により第1の部分復号文に復号する第1部分復号部と、復号管理者端末が前記演算結果の暗号文を前記第1の秘密鍵とは異なる第2の秘密鍵により復号した第2の部分復号文を、当該復号管理者端末から受信すると、前記第1の部分復号文と統合することで復号した演算結果を出力する演算結果出力部と、を備える。
【0011】
本発明に係る委託演算者サーバは、マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第1の秘密鍵により暗号化されたユーザデータを複数のユーザ端末から受信し、当該暗号化されたユーザデータに対して、前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行し、演算結果の暗号文を前記ユーザ端末及び復号管理者端末に送信する準同型演算部を備え、前記ユーザ端末が前記第1の秘密鍵により復号した第1の部分復号文、及び前記復号管理者端末が前記第1の秘密鍵とは異なる第2の秘密鍵により復号した第2の部分復号文を統合することで、復号した演算結果を出力させる。
【0012】
本発明に係る復号管理者端末は、マスタ公開鍵により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式における、第2の秘密鍵を保持する第2秘密鍵保持部と、複数のユーザ端末が前記第2の秘密鍵とは異なる第1の秘密鍵により暗号化したユーザデータに対して、委託演算者サーバが前記マスタ公開鍵を用いて所定の演算を暗号化された状態で実行した演算結果の暗号文を、当該委託演算者サーバから受信すると、前記第2の秘密鍵により復号した第2の部分復号文を、前記複数のユーザ端末のいずれかに送信する第2部分復号部と、を備え、前記複数のユーザ端末のいずれかにおいて、前記演算結果の暗号文を前記第1の秘密鍵により復号した第1の部分復号文、及び前記第2の部分復号文を統合することで、復号した演算結果を出力させる。
【0013】
本発明に係るプログラムは、前記ユーザ端末としてコンピュータを機能させるためのものである。
【0014】
本発明に係るプログラムは、前記委託演算者サーバとしてコンピュータを機能させるためのものである。
【0015】
本発明に係るプログラムは、前記復号管理者端末としてコンピュータを機能させるためのものである。
【発明の効果】
【0016】
本発明によれば、十分に効率的かつ安全で、実用的な秘密計算システムを構成できる。
【図面の簡単な説明】
【0017】
【
図1】実施形態における秘密計算システムの構成を示す図である。
【
図2】実施形態における秘密計算システムを構成する各装置の機能部を示す図である。
【
図3】従来のSingle-key FHEによる秘密計算システムの構成を示す図である。
【
図4】従来のMKFHEによる秘密計算システムの構成を示す図である。
【
図5】従来のMKFHEによる秘密計算システムにおける脆弱性を示す図である。
【
図6】従来のThFHEによる秘密計算システムの構成を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態の一例について説明する。
本実施形態との比較のため、まず、3種類の完全準同型暗号方式、及びこれらを用いた従来の秘密計算システムについて説明し、その後、本実施形態のシステム構成及びその機能を詳述する。
【0019】
[Single-key FHE]
完全準同型暗号方式FHE=(FHE.Keygen,FHE.Enc,FHE.Dec,FHE.Eval)は、次のように定義される。
【0020】
・FHE.Keygen(1λ)→(pk,evk,sk):
公開鍵pk、公開演算鍵evk、秘密鍵skを出力する。
・FHE.Enc(pk,m∈{0,1})→ct:
公開鍵pk、平文m∈{0,1}を入力とし、通常の公開鍵暗号と同様の暗号化アルゴリズムにより、暗号文ctを出力する。
・FHE.Dec(sk,ct)→m:
秘密鍵sk、暗号文ctを入力として、通常の公開鍵暗号と同様の復号アルゴリズムにより、平文mを出力する。
・FHE.Eval(evk,f,ct1,…,ctl)→ctf:
演算鍵evk、2進回路f:{0,1}l→{0,1}、m1,…,mlを暗号化したl個の暗号文ct1,…,ctlを入力とし、f(m1,…,ml)の暗号文であるctfを出力する準同型演算アルゴリズム。
【0021】
図3は、従来のSingle-key FHEによる秘密計算システムの構成を示す図である。
Single-key FHEを用いた複数ユーザ秘密計算システムの場合、各ユーザ(party 1~N)は、同一の鍵ペア(pk,sk)を共有し、公開鍵pkで暗号化、秘密鍵skで復号を行う。
【0022】
委託演算者(Evaluator)は、各ユーザからユーザデータmiの暗号文Enc(mi,pk)を受け取ると、準同型演算によりf(m1,…,mN)の暗号文ctを計算しユーザに提供する。
いずれのユーザも、暗号文ctを秘密鍵skにより復号することで、演算結果f(m1,…,mN)を得られる。
【0023】
従来のSingle-key FHEによる秘密計算システムでは、効率性及び安全性に関して、次のような利点及び課題がある。
(効率性)単一の鍵ペアを利用するため、効率的である。
(安全性)全ユーザで秘密鍵を共有するため、安全性が十分でない。
・漏洩耐性: 暗号文が他のユーザに渡ると、容易に復号されてされてしまう。
・結託耐性: 1ユーザでも委託演算者と結託すると、全ての暗号文が復号されてしまう。
【0024】
[MKFHE]
マルチ鍵完全準同型暗号方式MKFHE=(DistSetup,KeyGen,Enc,Eval,PartDec,FinDec)は、次のように定義される。
【0025】
・DistSetup(1λ,1N,i)→paramsi:
セキュリティパラメータλ、最大許容パーティ数N、パーティ添字(ユーザ番号)iを入力とし、パーティiに対する公開パラメータparamsiを出力する。
・KeyGen(paramsi)→(pki,ski):
パーティiは、paramsiに従って公開鍵-秘密鍵ペア(pki,ski)を出力する。
・Enc(pki,m∈{0,1})→ct:
パーティiは、公開鍵pki、平文m∈{0,1}を入力とし、暗号文ctを出力する。
・Eval(evk,f,ct1,…,ctl)→ctf:
演算鍵evk、2進回路f:{0,1}l→{0,1}、暗号文ct1,…,ctlを入力として、f(m1,…,ml)の暗号文であるctfを出力する。
・PartDec(i,ski,ct)→pi:
パーティiは、秘密鍵ski、暗号文ctを入力として、部分復号文piを出力する。
・FinDec(p1,…,pl)→m:
パーティ1,…,lの部分復号文p1,…,plを入力として、m∈{0,1,⊥}を出力する。
【0026】
図4は、従来のMKFHEによる秘密計算システムの構成を示す図である。
MKFHEを用いた複数ユーザ秘密計算システムの場合、各ユーザ(ユーザ番号i)は、固有の鍵ペア(pk
i,sk
i)を保持し、公開鍵pk
iで暗号化を行う。
復号は、全ユーザがsk
iで部分復号(PartDec)を行った後、全ての部分復号文を集めてFinDecを行うことで完了する。
【0027】
委託演算者(Evaluator)は、全ユーザ(ユーザ数:N)からユーザデータmiの暗号文Enc(mi,pki)を受け取ると、得られた暗号文を、それぞれ拡張公開鍵鍵ペア(pk ̄:=(pk1|…|pkN),sk ̄:=(sk1|…|skN))に対応する長さの暗号文に、0でパディングするなどして拡張した上で準同型演算を行う。
準同型演算により計算されたf(m1,…,mN)の暗号文ctがユーザに提供されると、各ユーザが自身の秘密鍵skiを用いて部分復号(PartDec)を行う。復号は、全ユーザによる部分復号文(PartDecの出力)を、ブロードキャストで送受し合うなどして集め、FinDecを実行することで完了する。
【0028】
従来のMKFHEによる秘密計算システムでは、効率性及び安全性に関して、次のような利点及び課題がある。
(効率性)
・ユーザ数Nに応じて暗号文のサイズ、及び準同型演算時間が増大する。
・復号は全ユーザで実行する必要があるため、通信コストが大きく、遅延もある。
(安全性)
・漏洩耐性: 全ユーザの復号への参加が必要であるため、暗号文が漏洩した際にも高い安全性が保持される。
・結託耐性: 平文の取得には全ユーザの結託が必要なため、結託攻撃のリスクがない。
・サービス停止攻撃(復号妨害): 任意のユーザは、自身が犯人であることを検知されることなく復号を失敗させる攻撃が可能である。
【0029】
図5は、従来のMKFHEによる秘密計算システムにおける脆弱性を示す図である。
任意のユーザは、部分復号を偽装(FakeDec)することで、全体の復号を失敗させることができる。
具体的には、MKFHEの安全性証明より、PartDecの出力は、ランダムな文に対するPartDecの出力と識別不可能であるから、例えば、秘密鍵sk
iをランダムな値にすり替えるなどして、正しいPartDecの出力と識別不可能な偽装部分復号FakeDec(ct,*)を構成可能である。
【0030】
[ThFHE]
参加パーティ(ユーザ)の集合をP={P1,…,PN}とし、SをPに対する復号用のアクセス構造のクラスとする。例えば、「t-out-of-N」は、N人中t人が集まれば復号可能な、しきい値tのアクセス構造を示す。
クラスSに対して、しきい値完全準同型暗号方式ThFHE=(ThFHE.KeyGen,ThFHE.Enc,ThFHE.Eval,ThFHE.PartDec,ThFHE.FinDec)は、次のように定義される。
【0031】
・ThFHE.KeyGen(1λ,A)→(evk,pk*,sk1,…,skN):
入力のセキュリティパラメータλ、クラスSに属するアクセス構造Aに対して、マスタ公開鍵pk*、公開演算鍵evk、分散秘密鍵sk1,…,skNを生成する。
ThFHE.Enc(pk*,m)→ct:
入力のマスタ公開鍵pk*、平文m∈{0,1}に対して、暗号文ctを出力する。
・ThFHE.Eval(evk,f,ct1,…,ctl)→ctf:
演算鍵evk、2進回路f:{0,1}l→{0,1}、暗号文ct1,…,ctlを入力として、f(m1,…,ml)の暗号文であるctfを出力する。
・ThFHE.PartDec(ct,ski)→pi:
各パーティPiは、暗号文ct、分散秘密鍵ski、を入力として、部分復号文piを出力する。
・ThFHE.FinDec({pi}i∈Q)→m^:
あるパーティ集合Q⊆{P1,…,PN}に対応する部分復号文の集合{pi}i∈Qを入力として、Qがアクセス構造Aを満たすとき、平文m∈{0,1}を出力し、満たさないとき、⊥を出力する(正しい平文を出力しない)。
【0032】
このように、ThFHEでは、マスタ公開鍵pk*と、これに対応する分散秘密鍵(sk1,…,skN)が用いられる。各ユーザ(ユーザ番号i)は、それぞれ分散秘密鍵skiを保有し、暗号化には共通のマスタ公開鍵pk*を用いる。
アクセス構造がN-out-of-Nの場合、復号は、MKFHEと同様、全ユーザがそれぞれ分散秘密鍵skiを用いて部分復号を行い、全ての部分復号文を集めることで完了する。
【0033】
図6は、従来のThFHEによる秘密計算システムの構成を示す図である。
N-out-of-NのThFHEを用いた複数ユーザ秘密計算システムの場合、各ユーザ(ユーザ番号i)は、分散秘密鍵sk
iを保持し、sk
iに対応する公開鍵pk
iから計算されるマスタ公開鍵jpk:=(pk
1+…+pk
N)で暗号化を行う。
復号は、全ユーザが分散秘密鍵sk
iで部分復号(PartDec)を行った後、全ての部分復号文を集めてFinDecを行うことで完了する。
【0034】
従来のThFHEによる秘密計算システムでは、効率性及び安全性に関して、MKFHEと同様の利点及び課題がある。
【0035】
[システム構成]
本実施形態の秘密計算システムは、完全準同型暗号方式として2-out-of-2 ThFHEを用い、従来の複数ユーザ秘密計算システムとは異なるエンティティを含んで構成される。
【0036】
図1は、本実施形態における秘密計算システム1の構成を示す図である。
秘密計算システム1は、秘密計算を実施するためのエンティティとして、任意数のユーザ端末10(party 1~N)、クラウドサーバ又は機械学習モデル提供者などを想定した委託演算者(Evaluator)サーバ20、復号管理者(decryption admin)端末30を備える。
【0037】
2-out-of-2 ThFHEにおけるマスタ公開鍵をjpk、2つの分散秘密鍵をskusr,skadとし、全ユーザ端末10に共通の分散秘密鍵skusrが、復号管理者端末30に分散秘密鍵skadが、委託演算者サーバ20に全ユーザ及び復号管理者が生成した演算鍵evkが付与される。
【0038】
全ユーザ端末10は、共通の秘密鍵skusrを共有し、機微情報を含むデータmiをマスタ公開鍵jpk:=(pkusr+pkad)で暗号化する(1)。
【0039】
委託演算者サーバ20は、演算鍵evk、及びマスタ公開鍵jpkを用いて、ユーザから受け取った暗号文を入力とした準同型演算を行う(2)。
そして、委託演算者サーバ20は、演算後の暗号文ctを復号管理者端末30に送信する(3)。このとき、演算前の暗号文を復号管理者端末30に送信することは禁止される。
【0040】
復号管理者端末30は、秘密鍵skadを用いて暗号文ctの部分復号を行い、適切なユーザ端末10に部分復号文を送信する(4)。
ここで、例えば、演算結果の平文の情報が機微な情報を含まない統計情報などとみなせる場合には、全ユーザに部分復号文を公開してもよい。あるいは、ある限定的な(例えば、委託演算者に演算を依頼したなどの)ユーザのみに部分復号文が送信されてもよい。
なお、復号管理者によって部分復号された部分復号文は、全ユーザが復号可能であるため、委託演算者は規則を守り、演算済みの統計情報のみを含む暗号文に限り復号管理者に提供し、統計情報は全ユーザに公開することが許される、というユースケースが望ましい。
【0041】
復号管理者端末30から部分復号文を受け取ったユーザ端末10は、自身の秘密鍵skusrによる部分復号文と合わせてFinDecを行うことで、演算結果の復号を完了する。
【0042】
図2は、本実施形態における秘密計算システム1を構成する各装置の機能部を示す図である。
複数のユーザ端末10、委託演算者サーバ20及び復号管理者端末30は、いずれも、制御部及び記憶部の他、各種の入出力及び通信インタフェースなどを備えた情報処理装置(コンピュータ)である。制御部は、記憶部に格納されたソフトウェアを読み込み実行することで各機能部の処理を実現する。
【0043】
ユーザ端末10の制御部は、第1秘密鍵保持部11と、暗号化部12と、第1部分復号部13と、演算結果出力部14とを備える。
【0044】
第1秘密鍵保持部11は、マスタ公開鍵(jpk)により暗号化された暗号文を、互いに異なる2つの秘密鍵の一方を持つ2者それぞれが部分復号した部分復号文を統合することでのみ復号可能な完全準同型暗号方式(例えば、前述の2-out-of-2 ThFHE)における第1の秘密鍵(skusr)を、複数のユーザ端末10の間で共有し、記憶部に保持する。
【0045】
暗号化部12は、自身のユーザデータ(mi)を、それぞれマスタ公開鍵により暗号化して委託演算者サーバ20に送信する。
【0046】
第1部分復号部13は、委託演算者サーバ20から演算結果の暗号文(ct)を受信すると、第1の秘密鍵(skusr)により第1の部分復号文に復号する(PartDec(ct,skusr))。
【0047】
演算結果出力部14は、復号管理者端末30から第2の部分復号文(PartDec(ct,skad))を受信すると、第1の部分復号文と統合することで、復号した演算結果を出力する(FinDec)。
【0048】
委託演算者サーバ20の制御部は、準同型演算部21を備える。
準同型演算部21は、複数のユーザ端末10から受信した暗号化されたユーザデータに対して、マスタ公開鍵(jpk)を用いて所定の演算(f)を暗号化された状態で実行し、演算結果の暗号文(ct)をユーザ端末10及び復号管理者端末30に送信する。
【0049】
復号管理者端末30の制御部は、第2秘密鍵保持部31と、第2部分復号部32とを備える。
【0050】
第2秘密鍵保持部31は、複数鍵完全準同型暗号方式における所定の手順により生成された第1の秘密鍵(skusr)とは異なる第2の秘密鍵(skad)を取得し、記憶部に保持する。
【0051】
第2部分復号部32は、委託演算者サーバ20から演算結果の暗号文(ct)を受信すると、第2の秘密鍵(skad)により復号した第2の部分復号文(PartDec(ct,skad))を、複数のユーザ端末10のいずれかに送信する。
【0052】
ここで、秘密計算システム1には、ユーザ端末10とは別に、秘密鍵(skusr,skad)を保持せず、自身のユーザデータを、マスタ公開鍵(jpk)により暗号化して委託演算者サーバ20に送信する一つ以上のデータ提供端末が含まれていてもよい。
この場合、委託演算者サーバ20は、複数のユーザ端末10、及びデータ提供端末から受信した暗号化されたユーザデータに対して、同様に所定の演算を実行するが、追加されたパーティ(データ提供端末)は、例えば報酬と引き換えに、委託演算者サーバ20に対してデータ提供は行うことはできても暗号文の復号はできず、よって演算結果を取得できない。
【0053】
本実施形態によれば、秘密計算システム1は、従来と比べて効率性及び安全性を、次のように改善した。
【0054】
(効率性)
ThFHEの効率性は、例えば非特許文献6の方式を使う場合、通常のsingle-key FHEと比較して、暗号文及び鍵のサイズは同等であり、準同型演算のコストは分散秘密鍵の数に線形に比例する。本実施形態では、分散秘密鍵は2つしか使わないため、コストの増加は2倍程度に抑えられ、十分に効率的である。
【0055】
(安全性)
プライバシ保護に関して、2-out-of-2 FHEは、MKFHE又はN-out-of-N ThFHE(N>2)に比べて理論上の安全性が多少劣ると考えられるが、委託演算者又は復号管理者の信頼性仮定のもとでは、次のように十分な安全性を提供できる。
さらに、MKFHEに基づく秘密計算システムの脆弱性である復号妨害攻撃の課題も次のように解決される。
【0056】
・漏洩耐性:
ユーザの機微情報を含む演算前のデータは、復号管理者の秘密鍵の悪用(漏洩)がない限り、他ユーザは復号できない。つまり、秘密計算システム1は、復号管理者の信頼性仮定のもとでは、single-key FHEと比べて十分に安全といえる。
【0057】
・結託耐性:
ある1人のユーザ、委託演算者、復号管理者の三者が結託しない限り、他ユーザの機微情報を含む演算前のデータが復号されることがない。すなわち、ある1人のユーザが他のユーザの演算前の暗号文を委託演算者から受け取り、復号管理者に部分復号を依頼、又は秘密鍵skadを譲り受けることで、ようやく復号が可能となる。したがって、秘密計算システム1は、single-key FHEと比べて十分に安全といえる。
【0058】
・サービス停止攻撃(復号妨害):
秘密計算システム1に対してMKFHEにおける復号妨害攻撃を実行可能なのは復号管理者であるが、ユーザが復号(FinDec)に失敗した際に、妨害者(犯人)は復号管理者であることが自明であるため、攻撃は成立しない。
【0059】
このように、本実施形態によれば、十分に効率的かつ安全で、実用的な秘密計算システム1を構成できた。
また、秘密計算システム1は、秘密鍵を保持せず演算結果の復号ができないデータ提供端末からもユーザデータを取得することとしてもよく、これにより、大規模データを対象とした統計解析などに適用可能となる。
【0060】
なお、本実施形態により、例えば実用的な効率性及び安全性を有する秘密計算システムを構成できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。
【0061】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0062】
前述の実施形態における復号管理者端末30の機能(第2秘密鍵保持部31、第2部分復号部32)を、委託演算者サーバ20に譲渡した構成であってもよい。
この場合、復号管理者端末30が存在しないことから、ある1ユーザと委託演算者が結託すれば全ての暗号文が解読される可能性があるため、結託耐性はsingle-key FHEの場合と同様になるが、漏洩耐性及び復号妨害耐性は維持される。
【0063】
また、前述の実施形態では、2-out-of-2 ThFHEを用いたシステム構成としたが、これには限られず、より一般的に、公開鍵jpkで暗号化した暗号文が2つの分散秘密鍵skusr,skadを持つ2者で協力しなければ復号不可能であるFHEで実現可能である。
【0064】
秘密計算システム1による秘密計算方法は、ソフトウェア又はハードウェア回路により実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0065】
1 秘密計算システム
10 ユーザ端末
11 第1秘密鍵保持部
12 暗号化部
13 第1部分復号部
14 演算結果出力部
20 委託演算者サーバ
21 準同型演算部
30 復号管理者端末
31 第2秘密鍵保持部
32 第2部分復号部