(57)【特許請求の範囲】
【請求項１】
3台の分散値変換装置p0, p1, p2を含む分散値変換システムであって、
i=0, 1とし、i'∈{0, 1}とし、i≠i'とし、j=2とし、
上記分散値変換装置piは、
上記分散値変換装置pi'と乱数ri, ri'を共有する乱数生成部と、
情報aのShamir秘密分散値[a]iを加法的秘密分散値<a>iへ変換する変換部と、
上記加法的秘密分散値<a>iから上記乱数riを減算した値aiを計算して分散値変換装置pjへ送信するサブシェア生成部と、
上記乱数riとri'とを加算した値ajを計算し、複製型秘密分散値{a}i=(ai, aj)を生成するシェア生成部と、
を含み、
上記分散値変換装置pjは、
上記値ai, ai'を受信するサブシェア生成部と、
複製型秘密分散値{a}j=(ai, ai')を生成するシェア生成部と、
を含む分散値変換システム。
【請求項２】
i=0, 1とし、i'∈{0, 1}とし、i≠i'とし、j=2とし、
他の分散値変換装置pi'と乱数ri, ri'を共有する乱数生成部と、
情報aのShamir秘密分散値[a]iを加法的秘密分散値<a>iへ変換する変換部と、
上記加法的秘密分散値<a>iから上記乱数riを減算した値aiを計算して他の分散値変換装置p2へ送信するサブシェア生成部と、
上記乱数riとri'とを加算した値ajを計算し、複製型秘密分散値{a}i=(ai, aj)を生成するシェア生成部と、
を含む分散値変換装置。
【請求項３】
i=0, 1とし、i'∈{0, 1}とし、i≠i'とし、j=2とし、
分散値変換装置piが、他の分散値変換装置pi'と乱数ri, ri'を共有する乱数生成ステップと、
上記分散値変換装置piが、情報aのShamir秘密分散値[a]iを加法的秘密分散値<a>iへ変換する変換ステップと、
上記分散値変換装置piが、上記加法的秘密分散値<a>iから上記乱数riを減算した値aiを計算して分散値変換装置pjへ送信する第一サブシェア生成ステップと、
上記分散値変換装置pjが、上記値ai, ai'を受信する第二サブシェア生成ステップと、
上記分散値変換装置piが、上記乱数riとri'とを加算した値a2を計算し、複製型秘密分散値{a}i=(ai, aj)を生成する第一シェア生成ステップと、
上記分散値変換装置pjが、複製型秘密分散値{a}j=(ai, ai')を生成する第二シェア生成ステップと、
を含む分散値変換方法。
【請求項４】
請求項２に記載の分散値変換装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、秘密分散技術に関し、特に、ある秘密分散の分散値を他の秘密分散の分散値へ変換する技術に関する。
【背景技術】
【０００２】
秘密分散とは、データを複数に分割した分散値に変換し、一定個数以上のシェアを用いれば元のデータを復元でき、一定個数未満のシェアからは元のデータを一切復元できなくする技術である。なお、秘密分散した複数個の値の組を分散値と呼び、分散値のうちの１個の断片をシェアと呼ぶ。
【０００３】
秘密分散の例としては、Shamir秘密分散（Shamir's Secret Sharing）や複製型秘密分散（Replicated Secret Sharing）が挙げられる。非特許文献１には、複製型秘密分散の分散値をShamir秘密分散の分散値へ変換する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】R. Cramer, I. Damgard, and Y. Ishai, “Share Conversion, Pseudorandom Secret-Sharing and Applications to Secure Computation”, TCC 2005, vol. 3378 of Lecture Notes in Computer Science, pp. 342-362, 2005.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複製型秘密分散の分散値をShamir秘密分散の分散値へ変換する方法は従来から知られていた。逆に、Shamir秘密分散の分散値を複製型秘密分散の分散値へ変換する方法は知られていない。
【０００６】
この発明の目的は、Shamir秘密分散の分散値を複製型秘密分散の分散値へ変換する技術を提供することである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、この発明の分散値変換システムは、3台の分散値変換装置p0, p1, p2を含む分散値変換システムであって、i=0, 1とし、i'∈{0, 1}とし、i≠i'とし、j=2とし、分散値変換装置piは、分散値変換装置pi'と乱数ri, ri'を共有する乱数生成部と、情報aのShamir秘密分散値[a]iを加法的秘密分散値<a>iへ変換する変換部と、加法的秘密分散値<a>iから乱数riを減算した値aiを計算して分散値変換装置pjへ送信するサブシェア生成部と、乱数riとri'とを加算した値ajを計算し、複製型秘密分散値{a}i=(ai, aj)を生成するシェア生成部と、を含み、分散値変換装置pjは、値ai, ai'を受信するサブシェア生成部と、複製型秘密分散値{a}j=(ai, ai')を生成するシェア生成部と、を含む。
【発明の効果】
【０００８】
この発明の分散値変換技術によれば、Shamir秘密分散の分散値を複製型秘密分散の分散値へ効率的に変換することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、分散値変換システムの機能構成を例示する図である。
【図２】図２は、分散値変換装置の機能構成を例示する図である。
【図３】図３は、分散値変換方法の処理フローを例示する図である。
【発明を実施するための形態】
【００１０】
実施形態の説明に先立ち、この明細書における表記方法およびこの発明の基本的な考え方について説明する。
【００１１】
［表記方法］
piは、i番目のシェアを所持するパーティを表す。
【００１２】
P=(p0,…,pn-1)は、シェアを所持するnパーティ全体の集合を表す。
【００１３】
P'⊆Pは、nパーティ集合Pから選択したn-(k-1)パーティの集合を表す。
【００１４】
[・]x（角括弧）は、平文・のShamir秘密分散による分散値を表す。xは平文空間の要素数を表す。x=pのとき、xは省略して[・]と表す。pは群Zpの位数である素数である。
【００１５】
[・]iは、Shamir秘密分散値[・]のうち、パーティpi∈Pが所持するシェアを表す。
【００１６】
{・}x（波括弧）は、平文・の複製型秘密分散による分散値を表す。xは平文空間の要素数を表す。x=2のとき、xは省略して{・}と表す。
【００１７】
{・}iは、複製型秘密分散値{・}のうち、パーティpi∈Pが所持するシェアを表す。
【００１８】
<・>x（山括弧）は、平文・の加法的秘密分散による分散値を表す。xは平文空間の要素数を表す。x=pのとき、xは省略して<・>と表す。
【００１９】
<・>iは、加法型秘密分散値<・>のうち、パーティpi∈Pが所持するシェアを表す。
【００２０】
［Shamir秘密分散］
Shamir秘密分散（Shamir's Secret Sharing）は(k,n)-秘密分散の一つである。(k,n)-秘密分散は、入力された平文をn個に分割した分散値をn個の計算主体に分散して保持しておき、任意のk個のシェアが揃えば平文を復元でき、k個未満のシェアからは平文に関する一切の情報を得られないような秘密分散である。このとき、n, kは1以上の整数であり、n=2k-1である。Shamir秘密分散についての詳細は下記参考文献１を参照されたい。
〔参考文献１〕A. Shamir, “How to share a secret”, Communications of the ACM, vol. 22(11), pp. 612-613, 1979.
【００２１】
Shamir秘密分散では、i番目のパーティpiに座標xiを割り当て、乱数riを用いて、次式により、平文aを分散する。
【００２２】
【数１】
0005889454.tif 000002
【００２３】
Shamir秘密分散のメリットは、データ容量が小さいことである。一方、デメリットは、体の要素数がn+1以上でなければならず、mod 2は使えないことである。
【００２４】
［複製型秘密分散］
複製型秘密分散（Replicated Secret Sharing）は(k,n)-秘密分散の一つである。複製型秘密分散についての詳細は上記非特許文献１を参照されたい。
【００２５】
複製型秘密分散では、例えばn=3, k=2の場合、平文aをa:=a0+a1+a2と変形し、(a0, a1), (a1, a2), (a2, a0)の3つのシェアに分散する。シェアを構成する各要素a0, a1, a2はサブシェアと呼ぶ。
【００２６】
複製型秘密分散のメリットは、体の要素数が制限されず、mod 2が使えることである。また、体でなく群でも利用できる。一方、デメリットは、各シェアのサイズが比較的大きくなることである。
【００２７】
［加法的秘密分散］
加法的秘密分散とは、複製秘密分散による(k,k)-秘密分散である。(k,k)-秘密分散とは、(k,n)-秘密分散において、n=kとした場合である。(k,k)-秘密分散では、全パーティのシェアが集まらない限り平文を復元することはできない。加法的秘密分散は、k個のシェアを加算するだけで平文が復元される最もシンプルな秘密分散である。
【００２８】
加法的秘密分散では、平文aは次式を満たすようにk個の分散値<a>0,…,<a>k-1に分散される。
【００２９】
【数２】
0005889454.tif 000003
【００３０】
加法的秘密分散のメリットは、体の要素数が制限されず、mod 2が使えることである。また、体でなく群でも利用でき、シェアを合計したデータ量が最も小さく、演算が高速である。一方、デメリットは、冗長性がないことである。
【００３１】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００３２】
分散値変換システムは、図１に例示するように、3台の分散値変換装置１1,１2,１3を含む。本形態では、分散値変換装置１1,１2,１3はそれぞれ通信網２へ接続される。通信網２は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN（Local Area Network）、WAN（Wide Area Network）などを用いることができる。なお、各装置は必ずしも通信網２を介してオンラインで通信可能である必要はない。例えば、分散値変換装置１1,１2,１3へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置１1,１2,１3へオフラインで入力するように構成してもよい。
【００３３】
分散値変換装置１i（i=1,2,3）は、図２に例示するように、入力部１０、乱数生成部１１、変換部１２、サブシェア生成部１３、シェア生成部１４、および出力部１７を含む。
【００３４】
分散値変換装置１iは、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。分散値変換装置１iは、例えば、中央演算処理装置の制御のもとで各処理を実行する。分散値変換装置１iに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。分散値変換装置１iの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００３５】
図３を参照して、実施形態の秘密改ざん検知方法の処理手続きを説明する。
【００３６】
以下では、p0, p1, p2を3個のシェアを分散して保有する3台の分散値変換装置とする。p0, p1, p2は論理的に分散値変換装置の役割を指し示す符号であり、どの分散値変換装置１1,１2,１3がどの分散値変換装置p0, p1, p2に対応するかは実行時に任意に決定される。
【００３７】
ステップＳ１０において、3台の分散値変換装置pi（i=0, 1, 2）の入力部１０へ変換対象のShamir秘密分散値[a]iがそれぞれ入力される。Shamir秘密分散値[a]iは、変換部１２へ送られる。
【００３８】
ステップＳ１１において、2台の分散値変換装置p0, p1の乱数生成部１１は、2個の乱数r0, r1を共有する。乱数の共有は、一方の分散値変換装置pi（i∈{0, 1}）が乱数riを生成し、その乱数riを他方の分散値変換装置pi'（i'∈{0, 1}、i≠i'）へ送信すればよい。
【００３９】
ステップＳ１２0において、分散値変換装置p0の変換部１２は、Shamir秘密分散値[a]0を加法的秘密分散値<a>0へ変換する。同様に、ステップＳ１２1において、分散値変換装置p1の変換部１２は、Shamir秘密分散値[a]1を加法的秘密分散値<a>1へ変換する。加法的秘密分散値<a>i（i∈{0, 1}）は、サブシェア生成部１３へ送られる。
【００４０】
Shamir秘密分散の分散値から加法的秘密分散の分散値への変換は、例えば、以下のように行うことができる。分散値変換装置pi（i∈{0, 1}）が、Shamir秘密分散により2パーティで復元する場合の係数λiを計算し、その係数λiをShamir秘密分散値[a]iへ乗じた値λi[a]iを加法的秘密分散値<a>iとする。
【００４１】
ステップＳ１３0において、分散値変換装置p0のサブシェア生成部１３は、加法的秘密分散値<a>0から乱数r0を減算した値a0を計算して、その値a0を分散値変換装置p2へ送信する。同様に、ステップＳ１３1において、分散値変換装置p1のサブシェア生成部１３は、加法的秘密分散値<a>1から乱数r1を減算した値a1を計算して、その値a1を分散値変換装置p2へ送信する。ステップＳ１３2において、分散値変換装置p2のサブシェア生成部１３は、値a0, a1を受信する。
【００４２】
ステップＳ１４ａにおいて、2台の分散値変換装置p0, p1のシェア生成部１４は、乱数r0とr1とを加算して値a2を計算する。ステップＳ１４ｂ0において、分散値変換装置p0は、値a0とa2とを組にして複製型秘密分散値{a}0=(a0, a2)を生成する。同様に、ステップＳ１４ｂ1において、分散値変換装置p1は、値a1とa2とを組にして複製型秘密分散値{a}1=(a1, a2)を生成する。さらに、ステップＳ１４ｂ2において、分散値変換装置p2は、値a0とa1とを組にして複製型秘密分散値{a}2=(a0, a1)を生成する。複製型秘密分散値{a}i（i∈{0, 1, 2}）は、出力部１５へ送られる。
【００４３】
ステップＳ１５において、3台の分散値変換装置pi（i=0, 1, 2）の出力部１５から変換後の複製型秘密分散値{a}iが出力される。
【００４４】
上述のように構成することにより、本形態の分散値変換システムおよび方法は、Shamir秘密分散の分散値を複製型秘密分散の分散値に変換することができる。本形態の分散値変換技術は、n=3, k=2に限定されるが、軽量な演算のみにより構成されているため非常に効率がよい。
【００４５】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００４６】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００４７】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４８】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４９】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００５０】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００５１】
１  分散値変換装置
２  通信網
１０  入力部
１１  乱数生成部
１２  変換部
１３  サブシェア生成部
１４  シェア生成部
１５  出力部
【要約】
【課題】Shamir秘密分散の分散値を複製型秘密分散の分散値へ効率的に変換する。
【解決手段】分散値変換装置p0の乱数生成部１１が、分散値変換装置p1と乱数r0, r1を共有する。分散値変換装置p0の変換部１２が、Shamir秘密分散値[a]0を加法的秘密分散値<a>0へ変換する。分散値変換装置p0のサブシェア生成部１３が、加法的秘密分散値<a>0から乱数r0を減算した値a0を計算する。分散値変換装置p0のシェア生成部１４が、乱数r0とr1とを加算した値a2を計算し、複製型秘密分散値{a}0=(a0, a2)を生成する。
【選択図】図２【図１】
0005889454.tif 000004
【図２】
0005889454.tif 000005
【図３】
0005889454.tif 000006