(57)【要約】  認証符号付きの秘匿文を効率よく作成する。鍵生成部１２は、xα=βを満たす値x, α, βの秘匿文([x], [α], [β])を生成する。秘匿文生成部１３は、i=1, …, Nについて、ランダムな値aiの秘匿文[ai]を生成する。認証符号生成部１４は、i=1, …, Nについて、秘匿文[ai]へ秘匿文[α]を乗じて認証符号[γ(ai)]を生成する。検証値生成部１５は、秘匿文([x], [α], [β])と秘匿文[ai]と認証符号[γ(ai)]とを用いて検証値wの秘匿文[w]を生成する。検証値判定部１６は、検証値wが0と等しいか否かを判定する。
2017065122.tif 000002
【特許請求の範囲】
【請求項１】
Nを1以上の整数とし、
xα=βを満たす値x, α, βの秘匿文([x], [α], [β])を生成する鍵生成部と、
i=1, …, Nについて、ランダムな値aiの秘匿文[ai]を生成する秘匿文生成部と、
i=1, …, Nについて、上記秘匿文[ai]へ上記秘匿文[α]を乗じて認証符号[γ(ai)]を生成する認証符号生成部と、
次式を計算して検証値wの秘匿文[w]を生成する検証値生成部と、
【数１４】
2017065122.tif 000016
上記検証値wが0と等しいか否かを判定する検証値判定部と、
を含む秘密認証符号付加装置。
【請求項２】
請求項１に記載の秘密認証符号付加装置であって、
上記検証値生成部は、上記秘匿文[w]にランダム値の秘匿文を乗算したものにより上記秘匿文[w]を更新するものである、
秘密認証符号付加装置。
【請求項３】
請求項１または２に記載の秘密認証符号付加装置であって、
上記検証値判定部は、上記秘匿文[w]を復元して上記検証値wを得、上記検証値wが0と等しいか否かを判定するものである、
秘密認証符号付加装置。
【請求項４】
請求項３に記載の秘密認証符号付加装置であって、
nは2以上の整数であり、秘匿文[x], [α], [β], [ai]はnパーティの秘密分散による秘匿文であり、iは1以上n以下の任意の整数であり、
上記検証値判定部は、
上記秘匿文[w]のシェア[w]iをコミットしたタグτiを生成するコミット部と、
上記タグτiをオープンするオープン部と、
他の秘密認証符号付加装置によりオープンされたシェア[w]j（j=1, …, n、i≠j）を得、シェア[w]1, …, [w]nを復元して上記検証値wを得る復元部と、
上記検証値wが0と等しいか否かを判定する判定部と、
を含むものである、
秘密認証符号付加装置。
【請求項５】
Nを1以上の整数とし、
鍵生成部が、xα=βを満たす値x, α, βの秘匿文([x], [α], [β])を生成する鍵生成ステップと、
秘匿文生成部が、i=1, …, Nについて、ランダムな値aiの秘匿文[ai]を生成する秘匿文生成ステップと、
認証符号生成部が、i=1, …, Nについて、上記秘匿文[ai]へ上記秘匿文[α]を乗じて認証符号[γ(ai)]を生成する認証符号生成ステップと、
検証値生成部が、次式を計算して検証値wの秘匿文[w]を生成する検証値生成ステップと、
【数１５】
2017065122.tif 000017
検証値判定部が、上記検証値wが0と等しいか否かを判定する検証値判定ステップと、
を含む秘密認証符号付加方法。
【請求項６】
請求項１から４のいずれかに記載の秘密認証符号付加装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号応用技術に関し、特に、入力データを明かすことなく認証符号を付加する技術に関する。
【背景技術】
【０００２】
暗号化された数値を復元することなく特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある（例えば、非特許文献１参照）。非特許文献１の方法では、３つの秘密計算装置に数値の断片を分散させるという暗号化を行い、３つの秘密計算装置が協調計算を行うことにより、数値を復元することなく、加減算、定数加算、乗算、定数倍、論理演算（否定、論理積、論理和、排他的論理和）、データ形式変換（整数、二進数）の結果を３つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。【０００３】
秘密計算を行う場合に、認証符号を付加しておくことで改ざんへの耐性を持たせる方法として、非特許文献２の方法がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】千田浩司、濱田浩気、五十嵐大、高橋克巳、“軽量検証可能3パーティ秘匿関数計算の再考”、CSS、2010年
【非特許文献２】Ivan Damgard, Marcel Keller, Enrique Larraia, Valerio Pastro, Peter Scholl, and Nigel P. Smart, “Practical covertly secure MPC for dishonest majority - or: Breaking the SPDZ limits”, Computer Security - ESORICS 2013, vol. 8134 of Lecture Notes in Computer Science, pp. 1-18, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献２に記載された従来技術では、ランダムな認証符号付きの秘匿文を作るために非常に計算コストの大きいsomewhat準同型暗号を用いており、効率が悪かった。【０００６】
この発明の目的は、このような点に鑑みて、ランダムな認証符号付きの秘匿文を効率よく作成する技術を提供することである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、この発明の秘密認証符号付加装置は、Nを1以上の整数とし、xα=βを満たす値x, α, βの秘匿文([x], [α], [β])を生成する鍵生成部と、i=1, …, Nについて、ランダムな値aiの秘匿文[ai]を生成する秘匿文生成部と、i=1, …, Nについて、秘匿文[ai]へ秘匿文[α]を乗じて認証符号[γ(ai)]を生成する認証符号生成部と、次式を計算して検証値wの秘匿文[w]を生成する検証値生成部と、【０００８】
【数１】
2017065122.tif 000003
【０００９】
検証値wが0と等しいか否かを判定する検証値判定部と、を含む。
【発明の効果】
【００１０】
この発明の秘密認証符号付加技術によれば、ランダムな認証符号付きの秘匿文を効率よく作成することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、秘密認証符号付加システムの機能構成を例示する図である。
【図２】図２は、第一実施形態に係る秘密認証符号付加装置の機能構成を例示する図である。
【図３】図３は、第一実施形態に係る秘密認証符号付加方法の処理フローを例示する図である。
【図４】図４は、第二実施形態に係る秘密認証符号付加装置の機能構成を例示する図である。
【図５】図５は、第二実施形態に係る秘密認証符号付加方法の処理フローを例示する図である。
【発明を実施するための形態】
【００１２】
実施形態の説明に先立ち、この明細書における表記方法および用語の定義について説明する。
【００１３】
＜表記方法＞
ある値aを暗号化や秘密分散などにより秘匿化した値をaの秘匿文と呼び、[a]と表記する。また、aを[a]の平文と呼ぶ。秘匿化が秘密分散である場合は、[a]により各パーティが持つ秘密分散の断片の集合を参照する。秘匿文[a]のうちi番目のパーティPiが持つシェアを[a]iで参照する。なお、シェアとは秘密分散された断片のことであり、パーティとは秘密計算を協調して行う各参加者のことである。
【００１４】
＜復元＞
秘匿文[a]から平文aを計算する処理を復元と呼び、次式のように記述する。
【００１５】
【数２】
2017065122.tif 000004
【００１６】
＜加算、減算、乗算、定数倍＞
秘匿文に対する加算、減算、乗算の各演算は、二つの値a, bの秘匿文[a], [b]を入力とし、それぞれa+b, a-b, abの計算結果d1, d2, d3の秘匿文[d1], [d2], [d3]を計算する。秘匿文に対する定数倍の演算は、値aの秘匿文[a]と平文cとを入力とし、caの計算結果d4の秘匿文[d4]を計算する。これらの演算の実行をそれぞれ次式のように記述する。
【００１７】
【数３】
2017065122.tif 000005
【００１８】
なお、誤解を招く恐れのない場合は、Add([a], [b]), Sub([a], [b]), Mul([a], [b]), CMul(c, [a])をそれぞれ[a]+[b], [a]-[b], [a][b], c[a]と略記する。
【００１９】
＜ランダムな秘匿文の生成＞
誰も知らないランダムな値rの秘匿文[r]を生成する処理を次式のように記述する。
【００２０】
【数４】
2017065122.tif 000006
【００２１】
＜コミットメント＞
コミットメントはコミットとオープンとの二つの処理からなる。コミットは送信者であるパーティがある値を他のパーティに秘密に提出する処理である。オープンはコミットした値をすべてのパーティに明らかにする処理である。送信者以外のパーティは値がオープンされるまでコミットされた値を知ることはできない。また、送信者がコミットした値は送信者も含めて誰も改ざんすることができない。
【００２２】
あるパーティPiがある値vをコミットする処理を次式のように記述する。
【００２３】
【数５】
2017065122.tif 000007
【００２４】
τvはコミットした値vに紐づいたタグであり、すべてのパーティに送られる。
【００２５】
パーティPiがタグτvに紐づいたコミットされた値vをオープンする処理を次式のように記述する。
【００２６】
【数６】
2017065122.tif 000008
【００２７】
この処理により、すべてのパーティがタグτvに紐づいたコミットされた値vを得る。
【００２８】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００２９】
［第一実施形態］
第一実施形態の秘密認証符号付加システムは、図１に例示するように、n（≧2）台の秘密認証符号付加装置１1, …, １nを含む。この実施形態では、秘密認証符号付加装置１1, …, １nはそれぞれ通信網２へ接続される。通信網２は、秘密認証符号付加装置１1, …, １nそれぞれと通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN（Local Area Network）、WAN（Wide Area Network）などを用いることができる。なお、各装置は必ずしも通信網２を介してオンラインで通信可能である必要はない。例えば、秘密認証符号付加装置１i（i∈{1, …, n}）へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで入力するように構成してもよい。
【００３０】
秘密認証符号付加装置１は、図２に示すように、例えば、入力部１１、鍵生成部１２、秘匿文生成部１３、認証符号生成部１４、検証値生成部１５、検証値判定部１６、および出力部１７を含む。検証値判定部１６は、例えば、復元部１６１および判定部１６２を含む。この秘密認証符号付加装置１が、図３に例示する各ステップの処理を行うことにより第一実施形態の秘密認証符号付加方法が実現される。
【００３１】
秘密認証符号付加装置１は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密認証符号付加装置１は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密認証符号付加装置１に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密認証符号付加装置１の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００３２】
図３を参照して、第一実施形態の秘密認証符号付加方法の処理手続きを説明する。
【００３３】
ステップＳ１１において、入力部１１へ値Nが入力される。Nは1以上の整数であり、生成しようとする認証符号付き秘匿文の数を指定するパラメータである。
【００３４】
ステップＳ１２において、鍵生成部１２は、xα=βを満たす値x, α, βの秘匿文である認証符号鍵([x], [α], [β])を生成する。このような関係を満たす秘匿文の組を生成する方法は、例えば、非特許文献２に記載されている。もしくは、ランダムな値x, αの秘匿文[x], [α]を生成し、例えば、非特許文献１に記載されている秘密計算方法により、[β]←Mul([x], [α])を計算して、([x], [α], [β])の組を生成してもよい。認証符号鍵([x], [α], [β])は認証符号生成部１４へ送られる。
【００３５】
ステップＳ１３において、秘匿文生成部１３は、i=1, …, Nについて、式（１）を計算してランダムな値aiの秘匿文[ai]を生成する。N個の秘匿文[a1], …, [aN]は認証符号生成部１４へ送られる。
【００３６】
【数７】
2017065122.tif 000009
【００３７】
ステップＳ１４において、認証符号生成部１４は、i=1, …, Nについて、式（２）を計算して、秘匿文[ai]へ秘匿文[α]を乗じた認証符号[γ(ai)]を生成する。N個の認証符号[γ(a1)], …, [γ(aN)]は検証値生成部１５へ送られる。
【００３８】
【数８】
2017065122.tif 000010
【００３９】
ステップＳ１５において、検証値生成部１５は、秘匿文[a1], …, [aN], 認証符号[γ(a1)], …, [γ(aN)], 認証符号鍵[α], [β]を用いて、式（３）（４）を計算し、検証値wの秘匿文[w]を生成する。秘匿文[w]は検証値判定部１６へ送られる。秘匿文[a1], …, [aN], 認証符号[γ(a1)], …, [γ(aN)]は出力部１７へ送られる。
【００４０】
【数９】
2017065122.tif 000011
【００４１】
ステップＳ１６１〜１６２において、検証値判定部１６は、検証値wが0と等しいか否かを判定する。以下、具体的に、検証値判定部１６の処理を説明する。
【００４２】
ステップＳ１６１において、復元部１６１は、他のn-1台の秘密認証符号付加装置から秘匿文[w]のシェアを受信し、式（５）を計算して秘匿文[w]を復元し、検証値wを生成する。
【００４３】
【数１０】
2017065122.tif 000012
【００４４】
ステップＳ１６２において、判定部１６２は、検証値wが0と等しいか否かを判定する。検証値wが0でなければ処理を終了する。検証値wが0であればステップＳ１７へ処理を進める。
【００４５】
ステップＳ１７において、出力部１７は、N個の認証符号付きの秘匿文([a1], [γ(a1)]), …, ([aN], [γ(aN)])を出力する。
【００４６】
この実施形態では、検証値生成部１５において、式（４）でランダムな値の秘匿文を乗じた秘匿文[w]を検証値として生成したが、式（３）で得られる秘匿文[z]を検証値として生成してもよい。ただし、秘匿文[z]を検証値とした場合、秘匿文[z]が0以外の値であった場合には、その値によって秘匿文[ai]や認証符号鍵([x], [α], [β])を推測することが可能な場合がある。そのため、この実施形態では、式（４）においてランダムな値の秘匿文を乗ずることで、より安全性を高めている。
【００４７】
［第二実施形態］
第二実施形態の秘密認証符号付加方法は、コミットメントを利用して認証符号の検証を行う。これにより、検証値の改ざんを防止することができ、より確実に認証符号の正当性を確認することができる。この実施形態では、各秘匿文はnパーティの秘密分散により秘匿化されているものとする。そのような秘密分散としては、例えば、非特許文献１に記載されたしきい値秘密分散や、非特許文献２に記載された加法的秘密分散がある。
【００４８】
第二実施形態の検証値判定部１８は、図４に示すように、復元部１６１および判定部１６２に加えて、例えば、コミット部１６３およびオープン部１６４を含む。この検証値判定部１８を含む秘密認証符号付加装置が、図５に例示する各ステップの処理を行うことにより第二実施形態の秘密認証符号付加方法が実現される。
【００４９】
図５を参照して、第二実施形態の秘密認証符号付加方法の処理手続きを説明する。以下では、上述の第一実施形態との相違点を中心に説明する。以下では、i（∈{1, …, n}）番目の秘密認証符号付加装置１iの処理を中心に説明する。
【００５０】
ステップＳ１６３において、秘密認証符号付加装置１iのコミット部１６３は、式（６）を計算して、検証値wの秘匿文[w]のうち自身が保有するシェア[w]iをコミットし、タグτiを生成する。これにより、他のn-1台の秘密認証符号付加装置１j（j=1, …, n、j≠i）それぞれへタグτiが送られる。
【００５１】
【数１１】
2017065122.tif 000013
【００５２】
同時に、他の秘密認証符号付加装置１j（j=1, …, n、j≠i）それぞれが検証値[w]のシェア[w]jをコミットし、タグτjを生成する。これにより、すべての秘密認証符号付加装置１1, …, １nが、自身のコミットしたタグと併せて、検証値[w]のすべてのシェア[w]1, …, [w]nに紐づいたタグτ1, …, τnを持つことになる。
【００５３】
ステップＳ１６４において、秘密認証符号付加装置１iのオープン部１６４は、式（７）を計算して、タグτiをオープンする。これにより、他のn-1台の秘密認証符号付加装置１j（j=1, …, n、j≠i）すべてが検証値[w]のシェア[w]iを得る。
【００５４】
【数１２】
2017065122.tif 000014
【００５５】
同時に、他の秘密認証符号付加装置１j（j=1, …, n、j≠i）それぞれがタグτjをオープンする。これにより、すべての秘密認証符号付加装置１1, …, １nが、自身の持つシェアと併せて、検証値[w]のすべてのシェア[w]1,…,[w]nを得ることができる。
【００５６】
ステップＳ１６１において、秘密認証符号付加装置１iの復元部１６１は、式（８）を計算してシェア[w]1, …, [w]nを復元し、検証値wを生成する。
【００５７】
【数１３】
2017065122.tif 000015
【００５８】
ステップＳ１６２において、秘密認証符号付加装置１iの判定部１６２は、検証値wが0と等しいか否かを判定する。検証値wが0でなければ処理を終了する。検証値wが0であればステップＳ１７へ処理を進める。
【００５９】
第二実施形態では、検証値を判定する際にコミットメントを用いてシェアの送受信を行うため、検証値のシェアが漏洩したり、改ざんされたりすることを防止することができ、安全性を高めることができる。
【００６０】
上記のように構成することにより、この発明の秘密認証符号付加技術によれば、認証符号鍵([x], [α], [β])とN個の認証符号付き秘匿文([ai], [γ(ai)])とを生成することができる。生成した認証符号付き秘匿文を用いれば、例えば、非特許文献２に記載されたマルチパーティ計算で必要となる認証符号が付加された乱数の３つ組を生成することができる。
【００６１】
この発明では、ランダムな秘匿文に対して改ざんが行われるかもしれない乗算を使って認証符号の付加を行う。改ざんを想定しない乗算方式の多くでは乗算の入力に任意の値を加える改ざんが可能である。この発明の秘密認証符号付加技術は、乗算において各入力の平文に任意の値を加算させる改ざんに対して耐性がある。そのため、多くの改ざんを想定しない乗算を用いるマルチパーティ計算方式に対してこの発明を適用することにより、改ざん耐性を加えることができる。
【００６２】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００６３】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６４】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００６５】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６６】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６７】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2017065122.tif 000018
【図２】
2017065122.tif 000019
【図３】
2017065122.tif 000020
【図４】
2017065122.tif 000021
【図５】
2017065122.tif 000022
【国際調査報告】
2017065122.tif 000023
2017065122.tif 000024
2017065122.tif 000025
2017065122.tif 000026