(57)【要約】【課題】分散情報の情報量の増加を抑制しつつ、各メンバの権限レベルに応じた秘密分散を行う秘密分散装置、秘密分散再構成システム、及び秘密分散方法を提供し、権限レベルに応じて秘密分散された情報を再構成する秘密再構成装置、秘密分散再構成システム、及び秘密再構成方法を提供する。【解決手段】秘密分散装置１００は、もとの秘密情報Ｓ及び各メンバの権限レベルＬｉ（ｉ＝１，２，…，ｎ）が入力され、権限レベルＬｉのそれぞれに相当するメンバＩＤ＿ｍｉ、もとの秘密情報Ｓに対応付けられ分散情報Ｘｉ、分散情報を生成するための基数Ｙ、及び、基数Ｙから秘密としておきたい情報を算出するための秘密ＩＤ＿Ｐを算出するＩＤ基数生成部１０４と、算出された基数Ｙ及びメンバＩＤ＿ｍｉから各メンバに配布する分散情報Ｘｉを算出する分散情報生成部１０３とを有する。【選択図】        図１
2004274320.tif 000002
【特許請求の範囲】
【請求項１】
もとの秘密情報から、複数のメンバのそれぞれに配布される分散情報を生成する秘密分散装置において、
上記もとの秘密情報及び上記各メンバの権限レベルが入力され、上記権限レベルのそれぞれに相当するメンバＩＤ、上記もとの秘密情報に対応付けられた分散情報を生成するための基数、及び、上記基数から上記もとの秘密情報を算出するときに用いられる秘密ＩＤを算出するＩＤ基数生成手段と、
上記ＩＤ基数生成手段により算出された上記基数及び上記メンバＩＤから、上記各メンバに配布する分散情報を算出する分散情報生成手段と
を有することを特徴とする秘密分散装置。
【請求項２】
上記もとの秘密情報は、正の整数値を取り、
上記ＩＤ基数生成手段は、
上記権限レベルに応じた桁数を持つ正の整数で、他のメンバＩＤとはそれぞれ互いに素である数を上記メンバＩＤとして算出するメンバＩＤ生成手段と、
上記もとの秘密情報よりも大きい正の整数を上記秘密ＩＤとして算出する秘密ＩＤ生成手段と、
上記秘密ＩＤと正整数の乱数を掛け合わせた値に上記もとの秘密情報を加算して上記基数を算出する基数生成手段と
を有し、
上記分散情報生成手段が、上記基数を上記メンバＩＤで割ったときの剰余を上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１に記載の秘密分散装置。
【請求項３】
上記もとの秘密情報は、正の整数値を取り、
上記ＩＤ基数生成手段は、
上記権限レベルに応じた桁数を持つ素数で、他のメンバＩＤ及び秘密ＩＤとは異なる数を上記メンバＩＤとして算出するメンバＩＤ生成手段と、
上記もとの秘密情報よりも大きい素数で、すべてのメンバＩＤとは異なる値を上記秘密ＩＤとして算出する秘密ＩＤ生成手段と、
上記秘密ＩＤと正整数の乱数を掛け合わせた値に上記もとの秘密情報を加算して上記基数を算出する基数生成手段と
を有し、
上記分散情報生成手段が、上記基数を上記メンバＩＤで割ったときの剰余を上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１に記載の秘密分散装置。
【請求項４】
上記ＩＤ基数生成手段は、
上記権限レベルの最大値を求める最大値選択手段と、
上記最大値選択手段により求められた最大値と予め決められたメンバＩＤの最小値を掛け合わせることにより、上記基数の桁数を算出する基数桁数生成手段と、
上記基数桁数生成手段により算出された基数の桁数となるように、上記正整数の乱数を選択する乱数選択手段と、
上記基数桁数生成手段により算出された基数の桁数を各権限レベルで割り算することにより各メンバＩＤの桁数を算出するメンバＩＤ桁数生成手段と、
上記メンバＩＤ桁数生成手段により算出された各メンバＩＤの桁数を持つ素数を各々選択する桁数指定素数選択手段と
を有することを特徴とする請求項３に記載の秘密分散装置。
【請求項５】
上記もとの秘密情報が多項式でない場合には、上記もとの秘密情報を多項式に変換する多項式変換手段をさらに有し、
上記ＩＤ基数生成手段は、
上記権限レベルに応じた次数を持つ多項式で、他のメンバＩＤとはそれぞれ互いに素である多項式をメンバＩＤとして算出するメンバＩＤ生成手段と、
上記もとの秘密情報を変換した多項式よりも大きい次数を持つ多項式を秘密ＩＤとして算出する秘密ＩＤ生成手段と、
上記秘密ＩＤと乱数の係数を持つ多項式とを掛け合わせた多項式に上記もとの秘密情報を変換した多項式を加算して得られた多項式である上記基数を算出する基多項式生成手段と
を有し、
上記分散情報生成手段が、上記基数を上記メンバＩＤで割ったときの剰余の多項式を、上記各メンバに配布する上記分散情報として算出する、
ことを特徴とする請求項１に記載の秘密分散装置。
【請求項６】
上記もとの秘密情報が多項式でない場合には、上記もとの秘密情報を多項式に変換する多項式変換手段をさらに有し、
上記ＩＤ基数生成手段は、
上記権限レベルに応じた次数を持つ既約多項式で、他のメンバＩＤ及び秘密ＩＤとは異なる多項式をメンバＩＤとして算出するメンバＩＤ生成手段と、
上記もとの秘密情報を変換した多項式よりも大きい次数を持つ既約多項式で、すべてのメンバＩＤとは異なる多項式を秘密ＩＤとして算出する秘密ＩＤ生成手段と、
上記秘密ＩＤと乱数の係数を持つ多項式とを掛け合わせた多項式に上記もとの秘密情報を変換した多項式を加算して得られた多項式である上記基数を算出する基数生成手段と
を有し、
上記分散情報生成手段が、上記基数を上記メンバＩＤで割ったときの剰余の多項式を、上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１に記載の秘密分散装置。
【請求項７】
上記ＩＤ基数生成手段は、
上記権限レベルの最大値を求める最大値選択手段と、
上記最大値選択手段により求められた最大値と予め決められたメンバＩＤの次数の最小値を掛け合わせることにより上記基数の次数を算出する基数次数生成手段と、
上記基数次数生成手段により算出された上記基数の次数となるように、上記乱数の係数を持つ多項式を選択する乱数多項式選択手段と、
上記基数次数生成手段により算出された基数の次数を各権限レベルで割り算することにより各メンバＩＤの次数を算出するメンバＩＤ次数生成手段と、
上記メンバＩＤ次数生成手段により算出された各メンバＩＤの次数を持つ既約多項式を各々選択する次数指定既約多項式選択手段と
を有することを特徴とする請求項６に記載の秘密分散装置。
【請求項８】
上記請求項１から７までのいずれかに記載の秘密分散装置で秘密分散された情報を再構成する秘密再構成装置において、
秘密再構成する際に集められた上記メンバＩＤから、上記もとの秘密情報が再構成できるか否かを判定する判定手段と、
上記判定手段で、再構成が可能であると判定された場合に、集められた上記メンバＩＤ及び分散情報から上記もとの秘密情報を再構成する秘密再構成手段と
を有することを特徴とする秘密再構成装置。
【請求項９】
上記秘密再構成手段は、
基数を算出する基数再構成手段と、
基数を秘密ＩＤで割ったときの剰余を算出する秘密分離手段と
を有し、
上記基数再構成手段は、
集まったメンバのメンバＩＤから各分散情報の係数を算出する係数算出手段と、
上記係数算出手段により算出された上記係数と分散情報とを掛け算する第１の乗算手段と、
上記第１の乗算手段による乗算結果を、集まったメンバ分だけ足し合わせる加算手段と、
上記加算手段による加算結果を、集まったメンバのメンバＩＤをすべて掛け合わせた値で割ったときの剰余を算出する剰余演算手段と
を有する
ことを特徴とする請求項８に記載の秘密再構成装置。
【請求項１０】
上記基数再構成手段の上記係数算出手段が、各分散情報に対し、各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた値、及び、各分散情報に対するメンバＩＤの剰余をとる演算上における、上記各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた値の逆元、の２つの係数を算出し、
上記基数再構成手段の上記第１の乗算手段は、上記算出された２つの係数と分散情報との３つの値を掛け算する
ことを特徴とする請求項９に記載の秘密再構成装置。
【請求項１１】
上記判定手段は、
集まったメンバのメンバＩＤをすべて掛け合わせる第２の乗算手段と、
上記第２の乗算手段により掛け合わせた結果の桁数が、基数の桁数よりも大きいか否かを判定する桁数判定手段と
を有することを特徴とする請求項８から１０までのいずれかに記載の秘密再構成装置。
【請求項１２】
上記判定手段は、
集まったメンバのメンバＩＤそれぞれの桁数を算出する桁数算出手段と、
上記桁数算出手段により算出されたそれぞれのメンバＩＤの桁数を足し合わせる加算手段と、
上記加算手段により足し合わせた結果が、基数の桁数よりも大きいか否かを判定する桁数判定手段と
を有することを特徴とする請求項８から１０までのいずれかに記載の秘密再構成装置。
【請求項１３】
上記秘密再構成手段は、
基数を算出する基数再構成手段と、
基数を秘密ＩＤで割ったときの剰余を算出する秘密分離手段と、
変換手段と
を有し、
上記基数再構成手段は、
集まったメンバのメンバＩＤから各分散情報の係数となる多項式を算出する係数多項式算出手段と、
上記係数多項式算出手段により算出された係数多項式と分散情報とを掛け算する第１の乗算手段と、
上記第１の乗算手段による掛け算の結果を、集まったメンバ分だけ足し合わせる加算手段と、
上記加算手段による加算結果を、集まったメンバのメンバＩＤをすべて掛け合わせた多項式で割ったときの剰余を算出する剰余演算手段と
を有し、
上記変換手段が、もとの秘密情報が多項式ではない場合に、上記秘密分離手段で算出された多項式をもとの秘密情報に変換する
ことを特徴とする請求項８に記載の秘密再構成装置。
【請求項１４】
上記基数再構成手段の上記係数算出手段は、各分散情報に対し、各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた多項式、及び、各分散情報に対するメンバＩＤの剰余をとる演算上における、上記各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わした多項式の逆元、の２つの係数となる多項式を算出する係数多項式算出手段を有し、
上記基数再構成手段の上記第１の乗算手段は、上記算出された２つの係数多項式と分散情報との３つの多項式を掛け算する
ことを特徴とする請求項１３に記載の秘密再構成装置。
【請求項１５】
上記判定手段は、
集まったメンバのメンバＩＤをすべて掛け合わせる第２の乗算手段と、
上記第２の乗算手段により掛け合わせた結果の次数が、基数の次数よりも大きいか否かを判定する判定手段と、
を有することを特徴とする請求項８、１３、１４のいずれかに記載の秘密再構成装置。
【請求項１６】
上記判定手段は、
集まったメンバのメンバＩＤそれぞれの次数を算出する次数算出手段と、
上記次数算出手段により算出されたそれぞれのメンバＩＤの次数を足し合わせる加算手段と、
上記加算手段により足し合わせた結果が、基数の次数よりも大きいか否かを判定する判定手段と、
を有することを特徴とする請求項８、１３、１４のいずれかに記載の秘密再構成装置。
【請求項１７】
もとの秘密情報を分散する、上記請求項１、２、３、４のいずれか一つに記載の秘密分散装置と、
上記秘密再構成装置で分散された情報から、上記もとの秘密情報を再構成する、上記請求項８、９、１０、１１、１２のいずれか一つにに記載の秘密再構成装置と
を有することを特徴とする秘密分散再構成システム。
【請求項１８】
もとの秘密情報を分散する、上記請求項１、５、６、７のいずれか一つに記載の秘密分散装置と、
上記秘密再構成装置で分散された情報から、上記もとの秘密情報を再構成する、上記請求項８、１３、１４、１５、１６のいずれか一つに記載の秘密再構成装置と
を有することを特徴とする秘密分散再構成システム。
【請求項１９】
もとの秘密情報から、複数のメンバのそれぞれに配布される分散情報を生成する秘密分散方法において、
上記もとの秘密情報及び上記各メンバの権限レベルが入力され、上記権限レベルのそれぞれに相当するメンバＩＤ、上記もとの秘密情報に対応付けられた分散情報を生成するための基数、及び、上記基数から上記もとの秘密情報を算出するときに用いられる秘密ＩＤを算出するＩＤ基数生成工程と、
上記ＩＤ基数生成工程により算出された上記基数及び上記メンバＩＤから、上記各メンバに配布する分散情報を算出する分散情報生成工程と
を有することを特徴とする秘密分散方法。
【請求項２０】
上記もとの秘密情報は、正の整数値を取り、
上記ＩＤ基数生成工程は、
上記権限レベルに応じた桁数を持つ正の整数で、他のメンバＩＤとはそれぞれ互いに素である数を上記メンバＩＤとして算出するメンバＩＤ生成工程と、
上記もとの秘密情報よりも大きい正の整数を上記秘密ＩＤとして算出する秘密ＩＤ生成工程と、
上記秘密ＩＤと正整数の乱数を掛け合わせた値に上記もとの秘密情報を加算して上記基数を算出する基数生成工程と
を有し、
上記分散情報生成工程において、上記基数を上記メンバＩＤで割ったときの剰余を上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１９に記載の秘密分散方法。
【請求項２１】
上記もとの秘密情報は、正の整数値を取り、
上記ＩＤ基数生成工程は、
上記権限レベルに応じた桁数を持つ素数で、他のメンバＩＤ及び秘密ＩＤとは異なる数を上記メンバＩＤとして算出するメンバＩＤ生成工程と、
上記もとの秘密情報よりも大きい素数で、すべてのメンバＩＤとは異なる値を上記秘密ＩＤとして算出する秘密ＩＤ生成工程と、
上記秘密ＩＤと正整数の乱数を掛け合わせた値に上記もとの秘密情報を加算して上記基数を算出する基数生成工程と
を有し、
上記分散情報生成工程において、上記基数を上記メンバＩＤで割ったときの剰余を上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１９に記載の秘密分散方法。
【請求項２２】
上記ＩＤ基数生成工程は、
上記権限レベルの最大値を求める最大値選択工程と、
上記最大値選択工程により求められた最大値と予め決められたメンバＩＤの最小値を掛け合わせることにより、上記基数の桁数を算出する基数桁数生成工程と、
上記基数桁数生成工程により算出された基数の桁数となるように、上記正整数の乱数を選択する乱数選択工程と、
上記基数桁数生成工程により算出された基数の桁数を各権限レベルで割り算することにより各メンバＩＤの桁数を算出するメンバＩＤ桁数生成工程と、
上記メンバＩＤ桁数生成工程により算出された各メンバＩＤの桁数を持つ素数を各々選択する桁数指定素数選択工程と
を有することを特徴とする請求項２１に記載の秘密分散方法。
【請求項２３】
上記もとの秘密情報が多項式でない場合には、上記もとの秘密情報を多項式に変換する多項式変換工程をさらに有し、
上記ＩＤ基数生成工程は、
上記権限レベルに応じた次数を持つ多項式で、他のメンバＩＤとはそれぞれ互いに素である多項式をメンバＩＤとして算出するメンバＩＤ生成工程と、
上記もとの秘密情報を変換した多項式よりも大きい次数を持つ多項式を秘密ＩＤとして算出する秘密ＩＤ生成工程と、
上記秘密ＩＤと乱数の係数を持つ多項式とを掛け合わせた多項式に上記もとの秘密情報を変換した多項式を加算して得られた多項式である上記基数を算出する基多項式生成工程と
を有し、
上記分散情報生成工程において、上記基数を上記メンバＩＤで割ったときの剰余の多項式を、上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１９に記載の秘密分散方法。
【請求項２４】
上記もとの秘密情報が多項式でない場合には、上記もとの秘密情報を多項式に変換する多項式変換工程をさらに有し、
上記ＩＤ基数生成工程は、
上記権限レベルに応じた次数を持つ既約多項式で、他のメンバＩＤ及び秘密ＩＤとは異なる多項式をメンバＩＤとして算出するメンバＩＤ生成工程と、
上記もとの秘密情報を変換した多項式よりも大きい次数を持つ既約多項式で、すべてのメンバＩＤとは異なる多項式を秘密ＩＤとして算出する秘密ＩＤ生成工程と、
上記秘密ＩＤと乱数の係数を持つ多項式とを掛け合わせた多項式に上記もとの秘密情報を変換した多項式を加算して得られた多項式である上記基数を算出する基数生成工程と
を有し、
上記分散情報生成工程が、上記基数を上記メンバＩＤで割ったときの剰余の多項式を、上記各メンバに配布する上記分散情報として算出する
ことを特徴とする請求項１９に記載の秘密分散方法。
【請求項２５】
上記ＩＤ基数生成工程は、
上記権限レベルの最大値を求める最大値選択工程と、
上記最大値選択工程により求められた最大値と予め決められたメンバＩＤの次数の最小値を掛け合わせることにより上記基数の次数を算出する基数次数生成工程と、
上記基数次数生成工程により算出された上記基数の次数となるように、上記乱数の係数を持つ多項式を選択する乱数多項式選択工程と、
上記基数次数生成工程により算出された基数の次数を各権限レベルで割り算することにより各メンバＩＤの次数を算出するメンバＩＤ次数生成工程と、
上記メンバＩＤ次数生成工程により算出きれた各メンバＩＤの次数を持つ既約多項式を各々選択する次数指定既約多項式選択工程と
を有することを特徴とする請求項２４に記載の秘密分散方法。
【請求項２６】
上記請求項１９から２５までのいずれかに記載の秘密分散方法で秘密分散された情報を再構成する秘密再構成方法において、
秘密再構成する際に集められた上記メンバＩＤから、上記もとの秘密情報が再構成できるか否かを判定する判定工程と、
上記判定工程で、再構成が可能であると判定された場合に、集められた上記メンバＩＤ及び分散情報から上記もとの秘密情報を再構成する秘密再構成工程と
を有することを特徴とする秘密再構成方法。
【請求項２７】
上記秘密再構成工程は、
基数を算出する基数再構成工程と、
基数を秘密ＩＤで割ったときの剰余を算出する秘密分離工程と
を有し、
上記基数再構成工程は、
集まったメンバのメンバＩＤから各分散情報の係数を算出する係数算出工程と、
上記係数算出工程により算出された上記係数と分散情報とを掛け算する第１の乗算工程と、
上記第１の乗算工程による乗算結果を、集まったメンバ分だけ足し合わせる加算工程と、
上記加算工程による加算結果を、集まったメンバのメンバＩＤをすべて掛け合わせた値で割ったときの剰余を算出する剰余演算工程と
を有する
ことを特徴とする請求項２６に記載の秘密再構成方法。
【請求項２８】
上記基数再構成工程の上記係数算出工程において、各分散情報に対し、各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた値、及び、各分散情報に対するメンバＩＤの剰余をとる演算上における、上記分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた値の逆元、の２つの係数を算出し、
上記基数再構成工程の上記第１の乗算工程において、上記算出された２つの係数と分散情報との３つの値を掛け算する
ことを特徴とする請求項２７に記載の秘密再構成方法。
【請求項２９】
上記判定工程は、
集まったメンバのメンバＩＤをすべて掛け合わせる第２の乗算工程と、
上記第２の乗算工程により掛け合わせた結果の桁数が、基数の桁数よりも大きいか否かを判定する桁数判定工程と
を有することを特徴とする請求項２６から２８までのいずれかに記載の秘密再構成方法。
【請求項３０】
上記判定工程は、
集まったメンバのメンバＩＤそれぞれの桁数を算出する桁数算出工程と、
上記桁数算出工程により算出されたそれぞれのメンバＩＤの桁数を足し合わせる加算工程と、
上記加算工程により足し合わせた結果が、基数の桁数よりも大きいか否かを判定する桁数判定工程と
を有することを特徴とする請求項２６から２８までのいずれかに記載の秘密再構成方法。
【請求項３１】
上記秘密再構成工程は、
基数を算出する基数再構成工程と、
基数を秘密ＩＤで割ったときの剰余を算出する秘密分離工程と、
変換工程と
を有し、
上記基数再構成工程は、
集まったメンバのメンバＩＤから各分散情報の係数となる多項式を算出する係数多項式算出工程と、
上記係数多項式算出工程により算出された係数多項式と分散情報とを掛け算する第１の乗算工程と、
上記第１の乗算工程による掛け算の結果を、集まったメンバ分だけ足し合わせる加算工程と、
上記加算工程による加算結果を、集まったメンバのメンバＩＤをすべて掛け合わせた多項式で割ったときの剰余を算出する剰余演算工程と
を有し、
上記変換工程において、もとの秘密情報が多項式ではない場合に、上記秘密分離工程で算出された多項式をもとの秘密情報に変換する、
ことを特徴とする請求項２６に記載の秘密再構成方法。
【請求項３２】
上記基数再構成工程の上記係数算出工程において、各分散情報に対し、各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わせた多項式、及び、各分散情報に対するメンバＩＤの剰余をとる演算上における、上記各分散情報に対するメンバＩＤ以外のメンバＩＤをすべて掛け合わした多項式の逆元、の２つの係数となる多項式を算出し、
上記基数再構成工程の上記第１の乗算工程において、上記算出された２つの係数多項式と分散情報との３つの多項式を掛け算する
ことを特徴とする請求項３１に記載の秘密再構成方法。
【請求項３３】
上記判定工程は、
集まったメンバのメンバＩＤをすべて掛け合わせる第２の乗算工程と、
上記第２の乗算工程により掛け合わせた結果の次数が、基数の次数よりも大きいか否かを判定する判定工程と
を有することを特徴とする請求項２６、３１、３２のいずれかに記載の秘密再構成方法。
【請求項３４】
上記判定工程は、
集まったメンバのメンバＩＤそれぞれの次数を算出する次数算出工程と、
上記次数算出工程により算出されたそれぞれのメンバＩＤの次数を足し合わせる加算工程と、
上記加算工程により足し合わせた結果が、基数の次数よりも大きいか否かを判定する判定工程と
を有することを特徴とする請求項２６、３１、３２のいずれかに記載の秘密再構成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、秘密とする情報、例えば、暗号化や認証における秘密鍵を分散して管理するための秘密分散装置、秘密再構成装置、秘密分散再構成システム、秘密分散方法、及び秘密再構成方法に関するものである。
【０００２】
【従来の技術】
情報の秘匿のための暗号化に用いる秘密鍵や認証を行うための秘密などの重要な秘密情報を保管する場合、その秘密情報の紛失や破壊の心配と、その秘密情報の盗難の心配がある。秘密情報を紛失や破壊により失ってしまうことへの対策としては、その秘密情報のコピーを作成し保管することが考えられるが、秘密情報のコピーが増えることにより、その秘密情報の盗難の危険性が増してしまう。この問題を解決する方法として、秘密分散法がある。秘密分散法を実施するシステムにおいては、秘密分散装置（演算装置）が、もとの秘密情報を複数の分散情報に分散（符号化）させ、関係者である各メンバ（演算・記憶装置）にそれらの複数の分散情報をそれぞれ配布しておき、もとの秘密情報を得る必要がある場合には、秘密再構成装置（演算装置）が、必要なメンバから分散情報を集め、もとの秘密情報の再構成（復元）を行なう。
【０００３】
秘密分散法の一つに、Ｓｈａｍｉｒ法（シャミア法：Ｓｈａｍｉｒ’ｓ  ｍｅｔｈｏｄ）と呼ばれる（ｋ，ｎ）しきい値秘密分散法がある（例えば、後述する非特許文献１及び２参照）。非特許文献１に記述された（ｋ，ｎ）しきい値秘密分散法においては、秘密情報をｎ（ｎは２以上の整数）個の分散情報に符号化し、ｋ（ｋはｎ以下の整数）個以上の分散情報が集まれば、もとの秘密情報を復元することができるが、ｋ−１個以下の分散情報を集めても、もとの秘密情報を全く知ることができないという性質を、多項式補間を用いることにより実現している。
【０００４】
また、非特許文献２に記述された（ｋ，ｎ）しきい値秘密分散法においては、上記性質を、中国人剰余定理の異なる法に制限を加え、それらの法を予め決定しておくことにより実現している。中国人剰余定理は、互いに素な値で法をとる連立合同式の解法であり、
「次の連立一次合同式（ここで、法ｍ１，ｍ２，…，ｍｔは互いに素である。）、
ｘ≡ａ１（ｍｏｄ．ｍ１）
ｘ≡ａ２（ｍｏｄ．ｍ２）
…
ｘ≡ａｔ（ｍｏｄ．ｍｔ）
は、解を持ち、その解ｘは、法ｍ１×ｍ２×…×ｍｔ（ｍｏｄ．ｍ１×ｍ２×…×ｍｔ）のもとに一意に決まる。」
というのもである。なお、解ｘは、ａｉ及びｍｉ（ｉ＝１，２，…，ｔ）で記述することができる。
【０００５】
【非特許文献１】
岡本龍明他、「現代暗号」（産業図書）、第２１４−２１６ページ
【非特許文献２】
チャールズ・アスムス他、「ア・モジュラー・アプローチ・トゥー・キー・セーフガーディング」、アイ・トリプル・イー・トランザクションズ・オン・インフォーメーション・セオリー、ＩＴ−２９号、第２番、１９８３年３月、第２０８−２１０ページ（ＣＨＡＲＬＥＳ  ＡＳＭＵＴＨ  ＥＴ  ＡＬ．，  ”Ａ  ＭＯＤＵＬＡＲ  ＡＰＰＲＯＡＣＨ  ＴＯ  ＫＥＹ  ＳＡＦＥＧＵＡＲＤＩＮＧ”，  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＩＮＦＯＲＭＡＴＩＯＮ  ＴＨＥＯＲＹ，  ＶＯＬ．  ＩＴ−２９，  ＮＯ．２，  ＭＡＲＣＨ  １９８３，  ｐｐ．２０８−２１０）
【０００６】
【発明が解決しようとする課題】
上記した従来の（ｋ，ｎ）しきい値秘密分散法においては、分散情報の配布先である各メンバの権限はすべて同等なものとみなすことを前提としている。すなわち、分散情報の配布を受けたｋ人のメンバから分散情報を集めれば、もとの秘密情報を復元できる。
【０００７】
ところで、分散情報の配布先である各メンバの権限を同じにするのではなく、各メンバの権限に差異を設けたい場合がある。例えば、権限レベルが上からレベル３、レベル５、レベル７と３通り存在するような組織で、その組織の重要な秘密情報を秘密分散して保管するような場合である。この場合には、レベル３の権限を持つ人であれば３人集まると秘密情報の復元が可能になり（各メンバの権限が高レベル）、レベル５の権限を持つ人であれば５人集まると秘密情報の復元が可能になり（各メンバの権限が中レベル）、レベル７の権限を持つ人であれば７人集まると秘密情報の復元が可能になる（各メンバの権限が低レベル）ものとする。権限レベルがレベル３、レベル５、レベル７と３通り存在する（ｋ，ｎ）しきい値秘密分散法としては、分散情報を１０５個以上とし、１０５個の分散情報が集まればもとの秘密情報を再構成できる（ｋ，ｎ）しきい値秘密分散法、即ち、「（１０５，１０５以上）しきい値秘密分散法」を考えることができる。ここで、１０５は、３，５，７の最小公倍数である。この場合には、レベル３の人には１人当たり３５個の分散情報を配布し、レベル５の人には１人当たり２１個の分散情報を配布し、レベル７の人には１人当たり１５個の分散情報を配布することになる。
【０００８】
しかしながら、この場合には、秘密情報を分散（符号化）するときに秘密分散装置が実行する計算量、分散情報を保管する各メンバの記憶装置が保管しなければならない情報量、及び秘密情報を再構成（復元）するときに秘密再構成装置が実行する計算量が多くなってしまうという問題があった。
【０００９】
そこで、本発明は、上記したような従来技術の課題を解決するためになされたものであり、その目的は、生成しなければならない分散情報の情報量及び保管しなければならない分散情報の情報量の増加を抑制しつつ、各メンバの権限レベルに応じた秘密分散を行うことができる秘密分散装置、秘密分散再構成システム、及び秘密分散方法を提供することである。
【００１０】
また、本発明の他の目的は、権限レベルに応じて秘密分散された分散情報からもとの秘密情報を再構成することができる秘密再構成装置、秘密分散再構成システム、及び秘密再構成方法を提供することである。
【００１１】
【課題を解決するための手段】
本発明に係る秘密分散装置は、もとの秘密情報から、複数のメンバのそれぞれに配布される分散情報を生成する装置であって、上記もとの秘密情報及び上記各メンバの権限レベルが入力され、上記権限レベルのそれぞれに相当するメンバＩＤ、上記もとの秘密情報に対応付けられた分散情報を生成するための基数、及び、上記基数から上記もとの秘密情報を算出するときに用いられる秘密ＩＤを算出するＩＤ基数生成手段と、上記ＩＤ基数生成手段により算出された上記基数及び上記メンバＩＤから、上記各メンバに配布する分散情報を算出する分散情報生成手段とを有する。
【００１２】
また、本発明に係る秘密再構成装置は、上記秘密分散装置で秘密分散された情報を再構成する装置であって、秘密再構成する際に集められた上記メンバＩＤから、上記もとの秘密情報が再構成できるか否かを判定する判定手段と、上記判定手段で、再構成が可能であると判定された場合に、集められた上記メンバＩＤ及び分散情報から上記もとの秘密情報を再構成する秘密再構成手段とを有する。
【００１３】
【発明の実施の形態】
以下に、▲１▼各メンバの権限レベルに応じた秘密分散を行うことができる秘密分散装置、秘密分散再構成システム、及び秘密分散方法、並びに、▲２▼各メンバの権限レベルに応じて秘密分散された情報からもとの秘密を再構成することができる秘密再構成装置、秘密分散再構成システム、及び秘密再構成方法を説明する。なお、各メンバ、秘密分散装置、及び秘密再構成装置は、コンピュータのような演算記憶装置により構成される。また、秘密分散再構成システムは、各メンバ、秘密分散装置、秘密再構成装置、及びこれらを接続するネットワーク（専用回線又はインターネット等のような通信手段）から構成される。さらに、秘密分散再構成システムは、後述する基数の桁数等の公開情報を保持する記憶保持装置を含む場合もある。さらにまた、秘密分散装置及び秘密再構成装置を、秘密分散方法及び秘密再構成方法の両方を実施できる１台の装置として構成することもできる。また、特定のメンバ（演算記憶装置）が、秘密分散装置の機能、秘密再構成装置の機能、又はこれら両方の機能を兼ね備えるように構成することもできる。
【００１４】
≪１．第１の実施形態≫
以下に、本発明の第１の実施形態に係る秘密分散装置（秘密分散方法）及び、秘密再構成装置（秘密再構成方法）を説明する。第１の実施形態においては、中国人剰余定理の性質を用いる（ｋ，ｎ）しきい値秘密分散法において、メンバＩＤは予め決定することなく、さらに、各メンバＩＤ間の制約を設けることなく、もとの秘密情報の分散時に各メンバの権限レベルに応じたメンバＩＤを生成することにより、所望の権限レベルに応じた分散情報を生成している。
【００１５】
第１の実施形態に係る秘密分散方法は、例えば、秘密分散装置１００（図１及び図２）により実施することができ、第１の実施形態に係る秘密再構成方法は、例えば、秘密再構成装置１１０（図３）により実施することができる。また、▲１▼秘密分散装置１００、▲２▼秘密再構成装置１１０、▲３▼複数のメンバ（演算記憶装置）、▲４▼秘密再構成装置１１０が利用可能な状態に基数の桁数Ｎや秘密ＩＤ＿Ｐを保管する記憶保持装置、及び、▲５▼これらの装置を接続する回線は、秘密分散再構成システムを構成する。なお、本明細書において、記号「＿」（アンダーバー）は、「構成部材の名称」と「その符号」との間のスペースを意味する。
【００１６】
≪１−１．秘密分散装置１００の構成≫
図１は、第１の実施形態に係る秘密分散装置１００の構成を概略的に示すブロック図である。ここでは、分散させたいもとの秘密情報Ｓをｎ人のメンバに分散する場合を説明する。図１に示されるように、秘密分散装置１００には、分散させたいもとの秘密情報Ｓ、及び、分散情報が配布される各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎがｎ個入力される。また、秘密分散装置１００は、各メンバに配布される分散情報Ｘ１，Ｘ２，…，Ｘｎをｎ個と、各メンバに配布されるメンバＩＤ（メンバ識別データ）ｍ１，ｍ２，…，ｍｎをｎ個と、もとの秘密情報Ｓを再構成するために必要な補助情報である基数の桁数Ｎ及び秘密ＩＤ（秘密識別データ）Ｐとを出力する。
【００１７】
ここで、権限レベルは、「最低Ｌｉ人集まればもとの秘密情報Ｓを再構成することができる」という“Ｌｉ”で表す。このため、権限レベルが低いほど、権限が高いことになる。例えば、権限レベルが“２”のメンバが２人集まれば（すなわち、２人のメンバが保持する分散情報を集めれば）、もとの秘密情報Ｓを再構成できるが、権限レベルが“６”のメンバは６人集まらないともとの秘密情報Ｓを再構成することができない。なお、権限レベルが“２”のメンバは、権限レベルが“６”のメンバの３人分の分散情報を持っていると考えられるので、権限レベルが“２”のメンバ１人と、権限レベルが“６”のメンバ３人の、合計４人が集まれば、もとの秘密情報Ｓを再構成できるものとする。
【００１８】
図１に示されるように、第１の実施形態に係る秘密分散装置１００は、ＩＤ生成部１０１と、基数生成部１０２と、分散情報生成部１０３とを有する。ＩＤ生成部１０１と基数生成部１０２とは、分散情報を生成するために必要な情報を生成する部分であり、これらをまとめてＩＤ基数生成部１０４と呼ぶ。
【００１９】
［ＩＤ生成部１０１の説明］
まず、予め、各メンバに配布する分散情報の最低桁数ＮＸｍｉｎが決められているものとする。図１に示されるように、秘密分散装置１００へ入力される、もとの秘密情報Ｓ及び各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、ＩＤ生成部１０１へ入力される。ＩＤ生成部１０１は、秘密ＩＤ＿Ｐ、基数の桁数Ｎ、及び、権限レベルに応じた分散情報を生成する際に使用されるメンバＩＤ＿ｍ１，ｍ２，…，ｍｎを生成する。ＩＤ生成部１０１は、生成した秘密ＩＤ＿Ｐ及び基数の桁数Ｎを基数生成部１０２へ出力し、生成したメンバＩＤ＿ｍ１，ｍ２，…，ｍｎを分散情報生成部１０３へ出力する。また、生成した基数の桁数Ｎ及び秘密ＩＤ＿Ｐは、もとの秘密情報Ｓを再構成するときに利用されるので、ＩＤ生成部１０１は、生成した基数の桁数Ｎ及び秘密ＩＤ＿Ｐを、後述する秘密再構成装置１１０が利用することができる記憶保持装置へも出力する。基数の桁数Ｎ及び秘密ＩＤ＿Ｐは公開してもよい値であるので、各メンバに配布しておいたり、掲示板の役割をするような記憶保持装置に保存しておいたりしてもよいが、秘密再構成時に、秘密再構成装置１１０が利用できる状態になっていなければならない。
【００２０】
図２は、図１のＩＤ生成部１０１の構成を詳細に示すブロック図である。図２に示されるように、ＩＤ生成部１０１は、範囲指定素数選択部１０１１と、基数桁数生成部１０１２と、最大値選択部１０１３と、メンバＩＤ桁数生成部１０１４と、桁数指定素数選択部１０１５とを主要な構成としている。
【００２１】
［範囲指定素数選択部１０１１の説明］
図２に示されるように、ＩＤ生成部１０１へ入力される秘密情報Ｓは、範囲指定素数選択部１０１１へ入力される。範囲指定素数選択部１０１１は、基数Ｙを秘密ＩＤ＿Ｐで割ったときの剰余がもとの秘密情報Ｓとなるように、もとの秘密情報Ｓを正整数とみなし、その正整数よりも大きな素数を選択し、その素数を秘密ＩＤ＿Ｐとして出力する。この出力される秘密ＩＤ＿Ｐは、ＩＤ生成部１０１の出力の一つとなる。
【００２２】
［最大値選択部１０１３の説明］
図２に示されるように、ＩＤ生成部１０１へ入力される各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、最大値選択部１０１３へ入力される。最大値選択部１０１３は、入力された権限レベルＬ１，Ｌ２，…，Ｌｎのうち最大値をとるもの（すなわち、権限の最も低い権限レベル）を選択し、基数桁数生成部１０１２へ出力する。
【００２３】
［基数桁数生成部１０１２の説明］
図２に示されるように、基数桁数生成部１０１２は、最大値選択部１０１３から出力された権限レベルＬ１，Ｌ２，…，Ｌｎの最大値を受け取り、その受け取った値をもとにして基数の桁数Ｎを生成し、出力する。図１に示される基数Ｙは、秘密情報Ｓを分散させるために生成される値である。基数Ｙは、その基数ＹをメンバＩＤ＿ｍ１，ｍ２，…，ｍｎで割ったときの剰余の各々が分散情報Ｘ１，Ｘ２，…，Ｘｎであり、基数Ｙを秘密ＩＤ＿Ｐで割ったときの剰余が分散させたいもとの秘密情報Ｓであるような値である。基数桁数生成部１０１２は、予め決められている分散情報の最低桁数ＮＸｍｉｎと入力される権限レベルの最大値とを乗算する乗算手段を備えており、その乗算結果を基数の桁数Ｎとして出力する。この出力される基数の桁数Ｎは、メンバＩＤ桁数生成部１０１４へ入力されると同時に、ＩＤ生成部１０１の出力の一つとなる。
【００２４】
［メンバＩＤ桁数生成部１０１４の説明］
図２に示されるように、ＩＤ生成部１０１へ入力される各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、最大値選択部１０１３へとともに、メンバＩＤ桁数生成部１０１４へ入力される。メンバＩＤ桁数生成部１０１４は、基数桁数生成部１０１２から出力される基数の桁数Ｎと、ＩＤ生成部１０１へ入力される権限レベルＬ１，Ｌ２，…，Ｌｎを受け取り、各々の権限レベルに対するメンバＩＤの桁数を生成し、桁数指定素数選択部１０１５へ出力する。メンバＩＤ桁数生成部１０１４は、各権限レベルＬ１，Ｌ２，…，Ｌｎに対して、基数の桁数Ｎを各権限レベルＬ１，Ｌ２，…，Ｌｎで割った商を算出する除算手段を備えており、その除算結果（小数点以下は切り上げにする）を各メンバＩＤの桁数として出力する。
【００２５】
［桁数指定素数選択部１０１５の説明］
図２に示されるように、桁数指定素数選択部１０１５は、メンバＩＤ桁数生成部１０１４からのメンバＩＤの桁数をメンバの人数分だけ受け取り、受け取ったメンバＩＤの桁数となるような素数を各々選択し、選択した素数をメンバＩＤ＿ｍ１，ｍ２，…，ｍｎとして出力する。この出力されるメンバＩＤ＿ｍ１，ｍ２，…，ｍｎは、ＩＤ生成部１０１の出力の一つとなる。
【００２６】
［基数生成部１０２の説明］
図１に示されるように、基数生成部１０２は、秘密分散装置１０１へ入力されるもとの秘密情報Ｓと、ＩＤ生成部１０１から出力された秘密ＩＤ＿Ｐ及び基数の桁数Ｎとを受け取り、それらをもとにして基数Ｙを生成する。基数生成部１０２は、生成した基数Ｙを分散情報生成部１０３へ出力する。基数生成部１０２は、秘密ＩＤ＿Ｐ、もとの秘密情報Ｓ、及び基数の桁数Ｎから、基数Ｙを生成する。基数Ｙは、秘密ＩＤ＿Ｐで割ったときの剰余がもとの秘密情報Ｓになるような桁数Ｎの値である。したがって、基数Ｙは、例えば、次のように算出することができる。秘密ＩＤ＿Ｐの桁数をＮＰとすると、桁数Ｎ−ＮＰである乱数Ｒを生成し、乱数Ｒと秘密ＩＤ＿Ｐを乗算した結果に秘密情報Ｓを加算した結果を、基数Ｙとする。すなわち、
Ｙ＝Ｓ＋ＲＰ    …（１）
となるような計算を行う。このようにすると、基数Ｙを秘密ＩＤ＿Ｐで割ったときの剰余が秘密情報Ｓとなり、乱数Ｒ（桁数がＮ−ＮＰ）と秘密ＩＤ＿Ｐ（桁数がＮＰ）の乗算結果の桁数が（Ｎ−ＮＰ）＋ＮＰ＝Ｎとなるので、基数Ｙの桁数もＮとすることができる。
【００２７】
［分散情報生成部１０３の説明］
図１に示されるように、分散情報生成部１０３へは、基数生成部１０２から基数Ｙが、ＩＤ生成部１０１からメンバＩＤ＿ｍ１，ｍ２，…，ｍｎが入力され、各メンバに配布する分散情報Ｘ１，Ｘ２，…，Ｘｎ及びメンバＩＤ＿ｍ１，ｍ２，…，ｍｎを出力する。分散情報生成部１０３は、基数Ｙを各メンバＩＤ＿ｍ１，ｍ２，…，ｍｎで割ったときの剰余を計算する剰余演算手段を有しており、各剰余演算結果を分散情報Ｘ１，Ｘ２，…，Ｘｎとして出力する。ＩＤ生成部１０１から出力される基数の桁数Ｎ及び秘密ＩＤ＿Ｐ、並びに、分散情報生成部１０３から出力される分散情報Ｘ１，Ｘ２，…，Ｘｎ及びメンバＩＤ＿ｍ１，ｍ２，…，ｍｎが、秘密分散装置１００からの出力となる。
【００２８】
≪１−２．秘密再構成装置１１０の構成≫
図３は、第１の実施形態に係る秘密再構成装置１１０の構成を概略的に示すブロック図である。ここでは、再構成させるために集まったメンバをｋ人（ｋ≦ｎ）とする場合を説明する。すなわち、ｋ人のメンバ（演算記憶装置）から分散情報が集められた場合を説明する。図３に示されるように、秘密再構成装置１１０には、集まったｋ人のメンバのメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋと、集まったｋ人のメンバが保持する分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋと、もとの秘密を再構成するために必要な補助情報である基数の桁数Ｎ及び秘密ＩＤ＿Ｐとが入力され、秘密再構成装置１１０は、再構成された秘密情報Ｓ又は再構成エラー情報を出力する。秘密再構成装置１１０に入力されるメンバＩＤや分散情報は、集まったメンバｋ人分だけ（すなわち、ｋ個のメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋと、ｋ個の分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋ）入力される。メンバＩＤ及び分散情報が秘密再構成装置１１０に入力する順番は、秘密分散装置１００がそれらを出力する順番と同じである必要はない。また、基数の桁数Ｎ及び秘密ＩＤ＿Ｐは、前述したように、秘密再構成装置１１０が利用できる状態になっている（例えば、秘密再構成装置１１０がアクセス可能な記憶保持装置に保存されていたり、集まったメンバが持っていてそれを入力として提供してもらうことができる状態にある）。
【００２９】
図３に示されるように、秘密再構成装置１１０は、メンバＩＤ判定部１１１と、基数再構成部１１２と、秘密分離部１１３とを有する。基数再構成部１１２及び秘密分離部１１３は、秘密を再構成する部分であるため、まとめて秘密再構成部１１４と呼ぶ。
【００３０】
［メンバＩＤ判定部１１１の説明］
図３に示されるように、秘密再構成装置１１０へ入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ、その分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋ、及び基数の桁数Ｎは、メンバＩＤ判定部１１１へ入力される。メンバＩＤ判定部１１１は、入力される基数の桁数Ｎ及びメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋをもとに、秘密を再構成するために、十分な権限を持つメンバが十分な人数だけ集まっているかどうかを判定し、その判定結果（メンバＩＤ判定結果と呼ぶ）を基数再構成部１１２へ出力する。メンバＩＤ判定結果は、「十分な権限を持つメンバが十分な人数だけ集まっている」ならば「再構成可能」の判定結果であり、そうでないならば「再構成不可能」の判定結果である。メンバＩＤ判定部１１１は、入力されるすべてのメンバＩＤを掛け合わせる乗算手段を備えており、入力されるメンバＩＤ（すなわち、集まった各メンバのメンバＩＤ）すべてを掛け合わせる。その乗算結果の桁数と入力される基数の桁数Ｎとを比較し、乗算結果の桁数が基数の桁数Ｎに等しいか、それより大きいならば、秘密情報Ｓを再構成することができる（この秘密再構成可能性は、中国人剰余定理を用いて証明することができる）。したがって、上記の乗算結果の桁数が基数の桁数Ｎに等しいか、それより大きいならば、「再構成可能」の判定結果を出力し、秘密情報Ｓの再構成処理に進む。そうでないならば、「再構成不可能」の判定結果を出力する。
【００３１】
［基数再構成部１１２の説明］
図３に示されるように、秘密再構成装置１１０へ入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ及びその分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋは、基数再構成部１１２へ入力される。基数再構成部１１２は、メンバＩＤ判定部１１１からメンバＩＤ判定結果を受け取り、メンバＩＤ判定結果が再構成不可能という判定結果の場合、再構成エラー情報を、秘密分離部１１３へ出力する。そうでない場合には、基数再構成部１１２は、入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ及びその分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋより、基数Ｙを求めるべく演算を行い、求められた基数Ｙを秘密分離部１１３へ出力する。基数Ｙは、例えば、次のようにして求めることができる。各分散情報Ｘｉ１，Ｘｉ２，…，ＸｉｋにメンバＩＤから計算される２種類の係数Ｍｉ１，Ｍｉ２，…，Ｍｉｋ及びＩｉ１，Ｉｉ２，…，Ｉｉｋを乗算して足し合わせたものを、集まったメンバのメンバＩＤの積
Ｍ＝ｍｉ１×ｍｉ２×…×ｍｉｋ
で剰余をとる（ｍｏｄ．Ｍの計算をする）ことによってを計算する。すなわち、
2004274320.tif 000003
を計算することにより基数Ｙを求める。乗算される各係数は次のように計算する。入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋのうち、掛け合わせる分散情報に対するメンバＩＤ以外をすべて掛け合わせたものを、それぞれＭｉ１，Ｍｉ２，…，Ｍｉｋとし、それらＭｉ１，Ｍｉ２，…，Ｍｉｋに対し、掛け合わせる分散情報に対するメンバＩＤの法（剰余をとる、ｍｏｄ．ｍｉｊの計算をする）のもとでの逆元をＩｉ１，Ｉｉ２，…，Ｉｉｋとする。すなわち、Ｘｉｊの係数Ｍｉｊ及びＩｉｊ（ｊ＝１，２，…，ｋ）は、
Ｍｉｊ＝ｍｉ１×ｍｉ２×…×ｍｉｋ／ｍｉｊ＝Ｍ／ｍｉｊ    …（３）
Ｉｉｊ＝（Ｍｉｊ）−１  （ｍｏｄ．ｍｉｊ）    …（４）
を計算することにより、求めることができる。
【００３２】
上記式（３）の計算は、計算式の上では、集まったすべてのメンバＩＤを掛け合わせた上で、Ｍｉｊに対応するメンバＩＤ＿ｍｉｊで割り算しているが、実際には、Ｍｉｊに対応するメンバＩＤ＿ｍｉｊ以外のメンバＩＤを掛け合わせるだけという実施方法もある（この方法の場合には、乗算１回及び割り算１回を減らすことができる）。また、上記式（４）の計算は、メンバＩＤ＿ｍｉｊの法（剰余をとる、ｍｏｄ．ｍｉｊの計算をする）のもとでの逆元を求める計算であるが、このような逆元を求める計算は、ユークリッドの互除法を用いて行うことができる。また、特に、メンバＩＤ＿ｍｉｊが素数である場合には、ｍｉｊの剰余をとることにより有限体が生成できるので、ｍｉｊの法のもとでの逆元計算は、
（Ｍｉｊ）−１＝（Ｍｉｊ）ｒ  （ｍｏｄ．ｍｉｊ）    …（５）
ｒ＝ｍｉｊ−２    …（６）
で計算することもできる。ただし、他の方式を用いてもよい。
【００３３】
［秘密分離部１１３の説明］
図３に示されるように、秘密再構成装置１１０へ入力される秘密ＩＤ＿Ｐは、秘密分離部１１３へ入力される。秘密分離部１１３は、基数再構成部１１２から、基数Ｙを受け取り、この基数Ｙと入力される秘密ＩＤ＿Ｐから、秘密情報Ｓを求めるべく演算を行い、求められた秘密情報Ｓを秘密分離部１１３から出力する。秘密分離部１１３は、剰余演算手段を備えており、基数Ｙを秘密ＩＤ＿Ｐで割ったときの剰余を秘密情報Ｓとして出力する。また、基数再構成部１１２からの出力が再構成エラー情報であった場合には、秘密分離部１１３は、秘密情報Ｓを再構成する代わりに、そのまま再構成エラー情報を出力する。秘密分離部１１３からの出力が秘密再構成装置１１０の出力となる。
【００３４】
≪１−３．秘密分散装置１００の動作≫
次に、図１の秘密分散装置１００の動作を説明する。秘密分散装置１００は、分散させたいもとの秘密情報Ｓをｎ人のメンバに分散情報として分散させる際に、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じて、メンバＩＤ＿ｍ１，ｍ２，…，ｍｎを生成し、そのメンバＩＤに該当する分散情報Ｘ１，Ｘ２，…，Ｘｎを生成して出力する。図４は、秘密分散装置１００の動作を示すフローチャートである。
【００３５】
図４に示されるように、まず、入力される秘密情報Ｓ及び各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎから、秘密ＩＤ＿Ｐと、基数Ｙと、各メンバに配布するメンバＩＤ＿ｍ１，ｍ２，…，ｍｎとを計算する（ステップＳ１１）。このステップＳ１１は、図１のＩＤ基数生成部１０４の動作に相当する。ステップＳ１１のさらに詳細なフローチャートを、図５に示す。
【００３６】
図５に示されるように、ステップＳ１１においては、まず、秘密情報Ｓから秘密ＩＤ＿Ｐを計算し（ステップＳ１１１）、さらに、権限レベルＬ１，Ｌ２，…，Ｌｎから基数の桁数Ｎを計算する（ステップＳ１１２）。ステップＳ１１１とステップＳ１１２は、図５に示されるように並列に動作させてもよいし、プログラムソフトウェアで実行させるように直列に動作させてもよい。直列に動作させるときは、ステップＳ１１１とステップＳ１１２のどちらを先に動作してもよい。このステップＳ１１１は、図２の範囲指定素数選択部１０１１の動作に相当し、秘密ＩＤ＿Ｐは、秘密情報Ｓよりも大きな素数を選択することにより計算される。ステップＳ１１２は、図２の最大値選択部１０１３及び基数桁数生成部１０１２の動作に相当する。基数の桁数Ｎは、最大値選択部１０１３で権限レベルＬ１，Ｌ２，…，Ｌｎのうち最大値をとるもの（すなわち、権限の最も低い権限レベル）を選択して基数桁数生成部１０１２へ入力し、予め決められた分散情報の最低桁数ＮＸｍｉｎと入力される権限レベルの最大値とを乗算することにより計算される。
【００３７】
次に、図５に示されるように、権限レベルＬ１，Ｌ２，…，Ｌｎ及び基数の桁数Ｎから、メンバＩＤを計算し（ステップＳ１１３１及びＳ１１３２）、秘密情報Ｓ、秘密ＩＤ＿Ｐ、及び基数の桁数Ｎから、基数Ｙを計算する（ステップＳ１１４）。ステップＳ１１３１とステップＳ１１３２とを合わせたステップを、まとめてステップＳ１１３とする。ステップＳ１１３とステップＳ１１４は、図５に示されるように並列に動作させてもよいし、プログラムソフトウェアで実行させるように直列に動作させてもよい。直列に動作させるときは、ステップＳ１１３とステップＳ１１４のどちらを先に動作させてもよい。ステップＳ１１３１は、図２のメンバＩＤ桁数生成部１０１４の動作に相当し、各メンバＩＤの桁数は、基数の桁数Ｎを各権限レベルＬ１，Ｌ２，…，Ｌｎで割ることにより（小数点以下は切り上げにする）計算される。ステップＳ１１３２は、図２の桁数指定素数選択部１０１５の動作に相当し、各メンバＩＤは、各メンバＩＤの桁数となる素数を選択することにより計算される。ステップＳ１１４は、図１の基数生成部１０２の動作に相当し、基数Ｙは、秘密ＩＤ＿Ｐの桁数をＮＰとして桁数Ｎ−ＮＰである乱数Ｒを生成し、乱数Ｒと秘密ＩＤ＿Ｐを乗算した結果に秘密情報Ｓを加算することにより計算される（前述した式（１）参照）。
【００３８】
図４に示されるように、ステップＳ１１の次に、基数Ｙ及びメンバＩＤ＿ｍ１，ｍ２，…，ｍｎから、分散情報Ｘ１，Ｘ２，…，Ｘｎを計算する（ステップＳ１２）。このステップＳ１２は、図１の分散情報生成部１０３の動作に相当し、各分散情報Ｘ１，Ｘ２，…，Ｘｎは、基数Ｙを各メンバＩＤ＿ｍ１，ｍ２，…，ｍｎで割ったときの剰余を求めることにより計算される。以上の動作により、秘密分散装置１００は、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じて、メンバＩＤ＿ｍ１，ｍ２，…，ｍｎを生成し、そのメンバＩＤに対する分散情報Ｘ１，Ｘ２，…，Ｘｎを生成して出力する。
【００３９】
≪１−４．秘密再構成装置１１０の動作≫
次に、図３の秘密再構成装置１１０の動作を説明する。秘密再構成装置１１０は、秘密情報Ｓを再構成するために集まったｋ人のメンバ（演算記憶装置）から集められたメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ及び分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋから、秘密情報Ｓを再構成する。そのとき、秘密の再構成のために十分な権限レベルを持つメンバが十分な人数分集まっているならば、秘密情報Ｓを再構成することができ、そうでないならば、秘密情報Ｓを再構成することができない。図６は、秘密再構成装置１１０の動作を示すフローチャートである。
【００４０】
図６に示されるように、まず、入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ及び基数の桁数Ｎから、メンバＩＤ判定結果を計算する（ステップＳ２１）。ステップＳ２１の処理は、図３のメンバＩＤ判定部１１１の動作に相当し、メンバＩＤ判定結果は、入力されるすべてのメンバＩＤ（すなわち、集まったメンバのメンバＩＤ）を掛け合わせた乗算結果の桁数と基数の桁数Ｎとを比較し、乗算結果の桁数が基数の桁数Ｎに等しいか、それより大きいならば、「再構成可能」と計算され、そうでないならば、「再構成不可能」と計算される。
【００４１】
次に、図６に示されるように、メンバＩＤ判定結果が再構成可能かどうかで動作が分かれる（ステップＳ２２）。もし、ステップＳ２２における判定結果がＹｅｓ（はい）ならば（すなわち、再構成可能ならば）、秘密情報Ｓを再構成するためにステップＳ２３に進み、Ｎｏ（いいえ）であるならば（すなわち、再構成不可能ならば）、再構成エラー情報を出力して（ステップＳ２４）終了する。
【００４２】
図６に示されるように、ステップＳ２２における判定結果がＹｅｓならば、入力されるメンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ、分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋ、及び秘密ＩＤ＿Ｐから秘密情報Ｓを計算する（ステップＳ２３）。ステップＳ２３は、図３の秘密再構成部１１４の動作に相当する。ステップＳ２３のさらに詳細なフローチャートを、図７に示す。
【００４３】
図７に示されるように、ステップＳ２３においては、まず、メンバＩＤ＿ｍｉ１，ｍｉ２，…，ｍｉｋ及び分散情報Ｘｉ１，Ｘｉ２，…，Ｘｉｋから基数Ｙを計算する（ステップＳ２３１）。ステップＳ２３１は、図３の基数再構成部１１２の動作に相当する。基数Ｙは、例えば、次のようにして計算される。各分散情報Ｘｉ１，Ｘｉ２，…，ＸｉｋにメンバＩＤから計算される２つの係数Ｍｉ１，Ｍｉ２，…，Ｍｉｋ及びＩｉ１，Ｉｉ２，…，Ｉｉｋを乗算して足し合わせたものを、集まったメンバのメンバＩＤの積
Ｍ＝ｍｉ１×ｍｉ２×…×ｍｉｋ
で剰余をとる（ｍｏｄ．Ｍの計算をする）ことによってを計算される（前述した式（２）、（３）、（４）参照）。
【００４４】
次に、図７に示されるように、基数Ｙから秘密情報Ｓを計算する（ステップＳ２３２）。ステップＳ２３２は、図３の秘密分離部１１３の動作に相当し、秘密情報Ｓは、基数Ｙを秘密ＩＤ＿Ｐで割ったときの剰余をとることによって計算される。ステップＳ２３において秘密情報Ｓが求められると、秘密情報Ｓを出力し動作を終了する。
【００４５】
≪１−５．第１の実施形態の効果≫
前述したように、従来のＳｈａｍｉｒ法においては、各メンバには同等な権限を与えるか、権限が高いに人には複数個の分散情報を与える（この場合には、値の小さい権限レベルは、値の大きい権限レベルの約数でなければならないといった、権限レベルのとり得る値に制約がある）、といった方法しかとることができず、メンバが余分に大きな分散情報を持たなければいけない場合が生じていた。また、中国人剰余定理の性質を用いる（ｋ，ｎ）しきい値秘密分散法の場合にも、各メンバＩＤ間に制約があり、各メンバＩＤが予め決められているので、Ｓｈａｍｉｒ法と同様な制限がある。これに対し、第１の実施形態によれば、秘密分散装置１００において、秘密情報を分散させるときに、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じたメンバＩＤ＿ｍ１，ｍ２，…，ｍｎを生成し、さらにメンバＩＤ＿ｍ１，ｍ２，…，ｍｎ間にはそれぞれが素数（すなわち、それぞれが互いに素）であるということ以外には制約を設けないようにし、また、中国人剰余定理の性質を利用した秘密分散法を採用したため、所望の権限レベルＬ１，Ｌ２，…，Ｌｎに応じた分散情報Ｘ１，Ｘ２，…，Ｘｎを生成させることができる。このため、第１の実施形態の秘密分散装置１００、秘密分散再構成システム、及び秘密分散方法によれば、生成しなければならない分散情報の情報量及び保管しなければならない分散情報の情報量の増加を抑制しつつ、各メンバの権限レベルに応じた秘密分散を行うことができる。また、第１の実施形態の秘密再構成装置１１０、秘密分散再構成システム、及び秘密再構成方法によれば、権限レベルに応じて秘密分散された情報を再構成することができる。
【００４６】
≪２．第２の実施形態≫
以下に、本発明の第２の実施形態に係る秘密分散装置（秘密分散方法）及び、秘密再構成装置（秘密再構成方法）を説明する。第２の実施形態においては、第１の実施形態と同様に、中国人剰余定理の性質を用いる（ｋ，ｎ）しきい値秘密分散法において、メンバＩＤは予め決定することなく、さらに、各メンバＩＤ間の制約を設けることなくメンバの権限に応じたメンバＩＤを分散時に生成することにより、所望の権限に応じた分散情報を生成させている。第２の実施形態が第１の実施形態と異なる点は、もとの秘密、メンバＩＤ、秘密ＩＤ、基数、及び分散情報を、有限体上の要素を係数に持つ多項式として取り扱っている点である。したがって、演算上極端に桁数の異なる数値同士の計算を行うことを避けたり、未知の桁数の演算を行う必要がなくなるので、ハードウェアで実装する際にも効率的になるという特徴がある。
【００４７】
第２の実施形態に係る秘密分散方法は、例えば、秘密分散装置２００（図８及び図９）により実施することができ、第２の実施形態に係る秘密再構成方法は、例えば、秘密再構成装置２１０（図１０）により実施することができる。また、▲１▼秘密分散装置２００、▲２▼秘密再構成装置２１０、▲３▼複数のメンバ（演算記憶装置）、▲４▼秘密再構成装置２１０が利用可能な状態に基多項式の次数Ｎや秘密ＩＤ多項式Ｐ（ｘ）を保管する記憶保持装置、及び、▲５▼これらの装置を接続する回線は、秘密分散再構成システムを構成する。
【００４８】
≪２−１．秘密分散装置２００の構成≫
図８は、第２の実施形態に係る秘密分散装置２００の構成を概略的に示すブロック図である。秘密分散装置２００は、第１の実施形態の秘密分散装置１００に類似した構成を持つ。しかし、第１の実施形態においては、各メンバに配布する分散情報やメンバＩＤなどは整数値をとるように構成していたが、第２の実施形態においては、整数値の代わりにある有限体上の多項式をとるように構成している。
【００４９】
第２の実施形態の説明においては、用いる有限体をＧＦ（ｑ）（ｑは素数、又は素数のべき乗とする）と予め決めておき、この有限体上の多項式は、係数が有限体ＧＦ（ｑ）上の値をとるものを取り扱うことにする。第１の実施形態と同様に、分散させたいもとの秘密情報Ｓをｎ人のメンバに分散する場合を説明する。図８に示されるように、秘密分散装置２００には、分散させたいもとの秘密情報Ｓ、及び、分散させる各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎが入力される。また、秘密分散装置２００は、各メンバに配布される分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）と、各メンバに配布されるメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）と、もとの秘密を再構成するために必要な補助情報である基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）を出力する。権限レベルの意味は、第１の実施形態の場合と同じである。
【００５０】
図８に示されるように、第２の実施形態に係る秘密分散装置２００は、ＩＤ生成部２０１と、基多項式生成部２０２と、分散情報多項式生成部２０３とを有する。ＩＤ生成部２０１と基多項式生成部２０２は、分散情報を生成するのに必要な情報を生成する部分であるため、これらをまとめてＩＤ基多項式生成部２０４と呼ぶ。
【００５１】
［ＩＤ生成部２０１の説明］
まず、予め、各メンバに配布する分散情報多項式の最低次数ＮＸｍｉｎが決められているものとする。図８に示されるように、秘密分散装置２００へ入力される、もとの秘密情報Ｓ及び各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、ＩＤ生成部２０１へ入力される。ＩＤ生成部２０１は、秘密ＩＤ多項式Ｐ（ｘ）、基多項式の次数Ｎ、秘密情報Ｓを多項式の形式に変換した秘密多項式Ｓ（ｘ）、及びメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を生成する。また、ＩＤ生成部２０１は、秘密ＩＤ多項式Ｐ（ｘ）、秘密多項式Ｓ（ｘ）、及び基多項式の次数Ｎを基多項式生成部２０２へ出力し、メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を分散情報多項式生成部２０３へ出力する。また、生成した基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）は、後述する秘密再構成装置２１０が利用することができる記憶保持装置へも出力する。第１の実施形態と同様に、基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）は公開してもよい値なので、各メンバに配っておいたり、掲示板の役割をするような記憶保持装置に保存しておいたりしてもよいが、秘密再構成時に、秘密再構成装置２０１が利用できる状態になっていなければならない。
【００５２】
図９は、図８のＩＤ生成部２０１の構成を詳細に示すブロック図である。図９に示されるように、ＩＤ生成部２０１は、多項式変換部２０１１と、次数範囲指定既約多項式選択部２０１２と、基多項式次数生成部２０１３と、最大値選択部１０１３と、メンバＩＤ多項式次数生成部２０１４と、次数指定既約多項式選択部２０１５とを主要な構成としている。
【００５３】
［多項式変換部２０１１の説明］
図９に示されるように、ＩＤ生成部２０１へ入力される秘密情報Ｓは、多項式変換部２０１１へ入力され、秘密多項式Ｓ（ｘ）に変換され、その秘密多項式Ｓ（ｘ）がＩＤ生成部２０１の出力として出力される。秘密情報Ｓから秘密多項式Ｓ（ｘ）への変換は、例えば、係数に用いる有限体ＧＦ（ｑ）上のｑの値がＳよりも大きい場合には、Ｓ（ｘ）＝ｘ＋Ｓという、定数項がＳの一次多項式とすることができる。また、ただ単に定数項のみの多項式Ｓ（ｘ）＝Ｓとする（この場合は、多項式変換部２０１１においては、なにも処理をする必要がないことになる）こともできる。また、秘密をｙ個に分割し
（例えば、秘密をビット展開し、それをＬＳＢ（最下位ビット）又はＭＳＢ（最上位ビット）からｙ個に分割したり、又は、Ｓ＝Ｓ１＋Ｓ２＋…＋ＳｙになるようにＳｉに分割する）、
Ｓ（ｘ）＝Ｓ１＋Ｓ２ｘ＋Ｓ３ｘ２＋…＋Ｓｙｘｙ−１
のようにｙ−１次多項式とすることもできる。
【００５４】
さらに、秘密情報Ｓが有限体ＧＦ（ｑ）の拡大体ＧＦ（ｑｍ）の要素であるならば、生成多項式ｇ（ｘ）で割ったときの剰余で記述する多項式表現された多項式を秘密多項式Ｓ（ｘ）として用いることもできる。数値である秘密情報Ｓから一意に多項式へ変換でき、また、逆に多項式から一意にもとの秘密情報Ｓへ変換できるならば、どのような変換方法を採ってもよい。第２の実施形態における説明においては、秘密情報Ｓは正の整数値をとるものとしているので、それを多項式に変換する必要があるが、もしも入力される秘密情報Ｓが既に多項式である場合には、例えば、秘密情報Ｓが有限体ＧＦ（ｑ）の拡大体ＧＦ（ｑｍ）の要素で、生成多項式ｇ（ｘ）で割ったときの剰余で記述する多項式表現されている場合には、多項式へ変換する必要はない。したがって、秘密情報Ｓの記述方法によって、多項式変換部２０１１が必要ではない（多項式変換部２０１１ではなにも処理をしない）場合もある。
【００５５】
［次数範囲指定既約多項式選択部２０１２の説明］
図９に示されるように、次数範囲指定既約多項式選択部２０１２は、多項式変換部２０１１から入力される秘密多項式Ｓ（ｘ）の次数を算出し、その秘密多項式Ｓ（ｘ）の次数よりも大きな次数を持つ既約多項式Ｐ（ｘ）を選択し、その既約多項式を秘密ＩＤ多項式Ｐ（ｘ）として出力する。既約多項式とは、その多項式よりも小さい次数のどの多項式（１次以上の多項式）でも割り切ることのできない多項式である。この出力される秘密ＩＤ多項式Ｐ（ｘ）は、ＩＤ生成部２０１の出力の一つとなる。
【００５６】
［最大値選択部１０１３の説明］
図９に示されるように、ＩＤ生成部２０１へ入力される各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、最大値選択部１０１３へ入力される。第１の実施形態の最大値選択部１０１３と同様に、第２の実施形態の最大値選択部１０１３には、権限レベルＬ１，Ｌ２，…，Ｌｎが入力され、最大値選択部１０１３は、入力された権限レベルのうち最大値をとるもの（すなわち、権限の最も低い権限レベル）を選択し、基多項式次数生成部２０１３へ出力する。
【００５７】
［基多項式次数生成部２０１３の説明］
図９に示されるように、基多項式次数生成部２０１３は、最大値選択部１０１３からの出力を受け取り、その受け取った値をもとにして基多項式の次数Ｎを生成し、出力する。基多項式Ｙ（ｘ）とは、秘密情報Ｓ（すなわち秘密多項式Ｓ（ｘ））を分散させるために生成する多項式である。基多項式Ｙ（ｘ）は、その基多項式Ｙ（ｘ）を各メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）で割ったときの剰余各々が分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）であり、基多項式Ｙ（ｘ）を秘密ＩＤ多項式Ｐ（ｘ）で割ったときの剰余が、分散させたいもとの秘密情報Ｓの多項式を変換した秘密多項式Ｓ（ｘ）であるような多項式である。基多項式次数生成部２０１３は、予め決められている分散情報多項式の最低次数ＮＸｍｉｎと入力される権限レベルの最大値とを乗算する乗算手段を備えており、その乗算結果を基多項式の次数Ｎとして出力する。この出力される基多項式の次数Ｎは、メンバＩＤ多項式次数生成部２０１４へ入力されると同時に、ＩＤ生成部２０１の出力の一つとなる。
【００５８】
［メンバＩＤ多項式次数生成部２０１４の説明］
図９に示されるように、ＩＤ生成部２０１へ入力される各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎは、最大値選択部１０１３へとともに、メンバＩＤ多項式次数生成部２０１４へ入力される。メンバＩＤ多項式次数生成部２０１４は、基多項式次数生成部２０１３から出力される基多項式の次数Ｎと、ＩＤ生成部２０１へ入力される権限レベルＬ１，Ｌ２，…，Ｌｎを受け取り、各々の権限レベルに対するメンバＩＤ多項式の次数を生成し、次数指定既約多項式選択部２０１５へ出力する。メンバＩＤ多項式次数生成部２０１４は、各権限レベルＬ１，Ｌ２，…，Ｌｎに対して、基多項式の次数Ｎを各権限レベルＬ１，Ｌ２，…，Ｌｎで割った商を算出する除算手段を備えており、その除算結果（すなわち、商（ただし、小数点は切り上げにする））を各メンバＩＤ多項式の次数として出力する。
【００５９】
［次数指定既約多項式選択部２０１５の説明］
図９に示されるように、次数指定既約多項式選択部２０１５は、メンバＩＤ多項式次数生成部２０１４からのメンバＩＤ多項式の次数をメンバの人数分だけ受け取り、受け取ったメンバＩＤ多項式の次数となるような既約多項式を各々選択し、選択した既約多項式をメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）として出力する。この出力されるメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）は、ＩＤ生成部２０１の出力の一つとなる。
【００６０】
［基多項式生成部２０２の説明］
図８に示されるように、基多項式生成部２０２は、ＩＤ生成部２０１から秘密ＩＤ多項式Ｐ（ｘ）、秘密多項式Ｓ（ｘ）、及び基多項式の次数Ｎを受け取り、それらをもとにして基多項式Ｙ（ｘ）を生成する。基多項式生成部２０２は、生成した基多項式Ｙ（ｘ）を分散情報多項式生成部２０３へ出力する。基多項式生成部２０２は、秘密ＩＤ多項式Ｐ（ｘ）、秘密多項式Ｓ（ｘ）、及び基多項式の次数Ｎから、基多項式Ｙ（ｘ）を生成する。基多項式Ｙ（ｘ）は、秘密ＩＤ多項式Ｐ（ｘ）で割ったときの剰余がもとの秘密多項式Ｓ（ｘ）になる次数Ｎの多項式である。したがって、基多項式Ｙ（ｘ）は、例えば、次のように算出することができる。秘密ＩＤ多項式Ｐ（ｘ）の次数をＮＰとすると、次数Ｎ−ＮＰであり、各次数の係数が乱数となっている多項式Ｒ（ｘ）（乱数多項式と呼ぶ）を生成し、乱数多項式Ｒ（ｘ）と秘密ＩＤ多項式Ｐ（ｘ）を乗算した結果に秘密多項式Ｓ（ｘ）を加算した結果を、基多項式Ｙ（ｘ）とする。すなわち、
Ｙ（ｘ）＝Ｓ（ｘ）＋Ｒ（ｘ）Ｐ（ｘ）    …（７）
となるような計算を行う。このようにすると、基多項式Ｙ（ｘ）を秘密ＩＤ多項式Ｐ（ｘ）で割ったときの剰余が秘密多項式Ｓ（ｘ）となり、乱数多項式Ｒ（ｘ）（次数がＮ−ＮＰ）と秘密ＩＤ多項式Ｐ（ｘ）（次数がＮＰ）の乗算結果の多項式の次数が（Ｎ−ＮＰ）＋ＮＰ＝Ｎとなるので、基多項式Ｙ（ｘ）の次数もＮとすることができる（ただし、次数範囲指定既約多項式生成部２０１２の説明の欄に記述したように、秘密多項式Ｓ（ｘ）は、秘密ＩＤ多項式Ｐ（ｘ）よりも次数は小さいという前提がある）。
【００６１】
［分散情報多項式生成部２０３の説明］
図８に示されるように、分散情報多項式生成部２０３へは、基多項式生成部２０２から基多項式Ｙ（ｘ）が、ＩＤ生成部２０１からメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）が入力され、分散情報多項式生成部２０３は、各メンバに配布する分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）を生成し、生成された分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）及びメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を出力する。分散情報多項式生成部２０３は、基多項式を各メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）で割ったときの剰余を計算する剰余演算手段を備えており、各剰余演算結果を分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）として出力する。ＩＤ生成部２０１から出力される基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）、並びに、分散情報多項式生成部２０３から出力される分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）及びメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）が、秘密分散装置２００からの出力となる。
【００６２】
≪２−２．秘秘密再構成装置２１０の構成≫
図１０は、第２の実施形態に係る秘密再構成装置２１０の構成を概略的に示すブロック図である。ここでは、再構成させるために集まったメンバをｋ人（ｋ≦ｎ）とする場合を説明する。図１０に示されるように、秘密再構成装置２１０には、集まったｋ人のメンバのメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）と、集まったｋ人のメンバが保持する分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）と、もとの秘密を再構成するために必要な補助情報である基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）とが入力され、再構成された秘密情報Ｓ又は再構成エラー情報を出力する。秘密再構成装置２１０に入力されるメンバＩＤ多項式や分散情報多項式は、集まったメンバｋ人分だけ（すなわち、ｋ個のメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）と、ｋ個の分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ））が入力される。メンバＩＤ多項式及び分散情報多項式を入力する順番は、秘密分散装置２００がそれらを出力する順番と同じである必要はない。また、基多項式の次数Ｎ及び秘密ＩＤ多項式Ｐ（ｘ）は、前述したように、秘密再構成装置２１０が利用できる状態になっている（例えば、秘密再構成装置２１０がアクセス可能な記憶保持装置に保存されていたり、集まったメンバが持っていてそれを入力として提供してもらったり、といったことができる状態にある）。
【００６３】
図１０に示されるように、秘密再構成装置２１０は、メンバＩＤ多項式判定部２１１と、基多項式再構成部２１２と、秘密多項式分離部２１３と、多項式変換部２１４とを有する。基多項式再構成部２１２及び秘密多項式分離部２１３は、秘密多項式を再構成する部分であるため、まとめて秘密多項式再構成部２１５と呼ぶ。
【００６４】
［メンバＩＤ多項式判定部２１１の説明］
図１０に示されるように、秘密再構成装置２１０へ入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）、その分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）、及び基多項式の次数Ｎは、メンバＩＤ多項式判定部２１１へ入力される。メンバＩＤ多項式判定部２１１は、入力される基多項式の次数ＮとメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）をもとに、もとの秘密情報を再構成するために、十分な権限を持つメンバが十分な人数だけ集まっているかどうかを判定し、その判定結果（メンバＩＤ多項式判定結果と呼ぶ）を基多項式再構成部２１２へ出力する。メンバＩＤ多項式判定結果は、「十分な権限を持つメンバが十分な人数だけ集まっている」ならば「再構成可能」の判定結果であり、そうでないならば「再構成不可能」の判定結果である。メンバＩＤ多項式判定部２１１は、入力されるすべてのメンバＩＤ多項式を掛け合わせる乗算手段を備えており、入力されるメンバＩＤ多項式（すなわち、集まったメンバのメンバＩＤ多項式）すべてを掛け合わせる。その乗算結果の多項式の次数と入力される基多項式の次数Ｎとを比較し、乗算結果の多項式の次数が基多項式の次数Ｎと等しいか、それより大きいならば、秘密情報Ｓ（秘密多項式Ｓ（ｘ））を再構成することができる（この秘密再構成可能性は、第１の実施形態の場合と同様に、中国人剰余定理で証明することができる）。したがって、上記のように乗算結果の多項式の次数が多項式の次数Ｎに等しいか、それより大きいならば、「再構成可能」の判定結果を出力し、秘密情報Ｓ（すなわち秘密多項式Ｓ（ｘ））の再構成処理に進む。そうでないならば、「再構成不可能」の判定結果を出力する。
【００６５】
［基多項式再構成部２１２の説明］
図１０に示されるように、秘密再構成装置２１０へ入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）及びその分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）は、基多項式再構成部２１２へ入力される。基多項式再構成部２１２は、メンバＩＤ多項式判定部２１１からメンバＩＤ多項式判定結果を受け取り、メンバＩＤ多項式判定結果が再構成不可能という判定結果の場合、再構成エラー情報を秘密多項式分離部２１３へ出力する。そうでない場合には、入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）及び分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）より、基多項式Ｙ（ｘ）を求めるべく演算を行い、求められた基多項式Ｙ（ｘ）を秘密多項式分離部２１３へ出力する。基多項式Ｙ（ｘ）は、例えば、次のようにして求めることができる。各分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）に、メンバＩＤ多項式から計算される２つの係数多項式Ｍｉ１（ｘ），Ｍｉ２（ｘ），…，Ｍｉｋ（ｘ）及びＩｉ１（ｘ），Ｉｉ２（ｘ），…，Ｉｉｋ（ｘ）を乗算して足し合わせたものを、集まったメンバのメンバＩＤ多項式の積
Ｍ（ｘ）＝ｍｉ１（ｘ）×ｍｉ２（ｘ）×…×ｍｉｋ（ｘ）
で剰余をとる（ｍｏｄ．Ｍ（ｘ）の計算をする）ことによってを計算する。
【００６６】
すなわち、
2004274320.tif 000004
を計算することにより基多項式Ｙ（ｘ）を求める。乗算される各係数多項式は次のように計算する。入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）のうち、掛け合わせる分散情報多項式に対するメンバＩＤ多項式以外をすべて掛け合わせたものを、それぞれＭｉ１（ｘ），Ｍｉ２（ｘ），…，Ｍｉｋ（ｘ）とし、それらＭｉ１（ｘ），Ｍｉ２（ｘ），…，Ｍｉｋ（ｘ）に対し、掛け合わせる分散情報多項式に対するメンバＩＤ多項式の法（剰余をとる、ｍｏｄ．ｍｉｊ（ｘ）の計算をする）のもとでの逆元多項式をＩｉ１（ｘ），Ｉｉ２（ｘ），…，Ｉｉｋ（ｘ）とする。すなわち、Ｘｉｊ（ｘ）の係数Ｍｉｊ（ｘ）及びＩｉｊ（ｘ）は（ｊ＝１，２，…，ｋ）、
Ｍｉｊ（ｘ）
＝ｍｉ１（ｘ）×ｍｉ２（ｘ）×…×ｍｉｋ（ｘ）／ｍｉｊ（ｘ）
＝Ｍ（ｘ）／ｍｉｊ（ｘ）    …（９）
Ｉｉｊ（ｘ）＝（Ｍｉｊ（ｘ））−１（ｍｏｄ．ｍｉｊ（ｘ））  …（１０）
を計算することにより、求めることができる。
【００６７】
上記式（９）の計算は、計算式の上では、集まったすべてのメンバＩＤ多項式を掛け合わせた上で、Ｍｉｊ（ｘ）に対応するメンバＩＤ多項式ｍｉｊ（ｘ）で割り算しているが、実際には、Ｍｉｊ（ｘ）に対応するメンバＩＤ多項式ｍｉｊ（ｘ）以外のメンバＩＤ多項式で掛け合わせるだけという実施方法もある（この方法を採用した場合には、乗算１回及び割り算１回を減らすことができる）。また、上記式（１０）の計算は、メンバＩＤ多項式ｍｉｊ（ｘ）の法（剰余をとる、ｍｏｄ．ｍｉｊ（ｘ）の計算をする）のもとでの逆元を求める計算であるが、このような逆元を求める計算は、ユークリッドの互除法を用いて行うことができる。また、特に、メンバＩＤ多項式ｍｉｊ（ｘ）が既約多項式である場合には、ｍｉｊ（ｘ）の剰余をとることにより有限体が生成できるので、ｍｉｊ（ｘ）の法のもとでの逆元計算は、
（Ｍｉｊ（ｘ））−１
＝（Ｍｉｊ（ｘ））ｒ（ｍｏｄ．ｍｉｊ（ｘ））    …（１１）
ｒ＝ｑｍ−２    …（１２）
ｍ＝ｄｅｇ（ｍｉｊ（ｘ））    …（１３）
で計算することもできる。上記式（１２）において、ｑは、多項式の係数に用いている有限体ＧＦ（ｑ）の個数であり、上記式（１３）において、ｄｅｇ（ｍｉｊ（ｘ））は、ｍｉｊ（ｘ）の次数を算出することを意味している。また、逆元を求めるにあたっては、他の方式を用いてもよい。
【００６８】
［秘密多項式分離部２１３の説明］
図１０に示されるように、秘密再構成装置２１０へ入力される秘密ＩＤ多項式Ｐ（ｘ）は、秘密多項式分離部２１３へ入力される。秘密多項式分離部２１３は、基多項式再構成部２１２から、基多項式Ｙ（ｘ）を受け取り、この基多項式Ｙ（ｘ）と入力される秘密ＩＤ多項式Ｐ（ｘ）から、秘密多項式Ｓ（ｘ）を求めるべく演算を行う。求められた秘密多項式Ｓ（ｘ）は、多項式変換部２１４へ出力する。秘密多項式再構成部２１３は、剰余演算手段を備えており、基多項式Ｙ（ｘ）を秘密ＩＤ多項式Ｐ（ｘ）で割ったときの剰余を秘密多項式Ｓ（ｘ）として計算して出力する。また、基多項式再構成部２１２からの出力が再構成エラー情報ならば、秘密多項式分離部２１３は、秘密多項式Ｓ（ｘ）を再構成する代わりにそのまま再構成エラー情報を多項式変換部２１４へ出力する。
【００６９】
［多項式変換部２１４の説明］
図１０に示されるように、多項式変換部２１４においては、秘密多項式分離部２１３から入力された秘密多項式Ｓ（ｘ）をもとの秘密情報Ｓへ戻す操作を行い、秘密情報Ｓを求め出力する。また、秘密多項式分離部２１３からの出力が再構成エラー情報であった場合には、多項式変換部２１４は、秘密情報Ｓを求める代わりにそのまま再構成エラー情報を出力する。多項式変換部２１４での変換は、秘密分散装置２００での多項式変換部２０１１の逆の変換を行う。前述した多項式変換部２０１１の説明と同様に、第２の実施形態における説明においては、秘密情報Ｓは正の整数値をとるものとしているので、それを多項式に変換する必要がある。しかし、もしも入力される秘密情報Ｓがすでに多項式である場合、例えば、秘密情報Ｓが有限体ＧＦ（ｑ）の拡大体ＧＦ（ｑｍ）の要素で、生成多項式ｇ（ｘ）で割ったときの剰余で記述する多項式表現されている場合には、秘密分散装置において特に多項式へ変換する必要がなく、秘密再構成装置においても、もとに戻す変換を必要としない。したがって、秘密情報Ｓの記述方法によって、多項式変換部２１４が必要ではない（すなわち、多項式変換部２１４ではなにも処理をしない）場合がある。
【００７０】
さらに、秘密分散装置２００における説明で挙げた例をもとに説明すると、例えば、多項式変換部２０１１において、秘密情報Ｓから秘密多項Ｓ（ｘ）式への変換に、Ｓ（ｘ）＝ｘ＋Ｓという、定数項がＳの一次多項式を用いるような変換をした場合（係数に用いる有限体ＧＦ（ｑ）上のｑの値がＳよりも大きい場合）には、多項式変換部２１４は、秘密多項式Ｓ（ｘ）の定数項を秘密情報Ｓとして出力する。また、定数項のみで秘密多項式Ｓ（ｘ）が成っている場合（すなわちＳ（ｘ）＝Ｓの場合）、多項式変換部２１４においては、なにも処理をせずにそのまま出力する。また、多項式変換部２０１１において、秘密をｙ個に分割し、
Ｓ（ｘ）＝Ｓ１＋Ｓ２ｘ＋Ｓ３ｘ２＋…＋Ｓｙｘｙ−１
のようにｙ−１次多項式とするような変換をした場合には、多項式変換部２１４においては、秘密多項式Ｓ（ｘ）の各係数Ｓ１，Ｓ２，…，Ｓｙを組み合わせる（分割と逆の処理を行う。すなわち、秘密をビット展開してそれをｙ個に分割した場合には、それぞれを連接させることをしたり、Ｓ＝Ｓ１＋Ｓ２＋…＋ＳｙになるようにＳｉに分割した場合には、それぞれを足し合わせる）
ことにより、秘密情報Ｓに変換する。さらに、もとの秘密が有限体ＧＦ（ｑ）の拡大体ＧＦ（ｑｍ）の要素であり、生成多項式ｇ（ｘ）で割ったときの剰余で記述する多項式表現された多項式がＳ（ｘ）となっている場合には、そのまま（多項式表現のまま）出力するか、もとの表現形式に変換して出力する。多項式変換部２１４からの出力が秘密再構成装置２１０の出力となる。
【００７１】
≪２−３．秘密分散装置２００の動作≫
次に、図８の秘密分散装置２００の動作を説明する。秘密分散装置２００は、分散させたいもとの秘密情報Ｓをｎ人のメンバに分散情報として分散させる際に、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じて、メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を生成し、そのメンバＩＤ多項式に該当する分散情報Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）を生成して出力する。図１１は、秘密分散装置２００の動作を示すフローチャートである。
【００７２】
図１１に示されるように、まず、入力される秘密情報Ｓ及び各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎから、秘密ＩＤ多項式Ｐ（ｘ）と、基多項式Ｙ（ｘ）と、各メンバに配布するメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）とを計算する（ステップＳ３１）。このステップＳ３１は、図８のＩＤ基多項式生成部２０４の動作に相当する。ステップＳ３１のさらに詳細なフローチャートを、図１２に示す。
【００７３】
図１２に示されるように、ステップＳ３１においては、まず、秘密情報Ｓから秘密多項式Ｓ（ｘ）を計算（ステップＳ３１１）する。このステップＳ３１１は、図９の多項式変換部２０１１の動作に相当する。ここでの変換は、前述した多項式変換部２０１１の構成で説明したとおり、有限体ＧＦ（ｑ）（有限体は予め決められている）の係数をとる多項式に変換する。数値である秘密情報Ｓから一意に多項式へ変換でき、また、逆に多項式から一意にもとの秘密情報Ｓへ変換できるならば、どのような変換方法を採ってもよい。
【００７４】
次に、図１２に示されるように、秘密多項式Ｓ（ｘ）から秘密ＩＤ多項式Ｐ（ｘ）を計算し（ステップＳ３１２）、さらに、権限レベルＬ１，Ｌ２，…，Ｌｎから基多項式の次数Ｎを計算する（ステップＳ３１３）。ステップＳ３１２とステップＳ３１３は、図１２に示されるように並列に動作させてもよいし、プログラムソフトウェアで実行させるように直列に動作させてもよい。直列に動作させるときは、ステップＳ３１２とステップＳ３１３のどちらを先に実行してもよい。このステップＳ３１２は、図９の次数範囲指定既約多項式選択部２０１２の動作に相当し、秘密ＩＤ多項式Ｐ（ｘ）は、秘密多項式Ｓ（ｘ）の次数よりも大きな次数を持つ既約多項式を選択することにより計算される。ステップＳ３１３は、図９の最大値選択部１０１３及び基多項式次数生成部２０１３の動作に相当する。基多項式の次数Ｎは、最大値選択部１０１３で権限レベルＬ１，Ｌ２，…，Ｌｎのうち最大値をとるもの（すなわち、権限の最も低い権限レベル）を選択して基多項式次数生成部２０１３へ入力し、予め決められた分散情報の最低桁数ＮＸｍｉｎと入力される権限レベルの最大値とを乗算することにより計算される。
【００７５】
次に、図１２に示されるように、権限レベルＬ１，Ｌ２，…，Ｌｎ及び基多項式の次数Ｎから、メンバＩＤ多項式を計算し（ステップＳ３１４１、Ｓ３１４２）、秘密多項式Ｓ（ｘ）、秘密ＩＤ多項式Ｐ（ｘ）、及び基多項式の次数Ｎから、基多項式Ｙ（ｘ）を計算する（ステップＳ３１５）。ステップＳ３１４１とステップＳ３１４２とを合わせたステップを、まとめてステップＳ３１４とする。ステップＳ３１４とステップＳ３１５は、図１２に示されるように並列に動作させてもよいし、プログラムソフトウェアで実行させるように直列に動作させてもよい。直列に動作させるときは、ステップＳ３１４とステップＳ３１５のどちらを先に実行してもよい。ステップＳ３１４１は、図９のメンバＩＤ多項式次数生成部２０１４の動作に相当し、各メンバＩＤ多項式の次数は、基多項式の次数Ｎを各権限レベルＬ１，Ｌ２，…，Ｌｎで割ることにより（小数点以下は切り上げにする）計算される。
【００７６】
図１２に示されるステップＳ３１４２は、図９の次数指定既約多項式選択部２０１５の動作に相当し、各メンバＩＤ多項式は、各メンバＩＤ多項式の次数となる既約多項式を選択することにより計算される。ステップＳ３１５は、図８の基多項式生成部２０２の動作に相当し、基多項式Ｙ（ｘ）は、秘密ＩＤ多項式Ｐ（ｘ）の次数をＮＰとして次数Ｎ−ＮＰである乱数係数の多項式Ｒ（ｘ）（乱数多項式）を生成し、乱数多項式Ｒ（ｘ）と秘密ＩＤ多項式Ｐ（ｘ）を乗算した結果に秘密多項式Ｓ（ｘ）を加算することにより計算される（前述した式（７）参照）。
【００７７】
図１１に示されるように、ステップＳ３１の次に、基多項式Ｙ（ｘ）及びメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）から、分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）を計算する（ステップＳ３２）。このステップＳ３２は、図８の分散情報多項式生成部２０３の動作に相当し、各分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）は、基多項式Ｙ（ｘ）を各メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）で割ったときの剰余を求めることにより計算される。以上の動作により、秘密分散装置２００は、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じて、メンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を生成し、そのメンバＩＤ多項式に対する分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）を生成して出力する。
【００７８】
≪２−４．秘密再構成装置２１０の動作≫
次に、図１０の秘密再構成装置２１０の動作を説明する。秘密再構成装置２１０は、秘密情報Ｓを再構成するために集まったｋ人のメンバから集められたメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）及び分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）から、秘密情報Ｓを再構成する。そのとき、秘密の再構成のために十分な権限レベルを持つメンバが十分な人数分集まっているならば、秘密情報Ｓを再構成することができ、そうでないならば、秘密情報Ｓを再構成することができない。図１３は、秘密再構成装置２１０の動作を示すフローチャートである。
【００７９】
図１３に示されるように、まず、入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）及び基多項式の次数Ｎから、メンバＩＤ多項式判定結果を計算する（ステップＳ３１）。ステップＳ４１の処理は、図１０のメンバＩＤ多項式判定部２１１の動作に相当し、メンバＩＤ多項式判定結果は、入力されるすべてのメンバＩＤ多項式（すなわち、集まったメンバのメンバＩＤ多項式）を掛け合わせた乗算結果の多項式の次数と基多項式の次数Ｎとを比較し、乗算結果の多項式の次数が基多項式の次数Ｎに等しいか、それより大きいならば、「再構成可能」と計算され、そうでないならば、「再構成不可能」と計算される。
【００８０】
次に、メンバＩＤ多項式判定結果が再構成可能かどうかで動作が分かれる（ステップＳ４２）。もし、ステップＳ４２の結果がＹｅｓならば（すなわち、再構成可能ならば）、秘密情報Ｓを再構成するためにステップＳ４３に進み、そうでないならば（すなわち、再構成不可能ならば）、再構成エラー情報を出力して（ステップＳ４４）終了する。
【００８１】
図１３に示されるように、ステップＳ４２における判定結果がＹｅｓならば、入力されるメンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）、分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）、及び秘密ＩＤ多項式Ｐ（ｘ）から秘密情報Ｓを計算する（ステップＳ４３）。ステップＳ４３は、図１０の秘密再構成部２１５の動作に相当する。ステップＳ４３のさらに詳細なフローチャートを、図１４に示す。
【００８２】
図１４に示されるように、ステップＳ４３においては、まず、メンバＩＤ多項式ｍｉ１（ｘ），ｍｉ２（ｘ），…，ｍｉｋ（ｘ）及び分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）から基多項式Ｙ（ｘ）を計算する（ステップＳ４３１）。ステップＳ４３１は、図１０の基多項式再構成部２１２の動作に相当する。基多項式Ｙ（ｘ）は、例えば、次のようにして計算される。各分散情報多項式Ｘｉ１（ｘ），Ｘｉ２（ｘ），…，Ｘｉｋ（ｘ）にメンバＩＤ多項式から計算される２つの係数多項式Ｍｉ１（ｘ），Ｍｉ２（ｘ），…，Ｍｉｋ（ｘ）及びＩｉ１（ｘ），Ｉｉ２（ｘ），…，Ｉｉｋ（ｘ）を乗算して足し合わせたものを、集まったメンバのメンバＩＤ多項式の積
Ｍ（ｘ）＝ｍｉ１（ｘ）×ｍｉ２（ｘ）×…×ｍｉｋ（ｘ）
で剰余をとる（ｍｏｄ．Ｍ（ｘ）の計算をする）ことによってを計算される（前述した式（８）、（９）、（１０）参照）。
【００８３】
次に、図１４に示されるように、基多項式Ｙ（ｘ）から秘密多項式Ｓ（ｘ）を計算する（ステップＳ４３２）。ステップＳ４３２は、図１０の秘密多項式分離部２１３の動作に相当し、秘密多項式Ｓ（ｘ）は、基多項式Ｙ（ｘ）を秘密ＩＤ多項式Ｐ（ｘ）で割ったときの剰余をとることによって計算される。
【００８４】
次に、図１４に示されるように、秘密多項式Ｓ（ｘ）から秘密情報Ｓを計算する（ステップＳ４３３）。ステップＳ４３３は、図１０の多項式変換部２１４の動作に相当する。ここでの変換は、先の多項式変換部２１４の構成の説明したとおり、有限体ＧＦ（ｑ）（有限体は予め決められている）の係数をとる多項式から数値に変換し、多項式変換部２０１１とは逆の変換を行う。ステップＳ４３において秘密情報Ｓが求められると、秘密情報Ｓを出力し動作を終了する。
【００８５】
≪２−５．第２の実施形態の効果≫
第２の実施形態によれば、第１の実施形態と同様に、秘密分散装置２００において、秘密情報を分散させるときに、各メンバの権限レベルＬ１，Ｌ２，…，Ｌｎに応じたメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）を生成し、さらにメンバＩＤ多項式ｍ１（ｘ），ｍ２（ｘ），…，ｍｎ（ｘ）間にはそれぞれが既約多項式であるということ以外には制約を設けないようにし、また、中国人剰余定理の性質を利用した秘密分散法を採用したため、所望の権限レベルＬ１，Ｌ２，…，Ｌｎに応じた分散情報多項式Ｘ１（ｘ），Ｘ２（ｘ），…，Ｘｎ（ｘ）を生成させることができる。このため、第２の実施形態の秘密分散装置２００、秘密分散再構成システム、及び秘密分散方法によれば、生成しなければならない分散情報の情報量及び保管しなければならない分散情報の情報量の増加を抑制しつつ、各メンバの権限レベルに応じた秘密分散を行うことができる。また、第２の実施形態の秘密再構成装置２１０、秘密分散再構成システム、及び秘密再構成方法によれば、権限レベルに応じて秘密分散された情報を再構成することができる。さらに、第２の実施形態によれば、有限体上の要素を係数に持つ多項式をメンバＩＤや分散情報などとして取り扱っているので、演算上極端に桁数の異なる数値同士の計算を行うことを避けたり、未知の桁数の演算を行う必要がなくなるので、ハードウェアで実装する際にも効率的になる。
【００８６】
≪３．他の変形例≫
第１及び第２の実施形態の秘密再構成装置１１０，２１０において、メンバＩＤ判定部１１１及びメンバＩＤ多項式判定部２１１における判定結果（メンバＩＤ判定結果及びメンバＩＤ多項式判定結果）は、再構成不可能の判定結果である場合であっても、秘密分散装置１１０，２１０内の以降の処理ブロック（基数再構成部１１２、秘密再構成部１１３、基多項式再構成部２１２、秘密多項式再構成部２１３、多項式変換部２１４）へ順次渡されていったが、再構成不可能の判定結果の場合のみ、この判定結果を秘密分散装置１１０，２１０から直接出力し、上記処理ブロック（基数再構成部１１２、秘密再構成部１１３、基多項式再構成部２１２、秘密多項式再構成部２１３、多項式変換部２１４）を通さずに処理を終わらせることができるように構成することも可能である。
【００８７】
また、第１の実施形態の秘密分散装置１００のＩＤ生成部１０１においては、すべてのメンバＩＤ、及び秘密ＩＤとしては、それぞれ素数を選択（範囲指定素数選択部１０１１、桁数指定素数選択部１０１５での処理）していたが、すべてのメンバＩＤのどの２つをとっても互いに素な関係にあるならば、メンバＩＤは必ずしも素数である必要がない。また、秘密ＩＤは、必ずしも素数である必要がなく、自由に選択することができる。
【００８８】
また、同様に、第２の実施形態の秘密分散装置２００のＩＤ生成部２０１においては、すべてのメンバＩＤ多項式、秘密ＩＤ多項式としては、それぞれ既約多項式を選択（次数範囲指定既約多項式選択部２０１２、次数指定既約多項式選択部２０１５での処理）していたが、すべてのメンバＩＤ多項式のどの２つをとっても、互いに共通の因数となる多項式を持たないならば、メンバＩＤ多項式は必ずしも既約多項式である必要がない。また、秘密ＩＤ多項式は、必ずしも既約多項式である必要がなく、自由に選択することができる。
【００８９】
第１の実施形態の秘密再構成装置１１０のメンバＩＤ判定部１１１においては、集まったメンバのメンバＩＤすべてを掛け合わせた値を生成してから、その生成された値の桁数と基数の桁数Ｎとを比較するように構成していたが、整数同士の掛け算結果の桁数は、掛け合わされる桁数の足し算結果とほぼ等しくなることから、集まったメンバのメンバＩＤの桁数をそれぞれ算出してから、算出された桁数をすべて足し合わせた結果と、基数の桁数Ｎとを比較するようにしてもよい。
【００９０】
また、同様に、第２の実施形態の秘密再構成装置２１０のメンバＩＤ多項式判定部２１１においては、集まったメンバのメンバＩＤ多項式すべてを掛け合わせた多項式を生成してから、その生成された多項式の次数と基多項式の次数Ｎとを比較するように構成していたが、多項式同士の掛け算結果の次数は、掛け合わされる次数の足し算結果となることから、集まったメンバのメンバＩＤ多項式の次数をそれぞれ算出してから、算出された次数をすべて足し合わせた結果と、基多項式の次数Ｎとを比較するようにしてもよい。すなわち、次の値、
2004274320.tif 000005
と、基多項式の次数Ｎとを比較する。式（１４）において、ｄｅｇ（ｍｉｊ（ｘ））は、ｍｉｊ（ｘ）の次数を算出することを意味している。
【００９１】
【発明の効果】
以上説明したように、本発明の秘密分散装置、秘密分散再構成システム、及び秘密分散方法によれば、生成しなければならない分散情報の情報量及び保管しなければならない分散情報の情報量の増加を抑制しつつ、各メンバの権限レベルに応じた秘密分散を行うことができる。
【００９２】
また、本発明の秘密再構成装置、秘密分散再構成システム、及び秘密再構成方法によれば、権限レベルに応じて秘密分散された情報を再構成することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る秘密分散装置の構成を概略的に示すブロック図である。
【図２】図１のＩＤ生成部の構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る秘密再構成装置の構成を概略的に示すブロック図である。
【図４】本発明の第１の実施形態に係る秘密分散装置の動作を示すフローチャートである。
【図５】図４のステップＳ１１における動作を示すフローチャートである。
【図６】本発明の第１の実施形態に係る秘密再構成装置の動作を示すフローチャートである。
【図７】図６のステップＳ２３における動作を示すフローチャートである。
【図８】本発明の第２の実施形態に係る秘密分散装置の構成を概略的に示すブロック図である。
【図９】図８のＩＤ生成部の構成を示すブロック図である。
【図１０】本発明の第２の実施形態に係る秘密再構成装置の構成を概略的に示すブロック図である。
【図１１】本発明の第２の実施形態に係る秘密分散装置の動作を示すフローチャートである。
【図１２】図１１のステップＳ３１における動作を示すフローチャートである。
【図１３】本発明の第２の実施形態に係る秘密再構成装置の動作を示すフローチャートである。
【図１４】図１３のステップＳ４３における動作を示すフローチャートである。
【符号の説明】
１００  秘密分散装置、
１０１  ＩＤ生成部、
１０１１  範囲指定素数選択部、
１０１２  基数桁数生成部、
１０１３  最大値選択部、
１０１４  メンバＩＤ桁数生成部、
１０１５  桁数指定素数選択部、
１０２  基数生成部、
１０３  分散情報生成部、
１０４  ＩＤ基数生成部、
１１０  秘密再構成装置、
１１１  メンバＩＤ判定部、
１１２  基数再構成部、
１１３  秘密分離部、
１１４  秘密再構成部、
２００  秘密分散装置、
２０１  ＩＤ生成部、
２０１１  多項式変換部、
２０１２  次数範囲指定既約多項式選択部、
２０１３  基多項式次数生成部、
２０１４  メンバＩＤ多項式次数生成部、
２０１５  次数指定既約多項式選択部、
２０２  基多項式生成部、
２０３  分散情報多項式生成部、
２０４  ＩＤ基多項式生成部、
２１０  秘密再構成装置、
２１１  メンバＩＤ多項式判定部、
２１２  基多項式再構成部、
２１３  秘密多項式分離部、
２１４  多項式変換部、
２１５  秘密多項式再構成部、
Ｓ  もとの秘密、
Ｌ１，Ｌ２，…，Ｌｎ  秘密分散装置に入力される権限レベル、
Ｎ  基数の桁数又は基多項式の次数、
Ｐ  秘密ＩＤ、
Ｙ  基数、
ｍ１，ｍ２，…，ｍｎ  秘密分散装置から出力されるメンバＩＤ、
Ｘ１，Ｘ２，…，Ｘｎ  秘密分散装置から出力される分散情報、
ｍｉ１，ｍｉ２，…，ｍｉｋ  秘密再構成装置に入力されるメンバＩＤ、
Ｘｉ１，Ｘｉ２，…，Ｘｉｋ  秘密再構成装置に入力される分散情報、
Ｓ（ｘ）  秘密多項式、
Ｐ（ｘ）  秘密ＩＤ多項式、
Ｙ（ｘ）  基多項式、
ｍ（ｘ）１，ｍ（ｘ）２，…，ｍ（ｘ）ｎ  秘密分散装置から出力されるメンバＩＤ多項式、
Ｘ（ｘ）１，Ｘ（ｘ）２，…，Ｘ（ｘ）ｎ  秘密分散装置から出力される分散情報多項式、
ｍ（ｘ）ｉ１，ｍ（ｘ）ｉ２，…，ｍ（ｘ）ｉｋ  秘密再構成装置に入力されるメンバＩＤ多項式、
Ｘ（ｘ）ｉ１，Ｘ（ｘ）ｉ２，…，Ｘ（ｘ）ｉｋ  秘密再構成装置に入力される分散情報多項式。
【図１】
2004274320.tif 000006
【図２】
2004274320.tif 000007
【図３】
2004274320.tif 000008
【図４】
2004274320.tif 000009
【図５】
2004274320.tif 000010
【図６】
2004274320.tif 000011
【図７】
2004274320.tif 000012
【図８】
2004274320.tif 000013
【図９】
2004274320.tif 000014
【図１０】
2004274320.tif 000015
【図１１】
2004274320.tif 000016
【図１２】
2004274320.tif 000017
【図１３】
2004274320.tif 000018
【図１４】
2004274320.tif 000019