明 細 書
分散情報生成装置および復元装置
技術分野
[0001] 本発明は、秘密情報を分散して安全に管理するための分散情報生成装置と復元 装置とに関する。
背景技術
[0002] 秘密情報を複数の分散秘密情報に分散し、予め定められた分散秘密情報を集め た場合にのみ秘密情報の復元が可能となる秘密分散法と呼ばれる暗号技術が知ら れている。秘密分散法の中で、(k, n)閾値秘密分散法が最も有名である (Adi Sha mir, How to share a secret , Comm. ACM, 22 (11J , 612— o l d (1979 ) (以下、文献 1という)参照)。
[0003] (k, n)閾値秘密分散法では、秘密情報が n個の分散秘密情報に分散される。そし て、その中の任意の k個の分散秘密情報を集めた場合に秘密情報の復元が可能と なる。一方、 k個未満の分散秘密情報からは秘密情報を復元できず、また秘密情報 に関する!/、かなる情報も得られなレ、。
[0004] しかしながら、文献 1に示された (k, n)閾値秘密分散法では、分散秘密情報を管理 する者の不正や、分散秘密情報を管理する装置の故障は考慮されていなかった。そ のため、 k個の分散秘密情報を集めて秘密情報を復元するとき、元のものと異なる分 散秘密情報が 1つでも含まれていれば、秘密情報を正しく復元することができず、ま た元の秘密情報を正しく復元できてレ、な!/、とレ、う事実を検知することもできなかった。
[0005] これにメ して、 Martin Tompa, Heatner Woll, How to share a secret with Cheaters , Journal of Cryptology, vol. 1 , pages 133— 138, 198 8 (以下、文献 2という)、あるいは Wakaha Ogata, Kaoru Kurosawa, Douglas R Stinson, Optimum Secret Sharing Scheme Secure Against Che ating , SI AM Journal on Discrete Mathematics, vol. 20, nol , pages 79— 95, 2006 (以下、文献 3という)は、 k— 1個の改竄された分散秘密情報を含む k個の分散秘密情報を集めて秘密情報を復元しょうとしたとき、元の秘密情報が正し
く復元されていないという事実を検知する技術を開示している。しかし、文献 2あるい は文献 3に開示された技術では、改竄された分散秘密情報が含まれていることは検 知できるが、どれが改竄された分散秘密情報であるかを特定することはできなかった
[0006] これに対して、 T. Rabin and M. Ben - Or, "Verifiable Secret Sharing a nd Multiparty Protocols with Honest Majority" , Proc . STOC ' 89, pp . 73— 85, 1989 (以下、文献 4という)、あるいは K. Kurosawa, S . Obana and W. Ogata, "t— Cheater Identifiable (k, n) Secret Sharing Schemes ,
Proc . Crypto ' 95, Lecture Notes in Computer Science, vol. 963, Spr inger Verlag, pp. 410— 423, 1995 (以下、文献 5という)は、禾必密十青幸の復元に 用いられた分散秘密情報に改竄された情報が含まれて!/、たとき、どれが改竄された 分散秘密情報である力、を特定する技術を開示している。
[0007] 文献 4に開示された技術によれば、(k, n)閾値秘密分散法において、改竄された 分散秘密情報の個数 t力 ≥2t + 1を満たせば、改竄された t個全ての分散秘密情報 を高!/、確率で特定することができる。
[0008] また、文献 5に開示された技術によれば、改竄された分散秘密情報の個数 t力 3 t + 1を満たせば、改竄された t個全ての分散秘密情報を高い確率で特定でき、かつ 分散秘密情報のサイズが文献 4のものより小さい。
発明の開示
[0009] しかし、文献 4に開示された技術では、秘密のビット長を Lとすると、分散秘密情報 のサイズが(3n— 2) Lビットと非常に大きかった。文献 5に開示された技術でも、秘密 のビット長を Lとすると、分散秘密情報のサイズが L+ (t + 2) / εビット( εは不正者 が特定されない確率)とやはり非常に大きかった。
[0010] 本発明の目的は、(k, n)閾値秘密分散法において、秘密情報の復元に用いられる k個の分散秘密情報の中に改竄された情報が含まれていたとき、改竄された分散秘 密情報の特定を可能にし、かつ分散秘密情報のサイズを小さくした、秘密情報分散 システム、分散情報生成装置、および復元装置を提供することである。
[0011] 上記目的を達成するために、本発明の秘密情報分散システムは、(k, n)閾値秘密
分散法によって秘密情報を複数の分散秘密情報に分散して管理する秘密情報分散 システムであって、
(k, n)閾値秘密分散法で前記秘密情報から n個の分散秘密情報 Vi(i=l, 2, ···
, n)を生成し、生成した前記 n個の分散秘密情報 Viと、想定する不正分散秘密情報 数 tが閾値 kとの間で所定の条件を満たものとしたランダムな t次多項式とを用いて、 任意の1 固の分散秘密情報¥{1^}( =1, 2, ···, k)のうち t個以下のものに誤りが ある場合にリード '·ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不 正者特定情報 Ai(i=l, 2, ···, n)を、前記 n個の分散秘密情報 Viに対応付けて生 成する分散情報生成装置と、
前記分散情報生成装置で生成されたうちの任意の k個の分散秘密情報 V{i _J}(j =1, 2, ···, とそれらに対応する!^個の不正者特定情報八 ^ ニ;!, 2, ···, k )とを用いて、リード'ソロモン誤り訂正処理を行って、前記 k個の分散秘密情報 V{i— j }のそれぞれにつ!/、て不正分散秘密情報であるか否かを判断し、不正分散秘密情 報が検出されなかったときに前記 k個の分散秘密情報 V{i」}から前記秘密情報を 復元する復元装置と、を有している。
[0012] 本発明の分散情報生成装置は、(k, n)閾値秘密分散法によって秘密情報を複数 の分散秘密情報に分散する分散情報生成装置あって、
(k, n)閾値秘密分散法で前記秘密情報から n個の分散秘密情報 Vi(i=l, 2, ··· , n)を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記 n個の分散秘密情報 Viと、閾値 kとの間 で所定の条件を満たす値を tとしたランダムな t次多項式とを用いて、任意の k個の分 散秘密情報 V{i _J}(j = l, 2, ···, k)のうち t個以下のものに誤りがある場合にリー ド 'ソロモン誤り訂正処理による誤りの検出および訂正を可能とする、不正者特定情 報 Ai(i=l, 2, ···, n)を、前記 n個の分散秘密情報 Viに対応付けて生成する不正 者特定情報生成装置と、を有している。
[0013] 本発明の復元装置は、上述した本発明の分散情報生成装置で (k, n)閾値秘密分 散法によって生成された複数の分散秘密情報から秘密情報を復元する復元装置で あって、
前記分散情報生成装置で生成されたうちの任意の k個の分散秘密情報 V{i _J}(j =1, 2, ···, とそれらに対応する!^個の不正者特定情報八 ^ ニ;!, 2, ···, k )とを用いて、リード '·ソロモン誤り訂正処理を行う不正者特定装置と、
前記不正者特定装置にて誤りが検出されな力、つたときに、前記 k個の分散秘密情 報 V{i」}から前記秘密情報を復元する秘密情報復元装置と、を有している。
[0014] また、本発明の他の秘密情報分散システムは、(k, n)閾値秘密分散法によって秘 密情報を複数の分散秘密情報に分散して管理する秘密情報分散システムであって、
(k, n)閾値秘密分散法で前記秘密情報から n個の分散秘密情報 Vi(i=l, 2, ··· , n)を生成し、生成した前記 n個の分散秘密情報 Viと、ランダムなデータと、想定す る不正分散秘密情報数 tが閾値 kとの間で所定の条件を満たすものとしたランダムな t 1次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報 Vi に対応する不正者特定情報 Aiとすることにより、前記 n個の分散秘密情報 Viに対応 する前記不正者特定情報 Ai(i=l, 2, ···, n)を生成する分散情報生成装置と、 前記分散情報生成装置で生成されたうちの任意の k個の分散秘密情報 V{i _J}(j =1, 2, ···, とそれらに対応する!^個の不正者特定情報八 ^ ニ;!, 2, ···, k )とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて 、前記 k個の分散秘密情報 V{i J}のそれぞれについて不正分散秘密情報であるか 否力、を判断し、前記 k個の分散秘密情報 V{i J}の全てが不正分散秘密情報でなけ れば、該 k個の分散秘密情報 V{i」}から前記秘密情報を復元する復元装置と、を 有している。
[0015] 本発明の他の分散情報生成装置は、(k, n)閾値秘密分散法によって秘密情報を 複数の分散秘密情報に分散する分散情報生成装置あって、
(k, n)閾値秘密分散法で前記秘密情報から n個の分散秘密情報 Vi(i=l, 2, ··· , n)を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記 n個の分散秘密情報 Viと、ランダムなデ ータと、想定する不正分散秘密情報数 tが閾値 kとの間で所定の条件を満たすものと したランダムな t 1次多項式とを用いて、所定のチェック条件式から得られる値を、 分散秘密情報 Viに対応する不正者特定情報 Aiとすることにより、前記 n個の分散秘
密情報 Viに対応する前記不正者特定情報 Ai (i= l , 2, · · · , n)を生成する不正者 特定情報生成装置と、を有している。
[0016] 本発明の他の復元装置は、上述した本発明の他の分散情報生成装置で (k, n)閾 値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する復 元装置であって、
前記分散情報生成装置で生成されたうちの任意の k個の分散秘密情報 V{i _J } (j = 1 , 2, · · · , とそれらに対応する!^個の不正者特定情報八 ^ ニ;!, 2, · · · , k )とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて 、前記 k個の分散秘密情報 V{i J }のそれぞれについて不正分散秘密情報であるか 否かを判断する不正者特定装置と、
前記不正者特定装置の判断にお!/、て前記 k個の分散秘密情報 V{i _J }の全てが 不正分散秘密情報でなければ、該 k個の分散秘密情報 V{i」}から前記秘密情報を 復元する秘密情報復元装置と、を有している。
図面の簡単な説明
[0017] [図 1]本実施形態の秘密情報分散システムの構成を示すブロック図である。
[図 2]分散情報生成装置 100の構成を示すブロック図である。
[図 3]復元装置 200の構成を示すブロック図である。
[図 4]分散情報生成装置 100または復元装置 200を実現するためのコンピュータの 構成を示すブロック図である。
[図 5]分散情報生成装置 100の動作を示すフローチャートである。
[図 6]復元装置 200の動作を示すフローチャートである。
[図 7]第 1の実施例における不正者特定情報生成装置 102の構成を示すブロック図 である。
[図 8]第 1の実施例における不正者特定装置 202の構成を示すブロック図である。
[図 9]第 2の実施例における不正者特定情報生成装置 102の構成を示すブロック図 である。
[図 10]第 2の実施例における不正者特定装置 202の構成を示すブロック図である。
[図 11]第 3の実施例における不正者特定情報生成装置 102の構成を示すブロック図
である。
[図 12]第 4の実施例における不正者特定情報生成装置 102の構成を示すブロック図 である。
発明を実施するための最良の形態
[0018] 本発明を実施するための形態について図面を参照して詳細に説明する。
[0019] 図 1は、本実施形態の秘密情報分散システムの構成を示すブロック図である。図 1 を参照すると、秘密情報分散システムは、分散情報生成装置 100、復元装置 200、 および記憶装置 300 -;!〜 300— nを有して!/、る。
[0020] この秘密情報分散システムの動作には 2つのフェーズがある。 1つは秘密情報を保 管するフェーズであり、もう 1つは秘密情報を復元するフェーズである。
[0021] 秘密情報を保管するフェーズでは主に分散情報生成装置 100が動作し、秘密情 報を復元するフェーズでは主に復元装置 200が動作する。
[0022] 秘密情報を保管するフェーズでは、まず、分散情報生成装置 100は、パラメーター として入力された閾ィ直 kおよび分散情報総数 nに従って秘密情報を分散符号化する ことにより複数の分散秘密情報を生成し、分散秘密情報をそれぞれ異なる記憶装置 300—;!〜 300— nに格納する。さらに、分散情報生成装置 100は、生成した分散秘 密情報と、ノ ラメーターとして入力された想定不正者数とを用いて、分散秘密情報毎 の不正者特定情報を生成し、各不正者特定情報に対応する分散秘密情報が格納さ れている記憶装置 300— ;!〜 300— nに格納する。想定不正者数は、想定される不 正者の上限数という意味であり、本実施形態の秘密情報分散システムによれば想定 不正者数までの数の分散秘密情報の改竄であれば改竄された分散秘密情報の特 定が可能である。不正者特定情報は、改竄された分散秘密情報を特定するためのデ ータである。なお、ここでは典型例として改竄を示している力 意図的に改竄された場 合に限らず、何らかの要因で分散秘密情報が不正なものに変化してしまった場合を 広く含めて考えることができる。
[0023] また秘密情報を復元するフェーズでは、まず復元装置 200は、閾^ Ik個分の分散 秘密情報と不正者特定情報とを記憶装置 300— ;!〜 300— nから読出し、分散秘密 情報と不正者特定情報とを望!/、て、改竄された分散秘密情報を特定する処理を実行
する。改竄された分散秘密情報を特定する処理では、改竄の有無が判定され、改竄 力 る場合には改竄されている分散秘密情報が特定される。そして、 k個の分散秘密 情報の中に改竄されたものがなければ、復元装置 200は、その k個の分散秘密情報 力 秘密情報を復元する。
[0024] 図 2は、分散情報生成装置 100の構成を示すブロック図である。図 2を参照すると、 分散情報生成装置 100は秘密情報分散装置 101および不正者特定情報生成装置 102を有している。なお、記憶装置 300—;!〜 300— nは、それぞれに分散秘密情報 記憶装置 301 - 1 -301 nおよび不正者特定情報記憶装置 302—;!〜 302— nを 有している。分散秘密情報記憶装置 301—;!〜 301—nには、分散情報生成装置 10 0で生成された分散秘密情報の各々が格納される。不正者特定情報記憶装置 302 一;!〜 302— nには、分散情報生成装置 100で生成された不正者特定情報の各々 が格納される。また、本実施形態で扱う秘密情報 sは特定の秘密情報集合の元であ
[0025] 分散情報生成装置 100には秘密情報 s、閾直 k、分散情報総数 n、および想定不正 者数 tが入力されている。そして、分散情報生成装置 100は、分散秘密情報 V;!〜 vn を生成して分散秘密情報記憶装置 301—;!〜 301—nに格納し、不正者特定情報 A 1〜Anを生成して不正者特定情報記憶装置 302—;!〜 302— nに格納する。
[0026] 秘密情報分散装置 101には秘密情報 s、閾ィ直 k、および分散情報総数 nが入力され ている。秘密情報分散装置 101は、秘密情報 s、閾値 k、および分散情報総数 nを用 いて、 n個の分散秘密情報 vi (i= l , 2, . . . , n)を生成し、対応する記憶装置 300 iの分散秘密情報記憶装置 301— iに格納する。
[0027] 不正者特定情報生成装置 102には、想定不正者数 tおよび分散情報総数 nと、秘 密情報分散装置 101からの n個の分散秘密情報 vi (i= l , 2, . . . , n)が入力されて いる。不正者特定情報生成装置 102は、想定不正者数 tと分散情報総数 nと n個の分 散秘密情報 viとを用いて、 n個の分散情報 vi (i= l , 2, . . . , n)に対応する不正者 特定情報 Aiを生成し、対応する記憶装置 300— iの不正者特定情報記憶装置 302 iに格納する。
[0028] 図 3は、復元装置 200の構成を示すブロック図である。図 3を参照すると、復元装置
200は秘密情報復元装置 201および不正者特定装置 202を有している。
[0029] 復元装置 200には閾値 kおよび想定不正者数 tが入力されている。復元装置 200 は、記憶装置 300—;!〜 300— nのうち k個の記憶装置 300— i—;!〜 300— i—k力 S 備える分散秘密情報記憶装置 301—i—;!〜 301—i—kから分散秘密情報 v{i—l } 〜v{i— k}を読出す。また、復元装置 200は、記憶装置 300— i—;!〜 300— i—kが 備える不正者特定情報記憶装置 302— i—;!〜 302— i—k力も不正者特定情報 A{i
[0030] 復元装置 200は、分散秘密情報 v{i— l }〜v{i— k}と不正者特定情報 A{i— 1 }〜 A{i— k}とを用いて、改竄された分散秘密情報を特定する処理を実行する。改竄さ れた分散秘密情報があれば、復元装置 200は、改竄を検出したことを示す記号と、 不正者 (あるいは改竄された分散秘密情報)の識別子を要素とする集合とを出力する 。また、改竄された分散秘密情報がなければ、復元装置 200は、分散秘密情報 v{i— l }〜v{i— k}を用いて秘密情報を復元し、復元された秘密情報と、改竄が無かったこ とを示す空集合とを出力する。
[0031] 不正者特定装置 202は、記憶装置 300—;!〜 300— nのうち k個の記憶装置 300 —i—;!〜 300— i—kの備える分散秘密情報記憶装置 301— i—;!〜 301— i—kおよ び不正者特定情報記憶装置 302— i—;!〜 302— i—kから分散秘密情報 v{i—l }〜 v{i— k}および A{i— l }〜A{i— k}を読み出し、改竄された分散秘密情報を特定す る処理を実行する。改竄が検出されれば、不正者特定装置 202は、不正者の識別子 を要素とする集合を出力する。改竄が検出されなければ、不正者特定装置 202は、 不正者が存在しな力、つたことを示す空集合を出力する。不正者特定装置 202の出力 する集合 (不正者リスト) Lは、復元装置 200から出力されると共に秘密情報復元装置 201に送られる。
[0032] 秘密情報復元装置 201は、不正者特定装置 202と同じ k個の記憶装置 300— i—1 〜300— i—kの備える分散秘密情報記憶装置 301—i—;!〜 301—i—kから分散秘 密情報 v{i— l }〜v{i— k}を読み出し、集合 Lが空集合であったときだけ秘密情報を 復元する処理を実行し、復元された秘密情報を出力する。集合 Lが空集合でなけれ ば、秘密情報復元装置 201は、改竄が検出されたことを示す記号を秘密情報の代わ
りに出力する。
[0033] ここで、図 2に示した分散情報生成装置 100と図 3に示した復元装置 200とは、例え ば論理回路等から構成される LSI (Large Scale Integration)や DSP (Digital Signal Processor)等の半導体集積回路によって実現できる。また、分散情報生成 装置 100および復元装置 200は、プログラムを実行するコンピュータによっても実現 できる。
[0034] 図 4は、分散情報生成装置 100または復元装置 200を実現するためのコンピュータ の構成を示すブロック図である。図 4を参照すると、コンピュータは、処理装置 10、入 力装置 20、および出力装置 30を備えている。処理装置 10は、プログラムにしたがつ て所定の処理を実行する。入力装置 20は、処理装置 10に対するコマンドや情報の 入力に用いられる入力装置である。出力装置 30は、処理装置 10の処理結果をモニ タするため出力装置である。
[0035] また処理装置 10は、 CPU11、主記憶装置 12、記録媒体 13、データ蓄積装置 14 、メモリ制御インタフェース部 15、および I/Oインタフェース部 16を有し、それらがバ ス 18を介して相互に接続された構成である。
[0036] CPU11はプログラムを実行するプロセッサである。主記憶装置 12は、 CPU11の 処理に必要な情報を一時的に記憶する。記録媒体 13は、 CPU11に実行させるため のプログラムを記憶している。データ蓄積装置 14は、秘密情報やアクセス構造デー タを記憶する。メモリ制御インタフェース部 15は、主記憶装置 12、記録媒体 13、また はデータ蓄積装置 14のデータの書き込みおよび読み出しを制御するインタフェース 装置である。 I/Oインタフェース部 16は、入力装置 20および出力装置 30とのデータ の入出力を制御するインタフェース装置である。
[0037] なお、ここではデータ蓄積装置 14が処理装置 10内に存在する例を示したが、デー タ蓄積装置 14は処理装置 10内に無くてもよい。他の構成例としてデータ蓄積装置 1 4が処理装置 10と別個に存在し、処理装置 10と接続されていてもよい。また、データ 蓄積装置 14を、図 2、 3に示した分散秘密情報記憶装置 301および不正者特定情報 記憶装置 302を備える記憶装置 300として用いることもできる。
[0038] また、記録媒体 13は、磁気ディスク、半導体メモリ、光ディスク、あるいはその他の
記録媒体である。
[0039] 図 5は、分散情報生成装置 100の動作を示すフローチャートである。図 5を参照す ると、まず分散情報生成装置 100に秘密情報 s、閾値 k、分散情報総数 n、および想 定不正者数 tが入力される (ステップ Al)。分散情報生成装置 100内では、まず秘密 情報分散装置 101が秘密情報 s、閾直 k、および分散情報総数 nを用いて分散符号 化の処理を実行して n個の分散秘密情報 vl〜vnを生成し、各記憶装置 300— ;!〜 3 00— nの分散秘密情報記憶装置 301—;!〜 301—nに格納する(ステップ A2)。
[0040] 次に、不正者特定情報生成装置 102は、入力された想定不正者数 tおよび分散情 報総数 nと、秘密情報分散装置 101で生成された分散秘密情報 vl〜vnとを用いて、 分散秘密情報 V;!〜 vnのそれぞれに対応した不正者特定情報 A;!〜 Anを生成し、各 記憶装置 300— ;!〜 300— nの不正者特定情報記憶装置 302— ;!〜 302— nに格納 する(ステップ A3)。
[0041] 図 6は、復元装置 200の動作を示すフローチャートである。図 6を参照すると、まず 復元装置 200に閾値 kおよび想定不正者数 tが入力される(ステップ Bl)。続いて、 復元装置 200は k個の記憶装置 300に格納されている不正者特定情報および分散 秘密情報を読み出す (ステップ B2)。
[0042] そして、復元装置 200内の不正者特定装置 202が各不正者特定情報、各分散秘 密情報、閾値 kおよび想定不正者数 tを用いて、不正者の識別子を元とする集合 Lを 生成する(ステップ B3)。
[0043] 次に秘密情報復元装置 201が、集合 Lが空集合であるか否力、を判定する(ステップ B4)。集合 Lが空集合でなければ、秘密情報復元装置 201は改竄があったことを示 す記号を生成する(ステップ B5)。集合 Lが空集合であれば、秘密情報復元装置 20 2は k個の分散秘密情報を用いて秘密情報を復元する(ステップ B6)。最後に、復元 装置 200は、不正者特定装置 201で生成された集合 Lと、秘密情報復元装置 202で 生成された記号あるいは復元された秘密情報とを出力する(ステップ B7)。
[0044] (第 1の実施例)
第 1の実施例の秘密情報分散システムは、秘密情報のデータ集合に GF (p)を用い る。 pは素数の冪乗であり、素数そのものである場合もある。 GF (p)は、素数の冪乗 p
に対する有限体であり、有限体上の加算を +、減算を 乗算を *、除算を/、冪乗 算を'で表す。
[0045] 第 1の実施例における秘密情報分散装置 101は、文献 1に記載された既存の(k, n )閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復元装置 201は 、その (k, n)閾値秘密分散法に対応する復元方法を用いて秘密情報を復元する。
[0046] 次に第 1の実施例の分散情報生成装置 100および復元装置 200について説明す
[0047] 第 1の実施例の分散情報生成装置 100には秘密情報 s、閾ィ直 k、分散情報総数 n および想定不正者数 tが入力される。第 1の実施例では、 k≥3*t+lが成立してい るあのとする。
[0048] 分散情報生成装置 100内では、秘密情報分散装置 101が GF(p)上の定数項が s である k—1次多項式をランダムに生成する。この k— 1次多項式を fs(x)と記す。そし て、秘密情報分散装置 101は、 fs(l), fs(2), ···, fs(n)を計算し、その計算結果と 入力 iとのペア Vi= (i, vi) (i=l, 2, ···, n, vi = fs(i))を分散秘密情報として、それ ぞれ記憶装置 300— iの分散秘密情報記憶装置 301— iに格納する。
[0049] 図 7は、第 1の実施例における不正者特定情報生成装置 102の構成を示すブロッ ク図である。図 7を参照すると、不正者特定情報生成装置 102は、分散秘密情報変 換装置 401 RS情報源生成装置 402、および RS符号語生成装置 403を有している
[0050] 分散秘密情報変換装置 401は、秘密情報分散装置 101の出力である Vi= (i, vi) を取得し、 q≥n*pとなる qに対し、有限体 GF (q)上で xi = p * (i— 1) +vi(i=l, 2 , . . . , η)を計算し、 RS符号語生成装置 403に出力する。
[0051] RS情報元生成装置 402は、有限体 GF(q)上のランダムなデータ eO, el, · · ·, et を生成し、 RS符号語生成装置 403に出力する。
[0052] RS符号語生成装置 403は、分散秘密情報変換装置 401から出力された xi(i=l, 2, . . . , n)と、 RS情報源生成装置 402から出力された eO, el, ···, etを取得し、 有限体 GF(q)上で Ai = e0 + el *xi + e2*xi'2H
2, ···, n
)を計算し、それぞれを記憶装置 300— i(i=l, 2, ···, !!)に出力する。この Al, A2
, ···, Anが第 1の実施例における不正者特定情報となる。各 Aiは記憶装置 300— i の不正者特定情報記憶装置 302— iに格納される。
[0053] 一方、第 1の実施例の復元装置 200には閾値 kおよび想定不正者数 tが入力される
〇
[0054] 復元装置 200は、 k個の記憶装置 300— i—1, 300— i— 2, ···, 300— i— kの各 分散秘密情報記憶装置 301からデータ V{i」} = (i _J, v{i」})を取得する。また、 復元装置 200は、同じ k個の記憶装置 300— i—1, 300— i— 2, ···, 300— i— kの 各不正者特定情報記憶装置 302からデータ A{i _J}(j = l, 2, ···, k)を取得する。 ここで取得した (A{i_l}, A{i_2}, ···, A{i_k})は、 RS情報源生成装置 402の 出力 eO, el, ···, etを情報源とするリード '·ソロモン(Reed— Solomon)誤り訂正符 号の符号語になっている。したがって、 k≥3t+lであれば、 A{i— 1}に含まれる t個 の誤りを訂正し、元の情報源 eO, el, ···, etを復元することが可能である。
[0055] 復元装置 200内では、記憶装置 300— i—1, ···, 300— i—kから取得したデータ V{i _J} = (i _J, v{i J})とデータ A{i J}が不正者特定装置 202に入力される。
[0056] 図 8は、第 1の実施例における不正者特定装置 202の構成を示すブロック図である 。図 8を参照すると、不正者特定装置 202は RS誤り訂正装置 501および不正者集合 出力装置 502を有している。
[0057] RS誤り訂正装置 501は、データ V{iJ} = (iJ, v{i J })とデータ A{i J }を用い てリード '·ソロモン誤り訂正処理を実行し、不正者特定情報生成装置 102の RS情報 源生成装置 402が生成したものと同じ eO, el, ···, etを復元し、不正者集合出力装 置 502に出力する。このときリード'ソロモン誤り訂正処理としては既存の方法を用い ればよい。既存のリード'ソロモン誤り訂正処理の一例としてバーレカンプ法がある。
[0058] 不正者集合出力装置 502は、 k個の記憶装置 300— i—1, 300— i— 2, ..·, 300 — i—kの各分散秘密情報記憶装置 301からデータ V{i」} = (i _J, v{i」})を取得 する。また、不正者集合出力装置 502は、同じ k個の記憶装置 300— i—1, 300— i —2, ···, 300— i—kの各不正者特定情報記憶装置 302からデータ A{iJ}(j = l, 2, ···, k)を取得する。そして不正者集合出力装置 502は、取得したデータを用い て x{i」}=p* (i」一l)+v{i」}(j = l, 2, ···, k)を計算し、 A{i」}=e0 + el
* x{i J } + e2 * x{i J } ' 2 H h et * x{i J } 'tが成立しな!/、i Jの集合 Lを不正 者リストとして出力すると共に秘密情報復元装置 201に送る。
[0059] 秘密情報復元装置 201は不正者特定装置 202からの集合 (不正者リスト) Lを取得 し、集合 Lが空集合か否か判定する。集合 Lが空集合でなければ、秘密情報復元装 置 201は不正が検出されたことを示す記号を出力する。集合 Lが空集合であれば、 秘密情報復元装置 201は、それは不正が検出されな力、つたことを意味するので、秘 密情報を復元する処理を行う。秘密情報を復元する処理において、秘密情報復元装 置 201は記憶装置 300— i—1, ···, 300— i— kの各分散秘密情報記憶装置 301か ら分散秘密情報 V{i」} = (i _J, v{i」})を取得し、それらを用いて秘密情報を復 元する。ここで復元される秘密情報は、秘密情報分散装置 101が分散秘密情報を生 成するときに用いた k— 1次多項式 fs (X)の x= 1のときの値 fs (0)である。ここで fs (0) を求める方法としては既存の方法を用いればよい。既存の方法の一例として k元 1次 の連立方程式を解く方法やラグランジュ補間を用いる方法がある。
[0060] 不正者特定装置 202の出力である集合 Lと、秘密情報復元装置 201の出力とが、 復元装置 200の出力となる。
[0061] 以上説明したように、第 1の実施例によれば、分散情報生成装置 100において、秘 密情報分散装置 101は (k, n)閾値秘密分散法で n個の分散秘密情報 Vi(i=l, 2, ···, n)を生成する。不正者特定情報生成装置 102は、秘密情報分散装置 101の生 成した n個の分散秘密情報 Viと、閾値 kとの間で所定の条件を満たす値を tとしたラン ダムな t次多項式とを用いて、各分散秘密情報 Viに対する不正者特定情報 Ai (i=l , 2, ···, η)を生成する。その際、不正者特定情報生成装置 102は、任意の k個の 分散秘密情報 V{i _J}(j = l, 2, ···, k)のうち t個以下のものに誤りがある場合にリ ード 'ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不正者特定情 報を生成する。一方、復元装置 200において、不正者特定装置 202は、任意の k個 の分散秘密情報 V{i _J}(j = l, 2, ···, k)およびそれらに対応する不正者特定情 報を用いて、リード'ソロモン誤り訂正処理を行って、誤った分散秘密情報を示す記 号の集合 Lを出力する。秘密情報復元装置 201は、不正者特定装置 202によるリー ド 'ソロモン誤り訂正処理にて誤りが検出されな力 たとき、 k個の分散秘密情報 V{i
J}から秘密情報を復元する。このように、分散秘密情報 Viと、ランダムな t次多項式 とを用いて、リード'ソロモン誤り訂正処理による誤りの検出および訂正を可能とする 不正者特定情報を生成することで、改竄された分散秘密情報の特定を可能とする秘 密情報分散システムの分散秘密情報のサイズを従来よりも小さくすることができる。
[0062] また、第 1の実施例では、各分散秘密情報 Vi(i=l, 2, ···, n)から一意に導き出 される値 xi(i=l, 2, ···, n)を、 kとの間で所定の条件を満たす値を tとしたランダム な t次多項式に代入し、得られた値を各 Viに対する不正者特定情報 Aiとする。その 際、任意の vi, vjについて vi≠vjであれば xi≠xjが成立するように、分散秘密情報 Vi と iから xiを生成するとき、 q≤n * pとなる qに対して GF (q)上で xi = p * (i— 1) +vi (i =1, 2, ···, n)を計算する。秘密情報のサイズを pとする本実施例では分散秘密情 報のサイズ力 ¾*qとなる。また、改竄された分散秘密情報が集合 Lの元として出力さ れる確率、つまり改竄を検出できる確率は 1 1/qとなる。文献 5に開示された方式 で同じパラメーターを用いた場合に分散秘密情報のサイズは p*q'{t + 2}なので、 本実施例によれば、分散秘密情報のサイズが p * q' {t + 2}から p * qに大幅に低減 されている。
[0063] (第 2の実施例)
第 2の実施例の秘密情報分散システムは、秘密情報のデータ集合に有限体 GF(p 'Ν)を用いる。ここで ρは第 1の実施例で用いたのと同じ素数の冪乗である。また第 1 の実施例と同様、有限体上の加算を +、減算を 乗算を *、除算を/、冪乗算を' で表す。
[0064] 第 2の実施例における秘密情報分散装置 101も第 1の実施例同様、文献 1に記載 された (k, n)閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復元 装置 201は、その(k, n)閾値秘密分散法に対応する復元方法を用いて秘密情報を 復元する。
[0065] 次に第 2の実施例の分散情報生成装置 100および復元装置 200について説明す
[0066] 第 2の実施例の分散情報生成装置 100には、秘密情報 s、閾ィ直 k、分散情報総数 n 、および想定不正者数 tが入力される。第 2の実施例でも、 k≥3*t+lが成立してい
るあのとする。
[0067] 分散情報生成装置 100は、 s, k, n, tが入力されると、秘密情報分散装置 101によ り GF (p'N)上の定数項力 である k— 1次多項式をランダムに生成する。この k— 1次 多項式を f s (x)と記す。
[0068] 分散情報生成装置 100内では、秘密情報分散装置 100が fs (1), fs(2), ···, f s ( n)を計算し、その計算結果と入力 iのペア Vi=(i, v{i, 0}, v{i, 1}, ···, v{i, N-l }) (i=l, 2, ···, n)をそれぞれ記憶装置 300— iの分散秘密情報記憶装置 301— i に格納する。ここで、(v{i, 0}, ···, v{i, N— 1})は fs(i)のべクトノレ表現であり、各 v {i, j}は GF(p)の元である。
[0069] 図 9は、第 2の実施例における不正者特定情報生成装置 102の構成を示すブロッ ク図である。図 9を参照すると、不正者特定情報生成装置 102は、分散秘密情報変 換装置 601、第 1の RS情報源生成装置 602、第 1の RS符号語生成装置 603、第 2 の RS情報源生成装置 604、および第 2の RS符号語生成装置 605を有して!/、る。
[0070] 不正者特定情報生成装置 102に分散情報総数 nおよび想定不正者数 tが入力さ れると、分散秘密情報変換装置 601は、秘密情報分散装置 101の出力である Vi= (i , v{i, 0}, ···, v{i, N— 1})を取得し、 GF(p)上でランダムに eを選択し、第 2の RS 符号語生成装置 605に出力する。
[0071] また、分散秘密情報変換装置 601は GF(p)上で yi=v{i, 0}+v{i, 1} *e + v{i, 2} *e'2+.''+v{i,
2, ···, n)を計算する。続いて、分 散秘密情報変換装置 601は、 q≥n*pとなる qに対し、 GF(q)上で、 xi = p* (i— 1) +yi(i=l, 2, ···, n)を計算し、第 1の RS符号語生成装置 603に出力する。
[0072] 第 1の RS情報源生成装置 602は、 GF (q)上のランダムなデータ eO, el, ···, etを 第 1の RS符号語生成装置 603に出力する。
[0073] 第 1の RS符号語生成装置 603は、分散秘密情報変換装置 601から出力された xi ( i=l, 2, . . . , n)と、第 1の RS情報源生成装置 602から出力された eO, el, ···, e tを取得し、 GF (q)上で Cs (xi) = eO + e 1水 xi + e2水 χΓ 2 + ト et水 xi't (i= 1 ,
2, ···, n)を計算し出力する。
[0074] 第 2の RS情報源生成装置 604は、 GF(p)上のランダムなデータ rl, ···, rtを選択
し、第 2の RS符号語生成装置 605に出力する。
[0075] 第 2の RS符号語生成装置 605は、分散秘密情報変換装置 601から出力された eと 、第 2お RS情報源生成装置 604から出力された rl, ···, rtとを取得し、 GF(q)上で Ce(xi)=e + rl*i + r2*r2+
2, ···, n)を計算し出力する。
[0076] 第 1の RS符号語生成装置 603から出力された Cs(xi) (i=l, 2, ···, n)と、第 2の RS符号語生成装置 605から出力された Ce(i)とからなる Ai=(Cs(xi), Ce(i)) (i = 1, 2, ···, n)が、分散秘密情報 viに対応する不正者特定情報となる。不正者特定 情報 Al, A2, ···, Anの各々は各記憶装置 300— i(i=l, 2, ···, n)に出力される 。各 Aiは記憶装置 300— iの不正者特定情報記憶装置 302— iに格納される。
[0077] 一方、第 2の実施例の復元装置 200には閾値 kおよび想定不正者数 tが入力される
〇
[0078] 復元装置 200は、 k個の記憶装置 300— i—1, 300— i— 2, ···, 300— i— kの各 分散秘密情報記憶装置 301からデータ V{i」} = (i _J, v{i _J, 1}, v{i」, 2}, ·· ·, v{i^, N— 1})を取得する。また、復元装置 200は、同じ k個の記憶装置 300— i 一 1, 300— i— 2, ···, 300— i—kの各不正者特定情報記憶装置 302からデータ A {i _J}(j = l, 2, ···, k)を取得する。
[0079] この八 」}=(じ3( {1」}), Ce(i」))において、(Cs(x{i— 1}), Cs(x{i_2}) , ···, Cs(x{i— k}))は、第 1の RS情報源生成装置 602から出力された eO, el, ·· ·, etを情報源とするリード '·ソロモン誤り訂正符号の符号語になっている。したがって 、 k≥3t+lであれば、 Cs(x{iJ})に含まれる t個の誤りを訂正し、元の情報源 eO, e 1, ···, etを復元することが可能である。
[0080] また同様に、 (Ce(i_l), Ce(i— 2), ···, Ce(i— k))は e, rl, r2, ···, rtを情報 源とするリード '·ソロモン誤り訂正符号の符号語になっている。ここで eは分散秘密情 報変換装置 601の出力である。また、 rl, ···, rtは第 2の RS符号語生成装置 605の 出力である。したがって、 k≥3t+lであれば、 Ce(iJ)に含まれる t個の誤りを訂正 し、元の情報源 e, rl, ···, rtを復元することが可能である。
[0081] 不正者特定装置 202には、 k個の記憶装置 300— i—1, ···, 300— i— kの分散秘 密情報のデータおよび不正者特定情報のデータが入力される。
[0082] 図 10は、第 2の実施例における不正者特定装置 202の構成を示すブロック図であ る。図 10を参照すると、不正者特定装置 202は第 1の RS誤り訂正装置 701、第 2の 誤り訂正装置 702、および不正者集合出力装置 703を有して!/、る。
[0083] 第 1の RS誤り訂正装置 701は符号語(Cs(x{i— 1}), ···, Cs (x{i— k}) )に対して リード '·ソロモン誤り訂正処理を実行し、不正者特定情報生成装置 102の第 1の RS情 報源生成装置 602が出力したのと同じ eO, el, ···, etを復元し、不正者集合出力 装置 703に出力する。
[0084] 第 2の RS誤り訂正装置 702は、符号語(Ce(i— 1), ···, Ce (i—k) )に対してリード •ソロモン誤り訂正処理を実行し、不正者特定情報生成装置 102の分散秘密情報変 換装置 601が出力したのと同じ eを復元し、不正者集合出力装置 703に出力する。
[0085] 不正者集合出力装置 502は、 k個の記憶装置 300— i—1, 300— i— 2, ..·, 300 — i—kの各分散秘密情報記憶装置 301からデータ V{i _J} = (i _J, v{i _J, 0}, ··· , v{i J, N— 1})を取得し、不正者特定情報記憶装置 302からデータ A{i _J} = (C s(x{i」}), Ce(i _J)) (j = l, 2, ···, k)を取得する。そして、不正者集合出力装置
502は、 GF(p)上で yi=v{i, 0}+v{i, 1} *e + v{i, 2} *e'2+ hv{i, N— l}e
ΊΝ— l}(i=l, 2, ···, n)を計算し、さらに GF(q)上で、 x{i」}=p* (i」一 1) + yi(i=l, 2, ···, !!)を計算する。続いて不正者集合出力装置 502は、 Ce(i _J)
= eO + el *x{iJ}+e2*x{iJ「2H het * x{i J } 'tが成立しない i Jの集 合 Lを不正者リストとして出力する。この集合 (不正者リスト) Lが不正者特定装置 202 の出力となる。
[0086] 秘密情報復元装置 201は、不正者特定装置 202から集合 Lを取得し、集合 Lが空 集合か否か判定する。集合 Lが空集合でなければ、秘密情報復元装置 201は、不正 が検出されたことを示す記号を出力する。集合 Lが空集合であれば、不正が検出さ れな力、つたことを意味するので、秘密情報復元装置 201は、 k個の記憶装置 300— i _1, ···, 300— i— kの各分散秘密情報記憶装置 301から分散秘密情報 V{i」} =(i _J, v{i _J, 0}, ···, v{i」, N—l})を取得し、それらを用いて秘密情報を復 元する。ここで復元される秘密情報は、秘密情報分散装置 101が分散秘密情報を生 成するときに用いた k— 1次多項式 fs (X)の x= 1のときの値 fs (0)である。ここで fs (0)
を求める方法としては既存の方法を用いればよい。既存の方法の一例として k元 1次 の連立方程式を解く方法やラグランジュ補間を用いる方法がある。
[0087] 不正者特定装置 202の出力である集合 Lと、秘密情報復元装置 201の出力とが、 復元装置 200の出力となる。
[0088] 以上説明したように、第 2の実施例では、各分散秘密情報 Vi(i=l, 2, · · ·, n)と、 ランダムに選択した eとから一意に導き出される xi(i=l, 2, ···, n)を求め、 kとの間 で所定の条件を満たす値を tとしたランダムな t次多項式 Cs (xi)に xiを代入して Cs (x i)を求め、 Ce(0)=eとなるランダムな t次多項式に iを代入して Ce(i)を求め、 Cs(xi) と Ce(i)からなる値を、各 Viに対する不正者特定情報 Aiとする。その際、任意の vi, V jについて vi≠vjであれば xi≠xjが十分に高い確率で成立するように、まずランダム な値 eを用いて yi=v{i, 0}+v{i, 1} *e + v{i, 2} *e'2+ hv{i, N— l}e'{N
-l}(i=l, 2, ···, n)を計算し、それを用いて xi = p* (i—l)+yi(i=l, 2, ···, n)を計算する。秘密情報のサイズを p'Nとする本実施例では分散秘密情報のサイズ 力 ¾'{N+1} *qとなり、改竄を検出する確率力 — N/p— 1/qとなる。第 1の実施 例では、秘密情報のサイズ pと不正検出確率 l— との間に q≥n*pという制約が あつたが、第 2の実施例では、 pを適切に選択することにより、秘密情報のサイズと不 正検出確率との間の制約を解消することができる。
[0089] (第 3の実施例)
第 3実施例の秘密情報分散システムは、秘密情報のデータ集合に GF (p)を用いる 。なお、 GF(p)は素数の冪乗 pに対する有限体であり、有限体上の加算を +、減算 を 乗算を *、除算を/、冪乗算を'で表す。
[0090] 第 3の実施例における秘密情報分散装置 101も第 1の実施例と同様、文献 1に記 載された (k, n)閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復 元装置 201は、その(k, n)閾値秘密分散法に対応する復元方法を用いて秘密情報 を復元する。
[0091] 次に第 3実施例の分散情報生成装置 100および復元装置 200について説明する。
[0092] 第 3実施例の分散情報生成装置 100には秘密情報 s、閾直 k、分散情報総数 n、お よび想定不正者数 tが入力される。第 3の実施例では、 k≥2*t+lが成立しているも
のとする。
[0093] 分散情報生成装置 100内では、秘密情報分散装置 101が GF(p)上の定数項が s である k 1次多項式をランダムに生成する。この k 1次多項式を fs (x)と記す。
[0094] 秘密情報分散装置 101は、 fs(l), fs(2), ···, fs (n)を計算し、その計算結果と入 力 iのペア Vi=(i, vi) (i=l, 2, ···, n, vi = fs(i))をそれぞれ記憶装置 300— iの 分散秘密情報記憶装置 301— iに格納する。
[0095] 図 11は、第 3の実施例における不正者特定情報生成装置 102の構成を示すブロッ ク図である。図 11を参照すると、不正者特定情報生成装置 102は、第 1のチェック情 報生成装置 801および第 2のチェック情報生成装置 802を有している。
[0096] 第 1のチェック情報生成装置 801は分散情報総数 nおよび想定不正者数 tに基づ いて、 GF(p)上のランダムなデータ e{0, i} (i=l, 2, ···, n)、および GF (p)上のラ ンダムな t 1次多項式 e{l, i}(x) (i=l, 2, ···, n)を生成して出力すると共に、第 2のチェック情報生成装置 802に送る。
[0097] 第 2のチェック情報生成装置 802は、秘密情報分散装置 101で生成された(i, vi) ( i=l, 2, ···, n)と、第 1のチェック情報生成装置 801で生成された e{0, i}, e{l, i} (x)と力、ら、 i=l, 2, ···, nj = l, 2, ···, i— 1, i+1, ···, nに対して、 a{i, j}=e {0, j} *vi + e{l, j} (i)を計算し、出力する。
[0098] 第 1のチェック情報生成装置 801で生成された e{0, i}, e{l, i} (x)と、第 2のチエツ ク情報生成装置 802で生成された a{i, j}とからなる Ai=(e{0, i}, e{l, i}(x), a{i, 1}, a{i, 2}, ···, a{i, i 1}, a{i, i+1}, ···, a{i, n})が不正者特定情報生成装 置 102の出力となる。各 Aiは記憶装置 300— iの不正者特定情報記憶装置 302— i に格納される。
[0099] 一方、第 3の実施例の復元装置 200には閾値 kおよび想定不正者数 tが入力される
[0100] 復元装置 200は、 k個の記憶装置 300— i—1, 300— i— 2, ···, 300— i— kの各 分散秘密情報記憶装置 301からデータ V{i」} = (i _J, v{i」})を取得する。また、 復元装置 200は、同じ k個の記憶装置 300— i—1, 300— i— 2, ···, 300— i— kの 各不正者特定情報記憶装置 302からデータ A{i _J}(j = l, 2, ···, k)を取得する。
復元装置 200の内部では、不正者特定装置 202が、記憶装置 300— i— 1, 300— i— 2, ···, 300— i— kの各分散秘密情報記憶装置 301からのデータ V{iJ} = (i j, v{i J})と、不正者特定情報記憶装置 302からのデータ A{i _J} = (e{0, ij}, e
, i _ j} (x) , a{i _ j, 1}, a{i _ j, 2}, · · ·, a{i _ j, i _ j , aU」, i」
·, a{ij, n}) (j = l, 2, ···, k)とを用いて、各 l = i— 1, i— 2, ···, i— kおよび m= i_l, i— 2, ..·, i_k(m≠l)に対し、 a{l, m}=e{0, m} *vl + e{l, m} (1)という関 係が成立するか否かをチェックする。そして、不正者特定装置 202は、チェックの結 果において、 k/2個以上の mについて上の関係が成立しな力 た 1の集合を不正者 リスト Lとして出力する。
[0102] 秘密情報復元装置 201は、不正者特定装置 202から不正者リスト Lを取得し、集合 Lが空集合であるか否か判定する。集合 Lが空集合でなければ、秘密情報復元装置 201は、不正が検出されたことを示す記号を出力する。集合 Lが空集合であれば、そ れは不正が検出されな力、つたことを意味するので、秘密情報復元装置 201は、記憶 装置 300— i— 1, ···, 300— i—kの各分散秘密情報記憶装置 301から分散秘密情 報 V{i」} = (i _J, v{i」})を取得し、秘密情報分散装置 101が秘密情報の分散処 理に用いた k 1次多項式 fs (x)に対する fs (0)を求め、それを秘密情報として出力 する。 fs(0)を求める方法としては既存の方法を用いればよい。既存の方法の一例と して k元 1次の連立方程式を解く方法やラグランジュ補間を用いる方法等がある。
[0103] 不正者特定装置 202の出力である集合 Lと、秘密情報復元装置 201の出力とが、 復元装置 200の出力となる。
[0104] 以上説明したように、第 3の実施例によれば、分散情報生成装置 100において、秘 密情報分散装置 101は (k, n)閾値秘密分散法で n個の分散秘密情報 Vi(i=l, 2, ···, n)を生成する。不正者特定情報生成装置 102は、秘密情報分散装置 101の生 成した n個の分散秘密情報 Viと、自身で生成したランダムなデータと、閾値 kとの間で 所定の条件を満たす値を tとしたランダムな t— 1次多項式とを用いて、チェック条件 式から得られる値を、分散秘密情報 Vi(i=l, 2, ···, n)に対応する不正者特定情 報 Ai(i=l, 2, ···, n)とする。その際に生成される不正者特定情報 Aiは、その Aiと 、任意の i、j(i=l, 2, ···, nj = l, 2, · · · , n、 i≠j)の組みと、分散秘密情報 Viと
でチェック条件式を満たすものとする。一方、復元装置 200において、不正者特定装 置202は、任意の1^個の分散秘密情報¥{1^}( =1, 2, ···, k)およびそれらに対 応する不正者特定情報 A{i _J}(j = l, 2, ···, k)を用いて上述したチェック条件式 が成立するか否力、を判定し、その判定結果に基づレ、て k個の各分散秘密情報の改 竄の有無を判断する。そして分散秘密情報の改竄が無ければ、復元装置 200は k個 の分散秘密情報 V{i J}から秘密情報を復元する。このように、分散秘密情報 Viと、 ランダムなデータと、ランダムな t— 1次多項式とから不正者特定情報を生成すること で、改竄された分散秘密情報の特定を可能とする秘密情報分散システムの分散秘 密情報のサイズを従来よりも小さくすることができる。
[0105] また、秘密情報のサイズを pとする第 3の実施例では、分散秘密情報のサイズが ρΊ n + t+1}となる。また、改竄された分散秘密情報が集合 Lの元として出力される確率 、つまり改竄を検出できる確率は 1 k/ (2* p)となる。文献 4に開示された方式で 同じパラメーターを用いた場合に分散秘密情報のサイズは ρΊ3η— 2}なので、本実 施例によれば、分散秘密情報のサイズが ρΊ3η— 2}からが p'{n + t+l}に大幅に 削減されている。
[0106] (第 4の実施例)
第 4の実施例の秘密情報分散システムは、秘密情報のデータ集合に GF (p'N)を 用いる。なお、 GF(p'N)は、 pを素数の冪乗とした p'Nに対する有限体である。有限 体上の加算を +、減算を 乗算を *、除算を/、冪乗算を'で表す。
[0107] 第 4の実施例における秘密情報分散装置 101も第 1の実施例と同様、文献 1に記 載された (k, n)閾値秘密分散法を用いて秘密情報を分散符号化する。そして、秘密 情報復元装置 201は、その(k, n)閾値秘密分散法に対応する復元方法を用いて秘 密情報を復元するものとする。
[0108] 次に第 4の実施例における分散情報生成装置 100および復元装置 200について 説明する。
[0109] 第 4の実施例の分散情報生成装置 100には、秘密情報 s、閾直 k、分散情報総数 n 、および想定不正者数 tが入力される。第 4の実施例では、第 3の実施例と同様に k≥ 2 *t+ 1が成立しているものとする。
分散情報生成装置 100内では、まず秘密情報分散装置 101が GF(p'N)上の定 数項力 である k 1次多項式をランダムに生成する。この k 1次多項式を fs (X)と記 す。そして、秘密情報分散装置 101は、 fs(l), fs(2), ···, fs(n)を計算し、その計 算結果と入力 iのペア Vi= (i, v{i, 1}, v{i, 2}, ···, v{i, N}) (i=l, 2, ···, n, vi =fs (i) )をそれぞれ記憶装置 300— iの分散秘密情報記憶装置 301—iに格納する
[0111] 図 12は、第 4の実施例における不正者特定情報生成装置 102の構成を示すブロッ ク図である。図 12を参照すると、不正者特定情報生成装置 102は、第 1のチェック情 報生成装置 901および第 2のチェック情報生成装置 902を有している。
[0112] 第 1のチェック情報生成装置 901は、分散情報総数 nおよび想定不正者数 tに基づ いて、 GF(p)上のランダムなデータ e{0, i} (i=l, 2, ···, n)、および GF (p)上のラ ンダムな t 1次多項式 e{l, i}(x) (i=l, 2, ···, n)を生成して出力すると共に、第 2のチェック情報生成装置 902に送る。
[0113] 第 2のチェック情報生成装置 902は、秘密情報分散装置 101で生成された(i, vi) ( i=l, 2, ···, n)と、第 1のチェック情報生成装置 801から取得した e{0, i}, e{l, i} (x)と力、ら、 i=l, 2, ···, n, j = l, 2, ···, i— 1, i+1, ···, nに対して、 a{i, j}=e
{0, j} *v{i, l}+e{0, j「2*v{i, 2} + he{0, j「N*v{i, N} +e{l, j} (i)を 計算し、出力する。
[0114] 第 1のチェック情報生成装置 901で生成された e{0, i}, e{l, i}(x)と、第 2のチエツ ク情報生成装置 902で生成された a{i, j}とからなる Ai=(e{0, i}, e{l, i}(x), a{i, 1}, a{i, 2}, ···, a{i, i 1}, a{i, i+1}, ···, a{i, n})が不正者特定情報生成装 置 102の出力となる。各 Aiは記憶装置 300— iの不正者特定情報記憶装置 302— i に格納される。
[0115] 一方、第 4の実施例の復元装置 200には閾値 kおよび想定不正者数 tが入力される
[0116] 復元装置 200は、 k個の記憶装置 300— 300— i— 2, ..·, 300— i— kの各 分散秘密情報記憶装置 301からデータ V{i」} = (i _J, v{i _J, 1}, v{i」, 2}, ·· ·, v{i^, N})を取得する。また、復元装置 200は、同じ k個の記憶装置 300— i—1
, 300— i— 2, ···, 300— i—kの各不正者特定情報記憶装置 302からデータ A{i— j}(j = l, 2, ···, k)を取得する。
[0117] 復元装置 200内では、不正者特定装置 202が、まず記憶装置 300 i—1, 300— i— 2, ···, 300— i— kの各分散秘密情報記憶装置 301からのデータ V{iJ} = (i— j, v{i _J, 1}, v{i _J, 2}, ···, v{i J, N})と、不正者特定情報記憶装置 302から のデータ A{i」} = (e{0, i」}, e{l, i」}(x), a{i」, 1}, a{i」, 2}, ..·, a{i _J, i _J-1}, a{i _J, i _J + 1}, ···, a{i J, n}) (j = 1, 2, · · · , k)とを用いて、各 l = i_l, i_2, ···, i_kおよび m = i_l, i_2, ···, i_k(m≠l)に対し、 a{l, m}
= e{0, m}*v{l, l}+e{0, m「2*v{l, 2}H he{0, πιΓΝ*ν{1, N}+e{l, m} (1)という関係が成立するか否かをチェックする。そして、チェックの結果において 、k/2個以上の mについて上の関係が成立しなかった 1の集合を不正者リストしとして 出力する。
[0118] 秘密情報復元装置 201は、不正者特定装置 202から不正者リスト Lを取得し、集合 Lが空集合であるか否か判定する。集合 Lが空集合でなければ、秘密情報復元装置 201は、不正が検出されたことを示す記号を出力する。集合 Lが空集合であれば、そ れは不正が検出されな力、つたことを意味するので、秘密情報復元装置 201は、記憶 装置 300— i—1, ···, 300— i—kの各分散秘密情報記憶装置 301から分散秘密情 報 V{i」} = (i _J, v{i」})を取得し、秘密情報分散装置 101が秘密情報の分散処 理に用いた k 1次多項式 fs (x)に対する fs (0)を求め、それを秘密情報として出力 する。 fs(0)を求める方法としては既存の方法を用いればよい。既存の方法の一例と して k元 1次の連立方程式を解く方法やラグランジュ補間を用いる方法がある。
[0119] 不正者特定装置 202の出力である集合 Lと、秘密情報復元装置 201の出力とが、 復元装置 200の出力となる。
[0120] 秘密情報のサイズを p'Nとする第 4実施例では、分散秘密情報のサイズは ρΊΝ + n + t}となる。また、改竄された分散秘密情報が集合 Lの元として出力される確率、つ まり改竄を検出できる確率は 1 k*N/ (2* p)となる。第 3の実施例では、不正検 出確率 1 k/ (2 * p)が秘密情報のサイズ pから一意に決まって!/、たが、第 4の実施 例では Nを適切に選択することにより、秘密サイズと不正者特定確率を独立に設定
すること力 Sでさる。
[0121] 以上、実施形態(および実施例)を参照して本発明を説明したが、本発明は実施形 態(および実施例)に限定されるものではない。クレームに定義された本発明の構成 や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができ
[0122] この出願 (ま、 2006年 10月 24曰 ίこ出願された曰本出願特願 2006— 288911号を 基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここ に取り込む。