(57)【要約】【課題】  制御装置から受信したコマンドのうち記憶装置へ送信すべき適切なコマンドを記憶装置へ送信するとともに、送信するコマンドが暗号化されていないデータを記憶装置から読み出すための特定コマンドである場合に読み出したデータに対して復号化処理を実行しないようにする。【解決手段】  記憶装置と当該記憶装置を制御する制御装置の間に接続されるデータ処理装置において、制御装置から受信したコマンドを記憶装置へ送信する。そして、送信されたコマンドが暗号化されていないデータを記憶装置から読み出すための第１のコマンドである場合は、記憶装置から受信するデータに対して復号化処理を実行させずに制御装置に転送する。一方、制御装置から送信されたコマンドが暗号化されているデータを記憶装置から読み出すための第２のコマンドである場合は、記憶装置から受信するデータに対して復号化処理を実行して制御装置に転送することを特徴とする。【選択図】  図１４
2011253561.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と前記記憶装置を制御する制御装置の間に接続されるデータ処理装置であって、
前記制御装置から受信して前記記憶装置へ送信すべきデータに対して暗号化処理を実行する暗号化手段と、
前記記憶装置から受信して前記制御装置に送信すべきデータに対して復号化処理を実行する復号化手段と、
前記制御装置から受信したコマンドを前記記憶装置へ送信するか否かを判断する判断手段と、
前記判断手段により前記記憶装置へ送信すると判断されたコマンドを前記記憶装置へ送信する送信手段と、
前記送信手段により送信されたコマンドが暗号化されていないデータを前記記憶装置から読み出すための第１のコマンドである場合は、前記第１のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させず、前記送信手段により送信されたコマンドが前記第１のコマンドとは異なる、暗号化されているデータを前記記憶装置から読み出すための第２のコマンドである場合は、前記第２のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させる制御手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記第１のコマンドは、前記制御装置から前記記憶装置へ転送されたデータとは異なる、前記記憶装置の固有情報を前記記憶装置から読み出すためのコマンドであることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
コマンドまたは暗号化されていないデータを前記制御装置から受信する第１の受信手段と、
暗号化されているデータまたは暗号化されていないデータを前記記憶装置から受信する第２の受信手段と、
前記復号化手段によって復号化されたデータまたは前記記憶装置から受信した暗号化されていないデータを前記制御装置に送信する第１の送信手段と、
前記制御装置から受信したコマンドまたは前記暗号化手段によって暗号化されたデータを前記記憶装置に送信する第２の送信手段とを有することを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記第２の受信手段で受信したデータを前記復号化手段に転送するか、前記第２の受信手段で受信したデータを前記復号化手段を介することなく前記第１の送信手段に転送するかを選択的に切り替えるセレクタを有し、
前記制御手段は、前記第１のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理が実行されないよう前記セレクタを制御し、前記第２のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理が実行されるよう前記セレクタを制御することを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記制御装置から受信したコマンドのうち前記記憶装置へ送信すべきコマンドを特定するための特定情報を記憶する記憶手段を有し、
前記判断手段は、前記記憶手段に記憶された前記特定情報に基づいて、前記制御装置から受信したコマンドを前記記憶装置へ送信するか否かを判断することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
記憶装置と前記記憶装置を制御する制御装置の間に接続され、前記制御装置から受信して前記記憶装置へ送信すべきデータに対して暗号化処理を実行する暗号化手段と、前記記憶装置から受信して前記制御装置に送信すべきデータに対して復号化処理を実行する復号化手段とを有するデータ処理装置におけるデータ処理方法であって、
前記制御装置から受信したコマンドを前記記憶装置へ送信するか否かを判断する判断ステップと、
前記判断ステップにより前記記憶装置へ送信すると判断されたコマンドを前記記憶装置へ送信する送信ステップと、
前記送信ステップにより送信されたコマンドが暗号化されていないデータを前記記憶装置から読み出すための第１のコマンドである場合は、前記第１のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させず、前記送信ステップにより送信されたコマンドが前記第１のコマンドとは異なる、暗号化されているデータを前記記憶装置から読み出すための第２のコマンドである場合は、前記第２のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させる制御ステップと、
を有することを特徴とするデータ処理方法。
【請求項７】
前記第１のコマンドは、前記制御装置から前記記憶装置へ転送されたデータとは異なる、前記記憶装置の固有情報を前記記憶装置から読み出すためのコマンドであることを特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記データ処理装置は、
前記制御装置へデータを送信する送信手段と、
前記記憶装置からデータを受信する受信手段と、
前記受信手段で受信したデータを前記復号化手段に転送するか、前記受信手段で受信したデータを前記復号化手段を介することなく前記送信手段に転送するかを選択的に切り替えるセレクタとを有し、
前記制御ステップでは、前記第１のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理が実行されないよう前記セレクタを制御し、前記第２のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理が実行されるよう前記セレクタを制御することを特徴とする請求項６または７に記載のデータ処理方法。
【請求項９】
前記データ処理装置は、前記制御装置から受信したコマンドのうち前記記憶装置へ送信すべきコマンドを特定するための特定情報を記憶する記憶手段を有し、
前記判断ステップでは、前記記憶手段に記憶された前記特定情報に基づいて、前記制御装置から受信したコマンドを前記記憶装置へ送信するか否かを判断することを特徴とする請求項６乃至８のいずれか１項に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびデータ処理方法に関するものである。
【背景技術】
【０００２】
コンピュータシステムにおいて、データは外部記憶装置に保持されることが多い。外部記憶装置は、ＨＤＤに代表されるように、コンピュータシステムとはケーブル（例えば、ＩＤＥ、ＳＣＳＩ、ＵＳＢ、ＩＥＥＥ１３９５）等で接続されていて、コンピュータシステムとの物理的な一体感が小さく、分離することが可能である。したがって、外部記憶装置をコンピュータシステムから分離し、解析することによって、外部記憶装置内のデータが漏洩してしまうという脅威が存在する。
【０００３】
上記の脅威に対抗する対策の一つとして、外部記憶装置に保持するデータを暗号化する方法がある。この方法は、外部記憶装置に書き込むデータを暗号化し、また外部記憶装置から読み込みデータを復号することによって、外部記憶装置に保持されているデータの漏洩を防止するものである。
【０００４】
既存のコンピュータシステムに、新たに暗号化復号機能を追加する方法として、以下の３つの方法が考えられる。
【０００５】
第１の方法は、コンピュータシステムに暗号化復号機能を新規に追加する方法である。この方法の場合、既存のコンピュータシステムに対して、暗号化復号機能を新規に追加する必要があり、コンピュータシステムの変更が大きくなるという問題がある。
【０００６】
第２の方法は、外部記憶装置に暗号化復号機能を追加する方法である。この方法の場合、外部記憶装置自身に暗号化復号機能を追加する必要があり、汎用的な外部記憶装置が利用できないという問題がある。
【０００７】
第３の方法は、コンピュータシステムと外部記憶装置との間をブリッジする新たな装置を設ける方法である。なお、第３の方法に関連したて提案として、特許文献１（特開平４−９８５５２号公報）と特許文献２（特開平１１−８５６２１号公報）がある。
【０００８】
特許文献１は、暗号化手段、復号手段、データ処理手段および外部記憶装置から構成される電子ファイリング装置であって、外部記憶装置に記録するデータを暗号化し、外部記憶装置から読み出すデータを復号する。また、暗号化または復号に必須の情報を取り外し可能な構造を有する。
【０００９】
特許文献２は、コンピュータシステムと外部記憶装置の間に接続される記録データ暗号化装置１０２であり、鍵情報を記憶する記憶手段と、コンピュータシステムから送られたデータを前記鍵情報を加味して暗号化し外部記憶装置へ転送する暗号化手段を備える。また、外部記憶装置から読み出した暗号化されたデータを前記鍵情報を加味して復号化しコンピュータシステムへ転送する復号化手段と、暗号化手段と復号化手段を監視しそれらの動作を制御するプロトコル制御手段を備える。このような構成により、コンピュータシステムおよび外部記憶装置に変更を加えることなく、外部記憶装置に記憶するデータの暗号化を実現し、外部記憶装置内のデータの漏洩を防止している。また、鍵情報をＩＣカード等の着脱可能な第２の外部記憶装置に記憶可能である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平４−９８５５２号公報
【特許文献２】特開平１１−８５６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１は、イメージスキャナ、ディスプレイ、プリンタまたは操作パネルを制御するデータ処理手段が暗号化手段および復号手段を制御している。つまり、当該従来例は、暗号化手段および復号手段がデータ処理手段から分離可能となっており、物理的な構成においては上記第３の方法（ブリッジする新たな装置を設ける方法）に分類できる。
【００１２】
しかし、データ処理手段が暗号化手段および復号手段を制御しており、機能的な構成においては上記第１の方法（コンピュータシステムに暗号化復号機能を追加する方法）であり、コンピュータシステムの変更が大きくなるという問題がある。
【００１３】
上記特許文献２は、コンピュータシステムおよび外部記憶装置に変更を加えることなく、外部記憶装置に記憶するデータを暗号化し、外部記憶装置内のデータの漏洩を防止した。つまり、外部記憶装置単体の盗難という脅威に対しては、データの暗号化によって対抗していた。
【００１４】
しかし、記憶装置には暗号化されていないデータが記憶されていることもあり、そのようなデータを記憶装置から読み出せるようにする必要もある。
【００１５】
本発明の目的は、記憶装置と記憶装置を制御する制御装置の間に接続され、暗号化手段と復号化手段とを有するデータ処理装置において、制御装置から受信したコマンドのうち記憶装置へ送信すべき適切なコマンドを記憶装置へ送信するとともに、暗号化されていないデータを記憶装置から読み出せる仕組みを提供することである。
【課題を解決するための手段】
【００１６】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
記憶装置と前記記憶装置を制御する制御装置の間に接続されるデータ処理装置であって、前記制御装置から受信して前記記憶装置へ送信すべきデータに対して暗号化処理を実行する暗号化手段と、前記記憶装置から受信して前記制御装置に送信すべきデータに対して復号化処理を実行する復号化手段と、前記制御装置から受信したコマンドを前記記憶装置へ送信するか否かを判断する判断手段と、前記判断手段により前記記憶装置へ送信すると判断されたコマンドを前記記憶装置へ送信する送信手段と、前記送信手段により送信されたコマンドが暗号化されていないデータを前記記憶装置から読み出すための第１のコマンドである場合は、前記第１のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させず、前記送信手段により送信されたコマンドが前記第１のコマンドとは異なる、暗号化されているデータを前記記憶装置から読み出すための第２のコマンドである場合は、前記第２のコマンドの送信によって前記記憶装置から受信するデータに対して前記復号化処理を前記復号化手段に実行させる制御手段と、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、記憶装置と前記記憶装置を制御する制御装置の間に接続され、暗号化手段と復号化手段とを有するデータ処理装置において、制御装置から受信したコマンドのうち記憶装置へ送信すべき適切なコマンドを記憶装置へ送信するとともに、送信するコマンドが暗号化されていないデータを記憶装置から読み出すための特定コマンドである場合に読み出したデータに対して復号化処理を実行しないようにすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明のデータ暗号化装置１０２を適用可能なシステムの一例を示すブロック図である。
【図２】本発明における第１の制御処理プログラムの一例を示すフローチャートである。
【図３】データを外部記憶装置（ＨＤＤ）に書き込む場合のデータフローを示す図である。
【図４】データを外部記憶装置（ＨＤＤ）から読み込む場合のデータフローを示す図である。
【図５】データ暗号化装置１０２の動作モードを説明する状態遷移図である。
【図６】図１に示したＡＴＡバスセレクタの構成を説明するブロック図である。
【図７】データ暗号化装置の各動作モードにおける図６に示したＡＴＡバスセレクタの動作について説明する図である。
【図８】データ暗号化装置の実行可能な拡張コマンドを示す図である。
【図９】データ暗号化装置が通常モードにおいて実行可能なコマンドを示す図である。
【図１０】本発明における第２の制御処理プログラムの一例を示すフローチャートである。
【図１１Ａ】本発明における第３の制御処理プログラムの一例を示すフローチャートである。
【図１１Ｂ】本発明における第３の制御処理プログラムの一例を示すフローチャートである。
【図１２】本発明における第４の制御処理プログラムの一例を示すフローチャートである。
【図１３】本発明における第５の制御処理プログラムの一例を示すフローチャートである。
【図１４】本発明における第６の制御処理プログラムの一例を示すフローチャートである。
【図１５】本発明における第７の制御処理プログラムの一例を示すフローチャートである。
【図１６】本発明に係るデータ暗号化装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【発明を実施するための形態】
【００１９】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
本発明の実施形態について図面を参照して詳細に説明する。
【００２０】
図１は，本発明のデータ処理装置としてのデータ暗号化装置を適用可能なシステムの一例を示すブロック図である。
【００２１】
ず、本発明のデータ暗号化装置の利用環境について説明し、次に、データ暗号化装置の構成を説明し、最後に、データ暗号化装置でデータの機密性を維持する動作を説明する。
【００２２】
＜データ暗号化装置の利用環境＞
図１に示すように、データ暗号化装置１０２は、コンピュータシステム（制御装置）１００と外部記憶装置としてのＨＤＤ１０３間をブリッジするように接続される。データ暗号化装置１０２は、コンピュータシステム１００が備えるＨＤＤコントローラ１０１と、ＨＤＤ１０３の間にデータの暗号化を行う回路基板（ボード）として機能する。なお、データ暗号化装置１０２は、コンピュータシステム１００及びＨＤＤ１０３と、汎用のインターフェース（例えば、ＡＴＡバスインターフェース）を介して接続されている。このようにデータ暗号化装置１０２を接続する際に、汎用のインターフェースを用いることで、コンピュータシステム１００や外部記憶装置１０３の構成を変更する必要がない。
【００２３】
データ暗号化装置１０２は、コンピュータシステム１００から送信されたデータを暗号化し、ＨＤＤ１０３に転送し、かつＨＤＤ１０３から読み込まれたデータを復号化してコンピュータシステム１００に転送する。なお、ＨＤＤ１０３には、後述するように、データ暗号化装置１０２が保持する鍵により暗号化されたデータが記憶されるため、第三者がＨＤＤ１０３のみを持ち出されたとしてもＨＤＤ１０３をデータ暗号化装置１０２なしにはデータを復号化することができない。よって、ＨＤＤ１０３のみが持ち出されたとしても、データのセキュリティを保つことができる。
【００２４】
コンピュータシステム１００は、バンキングシステム、ＤＴＰ（ＤｅｓｋＴｏｐ  Ｐｕｂｌｉｓｈｉｎｇ）システム、またはＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  ｐｅｒｉｐｈｅｒａｌ）等のデータ処理装置であり、特定のデータ処理装置に限定しない。外部記憶装置は、データを保持する装置であって、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはＣＤ−Ｒ／ＣＤ−ＲＷ／ＤＶＤ−Ｒ／ＤＶＤ−ＲＷのような書き換え可能な磁気ディスク等であり、特定の外部記憶装置に限定しない。なお、図１では、一例としてＨＤＤと記載している。
【００２５】
なお、本実施形態において、コンピュータシステム１００は、大きな筐体や入退室管理が実施されている居室に設置されている筐体であり、物理的に盗難が困難であるものと想定する。したがって、本実施形態においては、ＨＤＤ１０３やデータ暗号化装置１０２が盗難されることによるデータ漏洩を防止する点に着目する。
【００２６】
＜データ暗号化装置１０２の構成＞
図１に示すように、データ暗号化装置１０２は、コンピュータシステム１００内のＨＤＤコントローラ１０１とＨＤＤ１０３に挿入される。コンピュータシステム１００のＨＤＤコントローラ１０１とデータ暗号化装置１０２、及びデータ暗号化装置１０２とＨＤＤ１０３は、ＨＤＤの汎用的な通信規格であるもＡＴＡバス（１０４及び１０５）で接続される。データ暗号化装置１０２は、ＨＤＤコントローラ１０１からＨＤＤ１０３へ送られる制御コマンドの解釈処理、ＨＤＤ１０３へ格納するデータの暗号化処理、及びＨＤＤ１０３から読み出したデータの復号化処理を行う。
【００２７】
ＣＰＵ１０６はデータ暗号化装置１０２の全体を制御するものである。また、メモリ１１１は、ＣＰＵ１０６が実行する制御プログラム、及び各種のデータの格納が可能である。メモリ１１１は、データの暗号化で必要な鍵情報などのデータを格納することができる不揮発性メモリとして機能する。ＲＡＭ１１２は、ＣＰＵ１０６がメモリ１１１から読み出した制御プログラム等を実行するためのワークメモリとして用いられる。
【００２８】
ＡＴＡバスセレクタ（ＡＴＡ  ＢＵＳ  ＳＥＬＥＣＴＯＲ）１０７は、ＨＤＤコントローラ１０１とＨＤＤ１０３とを接続するためのインターフェースである。
【００２９】
デバイスＩ／Ｆ（ＤＥＶＩＣＥ  Ｉ／Ｆ）１０８は、ＡＴＡバスセレクタ１０７を介してＨＤＤコントローラ１０１とアドレス・データバス１１３を接続するためのインターフェースである。
【００３０】
コンピュータシステム１００のＨＤＤコントローラ１０１は、ＨＤＤ１０３を制御するための制御コマンドを発行し、発行された制御コマンドは、デバイスＩ／Ｆ１０８で一旦受信される。実行可能であると判断されたコマンドはＣＰＵ１０６からホストＩ／Ｆ（ＨＯＳＴ  Ｉ／Ｆ）１１０に対して発行され、ＨＤＤ１０３へ送られる。
【００３１】
ＣＰＵ１０６は、コンピュータシステム１００から受信したデータをＨＤＤ１０３へ格納する際には、受信したデータを、暗号・復号部１０９で暗号化してＨＤＤ１０３へ転送する。また、ＣＰＵ１０６は、ＨＤＤ１０３からデータを読み出してコンピュータシステム１００に送信する際には、暗号・復号部１０９でデータを復号化して、ＡＴＡバス（ＡＴＡ  ＢＵＳ）１０４を介してコンピュータシステム１００へ転送する。
【００３２】
暗号・復号部１０９は、コンピュータシステム１００から送信されたデータをＨＤＤ１０３へ格納する際にデータの暗号化を行うとともに、ＨＤＤ１０３からデータを読み出してコンピュータシステム１００に転送する際にデータの復号化を行うブロックである。
【００３３】
なお、暗号・復号部１０９が行うデータの暗号化においては、種々の暗号化アルゴリズムを用いることができる。例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）など共通鍵暗号方式、ＲＳＡなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などが利用可能である。
【００３４】
ホストＩ／Ｆ１１０は、ＡＴＡバスセレクタ１０７を介してＨＤＤ１０３とアドレス・データバス１１３を接続するためのインターフェースである。
【００３５】
また、データ暗号化装置１０２内の各ブロックは、アドレス・データバス１１３を介してＣＰＵ１０６により制御される。
【００３６】
なお、データ暗号化装置１０２は、ＡＴＡバスセレクタ１０７により、ＨＤＤコントローラ１０１とＨＤＤ１０３に対する通信を全て標準インターフェース（ＡＴＡバスインターフェース）を介して実行することが可能である。
【００３７】
以下、データ暗号化装置１０２の機能について説明する。なお、データ暗号化装置１０２は、以下の各機能をメモリ１１１に格納されているプログラムを実行することに実現する。
【００３８】
＜認証機能＞
データ暗号化装置１０２は、ＡＴＡバスと接続するインターフェース（ＡＴＡバスセレクタ１０７）を有しているので、ＡＴＡバスと接続するインターフェースを有するコンピュータシステムであれば、どのようなシステムとも物理的には接続可能である。しかし、データ暗号化装置１０２が、どのようなコンピュータシステムとも接続可能な構成としてしまうと、問題が生じる。例えば、データ暗号化装置１０２及びＨＤＤ１０３が第三者により盗難されてしまった場合、盗難されたものがコンピュータシステム１００とは別のコンピュータシステムに接続されることで、ＨＤＤ１０３に記憶されたデータの内容が漏洩してしまう可能性がある。そこで、本実施形態では、データ暗号化装置１０２に、データ暗号化装置１０２が接続されるコンピュータシステムが正当なコンピュータシステムであるかどうかを認証するための認証機能を設けている。
【００３９】
なお、認証機能を実現するための具体的な方法としては、種々の方法を用いることができるが、例えば以下の方法がある。
【００４０】
第１の方法は、コンピュータシステム１００とデータ暗号化装置１０２の各々に共通の認証情報を保持させておく。そして、コンピュータシステム１００から受信した認証情報とデータ暗号化装置１０２で保持している認証情報が一致する場合に、コンピュータシステム１００が正当であると認証する方法である。
【００４１】
また、第２の方法は、コンピュータシステム１００とデータ暗号化装置１０２の各々に共通の認証情報を保持させておく。そして、認証情報を用いてチャレンジアンドレスポンス認証することにより、コンピュータシステムが正当であることを認証する方法である。  
【００４２】
また、第３の方法は、データ暗号化装置１０２にコンピュータシステム１００の公開鍵証明書を保持させておく。そして、データ暗号化装置１０２がコンピュータシステム１００のデジタル署名を受信し、デジタル署名を検証することにより、コンピュータシステム１００が正当であることを認証する方法である。なお、データ暗号化装置１０２は、デジタル署名を受信するとともに公開鍵証明書を受信するようにしても良い。
【００４３】
＜暗号化・復号機能＞
暗号化・復号機能は、暗号・復号部１０９が、鍵情報を用いてコンピュータシステム１００から送信されたデータを暗号化し、ＨＤＤ１０３から読み込んだデータを復号する機能である。
【００４４】
＜制御機能＞
制御機能は、コンピュータシステム１００から送信された情報がコマンド等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号・復号部１０９を動作させ暗号化する機能である。なお、制御機能は、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。さらに、制御機能は、ＨＤＤ１０３から読み込んだ情報がコンピュータシステム１００から送信された制御情報に対する応答等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号・復号部１０９を動作させ復号する。
【００４５】
なお、制御機能は、暗号・復号部１０９で用いる鍵情報が存在しない等の初期状態である場合、コンピュータシステム１００とＨＤＤ１０３間の情報の送受信を遮断する。鍵情報の存在の有無は、後述の状態管理機能によって判断される。
【００４６】
＜鍵生成機能＞
次に、暗号・復号部１０９がデータの暗号化・復号化をするために用いる鍵情報を生成する鍵生成機能について説明する。
【００４７】
ここで、暗号・復号部１０９が用いる鍵情報は、第三者に漏洩するとＨＤＤ１０３内の暗号化されたデータの復号化が可能となってしまう情報である。従って、暗号・復号部１０９が用いる鍵情報は、データ暗号化装置１０２以外には漏洩しないようにする必要がある。そこで、データ暗号化装置１０２は、自装置内で鍵情報を生成する鍵生成機能を有している。
【００４８】
鍵生成機能を実現するために、データ暗号化装置１０２は、コンピュータシステム１００からコンピュータシステム１００の固有情報（以下、固有情報）を受信する。固有情報は個々のコンピュータシステム１００に固有の情報であって、シリアル番号、ＬＡＮ  Ｉ／Ｆを持つコンピュータシステム１００におけるＭＡＣアドレス、またはそれらの情報を組み合わせた情報など、さまざまな情報を利用することが可能である。
【００４９】
鍵生成機能は、コンピュータシステム１００から受信した固有情報とメモリ１１１に保持しているシード情報から鍵情報を生成する。なお、シード情報の生成方法は、鍵情報の生成方法と暗号化アルゴリズムに依存する。乱数を暗号化アルゴリズムにおける鍵情報として利用できる場合は、シード情報も乱数または擬似乱数として生成することも可能である。一方、特定の条件を満たす情報を暗号化アルゴリズムにおける鍵情報として利用しなければならない場合は、例えば、鍵情報を生成し、生成した鍵情報とシード情報から「鍵情報＝ｆ（シード情報，固有情報）」を満たすシード情報を求める必要がある。
【００５０】
ここで、固有情報とシード情報から鍵情報を生成する方法としては種々の方法を用いることができるが、例えば以下の方法が考えられる。
【００５１】
（１）固有情報とシード情報の排他的論理和を鍵情報とする方法。
【００５２】
（２）一方向性ハッシュ関数に固有情報とシード情報を入力し、出力された情報を鍵情報とする方法。
【００５３】
（３）固有情報を暗号化関数の鍵とし、シード情報を暗号化処理し、出力された情報を鍵情報とする方法。
【００５４】
（４）シード情報を暗号化関数の鍵とし、固有情報を暗号化処理し、出力された情報を鍵情報とする方法。
【００５５】
（５）ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵共有方式（ＲＦＣ  ２６３１）に基づいて鍵情報を共有する方法。
【００５６】
ただし、データ暗号化装置１０２だけが鍵情報を保持できればよいので、例えば、シード情報をデータ暗号化装置１０２のＤＨ鍵共有方式の秘密鍵とし、固有情報をデータ暗号化装置１０２の公開鍵とコンピュータシステムの固有の情報から得られる情報とする。
【００５７】
上記の各方法は、固有情報とシード情報から鍵情報を生成する一例であって、本実施形態における鍵情報の生成方法は、２入力の関数ｆ「鍵情報＝ｆ（シード情報，固有情報）」であればどのような関数でもよい。
【００５８】
また、鍵情報と鍵情報検証情報とをセットで鍵情報として管理することで、鍵情報の正当性を検証することも可能である。なお、鍵情報検証情報は、一例として、鍵情報のハッシュ値が考えられる。
【００５９】
＜状態管理機能＞
状態管理機能は、データ暗号化装置１０２の状態に関して、初期状態であるか否かを判断するものである。
【００６０】
ここで、「初期状態」とは、鍵生成機能で鍵情報を生成するときに利用する鍵のシード情報がメモリ１１１に保持されていて鍵情報を生成可能な状態である場合に対応する。また、「初期状態でない」とは、シード情報をメモリ１１１に保持しておらず鍵情報を生成不可能な状態である場合に対応する。
【００６１】
なお、状態管理機能では、シード情報がメモリ１１１に保持されていないと判断した場合に、シード情報を新たに生成し、生成したシード情報をメモリ１１１に保持させる。なお、シード情報は、データ暗号化装置１０２に固有の情報であり、データ暗号化装置１０２以外の装置からは知ることができない情報である。
【００６２】
＜データ暗号化装置１０２の動作について＞
以下、図２を参照して、本実施形態におけるデータ暗号化装置１０２の動作を説明する。
【００６３】
図２は、本実施形態における第１の制御処理プログラムの一例を示すフローチャートである。なお、このフローチャートの処理は、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。なお、図中、Ｓ３０１〜Ｓ３０７は各ステップを示す。
【００６４】
まず、ステップＳ３０１において、ＣＰＵ１０６は状態管理機能により、データ暗号化装置１０２のメモリ１１１内に保持されているシード情報の有無を検査する。そして、ＣＰＵ１０６は、シード情報がメモリ１１１に保持されていないと判定した場合には、ステップＳ３０２に処理を進める。ステップＳ３０２で、ＣＰＵ１０６は、状態管理機能により、シード情報を新たに生成し、メモリ１１１内に格納する。
【００６５】
一方、ステップＳ３０１で、ＣＰＵ１０６が、データ暗号化装置１０２のメモリ１１１内にシード情報が保持されていると判定した場合、そのままステップＳ３０２に処理を進める。
【００６６】
次に、ステップＳ３０３で、ＣＰＵ１０６は、認証機能により、コンピュータシステム１００が正当であるか否かを認証する。ＣＰＵ１０６は、認証に成功するまで認証処理を繰り返す。
【００６７】
そして、ＣＰＵ１０６は、コンピュータシステム１００の認証に成功したと判定した場合には、ステップＳ３０４に処理を進める。ステップＳ３０４で、ＣＰＵ１０６は、コンピュータシステム１００から固有情報を受信する。
【００６８】
そして、ＣＰＵ１０６は鍵生成機能により、固有情報とシード情報から鍵情報を生成し、暗号・復号部１０９にセットする。なお、鍵情報として鍵情報検証情報をセットで管理している場合、生成した鍵情報の正当性を検証することが可能である。
【００６９】
次に、ステップＳ３０６において、ＣＰＵ１０６は状態管理機能によりデータ暗号化装置１０２の状態を監視する。そして、ＣＰＵ１０６は、鍵情報を保持していない等の初期状態となった場合、制御機能によりコンピュータシステム１００とＨＤＤ１０３間の情報の送受信を遮断するように制御する。なお、状態管理機能は、鍵情報の正当性を検証可能であって、鍵情報の正当性を検証できなかった場合、鍵情報を保持していないと判断することも可能である。
【００７０】
一方、ステップＳ３０６で、ＣＰＵ１０６は制御機能により、コンピュータシステム１００から送信された情報がコマンド等の制御情報であるか、又はデータであるかを判断する。そして、コンピュータシステム１００から送信された情報がデータであると判定した場合のみ、ステップＳ３０７に処理を以降させ、暗号・復号部１０９を動作させて、該データを暗号化する。さらに、ＣＰＵ１０６は制御機能により、ＨＤＤ１０３から読み込んだ情報が応答等の制御情報であるか、又はデータであるかを判断し、データであると判定した場合のみ、ステップＳ３０７に処理を以降させ、暗号・復号部１０９を動作させ復号する。なお、暗号・復号部１０９は、ステップＳ３０５で生成した鍵情報を用いて、データの暗号化または復号を行う。
【００７１】
以上の手順によって、ＨＤＤ１０３に保持されているデータを暗号化することを実現できる。
【００７２】
＜データの暗号化・復号化処理の詳細＞
図２のステップＳ３０６に示したデータの暗号化及び復号化に関して、図３，図４のデータのフローを例示して詳細に説明する。
【００７３】
図３は、コンピュータシステム１００から送信されるデータをＨＤＤ１０３に書き込む場合のデータフローを示す図である。
【００７４】
図３に示すように、ＣＰＵ１０６の制御機能は、コンピュータシステム１００から実行可能な「コマンド」と「データ」からなる情報を受け取る。ここで、この「コマンド」はＨＤＤ１０３へのデータの書き込みに相当する制御情報であり、「データ」はＨＤＤ１０３に書き込まれるデータとする。
【００７５】
ＣＰＵ１０６の制御機能は、暗号・復号部１０９を動作させ、「データ」を暗号化する。そして、ＣＰＵ１０６の制御機能は、「コマンド」と暗号化処理によって得られた「暗号化データ」からなる情報をＨＤＤ１０３に送信する。
【００７６】
次に、ＣＰＵ１０６の制御機能は、ＨＤＤ１０３から、暗号化データがＨＤＤ１０３に書き込まれたことに応じて送信される「応答」を受け取り、制御情報である「応答」をそのままコンピュータシステム１００へ送信する。
【００７７】
図４は、コンピュータシステム１００が、データをＨＤＤ１０３から読み込む場合のデータフローを示す図である。
【００７８】
ＣＰＵ１０６の制御機能は、コンピュータシステム１００から実行可能な「コマンド」を受け取る。ここで、この「コマンド」はＨＤＤ１０３からのデータの読み込みに相当する制御情報である。
【００７９】
ＣＰＵ１０６の制御機能は、コンピュータシステム１００から受信した「コマンド」をそのままＨＤＤ１０３に送信する。
【００８０】
次に、ＣＰＵ１０６の制御機能は、ＨＤＤ１０３から、暗号化データがＨＤＤ１０３から読み込まれたことに応じて送信される「応答」と「暗号化データ」を受け取る。
【００８１】
さらに、ＣＰＵ１０６の制御機能は、暗号・復号部１０９を動作させ、ＨＤＤ１０３から読み込んだ「暗号化データ」を復号化する。そして、ＣＰＵ１０６の制御機能は、「応答」と「データ」（復号済）からなる情報をコンピュータシステム１００へ送信する。
【００８２】
なお、図３および図４に示したデータフローは、一例である。複数のインターフェースに係る具体的なデータフローは、コンピュータシステム１００とデータ暗号化装置１０２間のインターフェースの仕様、およびデータ暗号化装置１０２とＨＤＤ１０３間のインターフェース仕様に依存する。
【００８３】
例えば、「データ」がなく、「コマンド」と「応答」だけのデータフローも考えら得る。さらに、コンピュータシステム１００とデータ暗号化装置１０２間のインターフェースとデータ暗号化装置１０２とＨＤＤ１０３間のインターフェースが異なる場合も考えられる。この場合、ＣＰＵ１０６の制御機能は、データの暗号化復号処理に加えて、インターフェース仕様の変換処理を同時に行うことで実現可能である。
【００８４】
なお、図３および図４で示したとおり、データ暗号化装置１０２において暗号化される情報は「データ」である。したがって、鍵情報を保持しない等、データ暗号化装置１０２が初期状態の場合、ＣＰＵ１０６の制御機能は、コンピュータシステム１００とＨＤＤ１０３間の送受信を遮断する情報を「データ」に限定することも可能である。
【００８５】
また、上述のとおり、データ暗号化装置１０２におけるコンピュータシステム１００の認証方法はさまざまな方法を利用できる。
【００８６】
したがって、ステップＳ３０３のコンピュータシステム１００の認証時に、コンピュータシステム１００から固有情報を受信することも可能である。例えば、コンピュータシステム１００からデジタル署名と公開鍵証明書を受信して認証する認証方法の場合、公開鍵証明書をコンピュータシステム１００の固有情報として利用することができる。このように、ステップＳ３０３において、コンピュータシステム１００の固有情報を受信可能な場合、ステップＳ３０４を省略することも可能である。
【００８７】
本実施形態は、コンピュータシステム１００とＨＤＤ１０３をインターフェースを介して接続するデータ暗号化装置１０２であって、ＣＰＵ１０６の制御により暗号・復号部１０９でＨＤＤ１０３に書き込むデータを暗号化するものである。本実施形態では、この構成によって、ＨＤＤ１０３に記憶されるデータの機密性を保つことができる。
【００８８】
特に暗号化または復号化に用いる鍵情報は、コンピュータシステム１００の固有情報とデータ暗号化装置１０２に固有のシード情報から生成される。そのため、コンピュータシステム１００とデータ暗号化装置１０２の異なる組から正当な鍵情報を生成することができない。
【００８９】
さらに、コンピュータシステム１００の固有情報の受信前にコンピュータシステム１００を認証することによって、正当なコンピュータシステム１００の固有情報の受信を実現している。
【００９０】
従って、データ暗号化装置１０２とＨＤＤ１０３をセットで盗難されたとしても、ＨＤＤ１０３内のデータの機密性を維持することができる。また、データ暗号化装置１０２は、状態管理機能によって、鍵情報に関する状態としてシード情報の有無を管理し、鍵情報を保持していない場合は自動的に鍵情報を生成するためのシード情報を生成するので、鍵情報の管理の自動化を実現している。
【００９１】
＜データ暗号化装置１０２の動作モード＞
以下、データ暗号化装置１０２の動作モードについて、図５を用いて説明する。
【００９２】
図５は、データ暗号化装置１０２の動作モードを説明する状態遷移図である。
【００９３】
データ暗号化装置１０２の動作モードは、大きく分けて「遮断モード」と「起動モード」の２種類がある。また、「起動モード」には、「通常モード」と「バイパスモード」と「暗号・復号モード」が含まれるものとする。なお、データ暗号化装置１０２をいずれのモードにて動作させるかは、ＣＰＵ１０６がメモリ１１１に記憶されたプログラムを実行することにより判断するものとする。
【００９４】
データ暗号化装置１０２に電源が投入されると、データ暗号化装置１０２は、まず遮断モードＳ７０１に設定される。この遮断モードは、ＨＤＤコントローラ１０１が送信する如何なる情報もＨＤＤ１０３へ到達させないモードである。
【００９５】
このとき、ＨＤＤコントローラ１０１からＨＤＤ１０３へのアクセスであるレジスタのリードライトは、全てデータ暗号化装置１０２に対して行われ、ＨＤＤ１０３へのアクセスは遮断される。
【００９６】
また、このとき使用可能なコマンドは、ＨＤＤ１０３にアクセスするために使用する通常コマンド以外の、新たに定義した拡張コマンド（後述する図８）のみが使用可能である。
【００９７】
この遮断モードＳ７０１においてＣＰＵ１０６は、前述した認証機能のみが実行可能である。認証機能によりコンピュータシステム１００が正当であると認証された場合にのみ、データ暗号化装置１０２は、遮断モードＳ７０１から通常モードＳ７０２に移行できる。
【００９８】
なお、ＨＤＤコントローラ１０１が発行するコマンドがＨＤＤ１０３にて実行可能か不可能であるかは、データ暗号化装置１０２内のメモリ１１１に格納された参照データに基づいて判断される。データ暗号化装置１０２は、ＨＤＤコントローラ１０１が発行するコマンドを、図１に示したＡＴＡバスセレクタ１０７を介してデバイスＩ／Ｆ１０８にて受信し、アドレス・データバス１１３を介してＣＰＵ１０６が認識する。そして、ＣＰＵ１０６が、メモリ１１１内の参照データと比較し、コマンドがＨＤＤ１０３にて実行可能かを判断する。
【００９９】
通常モードＳ７０２は、ＨＤＤコントローラ１０１がＨＤＤ１０３に対してアクセスを行うモードである。ただし、ＨＤＤコントローラ１０１が発行するコマンドは全てデータ暗号化装置１０２がＨＤＤ１０３にて実行可能か否かを判断し、実行可能なコマンド（図９）のみがＨＤＤ１０３へ渡される。それ以外のコマンドは、実行不可能なコマンドとしてＨＤＤ１０３に転送しないものとする。
【０１００】
コンピュータシステム１００から受信したコマンドが実行可能であるか不可能であるかの判断は、上述の遮断モードＳ７０１と同様であり、動作モードごとにメモリ１１１内の参照データを変更している。ただし、実行可能なコマンドは動作モード毎に異なる。
【０１０１】
また、通常モードＳ７０２において、ＣＰＵ１０６により実行可能であると判断されたコマンドは、ホストＩ／Ｆ１１０に対してＣＰＵ１０６により設定される。そして、データ暗号化装置１０２により、ＡＴＡバスセレクタ１０７を介してＨＤＤ１０３へ転送（発行）される。
【０１０２】
次に、ＨＤＤ１０３に対するレジスタアクセスコマンド（後述する「ＰＩＯ  ＲＥＡＤ」タイプのコマンド）を受け取ると、データ暗号化装置１０２は動作モードを通常モードＳ７０２からバイパスモードＳ７０３へ移行させる。詳細は後述する。
【０１０３】
一方、データ暗号化装置１０２は、コンピュータシステム１００から、ＨＤＤ１０３に対するデータの格納，読み出しを示すＤＭＡ転送タイプのコマンドを受け取ると、動作モードを通常モードＳ７０２から暗号・復号モードＳ７０４へ移行させる。
【０１０４】
また、この通常モードＳ７０２で、特別に定義された拡張コマンドの内「ＣＨＡＮＧ  ＩＮＴＥＲＣＥＰＴ」コマンド（図８）を受信すると、データ暗号化装置１０２は動作モードを通常モードＳ７０２から遮断モードＳ７０１へ移行させる。
【０１０５】
バイパスモードＳ７０３は、通常モードＳ７０２において、ＨＤＤ１０３へのレジスタアクセス（「ＰＩＯ  ＲＥＡＤ」タイプのアクセス）行うときに実行されるモードである。このバイパスモードＳ７０３は、ＨＤＤコントローラ１０１のレジスタアクセスをＨＤＤ１０３へバイパスさせるモードである。ＨＤＤ１０３のレジスタデータのコンピュータシステム１００への転送完了後、データ暗号化装置１０２は動作モードをバイパスモードＳ７０３から通常モードＳ７０２へ移行させる。
【０１０６】
暗号・復号モードＳ７０４は、ＤＭＡ転送によるＨＤＤ１０３へのデータ格納、読み出し時にデータに対してデータを暗号化または復号化するモードである。データ暗号化装置１０２は、ＤＭＡ転送が完了した時点で動作モードを暗号・復号モードＳ７０４から通常モードＳ７０２へ移行させる。
【０１０７】
＜ＡＴＡバスセレクタ１０７の構成＞
以下、図６を参照して、図１に示したＡＴＡバスセレクタ１０７の構成について説明する。
【０１０８】
図６は、図１に示したＡＴＡバスセレクタ１０７の構成を説明するブロック図である。  
【０１０９】
図６に示すように、ＨＤＤコントローラ１０１は、ＨＤＤコントローラサイド入出力信号８０１と接続され、信号の入出力が行われる。また、ＨＤＤ１０３は、ＨＤＤサイド入出力信号８０２と接続されている。
【０１１０】
ＨＤＤコントローラサイド入出力信号８０１は、セレクタ８０３を介してデバイスＩ／Ｆ１０８あるいはバイパス回路８０４に接続される。
【０１１１】
同様に、ＨＤＤサイド入出力信号８０２は、セレクタ８０５を介して、ホストＩ／Ｆ１１０あるいはバイパス回路８０４に接続される。
【０１１２】
各セレクタ８０３，８０５は、制御回路８０６を介してＣＰＵ１０６により制御される。
【０１１３】
ＨＤＤコントローラ１０１とＨＤＤ１０３は、バイパス回路８０４を介して接続されたり、暗号・復号部１０９を介してデータ転送されたり、あるいはＣＰＵ１０６を介して接続される。
【０１１４】
＜ＡＴＡバスセレクタ１０７の動作＞
以下、図７を用いて、データ暗号化装置１０２の各動作モードにおける図６に示したＡＴＡバスセレクタ１０７の動作について説明する。
【０１１５】
図７は、データ暗号化装置１０２の各動作モードにおける図６に示したＡＴＡバスセレクタ１０７の動作について説明する図であり、各動作モードにおけるデータバスの接続関係および転送方向を示す。
【０１１６】
図７に示すように、太い線の矢印は、データの送受信行うＰＩＯ／ＤＭＡバスを示す。また、細い線の矢印は、動作設定、状態確認などで使用するレジスタ等のアクセスを示す。
【０１１７】
図７（ａ）を参照して、遮断モードにおけるＡＴＡバスセレクタ１０７の動作について説明する。
【０１１８】
このとき、ＡＴＡバスセレクタ１０７内のＨＤＤコントローラサイド入出力信号８０１はデバイスＩ／Ｆ１０８に接続され、ＨＤＤサイド入出力信号８０２はホストＩ／Ｆ１１０に接続される。
【０１１９】
これにより、相互認証が終了するまでＨＤＤコントローラ１０１からＨＤＤ１０３へのいかなるアクセスも禁止される。
【０１２０】
図７（ｂ）を参照して、通常モードにおけるＡＴＡバスセレクタ１０７の動作について説明する。
【０１２１】
通常モードでは、ＰＩＯ／ＤＭＡバスは、デバイスＩ／Ｆ１０８と、ホストＩ／Ｆ１１０に接続される。
【０１２２】
また、図７（ｂ）では、ＨＤＤコントローラ１０１からＨＤＤ１０３のレジスタへの書き込みアクセスが発行されると（「Ｗ」）、ＨＤＤコントローラサイド入出力信号８０１から、アクセスするレジスタの種類に応じて、アクセス先が変更されることを示す。例えば、デバイスＩ／Ｆ１０８内のレジスタだけに書き込まれたり、あるいはＨＤＤサイド入出力信号８０２にそのまま接続されＨＤＤ１０３内のレジスタだけに書き込まれたり、あるいは双方に書き込まれることを示す。例えば、ＨＤＤコントローラ１０１からパラメータを設定するレジスタにアクセスすると、データはデータ暗号化装置１０２とＨＤＤ１０３内の双方のレジスタに書き込まれる。
【０１２３】
レジスタリード（「Ｒ」）においても同様で、ＨＤＤ１０３のデータがそのまま読み出せたり、ホストＩ／Ｆ１１０で読まれたデータをデバイスＩ／Ｆ１０８を介して読み出したりすることを示す。
【０１２４】
図７（ｃ）を参照して、バイパスモードにおけるＡＴＡバスセレクタ１０７の動作について説明する。
【０１２５】
バイパスモードにおいては、ホストサイドの入出力信号と、ＨＤＤサイド入出力信号８０２は、直接接続される。一部のレジスタの書き込みアクセスに関しては、ＨＤＤ１０３のレジスタと、デバイスＩ／Ｆ１０８内のレジスタに同じものが書かれる。
【０１２６】
＜データ暗号化装置が遮断モードにて実行可能な拡張コマンド＞
図８は、データ暗号化装置１０２が実行可能な拡張コマンドを示す図である。
【０１２７】
図８に示す拡張コマンドは、通常のＨＤＤアクセスで使用されるＡＴＡコマンドとは異なり、データ暗号化装置１０２のみが処理可能なコマンドである。これらのコマンドは、図１に示したメモリ１１１内に実行可能な拡張コマンドとして登録されている。
【０１２８】
図８に示す拡張コマンドは、図５に示した遮断モードＳ７０１において、データ暗号化装置１０２が実行可能なコマンドである。
【０１２９】
図８において、コマンド名１００１は、動作可能なコマンドの名称を示す。タイプ１００２は、アクセスの種類を示す。例えば、「Ｎｏｎ  ＤＡＴＡ」タイプはデータの転送を伴わないコマンドであり、ステータスの確認、遮断モードから通常モードへ移行などがある。「ＷＲＩＴＥ」タイプ，「ＲＥＡＤ」タイプはデータの書き込み、読み出しを伴うコマンドであり、バージョン情報の取得、認証のチャレンジで使用される。
【０１３０】
＜データ暗号化装置が通常モードにて実行可能なＡＴＡコマンド＞
図９は、データ暗号化装置１０２が通常モードＳ７０２において実行可能なコマンドを示す図である。なお、ＨＤＤコントローラ１０１からＨＤＤ１０３に対して転送可能なコマンドは、図９に示すコマンドに限定される。これは、データ暗号化装置１０２がコンピュータシステム１００を正当なものと認証して通常モードにて動作する場合に限って、図９に示すコマンドが実行可能となることを意味する。このような構成とすることで、ＨＤＤ１０３に対する不要なアクセスが防止されセキュリティを確保することができる。これらのコマンドは、図１に示したメモリ１１１内にＡＴＡコマンドとして登録されている。
【０１３１】
図９において、コマンド名１１０１は、実行可能なコマンドの名称を示す。タイプ１１０２は、アクセスの種類を示す。「ＮｏｎＤＡＴＡ」転送タイプはデータの転送を伴わないコマンドである。「ＰＩＯ  ＲＥＡＤ」転送タイプは、データの読み出しを伴うコマンドである。「ＤＭＡ」転送（暗号・復号）タイプは、データの書き込み、読み出しを伴うコマンドである。  
【０１３２】
なお、「ＰＩＯ  ＲＥＡＤ」転送タイプは、コンピュータシステム１００内のメインメモリとＨＤＤ１０３との間のデータ転送を、コンピュータシステム１００内のＣＰＵが管理して行うタイプのコマンドである。
【０１３３】
一方、「ＤＭＡ」転送タイプは、コンピュータシステム１００内のＲＡＭとＨＤＤ１０３との間のデータ転送を、コンピュータシステム１００内のＣＰＵを介さずに行うタイプのコマンドである。
【０１３４】
通常モードＳ７０２において、ＨＤＤコントローラ１０１からコマンドが発行されるとデータ暗号化装置１０２内部でコマンドを一旦保持し、ＣＰＵ１０６がそのコマンドがＨＤＤ１０３にて実行可能かをチェックする。そして、ＨＤＤ１０３にて実行可能なコマンド（図９に示すコマンド）のみが、ＨＤＤ１０３へ送られる。実行不可能であると判断されたコマンド（図９に示す以外のコマンド）については、ＨＤＤ１０３へは送られずにエラー（アボートエラー）としてＨＤＤコントローラ１０１へ通知される。
【０１３５】
＜コンピュータシステム１００を認証する認証処理の詳細＞
以下、図１０，図１１を用いてＨＤＤコントローラ１０１とデータ暗号化装置１０２間の認証処理について説明を行う。なお、認証処理を行うケースとしては、データ暗号化装置１０２を初めてＨＤＤコントローラ１０１に接続したケースと、データ暗号化装置１０２とＨＤＤコントローラ１０１が予め接続されているケースの２種類がある。図１０を用いてデータ暗号化装置１０２を初めてＨＤＤコントローラ１０１に接続した設置時の状態での認証処理を説明する。
【０１３６】
図１０は、本実施形態における第２の制御処理プログラムの一例を示すフローチャートであり、コンピュータシステム１００に初めてデータ暗号化装置１０２が設置されたときのケースに対応する。なお、図１０において、Ｓ１２０１〜Ｓ１２１５は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０１３７】
ステップＳ１２０１において、コンピュータシステム１００、データ暗号化装置１０２、ＨＤＤ１０３の全てに電源が入力される。そして、ステップＳ１２０２において、データ暗号化装置１０２のＣＰＵ１０６は、データ暗号化装置１０２を遮断モードで起動する。
【０１３８】
また、ＨＤＤコントローラ１０１は、ステップＳ１２０３において、データ暗号化装置１０２がコンピュータシステム１００に接続されているか否かの確認を行う。ここでは、コンピュータシステム１００がデータ暗号化装置１０２に接続されているものとする。次に、ステップＳ１２０４において、ＨＤＤコントローラ１０１はデータ暗号化装置１０２に対して、「ＧＥＴ  ＳＴＡＴＵＳ」コマンド（図８）を発行し、データ暗号化装置１０２の動作状態を認識する。初めてデータ暗号化装置１０２を設置したときには、未だ鍵情報が生成されていないので、ステップＳ１２０５において、データ暗号化装置１０２のＣＰＵ１０６は、未インストールのステータスをＨＤＤコントローラ１０１に戻す。
【０１３９】
未インストール状態を認識した場合、ＨＤＤコントローラ１０１は、ステップＳ１２０６において、インストールの実行コマンド「ＩＮＳＴＡＬＬ」をデータ暗号化装置１０２に送信する。
【０１４０】
これに応じて、データ暗号化装置１０２は、ステップＳ１２０７において、鍵情報を生成するためのシード情報を生成する。
【０１４１】
また、ステップＳ１２０８において、ＨＤＤコントローラ１０１は、コンピュータシステム１００の固有情報をデータ暗号化装置１０２に送信する。
【０１４２】
固有情報を受信したデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１２０９において、固有情報をＲＡＭ１１２に保持する。
【０１４３】
次に、ステップＳ１２１０において、データ暗号化装置１０２のＣＰＵ１０６は、シード情報と固有情報に基づいて、鍵情報を生成し、メモリ１１１に書き込む。鍵情報の生成が終了すると、ステップＳ１２１１において、データ暗号化装置１０２のＣＰＵ１０６は、鍵情報の生成が終了したことを示すステータスをＨＤＤコントローラ１０１に返信する。
【０１４４】
これを受けて、ＨＤＤコントローラ１０１は、データ暗号化装置１０２にて鍵情報が生成されたことを認識する。そして、ステップＳ１２１２において、「ＣＨＡＮＧＥ  ＮＯＲＭＡＬ」コマンド（通常モードへ移行するコマンド）を、データ暗号化装置１０２に送信する。
【０１４５】
これを受けて、データ暗号化装置１０２のＣＰＵ１０６は、鍵情報の生成が終わったことで、コンピュータシステム１００が正当なものと認証されたとみなす。そして、ステップＳ１２１３において、データ暗号化装置１０２の動作モードを遮断モードから通常モードへ移行させる。通常モード移行後、ステップＳ１２１４において、データ暗号化装置１０２のＣＰＵ１０６は、通常モードに移行した旨を示すステータスをＨＤＤコントローラ１０１に返す。
【０１４６】
これを受け取った後、ＨＤＤコントローラ１０１は、ステップＳ１２１５において、ＡＴＡの各種コマンドをデータ暗号化装置１０２に送信する。そして、データ暗号化装置１０２は、ＨＤＤコントローラ１０１から受信したＡＴＡコマンドに基づいて制御を行う。  
【０１４７】
以下、図１３を用いてデータ暗号化装置１０２とＨＤＤコントローラ１０１が予め接続されているケースにおける認証処理を説明する。
【０１４８】
図１１Ａ，図１１Ｂは、本実施形態における第３の制御処理プログラムの一例を示すフローチャートであり、コンピュータシステム１００にデータ暗号化装置１０２が予め接続されているケースに対応する。なお、図１１において、Ｓ１３０１〜Ｓ１３２５は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０１４９】
なお、ここでは、認証方法として、チャレンジアンドレスポンス認証方法を用いる例を説明するが、認証方法は他の方法であっても良い。
【０１５０】
ステップＳ１３０１において、コンピュータシステム１００、データ暗号化装置１０２、ＨＤＤ１０３の全てに電源が入力される。ステップＳ１３０２において、データ暗号化装置１０２のＣＰＵ１０６は、データ暗号化装置１０２を遮断モードで起動する。
【０１５１】
また、ＨＤＤコントローラ１０１は、ステップＳ１３０３において、データ暗号化装置１０２がコンピュータシステム１００に接続されているか否かの確認を行う。ここでは、コンピュータシステム１００がデータ暗号化装置１０２に接続されているものとする。次に、ステップＳ１３０４において、ＨＤＤコントローラ１０１はデータ暗号化装置１０２に対して、「ＧＥＴ  ＳＴＡＴＵＳ」コマンド（図８）を発行し、データ暗号化装置１０２の動作状態を認識する。ここでは、既にデータ暗号化装置１０２をコンピュータシステム１００に接続済であり鍵情報が生成済なので、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１３０５において、インストール済みのステータスをＨＤＤコントローラ１０１に戻す。
【０１５２】
インストール済み状態を認識した場合、ＨＤＤコントローラ１０１は、ステップＳ１３０６，Ｓ１３０７において、チャレンジの実行を示すチャレンジコマンド「ＳＥＮＤ  ＣＨＡ１」，チャレンジ乱数をデータ暗号化装置１０２に送信して、認証確認に移る。
【０１５３】
これを受けたデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１３０８において、ＨＤＤコントローラ１０１へステータスを返信する。
【０１５４】
続いて、ステップＳ１３０９において、ＨＤＤコントローラ１０１は、レスポンス要求コマンド「ＲＥＱＵＥＳＴ  ＣＨＡ１」をデータ暗号化装置１０２に送信する。これを受けたデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１３１０において、上述のチャレンジ乱数に対応するレスポンスをＨＤＤコントローラ１０１へ返信する。さらに、ステップＳ１３１１において、データ暗号化装置１０２のＣＰＵ１０６は、ステータスをＨＤＤコントローラ１０１へ返信する。
【０１５５】
上記レスポンスを受けて、ＨＤＤコントローラ１０１はレスポンスが正しいか判断し、正しければ、ステップＳ１３１５に処理を移行させ、データ暗号化装置１０２からＨＤＤコントローラ１０１へのチャレンジの実行に移る。
【０１５６】
ステップＳ１３１２において、ＨＤＤコントローラ１０１は、チャレンジ実行の要求を行うコマンド「ＲＥＱＵＥＳＴ  ＣＨＡ２」をデータ暗号化装置１０２に送信する。
【０１５７】
これを受けたデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１３１３，Ｓ１３１４において、チャレンジ乱数，ステータスをＨＤＤコントローラ１０１へ送信する。
【０１５８】
これを受けたＨＤＤコントローラ１０１は、ステップＳ１３１５，Ｓ１３１６において、レスポンスの実行を要求するコマンド，レスポンスをデータ暗号化装置１０２に送信する。
【０１５９】
このレスポンスを受けてデータ暗号化装置１０２は、レスポンスが正しいか判断し、ステータスを返信する。正しければ、認証終了となり、ステップＳ１３１７に処理を移し、鍵情報の作成に移る。なお、以下のステップＳ１３１８〜Ｓ１３２５は、図１０のステップＳ１２０８〜Ｓ１２１５と同一であるので説明は省略する。
【０１６０】
＜起動モードにおける動作の詳細＞
図５で示したように、遮断モードＳ７０１で認証が終了すると、通常モードＳ７０２に移行する。以下、図１２〜図１５を用いて、起動モードで実行可能なコマンドの詳細シーケンスを示す。
【０１６１】
起動モードで実行可能なコマンドは、図９に示したものであり、データの転送タイプで３つにわけられる。データ転送を伴わない「ＮｏｎＤＡＴＡ」転送タイプ、「ＰＩＯ  ＲＥＡＤ」転送タイプ、「ＤＭＡ」転送（暗号・復号）タイプの３つである。順に説明する。
【０１６２】
（１）ＮｏｎＤＡＴＡ転送タイプ
「ＮｏｎＤＡＴＡ転送タイプ」のコマンドの実行は、２ステップの処理で行われる。まず、ＨＤＤコントローラ１０１は、実行するコマンドに必要なパラメータを設定する。設定されたパラメータは、ＨＤＤ１０３のコマンドブロック内の関連するレジスタ（Ｔ／Ｆレジスタ，Ｉ／Ｏレジスタやコマンドブロックレジスタなどとも呼ばれる）に書き込まれる。
【０１６３】
次に、ＨＤＤコントローラ１０１は、データ暗号化装置１０２のコマンドレジスタに「ＮｏｎＤＡＴＡ」転送タイプのコマンドコードを書き込む。これにより、ＨＤＤ１０３は、（一旦、データ暗号化装置１０２を介して）コマンドを実行する。
【０１６４】
なお、パラメータ設定を行うレジスタやコマンドコードを書き込むレジスタには、ＨＤＤコントローラ１０１から書き込む場合と、読み出す場合で、意味の異なるものがある。ＥＲＲＯＲ／ＦＥＡＴＵＲＥＳレジスタや、ＳＴＡＴＵＳ／ＣＯＭＭＡＮＤレジスタなどで、読み出し時にはＨＤＤのエラーやステータスを示すが、書き込み時にはコマンドの実行を示す。
【０１６５】
「ＮｏｎＤＡＴＡ」転送タイプのコマンドとしては、ＲＥＣＡＬＩＢＲＡＴＥ、ＳＥＥＫなどのコマンドがある。
【０１６６】
ＲＥＣＡＬＯＢＲＡＴＥコマンドは、ＨＤＤ１０３のＲＥＺＥＲＯ動作を行うもので、ＳＥＥＫコマンドは、ＨＤＤの指定されたトラックへのシークおよびヘッドの選択が行われる。
【０１６７】
以下、図１２のフローチャートを用いて説明する。
【０１６８】
図１２は、本実施形態における第４の制御処理プログラムの一例を示すフローチャートであり、「ＮｏｎＤＡＴＡ」転送タイプのコマンドシーケンスに対応する。なお、図中、Ｓ１４０１〜Ｓ１４１１は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０１６９】
まず、通常モードにおいて、ＨＤＤコントローラ１０１は、「ＮｏｎＤＡＴＡ」転送タイプのコマンドの発行を行う場合、ステップＳ１４０１で、ＨＤＤ１０３にアクセスするためにパラメータ設定を行う。パラメータ設定とは、データ暗号化装置１０２が有するレジスタとＨＤＤ１０３が有するレジスタの両方にデータ転送を実行するためのパラメータを設定する動作である。
【０１７０】
続いて、ステップＳ１４０２において、ＨＤＤコントローラ１０１は、データ暗号化装置１０２が有するコマンドレジスタに、ＨＤＤ１０３にて実行させるＡＴＡコマンド（ＮｏｎＤＡＴＡ転送タイプのコマンド）を発行する。ＨＤＤコントローラ１０１からＮｏｎＤＡＴＡ転送タイプのＡＴＡコマンドを受信したデータ暗号化装置１０２は、デバイスＩ／Ｆ１０８のレジスタにＡＴＡコマンドを設定する。
【０１７１】
そして、ステップＳ１４０３において、データ暗号化装置１０２のＣＰＵ１０６は、コマンドレジスタに設定されたコマンドがＨＤＤ１０３にて実行可能なコマンドであるか否かの判断を行う。そして、実行可能なコマンド（メモリ１１１内の参照データ内に登録されているコマンド（図９））のみＨＤＤ１０３のコマンドレジスタに設定を行う（転送する）。即ち「ＮｏｎＤＡＴＡ」転送のコマンドは、一旦、データ暗号化装置１０２で実行可能か否かが確認され、実行可能なコマンドのみＨＤＤ１０３へ転送される。ここでは、ＮｏｎＤＡＴＡタイプのＡＴＡコマンドはＨＤＤ１０３にて実行可能と判断されデータ暗号化装置１０２からＨＤＤ１０３に転送されるものとする。
【０１７２】
するとステップＳ１４０４において、ＨＤＤ１０３は、データ暗号化装置１０２から転送されたＡＴＡコマンドを解釈して実行し、コマンド処理が終了する。そして、ＨＤＤ１０３は、ステップＳ１４０５において、割り込み信号をデータ暗号化装置１０２に出力する。この割り込み信号は、データ暗号化装置１０２にだけに出力される。この割り込み信号を受けたデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１４０６において、ＨＤＤ１０３のレジスタから、スタータス、エラーなどの情報を読み出す。
【０１７３】
ＨＤＤ１０３のレジスタがデータ暗号化装置１０２により読まれると、ステップＳ１４０７において、ＨＤＤ１０３は割り込み信号を元に戻す（クリアする）。
【０１７４】
次に、ステップＳ１４０８において、データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤ１０３のレジスタから読み出したＨＤＤ１０３のステータス，エラーのデータをデータ暗号化装置１０２のレジスタに設定する。そして、ステップＳ１４０９において、データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤコントローラ１０１へ割り込み信号を送信する。
【０１７５】
ＨＤＤコントローラ１０１は、データ暗号化装置１０２から割り込み信号が入力されたので、ステップＳ１４１０において、データ暗号化装置１０２のレジスタから、ステータス，エラー等の情報を読み出す。
【０１７６】
これに応じて、ステップＳ１４１１において、データ暗号化装置１０２のＣＰＵ１０６は、割り込み信号を元に戻し（クリアし）、「Ｎｏｎ  Ｄａｔａ」転送タイプのコマンドが終了する。
【０１７７】
（２）ＰＩＯ  ＲＥＡＤ転送タイプ
以下、図１３を用いて、「ＰＩＯ  ＲＥＡＤ」転送タイプのコマンドのフローについて説明する。
【０１７８】
通常モードで実行可能な「ＰＩＯ  ＲＥＡＤ」転送タイプのコマンドとしては、図９に示したように「ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ」コマンドがある。「ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ」コマンドを実行すると、ＨＤＤ１０３のパラメータ情報（５１２バイト）を読み出すことができる。パラメータ情報としては、ＨＤＤ１０３が有するシリンダ数、ヘッド数、ＨＤＤ１０３のシリアル番号、などのＨＤＤ１０３に固有の情報である。このＨＤＤ１０３に固有の情報は、ＨＤＤコントローラ１０１からＨＤＤ１０３へ書き込まれたデータとは異なる。即ち、ＨＤＤ１０３に固有の情報は暗号化されていないデータである。
【０１７９】
図１３は、本実施形態における第５の制御処理プログラムの一例を示すフローチャートであり、「ＰＩＯ  ＲＥＡＤ」転送タイプのコマンドシーケンスに対応する。なお、図１３において、Ｓ１５０１〜Ｓ１５１８は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０１８０】
まず、通常モードにおいて、ＨＤＤコントローラ１０１は、「ＰＩＯ  ＲＥＡＤ」転送タイプのコマンドの発行を行う場合、ステップＳ１５０１で、レジスタにＨＤＤ１０３にアクセスするためのパラメータ設定を行う。パラメータ設定は、データ暗号化装置１０２とＨＤＤ１０３の両方のレジスタに設定される。
【０１８１】
続いて、ステップＳ１５０２において、ＨＤＤコントローラ１０１は、データ暗号化装置１０２が有するコマンドレジスタに、ＨＤＤ１０３にて実行させるＡＴＡコマンド（ＰＩＯ  ＲＥＡＤ転送タイプのコマンド）を発行する。ＨＤＤコントローラ１０１からＰＩＯ  ＲＥＡＤ転送タイプのＡＴＡコマンドを受信したデータ暗号化装置１０２は、デバイスＩ／Ｆ１０８のレジスタにＡＴＡコマンドを設定する。
【０１８２】
そして、ステップＳ１５０３において、データ暗号化装置１０２のＣＰＵ１０６は、コマンドレジスタに設定されたコマンドがＨＤＤ１０３にて実行可能なコマンドであるか否かの判断を行う。そして、実行可能なコマンド（メモリ１１１内の参照データ内に登録されているコマンド（図９））のみＨＤＤ１０３のコマンドレジスタに設定を行う（転送する）。即ち「ＰＩＯ  ＲＥＡＤ」転送のコマンドは、一旦、データ暗号化装置１０２で実行可能か否かが確認され、実行可能なコマンドのみＨＤＤ１０３へ転送される。ここでは、ＰＩＯ  ＲＥＡＤタイプのＡＴＡコマンドはＨＤＤ１０３にて実行可能と判断されデータ暗号化装置１０２からＨＤＤ１０３に転送されるものとする。
【０１８３】
ステップＳ１５０４において、ＨＤＤ１０３は、データ暗号化装置１０２から転送されたＡＴＡコマンドを解釈して実行する。例えば、「ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ」コマンドであると、ＨＤＤ１０３内のセクタバッファに要求されたパラメータ情報を入れて、レジスタに発行されたコマンドに対するステータスを書き込む。そして、ステップＳ１５０５において、ＨＤＤ１０３は、割り込み信号をデータ暗号化装置１０２に出力する。
【０１８４】
この割り込み信号を受信したデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１５０６において、ＨＤＤ１０３のレジスタを読みだし、ＨＤＤ１０３のスタータスを確認する。ＨＤＤ１０３のレジスタがデータ暗号化装置１０２により読まれると、ＨＤＤ１０３は、ステップＳ１５０７において、割り込み信号を元に戻す（クリアする）。
【０１８５】
次に、ステップＳ１５０８において、データ暗号化装置１０２のＣＰＵ１０６は、データ暗号化装置１０２の動作モードを通常モードからバイパスモードへ移行させるための設定をＡＴＡバスセレクタ１０７に対して行う。バイパスモード設定が終了すると、ステップＳ１５０９において、データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤコントローラ１０１へ割り込み信号を出力し、ＨＤＤ１０３の準備ができていることを通知する。
【０１８６】
この割り込み信号を受けたＨＤＤコントローラ１０１は、ステップＳ１５１０において、ＨＤＤ１０３レジスタからＨＤＤ１０３のステータス・エラー等の情報を読み出す。ここで、ＨＤＤ１０３のスタータスレジスタから情報が読み出されたことを、データ暗号化装置１０２が認識し、ステップＳ１５１１において、割り込み信号をＨＤＤコントローラ１０１に出力する。
【０１８７】
その後、ステップＳ１５１２において、ＨＤＤコントローラ１０１は、ＨＤＤ１０３内のセクタバッファに設定されたデータ（パラメータ情報等）を読み出す。
【０１８８】
そして、所定数のデータの読み出しが終了すると、データ暗号化装置１０２のＣＰＵ１０６がこれを監視し、ステップＳ１５１４において、バイパスモードが終了するようにＡＴＡバスセレクタ１０７に設定する。
【０１８９】
バイパスモードが終了すると、ステップＳ１５１５において、データ暗号化装置１０２のＣＰＵ１０６は、ステータスとエラーの状態をデータ暗号化装置１０２のレジスタをセットする。さらに、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１５１６において、ＨＤＤコントローラ１０１へ割り込み信号を出力する。
【０１９０】
ＨＤＤコントローラ１０１は、データ暗号化装置１０２から割り込み信号が入力されたので、ステップＳ１５１７において、データ暗号化装置１０２のステータスとエラーレジスタを読み出す。
【０１９１】
これに応じてデータ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１５１８において、割り込み信号を元に戻し（クリアし）、「ＰＩＯ  ＲＥＡＤ」転送タイプのコマンドが終了する。
【０１９２】
（３）ＤＭＡ転送タイプ
続いて、図１４を用いてＨＤＤ１０３へのデータの書き込み、読み出しを行うＤＭＡ転送について説明する。
【０１９３】
ＤＭＡ転送としては、ＨＤＤ１０３からデータを読み出す「ＲＥＡＤ  ＤＭＡ」と、ＨＤＤ１０３へデータを書き込む「ＷＲＩＴＥ  ＤＭＡ」の２種類がある。「ＷＲＩＴＥ  ＤＭＡ」時には、データ暗号化装置１０２でデータの暗号化を行い、「ＲＥＡＤ  ＤＭＡ」時には、データの復号化を行う。
【０１９４】
図１４は、本実施形態における第６の制御処理プログラムの一例を示すフローチャートであり、ＤＭＡ転送タイプのコマンドシーケンスに対応する。なお、図中、Ｓ１６０１〜Ｓ１６１５は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０１９５】
まず、通常モードにおいて、ＨＤＤコントローラ１０１は、ＤＭＡ転送タイプのコマンドの発行を行う場合、ステップＳ１６０１で、ＨＤＤ１０３にアクセスするためにパラメータ設定を行う。
【０１９６】
続いて、ステップＳ１６０２において、ＨＤＤコントローラ１０１は、データ暗号化装置１０２が有するコマンドレジスタに、ＨＤＤ１０３にて実行させるＡＴＡコマンド（ＤＭＡ転送タイプのコマンド）を発行する。ＨＤＤコントローラ１０１からＤＭＡ転送タイプのＡＴＡコマンドを受信したデータ暗号化装置１０２は、デバイスＩ／Ｆ１０８のレジスタにＡＴＡコマンドを設定する。
【０１９７】
そして、ステップＳ１６０３において、データ暗号化装置１０２のＣＰＵ１０６は、コマンドレジスタに設定されたコマンドがＨＤＤ１０３にて実行可能なコマンドであるか否かの判断を行う。そして、実行可能なコマンド（メモリ１１１内の参照データ内に登録されているコマンド（図９））のみＨＤＤ１０３のコマンドレジスタに設定を行う（転送する）。即ち、ＤＭＡ転送のコマンドは、一旦、データ暗号化装置１０２で実行可能か否かが確認され、実行可能なコマンドのみＨＤＤ１０３へ転送される。ここでは、ＤＭＡ転送タイプのＡＴＡコマンドはＨＤＤ１０３にて実行可能と判断され、データ暗号化装置１０２からＨＤＤ１０３に転送されるものとする。
【０１９８】
すると、ＨＤＤ１０３はＤＭＡ転送の準備を行い、準備が終了すると、ステップＳ１６０４において、データ暗号化装置１０２へＤＭＡ転送要求信号を出力する。
【０１９９】
データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤ１０３からＤＭＡ転送要求信号を受け取ると、ステップＳ１６０５において、暗号・復号部１０９が暗号化を行うか復号化を行うかの設定を行う。ＣＰＵ１０６は、ＨＤＤコントローラ１０１が発行したコマンド名がＲＥＡＤ＿ＤＭＡであれば暗号・復号部１０９に復号化を行うよう設定し、ＷＲＩＴＥ＿ＤＭＡであれば暗号・復号部１０９に暗号化を行うよう設定する。
【０２００】
続いて、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１６０６において、ＤＭＡ転送要求をＨＤＤコントローラ１０１へ出力する。
【０２０１】
その後、ステップＳ１６０７において、ＨＤＤコントローラ１０１とＨＤＤ１０３は、データ暗号化装置１０２を介してＤＭＡ転送を行う。なお、ＤＭＡ転送時に、データ暗号化装置１０２の暗号・復号部１０９は、ＤＭＡ転送されるデータの暗号化あるいは復号化を実行する。
【０２０２】
そして、所定データ数のＤＭＡ転送が終了すると、ステップＳ１６０７において、ＨＤＤ１０３は、割り込み信号をデータ暗号化装置１０２へ出力する。
【０２０３】
この割り込み信号を受信したデータ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤ１０３のステータスレジスタを確認する。これに応じて、ＨＤＤ１０３は、ステップＳ１６１０において、割り込み信号を元に戻す（クリアする）。
【０２０４】
これに応じて、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１６１１で、ＨＤＤ１０３からＨＤＤコントローラ１０１へのデータのＤＭＡ転送を停止させる。ＤＭＡ転送が終了すると、データ暗号化装置１０２のＣＰＵ１０６は、内部の設定を行いデータ暗号化装置１０２の状態を暗号・復号モードから通常モードに移行させる。
【０２０５】
次に、ステップＳ１６１２において、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１６０９でＨＤＤ１０３のステータスレジスタから読み出したステータス，エラーの状態を示す情報を、データ暗号化装置１０２のレジスタに記憶させる。さらにステップＳ１６１３において、データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤコントローラ１０１へ割り込み信号を送信する。
【０２０６】
ＨＤＤコントローラ１０１は、データ暗号化装置１０２から割り込み信号が入力されたので、ステップＳ１６１４において、データ暗号化装置１０２のレジスタに記憶されたＨＤＤ１０３のステータス，エラーの情報を読み出す。
【０２０７】
これに応じて、データ暗号化装置１０２のＣＰＵ１０６は、ステップＳ１６１５において、割り込み信号を元に戻し（クリアし）、ＤＭＡ転送タイプのコマンドが終了する。
【０２０８】
（４）ＰＩＯ  ＷＲＩＴＥタイプ
続いて、図１５を用いてＨＤＤへのデータの書き込みを行う「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドを扱う処理について説明する。
【０２０９】
一般的なＡＴＡコマンドには、ＨＤＤへのデータ書き込みコマンドとして、「ＷＲＩＴＥ  ＭＵＬＴＩＰＬＥ」コマンド等の「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドがある。しかし、本実施形態では、ＨＤＤ１０３に対するデータの書き込みを制限する。そのため、使用可能なコマンド（ＨＤＤ１０３にて実行可能なコマンド）に「ＷＲＩＴＥ  ＭＵＬＴＩＰＬＥ」コマンド等の「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドは認めていない。即ち、メモリ１１１内の参照データ内に使用可能なＡＴＡコマンドとして登録していない。
【０２１０】
このため、ＨＤＤコントローラ１０１により「ＷＲＩＴＥ  ＭＵＬＴＩＰＬＥ」コマンド等の「ＰＩＯ  ＷＲＩＴＥ」転送タイプコマンドが発行されても、データ暗号化装置１０２のＣＰＵ１０６は、ＨＤＤ１０３にて実行不可能と判断し、ＨＤＤ１０３へはコマンドを転送しない。
【０２１１】
図１５は、本実施形態における第７の制御処理プログラムの一例を示すフローチャートであり、「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドシーケンスに対応する。なお、図１５において、Ｓ１７０１〜Ｓ１７０６は各ステップを示す。なお、このフローチャートにおいてデータ暗号化装置１０２のステップは、ＣＰＵ１０６がメモリ１１１に格納されるプログラムを実行することにより実現される。また、ＨＤＤコントローラ１０１のステップは、ＨＤＤコントローラ１０１内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。さらに、ＨＤＤ１０３のステップは、ＨＤＤ１０３内の図示しないＣＰＵがメモリに格納されるプログラムを実行することにより実現される。
【０２１２】
まず、通常モードにおいて、ＨＤＤコントローラ１０１は、「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドの発行を行う場合、ステップＳ１７０１で、レジスタにＨＤＤ１０３にアクセスするためのパラメータ設定を行う。パラメータ設定は、データ暗号化装置１０２とＨＤＤ１０３の両方のレジスタに設定される。
【０２１３】
続いて、ステップＳ１７０２において、ＨＤＤコントローラ１０１は、データ暗号化装置１０２が有するコマンドレジスタに、ＨＤＤ１０３にて実行させるＡＴＡコマンド（「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンド）を発行する。ＨＤＤコントローラ１０１からＰＩＯ  ＷＲＩＴＥ転送タイプのＡＴＡコマンドを受信したデータ暗号化装置１０２は、デバイスＩ／Ｆ１０８のレジスタにＡＴＡコマンドを設定する。
【０２１４】
そして、ステップＳ１７０３において、データ暗号化装置１０２のＣＰＵ１０６は、コマンドレジスタに設定されたコマンドがＨＤＤ１０３にて実行可能なコマンドであるか否かの判断を行う。そして、実行可能なコマンド（メモリ１１１内の参照データ内に登録されているコマンド（図９））のみＨＤＤ１０３のコマンドレジスタに設定を行う（転送する）。即ち、「ＰＩＯ  ＷＲＩＴＥ」転送のコマンドは、データ暗号化装置１０２で実行不可能なコマンドであると確認され、ＨＤＤ１０３へは転送されない。
【０２１５】
ステップＳ１７０３において、データ暗号化装置１０２のＣＰＵ１０６は、コマンドエラーである旨の情報をデータ暗号化装置１０２のレジスタに設定して、ステップＳ１７０４において、ＨＤＤコントローラ１０１へ割り込み信号を送信する。
【０２１６】
ＨＤＤコントローラ１０１は、データ暗号化装置１０２から割り込み信号が入力されたので、ステップＳ１７０５において、データ暗号化装置１０２のステータス，エラーのレジスタを読み出す。これにより、ＨＤＤコントローラ１０１は、コマンドエラーであることを確認できる。
【０２１７】
そしてステップＳ１７０６において、データ暗号化装置１０２のＣＰＵ１０６は、割り込み信号を元に戻し（クリアし）、「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドがエラー終了する。
【０２１８】
例えば、コンピュータシステム１００をＭＦＰとすると、上述の「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドは、ＭＦＰでは標準で使用されない。よって、図１５に示したように、ＭＦＰが標準で使用しないコマンド（例えば、「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンド）が不正に発行された場合、ＨＤＤ１０３への転送を禁止する。この構成により、データが暗号化されずにバイパスしてＨＤＤ１０３へ転送されてしまうことを確実に防止することができる。
【０２１９】
よって、本実施形態の構成では、ＨＤＤ１０３とデータ暗号化装置１０２をセットで盗難され、他のコンピュータシステムに接続された場合でも、データの漏洩を防止することができる。
【０２２０】
なお、本実施形態では、一例として「ＰＩＯ  ＷＲＩＴＥ」転送タイプのコマンドを、ＨＤＤ１０３への転送を禁止するコマンドとして説明した。しかし、データ暗号化装置１０２のＣＰＵ１０６は、メモリ１１１内の参照データ（図９）にＡＴＡコマンドとして登録されていないコマンドは、全て通常モードでは、実行不可能なコマンドとして、ＨＤＤ１０３への転送を禁止するように制御する。これによりＨＤＤ１０３のデータセキュリティを確保することができる。
【０２２１】
なお、メモリ１１１内の参照データに登録されているコマンド、登録されていないコマンドは、それぞれ上述した例（図８，図９）に限られるものではない。
【０２２２】
以上説明したように、本実施形態のデータ暗号化装置１０２は、コンピュータシステムおよび外部記憶装置間をブリッジするものである。そして、ＣＰＵ１０６の制御の元、暗号・復号部１０９で、ＨＤＤ１０３に書き込むデータを暗号化することによって、ＨＤＤ１０３のデータの機密性を維持することを実現している。特に、暗号化または復号に用いる鍵情報は、コンピュータシステムの固有情報とデータ暗号化装置１０２の固有情報から生成されるため、コンピュータシステムとデータ暗号装置の異なる組から正当な鍵情報を生成することができず、高い機密性を実現可能である。
【０２２３】
また、コンピュータシステム１００がＨＤＤ１０３にアクセス前に、コンピュータシステム１００とデータ暗号化装置１０２との認証を設け、認証が正常に終了しないとＨＤＤ１０３にアクセスできない構成となっている。
【０２２４】
また、認証終了後、ＨＤＤ１０３にアクセスする際にも、コンピュータシステム１００が発行するコマンドは全てデータ暗号化装置１０２が認識する。データ暗号化装置１０２のＣＰＵ１０６は、コマンドが実行可能であるか判断し、実行するコマンドを制限し、不要なＨＤＤ１０３へのアクセスを防止している。
【０２２５】
さらに、データ暗号化装置１０２は、ＨＤＤコントローラ１０１とＨＤＤ１０３に対するこれらの通信，データの送受信を全て標準インタフェースを介して実行することが可能であり、追加の信号線を必要としない。即ち、コンピュータシステムや外部記憶装置の仕様を変更する必要がない。
【０２２６】
以上のような構成により、コンピュータシステムと外部記憶装置の間に挿入して、データの暗号化を行うデータ暗号化装置において、データのセキュリティを適切に保つことができる等の効果を奏する。
【０２２７】
従って、データ暗号化装置と外部記憶装置のセットで盗難された場合にも高度に機密性を維持可能なデータ暗号化記憶システムを、既存のコンピュータシステム及び外部記憶装置の仕様を変更することなく、低コストで構築することができる等の効果を奏する。
【０２２８】
なお、上述した図８，図９で示した各種コマンドの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２２９】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２３０】
以下、図１６に示すメモリマップを参照して、本発明に係るデータ暗号化装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップの構成について説明する。
【０２３１】
図１６は、本発明に係るデータ暗号化装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体（記録媒体）のメモリマップを説明する図である。
【０２３２】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２３３】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２３４】
本実施形態における図２，図１０，図１１Ａ，図１１Ｂ，図１２，図１３，図１４，図１５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２３５】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２３６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２３７】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０２３８】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０２３９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやＦＴＰサーバ等も本発明の請求項に含まれるものである。
【０２４１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２４２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４３】
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２４４】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２４５】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０２４６】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【０２４７】
なお、上述した実施形態の各変形例を組み合わせた構成も全て本発明に含まれるものである。
【０２４８】
以上示したように、本実施形態によれば、記憶装置（ＨＤＤ１０３）と記憶装置を制御する制御装置（ＨＤＤコントローラ１０１）の間に接続され、記憶装置と制御装置との間で転送されるデータのセキュリティを適切に保つデータ処理装置（記録データ暗号化装置１０２）を提供することができる等の効果を奏する。
【０２４９】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン（コンピュータ）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【０２５０】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【０２５１】
１００  コンピュータシステム
１０１  ＨＤＤコントローラ
１０２  データ暗号化装置
１０２  記録データ暗号化装置
１０３  外部記憶装置（ＨＤＤ）
１０５  ＡＴＡバス
１０６  ＣＰＵ
１０７  ＡＴＡバスセレクタ
１０９  暗号・復号部
１１１  メモリ
１１２  ＲＡＭ
１１３  アドレス・データバス
【図１】
2011253561.tif 000003
【図２】
2011253561.tif 000004
【図３】
2011253561.tif 000005
【図４】
2011253561.tif 000006
【図５】
2011253561.tif 000007
【図６】
2011253561.tif 000008
【図７】
2011253561.tif 000009
【図８】
2011253561.tif 000010
【図９】
2011253561.tif 000011
【図１０】
2011253561.tif 000012
【図１１Ａ】
2011253561.tif 000013
【図１１Ｂ】
2011253561.tif 000014
【図１２】
2011253561.tif 000015
【図１３】
2011253561.tif 000016
【図１４】
2011253561.tif 000017
【図１５】
2011253561.tif 000018
【図１６】
2011253561.tif 000019