説明

データ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体

【課題】複数の暗号器によって分散したデータを暗号化することで、セキュリティを高めつつ暗号化の効率を上げること。
【解決手段】入力されたデータを任意の数を有する記憶装置に応じた数のデータブロックに分散してそれぞれの記憶装置に転送するRAIDコントローラ112と、記憶装置と同じ数を有し、RAIDコントローラ112によって転送途中のデータブロックを、記憶装置毎に異なる暗号鍵を用いて暗号化する暗号器と、暗号器によって暗号化されたデータブロックをそれぞれ記憶する任意の数を有する記憶装置と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データを暗号化するデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体に関する。
【背景技術】
【0002】
従来、複数の記憶装置を備えたデータ記憶装置において、記憶されたデータのセキュリティを維持する様々な手段が提案されている。たとえば、データのセキュリティを維持する手段を持つ装置としては、データの記憶された記憶装置を簡単に着脱禁止にするデータ記憶装置がある。これらデータ記憶装置においては、第3者の持ち出しや不用意な着脱を簡単な構成で防止することができる(たとえば、下記特許文献1参照。)。
【0003】
また、たとえば、データのセキュリティを維持する手段を持つ装置としては、一つの暗号器を備えたデータ記憶装置がある。これら暗号器を備えたデータ記憶装置においては、暗号器に接続された乱数発生器が発生した乱数によって、暗号鍵を作成する。そして、暗号器は、この暗号鍵を用いることで、データの暗号化をおこなう(たとえば、下記特許文献2、3参照。)。
【0004】
【特許文献1】特開2004−106207号公報
【特許文献2】特開2003−059178号公報
【特許文献3】特開2002−152193号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述の特許文献1に記載された技術では、記憶装置を直接持ち出さなくても、通信などにより記憶装置に記憶されたデータの内容を見ることができるため、データのセキュリティを維持できないという問題がある。
【0006】
また、上述の特許文献2または3に記載された技術では、データを暗号化することで、通信などにおいてもデータのセキュリティを維持できるが、一つの暗号器で複数の記憶装置の暗号化をおこなうため、データの量が多いと暗号化、復号化に時間がかかる。
【0007】
また、暗号器に備えられた乱数発生器は、記憶装置毎には乱数を生成しない。したがって、乱数の生成手段がわかると複数の記憶装置に分散されているすべてのデータが解読されてしまう。このように、一つの暗号が解読されると、すべての暗号鍵が盗まれる可能性が高い。さらに、暗号器は、一時的な動作に対しても常に管理している暗号鍵を使うため、暗号鍵を盗まれた場合は、第3者にすべての一時的な動作が傍受されてしまう。したがって、データ記憶装置に暗号器を一つ備えても、データのセキュリティを維持することが困難である。
【0008】
この発明は、上述した従来技術による問題点を解消するため、複数の暗号器によって分散したデータを暗号化することで、セキュリティを高めつつ暗号化の効率を上げることができるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかるデータ暗号化装置は、入力されたデータを任意の数を有する記憶手段に応じた数のデータブロックに分散してそれぞれの記憶手段に転送するデータ転送制御手段と、前記記憶手段と同じ数を有し、前記データ転送制御手段によって転送途中のデータブロックを、記憶手段毎に異なる暗号鍵を用いて暗号化する暗号化手段と、前記暗号化手段によって暗号化されたデータブロックをそれぞれ記憶する任意の数を有する記憶手段と、を備えることを特徴とする。
【0010】
また、請求項2の発明にかかるデータ暗号化装置は、請求項1に記載の発明において、前記暗号化手段は、前記記憶手段毎に乱数を発生させることにより暗号鍵を作成する乱数発生手段を備えることを特徴とする。
【0011】
また、請求項3の発明にかかるデータ暗号化装置は、入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け手段と、前記データ振り分け手段によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化手段と、前記暗号化手段によって暗号化されたデータブロックを記憶手段に転送するデータ転送制御手段と、前記データ転送制御手段によって転送されたデータブロックを記憶する記憶手段と、を備えることを特徴とする。
【0012】
また、請求項4の発明にかかるデータ暗号化装置は、請求項3に記載の発明において、前記記憶手段は任意の数を有し、前記データ転送制御手段は、前記記憶手段の数に応じて前記データブロックを所定のデータブロック単位でそれぞれの前記記憶手段に転送することを特徴とする。
【0013】
また、請求項5の発明にかかるデータ暗号化装置は、請求項3または4に記載の発明において、他のデータ暗号化装置の情報を取得する取得手段と、前記取得手段によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断手段と、前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信手段と、を備え、前記データ転送制御手段は、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得手段によって取得された情報と、前記受信手段によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とする。
【0014】
また、請求項6の発明にかかるデータ暗号化装置は、請求項5に記載の発明において、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が異なる場合は、前記受信手段によって受信されたデータブロックの並び順を変更するフォーマット変更手段を備えることを特徴とする。
【0015】
また、請求項7の発明にかかるデータ暗号化方法は、入力されたデータを任意の数を有する記憶手段に応じた数のデータブロックに分散してそれぞれの前記記憶手段に転送するデータ転送制御工程と、前記データ転送制御工程によって転送途中のデータブロックを、前記記憶手段毎に異なる暗号鍵を用いて暗号化する暗号化工程と、前記暗号化工程によって暗号化されたデータブロックをそれぞれ前記任意の数を有する記憶手段に記憶する記憶工程と、を含むことを特徴とする。
【0016】
また、請求項8の発明にかかるデータ暗号化方法は、入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け工程と、前記データ振り分け工程によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化工程と、前記暗号化工程によって暗号化されたデータブロックを記憶手段に転送するデータ転送制御工程と、前記データ転送制御工程によって転送されたデータブロックを前記記憶手段に記憶する記憶工程と、を含むことを特徴とする。
【0017】
また、請求項9の発明にかかるデータ暗号化プログラムは、請求項7または8に記載の方法をコンピュータに実行させることを特徴とする。
【0018】
また、請求項10の発明にかかる記録媒体は、請求項9に記載のプログラムを記録したコンピュータに読み取り可能であることを特徴とする。
【発明の効果】
【0019】
本発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、複数の暗号器によって分散したデータを暗号化することで、セキュリティを高めつつ暗号化の効率を上げることができるという効果を奏する。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【0021】
(実施の形態1)
(実施の形態1にかかるデータ暗号化装置の構成の一例)
はじめに、本発明の実施の形態1にかかるデータ暗号化装置100の構成の一例について説明する。図1は実施の形態1にかかるデータ暗号化装置100の構成の一例を示す説明図である。図1において、実施の形態1にかかるデータ暗号化装置100は、CPU(Central Processing Unit)101と、アービタ102と、外部I/Fコントローラ103と、メモリ104と、メモリコントローラ105と、記憶装置aa106aaと、記憶装置ab106abと、システムI110と、を含み構成されている。各構成部101〜110は、バスによって接続されている。また、システムI110は、DMA(Direct Memory Access)コントローラ111と、RAID(Redundant Array of Independent Disks)コントローラ112と、暗号器X113aaと、暗号器Y113abと、I/Faa114aaと、I/Fab114abと、を含み構成されている。また、記憶装置の数は任意であり、記憶装置毎に暗号器とI/Fが備えられている。
【0022】
CPU101は、アービタ102に接続される。CPU101は、メモリ104をワークエリアとして使用し、図示しないROM(Read Only Memory)に記録された各種プログラムを実行することによって、データ暗号化装置100の全体の制御を司る。
【0023】
外部I/Fコントローラ103は、ケーブルを介して外部装置と接続され、外部装置とデータ暗号化装置100とのインターフェースとして機能する。また、外部I/Fコントローラ103は、無線を介してネットワークに接続され、外部装置とデータ暗号化装置100とのインターフェースとして機能する。外部I/Fコントローラ103は、さらに、無線を介してインターネットなどの通信網に接続され、この通信網とデータ暗号化装置100とのインターフェースとしても機能する。
【0024】
メモリ104は、メモリコントローラ105に接続される。メモリコントローラ105は、アービタ102に接続され、アービタ102による指示を受け、アービタ102によって指定されたバスでつながれたデバイス(構成部)による指示を受け付ける。指定されたデバイスは、メモリコントローラ105を介してメモリ104へアクセスをおこなう。アービタ102によって選択されたデバイスの要求は、メモリコントローラ105へ送出され、メモリコントローラ105では、メモリ104へアクセスするために必要なタイミング信号を生成し、最終的にメモリ104にアクセスをおこなう。
【0025】
メモリ104は、具体的には、たとえば、外部I/Fコントローラ103によって入力を受け付けたデータを、記憶装置aa106aaおよび記憶装置ab106abに転送する前に一時的に保存する。また、メモリ104は、記憶装置aa106aaおよび記憶装置ab106abから読み出されたデータを、外部I/Fコントローラ103によって出力する前に一時的に保存する。
【0026】
DMAコントローラ111は、アービタ102に接続される。DMAコントローラ111は、メモリ104とデバイス間のデータの転送を、CPU101を介することなくおこなうことができる。具体的には、たとえば、メモリ104で一時保存したデータをRAIDコントローラ112へ転送をおこなう場合、CPU101を介することなく、直接データを転送することができる。このため、DMAコントローラ111は、データの転送速度を向上させ、CPU101の負担を減らすことができる。
【0027】
記憶装置aa106aaおよび記憶装置ab106abは、記憶媒体と記憶媒体ドライブによって構成されている。記憶媒体ドライブは、CPU101の制御にしたがって記憶媒体に対するデータの読み取り/書き込みを制御する。記憶媒体は、記憶媒体ドライブの制御で書き込まれたデータを記録する。なお、データは、分散されていてもよい。記憶媒体としてはHD(Hard Disk)、記憶媒体ドライブとしてはHDドライブを用いることができる。また、記憶装置の数は任意であり、図1においては、記憶装置が記憶装置aa106aaおよび記憶装置ab106abの2つの場合を説明する。
【0028】
RAIDコントローラ112は、記憶装置の数に応じてデータブロックを所定の単位で分散し、分散されたデータブロックをそれぞれの記憶装置に転送するデータ転送制御機能を実現する。具体的には、たとえば、メモリ104に一時保存されたデータをDMAコントローラ111によってメモリ104から直接受け付け、記憶装置の数に応じてデータブロックを所定の単位で分散する。そして、分散されたデータブロックをそれぞれの記憶装置に転送する。
【0029】
暗号器X113aaおよび暗号器Y113abは、それぞれ異なる暗号鍵を用いて暗号化する暗号化機能を実現する。図1においては、暗号器X113aaは暗号鍵X115aaを用いて暗号化し、暗号器Y113abは暗号鍵Y115abを用いて暗号化する。暗号器X113aaはI/Faa114aaを介して、記憶装置aa106aaに接続されている。また、暗号器Y113abは、I/Fab114abを介して記憶装置ab106abに接続されている。
【0030】
つぎに、データ暗号化装置100の暗号化手順について説明する。まず、外部I/Fコントローラ103によってデータの入力を受け付ける。メモリ104は、受け付けたデータを、メモリコントローラ105の制御によって、一時保存する。つぎに、DMAコントローラ111は、一時保存されたデータを、CPU101を介さずにRAIDコントローラ112へ転送する。RAIDコントローラ112は、記憶装置の数に応じてデータブロックを所定の単位に分散し、分散されたデータブロックをそれぞれの記憶装置へ転送する。ここで、RAIDコントローラ112から記憶装置へ転送途中のデータブロックは暗号器を通る。暗号器は、データブロックを受け付けると、それぞれの暗号器がそれぞれの暗号鍵を用いて、データブロックを暗号化する。そして、記憶装置によって、暗号化されたデータブロックを記憶する。
【0031】
上述したように、記憶装置にデータブロックを転送する際に、それぞれの記憶装置毎に暗号器が接続されているため、データの暗号化にかかる時間の短縮を図ることができる。さらに、記憶装置に記憶されるデータブロックは、RAIDコントローラ112によって記憶装置の数に応じてデータブロックを所定の単位に分散してから暗号化する。したがって、記憶装置毎に暗号器がぞれぞれの暗号鍵を用いて暗号化するため、データのセキュリティを高めることができる。
【0032】
また、データ暗号化装置100の複号化手順については、暗号化手順と逆の手順をとる。データ暗号化装置100は、複号化の要求を受け付けると、RAIDコントローラ112は、それぞれの記憶装置に記憶されたデータブロックを順に取り出す。記憶装置からRAIDコントローラ112へ転送途中のデータブロックは暗号器を通る。暗号器は、データブロックを受け付けると、それぞれの暗号器がそれぞれの暗号鍵を用いて、データブロックを復号化する。したがって、RAIDコントローラ112においては、複号化されたデータブロックが順に集められる。このため、RAIDコントローラ112で集められたデータは、暗号化する前のデータとして読み出される。
【0033】
(データ暗号化装置に乱数発生器を備えた一例)
つぎに、データ暗号化装置100に、乱数発生器を備えた場合について説明する。図2は、データ暗号化装置に乱数発生器を備えた一例を示す説明図である。乱数発生器は、それぞれの暗号器に備えられる。図2においては、乱数発生器X201aaは暗号器X113aaに備えられ、乱数発生器Y201abは暗号器Y113abに備えられる。乱数発生器は、異なる初期値を設定することで、それぞれの乱数発生器で異なる乱数を発生する。したがって、暗号器は、それぞれに接続された乱数発生器によって発生した乱数を用いて暗号鍵を作成し、作成された暗号鍵を用いてデータブロックを暗号化する。
【0034】
また、乱数発生器は、データを消去するために、記憶装置に記憶されたデータに上書きする乱数を発生する。ここで、データの消去とは、通常の「削除」コマンドでのデータの消去ではなく、ランダムライト方式などによって、データを復元できない状態にするデータの消去である。ランダムライト方式とは、データに乱数を上書きすることでデータの内容を完全に消去する方式である。また、乱数発生器は、暗号鍵を作成するために発生した乱数とは異なる乱数を発生させてデータの消去をおこなう。このため、データを暗号化するための乱数と、データの消去のための乱数が異なるため、データを暗号化した暗号鍵が解読されにくい。
【0035】
(動作に対しておこなわれるデータの暗号化の処理手順)
つぎに、動作に対しておこなわれるデータの暗号化の処理手順について説明する。図3は、動作に対しておこなわれるデータの暗号化の処理手順を示すフローチャートである。ここで、動作とは、たとえば、コピーやスキャナによる動作である。図3においては、まず、動作によるデータの入力を受け付けるまで待って(ステップS301:Noのループ)、データの入力を受け付けた場合(ステップS301:Yes)、メモリ104は、データを一時保存する(ステップS302)。つぎに、DMAコントローラ111は、一時保存されたデータを、CPU101を介さずにRAIDコントローラ112に転送する。そして、RAIDコントローラ112は、記憶装置の数に応じてデータブロックを所定の単位に分散する(ステップS303)。
【0036】
ステップS303において分散されたデータブロックは、RAIDコントローラ112から記憶装置への転送途中に、それぞれの記憶装置に備えられた暗号器を通る。暗号器に備えられた乱数発生器は、データブロックを受け付けると乱数を発生する(ステップS304)。つぎに、暗号器は、備えられた乱数発生器によって発生した乱数を用いて、それぞれの暗号器においてそれぞれの暗号鍵を作成する(ステップS305)。そして、暗号器は、作成された暗号鍵を用いてデータブロックを暗号化する(ステップS306)。
【0037】
つづけて、暗号化されたデータブロックを記憶装置へ転送し、記憶装置に記憶する(ステップS307)。ステップS307において、データブロックが記憶されるとともに、暗号器は、ステップS305において作成した暗号鍵を無効にし(ステップS308)、一連の処理を終了する。これによって、動作に対しておこなわれるデータの暗号化の場合でも、暗号器によって動作毎に乱数を発生させることで、暗号器毎に異なる暗号鍵を作成し、データを暗号化する。さらに、動作が終わるとそれぞれの暗号器において作成された暗号鍵を無効にするため、動作が傍受される可能性が低くなる。
【0038】
以上説明したように、実施の形態1のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、記憶装置毎に暗号器と、乱数発生器を備えているため、データの暗号化および復号化の時間短縮を図ることができる。さらに、それぞれの暗号器毎に暗号鍵を用いて暗号化するため、データのセキュリティを高めることができる。
【0039】
(実施の形態2)
(データ暗号化装置の構成の一例)
つぎに、実施の形態2にかかるデータ暗号化装置400の構成の一例について説明する。図4は、実施の形態2にかかるデータ暗号化装置400の構成の一例を示す説明図である。実施の形態2は、上述の実施の形態1にかかるデータ暗号化装置100におけるシステムI110をシステムII410に変更する。システムII410には、データ振り分け装置411を備え、暗号化手順において、RAIDコントローラ112と、暗号器X113aaおよび暗号器Y113abの手順を入れ替える点で、実施の形態1にかかるシステムI110と異なる。なお、実施の形態2においては、上述した実施の形態1と同一部分は同一符号で示し、説明も省略する。
【0040】
図4において、実施の形態2にかかるデータ暗号化装置400は、CPU101と、アービタ102と、外部I/Fコントローラ103と、メモリ104と、メモリコントローラ105と、記憶装置aa106aaと、記憶装置ab106abと、システムII410と、を含み構成されている。各構成部101〜410は、バスによって接続されている。システムII410は、DMAコントローラ111と、RAIDコントローラ112と、暗号器X113aaと、暗号器Y113abと、I/Faa114aaと、I/Fab114abと、データ振り分け器411と、を含み構成されている。また、記憶装置の数と、暗号器の数と、I/Fの数は任意であり、I/Fの数は記憶装置の数以上備えられている。したがって、暗号器の数は記憶装置の数と同一でなくてもよい。
【0041】
(データ振り分け器の処理)
つぎに、データ振り分け器411の処理の内容について説明する。図5は、データ振り分け器411の処理の内容を示す説明図である。データ振り分け器411は、受け付けたデータを設定された暗号器の数に応じて順に振り分けるデータ振り分け機能を実現する。図5においては、データAを暗号器X113aaと、暗号器Y113abとに振り分ける。また、図5においては、データAをデータブロックA0〜A3までの4つのデータブロックに分割して説明する。データブロックの並び順はデータブロックA0、データブロックA1、データブロックA2、データブロックA3の順であり、データブロックの並び順が異なるとデータは読み取ることができない。
【0042】
図5においては、暗号器X113aaと暗号器Y113abが接続されているので、データ振り分け器411は、受け付けたデータAを、順に2つの暗号器に振り分ける。具体的には、データ振り分け器411は、データブロックA0とデータブロックA1の組み合わせを暗号器X113aaへ振り分け、データブロックA2とデータブロックA3の組み合わせを暗号器Y113abへ振り分ける。そして、振り分けられたデータは暗号器X113aaおよび暗号器Y113abによってそれぞれ暗号化される。本発明においては、暗号器X113aaによって暗号化されたデータブロックA0およびデータブロックA1は、データブロックA0XおよびデータブロックA1Xと記載する。同様に、暗号器Y113abによって暗号化されたデータブロックA2およびデータブロックA3は、データブロックA2YおよびデータブロックA3Yと記載する。
【0043】
つぎに、実施の形態2にかかるデータ暗号化装置400の暗号化手順について説明する。まず、外部I/Fコントローラ103によってデータの入力を受け付ける。メモリ104は、受け付けたデータを、メモリコントローラ105の制御によって一時保存する。DMAコントローラ111は、一時保存されたデータを、CPU101を介さずにデータ振り分け器411へ転送する。つぎに、データ振り分け器411は、暗号器の数に応じてデータを振り分ける。暗号器X113aaおよび暗号器Y113abは、振り分けられたデータを、それぞれの暗号器がそれぞれの暗号鍵を用いて暗号化する。暗号化されたデータは、RAIDコントローラ112へ転送される。RAIDコントローラ112は、記憶装置の数に応じて所定の単位でデータを分散し、分散されたデータブロックを記憶装置aa106aaおよび記憶装置ab106abへ転送する。
【0044】
図5の説明では、データ振り分け器411によって振り分けられたデータを暗号化した後に、RAIDコントローラ112によってそれぞれの記憶装置に分散するので、暗号器の数が記憶装置の数と同一でなくてもよい。暗号器の数が多いほど、データのセキュリティの維持がさらに確実になる。これによって、ユーザは自身の好みに合わせて記憶装置の数を変えることができるため、様々なワークフローに対応することができる。
【0045】
また、データ暗号化装置400の復号化手順については、暗号化手順と逆の手順をとる。データ暗号化装置400は、復号化の要求を受け付けると、RAIDコントローラ112によって、それぞれの記憶装置に記憶されたデータブロックを順に取り出す。取り出されたデータブロックは、記憶装置からRAIDコントローラ112へ転送される。つぎに、暗号器は、RAIDコントローラ112で順に集められたデータブロックを、それぞれのデータブロックを暗号化した暗号鍵によって復号化する。そして、データ振り分け器411は、復号化されたデータブロックを順に集める。このため、データ振り分け器411で集められたデータは、暗号化する前のデータとして読み出される。
【0046】
(同じシステム構成間のデータ移行処理)
つぎに、同じシステム構成間のデータ移行処理の内容について説明する。図6は、同じシステム構成間のデータ移行処理の内容を示す説明図である。図6は、実施の形態2にかかるデータ暗号化装置400同士のデータ移行処理の内容を示している。図6においては、データ暗号化装置a600に記憶されたデータを、データ暗号化装置b610に移行する。ここで、データ暗号化装置a600に含まれるシステムIIa601と、移行先のデータ暗号化装置b610に含まれるシステムIIb611とは同じシステム構成で、データ暗号化装置a600とデータ暗号化装置b610とは、記憶装置の数のみが異なる。
【0047】
また、図6においては、システムIIa601に含まれる暗号器X113aaと、システムIIb611に含まれる暗号器X113baは、同一の暗号鍵Xによって暗号化をおこなう暗号器である。同様に、システムIIa601に含まれる暗号器Y113abと、システムIIb611に含まれる暗号器Y113bbは、同一の暗号鍵Yによって暗号化をおこなう暗号器である。また、図6においては、データ暗号化装置a600において、記憶装置aa106aaには、データブロックA0XおよびデータブロックA2Yが記憶されており、記憶装置ab106abには、データブロックA1XおよびデータブロックA3Yが記憶されている。
【0048】
図7は、同じシステム構成間のデータ移行処理の内容を示すシーケンス図である。図7においては、まず、システムIIa601は、システムIIb611のシステム情報を取得する(ステップS701)。ここで、システム情報とは、システムの構成を識別する識別情報と、移行先のシステム内の暗号器の数の情報である。ステップS701において、取得したシステム情報に含まれる暗号器の数の情報に基づいて、システムIIb611の暗号器の数がシステムIIa601の暗号器の数より小さいか否かを判断する。暗号器において、暗号化されたデータブロックが転送された場合は、暗号器が暗号化に用いた暗号鍵によって暗号化されたデータブロックのみ通過することができる。
【0049】
したがって、データの移行先のシステムの暗号器の数が、データの移行元のシステムの暗号器の数より小さい場合は、暗号鍵の種類が移行先のシステムの方が少ないため、暗号化されたデータブロックのうちに暗号器を通過しないデータブロックがあり、記憶装置にデータを転送することができない。この場合、一度データを復号化してから、移行先のシステムにデータを送出し、移行先のシステムにおいて、再度、暗号化処理をおこなう必要がある。図7においては、システムIIb611の暗号器の数がシステムIIa601の暗号器の数より小さければ、復号してからデータを送出する(ステップS702)。一方、システムIIb611の暗号器の数がシステムIIa601の暗号器の数より大きい場合は、暗号化したままデータを移行することができる。以降は、本実施の形態2の特徴である、暗号化したままデータを移行するデータ移行処理について説明する。
【0050】
つぎに、システムIIa601は、システムIIb611へ暗号器の数を通知する(ステップS703)。システムIIb611においては、通知されたシステムIIa601の暗号器の数の設定をおこなう(ステップS704)。一方、システムIIa601においては、ステップS703において、暗号器の数を通知後は、まず、記憶装置aa106aaおよび記憶装置ab106abに記憶されたデータを取得する(ステップS705)。具体的には、まず、RAIDコントローラa112aによって記憶装置aa106aaおよび記憶装置ab106abから取り出されたデータブロックは、暗号鍵X113aaで暗号化されたデータブロックA0XおよびデータブロックA1Xと、暗号鍵Y113abで暗号化されたデータブロックA2YおよびデータブロックA3Yの組み合わせに分けられる。分けられたデータブロックは、それぞれの暗号器を通過する。
【0051】
つぎに、データ振り分け器a401aは、暗号器を通過したデータブロックの組み合わせを順に取ってくることで、元のデータAのデータブロックの並び順でデータAを暗号化されたまま取り出すことができる。したがって、システムIIa601から取り出されたデータAを、そのままシステムIIb611に移行しても、データブロックの並び順を変更しなくてよい。つぎに、メモリa104aは、取り出されたデータAを、一時保存する(ステップS706)。ステップS706において、一時保存されたデータを読み込み(ステップS707)、システムIIb611へデータを送信する(ステップS708)。
【0052】
システムIIb611へのデータ送信は、まず、データ暗号化装置610の外部I/Fコントローラ103がデータを受け付ける。受け付けたデータをメモリb104bに一時保存する(ステップS709)。さらに、一時保存されたデータを読み込んで(ステップS710)、システムIIb611へ転送する。データ振り分け器b401bは、システムIIb611へ転送されたデータを、暗号器の数に応じて順に振り分ける。そして、データブロックは、それぞれが暗号化に用いた暗号鍵を管理している暗号器を通過する(ステップS711)。したがって、データブロックA0XおよびデータブロックA1Xの組み合わせは、暗号器X113baを通過する。同様に、データブロックA2YおよびデータブロックA3Yの組み合わせは、暗号器Y113bbを通過する。
【0053】
ステップS711において、暗号器を通過したデータブロックの組み合わせは、RAIDコントローラb112bに集められる。そして、RAIDコントローラb112bは、記憶装置の数に応じてデータブロックを所定の単位で分散しそれぞれの記憶装置に転送する。図7においては、記憶装置b106bが1つなので、RAIDコントローラb112bは、すべてのデータブロックを記憶装置b106bに転送する。つづけて、記憶装置b106bは、転送されたデータの書き込みをおこなう(ステップS712)。また、ステップS712とともに、記憶装置b106bに備えられたファイル管理部612へ、ステップS704において設定された暗号器の数の情報を保存する(ステップS713)。
【0054】
なお、ステップS712においては、記憶装置b106bが1つであるとしたが、これに限るものではない。たとえば、記憶装置が2つの場合は、データブロックの組み合わせは、データブロックA0XおよびデータブロックA2Yの組み合わせと、データブロックA1XおよびデータブロックA3Yの組み合わせに分けられ、それぞれが記憶装置に記憶される。
【0055】
以上説明したように、実施の形態2のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、記憶装置の数は、暗号器の数に関わらず設定することができる。このため、ユーザの使用目的に合わせて記憶装置の数を変更することができるため、ユーザのワークフローを広げることができる。また、システムII410同士のデータ移行に関しては、暗号化したままデータを移行するため、データのセキュリティを維持したままデータを移行することができる。このため、データのセキュリティをより高めることができる。
【0056】
(実施の形態3)
(システム情報に基づいたデータ移行処理の変更手順)
つぎに、システム情報に基づいたデータ移行処理の変更手順について説明する。図8は、システム情報に基づいたデータ移行処理の変更手順の内容を示すフローチャートである。図8においては、データを移行する場合に、移行先もしくは移行元のどちらか片方のデータ暗号化装置に含まれたシステムが、実施の形態2にかかるデータ暗号化装置400に備えられたシステムII410である場合について説明する。図8において、まず、データ暗号化装置400は、接続された他のデータ暗号化装置のシステム情報を取得する(ステップS801)。ステップS801において、接続された他のデータ暗号化装置のシステム情報を取得する取得機能を実現する。また、ステップS801において、取得されたシステム情報に含まれる識別情報に基づいて、相手先がシステムII410か否かを判断する(ステップS802)。ステップS802において、識別情報を用い、接続された他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断機能を実現する。
【0057】
ステップS802において、相手先がシステムII410の場合(ステップS802:Yes)は、フォーマットチェンジをしないで(ステップS803)、図7において説明したシステムII410同士のデータ移行処理をおこなう(ステップS804)。一方、ステップS802において、相手先がシステムII410ではない場合(ステップS802:No)は、フォーマットチェンジを実行し(ステップS805)、データブロックの並び順を変える。これによって、システムII410と他のシステム間のデータ移行処理をおこなう(ステップS806)。なお、フォーマットチェンジおよびフォーマットチェンジを備えたシステムIIについては、図9において詳細に説明する。
【0058】
(異なるシステム構成間のデータ移行処理)
図9は、異なるシステム構成間のデータ移行処理の内容を示す説明図である。図9においては、システムII910と旧システムとのデータ移行処理について説明する。図9においては、移行元のデータ暗号化装置100のシステム構成がシステムI110という点と、移行先のデータ暗号化装置910のシステム構成であるシステムII911に、フォーマットチェンジ912を備えている点で、図6のデータ移行処理とは異なる。ここで、フォーマットチェンジ912は、データブロックの並び順を変更するフォーマット変更機能を実現する。たとえば、実施の形態1におけるデータ暗号化装置100においては、同じ構成で、さらに、記憶装置の数が同数である場合に、データを暗号化したまま移行できる。したがって、実施の形態1におけるデータ暗号化装置100のデータを暗号化したまま、実施の形態2におけるデータ暗号化装置400に移行する場合には、データブロックの並び順を変更する必要がある。
【0059】
具体的には、実施の形態1にかかるデータ暗号化装置100におけるデータ暗号化手順によると、RAIDコントローラa112aは、所定の単位でデータブロックを分散する。このため、暗号器X113aaを通るデータブロックは、データブロックA0と、データブロックA2の組み合わせとなる。また、同様に、暗号器Y113abを通るデータブロックは、データブロックA1と、データブロックA3の組み合わせとなる。したがって、記憶装置aa106aaに記憶されるデータブロックは、データブロックA0XおよびデータブロックA2Xとなり、記憶装置ab106abに記憶されるデータブロックは、データブロックA1YおよびデータブロックA3Yとなる。
【0060】
つぎに、暗号化されたデータを取り出すと、データブロックの並び順は、データブロックA0X、データブロックA1Y、データブロックA2X、データブロックA3Yの順となる。したがって、このデータブロックの並び順でシステムII911にデータを移行する場合、データ振り分け器411は、暗号器の数によってデータを振り分けるため、たとえば、暗号器X113baに振り分けられるデータブロックは、データブロックA0Xと、データブロックA1Yの組み合わせとなる。したがって、データブロックは、暗号器X113baを通過しない。また、暗号器Y113bbについても同様である。このため、データ移行手順においてデータ振り分け器411で処理をおこなう前に、フォーマットチェンジ912でフォーマットチェンジをおこなう必要がある。フォーマットチェンジをおこなうことで、データブロックの並び順を変更し、それぞれの暗号器を通過できるようにする。
【0061】
図10は、異なるシステム構成間のデータ移行処理の内容を示すシーケンス図である。図10においては、システムI110からシステムII911へデータを移行する。図10において、まず、システムII911が、システムI110のシステム情報を取得する(ステップS1001)。ステップS1001において取得したシステムI110のシステム情報に含まれる暗号器の数の情報に基づいて、システムI110の暗号器の数がシステムII911の暗号器の数より大きければ、復号依頼を送出する(ステップS1002)。復号依頼を受け取ったシステムI110は、データの復号化処理をおこなう(ステップS1003)。一方、システムII911の暗号器の数がシステムI110の暗号器の数より小さい場合は、暗号化したままデータを移行することができる。以降は、本実施の形態3の特徴である、暗号化したままデータを移行するデータ移行処理について説明する。
【0062】
つぎに、システムII911は、ステップS1001において取得されたシステムI110の暗号器の数の設定をおこなう(ステップS1004)。一方、システムI110においては、RAIDコントローラa112aは、記憶装置aa106aaおよび記憶装置ab106abに記憶されたデータを取得する(ステップS1005)。具体的には、RAIDコントローラa112aは、記憶装置aa106aaから、データブロックA0XとデータブロックA2Xの組み合わせを取り出し、記憶装置ab106abから、データブロックA1YとデータブロックA3Yの組み合わせを取り出す。取り出されたデータブロックは、それぞれの組み合わせが暗号化に用いた暗号鍵を管理する暗号器を通過して、RAIDコントローラa112aに集められる。集められたデータブロックのまとまりを、メモリa104aは、一時保存する(ステップS1006)。ステップS1006において、一時保存されたデータを読み込み(ステップS1007)、システムII911に送信する(ステップS1008)。
【0063】
システムII911へのデータ送信は、まず、データ暗号化装置910の外部I/Fコントローラ103がデータを受け付ける。受け付けたデータをメモリb104bに一時保存する(ステップS1009)。さらに、一時保存されたデータを読み込んで(ステップS1010)、システムII911へ転送する。そして、フォーマットチェンジ912は、システムII911へ転送されたデータを、フォーマットチェンジする(ステップS1011)。つまり、データブロックの並び順を、暗号化された暗号鍵に応じた組み合わせの並び順に変更する。つぎに、データ振り分け器411は、並び順を変更したデータブロックを振り分ける。そして、データブロックは、それぞれが暗号化に用いた暗号鍵を管理している暗号器を通過する(ステップS1012)。
【0064】
ステップS1012において、暗号器を通過したデータブロックの組み合わせは、RAIDコントローラb112bに集められる。そして、RAIDコントローラb112bは、記憶装置の数に応じてデータブロックを所定の単位で分散しそれぞれの記憶装置に転送する。つづけて、記憶装置b106bは、転送されたデータの書き込みをおこなう(ステップS1013)。また、ステップS1013と同時に、ステップS1004において設定された暗号器の数の情報を、記憶装置b106bに備えられたファイル管理部612へ保存する(ステップS1014)。
【0065】
(暗号化したまま転送されたデータブロックの復号化処理)
つぎに、図9および図10において説明した、異なるシステム構成間のデータの移行処理において、暗号化したまま転送されたデータブロックの復号化処理の内容について説明する。図11は、システムIから暗号化したまま転送されたデータブロックの復号化処理の内容を示す説明図である。また、図12は、システムIから暗号化したまま転送されたデータブロックの復号化処理の内容を示すシーケンス図である。図12においては、まず、システムI110の暗号器の数の情報を取得する(ステップS1201)。ステップS1201において取得されたシステムI110の暗号器の数の情報に基づいて、暗号化したシステムの暗号器の数を設定する(ステップS1202)。一方で、RAIDコントローラb112bは、それぞれが暗号化された暗号鍵に応じた組み合わせでデータブロックを取り出す(ステップS1203)。そして、設定された暗号器の数に応じた数の暗号器が、それぞれ取り出されたデータブロックを復号化する(ステップS1204)。
【0066】
復号化されたデータブロックは、データ振り分け器411によって、データブロックのまとまりとして取り出される。データブロックの並び順は、データブロックA0、データブロックA2、データブロックA1、データブロックA3の順である。このままでは、データブロックの並び順が元のデータAとは異なる。したがって、フォーマットチェンジ912によって、フォーマットチェンジをおこない(ステップS1205)、データブロックの並び順を変更する。これによって、データの並び順は、データブロックA0、データブロックA1、データブロックA2、データブロックA3の順となり、元のデータAとしてメモリb104bに一時保存し(ステップS1206)、読み込むことができる(ステップS1207)。
【0067】
以上説明したように、実施の形態3のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、データの分散の仕方が異なるシステム間でも暗号化したままデータの受け渡しができる。したがって、旧システムに記憶されたデータを、新しいシステムII911に、セキュリティを維持したままデータの移行ができる。これによって、ユーザのワークフローを広げることができる。
【0068】
なお、本実施の形態で説明したデータ暗号化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0069】
以上のように、本発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体は、機密度の高いデータを扱う機器に有用であり、特に、デジタル複合機などに適している。
【図面の簡単な説明】
【0070】
【図1】実施の形態1にかかるデータ暗号化装置の構成の一例を示す説明図である。
【図2】データ暗号化装置に乱数発生器を備えた一例を示す説明図である。
【図3】動作に対しておこなわれるデータの暗号化の処理手順を示すフローチャートである。
【図4】実施の形態2にかかるデータ暗号化装置の構成の一例を示す説明図である。
【図5】データ振り分け器の処理の内容を示す説明図である。
【図6】同じシステム構成間のデータ移行処理の内容を示す説明図である。
【図7】同じシステム構成間のデータ移行処理の内容を示すシーケンス図である。
【図8】システム情報に基づいたデータ移行処理の変更手順の内容を示すフローチャートである。
【図9】異なるシステム構成間のデータ移行処理の内容を示す説明図である。
【図10】異なるシステム構成間のデータ移行処理の内容を示すシーケンス図である。
【図11】システムIから暗号化したまま転送されたデータブロックの復号化処理の内容を示す説明図である。
【図12】システムIから暗号化したまま転送されたデータブロックの復号化処理の内容を示すシーケンス図である。
【符号の説明】
【0071】
100 データ暗号化装置
101 CPU
102 アービタ
103 外部I/Fコントローラ
104 メモリ
105 メモリコントローラ
106aa 記憶装置aa
106ab 記憶装置ab
110 システムI
111 DMAコントローラ
112 RAIDコントローラ
113aa 暗号器X
113ab 暗号器Y
114aa I/Faa
114ab I/Fab

