説明

符号化装置および符号化方法

【課題】秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管すること。
【解決手段】トークン取得部102は、セキュリティチップ101がデータの暗号化および復号に用いる暗号鍵を復元する際に必要となるトークンを取得する。暗号化部103は、一時的に使用する一時暗号鍵によってトークンを暗号化し、暗号化トークンを生成する。符号化データ生成部104は、一時暗号鍵および暗号化トークンから符号化対象となる符号化データを生成する。分割部105は、符号化データを符号化用行列の列数に等しい数のデータブロックに分割する。符号化用行列記憶部106は、符号化用行列をあらかじめ記憶する。排他的論理和算出部107は、符号化用行列の各行の1の位置に従ってデータブロック間の排他的論理和を算出し、部分情報を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化装置および符号化方法に関し、特に、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる符号化装置および符号化方法に関する。
【背景技術】
【0002】
近年、例えばノートパソコンなどのコンピュータには、セキュリティチップと呼ばれるチップが搭載されることがある。セキュリティチップは、内部に固有の暗号鍵を有しており、暗号鍵によってハードディスクなどに記憶されるデータを自動的に暗号化し、第三者による盗用やウイルス感染などを防止している。すなわち、それぞれのセキュリティチップが有する暗号鍵は、外部から取得することは不可能となっているため、この暗号鍵によって暗号化されたデータが外部に持ち出されたとしても、他のコンピュータにおいてはデータを復号することができない。
【0003】
このように、セキュリティチップは、堅固なセキュリティをユーザに提供する一方で、セキュリティチップが故障した場合には、正当なユーザであってもデータを復号することができなくなるという危険性を孕んでいる。そこで、緊急時にセキュリティチップの暗号鍵を復元するためのトークンが生成されるようになっているのが一般的である。トークンは、データサイズが小さく例えばUSB(Universal Serial Bus)メモリなどにも保存可能なファイルであり、セキュリティチップの故障時には、トークンが使用されることにより、セキュリティチップ内の暗号鍵が復元される。
【0004】
したがって、セキュリティチップによってデータの安全性が確保されていても、暗号鍵復元用のトークンが第三者の手に渡ってしまうと、セキュリティチップ内の暗号鍵が復元されてしまうことになる。このため、例えばトークンを分割して、信頼できる複数の人に保管してもらったり、セキュリティチップを備えた複数のコンピュータに分散して記憶しておいたりするなどの対処が必要となる。
【0005】
具体的には、例えば特許文献1に記載されたデータの暗号化・復号に用いられる一般的な秘密鍵と同様に、秘密鍵の再現に必要な条件をあらかじめ定めておき、複数の人に秘密鍵を分割して得られる部分情報を配布する。そして、秘密鍵を再現する際には、あらかじめ定めた再現条件が満たされる場合にのみ、部分情報から秘密鍵を再現する。また、例えば特許文献2に記載されたように、リードソロモン符号を用いて鍵を誤り訂正符号化し、生成された複数のシェア鍵(部分情報)を分散して保管するなどの方法もある。
【0006】
【特許文献1】特開平9−50236号公報
【特許文献2】特開2003−348065号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した鍵の分散保管においては、鍵の復元に多くの計算を要したり、鍵の部分情報が元の鍵と同サイズとなり保管する側の記憶容量を圧迫したりするという問題がある。すなわち、例えば特許文献1に記載された方法では、秘密鍵を再現する際に、剰余に関する高次連立合同式を解く必要があり、元の鍵と部分情報が同サイズであるとともに、演算処理量が大きくなる。また、特許文献2に記載された方法についても、誤り訂正符号としてリードソロモン符号を用いているため、演算処理量は大きい。
【0008】
さらに、トークンや鍵のような秘密情報を部分情報に分割して分散保管する場合、すべての部分情報が揃わないと元の秘密情報を復元できなければ、たとえ緊急時であっても1つの部分情報が欠けていれば復元不可能となり柔軟性に乏しい。反対に、非常に少ない部分情報のみから元の秘密情報を復元できれば、安全性が確保されない。したがって、秘密情報から生成する部分情報の数や秘密情報の復元に必要な部分情報の数などを自由に設定できることが望まれる。
【0009】
本発明はかかる点に鑑みてなされたものであり、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる符号化装置および符号化方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供手段と、符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段とを有する構成を採る。
【0011】
この構成によれば、秘密情報から符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックについて符号化用行列の各行に対応する排他的論理和を求めて部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【0012】
また、本発明は、上記構成において、前記生成手段は、秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成する構成を採る。
【0013】
この構成によれば、暗号化秘密情報と一時暗号鍵を結合して符号化データを生成するため、秘密情報の復元時に符号化データが得られれば、一時暗号鍵によって暗号化秘密情報を復号することができ、元の秘密情報を得ることができる。
【0014】
また、本発明は、上記構成において、前記出力手段は、符号化用行列の各列にデータブロックを対応付け、行ごとの1の要素に対応するデータブロック間の排他的論理和を求める構成を採る。
【0015】
この構成によれば、行ごとの1の要素に対応するデータブロック間の排他的論理和を求めるため、1つの部分情報には複数のデータブロックに関する情報が含まれ、効率良く秘密情報を符号化することができる。
【0016】
また、本発明は、上記構成において、前記出力手段は、符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力する構成を採る。
【0017】
この構成によれば、部分情報のヘッダ部が符号化用行列の行の各要素からなり、データ部がデータブロック間の排他的論理和からなるため、復号時には、複数の部分情報のヘッダ部から構成される行列を例えばガウスの消去法を用いて単位行列とすることにより、そのときのデータ部から各データブロックを得ることができる。
【0018】
また、本発明は、上記構成において、前記提供手段は、あらかじめ所定の符号化用行列を記憶する構成を採る。
【0019】
この構成によれば、あらかじめ所定の符号化用行列を記憶するため、符号化の際に、容易かつ迅速に符号化用行列を使用することができる。
【0020】
また、本発明は、上記構成において、前記提供手段は、前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含む構成を採る。
【0021】
この構成によれば、部分情報のための記憶容量に応じて符号化用行列を生成するため、部分情報を保管するコンピュータなどの記憶容量に適したデータ量の部分情報を生成することができる。
【0022】
また、本発明は、上記構成において、前記符号化用行列生成手段は、部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成する構成を採る。
【0023】
この構成によれば、複数の記憶装置の最小の記憶容量に合わせたデータ量の部分情報が出力されるような符号化用行列を生成するため、例えばコンピュータなどの記憶装置の記憶容量の空き具合に即した部分情報が生成され、生成された部分情報を確実に保管しておくことができる。
【0024】
また、本発明は、上記構成において、前記符号化用行列生成手段は、部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成する構成を採る。
【0025】
この構成によれば、複数の記憶装置全体が記憶する数の部分情報が出力されるような符号化用行列を生成するため、例えばコンピュータなどの記憶装置から記憶容量の通知を受け、それぞれの記憶装置に最大限記憶可能な部分情報を分配することができる。
【0026】
また、本発明は、上記構成において、前記生成手段は、セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成する構成を採る。
【0027】
この構成によれば、セキュリティチップの暗号鍵復元用のトークンから符号化データを生成するため、セキュリティチップの暗号鍵の安全性を確保することができるとともに、セキュリティチップの故障時などには、セキュリティチップの暗号鍵を復元することができる。
【0028】
また、本発明は、秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供工程と、前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程とを有するようにした。
【0029】
この方法によれば、秘密情報から符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックについて符号化用行列の各行に対応する排他的論理和を求めて部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【発明の効果】
【0030】
本発明によれば、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【発明を実施するための最良の形態】
【0031】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、以下においては、セキュリティチップ内の暗号鍵復元用のトークンを保管する際の例について説明するが、本発明は、通常のデータ暗号化用の暗号鍵を保管する場合などにも適用することができる。
【0032】
(実施の形態1)
図1は、本発明の実施の形態1に係る符号化装置の要部構成を示すブロック図である。図1に示す符号化装置は、セキュリティチップ101に接続されており、セキュリティチップ101が使用する暗号鍵を復元するためのトークンの情報を含む部分情報を出力する。具体的には、図1に示す符号化装置は、トークン取得部102、暗号化部103、符号化データ生成部104、分割部105、符号化用行列記憶部106、および排他的論理和算出部107を有している。
【0033】
トークン取得部102は、セキュリティチップ101がデータの暗号化および復号に用いる暗号鍵を復元する際に必要となるトークンを取得する。トークン取得部102は、セキュリティチップ101に新たにトークンを生成させても良いし、あらかじめ生成され記憶されていたトークンを取得しても良い。トークンは、例えば緊急時などにセキュリティチップ101内の暗号鍵を復元するためのファイルであり、比較的小サイズであるため、USBメモリなどに記憶可能である。
【0034】
暗号化部103は、トークン取得部102によって取得されたトークンを暗号化する。具体的には、暗号化部103は、例えば図2に示すように、一時的に使用する一時暗号鍵によってトークンを暗号化し、暗号化トークンを生成する。そして、暗号化部103は、得られた暗号化トークンを一時暗号鍵とともに符号化データ生成部104へ出力する。なお、暗号化部103が使用する一時暗号鍵は、セキュリティチップ101内に備えられた暗号鍵とは無関係のものであり、トークンの暗号化をするたびに新たな一時暗号鍵が使用される。
【0035】
符号化データ生成部104は、一時暗号鍵および暗号化トークンから符号化対象となる符号化データを生成する。具体的には、符号化データ生成部104は、例えば図3に示すように、一時暗号鍵とこの一時暗号鍵を使用して暗号化された暗号化トークンとを結合し、符号化データを生成する。
【0036】
分割部105は、符号化データを同サイズのデータブロックに分割する。このとき、分割部105は、符号化に用いられる符号化用行列の列数に等しい数のデータブロックに分割する。なお、分割部105は、データブロックのサイズを揃えるために、例えば符号化データにダミーデータを付加した上で分割しても良い。
【0037】
符号化用行列記憶部106は、符号化データの符号化に用いる符号化用行列をあらかじめ記憶する。具体的には、符号化用行列記憶部106は、例えば図4に示すような符号化用行列を記憶している。
【0038】
符号化用行列は、すべての要素が0または1からなっており、0および1はランダムに配置されている。ただし、完全に同一の行が存在しないように、0および1が配置されている。また、符号化用行列の行数は、符号化装置によって出力される部分情報の数に対応しており、符号化用行列の列数は、任意であるが多いほど復元の効率が良くなる。図4に示した符号化用行列を用いる場合には、符号化データが8(すなわち列数)個のデータブロックに分割され、14(すなわち行数)個の部分情報が出力される。さらに、各列における1の要素の数は、冗長度(符号化データのデータ量に対する部分情報すべてを合計したデータ量の割合)から1を減算した値を列数に乗算した数以上となっている。
【0039】
排他的論理和算出部107は、符号化用行列記憶部106から符号化用行列を読み出し、符号化用行列の各行の1の位置に従ってデータブロック間の排他的論理和を算出し、部分情報を生成する。すなわち、排他的論理和算出部107は、分割部105によって生成されたデータブロック各々に番号を付与し、符号化用行列の各行の1の位置に対応する番号のデータブロック間の排他的論理和を算出する。そして、排他的論理和算出部107は、符号化用行列の行の各要素をヘッダ部とし、この行に従って算出された排他的論理和をデータ部とした部分情報を生成する。このため、排他的論理和算出部107は、符号化用行列の行数に等しい部分情報を生成することになる。
【0040】
なお、上記のような符号化をRPS(Random Parity Stream)符号化といい、本実施の形態においては、分割部105、符号化用行列記憶部106、および排他的論理和算出部107がRPS符号化部を構成している。
【0041】
次いで、上記のように構成された符号化装置によるトークンの符号化について、図5に示すフロー図を参照しながら説明する。
【0042】
本実施の形態においては、コンピュータ内のセキュリティチップ101が使用する暗号鍵を緊急時などに復元するために、暗号鍵復元用のトークンが生成される。このトークンは、トークン取得部102によって取得され(ステップS101)、暗号化部103へ出力される。上述したように、トークン取得部102は、セキュリティチップ101に新たにトークンを生成させて取得しても良いし、外部にあらかじめ記憶されているトークンを取得しても良い。
【0043】
トークン取得部102から出力されたトークンは、暗号化部103によって一時暗号鍵が用いられることにより暗号化トークンとなる。すなわち、暗号化部103によって、トークンを暗号化するための一時的な暗号鍵が生成され、この一時暗号鍵によってトークンが暗号化される。そして、暗号化されて得られた暗号化トークンは、暗号化に用いられた一時暗号鍵とともに符号化データ生成部104へ出力され、符号化データ生成部104によって、一時暗号鍵と暗号化トークンが結合された符号化データが生成される(ステップS102)。
【0044】
そして、符号化データは、分割部105によって符号化用行列の列数と同数のデータブロックに分割される(ステップS103)。すなわち、例えば図4に示す符号化用行列が使用される場合は、符号化データが8個のデータブロックに分割される。各データブロックは、排他的論理和算出部107へ出力され、排他的論理和算出部107によって符号化用行列記憶部106から符号化用行列が読み出されると、符号化用行列の各行の1の要素に対応するデータブロック間の排他的論理和が算出される(ステップS104)。すなわち、例えば図4に示す符号化用行列の最上段の行については、1番目、2番目、5番目、および7番目のデータブロック間の排他的論理和が算出される。算出された排他的論理和には、元のデータブロックの情報が含まれていることになる。
【0045】
排他的論理和算出部107によってデータブロック間の排他的論理和が算出されると、この排他的論理和がデータ部とされ、排他的論理和に対応する符号化用行列の行がヘッダ部とされた部分情報が出力される(ステップS105)。したがって、排他的論理和算出部107からは、符号化用行列の行数と同数の部分情報が出力される。こうして出力された部分情報は、信頼できる複数の人などに分配されて保管される。また、各部分情報は、1つ以上のハードディスクやフラッシュメモリなどのリムーバブルメディアに保管されても良いし、ネットワーク経由で接続されたストレージに保管されても良い。さらに、他のセキュリティチップが備えられたコンピュータとの間で互いの部分情報を保管しあうようにしても良く、この場合には、部分情報にもセキュリティチップによる暗号化が施され、安全性をより向上することができる。
【0046】
次に、本実施の形態に係るRPS符号化について、図6を参照しながら具体的な例を説明する。以下では、符号化用行列の列数が4である場合について説明する。
【0047】
符号化データ生成部104によって一時暗号鍵および暗号化トークンを含む符号化データが生成されると、この符号化データは、分割部105によって分割される。分割部105は、符号化用行列記憶部106にあらかじめ記憶されている符号化用行列の列数と同数のデータブロックに符号化データを分割するため、ここでは図6に示すように、符号化データを4つのデータブロックに分割する。
【0048】
そして、データブロックは、排他的論理和算出部107へ出力され、符号化用行列に従った排他的論理和が算出され、RPS符号化が行われる。すなわち、例えば図6に示すように、符号化用行列の最上段の行が「1010」であれば、1番目のデータブロックと3番目のデータブロックとの排他的論理和が算出され、算出された排他的論理和にヘッダ部として「1010」が付加された部分情報が生成される。また、符号化用行列の上から2段目の行が「0110」であれば、2番目のデータブロックと3番目のデータブロックとの排他的論理和が算出され、算出された排他的論理和にヘッダ部として「0110」が付加された部分情報が生成される。
【0049】
このように、RPS符号化においては、データブロック間の排他的論理和を算出することで符号化が行われるため、演算処理量はそれほど大きくならないとともに、それぞれの部分情報のデータ量は、符号化データが分割されたデータブロックのサイズにヘッダ部のサイズを加えた程度である。このため、演算処理量とデータ量の双方を削減することができる。さらに、符号化用行列の列数や行数および1の要素の位置を調整することにより、部分情報の数やデータ量を柔軟に設定することができる。
【0050】
また、RPS符号化によって得られた部分情報から元の符号化データを得る復号時には、少なくとも符号化用行列の列数と同数の部分情報を集めて縦方向に並べる。そして、各部分情報のヘッダ部から構成される行列にガウスの消去法などを適用することにより、ヘッダ部を単位行列に変換する。ヘッダ部が単位行列となったときのデータ部は、符号化データが分割されて得られたデータブロックとなっており、データブロックを結合することにより、符号化データが得られる。この符号化データには、一時暗号鍵と暗号化トークンが含まれているため、一時暗号鍵によって暗号化トークンを復号することにより、セキュリティチップ101内の暗号鍵を復元するためのトークンが得られることになる。
【0051】
以上のように、本実施の形態によれば、トークンを一時暗号鍵で暗号化して符号化データを生成し、符号化データを符号化用行列の列数と同数のデータブロックに分割し、データブロックから符号化用行列の各行に対応する排他的論理和を算出して符号化し、符号化用行列および排他的論理和を含む部分情報を出力する。このため、部分情報の生成には、データの分割および排他的論理輪の算出が行われるのみであるとともに、部分情報のデータ量は、分割されて得られるデータブロックとほぼ同等となる。したがって、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管することができる。
【0052】
(実施の形態2)
本発明の実施の形態2の特徴は、同一のグループウェアを使用する複数のコンピュータに部分情報を分配する点である。
【0053】
図7は、本実施の形態に係る符号化装置の要部構成を示すブロック図である。同図において、図1と同じ部分には同じ符号を付し、その説明を省略する。図7に示す符号化装置は、セキュリティチップ101に接続されており、セキュリティチップ101が使用する暗号鍵を復元するためのトークンの情報を含む部分情報をグループウェアへ出力する。具体的には、図7に示す符号化装置は、トークン取得部102、暗号化部103、符号化データ生成部104、符号化用行列生成部201、分割部202、および排他的論理和算出部107を有している。
【0054】
符号化用行列生成部201は、グループウェアから通知される部分情報の分配割合に応じた符号化用行列を生成する。すなわち、符号化用行列生成部201は、部分情報のデータ量に応じて符号化用行列の列数を決定し、分配される部分情報の数に応じて符号化用行列の行数を決定する。具体的には、符号化用行列生成部201は、グループウェアから通知される部分情報のデータ量に基づいてデータブロックのデータ量を決定し、符号化データのデータ量をデータブロックのデータ量で除算して分割数を求め、この分割数を符号化用行列の列数とする。また、符号化用行列生成部201は、グループウェアから通知される部分情報の合計数を符号化用行列の行数とする。符号化用行列生成部201は、符号化用行列の列数および行数を決定すると、1の要素をランダムに配置するとともに、列数を分割部202へ通知する。
【0055】
分割部202は、符号化用行列生成部201から符号化用行列の列数が通知されると、符号化データ生成部104によって生成された符号化データを符号化用行列の列数と同数のデータブロックに分割する。
【0056】
本実施の形態においては、符号化用行列生成部201、分割部202、および排他的論理和算出部107がRPS符号化部を構成している。
【0057】
一方、図7に示すグループウェアは、分配割合決定部301および部分情報分配部302を有している。
【0058】
分配割合決定部301は、グループウェアを使用する複数のコンピュータそれぞれが保管可能な部分情報のデータ量を示す持分情報を取得し、各コンピュータに保管する部分情報の数を決定する。すなわち、分配割合決定部301は、各コンピュータから通知される持分情報から保管可能なデータ量の最小値を検出し、検出された最小値を部分情報のデータ量とする。そして、分配割合決定部301は、各コンピュータから通知される持分情報から各コンピュータが保管する部分情報の数を決定し、部分情報分配部302へ通知する。また、分配割合決定部301は、部分情報のデータ量および複数のコンピュータに分配する部分情報の合計数を符号化用行列生成部201へ通知する。
【0059】
部分情報分配部302は、分配割合決定部301から通知されるコンピュータごとの部分情報の数に応じて、排他的論理和算出部107から出力される部分情報を各コンピュータへ分配する。
【0060】
次いで、上記のように構成された符号化装置によるトークンの符号化について、図8に示すフロー図を参照しながら説明する。なお、同図において、図5と同じ部分には同じ符号を付す。
【0061】
本実施の形態においても実施の形態1と同様に、コンピュータ内のセキュリティチップ101が使用する暗号鍵を緊急時などに復元するために、暗号鍵復元用のトークンが生成される。このトークンは、トークン取得部102によって取得され(ステップS101)、暗号化部103へ出力される。トークン取得部102は、セキュリティチップ101に新たにトークンを生成させて取得しても良いし、外部にあらかじめ記憶されているトークンを取得しても良い。
【0062】
トークン取得部102から出力されたトークンは、暗号化部103によって一時暗号鍵が用いられることにより暗号化トークンとなる。すなわち、暗号化部103によって、トークンを暗号化するための一時的な暗号鍵が生成され、この一時暗号鍵によってトークンが暗号化される。そして、暗号化されて得られた暗号化トークンは、暗号化に用いられた一時暗号鍵とともに符号化データ生成部104へ出力され、符号化データ生成部104によって、一時暗号鍵と暗号化トークンが結合された符号化データが生成される(ステップS102)。
【0063】
一方、複数のコンピュータが接続するグループウェアにおいては、分配割合決定部301によって、各コンピュータが部分情報として保管可能なデータ量を示す持分情報が収集され、データ量の最小値が部分情報のデータ量に決定される。そして、部分情報のデータ量および各コンピュータが保管する部分情報の合計数が符号化用行列生成部201へ通知される。符号化用行列生成部201では、部分情報のデータ量および部分情報の合計数から符号化用行列が生成される(ステップS201)。
【0064】
すなわち、符号化用行列生成部201によって、部分情報のデータ量からデータブロックのデータ量が決定され、符号化データのデータ量がデータブロックのデータ量で除算されることにより、符号化データから得られるデータブロックの数が算出される。このデータブロックの数は、符号化用行列の列数となり、分割部202へ通知される。さらに、符号化用行列生成部201によって、部分情報の合計数が符号化用行列の行数とされ、1の要素がランダムに配置されることにより、符号化用行列が生成される。
【0065】
分割部202に符号化用行列の列数が通知されると、分割部202によって、符号化データが符号化用行列の列数と同数のデータブロックに分割される(ステップS202)。各データブロックは、排他的論理和算出部107へ出力され、排他的論理和算出部107によって符号化用行列生成部201から符号化用行列が読み出されると、符号化用行列の各行の1の要素に対応するデータブロック間の排他的論理和が算出される(ステップS104)。
【0066】
排他的論理和算出部107によってデータブロック間の排他的論理和が算出されると、この排他的論理和がデータ部とされ、排他的論理和に対応する符号化用行列の行がヘッダ部とされた部分情報が部分情報分配部302へ出力される。したがって、排他的論理和算出部107からは、符号化用行列の行数と同数の部分情報が出力される。上述したように、符号化用行列の行数は、各コンピュータから収集された持分情報に基づいて決定された部分情報の合計数に等しいため、これらの部分情報は、持分情報に応じて各コンピュータへ分配される(ステップS203)。すなわち、分配割合決定部301において決定された部分情報のデータ量から、各コンピュータの持分情報に応じてそれぞれのコンピュータへ分配する部分情報の数が決定され、この分配割合が部分情報分配部302へ通知される。そして、部分情報分配部302によって、排他的論理和算出部107から出力される部分情報が分配割合に従って各コンピュータへ分配される。
【0067】
以上のように、本実施の形態によれば、同一のグループウェアを使用する複数のコンピュータから持分情報を収集し、持分情報に応じて部分情報のデータ量および各コンピュータへの部分情報の分配割合を決定する。そして、部分情報のデータ量および部分情報の合計数に適した符号化用行列を生成し、生成された符号化用行列を用いて符号化データを符号化し、得られた部分情報を持分情報から決定された分配割合に応じて各コンピュータへ分配する。このため、グループウェアを使用する複数のコンピュータの保管可能なデータ量に応じて動的に符号化用行列が生成され、それぞれのコンピュータの記憶容量に応じて部分情報を分配することができる。
【0068】
なお、上記各実施の形態においては、符号化装置をセキュリティチップ101に接続するものとしたが、本発明の符号化装置は、例えば通常のデータを暗号化する暗号鍵を記憶するハードディスクに接続したり、その他のリムーバブルメディアに接続したりして、通常の暗号鍵をRPS符号化することも可能である。
【0069】
(付記1)秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、
行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供手段と、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、
前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、
前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段と
を有することを特徴とする符号化装置。
【0070】
(付記2)前記生成手段は、
秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成することを特徴とする付記1記載の符号化装置。
【0071】
(付記3)前記出力手段は、
符号化用行列の各列にデータブロックを対応付け、行ごとの1の要素に対応するデータブロック間の排他的論理和を求めることを特徴とする付記1記載の符号化装置。
【0072】
(付記4)前記出力手段は、
符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力することを特徴とする付記1記載の符号化装置。
【0073】
(付記5)前記提供手段は、
あらかじめ所定の符号化用行列を記憶することを特徴とする付記1記載の符号化装置。
【0074】
(付記6)前記提供手段は、
前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含むことを特徴とする付記1記載の符号化装置。
【0075】
(付記7)前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成することを特徴とする付記6記載の符号化装置。
【0076】
(付記8)前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成することを特徴とする付記6記載の符号化装置。
【0077】
(付記9)前記生成手段は、
セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成することを特徴とする付記1記載の符号化装置。
【0078】
(付記10)秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、
行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供工程と、
前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、
前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程と
を有することを特徴とする符号化方法。
【産業上の利用可能性】
【0079】
本発明は、秘密情報を部分情報に分割して管理する際の演算処理量および部分情報のデータ量を削減し、安全かつ柔軟に秘密情報を保管する場合に適用することができる。
【図面の簡単な説明】
【0080】
【図1】実施の形態1に係る符号化装置の要部構成を示すブロック図である。
【図2】実施の形態1に係るトークンの暗号化を説明する図である。
【図3】実施の形態1に係る符号化データの構成を示す図である。
【図4】実施の形態1に係る符号化用行列の一例を示す図である。
【図5】実施の形態1に係る符号化装置の動作を示すフロー図である。
【図6】実施の形態1に係るRPS符号化の具体例を示す図である。
【図7】実施の形態2に係る符号化装置の要部構成を示すブロック図である。
【図8】実施の形態2に係る符号化装置の動作を示すフロー図である。
【符号の説明】
【0081】
102 トークン取得部
103 暗号化部
104 符号化データ生成部
105、202 分割部
106 符号化用行列記憶部
107 排他的論理和算出部
201 符号化用行列生成部
301 分配割合決定部
302 部分情報分配部

