(57)【特許請求の範囲】
【請求項１】
3台の分散値変換装置p0, p1, p2を含む分散値変換システムであって、
上記分散値変換装置p0は、
上記分散値変換装置p1と乱数rを共有する乱数共有部と、
加法的秘密分散のシェア<a>0を上記分散値変換装置p2へ送信するシェア共有部と、
上記加法的秘密分散のシェア<a>0と上記乱数rを用いて複製型秘密分散のシェア{a}0=(<a>0, -r)を生成するシェア生成部と、
を含み、
上記分散値変換装置p1は、
上記分散値変換装置p0と上記乱数rを共有する乱数共有部と、
加法的秘密分散のシェア<a>1に上記乱数rを加算した値<a>1+rを上記分散値変換装置p2へ送信するサブシェア生成部と、
上記値<a>1+rと上記乱数rを用いて複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成するシェア生成部と、
を含み、
上記分散値変換装置p2は、
上記加法的秘密分散値<a>0と上記値<a>1+rとを用いて複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成するシェア生成部と、
を含む分散値変換システム。
【請求項２】
分散値変換装置p1と乱数rを共有する乱数共有部と、
加法的秘密分散のシェア<a>0を分散値変換装置p2へ送信するシェア共有部と、
上記加法的秘密分散のシェア<a>0と上記乱数rを用いて複製型秘密分散のシェア{a}0=(<a>0, -r)を生成するシェア生成部と、
を含む分散値変換装置。
【請求項３】
分散値変換装置p0と乱数rを共有する乱数共有部と、
加法的秘密分散値<a>1に上記乱数rを加算した値<a>1+rを分散値変換装置p2へ送信するサブシェア生成部と、
上記値<a>1+rと上記乱数rを用いて複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成するシェア生成部と、
を含む分散値変換装置。
【請求項４】
加法的秘密分散のシェア<a>0と、加法的秘密分散のシェア<a>1へ乱数rを加算した値<a>1+rとを用いて複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成するシェア生成部
を含む分散値変換装置。
【請求項５】
分散値変換装置p0と分散値変換装置p1とが、乱数rを共有する乱数共有ステップと、
上記分散値変換装置p0が、加法的秘密分散のシェア<a>0を分散値変換装置p2へ送信するシェア共有ステップと、
上記分散値変換装置p1が、加法的秘密分散のシェア<a>1に上記乱数rを加算した値<a>1+rを上記分散値変換装置p2へ送信するサブシェア生成ステップと、
上記分散値変換装置p0が、上記加法的秘密分散のシェア<a>0と上記乱数rを用いて複製型秘密分散のシェア{a}0=(<a>0, -r)を生成する第一シェア生成ステップと、
上記分散値変換装置p1が、上記値<a>1+rと上記乱数rを用いて複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成する第二シェア生成ステップと、
上記分散値変換装置p2が、上記加法的秘密分散のシェア<a>0と上記値<a>1+rとを用いて複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成する第三シェア生成ステップと、
を含む分散値変換方法。
【請求項６】
請求項２から４のいずれかに記載の分散値変換装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、秘密分散技術に関し、特に、ある秘密分散の分散値を他の秘密分散の分散値へ変換する技術に関する。
【背景技術】
【０００２】
秘密分散とは、データを複数に分割した分散値に変換し、一定個数以上のシェアを用いれば元のデータを復元でき、一定個数未満のシェアからは元のデータを一切復元できなくする技術である。なお、秘密分散した複数個の値の組を分散値と呼び、分散値のうちの１個の断片をシェアと呼ぶ。
【０００３】
秘密分散の例としては、加法的秘密分散（Additive Secret Sharing）や複製型秘密分散（Replicated Secret Sharing）などが挙げられる。非特許文献１には、加法的秘密分散の分散値を複製型秘密分散の分散値へ変換する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】五十嵐大、濱田浩気、菊池亮、千田浩司、“インターネット環境レスポンス1秒の統計処理を目指した, 秘密計算基数ソートの改良”、SCIS2014、2014年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に記載された加法的秘密分散から複製型秘密分散へ分散値を変換する技術では、通信量が大きいという課題がある。通信量は、秘密計算時に計算主体間で行われる通信の、全通信路の総量である。
【０００６】
この発明の目的は、このような点に鑑みて、加法的秘密分散の分散値を複製型秘密分散の分散値へ変換する際の通信量を削減することである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、この発明の分散値変換システムは、3台の分散値変換装置p0, p1, p2を含む分散値変換システムであって、分散値変換装置p0は、分散値変換装置p1と乱数rを共有する乱数共有部と、加法的秘密分散のシェア<a>0を分散値変換装置p2へ送信するシェア共有部と、加法的秘密分散のシェア<a>0と乱数rを用いて複製型秘密分散のシェア{a}0=(<a>0, -r)を生成するシェア生成部と、を含み、分散値変換装置p1は、分散値変換装置p0と乱数rを共有する乱数共有部と、加法的秘密分散のシェア<a>1に乱数rを加算した値<a>1+rを分散値変換装置p2へ送信するサブシェア生成部と、値<a>1+rと乱数rを用いて複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成するシェア生成部と、を含み、分散値変換装置p2は、加法的秘密分散のシェア<a>0と値<a>1+rとを用いて複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成するシェア生成部と、を含む。
【発明の効果】
【０００８】
従来技術では、加法的秘密分散からShamir秘密分散へ分散値を変換する際の通信量は、疑似乱数を利用する場合で体要素３個分、疑似乱数を利用しない場合で体要素６個分であった。この発明の分散値変換技術では、疑似乱数を利用する場合で体要素２個分、疑似乱数を利用しない場合で体要素３個分の通信量で、加法的秘密分散からShamir秘密分散へ分散値を変換することができる。したがって、この発明の分散値変換技術によれば、加法的秘密分散の分散値を複製型秘密分散の分散値へ従来よりも少ない通信量で効率的に変換することができる。また、非特許文献１の秘密計算基数ソートにこの発明を適用することで、効率的なソートを実現することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、分散値変換システムの機能構成を例示する図である。
【図２】図２は、分散値変換装置の機能構成を例示する図である。
【図３】図３は、分散値変換方法の処理フローを例示する図である。
【発明を実施するための形態】
【００１０】
実施形態の説明に先立ち、この明細書における表記方法およびこの発明の基本的な考え方について説明する。
【００１１】
［表記方法］
piは、i番目のシェアを所持するパーティを表す。
P=(p0,…,pn-1)は、シェアを所持するnパーティ全体の集合を表す。
{・}x（波括弧）は、平文・の複製型秘密分散による分散値を表す。xは平文空間の要素数を表す。x=2のとき、xは省略して{・}と表す。
{・}iは、複製型秘密分散値{・}のうち、パーティpi∈Pが所持するシェアを表す。
<・>x（山括弧）は、平文・の加法的秘密分散による分散値を表す。xは平文空間の要素数を表す。x=pのとき、xは省略して<・>と表す。
<・>iは、加法型秘密分散値<・>のうち、パーティpi∈Pが所持するシェアを表す。
【００１２】
［複製型秘密分散］
複製型秘密分散（Replicated Secret Sharing）は(k,n)-秘密分散の一つである。(k,n)-秘密分散は、入力された平文をn個に分割した分散値をn個の計算主体に分散して保持しておき、任意のk個のシェアが揃えば平文を復元でき、k個未満のシェアからは平文に関する一切の情報を得られないような秘密分散である。このとき、n, kは1以上の整数であり、n=2k-1である。複製型秘密分散についての詳細は下記参考文献１を参照されたい。
〔参考文献１〕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.
【００１３】
複製型秘密分散では、例えば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に分散される。
【数１】
0005864004.tif 000002
【００１７】
加法的秘密分散のメリットは、体の要素数が制限されず、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台の分散値変換装置とする。p0, p1, p2は論理的に分散値変換装置の役割を指し示す符号であり、どの分散値変換装置１1,１2,１3がどの分散値変換装置p0, p1, p2に対応するかは実行時に任意に決定される。
【００２４】
ステップＳ１０0において、分散値変換装置p0の入力部１０へ変換対象となる加法的秘密分散のシェア<a>0が入力される。加法的秘密分散のシェア<a>0は、シェア共有部１２へ送られる。同様に、ステップＳ１０1において、分散値変換装置p1の入力部１０へ変換対象となる加法的秘密分散のシェア<a>1が入力される。加法的秘密分散のシェア<a>1は、サブシェア生成部１３へ送られる。加法的秘密分散のシェア<a>0, <a>1は情報aを2つに分割した分散値である。すなわち、a:=<a>0+<a>1である。
【００２５】
ステップＳ１１において、分散値変換装置p0の乱数共有部１１と分散値変換装置p1の乱数共有部１１とは、乱数rを共有する。乱数rは、サブシェア生成部１３およびシェア生成部１４へ送られる。乱数の共有は、一方の分散値変換装置pi（i∈{0, 1}）が乱数rを生成し、その乱数rを他方の分散値変換装置pi'（i'∈{0, 1}、i≠i'）へ送信すればよい。もしくは、分散値変換装置piとpi'とで事前にシードを共有しておき、そのシードを用いて疑似乱数rを生成してもよい。共有したシードから疑似乱数を求める方法であれば、通信なしで乱数rを共有することができる。
【００２６】
ステップＳ１２0において、分散値変換装置p0のシェア共有部１２は、加法的秘密分散のシェア<a>0を分散値変換装置p2のシェア生成部１４へ送信する。ステップＳ１２2において、分散値変換装置p2は、加法的秘密分散のシェア<a>0を受信する。
【００２７】
ステップＳ１３1において、分散値変換装置p1のサブシェア生成部１３は、加法的秘密分散のシェア<a>1に乱数rを加算した値<a>1+rを生成する。値<a>1+rは、分散値変換装置p2のシェア生成部１４へ送信する。ステップＳ１３2において、分散値変換装置p2は、値<a>1+rを受信する。
【００２８】
ステップＳ１４0において、分散値変換装置p0のシェア生成部１４は、加法的秘密分散のシェア<a>0と乱数rを用いて、複製型秘密分散のシェア{a}0=(<a>0, -r)を生成する。ステップＳ１４1において、分散値変換装置p1のシェア生成部１４は、値<a>1+rと乱数rを用いて、複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成する。ステップＳ１４2において、分散値変換装置p2のシェア生成部１４は、加法的秘密分散のシェア<a>0と値<a>1+rとを用いて、複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成する。
【００２９】
ステップＳ１５において、分散値変換装置pi（i=0, 1, 2）の出力部１５は、複製型秘密分散のシェア{a}iを出力する。
【００３０】
上記のようにして生成した複製型秘密分散のシェア{a}0=(<a>0, -r), {a}1=(-r, <a>1+r), {a}2=(<a>1+r, <a>0)は、サブシェア<a>0, <a>1+r, -rを総和すると、<a>0+<a>1+r+(-r)=<a>0+<a>1=aとなる。したがって、複製型秘密分散の分散値となっている。
【００３１】
サブシェア生成部１３およびシェア生成部１４においては、乱数rの符号が異なっていてもよい。すなわち、サブシェア生成部１３が、加法的秘密分散値<a>1から乱数rを減算した値<a>1-rを生成し、シェア生成部１４が、複製型秘密分散のシェア{a}0=(<a>0, r), {a}1=(r, <a>1-r), {a}2=(<a>1-r, <a>0)を生成するように構成してもよい。
【００３２】
加法的秘密分散のシェア<a>0, <a>1は一方のみからは平文aを知ることができないため、分散値変換装置p0は加法的秘密分散のシェア<a>0をそのまま分散値変換装置p2へ送信することができる。一方、加法的秘密分散のシェア<a>1もそのまま送信すると分散値変換装置p2が平文aを知ることができてしまうため、分散値変換装置p1は加法的秘密分散のシェア<a>1へ乱数rを加減算した上で分散値変換装置p2へ送信している。
【００３３】
上記のように構成することにより、実施形態の分散値変換システムおよび方法は、従来よりも少ない通信量で、加法的秘密分散の分散値を複製型秘密分散の分散値へ変換することができる。特に、加法的秘密分散のシェアが入力される2台の分散値変換装置p0, p1は、何らのデータを受信することもなく分散値の変換を行うことができる。
【００３４】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００３５】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００３６】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００３７】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３８】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００３９】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００４０】
１０  入力部
１１  乱数共有部
１２  シェア共有部
１３  サブシェア生成部
１４  シェア生成部
１５  出力部
【要約】
【課題】少ない通信量で加法的秘密分散の分散値を複製型秘密分散の分散値へ変換する。
【解決手段】分散値変換装置p0は、分散値変換装置p1と乱数rを共有し、加法的秘密分散のシェア<a>0を分散値変換装置p2へ送信し、加法的秘密分散のシェア<a>0と乱数rを用いて複製型秘密分散のシェア{a}0=(<a>0, -r)を生成する。分散値変換装置p1は、分散値変換装置p0と乱数rを共有し、加法的秘密分散のシェア<a>1に乱数rを加算した値<a>1+rを分散値変換装置p2へ送信し、値<a>1+rと乱数rを用いて複製型秘密分散のシェア{a}1=(-r, <a>1+r)を生成する。分散値変換装置p2は、加法的秘密分散値<a>0と値<a>1+rとを用いて複製型秘密分散のシェア{a}2=(<a>1+r, <a>0)を生成する。
【選択図】図３【図１】
0005864004.tif 000003
【図２】
0005864004.tif 000004
【図３】
0005864004.tif 000005