(57)【要約】【課題】  コンピュータシステムおよび外部記憶装置に変更を最小にするためにコンピュータシステムと外部記憶装置間をブリッジするデータ暗号化装置が提供されつつあるが、記憶装置がデータ転送中に記憶装置側が異常状態になったことにより、データ転送が正常に終了しない場合や、ノイズや他の外乱によってデータ転送が途中で異常状態のまま停滞することがある。【解決手段】  ホストとハードディスクに挿入する暗号化モジュールにおいて、ハードディスクに対するＤＭＡ転送が開始されるときに、カウンタを起動し、ハードディスクが応答しなくなった場合にカウンタが所定の値までカウントしたことをデータ転送ブロックにリセットとして入力し、ホストがソフト的に異常を検出したときには暗号化モジュールが初期化されているため、ホストからハードディスクに対してエラー処理が行える手段。【選択図】  図６
2008017119.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムと記憶装置の間に接続され、記憶装置へ格納するデータの暗号化と、記憶装置から読み出すデータの復号化を行うデータ処理装置において、
コンピュータシステムが記憶装置に対して発行するコマンドを受信する手段と、
コマンドを記憶装置へ発行するコマンド発行手段と、
記憶装置からの応答を受信する手段と、
前記コマンド発行手段によりカウントを開始し、前記記憶装置からの応答を受信する手段により応答を受信した際にカウントを停止するカウント手段と、を備え、
前記コマンドを受信する手段においてコンピュータシステムからコマンドを受信し、コマンドを解釈したのち、前記コマンド発行手段を用いて記憶装置にコマンドを発行する際、前記カウンタ手段をリセットし、かつカウントを開始するように指示を行い、前記記憶装置からの応答を受信する手段によって記憶装置からの応答を予め定められた時間内に受信した場合は、そのまま前記カウンタ手段を停止し、予め定められた時間内に記憶装置から応答が返されず、カウンタがタイムアアウトした際は、リセット回路へリセットを指示することを特徴とするデータ転送装置。
【請求項２】
前記カウンタがタイムアウトするまでの時間を選択可能なことを特徴とする、請求項１記載のデータ転送装置。
【請求項３】
前記コンピュータシステムが記憶装置に対して発行するコマンドを受信する手段によって受信したコマンドを解釈し、コマンドの種類によって、前記カウンタ手段によるカウント動作を行うか否かを選択可能なことを特徴とする、請求項１記載のデータ転送装置。
【請求項４】
前記カウンタ手段がタイムアウトし、データ転送装置を初期化する際、コンピュータシステムと記憶装置間の転送にかかわる回路のみリセットを行い、そのほかの回路部分はリセットを行わないことを特徴とする、請求項１記載のデータ転送装置。
【請求項５】
前記カウンタ手段がタイムアウトし、データ転送装置を初期化する信号を遮断するための遮断手段を有し、前記遮断手段によってデータ転送装置の初期化を行うか否かを選択可能なことを特徴とする、請求項１記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのデータ処理装置に関し、特に外部記憶装置に保持されているデータの機密性を維持するデータ暗号化・復号化装置に関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、データは外部記憶装置に保持されることが多い。外部記憶装置は、HDDに代表されるように、コンピュータシステムとはケーブル (e.g. IDE, SCSI, USB, IEEE1395)等で接続されていて、コンピュータシステムとの物理的な一体感が小さく、分離することが可能である。したがって、外部記憶装置をコンピュータシステムから分離し、解析することによって、外部記憶装置内のデータが漏洩してしまうという脅威が存在する。
【０００３】
上記の脅威に対抗する対策の一つとして、外部記憶装置に保持するデータを暗号化する方法がある。外部記憶装置に書き込むデータを暗号化し、また外部記憶装置から読み込みデータを復号することによって、外部記憶装置に保持されているデータの漏洩を防止する。
【０００４】
既存のコンピュータシステムに、新たに暗号化復号機能を追加する方法として、3つの方法が考えられる。第1の方法は、コンピュータシステムに暗号化復号機能を新規に追加する方法である。この方法の場合、既存のコンピュータシステムに対して、暗号化復号機能を新規に追加する必要があり、コンピュータシステムの変更が大きくなるという問題がある。第2の方法は、外部記憶装置に暗号化復号機能を追加する方法である。この方法の場合、外部記憶装置自身に暗号化復号機能を追加する必要があり、汎用的な外部記憶装置が利用できないという問題がある。第3の方法は、コンピュータシステムと外部記憶装置との間をブリッジする新たな装置を設ける方法である。第3の方法に関連して、特開平04-098552(電子ファイリング装置)と特開平11-085621(記録データ暗号化装置)の発明がある。
【０００５】
特開平04-098552(電子ファイリング装置)は、暗号化手段、復号手段、データ処理手段および外部記憶装置から構成される電子ファイリング装置であって、外部記憶装置に記録するデータを暗号化し、外部記憶装置から読み出すデータを復号する。また、暗号化または復号に必須の情報を取り外し可能な構造を有する。
【０００６】
特開平11-085621(記録データ暗号化装置)は、コンピュータシステムと外部記憶装置の間に接続される記録データ暗号化装置であって、鍵情報を記憶する記憶手段と、コンピュータシステムから送られたデータを前記記憶手段に記憶された前記鍵情報を加味して暗号化し外部記憶装置へ転送する暗号化手段と、外部記憶装置から読み出した暗号化されたデータを記憶手段に記憶された鍵情報を加味して復号化しコンピュータシステムへ転送する復号化手段と、暗号化手段と復号化手段を監視しそれらの動作を制御するプロトコル制御手段を備え、コンピュータシステムおよび外部記憶装置に変更を加えることなく、外部記憶装置に記憶するデータの暗号化を実現し、外部記憶装置内のデータの漏洩を防止している。また、鍵情報をICカード等の着脱可能な第2の外部記憶装置に記憶可能である。
【０００７】
さらに、コンピュータシステムおよび外部記憶装置に変更を最小にするためにコンピュータシステムと外部記憶装置間をブリッジするデータ暗号化装置であって、外部記憶装置と記録データ暗号化装置がセットで盗難された場合でも外部記憶装置へアクセスすることを防止し、かつコンピュータシステムからは暗号化装置を意識することなく、記憶装置が接続されているように見せられるデータ暗号化装置が提供されつつある。
【特許文献１】特開平04-09855号公報
【特許文献２】特開平11-085621号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記したようにコンピュータシステムおよび外部記憶装置に変更を最小にするためにコンピュータシステムと外部記憶装置間をブリッジするデータ暗号化装置が提供されつつあるが、記憶装置がデータ転送中に記憶装置側が異常状態になったことにより、データ転送が正常に終了しない場合や、ノイズや他の外乱によってデータ転送が途中で異常状態のまま停滞することがある。
【０００９】
このような異常状態の際、暗号化装置がデータ転送処理途中であると、コンピュータシステムから記憶装置に対する初期化のコマンドを送信することができず、システムが停止してしまう可能性があることが課題となっていた。
【００１０】
さらに、コンピュータシステムから暗号化装置に対して、異常状態から復帰させるために特別なコマンドを用意したり、特別な外部回路を用意すると、コンピュータシステム上で動作している記憶装置へアクセスするためのソフトウェアなどに変更を加える必要などがあり、前記したようなコンピュータシステムおよび外部記憶装置に変更を最小にするためにコンピュータシステムと外部記憶装置間をブリッジする目的が満たされないという課題があった。
【課題を解決するための手段】
【００１１】
コンピュータシステムと記憶装置の間に接続され、記憶装置へ格納するデータの暗号化と、記憶装置から読み出すデータの復号化を行うデータ処理装置において、
コンピュータシステムが記憶装置に対して発行するコマンドを受信する手段と、
コマンドを記憶装置へ発行するコマンド発行手段と、
記憶装置からの応答を受信する手段と、
前記コマンド発行手段によりカウントを開始し、前記記憶装置からの応答を受信する手段により応答を受信した際にカウントを停止するカウント手段と、を備え、
前記コマンドを受信する手段においてコンピュータシステムからコマンドを受信し、コマンドを解釈したのち、前記コマンド発行手段を用いて記憶装置にコマンドを発行する際、前記カウンタ手段をリセットし、かつカウントを開始するように指示を行い、前記記憶装置からの応答を受信する手段によって記憶装置からの応答を予め定められた時間内に受信した場合は、そのまま前記カウンタ手段を停止し、予め定められた時間内に記憶装置から応答が返されず、カウンタがタイムアアウトした際は、リセット回路へリセットを指示することで、データ転送装置自体を自動的に初期状態に戻しておくことにより、コンピュータシステムが記憶装置に対して初期化や異常状態からの復帰処理を行うことを、データ転送装置が阻害することが防止できるデータ転送装置を提供する。
【００１２】
さらに、前記カウンタがタイムアウトするまでの時間を選択可能なことを特徴とし、記憶装置からの応答が返されず、異常状態を判断するまでの時間をシステムや、記憶装置などの種類によって選択可能とすることによって、データ転送装置の使い方をシステムによってあわせることを可能とするデータ転送装置を提供する。
【００１３】
前記コンピュータシステムが記憶装置に対して発行するコマンドを受信する手段によって受信したコマンドを解釈し、コマンドの種類によって、前記カウンタ手段によるカウント動作を行うか否かを選択可能なことを特徴とし、記憶装置に対する初期化や、記憶装置が保持する情報を入手する際はカウンタ動作をせず、記憶装置に対してデータを実際にリードまたはライトするためのＤＭＡコマンドを使用したときにカウント動作可能としたデータ転送装置を提供する。
【００１４】
さらに、前記カウンタ手段がタイムアウトし、データ転送装置を初期化する際、コンピュータシステムと記憶装置間の転送にかかわる回路のみリセットを行い、そのほかの回路部分はリセットを行わないことを特徴とし、記憶装置などが異常状態になった場合は、データ転送装置内部のコンピュータシステムのインターフェース、記憶装置のインターフェースおよび暗号処理を行っている回路と、データを転送するためのＤＭＡ回路などのみ初期化でき、たとえば暗号の鍵を管理している回路部は初期化を行わないことにより、全体をリセットするより高速にかつコンピュータシステムのソフトウェアに影響を与えないようにすることができるデータ転送装置を提供する。
【００１５】
さらに、前記カウンタ手段がタイムアウトし、データ転送装置を初期化する信号を遮断するための遮断手段を有し、前記遮断手段によってデータ転送装置の初期化を行うか否かを選択可能なことを特徴とし、システムとしてデータ転送装置が自動的に異常状態から復帰するか否かを選択可能にできる手段を提供する。
【発明の効果】
【００１６】
本実施の形態は、コンピュータシステムおよび外部記憶装置間をブリッジするデータ暗号化装置であって、記憶装置とコンピュータシステム間のデータ転送時に何らかの異常状態によって、データ転送が行えなくなった場合でも、データ暗号化装置がデータ転送に必要なブロックのみ自動的に初期化されることによって、コンピュータシステムがソフト的に異常を検出した際に、外部記憶装置に対して初期化を指示しても、データ暗号化装置は自動的に復旧しているため、外部記憶装置に対する初期化がデータ暗号化装置部で留まることなく、外部記憶装置へ通知されるため、外部記憶装置を初期化し、再度データ転送を行うことが可能となる。
【発明を実施するための最良の形態】
【００１７】
本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
（第一の実施の形態）
本実施の形態では、データ暗号化装置について説明する。第一にデータ暗号化装置の利用環境について説明する。次に、データ暗号化装置の構成を説明し、最後に、当該装置でデータの機密性を維持する動作を説明する。
【００１９】
データ暗号化装置の利用環境
データ暗号化装置の利用環境について、図1を用いて説明する。図1に、データ暗号化装置、外部記憶装置およびコンピュータシステムの関係を示した。データ暗号化装置は、コンピュータシステムと外部記憶装置間をブリッジするように設置される。データ暗号化装置は、コンピュータシステムから送信されたデータを暗号化し外部記憶装置に転送し、かつ外部記憶装置から読み込まれたデータを復号しコンピュータシステムに転送する。
【００２０】
コンピュータシステムは、データ処理装置であって、バンキングシステム、DTP(DeskTop Publishing)システム、またはMFP(Multi Function Printer)等であり、特定のデータ処理装置に限定しない。外部記憶装置は、データを保持する装置であって、HDD(Hard Disk Drive)、またはCD-R/CD-RW/DVD-R/DVD-RWのような書き換え可能な磁気ディスク等であり、特定の外部記憶装置に限定しない。
【００２１】
なお、本発明は、コンピュータシステムを含む盗難によるデータ漏洩は想定しない。つまり、コンピュータシステムは、大きな筐体や入退室管理が実施されている居室に設置されている筐体であり、物理的に盗難が困難であると想定する。したがって、本発明は、外部記憶装置やデータ暗号化装置の盗難によるデータ漏洩を想定する。
【００２２】
また、本発明は、外部記憶装置やデータ暗号化装置の盗難によるデータ漏洩を想定しており、コンピュータシステムや外部記憶装置やデータ暗号化装置が設置し、運用している状態の解析によるデータ漏洩は想定しない。
【００２３】
データ暗号化装置の構成
次に、データ暗号化装置について、図2を用いて構成を説明する。図2に示した四角の各ブロックは機能別の構成要素である。
【００２４】
認証手段は、コンピュータシステムを認証する手段である。認証するための具体的な方法は、以下の方法が考えられる。
【００２５】
・コンピュータシステムとデータ暗号化装置間であらかじめ認証情報を共有しており、コンピュータシステムから受信した認証情報とデータ暗号化装置で保持している認証情報が一致するかどうかを検査し、コンピュータシステムを認証する方法。
【００２６】
・コンピュータシステムとデータ暗号化装置間であらかじめ認証情報を共有しており、認証情報を用いてチャレンジアンドレスポンス認証することにより、コンピュータシステムを認証する方法。
【００２７】
・データ暗号化装置がコンピュータシステムの公開鍵証明書を保持しており、データ暗号化装置は、コンピュータシステムのデジタル署名を受信し、デジタル署名を検証することにより、コンピュータシステムを認証する方法。なお、デジタル署名を受信すると同時に公開鍵証明書を受信することも可能である。
【００２８】
上記方法は、データ暗号化装置がコンピュータシステムを認証する一例であって、本発明は特定の認証方法に限定しない。
【００２９】
暗号化復号手段は、後述の制御手段に従って、鍵情報を用いてコンピュータシステムから送信されたデータを暗号化し、外部記憶装置から読み込んだデータを復号する。データの暗号アルゴリズムは、AES(Advanced Encryption Standard)など共通鍵暗号方式、RSAなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などが利用可能である。本発明は、暗号アルゴリズムに依存する方式でないため、本発明で利用する暗号アルゴリズムを特定の暗号アルゴリズムに限定しない。
【００３０】
制御手段は、コンピュータシステムから送信された情報がコマンド等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号化復号手段を動作させ暗号化する。さらに制御手段は、外部記憶装置から読み込んだ情報が応答等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号化復号手段を動作させ復号する。制御情報であるか、データであるかの判断は、コンピュータシステムまたは外部記憶装置間のインタフェース(e.g. SCSI, IDE, USB, IEEE1394等)の仕様に依存する。なお、制御手段は、暗号化復号手段で用いる鍵情報が存在しない等、データ暗号化装置が初期状態である場合、コンピュータシステムと外部記憶装置間の情報の送受信を遮断する。鍵情報の存在の有無は、後述の鍵共有手段と状態管理手段によって決まる。
【００３１】
鍵共有手段は、前記暗号化復号手段の暗号化処理や復号処理で利用する鍵情報を生成する。なお、鍵情報の生成方法の詳細は後述する。
【００３２】
状態管理手段は、データ暗号化装置の状態に関して、初期状態であるか否かを判断する。初期状態であるか否かは、前記鍵共有手段で鍵情報を生成するときに利用する鍵のシード情報(以下、シード情報)が保持されていて鍵情報を生成可能な状態(非初期状態)であるか、またはシード情報を保持しておらず鍵情報を生成不可能な状態(初期状態)であるかによって判断できる。さらに、シード情報を保持していないと判断した場合に、シード情報を生成し、生成したシード情報を保持する。なお、シード情報は、データ暗号化装置に固有の情報である。
【００３３】
データ暗号化装置の動作についてその1(鍵情報の生成)
次に、鍵情報の生成動作を説明する。
【００３４】
鍵共有手段は、コンピュータシステムからコンピュータシステムの固有情報(以下、固有情報)を受信する。固有情報は個々のコンピュータシステムに固有の情報であって、シリアル番号、LAN I/Fを持つコンピュータシステムにおけるMACアドレス、またはそれらの情報を組み合わせた情報など、さまざまな情報を利用することが可能である。
【００３５】
鍵共有手段は、受信した固有情報と状態管理手段に保持しているシード情報から鍵情報を生成する。固有情報とシード情報から鍵情報を生成する方法は、以下の方法が考えられる。
【００３６】
・固有情報とシード情報の排他的論理和を鍵情報とする方法
・一方向性ハッシュ関数に固有情報とシード情報を入力し、出力を鍵情報とする方法
・固有情報を暗号化関数の鍵とし、シード情報を暗号化処理し、出力を鍵情報とする方法
・シード情報を暗号化関数の鍵とし、固有情報を暗号化処理し、出力を鍵情報とする方法
・Diffie-Hellman鍵共有方式(RFC 2631)に基づいて鍵情報を共有する方法。ただし、データ暗号化装置だけが鍵情報を保持できればよいので、例えば、シード情報をデータ暗号化装置のDH鍵共有方式の秘密鍵とし、固有情報をデータ暗号化装置の公開鍵とコンピュータシステムの固有の情報から得られる情報とする。
【００３７】
上記方法は、固有情報とシード情報から鍵情報を生成する一例であって、本発明における鍵情報の生成方法は、2入力の関数「鍵情報 = f(シード情報, 固有情報)」であればどのような関数でもよい。
【００３８】
また、鍵情報と鍵情報検証情報とをセットで鍵情報として管理することで、鍵情報の正当性を検証することも可能である。鍵情報検証情報の一例として、鍵情報のハッシュ値が考えられる。
【００３９】
なお、シード情報の生成方法は、鍵情報の生成方法と暗号アルゴリズムに依存する。乱数を暗号アルゴリズムの鍵として利用できる場合は、シード情報も乱数または擬似乱数として生成することも可能である。一方、特定の条件を満たす情報を暗号アルゴリズムの鍵として利用しなければならない場合は、例えば、鍵情報を生成し、生成した鍵情報とシード情報から「鍵情報=f(シード情報,固有情報)」を満たすシード情報を求める必要がある。
【００４０】
データ暗号化装置の動作について
次に、図３を用いて、データ暗号化装置の動作を説明する。
【００４１】
状態管理手段は、データ暗号化装置内に保持されているシード情報の有無を検査する(S0301)。
【００４２】
シード情報が保持されていない場合は、シード情報を生成する(S0302)。
【００４３】
シード情報の生成後、またはS0301でシード情報が保持されている場合、認証手段は、コンピュータシステムを認証する(S0303)。認証に成功するまで次のステップに進まない。
【００４４】
コンピュータシステムを認証後、鍵共有手段は、コンピュータシステムから固有情報を受信する(S0304)。
【００４５】
鍵共有手段は、固有情報とシード情報から鍵情報を生成する(S0305)。なお、鍵情報として鍵情報検証情報をセットで管理している場合、生成した鍵情報の正当性を検証することが可能である。
【００４６】
制御手段は、鍵情報を保持していない等、データ暗号化装置が初期状態である場合、コンピュータシステムと外部記憶装置間の情報の送受信を遮断する(S0306)。なお、鍵情報の正当性を検証可能であって、鍵情報の正当性を検証できなかった場合、鍵情報を保持していないと判断することも可能である。
【００４７】
制御手段は、コンピュータシステムから送信された情報がコマンド等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号化復号手段を動作させ暗号化する。さらに制御手段は、外部記憶装置から読み込んだ情報が応答等の制御情報であるか、またはデータであるかを判断し、データの場合だけ暗号化復号手段を動作させ復号する(S0307)。なお、暗号化復号手段は、S0305で生成した鍵情報を用いて、暗号化または復号する。
【００４８】
以上の手順によって、外部記憶装置に保持されているデータを暗号化することを実現できる。
【００４９】
なお、S0307のデータの暗号化復号処理に関しては、第一の実施例と同様である。
【００５０】
暗号・復号処理
さらに、S0306のデータの暗号化復号処理に関して、データのフローを例示して、詳細に説明する。データを外部記憶装置に書き込む場合のデータフローを図4に示し、データを外部記憶装置から読み込む場合のデータフローを図5に示す。
【００５１】
コンピュータシステムから外部記憶装置にデータを書き込む場合のデータフローを図4に示す。制御手段は、コンピュータシステムから「コマンド」と「データ」からなる情報を受け取る。「コマンド」は書き込みに相当する制御情報であり、「データ」は外部記憶装置に書き込まれるデータである。制御手段は、暗号化復号手段を動作させ、「データ」を暗号化する。制御手段は、「コマンド」と暗号化処理によって得られた「暗号化データ」からなる情報を外部記憶装置に送信する。次に、制御手段は外部記憶装置での書き込み結果としての「応答」を受け取り、制御情報である「応答」をそのままコンピュータシステムへ送信する。
【００５２】
外部記憶装置からコンピュータシステムにデータを読み込む場合のデータフローを図5に示す。制御手段は、コンピュータシステムから「コマンド」を受け取る。「コマンド」は読み込みに相当する制御情報である。 制御手段は、「コマンド」をそのまま外部記憶装置に送信する。 次に制御手段は、外部記憶装置での読み込み結果として、「応答」と「暗号化データ」を受け取る。 制御手段は、暗号化復号手段を動作させ、「暗号化データ」を復号し、「応答」と「データ」からなる情報をコンピュータシステムへ送信する。
【００５３】
なお、図4および図5に示したデータフローは一例であり、複数のインタフェースを跨る具体的なデータフローはコンピュータシステムとデータ暗号化装置間のインタフェースの仕様、およびデータ暗号化装置と外部記憶装置間のインタフェース仕様に依存する。例えば、「データ」がなく、「コマンド」と「応答」だけのデータフローも考えら得る。さらに、コンピュータシステムとデータ暗号化装置間のインタフェースとデータ暗号化装置と外部記憶装置間のインタフェースが異なる場合も考えられる。 この場合、制御手段は、データの暗号化復号処理に加えて、インタフェース仕様の変換を同時に行うことで実現可能である。
【００５４】
図4および図5で示したとおり、被暗号化情報は「データ」である。したがって、鍵情報を保持しない等、データ暗号化装置が初期状態の場合、制御手段はコンピュータシステムと外部記憶手段間の送受信を遮断する情報を「データ」に限定することも可能である。
【００５５】
前述のとおり、認証方法はさまざまな方法を利用できる。したがって、S0303のコンピュータシステムの認証時に、コンピュータシステムから固有情報を受信することも可能である。一例としては、コンピュータシステムのデジタル署名を検証することによってコンピュータシステムを認証する方法であって、コンピュータシステムからデジタル署名と公開鍵証明書を受信する方法の場合、公開鍵証明書をコンピュータシステムの固有情報として利用することができる。このようにS0303においてコンピュータシステムの固有情報を受信可能な場合、S0304を省略することも可能である。
【００５６】
次にデータ暗号化装置の具体的な構成について説明する。
【００５７】
データ暗号化装置の構成
次に、データ暗号化装置について、図6を用いて構成を説明する。図6のデータ暗号化装置102はコンピュータシステム内のHDDコントローラ101とHDD103に挿入されるように配置される。HDDコントローラ101とデータ暗号化装置102間、データ暗号化装置102とHDD103間はHDDの通信規格であるもATAバス105で接続され、データ転送、通信が行われる。データ暗号化装置102は、HDDコントローラ101からHDD103へ送られるコマンド、データの解釈を行い、HDD103へ格納するデータの暗号化、HDD103から読み出すデータの復号化処理を行う。
【００５８】
データ暗号化装置102の内部は、HDDコントローラ101とHDD103間の通信、データの暗号・復号化を行う部分と、データ暗号化装置の制御を行う部分に大きく分かれる。
【００５９】
CPU106 はデータ暗号化装置全体を制御し、メモリ111にはCPU106 の制御プログラムが格納される。また、データの格納が可能である。データの暗号化で必要な鍵情報などのデータを格納することができる。RAM112ではワーク用としてプログラムの実行をサポートする。
【００６０】
ATA BUS SELECTOR107は、HDDコントローラ101、HDD103とのインターフェースであり、後述する動作モードに応じて、HDDコントローラとHDD103の接続制御を行う。
【００６１】
DEVICE I/F108は、通常動作中ATA BUS SELECTOR107を介してHDDコントローラ101に接続される。
【００６２】
HDDコントローラ101はDEVICE I/Fの存在を意識する必要がないように、HDD103と同じように動作する。HDDコントローラ101が発行するコマンドは、DEVICE I/F 108で一旦受信される。実行可能であると判断されたコマンドはCPU106からHOST I/F110に対して発行され、HDD103へ送られる。
【００６３】
HDD103へのデータ格納の際には、一旦データを受信し、暗号・復号部109へデータを転送する。また、HDD103からデータを読み出す際には暗号・復号部109でデータを復号して、ATA  BUS104を介してHDDコントローラ101へデータを転送する。その際の制御データの生成も行っている。
【００６４】
暗号・復号部109はHDDへ格納するデータの暗号化とHDDから読み出すデータの復号化を行うブロックである。
【００６５】
データの暗号アルゴリズムは、AES(Advanced Encryption Standard)など共通鍵暗号方式、RSAなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などが利用可能である。本発明は、暗号アルゴリズムに依存する方式でないため、本発明で利用する暗号アルゴリズムを特定の暗号アルゴリズムに限定しない。
【００６６】
HOST I/F110は、ATA BUS SELECTOR107を介してHDD103に接続される。DEVICE I/F108と同様の動作を行い、HDD103へのコマンド転送、制御データの生成、暗号・復号部109とHDD103間のデータ転送をサポートする。
【００６７】
また、データ暗号化装置102内の各ブロックは、アドレス・データバス113を介してCPU106により制御される。
【００６８】
カウンタ114は、CPU106によりクリアおよび起動開始、カウントの停止が指示されるものである。カウンタ114は予め定められた値にカウント値が達した場合、セレクタ115に対して割り込みを発生することができる。カウンタ114は複数のカウント値比較のための比較器を有し、それぞれの比較器においてカウント値が比較値に一致した際に、セレクタ115に対して割り込みを発生する。
【００６９】
セレクタ115は、カウンタ114から通知された割り込みのうち、どの割り込みをリセット信号として通知するかを選択するものであり、セレクタ115の設定を変更することで、カウンタ114でカウントしたどのカウント値で割り込みを通知するかを選択可能としている。
【００７０】
動作モード
暗号化装置102の動作モードについて、図7を用いて説明する。
【００７１】
暗号化装置102の動作モードは、大きく分けて遮断モードと通常モードの2種類がある。また、通常モードでのコマンドにより、処理中にバイパスモードと暗号・復号モードの2種類に移行する。
○遮断モード
暗号化装置の電源が入力されると、データ暗号化装置は、まず遮断モードS701に設定される。HDDコントローラ101が行ういかなるアクセスもHDDへ到達できないようなモードである。
【００７２】
このとき、HDDコントローラ101からHDD103へアクセスであるレジスタのリードライトはデータ暗号化装置102に対して行われ、HDD103へのアクセスは遮断される。
【００７３】
また、このとき使用可能なコマンドはHDDに103アクセスするために使用する通常コマンド以外の、新たに定義した拡張コマンドのみが使用可能である。
【００７４】
この遮断モードS701では、コンピュータシステムとデータ暗号化装置102との相互認証機能のみが可能となる。この相互認証が終了した場合にのみ、通常モードS702に移行できる。
【００７５】
HDDコントローラ101が発行するコマンドが実行可能か不可能であるかは、データ暗号化装置102内のメモリ111に格納されたプログラムで規定される。HDDコントローラ101が発行するコマンドは図6のATA BUS SELECTOR107を介してDEVICE I/Fが受信し、データ・アドレスバス113を介してCPUが認識する。メモリ111内のプログラム（参照データ）と比較し、実行可能かを判断する。
○通常モード
通常モードS702は、HDDコントローラ101がHDD103に対してアクセスを行うモードである。
【００７６】
ただし、HDDコントローラ101が発行するコマンドは全てデータ暗号化装置102が確認し、実行可能なコマンドのみがHDDへ渡さる。それ以外のコマンドは実行不可能なコマンドとして受け付けない。
【００７７】
コマンドの実行可能、不可能の判断は遮断モードと同様であり、動作モードごとにメモリ111内の参照データを変更している。ただし、実行可能なコマンドは異なる。
【００７８】
通常モードにおいて、CPU106により実行可能であると判断されたコマンドは、HOST I/F110に対してCPU106により設定され、ATA BUS SELCTOR107を介してHDD103へ発行される。
【００７９】
次に、HDD103に対するレジスタアクセスコマンドを受けとると、コマンドのバイパスモードへ移行する。詳細は後述する。
【００８０】
HDD103に対するデータの格納、読み出しを示すDMAコマンドを受け取ると暗号・復号モードS704へ移行する。
【００８１】
また、この通常モードS702の状態で、特別に定義された拡張コマンドを受信すると遮断モードS701へ移行するようになっている。
○バイパスモード
バイパスモードS703は通常モードS702において、HDDへのレジスタアクセス行うときに実行されるモードである。HDDコントローラ101のレジスタアクセスをHDD103へバイパスさせるモードである。
【００８２】
HDD103 のレジスタデータの転送完了後、通常モードS702へ移行する。
○暗号・復号モード
暗号・復号モードS704はDMA転送によるHDD103 へのデータ格納、読み出し時にデータに対してデータを暗号化または復号化するモードである。
【００８３】
DMA転送が完了した時点で通常モードS702へ移行する。
【００８４】
ATA  BUS SELCTORの構成
図8にATA BUS SELCTOR107 の構成を示した。
【００８５】
HDDコントローラ101はHDDコントローラサイド入出力信号801と接続され、信号の入出力が行われる。また、HDD103はHDDサイド入出力信号802と接続されている。
【００８６】
HDDコントローラサイド入出力信号801はセレクタ803を介してDEVICE I/F108あるいはバイパス回路804に接続される。
【００８７】
同様にHDDサイド入出力信号802はセレクタ805を介して、HOST I/F110あるいはバイパス回路804に接続される。
【００８８】
各セレクタ803、805は、制御回路806を介してCPU106 により制御される。
【００８９】
HDDコントローラ101とHDD103は、バイパス回路804を介して接続されたり、暗号・復号回路109を介してデータ転送されたり、あるいはCPU106を介して接続される。
【００９０】
ATA BUS SELECTOR107
図９を用いて、各動作モードにおけるATA BUS SELECTOR107の動作を説明する。
【００９１】
図９は、各モードにおけるデータバスの接続関係および転送方向を示している。
【００９２】
太い線の矢印はデータの送受信行うPIO/DMAバスを示し、細い線は動作設定、状態確認などで使用するレジスタ等のアクセスを示す。
○遮断モード・・・図９(a)
このとき、ATA BUSSELECTOR107内のHDDコントローラ101サイドの入出力信号はDEVICE I/Fに接続され、HDD103サイドの入出力信号はHOST I/Fに接続される。
【００９３】
これにより、相互認証が終了するまでHDDコントローラ101からHDD103へのいかなるアクセスも禁止される。
○通常モード・・・図９(b)
通常モードでは、PIO/DMAバスはDEVICE I/Fと、HOST I/Fに接続される。また、図９(b)はレジスタアクセスについては、アクセスするレジスタに応じてアクセス先が変更されることを示す。
【００９４】
HDDコントローラ101からHDD103のレジスタへの書き込みアクセスが発行されると（Wの部分）、HDDコントローラサイドの入出力信号から、アクセスするレジスタの種類に応じて、DEVICE  I/F108内のレジスタだけに書き込まれたり、あるいはHDDサイドの入出力信号にそのまま接続されHDD103だけに書き込まれたり、あるいは双方に書き込まれることを示す。
【００９５】
レジスタリードにおいても同様で、HDD103のデータがそのまま読み出せたり、HOST I/F110で読まれたデータをDEVICE I/Fを介して読み出したりすることを示す。
○バイパスモード・・・図９（ｃ ）
バイパスモードにおいては、ホストサイドの入出力信号と、HDDサイドの入出力信号は、直接接続される。一部のレジスタの書き込みアクセスに関しては、HDD103 のレジスタと、DEVICE  I/F108内のレジスタに同じものが書かれる。
【００９６】
実行可能な拡張コマンド
図1０に示した拡張コマンドは、通常のHDDアクセスで使用されるATAコマンドとは異なり、データ暗号化装置102のみが処理可能なコマンドである。
【００９７】
図10に、図7の遮断モードS701において、動作可能な拡張コマンドを記載した。
【００９８】
コマンド名は、動作可能なコマンドの名称を示し、タイプはアクセスの種類を示す。Non DATAタイプはデータの転送を伴わないコマンドであり、ステータスの確認、遮断モードから通常モードへ移行などがある。
【００９９】
WRITE、READタイプはデータの書き込み、読み出しを伴うコマンドであり、バージョン情報の取得、認証のチャレンジで使用される。
【０１００】
実行可能なATAコマンド
図11に、図7の通常モードS702において、動作可能なコマンドを記載した。
【０１０１】
HDDコントローラ101からHDD103に対して実行可能なコマンドは、図10に示したものに限定される。これは、HDD103に対する不要なアクセスを防止するセキュリティ確保のためである。
【０１０２】
通常モードS702において、HDDコントローラ101からコマンドが発行されるとデータ暗号化装置内部で一旦保持し、そのコマンドが実行可能かをチェックする。実行可能なコマンドのみが、HDD103へ送られる。実行不可能であると判断されたコマンドについては、HDD103へは送られずにエラー（アボートエラー）としてHDDコントローラ101へ通知される。
【０１０３】
認証
図１２を用いてHDDコントローラ101とデータ暗号化装置102間の認証に関する説明を行う。
【０１０４】
認証の状態としては、データ暗号化装置102を始めてHDDコントローラに接続した設置時の状態と、すでに設置済みの状態の2種類がある。図12、13を用いて順に説明する。
【０１０５】
初回設置時
初めてコンピュータシステム101にデータ暗号化装置102が設置されたときのシーケンスを説明する。
【０１０６】
電源が入力されS1201、データ暗号化装置102は遮断モードで起動するS1202。データ暗号化装置が接続されているかの確認を行うS1203。HDDコントローラ101はデータ暗号化装置102 に対して、GET STATUSコマンドを発行しS1204、データ暗号化装置の状態を認識する。初めてデータ暗号化装置を設置したときには、暗号鍵等が生成されていないので、未インストールのステータスが戻ってくることになるS1205。
【０１０７】
未インストール状態を認識した場合、インストールの実行コマンドを送信しS1206、暗号鍵のシード情報を生成S1207、続いて固有情報を送信するS120８。データ暗号化装置は受信した固有情をRAM112に保持するS1209。続いて、暗号鍵のシード情報と固有情報に基づいて、暗号鍵を生成しメモリ111に書き込むS1210。無事、暗号鍵の生成が終了すると終了のステータスをHDDコントローラ101に返信するS1211。
【０１０８】
HDDコントローラ101は暗号鍵の生成終了を認識すると、CHANGEモードコマンドを、データ暗号化装置102に送信するS1212。暗号鍵の生成が終わったことで、認証の代替処理とみなし通常モードへ移行するS1213。
【０１０９】
その後は、HDD103へのアクセスを行うモードとなり、ATAの各種コマンドが有効となるS1214、S1215。
【０１１０】
通常起動時
図１３において、電源ON後、データ暗号化装置102は遮断モードで起動するS1301、S1302。
【０１１１】
まず、モジュール接続の確認後S1303、ステータスチェックを行い、すでに暗号鍵の生成が終了したインストール済みの状態であるか、未インストールの状態であるかの確認を行いS1304、S1305、インストール済みの状態であることを返信されると、認証確認に移る。
【０１１２】
認証は、HDDコントローラ側101側からチャレンジの実行を示すチャレンジコマンド、チャレンジ乱数を送信するS1306、S1307、S1308。
【０１１３】
続いて、HDDコントローラ101からレスポンス要求コマンドを送信。レスポンスを返信するS1309、S1310、S1311。
【０１１４】
次に、データ暗号化装置からHDDコントローラへのチャレンジの実行に移る。実行の要求を行うコマンドを送信するS1312。データ暗号化装置はチャレンジ乱数をHDDコントローラへ送信するS1313、S1314。
【０１１５】
さらに、HDDコントローラはレスポンスの実行を要求するコマンドを送信S1315。これに応じて、HDDコントローラはデータ暗号化装置へレスポンスを送信するS1316。
【０１１６】
レスポンスが正しければ、認証終了となるS1317。
【０１１７】
通常モードへの移行コマンドを受信しS1318、認証が正常に終了していると遮断モードから通常モードへ移行するS1319、S1320、S1321。
【０１１８】
コマンドシーケンス
図7に戻り、S701の遮断モードで認証が終了すると、通常モードS702に移行する。
【０１１９】
続いて、通常モードS702で実行可能なコマンドの詳細シーケンスを示す。通常モードで実行可能なコマンドは、図11に示したものであり、データの転送タイプで３つにわけられる。データ転送を伴わないNonDATA転送タイプ、READ転送タイプ、DMA転送（暗号・復号）タイプの３つである。順に説明する。
○コマンドシーケンス  Non Data転送
コマンドの実行は、2ステップの処理で行われる。まず、実行するコマンドに必要なパラメータを設定するもので、HDDのコマンドブロック内の関連するレジスタ（T/Fレジスタ。I/O レジスタやコマンドブロックレジスタなどとも呼ばれる）にデータを書き込む。次に、コマンドレジスタにコマンドコードを書き込む。これにより、実際にHDDは（いったん、データ暗号化装置を介して）コマンドを実行する。
【０１２０】
また、パラーメータ設定を行うレジスタやコマンドコードを書き込むレジスタには、HDDコントローラ101から書き込む場合と、読み出す場合で、意味の異なるものがある。ERROR／FEATURESレジスタや、STATUS/COMMANDレジスタなどで。読み出し時にはHDDのエラーやステータスを示すが、書き込み時にはコマンドの実行を示す。
【０１２１】
図14はNon Data転送タイプのコマンドに対する詳細シーケンスを示したものである。
【０１２２】
Non Data転送タイプのコマンドとしては、RECALIBRATE、SEEKなどのコマンドがある。
【０１２３】
RECALOBRATEコマンドは、HDDのREZERO動作を行うもので、SEEKコマンドは、HDDの指定されたトラックへのシークおよびヘッドの選択が行われる。
【０１２４】
まず、通常モードにおいて、HDDコントローラがHDDにアクセスするためにパラメータ設定をオ行う。パラメータ設定は、データ暗号化装置102とHDD103の両方のレジスタに設定されるS1401。
【０１２５】
続いて、HDDコントローラ101がコマンドレジスタに実行するコマンドを発行すると、データ暗号化102のDEVICE I/F108のレジスタに設定されるS1402。データ暗号化装置102は、実行可能なコマンドであるかの判断を行い、実行可能なコマンドのみHDD103のコマンドレジスタに設定を行うS1403。
【０１２６】
HDD103はコマンドを実行しS1404、コマンド処理が終了すると割り込み信号を出力するS1405。この割り込み信号はデータ暗号化装置102だけに入力されており、データ暗号化装置102はHDD103のスタータス、エラーレジスタなどのレジスタを読み出すS1406。レジスタが読まれるとHDD103は割り込み信号をもとに戻すS1407。
【０１２７】
データ暗号化装置102は、読み出したHDD103のステータス、エラーレジスタのデータをデータ暗号化装置102のステータス、エラーレジスタに設定S1408、HDDコントローラへの割り込み信号を出力するS1409。HDDコントローラ101は割り込み信号が入力されたので、ステータスとエラーレジスタを読み出すS1410。データ暗号化装置102は割り込み信号を元にもどしS1411、Non Data転送タイプのコマンドが終了する。
○コマンドシーケンス  READ転送タイプ（PIO READ）
図15を用いて、READ転送タイプのコマンドのフローについて説明する。
【０１２８】
通常モードで実行可能なREAD転送タイプのコマンドとしては、図11に示すようにIDENTIFY DEVICEコマンドがある。IDENTIFY DEVICEコマンドを実行すると、HDDのパラメータ情報512バイトを読み出すことができる。パラメータ情報としては、シリンダ数、ヘッド数、シリアル番号、などのHDD固有の情報であり、HDDコントローラからHDDへ書き込まれたデータとは異なる。
【０１２９】
図15において、まず、HDDコントローラ101がパラメータ設定を行いS1501、READ転送タイプのコマンドを発行するとS1502、データ暗号化装置１０２がいったんコマンドを解釈し、HDDへ転送するS1503。HDD103は、発行されたコマンドに対して実行するS1504。IDENTIFY DEVICEコマンドであると、HDD103内のセクタバッファに要求されたパラメータ情報を入れて、レジスタに発行されたコマンドに対するステータスを書き、割り込み信号を出力するS1505。
【０１３０】
データ暗号化装置102はレジスタを読みだし、HDD103のスタータスを確認するS1506。レジスタが読まれると、HDD103は割り込み信号をクリアするS1507。
【０１３１】
データ暗号化装置102はバイパスモードへ移行するための設定を行うS1508。バイパスモード設定が終了すると、HDDコントローラ101へ割り込み信号を出力しS1509、HDD103の準備ができていることを通知する。
【０１３２】
HDDコントローラ101は、HDD103レジスタをリードするS1510。HDD103のスタータスレジスタがリードされたことを、データ暗号化装置102が認識し、割り込み信号を戻すS1511。その後、HDDコントローラ101はHDD103のデータ（パラメータ情報等）を読み出すS1512。
【０１３３】
所定数のデータの読み出しが終了すると、バイパスモードが終了するS1513。バイパスモード終了すると、データ暗号化装置102はHDDコントローラ101へ割り込み信号を出力しS1514、S1515、スタータスレジスタの確認後、割り込み信号を戻して一連の処理が終了するS1516、S1517。
○コマンドシーケンス  READ DMA／WRITE DMA転送タイプ
続いて、図１６を用いて、HDDへのデータの書き込み、読み出しを行うDMA転送について説明する。
【０１３４】
DMA転送としては、HDD103からデータを読み出すREAD DMAと、HDD103へデータを書き込むWRITE DMAの2種類がある。WRITE DMA時には、データ暗号化装置でデータの暗号化を行い、READ DMA時には、データの復号化を行う。
【０１３５】
HDDコントローラ101がDMA転送コマンドの発行を行う場合、レジスタにパラメータ設定を行いS1601、DMA転送のコマンドを設定するS1602。
【０１３６】
DMA転送のコマンドは、いったん、データ暗号化装置102で確認され、HDD103へ転送されるS1603。HDD103はDMA転送の準備を行い、準備が終了するとデータ暗号化装置102へDMA転送要求信号を出力するS1604。
【０１３７】
データ暗号化装置102はDMA転送開始要求信号を受け取ると、暗号あるいは復号モードに応じて内部の設定を行い、暗号・復号モードへ移行するS1605。暗号、あるいは復号処理のどちらであるかはHDDコントローラ101が発行したコマンドですでに認識済みである。
【０１３８】
ここで、内部CPU106は、S1606の処理において、カウンタのクリアを行いカウンタの初期化を行う。次に、内部CPU106は、S1607の処理において、カウンタの起動を行いカウントアップ動作を開始させる。このように、実際にHOSTとHDD間でデータ転送が開始されるときにカウンタに対して起動をかける。
【０１３９】
続いて、暗号・復号モードへ移行すると、DMA転送開始要求をHDDコントローラ101へ出力するS1608。
【０１４０】
その後、実際にDMA転送と、同時にデータ暗号化装置ではデータの暗号あるいは復号処理が実行されるS1609。
【０１４１】
所定データ数の転送が終了すると、HDD103は割り込み信号をデータ暗号化装置102へ出力するのでS16010、データ暗号化装置102はステータスレジスタを確認後S1611、割り込みクリアとなるS1612。これで、HDD102のDMA転送が終了する。
【０１４２】
次に内部CPU106は、正常にデータ転送が終了したものとして、S1613の処理でカウンタの停止を行う。DMA転送が終了しカウンタが停止された場合、カウンタが予め定められた値で割り込みを出力することなく、停止する。このように、カウンタが割り込みを出力するまでのカウント値は通常動作ではその値に達しない値を予め選択しておくことにより、通常動作時には割りこみが発生しないようにしておく。
【０１４３】
続いて、データ暗号化装置102はDMA転送が終了すると、内部の設定を行い通常モードに移行するS1614。HDD103から読み出したステータス、エラーの状態をレジスタに設定してS1615、HDDコントローラ101へ割り込みを行うS1616。HDDコントローラ101がレジスタをリードして、終了するS1617、S1618。
○コマンドシーケンス  READ DMA／WRITE DMA転送時に異常が発生
続いて、HDDへのデータの書き込み、読み出しを行うDMA転送時に、HDDが途中で正常終了しない際の動作について図１７を用いて説明する。
【０１４４】
S1609までの処理は、図１６と同様であり説明を省略する。S1609までの処理で、HDDがデータ転送を行っている最中に、HDD側の都合によりデータ転送が途中で停止し、割り込みを通知しない状態がS1701である。HDDからのデータ転送を終了する割り込みが入力されないため、S1607で起動がかかったカウンタは、カウンタ動作を継続し、予め定められた値にカウント値が到達すると、カウンタが割り込み信号をS1702で発生する。割り込み信号はセレクタ115を介してデータ暗号化装置102に入力され、この信号によってS1703に示すように107のATABusセレクタ、DeviceI/F108、暗号・復号部109、HOSTI/F110などがリセットされる。またCPU102にカウンタからの割り込み信号が通知され、S1704の処理において前記した通常モードに復帰をする。このようにHDDが異常状態になるなどしても、所定の時間HDDからの割り込み信号を検出しないと、自動的にデータ転送装置102のデータ転送に関わるブロックの初期化が行われる。
【０１４５】
次に、S1705の処理において、データ転送装置102からデータ転送の終了割り込みがHOSTに通知されないため、HOST側がソフト的にカウンタを回していて、ある時間応答が返らないことを検出すると、リセットをHDDに対して発行する。このとき、S1704までの処理で、通常モードにまでデータ転送装置102が復帰をしているので、HOST側が発行したリセットコマンドをデータ転送装置が受け付け、S1706の処理において、データ転送装置102がHDDに対してリセットを発行する。次にHDDではS1707の処理において、リセットを受け付け内部を初期化する。次にHOSTはS1708の処理において、HDDがリセット受付後IDLE状態にもどるまで、HDDのレジスタをポーリングし、HDDがIDLE状態にもどったことをレジスタのリードで判定すると、処理を終了する。
【０１４６】
HDDが初期化された後、HOSTは図１６に示すフローにそって再度DMA転送を行い、次に正常に終了した場合は、DMA転送の処理を終了する。図１７のフローを繰り返してもDMA転送が行えない場合は、HOSTはエラー状態であることを必要に応じて操作部や、別のHOSTへ通知し、処理を終了する。
○コマンドシーケンス  WRITE転送タイプ（PIO WRITE）
HDDへのデータ書き込みコマンドとして、WRITE MULTIPLE（PIO  WRITE）コマンドがあるが、HDDに対する不要なデータの書き込みを防止するため、使用可能なコマンドにWRITE MULTIPLE（PIO  WRITE）コマンドは認めていない。そのため、HDDコントローラ101により、WRITE MULTIPLE（PIO  WRITE）コマンドが発行されても、データ暗号化装置102が実行不可能であると判断し、HDD103へはコマンドを転送しない。
【０１４７】
（その他の実施の形態）
さらに本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０１４８】
また本発明の目的は、上述した実施例で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つを構成することになる。
【０１４９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１５０】
またコンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づきコンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【０１５１】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込みまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５２】
【図１】データ暗号化装置の利用環境を示す図である。
【図２】データ暗号化装置の構成を示す図である。
【図３】データ暗号化装置の動作フローを示す図である。
【図４】外部記憶装置へデータを書き込む場合のフローを示す図である。
【図５】外部記憶装置からデータを読みコム場合のデータフローを示す図である。
【図６】第2の実施例における、全体構成を示すブロック図である。
【図７】動作モードの遷移を示す図である。
【図８】ATA BUS SELECTORの構成を示す図である。
【図９】ATA BUS SELECTORの動作を示す図である。
【図１０】動作可能な拡張コマンドを示す図である。
【図１１】動作可能なATAコマンドを示す図である。
【図１２】初回設置時の遮断モードでの認証シーケンスフローを示す図である。
【図１３】通常起動時の遮断モードでの認証シーケンスフローを示す図である。
【図１４】通常モード時の、NonData転送タイプのフローを示す図である。
【図１５】通常モード時とバイパスモードの処理フローを示す図である。
【図１６】通常モードと暗号・復号モードの処理フローを示す図である。
【図１７】通常モードと暗号・復号モードのデータ転送が異常終了した際の処理フローを示す図である。
【図１】
2008017119.tif 000003
【図２】
2008017119.tif 000004
【図３】
2008017119.tif 000005
【図４】
2008017119.tif 000006
【図５】
2008017119.tif 000007
【図６】
2008017119.tif 000008
【図７】
2008017119.tif 000009
【図８】
2008017119.tif 000010
【図９】
2008017119.tif 000011
【図１０】
2008017119.tif 000012
【図１１】
2008017119.tif 000013
【図１２】
2008017119.tif 000014
【図１３】
2008017119.tif 000015
【図１４】
2008017119.tif 000016
【図１５】
2008017119.tif 000017
【図１６】
2008017119.tif 000018
【図１７】
2008017119.tif 000019