(57)【特許請求の範囲】
【請求項１】
秘密情報Ｓについて、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、秘密情報の復元を制御した分散情報を生成する復元制御型秘密情報分散装置であって、
分散したい秘密情報Ｓについて、分散条件として、秘密情報Ｓの復元に必要な分散情報の個数の最低数である閾値ｋと、閾値ｋに対して分散情報の数が足りなくても秘密情報Ｓの部分的な復元を許容する分散情報の個数（ｋ−ｄ＋１）を決定するための分割数ｄと、秘密情報Ｓをｄ個に分割した分割情報Ｓ０，Ｓ１，…，Ｓｄ−１を入力する分散条件入力部と、
閾値ｋと分割数ｄに基づいて、最大の値を持つ分割情報Ｓｔ（０≦ｔ≦ｄ−１）よりも大きな値の素数ｐと、素数ｐよりも小さく０でない（ｋ−ｄ）個の自然乱数ｒｉ（１≦ｉ≦ｋ−ｄ）と、（ｋ（ｋ−１）／２）個の自然乱数ａｊ（１≦ｊ≦ｋ（ｋ−１）／２）を生成して、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋…＋Ｓｄ−１（ｘ−ａ（ｄ−１）（ｄ−２）／２＋１）（ｘ−ａ（ｄ−１）（ｄ−２）／２＋２）…（ｘ−ａ（ｄ−１）（ｄ−２）／２＋ｄ−１）＋ｒ１（ｘ−ａｄ（ｄ−１）／２＋１）（ｘ−ａｄ（ｄ−１）／２＋２）…（ｘ−ａｄ（ｄ−１）／２＋ｄ）＋…＋ｒｋ−ｄ（ｘ−ａ（ｋ−１）（ｋ−２）／２＋１）（ｘ−ａ（ｋ−１）（ｋ−２）／２＋２）…（ｘ−ａ（ｋ−１）（ｋ−２）／２＋ｋ−１）  mod  ｐ
の式で表現される秘密情報Ｓの分散関数ｆ（ｘ）を生成する分散関数生成部と、
分散関数ｆ（ｘ）から特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、該係数行列のデータを変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する復元条件導出部と、
上記生成された分散関数ｆ（ｘ）と、特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを復元制御情報として出力する分散関数出力部と、
入力された分散条件、生成された分散関数、導出された制約式と復元制御情報を記憶する演算過程記憶部と、
を有する事を特徴とする復元制御型秘密情報分散装置。
【請求項２】
秘密情報Ｓについて、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、秘密情報の復元を制御した分散情報を生成する分散関数の復元制御情報を導出する復元制御型秘密情報分散装置であって、
分散したい秘密情報Ｓについて、分散関数ｆ（ｘ）を入力する分散関数入力部と、
上記入力された分散関数ｆ（ｘ）から、特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、この係数行列のデータを変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する復元条件導出部と、
上記入力された分散関数ｆ（ｘ）に対して特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを復元制御情報として出力する復元制御情報出力部と、
入力された分散関数、導出された制約式と復元制御情報を記憶する演算過程記憶部と、
を有する事を特徴とする復元制御型秘密情報分散装置。
【請求項３】
請求項１に記載の復元制御型秘密情報分散装置であって、
閾値ｋと分割数ｄに対応する、分散関数ｆ（ｘ）の一般形と一般形から導出される制約式を記憶した復元条件記憶部と、
入力された分散条件ないしは分散関数ｆ（ｘ）に従って、条件に合致する分散関数ｆ（ｘ）および制約式を検索する復元条件検索部と、
を有する事を特徴とする復元制御型秘密情報分散装置。
【請求項４】
請求項１から３のいずれか１項に記載の復元制御型情報分散装置であって、
秘密情報Ｓについて、分散情報を生成する個数である分散数ｎに従って、分散関数ｆ（ｘ）と復元制御情報に基づいてｎ個の分散情報を生成する分散情報生成部と、
生成したｎ個の分散情報を、分散情報を計算したｘの値とともに出力する分散情報出力部と、
を有する事を特徴とする復元制御型秘密情報分散装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードや個人情報などの秘密情報を複数の個所に分散共有し、これらの内幾つか以上の分散された情報により元の秘密情報を復元可能とする秘密分散法を用いたセキュリティ技術に関する。
【背景技術】
【０００２】
ネットワーク上でパスワードや個人情報、暗号鍵情報といった各種情報のセキュリテイ（安全性）を保つために、暗号技術が用いられる。この際、ユーザ（利用者）の認証に用いられるパスワードや個人情報、共通鍵暗号に用いる共通鍵や公開鍵暗号に用いる秘密鍵といった秘密情報の保管に関して、秘密情報の紛失や破壊、漏洩や盗難といった恐れがあり、特に単一の個所に保管する場合などは秘密情報の紛失や破壊、複数の個所に保管する場合などは秘密情報の漏洩や盗難の可能性が高くなってしまうという問題がある。これらの問題を解決し、各種秘密情報を安全に保管する方法の一つとして、秘密分散法がある。秘密分散法は、元の秘密情報を複数の情報に分散して複数の個所に保管し、この分散された情報（以下、分散情報）を全て、あるいは幾つか合わせる事により、元の秘密情報を復元可能とする方法である。
【０００３】
従来、秘密分散法の実現方法の一つとして、（ｋ，ｎ）閾値秘密分散法がある（例えば、非特許文献１参照）。これは、分散情報を配布する数である２以上の整数の分散数ｎと、秘密情報Ｓの復元に必要な分散情報の最低数である２以上ｎ以下の整数の閾値ｋから、秘密情報Ｓを定数項とする（ｋ−１）次の多項式ｆ（ｘ）を、
ｆ（ｘ）＝Ｓ＋ｒ１ｘ＋…ｒｋ−１ｘｋ−１  mod  ｐ（ｒ１，…，ｒｋ−１：乱数、ｐ：素数）
として作成し、元の秘密情報Ｓを所有あるいは預託により分配する秘密情報分配者は、分散情報を保管する各分散情報保持者ｉ（ｉ＝１，２，…，ｎ）に対して、分散情報Ｗｉ＝ｆ（ｉ）を分配するものである。
【０００４】
この（ｋ，ｎ）閾値秘密分散法は、ｎ個の分散情報の内、任意のｋ個の分散情報がそろえば、ｆ（ｘ）に関する連立方程式を解く事により元の秘密情報Ｓを復元できるが、任意の（ｋ−１）個までの分散情報がそろってもｆ（ｘ）に関する連立方程式を解く事はできないため、元の秘密情報Ｓは復元できないという特徴がある。したがって、（ｎ−ｋ）個までの分散情報が紛失や破壊により損なわれても元の秘密情報Ｓが復元可能であり、（ｋ−１）個までの分散情報が漏洩や盗難により得られても元の秘密情報Ｓは復元できないという、秘密情報を安全に保管する方法が実現できる。
【０００５】
さらに、（ｋ，ｎ）閾値秘密分散法の拡張として、（ｄ，ｋ，ｎ）閾値秘密分散法がある（例えば、非特許文献２参照）。これは、分散情報を配布する数である２以上の整数の分散数ｎと、秘密情報Ｓの完全な復元に必要な分散情報の最低数である２以上ｎ以下の整数の閾値ｋと、閾値ｋに対して秘密情報Ｓの部分的な復元を許容する分散情報の不足数を決定する２以上ｋ以下の整数の分割数ｄから、秘密情報ＳをＳ０，Ｓ１，…，Ｓｄ−１に分割し、これらの分割した秘密情報（以下、分割情報）を定数項とする（ｋ−１）次の多項式ｆ（ｘ）を、
ｆ（ｘ）＝Ｓ０＋Ｓ１ｘ＋…＋Ｓｄ−１ｘｄ−１＋ｒ１ｘｄ＋…＋ｒｋ−ｄｘｋ−１  mod  ｐ
（ｒ１，…，ｒｋ−ｄ：乱数、ｐ：素数）
として作成し、元の秘密情報Ｓを所有あるいは預託により分配する秘密情報分配者は、分散情報を保管する各分散情報保持者ｉ（１＝１，２，…，ｎ）に対して、分散情報Ｗｉ＝ｆ（ｉ）を分配するものである。
【０００６】
この（ｄ，ｋ，ｎ）閾値秘密分散法は、先の（ｋ，ｎ）閾値秘密分散法と同様に、ｎ個の分散情報の内、任意のｋ個の分散情報がそろえば、ｆ（ｘ）に関する連立方程式を解く事により元の秘密情報Ｓを復元できるが、任意の（ｋ−ｄ）個までの分散情報がそろってもｆ（ｘ）に関する連立方程式を解く事はできないため、元の秘密情報Ｓは復元できないという特徴がある。ただし、任意の（ｋ−ｄ＋１）個から（ｋ−１）個までの分散情報がそろった場合には、ｆ（ｘ）に関する連立方程式から分割情報Ｓ０，Ｓ１，…，Ｓｄ−１に関する関係式が求められるため、分割情報Ｓ０，Ｓ１，…，Ｓｄ−１として可能な値を得る事ができ、元の秘密情報Ｓを部分的に復元する事ができる。
【０００７】
【非特許文献１】Ａ．Ｓhamir，“Ｈow  to  Ｓhare  a  Ｓecret”，Ｃommun．of  ＡＣＭ,Ｖol．２２，Ｎo.１１，pp．６１２−６１３，１９７９
【非特許文献２】Ｇ．Ｒ．Ｂlakley，Ｃ．Ｍeadows，“Ｓecurity  of  ramp  schemes”，Proc．of  Ｃrypto  ’８４，Ｌecure  Ｎotes  on  Ｃomput．Ｓci．，１９６，pp．２４２−２６８，１９８４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の（ｋ，ｎ）閾値秘密分散法は、ｋ個以上の分散情報を集めて初めて完全な秘密情報Ｓを復元可能であり、（ｋ−１）個以上の分散情報を集めても秘密情報Ｓは復元不可能であるため、秘密情報Ｓに対して部分的に情報を復元するような構成は実現できない。
【０００９】
一方、従来の（ｄ，ｋ，ｎ）閾値秘密分散法は、任意の（ｋ−ｄ＋１）個から（ｋ−１）個までの分散情報がそろった場合には分割情報Ｓ０，Ｓ１，…，Ｓｄ−１に関する方程式が求められるため、分割情報Ｓ０，Ｓ１，…，として可能な値を得る事ができ、元の秘密情報Ｓを部分的に復元する事ができる。しかし、秘密情報Ｓに対して全ての分割情報Ｓｔ（０≦ｔ≦ｄ−１）を復元可能とするような構成は実現できない。
【００１０】
本発明は、従来の（ｄ，ｋ，ｎ）閾値秘密分散法の上述のような問題に鑑みなされたもので、その目的は、幾つかの特定の分散情報がそろった場合に、特定の分割情報Ｓｔ（０≦ｔ≦ｄ−１）のみ復元可能であり、他の分割情報Ｓｕ（０≦ｕ≦ｄ−１，ｕ≠ｔ）は復元不可能であるような、秘密情報Ｓの部分的な復元を制御可能な秘密情報分散装置を提供することにある。
【課題を解決するための手段】
【００１１】
分散情報からの秘密情報Ｓの復元は、各分散情報の番号ｉと分散情報の値Ｗｉとを分散関数ｆ（ｘ）にあてはめた連立方程式を解く事により行われる。
【００１２】
従来の（ｄ，ｋ，ｎ）閾値秘密分散法では、例えばｋ＝３、ｄ＝２とした場合に分散関数ｆ（ｘ）は、
ｆ（ｘ）＝Ｓ０＋Ｓ１・ｘ＋ｒ・ｘ２    mod  ｐ
で表現され、任意の２個の分散情報ＷｘとＷｘ＋ｂ（ｘ，ｂ，ｘ＋ｂ≠０）についての連立方程式は以下のような行列式で表わされる。
【数１】
0004623623.tif 000002
【００１３】
行列式の左項を掃き出し法により変形すると、
【数２】
0004623623.tif 000003
となり、ｘ，ｘ＋ｂ≠０より−ｘ（ｘ＋ｂ）≠０であって、連立方程式からはＳ０とｒ、Ｓ０とＳ１の関係式しか求める事ができず、したがって分割情報Ｓ０を部分的に復元する事は原理的にできない。一方、２ｘ＋ｂ≡０となるｘ，ｂの組み合わせにおいては、Ｓ０とｒの関係式及びＳ１が求められるが、非常に大きな素数ｐの下ではｂ≡ｐ−ｘてある必要があり、そのようなｘ，ｂの組み合わせは現実的ではない。
【００１４】
図１に、本発明の復元制御型秘密情報分散手法の全体的な処理フロー図を示す。以下、図１にもとづいて本発明の原理を説明する。
本発明は、秘密情報Ｓについて、秘密情報Ｓの完全な復元に必要な分散情報の最低数である２以上の整数の閾値ｋ、閾値ｋに対して秘密情報Ｓの部分的な復元を許容する分散情報の不足数を決定する２以上ｋ以下の整数の分割数ｄと、秘密情報Ｓをｄ個に分割した分割情報Ｓ０，Ｓ１，…，Ｓｄ−１などの秘密情報Ｓを分散するための条件を入力し（ステップ１）、
最大の分割情報Ｓｔ（０≦ｔ≦ｄ−１）よりも大きな値の素数ｐと、素数ｐよりも小さく０でない（ｋ−ｄ）個の乱数ｒｉ（１≦ｉ≦ｋ−ｄ）と、（ｋ（ｋ−１）／２）個の乱数ａｊ（１≦ｊ≦ｋ（ｋ−１）／２）を生成して、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋…＋Ｓｄ−１（ｘ−ａ（ｄ−１）（ｄ−２）／２＋１）（ｘ−ａ（ｄ−１）（ｄ−２）／２＋２）…（ｘ−ａ（ｄ−１）（ｄ−２）／２＋ｄ−１）＋ｒ１（ｘ−ａｄ（ｄ−１）／２＋１）（ｘ−ａｄ（ｄ−１）／２＋２）…（ｘ−ａｄ（ｄ−１）／２＋ｄ）＋…＋ｒｋ−ｄ（ｘ−ａ（ｋ−１）（ｋ−２）／２＋１）（ｘ−ａ（ｋ−１）（ｋ−２）／２＋２）…（ｘ−ａ（ｋ−１）（ｋ−２）／２＋ｋ−１）  mod  ｐ
の式で表現される秘密情報Ｓの分散関数ｆ（ｘ）を生成する（ステップ２）、
ことを第１の特徴とする。ここで、乱数ｒｉ，ａｊは自然乱数である。
また、この式を展開すれば、次のような式でも表現できる。
【数３】
0004623623.tif 000004
【００１５】
本発明の第１の特徴によれば、例えばｋ＝３、ｄ＝２とした場合に生成される分散関数ｆ（ｘ）は、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋ｒ（ｘ−ａ２）（ｘ−ａ３）    mod  ｐ
で表現され、任意の２個の分散情報ＷｘとＷｘ＋ｂについての連立方程式は以下のような行列式で表現できる。
【数４】
0004623623.tif 000005
【００１６】
行列式の左項を掃き出し法により変形すると、
【数５】
0004623623.tif 000006
となり、ａｌ，ａ２，ａ３の値によっては−ｘ２＋（２ａ１−ｂ）ｘ＋ａ１ｂ−ａ１ａ２−ａ１ａ３＋ａ２ａ３≡０，２ｘ＋ｂ−ａ２−ａ３≡０を満たすｘとｂがある場合に、連立方程式から分割情報のＳ０のみ、もしくはＳ１のみを求める事ができる。
【００１７】
したがって、本発明の第１の特徴により生成される分散関数ｆ（ｘ）による秘密情報Ｓの分散情報は、幾つかの特定の分散情報がそろった場合に特定の分割情報Ｓｔ（０≦ｔ≦ｄ−１）を復元可能とする事ができる。
【００１８】
本発明の第１の特徴により、ｋ個の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、ｋ個に足りなくても（ｋ−ｄ＋１）個以上の特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報Ｓｔが復元可能であるように、秘密情報の復元を制御した分散情報を生成するための分散関数ｆ（ｘ）を得る事ができる。
【００１９】
本発明は、生成した分散関数ｆ（ｘ）から、特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、この係数行列のデータを掃き出し法により変形して得られる、特定の個数の分散情報から特定の分割情報Ｓｔを復元可能とするような特定のｘの組み合わせを求めるための制約式を解いて、特定の個数の分散情報から特定の分割情報Ｓｔを復元可能とする特定のｘの組み合わせである復元制御情報を導出する（ステップ３）ことを第２の特徴とする。
【００２０】
任意の閾値ｋ、分割数ｄから決定される分散関数ｆ（ｘ）の一般形から、（ｋ−ｄ＋１）個から（ｋ−１）個の任意のｘｍ（１≦ｍ≦ｋ−ｄ＋１〜ｋ−１）についてｘｍ＝ｘ＋ｂｍ−１（ｂ０＝０，ｂｌ≠ｂ２≠…≠ｂｍ−１≠０）とおいて、ｆ（ｘ）に関する連立方程式を表現する以下のような係数行列を作成する事ができる。
【数６】
0004623623.tif 000007
【００２１】
係数行列の左項を掃き出し法により変形すると、
【数７】
0004623623.tif 000008
の形に変形でき、Ｌｍ，１≡０，Ｌｍ，２≡０，…，Ｌｍ，ｋ−ｄ≡０の場合に連立方程式からＳｍ−１を求める事ができるようになる。
【００２２】
このように、本発明の第２の特徴は、秘密情報Ｓの分散情報を生成するための分散関数ｆ（ｘ）から、特定の個数のｘについての組み合わせの連立方程式を表現する行列式を生成し、この行列式を掃き出し法により変形して、ｘとｂｍとａｊからなる関係式であるＬｕ，ｖ（１≦ｕ≦ｍ，１≦ｖ≦ｋ−ｄ）について、Ｌｔ−１，ｖ≡０（１≦ｖ≦ｋ−ｄ）を解く事により、これを満たすｘおよびｂｍの組み合わせを分割情報Ｓｔを復元可能な分散情報の組み合わせとして算出するものである。
【００２３】
本発明の第２の特徴により、幾つかの特定の分散情報がそろった場合に復元可能となる特定の分割情報Ｓｔ（０≦ｔ≦ｄ−１）について、復元を可能とする特定のｘの組み合わせを求める事が可能となる。
【００２４】
（削除）
【００２５】
また、本発明は、分散条件を入力するステップ１にて、分散情報を生成する個数である分散数ｎを入力すると、ステップ２またはステップ４にて決定された分散関数ｆ（ｘ）から、所定の条件に従ったｎ個の分散情報を生成する（ステップ５）、ことを特徴とする。
また、本発明は、先のステップ２またはステップ４にて決定された分散関数ｆ（ｘ）、ステップ３にて求められた特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための特定のｘの組み合わせである復元制御情報、ステップ５において生成された分散情報を出力する（ステップ６）、ことを特徴とする。
【００２６】
（削除）
【００２７】
本発明による復元制御型秘密情報分散装置は、
分散したい秘密情報Ｓについて、秘密情報Ｓの復元に必要な分散情報の個数の最低数である閾値ｋと、閾値ｋに対して分散情報の数が足りなくても秘密情報Ｓの部分的な復元を許容する分散情報の個数（ｋ−ｄ＋１）を決定する分割数ｄと、秘密情報Ｓをｄ個に分割した分割情報Ｓ０，Ｓ１，…，Ｓｄ−１の入力を受け付ける分散条件入力部と、
閾値ｋと分割数ｄに基づいて、最大の分割情報Ｓｔ（０≦ｔ≦ｄ−１）よりも大きな値の素数ｐと、素数ｐよりも小さく０でない（ｋ−ｄ）個の自然乱数ｒｉ（１≦ｉ≦ｋ−ｄ）と、（ｋ（ｋ−１）／２）個の自然乱数ａｊ（１≦ｊ≦ｋ（ｋ−１）／２）を生成して、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋…＋Ｓｄ−１（ｘ−ａ（ｄ−１）（ｄ−２）／２＋１）（ｘ−ａ（ｄ−１）（ｄ−２）／２＋２）…（ｘ−ａ（ｄ−１）（ｄ−２）／２＋ｄ−１）＋ｒ１（ｘ−ａｄ（ｄ−１）／２＋１）（ｘ−ａｄ（ｄ−１）／２＋２）…（ｘ−ａｄ（ｄ−１）／２＋ｄ）＋…＋ｒｋ−ｄ（ｘ−ａ（ｋ−１）（ｋ−２）／２＋１）（
ｘ−ａ（ｋ−１）（ｋ−２）／２＋２）…（ｘ−ａ（ｋ−１）（ｋ−２）／２＋ｋ−１）  mod  ｐ
の式で表現される秘密情報Ｓの分散関数ｆ（ｘ）を生成する分散関数生成部と、
分散関数ｆ（ｘ）から特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、この係数行列のデータを変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する復元条件導出部と、
上記生成された分散関数ｆ（ｘ）と、特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを復元制御情報として出力する分散関数出力部と
上記入力された分散条件、生成した分散関数、導出した制約式と復元制御情報を記憶する演算過程記憶部とを有する事を特徴とする。
【００２８】
本発明装置により、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、秘密情報の復元を制御した分散情報を生成する分散関数と、その復元制御情報を導出する復元制御型秘密情報分散装置を実現することができる。
【００２９】
（削除）
【００３０】
（削除）
【００３１】
また、本発明による復元制御型秘密情報分散装置は、
分散したい秘密情報Ｓについて、分散関数ｆ（ｘ）を入力する分散関数入力部と、
入力された分散関数ｆ（ｘ）から、特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、この係数行列のデータを変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する復元条件導出部と、
上記入力された分散関数ｆ（ｘ）に対して特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを復元制御情報として出力する復元制御情報出力部と、
上記入力された分散関数、導出した制約式と復元制御情報を記憶する演算過程記憶部とを有する事を特徴とする。
【００３２】
本発明装置により、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、秘密情報の復元を制御した分散情報を生成する既知の分散関数について、特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせである復元制御情報を導出する復元制御型秘密情報分散装置を実現することができる。
【００３３】
また、本発明による復元制御型秘密情報分散装置は、
閾値ｋと分割数ｄに対応する、分散関数ｆ（ｘ）の一般形と一般形から導出される制約式を記録した復元条件記憶部と、
入力された分散条件ないしは分散関数ｆ（ｘ）に従って、条件に合致する分散関数ｆ（ｘ）および制約式を検索する復元条件検索部とを有する事を特徴とする。
【００３４】
本発明装置により、既知の分散条件の下での分散関数および既知の分散関数の一般形については、繁雑な計算を行う事なく分散関数および制約式および復元制御情報を得る復元制御型秘密情報分散装置を実現することができる。
【００３５】
また、本発明による復元制御型秘密情報分散装置は、
秘密情報Ｓについて、分散情報を生成する個数である分散数ｎに従って、分散関数ｆ（ｘ）と復元制御情報に基づいてｎ個の分散情報を生成する分散情報生成部と、
生成したｎ個の分散情報を、分散情報を計算したｘの値とともに出力する分散情報出力部とを有する事を特徴とする。
【００３６】
本発明装置により、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、分散情報を生成する復元制御型秘密情報分散装置を実現することができる。
【発明の効果】
【００３７】
本発明では、秘密情報Ｓについて、所定の数の任意の分散情報を集めると元の秘密情報Ｓが復元可能であって、所定の数に足りなくても特定の分散情報の組み合わせからは秘密情報Ｓの特定の部分情報が復元可能であるように、秘密情報の復元を制御した秘密情報分散を実現する事ができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態を具体的実施例により説明する。
【実施例１】
【００３９】
図２に本発明の実施例１における復元制御型秘密情報分散装置１００の機能構成例を示す。本装置は、分散条件入力部１１０、分散関数生成部１２０、復元条件導出部１３０、分散関数決定部１４０、分散関数出力部１５０、演算過程記憶部１６０、復元条件記憶部１７０、復元条件検索部１８０、分散情報生成部１９０、分散情報出力部２００から構成される。なお、これら各部の動作を制御する制御部も具備するが、図２では省略してある。
【００４０】
本実施例では、部分的な分割情報Ｓ０とＳ１から構成される秘密情報Ｓを６個の分散情報に分散するものとして、６個の内任意の３個の分散情報を持ち寄れば秘密情報Ｓを完全に復元でき、１番目と２番目の分散情報を持ち寄ると分割情報Ｓ０を、１番目と６番目の分散情報を持ち寄ると分割情報Ｓ１を復元でき、これ以外の任意の２個の分散情報からは秘密情報Ｓを完全には復元できないように、秘密情報Ｓの分散情報を生成するとする。分散の対象とする秘密情報Ｓを４桁の１６進文字列、Ｓ＝３ＣＡＢとし、分割情報はＳ０＝３Ｃ、Ｓ１＝ＡＢとする。
【００４１】
まず、分散条件入力部１１０において、ユーザによる分散条件の入力を受け付ける。本実施例における分散条件は、３個の分散情報で完全な復元を許す事から閾値ｋ＝３、２個の分散情報でも部分的な復元を許す事から分割数ｄ＝２、および分割情報Ｓ０＝３Ｃ、Ｓ１＝ＡＢとする。また、分散情報の生成と復元に関する条件として、分散数ｎ＝６と、分割情報Ｓ０を復元可能とする組み合わせ（１，２）、分割情報Ｓ１を復元可能とする組み合わせ（１，６）が入力されたものとする。分散条件入力部１１０は演算過程記憶部１６０に入力された分散条件を記憶する。
【００４２】
なお、本実施例では、分散条件入力部１１０において入力される分散条件を、閾値ｋと分割数ｄ、秘密情報Ｓの分割情報Ｓ０，Ｓ１，…，Ｓｄ−１の三項目としているが、閾値ｋと分割情報Ｓ０，Ｓ１，…，Ｓｄ−１の二項目を入力する事で分割数ｄを求めるようにしたり、逆に閾値ｋと分割数ｄ、秘密情報Ｓの三項目の入力を受け付け、入力された秘密情報Ｓから自動的に分割情報Ｓ０，Ｓ１，…，Ｓｄ−１を生成するようにしても構わない。また、本実施例では秘密情報Ｓに対する分割情報を秘密情報Ｓの上位２桁と下位２桁で分割しているが、本発明は秘密情報Ｓの分割方法を規定するものではなく、例えば奇数ビットと偶数ビットのようにビット単位で分割しても構わないし、分割情報Ｓ０とＳ１の積などの演算結果が秘密情報Ｓとなるように分割しても構わない。さらに、本実施例は分散の対象とする秘密情報Ｓを１６進文字列に限定するものではなく、また単なる文字列に限定するものでもない。数値情報、文字列など分散関数による演算が可能であればどのような情報でも良く、また文書や画像データなどのマルチメディアなどを対象としても良い。
【００４３】
また、秘密情報Ｓの分割情報Ｓ０とＳ１、および分散情報の生成と復元に関する条件の入力の受け付けについて、説明の都合上、一括して入力されるように記述しているが、これらの値の入力は後の処理で必要となった時に初めて分散条件入力部１１０で入力されるようにしても良い。本実施例は、これら実際の分散情報を生成するための条件の入力を受け付けるタイミングを規定するものではない。また、本実施例は分散条件および分散情報の生成と復元に関する条件の入力の方法および形式を規定するものではない。キーボード入力やファイル入力の他に、インターネットなどの接続回線を介して他の装置から入力するようにしても構わない。
【００４４】
次に、分散関数生成部１２０において、閾値ｋと分散数ｄおよび分割情報Ｓ０とＳ１に基づいて、Ｓ０およびＳ１よりも大きな値の素数ｐ、素数ｐよりも小さく０でない乱数ｒ、および３個の変数ａｌ、ａ２、ａ３による下記の式で表現される分散関数ｆ（ｘ）の一般形を生成し、これを演算過程記憶部１６０に記憶する。
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａｌ）＋ｒ（ｘ−ａ２）（ｘ−ａ３）  mod  ｐ
【００４５】
さらに分散関数生成部１２０は、上記の式で表現される分散関数ｆ（ｘ）の一般形における素数ｐ、乱数ｒ、変数ａｌ、ａ２、ａ３の値を乱数発生器や素数算出器などを使って生成する。ここでは、素数ｐ＝ＦＢ、乱数ｒ＝１Ｆとａｌ＝０，ａ２＝２，ａ３＝５を生成したものとする。分散関数生成部１２０は処理の結果として、生成した各値、および一般形の分散関数ｆ（ｘ）に生成した各値を埋めた式を演算過程記憶部１６０に記憶する。
【００４６】
なお、本実施例では分散関数生成部１２０において素数ｐや乱数ｒｉ、ａｊなどを生成しているが、乱数および素数の生成方法を特に規定するものではない。また、これらの各値について分散条件入力部１１０において入力を受け付けるようにしても良い。
【００４７】
次に、復元条件導出部１３０において、分散関数生成部１２０が生成した分散関数ｆ（ｘ）について、特定の個数のｘについての組み合わせの連立方程式を表現する係数行列のデータを生成し、この係数行列のデータを掃き出し方により変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する。
【００４８】
本実施例においては、特定の２個の分散情報で秘密情報Ｓの部分的な復元を許す事から、分散関数ｆ（ｘ）から生成される任意の２個の分散情報について、ｆ（ｘ）、ｆ（ｘ＋ｂ）とおいて、分散情報を生成する式の連立方程式を表現する係数行列のデータを、
【数８】
0004623623.tif 000009
のように生成し、演算過程記憶部１６０に記憶する。本実施例は、演算過程記憶部１６０に記憶する係数行列のデータの表現を規定するものではないが、例えば配列表現により記憶するものとして、１行１列目が１、１行２列目がｘ−ａｌ、…のように記憶したものとする。
【００４９】
さらに復元条件導出部１３０は、演算過程記憶部１６０に記憶した係数行列のデータを掃き出し法により変形を行う。１行１列目の値および２行１列目の値が１であるから、２行目の各列の値から１行目の対応する列の値を引いて、
【数９】
0004623623.tif 000010
【００５０】
２行２列目の値がｂであるから、２行目の各列値をｂで割って、
【数１０】
0004623623.tif 000011
１行２列目の値がｘ−ａ１であるから、１行目の各列の値から２行目の対応する列の値にｘ−ａ１をかけた値を引いて、
【数１１】
0004623623.tif 000012
を得る。１行１列目および２行２列目の値が１、１行２列目および２行１列目の値が０になった事を判断して、掃き出し法の実行を終了する。
【００５１】
上記の掃き出し法による演算過程について、掃き出し法による行列式の演算は既知の処理である事から、本実施例は特に規定するものではない。また、本実施例では復元条件導出部１３０は演算過程記憶部１６０に記憶した値を操作して掃き出し法を実行しているが、内部メモリなどを用いて予め演算を行った後に演算過程記憶部１６０に記憶するようにしても良い。
【００５２】
上記掃き出し法の実行により演算過程記憶部１６０に記憶された係数行列のデータは、任意の２個の分散情報から得られる分割情報Ｓ０，Ｓ１と乱数値ｒの関係式を表わすものである。したがって、復元条件導出部１３０は、部分的にＳ０を復元可能な特定の分散情報ｆ（ｘ）およびｆ（ｘ＋ｂ）を求めるための制約式として、１行３列目の値から、−ｘ２＋２ａ１ｘ−ｂｘ＋ａ１ｂ−ａ１ａ２−ａ１ａ３＋ａ２ａ３≡０を得る。同様に、部分的にＳ１を復元可能な特定の分散情報ｆ（ｘ）およびｆ（ｘ＋ｂ）を求めるための制約式として、２行３列目の値から、２ｘ−ａ２−ａ３＋ｂ≡０を得る。これらの式は、閾値ｋ＝３、分割数ｄ＝２の場合の分散関数ｆ（ｘ）の一般形において、特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを算出するための制約式である。
【００５３】
復元条件導出部１３０は、復元可能とする特定の分割情報Ｓ０およびＳ１と関連付けて、これらの制約式を演算過程記憶部１６０に記憶する。
【００５４】
なお、これらの制約式は分散関数ｆ（ｘ）の一般形が同じであれば常に同じであるため、復元条件導出部１３０で制約式を導出する代わりに、復元条件記憶部１７０において既知の制約式を記憶しておくようにしても良い。即ち、復元条件記憶部１７０は、閾値ｋと分割数ｄにより定まる分散関数ｆ（ｘ）の一般形とその制約式を関連付けて記憶し、復元条件検索部１８０は、入力された分散条件にしたがって、復元条件記憶部１７０に記憶された該当する分散関数ｆ（ｘ）の一般形とその制約式を取得する。これにより、閾値ｋと分割数ｄにより定まる分散関数ｆ（ｘ）の一般形とその制約式を簡易に得る事ができるようになる。復元条件記憶部１７０に該当するものがない場合には、復元条件導出部１３０で制約式を求めておいて復元条件記憶部１７０に記憶し、以後の処理において、復元条件検索部１８０にて検索できるようにしても良い。
【００５５】
分散関数決定部１４０は、復元条件導出部１３０で導出した制約式を解いて、最終的な分散関数ｆ（ｘ）を決定する。まず、分散関数決定部１４０は、Ｓ０に関する制約式−ｘ２＋２ａ１ｘ−ｂｘ＋ａ１ｂ−ａ１ａ２−ａ１ａ３＋ａ２ａ３≡０に対し、３個の変数ａｌ＝０，ａ２＝２，ａ３＝５を代入して、−ｘ２−ｂｘ＋１０≡０を得る。さらに、Ｓ０を復元可能なｘ，ｂの組み合わせとして、ｘ≧０，ｂ≧１の条件下で制約式を解いて（ｘ，ｂ）＝（１，９），（２，３）を得る。次に、Ｓ０に関する制約式２ｘ−ａ２−ａ３＋ｂ≡０に対し、３個の変数ａｌ＝０，ａ２＝２，ａ３＝５を代入して、２ｘ＋ｂ−７≡０を得る。さらに、Ｓ１を復元可能なｘ，ｂの組み合わせとして、ｘ≧０，ｂ≧１の条件下で制約式を解いて（ｘ，ｂ）＝（１，５），（２，３），（３，１）を得る。すなわちＳ０を復元可能な分散情報の組み合わせは例えばｆ（１）とｆ（１０），ｆ（２）とｆ（５）であり、Ｓ１を復元可能な分散情報の組み合わせは例えばｆ（１）とｆ（６），ｆ（２）とｆ（５），ｆ（３）とｆ（４）である。これらの組み合わせは、生成した分散関数ｆ（ｘ）により生成される分散情報について、特定の分割情報Ｓｔを復元可能な特定のｘの組み合わせを表わす復元制御情報である。
【００５６】
分散関数決定部１４０は、Ｓ０を復元可能な分散情報の組み合わせとしてｆ（１）とｆ（１０），ｆ（２）とｆ（５）を演算過程記憶部１６０に記憶し、Ｓ１を復元可能な分散情報の組み合わせとしてｆ（１）とｆ（６），ｆ（２）とｆ（５），ｆ（３）とｆ（４）を同じく演算過程記憶部１６０に記憶する。なお、分散情報の組み合わせではなくｘ，ｂの組み合わせをそのまま記憶するようにしても良い。
【００５７】
また、分散関数決定部１４０は、演算過程記憶部１６０に記憶した分散条件および分散関数ｆ（ｘ）の一般形から最終的な分散関数ｆ（ｘ）を決定する。本実施例においては、分割情報Ｓ０＝３Ｃ、Ｓ１＝ＡＢ、素数ｐ＝ＦＢ、乱数ｒ＝１Ｆであり、変数ａｌ、ａ２、ａ３の値はａｌ＝０，ａ２＝２，ａ３＝５であるから、分散関数ｆ（ｘ）は、ｆ（ｘ）＝３Ｃ＋ＡＢｘ＋１Ｆ（ｘ一２）（ｘ−５）（mod  ＦＢ）と定まる。分散関数決定部１４０は、この最終的な分散関数ｆ（ｘ）を演算過程記憶部１６０に記憶する。
【００５８】
なお、本実施例では分割情報Ｓ０、Ｓ１をはじめとする各種の変数を予め分散条件として入力を受け付け、あるいは決定していたため最終的な分散関数ｆ（ｘ）が定まるが、分割情報Ｓ０、Ｓ１、素数ｐ、乱数ｒなどを予め入力あるいは決定する事なく、分散関数ｆ（ｘ）の一般形あるいは一部の変数を許した式を最終的な分散関数ｆ（ｘ）と定めるようにしても良い。
【００５９】
分散関数出力部１５０は、分散関数決定部１４０において決定した分散関数ｆ（ｘ）およびその復元制御情報を出力する。本実施例においては、分散関数ｆ（ｘ）として、ｆ（ｘ）＝３Ｃ＋ＡＢｘ＋１Ｆ（ｘ−２）（ｘ−５）（mod  ＦＢ）、その復元制御情報として、Ｓ０を復元可能な分散情報の組み合わせｆ（１）とｆ（１０），ｆ（２）とｆ（５）、Ｓ１を復元可能な分散情報の組み合わせｆ（１）とｆ（６），ｆ（２）とｆ（５），ｆ（３）とｆ（４）を出力する。
【００６０】
なお、本実施例では最終的な分散関数ｆ（ｘ）と各分割情報Ｓ０、Ｓ１を復元可能な分散情報の組み合わせを出力しているが、本発明は出力する情報の種類を規定するものではない。他に分散関数の一般形や各変数を独立して出力するようにしても良い。また、本実施例は分散関数ｆ（ｘ）およびその復元制御情報の出力の方法および形式を規定するものではない。画面出力やファイル出力の他に、インターネットなどの接続回線を介して他の装置に出力するようにしても良いし、また必要がなければ出力をしないようにしても良い。
【００６１】
分散情報生成部１９０は、分散関数決定部１４０において決定した分散関数ｆ（ｘ）により、所定の条件に従って分散情報を生成する。本実施例における復元許可条件は、１番目と２番目の分散情報を持ち寄ると分割情報Ｓ０を、１番目と６番目の分散情報を持ち寄ると分割情報Ｓ１を復元できる組み合わせであり、そのような復元が可能な分散情報の組み合わせは、演算過程記憶部１６０に記憶された分散情報の組み合わせからＳ０に関してｆ（１）とｆ（１０）、Ｓ１に関してｆ（１）とｆ（６）のみであり、分散情報生成部１９０は１番目の分散情報としてｆ（１）、２番目の分散情報としてｆ（１０）、６番目の分散情報としてｆ（６）を決定する。また、生成する分散情報の数はｎ＝６である事から、残りの分散情報について、特定の分割情報を復元可能な組み合わせを避けて選択し、３番目、４番目、５番目の分散情報としてｆ（７），ｆ（８），ｆ（９）と決定する。分散情報生成部１９０は分散情報の順番をｆ（１），ｆ（１０），ｆ（７），ｆ（８），ｆ（９），ｆ（６）として、演算過程記憶部１６０に記憶する。
【００６２】
さらに分散情報生成部１９０は、分散関数決定部１４０において決定した分散関数ｆ（ｘ）にしたがって、実際の分散情報の値を算出する。本実施例においては、ｆ（１）＝６８，ｆ（１０）＝Ｆ９，ｆ（７）＝３Ｄ，ｆ（８）＝Ｅ５，ｆ（９）＝ＤＯ，ｆ（６）＝ＣＥとなり、分散情報生成部１９０は分散情報の順番に対応付けて分散情報の値を演算過程記憶部１６０に記憶する。
【００６３】
なお、本実施例において、分散関数ｆ（ｘ）から分散情報を算出する際のｘの値を１０進数の数字により記述しているが、可能なｘの値を１０進数の数字に規定するものではない。分散関数ｆ（ｘ）に則って分散情報を算出できれば良く、例えば１６進数であったり文字列であったりしても構わない。本実施例においては、秘密情報Ｓおよびその分割情報Ｓ０、Ｓ１が１６進文字列である事から、算出される分散情報の値も１６進文字列となっている。
【００６４】
分散情報出力部２００は、分散情報生成部１９０において生成した分散情報を、分散情報を算出したｘの値と組にして出力する。本実施例における出力は、（１，６８），（１０，Ｆ９），（７，３Ｄ〉，（８，Ｅ５），（９，ＤＯ），（６，ＣＥ）となる。本実施例における分散情報の出力の例を図３に示す。
【００６５】
なお、本実施例は分散情報出力部２００における分散情報の出力の方法および形式を規定するものではない。画面出力やファイル出力の他に、インターネットなどの接続回線を介して他の装置に出力するようにしても良い。ただし、出力した分散情報を複数組み合わせると元の秘密情報Ｓないしはその部分的な情報Ｓ０，Ｓ１が算出可能な事から、個々の分散情報を別個に出力する事が望ましい。また分散情報は直接各分散情報保持者または名分散情報保持装置に出力するようにし、出力の際に個々の保持者ないしは装置に合わせて暗号化するなどの手段も考える事もできる。
【００６６】
以下では、本実施例により生成した分散情報から、分割情報Ｓ０およびＳ１、さらに秘密情報Ｓを復元する方法について説明する。
【００６７】
任意の２個の分散情報からの秘密情報の復元については、不明な分割情報Ｓ０、Ｓ１、乱数ｒとおいた分散関数ｆ（ｘ）の式に、実際のｘの値および分散情報の値をあてはめた連立方程式を解く事により求められる。
【００６８】
例えば、１番目と２番目の分散情報からは、ｆ（１）＝６８，ｆ（１０）＝Ｆ９より
ｆ（１）＝Ｓ０＋Ｓ１・１＋ｒ・（１−２）（１−５）＝Ｓ０＋Ｓ１＋４ｒ≡６８（mod  ＦＢ）
ｆ（１０）＝Ｓ０＋Ｓ１・１０＋ｒ・（１０−２）（１０−５）＝Ｓ０＋１０Ｓ１＋４０ｒ≡Ｆ９（mod  ＦＢ）
の連立方程式を得る事ができる。これを解くと、Ｓ０≡３Ｃ、Ｓ１＋４ｒ≡２Ｃが求められ、秘密情報Ｓの分割情報Ｓ０が得られる。
【００６９】
一方、１番目と６番目の分散情報からは、ｆ（１）＝６８，ｆ（６）＝ＣＥより
ｆ（１）＝Ｓ０＋Ｓ１・１＋ｒ・（１−２）（１−５）＝Ｓ０＋Ｓ１＋４ｒ≡６８（mod  ＦＢ）
ｆ（６）＝Ｓ０＋Ｓ１・６＋ｒ・（６−２）（６−５）＝Ｓ０＋６Ｓ１＋４ｒ≡ＣＥ（mod  ＦＢ）
の連立方程式が得られる。これを解くと、Ｓ１≡ＡＢ、Ｓ０＋４ｒ≡Ｂ８が求められ、秘密情報Ｓの分割情報Ｓ１が得られる。
【００７０】
ただし、これ以外の任意の分散情報の組からは、例えばｆ（１０）＝Ｆ９，ｆ（６）＝ＣＥより
ｆ（１０）＝Ｓ０＋Ｓ１・１０＋ｒ・（１０−２）（１０−５）＝Ｓ０＋１０Ｓ１＋４０ｒ≡Ｆ９（mod  ＦＢ）
ｆ（６）＝Ｓ０＋Ｓ１・６＋ｒ・（６−２）（６−５）＝Ｓ０＋６Ｓ１＋４ｒ≡ＣＥ（mod  ＦＢ）
の連立方程式が得られるが、これを解いても、９Ｓ０＋５０Ｓ１≡３６（mod  ＦＢ）という分割情報Ｓ０とＳ１の関係式が得られるのみで、秘密情報Ｓを完全には復元できない。本実施例における分散情報の組み合わせにより得られる分割情報の関係式を図４に示す。
【００７１】
なお、任意の３個の分散情報からは、例えばｆ（７）＝３Ｄ，ｆ（８）＝Ｅ５，ｆ（９）＝Ｄ０より
ｆ（７）＝Ｓ０＋Ｓ１・７＋ｒ・（７−２）（７−５）＝Ｓ０＋７Ｓ１＋１０ｒ≡３Ｄ
ｆ（８）＝Ｓ０＋Ｓ１・８＋ｒ・（８−２）（８−５）＝Ｓ０＋８Ｓ１＋１８ｒ≡Ｅ５
ｆ（９）＝Ｓ０＋Ｓ１・９＋ｒ・（９−２）（９−５）＝Ｓ０＋９Ｓ１＋２８ｒ≡ＤＯ
のような連立方程式が得られ、これを解くと、Ｓ０≡３Ｃ，Ｓ１≡ＡＢ，ｒ≡１Ｆが求められ、秘密情報Ｓが完全に復元される。
【００７２】
以上のように、本実施例により生成した秘密情報Ｓの分散情報は、６個の内任意の３個の分散情報を持ち寄れば秘密情報Ｓを完全に復元でき、１番目と２番目の分散情報を持ち寄ると分割情報Ｓ０を、１番目と６番目の分散情報を持ち寄ると分割情報Ｓ１を復元でき、これ以外の任意の２個の分散情報からは秘密情報Ｓを完全には復元できないように生成されている。
【実施例２】
【００７３】
図５は、本発明の実施例２における復元制御型秘密情報分散装置３００の機能構成例を示す。本復元制御型秘密情報装置３００は、分散関数入力部３１０、復元条件導出部３２０、復元制御情報出力部３３０、演算過程記憶部３４０から構成される。図５でも、各部の動作を制御するための制御部は省略する。
【００７４】
本実施例は、秘密情報Ｓを分散するための既知の分散関数ｆ（ｘ）を入力として、秘密情報Ｓの分割情報Ｓ０，Ｓ１，…，Ｓｄ−１について部分的な復元の可否および部分的な復元が可能な組み合わせである復元制御情報を算出するものである。
【００７５】
分散関数入力部２１０において、復元制御情報を求める分散関数ｆ（ｘ）の入力を受け付ける。本実施例では、分散関数ｆ（ｘ）として、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ一６）＋ｒ（ｘ−３）（ｘ−４）mod  ｐ
が入力されたものとする。分散関数入力部２１０は、入力された分散関数ｆ（ｘ）を演算過程記憶部３４０に入力された式を記憶する。
【００７６】
なお、本実施例は、分散関数入力部３１０における分散関数ｆ（ｘ）の入力の方法および形式を規定するものではない。キーボード入力やファイル入力の他に、インターネットなどの接続回線を介して他の装置から入力するようにしても構わない。また、具体的な値を一切含む事なく、分散関数ｆ（ｘ）の一般形を入力として受け付けるようにしても良い。また、本実施例では入力された分散関数ｆ（ｘ）の式について、分割情報Ｓ０、Ｓ１や乱数ｒ、素数ｐの値の入力はなかったものとしたが、予め入力を受け付けるようにしても良い。また分散関数入力部２１０が演算過程記憶部３４０に記憶する形式は、分散関数ｆ（ｘ）の式だけでなく、各変数や項の値を記録するようにしても良い。
【００７７】
復元条件導出部３２０は、入力された分散関数ｆ（ｘ）から特定の個数のｘについての組み合わせの連立方程式を表現する行列式を生成し、この行列式を変形して特定のｘの組み合わせから特定の分割情報Ｓｔを復元可能とするための制約式を導出する。
【００７８】
本実施例においては、分散関数ｆ（ｘ）が分割情報Ｓ０、Ｓ１とｒの式で表現される事から、
【数１２】
0004623623.tif 000013
のように生成し、この左項を掃き出し法により変形して、
【数１３】
0004623623.tif 000014
を得る。したがって、部分的にＳ０を復元可能な特定の分散情報ｆ（ｘ）およびｆ（ｘ＋ｂ）に関する制約式は−ｘ２＋２ａ１ｘ−ｂｘ＋ａ１ｂ−ａ１ａ２−ａ１ａ３＋ａ２ａ３≡０、部分的にＳ１を復元可能な特定の分散情報ｆ（ｘ）およびｆ（ｘ＋ｂ）に関する制約式は２ｘ−ａ２−a３＋ｂ≡０である。
【００７９】
次に、復元条件導出部３２０は、演算過程記憶部３４０に記憶した分散関数ｆ（ｘ）の式から変数ａｌ、ａ２、ａ３の値を得て、制約式に代入してｘとｂの組み合わせを算出する。本実施例ではａｌ＝６，ａ２＝３，ａ３＝４であるから、Ｓ０を復元可能なｘとｂの組み合わせの制約式は−ｘ２＋１２ｘ−ｂｘ＋６ｂ−３０≡０となり、ｘ≧０，ｂ≧１の条件下で制約式を解くと、ｂがうまく割り切れない場合を除いて（ｘ，ｂ）＝（３，１），（７，５），（８，１）を得る。一方、Ｓ０を復元可能なｘとｂの組み合わせの制約式は２ｘ＋ｂ−７≡０となり、同様にｘ≧０，ｂ≧１の条件下で制約式を解くと、（ｘ，ｂ）＝（１，５），（２，３），（３，１）を得る。復元制御情報は、Ｓ０を復元可能な分散情報の組み合わせとして例えばｆ（３）とｆ（４），ｆ（７）とｆ（１２），ｆ（８）とｆ（９）、Ｓ１を復元可能な分散情報の組み合わせとして例えばｆ（１）とｆ（６），ｆ（２）とｆ（５），ｆ（３）とｆ（４）となる。復元条件導出部３２０は、これらの組み合わせを演算過程記憶部３４０に記憶する。
【００８０】
（削除）
【００８１】
復元制御情報出力部３３０は、復元条件導出部３２０において得られた復元制御情報を出力する。本実施例では、Ｓ０を復元可能な分散情報の組み合わせとしてｆ（３）とｆ（４），ｆ（７）とｆ（１２），ｆ（８）とｆ（９）、Ｓ１を復元可能な分散情報の組み合わせとしてｆ（１）とｆ（６），ｆ（２）とｆ（５），ｆ（３）とｆ（４）を出力する。
【００８２】
なお、本実施例は分散関数ｆ（ｘ）およびその復元制御情報の出力の方法および形式を規定するものではなく、画面出力やファイル出力の他に、インターネットなどの接続回線を介して他の装置に出力するようにしても良いし、また必要がなければ出力をしないようにしても良い。また、分散関数入力部３１０において分割情報Ｓ０、Ｓ１や乱数ｒ、素数ｐの値が入力されていた場合には、各分散情報の値も算出して出力するようにしても良い。
【００８３】
以上のように、本実施例における復元制御型秘密情報分散装置３００は，分散関数ｆ（ｘ）を入力として、分散関数ｆ（ｘ）により生成される秘密情報Ｓの分散情報について、特定の分割情報Ｓｔを復元可能とする特定のｘの組み合わせを求める事ができる。
【００８４】
なお、図２や図５で示した復元制御型秘密情報分散装置における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明装置を実現することができること、あるいは、図１で示したような処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、ＦＤ、ＭＯ、ＲＯＭ、メモリカード、ＣＤ、ＤＶＤ、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明の復元制御型秘密情報分散方法の処理フロー図である。
【図２】本発明の復元制御型秘密情報分散装置の実施例１の機能構成図である。
【図３】実施例１における生成した分散情報の例である。
【図４】実施例１における分散情報の組み合わせと復元情報の例である。
【図５】本発明の復元制御型秘密情報分散装置の実施例２の機能構成図である。
【符号の説明】
【００８６】
１００  復元制御型秘密情報分散装置
１１０  分散条件入力部
１２０  分散関数生成部
１３０  復元条件導出部
１４０  分散関数決定部
１５０  分散関数出力部
１６０  演算過程記憶部
１７０  復元条件記憶部
１８０  復元条件検索部
１９０  分散情報生成部
２００  分散情報出力部
３００  復元制御型秘密情報分散装置
３１０  分散関数入力部
３２０  復元条件導出部
３３０  復元制御情報出力部
３４０  演算過程記憶部
【図１】
0004623623.tif 000015
【図２】
0004623623.tif 000016
【図３】
0004623623.tif 000017
【図４】
0004623623.tif 000018
【図５】
0004623623.tif 000019