(57)【特許請求の範囲】
【請求項１】
データを暗号化する暗号化部と、
前記暗号化部によって暗号化されたデータを記憶する記憶部と、
前記記憶部へのデータの記憶を制御する記憶制御部と、
前記記憶制御部は、前記記憶部の情報の取得要求を送信する送信手段と、
前記暗号化部の自己テスト機能によるテストで前記暗号化部のエラーを検知した場合、前記暗号化部は、前記記憶制御部からの記憶部の情報の取得要求に応じてエラーであることを示す情報を、前記記憶制御部へ通知する第一の通知手段と、
前記記憶制御部は、前記通知に応じて前記暗号化部の情報の取得要求を送信し、前記暗号化部は、前記取得要求に応じて前記テストの結果がエラーであることを示す情報を前記記憶制御部へ通知する第二の通知手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
さらに、前記暗号化部にエラーがあることを、前記データ処理装置の電源がＯＦＦからＯＮに移行したことに従って通知する第三の通知手段を有する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
さらに、前記暗号化部にエラーがあることを、前記データ処理装置に前記記憶部が接続されたことに従って通知する第四の通知手段を有する
ことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記記憶制御部は、前記暗号化部のテストでエラーが発生しなかった場合、前記記憶部の情報の取得要求を前記記憶部に送信するよう制御することで、前記記憶部の情報を前記記憶部から取得することを許可し、前記暗号化部のテストでエラーが発生した場合、前記記憶部の情報の取得要求を前記記憶部に送信しないよう制御することで、前記記憶部の情報を前記記憶部から取得することを禁止する
ことを特徴とする請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記記憶制御部は、前記第二の通知手段によって通知された前記情報をメモリに記憶し、
前記情報をメモリに記憶している間は、前記記憶部の情報の取得要求を出さないように制御することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記暗号化部の自己テスト機能によるテストは、前記データ処理装置の電源がＯＦＦからＯＮに移行したことに従って実行される
ことを特徴とする請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記暗号化部の自己テスト機能によるテストは、前記データ処理装置に前記記憶部が接続されたことに従って実行される
ことを特徴とする請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記暗号化部の自己テスト機能によるテストは、暗号復号機能のテスト、乱数生成機能のテスト、及びハッシュ計算機能のテスト、ファームウェア領域の改ざん検知のテストの少なくとも１つを含むことを特徴とする請求項１乃至７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記記憶部の情報は、前記記憶部の容量、前記記憶部の型番、及び前記記憶部の使用時間の少なくとも１つを含む
ことを特徴とする請求項１乃至８のいずれか１項に記載のデータ処理装置。
【請求項１０】
データを暗号化する暗号化部と、前記暗号化部によって暗号化されたデータを記憶する記憶部と、前記記憶部へのデータの記憶を制御する記憶制御部と、を有するデータ処理装置の制御方法であって、
前記記憶制御部は、前記記憶部の情報の取得要求を送信する送信工程と、
前記暗号化部の自己テスト機能によるテストで前記暗号化部のエラーを検知した場合、前記暗号化部は、前記記憶制御部からの記憶部の情報の取得要求に応じてエラーであることを示す情報を、前記記憶制御部へ通知する第一の通知工程と、
前記記憶制御部は、前記通知に応じて前記暗号化部の情報の取得要求を送信し、前記暗号化部は、前記取得要求に応じて前記テストの結果がエラーであることを示す情報を前記記憶制御部へ通知する第二の通知工程と、
することを特徴とするデータ処理装置の制御方法。
【請求項１１】
請求項１０に記載の制御方法を、コンピュータで実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを格納した、コンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理装置の制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
データ処理装置では、記憶装置としてＨＤＤが用いられる。ＨＤＤコントローラとＨＤＤとの間に暗号ユニットを接続し、ＨＤＤに記憶されたデータの暗号化／復号化を行う技術がある。
【０００３】
暗号ユニットに関するセキュリティ要件を規定した米国連邦標準規格ＦＩＰＳ  １４０−２や、複合機・プリンタの国際的な規格ＩＥＥＥ  Ｓｔｄ  ２６００ＴＭ−２００８（以下、ＩＥＥＥ２６００）等の規格がある。これらの規格で求められる要件の一つに、セキュリティ機能が正常に動作しているかを自ら判断する自己テストがある。
【０００４】
暗号ユニットは、内部に自己テスト機能を有する。データ処理装置は、暗号ユニットで行われる自己テストによって、暗号処理が仕様通りに動作しているか、暗号処理自身が改ざんされていないか等を確認する。
【０００５】
特許文献１に記載の情報処理装置は、ＨＤＤ暗号化機能の自己テストを実施する。この情報処理装置は、ＨＤＤ暗号化機能の自己テストに成功した場合、ＨＤＤ暗号化機能を起動する。一方、この情報処理装置は、ＨＤＤ暗号化機能の自己テストに失敗した場合、ＨＤＤ暗号化機能の関連機能の起動を停止する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１９４９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
暗号ユニットの自己テストに失敗した場合、ＨＤＤに記憶されているデータが暗号ユニットによって正しく暗号化されていない可能性がある。ＨＤＤに記憶されているデータが正しく暗号化されていない場合、第三者によってＨＤＤに記憶されているデータが搾取されると、ＨＤＤに記憶されているデータが外部に流出するリスクがある。このようなリスクを回避するために、暗号ユニットは、暗号ユニットの自己テストに失敗したことに従って、ＨＤＤに記憶されているデータの取得要求を遮断する。
【０００８】
一方、データ処理装置は、装置の起動時やＨＤＤの接続時に、装置に接続されたＨＤＤを使用することができるかどうかを、ＨＤＤの基本情報（記憶容量、型番、使用時間等）に基づいて判断する。しかしながら、暗号ユニットの自己テストに失敗した場合、データ処理装置は、装置に接続されたＨＤＤの基本情報（記憶容量、型番、使用時間等）を取得することができないと、装置に接続されたＨＤＤを使用することができるかどうかを判断できない。このとき、データ処理装置は、装置にＨＤＤが接続されていない状態として認識していたため、以降、ＨＤＤの情報や暗号ユニットの情報の取得要求を行わないようにする。このため、ユーザは、ＨＤＤに記憶されているデータを取得できない理由が、暗号ユニットのエラーであることを知ることができない。
【０００９】
本発明は、上記の課題に鑑みてなされたものである。本発明の目的は、暗号装置のテストでエラーが発生した場合に、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認できる装置や方法等を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係るデータ処理装置は以下のような構成を備える。即ち、データを暗号化する暗号化部と、前記暗号化部によって暗号化されたデータを記憶する記憶部と、前記記憶部へのデータの記憶を制御する記憶制御部と、前記記憶制御部は、前記記憶部の情報の取得要求を送信する送信手段と、前記暗号化部の自己テスト機能によるテストで前記暗号化部のエラーを検知した場合、前記暗号化部は、前記記憶制御部からの記憶部の情報の取得要求に応じてエラーであることを示す情報を、前記記憶制御部へ通知する第一の通知手段と、前記記憶制御部は、前記通知に応じて前記暗号化部の情報の取得要求を送信し、前記暗号化部は、前記取得要求に応じて前記テストの結果がエラーであることを示す情報を前記記憶制御部へ通知する第二の通知手段と、することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、暗号装置のテストでエラーが発生した場合に、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るＭＦＰの構成を示すブロック図である。
【図２】第１の実施形態に係る暗号ユニットの構成を示すブロック図である。
【図３】第１の実施形態に係る処理のフローを説明するためのシーケンス図である。
【図４】第１の実施形態に係る画面の構成を説明するための模式図である。
【図５】第２の実施形態に係る処理のフローを説明するためのシーケンス図である。
【図６】第３の実施形態に係る処理のフローを説明するためのシーケンス図である。
【図７】第４の実施形態に係る処理のフローを説明するためのシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について添付図面を参照して詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものではなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１４】
［第１の実施形態］
本発明の第１の実施形態に係るＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の構成について、図１のブロック図を用いて説明する。
【００１５】
本発明の第１の実施形態に係るデータ処理装置の一例であるＭＦＰ１は、画像入力デバイスであるスキャナ装置２、画像出力デバイスであるプリンタ装置４、画像処理ユニット５、不揮発メモリ２０、記憶装置であるＨＤＤ２３、コントローラ部３で構成される。
スキャナ装置２は、原稿給送ユニット１１と、スキャナユニット１２とで構成される。これらのユニットは電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００１６】
原稿給送ユニット１１は、原稿を積載するための原稿トレイを有し、原稿トレイに載置された原稿を給送する。スキャナユニット１２は、原稿給送ユニット１１によって給送された原稿を読み取る場合、固定された光学系の位置で、給送された原稿に記録された画像情報を光学的に読み取る。一方、スキャナユニット１２は、原稿台ガラスに載置された原稿を読み取る場合、原稿台ガラスに載置された原稿に対して光学系を副走査方向に走査させることで、原稿台ガラスに載置された原稿に記録された画像情報を光学的に読み取る。ＣＣＤセンサ等の光学系で読み取られた画像情報は、光電変換されて、コントローラ部３に画像データとして入力される。
【００１７】
プリンタ装置４は、プリンタ装置４に転送された画像データに基づいて画像をシートに出力する動作（印刷動作）を行う。プリンタ装置４は、給送ユニット１８、マーキングユニット１６、及び排出ユニット１７を有する。これらのユニットは電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００１８】
給送ユニット１８は、印刷に使用するシートを収納する複数のカセットや手差しトレイを有し、カセットや手差しトレイに収納されたシートをマーキングユニット１６に給送するためのユニットである。マーキングユニット１６は、給送ユニット１８によって給送されたシートに画像データに基づいて形成されたトナー（現像剤）画像の転写と定着を行い、シートに画像を形成（印刷）するためのユニットである。排出ユニット１７は、マーキングユニット１６によって画像が形成されたシートを機外に排出するためのユニットである。
【００１９】
コントローラ部３は、ＣＰＵ１３、ＲＡＭ１５、ＨＤＤコントローラ２１、暗号ユニット２２、及び操作部２４を有する。これらのユニットは、システムバス２５を介して電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００２０】
ＣＰＵ１３は、ＲＡＭ１５に記憶された制御プログラム等に基づいて、ＭＦＰ１を統括的に制御する。また、ＣＰＵ１３は、ＲＡＭ１５に記憶された制御プログラムを読み出して、例えば、スキャナ装置２による読み取りの制御や、プリンタ装置４による印刷の制御や、ファームウェアのアップデートの制御等の各種の制御処理を実行する。
【００２１】
ＣＰＵ１３は、スキャナ装置２から受信した画像データを、ＲＡＭ１５に一時保存する。そして、ＣＰＵ１３は、ＲＡＭ１５に一時保存された画像データを、ＨＤＤ２３に保存する。
【００２２】
また、ＣＰＵ１３は、ＨＤＤ２３に保存された画像データを取り出して、ＲＡＭ１５に一時保存する。そして、ＣＰＵ１３は、ＲＡＭ１５に一時保存された画像データをプリンタ装置４に転送する。
【００２３】
画像処理ユニット５は、汎用画像処理部１９を有し、画像の拡大、縮小、回転等の各種の画像処理を行う。汎用画像処理部１９は、ＲＡＭ１５に保存された画像データに対して、例えば縮小等の処理を行い、縮小後の画像データをＲＡＭ１５に再度保存することができる。
【００２４】
不揮発メモリ２０は、保持部の一例である。不揮発メモリ２０は、コントローラ部３が動作する時に必要な設定情報等を記憶する。不揮発メモリ２０は、ＭＦＰ１の電源が遮断された場合でも、データを保持することができる。
【００２５】
ＲＡＭ１５は、保持部の一例である。ＲＡＭ１５は、読み出し及び書き込み可能なメモリである。ＲＡＭ１５は、スキャナ装置２から転送された画像データや、各種プログラムや設定情報等を記憶する。
【００２６】
ＨＤＤ２３は、記憶装置の一例である。ＨＤＤ２３は、制御プログラム、画像データ、ユーザのＩＤやパスワード等のユーザ情報を格納したユーザデータベース、親展文書等の文書データを格納した文書データベース、及び、留め置きジョブ等を記憶する。尚、ＨＤＤ２３は、印刷に使用するシートの名称や表面性や坪量等のメディア情報を格納したメディアライブラリを記憶していてもよい。ＨＤＤ２３は、ＨＤＤコントローラ２１、及び暗号ユニット２２を介して、コントローラ部３に接続される。
【００２７】
ＨＤＤコントローラ２１は、記憶制御装置の一例である。ＨＤＤコントローラ２１は、ＣＰＵ１３から受けたコマンドを、ＨＤＤ２３が解釈できる電気信号に変換し、当該コマンドを暗号ユニット２２に転送する。また、ＨＤＤコントローラ２１は、ＨＤＤ２３から受け付けた電気信号を、ＣＰＵ１３が解釈できるコマンドに変換し、当該コマンドをＣＰＵ１３に転送する。例えば、ＨＤＤコントローラ２１は、ＨＤＤ２３に記憶するデータを暗号ユニット２２に転送する。また、例えば、ＨＤＤコントローラ２１は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）の取得依頼（以下、ＨＤＤ情報の取得依頼と呼ぶ。）を暗号ユニット２２に転送する。
【００２８】
暗号ユニット２２は、ＨＤＤコントローラ２１とＨＤＤ２３との間で接続可能な暗号チップである。暗号ユニット２２は、ＨＤＤコントローラ２１から転送されたデータを暗号化し、暗号化されたデータをＨＤＤ２３に転送する。これにより、ＨＤＤ２３には、暗号ユニット２２によって暗号化されたデータが保存される。また、暗号ユニット２２は、ＨＤＤ２３に保存されたデータを復号化し、復号化されたデータをＨＤＤコントローラ２１に転送する。
【００２９】
操作部２４は、ユーザインタフェース部の一例であり、表示部とキー入力部とを有する。操作部２４は、表示部やキー入力部を介して、ユーザからの各種設定を受け付ける。操作部２４は、表示部に、ユーザに通知すべき各種情報を表示させる。表示部には、ＭＦＰ１の操作画面や、暗号ユニット２２の状態やＨＤＤ２３の状態等が表示される。
【００３０】
続いて、暗号ユニット２２の構成について、図２のブロック図を用いて説明する。
【００３１】
暗号ユニット２２は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＮＶＲＡＭ１０４、ディスクコントローラ１（ＤＩＳＫＣ１）１０６、データ転送ユニット１０７、暗号処理部１０８、及び、ディスクコントローラ２（ＤＩＳＫＣ２）１０９を備える。これらのユニットは、システムバス１０５を介して電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００３２】
ＣＰＵ１０１は、ＲＯＭ１０２又はＲＡＭ１０３に記憶された制御プログラム等に基づいて、暗号ユニット２２を統括的に制御する。例えば、ＣＰＵ１０１は、ＲＯＭ１０２又はＲＡＭ１０３に記憶された制御プログラム等に基づいて、ＨＤＤ２３に対する所定の処理（例えば、ＨＤＤ２３の記憶容量、型番、使用時間等の取得要求）を指示するコマンドをＨＤＤコントローラ２１に送信する。また、例えば、ＣＰＵ１０１は、ＲＯＭ１０２又はＲＡＭ１０３に記憶された制御プログラム等に基づいて、暗号ユニット２２の自己テストを実行する。暗号ユニット２２の自己テストは、ＩＥＥＥ２６００に関する機能であり、ＨＤＤ２３の暗号処理に関するテストを含む。尚、暗号ユニット２２の自己テストの詳細については、図３で後述する。
【００３３】
ＲＯＭ１０２又はＲＡＭ１０３は、暗号ユニット２２を制御するプログラムである暗号ドライバを保持する。また、ＲＯＭ１０２又はＲＡＭ１０３は、ＨＤＤコントローラ２１を制御するプログラムであるＨＤＤドライバを保持する。
【００３４】
ＲＯＭ１０２は、暗号ユニット２２の自己テストで計算される各種の計算値との比較に用いられる各種の既知解や、テストチェックサムの計算を行うためのデータを保持する。
【００３５】
ＮＶＲＡＭ１０４は、暗号ユニット２２が動作するために必要な設定や、暗号ユニット２２の状態（暗号ユニット２２の自己テストの実行結果を含む）等の情報を保持する。尚、ＮＶＲＡＭ１０４に記憶された情報は、暗号ユニット２２の電源が遮断されても保持される。
【００３６】
ディスクコントローラ１（ＤＩＳＫＣ１）１０６は、ＳＡＴＡケーブルを介してＨＤＤコントローラ２１と電気的に接続されており、互いに制御コマンドやデータを送受信する。ディスクコントローラ２（ＤＩＳＫＣ２）１０９は、ＳＡＴＡケーブルを介してＨＤＤ２３と電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００３７】
暗号処理部１０８は、データを暗号化する。また、暗号処理部１０８は、暗号化されたデータを復号化する。
【００３８】
データ転送ユニット１０７は、暗号処理部１０８と、ディスクコントローラ１（ＤＩＳＫＣ１）１０６と、ディスクコントローラ２（ＤＩＳＫＣ２）１０９と電気的に接続されており、互いに制御コマンドやデータを送受信する。
【００３９】
ＨＤＤ２３に記憶された、暗号化されていないデータ（以降、非暗号化データと呼ぶ。）は、ディスクコントローラ２（ＤＩＳＫＣ２）１０９を介して暗号処理部１０８に入力される。そして、暗号処理部１０８に入力された非暗号化データは、暗号処理部１０８で暗号化される。続いて、データ転送ユニット１０７は、暗号処理部１０８で暗号化されたデータ（以降、暗号化データと呼ぶ。）をディスクコントローラ２（ＤＩＳＫＣ２）１０９に転送する。そして、ディスクコントローラ２（ＤＩＳＫＣ２）１０９に転送された暗号化データは、ＨＤＤ２３に入力される。
【００４０】
一方、ＨＤＤ２３に記憶された暗号化データは、ディスクコントローラ２（ＤＩＳＫＣ２）１０９を介して暗号処理部１０８に入力される。そして、暗号処理部１０８に入力された暗号化データは、暗号処理部１０８で復号化される。続いて、データ転送ユニット１０７は、暗号処理部１０８で復号化されたデータ（以降、復号化データと呼ぶ。）をディスクコントローラ１（ＤＩＳＫＣ１）１０６に転送する。そして、ディスクコントローラ１（ＤＩＳＫＣ１）１０６に転送された復号化データは、ＨＤＤコントローラ２１に入力される。
【００４１】
続いて、ＨＤＤコントローラ２１と暗号ユニット２２とＨＤＤ２３における処理のフローについて、図３のシーケンス図を用いて説明する。この制御プログラムは、暗号ドライバとＨＤＤドライバとで構成され、ＣＰＵ１３で動作する。暗号ドライバの機能は、ＣＰＵ１３がプログラム（暗号ドライバのソフトウェア）を実行することによって実現される。また、ＨＤＤドライバの機能は、ＣＰＵ１３がプログラム（ＨＤＤドライバのソフトウェア）を実行することによって実現される。尚、暗号ドライバは、ＨＤＤドライバの上位のレイヤーに属する。このため、暗号ドライバの機能は、ＨＤＤドライバの機能に依存する。
【００４２】
暗号ユニット２２は、ＭＦＰ１の電源が入力されたこと（ＭＦＰ１の電源がＯＦＦからＯＮに移行したこと）に従って、暗号ユニット２２の自己テストを実行する（Ｆ３０１）。もしくは、Ｆ３０１で、暗号ユニット２２は、ＭＦＰ１にＨＤＤ２３が接続されたことをセンサで検知したことに従って、暗号ユニット２２の自己テストを実行してもよい。この自己テストでは、「暗号復号機能の、既知解を使ったテスト」、「乱数生成機能の、既知解を使ったテスト」、「ハッシュ計算機能の、既知解を使ったテスト」、及び「ファームウェア領域のチェックサムによる改ざん検知テスト」が実行される。
【００４３】
「暗号復号機能の、既知解を使ったテスト」は、入力されたフィードに対して暗号復号機能のアルゴリズムで算出された値が、ＲＯＭ１０２に予め記憶された暗号復号機能のための既知解に一致するか否かをチェックするものである。一致する場合、「暗号復号機能の、既知解を使ったテスト」に成功し、一致しない場合、「暗号復号機能の、既知解を使ったテスト」に失敗する。
【００４４】
また、「乱数生成機能の、既知解を使ったテスト」は、入力されたフィードに対して乱数生成機能のアルゴリズムで算出された値が、ＲＯＭ１０２に予め記憶された乱数生成機能のための既知解に一致するか否かをチェックするものである。一致する場合、「乱数生成機能の、既知解を使ったテスト」に成功し、一致しない場合、「乱数生成機能の、既知解を使ったテスト」に失敗する。
【００４５】
また、「ハッシュ計算機能の、既知解を使ったテスト」は、入力されたフィードに対してハッシュ計算機能のアルゴリズムで算出された値が、ＲＯＭ１０２に予め記憶されたハッシュ計算機能のための既知解に一致するか否かをチェックするものである。一致する場合、「ハッシュ計算機能の、既知解を使ったテスト」に成功し、一致しない場合、「ハッシュ計算機能の、既知解を使ったテスト」に失敗する。
【００４６】
また、「ファームウェア領域のチェックサムによる改ざん検知テスト」は、ファームウェア領域のバイナリファイルのチェックサムを計算した値が、ＲＯＭ１０２に予め記憶されたチェックサム値に一致するか否かをチェックするものである。一致する場合、「ファームウェア領域のチェックサムによる改ざん検知テスト」に成功し、一致しない場合、「ファームウェア領域のチェックサムによる改ざん検知テスト」に失敗する。
【００４７】
もし、暗号ユニット２２の自己テストで、これらの複数のテストのうち失敗したテストが一つでも存在する場合、暗号ユニット２２は、自己テストでエラーが発生したことを検出する。例えば、暗号ユニット２２を外部から使用するファームウェアが改ざんされた場合、暗号ユニットは、「ファームウェア領域のチェックサムによる改ざん検知テスト」に失敗するために、自己テストでエラーが発生したことを検出する。
【００４８】
暗号ユニット２２は、自己テストでエラーが発生したことを検出した場合、自己テストの結果がエラーであることを示す情報をＮＶＲＡＭ１０４に保存する（Ｆ３０２）。
【００４９】
暗号ユニット２２は、自己テストでエラーが発生したことを検出した場合、以後、ＨＤＤコントローラ２１から受信したコマンドのうち、ＨＤＤ２３に対するコマンドに対して、エラーを応答する。また、暗号ユニット２２は、自己テストでエラーが発生したことを検出した場合、以後、ＨＤＤコントローラ２１からコマンドを受信する。このコマンドは、例えば、ＨＤＤコントローラ２１と暗号ユニット２２との相互認証のためのコマンドや、暗号ユニット２２の状態を取得するためのコマンドや、ＨＤＤ２３のミラーリングに関するコマンド、ＨＤＤ２３に対するコマンド等を含む。そして、暗号ユニット２２は、暗号ユニット２２に対するコマンドのうち、暗号ユニット２２の状態を取得するためのコマンドに応答し、自己テストの結果を含む暗号ユニット情報を送信する。自己テストの結果を含む暗号ユニット情報とは、例えば、暗号ユニット２２の自己テストの結果を含む暗号ユニット２２の状態や、ＨＤＤ２３のミラーリングに関する情報等である。
【００５０】
ＨＤＤドライバは、ＨＤＤコントローラ２１の存在を確認した場合、ＨＤＤコントローラ２１を介してＨＤＤ２３が接続されているか否かを確認する必要がある。そこで、ＨＤＤドライバは、ＨＤＤコントローラ２１に対して、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）の取得を依頼する（Ｆ３０３）。ＨＤＤコントローラ２１は、ＨＤＤ情報の取得依頼をＨＤＤドライバから受け取り、ＨＤＤ情報の取得依頼を暗号ユニット２２に転送する（Ｆ３０３）。暗号ユニット２２は、ＨＤＤ情報の取得依頼をＨＤＤコントローラ２１から受け取る。
【００５１】
一方、暗号ユニット２２が自己テストでエラーが発生したことを検出した場合、ＨＤＤに記憶されているデータが暗号ユニットによって正しく暗号化されていない可能性がある。ＨＤＤに記憶されているデータが正しく暗号化されていない場合、第三者によってＨＤＤに記憶されているデータが搾取されると、ＨＤＤに記憶されているデータが外部に流出するリスクがある。このようなリスクを回避するために、暗号ユニットは、暗号ユニットの自己テストに失敗したことに従って、ＨＤＤに記憶されているデータの取得要求を遮断する。このため、暗号ユニット２２は、ＨＤＤ情報の取得依頼を受け取ったことに基づいて、ＨＤＤコントローラ２１にエラーを返す（Ｆ３０４）。そして、ＨＤＤコントローラ２１は、エラーの返答を暗号ユニット２２から受け取り、エラーの返答をＨＤＤドライバに転送する（Ｆ３０４）。
【００５２】
続いて、ＨＤＤドライバは、ＨＤＤコントローラ２１に対して、自己テストの結果を含む暗号ユニット情報の取得を依頼する（Ｆ３０５）。ＨＤＤコントローラ２１は、暗号ユニット情報の取得依頼をＨＤＤドライバから受け取り、暗号ユニット情報の取得依頼を暗号ユニット２２に転送する（Ｆ３０５）。
【００５３】
暗号ユニット２２は、ＮＶＲＡＭ１０４に保持された自己テストの結果を参照し、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１に送信する（Ｆ３０６）。ＨＤＤコントローラ２１は、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）を暗号ユニット２２から受け取り、受け取った暗号ユニット情報をＨＤＤドライバに転送する（Ｆ３０６）。
【００５４】
ＨＤＤドライバは、ＨＤＤコントローラ２１から受け取った、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）を不揮発メモリ２０又はＲＡＭ１５に保存する（Ｆ３０７）。
【００５５】
そして、ＨＤＤドライバは、暗号ユニット情報が不揮発メモリ２０又はＲＡＭ１５に保存された後に、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されていない状態」として認識する（Ｆ３０８）。言い換えれば、ＨＤＤドライバは、暗号ユニット情報が不揮発メモリ２０又はＲＡＭ１５に保存された後に、ＨＤＤコントローラ２１に対する要求を遮断する。なぜなら、ＣＰＵ１３は、ＭＦＰ１に接続されたＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）を取得することができないとき、ＭＦＰ１に接続されたＨＤＤ２３を使用することができるかどうかを判断できないからである。
【００５６】
このように、ＭＦＰ１は、暗号ユニット２２の自己テストでエラーが発生した場合、ＭＦＰ１にＨＤＤ２３が接続されていない状態として認識していたため、以降、ＨＤＤ２３の情報や暗号ユニット２２の情報の取得要求を行わないようにしていた。即ち、ＭＦＰ１は、暗号ユニット２２の自己テストでエラーが発生しなかった場合、ＨＤＤ２３の情報をＨＤＤ２３から取得することと、暗号ユニット２２の情報を暗号ユニット２２から取得することを許可していた。一方、ＭＦＰ１は、暗号ユニット２２の自己テストでエラーが発生した場合、ＨＤＤ２３の情報をＨＤＤ２３から取得することと、暗号ユニット２２の情報を暗号ユニット２２から取得することを禁止していた。
【００５７】
第１の実施形態では、暗号ユニット２２の自己テストでエラーが発生し、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）をＨＤＤドライバが取得できない場合に、暗号ユニット２２の自己テストでエラーが発生したことを通知する仕組みを提供する。より具体的には、暗号ユニット２２が自己テストでエラーが発生し、以後、ＨＤＤコントローラ２１に対する要求を遮断する前に、暗号ドライバは、ＨＤＤコントローラ２１に対して暗号ユニット情報の取得を依頼する。そして、暗号ユニット情報がＨＤＤコントローラ２１から取得され、取得された暗号ユニット情報が不揮発メモリ２０又はＲＡＭ１５に格納された後に、ＨＤＤドライバは、ＨＤＤ２３の情報や暗号ユニット２２の情報の取得要求を行わないようにするものである。以下に詳細を説明する。
【００５８】
暗号ドライバは、「ＭＦＰ１にＨＤＤ２３が接続されていない状態」を認識したことに従って、ＨＤＤドライバに対して、暗号ユニット情報の取得を依頼する（Ｆ３０９）。そして、ＨＤＤドライバは、暗号ユニット情報の取得依頼を暗号ドライバから受け付けたことに基づいて、不揮発メモリ２０又はＲＡＭ１５に格納された暗号ユニット情報を取得する（Ｆ３１０）。続いて、ＨＤＤドライバは、Ｆ３１０で取得された暗号ユニット情報を暗号ドライバに転送する（Ｆ３１１）。
【００５９】
そして、ＣＰＵ１０１は、ＨＤＤドライバから受け取った暗号ユニットの情報に、暗号ユニット２２の自己テストの結果として、暗号ユニット２２の自己テストの結果がエラーであることを示す情報が含まれることを判別する。そして、ＣＰＵ１０１は、暗号ユニット２２の自己テストの結果がエラーであるために、図４に示すエラー画面４００を介して、メッセージ４０１を操作部２４の表示部に表示する（Ｆ３１２）。
【００６０】
即ち、暗号ユニット２２の自己テストでエラーが発生したときは、ＭＦＰ１の電源が入力されたこと（ＭＦＰ１の電源がＯＦＦからＯＮに移行したこと）に従って、暗号ユニット２２にエラーがあることがユーザに通知されることになる。もしくは、暗号ユニット２２の自己テストでエラーが発生したときは、ＭＦＰ１にＨＤＤ２３が接続されたことをセンサで検知したことに従って、暗号ユニット２２にエラーがあることがユーザに通知されることになる。
【００６１】
尚、メッセージ４０１は、暗号ユニット２２の自己テストの結果がエラーであるがゆえに、暗号ユニット２２にエラーがあることをユーザが認識することができるのであれば、「暗号機能が正常に動作していません。」というようなメッセージや、「暗号機能の自己テストに失敗しました。」というメッセージであってもよく、エラーコードであってもよい。また、メッセージ４０１は、操作部２４の表示部に表示される例に限らず、ＬＡＮ等のネットワークを介してＭＦＰ１に接続されたＰＣ等の外部装置の表示部に表示させてもよい。また、暗号ユニット２２の自己テストの結果がエラーであることをユーザが認識することができるのであれば、メッセージ４０１を表示部に表示する例に限らず、音や光によってユーザに通知してもよい。
【００６２】
ユーザ（例えば、サービスマン）は、操作部２４の表示部に表示されたメッセージ４０１を見て、ＭＦＰ１に搭載された暗号機能にエラーがあることを知る。そして、ＭＦＰ１に搭載された暗号機能にエラーがあることを知ったユーザは、暗号機能にエラーがある暗号ユニット２２を交換して、暗号機能にエラーがないような新たな暗号ユニット２２をＨＤＤコントローラ２１及びＨＤＤ２３に接続すればよい。もし、暗号ユニット２２とＨＤＤコントローラ２１とが同一の基盤上に搭載されている形態である場合、ユーザは、暗号ユニット２２とＨＤＤコントローラ２１が搭載された基盤を交換し、暗号機能にエラーがないような新たな基盤をＨＤＤ２３に接続すればよい。このように、ユーザは、ＨＤＤ２３に対するデータのアクセスができなくなった場合に、暗号ユニット２２の自己テストの結果がエラーであることの通知を受けて、ＨＤＤ２３に接続された暗号ユニット２２の暗号機能にエラーがあることが分かる。したがって、ＨＤＤ２３に対するデータのアクセスができなくなったとき、ユーザは、ＨＤＤ２３自体を交換するのではなく、暗号ユニット２２を交換すればよいと判断することができる。
【００６３】
以上説明したように第１の実施形態では、図３のＦ３０５〜Ｆ３０７の処理によって、暗号ユニット２２とＨＤＤコントローラ２１との間に専用の信号線を設けることなしに、暗号ユニット２２の自己テストに失敗したことを暗号ドライバに通知することができる。これにより、暗号装置のテストでエラーが発生した場合、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認することができる。
【００６４】
［第２の実施形態］
第２の実施形態では、暗号ユニット２２の自己テストの結果がエラーであっても、ＨＤＤドライバは、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識する。これにより、暗号ユニット２２の自己テストの結果がエラーであっても、暗号ドライバは、暗号ユニット情報（暗号ユニット２２の自己テストの結果を含む）を暗号ユニット２２から取得できるようにした変形例を説明する。第２の実施形態では、第１の実施形態と比較して一部の処理が異なるため、第１の実施形態とは異なる処理を中心に図５で説明する。
【００６５】
図５に示したＦ３０１〜Ｆ３０６、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローは、図３に示したＦ３０１〜Ｆ３０６、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローと同一のため、詳細な説明は省略する。
【００６６】
ＨＤＤドライバは、Ｆ３０６で暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１から受け取る。その後、ＨＤＤドライバは、暗号ユニット２２の自己テストの結果がエラーであるか否かを判定する。ＨＤＤドライバは、暗号ユニット２２の自己テストの結果がエラーであると判定したことに基づいて、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識する（Ｆ５０１）。このとき、ＨＤＤドライバは、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識するが、ＨＤＤ２３に記憶された実データ（ユーザデータベース、文書データベース、及び留め置きジョブ等）にはアクセスできない。
【００６７】
暗号ユニット２２の自己テストに失敗した場合、ＨＤＤ２３に記憶されているデータが暗号ユニット２２によって正しく暗号化されていない可能性がある。ＨＤＤ２３に記憶されているデータが正しく暗号化されていない場合、第三者によってＨＤＤ２３に記憶されているデータが搾取されると、ＨＤＤ２３に記憶されているデータが外部に流出するリスクがある。このようなリスクを回避するために、暗号ユニット２２は、暗号ユニット２２の自己テストに失敗したことに従って、ＨＤＤ２３に記憶されている実データ（ユーザデータベース、文書データベース、及び留め置きジョブ等）の取得要求を遮断する。
【００６８】
一方、暗号ドライバは、ＨＤＤドライバが「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識しているため、暗号ユニット情報を取得することができる。
【００６９】
暗号ドライバは、ＨＤＤドライバに対して、暗号ユニット情報の取得を依頼する（Ｆ３０９）。そして、ＨＤＤドライバは、暗号ユニット情報の取得依頼を暗号ドライバから受け取り、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１に転送する（Ｆ５０２）。そして、ＨＤＤコントローラ２１は、暗号ユニット情報の取得依頼をＨＤＤドライバから受け取り、暗号ユニット情報の取得依頼を暗号ユニット２２に転送する（Ｆ５０２）。
【００７０】
そして、暗号ユニット２２は、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１から受け取る。その後、暗号ユニット２２は、ＮＶＲＡＭ１０４に保持された自己テストの結果を参照し、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１に送信する（Ｆ５０３）。そして、ＨＤＤコントローラ２１は、送信された暗号ユニット情報を暗号ユニット２２から受け取り、受け取った暗号ユニット情報をＨＤＤドライバに転送する（Ｆ５０３）。
【００７１】
そして、ＨＤＤドライバは、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１から受け取り、受け取った暗号ユニット情報を暗号ドライバに転送する（Ｆ３１１）。
【００７２】
そして、ＣＰＵ１０１は、ＨＤＤドライバから受け取った暗号ユニットの情報に、暗号ユニット２２の自己テストの結果として、暗号ユニット２２の自己テストの結果がエラーであることを示す情報が含まれることを判別する。そして、ＣＰＵ１０１は、暗号ユニット２２の自己テストの結果がエラーであるために、図４に示すエラー画面４００を介して、メッセージ４０１を操作部２４の表示部に表示する（Ｆ３１２）。
【００７３】
以上説明したように第２の実施形態では、図５のＦ５０１〜Ｆ５０３の処理によって、暗号ユニット２２とＨＤＤコントローラ２１との間に専用の信号線を設けることなしに、暗号ユニット２２の自己テストに失敗したことを暗号ドライバに通知することができる。これにより、暗号装置のテストでエラーが発生した場合、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認することができる。
【００７４】
［第３の実施形態］
第３の実施形態では、暗号ユニット２２の自己テストの結果がエラーである場合、ＨＤＤドライバは、ＨＤＤ２３に記憶された実データを取得できないが、ＨＤＤ２３の基本情報であれば取得できるようにした変形例を説明する。
【００７５】
第３の実施形態では、第１の実施形態と比較して一部の処理が異なるため、第１の実施形態とは異なる処理を中心に図６で説明する。図６に示したＦ３０１〜Ｆ３０３、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローは、図３に示したＦ３０１〜Ｆ３０３、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローと同一のため、詳細な説明は省略する。
【００７６】
暗号ユニット２２は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）の取得依頼をＨＤＤコントローラ２１から受け取り（Ｆ３０３）、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）の取得依頼をＨＤＤ２３に転送する（Ｆ６０１）。そして、暗号ユニット２２は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）をＨＤＤ２３から取得し（Ｆ６０２）、取得したＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）をＨＤＤコントローラ２１に転送する（Ｆ６０３）。そして、ＨＤＤコントローラ２１は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）を暗号ユニット２２から受け取り、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）をＨＤＤドライバに転送する（Ｆ６０３）。
【００７７】
そして、ＨＤＤドライバは、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）を取得する。続いて、ＣＰＵ１３は、ＭＦＰ１の起動時やＨＤＤ２３の接続時に、ＭＦＰ１に接続されたＨＤＤ２３を使用することができるかどうかを、ＨＤＤドライバが取得したＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）に基づいて判断する。ＣＰＵ１３は、ＭＦＰ１に接続されたＨＤＤ２３を使用することができると判断した場合、ＨＤＤ２３に対するデータのアクセスができるように設定を行う。これにより、ＨＤＤドライバは、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識する（Ｆ６０４）。これにより、暗号ドライバは、暗号ユニット情報（例えば、暗号ユニット２２の自己テストの結果を含む暗号ユニット２２の状態や、ＨＤＤ２３のミラーリングに関する情報等）を取得することができる。
【００７８】
暗号ドライバは、ＨＤＤドライバに対して、暗号ユニット情報の取得を依頼する（Ｆ３０９）。そして、ＨＤＤドライバは、暗号ユニット情報の取得依頼を暗号ドライバから受け取り、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１に転送する（Ｆ６０５）。そして、ＨＤＤコントローラ２１は、暗号ユニット情報の取得依頼をＨＤＤドライバから受け取り、暗号ユニット情報の取得依頼を暗号ユニット２２に転送する（Ｆ６０５）。
【００７９】
そして、暗号ユニット２２は、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１から受け取る。その後、暗号ユニット２２は、ＮＶＲＡＭ１０４に保持された自己テストの結果を参照し、暗号ユニット情報をＨＤＤコントローラ２１に送信する（Ｆ６０６）。そして、ＨＤＤコントローラ２１は、送信された暗号ユニット情報を暗号ユニット２２から受け取り、受け取った暗号ユニット情報をＨＤＤドライバに転送する（Ｆ６０６）。
【００８０】
そして、ＨＤＤドライバは、暗号ユニット情報をＨＤＤコントローラ２１から受け取り、受け取った暗号ユニット情報を暗号ドライバに転送する（Ｆ３１１）。
【００８１】
そして、ＣＰＵ１０１は、ＨＤＤドライバから受け取った暗号ユニット情報に、暗号ユニット２２の自己テストの結果として、暗号ユニット２２の自己テストの結果がエラーであることを示す情報が含まれることを判別する。そして、ＣＰＵ１０１は、暗号ユニット２２の自己テストの結果がエラーであるために、図４に示すエラー画面４００を介して、メッセージ４０１を操作部２４の表示部に表示する（Ｆ３１２）。
【００８２】
以上説明したように第３の実施形態では、図６のＦ６０１〜Ｆ６０６の処理によって、暗号ユニット２２とＨＤＤコントローラ２１との間に専用の信号線を設けることなしに、暗号ユニット２２の自己テストに失敗したことを暗号ドライバに通知することができる。これにより、暗号装置のテストでエラーが発生した場合、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認することができる。
【００８３】
［第４の実施形態］
第４の実施形態では、暗号ユニット２２の自己テストの結果がエラーである場合、暗号ユニット２２は、ＨＤＤ情報の取得依頼に対して、ＨＤＤコントローラ２１にエラーを返答しない。暗号ユニット２２は、ＨＤＤコントローラ２１にエラーを返答する代わりに、暗号ユニット情報が付加されたＨＤＤ情報を返答するようにした変形例を説明する。
【００８４】
第４の実施形態では、第１の実施形態と比較して一部の処理が異なるため、第１の実施形態とは異なる処理を中心に図７で説明する。
【００８５】
図７に示したＦ３０１〜Ｆ３０３、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローは、図３に示したＦ３０１〜Ｆ３０３、Ｆ３０９、Ｆ３１１、Ｆ３１２のフローと同一のため、詳細な説明は省略する。
【００８６】
暗号ユニット２２は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）の取得依頼をＨＤＤコントローラ２１から受け取る（Ｆ３０３）。そして、暗号ユニット２２は、ＨＤＤ２３の基本情報（記憶容量、型番、使用時間等）に代えて暗号ユニット情報が埋め込まれたＨＤＤ情報（以降、疑似的なＨＤＤ情報と呼ぶ。）を生成する。尚、暗号ユニット情報とは、例えば、暗号ユニット２２の自己テストの結果を含む暗号ユニット２２の状態や、ＨＤＤ２３のミラーリングに関する情報等を含む。尚、暗号ユニット２２は、疑似的なＨＤＤ情報を生成する際に、ＮＶＲＡＭ１０４に保持された自己テストの結果を参照し、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）を取得する。このため、疑似的なＨＤＤ情報には、暗号ユニット２２の自己テストの結果がエラーであることを示す情報が含まれる。
【００８７】
暗号ユニット２２は、疑似的なＨＤＤ情報をＨＤＤコントローラ２１に返答する（Ｆ７０１）。そして、暗号ユニット２２は、疑似的なＨＤＤ情報を暗号ユニット２２から受け取り、疑似的なＨＤＤ情報をＨＤＤドライバに転送する（Ｆ７０１）。
【００８８】
ＨＤＤドライバは、暗号ユニット２２の自己テストの結果がエラーであるか否かを判定する。ＨＤＤドライバは、疑似的なＨＤＤ情報に含まれる暗号ユニット情報から暗号ユニット２２の自己テストの結果を取り出して、暗号ユニット２２の自己テストの結果がエラーであるか否かを判定する。ＨＤＤドライバは、暗号ユニット２２の自己テストの結果がエラーであると判定したことに基づいて、内部の状態を、「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識する（Ｆ７０２）。このとき、暗号ドライバは、ＨＤＤドライバが「ＭＦＰ１にＨＤＤ２３が接続されている状態」として認識しているため、暗号ユニット情報を取得することができる。
【００８９】
暗号ドライバは、ＨＤＤドライバに対して、暗号ユニット情報の取得を依頼する（Ｆ３０９）。そして、ＨＤＤドライバは、暗号ユニット情報の取得依頼を暗号ドライバから受け取り、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１に転送する（Ｆ７０３）。そして、ＨＤＤコントローラ２１は、暗号ユニット情報の取得依頼をＨＤＤドライバから受け取り、暗号ユニット情報の取得依頼を暗号ユニット２２に転送する（Ｆ７０３）。
【００９０】
そして、暗号ユニット２２は、暗号ユニット情報の取得依頼をＨＤＤコントローラ２１から受け取る。その後、暗号ユニット２２は、ＮＶＲＡＭ１０４に保持された自己テストの結果を参照し、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１に送信する（Ｆ７０４）。そして、ＨＤＤコントローラ２１は、送信された暗号ユニット情報を暗号ユニット２２から受け取り、受け取った暗号ユニット情報をＨＤＤドライバに転送する（Ｆ７０４）。
【００９１】
そして、ＨＤＤドライバは、暗号ユニット情報（暗号ユニット２２の自己テストの結果がエラーであることを示す情報を含む）をＨＤＤコントローラ２１から受け取り、受け取った暗号ユニット情報を暗号ドライバに転送する（Ｆ３１１）。
【００９２】
そして、ＣＰＵ１０１は、ＨＤＤドライバから受け取った暗号ユニットの情報に、暗号ユニット２２の自己テストの結果として、暗号ユニット２２の自己テストの結果がエラーであることを示す情報が含まれることを判別する。そして、ＣＰＵ１０１は、暗号ユニット２２の自己テストの結果がエラーであるために、図４に示すエラー画面４００を介して、メッセージ４０１を操作部２４の表示部に表示する（Ｆ３１２）。
【００９３】
以上説明したように第４の実施形態では、図７のＦ７０１〜Ｆ７０５の処理によって、暗号ユニット２２とＨＤＤコントローラ２１との間に専用の信号線を設けることなしに、暗号ユニット２２の自己テストに失敗したことを暗号ドライバに通知することができる。これにより、暗号装置のテストでエラーが発生した場合、ユーザは、記憶装置に記憶されているデータを取得できない理由が、暗号装置のエラーであることを確認することができる。
【００９４】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【００９５】
例えば、本実施形態では、データ処理装置として、スキャナ装置２及びプリンタ装置４を備えるＭＦＰ１を例に説明したが、これに限られない。データ処理装置として、スキャナ装置２を備えていて、プリンタ装置４を備えていない画像入力装置であっても、上記各種制御を同様に説明できる。また、データ処理装置として、プリンタ装置４を備えていて、スキャナ装置２を備えていない画像出力装置であっても、上記各種制御を同様に説明できる。
【００９６】
また、例えば、本実施形態では、ＭＦＰ１のコントローラ部３のＣＰＵ１３が上記各種制御の主体となっていたが、これに限らない。ＭＦＰ１と別筐体の外付けコントローラ等の印刷制御装置によって、上記各種制御の一部又は全部を実行可能に構成しても良い。
【００９７】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９８】
１  ＭＦＰ
３  コントローラ部
１３  ＣＰＵ
２２  暗号ユニット
２３  ＨＤＤ
２４  操作部
１０１  ＣＰＵ
【図１】
0006732470.tif 000002
【図２】
0006732470.tif 000003
【図３】
0006732470.tif 000004
【図４】
0006732470.tif 000005
【図５】
0006732470.tif 000006
【図６】
0006732470.tif 000007
【図７】
0006732470.tif 000008