(57)【特許請求の範囲】
【請求項１】
入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け手段と、
前記データ振り分け手段によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化手段と、
前記暗号化手段によって暗号化されたデータブロックを任意の数を有する記憶手段の数に応じた所定のデータブロック単位で分散してそれぞれの前記記憶手段に転送するデータ転送制御手段と、
前記データ転送制御手段によって転送されたデータブロックをそれぞれ記憶する任意の数を有する記憶手段と、
他のデータ暗号化装置の情報を取得する取得手段と、
前記取得手段によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断手段と、
前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信手段と、
を備え、
前記データ転送制御手段は、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得手段によって取得された情報と、前記受信手段によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とするデータ暗号化装置。
【請求項２】
前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が異なる場合は、前記受信手段によって受信されたデータブロックの並び順を変更するフォーマット変更手段を備えることを特徴とする請求項１に記載のデータ暗号化装置。
【請求項３】
入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け工程と、
前記データ振り分け工程によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化工程と、
前記暗号化工程によって暗号化されたデータブロックを任意の数を有する記憶手段の数に応じた所定のデータブロック単位で分散してそれぞれの前記記憶手段に転送するデータ転送制御工程と、
前記データ転送制御工程によって転送されたデータブロックをそれぞれ前記任意の数を有する記憶手段に記憶する記憶工程と、
他のデータ暗号化装置の情報を取得する取得工程と、
前記取得工程によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断工程と、
前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信工程と、
を含み、
前記データ転送制御工程は、前記判断工程によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得工程によって取得された情報と、前記受信工程によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とするデータ暗号化方法。
【請求項４】
請求項３に記載のデータ暗号化方法をコンピュータに実行させることを特徴とするデータ暗号化プログラム。
【請求項５】
請求項４に記載のデータ暗号化プログラムを記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを暗号化するデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体に関する。
【背景技術】
【０００２】
従来、複数の記憶装置を備えたデータ記憶装置において、記憶されたデータのセキュリティを維持する様々な手段が提案されている。たとえば、データのセキュリティを維持する手段を持つ装置としては、データの記憶された記憶装置を簡単に着脱禁止にするデータ記憶装置がある。これらデータ記憶装置においては、第３者の持ち出しや不用意な着脱を簡単な構成で防止することができる（たとえば、下記特許文献１参照。）。
【０００３】
また、たとえば、データのセキュリティを維持する手段を持つ装置としては、一つの暗号器を備えたデータ記憶装置がある。これら暗号器を備えたデータ記憶装置においては、暗号器に接続された乱数発生器が発生した乱数によって、暗号鍵を作成する。そして、暗号器は、この暗号鍵を用いることで、データの暗号化をおこなう（たとえば、下記特許文献２、３参照。）。
【０００４】
【特許文献１】特開２００４−１０６２０７号公報
【特許文献２】特開２００３−０５９１７８号公報
【特許文献３】特開２００２−１５２１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に記載された技術では、記憶装置を直接持ち出さなくても、通信などにより記憶装置に記憶されたデータの内容を見ることができるため、データのセキュリティを維持できないという問題がある。
【０００６】
また、上述の特許文献２または３に記載された技術では、データを暗号化することで、通信などにおいてもデータのセキュリティを維持できるが、一つの暗号器で複数の記憶装置の暗号化をおこなうため、データの量が多いと暗号化、復号化に時間がかかる。
【０００７】
また、暗号器に備えられた乱数発生器は、記憶装置毎には乱数を生成しない。したがって、乱数の生成手段がわかると複数の記憶装置に分散されているすべてのデータが解読されてしまう。このように、一つの暗号が解読されると、すべての暗号鍵が盗まれる可能性が高い。さらに、暗号器は、一時的な動作に対しても常に管理している暗号鍵を使うため、暗号鍵を盗まれた場合は、第３者にすべての一時的な動作が傍受されてしまう。したがって、データ記憶装置に暗号器を一つ備えても、データのセキュリティを維持することが困難である。
【０００８】
この発明は、上述した従来技術による問題点を解消するため、複数の暗号器によって分散したデータを暗号化することで、セキュリティを高めつつ暗号化の効率を上げることができるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかるデータ暗号化装置は、入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け手段と、前記データ振り分け手段によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化手段と、前記暗号化手段によって暗号化されたデータブロックを任意の数を有する記憶手段の数に応じた所定のデータブロック単位で分散してそれぞれの記憶手段に転送するデータ転送制御手段と、前記データ転送制御手段によって転送されたデータブロックをそれぞれ記憶する任意の数を有する記憶手段と、他のデータ暗号化装置の情報を取得する取得手段と、前記取得手段によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断手段と、前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信手段と、を備え、前記データ転送制御手段は、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得手段によって取得された情報と、前記受信手段によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とする。
【００１４】
また、請求項２の発明にかかるデータ暗号化装置は、請求項１に記載の発明において、前記判断手段によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が異なる場合は、前記受信手段によって受信されたデータブロックの並び順を変更するフォーマット変更手段を備えることを特徴とする。
【００１５】
また、請求項３の発明にかかるデータ暗号化方法は、入力されたデータを任意の数を有する暗号化手段に応じた数のデータブロックに振り分けるデータ振り分け工程と、前記データ振り分け工程によって振り分けられたデータブロックを、それぞれ異なる暗号鍵を用いて暗号化する暗号化工程と、前記暗号化工程によって暗号化されたデータを任意の数を有する記憶手段の数に応じた所定のデータブロック単位で分散してそれぞれの前記記憶手段に転送するデータ転送制御工程と、前記データ転送制御工程によって転送されたデータブロックをそれぞれ前記任意の数を有する記憶手段に記憶する記憶工程と、他のデータ暗号化装置の情報を取得する取得工程と、前記取得工程によって取得された他のデータ暗号化装置の情報に基づき、前記情報に含まれる暗号化手順において、前記他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断工程と、前記他のデータ暗号化装置によって暗号化されたデータブロックを受信する受信工程と、を含み、前記データ転送制御工程は、前記判断工程によって前記他のデータ暗号化装置と自装置のデータブロックの並び順が同一の場合は、前記取得工程によって取得された情報と、前記受信工程によって受信されたデータブロックをそのまま前記記憶手段に転送することを特徴とする。
【００１７】
また、請求項４の発明にかかるデータ暗号化プログラムは、請求項３に記載の方法をコンピュータに実行させることを特徴とする。
【００１８】
また、請求項５の発明にかかる記録媒体は、請求項４に記載のプログラムを記録したコンピュータに読み取り可能であることを特徴とする。
【発明の効果】
【００１９】
本発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、複数の暗号器によって分散したデータを暗号化することで、セキュリティを高めつつ暗号化の効率を上げることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【００２１】
（実施の形態１）
（実施の形態１にかかるデータ暗号化装置の構成の一例）
はじめに、本発明の実施の形態１にかかるデータ暗号化装置１００の構成の一例について説明する。図１は実施の形態１にかかるデータ暗号化装置１００の構成の一例を示す説明図である。図１において、実施の形態１にかかるデータ暗号化装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、アービタ１０２と、外部Ｉ／Ｆコントローラ１０３と、メモリ１０４と、メモリコントローラ１０５と、記憶装置ａａ１０６ａａと、記憶装置ａｂ１０６ａｂと、システムＩ１１０と、を含み構成されている。各構成部１０１〜１１０は、バスによって接続されている。また、システムＩ１１０は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１１１と、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）コントローラ１１２と、暗号器Ｘ１１３ａａと、暗号器Ｙ１１３ａｂと、Ｉ／Ｆａａ１１４ａａと、Ｉ／Ｆａｂ１１４ａｂと、を含み構成されている。また、記憶装置の数は任意であり、記憶装置毎に暗号器とＩ／Ｆが備えられている。
【００２２】
ＣＰＵ１０１は、アービタ１０２に接続される。ＣＰＵ１０１は、メモリ１０４をワークエリアとして使用し、図示しないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に記録された各種プログラムを実行することによって、データ暗号化装置１００の全体の制御を司る。
【００２３】
外部Ｉ／Ｆコントローラ１０３は、ケーブルを介して外部装置と接続され、外部装置とデータ暗号化装置１００とのインターフェースとして機能する。また、外部Ｉ／Ｆコントローラ１０３は、無線を介してネットワークに接続され、外部装置とデータ暗号化装置１００とのインターフェースとして機能する。外部Ｉ／Ｆコントローラ１０３は、さらに、無線を介してインターネットなどの通信網に接続され、この通信網とデータ暗号化装置１００とのインターフェースとしても機能する。
【００２４】
メモリ１０４は、メモリコントローラ１０５に接続される。メモリコントローラ１０５は、アービタ１０２に接続され、アービタ１０２による指示を受け、アービタ１０２によって指定されたバスでつながれたデバイス（構成部）による指示を受け付ける。指定されたデバイスは、メモリコントローラ１０５を介してメモリ１０４へアクセスをおこなう。アービタ１０２によって選択されたデバイスの要求は、メモリコントローラ１０５へ送出され、メモリコントローラ１０５では、メモリ１０４へアクセスするために必要なタイミング信号を生成し、最終的にメモリ１０４にアクセスをおこなう。
【００２５】
メモリ１０４は、具体的には、たとえば、外部Ｉ／Ｆコントローラ１０３によって入力を受け付けたデータを、記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂに転送する前に一時的に保存する。また、メモリ１０４は、記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂから読み出されたデータを、外部Ｉ／Ｆコントローラ１０３によって出力する前に一時的に保存する。
【００２６】
ＤＭＡコントローラ１１１は、アービタ１０２に接続される。ＤＭＡコントローラ１１１は、メモリ１０４とデバイス間のデータの転送を、ＣＰＵ１０１を介することなくおこなうことができる。具体的には、たとえば、メモリ１０４で一時保存したデータをＲＡＩＤコントローラ１１２へ転送をおこなう場合、ＣＰＵ１０１を介することなく、直接データを転送することができる。このため、ＤＭＡコントローラ１１１は、データの転送速度を向上させ、ＣＰＵ１０１の負担を減らすことができる。
【００２７】
記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂは、記憶媒体と記憶媒体ドライブによって構成されている。記憶媒体ドライブは、ＣＰＵ１０１の制御にしたがって記憶媒体に対するデータの読み取り／書き込みを制御する。記憶媒体は、記憶媒体ドライブの制御で書き込まれたデータを記録する。なお、データは、分散されていてもよい。記憶媒体としてはＨＤ（Ｈａｒｄ  Ｄｉｓｋ）、記憶媒体ドライブとしてはＨＤドライブを用いることができる。また、記憶装置の数は任意であり、図１においては、記憶装置が記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂの２つの場合を説明する。
【００２８】
ＲＡＩＤコントローラ１１２は、記憶装置の数に応じてデータブロックを所定の単位で分散し、分散されたデータブロックをそれぞれの記憶装置に転送するデータ転送制御機能を実現する。具体的には、たとえば、メモリ１０４に一時保存されたデータをＤＭＡコントローラ１１１によってメモリ１０４から直接受け付け、記憶装置の数に応じてデータブロックを所定の単位で分散する。そして、分散されたデータブロックをそれぞれの記憶装置に転送する。
【００２９】
暗号器Ｘ１１３ａａおよび暗号器Ｙ１１３ａｂは、それぞれ異なる暗号鍵を用いて暗号化する暗号化機能を実現する。図１においては、暗号器Ｘ１１３ａａは暗号鍵Ｘ１１５ａａを用いて暗号化し、暗号器Ｙ１１３ａｂは暗号鍵Ｙ１１５ａｂを用いて暗号化する。暗号器Ｘ１１３ａａはＩ／Ｆａａ１１４ａａを介して、記憶装置ａａ１０６ａａに接続されている。また、暗号器Ｙ１１３ａｂは、Ｉ／Ｆａｂ１１４ａｂを介して記憶装置ａｂ１０６ａｂに接続されている。
【００３０】
つぎに、データ暗号化装置１００の暗号化手順について説明する。まず、外部Ｉ／Ｆコントローラ１０３によってデータの入力を受け付ける。メモリ１０４は、受け付けたデータを、メモリコントローラ１０５の制御によって、一時保存する。つぎに、ＤＭＡコントローラ１１１は、一時保存されたデータを、ＣＰＵ１０１を介さずにＲＡＩＤコントローラ１１２へ転送する。ＲＡＩＤコントローラ１１２は、記憶装置の数に応じてデータブロックを所定の単位に分散し、分散されたデータブロックをそれぞれの記憶装置へ転送する。ここで、ＲＡＩＤコントローラ１１２から記憶装置へ転送途中のデータブロックは暗号器を通る。暗号器は、データブロックを受け付けると、それぞれの暗号器がそれぞれの暗号鍵を用いて、データブロックを暗号化する。そして、記憶装置によって、暗号化されたデータブロックを記憶する。
【００３１】
上述したように、記憶装置にデータブロックを転送する際に、それぞれの記憶装置毎に暗号器が接続されているため、データの暗号化にかかる時間の短縮を図ることができる。さらに、記憶装置に記憶されるデータブロックは、ＲＡＩＤコントローラ１１２によって記憶装置の数に応じてデータブロックを所定の単位に分散してから暗号化する。したがって、記憶装置毎に暗号器がぞれぞれの暗号鍵を用いて暗号化するため、データのセキュリティを高めることができる。
【００３２】
また、データ暗号化装置１００の複号化手順については、暗号化手順と逆の手順をとる。データ暗号化装置１００は、複号化の要求を受け付けると、ＲＡＩＤコントローラ１１２は、それぞれの記憶装置に記憶されたデータブロックを順に取り出す。記憶装置からＲＡＩＤコントローラ１１２へ転送途中のデータブロックは暗号器を通る。暗号器は、データブロックを受け付けると、それぞれの暗号器がそれぞれの暗号鍵を用いて、データブロックを復号化する。したがって、ＲＡＩＤコントローラ１１２においては、複号化されたデータブロックが順に集められる。このため、ＲＡＩＤコントローラ１１２で集められたデータは、暗号化する前のデータとして読み出される。
【００３３】
（データ暗号化装置に乱数発生器を備えた一例）
つぎに、データ暗号化装置１００に、乱数発生器を備えた場合について説明する。図２は、データ暗号化装置に乱数発生器を備えた一例を示す説明図である。乱数発生器は、それぞれの暗号器に備えられる。図２においては、乱数発生器Ｘ２０１ａａは暗号器Ｘ１１３ａａに備えられ、乱数発生器Ｙ２０１ａｂは暗号器Ｙ１１３ａｂに備えられる。乱数発生器は、異なる初期値を設定することで、それぞれの乱数発生器で異なる乱数を発生する。したがって、暗号器は、それぞれに接続された乱数発生器によって発生した乱数を用いて暗号鍵を作成し、作成された暗号鍵を用いてデータブロックを暗号化する。
【００３４】
また、乱数発生器は、データを消去するために、記憶装置に記憶されたデータに上書きする乱数を発生する。ここで、データの消去とは、通常の「削除」コマンドでのデータの消去ではなく、ランダムライト方式などによって、データを復元できない状態にするデータの消去である。ランダムライト方式とは、データに乱数を上書きすることでデータの内容を完全に消去する方式である。また、乱数発生器は、暗号鍵を作成するために発生した乱数とは異なる乱数を発生させてデータの消去をおこなう。このため、データを暗号化するための乱数と、データの消去のための乱数が異なるため、データを暗号化した暗号鍵が解読されにくい。
【００３５】
（動作に対しておこなわれるデータの暗号化の処理手順）
つぎに、動作に対しておこなわれるデータの暗号化の処理手順について説明する。図３は、動作に対しておこなわれるデータの暗号化の処理手順を示すフローチャートである。ここで、動作とは、たとえば、コピーやスキャナによる動作である。図３においては、まず、動作によるデータの入力を受け付けるまで待って（ステップＳ３０１：Ｎｏのループ）、データの入力を受け付けた場合（ステップＳ３０１：Ｙｅｓ）、メモリ１０４は、データを一時保存する（ステップＳ３０２）。つぎに、ＤＭＡコントローラ１１１は、一時保存されたデータを、ＣＰＵ１０１を介さずにＲＡＩＤコントローラ１１２に転送する。そして、ＲＡＩＤコントローラ１１２は、記憶装置の数に応じてデータブロックを所定の単位に分散する（ステップＳ３０３）。
【００３６】
ステップＳ３０３において分散されたデータブロックは、ＲＡＩＤコントローラ１１２から記憶装置への転送途中に、それぞれの記憶装置に備えられた暗号器を通る。暗号器に備えられた乱数発生器は、データブロックを受け付けると乱数を発生する（ステップＳ３０４）。つぎに、暗号器は、備えられた乱数発生器によって発生した乱数を用いて、それぞれの暗号器においてそれぞれの暗号鍵を作成する（ステップＳ３０５）。そして、暗号器は、作成された暗号鍵を用いてデータブロックを暗号化する（ステップＳ３０６）。
【００３７】
つづけて、暗号化されたデータブロックを記憶装置へ転送し、記憶装置に記憶する（ステップＳ３０７）。ステップＳ３０７において、データブロックが記憶されるとともに、暗号器は、ステップＳ３０５において作成した暗号鍵を無効にし（ステップＳ３０８）、一連の処理を終了する。これによって、動作に対しておこなわれるデータの暗号化の場合でも、暗号器によって動作毎に乱数を発生させることで、暗号器毎に異なる暗号鍵を作成し、データを暗号化する。さらに、動作が終わるとそれぞれの暗号器において作成された暗号鍵を無効にするため、動作が傍受される可能性が低くなる。
【００３８】
以上説明したように、実施の形態１のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、記憶装置毎に暗号器と、乱数発生器を備えているため、データの暗号化および復号化の時間短縮を図ることができる。さらに、それぞれの暗号器毎に暗号鍵を用いて暗号化するため、データのセキュリティを高めることができる。
【００３９】
（実施の形態２）
（データ暗号化装置の構成の一例）
つぎに、実施の形態２にかかるデータ暗号化装置４００の構成の一例について説明する。図４は、実施の形態２にかかるデータ暗号化装置４００の構成の一例を示す説明図である。実施の形態２は、上述の実施の形態１にかかるデータ暗号化装置１００におけるシステムＩ１１０をシステムＩＩ４１０に変更する。システムＩＩ４１０には、データ振り分け装置４１１を備え、暗号化手順において、ＲＡＩＤコントローラ１１２と、暗号器Ｘ１１３ａａおよび暗号器Ｙ１１３ａｂの手順を入れ替える点で、実施の形態１にかかるシステムＩ１１０と異なる。なお、実施の形態２においては、上述した実施の形態１と同一部分は同一符号で示し、説明も省略する。
【００４０】
図４において、実施の形態２にかかるデータ暗号化装置４００は、ＣＰＵ１０１と、アービタ１０２と、外部Ｉ／Ｆコントローラ１０３と、メモリ１０４と、メモリコントローラ１０５と、記憶装置ａａ１０６ａａと、記憶装置ａｂ１０６ａｂと、システムＩＩ４１０と、を含み構成されている。各構成部１０１〜４１０は、バスによって接続されている。システムＩＩ４１０は、ＤＭＡコントローラ１１１と、ＲＡＩＤコントローラ１１２と、暗号器Ｘ１１３ａａと、暗号器Ｙ１１３ａｂと、Ｉ／Ｆａａ１１４ａａと、Ｉ／Ｆａｂ１１４ａｂと、データ振り分け器４１１と、を含み構成されている。また、記憶装置の数と、暗号器の数と、Ｉ／Ｆの数は任意であり、Ｉ／Ｆの数は記憶装置の数以上備えられている。したがって、暗号器の数は記憶装置の数と同一でなくてもよい。
【００４１】
（データ振り分け器の処理）
つぎに、データ振り分け器４１１の処理の内容について説明する。図５は、データ振り分け器４１１の処理の内容を示す説明図である。データ振り分け器４１１は、受け付けたデータを設定された暗号器の数に応じて順に振り分けるデータ振り分け機能を実現する。図５においては、データＡを暗号器Ｘ１１３ａａと、暗号器Ｙ１１３ａｂとに振り分ける。また、図５においては、データＡをデータブロックＡ０〜Ａ３までの４つのデータブロックに分割して説明する。データブロックの並び順はデータブロックＡ０、データブロックＡ１、データブロックＡ２、データブロックＡ３の順であり、データブロックの並び順が異なるとデータは読み取ることができない。
【００４２】
図５においては、暗号器Ｘ１１３ａａと暗号器Ｙ１１３ａｂが接続されているので、データ振り分け器４１１は、受け付けたデータＡを、順に２つの暗号器に振り分ける。具体的には、データ振り分け器４１１は、データブロックＡ０とデータブロックＡ１の組み合わせを暗号器Ｘ１１３ａａへ振り分け、データブロックＡ２とデータブロックＡ３の組み合わせを暗号器Ｙ１１３ａｂへ振り分ける。そして、振り分けられたデータは暗号器Ｘ１１３ａａおよび暗号器Ｙ１１３ａｂによってそれぞれ暗号化される。本発明においては、暗号器Ｘ１１３ａａによって暗号化されたデータブロックＡ０およびデータブロックＡ１は、データブロックＡ０ＸおよびデータブロックＡ１Ｘと記載する。同様に、暗号器Ｙ１１３ａｂによって暗号化されたデータブロックＡ２およびデータブロックＡ３は、データブロックＡ２ＹおよびデータブロックＡ３Ｙと記載する。
【００４３】
つぎに、実施の形態２にかかるデータ暗号化装置４００の暗号化手順について説明する。まず、外部Ｉ／Ｆコントローラ１０３によってデータの入力を受け付ける。メモリ１０４は、受け付けたデータを、メモリコントローラ１０５の制御によって一時保存する。ＤＭＡコントローラ１１１は、一時保存されたデータを、ＣＰＵ１０１を介さずにデータ振り分け器４１１へ転送する。つぎに、データ振り分け器４１１は、暗号器の数に応じてデータを振り分ける。暗号器Ｘ１１３ａａおよび暗号器Ｙ１１３ａｂは、振り分けられたデータを、それぞれの暗号器がそれぞれの暗号鍵を用いて暗号化する。暗号化されたデータは、ＲＡＩＤコントローラ１１２へ転送される。ＲＡＩＤコントローラ１１２は、記憶装置の数に応じて所定の単位でデータを分散し、分散されたデータブロックを記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂへ転送する。
【００４４】
図５の説明では、データ振り分け器４１１によって振り分けられたデータを暗号化した後に、ＲＡＩＤコントローラ１１２によってそれぞれの記憶装置に分散するので、暗号器の数が記憶装置の数と同一でなくてもよい。暗号器の数が多いほど、データのセキュリティの維持がさらに確実になる。これによって、ユーザは自身の好みに合わせて記憶装置の数を変えることができるため、様々なワークフローに対応することができる。
【００４５】
また、データ暗号化装置４００の復号化手順については、暗号化手順と逆の手順をとる。データ暗号化装置４００は、復号化の要求を受け付けると、ＲＡＩＤコントローラ１１２によって、それぞれの記憶装置に記憶されたデータブロックを順に取り出す。取り出されたデータブロックは、記憶装置からＲＡＩＤコントローラ１１２へ転送される。つぎに、暗号器は、ＲＡＩＤコントローラ１１２で順に集められたデータブロックを、それぞれのデータブロックを暗号化した暗号鍵によって復号化する。そして、データ振り分け器４１１は、復号化されたデータブロックを順に集める。このため、データ振り分け器４１１で集められたデータは、暗号化する前のデータとして読み出される。
【００４６】
（同じシステム構成間のデータ移行処理）
つぎに、同じシステム構成間のデータ移行処理の内容について説明する。図６は、同じシステム構成間のデータ移行処理の内容を示す説明図である。図６は、実施の形態２にかかるデータ暗号化装置４００同士のデータ移行処理の内容を示している。図６においては、データ暗号化装置ａ６００に記憶されたデータを、データ暗号化装置ｂ６１０に移行する。ここで、データ暗号化装置ａ６００に含まれるシステムＩＩａ６０１と、移行先のデータ暗号化装置ｂ６１０に含まれるシステムＩＩｂ６１１とは同じシステム構成で、データ暗号化装置ａ６００とデータ暗号化装置ｂ６１０とは、記憶装置の数のみが異なる。
【００４７】
また、図６においては、システムＩＩａ６０１に含まれる暗号器Ｘ１１３ａａと、システムＩＩｂ６１１に含まれる暗号器Ｘ１１３ｂａは、同一の暗号鍵Ｘによって暗号化をおこなう暗号器である。同様に、システムＩＩａ６０１に含まれる暗号器Ｙ１１３ａｂと、システムＩＩｂ６１１に含まれる暗号器Ｙ１１３ｂｂは、同一の暗号鍵Ｙによって暗号化をおこなう暗号器である。また、図６においては、データ暗号化装置ａ６００において、記憶装置ａａ１０６ａａには、データブロックＡ０ＸおよびデータブロックＡ２Ｙが記憶されており、記憶装置ａｂ１０６ａｂには、データブロックＡ１ＸおよびデータブロックＡ３Ｙが記憶されている。
【００４８】
図７は、同じシステム構成間のデータ移行処理の内容を示すシーケンス図である。図７においては、まず、システムＩＩａ６０１は、システムＩＩｂ６１１のシステム情報を取得する（ステップＳ７０１）。ここで、システム情報とは、システムの構成を識別する識別情報と、移行先のシステム内の暗号器の数の情報である。ステップＳ７０１において、取得したシステム情報に含まれる暗号器の数の情報に基づいて、システムＩＩｂ６１１の暗号器の数がシステムＩＩａ６０１の暗号器の数より小さいか否かを判断する。暗号器において、暗号化されたデータブロックが転送された場合は、暗号器が暗号化に用いた暗号鍵によって暗号化されたデータブロックのみ通過することができる。
【００４９】
したがって、データの移行先のシステムの暗号器の数が、データの移行元のシステムの暗号器の数より小さい場合は、暗号鍵の種類が移行先のシステムの方が少ないため、暗号化されたデータブロックのうちに暗号器を通過しないデータブロックがあり、記憶装置にデータを転送することができない。この場合、一度データを復号化してから、移行先のシステムにデータを送出し、移行先のシステムにおいて、再度、暗号化処理をおこなう必要がある。図７においては、システムＩＩｂ６１１の暗号器の数がシステムＩＩａ６０１の暗号器の数より小さければ、復号してからデータを送出する（ステップＳ７０２）。一方、システムＩＩｂ６１１の暗号器の数がシステムＩＩａ６０１の暗号器の数より大きい場合は、暗号化したままデータを移行することができる。以降は、本実施の形態２の特徴である、暗号化したままデータを移行するデータ移行処理について説明する。
【００５０】
つぎに、システムＩＩａ６０１は、システムＩＩｂ６１１へ暗号器の数を通知する（ステップＳ７０３）。システムＩＩｂ６１１においては、通知されたシステムＩＩａ６０１の暗号器の数の設定をおこなう（ステップＳ７０４）。一方、システムＩＩａ６０１においては、ステップＳ７０３において、暗号器の数を通知後は、まず、記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂに記憶されたデータを取得する（ステップＳ７０５）。具体的には、まず、ＲＡＩＤコントローラａ１１２ａによって記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂから取り出されたデータブロックは、暗号鍵Ｘ１１３ａａで暗号化されたデータブロックＡ０ＸおよびデータブロックＡ１Ｘと、暗号鍵Ｙ１１３ａｂで暗号化されたデータブロックＡ２ＹおよびデータブロックＡ３Ｙの組み合わせに分けられる。分けられたデータブロックは、それぞれの暗号器を通過する。
【００５１】
つぎに、データ振り分け器ａ４０１ａは、暗号器を通過したデータブロックの組み合わせを順に取ってくることで、元のデータＡのデータブロックの並び順でデータＡを暗号化されたまま取り出すことができる。したがって、システムＩＩａ６０１から取り出されたデータＡを、そのままシステムＩＩｂ６１１に移行しても、データブロックの並び順を変更しなくてよい。つぎに、メモリａ１０４ａは、取り出されたデータＡを、一時保存する（ステップＳ７０６）。ステップＳ７０６において、一時保存されたデータを読み込み（ステップＳ７０７）、システムＩＩｂ６１１へデータを送信する（ステップＳ７０８）。
【００５２】
システムＩＩｂ６１１へのデータ送信は、まず、データ暗号化装置６１０の外部Ｉ／Ｆコントローラ１０３がデータを受け付ける。受け付けたデータをメモリｂ１０４ｂに一時保存する（ステップＳ７０９）。さらに、一時保存されたデータを読み込んで（ステップＳ７１０）、システムＩＩｂ６１１へ転送する。データ振り分け器ｂ４０１ｂは、システムＩＩｂ６１１へ転送されたデータを、暗号器の数に応じて順に振り分ける。そして、データブロックは、それぞれが暗号化に用いた暗号鍵を管理している暗号器を通過する（ステップＳ７１１）。したがって、データブロックＡ０ＸおよびデータブロックＡ１Ｘの組み合わせは、暗号器Ｘ１１３ｂａを通過する。同様に、データブロックＡ２ＹおよびデータブロックＡ３Ｙの組み合わせは、暗号器Ｙ１１３ｂｂを通過する。
【００５３】
ステップＳ７１１において、暗号器を通過したデータブロックの組み合わせは、ＲＡＩＤコントローラｂ１１２ｂに集められる。そして、ＲＡＩＤコントローラｂ１１２ｂは、記憶装置の数に応じてデータブロックを所定の単位で分散しそれぞれの記憶装置に転送する。図７においては、記憶装置ｂ１０６ｂが１つなので、ＲＡＩＤコントローラｂ１１２ｂは、すべてのデータブロックを記憶装置ｂ１０６ｂに転送する。つづけて、記憶装置ｂ１０６ｂは、転送されたデータの書き込みをおこなう（ステップＳ７１２）。また、ステップＳ７１２とともに、記憶装置ｂ１０６ｂに備えられたファイル管理部６１２へ、ステップＳ７０４において設定された暗号器の数の情報を保存する（ステップＳ７１３）。
【００５４】
なお、ステップＳ７１２においては、記憶装置ｂ１０６ｂが１つであるとしたが、これに限るものではない。たとえば、記憶装置が２つの場合は、データブロックの組み合わせは、データブロックＡ０ＸおよびデータブロックＡ２Ｙの組み合わせと、データブロックＡ１ＸおよびデータブロックＡ３Ｙの組み合わせに分けられ、それぞれが記憶装置に記憶される。
【００５５】
以上説明したように、実施の形態２のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、記憶装置の数は、暗号器の数に関わらず設定することができる。このため、ユーザの使用目的に合わせて記憶装置の数を変更することができるため、ユーザのワークフローを広げることができる。また、システムＩＩ４１０同士のデータ移行に関しては、暗号化したままデータを移行するため、データのセキュリティを維持したままデータを移行することができる。このため、データのセキュリティをより高めることができる。
【００５６】
（実施の形態３）
（システム情報に基づいたデータ移行処理の変更手順）
つぎに、システム情報に基づいたデータ移行処理の変更手順について説明する。図８は、システム情報に基づいたデータ移行処理の変更手順の内容を示すフローチャートである。図８においては、データを移行する場合に、移行先もしくは移行元のどちらか片方のデータ暗号化装置に含まれたシステムが、実施の形態２にかかるデータ暗号化装置４００に備えられたシステムＩＩ４１０である場合について説明する。図８において、まず、データ暗号化装置４００は、接続された他のデータ暗号化装置のシステム情報を取得する（ステップＳ８０１）。ステップＳ８０１において、接続された他のデータ暗号化装置のシステム情報を取得する取得機能を実現する。また、ステップＳ８０１において、取得されたシステム情報に含まれる識別情報に基づいて、相手先がシステムＩＩ４１０か否かを判断する（ステップＳ８０２）。ステップＳ８０２において、識別情報を用い、接続された他のデータ暗号化装置と自装置のデータブロックの並び順が一致するか否かを判断する判断機能を実現する。
【００５７】
ステップＳ８０２において、相手先がシステムＩＩ４１０の場合（ステップＳ８０２：Ｙｅｓ）は、フォーマットチェンジをしないで（ステップＳ８０３）、図７において説明したシステムＩＩ４１０同士のデータ移行処理をおこなう（ステップＳ８０４）。一方、ステップＳ８０２において、相手先がシステムＩＩ４１０ではない場合（ステップＳ８０２：Ｎｏ）は、フォーマットチェンジを実行し（ステップＳ８０５）、データブロックの並び順を変える。これによって、システムＩＩ４１０と他のシステム間のデータ移行処理をおこなう（ステップＳ８０６）。なお、フォーマットチェンジおよびフォーマットチェンジを備えたシステムＩＩについては、図９において詳細に説明する。
【００５８】
（異なるシステム構成間のデータ移行処理）
図９は、異なるシステム構成間のデータ移行処理の内容を示す説明図である。図９においては、システムＩＩ９１０と旧システムとのデータ移行処理について説明する。図９においては、移行元のデータ暗号化装置１００のシステム構成がシステムＩ１１０という点と、移行先のデータ暗号化装置９１０のシステム構成であるシステムＩＩ９１１に、フォーマットチェンジ９１２を備えている点で、図６のデータ移行処理とは異なる。ここで、フォーマットチェンジ９１２は、データブロックの並び順を変更するフォーマット変更機能を実現する。たとえば、実施の形態１におけるデータ暗号化装置１００においては、同じ構成で、さらに、記憶装置の数が同数である場合に、データを暗号化したまま移行できる。したがって、実施の形態１におけるデータ暗号化装置１００のデータを暗号化したまま、実施の形態２におけるデータ暗号化装置４００に移行する場合には、データブロックの並び順を変更する必要がある。
【００５９】
具体的には、実施の形態１にかかるデータ暗号化装置１００におけるデータ暗号化手順によると、ＲＡＩＤコントローラａ１１２ａは、所定の単位でデータブロックを分散する。このため、暗号器Ｘ１１３ａａを通るデータブロックは、データブロックＡ０と、データブロックＡ２の組み合わせとなる。また、同様に、暗号器Ｙ１１３ａｂを通るデータブロックは、データブロックＡ１と、データブロックＡ３の組み合わせとなる。したがって、記憶装置ａａ１０６ａａに記憶されるデータブロックは、データブロックＡ０ＸおよびデータブロックＡ２Ｘとなり、記憶装置ａｂ１０６ａｂに記憶されるデータブロックは、データブロックＡ１ＹおよびデータブロックＡ３Ｙとなる。
【００６０】
つぎに、暗号化されたデータを取り出すと、データブロックの並び順は、データブロックＡ０Ｘ、データブロックＡ１Ｙ、データブロックＡ２Ｘ、データブロックＡ３Ｙの順となる。したがって、このデータブロックの並び順でシステムＩＩ９１１にデータを移行する場合、データ振り分け器４１１は、暗号器の数によってデータを振り分けるため、たとえば、暗号器Ｘ１１３ｂａに振り分けられるデータブロックは、データブロックＡ０Ｘと、データブロックＡ１Ｙの組み合わせとなる。したがって、データブロックは、暗号器Ｘ１１３ｂａを通過しない。また、暗号器Ｙ１１３ｂｂについても同様である。このため、データ移行手順においてデータ振り分け器４１１で処理をおこなう前に、フォーマットチェンジ９１２でフォーマットチェンジをおこなう必要がある。フォーマットチェンジをおこなうことで、データブロックの並び順を変更し、それぞれの暗号器を通過できるようにする。
【００６１】
図１０は、異なるシステム構成間のデータ移行処理の内容を示すシーケンス図である。図１０においては、システムＩ１１０からシステムＩＩ９１１へデータを移行する。図１０において、まず、システムＩＩ９１１が、システムＩ１１０のシステム情報を取得する（ステップＳ１００１）。ステップＳ１００１において取得したシステムＩ１１０のシステム情報に含まれる暗号器の数の情報に基づいて、システムＩ１１０の暗号器の数がシステムＩＩ９１１の暗号器の数より大きければ、復号依頼を送出する（ステップＳ１００２）。復号依頼を受け取ったシステムＩ１１０は、データの復号化処理をおこなう（ステップＳ１００３）。一方、システムＩＩ９１１の暗号器の数がシステムＩ１１０の暗号器の数より小さい場合は、暗号化したままデータを移行することができる。以降は、本実施の形態３の特徴である、暗号化したままデータを移行するデータ移行処理について説明する。
【００６２】
つぎに、システムＩＩ９１１は、ステップＳ１００１において取得されたシステムＩ１１０の暗号器の数の設定をおこなう（ステップＳ１００４）。一方、システムＩ１１０においては、ＲＡＩＤコントローラａ１１２ａは、記憶装置ａａ１０６ａａおよび記憶装置ａｂ１０６ａｂに記憶されたデータを取得する（ステップＳ１００５）。具体的には、ＲＡＩＤコントローラａ１１２ａは、記憶装置ａａ１０６ａａから、データブロックＡ０ＸとデータブロックＡ２Ｘの組み合わせを取り出し、記憶装置ａｂ１０６ａｂから、データブロックＡ１ＹとデータブロックＡ３Ｙの組み合わせを取り出す。取り出されたデータブロックは、それぞれの組み合わせが暗号化に用いた暗号鍵を管理する暗号器を通過して、ＲＡＩＤコントローラａ１１２ａに集められる。集められたデータブロックのまとまりを、メモリａ１０４ａは、一時保存する（ステップＳ１００６）。ステップＳ１００６において、一時保存されたデータを読み込み（ステップＳ１００７）、システムＩＩ９１１に送信する（ステップＳ１００８）。
【００６３】
システムＩＩ９１１へのデータ送信は、まず、データ暗号化装置９１０の外部Ｉ／Ｆコントローラ１０３がデータを受け付ける。受け付けたデータをメモリｂ１０４ｂに一時保存する（ステップＳ１００９）。さらに、一時保存されたデータを読み込んで（ステップＳ１０１０）、システムＩＩ９１１へ転送する。そして、フォーマットチェンジ９１２は、システムＩＩ９１１へ転送されたデータを、フォーマットチェンジする（ステップＳ１０１１）。つまり、データブロックの並び順を、暗号化された暗号鍵に応じた組み合わせの並び順に変更する。つぎに、データ振り分け器４１１は、並び順を変更したデータブロックを振り分ける。そして、データブロックは、それぞれが暗号化に用いた暗号鍵を管理している暗号器を通過する（ステップＳ１０１２）。
【００６４】
ステップＳ１０１２において、暗号器を通過したデータブロックの組み合わせは、ＲＡＩＤコントローラｂ１１２ｂに集められる。そして、ＲＡＩＤコントローラｂ１１２ｂは、記憶装置の数に応じてデータブロックを所定の単位で分散しそれぞれの記憶装置に転送する。つづけて、記憶装置ｂ１０６ｂは、転送されたデータの書き込みをおこなう（ステップＳ１０１３）。また、ステップＳ１０１３と同時に、ステップＳ１００４において設定された暗号器の数の情報を、記憶装置ｂ１０６ｂに備えられたファイル管理部６１２へ保存する（ステップＳ１０１４）。
【００６５】
（暗号化したまま転送されたデータブロックの復号化処理）
つぎに、図９および図１０において説明した、異なるシステム構成間のデータの移行処理において、暗号化したまま転送されたデータブロックの復号化処理の内容について説明する。図１１は、システムＩから暗号化したまま転送されたデータブロックの復号化処理の内容を示す説明図である。また、図１２は、システムＩから暗号化したまま転送されたデータブロックの復号化処理の内容を示すシーケンス図である。図１２においては、まず、システムＩ１１０の暗号器の数の情報を取得する（ステップＳ１２０１）。ステップＳ１２０１において取得されたシステムＩ１１０の暗号器の数の情報に基づいて、暗号化したシステムの暗号器の数を設定する（ステップＳ１２０２）。一方で、ＲＡＩＤコントローラｂ１１２ｂは、それぞれが暗号化された暗号鍵に応じた組み合わせでデータブロックを取り出す（ステップＳ１２０３）。そして、設定された暗号器の数に応じた数の暗号器が、それぞれ取り出されたデータブロックを復号化する（ステップＳ１２０４）。
【００６６】
復号化されたデータブロックは、データ振り分け器４１１によって、データブロックのまとまりとして取り出される。データブロックの並び順は、データブロックＡ０、データブロックＡ２、データブロックＡ１、データブロックＡ３の順である。このままでは、データブロックの並び順が元のデータＡとは異なる。したがって、フォーマットチェンジ９１２によって、フォーマットチェンジをおこない（ステップＳ１２０５）、データブロックの並び順を変更する。これによって、データの並び順は、データブロックＡ０、データブロックＡ１、データブロックＡ２、データブロックＡ３の順となり、元のデータＡとしてメモリｂ１０４ｂに一時保存し（ステップＳ１２０６）、読み込むことができる（ステップＳ１２０７）。
【００６７】
以上説明したように、実施の形態３のデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体によれば、データの分散の仕方が異なるシステム間でも暗号化したままデータの受け渡しができる。したがって、旧システムに記憶されたデータを、新しいシステムＩＩ９１１に、セキュリティを維持したままデータの移行ができる。これによって、ユーザのワークフローを広げることができる。
【００６８】
なお、本実施の形態で説明したデータ暗号化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【００６９】
以上のように、本発明にかかるデータ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体は、機密度の高いデータを扱う機器に有用であり、特に、デジタル複合機などに適している。
【図面の簡単な説明】
【００７０】
【図１】実施の形態１にかかるデータ暗号化装置の構成の一例を示す説明図である。
【図２】データ暗号化装置に乱数発生器を備えた一例を示す説明図である。
【図３】動作に対しておこなわれるデータの暗号化の処理手順を示すフローチャートである。
【図４】実施の形態２にかかるデータ暗号化装置の構成の一例を示す説明図である。
【図５】データ振り分け器の処理の内容を示す説明図である。
【図６】同じシステム構成間のデータ移行処理の内容を示す説明図である。
【図７】同じシステム構成間のデータ移行処理の内容を示すシーケンス図である。
【図８】システム情報に基づいたデータ移行処理の変更手順の内容を示すフローチャートである。
【図９】異なるシステム構成間のデータ移行処理の内容を示す説明図である。
【図１０】異なるシステム構成間のデータ移行処理の内容を示すシーケンス図である。
【図１１】システムＩから暗号化したまま転送されたデータブロックの復号化処理の内容を示す説明図である。
【図１２】システムＩから暗号化したまま転送されたデータブロックの復号化処理の内容を示すシーケンス図である。
【符号の説明】
【００７１】
１００  データ暗号化装置
１０１  ＣＰＵ
１０２  アービタ
１０３  外部Ｉ／Ｆコントローラ
１０４  メモリ
１０５  メモリコントローラ
１０６ａａ  記憶装置ａａ
１０６ａｂ  記憶装置ａｂ
１１０  システムＩ
１１１  ＤＭＡコントローラ
１１２  ＲＡＩＤコントローラ
１１３ａａ  暗号器Ｘ
１１３ａｂ  暗号器Ｙ
１１４ａａ  Ｉ／Ｆａａ
１１４ａｂ  Ｉ／Ｆａｂ
【図１】
0004829632.tif 000002
【図２】
0004829632.tif 000003
【図３】
0004829632.tif 000004
【図４】
0004829632.tif 000005
【図５】
0004829632.tif 000006
【図６】
0004829632.tif 000007
【図７】
0004829632.tif 000008
【図８】
0004829632.tif 000009
【図９】
0004829632.tif 000010
【図１０】
0004829632.tif 000011
【図１１】
0004829632.tif 000012
【図１２】
0004829632.tif 000013