【特許請求の範囲】
【請求項1】
秘密情報を分散して保管するための複数の部分情報を生成する符号化装置であって、
行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供手段と、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成手段と、
前記生成手段によって生成された符号化データを前記提供手段によって提供される符号化用行列の列数と同数のデータブロックに分割する分割手段と、
前記分割手段によって分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力手段と
を有することを特徴とする符号化装置。
【請求項2】
前記生成手段は、
秘密情報が暗号化されて得られた暗号化秘密情報と暗号化に用いられた一時暗号鍵とを結合して符号化データを生成することを特徴とする請求項1記載の符号化装置。
【請求項3】
前記出力手段は、
符号化用行列の各列にデータブロックを対応付け、行ごとの1の要素に対応するデータブロック間の排他的論理和を求めることを特徴とする請求項1記載の符号化装置。
【請求項4】
前記出力手段は、
符号化用行列の行の各要素からなるヘッダ部と、この行に対応する排他的論理和からなるデータ部とを備える部分情報を出力することを特徴とする請求項1記載の符号化装置。
【請求項5】
前記提供手段は、
あらかじめ所定の符号化用行列を記憶することを特徴とする請求項1記載の符号化装置。
【請求項6】
前記提供手段は、
前記出力手段によって出力される部分情報の保管に利用可能な記憶容量に応じて符号化用行列を生成する符号化用行列生成手段を含むことを特徴とする請求項1記載の符号化装置。
【請求項7】
前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれの記憶容量の最小値に対応する部分情報のデータ量および前記生成手段によって生成される符号化データのデータ量からデータブロック数を算出し、算出されたデータブロック数と同数の列数の符号化用行列を生成することを特徴とする請求項6記載の符号化装置。
【請求項8】
前記符号化用行列生成手段は、
部分情報が複数の記憶装置に分配されて記憶される場合に、前記複数の記憶装置それぞれが記憶する部分情報の合計数と同数の行数の符号化用行列を生成することを特徴とする請求項6記載の符号化装置。
【請求項9】
前記生成手段は、
セキュリティチップが備える暗号鍵の復元用のトークンを秘密情報として取得し、取得されたトークンから符号化データを生成することを特徴とする請求項1記載の符号化装置。
【請求項10】
秘密情報を分散して保管するための複数の部分情報を生成する符号化方法であって、
符号化対象の秘密情報をこの秘密情報に対応する一時暗号鍵を用いて暗号化し、符号化データを生成する生成工程と、
行数および列数が2以上であり、各要素に0または1が配置された符号化用行列を提供する提供工程と、
前記生成工程にて生成された符号化データを前記提供工程にて提供される符号化用行列の列数と同数のデータブロックに分割する分割工程と、
前記分割工程にて分割されて得られたデータブロックについて符号化用行列の各行に対応する排他的論理和を求め、この排他的論理和を含む部分情報を出力する出力工程と
を有することを特徴とする符号化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−203369(P2008−203369A)
【公開日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願番号】特願2007−37183(P2007−37183)
【出願日】平成19年2月16日(2007.2.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】