(57)【要約】  （ｋ，ｎ）閾値秘密分散法において、秘密情報の復元に用いられるｋ個の分散秘密情報の中に含まれている改竄された分散秘密情報の特定を可能にし、かつ分散秘密情報のサイズを小さくするシステムが開示される。分散情報生成装置は、（ｋ，ｎ）閾値秘密分散法で生成したｎ個の分散秘密情報Ｖｉと、ランダムな多項式とを用いて、不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する。復元装置は、任意のｋ個の分散秘密情報とｋ個の不正者特定情報とを用いて、不正分散秘密情報の検出を行い、不正分散秘密情報が検出されなかったときにｋ個の分散秘密情報から秘密情報を復元する。
2008050544.tif 000002
【特許請求の範囲】
【請求項１】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散して管理する秘密情報分散システムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成し、生成した前記ｎ個の分散秘密情報Ｖｉと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たものとしたランダムなｔ次多項式とを用いて、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を、前記ｎ個の分散秘密情報Ｖｉに対応付けて生成する分散情報生成装置と、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理を行って、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断し、不正分散秘密情報が検出されなかったときに前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する復元装置と、を有する秘密情報分散システム。
【請求項２】
前記分散情報生成装置は、
前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、前記想定する不正分散秘密情報数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉを出力する秘密情報分散装置と、
前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉを入力とし、任意のＶｉ，Ｖｊに対してＶｉ≠Ｖｊであればｈ（Ｖｉ）≠ｈ（Ｖｊ）であることが保証される方法ｈによって、前記各分散秘密情報Ｖｉから一意に定まる値ｘｉを生成し、生成したｘｉをランダムなｔ次多項式Ｃに代入して得られるＣ（ｘｉ）（ｉ＝１，２，・・・，ｎ）を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとして出力する不正者特定情報生成装置と、を有し、
前記復元装置は、
前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理による誤り検出と前記ｔ次多項式Ｃの復号とを行う不正者特定装置と、
前記不正者特定装置によって誤りが検出されなかったときに、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を用いて前記秘密情報を復元する秘密情報復元装置と、を有する、請求項１に記載の秘密情報分散システム。
【請求項３】
前記分散情報生成位置は、
前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、想定する不正な分散秘密情報の数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉを出力する秘密情報分散装置と、
前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉを入力とし、任意のＶｉ，Ｖｊに対してＶｉ≠Ｖｊであればｈ（Ｖｉ）≠ｈ（Ｖｊ）となる確率が一定以上に高いことが保証される方法ｈによって、前記各分散秘密情報Ｖｉとランダムに生成したｅとから一意に定まる値ｘｉを生成し、生成したｘｉをランダムなｔ次多項式Ｃｓに代入して得られるＣｓ（ｘｉ）（ｉ＝１，２，・・・，ｎ）と、前記ｅに対してＣｅ（０）＝ｅとなるランダムなｔ次多項式Ｃｅにｉを入力したＣｅ（ｉ）（ｉ＝１，２，・・・，ｎ）とを、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとして出力する不正者特定情報生成装置と、を有し、
前記復元装置は、
前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理により誤り検出と前記ｔ次多項式Ｃｓおよび前記Ｃｅの復号とを行う不正者特定装置と、
前記不正者特定装置によって誤りが検出されなかったときに、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を用いて前記秘密情報を復元する秘密情報復元装置と、を有する、請求項１に記載の秘密情報分散システム。
【請求項４】
前記分散情報生成装置で生成された前記分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）と前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）とを対にして、前記ｎ個の対を各々に格納するｎ個の記憶装置をさらに有する、請求項１から３のいずれか１項に記載の秘密情報分散システム。
【請求項５】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する分散情報生成装置あって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記ｎ個の分散秘密情報Ｖｉと、閾値ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式とを用いて、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする、不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を、前記ｎ個の分散秘密情報Ｖｉに対応付けて生成する不正者特定情報生成装置と、を有する分散情報生成装置。
【請求項６】
前記秘密情報分散装置は、前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、想定する不正な分散秘密情報の数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉを出力し、
前記不正者特定情報生成装置は、前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉを入力とし、任意のＶｉ，Ｖｊに対してＶｉ≠Ｖｊであればｈ（Ｖｉ）≠ｈ（Ｖｊ）であることが保証される方法ｈによって、前記各分散秘密情報Ｖｉから一意に定まる値ｘｉを生成し、生成したｘｉをランダムなｔ次多項式Ｃに代入して得られるＣ（ｘｉ）（ｉ＝１，２，・・・，ｎ）を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとして出力する、請求項５に記載の分散情報生成装置。
【請求項７】
秘密情報分散装置は、前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、想定する不正な分散秘密情報の数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉを出力し、
不正者特定情報生成装置は、前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉを入力とし、任意のＶｉ，Ｖｊに対してＶｉ≠Ｖｊであればｈ（Ｖｉ）≠ｈ（Ｖｊ）となる確率が一定以上に高いことが保証される方法ｈによって、前記各分散秘密情報Ｖｉとランダムに生成したｅとから一意に定まる値ｘｉを生成し、生成したｘｉをランダムなｔ次多項式Ｃｓに代入して得られるＣｓ（ｘｉ）（ｉ＝１，２，・・・，ｎ）と、前記ｅに対してＣｅ（０）＝ｅとなるランダムなｔ次多項式Ｃｅにｉを入力したＣｅ（ｉ）（ｉ＝１，２，・・・，ｎ）とを、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとして出力する、請求項５に記載の分散情報生成装置。
【請求項８】
請求項５に記載の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する復元装置であって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理を行う不正者特定装置と、
前記不正者特定装置にて誤りが検出されなかったときに、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する秘密情報復元装置と、を有する復元装置。
【請求項９】
前記分散情報生成装置は、請求項６に記載された前記分散情報生成装置であり、
前記不正者特定装置は、前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理による誤り検出と前記ｔ次多項式Ｃの復号とを行い、
秘密情報復元装置は、前記不正者特定装置によって誤りが検出されなかったときに、前記ｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を用いて前記秘密情報を復元する、請求項８に記載の復元装置。
【請求項１０】
前記分散情報生成装置は、請求項７に記載された前記分散情報生成装置であり、
前記不正者特定装置は、前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理により誤り検出と前記ｔ次多項式Ｃｓおよび前記Ｃｅの復号とを行い、
秘密情報復元装置は、前記不正者特定装置によって誤りが検出されなかったときに、前記ｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を用いて前記秘密情報を復元する、請求項８に記載の復元装置。
【請求項１１】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する処理をコンピュータに実行させるためのプログラムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する手順と、
生成された前記ｎ個の分散秘密情報Ｖｉと、閾値ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式とを用いて、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする、不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を、前記ｎ個の分散秘密情報Ｖｉに対応付けて生成する手順と、をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項５に記載の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する処理をコンピュータに実行させるためのプログラムであって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理を行う手順と、
前記リード・ソロモン誤り訂正処理にて誤りが検出されなかったときに、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する手順と、をコンピュータに実行させるためのプログラム。
【請求項１３】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散して管理する秘密情報分散システムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成し、生成した前記ｎ個の分散秘密情報Ｖｉと、ランダムなデータと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たすものとしたランダムなｔ−１次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとすることにより、前記ｎ個の分散秘密情報Ｖｉに対応する前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する分散情報生成装置と、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断し、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝の全てが不正分散秘密情報でなければ、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する復元装置と、を有する秘密情報分散システム。
【請求項１４】
前記分散情報生成装置は、
前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、前記想定する不正分散秘密情報数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉ＝（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ）を出力する秘密情報分散装置と、
前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を入力として、前記ランダムなデータをｅ｛０，ｉ｝とし、前記ｔ−１次多項式をｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）として、前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖｉ＋ｅ｛１，ｊ｝（ｉ）（ｊ＝１，２，・・・，ｎ，ｊ≠ｉ）となるようなａ｛ｉ，ｊ｝を生成し、（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝，ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）（ｉ＝１，２，・・・，ｎ）をＶｉに対する不正者特定情報Ａｉと決定する不正者特定情報生成装置と、を有し、
前記復元装置は、
前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、各ｉ，ｊ（ｉ，ｊ＝１，２，・・・，ｎ，ｉ≠ｊ）の組について前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖｉ＋ｅ｛１，ｊ｝（ｉ）が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のそれぞれについて不正分散秘密情報であるか否かを判断する不正者特定装置と、
前記不正者特定装置によって前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）の全てが不正分散秘密情報でないと判断されれば、該ｋ個の分散秘密情報Ｖｉから前記秘密情報を復元する秘密情報復元装置と、を有する、請求項１３に記載の秘密情報分散システム。
【請求項１５】
前記分散情報生成装置は、
前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、前記想定する不正分散秘密情報数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉ＝（ｉ，ｖ｛ｉ，１｝，ｖ｛ｉ，２｝，・・・，ｖ｛ｉ，Ｎ｝）（ｖ｛ｉ，ｍ｝∈ＧＦ（ｑ）））（ｉ＝１，２，・・・，ｎ）を出力する秘密情報分散装置と、
前記秘密情報分散装置から出力されたＶｉ（ｉ＝１，２，・・・，ｎ）を入力として、前記ランダムなデータをｅ｛０，ｉ｝∈ＧＦ（ｑ）とし、前記ｔ−１次多項式をＧＦ（ｑ）上のランダムなｔ−１次多項式ｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）として、前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖ｛ｉ，１｝＋ｅ｛０，ｊ｝＾２＊ｖ｛ｉ，２｝＋・・・＋ｅ｛０，ｊ｝＾Ｎ＊ｖ｛ｉ，Ｎ｝＋ｅ｛１，ｊ｝（ｉ）（ｊ＝１，２，・・・，ｎ，ｊ≠ｉ）となるようなａ｛ｉ，ｊ｝を生成し、（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝，ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）（ｉ＝１，２，・・・，ｎ）をＶｉに対する不正者特定情報と決定する不正者特定情報生成装置と、を有し、
前記復元装置は、
前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、各ｉ，ｊ（ｉ，ｊ＝１，２，・・・，ｎ，ｉ≠ｊ）の組みについて前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖ｛ｉ，１｝＋ｅ｛０，ｊ｝＾２＊ｖ｛ｉ，２｝＋・・・＋ｅ｛０，ｊ｝＾Ｎ＊ｖ｛ｉ，Ｎ｝＋ｅ｛１，ｊ｝（ｉ）が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のそれぞれについて不正分散秘密情報であるか否かを判定する不正者特定装置と、
前記不正者特定装置によって前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）の全てが不正分散秘密情報でないと判断されれば、該ｋ個の分散秘密情報Ｖｉから前記秘密情報を復元する秘密情報復元装置と、を有する、請求項１３に記載の秘密情報分散システム。
【請求項１６】
前記分散情報生成装置で生成された前記分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）と前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）とを対にして、前記ｎ個の対を各々に格納するｎ個の記憶装置をさらに有する、請求項１３から１５のいずれか１項に記載の秘密情報分散システム。
【請求項１７】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する分散情報生成装置あって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記ｎ個の分散秘密情報Ｖｉと、ランダムなデータと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たすものとしたランダムなｔ−１次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとすることにより、前記ｎ個の分散秘密情報Ｖｉに対応する前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する不正者特定情報生成装置と、を有する分散情報生成装置。
【請求項１８】
秘密情報分散装置は、前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、前記想定する不正分散秘密情報数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉ＝（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ）を出力し、
前記不正者特定情報生成装置は、前記秘密情報分散装置から出力された前記ｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を入力として、前記ランダムなデータをｅ｛０，ｉ｝とし、前記ｔ−１次多項式をｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）として、前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖｉ＋ｅ｛１，ｊ｝（ｉ）（ｊ＝１，２，・・・，ｎ，ｊ≠ｉ）となるようなａ｛ｉ，ｊ｝を生成し、（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝，ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）（ｉ＝１，２，・・・，ｎ）をＶｉに対する不正者特定情報Ａｉと決定する、請求項１７に記載の分散情報生成装置。
【請求項１９】
秘密情報分散装置は、前記秘密情報と、前記閾値ｋと、分散秘密情報の総数ｎと、前記想定する不正分散秘密情報数ｔとを入力とし、任意のｋ個の分散秘密情報から前記秘密情報が一意に復元可能であるような前記ｎ個の分散秘密情報Ｖｉ＝（ｉ，ｖ｛ｉ，１｝，ｖ｛ｉ，２｝，・・・，ｖ｛ｉ，Ｎ｝）（ｖ｛ｉ，ｍ｝∈ＧＦ（ｑ）））（ｉ＝１，２，・・・，ｎ）を出力し、
不正者特定情報生成装置は、前記秘密情報分散装置から出力されたＶｉ（ｉ＝１，２，・・・，ｎ）を入力として、前記ランダムなデータをｅ｛０，ｉ｝∈ＧＦ（ｑ）とし、前記ｔ−１次多項式をＧＦ（ｑ）上のランダムなｔ−１次多項式ｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）として、前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖ｛ｉ，１｝＋ｅ｛０，ｊ｝＾２＊ｖ｛ｉ，２｝＋・・・＋ｅ｛０，ｊ｝＾Ｎ＊ｖ｛ｉ，Ｎ｝＋ｅ｛１，ｊ｝（ｉ）（ｊ＝１，２，・・・，ｎ，ｊ≠ｉ）となるようなａ｛ｉ，ｊ｝を生成し、（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝，ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）（ｉ＝１，２，・・・，ｎ）をＶｉに対する不正者特定情報と決定する、請求項１７に記載の分散情報生成装置。
【請求項２０】
請求項１７に記載の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する復元装置であって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断する不正者特定装置と、
前記不正者特定装置の判断において前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝の全てが不正分散秘密情報でなければ、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する秘密情報復元装置と、を有する復元装置。
【請求項２１】
前記分散情報生成装置は、請求項１８に記載された前記分散情報生成装置であり、
前記不正者特定装置は、前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、各ｉ，ｊ（ｉ，ｊ＝１，２，・・・，ｎ，ｉ≠ｊ）の組について前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖｉ＋ｅ｛１，ｊ｝（ｉ）が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のそれぞれについて不正分散秘密情報であるか否かを判断し、
前記秘密情報復元装置は、前記不正者特定装置によって前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）の全てが不正分散秘密情報でないと判断されれば、該ｋ個の分散秘密情報Ｖｉから前記秘密情報を復元する、請求項２０に記載の復元装置。
【請求項２２】
前記分散情報生成装置は、請求項１９に記載された前記分散情報生成装置であり、
前記不正者特定装置は、前記秘密情報分散装置で生成されたうちのｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）と、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝に対応する、前記不正者特定情報生成装置で生成されたｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、各ｉ，ｊ（ｉ，ｊ＝１，２，・・・，ｎ，ｉ≠ｊ）の組みについて前記チェック条件式ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖ｛ｉ，１｝＋ｅ｛０，ｊ｝＾２＊ｖ｛ｉ，２｝＋・・・＋ｅ｛０，ｊ｝＾Ｎ＊ｖ｛ｉ，Ｎ｝＋ｅ｛１，ｊ｝（ｉ）が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のそれぞれについて不正分散秘密情報であるか否かを判定し、
前記秘密情報復元装置は、前記不正者特定装置によって前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）の全てが不正分散秘密情報でないと判断されれば、該ｋ個の分散秘密情報Ｖｉから前記秘密情報を復元する、請求項２０に記載の復元装置。
【請求項２３】
（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する処理をコンピュータに実行させるためのプログラムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する手順と、
生成した前記ｎ個の分散秘密情報Ｖｉと、ランダムなデータと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たすものとしたランダムなｔ−１次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとすることにより、前記ｎ個の分散秘密情報Ｖｉに対応する前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する手順と、をコンピュータに実行させるためのプログラム。
【請求項２４】
請求項１７に記載の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する処理をコンピュータに実行させるためのプログラムであって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断する手順と、
判断において前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝の全てが不正分散秘密情報でなければ、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する手順と、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報を分散して安全に管理するための分散情報生成装置と復元装置とに関する。
【背景技術】
【０００２】
秘密情報を複数の分散秘密情報に分散し、予め定められた分散秘密情報を集めた場合にのみ秘密情報の復元が可能となる秘密分散法と呼ばれる暗号技術が知られている。秘密分散法の中で、（ｋ，ｎ）閾値秘密分散法が最も有名である（Ａｄｉ  Ｓｈａｍｉｒ，“Ｈｏｗ  ｔｏ  ｓｈａｒｅ  ａ  ｓｅｃｒｅｔ”，Ｃｏｍｍ．ＡＣＭ，２２（１１），６１２−６１３（１９７９）（以下、文献１という）参照）。【０００３】
（ｋ，ｎ）閾値秘密分散法では、秘密情報がｎ個の分散秘密情報に分散される。そして、その中の任意のｋ個の分散秘密情報を集めた場合に秘密情報の復元が可能となる。一方、ｋ個未満の分散秘密情報からは秘密情報を復元できず、また秘密情報に関するいかなる情報も得られない。【０００４】
しかしながら、文献１に示された（ｋ，ｎ）閾値秘密分散法では、分散秘密情報を管理する者の不正や、分散秘密情報を管理する装置の故障は考慮されていなかった。そのため、ｋ個の分散秘密情報を集めて秘密情報を復元するとき、元のものと異なる分散秘密情報が１つでも含まれていれば、秘密情報を正しく復元することができず、また元の秘密情報を正しく復元できていないという事実を検知することもできなかった。【０００５】
これに対して、Ｍａｒｔｉｎ  Ｔｏｍｐａ，Ｈｅａｔｈｅｒ  Ｗｏｌｌ，“Ｈｏｗ  ｔｏ  Ｓｈａｒｅ  ａ  Ｓｅｃｒｅｔ  ｗｉｔｈ  Ｃｈｅａｔｅｒｓ”，Ｊｏｕｒｎａｌ  ｏｆ  Ｃｒｙｐｔｏｌｏｇｙ，ｖｏｌ．１，ｐａｇｅｓ  １３３−１３８，１９８８（以下、文献２という）、あるいは  Ｗａｋａｈａ  Ｏｇａｔａ，Ｋａｏｒｕ  Ｋｕｒｏｓａｗａ，Ｄｏｕｇｌａｓ  Ｒ  Ｓｔｉｎｓｏｎ，“Ｏｐｔｉｍｕｍ  Ｓｅｃｒｅｔ  Ｓｈａｒｉｎｇ  Ｓｃｈｅｍｅ  Ｓｅｃｕｒｅ  Ａｇａｉｎｓｔ  Ｃｈｅａｔｉｎｇ”，ＳＩＡＭ  Ｊｏｕｒｎａｌ  ｏｎ  Ｄｉｓｃｒｅｔｅ  Ｍａｔｈｅｍａｔｉｃｓ，ｖｏｌ．２０，ｎｏ１，ｐａｇｅｓ  ７９−９５，２００６（以下、文献３という）は、ｋ−１個の改竄された分散秘密情報を含むｋ個の分散秘密情報を集めて秘密情報を復元しようとしたとき、元の秘密情報が正しく復元されていないという事実を検知する技術を開示している。しかし、文献２あるいは文献３に開示された技術では、改竄された分散秘密情報が含まれていることは検知できるが、どれが改竄された分散秘密情報であるかを特定することはできなかった。【０００６】
これに対して、Ｔ．Ｒａｂｉｎ  ａｎｄ  Ｍ．Ｂｅｎ−Ｏｒ，“Ｖｅｒｉｆｉａｂｌｅ  Ｓｅｃｒｅｔ  Ｓｈａｒｉｎｇ  ａｎｄ  Ｍｕｌｔｉｐａｒｔｙ  Ｐｒｏｔｏｃｏｌｓ  ｗｉｔｈ  Ｈｏｎｅｓｔ  Ｍａｊｏｒｉｔｙ”，Ｐｒｏｃ．ＳＴＯＣ‘８９，ｐｐ．７３−８５，１９８９（以下、文献４という）、あるいはＫ．Ｋｕｒｏｓａｗａ，Ｓ．Ｏｂａｎａ  ａｎｄ  Ｗ．Ｏｇａｔａ，“ｔ−Ｃｈｅａｔｅｒ  Ｉｄｅｎｔｉｆｉａｂｌｅ  （ｋ，ｎ）  Ｓｅｃｒｅｔ  Ｓｈａｒｉｎｇ  Ｓｃｈｅｍｅｓ，”  Ｐｒｏｃ．Ｃｒｙｐｔｏ‘９５，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｖｏｌ．９６３，Ｓｐｒｉｎｇｅｒ  Ｖｅｒｌａｇ，ｐｐ．４１０−４２３，１９９５（以下、文献５という）は、秘密情報の復元に用いられた分散秘密情報に改竄された情報が含まれていたとき、どれが改竄された分散秘密情報であるかを特定する技術を開示している。【０００７】
文献４に開示された技術によれば、（ｋ，ｎ）閾値秘密分散法において、改竄された分散秘密情報の個数ｔがｋ≧２ｔ＋１を満たせば、改竄されたｔ個全ての分散秘密情報を高い確率で特定することができる。【０００８】
また、文献５に開示された技術によれば、改竄された分散秘密情報の個数ｔがｋ≧３ｔ＋１を満たせば、改竄されたｔ個全ての分散秘密情報を高い確率で特定でき、かつ分散秘密情報のサイズが文献４のものより小さい。
【発明の開示】
【０００９】
しかし、文献４に開示された技術では、秘密のビット長をＬとすると、分散秘密情報のサイズが（３ｎ−２）Ｌビットと非常に大きかった。文献５に開示された技術でも、秘密のビット長をＬとすると、分散秘密情報のサイズがＬ＋（ｔ＋２）／εビット（εは不正者が特定されない確率）とやはり非常に大きかった。
【００１０】
本発明の目的は、（ｋ，ｎ）閾値秘密分散法において、秘密情報の復元に用いられるｋ個の分散秘密情報の中に改竄された情報が含まれていたとき、改竄された分散秘密情報の特定を可能にし、かつ分散秘密情報のサイズを小さくした、秘密情報分散システム、分散情報生成装置、および復元装置を提供することである。
【００１１】
上記目的を達成するために、本発明の秘密情報分散システムは、（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散して管理する秘密情報分散システムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成し、生成した前記ｎ個の分散秘密情報Ｖｉと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たものとしたランダムなｔ次多項式とを用いて、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を、前記ｎ個の分散秘密情報Ｖｉに対応付けて生成する分散情報生成装置と、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理を行って、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断し、不正分散秘密情報が検出されなかったときに前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する復元装置と、を有している。
【００１２】
本発明の分散情報生成装置は、（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する分散情報生成装置あって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記ｎ個の分散秘密情報Ｖｉと、閾値ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式とを用いて、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする、不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を、前記ｎ個の分散秘密情報Ｖｉに対応付けて生成する不正者特定情報生成装置と、を有している。
【００１３】
本発明の復元装置は、上述した本発明の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する復元装置であって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて、リード・ソロモン誤り訂正処理を行う不正者特定装置と、
前記不正者特定装置にて誤りが検出されなかったときに、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する秘密情報復元装置と、を有している。
【００１４】
また、本発明の他の秘密情報分散システムは、（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散して管理する秘密情報分散システムであって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成し、生成した前記ｎ個の分散秘密情報Ｖｉと、ランダムなデータと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たすものとしたランダムなｔ−１次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとすることにより、前記ｎ個の分散秘密情報Ｖｉに対応する前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する分散情報生成装置と、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断し、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝の全てが不正分散秘密情報でなければ、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する復元装置と、を有している。
【００１５】
本発明の他の分散情報生成装置は、（ｋ，ｎ）閾値秘密分散法によって秘密情報を複数の分散秘密情報に分散する分散情報生成装置あって、
（ｋ，ｎ）閾値秘密分散法で前記秘密情報からｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する秘密情報分散装置と、
前記秘密情報分散装置で生成された前記ｎ個の分散秘密情報Ｖｉと、ランダムなデータと、想定する不正分散秘密情報数ｔが閾値ｋとの間で所定の条件を満たすものとしたランダムなｔ−１次多項式とを用いて、所定のチェック条件式から得られる値を、分散秘密情報Ｖｉに対応する不正者特定情報Ａｉとすることにより、前記ｎ個の分散秘密情報Ｖｉに対応する前記不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する不正者特定情報生成装置と、を有している。
【００１６】
本発明の他の復元装置は、上述した本発明の他の分散情報生成装置で（ｋ，ｎ）閾値秘密分散法によって生成された複数の分散秘密情報から秘密情報を復元する復元装置であって、
前記分散情報生成装置で生成されたうちの任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とそれらに対応するｋ個の不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）とを用いて前記チェック条件式が成立するか否か判定し、その判定結果に基づいて、前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝のそれぞれについて不正分散秘密情報であるか否かを判断する不正者特定装置と、
前記不正者特定装置の判断において前記ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝の全てが不正分散秘密情報でなければ、該ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から前記秘密情報を復元する秘密情報復元装置と、を有している。
【図面の簡単な説明】
【００１７】
【図１】本実施形態の秘密情報分散システムの構成を示すブロック図である。
【図２】分散情報生成装置１００の構成を示すブロック図である。
【図３】復元装置２００の構成を示すブロック図である。
【図４】分散情報生成装置１００または復元装置２００を実現するためのコンピュータの構成を示すブロック図である。
【図５】分散情報生成装置１００の動作を示すフローチャートである。
【図６】復元装置２００の動作を示すフローチャートである。
【図７】第１の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。
【図８】第１の実施例における不正者特定装置２０２の構成を示すブロック図である。
【図９】第２の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。
【図１０】第２の実施例における不正者特定装置２０２の構成を示すブロック図である。
【図１１】第３の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。
【図１２】第４の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための形態について図面を参照して詳細に説明する。【００１９】
図１は、本実施形態の秘密情報分散システムの構成を示すブロック図である。図１を参照すると、秘密情報分散システムは、分散情報生成装置１００、復元装置２００、および記憶装置３００−１〜３００−ｎを有している。【００２０】
この秘密情報分散システムの動作には２つのフェーズがある。１つは秘密情報を保管するフェーズであり、もう１つは秘密情報を復元するフェーズである。【００２１】
秘密情報を保管するフェーズでは主に分散情報生成装置１００が動作し、秘密情報を復元するフェーズでは主に復元装置２００が動作する。【００２２】
秘密情報を保管するフェーズでは、まず、分散情報生成装置１００は、パラメーターとして入力された閾値ｋおよび分散情報総数ｎに従って秘密情報を分散符号化することにより複数の分散秘密情報を生成し、分散秘密情報をそれぞれ異なる記憶装置３００−１〜３００−ｎに格納する。さらに、分散情報生成装置１００は、生成した分散秘密情報と、パラメーターとして入力された想定不正者数とを用いて、分散秘密情報毎の不正者特定情報を生成し、各不正者特定情報に対応する分散秘密情報が格納されている記憶装置３００−１〜３００−ｎに格納する。想定不正者数は、想定される不正者の上限数という意味であり、本実施形態の秘密情報分散システムによれば想定不正者数までの数の分散秘密情報の改竄であれば改竄された分散秘密情報の特定が可能である。不正者特定情報は、改竄された分散秘密情報を特定するためのデータである。なお、ここでは典型例として改竄を示しているが、意図的に改竄された場合に限らず、何らかの要因で分散秘密情報が不正なものに変化してしまった場合を広く含めて考えることができる。【００２３】
また秘密情報を復元するフェーズでは、まず復元装置２００は、閾値ｋ個分の分散秘密情報と不正者特定情報とを記憶装置３００−１〜３００−ｎから読出し、分散秘密情報と不正者特定情報とを望いて、改竄された分散秘密情報を特定する処理を実行する。改竄された分散秘密情報を特定する処理では、改竄の有無が判定され、改竄がある場合には改竄されている分散秘密情報が特定される。そして、ｋ個の分散秘密情報の中に改竄されたものがなければ、復元装置２００は、そのｋ個の分散秘密情報から秘密情報を復元する。【００２４】
図２は、分散情報生成装置１００の構成を示すブロック図である。図２を参照すると、分散情報生成装置１００は秘密情報分散装置１０１および不正者特定情報生成装置１０２を有している。なお、記憶装置３００−１〜３００−ｎは、それぞれに分散秘密情報記憶装置３０１−１〜３０１−ｎおよび不正者特定情報記憶装置３０２−１〜３０２−ｎを有している。分散秘密情報記憶装置３０１−１〜３０１−ｎには、分散情報生成装置１００で生成された分散秘密情報の各々が格納される。不正者特定情報記憶装置３０２−１〜３０２−ｎには、分散情報生成装置１００で生成された不正者特定情報の各々が格納される。また、本実施形態で扱う秘密情報ｓは特定の秘密情報集合の元である。【００２５】
分散情報生成装置１００には秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力されている。そして、分散情報生成装置１００は、分散秘密情報ｖ１〜ｖｎを生成して分散秘密情報記憶装置３０１−１〜３０１−ｎに格納し、不正者特定情報Ａ１〜Ａｎを生成して不正者特定情報記憶装置３０２−１〜３０２−ｎに格納する。【００２６】
秘密情報分散装置１０１には秘密情報ｓ、閾値ｋ、および分散情報総数ｎが入力されている。秘密情報分散装置１０１は、秘密情報ｓ、閾値ｋ、および分散情報総数ｎを用いて、ｎ個の分散秘密情報ｖｉ（ｉ＝１，２，．．．，ｎ）を生成し、対応する記憶装置３００−ｉの分散秘密情報記憶装置３０１−ｉに格納する。【００２７】
不正者特定情報生成装置１０２には、想定不正者数ｔおよび分散情報総数ｎと、秘密情報分散装置１０１からのｎ個の分散秘密情報ｖｉ（ｉ＝１，２，．．．，ｎ）が入力されている。不正者特定情報生成装置１０２は、想定不正者数ｔと分散情報総数ｎとｎ個の分散秘密情報ｖｉとを用いて、ｎ個の分散情報ｖｉ（ｉ＝１，２，．．．，ｎ）に対応する不正者特定情報Ａｉを生成し、対応する記憶装置３００−ｉの不正者特定情報記憶装置３０２−ｉに格納する。【００２８】
図３は、復元装置２００の構成を示すブロック図である。図３を参照すると、復元装置２００は秘密情報復元装置２０１および不正者特定装置２０２を有している。【００２９】
復元装置２００には閾値ｋおよび想定不正者数ｔが入力されている。復元装置２００は、記憶装置３００−１〜３００−ｎのうちｋ個の記憶装置３００−ｉ＿１〜３００−ｉ＿ｋが備える分散秘密情報記憶装置３０１−ｉ＿１〜３０１−ｉ＿ｋから分散秘密情報ｖ｛ｉ＿１｝〜ｖ｛ｉ＿ｋ｝を読出す。また、復元装置２００は、記憶装置３００−ｉ＿１〜３００−ｉ＿ｋが備える不正者特定情報記憶装置３０２−ｉ＿１〜３０２−ｉ＿ｋから不正者特定情報Ａ｛ｉ＿１｝〜Ａ｛ｉ＿ｋ｝を読み出す。【００３０】
復元装置２００は、分散秘密情報ｖ｛ｉ＿１｝〜ｖ｛ｉ＿ｋ｝と不正者特定情報Ａ｛ｉ＿１｝〜Ａ｛ｉ＿ｋ｝とを用いて、改竄された分散秘密情報を特定する処理を実行する。改竄された分散秘密情報があれば、復元装置２００は、改竄を検出したことを示す記号と、不正者（あるいは改竄された分散秘密情報）の識別子を要素とする集合とを出力する。また、改竄された分散秘密情報がなければ、復元装置２００は、分散秘密情報ｖ｛ｉ＿１｝〜ｖ｛ｉ＿ｋ｝を用いて秘密情報を復元し、復元された秘密情報と、改竄が無かったことを示す空集合とを出力する。【００３１】
不正者特定装置２０２は、記憶装置３００−１〜３００−ｎのうちｋ個の記憶装置３００−ｉ＿１〜３００−ｉ＿ｋの備える分散秘密情報記憶装置３０１−ｉ＿１〜３０１−ｉ＿ｋおよび不正者特定情報記憶装置３０２−ｉ＿１〜３０２−ｉ＿ｋから分散秘密情報ｖ｛ｉ＿１｝〜ｖ｛ｉ＿ｋ｝およびＡ｛ｉ＿１｝〜Ａ｛ｉ＿ｋ｝を読み出し、改竄された分散秘密情報を特定する処理を実行する。改竄が検出されれば、不正者特定装置２０２は、不正者の識別子を要素とする集合を出力する。改竄が検出されなければ、不正者特定装置２０２は、不正者が存在しなかったことを示す空集合を出力する。不正者特定装置２０２の出力する集合（不正者リスト）Ｌは、復元装置２００から出力されると共に秘密情報復元装置２０１に送られる。【００３２】
秘密情報復元装置２０１は、不正者特定装置２０２と同じｋ個の記憶装置３００−ｉ＿１〜３００−ｉ＿ｋの備える分散秘密情報記憶装置３０１−ｉ＿１〜３０１−ｉ＿ｋから分散秘密情報ｖ｛ｉ＿１｝〜ｖ｛ｉ＿ｋ｝を読み出し、集合Ｌが空集合であったときだけ秘密情報を復元する処理を実行し、復元された秘密情報を出力する。集合Ｌが空集合でなければ、秘密情報復元装置２０１は、改竄が検出されたことを示す記号を秘密情報の代わりに出力する。【００３３】
ここで、図２に示した分散情報生成装置１００と図３に示した復元装置２００とは、例えば論理回路等から構成されるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）やＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等の半導体集積回路によって実現できる。また、分散情報生成装置１００および復元装置２００は、プログラムを実行するコンピュータによっても実現できる。【００３４】
図４は、分散情報生成装置１００または復元装置２００を実現するためのコンピュータの構成を示すブロック図である。図４を参照すると、コンピュータは、処理装置１０、入力装置２０、および出力装置３０を備えている。処理装置１０は、プログラムにしたがって所定の処理を実行する。入力装置２０は、処理装置１０に対するコマンドや情報の入力に用いられる入力装置である。出力装置３０は、処理装置１０の処理結果をモニタするため出力装置である。【００３５】
また処理装置１０は、ＣＰＵ１１、主記憶装置１２、記録媒体１３、データ蓄積装置１４、メモリ制御インタフェース部１５、およびＩ／Ｏインタフェース部１６を有し、それらがバス１８を介して相互に接続された構成である。【００３６】
ＣＰＵ１１はプログラムを実行するプロセッサである。主記憶装置１２は、ＣＰＵ１１の処理に必要な情報を一時的に記憶する。記録媒体１３は、ＣＰＵ１１に実行させるためのプログラムを記憶している。データ蓄積装置１４は、秘密情報やアクセス構造データを記憶する。メモリ制御インタフェース部１５は、主記憶装置１２、記録媒体１３、またはデータ蓄積装置１４のデータの書き込みおよび読み出しを制御するインタフェース装置である。Ｉ／Ｏインタフェース部１６は、入力装置２０および出力装置３０とのデータの入出力を制御するインタフェース装置である。【００３７】
なお、ここではデータ蓄積装置１４が処理装置１０内に存在する例を示したが、データ蓄積装置１４は処理装置１０内に無くてもよい。他の構成例としてデータ蓄積装置１４が処理装置１０と別個に存在し、処理装置１０と接続されていてもよい。また、データ蓄積装置１４を、図２、３に示した分散秘密情報記憶装置３０１および不正者特定情報記憶装置３０２を備える記憶装置３００として用いることもできる。【００３８】
また、記録媒体１３は、磁気ディスク、半導体メモリ、光ディスク、あるいはその他の記録媒体である。【００３９】
図５は、分散情報生成装置１００の動作を示すフローチャートである。図５を参照すると、まず分散情報生成装置１００に秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力される（ステップＡ１）。分散情報生成装置１００内では、まず秘密情報分散装置１０１が秘密情報ｓ、閾値ｋ、および分散情報総数ｎを用いて分散符号化の処理を実行してｎ個の分散秘密情報ｖ１〜ｖｎを生成し、各記憶装置３００−１〜３００−ｎの分散秘密情報記憶装置３０１−１〜３０１−ｎに格納する（ステップＡ２）。【００４０】
次に、不正者特定情報生成装置１０２は、入力された想定不正者数ｔおよび分散情報総数ｎと、秘密情報分散装置１０１で生成された分散秘密情報ｖ１〜ｖｎとを用いて、分散秘密情報ｖ１〜ｖｎのそれぞれに対応した不正者特定情報Ａ１〜Ａｎを生成し、各記憶装置３００−１〜３００−ｎの不正者特定情報記憶装置３０２−１〜３０２−ｎに格納する（ステップＡ３）。【００４１】
図６は、復元装置２００の動作を示すフローチャートである。図６を参照すると、まず復元装置２００に閾値ｋおよび想定不正者数ｔが入力される（ステップＢ１）。続いて、復元装置２００はｋ個の記憶装置３００に格納されている不正者特定情報および分散秘密情報を読み出す（ステップＢ２）。【００４２】
そして、復元装置２００内の不正者特定装置２０２が各不正者特定情報、各分散秘密情報、閾値ｋおよび想定不正者数ｔを用いて、不正者の識別子を元とする集合Ｌを生成する（ステップＢ３）。【００４３】
次に秘密情報復元装置２０１が、集合Ｌが空集合であるか否かを判定する（ステップＢ４）。集合Ｌが空集合でなければ、秘密情報復元装置２０１は改竄があったことを示す記号を生成する（ステップＢ５）。集合Ｌが空集合であれば、秘密情報復元装置２０２はｋ個の分散秘密情報を用いて秘密情報を復元する（ステップＢ６）。最後に、復元装置２００は、不正者特定装置２０１で生成された集合Ｌと、秘密情報復元装置２０２で生成された記号あるいは復元された秘密情報とを出力する（ステップＢ７）。【００４４】
（第１の実施例）
第１の実施例の秘密情報分散システムは、秘密情報のデータ集合にＧＦ（ｐ）を用いる。ｐは素数の冪乗であり、素数そのものである場合もある。ＧＦ（ｐ）は、素数の冪乗ｐに対する有限体であり、有限体上の加算を＋、減算を−、乗算を＊、除算を／、冪乗算を＾で表す。【００４５】
第１の実施例における秘密情報分散装置１０１は、文献１に記載された既存の（ｋ，ｎ）閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復元装置２０１は、その（ｋ，ｎ）閾値秘密分散法に対応する復元方法を用いて秘密情報を復元する。【００４６】
次に第１の実施例の分散情報生成装置１００および復元装置２００について説明する。【００４７】
第１の実施例の分散情報生成装置１００には秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力される。第１の実施例では、ｋ≧３＊ｔ＋１が成立しているものとする。【００４８】
分散情報生成装置１００内では、秘密情報分散装置１０１がＧＦ（ｐ）上の定数項がｓであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｓ（ｘ）と記す。そして、秘密情報分散装置１０１は、ｆｓ（１），ｆｓ（２），・・・，ｆｓ（ｎ）を計算し、その計算結果と入力ｉとのペアＶｉ＝（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ，ｖｉ＝ｆｓ（ｉ））を分散秘密情報として、それぞれ記憶装置３００−ｉの分散秘密情報記憶装置３０１−ｉに格納する。【００４９】
図７は、第１の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。図７を参照すると、不正者特定情報生成装置１０２は、分散秘密情報変換装置４０１、ＲＳ情報源生成装置４０２、およびＲＳ符号語生成装置４０３を有している。【００５０】
分散秘密情報変換装置４０１は、秘密情報分散装置１０１の出力であるＶｉ＝（ｉ，ｖｉ）を取得し、ｑ≧ｎ＊ｐとなるｑに対し、有限体ＧＦ（ｑ）上でｘｉ＝ｐ＊（ｉ−１）＋ｖｉ（ｉ＝１，２，．．．，ｎ）を計算し、ＲＳ符号語生成装置４０３に出力する。【００５１】
ＲＳ情報元生成装置４０２は、有限体ＧＦ（ｑ）上のランダムなデータｅ０，ｅ１，・・・，ｅｔを生成し、ＲＳ符号語生成装置４０３に出力する。【００５２】
ＲＳ符号語生成装置４０３は、分散秘密情報変換装置４０１から出力されたｘｉ（ｉ＝１，２，．．．，ｎ）と、ＲＳ情報源生成装置４０２から出力されたｅ０，ｅ１，・・・，ｅｔを取得し、有限体ＧＦ（ｑ）上でＡｉ＝ｅ０＋ｅ１＊ｘｉ＋ｅ２＊ｘｉ＾２＋・・・＋ｅｔ＊ｘｉ＾ｔ（ｉ＝１，２，・・・，ｎ）を計算し、それぞれを記憶装置３００−ｉ（ｉ＝１，２，・・・，ｎ）に出力する。このＡ１，Ａ２，・・・，Ａｎが第１の実施例における不正者特定情報となる。各Ａｉは記憶装置３００−ｉの不正者特定情報記憶装置３０２−ｉに格納される。【００５３】
一方、第１の実施例の復元装置２００には閾値ｋおよび想定不正者数ｔが入力される。【００５４】
復元装置２００は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得する。また、復元装置２００は、同じｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を取得する。ここで取得した（Ａ｛ｉ＿１｝，Ａ｛ｉ＿２｝，・・・，Ａ｛ｉ＿ｋ｝）は、ＲＳ情報源生成装置４０２の出力ｅ０，ｅ１，・・・，ｅｔを情報源とするリード・ソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）誤り訂正符号の符号語になっている。したがって、ｋ≧３ｔ＋１であれば、Ａ｛ｉ＿１｝に含まれるｔ個の誤りを訂正し、元の情報源ｅ０，ｅ１，・・・，ｅｔを復元することが可能である。【００５５】
復元装置２００内では、記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋから取得したデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）とデータＡ｛ｉ＿ｊ｝が不正者特定装置２０２に入力される。【００５６】
図８は、第１の実施例における不正者特定装置２０２の構成を示すブロック図である。図８を参照すると、不正者特定装置２０２はＲＳ誤り訂正装置５０１および不正者集合出力装置５０２を有している。【００５７】
ＲＳ誤り訂正装置５０１は、データＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）とデータＡ｛ｉ＿ｊ｝を用いてリード・ソロモン誤り訂正処理を実行し、不正者特定情報生成装置１０２のＲＳ情報源生成装置４０２が生成したものと同じｅ０，ｅ１，・・・，ｅｔを復元し、不正者集合出力装置５０２に出力する。このときリード・ソロモン誤り訂正処理としては既存の方法を用いればよい。既存のリード・ソロモン誤り訂正処理の一例としてバーレカンプ法がある。【００５８】
不正者集合出力装置５０２は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得する。また、不正者集合出力装置５０２は、同じｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を取得する。そして不正者集合出力装置５０２は、取得したデータを用いてｘ｛ｉ＿ｊ｝＝ｐ＊（ｉ＿ｊ−１）＋ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を計算し、Ａ｛ｉ＿ｊ｝＝ｅ０＋ｅ１＊ｘ｛ｉ＿ｊ｝＋ｅ２＊ｘ｛ｉ＿ｊ｝＾２＋・・・＋ｅｔ＊ｘ｛ｉ＿ｊ｝＾ｔが成立しないｉ＿ｊの集合Ｌを不正者リストとして出力すると共に秘密情報復元装置２０１に送る。【００５９】
秘密情報復元装置２０１は不正者特定装置２０２からの集合（不正者リスト）Ｌを取得し、集合Ｌが空集合か否か判定する。集合Ｌが空集合でなければ、秘密情報復元装置２０１は不正が検出されたことを示す記号を出力する。集合Ｌが空集合であれば、秘密情報復元装置２０１は、それは不正が検出されなかったことを意味するので、秘密情報を復元する処理を行う。秘密情報を復元する処理において、秘密情報復元装置２０１は記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１から分散秘密情報Ｖ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得し、それらを用いて秘密情報を復元する。ここで復元される秘密情報は、秘密情報分散装置１０１が分散秘密情報を生成するときに用いたｋ−１次多項式ｆｓ（ｘ）のｘ＝１のときの値ｆｓ（０）である。ここでｆｓ（０）を求める方法としては既存の方法を用いればよい。既存の方法の一例としてｋ元１次の連立方程式を解く方法やラグランジュ補間を用いる方法がある。【００６０】
不正者特定装置２０２の出力である集合Ｌと、秘密情報復元装置２０１の出力とが、復元装置２００の出力となる。【００６１】
以上説明したように、第１の実施例によれば、分散情報生成装置１００において、秘密情報分散装置１０１は（ｋ，ｎ）閾値秘密分散法でｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する。不正者特定情報生成装置１０２は、秘密情報分散装置１０１の生成したｎ個の分散秘密情報Ｖｉと、閾値ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式とを用いて、各分散秘密情報Ｖｉに対する不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）を生成する。その際、不正者特定情報生成装置１０２は、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）のうちｔ個以下のものに誤りがある場合にリード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不正者特定情報を生成する。一方、復元装置２００において、不正者特定装置２０２は、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）およびそれらに対応する不正者特定情報を用いて、リード・ソロモン誤り訂正処理を行って、誤った分散秘密情報を示す記号の集合Ｌを出力する。秘密情報復元装置２０１は、不正者特定装置２０２によるリード・ソロモン誤り訂正処理にて誤りが検出されなかったとき、ｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から秘密情報を復元する。このように、分散秘密情報Ｖｉと、ランダムなｔ次多項式とを用いて、リード・ソロモン誤り訂正処理による誤りの検出および訂正を可能とする不正者特定情報を生成することで、改竄された分散秘密情報の特定を可能とする秘密情報分散システムの分散秘密情報のサイズを従来よりも小さくすることができる。【００６２】
また、第１の実施例では、各分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）から一意に導き出される値ｘｉ（ｉ＝１，２，・・・，ｎ）を、ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式に代入し、得られた値を各Ｖｉに対する不正者特定情報Ａｉとする。その際、任意のｖｉ，ｖｊについてｖｉ≠ｖｊであればｘｉ≠ｘｊが成立するように、分散秘密情報Ｖｉとｉからｘｉを生成するとき、ｑ≦ｎ＊ｐとなるｑに対してＧＦ（ｑ）上でｘｉ＝ｐ＊（ｉ−１）＋ｖｉ（ｉ＝１，２，・・・，ｎ）を計算する。秘密情報のサイズをｐとする本実施例では分散秘密情報のサイズがｐ＊ｑとなる。また、改竄された分散秘密情報が集合Ｌの元として出力される確率、つまり改竄を検出できる確率は１−１／ｑとなる。文献５に開示された方式で同じパラメーターを用いた場合に分散秘密情報のサイズはｐ＊ｑ＾｛ｔ＋２｝なので、本実施例によれば、分散秘密情報のサイズがｐ＊ｑ＾｛ｔ＋２｝からｐ＊ｑに大幅に低減されている。【００６３】
（第２の実施例）
第２の実施例の秘密情報分散システムは、秘密情報のデータ集合に有限体ＧＦ（ｐ＾Ｎ）を用いる。ここでｐは第１の実施例で用いたのと同じ素数の冪乗である。また第１の実施例と同様、有限体上の加算を＋、減算を−、乗算を＊、除算を／、冪乗算を＾で表す。【００６４】
第２の実施例における秘密情報分散装置１０１も第１の実施例同様、文献１に記載された（ｋ，ｎ）閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復元装置２０１は、その（ｋ，ｎ）閾値秘密分散法に対応する復元方法を用いて秘密情報を復元する。【００６５】
次に第２の実施例の分散情報生成装置１００および復元装置２００について説明する。【００６６】
第２の実施例の分散情報生成装置１００には、秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力される。第２の実施例でも、ｋ≧３＊ｔ＋１が成立しているものとする。【００６７】
分散情報生成装置１００は、ｓ，ｋ，ｎ，ｔが入力されると、秘密情報分散装置１０１によりＧＦ（ｐ＾Ｎ）上の定数項がｓであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｓ（ｘ）と記す。【００６８】
分散情報生成装置１００内では、秘密情報分散装置１００がｆｓ（１），ｆｓ（２），・・・，ｆｓ（ｎ）を計算し、その計算結果と入力ｉのペアＶｉ＝（ｉ，ｖ｛ｉ，０｝，ｖ｛ｉ，１｝，・・・，ｖ｛ｉ，Ｎ−１｝）（ｉ＝１，２，・・・，ｎ）をそれぞれ記憶装置３００−ｉの分散秘密情報記憶装置３０１−ｉに格納する。ここで、（ｖ｛ｉ，０｝，・・・，ｖ｛ｉ，Ｎ−１｝）はｆｓ（ｉ）のベクトル表現であり、各ｖ｛ｉ，ｊ｝はＧＦ（ｐ）の元である。【００６９】
図９は、第２の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。図９を参照すると、不正者特定情報生成装置１０２は、分散秘密情報変換装置６０１、第１のＲＳ情報源生成装置６０２、第１のＲＳ符号語生成装置６０３、第２のＲＳ情報源生成装置６０４、および第２のＲＳ符号語生成装置６０５を有している。【００７０】
不正者特定情報生成装置１０２に分散情報総数ｎおよび想定不正者数ｔが入力されると、分散秘密情報変換装置６０１は、秘密情報分散装置１０１の出力であるＶｉ＝（ｉ，ｖ｛ｉ，０｝，・・・，ｖ｛ｉ，Ｎ−１｝）を取得し、ＧＦ（ｐ）上でランダムにｅを選択し、第２のＲＳ符号語生成装置６０５に出力する。【００７１】
また、分散秘密情報変換装置６０１はＧＦ（ｐ）上でｙｉ＝ｖ｛ｉ，０｝＋ｖ｛ｉ，１｝＊ｅ＋ｖ｛ｉ，２｝＊ｅ＾２＋・・・＋ｖ｛ｉ，Ｎ−１｝ｅ＾｛Ｎ−１｝（ｉ＝１，２，・・・，ｎ）を計算する。続いて、分散秘密情報変換装置６０１は、ｑ≧ｎ＊ｐとなるｑに対し、ＧＦ（ｑ）上で、ｘｉ＝ｐ＊（ｉ−１）＋ｙｉ（ｉ＝１，２，・・・，ｎ）を計算し、第１のＲＳ符号語生成装置６０３に出力する。【００７２】
第１のＲＳ情報源生成装置６０２は、ＧＦ（ｑ）上のランダムなデータｅ０，ｅ１，・・・，ｅｔを第１のＲＳ符号語生成装置６０３に出力する。【００７３】
第１のＲＳ符号語生成装置６０３は、分散秘密情報変換装置６０１から出力されたｘｉ（ｉ＝１，２，．．．，ｎ）と、第１のＲＳ情報源生成装置６０２から出力されたｅ０，ｅ１，・・・，ｅｔを取得し、ＧＦ（ｑ）上でＣｓ（ｘｉ）＝ｅ０＋ｅ１＊ｘｉ＋ｅ２＊ｘｉ＾２＋・・・＋ｅｔ＊ｘｉ＾ｔ（ｉ＝１，２，・・・，ｎ）を計算し出力する。【００７４】
第２のＲＳ情報源生成装置６０４は、ＧＦ（ｐ）上のランダムなデータｒ１，・・・，ｒｔを選択し、第２のＲＳ符号語生成装置６０５に出力する。【００７５】
第２のＲＳ符号語生成装置６０５は、分散秘密情報変換装置６０１から出力されたｅと、第２おＲＳ情報源生成装置６０４から出力されたｒ１，・・・，ｒｔとを取得し、ＧＦ（ｑ）上でＣｅ（ｘｉ）＝ｅ＋ｒ１＊ｉ＋ｒ２＊ｉ＾２＋・・・＋ｒｔ＊ｉ＾ｔ（ｉ＝１，２，・・・，ｎ）を計算し出力する。【００７６】
第１のＲＳ符号語生成装置６０３から出力されたＣｓ（ｘｉ）（ｉ＝１，２，・・・，ｎ）と、第２のＲＳ符号語生成装置６０５から出力されたＣｅ（ｉ）とからなるＡｉ＝（Ｃｓ（ｘｉ），Ｃｅ（ｉ））（ｉ＝１，２，・・・，ｎ）が、分散秘密情報ｖｉに対応する不正者特定情報となる。不正者特定情報Ａ１，Ａ２，・・・，Ａｎの各々は各記憶装置３００−ｉ（ｉ＝１，２，・・・，ｎ）に出力される。各Ａｉは記憶装置３００−ｉの不正者特定情報記憶装置３０２−ｉに格納される。【００７７】
一方、第２の実施例の復元装置２００には閾値ｋおよび想定不正者数ｔが入力される。【００７８】
復元装置２００は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ，１｝，ｖ｛ｉ＿ｊ，２｝，・・・，ｖ｛ｉ＿ｊ，Ｎ−１｝）を取得する。また、復元装置２００は、同じｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を取得する。【００７９】
このＡ｛ｉ＿ｊ｝＝（Ｃｓ（ｘ｛ｉ＿ｊ｝），Ｃｅ（ｉ＿ｊ））において、（Ｃｓ（ｘ｛ｉ＿１｝），Ｃｓ（ｘ｛ｉ＿２｝），・・・，Ｃｓ（ｘ｛ｉ＿ｋ｝））は、第１のＲＳ情報源生成装置６０２から出力されたｅ０，ｅ１，・・・，ｅｔを情報源とするリード・ソロモン誤り訂正符号の符号語になっている。したがって、ｋ≧３ｔ＋１であれば、Ｃｓ（ｘ｛ｉ＿ｊ｝）に含まれるｔ個の誤りを訂正し、元の情報源ｅ０，ｅ１，・・・，ｅｔを復元することが可能である。【００８０】
また同様に、（Ｃｅ（ｉ＿１），Ｃｅ（ｉ＿２），・・・，Ｃｅ（ｉ＿ｋ））はｅ，ｒ１，ｒ２，・・・，ｒｔを情報源とするリード・ソロモン誤り訂正符号の符号語になっている。ここでｅは分散秘密情報変換装置６０１の出力である。また、ｒ１，・・・，ｒｔは第２のＲＳ符号語生成装置６０５の出力である。したがって、ｋ≧３ｔ＋１であれば、Ｃｅ（ｉ＿ｊ）に含まれるｔ個の誤りを訂正し、元の情報源ｅ，ｒ１，・・・，ｒｔを復元することが可能である。【００８１】
不正者特定装置２０２には、ｋ個の記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋの分散秘密情報のデータおよび不正者特定情報のデータが入力される。【００８２】
図１０は、第２の実施例における不正者特定装置２０２の構成を示すブロック図である。図１０を参照すると、不正者特定装置２０２は第１のＲＳ誤り訂正装置７０１、第２の誤り訂正装置７０２、および不正者集合出力装置７０３を有している。【００８３】
第１のＲＳ誤り訂正装置７０１は符号語（Ｃｓ（ｘ｛ｉ＿１｝），・・・，Ｃｓ（ｘ｛ｉ＿ｋ｝））に対してリード・ソロモン誤り訂正処理を実行し、不正者特定情報生成装置１０２の第１のＲＳ情報源生成装置６０２が出力したのと同じｅ０，ｅ１，・・・，ｅｔを復元し、不正者集合出力装置７０３に出力する。【００８４】
第２のＲＳ誤り訂正装置７０２は、符号語（Ｃｅ（ｉ＿１），・・・，Ｃｅ（ｉ＿ｋ））に対してリード・ソロモン誤り訂正処理を実行し、不正者特定情報生成装置１０２の分散秘密情報変換装置６０１が出力したのと同じｅを復元し、不正者集合出力装置７０３に出力する。【００８５】
不正者集合出力装置５０２は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ，０｝，・・・，ｖ｛ｉ＿ｊ，Ｎ−１｝）を取得し、不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝＝（Ｃｓ（ｘ｛ｉ＿ｊ｝），Ｃｅ（ｉ＿ｊ））（ｊ＝１，２，・・・，ｋ）を取得する。そして、不正者集合出力装置５０２は、ＧＦ（ｐ）上でｙｉ＝ｖ｛ｉ，０｝＋ｖ｛ｉ，１｝＊ｅ＋ｖ｛ｉ，２｝＊ｅ＾２＋・・・＋ｖ｛ｉ，Ｎ−１｝ｅ＾｛Ｎ−１｝（ｉ＝１，２，・・・，ｎ）を計算し、さらにＧＦ（ｑ）上で、ｘ｛ｉ＿ｊ｝＝ｐ＊（ｉ＿ｊ−１）＋ｙｉ（ｉ＝１，２，・・・，ｎ）を計算する。続いて不正者集合出力装置５０２は、Ｃｅ（ｉ＿ｊ）＝ｅ０＋ｅ１＊ｘ｛ｉ＿ｊ｝＋ｅ２＊ｘ｛ｉ＿ｊ｝＾２＋・・・＋ｅｔ＊ｘ｛ｉ＿ｊ｝＾ｔが成立しないｉ＿ｊの集合Ｌを不正者リストとして出力する。この集合（不正者リスト）Ｌが不正者特定装置２０２の出力となる。【００８６】
秘密情報復元装置２０１は、不正者特定装置２０２から集合Ｌを取得し、集合Ｌが空集合か否か判定する。集合Ｌが空集合でなければ、秘密情報復元装置２０１は、不正が検出されたことを示す記号を出力する。集合Ｌが空集合であれば、不正が検出されなかったことを意味するので、秘密情報復元装置２０１は、ｋ個の記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１から分散秘密情報Ｖ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ，０｝，・・・，ｖ｛ｉ＿ｊ，Ｎ−１｝）を取得し、それらを用いて秘密情報を復元する。ここで復元される秘密情報は、秘密情報分散装置１０１が分散秘密情報を生成するときに用いたｋ−１次多項式ｆｓ（ｘ）のｘ＝１のときの値ｆｓ（０）である。ここでｆｓ（０）を求める方法としては既存の方法を用いればよい。既存の方法の一例としてｋ元１次の連立方程式を解く方法やラグランジュ補間を用いる方法がある。【００８７】
不正者特定装置２０２の出力である集合Ｌと、秘密情報復元装置２０１の出力とが、復元装置２００の出力となる。【００８８】
以上説明したように、第２の実施例では、各分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）と、ランダムに選択したｅとから一意に導き出されるｘｉ（ｉ＝１，２，・・・，ｎ）を求め、ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ次多項式Ｃｓ（ｘｉ）にｘｉを代入してＣｓ（ｘｉ）を求め、Ｃｅ（０）＝ｅとなるランダムなｔ次多項式にｉを代入してＣｅ（ｉ）を求め、Ｃｓ（ｘｉ）とＣｅ（ｉ）からなる値を、各Ｖｉに対する不正者特定情報Ａｉとする。その際、任意のｖｉ，ｖｊについてｖｉ≠ｖｊであればｘｉ≠ｘｊが十分に高い確率で成立するように、まずランダムな値ｅを用いてｙｉ＝ｖ｛ｉ，０｝＋ｖ｛ｉ，１｝＊ｅ＋ｖ｛ｉ，２｝＊ｅ＾２＋・・・＋ｖ｛ｉ，Ｎ−１｝ｅ＾｛Ｎ−１｝（ｉ＝１，２，・・・，ｎ）を計算し、それを用いてｘｉ＝ｐ＊（ｉ−１）＋ｙｉ（ｉ＝１，２，・・・，ｎ）を計算する。秘密情報のサイズをｐ＾Ｎとする本実施例では分散秘密情報のサイズがｐ＾｛Ｎ＋１｝＊ｑとなり、改竄を検出する確率が１−Ｎ／ｐ−１／ｑとなる。第１の実施例では、秘密情報のサイズｐと不正検出確率１−１／ｑとの間にｑ≧ｎ＊ｐという制約があったが、第２の実施例では、ｐを適切に選択することにより、秘密情報のサイズと不正検出確率との間の制約を解消することができる。【００８９】
（第３の実施例）
第３実施例の秘密情報分散システムは、秘密情報のデータ集合にＧＦ（ｐ）を用いる。なお、ＧＦ（ｐ）は素数の冪乗ｐに対する有限体であり、有限体上の加算を＋、減算を−、乗算を＊、除算を／、冪乗算を＾で表す。【００９０】
第３の実施例における秘密情報分散装置１０１も第１の実施例と同様、文献１に記載された（ｋ，ｎ）閾値秘密分散法を用いて秘密情報を分散符号化する。秘密情報復元装置２０１は、その（ｋ，ｎ）閾値秘密分散法に対応する復元方法を用いて秘密情報を復元する。【００９１】
次に第３実施例の分散情報生成装置１００および復元装置２００について説明する。【００９２】
第３実施例の分散情報生成装置１００には秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力される。第３の実施例では、ｋ≧２＊ｔ＋１が成立しているものとする。【００９３】
分散情報生成装置１００内では、秘密情報分散装置１０１がＧＦ（ｐ）上の定数項がｓであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｓ（ｘ）と記す。【００９４】
秘密情報分散装置１０１は、ｆｓ（１），ｆｓ（２），・・・，ｆｓ（ｎ）を計算し、その計算結果と入力ｉのペアＶｉ＝（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ，ｖｉ＝ｆｓ（ｉ））をそれぞれ記憶装置３００−ｉの分散秘密情報記憶装置３０１−ｉに格納する。【００９５】
図１１は、第３の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。図１１を参照すると、不正者特定情報生成装置１０２は、第１のチェック情報生成装置８０１および第２のチェック情報生成装置８０２を有している。【００９６】
第１のチェック情報生成装置８０１は分散情報総数ｎおよび想定不正者数ｔに基づいて、ＧＦ（ｐ）上のランダムなデータｅ｛０，ｉ｝（ｉ＝１，２，・・・，ｎ）、およびＧＦ（ｐ）上のランダムなｔ−１次多項式ｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）を生成して出力すると共に、第２のチェック情報生成装置８０２に送る。【００９７】
第２のチェック情報生成装置８０２は、秘密情報分散装置１０１で生成された（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ）と、第１のチェック情報生成装置８０１で生成されたｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ）とから、ｉ＝１，２，・・・，ｎ、ｊ＝１，２，・・・，ｉ−１，ｉ＋１，・・・，ｎに対して、ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖｉ＋ｅ｛１，ｊ｝（ｉ）を計算し、出力する。【００９８】
第１のチェック情報生成装置８０１で生成されたｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ）と、第２のチェック情報生成装置８０２で生成されたａ｛ｉ，ｊ｝とからなるＡｉ＝（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ），ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）が不正者特定情報生成装置１０２の出力となる。各Ａｉは記憶装置３００−ｉの不正者特定情報記憶装置３０２−ｉに格納される。【００９９】
一方、第３の実施例の復元装置２００には閾値ｋおよび想定不正者数ｔが入力される。【０１００】
復元装置２００は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得する。また、復元装置２００は、同じｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を取得する。【０１０１】
復元装置２００の内部では、不正者特定装置２０２が、記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からのデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）と、不正者特定情報記憶装置３０２からのデータＡ｛ｉ＿ｊ｝＝（ｅ｛０，ｉ＿ｊ｝，ｅ｛１，ｉ＿ｊ｝（ｘ），ａ｛ｉ＿ｊ，１｝，ａ｛ｉ＿ｊ，２｝，・・・，ａ｛ｉ＿ｊ，ｉ＿ｊ−１｝，ａ｛ｉ＿ｊ，ｉ＿ｊ＋１｝，・・・，ａ｛ｉ＿ｊ，ｎ｝）（ｊ＝１，２，・・・，ｋ）とを用いて、各ｌ＝ｉ＿１，ｉ＿２，・・・，ｉ＿ｋおよびｍ＝ｉ＿１，ｉ＿２，・・・，ｉ＿ｋ（ｍ≠ｌ）に対し、ａ｛ｌ，ｍ｝＝ｅ｛０，ｍ｝＊ｖｌ＋ｅ｛１，ｍ｝（ｌ）という関係が成立するか否かをチェックする。そして、不正者特定装置２０２は、チェックの結果において、ｋ／２個以上のｍについて上の関係が成立しなかったｌの集合を不正者リストＬとして出力する。【０１０２】
秘密情報復元装置２０１は、不正者特定装置２０２から不正者リストＬを取得し、集合Ｌが空集合であるか否か判定する。集合Ｌが空集合でなければ、秘密情報復元装置２０１は、不正が検出されたことを示す記号を出力する。集合Ｌが空集合であれば、それは不正が検出されなかったことを意味するので、秘密情報復元装置２０１は、記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１から分散秘密情報Ｖ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得し、秘密情報分散装置１０１が秘密情報の分散処理に用いたｋ−１次多項式ｆｓ（ｘ）に対するｆｓ（０）を求め、それを秘密情報として出力する。ｆｓ（０）を求める方法としては既存の方法を用いればよい。既存の方法の一例としてｋ元１次の連立方程式を解く方法やラグランジュ補間を用いる方法等がある。【０１０３】
不正者特定装置２０２の出力である集合Ｌと、秘密情報復元装置２０１の出力とが、復元装置２００の出力となる。【０１０４】
以上説明したように、第３の実施例によれば、分散情報生成装置１００において、秘密情報分散装置１０１は（ｋ，ｎ）閾値秘密分散法でｎ個の分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）を生成する。不正者特定情報生成装置１０２は、秘密情報分散装置１０１の生成したｎ個の分散秘密情報Ｖｉと、自身で生成したランダムなデータと、閾値ｋとの間で所定の条件を満たす値をｔとしたランダムなｔ−１次多項式とを用いて、チェック条件式から得られる値を、分散秘密情報Ｖｉ（ｉ＝１，２，・・・，ｎ）に対応する不正者特定情報Ａｉ（ｉ＝１，２，・・・，ｎ）とする。その際に生成される不正者特定情報Ａｉは、そのＡｉと、任意のｉ、ｊ（ｉ＝１，２，・・・，ｎ、ｊ＝１，２，・・・，ｎ、ｉ≠ｊ）の組みと、分散秘密情報Ｖｉとでチェック条件式を満たすものとする。一方、復元装置２００において、不正者特定装置２０２は、任意のｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）およびそれらに対応する不正者特定情報Ａ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を用いて上述したチェック条件式が成立するか否かを判定し、その判定結果に基づいてｋ個の各分散秘密情報の改竄の有無を判断する。そして分散秘密情報の改竄が無ければ、復元装置２００はｋ個の分散秘密情報Ｖ｛ｉ＿ｊ｝から秘密情報を復元する。このように、分散秘密情報Ｖｉと、ランダムなデータと、ランダムなｔ−１次多項式とから不正者特定情報を生成することで、改竄された分散秘密情報の特定を可能とする秘密情報分散システムの分散秘密情報のサイズを従来よりも小さくすることができる。【０１０５】
また、秘密情報のサイズをｐとする第３の実施例では、分散秘密情報のサイズがｐ＾｛ｎ＋ｔ＋１｝となる。また、改竄された分散秘密情報が集合Ｌの元として出力される確率、つまり改竄を検出できる確率は１−ｋ／（２＊ｐ）となる。文献４に開示された方式で同じパラメーターを用いた場合に分散秘密情報のサイズはｐ＾｛３ｎ−２｝なので、本実施例によれば、分散秘密情報のサイズがｐ＾｛３ｎ−２｝からがｐ＾｛ｎ＋ｔ＋１｝に大幅に削減されている。【０１０６】
（第４の実施例）
第４の実施例の秘密情報分散システムは、秘密情報のデータ集合にＧＦ（ｐ＾Ｎ）を用いる。なお、ＧＦ（ｐ＾Ｎ）は、ｐを素数の冪乗としたｐ＾Ｎに対する有限体である。有限体上の加算を＋、減算を−、乗算を＊、除算を／、冪乗算を＾で表す。【０１０７】
第４の実施例における秘密情報分散装置１０１も第１の実施例と同様、文献１に記載された（ｋ，ｎ）閾値秘密分散法を用いて秘密情報を分散符号化する。そして、秘密情報復元装置２０１は、その（ｋ，ｎ）閾値秘密分散法に対応する復元方法を用いて秘密情報を復元するものとする。【０１０８】
次に第４の実施例における分散情報生成装置１００および復元装置２００について説明する。【０１０９】
第４の実施例の分散情報生成装置１００には、秘密情報ｓ、閾値ｋ、分散情報総数ｎ、および想定不正者数ｔが入力される。第４の実施例では、第３の実施例と同様にｋ≧２＊ｔ＋１が成立しているものとする。【０１１０】
分散情報生成装置１００内では、まず秘密情報分散装置１０１がＧＦ（ｐ＾Ｎ）上の定数項がｓであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｓ（ｘ）と記す。そして、秘密情報分散装置１０１は、ｆｓ（１），ｆｓ（２），・・・，ｆｓ（ｎ）を計算し、その計算結果と入力ｉのペアＶｉ＝（ｉ，ｖ｛ｉ，１｝，ｖ｛ｉ，２｝，・・・，ｖ｛ｉ，Ｎ｝）（ｉ＝１，２，・・・，ｎ，ｖｉ＝ｆｓ（ｉ））をそれぞれ記憶装置３００−ｉの分散秘密情報記憶装置３０１−ｉに格納する。【０１１１】
図１２は、第４の実施例における不正者特定情報生成装置１０２の構成を示すブロック図である。図１２を参照すると、不正者特定情報生成装置１０２は、第１のチェック情報生成装置９０１および第２のチェック情報生成装置９０２を有している。【０１１２】
第１のチェック情報生成装置９０１は、分散情報総数ｎおよび想定不正者数ｔに基づいて、ＧＦ（ｐ）上のランダムなデータｅ｛０，ｉ｝（ｉ＝１，２，・・・，ｎ）、およびＧＦ（ｐ）上のランダムなｔ−１次多項式ｅ｛１，ｉ｝（ｘ）（ｉ＝１，２，・・・，ｎ）を生成して出力すると共に、第２のチェック情報生成装置９０２に送る。【０１１３】
第２のチェック情報生成装置９０２は、秘密情報分散装置１０１で生成された（ｉ，ｖｉ）（ｉ＝１，２，・・・，ｎ）と、第１のチェック情報生成装置８０１から取得したｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ）とから、ｉ＝１，２，・・・，ｎ，ｊ＝１，２，・・・，ｉ−１，ｉ＋１，・・・，ｎに対して、ａ｛ｉ，ｊ｝＝ｅ｛０，ｊ｝＊ｖ｛ｉ，１｝＋ｅ｛０，ｊ｝＾２＊ｖ｛ｉ，２｝＋・・・＋ｅ｛０，ｊ｝＾Ｎ＊ｖ｛ｉ，Ｎ｝＋ｅ｛１，ｊ｝（ｉ）を計算し、出力する。【０１１４】
第１のチェック情報生成装置９０１で生成されたｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ）と、第２のチェック情報生成装置９０２で生成されたａ｛ｉ，ｊ｝とからなるＡｉ＝（ｅ｛０，ｉ｝，ｅ｛１，ｉ｝（ｘ），ａ｛ｉ，１｝，ａ｛ｉ，２｝，・・・，ａ｛ｉ，ｉ−１｝，ａ｛ｉ，ｉ＋１｝，・・・，ａ｛ｉ，ｎ｝）が不正者特定情報生成装置１０２の出力となる。各Ａｉは記憶装置３００−ｉの不正者特定情報記憶装置３０２−ｉに格納される。【０１１５】
一方、第４の実施例の復元装置２００には閾値ｋおよび想定不正者数ｔが入力される。【０１１６】
復元装置２００は、ｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ，１｝，ｖ｛ｉ＿ｊ，２｝，・・・，ｖ｛ｉ＿ｊ，Ｎ｝）を取得する。また、復元装置２００は、同じｋ個の記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各不正者特定情報記憶装置３０２からデータＡ｛ｉ＿ｊ｝（ｊ＝１，２，・・・，ｋ）を取得する。【０１１７】
復元装置２００内では、不正者特定装置２０２が、まず記憶装置３００−ｉ＿１，３００−ｉ＿２，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１からのデータＶ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ，１｝，ｖ｛ｉ＿ｊ，２｝，・・・，ｖ｛ｉ＿ｊ，Ｎ｝）と、不正者特定情報記憶装置３０２からのデータＡ｛ｉ＿ｊ｝＝（ｅ｛０，ｉ＿ｊ｝，ｅ｛１，ｉ＿ｊ｝（ｘ），ａ｛ｉ＿ｊ，１｝，ａ｛ｉ＿ｊ，２｝，・・・，ａ｛ｉ＿ｊ，ｉ＿ｊ−１｝，ａ｛ｉ＿ｊ，ｉ＿ｊ＋１｝，・・・，ａ｛ｉ＿ｊ，ｎ｝）（ｊ＝１，２，・・・，ｋ）とを用いて、各ｌ＝ｉ＿１，ｉ＿２，・・・，ｉ＿ｋおよびｍ＝ｉ＿１，ｉ＿２，・・・，ｉ＿ｋ（ｍ≠ｌ）に対し、ａ｛ｌ，ｍ｝＝ｅ｛０，ｍ｝＊ｖ｛ｌ，１｝＋ｅ｛０，ｍ｝＾２＊ｖ｛ｌ，２｝＋・・・＋ｅ｛０，ｍ｝＾Ｎ＊ｖ｛ｌ，Ｎ｝＋ｅ｛１，ｍ｝（ｌ）という関係が成立するか否かをチェックする。そして、チェックの結果において、ｋ／２個以上のｍについて上の関係が成立しなかったｌの集合を不正者リストＬとして出力する。【０１１８】
秘密情報復元装置２０１は、不正者特定装置２０２から不正者リストＬを取得し、集合Ｌが空集合であるか否か判定する。集合Ｌが空集合でなければ、秘密情報復元装置２０１は、不正が検出されたことを示す記号を出力する。集合Ｌが空集合であれば、それは不正が検出されなかったことを意味するので、秘密情報復元装置２０１は、記憶装置３００−ｉ＿１，・・・，３００−ｉ＿ｋの各分散秘密情報記憶装置３０１から分散秘密情報Ｖ｛ｉ＿ｊ｝＝（ｉ＿ｊ，ｖ｛ｉ＿ｊ｝）を取得し、秘密情報分散装置１０１が秘密情報の分散処理に用いたｋ−１次多項式ｆｓ（ｘ）に対するｆｓ（０）を求め、それを秘密情報として出力する。ｆｓ（０）を求める方法としては既存の方法を用いればよい。既存の方法の一例としてｋ元１次の連立方程式を解く方法やラグランジュ補間を用いる方法がある。【０１１９】
不正者特定装置２０２の出力である集合Ｌと、秘密情報復元装置２０１の出力とが、復元装置２００の出力となる。【０１２０】
秘密情報のサイズをｐ＾Ｎとする第４実施例では、分散秘密情報のサイズはｐ＾｛Ｎ＋ｎ＋ｔ｝となる。また、改竄された分散秘密情報が集合Ｌの元として出力される確率、つまり改竄を検出できる確率は１−ｋ＊Ｎ／（２＊ｐ）となる。第３の実施例では、不正検出確率１−ｋ／（２＊ｐ）が秘密情報のサイズｐから一意に決まっていたが、第４の実施例ではＮを適切に選択することにより、秘密サイズと不正者特定確率を独立に設定することができる。【０１２１】
以上、実施形態（および実施例）を参照して本発明を説明したが、本発明は実施形態（および実施例）に限定されるものではない。クレームに定義された本発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１２２】
この出願は、２００６年１０月２４日に出願された日本出願特願２００６−２８８９１１号を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
【図１】
2008050544.tif 000003
【図２】
2008050544.tif 000004
【図３】
2008050544.tif 000005
【図４】
2008050544.tif 000006
【図５】
2008050544.tif 000007
【図６】
2008050544.tif 000008
【図７】
2008050544.tif 000009
【図８】
2008050544.tif 000010
【図９】
2008050544.tif 000011
【図１０】
2008050544.tif 000012
【図１１】
2008050544.tif 000013
【図１２】
2008050544.tif 000014
【国際調査報告】
2008050544.tif 000015
2008050544.tif 000016