JP5944841B2 - 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム - Google Patents

秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム Download PDF

Info

Publication number
JP5944841B2
JP5944841B2 JP2013006913A JP2013006913A JP5944841B2 JP 5944841 B2 JP5944841 B2 JP 5944841B2 JP 2013006913 A JP2013006913 A JP 2013006913A JP 2013006913 A JP2013006913 A JP 2013006913A JP 5944841 B2 JP5944841 B2 JP 5944841B2
Authority
JP
Japan
Prior art keywords
secret sharing
values
unit
value
variance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013006913A
Other languages
English (en)
Other versions
JP2014138349A (ja
Inventor
大 五十嵐
大 五十嵐
亮 菊池
亮 菊池
千田 浩司
浩司 千田
浩気 濱田
浩気 濱田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013006913A priority Critical patent/JP5944841B2/ja
Publication of JP2014138349A publication Critical patent/JP2014138349A/ja
Application granted granted Critical
Publication of JP5944841B2 publication Critical patent/JP5944841B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、計算量型秘密分散技術およびマルチパーティ計算技術に関する。
秘密分散は、データを複数の分散値に変換し、一定個数以上の分散値を用いれば元のデータを復元でき、一定個数未満の分散値からは元のデータを一切復元できなくする技術である。分散値の総数をN、復元に必要な分散値の最小数をK(≦N)としたとき、N,Kの値に制限がない方式と制限がある方式とがある。
秘密分散の代表的な方式として、Shamir秘密分散方式がある(例えば、非特許文献1参照)。この方式の例では、pを素数、GF(p)を位数pの有限体として、値a∈GF(p)に対してf(0)=aとなるような、xを変数とするK-1次式f(x)から、aの分散値Si(a)=f(i)(i=1,…,N)を得る。n1,…,nKを互いに異なる1以上N以下の整数として以下の式(1)(2)の関係が成り立つため、任意の異なるK個の分散値からaを復元できる。
Figure 0005944841
また、秘密分散の一種として、計算量的安全性に基づき一定個数未満の分散値からは元のデータを一切復元できなくする、計算量型秘密分散方式がある(例えば、非特許文献2参照)。この方式の例では、値a=(a0,a1,…,aL-1)(a0,a1,…,aL-1∈GF(p))を共通鍵暗号を用いて暗号化し、当該暗号文c=(c0,c1,…,cK-1)(ただしc0,c1,…,cK-1∈GF(p))から決まる、xを変数とするK-1次式f(x)=c0+c1x+…+cK-1xK-1から、cの分散値Ti(c)=f(i)(i=1,…,N)を得る。また共通鍵は別途Shamir秘密分散方式などにより分散する。するとn1,…,nKを互いに異なる1以上N以下の整数として、f(x)のK個の点(ni,f(ni))(i=1,…,K)からf(x)の係数c0,c1,…,cK-1を一意に求めることができる。これはc0,c1,…,cK-1を変数とする以下の行列についてc0,c1,…,cK-1の解を求めればよい。
Figure 0005944841
そして共通鍵を復元して、cを復号すれば、aを得ることができる。
一方、秘密分散を要素技術としたマルチパーティ計算方式が提案されている。マルチパーティ計算は、各計算主体i(i=1,…,N)がそれぞれ値aiを入力として、他の計算主体に値aiを明かすことなく、特定の関数値Fi(a1,…,aN)を得る技術である。上述のShamir秘密分散方式では、値a,b∈GF(p)の分散値Si(a),Si(b)から、各計算主体の入力を明かさず、a+bの分散値Si(a+b)およびabの分散値Si(ab)を得る方法が知られている(非特許文献3参照)。すなわち、Shamir秘密分散方式であれば、加算および乗算のマルチパーティ計算ができる。なお、Si(a)+Si(b)=Si(a+b)の関係を満たす秘密分散を(加法)準同型性をもつ秘密分散と呼ぶ。
また、秘密分散の一種として、線形秘密分散方式がある。線形秘密分散方式は、元のデータa∈GF(p)についてすべての分散値がa∈GF(p)およびGF(p)上の乱数の線形結合で表現できる秘密分散と定義され、任意の線形秘密分散方式をマルチパーティ計算に拡張できることが知られている(非特許文献4参照)。
また、秘密分散の安全性を向上する機能として、復旧、再分散が可能であることが求められている。復旧とは、サーバが利用不能になるなどにより一部の分散値が失われた際に、少なくともK台のサーバが利用可能であれば、利用不能となったN-K個の分散値を利用可能なK個の分散値から秘匿性を失わずに再構築する方法である。
再分散とは、一旦秘密分散した分散値が一部漏洩した場合に、秘匿性を失わないように再度秘密分散する方法である。例えば、K-1個の分散値が漏洩した場合、あと1個の分散値が漏洩すると攻撃者はK個の分散値からaを復元可能となり秘匿性が破られてしまう。このような場合に再度秘密分散すれば、攻撃者が再分散する前のK-1個の分散値と再分散後の1個の分散値を保有したとしても、aの秘匿性は破られない。
さらに、秘密分散の安全性を向上する機能として、改ざん検知が可能であることが求められている。秘密分散の分散値のいずれかが改ざんされていると、その分散値を用いた秘匿計算の計算結果が不正な結果となる。秘匿計算を行う前に分散値の改ざんを検知することができれば計算結果の正当性を保証することができる。準同型性をもつ秘密分散による分散値は他の計算主体と通信することなく加算と乗算が可能であるため、改ざん検知に用いるチェックサムは加算と乗算のみから計算できる方式であると効率がよい。このようなチェックサムには非特許文献5に記載の技術がある。
非特許文献5に記載のチェックサムは、Fを体として、値a0,…,aN-1∈Fのチェックサムcを、乱数r∈Fを用いて、以下の式(3)により生成する。
Figure 0005944841
非特許文献5では、以下の式(4)によりチェックサムcを検証する。
Figure 0005944841
式(2)が0であれば、値a0,…,aN-1はいずれも改ざんされていないと判断する。式(2)が0以外であれば、値a0,…,aN-1は少なくとも1個が改ざんされていると判断する。
A.Shamir, "How to share a secret.", Commun. ACM 22(11), pp. 612-613, 1979. H.Krawczyk, "Secret sharing made short.", CRYPTO 1993, pp. 136-146, 1993. M. Ben-Or, S. Goldwasser, and A. Wigderson, "Completeness theorems for non-cryptographic fault-tolerant distributed computation (extended abstract)," STOC 1988, pp. 1-10, 1988. R. Cramer, I. Damgard, and U. Maurer, "General Secure Multi-Party Computation from any Linear Secret-Sharing Scheme", Eurocrypto 2000, pp. 316-334, 2000. S. Obana and T. Araki, "Almost optimum secret sharing schemes secure against cheating for arbitrary secret distribution", ASIACRYPT, Vol. 4284 of Lecture Notes in Computer Science, pp. 364-379, 2006.
Shamir秘密分散方式では、aおよびその各分散値のデータ量を一定とすると、分散値の総データ量がそれぞれaのデータ量のおよそN倍となる。復元に必要な分散値の総データ量はそれぞれaのデータ量のおよそK倍となる。分散値のデータ量の増加は通信時間や保存データの増大につながるため、できるだけ分散値のデータ量を抑えることが望ましい。
計算量型秘密分散方式は一般にTi(a)+Ti(b)≠Ti(a+b)となり、Shamir秘密分散方式のように各入力の加算のマルチパーティ計算を行う方法は自明でない。
この発明の目的は、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行い、復旧および再分散と改ざん検知が可能な秘密分散技術を提供することである。
上記の課題を解決するために、この発明の一態様による秘密分散システムは、データ分散装置とN台の分散データ保有装置を含む。この発明では、N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像である。
一態様によるデータ分散装置は、K個の鍵s1,…,sK∈Sを選択する鍵選択部と、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、情報a∈Rから擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部とを有する。
一態様による分散データ保有装置は、K個の分散値fsi(λ)から任意の秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から任意の秘密分散方式S0により復元値U0を復元する復元部と、復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する変換部と、分散値fsi(λ)が入力されると復元部と分散部と変換部により分散値ga(i)を生成し、分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を任意の秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部とを有する。
この発明の他の態様による秘密分散システムは、データ分散装置とN台の分散データ保有装置を含む。
他の態様によるデータ分散装置は、K個の鍵s1,…,sK∈Sを選択する鍵選択部と、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、情報a∈Rから擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、を有する。
他の態様による分散データ保有装置は、K個の分散値fsi(λ)から任意の秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から任意の秘密分散方式S0により復元値U0を復元する復元部と、復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する変換部と、分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を任意の秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部とを有する。
この発明の秘密分散技術によれば、計算量型秘密分散方式による分散値を任意の準同型性をもつ秘密分散方式による分散値に変換することができる。例えば、Shamir秘密分散方式など既存の多くの線形秘密分散方式は準同型性をもつ秘密分散方式であり、Shamir秘密分散方式など既存の線形秘密分散方式による分散値を用いてマルチパーティ計算を行う方法は既知である。そのため、準同型性をもつ秘密分散方式としてShamir秘密分散方式など既存の線形秘密分散方式を選択することで、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行うことができるようになる。また、暗号文cを分散する秘密分散方式S0として符号化効率がよい計算量型秘密分散方式を適用すれば分散値のサイズが小さくなるため、保存する分散値の総データ量および復元に必要な分散値の総データ量を減らすことができる。
また、この発明の秘密分散技術は復旧、再分散が可能となっており、一部の分散値が漏洩もしくは失われた場合でも対処することが可能である。そして、各操作においてチェックサムを検証することで分散値の改ざんを検知することができる。
秘密分散システムの機能構成を例示する図。 データ分散装置の機能構成を例示する図。 分散データ保有装置の機能構成を例示する図。 データ分散の処理フローを例示する図。 チェックサム生成の処理フローを例示する図。 分散データ変換の処理フローを例示する図。 データ復元の処理フローを例示する図。 分散データ復旧の処理フローを例示する図。 データ再分散の処理フローを例示する図。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[実施形態]
この発明の実施形態に係る秘密分散システムは、計算量型秘密分散方式による分散値を、準同型性をもつ任意の秘密分散方式による分散値に変換する。この秘密分散システムでは復旧および再分散が可能である。また、予め元データや分散値のチェックサムを生成しておき、変換、復元、復旧の各操作においてチェックサムを検証する。
以下の説明では、N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、jはj∈λの整数であり、i≠jであり、ζは互いに異なる1以上N以下の2K-1個の整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であるものとする。写像P(x)は、入力されたx∈Sに対して環Rの要素を出力するものである。同一の入力xには同一のP(x)が対応する。すなわち、写像P(x)は入力が等しければ出力も等しくなる、確定的な写像である。入力xとP(x)とは一対一で対応してもよいし、しなくてもよい。例えば、写像P(x)はxをシードとして環Rの要素を返す擬似乱数生成関数である。また例えば、写像P(x)はxを暗号化鍵として固定の平文に対して環Rに属する暗号文を出力する共通鍵暗号関数である。写像P(x)は関数であってもよいし、アルゴリズムであってもよい。
<構成>
図1を参照して、実施形態に係る秘密分散システム1の構成例を説明する。秘密分散システム1は、データ分散装置10とN(≧2)台の分散データ保有装置201〜20Nとネットワーク9を含む。データ分散装置10と分散データ保有装置201〜20Nは、ネットワーク9に接続される。ネットワーク9は、データ分散装置10と分散データ保有装置201〜20Nそれぞれとが相互に通信可能なように構成されていればよく、例えばインターネットやLAN、WANなどで構成することができる。また、データ分散装置10と分散データ保有装置201〜20Nそれぞれとは必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、データ分散装置10が出力する情報をUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から分散データ保有装置201〜20Nへオフラインで入力するように構成してもよい。
図2を参照して、秘密分散システム1に含まれるデータ分散装置10の構成例を説明する。データ分散装置10は、入力部110と鍵選択部120と擬似乱数生成部130と暗号化部140と鍵分散部150と暗号文分散部160と復元用生成部170と出力部180と鍵復元部310と暗号文復元部320と復号部330と復元用検証部340とを有する。
図3を参照して、秘密分散システム1に含まれる分散データ保有装置20nの構成例を説明する。分散データ保有装置20nは、入力部210と復元部220と分散部230と変換部240と変換用検証部250と出力部260と補間部410と復旧部420と復旧用検証部430と再分散部510と一貫性検証部520と再復元部530と変換用生成部540と復旧用生成部550と記憶部290とを有する。記憶部290は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)などの半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
<データ分散処理>
図4を参照して、データ分散装置10の実行するデータ分散処理の動作例を、実際に行われる手続きの順に従って説明する。
入力部110には、情報aが入力される(ステップS110)。情報aは環Rに含まれる値である。したがって、a∈Rと表すことができる。情報aの例は、動画ファイル、音声ファイル、テキストファイル、表ファイルなどである。情報aのデータ量は、例えば1メガバイト以上である。
鍵選択部120は、K個の鍵s1,…,sKを選択する(ステップS120)。鍵s1,…,sKは鍵空間Sに含まれる値である。したがって、s1,…,sK∈Sと表すことができる。鍵選択部120は、逐一ランダムにK個の鍵s1,…,sKを選択してもよいし、事前に生成されメモリに格納されている複数個の値から所定の規則に従ってK個の鍵s1,…,sKを選択してもよい。鍵s1,…,sKの鍵長は、必要な安全性と許容できる処理性能を確保できる長さに設定する。例えば、128〜256ビットとするのが一般的であるが、この限りではない。
K個の鍵s1,…,sKは擬似乱数生成部130に入力される。擬似乱数生成部130は、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することによりK個の擬似乱数r1,…,rKを生成する(ステップS130)。
情報aおよびK個の擬似乱数r1,…,rKは暗号化部140に入力される。暗号化部140は、擬似乱数r1,…,rKを用いて情報aから暗号文cを生成する(ステップS140)。具体的には、以下の式(5)に示す通り、情報aから擬似乱数r1,…,rKの総和を減算した結果を暗号文cとする。
Figure 0005944841
K個の鍵s1,…,sKは鍵分散部150に入力される。鍵分散部150は、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する(ステップS150)。秘密分散方式S1はどのような秘密分散方式であってもよいが、情報aの復号に用いる鍵を分散するため、より安全性の高い秘密分散方式を適用することが望ましい。例えば、Shamir秘密分散方式を適用することができる。Shamir秘密分散方式は、N,Kが2以上の整数であり、N≧Kであるとして、元のデータaをN個に分散した分散値のうちK個以上の分散値からは元のデータaを復元することができるが、K個未満の分散値からは元のデータaの情報を一切得ることができない。したがって、安全性が高い秘密分散方式である。
暗号文cは暗号文分散部160に入力される。暗号文分散部160は、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する(ステップS160)。秘密分散方式S0はどのような秘密分散方式であってもよいが、例えば非特許文献2に記載の方法を適用することができる。ただし非特許文献2に記載の方法を適用する場合には、環R上の値cをGF(p)上のK次ベクトルに変換する必要がある。これは例えば、素数pのビット長をL+1、環Rの要素のビット長をK×L以下とすれば、環Rの要素がK×Lビットになるように上位ビットを0でパディングし、値cをLビット毎に分割し、各Lビット分割値を0以上2L未満の整数としてGF(p)の元とすればよい。
情報aは復元用生成部170に入力される。復元用生成部170は、情報aを用いて復元用チェックサムcβを生成する(ステップS170)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、情報aを環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(6)により復元用チェックサムcβを生成する。
Figure 0005944841
次に、復元用生成部170は、復元用チェックサムcβを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3はどのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。
出力部180は、分散値fs1(n),…,fsK(n),fc(n),f(n)を出力する(ステップS180)。出力された各分散値fs1(n),…,fsK(n),fc(n),f(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。
<チェックサム生成処理>
図5を参照して、分散データ保有装置201,…,20Nの実行するチェックサム生成処理の動作例を、実際に行われる手続きの順に従って説明する。この実施形態では分散データ保有装置20iへ分散値fs1(i),…,fsK(i),fc(i),f(i)が入力された場合を説明する。チェックサム生成処理は少なくとも分散値fs1(i),…,fsK(i),fc(i),f(i)が入力された際には実行しなければならないが、以降は任意のタイミングで実行しても構わない。
入力部210には、データ分散装置10が出力した分散値fs1(i),…,fsK(i),fc(i),f(i)が入力される(ステップS210)。
分散値fs1(i),…,fsK(i),fc(i)は変換用生成部540へ入力される。変換用生成部540は、後述するデータ変換処理により、情報aの分散値ga(i)を生成する。続いて、生成した分散値ga(i)を用いて変換用チェックサムcαを生成する(ステップS540)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば、非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、分散値ga(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(7)により変換用チェックサムcαを生成することができる。
Figure 0005944841
次に、変換用生成部540は、変換用チェックサムcαを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は、復元用生成部170と同様に、どのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。
分散値fs1(i),…,fsK(i),fc(i),f(i)は復旧用生成部550へ入力される。復旧用生成部550は、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用チェックサムcγを生成する(ステップS550)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば、非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、分散値fs1(i),…,fsK(i),fc(i),f(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(8)により復旧用チェックサムcγを生成することができる。
Figure 0005944841
次に、復旧用生成部550は、復旧用チェックサムcγを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は、復元用生成部170と同様に、どのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。
出力部260は、分散値f(n),f(n)を出力する(ステップS260)。出力された各分散値f(n),f(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。また、分散値fs1(i),…,fsK(i),fc(i),f(i),f(i),f(i)を記憶部290へ記憶する。
<分散データ変換処理>
図6を参照して、分散データ保有装置201,…,20Nの実行する分散データ変換処理の動作例を、実際に行われる手続きの順に従って説明する。
以下に示すステップS211からS230までの処理は、N台の分散データ保有装置201〜20Nのすべてが行う必要はなく、任意に選択された少なくともK台の分散データ保有装置20λ(λ∈{1,…,N})が行えばよい。以下では分散データ保有装置20i(i∈λ)が行う処理を説明する。
入力部210には、K台の分散データ保有装置20λが記憶するそれぞれK個の分散値fsi(λ),fc(λ),f(λ)が入力される(ステップS211)。
K個の分散値fsi(λ)およびK個の分散値fc(λ)は復元部220に入力される。復元部220は、入力された分散値fsi(λ)から復元値Uiを生成し、分散値fc(λ)から復元値U0を生成する(ステップS220)。復元部220は、分散値fsi(λ)を任意の秘密分散方式S1により復元して値uiを生成する。続いて、Ui=P(ui)を計算することで復元値Uiを生成する。写像P(x)はデータ分散装置10の有する擬似乱数生成部130と同じ写像である。上述の通り、データ分散装置10の有する鍵分散部150により、分散値fsi(λ)には鍵siの分散値が設定されているため、同じ写像P(x)が鍵siを写した復元値Uiは擬似乱数riと等しくなる。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150が用いる秘密分散方式S1と同じ方式でなければならない。
また、復元部220は、分散値fc(λ)を任意の秘密分散方式S0により復元することで復元値U0を生成する。上述の通り、データ分散装置10の有する暗号文分散部160により、分散値fc(λ)には暗号文cの分散値が設定されているため、復元値U0は暗号文cと等しくなる。秘密分散方式S0はどのような秘密分散方式であってもよいが、データ分散装置10の有する暗号文分散部160が用いる秘密分散方式S0と同じ方式でなければならない。
復元値U0および復元値Uiは分散部230に入力される。分散部230は、復元値U0および復元値Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する(ステップS230)。準同型性とは2つの値a,bの分散値fa(i),fb(i)およびa+bの分散値fa+b(i)について、fa(i)+fb(i)=fa+b(i)が成り立つことをいう。秘密分散方式S2は準同型性をもつ秘密分散方式であればどのような秘密分散方式でもよい。例えば、Shamir秘密分散方式など既存の線形秘密分散方式を適用することができる。
以下に示すステップS212からS261までの処理は、N台の分散データ保有装置201〜20Nのすべてで行う。以下では分散データ保有装置20i(i∈{1,…,N})が行う処理を説明する。。
入力部210には、K台の分散データ保有装置20λの有する分散部230が生成したK個の分散値fU1(i),…,fUK(i)が入力される(ステップS212)。
復元部220の生成した分散値fU0(i)と入力部210から入力されたfU1(i),…,fUK(i)は変換部240に入力される。変換部240は、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する(ステップS240)。具体的には、以下の式(9)に示す通り、分散値fU0(i),…,fUK(i)の総和を分散値ga(i)とする。
Figure 0005944841
上述の通り、fU0(i)は準同型性をもつ秘密分散方式S2により暗号文cを分散した分散値であり、fU1(i),…,fUK(i)は準同型性をもつ秘密分散方式S2により擬似乱数r1,…,rKをそれぞれ分散した分散値である。したがって、準同型性の性質により、fU0(i),…,fUK(i)の総和は、暗号文cと擬似乱数r1,…,rKの総和を加算した値を秘密分散方式S2により分散した分散値となる。暗号文cは情報aから擬似乱数r1,…,rKの総和を減算した値であるため、この分散値ga(i)は、情報aを秘密分散方式S2により分散した分散値と等しい。
分散値ga(i)およびK個の分散値f(λ)は変換用検証部250に入力される。変換用検証部250は、分散値ga(i)を用いて変換用検証値c’αを生成する。生成する検証値は変換用生成部540で生成したチェックサムに対応した検証値である。例えば、変換用生成部540で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、分散値ga(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(10)により変換用検証値c’αを生成することができる。
Figure 0005944841
また、変換用検証部250は、秘密分散方式S3によりK個の分散値f(λ)から変換用チェックサムcαを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、変換用生成部540が用いる秘密分散方式S3と同じ方式でなければならない。
そして、変換用検証部250は、変換用検証値c’αと変換用チェックサムcαとを比較して、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する(ステップS250)。変換用検証部250は、c’α=cαであれば分散値fs1(λ),…,fsK(λ),fc(λ)はいずれも改ざんされていないと判断する。c’α≠cαであれば分散値fs1(λ),…,fsK(λ),fc(λ)の少なくとも1個が改ざんされたと判断する。
出力部260は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は分散値ga(i)を出力する(ステップS261)。分散値ga(i)を記憶部290へ記憶しておき、要求に応じて記憶部290から分散値ga(i)を読み出して出力してもよい。
<データ復元処理>
図7を参照して、データ分散装置10の実行するデータ復元処理の動作例を、実際に行われる手続きの順に従って説明する。
入力部110には、K台の分散データ保有装置20λが記憶するそれぞれK個の分散値fs1(λ),…,fsK(λ),fc(λ),f(λ)が入力される(ステップS111)。
それぞれK個の分散値fs1(λ),…,fsK(λ)は鍵復元部310に入力される。鍵復元部310は、秘密分散方式S1により分散値fs1(λ),…,fsK(λ)からK個の鍵s1,…,sKを復元する(ステップS310)。秘密分散方式S1はどのような秘密分散方式であってもよいが、鍵分散部150が用いる秘密分散方式S1と同じ方式でなければならない。
K個の鍵s1,…,sKは擬似乱数生成部130に入力される。擬似乱数生成部130は、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することによりK個の擬似乱数r1,…,rKを生成する(ステップS131)。
K個の分散値fc(λ)は暗号文復元部320に入力される。暗号文復元部320は、秘密分散方式S0により分散値fc(λ)から暗号文cを復元する(ステップS320)。秘密分散方式S0はどのような秘密分散方式であってもよいが、暗号文分散部160が用いる秘密分散方式S0と同じ方式でなければならない。
暗号文cおよびK個の擬似乱数r1,…,rKは復号部330に入力される。復号部330は、擬似乱数r1,…,rKを用いて暗号文cから情報aを復号する(ステップS330)。具体的には、以下の式(11)に示す通り、暗号文cに擬似乱数r1,…,rKの総和を加算した結果を情報aとする。
Figure 0005944841
情報aおよびK個の分散値f(λ)は復元用検証部340に入力される。復元用検証部340は、情報aを用いて復元用検証値c’βを生成する。生成する検証値は復元用生成部170で生成したチェックサムに対応した検証値である。例えば、復元用生成部170で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、情報aを環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(12)により復元用検証値c’βを生成することができる。
Figure 0005944841
また、復元用検証部340は、秘密分散方式S3によりK個の分散値f(λ)から復元用チェックサムcβを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、復元用生成部170が用いる秘密分散方式S3と同じ方式でなければならない。
そして、復元用検証部340は、復元用検証値c’βと復元用チェックサムcβとを比較して、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する(ステップS340)。復元用検証部340は、c’β=cβであれば分散値fs1(λ),…,fsK(λ),fc(λ)はいずれも改ざんされていないと判断する。c’β≠cβであれば分散値fs1(λ),…,fsK(λ),fc(λ)の少なくとも1個が改ざんされたと判断する。
出力部180は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は復元した情報aを出力する(ステップS181)。
<分散データ復旧処理>
図8を参照して、秘密分散システム1の実行する分散データ復旧処理の動作例を、実際に行われる手続きの順に従って説明する。この実施形態では分散データ保有装置20iが故障等により利用不可となり、保有する分散値fs1(i),…,fsK(i),fc(i),f(i)が失われた場合を前提とする。
以下に示すステップS410からS411までの処理は、任意に選択された少なくともK台の分散データ保有装置20λ(λ∈{1,…,N})が行えばよい。以下では分散データ保有装置20j(j∈λ;i≠j)が行う処理を説明する。。
記憶部290に記憶されている分散値fs1(j),…,fsK(j),fc(j),f(j)が補間部410に入力される。補間部410は、分散値fs1(j),…,fsK(j),fc(j),f(j)を秘密分散方式S4により分散し、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]を生成する(ステップS410)。秘密分散方式S4はどのような秘密分散方式であってもよく、例えば、Shamir秘密分散方式を用いることができる。
次に、補間部410は、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]を補間して再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]を計算する(ステップS411)。補間の方法はどのような補間方法であってもよく、例えば、ラグランジュ補間により行うことができる。具体的には以下のように補間を行う。まず、ラグランジュ補間のための係数αijを求める。係数αijは、分散値fs1(j),…,fsK(j),fc(j),f(j)それぞれについて、ajをいずれかの分散値として、以下の式(13)により求める。
Figure 0005944841
次に、再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]は、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]それぞれについて、[ai]を補間する再分散値、[aj]を[ai]に対応する再分散値として、以下の式(14)により求める。
Figure 0005944841
以下に示すステップS420からS430までの処理は、分散データ保有装置20i(i∈λ;i≠j)のみが行う。
K台の分散データ保有装置20λが出力したそれぞれK個の再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]とK個の分散値f(λ)とは入力部210を介して復旧部420へ入力される。復旧部420は、秘密分散方式S4により再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]から分散値fs1(i),…,fsK(i),fc(i),f(i)を復元する(ステップS420)。秘密分散方式S4はどのような秘密分散方式であってもよいが、補間部410が用いる秘密分散方式S4と同じ方式でなければならない。
分散値fs1(i),…,fsK(i),fc(i),f(i)とK個の分散値f(λ)は復旧用検証部430に入力される。復旧用検証部430は、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用検証値c’γを生成する。生成する検証値は復旧用生成部550で生成したチェックサムに対応した検証値である。例えば、復旧用生成部550で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、分散値fs1(i),…,fsK(i),fc(i),f(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(15)により復旧用検証値c’γを生成することができる。
Figure 0005944841
また、復旧用検証部430は、秘密分散方式S3によりK個の分散値f(λ)から復旧用チェックサムcγを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、復旧用生成部550が用いる秘密分散方式S3と同じ方式でなければならない。
そして、復旧用検証部430は、復旧用検証値c’γと復旧用チェックサムcγとを比較して、分散値fs1(i),…,fsK(i),fc(i),f(i)のいずれかが改ざんされたか否かを検証する(ステップS430)。復旧用検証部430は、c’γ=cγであれば分散値fs1(i),…,fsK(i),fc(i),f(i)はいずれも改ざんされていないと判断する。c’γ≠cγであれば分散値fs1(i),…,fsK(i),fc(i),f(i)の少なくとも1個が改ざんされたと判断する。
出力部260は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は分散値fs1(i),…,fsK(i),fc(i),f(i)を記憶部290へ記憶する。
<データ再分散処理>
図9を参照して、秘密分散システム1の実行するデータ再分散処理の動作例を、実際に行われる手続きの順に従って説明する。データ再分散処理は少なくとも2K-1台の分散データ保有装置20nが利用可能となっている必要がある。故障等により利用可能な分散データ保有装置20nが2K-1台未満となっている場合には、データ再分散処理に先立って、上述の分散データ復旧処理により2K-1台以上の分散データ保有装置20nを利用可能としておく。以降の説明では、2K-1台の分散データ保有装置20ζ(ζ∈{1,…,N})が利用可能となっているものとする。データ再分散処理は、2K-1台の分散データ保有装置20ζが行う。以下では、分散データ保有装置20i(i∈ζ)が行う処理を説明する。
記憶部290に記憶されている分散値fs1(i),…,fsK(i),f(i)が再分散部510に入力される。再分散部510は、分散値fs1(i),…,fsK(i),f(i)を秘密分散方式S1により分散して再分散値[fs1(i)],…,[fsK(i)],[f(i)]を生成する(ステップS510)。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150の用いる秘密分散方式S1と同じ方式でなければならない。
再分散部510が秘密分散する際に用いる乱数は、鍵分散部150が秘密分散する際に用いた乱数と異なるものとする。例えば、rα1,…,rαKを環R上のK個の乱数(rα1,…,rαK∈R)とし、rβ1,…,rβKを環R上のK個の乱数(rβ1,…,rβK∈R)とし、乱数rα1,…,rαK,rβ1,…,rβKが相異なる乱数であるとして、鍵分散部150が乱数rα1,…,rαK∈Rを用いてShamir秘密分散により鍵s1,…,sKをそれぞれN個の分散値fs1(n),…,fsK(n)へ分散したとする。この場合、再分散部510は、乱数rβ1,…,rβK∈Rを用いてShamir秘密分散により分散値fs1(i),…,fsK(i)をそれぞれ2K-1個の再分散値[fs1(i)],…,[fsK(i)],[f(i)]へ分散すればよい。
再分散値[fs1(i)],…,[fsK(i)],[f(i)]は出力部260を介して出力され、それぞれ2K-1台の分散データ保有装置20ζにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。
2K-1台の分散データ保有装置20ζの有する再分散部510が出力する再分散値[fs1(ζ)],…,[fsK(ζ)],[f(ζ)]は入力部210を介して一貫性検証部520へ入力される。一貫性検証部520は、再分散値[fs1(ζ)],…,[fsK(ζ)],[f(ζ)]を補間して再分散値[fs1(i)]’,…,[fsK(i)]’,[f(i)]’を生成する(ステップS520)。補間の方法はどのような補間方法であってもよく、例えば、ラグランジュ補間により行うことができる。補間して生成した再分散値[fs1(i)]’,…,[fsK(i)]’,[f(i)]’と再分散部510が生成した再分散値[fs1(i)],…,[fsK(i)],[f(i)]とをそれぞれ比較し、分散値fs1(ζ),…,fsK(ζ),f(ζ)の改ざん有無を検証する。k=1,…,Kのすべてについて[fsk(i)]’=[fsk(i)]かつ[f(i)]’=[f(i)]であれば、分散値fs1(ζ),…,fsK(ζ),f(ζ)はいずれも改ざんされていないと判断する。いずれかのkについて[fsk(i)]’≠[fsk(i)]もしくは[f(i)]’≠[f(i)]であれば、少なくとも1個の分散値fs1(ζ),…,fsK(ζ),f(ζ)が改ざんされたと判断する。
2K-1台の分散データ保有装置20ζがすべて改ざんなしと判断した場合、一貫性検証が成功したものとする。いずれかの分散データ保有装置20z(z∈ζ)が改ざんありと判断した場合、一貫性検証が失敗したものとする。
一貫性検証が成功した場合には、再分散値[fs1(i)],…,[fsK(i)],[f(i)]が再復元部530に入力される。再復元部530は、秘密分散方式S1により乱数rα1,…,rαK∈Rを用いて再分散値[fs1(i)],…,[fsK(i)],[f(i)]を復元することで、新たな分散値f’s1(i),…,f’sK(i),f’(i)を生成する(ステップS530)。これにより、新たな分散値f’s1(i),…,f’sK(i),f’(i)は鍵s1,…,sKを乱数rβ1,…,rβK∈Rを用いて秘密分散方式S1により分散した分散値と等しくなる。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150の用いる秘密分散方式S1と同じ方式でなければならない。
新たな分散値f’s1(i),…,f’sK(i),f’(i)は復旧用生成部550へ入力される。復旧用生成部550は、分散値f’s1(i),…,f’sK(i),fc(i),f’(i)を用いて新たな復旧用チェックサムc’γを生成する(ステップS550)。次に、復旧用生成部550は、新たな復旧用チェックサムc’γを秘密分散方式S3によりN個の分散値f’(n)に分散する。
出力部260は、分散値f’(n)を出力する(ステップS262)。出力された分散値f’(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。また、分散データ保有装置201〜20Nは分散値f’(i)を記憶部290へ記憶する。
<機密性>
分散データ保有装置201〜20Nが得る情報aに関する情報は、準同型性をもつ秘密分散方式S2による分散値であり、各分散値の生成に用いる乱数が互いに独立であれば、この実施形態の機密性は、利用する準同型性をもつ秘密分散方式S2の機密性に帰着される。また、K-1台の分散データ保有装置20iは情報aの分散値である復元値Uiを得るが、K個の復元値U1,…,UKすべてを得られない限り情報aを得ることはできない。そのため、この実施形態の機密性は、結局、利用する秘密分散方式S2の機密性に帰着される。
<効果>
この実施形態の秘密分散システムは、計算量型秘密分散方式による情報aの分散値fa(1),…,fa(N)を、任意の準同型性をもつ秘密分散方式S2による分散値ga(1),…,ga(N)に変換することができる。
準同型性をもつ秘密分散方式としては、例えば、Shamir秘密分散方式など既存の線形秘密分散方式が挙げられる。Shamir秘密分散方式など既存の線形秘密分散方式を用いてマルチパーティ計算を行う方法は既知であるため、秘密分散方式S2としてShamir秘密分散方式など既存の任意の線形秘密分散方式を選択することで、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行うことができるようになる。
例えば、非特許文献2に記載の計算量型秘密分散方式は分散値のサイズの下限が元のデータの1/Kとなるため、暗号文cを分散する秘密分散方式S0として非特許文献2に記載の計算量型秘密分散方式を適用すれば、分散値のサイズが元のデータと同程度となるShamir秘密分散方式と比較して、分散値を保存するために必要となる記憶容量を削減することができる。
また、この発明の秘密分散技術は復旧、再分散が可能となっており、一部の分散値が漏洩もしくは失われた場合でも対処することが可能であり、安全性が向上している。
そして、変換、復元、復旧の各操作においてチェックサムを検証することで分散値の改ざんを検知することができるため、各操作の正当性が保証される。
[変形例1]
復元用チェックサムcβは分散データ保有装置201,…,20Nそれぞれが生成してもよい。変換用チェックサムcαはデータ分散装置10が生成してもよい。復旧用チェックサムcγはデータ分散装置10が生成してもよい。これらの組み合わせは任意であり、例えば、すべてのチェックサムcα,cβ,cγをデータ分散装置10が生成してもよいし、すべてのチェックサムcα,cβ,cγを分散データ保有装置201,…,20Nそれぞれが生成してもよい。また、データ分散装置10が復元用チェックサムcβと変換用チェックサムcαを生成し、分散データ保有装置201,…,20Nそれぞれが復旧用チェックサムcγを生成してもよい。
復元用チェックサムcβを分散データ保有装置201,…,20Nが生成する場合には、分散データ保有装置201,…,20Nは復元用生成部171を含み、データ分散装置10は復元用生成部170を含まない。分散データ保有装置201,…,20Nはチェックサム生成処理において以下のように復元用チェックサムcβを生成すればよい。
入力部210から入力された分散値fs1(i),…,fsK(i),fc(i)は復元用生成部171に入力される。復元用生成部171は、上述したデータ変換処理により、情報aの分散値ga(i)を生成する。続いて、任意のマルチパーティ計算方法により、分散値ga(i)を用いて復元用チェックサムcβの分散値f(i)を生成する。チェックサムの生成方法は復元用生成部170と同様である。マルチパーティ計算方法は例えば、非特許文献3や非特許文献4に記載の方法を用いることができる。分散値ga(i)は準同型性をもつ秘密分散方式S2による分散値であるので、加算と乗算からなるチェックサムを他の計算主体と通信することなく秘匿計算を行うことができる。したがって、分散値ga(i)を用いて計算したチェックサムは、情報aを用いて計算した復元用チェックサムcβの分散値となる。
変換用チェックサムcαをデータ分散装置10が生成する場合には、データ分散装置10は変換用生成部541を含み、分散データ保有装置201,…,20Nは変換用生成部540を含まない。データ分散装置10はデータ分散処理において以下のように変換用チェックサムcαを生成すればよい。
入力部110から入力された情報aは変換用生成部541に入力される。変換用生成部541は、情報aを任意の準同型性をもつ秘密分散方式S2によりN個の分散値ga(n)に分散する。続いて、i=1,…,Nごとに、分散値ga(i)を用いて変換用チェックサムcαを生成する。変換用チェックサムcαの生成方法は変換用生成部540と同様である。変換用生成部541は、変換用チェックサムcαを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は変換用生成部540と同様である。
復旧用チェックサムcγをデータ分散装置10が生成する場合には、データ分散装置10は復旧用生成部551を含み、分散データ保有装置201,…,20Nは復旧用生成部550を含まない。データ分散装置10はデータ分散処理において以下のように復旧用チェックサムcγを生成すればよい。
鍵分散部150の出力する分散値fs1(n),…,fsK(n)と暗号文分散部160の出力する分散値fc(n)と復元用生成部170もしくは復元用生成部171の出力する分散値f(n)は復旧用生成部551へ入力される。復旧用生成部551は、i=1,…,Nごとに、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用チェックサムcγを生成する。復旧用チェックサムcγの生成方法は復旧用生成部550と同様である。復旧用生成部551は、復旧用チェックサムcγを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は復旧用生成部550と同様である。
[変形例2]
変換用検証部250は、復元用チェックサムcβを用いて改ざん検知を行ってもよい。この場合には、分散データ保有装置201,…,20Kは変換用生成部540を備えず、変換用検証部250は、以下のように改ざん検知を行えばよい。
変換用検証部250は、上述したデータ変換処理により、情報aの分散値ga(i)を生成する。次に、変換用検証部250は、任意のマルチパーティ計算方法により、分散値ga(i)を用いて情報aの復元用検証値c’βを生成する。マルチパーティ計算方法は例えば、非特許文献3や非特許文献4に記載の方法を用いることができる。分散値ga(i)は準同型性をもつ秘密分散方式S2による分散値であるので、加算と乗算からなる検証値を他の計算主体と通信することなく秘匿計算を行うことができる。したがって、分散値ga(i)を用いて計算した検証値は、情報aを用いて計算した復元用検証値c’βの分散値となる。
このように構成することで、秘密分散システム1は復元用チェックサムcβと変換用チェックサムcαとの両方を保持する必要がなく、必要とされるリソースを削減することができる。
[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 秘密分散システム
9 ネットワーク
10 データ分散装置
20 分散データ保有装置
110 入力部
120 鍵選択部
130 擬似乱数生成部
140 暗号化部
150 鍵分散部
160 暗号文分散部
170 復元用生成部
180 出力部
210 入力部
220 復元部
230 分散部
240 変換部
250 変換用検証部
260 出力部
310 鍵復元部
320 暗号文復元部
330 復号部
340 復元用検証部
410 補間部
420 復旧部
430 復旧用検証部
510 再分散部
520 一貫性検証部
530 再復元部
540 変換用生成部
550 復旧用生成部

Claims (11)

  1. データ分散装置とN台の分散データ保有装置を含む秘密分散システムであって、
    N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    前記データ分散装置は、
    K個の鍵s1,…,sK∈Sを選択する鍵選択部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、
    情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、
    前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、
    前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、
    を有し、
    前記分散データ保有装置は、
    K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元部と、
    前記復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、
    K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換部と、
    前記分散値fsi(λ)が入力されると前記復元部と前記分散部と前記変換部により前記分散値ga(i)を生成し、前記分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、
    前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部と、
    を有する秘密分散システム。
  2. データ分散装置とN台の分散データ保有装置を含む秘密分散システムであって、
    N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    前記データ分散装置は、
    K個の鍵s1,…,sK∈Sを選択する鍵選択部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、
    情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、
    前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、
    前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、
    前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、
    を有し、
    前記分散データ保有装置は、
    K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元部と、
    前記復元値U0,Uiを前記秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、
    K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換部と、
    前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部と、
    を有する秘密分散システム。
  3. 請求項1または2に記載の秘密分散システムであって、
    前記データ分散装置は、
    前記情報aを用いて復元用チェックサムcβを生成し、前記秘密分散方式S3によりそれぞれN個の分散値f(n)に分散する復元用生成部と、
    前記秘密分散方式S1により前記分散値fsi(λ)から鍵s1,…,sKを復元する鍵復元部と、
    前記秘密分散方式S0により前記分散値fc(λ)から暗号文cを復元する暗号文復元部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより生成した擬似乱数r1,…,rKを用いて前記暗号文cから前記情報aを復号する復号部と、
    前記情報aを用いて生成した復元用検証値c’βとK個の分散値f(λ)を前記秘密分散方式S3により復元した復元用チェックサムcβとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する復元用検証部と、
    を有する秘密分散システム。
  4. 請求項1または2に記載の秘密分散システムであって、
    前記データ分散装置は、
    前記秘密分散方式S1により前記分散値fsi(λ)から鍵s1,…,sKを復元する鍵復元部と、
    前記秘密分散方式S0により前記分散値fc(λ)から暗号文cを復元する暗号文復元部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより生成した擬似乱数r1,…,rKを用いて前記暗号文cから前記情報aを復号する復号部と、
    前記情報aを用いて生成した復元用検証値c’βとK個の分散値f(λ)を前記秘密分散方式S3により復元した復元用チェックサムcβとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する復元用検証部と、
    を有し、
    前記分散データ保有装置は、
    前記分散値fsi(λ)が入力されると前記復元部と前記分散部と前記変換部により前記分散値ga(i)を生成し、前記分散値ga(i)を用いて復元用チェックサムcβを前記秘密分散方式S3により分散した分散値f(i)を生成する復元用生成部と、
    を有する秘密分散システム。
  5. 請求項1から4のいずれかに記載の秘密分散システムであって、
    jはj∈λの整数であり、i≠jであり、
    前記分散データ保有装置は、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて復旧用チェックサムcγを生成し、前記秘密分散方式S3によりN個の分散値f(n)に分散する復旧用生成部と、
    前記分散値fs1(i),…,fsK(i),fc(i)を前記秘密分散方式S1により分散した分散値[fs1(i)],…,[fsK(i)],[fc(i)]を補間して分散値[fs1(j)],…,[fsK(j)],[fc(j)]を生成し、前記分散値[fs1(j)],…,[fsK(j)],[fc(j)]を前記秘密分散方式S1により復元して分散値fs1(j),…,fsK(j),fc(j)を生成する復旧部と、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて生成した復旧用検証値c’γとK個の分散値f(λ)を前記秘密分散方式S3により復元した復旧用チェックサムcγとを比較することで、前記分散値fs1(j),…,fsK(j),fc(j)のいずれかが改ざんされたか否かを検証する復旧用検証部と、
    を有する秘密分散システム。
  6. 請求項1から4のいずれかに記載の秘密分散システムであって、
    jはj∈λの整数であり、i≠jであり、
    前記データ分散装置は、
    前記分散値fs1(n),…,fsK(n),fc(n)を用いて復旧用チェックサムcγを生成し、前記秘密分散方式S3によりN個の分散値f(n)に分散する復旧用生成部と、
    を有し、
    前記分散データ保有装置は、
    前記分散値fs1(i),…,fsK(i),fc(i)を前記秘密分散方式S1により分散した分散値[fs1(i)],…,[fsK(i)],[fc(i)]を補間して分散値[fs1(j)],…,[fsK(j)],[fc(j)]を生成し、前記分散値[fs1(j)],…,[fsK(j)],[fc(j)]を前記秘密分散方式S1により復元して分散値fs1(j),…,fsK(j),fc(j)を生成する復旧部と、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて生成した復旧用検証値c’γとK個の分散値f(λ)を前記秘密分散方式S3により復元した復旧用チェックサムcγとを比較することで、前記分散値fs1(j),…,fsK(j),fc(j)のいずれかが改ざんされたか否かを検証する復旧用検証部と、
    を有する秘密分散システム。
  7. 請求項1から6のいずれかに記載の秘密分散システムであって、
    ζは互いに異なる1以上N以下の2K-1個の整数であり、rα1,…,rαKは前記鍵分散部が前記秘密分散方式S1で用いた乱数であり、rβ1,…,rβKはそれぞれrα1,…,rαKのいずれとも異なる乱数であり、
    前記分散データ保有装置は、
    前記分散値fs1(i),…,fsK(i)を前記乱数rβ1,…,rβKを用いて前記秘密分散方式S1により再分散値[fs1(i)],…,[fsK(i)]に分散する再分散部と、
    再分散値[fs1(ζ)],…,[fsK(ζ)]を補間して生成した分散値[fs1(i)]’,…,[fsK(i)]’と前記分散値[fs1(i)],…,[fsK(i)]とを比較することで、分散値fs1(ζ),…,fsK(ζ)のいずれかが改ざんされたか否かを検証する一貫性検証部と、
    前記再分散値[fs1(i)],…,[fsK(i)]を前記乱数rα1,…,rαKを用いて前記秘密分散方式S1により復元し、分散値f’s1(i),…,f’sK(i)を生成する再復元部と、
    を有する秘密分散システム。
  8. 請求項1から7のいずれかに記載の秘密分散システムにおいて用いられる前記分散データ保有装置。
  9. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    鍵選択部が、K個の鍵s1,…,sK∈Sを選択する鍵選択ステップと、
    擬似乱数生成部が、前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成ステップと、
    暗号化部が、情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化ステップと、
    鍵分散部が、前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散ステップと、
    暗号文分散部が、前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散ステップと、
    復元部が、K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元ステップと、
    分散部が、前記復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散ステップと、
    変換用生成部が、前記分散値fsi(λ)が入力されると前記復元ステップと前記分散ステップと前記変換ステップにより前記分散値ga(i)を生成し、前記分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成ステップと、
    変換部が、K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換ステップと、
    変換用検証部が、前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証ステップと、
    を含む秘密分散方法。
  10. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    鍵選択部が、K個の鍵s1,…,sK∈Sを選択する鍵選択ステップと、
    擬似乱数生成部が、前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成ステップと、
    暗号化部が、情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化ステップと、
    鍵分散部が、前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散ステップと、
    暗号文分散部が、前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散ステップと、
    変換用生成部が、前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりそれぞれN個の分散値f(n)に分散する変換用生成ステップと、
    復元部が、K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元ステップと、
    分散部が、前記復元値U0,Uiを前記秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散ステップと、
    変換部が、K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換ステップと、
    変換用検証部が、前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証ステップと、
    を含む秘密分散方法。
  11. 請求項8に記載の分散データ保有装置としてコンピュータを機能させるためのプログラム。
JP2013006913A 2013-01-18 2013-01-18 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム Active JP5944841B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013006913A JP5944841B2 (ja) 2013-01-18 2013-01-18 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013006913A JP5944841B2 (ja) 2013-01-18 2013-01-18 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2014138349A JP2014138349A (ja) 2014-07-28
JP5944841B2 true JP5944841B2 (ja) 2016-07-05

Family

ID=51415627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013006913A Active JP5944841B2 (ja) 2013-01-18 2013-01-18 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP5944841B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950144B2 (en) * 2014-12-26 2021-03-16 Nippon Telegraph And Telephone Corporation Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program
JP5860556B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 不整合検知方法、不整合検知システム、不整合検知装置、およびプログラム
JP5860557B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JPWO2016129363A1 (ja) * 2015-02-12 2018-01-11 学校法人東京理科大学 分散装置、演算・復元装置、及びプログラム
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
JP2018005089A (ja) * 2016-07-06 2018-01-11 学校法人東京理科大学 分散値更新装置及び分散値更新プログラム、分散値計算装置及び分散値計算プログラム、分散値検証装置及び分散値検証プログラム
CN112000978B (zh) * 2019-06-19 2023-12-19 华控清交信息科技(北京)有限公司 隐私数据的输出方法、数据处理系统及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
US8214647B2 (en) * 2006-06-30 2012-07-03 Nec Corporation Distributed information generator and restoring device

Also Published As

Publication number Publication date
JP2014138349A (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
JP5885840B2 (ja) 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP5944841B2 (ja) 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム
CN107210006B (zh) 不一致检测方法、检测系统、检测装置以及记录介质
Kumar et al. Secure storage and access of data in cloud computing
JP6009697B2 (ja) 秘密計算方法、秘密計算システム、ソート装置及びプログラム
US9438423B2 (en) Encryption device, encryption method, and information processing device
KR102423885B1 (ko) 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
JP5957095B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
CN110635909B (zh) 一种基于属性的抗合谋攻击的代理重加密方法
JP5299286B2 (ja) 分散情報生成装置、復元装置、検証装置及び秘密情報分散システム
CN112118245B (zh) 密钥管理方法、系统和设备
US11431489B2 (en) Encryption processing system and encryption processing method
CN110169010A (zh) 同态运算装置、加密系统和同态运算程序
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators
JP5381981B2 (ja) 分散情報生成装置
US11811741B2 (en) Information processing system and information processing method
Singh et al. Security of Data with 3DES & Watermarking Algorithm
JP5752751B2 (ja) 復号システム、端末装置、署名システム、その方法、及びプログラム
Cheng et al. Secure Computing through Homomorphic Encryption on a Peer-Servicing Public Cloud Computing Platform
JP2020046558A (ja) 生成装置、復元装置、送信装置、受信装置、生成プログラム、復元プログラム、送信プログラム、及び受信プログラム
Prakash Confidential Data Dispersion using Thresholding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160414

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160526

R150 Certificate of patent or registration of utility model

Ref document number: 5944841

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150