(57)【特許請求の範囲】
【請求項１】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムであって、
分散情報生成装置と、記憶装置と、分散情報復元装置とを有し、
前記分散情報生成装置は、
秘密情報をアクセス構造に従って２以上の分散情報に符号分散する秘密情報分散部と、
多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散する乱数情報分散部と、
前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータ用生成部とを有し、
前記分散情報生成装置は、前記分散情報と前記乱数情報と前記チェックデータとを一組の情報として出力するものであり、
前記記憶装置は、前記秘密情報を分散する数に相当する台数分が備えられ、各記憶装置は、前記分散情報と前記乱数情報と前記チェックデータとを一組の情報として記憶するものであり、
前記分散情報復元装置は、
前記記憶装置から分散情報を読み出し、前記アクセス構造に従って前記秘密情報を復元する秘密情報復元部と、
前記記憶装置から乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元する乱数情報復元部と、
前記記憶装置からチェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定する不正検知部とを有することを特徴とする秘密情報分散システム。
【請求項２】
前記乱数列が
0005582143.tif 000032
ただし、
0005582143.tif 000033
は前記多項式の係数を意味し、ｉ＝１〜ｎ（ｎは前記秘密情報を分散する数に相当する個数）
である関数の場合、
前記ハッシュ関数ｈは、
0005582143.tif 000034
（ｅ［０］およびｅ［１］は前記チェックデータ）を満足する関数である請求項１に記載の秘密情報分散システム。
【請求項３】
前記アクセス構造が（ｋ，ｎ）閾値法のアクセス構造である請求項１に記載の秘密情報分散システム。
【請求項４】
前記アクセス構造が（ｎ，ｎ）閾値法のアクセス構造である請求項１に記載の秘密情報分散システム。
【請求項５】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムに用いる分散情報生成装置であって、
秘密情報をアクセス構造に従って２以上の分散情報に符号分散する秘密情報分散部と、
多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散する乱数情報分散部と、
前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータ用生成部とを有し、
前記分散情報生成装置は、前記分散情報と前記乱数情報と前記チェックデータとを一組の情報として出力するものであることを特徴とする分散情報生成装置。
【請求項６】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムに用いる分散情報復元装置であって、
秘密情報分散システムの分散情報生成装置が一組の情報として出力する、秘密情報をアクセス構造に従って符号分散した分散情報と、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って符号分散した乱数情報と、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータとを、一組の情報として入力するものであり、
前記分散情報を得て、前記アクセス構造に従って前記秘密情報を復元する秘密情報復元部と、
前記乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元する乱数情報復元部と、
前記チェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定する不正検知部とを有することを特徴とする分散情報復元装置。
【請求項７】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散方法であって、
秘密情報をアクセス構造に従って２以上の分散情報に分散情報生成装置の秘密情報分散部が符号分散し、
多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数情報に前記分散情報生成装置の乱数情報分散部が符号分散し、
前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして前記分散情報生成装置のチェックデータ用生成部が独立に設定し、
前記分散情報と前記乱数情報と前記チェックデータとを前記分散情報生成装置が一組の情報として出力し、
前記分散情報を読み出し、前記アクセス構造に従って分散情報復元装置の秘密情報復元部が前記秘密情報を復元し、
前記乱数情報を読み出し、前記アクセス構造に従って前記分散情報復元装置の乱数情報復元部が前記乱数列を復元し、
前記チェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを前記分散情報復元装置の不正検知部が判定することを特徴とする秘密情報分散方法。
【請求項８】
前記乱数列が
0005582143.tif 000035
ただし、
0005582143.tif 000036
は前記多項式の係数を意味し、ｉ＝１〜ｎ（ｎは前記秘密情報を分散する数に相当する個数）
である関数の場合、
前記ハッシュ関数ｈは、
0005582143.tif 000037
（ｅ［０］およびｅ［１］は前記チェックデータ）を満足する関数である請求項７に記載の秘密情報分散方法。
【請求項９】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムにおいて、前記分散情報の生成を制御するプログラムであって、
コンピュータを、
秘密情報をアクセス構造に従って２以上の分散情報に符号分散する分散情報生成装置の秘密情報分散部、
多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散する前記分散情報生成装置の乱数情報分散部、
および前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定する前記分散情報生成装置のチェックデータ用生成部として機能させることを特徴とする分散情報生成プログラム。
【請求項１０】
秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムにおいて、前記秘密情報の復元を制御するプログラムであって、
コンピュータを、
秘密情報分散システムの分散情報生成装置が一組の情報として出力する、秘密情報をアクセス構造に従って符号分散した分散情報と、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って符号分散した乱数情報と、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータとを、一組の情報として入力として、
前記分散情報を得て、前記アクセス構造に従って前記秘密情報を復元する分散情報復元装置の秘密情報復元部、
前記乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元する前記分散情報復元装置の乱数情報復元部、
および前記チェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定する前記分散情報復元装置の不正検知部として機能させることを特徴とする復元プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報を分散して安全に保管する秘密情報分散システム，方法及びプログラムに関する。
【背景技術】
【０００２】
暗号化に用いる秘密鍵などのような秘密情報を保管することについては、「紛失および破壊」の脅威と「盗難」の脅威がある。前者に対しては秘密情報のバックアップコピーを作成すれば有効であるが、コピーを作成することにより、後者の脅威が増してしまうという課題がある。このような課題を解決するための情報セキュリティ技術の１つとして、非特許文献１〜２に記載された秘密分散法がある。【０００３】
前記秘密分散法は、秘密情報を分散した複数個の分散情報を生成し、それらを別々に保管し、前記保管された分散情報のうち予め定められた個数の分散情報を集めると元の秘密情報を一意に復元可能であるが、それ以外の分散情報を集めても前記秘密情報を復元できないという特徴を持つ。以後、本明細書では、分散情報の個数をｎ個とし、ｎ個に分散した分散情報の各々を１〜ｎの識別子を用いることにより識別するものとする。【０００４】
前記秘密分散法では、秘密情報を復元できる分散情報の集合をアクセス構造という分散情報の集合族Γで定義することが可能である。前記アクセス構造Γは、秘密情報を復元できる最小個数の分散情報の識別子の集合を要素として持つ集合族であり、アクセス構造Γを持つ秘密分散法において、分散情報の集合ｗが秘密情報を復元可能であるとは、集合ｗに対応する分散情報の識別子の集合Ｗに対して、以下の数１を満たすＶが存在することを意味する。また、数１を満たす性質を持つ分散情報の識別子の集合ＷをΓのアクセス集合と定義する。
【数１】
0005582143.tif 000002
【０００５】
前記秘密分散法では、（ｋ，ｎ）閾値法と呼ばれる手法がある。前記（ｋ，ｎ）閾値法とは、秘密情報をｎ個の分散情報に分散し、かつ前記ｎ個の分散情報のうちｋ（ｎ＞ｋ）個の分散情報を用いることにより、前記秘密情報を復元できるという秘密分散法である。前記（ｋ，ｎ）閾値法におけるｋは前記数１におけるＶに相当するものである。前記（ｋ，ｎ）閾値法で利用されるアクセス構造Γは、数２に示す集合族によって定義される。アクセス構造Γは、「ｎ個の分散情報のうち、ｋ個未満の分散情報では秘密情報が全く復元できない」「ｋ個以上の分散情報から秘密情報が一意に復元される」という２点の特徴を持つ。以下、前記秘密分散法において、秘密情報を復元する際の問題点について考える。
【数２】
0005582143.tif 000003
秘密情報を復元する場合、個々の分散情報をそれぞれ保持する複数の記憶手段から秘密情報を復元するのに必要な個数の分散情報を集める必要がある。このとき、分散情報の被要求側が配付された値、具体的には記憶手段に保持する分散情報を改竄することなく復元者へ渡すとは限らない。すなわち、記憶手段の分散情報が改竄されて復元者に渡る場合もある。
なお、ここで言う「改竄」とは、分散情報が配布された管理者が意図的に分散情報を改竄するばかりでなく、前記分散情報の管理者の意図に反して分散情報が改竄される場合も含むものとする。前記管理者の意図に反して分散情報が改竄される例としては、記憶手段に分散情報を記憶させるための装置が故障した結果、分散情報が改竄される場合や、管理者の操作ミスなどにより、分散情報が改竄される場合などが考えられる。【０００６】
改竄された分散情報を用いて秘密情報を復元すると、復元された秘密情報の値が元の秘密情報の値と異なることがある。そのため、前記秘密分散法には、復元に用いる分散情報に改竄された値が存在することを高い確率で検知できる手法が望まれる。
また、運用形態によって分散情報が選択される手段は様々であり、分散情報がどのような確率分布に基づいて選択されても、改竄された値の検知率が高いことが望まれる。
これらの問題を解決する技術として、非特許文献３〜７に記載された技術が知られている。【０００７】
非特許文献３には、秘密情報がどのような確率分布に基づいて選択されても、ｎ−１個の分散情報を参照し、そのうち高々ｋ−１個の分散情報に対して改竄を行う不正を（１−ε）の確率で検知できる（ｋ，ｎ）閾値法が記載されている。非特許文献３に記載された方法では、秘密情報を要素数ｓの集合とするとき、分散情報は数３に示す要素数の集合となる。なお、ｎ，ｋは前記（ｋ，ｎ）閾値法におけるｋ，ｎに対応するものである。
【数３】
0005582143.tif 000004
【０００８】
非特許文献４には、秘密情報が一様な確率分布に基づいて選択されることを条件として、ｋ−１個の分散情報を参照し、そのうち高々ｋ−１個の分散情報の改竄を行う不正を（１−ε）の確率で検知できる（ｋ，ｎ）閾値法が記載されている。非特許文献４に記載された方法では、秘密情報を要素数ｓの集合とするとき、分散情報は数４に示す要素数の集合となる。なお、ｋは前記（ｋ，ｎ）閾値法におけるｋに対応するものである。
【数４】
0005582143.tif 000005
【０００９】
非特許文献５には、秘密情報がどのような確率分布にしたがって選択されても、ｋ−１個の分散情報を参照し、そのうち高々ｋ−１個の分散情報に対して改竄を行う不正を（１−ε）の確率で検知できるという（ｎ，ｎ）閾値法秘密分散法が記載されている。非特許文献５に記載された方法では、秘密情報を要素数ｓの集合とするとき、分散情報は数５に示す要素数の集合となる。なお、（ｎ，ｎ）閾値法とは、秘密情報をｎ個の分散情報に分散し、かつ前記ｎ個の分散情報を用いることにより、前記秘密情報を復元できるという秘密分散法である。前記秘密分散法における前記（ｎ，ｎ）閾値法におけるｎは前記ｋに相当するものである。
【数５】
0005582143.tif 000006
【００１０】
非特許文献６には、分散情報がどのような確率分布に基づいて選択されても、ｎ−１個の分散情報を参照し、そのうち高々ｋ−１個の分散情報に対して改竄を行う不正を（１−ε）の確率で検知できるという（ｋ，ｎ）閾値法が記載されている。非特許文献６に記載された方法では、秘密情報を要素数ｓの集合とし、ｓがｓ≦１／εとなる時、分散情報は数６に示す要素数の集合となる。なお、ｋは前記（ｋ，ｎ）閾値法におけるｋに対応するものである。
【数６】
0005582143.tif 000007
【００１１】
非特許文献７には、分散情報がどのような確率分布に基づいて選択されても、ｎ−１個の分散情報を参照し、そのうち高々ｋ−１個の分散情報に対して改竄を行う不正を（１−ε）の確率で検知できる（ｋ，ｎ）閾値法が記載されている。非特許文献７に記載された方法では、秘密情報を要素数ｓの集合とし、ｓがｓ≦１／εとなる時、分散情報は数７に示す要素数の集合となる。なお、ｋは前記（ｋ，ｎ）閾値法におけるｋに対応するものである。
【数７】
0005582143.tif 000008
【００１２】
以上のような秘密分散法に関連する特許文献１には、ｎ個の管理者装置の各々に対して（ｋ＋ｔ，ｎ＋ｔ）閾値法で生成した分散情報を割り当てるという構成が記載されている。特許文献２には、一般アクセス構造に対する最適な複数割り当て写像を整数計画法によって求めるという構成が記載されている。【００１３】
特許文献３には、生成した分散情報をさらに公開鍵で暗号化して記憶しておき、秘密鍵で前記分散情報を復元してから原データである秘密情報を復元するというデータ保護方法などが記載されている。特許文献４には、乱数を保存する情報利用装置からの依頼で、分散情報管理装置がその乱数で分散情報を秘匿して保存するという分散情報復元システムなどが記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−２１７８９１号公報
【特許文献２】特開２００４−３３６５７７号公報
【特許文献３】特開２００８−０９７５９１号公報
【特許文献４】特開２００８−２５０９３１号公報
【非特許文献】
【００１５】
【非特許文献１】AdiShamir, "How to share a secret", Comm. ACM, 22(11), 612-613(1979)
【非特許文献２】J.Benaloh and J. Leichter, Generalized secret sharing and monotone functions, in"Advances in Cryptology -- CRYPTO '88", S. Goldwasser, ed., LectureNotes in Computer Science 403, pages 27-35, 1989
【非特許文献３】MartinTompa, Heather Woll, "How to Share a Secret with Cheaters", Journalof Cryptology, vol.1, pages 133-138, 1988
【非特許文献４】WakahaOgata, Kaoru Kurosawa, Douglas R. Stinson, "Optimum Secret Sharing SchemeSecure Against Cheating", SIAM Journal on Discrete Mathematics, vol.20,no1, pages 79-95, 2006
【非特許文献５】SatoshiObana and Toshinori Araki, "Almost Optimum Secret Sharing Schemes SecureAgainst Cheating for Arbitrary Secret Distribution",Advances in Cryptology-- Asiacrypt 2006, Lecture Notes in Computer Science 4284, pp. 364--379, 2006
【非特許文献６】ToshinoriAraki, "Efficient (k,n) Threshold Secret Sharing Schemes Secure AgainstCheating from n-1 Cheaters", Proceedings of ACISP 2007, Lecture Notes inComputer Science 4586, pp. 133--142, 2007
【非特許文献７】尾花賢、「ｎ−１人の不正者に対して安全な秘密分散法の一般的構成法」、２００８年暗号と情報セキュリティシンポジウム、ＳＣＩＳ２００８概要集、２００８年
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述した非特許文献１〜７では、次の様な課題が生じている。すなわち、分散情報を管理している数人が共謀して、１人の復元者が復元する秘密情報を改善させてしまうという課題が生じる。具体的に説明すると、秘密情報はｋ−１次多項式を作製してｎ個の分散情報に分散し、それらの分散情報を２以上の管理者に配布して管理し、ｋ−１人から分散情報を集めることにより秘密情報を復元している。１人の復元者（以下、正当者という）が復元する秘密情報を改善させるには、共謀者は自らが所有している分散情報に基づいて前記ｋ−１次多項式を部分的に復元すると共に、共謀者自らが所有する分散情報を改竄し、その改竄した分散情報を正当者が所有する分散情報を含むｋ−１次多項式に当初のｋ−１次多項式を書き換え、その改竄した分散情報を正当者に手渡す。
前記正当者が、自ら所有する分散情報に前記改竄された分散情報を含めて秘密情報を復元すると、復元するためのｋ−１次多項式が書き換えられているため、当初の秘密情報とは異なった秘密情報が復元されてしまう。
しかしながら、前記非特許文献１〜７には、復元された秘密情報が改竄されているか否かを検知する手段が講じられていないため、不正を意図しない復元者（正当者）が当初の秘密情報を復元できないという課題が生じている。【００１７】
また特許文献１〜４にも、前記非特許文献１〜７で生じている課題を解決するための技術的手段が講じられていないものである。【００１８】
本発明の目的は、秘密情報を分散した所有する者が共謀して分散情報を改竄した際に、復元した秘密情報が改竄されたか否かを検知する秘密情報分散システム，秘密情報分散方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
前記目的を達成するため、本発明に係る秘密情報分散システムは、秘密情報を２以上の分散情報に分散して管理し、前記分散情報を集積することにより、前記秘密情報を復元する秘密情報分散システムであって、
分散情報生成装置と、記憶装置と、分散情報復元装置とを有し、
前記分散情報生成装置は、
秘密情報をアクセス構造に従って２以上の分散情報に符号分散する秘密情報分散部と、
多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散する乱数情報分散部と、
前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータ用生成部とを有し、
前記分散情報生成装置は、前記分散情報と前記乱数情報と前記チェックデータとを一組の情報として出力するものであり、
前記記憶装置は、前記秘密情報を分散する数に相当する台数分が備えられ、各記憶装置は、前記分散情報と前記乱数情報と前記チェックデータとを一組の情報として記憶するものであり、
前記分散情報復元装置は、
前記記憶装置から分散情報を読み出し、前記アクセス構造に従って前記秘密情報を復元する秘密情報復元部と、
前記記憶装置から乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元する乱数情報復元部と、
前記の記憶装置からチェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定する不正検知部とを有することを特徴とする。【００２０】
以上では、本発明を装置としての秘密情報分散システムとして構築したが、これに限られるものではなく、方法或いはソフトウェアとしてのプログラムとして構築してもよいものである。【００２１】
本発明を方法として構築した場合、本発明に係る秘密情報分散方法は、秘密情報を２以上の分散情報に分散して管理し、分散情報を集積することにより、秘密情報を復元する秘密情報分散方法であって、
秘密情報をアクセス構造に従って２以上の分散情報に分散情報生成装置の秘密情報分散部が符号分散し、多項式の全ての係数をランダムに選ぶことにより、秘密情報を分散する数に相当する個数の乱数列を作製し、全ての係数をアクセス構造に従って２以上の乱数情報に分散情報生成装置の乱数情報分散部が符号分散し、秘密情報と乱数分散情報とを入力として、ハッシュ値が乱数列に相当するハッシュ関数を作製し、ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、秘密情報を分散する数に相当する個数のチェックデータとして分散情報生成装置のチェックデータ用生成部が独立に設定し、分散情報と乱数情報とチェックデータとを分散情報生成装置が一組の情報として出力し、
分散情報を読み出し、アクセス構造に従って分散情報復元装置の秘密情報復元部が秘密情報を復元し、乱数情報を読み出し、アクセス構造に従って分散情報復元装置の乱数情報復元部が乱数列を復元し、チェックデータを読み出し、その読み出したチェックデータがハッシュ関数を満たす場合に、復元した秘密情報が改竄されていないことを分散情報復元装置の不正検知部が判定する構成として構築する。
【００２２】
本発明をプログラムとして構築した場合、本発明に係る分散情報生成プログラムは、秘密情報を２以上の分散情報に分散して管理し、分散情報を集積することにより、秘密情報を復元する秘密情報分散システムにおいて、分散情報の生成を制御するプログラムであって、
コンピュータを、
秘密情報をアクセス構造に従って２以上の分散情報に符号分散する分散情報生成装置の秘密情報分散部、多項式の全ての係数をランダムに選ぶことにより、秘密情報を分散する数に相当する個数の乱数列を作製し、全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散する分散情報生成装置の乱数情報分散部、および秘密情報と乱数分散情報とを入力として、ハッシュ値が乱数列に相当するハッシュ関数を作製し、ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、秘密情報を分散する数に相当する個数のチェックデータとして独立に設定する分散情報生成装置のチェックデータ用生成部として機能させる構成として構築する。
【００２３】
また、本発明に係る復元プログラムは、秘密情報を２以上の分散情報に分散して管理し、分散情報を集積することにより、秘密情報を復元する秘密情報分散システムにおいて、秘密情報の復元を制御するプログラムであって、
コンピュータを、
秘密情報分散システムの分散情報生成装置が一組の情報として出力する、秘密情報をアクセス構造に従って符号分散した分散情報と、多項式の全ての係数をランダムに選ぶことにより、秘密情報を分散する数に相当する個数の乱数列を作製し、全ての係数をアクセス構造に従って符号分散した乱数情報と、ハッシュ値が乱数列に相当するハッシュ関数を作製し、ハッシュ関数を成立させる鍵を選ぶことにより、秘密情報を分散する数に相当する個数のチェックデータとして独立に設定するチェックデータとを、一組の情報として入力として、分散情報を得て、アクセス構造に従って秘密情報を復元する分散情報復元装置の秘密情報復元部、乱数情報を読み出し、アクセス構造に従って乱数列を復元する分散情報復元装置の乱数情報復元部、およびチェックデータを読み出し、その読み出したチェックデータがハッシュ関数を満たす場合に、復元した秘密情報が改竄されていないことを判定する分散情報復元装置の不正検知部として機能させる構成として構築する。
【発明の効果】
【００２４】
以上の様に本発明によれば、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散し、前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定し、復元の際に、前記乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元し、前記チェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定するため、復元した秘密情報が改竄されているか否かを検知することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る秘密情報分散システムに用いる分散情報生成装置の構成を示す説明図である。
【図２】本発明の実施形態に係る秘密情報分散システムに用いる分散情報復元装置の構成を示す説明図である。
【図３】図１に示した分散情報生成装置の動作を示すフローチャートである。
【図４】図２に示した分散情報復元装置の動作を示すフローチャートである。
【図５】本発明の実施形態に係る秘密情報分散システムにおける分散情報生成装置と記憶装置と分散情報復元装置との配置関係を示す図である。
【図６】本発明の実施形態に係る秘密情報分散システムに用いる分散情報生成装置と分散情報復元装置とをソフトウェア上で構築するためのコンピュータ装置の構成を示す説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態を図に基づいて詳細に説明する。
【００２７】
本発明の実施形態に係る秘密情報分散システムは、図１に示す分散情報生成装置１００と、図２に示す分散情報復元装置と、図１及び図２に示す記憶装置３００とを有している。
次に、図１に示す分散情報生成装置１００と、図２に示す分散情報復元装置２００と、記憶装置３００との詳細な構成について説明する。
なお、以下では、非特許文献１に開示された（ｋ，ｎ）閾値法による秘密情報分散法を適用した例を用いて説明するが、秘密情報分散法は非特許文献１の（ｋ，ｎ）閾値法に限られるものではなく、非特許文献２〜７に開示されたものでもよく、さらには例えば（ｎ，ｎ）閾値法による秘密情報分散法を適用してもよく、要は、秘密情報を２以上の分散情報に符号分散する秘密情報分散法であれば、任意のものを適用できるものである。なお、演算子を示す記号である「＋」、「−」、「＊」、「＾」の記号をそれぞれ、和、差、積、冪乗演算子として用いる。特に数式以外の行では「ＡのＢ乗」を「Ａ＾Ｂ」と表記する。
【００２８】
本実施形態に係る秘密情報分散システムに用いる前記分散情報生成装置１００は図１に示す様に、秘密情報分散部１０１と、乱数情報分散部１０２と、チェック用データ生成部１０３とを有している。
【００２９】
前記秘密情報分散部１０１は、入力する秘密情報ｓをアクセス構造に従って２以上（ｎ個）の分散情報ｖｓ［１］，ｖｓ［２］，・・・ｖｓ［ｎ］（ｖｓ［ｉ］∈ＶＳ［ｉ］）に符号分散するものである。
前記アクセス構造とは、秘密分散法において秘密情報を復元可能な最小の分散情報の集合を要素としてもつ集合族を意味する。また、前記アクセス構造をΓとした場合、ｋ∈Γかつｋ⊆Ｗとなるようなｋが存在するような集合Ｗをアクセス構造Γのアクセス集合として定義する。なお、前記ｋとは、秘密情報ｓをｎ個の分散情報に分散した場合、ｋ個の分散情報を集積することにより、前記秘密情報ｓを復元可能な場合における「ｋ」に相当するものである。
また、秘密情報データ集合Ｓは、保管対象となる秘密情報ｓの集合を指すものとする。分散秘密情報データ集合ＶＳ［ｉ］は、秘密情報ｓ∈Ｓを分散符号化したデータである秘密分散情報ｖｓ［１］，ｖｓ［２］，・・・ｖｓ［ｎ］（ｖｓ［ｉ］∈ＶＳ［ｉ］）の集合を指す。ＶＳ［ｉ］は第ｉ番目の秘密分散情報の集合を表す。また、分散秘密情報データ集合ＶＳ［ｉ］のいずれかの要素を持つデータをｖｓ［１］，ｖｓ［２］，…，ｖｓ［ｋ］で表す。ただし、ｋ≦ｉである。
【００３０】
前記乱数情報分散部１０２は、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上（ｎ個）の乱数分散情報ｖｒ［１］，ｖｒ［２］，・・・ｖｒ［ｎ］に符号分散するものである。
乱数情報データ集合Ｒは、保管対象となる乱数情報ｒの集合を指すものとする。乱数分散情報データ集合ＶＲ［ｉ］は、乱数（前記多項式の全ての係数）ｒ∈Ｒを分散符号化したデータである乱数分散情報ｖｒ［１］，ｖｒ［２］，・・・ｖｒ［ｎ］（ｖｒ［ｉ］∈ＶＲ［ｉ］）の集合を指すものとする。乱数分散情報データ集合ＶＲ［ｉ］は第ｉ番目の分散情報ｖｒ［ｉ］の集合を指すものである。また、乱数分散情報データ集合ＶＲ［ｉ］のいずれかの要素を持つデータをｖｒ［１］，ｖｒ［２］，…，ｖｒ［ｋ］で表す。ただしｋ≦ｉである。
【００３１】
前記乱数情報分散部１０２が、２以上（ｎ個）の乱数分散情報ｖｒ［１］，ｖｒ［２］，・・・ｖｒ［ｎ］に符号分散する構成について説明する。
前記乱数情報分散部１０２は、例えば数８に示す多項式を作製する。
【数８】
0005582143.tif 000009
前記多項式の全ての係数（ｋ個）である、ｒ０，ｒ１，ｒ２・・・ｒｋ−１をランダムに選んで、数９に示すｎ個の乱数列（多項式）
【数９】
0005582143.tif 000010
を作製する。
ここで、ｎ個の乱数列を作製した場合、任意のｋ個の値が独立であることが証明されている。
次に、前記乱数情報分散部１０２は、前記係数ｒ０，ｒ１，ｒ２・・・ｒｋ−１を非特許文献１等に開示されたアクセス構造に従って符号分散することにより、２以上（ｎ個）の乱数分散情報ｖｒ［１］，ｖｒ［２］，・・・ｖｒ［ｎ］に符号分散する。なお、前記乱数情報分散部１０２が符号分散する構成に本発明の特徴がないため、その詳細については省略する。本発明は、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、２以上（ｎ個）の乱数分散情報ｖｒ［１］，ｖｒ［２］，・・・ｖｒ［ｎ］に符号分散する構成に特徴を有するものである。
【００３２】
前記チェックデータ用生成部１０３は、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータｅ［１］，ｅ［２］，・・・ｅ［ｎ］（ｅ［ｉ］∈Ｅ）として独立に設定するものである。
ここで、チェック用データ集合Ｅとは、秘密情報ｓ∈Ｓと乱数ｒ∈Ｒに対応して生成したチェック用データの集合を指すものとする。
【００３３】
次に、前記チェックデータ用生成部１０３の構成をさらに具体的に説明する。
前記前記乱数情報分散部１０２が作製した前記乱数列が数１０で示す式、
【数１０】
0005582143.tif 000011
ただし、
0005582143.tif 000012
は前記多項式の係数を意味し、ｉ＝１〜ｎ（ｎは前記秘密情報を分散する数に相当する個数）
である関数の場合、
前記チェック用データ用生成部１０３は、ハッシュ値が前記ｆ（ｒ，ｉ）に相当するハッシュ関数ｈが数１１で示す式、
【数１１】
0005582143.tif 000013
を満足する関数として、前記ハッシュ関数ｈを成立させる鍵ｉを選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータｅ［１］，ｅ［２］，・・・ｅ［ｎ］（ｅ［ｉ］∈Ｅ）として独立に設定する。前記各チェックデータｅ［ｉ］∈Ｅは、前記ハッシュ関数ｈを満足するデータである。
なお、数１１に示す式は数１２に示す式として表すことができる。
【数１２】
0005582143.tif 000014
前記ハッシュ関数ｈは、一次関数からなるハッシュ関数であり、一般式で記述しているが、数１３の様に表すことができる。
【数１３】
0005582143.tif 000015
ただし、ｓは前記入力される秘密情報であり、右辺のｆ（ｉ）は前記入力される乱数分散情報（乱数列）である。
上記式において、右辺ｆ（ｉ）は固定であるから、左辺の要素ｅｉ［０］をランダムに選ぶことにより、チェックデータｅ［１］，ｅ［２］，・・・ｅ［ｎ］（ｅ［ｉ］∈Ｅ）を独立に設定することが可能となる。
したがって、秘密情報を２以上に分散した秘密分散情報ｖｓ１，ｖｓ２，・・・ｖｓｎに対応したハッシュ関数ｈとして表すと、数１４で示す式のようになる。
【数１４】
0005582143.tif 000016
前記ハッシュ関数のハッシュ値は、セキュリティ上十分過ぎるくらいの大きさであり、一の保管者が保管している鍵ｉを他人が解読することは天文学的に不可能に近いものである。さらに、前記ハッシュ関数ｈは、いわゆる鍵付きのハッシュ関数となるから、鍵ｉが解読されない限りハッシュ値を解読することはできないという特性を有することとなる。
【００３４】
上述した様なハッシュ値はセキュリティ上十分過ぎるくらいの大きさを持つものであるが、前記ハッシュ値としてはもっと小さいサイズでも安全性が保てるものであるから、確率の理論を使って、前記ハッシュ値のサイズを小さくすることができるものである。これについて具体的に説明する。
前記ハッシュ値に求められる特性としては、次のことが要求される。すなわち、秘密情報ｓに対するハッシュ値ａが解読された場合でも、秘密情報ｓと異なる（例えば改竄された）秘密情報ｓ´に対するハッシュ値ａが解読されないことが要求される。この内容を式で表すと、確率に相当するものであり、確率理論に基づく式で表すと、数１５に示す式で表すことができる。
【数１５】
0005582143.tif 000017
数１５に示す式のうち、数１６で示す分母は、
【数１６】
0005582143.tif 000018
複数の保管者が共謀して一の保管者が復元する秘密情報ｓを改竄することを試みる場合における前記一の保管者が所有している鍵の候補を示している。上記式において、εは極めて小さい値を取るものとする。
したがって、確立理論の式を用いると、数１４に示す式は、数１７に示す式で表すことができる。
【数１７】
0005582143.tif 000019
したがって、前記チェックデータ用生成部１０３は、前記秘密情報を分散する数に相当する個数のチェックデータｅ［１］，ｅ［２］，・・・ｅ［ｎ］（ｅ［ｉ］∈Ｅ）として独立に設定する際に、数１５及び数１７に示す式を考慮して、前記チェックデータを独立に設定しても良いものである。
【００３５】
次に、前記記憶装置３００について説明する。前記記憶装置３００は図１及び図２に示す様に、秘密情報ｓを秘密分散情報に分散する個数（ｎ個）に対応する台数分だけ備えられている。すなわちｎ台の記憶装置３００［１］〜３００［ｎ］が備えられている。そして、前記記憶装置３００は図５に示す様に、別個独立に設置され、インタネット網或いはＬＡＮなどの通信網６００により前記分散情報生成装置１００と前記分散情報復元装置２００との間に情報の遣り取りを行うように連繋されている。前記記憶装置３００［１］〜３００［ｎ］は、その記憶領域を分割して、分割秘密情報記憶部３０１［１］〜３０１［ｎ］，乱数分散情報記憶部３０２［１］〜３０２［ｎ］，チェック用データ記憶部３０３［１］〜［ｎ］となる記憶領域を備えている。
【００３６】
前記記憶装置３００［１］〜３００［ｎ］内の分散秘密情報記憶部３０１［１］〜３０１［ｎ］は、前記分散情報生成装置１００の秘密情報分散部１０１が出力する分散秘密情報データ集合ＶＳの元である秘密分散情報ｖｓ［１］〜ｖｓ［ｎ］を記憶している。
前記記憶装置３００［１］〜３００［ｎ］内の乱数分散情報記憶部３０２［１］〜３０２［ｎ］は、前記分散情報生成装置１００の乱数分散部１０２が出力する乱数分散情報ＶＲの元である乱数分散情報ｖｒ［１］〜ｖｒ［ｎ］を記憶している。
前記記憶装置３００［１］〜３００［ｎ］内のチェック用データ記憶部３０３［１］〜３０３［ｎ］は、前記分散情報生成装置１００のチェック用データ生成部１０３が出力するチェック用データ集合Ｅの元であるチェック用データｅ［１］〜ｅ［ｎ］を記憶している。
【００３７】
更に、前記記憶装置３００［１］〜３００［ｎ］は、前記分散情報復元装置２００の読み出し制御部２０４からの信号に基づき、前記分散情報装置２００から読み出すデータを制御するアクセス制御部３０４［１］〜３０４［ｎ］をそれぞれ備えている。
【００３８】
次に、本実施形態に係る秘密情報分散システムに用いる分散情報復元装置２００を図２に基づいて説明する。
【００３９】
前記復元装置２００は、図２に示す様に、秘密情報復元部２０１と、乱数情報復元部２０２と、不正検知部２０３と、読み出し制御部２０４とを有している。
【００４０】
前記秘密情報復元部２０１は、図１及び図２に示す前記記憶装置３００［１］〜３００［ｋ］又は３００［ｎ］から分散情報ｖｓ「１」，ｖｓ［２］〜ｖｓ［ｋ］又はｖｓ［ｎ］を読み出し、前記アクセス構造に従って前記秘密情報ｓを復元するものである。前記秘密情報復元部２０１が秘密情報ｓを復元する構成は非特許文献１〜７に開示された構成を採用することができるものであり、この構成に本実施形態の特徴が存在しないため、その詳細については省略する。
【００４１】
前記乱数情報復元部２０２は、前記記憶装置３００［１］〜３００［ｋ］又は３００［ｎ］から乱数情報ｖｒ［１］，ｖｒ［２］〜ｖｒ［ｋ］又はｖｒ［ｎ］を読み出し、前記アクセス構造に従って前記乱数列を復元するものである。
前記乱数列は数１０に対応した式であり、数１８で示す式で表される。
【数１８】
0005582143.tif 000020
【００４２】
前記不正検知部２０３は、前記記憶装置３００［１］〜３００［ｋ］又は３００［ｎ］からチェックデータｅ［１］，ｅ［２］〜ｅ［ｋ］又はｅ［ｎ］を読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報ｓが改竄されていないことを判定するものである。
前記ハッシュ関数は数１１に対応した式であり、数１９で示す式で表される。
【数１９】
0005582143.tif 000021
【００４３】
図１及び図２に示す分散情報生成装置１００及び復元装置２００は、例えば論理回路等から構成されるＬＳＩ(Large Scale Integration)やＤＳＰ(Digital Signal Processor)等の半導体集積回路によってハードウェアの構成として構築することが可能であるばかりでなく、ＣＰＵにプログラムを実行させることにより、ソフトウェア上に構築してもよいものである。分散情報生成装置１００及び復元装置２００をソフトウェア上に構築するためのプログラムを実行させるための装置としては図６に示す様な構成のものが考えられる。
【００４４】
前記装置は図６に示す様に、ＣＰＵ１１を内蔵した処理装置１０と、前記処理装置１０に対してコマンドや情報等を入力するための入力装置２０と、処理装置１０の処理結果をモニタするための出力装置３０とを備えたコンピュータによって実現される。
【００４５】
図６に示す処理装置１０は、ＣＰＵ１１と、ＣＰＵ１１の処理に必要な情報を一時的に記憶する主記憶部１２と、ＣＰＵ１１に分散情報生成装置１００または分散情報復元装置２００としての処理を実行させるためのプログラムが記録された記録媒体１３と、秘密情報やアクセス構造のデータが格納されるデータ蓄積部１４と、主記憶部１２，記録媒体１３及びデータ蓄積装置１４とのデータ転送を制御するメモリ制御インタフェース部１５と、入力装置２０及び出力装置３０とのインタフェース部であるＩ／Ｏインタフェース部１６とを有しており、それらがバス１８を介して接続された構成である。
なお、データ蓄積部１４は、処理装置１０に内蔵する必要がなく、処理装置１０から独立して備えていてもよい。また、データ蓄積部１４は、分散秘密情報記憶装置３０１及び乱数分散情報記憶装置３０２及び分散チェック用データ記憶装置３０３を備える記憶装置３００として用いてもよい。
処理装置１０は、記録媒体１３に記録されたプログラムにしたがって分散情報生成装置１００または分散情報復元装置２００としての機能を実現する。記録媒体１３は、磁気ディスク，半導体メモリ，光ディスクあるいはその他の記録媒体であってもよい。
【００４６】
次に、本実施形態に係る秘密情報分散システムの動作を図３及び図４に基づいて説明する。
図３は、本実施形態に係る秘密情報分散システムにおける分散情報生成装置１００の動作を示すフローチャートである。図４は本実施形態に係る秘密情報分散システムにおける分散情報復元装置２００の動作を示すフローチャートである。
【００４７】
図３に示すように分散情報生成装置１００には、秘密情報データ集合Ｓの元である秘密情報ｓが入力される（ステップＳ４０１）。
【００４８】
分散情報生成装置１００の秘密情報分散部１０１は、前記秘密情報sが入力されると、秘密情報ｓを予め定められたアクセス構造Γに応じて分散符号化し、記憶装置３００の分散秘密情報記憶装置３０１に格納する（ステップＳ４０２）。
【００４９】
分散情報生成装置１００の乱数情報分散部１０２は、乱数ｒを生成し、その生成した乱数ｒを前記アクセス構造Γに応じて分散符号化し、記憶装置３００の乱数分散情報記憶装置３０２に格納する（ステップＳ４０３）。
【００５０】
分散情報生成装置１００のチェック用データ生成部１０３は、前記秘密情報ｓ，及び前記ステップＳ４０３で生成した乱数ｒに対して、ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）を満足するｎ個のチェック用データｅ［ｉ］（ｉ＝１，２，３，・・・ｎ）をランダムに生成し、記憶装置３００のチェッ
ク用データ記憶装置３０３に格納する（ステップＳ４０４）。
【００５１】
図４に示すように、分散情報復元装置２００は、記憶装置３００のアクセス制御装置３０４に分散秘密情報記憶装置３０１のデータを読み出すことを示す制御信号を送り、前記アクセス構造Γの任意のアクセス集合Ｗに対応する複数の記憶装置３００の分散秘密情報記憶装置３０１から読み出したデータを入力させる。秘密情報復元部２０１は、前記入力したデータに基づいて、秘密情報データ集合Ｓの元である秘密情報ｓを復元する（ステップＳ５０１）。
【００５２】
次に、分散情報復元装置２００は、記憶装置３００のアクセス制御装置３０４に乱数分散情報記憶装置３０２のデータを読み出すことを示す制御信号を送り、前記アクセス集合Ｗに対応する複数の前記記憶装置３００の乱数分散情報記憶装置３０２から読み出したデータを入力させる。乱数情報分散部２０２は、前記入力したデータに基づいて、乱数情報集合Ｒの元である乱数情報ｒを復元する（ステップＳ５０２）。
【００５３】
上述したステップＳ５０１とステップＳ５０２は、同時に行っても良いし、ステップＳ５０２→ステップＳ５０１の順に行っても良い。
【００５４】
以上のステップＳ５０１及びＳ５０２での処理が終了した際に、分散情報復元装置２００は、記憶装置３００のアクセス制御装置３０４にチェック用データ記憶装置３０４のデータを読み出すことを示す制御信号を送り、チェック用データを入力させる。
不正検知部２０３は、ステップＳ５０１で復元された秘密情報データ集合Ｓの元である秘密情報ｓと、ステップＳ５０２で復元された乱数ｒと、前記アクセス集合Wに対応する複数の前記記憶装置３００のチェック用データ記憶装置３０３から読み出したデータｅ［ｉ］に対して、ハッシュ関数ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）を計算する（ステップＳ５０３）。
不正検知部２０３は、ステップＳ５０３で計算されたハッシュ関数ｈ（ｅ［ｉ］，ｓ）に対して、ハッシュ関数ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）が成立する場合（ステップＳ５０４；ＹＥＳ）、復元した秘密情報ｓを出力して処理を終了する（ステップＳ５０６）。
不正検知部２０３は、ハッシュ関数ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）が成立しない場合（ステップＳ５０４；ＮＯ）、不正検出を表す記号を出力して処理を終了する（ステップＳ５０５）。
【００５５】
以上の様に本実施形態によれば、多項式の全ての係数をランダムに選ぶことにより、前記秘密情報を分散する数に相当する個数の乱数列を作製し、前記全ての係数をアクセス構造に従って２以上の乱数分散情報に符号分散し、前記秘密情報と前記乱数分散情報とを入力として、ハッシュ値が前記乱数列に相当するハッシュ関数を作製し、前記ハッシュ関数を成立させる鍵を選ぶことにより、復元した秘密情報が改竄されたものであるか否かをチェックするためのデータを、前記秘密情報を分散する数に相当する個数のチェックデータとして独立に設定し、復元の際に、前記乱数情報を読み出し、前記アクセス構造に従って前記乱数列を復元し、前記チェックデータを読み出し、その読み出したチェックデータが前記ハッシュ関数を満たす場合に、前記復元した秘密情報が改竄されていないことを判定するため、復元した秘密情報が改竄されているか否かを検知することができる。
【００５６】
さらに、本実施形態によれば、不正検知のチェックを復元された後の秘密情報で行っていることにより、利用する秘密分散の方式に関わらず不正の検知を行う事ができる。
【００５７】
本実施形態に係る分散情報生成装置１００および分散情報復元装置２００で、部分情報の改竄を行った不正な記憶装置３００［ｉ］では、プロトコルに従ってまず改竄した分散秘密情報と乱数分散情報を分散情報復元装置２００に渡す必要がある。このとき、不正な記憶装置は、改竄を行っていない正当な記憶装置に格納されているチェック用データの値を参照することができない。
【００５８】
正当な記憶装置に格納されているチェック用データｅは、独立かつ一様ランダムに選ばれており、また、非改竄性のチェックに用いる関数ｈは、全てのａ，ａ’に対して、数１８に示した関係を満たすものである。従って、仮に不正な記憶装置が全ての記憶装置に格納されている分散秘密情報と乱数分散情報を参照し、秘密情報ｓと乱数情報ｒを復元できたとしても、改竄された秘密情報ｓ’と乱数情報ｒ’に対して、ｈ（ｅ，ｓ’）＝ｆ（ｒ，ｉ）を満足する確率はε以下となるので、事実上そのような改竄は不可能である。
【００５９】
また、本実施形態のチェック用データおよび非改竄性のチェック方法は、適用する秘密分散法に非依存であるため、本実施形態は任意の秘密分散法に対して適用可能であるという特徴も有している。
【００６０】
次に、秘密情報ｓ＝（ｓ［１］，ｓ［２］，…，ｓ［N］）のデータ集合にＧＦ（ｐ＾Ｎ）（ｐ：素数，ＧＦ：ガロア体）を用い、乱数データｒ＝（ｒ［０］，ｒ［１］，…，ｒ［ｋ−２］）としてＧＦ（ｐ＾（ｋ−１））の元を用い、チェック用データｅ＝（ｅ［０］，ｅ［１］）としてＧＦ（ｐ）＾２を用いた例を用いて、復元された秘密情報が改竄されていることを検知できることを検証する。
なお、この場合、数１４に示すハッシュ値に代えて、数１５に示す確立理論に基づく式を用いることを前提としている。また、非特許文献１に開示された（ｋ，ｎ）閾値法による秘密情報分散法を適用している。
【００６１】
本実施形態では、秘密分散のアクセス構造を（ｋ，ｎ）閾値型のアクセス構造とし、秘密情報分散部１０１及び乱数情報分散部１０２は、非特許文献１に記載された（ｋ，ｎ）閾値法を用いて分散符号化し、秘密情報復元部２０１及び乱数情報復元部２０２は、その（ｋ，ｎ）閾値法に対応する復元方法を用いて秘密情報及び乱数情報を復元するものとする。
【００６２】
前記条件の下で、本実施形態に係る分散情報生成装置１００には、秘密情報ｓ＝（ｓ［１］，ｓ［２］，…，ｓ［N］）∈ＧＦ（ｐ＾Ｎ）（各ｓ［ｉ］∈ＧＦ（ｐ））が入力される。
【００６３】
分散情報生成装置１００は、秘密情報ｓが入力されると、秘密情報分散部１０１によりＧＦ（ｐ＾Ｎ）上の定数項がｓであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｓ（ｘ）と記す。
【００６４】
秘密情報分散部１０１は、相異なる１，２，…，ｎに対して、ｆｓ（１），ｆｓ（２），…，ｆｓ（ｎ）を計算し、その計算結果を記憶装置３００［１］の分散秘密情報記憶部３０１［１］、記憶装置３００［２］の分散秘密情報記憶部３０１［２］，…，記憶装置３００［ｎ］の分散秘密情報記憶部３０１［ｎ］にそれぞれ格納する。
【００６５】
乱数情報分散部１０２は、ＧＦ（ｐ＾（ｋ−１））の元である乱数ｒを生成し、ＧＦ（ｐ＾（ｋ−１））上の定数項がｒであるｋ−１次多項式をランダムに生成する。このｋ−１次多項式をｆｒ（ｘ）と記す。
【００６６】
次に、乱数情報分散部１０２は、ｉ［１］，ｉ［２］，…，ｉ［ｎ］に対して、ｆｒ（１），ｆｒ（２），…，ｆｒ（ｎ）を計算し、その計算結果を記憶装置３００［１］の乱数分散情報記憶部３０２［１］、記憶装置３００［２］の乱数分散情報記憶部３０２［２］，…，記憶装置３００［ｎ］の乱数分散情報記憶部３０２［ｎ］にそれぞれ格納する。
【００６７】
チェック用データ生成部１０３は、ｉ＝１，２，…，ｎに対して，式ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）が成立するような（ｅ［ｉ０］，ｅ［ｉ１］）をＧＦ（ｐ）上からランダムに選び、得られたｅ［ｉ］＝（ｅ［ｉ０］，ｅ［ｉ１］）（ｉ＝１，２，…，ｎ）を記憶装置３００［ｉ］のチェック用データ記憶部３０３［ｉ］に格納する。ただし、上記のｈ，ｆはそれぞれ数２０および数２１のように定義される関数である。
【００６８】
【数２０】
0005582143.tif 000022
【数２１】
0005582143.tif 000023
【００６９】
一方、本実施形態に係る分散情報復元装置２００は、まず、分散秘密情報の読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｋ］の各アクセス制御部３０４に送出し、記憶装置３００［１］，３００［２］，…，３００［ｋ］の各分散秘密情報記憶部３０１からデータを読み出す。これらのデータをｖｓ［ｉ［１］］，ｖｓ［ｉ［２］］，…，ｖｓ［ｉ［ｋ］］と記す。
【００７０】
秘密情報復元部２０１は、（ｉ［１］，ｖｓ［ｉ［１］］），（ｉ［２］，ｖｓ［ｉ［２］］），…，（ｉ［ｋ］，ｖｓ［ｉ［ｋ］］）の各々を入力とし、座標（ｉ［１］，ｖｓ［ｉ［１］］），（ｉ［２］，ｖｓ［ｉ［２］］），…，（ｉ［ｋ］，ｖｓ［ｉ［ｋ］］）を通るＧＦ（ｐ＾Ｎ）上のｋ−１次多項式ｇｓ（ｘ）のｇｓ（０）を生成する。具体的には、連立方程式を解く方法やラグランジュ補間を用いる方法などによりｓ’＝ｇｓ（０）を計算する。
【００７１】
次に、分散情報復元装置２００は、乱数分散情報の読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｋ］の各アクセス制御部３０４に送出し、３００［１］，３００［２］，…，３００［ｋ］の各乱数分散情報記憶部３０２からデータを読み出す。これらのデータをｖｒ［ｉ［１］］，ｖｒ［ｉ［２］］，…，ｖｒ［ｉ［ｋ］］と記す。
【００７２】
乱数情報復元部２０２は、（ｉ［１］，ｖｒ［ｉ［１］］），（ｉ［２］，ｖｒ［ｉ［２］］），…，（ｉ［ｋ］，ｖｒ［ｉ［ｋ］］）の各々を入力とし、座標（ｉ［１］，ｖｒ［ｉ［１］］），（ｉ［２］，ｖｒ［ｉ［２］］），…，（ｉ［ｋ］，ｖｒ［ｉ［ｋ］］）を通るＧＦ’（ｐ＾［ｋ−１］）のｋ−１次多項式ｇｒ（ｘ）のｇｒ（０）を生成する。具体的には、連立方程式を解く方法やラグランジュ補間を用いる方法などによりｒ’＝ｇｒ（０）を計算する。
【００７３】
次に、分散情報復元装置２００は、チェック用データの読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｋ］の各アクセス制御部３０４に送出し、記憶装置３００［１］，３００［２］，…，３００［ｋ］の各チェック用データ記憶部３０３からデータを読み出す。これらのデータをｅ［ｉ［１］］，ｅ［ｉ［２］］，…，ｅ［ｉ［ｋ］］と記す。ここで、各々のｅ［ｉ［ｊ］］＝（ｅ［ｉ［ｊ］０］，ｅ［ｉ［ｊ］１］）である。
【００７４】
不正検知部２０３は、数２２に示すｓ’，ｒ’，ｅ［１］，ｅ［２］，…，ｅ［ｎ］の各々を入力とし、ｊ＝１，２，…，ｎについて数２３の条件が成立するか否かをチェックし、全てのｅ［ｊ］［ｊ＝１，…，ｎ］についてこの条件が成立する場合はｓ’を秘密情報として出力し、成立しない場合は不正を検知したことを示す記号として、例えば⊥を出力する。
【００７５】
【数２２】
0005582143.tif 000024
【数２３】
0005582143.tif 000025
【００７６】
本実施形態に係る秘密情報分散システムでは、秘密情報のサイズはｐ＾Ｎであり、分散情報のサイズはｐ＾（Ｎ＋ｋ＋１）であり、不正の検出率は（１−Ｎ／ｐ）である。ここで、秘密情報のサイズをｓ、不正の検出率を（１−ε）と記すと、分散情報のサイズはほぼｓ＊（（ｌｏｇ  ｓ）／ε）＾（ｋ＋１）となる。
このことからして、数１５を考慮すると、本実施形態では極めて不正の検知率が高く、不正を行って成功する確率が極めて小さいことが分かる。
【００７７】
さらに、秘密情報ｓ＝（ｓ［１］，ｓ［２］，…，ｓ［N］）のデータ集合にＧＦ（ｐ＾Ｎ）（ｐ：素数，ＧＦ：ガロア体）を用い、乱数データｒ＝（ｒ［０］，ｒ［１］，…，ｒ［ｎ−２］）としてＧＦ（ｐ＾（ｎ−１））の元を用い、チェック用データｅ＝（ｅ［０］，ｅ［１］）としてＧＦ（ｐ）＾２を用いた例を用いて、復元された秘密情報が改竄されていることを検知できることを検証する。
なお、この場合、数１４に示すハッシュ値に代えて、数１５に示す確立理論に基づく式を用いることを前提としている。また、非特許文献２に開示された（ｎ，ｎ）閾値法による秘密情報分散法を適用している。
【００７８】
本実施形態では、秘密分散のアクセス構造を（ｎ，ｎ）閾値型のアクセス構造とし、秘密情報分散部１０１及び乱数情報分散部１０２は、非特許文献２に記載された（ｎ，ｎ）閾値法を用いて分散符号化し、秘密情報復元部２０１及び乱数情報復元部２０２は、その（ｎ，ｎ）閾値法に対応する復元方法を用いて秘密情報及び乱数情報を復元するものとする。
【００７９】
以上の条件の下に、本実施形態に係る分散情報生成装置１００には秘密情報ｓ＝（ｓ［１］，ｓ［２］，…，ｓ［N］）∈ＧＦ（ｐ＾Ｎ）（各ｓ［ｉ］∈ＧＦ（ｐ））が入力される。
【００８０】
分散情報生成装置１００は、秘密情報ｓが入力されると、秘密情報分散部１０１によりｖｓ［１］＋ｖｓ［２］＋…＋ｖｓ［ｎ］＝ｓとなるＧＦ（ｐ＾Ｎ）上の元ｖｓ［１］，ｖｓ［２］，…，ｖｓ［ｎ］をランダムに選び、各ｖｓ［ｉ］（ｉ＝１，２，…，ｎ）を記憶装置３００［ｉ］の分散秘密情報記憶部３０１［１］〜［ｎ］にそれぞれ格納する。
【００８１】
乱数情報分散部１０２は、ＧＦ（ｐ＾（ｎ−１））の元である乱数ｒを生成し、ｖｒ［１］＋ｖｒ［２］＋…＋ｖｒ［ｎ］＝ｒとなるＧＦ（ｐ＾（ｎ−１））上の元ｖｒ［１］，ｖｒ［２］，…，ｖｒ［ｎ］をランダムに選び、各ｖｒ［ｉ］（ｉ＝１，２，…，ｎ）を記憶装置３００［ｉ］の乱数分散情報記憶部３０２［１］〜［ｎ］にそれぞれ格納する。
【００８２】
チェック用データ生成部１０３は、ｉ＝１，２，…，ｎに対して，式ｈ（ｅ［ｉ］，ｓ）＝ｆ（ｒ，ｉ）が成立するような（ｅ［ｉ０］，ｅ［ｉ１］）をＧＦ（ｐ）上からランダムに選び、得られた（ｅ［ｉ０］，ｅ［ｉ１］）（ｉ＝１，２，…，ｎ）を記憶装置３００［ｉ］のチェック用データ記憶部３０３［１］〜［ｎ］にそれぞれ格納する。ただし、上記でｈ，ｆはそれぞれ数２４および数２５のように定義される関数である。
【００８３】
【数２４】
0005582143.tif 000026
【数２５】
0005582143.tif 000027
【００８４】
一方、本実施形態に係る分散情報復元装置２００は、まず、分散秘密情報の読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｎ］の各アクセス制御部３０４に送出し、記憶装置３００［１］，３００［２］，…，３００［ｎ］の各分散秘密情報記憶部３０１からデータを読み出す。これらのデータをｖｓ［１］，ｖｓ［２］，…，ｖｓ［ｎ］と記す。秘密情報復元部２０１は、ｖｓ［１］，ｖｓ［２］，…，ｖｓ［ｎ］を入力とし、数２６に示す演算によってｓ’を計算する。
【数２６】
0005582143.tif 000028
【００８５】
次に、分散情報復元装置２００は、乱数分散情報の読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｎ］の各アクセス制御部３０４に送出し、記憶装置３００［１］，３００［２］，…，３００［ｎ］の各乱数分散情報記憶部３０２からデータを読み出す。これらのデータをｖｒ［１］，ｖｒ［２］，…，ｖｒ［ｎ］と記す。乱数情報復元部２０２は、ｖｒ［１］，ｖｒ［２］，…，ｖｒ［ｎ］を入力とし、数２７に示す演算によって座標ｒ’を計算する。
【数２７】
0005582143.tif 000029
【００８６】
次に、分散情報復元装置２００は、チェック用データの読み出しを行う制御信号を読み出し制御部２０４から記憶装置３００［１］，３００［２］，…，３００［ｎ］の各アクセス制御部３０４に送出し、記憶装置３００［１］，３００［２］，…，３００［ｎ］の各チェック用データ記憶部３０３からデータを読み出す。これらのデータをｅ［１］，ｅ［２］，…，ｅ［ｎ］と記す。ここで各ｅ［ｉ］＝（ｅ［ｉ０］，ｅ［ｉ１］）である。
【００８７】
不正検知装置２０３は、数２８に示すｓ’，ｒ’，ｅ［１］，ｅ［２］，…，ｅ［ｎ］を入力とし、ｊ＝１，２，…，ｎについて数２９の条件が成立するか否かをチェックし、全てのｅ［ｊ］（ｊ＝１，…，ｎ）についてこの条件が成立する場合はｓ’を秘密情報として出力し、成立しない場合は不正を検知したことを示す記号として、例えば⊥を出力する。
【００８８】
【数２８】
0005582143.tif 000030
【数２９】
0005582143.tif 000031
【００８９】
本実施形態に係る秘密情報分散システムでは、秘密情報のサイズはｐ＾Ｎであり、分散情報のサイズはｐ＾（Ｎ＋ｎ＋１）であり、不正の検出率は（１−Ｎ／ｐ）である。ここで、秘密情報のサイズをｓ、不正の検出率を（１−ε）と記すと、分散情報のサイズはほぼｓ＊（（ｌｏｇ  ｓ）／ε）＾（ｋ＋１）で表せる。
このことからして、数１５を考慮すると、本実施形態では極めて不正の検知率が高く、不正を行って成功する確率が極めて小さいことが分かる。
【００９０】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００９１】
この出願は２００９年６月１９日に出願された日本出願特願２００９−１４６６５３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００９２】
本発明によれば、秘密情報を２以上の秘密分散情報に分散して保管する際に、極めて高い確率で、復元された秘密情報が改竄されているか否かを検知することができ、秘密情報を分散して管理するのに最適なシステムを提供できるものである。
【符号の説明】
【００９３】
１００  分散情報生成装置
１０１  秘密情報分散部
１０２  乱数情報分散部
１０３  チェック用データ生成部
２００  分散情報復元装置
２０１  秘密情報復元部
２０２  乱数情報復元部
２０３  不正検出部
２０４  読み出し制御部
３００  記憶装置
３０１  分散秘密情報記憶部
３０２  乱数分散情報記憶部
３０３  チェック用データ記憶部
３０４  アクセス制御部
【図１】
0005582143.tif 000038
【図２】
0005582143.tif 000039
【図３】
0005582143.tif 000040
【図４】
0005582143.tif 000041
【図５】
0005582143.tif 000042
【図６】
0005582143.tif 000043