(57)【要約】  【課題】  秘密情報を分散保管する際に、分散情報の保管位置の索引付けなしに記録することにより、情報の漏洩に対する安全性を高め、且つ、利用者には簡便な復元を可能にする。  【解決手段】  秘密情報保管装置１００は、秘密情報の入力を受け付ける手段１２０、入力された秘密情報を分散符号化した後の分散情報の記録位置を決定する手段１３０、入力された秘密情報と記録位置に関する位置情報を組み合わせて特定の分散関数により分散符号化して、外部に出力するための外部分散情報と、全ての秘密情報に共通な固定分散情報と、実際に記録保管する記録分散情報とを生成する手段１４０、生成した記録分散情報を外部記憶装置等の所定の記録位置に記録する手段１５０、生成した外部分散情報を外部に出力する手段１６０を備える。【選択図】        図３
2005167794.tif 000002
【特許請求の範囲】
【請求項１】
秘密情報を分散符号化して保管する秘密情報保管方法であって、
秘密情報の入力を受け付けるステップと、
入力された秘密情報を分散符号化した後の分散情報の記録位置を決定するステップと、
入力された秘密情報と記録位置に関する位置情報を組み合わせて特定の分散関数により分散符号化して、外部に出力するための外部分散情報と、全ての秘密情報に共通な固定分散情報と、実際に記録保管する記録分散情報とを生成するステップと、
生成した記録分散情報を所定の記録位置に記録するステップと、
生成した外部分散情報を外部に出力するステップと、
を有することを特徴とする秘密情報保管方法。
【請求項２】
請求項１に記載の秘密情報保管方法により分散保管した秘密情報を復元する秘密情報復元方法であって、
外部分散情報の入力を受け付けるステップと、
入力された外部分散情報と内部に記憶した固定分散情報から特定の復元関数により記録分散情報の記録位置に関する位置情報を復元するステップと、
復元した位置情報に基づいて記録分散情報を取得するステップと、
入力された外部分散情報、内部に記憶した固定分散情報、取得した記録分散情報から特定の復元関数により秘密情報を復元するステップと、
復元した秘密情報を出力するステップと、
を有することを特徴とする秘密情報復元方法。
【請求項３】
秘密情報を分散符号化して保管する秘密情報保管装置であって、
秘密情報の入力を受け付ける秘密情報入力手段と、
入力された秘密情報を分散符号化した後の分散情報の記録位置を決定する記録位置決定手段と、
入力された秘密情報と記録位置に関する位置情報を組み合わせて特定の分散関数により分散符号化して、外部に出力するための外部分散情報と、全ての秘密情報に共通な固定分散情報と、実際に記録保管する記録分散情報とを生成する秘密情報分散手段と、
生成した記録分散情報を所定の記録位置に記録する分散情報記録手段と、
生成した外部分散情報を外部に出力する分散情報出力手段と、
を備えることを特徴とする秘密情報保管装置。
【請求項４】
請求項３に記載の秘密情報保管装置であって、記録位置決定手段は複数の記録分散情報の記録位置を決定し、秘密情報分散手段は複数の記録分散情報を生成することを特徴とする秘密情報保管装置。
【請求項５】
請求項３もしくは４に記載の秘密情報保管装置であって、秘密情報分散手段は複数の外部分散情報を生成することを特徴とする秘密情報保管装置。
【請求項６】
請求項３から５のいずれか１項に記載の秘密情報保管装置により分散保管した秘密情報を復元する秘密情報復元装置であって、
外部分散情報の入力を受け付ける分散情報入力手段と、
入力された外部分散情報と内部に記憶した固定分散情報から特定の復元関数により記録分散情報の記録位置に関する位置情報を復元する位置情報復元手段と、
復元した位置情報に基づいて記録分散情報を取得する分散情報取得手段と、
入力された外部分散情報、内部に記憶した固定分散情報、取得した記録分散情報から特定の復元関数により秘密情報を復元する秘密情報復元手段と、
復元した秘密情報を出力する秘密情報出力手段と、
を備えることを特徴とする秘密情報復元装置。
【請求項７】
請求項１に記載の秘密情報保管方法の処理ステップあるいは請求項３から５のいずれか１項に記載の秘密情報保管装置の処理機能をコンピュータで実行させるための秘密情報保管プログラム。
【請求項８】
請求項２に記載の秘密情報復元方法の処理ステップあるいは請求項６に記載の秘密情報復元装置の処理機能をコンピュータで実行させるための秘密情報復元プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードや鍵情報などの秘密情報を複数のデータベースなどに分散保管し、これらの内幾つか以上の分散された情報により元の秘密情報を復元可能とする秘密分散法を用いた情報保管技術に関する。
【背景技術】
【０００２】
パスワードや暗号鍵情報、個人情報といった各種の秘密情報を保管する場合、情報の漏洩に対する安全性の確保が重要な課題となる。従来の保管技術では、例えば一つの情報保管装置で保管する技術として保管対象の情報を暗号化して保管する暗号技術や保管対象の情報を取得できる利用者を制限する認証技術などがあるが、情報保管装置自体のハッキング、暗号の解読などにより情報が不正に取得される可能性があり、情報の漏洩に対する安全性は高いとは言えない。
【０００３】
特に、情報保管装置自体がハッキングされた場合、情報の記録位置がシーケンシャルであったり、または索引付けにより記録位置が明記してあったりすると、情報の対応付けが容易であり、簡単に情報が漏洩してしまう。例えば、情報の漏洩に対する安全性を高めるため、個人情報を保管する際に情報を分割して記録装置上の無作為な位置に保存する方法があるが（特許文献１）、情報の復元のためには記録位置に関する索引付けが必要である。したがって、索引付け情報が漏洩してしまうと、必然的に秘密情報が漏洩する可能性が高くなってしまう。
【０００４】
【特許文献１】特開２００１−２６５７７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の情報保管技術では、情報を記録する位置が予め定まっていたり、全くの無作為であっても記録位置を示した索引付けが必要であるために、情報保管装置自体がハッキングされた場合に容易に情報の対応付けを取り、元の秘密情報を復元する事ができてしまうという問題がある。
【０００６】
本発明は、従来の上述のような問題に鑑みてなされたもので、秘密情報を分散保管する際に、分散情報の保管位置の索引付けなしに記録する事により、情報の漏洩に対する安全性が高く、なおかつ利用者自身には簡便な復元を可能とする秘密情報保管方法及びその装置、秘密情報復元方法及びその装置、秘密情報保管プログラム並びに秘密情報復元プログラムを実現することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では、本出願人が先に出願した特願２００３−３６６５３８号に記載の復元制御型秘密情報分散法を用いる。これは、基本的には、秘密情報Ｓについて、秘密情報Ｓの完全な復元に必要な分散情報の最低数である２以上の整数の閾値ｋ、閾値ｋに対して秘密情報Ｓの部分的な復元を許容する分散情報の不足数を決定する２以上ｋ以下の整数の分割数ｄと、秘密情報Ｓのｄ個の分割情報（部分情報）Ｓ０，Ｓ１，…，Ｓｄ−１などの秘密情報Ｓを分散するための条件を入力し、
最大の分割情報Ｓｔ（０≦ｔ≦ｄ−１）よりも大きな素数ｐと、素数ｐよりも小さく０でない（ｋ−ｄ個）の乱数ｒｉ（１≦１≦ｋ−ｄ）と、（ｋ（ｋ−１）／２）個の乱数ａｊ（１≦ｊ≦ｋ（ｋ−１）／２）を生成して、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋…＋Ｓｄ−１（ｘ−ａ（ｄ一１）（ｄ−２）／２＋１）（ｘ−ａ（ｄ−１）（ｄ−２）／２＋２）…（ｘ−ａ（ｄ−１）（ｄ−２）／２＋ｄ−１）＋ｒ１（ｘ−ａｄ（ｄ−１）／２＋１）（ｘ−ａｄ（ｄ−１）／２＋２）…（ｘ−ａｄ（ｄ−１）／２＋ｄ）＋…＋ｒｋ−ｄ（ｘ−ａ（ｋ−１）（ｋ−２）／２＋１）（ｘ−ａ（ｋ−１）（ｋ−２）／２＋２）…（ｘ−ａ（ｋ−１）（ｋ−２）／２＋ｋ−１）      mod  ｐ
の式で表現される秘密情報Ｓの分散関数ｆ（ｘ）を生成するものである。
【０００８】
本復元制御型秘密情報分散法は、従来の秘密情報分散技術である（ｋ，ｎ）閾値秘密分散法および（ｄ，ｋ，ｎ）閾値秘密分散法を拡張した方法で、ｎ個の分散情報の内、任意のｋ個の分散情報がそろえば、ｆ（ｘ）に関する連立方程式を解くことにより元の秘密情報Ｓを復元できるが、任意の（ｋ−ｄ）個までの分散情報がそろってもｆ（ｘ）に関する連立方程式を解くことはできないため、元の秘密情報Ｓは復元できないという特徴をもつ。ただし、情報を分散させる分散関数を特定の形式に規定することにより、任意の（ｋ−ｄ＋１）個から（ｋ−１）個までの分散情報が特定の組み合わせによりそろった場合にはｆ（ｘ）に関する連立方程式から特定の分割情報（部分情報）Ｓ０，Ｓ１，…，Ｓｄ−１を求めることができ、元の秘密情報Ｓを部分的に復元することができる。
【０００９】
なお、（ｋ，ｎ）閾値秘密分散法および（ｄ，ｋ，ｎ）閾値秘密分散法について、詳しくは、それそれ「Ａ．Ｓhamir，“Ｈow  to  Ｓhare  a  Ｓecret”，Ｃommun．Of  ＡＣＭ，Ｖol．２２，Ｎo．１１，ｐｐ．６１２−６１３，１９７９」と「Ｇ．Ｒ．Ｂlakley，Ｃ．Ｍeadows，“Ｓecurity  of  ramp  schemes”，Ｐroc．of  Ｃrypto'８４，Ｌecure  Ｎotes  on  Ｃomput．Ｓci，１９６，pp２４２−２６８，１９８４」に述べられている。
【００１０】
例えばｋ＝３、ｄ＝２とした場合、上記の分散関数ｆ（ｘ）は、
ｆ（ｘ）＝Ｓ０＋Ｓ１（ｘ−ａ１）＋ｒ（ｘ−ａ２）（ｘ−ａ３）
で表現され、任意の２個の分散情報ＷｘとＷｘ＋ｂ（ｘ＞０、ｂ＞０）についての連立方程式は以下のような行列式で表現できる。
【数１】
2005167794.tif 000003
【００１１】
行列式の左項を掃き出し法により変形すると、
【数２】
2005167794.tif 000004
となり、ａｌ，ａ２，ａ３の値によっては−ｘ２＋（２ａ１−ｂ）＋ａ１ｂ−ａ１ａ２−ａ１ａ３＋ａ２ａ３＝０，もしくは２ｘ＋ｂ−ａ２−ａ３＝０を満たすｘとｂがある場合に、連立方程式から分割情報（部分情報）のＳ０のみ、もしくはＳ１のみを求めることができる。
【００１２】
＜秘密情報保管＞
本発明による秘密情報の分散保管方法の原理を説明する処理フローを図１に示す。分散の対象とする秘密情報の入力を受け付けると（ステップ０１）、秘密情報を所定の数の部分情報に分割して符号化し（ステップ０２）、秘密情報を分散符号化した結果である分散情報の記録位置を示す位置情報を決定する（ステップ０３）。その後、秘密情報と位置情報を組み合わせて先の復元制御型秘密分散法に基づく特定の分散関数により分散符号化して、全ての秘密情報に共通な固定分散情報と、記録するための記録分散情報と、外部に出力するための外部分散情報を生成する（ステップ０４）。そして、ステップ０３において決定した所定の記録位置に記録分散情報を記録し（ステップ０５）、外部分散情報を位置情報を復元するための鍵情報として外部に出力する（ステップ０６）。
【００１３】
本発明の秘密情報保管方法によれば、秘密情報を分散符号化した結果である分散情報の記録位置を示した位置情報と秘密情報自体とを組み合わせて分散符号化し、記録分散情報を任意の記録位置に記録し、なおかつ外部に出力する外部分散情報と全ての秘密情報に共通な国定分散情報から記録分散情報の位置情報が復元可能であるような、秘密情報の分散保管が実現できる。これにより、分散符号化した秘密情報の記録位置を索引として持つ事なく、秘密情報を安全に保管する事が可能となる。
【００１４】
本発明による秘密情報保管装置は、秘密情報の入力を受け付ける秘密情報入力手段と、入力された秘密情報を分散符号化した後の分散情報の記録位置を決定する記録位置決定手段と、入力された秘密情報と記録位置に関する位置情報を組み合わせて復元制御型秘密情報分散法の特定の分散関数により分散符号化して、外部に出力するための外部分散情報と、全ての秘密情報に共通な固定分散情報と、実際に記録保管する記録分散情報とを生成する秘密情報分散手段と、生成した記録分散情報を所定の記録位置に記録保管する分散情報記録手段と、生成した外部分散情報を外部に出力する分散情報出力手段とを備える事を基本構成とする。
【００１５】
記録位置決定手段は複数の記録分散情報の記録位置を決定し、秘密情報分散手段は複数の記録分散情報を生成することを特徴とする。秘密情報の復元に必要な、記録分散情報を冗長に生成する事で、幾つかの記録分散情報が紛失した場合でも秘密情報を復元する事が可能となる。これにより、分散符号化した秘密情報の記録位置を索引として持つ事なく、かつ記録した分散情報の一部が紛失した場合でも元の秘密情報が復元可能であるような、秘密情報の安全な保管が可能となる。
【００１６】
さらに、秘密情報分散手段は複数の外部分散情報を生成することを特徴とする。これにより、秘密情報の復元に必要な、記録分散情報の位置情報を復元するための外部分散情報を複数生成する事が可能となる。したがって、分散符号化した秘密情報の記録位置を索引として持つ事なく、かつ複数の利用者が異なる外部分散情報を元に同じ秘密情報を復元可能であるような、秘密情報の安全な保管が可能となる。
【００１７】
＜秘密情報復元＞
本発明による秘密情報の復元方法の原理を説明する処理フローを図２に示す。復元の対象とする秘密情報に関連した外部分散情報の入力を受け付けると（ステップ１１）、外部分散情報と内部に記憶した全ての秘密情報に共通な固定分散情報から演算処理によって秘密情報の部分情報を復元し（ステップ１２）、復元した部分情報から記録分散情報を記録した位置を示す位置情報を抽出し（ステップ１３）、抽出した位置情報が示す記録位置に記録された記録分散情報を取得する（ステップ１４）。その後、入力された外部分散情報、内部に記憶した固定分散情報、取得した記録分散情報から演算処理によって秘密情報の全ての部分情報を復元する事で、秘密情報を完全に復元し（ステップ１５）、復元した秘密情報を出力する（ステップ１６）。
【００１８】
本発明の秘密情報復元方法によれば、復元の対象とする秘密情報に関連した外部分散情報と、全ての秘密情報に共通な固定分散情報を元にして、秘密情報を分散符号化した分散情報の記録位置を示した位置情報を復元する事が可能であり、さらに、復元した位置情報に基づいて取得した記録分散情報と外部分散情報、周定分散情報を元にして秘密情報自体を復元可能である。これにより、分散符号化した秘密情報の記録位置を索引として持つ事なく、秘密情報を確実に復元する事が可能となる。
【００１９】
本発明による秘密情報復元装置は、外部分散情報の入力を受け付ける分散情報入力手段と、入力された外部分散情報と内部に記憶した固定分散情報から特定の復元関数により記録分散情報の記録位置に関する位置情報を復元する位置情報復元手段と、復元した位置情報に基づいて記録分散情報を取得する分散情報取得手段と、入力された外部分散情報、内部に記憶した固定分散情報、取得した記録分散情報から特定の復元関数により秘密情報を復元する秘密情報復元手段と、復元した秘密情報を出力する秘密情報出力手段とを備える事を基本構成とする。
【発明の効果】
【００２０】
本発明によれば、秘密情報保管装置において秘密情報Ｓを複数の分散情報に分散符号化し、その内の幾つかを位置を装置内に記録する事なく外部記憶装置上の無作為な記録位置に記録する事ができ、したがって秘密情報を安全に分散保管できる。また、利用者は秘密情報復元装置において、出力された分散情報を鍵として他の分散情報の記録位置を復元できるため、装置内に位置情報を記録する事なく、容易に秘密情報Ｓを復元する事ができる。以上により、安全かつ簡便な秘密情報保管装置および秘密情報復元装置が実現できる。
【発明を実施するための最良の形態】
【００２１】
図３に、本発明の一実施形態における秘密情報保管装置１００および秘密情報復元装置２００、外部記憶装置３００による機能構成例を示す。秘密情報保管装置１００は、分散制御部１１０、秘密情報入力部１２０、記録位置決定部１３０、秘密情報分散部１４０、分散情報記録部１５０、分敵情報出力部１６０から構成され、秘密情報復元装置２００は復元制御部２１０、分散情報入力部２２０、位置情報復元部２３０、分散情報取得部２４０、秘密情報復元部２５０、秘密情報出力部２６０から構成される。また、外部記憶装置３００は任意の外部記憶媒体とし、秘密情報保管装置１００および秘密情報復元装置２００と接続されているものとする。
【００２２】
秘密情報保管装置１００では、秘密情報入力部１２０が保管の対象とする秘密情報の入力を受け付け、記録位置決定部１３０が、入力された秘密情報を分散符号化した後の分散情報の記録位置を決定し、秘密情報分散部１４０が、入力された秘密情報と記録位置に関する位置情報を組み合わせて復元制御型秘密情報分散法の特定分散関数により分散符号化して、外部に出力するための外部分散情報と、全ての秘密情報に共通な固定分散情報と、実際に記録保管する記録分散情報とを生成し、分散情報記録部１５０が、生成された記録分散情報を所定の記録位置に記録し、分散情報出力部１６０が、生成された外部分散情報を外部に出力する。分散制御部１１０は、これら各部１２０〜１６０の動作を制御する。
【００２３】
秘密情報復元装置２００では、分散情報入力部２２０が外部分散情報の入力を受け付け、位置情報復元部２３０が、入力された外部分散情報と内部に記憶した固定分散情報から特定の復元関数により記録分散情報の記録位置に関する位置情報を復元し、分散情報取得部２４０が、復元された位置情報に基づいて記録分散情報を取得し、秘密情報復元部２５０が、入力された外部分散情報、内部に記憶した固定分散情報、取得した記録分散情報から特定の復元関数により秘密情報を復元し、分散情報出力部２６０が復元された秘密情報を出力する。復元制御部２１０は、これら各部２２０〜２６０の動作を制御する。
【００２４】
なお、図３は本発明による秘密情報保管装置および秘密情報復元装置の構成を限定するものではない。秘密情報保管装置１００、秘密情報復元装置２００および外部記憶装置３００を１つの装置として実現しても良いし、それぞれ複数の装置からなる構成例を実現する事もできる。また、各装置は別々の場所で実現してよく、例えばインターネットなどの通信回線を介して各装置が接続しているように構成する事もできる。
【実施例】
【００２５】
以下の実施例においては、秘密情報保管装置１００は、複数の利用者の個人情報を秘密情報Ｓとして分散符号化して外部記憶装置３００に分散保管するとともに、秘密情報を復元するための鍵となる分散情報を利用者に対して画面出力するものとする。秘密情報復元装置２００は、利用者が該分散情報を入力する事により外部記憶装置３００に分散保管した分散情報から元の秘密情報Ｓすなわち個人情報を復元して画面出力するものとする。
【００２６】
＜秘密情報保管＞
以下では、分散の対象とする秘密情報Ｓを個人のユーザ名、生年月日・性別として、秘密情報Ｓを外部に出力する外部分散情報Ｏ、全ての秘密情報に対して共通な内部に記憶した固定分散情報Ｆ、および外部記憶装置３００に記録する記録分散情報Ｗ１とＷ２の都合４つの分散情報に分散符号化するとして、本実施例における秘密情報の分散保管について説明する。
【００２７】
秘密情報保管装置１００において、秘密情報入力部１２０は、秘密情報Ｓとして各ユーザの個人情報の入力を受け付け、符号化して記憶する。受け付けた個人情報は例えば内部メモリなどに一時的に記録するのが望ましい。本実施例ではユーザＡの個人情報として、ユーザ名「ｈｉｒｏｔａ」、生年月日「Ｓ４５０８１７」と性別「Ｍ」が入力されたものとする。これをシフトＪＩＳコードにより符号化し、符号化情報Ｄ１として１６進文字列「６８６９７２６Ｆ７４６１」、符号化情報Ｄ２として１６進文字列「５３３４３５３０３８３１３７４Ｄ」を得る。図４は、本実施例におけるユーザＡからユーザＤの個人情報の入力および符号化の例である。
【００２８】
なお、本発明は秘密情報入力部１２０において秘密情報Ｓとして入力を受け付ける情報の種類や内容を特に規定するものではない。数値情報、文字列など符号化する事で分散関数による演算が可能であればどのような情報でも良く、また文書や画像データなどのマルチメディアなどを対象としても良い。また、本実施例は情報の入力の方法および形式を規定するものではない。キーボード入力やファイル入力の他に、インターネットなどの接続回線を介して他の装置から入力するようにしても構わない。
【００２９】
また、本実施例は各情報の符号化の方法および符号化した結果を特に規定するものではない。本実施例では単に入力情報のシフトＪＩＳコード化による１６進表現を符号化の方法とし、符号化の結果を１６進文字列としたが、他のコード表や独自のコード、符号化の方法を使って符号化しても良いし、符号化の結果として１６進文字列に限定せず、０と１によるビット列、１０進表記を使っても構わない。さらに、符号化した結果を暗号化する事で情報の安全性を高める事も考えられる。
【００３０】
次に、記録位置決定部１３０は、秘密情報Ｓから生成する記録分散情報Ｗ１、Ｗ２の外部記憶装置３００における記録位置を乱数発生器を使って無作為に決定する。ここでは、外部記憶装置３００における記録位置を示す位置情報Ｌが上位２バイト、下位２バイトの系４バイトからなる１６進表記で表現されるものとし、記録分散情報Ｗ１の記録位置をＸ＝０００１、Ｙ＝００３０と決定したものとする。記録分散情報Ｗ１の位置情報Ｌ１はＬ１＝０００１００３０となる。一方、記録分散情報Ｗ２の記録位置はｘ＝００００、Ｙ＝ＦＦＦＯと決定したものとし、位置情報Ｌ２はＬ２＝００００ＦＦＦＯとする。決定した位置情報Ｌ１およびＬ２は一時的に内部メモリなどに記憶する。
【００３１】
なお、本実施例は、外部記憶装置３００における記録の形式や記録位置の表現方法を特に規定するものではない。本実施例では記録の形式をテーブル形式とし、記録位置情報を上位２バイト、下位２バイトの１６進文字列で表現されるものとして記述したが、例えば記録の形式をリスト形式にして、記録位置情報をハッシュ関数により一意に決定されるハッシュ値としても構わないし、リレーショナルＤＢなどのＤＢ形式にして、多重的なインデックスを記録位置情報としても良い。また、位置情報をファイル名とするファイル出力によって記録分散情報を記録するようにもできる。
【００３２】
また、本実施例は記録位置決定部１３０において決定する記録位置の数や決定方法を規定するものでもない。本実施例では決定する位置情報を同じ外部記憶装置上で２つとしたが、複数の異なる外部記憶装置上での記録位置を決定したり、また記録分散情報の数に合わせて記録位置の数を変更しても良い。記録位置の決定方法も本実施例のように乱数発生器を使って無作為に決定する以外に、入力された秘密情報のハッシュ値を取ったりするなどの方法が考えられる。また、複数の記録分散情報の記録位置が重複しないように、一度決定した記録位置は管理する事が望ましい。
【００３３】
次に、秘密情報分散部１４０は、秘密情報Ｓおよび位置情報Ｌと、固定分散情報Ｆから、特殊な分散関数を使って外部記憶装置３００に記録するための記録分散情報Ｗ１、Ｗ２と外部に出力するための外部分散情報Ｏを作成する。
【００３４】
本実施例における分散関数は、部分情報をＳ１、Ｓ２、Ｓ３の３つとし、都合４つの分散情報を生成する事から、以下の式で表現される分散関数ｆ（ｘ）を用いるものとする。
【００３５】
ｆ(ｘ)＝Ｓ１＋Ｓ２(ｘ−15)＋Ｓ３(ｘ−9)(ｘ−11)＋ｒ(ｘ−9)(ｘ−9)(ｘ−13)
（ｍｏｄ  ｐ）
本分散関数ｆ（ｘ）は、ｘに７を代入して算出したｆ（７）とｘに１２を代入して算出したｆ（１２）とから部分情報Ｓ１が算出可能であって、それ以外の、例えばｘに１０を代入して算出したｆ（１０）とｆ（７）あるいはｆ（１２）からはどの部分情報も算出可能でないように、秘密情報Ｓを分散符号化する分散関数である。ただし、本分散関数により生成した分散情報は４つ集める事で元の秘密情報Ｓが完全に復元できる。このような特殊な分散関数ｆ（ｘ）は、先の特願２００３−３６６５３８に記載の復元制御型秘密情報分散法により求める事ができ、本実施例に記載の式に制限されない。
【００３６】
上記の式におけるｘは記録分散情報Ｗおよび外部分散情報Ｏを生成するための所定の情報番号、ｒはＳ１、Ｓ２、Ｓ３および固定分散情報Ｆから決定される変数文字列、ｐはＳ１、Ｓ２、Ｓ３よりも大きな固定文字列である。固定文字列ｐは、全てのユーザの入力に対して共通で、本実施例においては８バイトの１６進文字列「ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＤＦ」を用いる。固定文字列ｐは本来は素数である事が望ましいが、本実施例では簡便化のため素数ではない文字列を使用する。本実施例で使用する固定文字列ｐ＝ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＤＦは最小の素因数が８２７である合成数である。なお、固定文字列ｐのサイズに関しては、想定されるＳ１、Ｓ２およびＳ３のサイズよりも大きいものである必要があるため、例えば秘密情報入力部１２０において入力を受け付ける文字数を制限して、その制限値からサイズを算出して特定するようにしても良い。
【００３７】
まず、秘密情報分散部１４０は、内部メモリに記憶した、秘密情報Ｓの符号化情報Ｄ１、Ｄ２と位置情報Ｌ１、Ｌ２から、部分情報Ｓ１、Ｓ２およびＳ３を生成する。ここでは位置情報Ｌ１とＬ２を結合したものを部分情報Ｓ１、符号化情報Ｄ１を部分情報Ｓ２、符号化情報Ｄ２をＳ３としたものとする。すなわち、本実施例において、ユーザＡの秘密情報Ｓに対する部分情報は、Ｓ１＝０００１００３０００００ＦＦＦ０、Ｓ２＝６８６９７２６Ｆ７４６１、Ｓ３＝５３３４３５３０３８３１３７４Ｄとなる。本実施例におけるユーザＡからユーザＤの位置情報および部分情報の例を図５に示す。
【００３８】
なお、本実施例は部分情報の構成数および構成方法を特に規定するものではない。本実施例では部分情報をＳ１、Ｓ２、Ｓ３の３つとし、位置情報Ｌ１、Ｌ２を部分情報Ｓ１、符号化情報Ｄ１、Ｄ２をそれぞれ部分情報Ｓ２、Ｓ３として構成したが、部分情報Ｓ１が秘密情報Ｓの一部すなわち符号化情報Ｄ１、Ｄ２の一部を含むようにしても良い。また、本実施例は、部分情報Ｓ１、Ｓ２、Ｓ３が含む情報を位置情報Ｌと秘密情報Ｓの符号化情報Ｄに限定するものでもない。例えは、部分情報Ｓ１は位置情報Ｌの他に、例えばユーザにより入力された暗証番号などの特定の文字列やユーザが秘密情報Ｓを入力した時刻情報などを含むようにしても良い。
【００３９】
次に、秘密情報分散部１４０は、部分情報Ｓ１、Ｓ２、Ｓ３および内部で記憶した固定分散情報Ｆから、変数文字列ｒを決定する。固定分散情報Ｆは、入力される全ての秘密情報Ｓから分散符号化される分散情報として常に固定値を取り、分散関数ｆ（ｘ）においてｘに１２を代入して算出した値であるものと規定する。本実施例においては、固定分散情報ＦはＦ＝１Ａ２Ｂ３Ｃ４Ｄ５Ｅ６Ｆ７０８１とする。このような固定分散情報Ｆは、外部に漏洩しないよう装置内において安全に記憶されている事が望ましい。
【００４０】
変数文字列ｒの決定は、固定分散情報Ｆを計算するための分散関数ｆ（ｘ）にｘ＝１２を代入した式、ｆ（１２）＝Ｓ１−３Ｓ２＋３Ｓ３−９ｒ＝Ｆ（ｍｏｄｐ）から逆に演算して、ｒ＝Ｓ１−３Ｓ２＋３Ｓ３−Ｆ（ｍｏｄｐ）にそれぞれＳ１、Ｓ２、Ｓ３、Ｆおよびｐを代入する事で算出できる。例えばユーザＡの秘密情報Ｓに対しては、ｒ＝０００１００３０００００ＦＦＦ０−３×６８６９７２６Ｆ７４６１＋３×５３３４３５３０３８３１３７４Ｄ−１Ａ２Ｂ３Ｃ４Ｄ５Ｅ６Ｆ７０８１（ｍｏｄＦＦＦＦＦＦＦＦＦＦＦＦＦＦＤＦ）を計算する事で、ｒ＝１８Ｄ３ＡＦ５Ｂ７０５０Ｃ２９４を得る。
【００４１】
次に、秘密情報分散部１４０は、部分情報Ｓ１、Ｓ２、Ｓ３および算出した変数文字列ｒを分散関数ｆ（ｘ）に代入して、秘密情報Ｓを分散符号化した記録分散情報Ｗ１、Ｗ２と外部分散情報Ｏを生成する。本実施例における分散関数の特性から、外部分散情報０は情報番号としてｘに７を代入してＯ＝ｆ（７）、記録分散情報はＷ１＝ｆ（１０）、Ｗ２＝ｆ（１４）を用いるものとする。したがって、ユーザＡの秘密情報Ｓに対しては、Ｏ＝ｆ（７）＝Ｓ１−８Ｓ２＋８Ｓ３−２４ｒ（ｍｏｄｐ）＝４５Ｃ６Ｆ５Ｄ３Ａ６７ＣＤ９７０、Ｗ１＝ｆ（１０）＝Ｓ１−５Ｓ２−３Ｓ３−３ｒ（ｍｏｄｐ）＝６２４ＦＢ２ＤＥ３ＡＢＯ３ＡＥ１、Ｗ２＝ｆ（１４）＝Ｓ１−Ｓ２＋１５Ｓ３＋２５ｒ（ｍｏｄｐ）＝４ＣＢＢＤ５８７ＤＯ５６ＣＡ６Ｄを演算処理により算出する。図６は、本実施例におけるユーザＡからユーザＤの変数文字列および分散情報の生成例である。
【００４２】
秘密情報分散部１４０において、以上の演算の過程および演算の結果得られる各分散情報は例えば内部メモリなどに記憶するものとする。ただし、外部分散情報Ｏ、記録分散情報Ｗ１、Ｗ２を一旦生成した後は、秘密情報Ｓ、部分情報Ｓ１、Ｓ２、Ｓ３および乱数文字列ｒの値を破棄する事が望ましい。
【００４３】
分散情報記録部１５０は、生成した記録分散情報Ｗ１、Ｗ２を、位置情報Ｌ１、Ｌ２が示す外部記憶装置３００上の所定の記録位置に記録する。例えば、ユーザＡの記録分散情報Ｗ１は位置情報Ｌ１＝０００１００３０より、外部記憶装置３００上のＸ＝０００１、Ｙ＝００３０の記録位置に記録される。同様にして、記録分散情報Ｗ２は位置情報Ｌ２＝０００１ＦＦＦＯより、Ｘ＝０００１、Ｙ＝ＦＦＦＯの記録位置に記録される。図７は、本実施例におけるユーザＡからユーザＤの記録分散情報の記録例である。
【００４４】
なお、本実施例は、分散情報記録部１５０における記録分散情報の記録のためのプロトコルやそのフォーマットを特に規定するものではない。例えば位置情報を外部記憶装置３００上の物理的あるいは論理的な位置で指定したり、Ｌ１とＬ２の間の関係を相対位置として指定したりするなどして、記録分散情報の記録の効率をあげる手段が考えられる。また、外部記憶装置３００がインターネットなどの通信回線を介して接続されている場合に、記録分散情報を暗号化して送信するなどの手段により安全性を高める事も考えられる。また、本実施例においては記録分散情報が記録されていない個所を空白で表現しているが、実際には記録分散情報の有無を秘匿するため、全ての欄に乱数値が埋まっている事が望ましい。
【００４５】
分散情報出力部１６０は、生成した外部分散情報Ｏを外部に出力する。本実施例では、ユーザＡの外部分散情報として「４５Ｃ６Ｆ５Ｄ３Ａ６７ＣＤ９７０」を画面上に出力するものとする。外部分散情報の出力をもって、分散制御部１１０は各部１２０〜１６０の一連の動作制御を終了する。
【００４６】
なお、本実施例は分散情報出力部１６０において出力する情報の形式および出力の方法を制限するものではない。画面出力以外に外部分散情報をユーザの所有する外部記憶媒体にファイル出力したり、またトワークを介して他の装置に出力するなどが考えられる。外部分散情報を暗号化して出力するなどさらに安全性を高める手段も可能である。
【００４７】
また、本実施例では秘密情報分散部１４０において一旦全ての分散情報として外部分散情報Ｏ記録分散情報Ｗ１、Ｗ２を生成した後に、分散情報記録部１５０において外部記憶装置３００に記録し、分散情報出力部１６０において外部に出力するものとして記述しているが、秘密情報分散部１４０と分散情報記録部１５０、分散情報出力部１６０が連動して、分散情報を１つ生成する度に外部記憶装置３００に記録あるいは外部に出力するようにしても良い。
【００４８】
＜秘密情報復元＞
以下に、本実施例において分散保管した秘密情報の復元について説明する。
秘密情報復元装置２００において、分散情報入力部２２０は、まず、ユーザの所有する外部分散情報を入力として受け付け、内部メモリなどに記憶する。本実施例では、ユーザＢの秘密情報Ｓについて、外部分散情報Ｏ＝Ｆ０７４Ｆ６０８ＦＢＤ２２Ｅ４３が入力されたものとする。
【００４９】
なお、本実施例は分散情報入力部２２０における入力の内容および方法を特に規定するものではない。本実施例では外部分散情報のみを入力として受け付けるように記述しているが、ユーザの認証情報としてユーザ名や暗証番号などの入力を受け付けるようにしても構わない。また入力の手段としてキーボード入力やファイル入力の他に、インターネットなどの接続回線を介して他の装置からの入力を受け付けるようにする事も可能である。
【００５０】
位置情報復元部２３０は、入力された外部分散情報Ｏと内部に記憶した固定分散情報Ｆから、外部記憶装置３００に記録された記録分散情報Ｗ１、Ｗ２の位置情報を復元する。本実施例における分散関数は外部分散情報Ｏ＝ｆ（７）と固定分散情報Ｆ＝ｆ（１２）から部分情報Ｓ１が復元可能であるような特殊な分散関数である。部分情報Ｓ１の復元は以下のようにして行う。
【００５１】
まず、本実施例における分散関数が
ｆ(ｘ)＝Ｓ１＋Ｓ２(ｘ−１５)＋Ｓ３(ｘ−９)(ｘ−１１)＋ｒ(ｘ−９)(ｘ−9)(ｘ−１３)                                        （ｍｏｄ  ｐ）
である事から、２個の分散情報に関する連立方程式は次のような行列式で表現できる。
【数３】
2005167794.tif 000005
【００５２】
したがって、２個の分散情報から部分情報Ｓ１、Ｓ２およびＳ３、変数文字列ｒを求めるための行列式を次のように表す事ができる。
【数４】
2005167794.tif 000006
【００５３】
位置情報復元部２３０は、部分情報Ｓ１を求める場合には、上記の行列式においてｘ＝７、ｙ＝１２、Ｗｘ＝Ｏ＝Ｆ０７４Ｆ６０８ＦＢＤ２２Ｅ４３、Ｗｙ＝Ｆ＝１Ａ２Ｂ３Ｃ４Ｄ５Ｅ６Ｆ７０８１を代入して行列演算を行う事で、演算結果としてＳ１＝ＦＦＦＦ００１００００１０００１０を得る。なお、外部分散情報Ｏと固定分散情報Ｆの組み合わせは部分情報Ｓ１を算出するものであって、Ｓ２、Ｓ３およびｒについては演算結果を得る事はできない。位置情報復元部２３０は、演算結果として得られた部分情報Ｓ１から位置情報Ｌ１、Ｌ２を抽出し、内部メモリなどに記憶する。本実施例では、それぞれＬ１＝ＦＦＦＦ００１０、Ｌ２＝０００１００１０を得て内部メモリなどに記憶する。
【００５４】
なお、本実施例は、外部分散情報Ｏと固定分散情報Ｆからの部分情報Ｓ１の算出を行列演算により行っているが、他の手段により算出を行うようにしても良い。例えば、分散関数ｆ（ｘ）の式から、Ｏ＝ｆ（７）＝Ｓ１−８Ｓ２＋８Ｓ３−２４ｒ（ｍｏｄｐ）、Ｆ＝ｆ（１２）＝Ｓ１−３Ｓ２＋３Ｓ３−９ｒ（ｍｏｄｐ）であり、この連立方程式からＳ１＝｛８×Ｆ−３×Ｏ｝÷５というＳ１を求めるための計算式を得る事ができる。したがって、位置情報復元部２３０において、外部分散情報Ｏと固定分散情報Ｆから上記の式により簡便にＳ１を算出するように実装する事も可能である。しかしながら、分散関数ｆ（ｘ）を変更したり、分散情報の組み合わせを変更可能とするために、位置情報復元部２３０は行列演算を行うものとして実装する事が望ましい。
【００５５】
分散情報取得部２４０は、位置情報復元部２３０において復元された位置情報Ｌ１、Ｌ２をもとに外部記憶装置３００に記録された記録分散情報Ｗ１、Ｗ２を取得する。例えば、Ｌ１＝ＦＦＦＦ００１０より、記録分散情報Ｗ１は外部記憶装置３００におけるＸ＝ＦＦＦＦ、Ｙ＝００１８の位置にあり、これを取得してＷ１＝Ｂ７Ａ５４ＡＤ８Ｆ９８５０１５Ｃを得る。同様にしてＬ２＝０００１００１０より、外部記憶装置３００からＷ２＝３０４６Ａ７ＤＥＥ３Ｆ１０ＤＣ８を得る。取得した記録分散情報Ｗ１、Ｗ２は内部メモリなどに記憶する。
【００５６】
なお、本実施例は、分散情報取得部２４０における記録分散情報の取得のためのプロトコルやそのフォーマットを特に規定するものではない。例えば位置情報を外部記憶装置３００上の物理的あるいは論理的な位置で指定したり、Ｌ１とＬ２の間の関係を相対位置として指定したりするなどして、記録分散情報の取得の効率をあげる手段が考えられる。また、外部記憶装置３００がインターネットなどの通信回線を介して接続されている場合に、暗号化した記録分散情報を受信するなどの手段により安全性を高める事も考えられる。
【００５７】
秘密情報復元部２５０は、取得した記録分散情報Ｗ１、Ｗ２および外部分散情報Ｏ、固定分散情報Ｆから部分情報Ｓ２およびＳ３、すなわち元の秘密情報Ｓを完全に復元する。情報の復元は以下のようにして行う。
【００５８】
まず、本実施例における分散関数が
ｆ(ｘ)＝Ｓ１＋Ｓ２(ｘ−15)＋Ｓ３(ｘ−9)(ｘ−11)＋ｒ(ｘ−9)(ｘ−9)(ｘ−13)
（ｍｏｄ  ｐ）
であり、４個の分散情報がそれぞれＯ＝ｆ（７）、Ｆ＝ｆ（１２）、Ｗ１＝ｆ（１０）、Ｗ２＝ｆ（１４）により算出されている事から、ｘ＝７、ｙ＝１２、Ｚ＝１０、Ｗ＝１４として、分散情報に関する次のような連立方程式が行列式で表現できる。
【数５】
2005167794.tif 000007
【００５９】
したがって、４個の分散情報から部分情報Ｓ１、Ｓ２、Ｓ３および変数文字列ｒを求めるための行列式を次のように表す事ができる。
【数６】
2005167794.tif 000008
【００６０】
例えば、ユーザＢの秘密情報Ｓの復元にあたっては、Ｏ＝Ｆ０７４Ｆ６０８ＦＢＤ２２Ｅ４３、Ｆ＝１Ａ２Ｂ３Ｃ４Ｄ５Ｅ６Ｆ７０８１、Ｗ１＝Ｂ７Ａ５４ＡＤ８Ｆ９８５０１５Ｃ、Ｗ２＝３０４６Ａ７ＤＥＥ３Ｆ１ＯＤＣ８を代入して行列演算を行い、その結果としてＳ１＝ＦＦＦＦ００１００００１００１０、Ｓ２＝００６５６Ｅ６４６Ｆ７５、Ｓ３＝５３３４３９３０３６３２３３４Ｄを得る事ができる。秘密情報復元部２５０は、演算の過程および演算結果を内部メモリなどに記憶する。
【００６１】
なお、本実施例において、各分散情報からのＳ１、Ｓ２、Ｓ３の算出を行列演算により行っているが、他の手段により算出を行うようにしても良い。例えば、上記に示した行列式から、次のような式を得る事ができる。
Ｓ１＝（−３×Ｏ＋８×Ｆ）÷５（ｍｏｄｐ）
Ｓ２＝（−１０４×Ｏ＋２９４×Ｆ−１７５×Ｗ１−１５×Ｗ２）÷８４０（ｍｏｄｐ）
Ｓ３＝（４×Ｏ−７×Ｗ１＋３×Ｗ２）÷８４（ｍｏｄｐ）
【００６２】
したがって、秘密情報復元部２５０において、各分散情報Ｏ、Ｆ、Ｗ１、Ｗ２から上記の式により簡便にＳ１、Ｓ２、Ｓ３を復元できるように実装する事も可能である。しかしながら、分散関数ｆ（ｘ）を変更したり、分散情報の組み合わせを変更可能とするために、秘密情報復元部２５０は行列演算によりこれらの値を求めるように実装する事が望ましい。
【００６３】
秘密情報出力部２６０は、秘密情報復元部２５０において復元した秘密情報Ｓあるいはその部分情報部分Ｓ２ないしはＳ３を、復号して出力する。本実施例では、Ｓ２＝００６５６Ｅ６４６Ｆ７５、Ｓ３＝５３３４３９３０３６３２３３４Ｄである事から、秘密情報復元部２５０は、ユーザ名：ｅｎｄｏｕ、生年月日・性別：Ｓ４９０６２３・Ｍを結果として画面上に出力する。秘密情報の出力をもって、復元制御部２１０は一連の動作を終了する。
【００６４】
なお、本実施例は秘密情報出力部２６０において出力する情報の形式および出力の方法を制限するものではない。画面出力やファイル出力以外に、ネットワークを介して他の装置に出力するなどが考えられる。
【００６５】
以上のように、本実施例における秘密情報保管装置１００では、個人の秘密情報Ｓを所定の固定分散情報Ｆを含む４つの分散情報に分散符号化し、その内、記録分散情報Ｗ１とＷ２を外部記憶装置（情報保管装置）３００上の無作為な記録位置に記録し、記録位置を装置内に保存する事なく、記録位置を復元するために必要な外部分散情報Ｏを外部に出力する。秘密情報復元装置２００では、特定の個人の秘密情報Ｓに対し、記録位置を装置内に保存する事なく、外部分散情報Ｏを入力として受け付けて所定の固定分散情報Ｆとともに演算し、記録分散情報Ｗ１とＷ２の外部記憶装置（情報保管装置）３００における記録位置を復元し、各分散情報を取得して秘密情報Ｓを復元する。
【００６６】
秘密情報保管装置１００において生成した各分散情報は、その内２つが外部記憶装置上の無作為な記録位置に記録され、４つの分散情報を集めないと元の秘密情報Ｓを完全に復元する事はできない。分散情報の１つはユーザ自身が所有し、装置内に記憶された固定の分散情報と揃って初めて残りの２つの分散情報の記録位置が復元されて取得可能となるため、情報が安全に分散保管されており、例えば秘密情報保管装置から不正に情報が取得された場合でも元の秘密情報Ｓや部分情報Ｓ１、Ｓ２、Ｓ３は復元できず、したがって情報の漏洩に対する安全性が高いと言える。
【００６７】
なお、図３で示した秘密情報補間装置１００や秘密情報復元装置２００における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図１や図２で示した処理手順をコンピュータのプログラムで構成し、そのプログラム（秘密情報補間プログラム、秘密情報復元プログラム）をコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、ＦＤ、ＭＯ、ＲＯＭ、メモリカード、ＣＤ、ＤＶＤ、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【図面の簡単な説明】
【００６８】
【図１】本発明の秘密情報保管方法の処理フロー図である。
【図２】本発明の秘密情報復元方法の処理フロー図である。
【図３】本発明の一実施形態の全体的構成図である。
【図４】秘密情報の入力と符号化例である。
【図５】位置情報と部分情報の一例である。
【図６】分散情報の生成例である。
【図７】記録分散情報の記録例である。
【符号の説明】
【００６９】
１００  秘密情報保管装置
１１０  分散制御部
１２０  分散情報入力部
１３０  記録位置決定部
１４０  秘密情報分散部
１５０  分散情報記録部
１６０  分散情報出力部
２００  秘密情報復元装置
２１０  復元制御部
２２０  分散情報入力部
２３０  位置情報復元部
２４０  分散情報取得部
２５０  秘密情報復元部
２６０  秘密情報出力部
３００  外部記憶装置
【図１】
2005167794.tif 000009
【図２】
2005167794.tif 000010
【図３】
2005167794.tif 000011
【図４】
2005167794.tif 000012
【図５】
2005167794.tif 000013
【図６】
2005167794.tif 000014
【図７】
2005167794.tif 000015