(57)【要約】【課題】秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管すること。【解決手段】トークン取得部１０２は、セキュリティチップ１０１がデータの暗号化および復号に用いる暗号鍵を復元する際に必要となるトークンを取得する。暗号化部１０３は、一時的に使用する一時暗号鍵によってトークンを暗号化し、暗号化トークンを生成する。符号化データ生成部１０４は、一時暗号鍵および暗号化トークンから符号化対象となる符号化データを生成する。分割部１０５は、符号化データを符号化用行列の列数に等しい数のデータブロックに分割する。符号化用行列記憶部１０６は、符号化用行列をあらかじめ記憶する。排他的論理和算出部１０７は、符号化用行列の各行の１の位置に従ってデータブロック間の排他的論理和を算出し、部分情報を生成する。【選択図】        図１
2008203369.tif 000002
【特許請求の範囲】
【請求項１】
秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、
行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供手段と、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、
前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、
前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段と
を有することを特徴とする符号化装置。
【請求項２】
前記生成手段は、
秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成することを特徴とする請求項１記載の符号化装置。
【請求項３】
前記出力手段は、
符号化用行列の各列にデータブロックを対応付け、行ごとの１の要素に対応するデータブロック間の排他的論理和を求めることを特徴とする請求項１記載の符号化装置。
【請求項４】
前記出力手段は、
符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力することを特徴とする請求項１記載の符号化装置。
【請求項５】
前記提供手段は、
あらかじめ所定の符号化用行列を記憶することを特徴とする請求項１記載の符号化装置。
【請求項６】
前記提供手段は、
前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含むことを特徴とする請求項１記載の符号化装置。
【請求項７】
前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成することを特徴とする請求項６記載の符号化装置。
【請求項８】
前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成することを特徴とする請求項６記載の符号化装置。
【請求項９】
前記生成手段は、
セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成することを特徴とする請求項１記載の符号化装置。
【請求項１０】
秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、
行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供工程と、
前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、
前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程と
を有することを特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化装置および符号化方法に関し、特に、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる符号化装置および符号化方法に関する。
【背景技術】
【０００２】
近年、例えばノートパソコンなどのコンピュータには、セキュリティチップと呼ばれるチップが搭載されることがある。セキュリティチップは、内部に固有の暗号鍵を有しており、暗号鍵によってハードディスクなどに記憶されるデータを自動的に暗号化し、第三者による盗用やウイルス感染などを防止している。すなわち、それぞれのセキュリティチップが有する暗号鍵は、外部から取得することは不可能となっているため、この暗号鍵によって暗号化されたデータが外部に持ち出されたとしても、他のコンピュータにおいてはデータを復号することができない。
【０００３】
このように、セキュリティチップは、堅固なセキュリティをユーザに提供する一方で、セキュリティチップが故障した場合には、正当なユーザであってもデータを復号することができなくなるという危険性を孕んでいる。そこで、緊急時にセキュリティチップの暗号鍵を復元するためのトークンが生成されるようになっているのが一般的である。トークンは、データサイズが小さく例えばＵＳＢ（Universal Serial Bus）メモリなどにも保存可能なファイルであり、セキュリティチップの故障時には、トークンが使用されることにより、セキュリティチップ内の暗号鍵が復元される。
【０００４】
したがって、セキュリティチップによってデータの安全性が確保されていても、暗号鍵復元用のトークンが第三者の手に渡ってしまうと、セキュリティチップ内の暗号鍵が復元されてしまうことになる。このため、例えばトークンを分割して、信頼できる複数の人に保管してもらったり、セキュリティチップを備えた複数のコンピュータに分散して記憶しておいたりするなどの対処が必要となる。
【０００５】
具体的には、例えば特許文献１に記載されたデータの暗号化・復号に用いられる一般的な秘密鍵と同様に、秘密鍵の再現に必要な条件をあらかじめ定めておき、複数の人に秘密鍵を分割して得られる部分情報を配布する。そして、秘密鍵を再現する際には、あらかじめ定めた再現条件が満たされる場合にのみ、部分情報から秘密鍵を再現する。また、例えば特許文献２に記載されたように、リードソロモン符号を用いて鍵を誤り訂正符号化し、生成された複数のシェア鍵（部分情報）を分散して保管するなどの方法もある。
【０００６】
【特許文献１】特開平９−５０２３６号公報
【特許文献２】特開２００３−３４８０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した鍵の分散保管においては、鍵の復元に多くの計算を要したり、鍵の部分情報が元の鍵と同サイズとなり保管する側の記憶容量を圧迫したりするという問題がある。すなわち、例えば特許文献１に記載された方法では、秘密鍵を再現する際に、剰余に関する高次連立合同式を解く必要があり、元の鍵と部分情報が同サイズであるとともに、演算処理量が大きくなる。また、特許文献２に記載された方法についても、誤り訂正符号としてリードソロモン符号を用いているため、演算処理量は大きい。
【０００８】
さらに、トークンや鍵のような秘密情報を部分情報に分割して分散保管する場合、すべての部分情報が揃わないと元の秘密情報を復元できなければ、たとえ緊急時であっても１つの部分情報が欠けていれば復元不可能となり柔軟性に乏しい。反対に、非常に少ない部分情報のみから元の秘密情報を復元できれば、安全性が確保されない。したがって、秘密情報から生成する部分情報の数や秘密情報の復元に必要な部分情報の数などを自由に設定できることが望まれる。
【０００９】
本発明はかかる点に鑑みてなされたものであり、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる符号化装置および符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供手段と、符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段とを有する構成を採る。
【００１１】
この構成によれば、秘密情報から符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックについて符号化用行列の各行に対応する排他的論理和を求めて部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【００１２】
また、本発明は、上記構成において、前記生成手段は、秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成する構成を採る。
【００１３】
この構成によれば、暗号化秘密情報と一時暗号鍵を結合して符号化データを生成するため、秘密情報の復元時に符号化データが得られれば、一時暗号鍵によって暗号化秘密情報を復号することができ、元の秘密情報を得ることができる。
【００１４】
また、本発明は、上記構成において、前記出力手段は、符号化用行列の各列にデータブロックを対応付け、行ごとの１の要素に対応するデータブロック間の排他的論理和を求める構成を採る。
【００１５】
この構成によれば、行ごとの１の要素に対応するデータブロック間の排他的論理和を求めるため、１つの部分情報には複数のデータブロックに関する情報が含まれ、効率良く秘密情報を符号化することができる。
【００１６】
また、本発明は、上記構成において、前記出力手段は、符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力する構成を採る。
【００１７】
この構成によれば、部分情報のヘッダ部が符号化用行列の行の各要素からなり、データ部がデータブロック間の排他的論理和からなるため、復号時には、複数の部分情報のヘッダ部から構成される行列を例えばガウスの消去法を用いて単位行列とすることにより、そのときのデータ部から各データブロックを得ることができる。
【００１８】
また、本発明は、上記構成において、前記提供手段は、あらかじめ所定の符号化用行列を記憶する構成を採る。
【００１９】
この構成によれば、あらかじめ所定の符号化用行列を記憶するため、符号化の際に、容易かつ迅速に符号化用行列を使用することができる。
【００２０】
また、本発明は、上記構成において、前記提供手段は、前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含む構成を採る。
【００２１】
この構成によれば、部分情報のための記憶容量に応じて符号化用行列を生成するため、部分情報を保管するコンピュータなどの記憶容量に適したデータ量の部分情報を生成することができる。
【００２２】
また、本発明は、上記構成において、前記符号化用行列生成手段は、部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成する構成を採る。
【００２３】
この構成によれば、複数の記憶装置の最小の記憶容量に合わせたデータ量の部分情報が出力されるような符号化用行列を生成するため、例えばコンピュータなどの記憶装置の記憶容量の空き具合に即した部分情報が生成され、生成された部分情報を確実に保管しておくことができる。
【００２４】
また、本発明は、上記構成において、前記符号化用行列生成手段は、部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成する構成を採る。
【００２５】
この構成によれば、複数の記憶装置全体が記憶する数の部分情報が出力されるような符号化用行列を生成するため、例えばコンピュータなどの記憶装置から記憶容量の通知を受け、それぞれの記憶装置に最大限記憶可能な部分情報を分配することができる。
【００２６】
また、本発明は、上記構成において、前記生成手段は、セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成する構成を採る。
【００２７】
この構成によれば、セキュリティチップの暗号鍵復元用のトークンから符号化データを生成するため、セキュリティチップの暗号鍵の安全性を確保することができるとともに、セキュリティチップの故障時などには、セキュリティチップの暗号鍵を復元することができる。
【００２８】
また、本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供工程と、前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程とを有するようにした。
【００２９】
この方法によれば、秘密情報から符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックについて符号化用行列の各行に対応する排他的論理和を求めて部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【発明の効果】
【００３０】
本発明によれば、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、以下においては、セキュリティチップ内の暗号鍵復元用のトークンを保管する際の例について説明するが、本発明は、通常のデータ暗号化用の暗号鍵を保管する場合などにも適用することができる。
【００３２】
（実施の形態１）
図１は、本発明の実施の形態１に係る符号化装置の要部構成を示すブロック図である。図１に示す符号化装置は、セキュリティチップ１０１に接続されており、セキュリティチップ１０１が使用する暗号鍵を復元するためのトークンの情報を含む部分情報を出力する。具体的には、図１に示す符号化装置は、トークン取得部１０２、暗号化部１０３、符号化データ生成部１０４、分割部１０５、符号化用行列記憶部１０６、および排他的論理和算出部１０７を有している。
【００３３】
トークン取得部１０２は、セキュリティチップ１０１がデータの暗号化および復号に用いる暗号鍵を復元する際に必要となるトークンを取得する。トークン取得部１０２は、セキュリティチップ１０１に新たにトークンを生成させても良いし、あらかじめ生成され記憶されていたトークンを取得しても良い。トークンは、例えば緊急時などにセキュリティチップ１０１内の暗号鍵を復元するためのファイルであり、比較的小サイズであるため、ＵＳＢメモリなどに記憶可能である。
【００３４】
暗号化部１０３は、トークン取得部１０２によって取得されたトークンを暗号化する。具体的には、暗号化部１０３は、例えば図２に示すように、一時的に使用する一時暗号鍵によってトークンを暗号化し、暗号化トークンを生成する。そして、暗号化部１０３は、得られた暗号化トークンを一時暗号鍵とともに符号化データ生成部１０４へ出力する。なお、暗号化部１０３が使用する一時暗号鍵は、セキュリティチップ１０１内に備えられた暗号鍵とは無関係のものであり、トークンの暗号化をするたびに新たな一時暗号鍵が使用される。
【００３５】
符号化データ生成部１０４は、一時暗号鍵および暗号化トークンから符号化対象となる符号化データを生成する。具体的には、符号化データ生成部１０４は、例えば図３に示すように、一時暗号鍵とこの一時暗号鍵を使用して暗号化された暗号化トークンとを結合し、符号化データを生成する。
【００３６】
分割部１０５は、符号化データを同サイズのデータブロックに分割する。このとき、分割部１０５は、符号化に用いられる符号化用行列の列数に等しい数のデータブロックに分割する。なお、分割部１０５は、データブロックのサイズを揃えるために、例えば符号化データにダミーデータを付加した上で分割しても良い。
【００３７】
符号化用行列記憶部１０６は、符号化データの符号化に用いる符号化用行列をあらかじめ記憶する。具体的には、符号化用行列記憶部１０６は、例えば図４に示すような符号化用行列を記憶している。
【００３８】
符号化用行列は、すべての要素が０または１からなっており、０および１はランダムに配置されている。ただし、完全に同一の行が存在しないように、０および１が配置されている。また、符号化用行列の行数は、符号化装置によって出力される部分情報の数に対応しており、符号化用行列の列数は、任意であるが多いほど復元の効率が良くなる。図４に示した符号化用行列を用いる場合には、符号化データが８（すなわち列数）個のデータブロックに分割され、１４（すなわち行数）個の部分情報が出力される。さらに、各列における１の要素の数は、冗長度（符号化データのデータ量に対する部分情報すべてを合計したデータ量の割合）から１を減算した値を列数に乗算した数以上となっている。
【００３９】
排他的論理和算出部１０７は、符号化用行列記憶部１０６から符号化用行列を読み出し、符号化用行列の各行の１の位置に従ってデータブロック間の排他的論理和を算出し、部分情報を生成する。すなわち、排他的論理和算出部１０７は、分割部１０５によって生成されたデータブロック各々に番号を付与し、符号化用行列の各行の１の位置に対応する番号のデータブロック間の排他的論理和を算出する。そして、排他的論理和算出部１０７は、符号化用行列の行の各要素をヘッダ部とし、この行に従って算出された排他的論理和をデータ部とした部分情報を生成する。このため、排他的論理和算出部１０７は、符号化用行列の行数に等しい部分情報を生成することになる。
【００４０】
なお、上記のような符号化をＲＰＳ（Random Parity Stream）符号化といい、本実施の形態においては、分割部１０５、符号化用行列記憶部１０６、および排他的論理和算出部１０７がＲＰＳ符号化部を構成している。
【００４１】
次いで、上記のように構成された符号化装置によるトークンの符号化について、図５に示すフロー図を参照しながら説明する。
【００４２】
本実施の形態においては、コンピュータ内のセキュリティチップ１０１が使用する暗号鍵を緊急時などに復元するために、暗号鍵復元用のトークンが生成される。このトークンは、トークン取得部１０２によって取得され（ステップＳ１０１）、暗号化部１０３へ出力される。上述したように、トークン取得部１０２は、セキュリティチップ１０１に新たにトークンを生成させて取得しても良いし、外部にあらかじめ記憶されているトークンを取得しても良い。
【００４３】
トークン取得部１０２から出力されたトークンは、暗号化部１０３によって一時暗号鍵が用いられることにより暗号化トークンとなる。すなわち、暗号化部１０３によって、トークンを暗号化するための一時的な暗号鍵が生成され、この一時暗号鍵によってトークンが暗号化される。そして、暗号化されて得られた暗号化トークンは、暗号化に用いられた一時暗号鍵とともに符号化データ生成部１０４へ出力され、符号化データ生成部１０４によって、一時暗号鍵と暗号化トークンが結合された符号化データが生成される（ステップＳ１０２）。
【００４４】
そして、符号化データは、分割部１０５によって符号化用行列の列数と同数のデータブロックに分割される（ステップＳ１０３）。すなわち、例えば図４に示す符号化用行列が使用される場合は、符号化データが８個のデータブロックに分割される。各データブロックは、排他的論理和算出部１０７へ出力され、排他的論理和算出部１０７によって符号化用行列記憶部１０６から符号化用行列が読み出されると、符号化用行列の各行の１の要素に対応するデータブロック間の排他的論理和が算出される（ステップＳ１０４）。すなわち、例えば図４に示す符号化用行列の最上段の行については、１番目、２番目、５番目、および７番目のデータブロック間の排他的論理和が算出される。算出された排他的論理和には、元のデータブロックの情報が含まれていることになる。
【００４５】
排他的論理和算出部１０７によってデータブロック間の排他的論理和が算出されると、この排他的論理和がデータ部とされ、排他的論理和に対応する符号化用行列の行がヘッダ部とされた部分情報が出力される（ステップＳ１０５）。したがって、排他的論理和算出部１０７からは、符号化用行列の行数と同数の部分情報が出力される。こうして出力された部分情報は、信頼できる複数の人などに分配されて保管される。また、各部分情報は、１つ以上のハードディスクやフラッシュメモリなどのリムーバブルメディアに保管されても良いし、ネットワーク経由で接続されたストレージに保管されても良い。さらに、他のセキュリティチップが備えられたコンピュータとの間で互いの部分情報を保管しあうようにしても良く、この場合には、部分情報にもセキュリティチップによる暗号化が施され、安全性をより向上することができる。
【００４６】
次に、本実施の形態に係るＲＰＳ符号化について、図６を参照しながら具体的な例を説明する。以下では、符号化用行列の列数が４である場合について説明する。
【００４７】
符号化データ生成部１０４によって一時暗号鍵および暗号化トークンを含む符号化データが生成されると、この符号化データは、分割部１０５によって分割される。分割部１０５は、符号化用行列記憶部１０６にあらかじめ記憶されている符号化用行列の列数と同数のデータブロックに符号化データを分割するため、ここでは図６に示すように、符号化データを４つのデータブロックに分割する。
【００４８】
そして、データブロックは、排他的論理和算出部１０７へ出力され、符号化用行列に従った排他的論理和が算出され、ＲＰＳ符号化が行われる。すなわち、例えば図６に示すように、符号化用行列の最上段の行が「１０１０」であれば、１番目のデータブロックと３番目のデータブロックとの排他的論理和が算出され、算出された排他的論理和にヘッダ部として「１０１０」が付加された部分情報が生成される。また、符号化用行列の上から２段目の行が「０１１０」であれば、２番目のデータブロックと３番目のデータブロックとの排他的論理和が算出され、算出された排他的論理和にヘッダ部として「０１１０」が付加された部分情報が生成される。
【００４９】
このように、ＲＰＳ符号化においては、データブロック間の排他的論理和を算出することで符号化が行われるため、演算処理量はそれほど大きくならないとともに、それぞれの部分情報のデータ量は、符号化データが分割されたデータブロックのサイズにヘッダ部のサイズを加えた程度である。このため、演算処理量とデータ量の双方を削減することができる。さらに、符号化用行列の列数や行数および１の要素の位置を調整することにより、部分情報の数やデータ量を柔軟に設定することができる。
【００５０】
また、ＲＰＳ符号化によって得られた部分情報から元の符号化データを得る復号時には、少なくとも符号化用行列の列数と同数の部分情報を集めて縦方向に並べる。そして、各部分情報のヘッダ部から構成される行列にガウスの消去法などを適用することにより、ヘッダ部を単位行列に変換する。ヘッダ部が単位行列となったときのデータ部は、符号化データが分割されて得られたデータブロックとなっており、データブロックを結合することにより、符号化データが得られる。この符号化データには、一時暗号鍵と暗号化トークンが含まれているため、一時暗号鍵によって暗号化トークンを復号することにより、セキュリティチップ１０１内の暗号鍵を復元するためのトークンが得られることになる。
【００５１】
以上のように、本実施の形態によれば、トークンを一時暗号鍵で暗号化して符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックから符号化用行列の各行に対応する排他的論理和を算出して符号化し、符号化用行列および排他的論理和を含む部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【００５２】
（実施の形態２）
本発明の実施の形態２の特徴は、同一のグループウェアを使用する複数のコンピュータに部分情報を分配する点である。
【００５３】
図７は、本実施の形態に係る符号化装置の要部構成を示すブロック図である。同図において、図１と同じ部分には同じ符号を付し、その説明を省略する。図７に示す符号化装置は、セキュリティチップ１０１に接続されており、セキュリティチップ１０１が使用する暗号鍵を復元するためのトークンの情報を含む部分情報をグループウェアへ出力する。具体的には、図７に示す符号化装置は、トークン取得部１０２、暗号化部１０３、符号化データ生成部１０４、符号化用行列生成部２０１、分割部２０２、および排他的論理和算出部１０７を有している。
【００５４】
符号化用行列生成部２０１は、グループウェアから通知される部分情報の分配割合に応じた符号化用行列を生成する。すなわち、符号化用行列生成部２０１は、部分情報のデータ量に応じて符号化用行列の列数を決定し、分配される部分情報の数に応じて符号化用行列の行数を決定する。具体的には、符号化用行列生成部２０１は、グループウェアから通知される部分情報のデータ量に基づいてデータブロックのデータ量を決定し、符号化データのデータ量をデータブロックのデータ量で除算して分割数を求め、この分割数を符号化用行列の列数とする。また、符号化用行列生成部２０１は、グループウェアから通知される部分情報の合計数を符号化用行列の行数とする。符号化用行列生成部２０１は、符号化用行列の列数および行数を決定すると、１の要素をランダムに配置するとともに、列数を分割部２０２へ通知する。
【００５５】
分割部２０２は、符号化用行列生成部２０１から符号化用行列の列数が通知されると、符号化データ生成部１０４によって生成された符号化データを符号化用行列の列数と同数のデータブロックに分割する。
【００５６】
本実施の形態においては、符号化用行列生成部２０１、分割部２０２、および排他的論理和算出部１０７がＲＰＳ符号化部を構成している。
【００５７】
一方、図７に示すグループウェアは、分配割合決定部３０１および部分情報分配部３０２を有している。
【００５８】
分配割合決定部３０１は、グループウェアを使用する複数のコンピュータそれぞれが保管可能な部分情報のデータ量を示す持分情報を取得し、各コンピュータに保管する部分情報の数を決定する。すなわち、分配割合決定部３０１は、各コンピュータから通知される持分情報から保管可能なデータ量の最小値を検出し、検出された最小値を部分情報のデータ量とする。そして、分配割合決定部３０１は、各コンピュータから通知される持分情報から各コンピュータが保管する部分情報の数を決定し、部分情報分配部３０２へ通知する。また、分配割合決定部３０１は、部分情報のデータ量および複数のコンピュータに分配する部分情報の合計数を符号化用行列生成部２０１へ通知する。
【００５９】
部分情報分配部３０２は、分配割合決定部３０１から通知されるコンピュータごとの部分情報の数に応じて、排他的論理和算出部１０７から出力される部分情報を各コンピュータへ分配する。
【００６０】
次いで、上記のように構成された符号化装置によるトークンの符号化について、図８に示すフロー図を参照しながら説明する。なお、同図において、図５と同じ部分には同じ符号を付す。
【００６１】
本実施の形態においても実施の形態１と同様に、コンピュータ内のセキュリティチップ１０１が使用する暗号鍵を緊急時などに復元するために、暗号鍵復元用のトークンが生成される。このトークンは、トークン取得部１０２によって取得され（ステップＳ１０１）、暗号化部１０３へ出力される。トークン取得部１０２は、セキュリティチップ１０１に新たにトークンを生成させて取得しても良いし、外部にあらかじめ記憶されているトークンを取得しても良い。
【００６２】
トークン取得部１０２から出力されたトークンは、暗号化部１０３によって一時暗号鍵が用いられることにより暗号化トークンとなる。すなわち、暗号化部１０３によって、トークンを暗号化するための一時的な暗号鍵が生成され、この一時暗号鍵によってトークンが暗号化される。そして、暗号化されて得られた暗号化トークンは、暗号化に用いられた一時暗号鍵とともに符号化データ生成部１０４へ出力され、符号化データ生成部１０４によって、一時暗号鍵と暗号化トークンが結合された符号化データが生成される（ステップＳ１０２）。
【００６３】
一方、複数のコンピュータが接続するグループウェアにおいては、分配割合決定部３０１によって、各コンピュータが部分情報として保管可能なデータ量を示す持分情報が収集され、データ量の最小値が部分情報のデータ量に決定される。そして、部分情報のデータ量および各コンピュータが保管する部分情報の合計数が符号化用行列生成部２０１へ通知される。符号化用行列生成部２０１では、部分情報のデータ量および部分情報の合計数から符号化用行列が生成される（ステップＳ２０１）。
【００６４】
すなわち、符号化用行列生成部２０１によって、部分情報のデータ量からデータブロックのデータ量が決定され、符号化データのデータ量がデータブロックのデータ量で除算されることにより、符号化データから得られるデータブロックの数が算出される。このデータブロックの数は、符号化用行列の列数となり、分割部２０２へ通知される。さらに、符号化用行列生成部２０１によって、部分情報の合計数が符号化用行列の行数とされ、１の要素がランダムに配置されることにより、符号化用行列が生成される。
【００６５】
分割部２０２に符号化用行列の列数が通知されると、分割部２０２によって、符号化データが符号化用行列の列数と同数のデータブロックに分割される（ステップＳ２０２）。各データブロックは、排他的論理和算出部１０７へ出力され、排他的論理和算出部１０７によって符号化用行列生成部２０１から符号化用行列が読み出されると、符号化用行列の各行の１の要素に対応するデータブロック間の排他的論理和が算出される（ステップＳ１０４）。
【００６６】
排他的論理和算出部１０７によってデータブロック間の排他的論理和が算出されると、この排他的論理和がデータ部とされ、排他的論理和に対応する符号化用行列の行がヘッダ部とされた部分情報が部分情報分配部３０２へ出力される。したがって、排他的論理和算出部１０７からは、符号化用行列の行数と同数の部分情報が出力される。上述したように、符号化用行列の行数は、各コンピュータから収集された持分情報に基づいて決定された部分情報の合計数に等しいため、これらの部分情報は、持分情報に応じて各コンピュータへ分配される（ステップＳ２０３）。すなわち、分配割合決定部３０１において決定された部分情報のデータ量から、各コンピュータの持分情報に応じてそれぞれのコンピュータへ分配する部分情報の数が決定され、この分配割合が部分情報分配部３０２へ通知される。そして、部分情報分配部３０２によって、排他的論理和算出部１０７から出力される部分情報が分配割合に従って各コンピュータへ分配される。
【００６７】
以上のように、本実施の形態によれば、同一のグループウェアを使用する複数のコンピュータから持分情報を収集し、持分情報に応じて部分情報のデータ量および各コンピュータへの部分情報の分配割合を決定する。そして、部分情報のデータ量および部分情報の合計数に適した符号化用行列を生成し、生成された符号化用行列を用いて符号化データを符号化し、得られた部分情報を持分情報から決定された分配割合に応じて各コンピュータへ分配する。このため、グループウェアを使用する複数のコンピュータの保管可能なデータ量に応じて動的に符号化用行列が生成され、それぞれのコンピュータの記憶容量に応じて部分情報を分配することができる。
【００６８】
なお、上記各実施の形態においては、符号化装置をセキュリティチップ１０１に接続するものとしたが、本発明の符号化装置は、例えば通常のデータを暗号化する暗号鍵を記憶するハードディスクに接続したり、その他のリムーバブルメディアに接続したりして、通常の暗号鍵をＲＰＳ符号化することも可能である。
【００６９】
（付記１）秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、
行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供手段と、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、
前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、
前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段と
を有することを特徴とする符号化装置。
【００７０】
（付記２）前記生成手段は、
秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成することを特徴とする付記１記載の符号化装置。
【００７１】
（付記３）前記出力手段は、
符号化用行列の各列にデータブロックを対応付け、行ごとの１の要素に対応するデータブロック間の排他的論理和を求めることを特徴とする付記１記載の符号化装置。
【００７２】
（付記４）前記出力手段は、
符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力することを特徴とする付記１記載の符号化装置。
【００７３】
（付記５）前記提供手段は、
あらかじめ所定の符号化用行列を記憶することを特徴とする付記１記載の符号化装置。
【００７４】
（付記６）前記提供手段は、
前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含むことを特徴とする付記１記載の符号化装置。
【００７５】
（付記７）前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成することを特徴とする付記６記載の符号化装置。
【００７６】
（付記８）前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成することを特徴とする付記６記載の符号化装置。
【００７７】
（付記９）前記生成手段は、
セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成することを特徴とする付記１記載の符号化装置。
【００７８】
（付記１０）秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、
行数および列数が２以上であり、各要素に０または１が配置された符号化用行列を提供する提供工程と、
前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、
前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程と
を有することを特徴とする符号化方法。
【産業上の利用可能性】
【００７９】
本発明は、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管する場合に適用することができる。
【図面の簡単な説明】
【００８０】
【図１】実施の形態１に係る符号化装置の要部構成を示すブロック図である。
【図２】実施の形態１に係るトークンの暗号化を説明する図である。
【図３】実施の形態１に係る符号化データの構成を示す図である。
【図４】実施の形態１に係る符号化用行列の一例を示す図である。
【図５】実施の形態１に係る符号化装置の動作を示すフロー図である。
【図６】実施の形態１に係るＲＰＳ符号化の具体例を示す図である。
【図７】実施の形態２に係る符号化装置の要部構成を示すブロック図である。
【図８】実施の形態２に係る符号化装置の動作を示すフロー図である。
【符号の説明】
【００８１】
１０２  トークン取得部
１０３  暗号化部
１０４  符号化データ生成部
１０５、２０２  分割部
１０６  符号化用行列記憶部
１０７  排他的論理和算出部
２０１  符号化用行列生成部
３０１  分配割合決定部
３０２  部分情報分配部
【図１】
2008203369.tif 000003
【図２】
2008203369.tif 000004
【図３】
2008203369.tif 000005
【図４】
2008203369.tif 000006
【図５】
2008203369.tif 000007
【図６】
2008203369.tif 000008
【図７】
2008203369.tif 000009
【図８】
2008203369.tif 000010