【特許請求の範囲】
【請求項1】
入力されたデータを任意の数を有する記憶手段に応じた数のデータブロックに分散してそれぞれの前記記憶手段に転送するデータ転送制御手段と、
前記記憶手段と同じ数を有し、前記データ転送制御手段によって転送途中のデータブロックを、前記記憶手段毎に異なる暗号鍵を用いて暗号化する暗号化手段と、
前記暗号化手段によって暗号化されたデータブロックをそれぞれ記憶する任意の数を有する記憶手段と、
を備えることを特徴とするデータ暗号化装置。
【請求項2】
前記暗号化手段は、前記記憶手段毎に乱数を発生させることにより暗号鍵を作成する乱数発生手段を備えることを特徴とする請求項1に記載のデータ暗号化装置。
【請求項3】
入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け手段と、
前記データ振り分け手段によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化手段と、
前記暗号化手段によって暗号化されたデータブロックを記憶手段に転送するデータ転送制御手段と、
前記データ転送制御手段によって転送されたデータブロックを記憶する記憶手段と、
を備えることを特徴とするデータ暗号化装置。
【請求項4】
前記記憶手段は任意の数を有し、
前記データ転送制御手段は、前記記憶手段の数に応じて前記データブロックを所定のデータブロック単位でそれぞれの前記記憶手段に転送することを特徴とする請求項3に記載のデータ暗号化装置。
【請求項5】
他のデータ暗号化装置の情報を取得する取得手段と、
前記取得手段によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断手段と、
前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信手段と、
を備え、
前記データ転送制御手段は、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得手段によって取得された情報と、前記受信手段によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とする請求項3または4に記載のデータ暗号化装置。
【請求項6】
前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が異なる場合は、前記受信手段によって受信されたデータブロックの並び順を変更するフォーマット変更手段を備えることを特徴とする請求項5に記載のデータ暗号化装置。
【請求項7】
入力されたデータを任意の数を有する記憶手段に応じた数のデータブロックに分散してそれぞれの前記記憶手段に転送するデータ転送制御工程と、
前記データ転送制御工程によって転送途中のデータブロックを、前記記憶手段毎に異なる暗号鍵を用いて暗号化する暗号化工程と、
前記暗号化工程によって暗号化されたデータブロックをそれぞれ前記任意の数を有する記憶手段に記憶する記憶工程と、
を含むことを特徴とするデータ暗号化方法。
【請求項8】
入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け工程と、
前記データ振り分け工程によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化工程と、
前記暗号化工程によって暗号化されたデータブロックを記憶手段に転送するデータ転送制御工程と、
前記データ転送制御工程によって転送されたデータブロックを前記記憶手段に記憶する記憶工程と、
を含むことを特徴とするデータ暗号化方法。
【請求項9】
請求項7または8に記載のデータ暗号化方法をコンピュータに実行させることを特徴とするデータ暗号化プログラム。
【請求項10】
請求項9に記載のデータ暗号化プログラムを記録したことを特徴とするコンピュータに読み取り可能な記録媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate