(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024048516
(43)【公開日】2024-04-09
(54)【発明の名称】暗号化装置、暗号化方法及び暗号化プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240402BHJP
【FI】
G09C1/00 620Z
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022154468
(22)【出願日】2022-09-28
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】岡田 大樹
(57)【要約】
【課題】複数の分散鍵を用いた格子暗号による完全準同型演算システムにおいて、暗号文のサイズを減少させることができる暗号化装置、暗号化方法及び暗号化プログラムを提供すること。
【解決手段】暗号化装置1は、複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自装置が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成する鍵生成部11と、暗号化用の鍵に基づく公開鍵暗号型の暗号文に対して、自装置が保持する分散秘密鍵に基づく共通鍵暗号型のランダム成分及びノイズ成分を加算した暗号文を生成する暗号文生成部12と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自装置が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成する鍵生成部と、
前記暗号化用の鍵に基づく公開鍵暗号型の暗号文に対して、前記自装置が保持する分散秘密鍵に基づく共通鍵暗号型のランダム成分及びノイズ成分を加算した暗号文を生成する暗号文生成部と、を備える暗号化装置。
【請求項2】
前記格子暗号は、しきい値完全準同型暗号方式である請求項1に記載の暗号化装置。
【請求項3】
暗号化装置が、
複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自装置が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成する鍵生成ステップと、
前記暗号化用の鍵に基づく公開鍵暗号型の暗号文に対して、前記自装置が保持する分散秘密鍵に基づく共通鍵暗号型のランダム成分及びノイズ成分を加算した暗号文を生成する暗号文生成ステップと、を実行する暗号化方法。
【請求項4】
請求項1又は請求項2に記載の暗号化装置としてコンピュータを機能させるための暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の分散鍵を用いた格子暗号による完全準同型演算システムに関する。
【背景技術】
【0002】
しきい値型完全準同型暗号方式(ThFHE: Threshold Fully Homomorphic Encryption)は、複数ユーザで利用することを目的に拡張された完全準同型暗号方式(FHE)である。ThFHEは、非特許文献1及び2などにおいて構成が示されている。
ここで、LWE暗号は、ThFHEを構成するための基となる暗号方式であり、共通鍵暗号、及び公開鍵暗号の両方の構成が可能である。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】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.
【非特許文献2】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.
【発明の概要】
【発明が解決しようとする課題】
【0004】
LWE暗号は、共通鍵暗号又は公開鍵暗号のいずれの構成も可能であるが、共通鍵暗号に比べて公開鍵暗号の方が暗号文のノイズが大きくなるため、暗号文サイズ(法q)を比較的大きく設定する必要があった。このため、FHEにおいては、データ送信側であるユーザが秘密鍵を持つことから、より軽量な共通鍵暗号型の暗号化アルゴリズムを利用するのが一般的である。
一方、ThFHEでは、その構成上、公開鍵暗号型の暗号化アルゴリズムしか利用できないため、共通鍵暗号型の暗号化アルゴリズムと比べて暗号文サイズが大きくなるという課題があった。
【0005】
本発明は、複数の分散鍵を用いた格子暗号による完全準同型演算システムにおいて、暗号文のサイズを減少させることができる暗号化装置、暗号化方法及び暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号化装置は、複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自装置が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成する鍵生成部と、前記暗号化用の鍵に基づく公開鍵暗号型の暗号文に対して、前記自装置が保持する分散秘密鍵に基づく共通鍵暗号型のランダム成分及びノイズ成分を加算した暗号文を生成する暗号文生成部と、を備える。
【0007】
前記格子暗号は、しきい値完全準同型暗号方式であってもよい。
【0008】
本発明に係る暗号化方法は、暗号化装置が、複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自装置が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成する鍵生成ステップと、前記暗号化用の鍵に基づく公開鍵暗号型の暗号文に対して、前記自装置が保持する分散秘密鍵に基づく共通鍵暗号型のランダム成分及びノイズ成分を加算した暗号文を生成する暗号文生成ステップと、を実行する。
【0009】
本発明に係る暗号化プログラムは、前記暗号化装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0010】
本発明によれば、複数の分散鍵を用いた格子暗号による完全準同型演算システムにおいて、暗号文のサイズを減少させることができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態における暗号化装置の機能構成を示す図である。
【
図2】実施形態における暗号文上のノイズの大きさを、従来手法と比較して示す図である。
【
図3】従来のThFHEを用いた、複数ユーザが参加する秘密計算システムの構成を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態の一例について説明する。
本実施形態の暗号化方法では、完全準同型暗号方式の一例として、ThFHEを改良することとするが、これには限られず、完全準同型演算システムを構成する格子暗号を用いた他の暗号化アルゴリズムに対しても適用可能である。
【0013】
[ThFHEのアルゴリズム]
まず、本実施形態との比較のため、ThFHEによる秘密計算システムの構成について説明する。
【0014】
図3は、従来のThFHEを用いた、複数ユーザが参加する秘密計算システムの構成を示す図である。
ThFHEでは、多様な復号方法を設定することが可能であり、例えば、N人中t人(しきい値)の分散秘密鍵だけで復号を可能にする設定もできる(t-out-of-N)。ここでは,N-out-of-Nでの構成を例示する。
【0015】
各ユーザ(party 1~N)は、それぞれ固有の秘密鍵(分散秘密鍵)skiを持ち、(機微情報を含む)データmiを、全ユーザの秘密鍵skiに対応する公開鍵pkiから計算されるマスタ公開鍵jpk:=(pk1+…+pkN)で暗号化する(1)。
【0016】
演算者(Evaluator)は、全ユーザが生成した演算鍵evk、及びマスタ公開鍵jpkを用いて、全ユーザから受け取った暗号文を入力とした準同型演算f(m1+…+mN)を行う(2)。
演算者は、演算後の暗号文ctを全ユーザに送信する(3)。
【0017】
各ユーザは、自身の秘密鍵skiを用いて部分復号(PartDec)を行い、部分復号文を全ユーザに送信する(4)。
各ユーザは、得られた全ユーザの部分復号文を統合し、演算結果の平文を得る(FinDec)(5)。
【0018】
ここで、ThFHEの基となる暗号方式LWEは、次のように定義される。
・params=(1λ,q,m,n,χLWE,χrand):
paramsは、以下の全ての暗号アルゴリズムに非明示的に利用されるパラメータ群である。1λはセキュリティパラメータ、q=q(λ)は法、m=m(λ),n=n(λ)は次元、χLWE=χLWE(λ),χrand=χrand(λ)はZq上の確率分布である。
なお、χLWEにはガウシアンノイズが用いられることが多く、また、公開鍵暗号型の暗号化用ノイズχrandにはU({0,1})又はχLWEと同じガウシアンノイズなどが用いられる。
【0019】
・A←U(Zq
m×n):
方式に固定のランダムな公開行列であり、鍵生成以前に生成し固定される。
【0020】
・sk←LWE.SymKeyGen(1λ):
一様ランダムな秘密鍵sk:=s←U(Zq
n)を生成する。
【0021】
・pk←LWE.PubKeyGen(sk):
ノイズe←χLWE
mをサンプルしてt=As+eを計算し、公開鍵pk:=(A,t)を出力する。
【0022】
・ct←LWE.SymEnc(sk,m∈{0,1}):
a←U(Z
q
n),e←χ
LWEをサンプルし、次の共通鍵暗号型の暗号文を出力する。
【数1】
【0023】
・ct←LWE.PubEnc(pk,m∈{0,1}):
r←χ
rand
mをサンプルし、次の公開鍵暗号型の暗号文を出力する。
【数2】
【0024】
・m←LWE.Dec(sk,ct):
次の平文を出力する。
【数3】
【0025】
このようなLWE暗号に基づいて、ThFHEの鍵生成、暗号化、復号アルゴリズムは、次のように記述できる。
ここで、ユーザ数はN人とし、各ユーザを(P1,…,PN)と表記する。
【0026】
・(鍵生成)
(sk
1,…,sk
N,jpk)←ThFHE.KeyGen(1
λ):
各ユーザP
iは、それぞれに固有の秘密鍵sk
iを生成する。
sk
i←LWE.SymKeyGen(1
λ)
次に、各ユーザP
iは、e
i←χ
LWE
mをサンプルし、sk
iを用いて“部分的な”公開鍵pk
iを次のように生成する。
pk
i:=(A,t
i:=As
i+e
i)←LWE.PubKeyGen(sk
i)
そして、マスタ公開鍵jpk(joint public key)は、次のように生成される。
【数4】
【0027】
・(暗号化)
ct:=(a,b)←ThFHE.Enc(jpk:=(A,t
*),m∈{0,1}):
本アルゴリズムは、前述のLWE.PubEnc(jpk,m∈{0,1})と同一である。すなわち、r←χ
rand
mをサンプルし、次のように公開鍵暗号型の暗号文を出力する。
【数5】
なお、
【数6】
が成り立つ。
【0028】
・(復号)
m←ThFHE.Dec(ct:=(a,b),sk
1,…,sk
N):
(PartDec): 各ユーザP
iは、部分復号文p
i=a
Ts
i+e
i’を全ユーザにブロードキャストする。ここで、e
i’←χ
LWEである。
(FinDec): 得られた全ユーザの部分復号文p
1,…,p
Nから、
【数7】
を計算し出力する。なお、
【数8】
が成り立つ。
【0029】
[改良した暗号化アルゴリズム]
本実施形態では、従来のThFHEにおける暗号化アルゴリズムThFHE.Encを、次のThFHE.HybridEncに置き換えることで、暗号文のノイズの大きさを従来よりも小さくし、その結果、暗号文のサイズも減少させる。
【0030】
なお、添え字j∈[N]の秘密鍵skjを持つユーザをPjと表記する。
また、Pjは、ThFHE.KeyGenの中間生成物である“部分的な”公開鍵pkjを保持しているとする。
【0031】
・ct←ThFHE.HybridEnc(jpk:=(A,t
*),pk
j:=(A,t
j),sk
j:=s
j,m∈{0,1}):
準備:
ユーザP
jは、マスタ公開鍵に代わる自身の暗号化用の鍵として、
【数9】
を生成する。
なお、鍵生成の際などにP
jがこの暗号化用の鍵を生成し保持しておくことで、暗号化処理の際は、このステップは省略可能である。
【0032】
暗号化:
ユーザP
jは、r←χ
LWE
m,e
 ̄←χ
LWEをサンプルし、暗号文として、
【数10】
を出力する。ここで、
【数11】
が成り立つ。
なお、復号のアルゴリズムに変更は必要なく、ThFHE.Decにより実行可能である。
【0033】
図1は、本実施形態における暗号化装置1の機能構成を示す図である。
暗号化装置1は、秘密計算システムにおいて、機微情報を含むデータを暗号化して提供し、準同型演算を演算者に委託する複数のユーザそれぞれが使用する端末であり、制御部10及び記憶部20の他、各種の入出力及び通信インタフェースなどを備えた情報処理装置(コンピュータ)である。
【0034】
制御部10は、暗号化装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0035】
記憶部20は、ハードウェア群を暗号化装置1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよい。
具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(暗号化プログラム)の他、暗号化対象のユーザデータ、暗号化及び復号のための各種鍵データなどを記憶する。
【0036】
制御部10は、鍵生成部11と、暗号文生成部12とを備える。
鍵生成部11は、複数の分散秘密鍵に対応する格子暗号(例えば、ThFHE)におけるマスタ公開鍵jpkから、自端末が保持する分散秘密鍵skjに対応するランダム成分(Asj)及びノイズ成分(ej)を除外した、暗号化用の鍵jpk ̄
jを生成する。
【0037】
暗号文生成部12は、ThFHE.HybridEncにより、暗号化用の鍵に基づく公開鍵暗号型の暗号文
【数12】
に対して、自端末が保持する分散秘密鍵sk
jに基づく共通鍵暗号型のランダム成分(a
Ts
j)及びノイズ成分(e
 ̄)を加算した暗号文
【0038】
【0039】
この結果、
【数14】
は、従来のThFHEの暗号文における
【数15】
と比べて、公開鍵暗号型のノイズ成分の一部が共通鍵暗号型のノイズに変更される。
【0040】
図2は、本実施形態における暗号文上のノイズの大きさを、従来手法と比較して示す図である。
ここでは、一般的な設定として、Var(χ
LWE):=σ
2,Var(χ
rand)=O(1)とした場合に、従来のThFHE.Encと本実施形態のThFHE.HybridEncとで、暗号文上のノイズの大きさを比較した結果を例示する。
mが十分大きいとき、得られるノイズの削減効果比率は、
【数16】
であり、ユーザ数Nが小さいほど大きな削減効果が得られる。例えば、N=2のとき、暗号文上のノイズの大きさは、従来と比較して約50%に減少させることができる。
【0041】
本実施形態によれば、暗号化装置1は、複数の分散秘密鍵に対応する格子暗号におけるマスタ公開鍵から、自端末が保持する分散秘密鍵に対応するランダム成分及びノイズ成分を除外した、暗号化用の鍵を生成し、この暗号化用の鍵に基づく公開鍵型の暗号文に対して、自身の分散秘密鍵に基づく共通鍵型のランダム成分及びノイズ成分を加算した暗号文を生成する。
したがって、暗号化装置1は、公開鍵暗号型の暗号化アルゴリズムにおけるm次元のノイズがユーザ数に応じてさらに累積されることで大きくなるところ、自身の秘密鍵に対応したノイズ成分を、共通鍵暗号型の暗号化アルゴリズムにおけるスカラのノイズ成分に置換することにより、全体としてノイズの大きさを減少させた。
この結果、暗号化装置1は、複数の分散鍵を用いた格子暗号による完全準同型演算システムにおいて、暗号文のサイズを減少させることができる。
【0042】
例えば、ThFHEなどの複数鍵を用いた完全準同型暗号方式による秘密計算システムにおいて、共通鍵暗号型の暗号化アルゴリズムと公開鍵暗号型の暗号化アルゴリズムとを融合させた本実施形態の暗号化アルゴリズムを適用することで、特にユーザ数が少なくなるほど、暗号文のサイズを減少させることができる。
【0043】
なお、これにより、例えばデータ送信側であるユーザが従来よりも軽量な暗号化アルゴリズムを利用できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。
【0044】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0045】
暗号化装置1による暗号化方法は、ソフトウェア又はハードウェア回路により実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0046】
1 暗号化装置
10 制御部
11 鍵生成部
12 暗号文生成部
20 記憶部