(57)【要約】【課題】正当性確認テストを行う際の時間を短縮する外部メディアインタフェース装置を提供すること。【解決手段】記憶手段アクセス制御手段４５と、外部メディアアクセス手段４１、５２と、暗号器４３と、を有する外部メディアインタフェース装置１００であって、前記暗号器のテストモードである場合、前記記憶手段アクセス制御手段と前記外部メディアアクセス手段との間にテスト用のパスを構築するパス構築手段５３と、前記記憶手段アクセス制御手段が読み出したテストデータを取得してテストデータの送信先を振り分けるデータ振り分け手段４４、６０と、前記データ振り分け手段が振り分けた第一のデータを保持すると共に、前記データ振り分け手段が前記暗号器に振り分け、前記暗号器が暗号化した第二のデータを取得し、比較するデータ比較手段５１と、を有する。【選択図】図４
2013021451.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段からデータを読み出し、また、記憶手段へデータを書き込む記憶手段アクセス制御手段と、
外部記憶メディアにデータを書き込み、また、外部記憶メディアからデータを読み出す外部メディアアクセス手段と、
前記外部メディアアクセス手段が前記外部記憶メディアに書き込むデータを暗号化し、前記外部メディアアクセス手段が前記外部記憶メディアから読み出したデータを復号する暗号器と、を有する外部メディアインタフェース装置であって、
前記暗号器の暗号化機能又は復号機能のテストモードの設定を受け付けるテストモード設定受付手段と、
前記テストモード設定受付手段が前記暗号器の暗号化機能のテストモードを受け付けた場合、前記記憶手段アクセス制御手段が読み出したテストデータの送信先を前記データ比較手段又は前記暗号器に振り分けるデータ振り分け手段と、
前記データ振り分け手段が振り分けた第一のデータを保持すると共に、前記データ振り分け手段が前記暗号器に振り分け、前記暗号器が暗号化した第二のデータを取得し、比較するデータ比較手段と、
前記記憶手段アクセス制御手段と前記データ振り分け手段、前記データ振り分け手段と前記データ比較手段、前記データ振り分け手段と前記暗号器、及び、前記暗号器と前記データ比較手段、の間にデータパスを構築するパス構築手段と、
を有する外部メディアインタフェース装置。
【請求項２】
前記テストモード設定受付手段が前記暗号器の復号機能のテストモードを受け付けた場合、前記データ振り分け手段は、常にテストデータを前記データ比較手段に出力し、
前記データ比較手段は、前記データ振り分け手段から取得したデータを保持する第一のモードと、前記データ振り分け手段と前記暗号器を直結して前記データ振り分け手段から取得したデータを前記暗号器に転送する第二のモードを有し、
前記データ比較手段は、前記第一のモードにおいて前記データ振り分け手段が振り分けた第一のデータを保持すると共に、前記第二のモードにおいて前記データ振り分け手段が振り分けた第二のデータを前記暗号器に出力し、
前記第一のモードにおいて保持している前記第一のデータと、前記第二のモードにおいて前記暗号器が復号し前記データ振り分け手段が振り分けた前記第二のデータとを比較する、
ことを特徴とする請求項１記載の外部メディアインタフェース装置。
【請求項３】
前記データ振り分け手段が前記第一のデータを前記データ比較手段に入力する前に、前記第一のモードに、
前記データ振り分け手段が前記第一のデータを前記データ比較手段に出力した後、前記第二のモードに、
前記データ振り分け手段が前記暗号器が復号した前記第二のデータを、再度、前記データ比較手段に入力する前に、前記第一のモードに、
それぞれ切り換える比較手段制御手段、を有することを特徴とする請求項２記載の外部メディアインタフェース装置。
【請求項４】
前記テストデータが、前記暗号器の暗号化機能をテストするデータか、復号機能をテストするデータかを示すテストデータ情報が登録されたテストデータ情報記憶手段と、
前記記憶手段アクセス制御手段が前記記憶手段から読み出したテストデータを保持するテストデータ保持手段と、を有し、
前記テストモード設定受付手段が前記暗号器の暗号化機能をテストするテストモードの設定を受け付け、前記テストデータ情報記憶手段が、前記テストデータが復号機能をテストするデータであるというテストデータ情報を記憶している場合、
前記データ振り分け手段は、前記第一のデータを前記テストデータ保持手段に記憶しておき、
前記第二のデータを前記データ比較手段に出力し、
前記テストデータ保持手段に記憶されている前記第一のデータを前記暗号器に出力し、
前記データ比較手段は、前記第二のデータと、前記暗号器が暗合化した前記第一のデータを比較する、
ことを特徴とする請求項１記載の外部メディアインタフェース装置。
【請求項５】
前記テストデータが、前記暗号器の暗号化機能をテストするデータか、復号機能をテストするデータかを示すテストデータ情報が登録されたテストデータ情報記憶手段と、
前記記憶手段アクセス制御手段が前記記憶手段から読み出したテストデータを保持するテストデータ保持手段と、を有し、
前記テストモード設定受付手段が前記暗号器の復号機能をテストするテストモードの設定を受け付け、前記テストデータ情報記憶手段が、前記テストデータが暗号化機能をテストするデータであるというテストデータ情報を記憶している場合、
前記データ振り分け手段は、前記第二のモードの前記データ比較手段に前記第一のデータを送信することで前記第一のデータを前記暗号器に出力し、
前記暗号器が復号した前記第一のデータを前記テストデータ保持手段に記憶しておき、
前記第二のデータを、前記第一のモードの前記データ比較手段に出力し、
前記テストデータ保持手段に記憶されている復号された前記第一のデータを前記第一のモードの前記暗号器に前記データ比較手段に出力し、
前記データ比較手段は、前記第二のデータと、前記暗号器が復号した前記第一のデータを比較する、
ことを特徴とする請求項２又は３記載の外部メディアインタフェース装置。
【請求項６】
前記テストデータは、所定のデータ長毎に、前記第一のデータと前記第二のデータが交互に格納されており、
前記データ振り分け手段は、前記データ長毎に、前記第一のデータを前記データ比較手段に、前記第二のデータを前記暗号器に、それぞれ入力する、
ことを特徴とする請求項１記載の外部メディアインタフェース装置。
【請求項７】
前記テストデータは、所定のデータ長毎に、前記第一のデータと前記第二のデータが交互に格納されており、
前記データ振り分け手段は、前記第一のモードにおいて前記データ長の前記第一のデータを前記データ比較手段に出力し、
前記第二のモードにおいて前記データ長の前記第二のデータを前記データ比較手段に入力する、
ことを特徴とする請求項２又は３記載の外部メディアインタフェース装置。
【請求項８】
記憶手段の指示されたアドレスからデータを読み出し、また、記憶手段へデータを書き込む記憶手段アクセス制御手段と、
外部記憶メディアにデータを書き込み、また、外部記憶メディアからデータを読み出す外部メディアアクセス手段と、
前記外部メディアアクセス手段が前記外部記憶メディアに書き込むデータを暗号化し、前記外部メディアアクセス手段が前記外部記憶メディアから読み出したデータを復号する暗号器と、を有する外部メディアインタフェース装置のテスト方法であって、
テストモード設定受付手段が、前記暗号器の暗号化機能又は復号機能のテストモードの設定を受け付けるステップと、
パス構築手段が、前記記憶手段アクセス制御手段と前記データ振り分け手段、前記データ振り分け手段と前記データ比較手段、前記データ振り分け手段と前記暗号器、及び、前記暗号器と前記データ比較手段、の間にデータパスを構築するステップと、
前記テストモード設定受付手段が前記暗号器の暗号化機能のテストモードを受け付けた場合、データ振り分け手段が、前記記憶手段アクセス制御手段が読み出したテストデータの送信先を前記データ比較手段又は前記暗号器に振り分けるステップと、
データ比較手段が、前記データ振り分け手段が振り分けた第一のデータを保持すると共に、前記データ振り分け手段が前記暗号器に振り分け、前記暗号器が暗号化した第二のデータを取得し、比較するステップと、
を有するテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部記憶メディアにデータを書き込み、また、外部記憶メディアからデータを読み出す外部メディアインタフェース装置に関し、特に、暗号化又は復号が可能な暗号器を備えた外部メディアインタフェース装置に関する。
【背景技術】
【０００２】
デジタルデータを記憶する多様な記憶媒体が安価に利用できるようになっている。しかし、記憶媒体が外部に流出すると膨大なデジタルデータが漏洩してしまうおそれがある。このため、セキュリティ対策として、デジタルデータを暗号化して記憶することが行われている（例えば、特許文献１参照。）。特許文献１には、入力されたデータを任意の数の記憶装置に分散して、転送途中のデータブロックを、記憶装置毎に異なる暗号鍵を用いて暗号化するＲＡＩＤコントローラが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＣＰＵ等が脱着可能な外部記憶メディアにデジタルデータを記録する場合も、同様に、デジタルデータを暗号化することが考えられる。
【０００４】
図１は、従来の外部メディアＩ／Ｆ１００の一例を示す。図１において外部メディアＩ／Ｆ１００は画像形成装置に搭載されることが想定されているが、外部メディアＩ／Ｆ以外の機能ブロックについて後に詳述する。
【０００５】
外部メディアＩ／Ｆ１００は外部記憶メディア２００へのアクセス制御を行う。外部メディアＩ／Ｆ１００は、リードライト兼用のＤＭＡコントローラ(以下、ＲＷ−ＤＭＡＣ１０４)、暗号器１０３、メディアアクセス制御部１０２、ＳＲＡＭ１０５、及び、外部メディア用のＩＰ(Intellectual Property)１０１、を有する。ＲＷ−ＤＭＡＣ１０４はＣＰＵ１１を介さずに外部記憶メディア２００からのデータ読み出し又はデータの書き込みを行う。暗号器１０３はＲＷ−ＤＭＡＣ１０４から受け取ったデジタルデータの暗号化を行ったり、外部記憶メディア２００から読み込まれた暗号化データを復号してＲＷ−ＤＭＡＣ１０４に渡したりする。
【０００６】
メディアアクセス制御部１０２はＩＰ１０１を制御する。ＩＰ１０１は外部記憶メディア２００にアクセスを行う専用の回路である。ＳＲＡＭ１０５は外部記憶メディア２００へ転送する際、及び、外部記憶メディア２００からの読み込み時に、一次バッファとして利用される。
【０００７】
例えば、暗号化モジュールに関するセキュリティ要件を規定した規格としてFIPS140-2がある。FIPS140-2（FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION ）は、「暗号モジュールが(電源OFF、リセット、リブート等の後で)電源投入された時、その暗号モジュールによって必ず暗号器の自己テスト(正当性確認テスト)を実行されなければならない」と定められている。
【０００８】
図２は、FIPS140-2に対応した正当性確認テストの手順を説明する図の一例である。図２の矢印線１０６に示すように、暗号器１０３はメモリ１２のＩＮＰＵＴデータを暗号化して外部記憶メディア２００へ一度出力し、それをＲＷ−ＤＭＡＣ１０４が再度メモリ１２へ読み込む。ＣＰＵ１１が実行するソフトウェアは予め用意されている期待値データと読み出した暗号化されているＩＮＰＵＴデータが一致するか否かにより暗号器１０３の正当性を確認する。
【０００９】
図３は、この正当性確認テストを模式的に説明する図の一例である。画像形成装置のメーカ等は、ソフトウェアや不揮発の記憶装置に予め期待値データと暗号器１０３へ入力するためのＩＮＰＵＴデータを記憶させておく。
(i)  ＲＷ−ＤＭＡＣ１０４はＩＮＰＵＴデータを暗号器１０３に入力する。
(ii)  暗号器１０３はＩＮＰＵＴデータを暗号化し、メディアアクセス制御部１０２に入力する。この時、メディアアクセス制御部１０２は、外部記憶メディア２００の起動処理が完了するまで、ＡＳＩＣ内のＳＲＡＭ１０５で保持する。
(iii)  外部記憶メディア２００が起動するとメディアアクセス制御部１０２はＩＰ１０１を利用して一度外部記憶メディア２００へ蓄積する。
(iv)  メディアアクセス制御部１０２は、暗号化されたＩＮＰＵＴデータを読み出す。この過程では、暗号器１０３を介さずにＩＮＰＵＴデータがＲＷ−ＤＭＡＣ１０４に出力され、ＲＷ−ＤＭＡＣ１０４は暗号化されたＩＮＰＵＴデータをメモリ１２に記憶する。
(v)  ＣＰＵ１１は、予め用意されていた期待値データと、暗号化されたＩＮＰＵＴデータとを比較し、暗号器１０３の正当性を確認する。
【００１０】
ここで、（ii）に示すように、外部記憶メディア２００によっては駆動系が安定動作するまで若干の時間を要するものがある。また、外部記憶メディア２００によっては動作前に初期化を行う必要があるものもある。これらの処理には比較的時間がかかることが知られており、起動時にこの処理を行うと、ユーザが利用開始できるまでの時間（起動時間）が大幅に長くなってしまい、ユーザの利便性を損なうといった問題があった。
【００１１】
本発明は、上記課題に鑑み、正当性確認テストを行う際の時間を短縮する外部メディアインタフェース装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、記憶手段からデータを読み出し、また、記憶手段へデータを書き込む記憶手段アクセス制御手段と、外部記憶メディアにデータを書き込み、また、外部記憶メディアからデータを読み出す外部メディアアクセス手段と、前記外部メディアアクセス手段が前記外部記憶メディアに書き込むデータを暗号化し、前記外部メディアアクセス手段が前記外部記憶メディアから読み出したデータを復号する暗号器と、を有する外部メディアインタフェース装置であって、前記暗号器の暗号化機能と復号機能のどちらかのテストモードの設定を受け付けるテストモード設定受付手段と、前記テストモード設定受付手段が前記暗号器の暗号化機能のテストモードを受け付けた場合、前記記憶手段アクセス制御手段が読み出したテストデータの送信先を前記データ比較手段又は前記暗号器に振り分けるデータ振り分け手段と、前記データ振り分け手段が振り分けた第一のデータを保持すると共に、前記データ振り分け手段が前記暗号器に振り分け、前記暗号器が暗号化した第二のデータを取得し、比較するデータ比較手段と、前記記憶手段アクセス制御手段と前記データ振り分け手段、前記データ振り分け手段と前記データ比較手段、前記データ振り分け手段と前記暗号器、及び、前記暗号器と前記データ比較手段、の間にデータパスを構築するパス構築手段と、を有する。
【発明の効果】
【００１３】
正当性確認テストを行う際の時間を短縮する外部メディアインタフェース装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】従来の外部メディアＩ／Ｆの一例を示す図である。
【図２】FIPS140-2に対応した生成性確認テストの手順を説明する図の一例である。
【図３】正当性確認テストを模式的に説明する図の一例である。
【図４】外部記憶メディアの正当性確認テストの概略を説明する図の一例である。
【図５】画像形成装置の概略構成図の一例である。
【図６】メディアアクセス制御部の機能ブロック図の一例である。
【図７】テストデータを模式的に説明する図の一例である。
【図８】期待値データとＩＮＰＵＴデータが振り分けられる様子を説明する図の一例である。
【図９】暗号器正当性確認部による期待値データとＩＮＰＵＴデータの比較を説明する図の一例である。
【図１０】ソフトウェアが外部メディアＩ／Ｆの暗号器の正当性を確認する手順を示すフローチャート図の一例である。
【図１１】テスト回路の動作手順を示すフローチャート図の一例である。
【図１２】画像形成装置の構成図から、要部として外部メディアＩ／Ｆを取り出した図の一例である。
【図１３】復号時におけるテスト回路の動作手順を示すフローチャート図の一例である。
【図１４】暗号化テスト及び復号テストの際のデータフローとデータ間の関係を説明する図の一例である。
【図１５】メディアアクセス制御部の機能ブロック図の一例である。
【図１６】暗号化テストにおけるデータの流れを模式的に示す図の一例である。
【図１７】ソフトウェアが外部メディアＩ／Ｆの暗号器の正当性を確認する手順を示すフローチャート図の一例である。
【図１８】復号テストにおけるデータの流れを模式的に示す図の一例である。
【図１９】ソフトウェアが外部メディアＩ／Ｆの暗号器の正当性を確認する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１６】
図４は、本実施形態の外部記憶メディア２００の正当性確認テストの概略を説明する図の一例である。本実施形態の外部メディアＩ／Ｆ１００は、新たに、暗号器正当性確認部５１、及び、データ振り分け器４４を有する。
（１）データ振り分け器４４はメモリに記憶されているＩＮＰＵＴデータと期待値データ（暗号化結果or復号結果）のデータパスを切り換える。詳細は後述するが、暗号化機能のテストを例に説明する。
（２）データ振り分け器４４は、暗号器４３を介せずに、ＩＮＰＵＴデータを暗号器４３に入力する。同様に、期待値データを暗号器正当性確認部５１に入力する。暗号器４３は例えばＩＮＰＵＴデータを暗号化して暗号器正当性確認部５１に入力する。
（３）暗号器正当性確認部５１は、暗号器４３が暗号化したＩＮＰＵＴデータと期待値データを比較する。
【００１７】
したがって、暗号器正当性確認部５１は、暗号器４３が暗号化したＩＮＰＵＴデータをメモリに書き込む必要性をなくし、暗号器４３が正当か否かを判定できるようになっている。
【００１８】
図4のような正当性確認テストによれば、暗号器４３を通過した直後に暗号器正当性確認部５１が正当性を確認可能となるので、ユーザの待ち時間を短縮できる。
【００１９】
なお以下では、ＩＮＰＵＴデータと期待値データの組を「テストデータ」という。
【００２０】
〔構成例〕
図５は、画像形成装置の概略構成図の一例を示す。画像形成装置は、プロッタ３１、スキャナ３２、ＡＳＩＣ３００、ＨＤＤ１６、ＣＰＵ１１、メモリ１２、ネットワーク装置１３、及び、ＦＡＸ装置１４を有する。
【００２１】
プロッタ３１は、例えば、電子写真方式の印刷装置であり、ＣＭＹＫの画像データに基づき、トナー画像を用紙に定着することで画像データを出力する。なお、白黒のプロッタでもよいし、液滴を塗布することで用紙に画像を形成するインクジェット型のプロッタでもよい。
【００２２】
スキャナ３２は、例えば、ＣＣＤ（Charge Coupled Device ）を利用したカラーラインセンサにより原稿を1ライン毎主走査方向に読み取り、原稿を副走査方向に移動して、ＲＧＢ毎に所定の階調を備えた画像データを生成する。
【００２３】
ＨＤＤ１６は、画像データを記憶するストレージとして使用され、また、プログラムやフォントデータなどの静的なデータを記憶している。ＨＤＤ１６はＡＳＩＣ３００内の暗号器４３の正当性を確認する処理を行うプログラムを記憶しており、図ではソフトウェア１６として示されている。
【００２４】
ＣＰＵ１１は、ＣＰＵ１１以外のブロックを支配して画像形成装置の全体を制御する。ＣＰＵ１１が実行する制御はプログラムを実行することで行われ、暗号器４３の正当性の確認もＣＰＵ１１がソフトウェア１６を実行することで開始される。
【００２５】
メモリ１２は例えば、ＲＡＭやＮＶＲＡＭであり、ＣＰＵ１１がソフトウェア１６の実行時に作業用のメモリとして使用する。ネットワーク装置１３は、例えば、ＮＩＣ（Network Interface Card）であり、不図示のＬＡＮと接続し、他の機器と通信することを可能にする。なお、ＴＣＰ／ＩＰ、ＦＴＰ、ＨＴＴＰ等の処理はＯＳやプログラムが行う。
【００２６】
ＦＡＸ装置１４は、電話回線からのファクシミリデータを復調して画像データを生成しメモリ１２に記憶したり、スキャナ３２が読み取った画像データをファクシミリ用に変調して電話回線から出力する。電話回線でなくＩＰネットワークを使用してＦＡＸを送受信することもできる。
【００２７】
ＡＳＩＣ３００は、プロッタ３１、スキャナ３２、ＣＰＵ１１、メモリ１２、ネットワーク装置１３、及び、ＦＡＸ装置１４と不図示のバスを介して接続されている。ＡＳＩＣ３００は、内部バス２９を介して接続されたプロッタ出力部２５、回転器２６、外部メディアＩ／Ｆ１００、暗号器２７、スキャナ入力部２８、ＣＰＵ Ｉ／Ｆ２１、メモリＩ／Ｆ２２、ネットワークＩ／Ｆ２３及びＦＡＸ Ｉ／Ｆ２４を有する。
【００２８】
スキャナ入力部２８は、予め取得しているスキャナ３２のＣＣＤ特性に基づき、シェーディング補正処理、γ補正、フィルタ処理、ＲＧＢ→ＲＧＢ色変換処理等の各種の画像処理を画像データに施す。
【００２９】
暗号器２７は、画像データを暗号化・復号するＩＣであり、本実施形態が対象とする暗号器４３とは別に存在する。
【００３０】
回転器２６は、スキャナ３２が読み取った画像データ又はプロッタ３１へ転送される画像データに対して回転処理を施す。すなわち、読み取り時に傾いた画像の傾きを検出し、画素の配置を換えるなどして傾きを補正する。
【００３１】
プロッタ出力部２５は、ＨＤＤ１６に記憶されている画像データを読み出し、ＲＧＢ→ＣＭＹＫの画像データに変換し、また、ディザ処理を行いＣＭＹＫ各色の２値化データをプロッタ３１に転送する。
【００３２】
ＣＰＵ Ｉ／Ｆ２１はＣＰＵ１１とＡＳＩＣ３００間で周波数の違いを吸収したり、データの入出力を行うバッファとして機能したり、ＡＳＩＣ３００の各ブロック間でＣＰＵ１１とデータの送受信を行う。
【００３３】
メモリＩ／Ｆ２２はメモリ１２にアクセスするもので、例えばＲＷ−ＤＭＡＣ４５からメモリ１２のデータの読み出し要求を受け付けると、メモリ１２からデータを読み出しＲＷ−ＤＭＡＣ４５に出力し、ＲＷ−ＤＭＡＣ４５からデータの書き込み要求を受け付けると、メモリ１２にデータを書き込み、その結果をＲＷ−ＤＭＡＣ４５に通知する。
【００３４】
ネットワークＩ／Ｆ２３はＬＡＮ等のネットワークにアクセスし、ネットワーク上を流れるデータの宛先のＭＡＣアドレスを監視して、自機へのデータを選択的に取り込み、ＣＰＵ等に割り込みして通知する。また、ＣＰＵ１１からデータの送信要求を受け付けると、自機と宛先のＭＡＣアドレスを追加してネットワークに出力する。
【００３５】
ＦＡＸ Ｉ／Ｆ２４はＦＡＸ装置１４がデータを受信するとＣＰＵ等に割り込みして通知する。また、ＣＰＵ１１からデータの送信要求があるとＦＡＸ番号等を指定してＦＡＸ装置１４に出力する。
【００３６】
外部メディアＩ／Ｆ１００は、外部記憶メディア２００にデータを書き込み、また、外部記憶メディア２００からデータを読み出す装置である。外部記憶メディア２００はフラッシュメモリ、ＦｅＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭなど不揮発メモリにより構成され、具体的にはＵＳＢメモリ、ＳＤメモリ、メモリースティック（登録商標）、スマートメディア、コンパクトフラッシュ（登録商標）等がある。
【００３７】
外部メディアＩ／Ｆ１００は、ＲＷ−ＤＭＡＣ４５、データ振り分け器４４、暗号器４３、メディアアクセス制御部４２、ＳＲＡＭ４６、及び、ＩＰ４１を有し、メディアアクセス制御部４２は暗号器正当性確認部５１を有する。
【００３８】
ＲＷ−ＤＭＡＣ４５は、ＣＰＵ１１を介さずに外部記憶メディア２００からのデータの読み出し又はデータの書き込みを行う。
【００３９】
読み出し：ＣＰＵ１１からＲＷ−ＤＭＡＣ４５に対し、例えばメモリ１２に記憶されたデータのアドレスと書き込み対象のバイト数が設定される。ＲＷ−ＤＭＡＣ４５は指定されたアドレスのデータを指定されたバイト数だけメモリ１２から読み出し、暗号器４３に入力する。ここで、データ振り分け器４４は、正当性確認テスト（後述の暗号化テスト又は復号テスト）以外では作動しない（データパスがつながっていない）。暗号器４３はデータを暗号化してメディアアクセス制御部４２に入力するので、メディアアクセス制御部４２はＩＰ４１を介して暗号化されたデータを外部記憶メディア２００に記憶する。
【００４０】
読み出し：ＣＰＵ１１からＲＷ−ＤＭＡＣ４５に対し、外部記憶メディア２００のアドレスとバイト数（又はファイル名）が設定される。ＲＷ−ＤＭＡＣ４５はメディアアクセス制御部４２とＩＰ４１を利用して外部記憶メディア２００から指定されたデータを読み出し、暗号器４３に入力する。暗号器４３は、暗号化されたデータを復号してＲＷ−ＤＭＡＣ４５に入力する（正当性確認テスト以外ではデータ振り分け器４４は使用されない）。ＲＷ−ＤＭＡＣ４５はメモリＩ／Ｆ２２を介してデータをメモリ１２に記憶する。ＲＷ−ＤＭＡＣ４５はデータを読み出すとＣＰＵ１１に割り込みして通知する。
【００４１】
このように、外部メディアＩ／Ｆ１００は原則的に全てのデータを暗号化し、また、読み出したデータを復号するが、ＣＰＵ１１からの制御により暗号化しないようにすることも可能になっている。
【００４２】
メディアアクセス制御部４２はＳＲＡＭ４６をバッファとして利用しながら、ＩＰ４１の書き込み状況に基づきデータをＩＰ４１に入力する。ＩＰ４１は決まった単位で外部記憶メディア２００にデータを書き込んでいく。また、メディアアクセス制御部４２はＩＰ４１が外部記憶メディア２００から読み出したデータを暗号器４３に出力し、暗号器４３が復号している間、SRAMにデータを保持しておく。SRAMに空きがなくなるとＩＰ４１に読み出しを停止させる。なお、ＩＰ４１は機能名ではないが、外部記憶メディア２００への書き込みと読み出しを行うＩＣである。
【００４３】
図５では、外部メディアＩ／Ｆ１００は画像形成装置に搭載されているが、画像形成装置に搭載されている必要はなく、情報処理装置や組み込み機器などに搭載されてもよい。
【００４４】
〔メディアアクセス制御部〕
図６は、メディアアクセス制御部４２の機能ブロック図の一例を示す。メディアアクセス制御部４２は、Ｉ／Ｆ制御モジュール５２、暗号器正当性確認部５１、及び、テスト回路５０を有する。
【００４５】
テスト回路５０は、モード選択部５８、Ｉ／Ｆ制御部５３、暗号器制御部５５、正当性確認制御部５４、テストデータサイズ記憶部５９、完了通知部５７、テストデータサイズカウンタ５６、データ振り分け器制御部６０、及び、ＤＭＡＣ制御部６１を有している。
【００４６】
モード選択部５８は、暗号器テストを行うか否かを選択するスイッチの役割を有し、「通常動作」モード又は「暗号器テスト」モードを選択できる。「通常動作」モードは暗号器４３の正当性確認テストを行なわない通常の転送を行うモードである。「暗号器テスト」モードは、さらに「暗号化テストモード」と「復号テストモード」がある。「暗号化テストモード」は、暗号器４３の暗号化機能の正当性確認テストが行われるモードである。「復号テストモード」は、暗号器４３の復号機能の正当性確認テストが行われるモードである。これらのモードの設定はソフトウェア１６が行う。モード選択部５８のモードによって、テスト回路５０はパスの切換タイミングなどを制御する。
【００４７】
Ｉ／Ｆ制御部５３はモード選択部５８が「暗号器テスト」モードを選択すると、Ｉ／Ｆ制御モジュール５２を停止し、暗号器テストを動作させるためのパスを構築する。「通常動作」モードでは、ＲＷ−ＤＭＡＣ４５と暗号器４３、暗号器４３とＩ／Ｆ制御モジュール５２がそれぞれデータパスで接続されている。これに対し「暗号器テスト」モードになると、Ｉ／Ｆ制御部５３は、ＲＷ−ＤＭＡＣ４５とデータ振り分け部４４、データ振り分け部４４と暗号器４３、データ振り分け部４４と暗号器正当性確認部５１、暗号器４３と暗号器正当性確認部５１、をそれぞれデータパスで接続する。
【００４８】
なお、暗号器４３を経由しないデータ振り分け部４４と暗号器正当性確認部５１のデータパスをスルーパス４７という。データ振り分け部４４は、スルーパス４７とパス４８を択一的に選択してデータの送信先を切り換える。
【００４９】
暗号器制御部５５は、暗号器４３の動作モードを選択する機能で、「暗号化」モード、「復号」モード、又は、「スルー」モードの３つの動作モードを選択できる。
【００５０】
正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を読み込むか否かを制御する。また、正当性確認制御部５４は暗号器正当性確認部５１のスルー設定をＯＮ・ＯＦＦに制御する。
【００５１】
テストデータサイズ記憶部５９はソフトウェア１６を実行するＣＰＵ１１により設定され、テストデータのサイズを保持する。
【００５２】
完了通知部５７は、テスト回路５０の動作が完了したことをＣＰＵ１１に通知する。
【００５３】
テストデータサイズカウンタ５６は、期待値データと暗号化又は復号されたＩＮＰＵＴデータとの比較が終わったデータ数を累積して保持する。テストデータサイズカウンタ５６とテストデータサイズ記憶部５９の値が同じになることが、正当性確認テストの終了条件になる。
【００５４】
データ振り分け器制御部６０は、データ振り分け器４４と暗号器正当性確認部５１のスルーパス４７と、データ振り分け器４４と暗号器４３のパス４８のどちらを有効にするかを切り換える(暗号器を通らないパス、暗号器を通るパスを切り換える)。
【００５５】
ＤＭＡＣ制御部６１は、ＲＷ−ＤＭＡＣの起動と、ＲＷ−ＤＭＡＣ４５がデータを書き込むのか、データを読み出すのかを切り換える。
【００５６】
図７は、テストデータを模式的に説明する図の一例である。本実施形態ではテストデータに任意のデータ量ずつ期待値データとＩＮＰＵＴデータを交互に配置する。従来は、ＩＮＰＵＴデータは最初から最後まで連続しており、期待値データも最初から最後まで連続していた。本実施例では、期待値データとＩＮＰＵＴデータを従来のようにそれぞれ独立して持たせず、例えば１つのファイルのように保持する。
【００５７】
図では128ビットずつ交互に配置されているが、期待値データとＩＮＰＵＴデータでビット数が同じであり、かつ、最初から最後まで期待値データとＩＮＰＵＴデータのビット数が一定であればよい。
【００５８】
また、期待値データとＩＮＰＵＴデータは、期待値データの方がＩＮＰＵＴデータよりも先のアドレスに記憶されている。したがって、期待値データ→ＩＮＰＵＴデータの順に読み出される。
【００５９】
期待値データとＩＮＰＵＴデータの配置は逆にすることも可能であるが、この場合、後述するデータパスの制御を期待値データとＩＮＰＵＴデータの配置に合わせて修正する。
【００６０】
〔比較手順〕
図８は、期待値データとＩＮＰＵＴデータが振り分けられる様子を説明する図の一例である。
ＲＷ−ＤＭＡＣ４５はメモリ１２から期待値データとＩＮＰＵＴデータをアドレス順に読み出す。したがって、決まったデータ長毎に期待値データとＩＮＰＵＴデータが順番に読み出される。
【００６１】
データ振り分け器４４にはこのデータ長が設定されている。データ振り分け器４４は、ＲＷ−ＤＭＡＣ４５が読み出した期待値データとＩＮＰＵＴデータから、データ長毎に出力先を振り分ける。例えば、最初の１２８ビットは暗号器正当性確認部５１に、次の１２８ビットは暗号器４３に、次の１２８ビットは暗号器正当性確認部５１に、次の１２８ビットは暗号器４３に…、のように振り分ける。こうすることで、暗号器正当性確認部５１には期待値データのみがアドレス順に連続して供給され、暗号器４３にはＩＮＰＵＴデータのみがアドレス順に連続して供給される。
【００６２】
暗号器４３は、予め決まったデータ量をブロックにして、ブロック単位(例えば２５６ビット)で暗号化を行う。図では「結果１」と記されたブロックが暗号化されたデータである。暗号器正当性確認部５１は、期待値データと暗号化されたＩＮＰＵＴデータをブロック単位で比較する。
【００６３】
図9は、暗号器正当性確認部５１による期待値データと暗号化されたＩＮＰＵＴデータの比較を説明する図の一例である。
【００６４】
暗号器４３はＩＮＰＵＴデータを暗号化するための時間が必要なので、期待値データの方が先に暗号器正当性確認部５１に入力される。このため、暗号器正当性確認部５１は、期待値データをラッチする。この後、暗号器４３がＩＮＰＵＴデータを暗号化すると、暗号化されたＩＮＰＵＴデータが暗号器正当性確認部５１に入力される。したがって、暗号器正当性確認部５１には、図９に示すように期待値データ、暗号化されたＩＮＰＵＴデータの順番で、１ブロックずつ入力される。
【００６５】
暗号器正当性確認部５１は１ブロック分の期待値データをラッチしておき、その後、暗号器４３から暗号化されたＩＮＰＵＴデータが入力されると、両者のEX-OR（排他的論理和）を取る。排他的論理和は、２つの入力値が異なる場合に１を出力し、それ
以外の場合（入力値が同じとき）には０を出力する。したがって、EX-ORの結果が全て０の場合、そのブロックの正当性が確認されたと判断され、暗号器正当性確認部５１は次のブロックの処理に移ることができる。
【００６６】
期待値データ、暗号化されたＩＮＰＵＴデータが交互に入力されるが、期待値データが暗号器正当性確認部５１に入力されてから、暗号器４３が暗号化されたＩＮＰＵＴデータを入力するまでにレイテンシーが発生する。このため、図９の比較において期待値データの入力→暗号化されたＩＮＰＵＴデータの入力、の順番は崩れることはなく比較することが可能である。
【００６７】
〔動作手順〕
図１０は、暗号器４３の正当性確認テストの全体手順を示すフローチャート図の一例である。本実施例では画像形成装置の電源オンの際、正当性が確認されるものとする。
【００６８】
例えば、ユーザが画像形成装置の電源をオンにする（Ｓ１０）。ＣＰＵ１１はＩＰＬ（Initial Program Loader）を実行して、ＩＰＬが予め定められソフトウェア１６をＣＰＵ１１に実行させる。本実施例ではこのソフトウェア１６が正当性を確認する処理を行う。
【００６９】
ソフトウェア１６はモード選択部５８を「暗号器テスト」モードに設定する（Ｓ２０）。
【００７０】
ソフトウェア１６は、交互に配置されているテストデータをメモリ１２に用意する（Ｓ３０）。具体的には、テストデータはソフトウェア１６と一体にコード化されているか又はテーブル状にＨＤＤ１６に記憶されている。ソフトウェア１６は変数名などを介して指定するアドレスからテストデータをＨＤＤ１６等から読み出しメモリ１２に記憶させる。
【００７１】
ソフトウェア１６は、メモリ１２上に用意した期待値データとＩＮＰＵＴデータの合計のデータサイズをテストデータサイズ記憶部５９に設定する（Ｓ４０）。
【００７２】
この後、暗号器正当性確認部５１はテスト回路５０を起動し、テスト回路５０は起動すると、暗号器４３の正当性のテストを開始する（Ｓ５０）。暗号器４３の正当性のテストについて詳細な手順は後述する。
【００７３】
暗号器正当性確認部５１は期待値データと暗号器４３からの入力されたＩＮＰＵＴデータの比較を、完了通知部５７から完了通知が行われるまで行う（Ｓ６０）。暗号器４３が交換されていたり、暗号器４３が故障していなければ、暗号器正当性確認部５１は期待値データと暗号化されたＩＮＰＵＴデータが一致したと判定する（Ｓ７０）。
【００７４】
暗号器正当性確認部５１が、期待値データと暗号化されたＩＮＰＵＴデータの比較の結果が不一致であると判定すると（Ｓ７０のＹｅｓ）、ソフトウェア１６がエラー処理を行う（Ｓ８０）。エラー処理の内容は、例えば、再度のテストを行うこと、再度のテストを行っても不一致の場合はエラーメッセージを表示すること等であるが、詳細は省略する。
【００７５】
図の処理は、暗号器４３の暗号化テストと復号テストの両方が完了すると終了する（Ｓ９０）。例えば、復号テストがまだ完了していない場合、ソフトウェア１６は、テスト回路５０の完了通知部５７から完了通知(暗号化完了)を受けると、暗号器４３のテストモードを復号に設定し（Ｓ１００）、再度、テストデータの準備、データサイズの設定を行い、テスト回路５０に処理を実行させる。
【００７６】
復号の正当性確認テストが完了すると、テスト回路５０は復号の正当性確認テストの完了通知をソフトウェア１６に通知する。テスト回路５０から完了通知(復号完了)を受けると、暗号器４３が正常に動作していると判断できるため、図１０の正当性確認テストは終了する。
【００７７】
＜暗号化テスト＞
図１１は、テスト回路５０の動作手順を詳細な示すフローチャート図の一例である。
【００７８】
テスト回路５０が起動されると、暗号器制御部５５はモード選択部５８に「暗号化テスト」モードが選択されているか否かを判定する（Ｓ１１０）。
【００７９】
モード選択部５８が暗号化テストモードに設定されていない場合（Ｓ１１０のＮｏ）、テスト回路５０は暗号器４３の正当性確認テストを行わない。このため、図１１の処理は終了する。
【００８０】
モード選択部５８が暗号化テストモードに設定されている場合（Ｓ１１０のＹｅｓ）、テスト回路５０は暗号化テストを行う。暗号化テストは次の手順で行われる。
【００８１】
正当性確認制御部５４は、暗号器正当性確認部５１の現在の状態を確認するかどうかを指定するデータ比較フラグをＯＦＦにする（Ｓ１２０）。データ比較フラグがＯＦＦの場合、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認しない。
【００８２】
次に、ＤＭＡＣ制御部６１は、ＲＷ−ＤＭＡＣ４５にメモリリード設定を行う（Ｓ１３０）。また、暗号器正当性確認部５１で比較できるデータサイズ分の転送が行われるように、ＤＭＡＣ制御部６１はＲＷ−ＤＭＡＣ４５に転送サイズを設定する（Ｓ１４０）。
【００８３】
暗号器制御部５５は、暗号器４３を暗号化モードに設定する（Ｓ１５０）。
【００８４】
また正当性確認制御部５４は、暗号器正当性確認部５１をクリアする（Ｓ１６０）。クリアとは初期化の意味であり暗号器正当性確認部５１にゼロが設定される。
【００８５】
またＩ／Ｆ制御部５３は暗号器テストを動作させるためのパスを構築する（Ｓ１７０）。具体的には、ＲＷ−ＤＭＡＣ４５がメモリ１２から読み出したデータをデータ振り分け器４４に出力するパス、データ振り分け器４４と暗号器正当性確認部５１を結ぶスルーパス４７、データ振り分け器４４と暗号器４３を結ぶパス４８、及び、暗号器４３から暗号器正当性確認部５１へのパス、を構築する。また、使用しないＩ／Ｆ制御モジュール５２を停止させる。
【００８６】
次に、ＤＭＡＣ制御部６１はＲＷ−ＤＭＡＣ４５を起動する（Ｓ１８０）。これにより、ＲＷ−ＤＭＡＣ４５はデータサイズカウンタがテストデータサイズ記憶部５９に記憶されたデータサイズを読み出すまでメモリ１２からテストデータの読み出しを繰り返す。
【００８７】
まず、データ振り分け器４４は、データ振り分け制御部６０の制御により、パス４８をスルーパス４７へ変更する（Ｓ１９０）。スルーパス４７は暗号器４３でなく暗号器正当性確認部５１に出力するパスである。
【００８８】
ＲＷ−ＤＭＡＣ４５は設定された転送サイズ分のデータ(1ブロック)をメモリ１２から読み込む（Ｓ２００）。１ブロックには、期待値データとＩＮＰＵＴデータが含まれている。
【００８９】
データ振り分け器４４は、期待値データのみをスルーパス４７へ出力する（Ｓ２１０）。これにより、暗号器正当性確認部５１に１ブロック分の期待値データが記憶される（Ｓ２２０）。
【００９０】
1ブロック分の期待値データを転送すると、データ振り分け器４４はデータ振り分け制御部６０の制御により、スルーパス４７をパス４８に切り替える（Ｓ２３０）。データ振り分け器４４は1ブロック分のＩＮＰＵＴデータを暗号器４３へ入力する（Ｓ２４０）。
【００９１】
暗号器４３は転送されたＩＮＰＵＴデータを暗号化する（Ｓ２５０）。暗号器４３は、暗号化したＩＮＰＵＴデータを暗号器正当性確認部５１に入力する（Ｓ２６０）。ここで、暗号器正当性確認部５１は上記のように排他的論理和を取る。
【００９２】
正当性確認制御部５４は、暗号器正当性確認部５１に1ブロック分の暗号化されたＩＮＰＵＴデータが転送されたことを検出して、データ比較フラグをＯＮにする（Ｓ２７０）。データ比較フラグがＯＮになると、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認する。
【００９３】
正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を監視して、ＡＬＬゼロか否かを判定する（Ｓ２８０）。どれか1bitでも1が出力されていた場合（Ｓ２８０のＮｏ）、正当性確認制御部５４は暗号器４３の正当性が保たれていないとしてエラー処理を行う（Ｓ２９０）。
【００９４】
ＡＬＬゼロの場合（Ｓ２８０のＹｅｓ）、比較が正常に完了したので、正当性確認制御部５４はデータ比較フラグを再びＯＦＦに設定する（Ｓ３００）。
【００９５】
次に、正当性確認制御部５４は１ブロックの比較が完了したことを検出して、データサイズカウンタに１ブロック分のデータサイズを上乗せしていく（Ｓ３１０）。
【００９６】
以上のように、テスト回路５０は、テストデータの読み込み、パスの設定、比較結果の判定、データサイズの加算を、テストデータサイズ記憶部５９に保持された値とデータサイズカウンタが同じになるまで繰り返す。完了通知部５７は、テストデータサイズ記憶部５９に保持された値とデータサイズカウンタが同じになると、暗号化テストの完了通知をＣＰＵ１１に割り込むことでソフトウェア１６に対し通知する（Ｓ３２０）。これにより暗号化テストが完了する。
【００９７】
＜復号テスト＞
図１２は、画像形成装置の構成図から、要部として外部メディアＩ／Ｆ１００を取り出した図の一例である。図１２において図５と同一部の説明は省略する。外部メディアＩ／Ｆ１００の構成は暗号化の場合と同様だが、データパスが異なる。
（１）復号テストの場合、データ振り分け器４４はテストデータの期待値データを、スルーパス４７を介して暗号器正当性確認部５１に入力する。
（２）次に、データ振り分け器４４はテストデータのうちＩＮＰＵＴデータ（暗号器への入力される復号対象のデータ）を、スルーパス４７を介して暗号器正当性確認部５１に転送する。暗号器正当性確認部５１はそのままＩＮＰＵＴデータを暗号器４３に入力する。
（３）暗号器４３は、ＩＮＰＵＴデータを復号してデータ振り分け器４４に入力する。
（４）データ振り分け器４４は再度、スルーパス４７を介して復号されたＩＮＰＵＴデータを暗号器正当性確認部５１に入力する。
（５）暗号器正当性確認部５１は、期待値データと復号されたＩＮＰＵＴデータを比較する。
【００９８】
メモリ１２から読み出したＩＮＰＵＴデータを直接、暗号器４３に入力しないのは、暗号器４３はメディアアクセス制御部４２から受け取ったデータを復号するように設計されているためである。このようにスルーパス４７を利用することで、復号テストも可能になる。
【００９９】
〔復号時の動作手順〕
図１３は、復号テストにおけるテスト回路５０の動作手順を示すフローチャート図の一例である。復号時には、正当性確認制御部５４が暗号器正当性確認部５１のスルー設定をＯＮ・ＯＦＦする。暗号器正当性確認部５１のスルー設定がＯＦＦの場合、暗号器正当性確認部５１はデータを保持し、暗号器正当性確認部５１のスルー設定がＯＮの場合、暗号器正当性確認部５１はデータを保持することなく暗号器正当性確認部５１と暗号器４３を直結する。
【０１００】
テスト回路５０が起動されると、暗号器制御部５５はモード選択部５８に「復号テスト」モードが選択されているか否かを判定する（Ｓ４１０）。
【０１０１】
モード選択部５８が復号テストモードに設定されていない場合（Ｓ４１０のＮｏ）、テスト回路５０は暗号器４３の正当性確認テストを行わない。このため、図１３の処理は終了する。
【０１０２】
モード選択部５８が復号テストモードに設定されている場合（Ｓ４１０のＹｅｓ）、テスト回路５０は復号テストを行う。復号テストは次の手順で行われる。
【０１０３】
正当性確認制御部５４は、暗号器正当性確認部５１の現在の状態を確認するかどうかを指定するデータ比較フラグをＯＦＦにする（Ｓ４２０）。データ比較フラグがＯＦＦの場合、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認しない。
【０１０４】
次に、ＤＭＡＣ制御部６１は、ＲＷ−ＤＭＡＣ４５にメモリリード設定を行う（Ｓ４３０）。暗号器正当性確認部５１で比較できるデータサイズ分の転送が行われるように、ＲＷ−ＤＭＡＣ４５に転送サイズを設定する（Ｓ４４０）。
【０１０５】
暗号器制御部５５は、暗号器４３を復号モードに設定する（Ｓ４５０）。
【０１０６】
また正当性確認制御部５４は、暗号器正当性確認部５１をクリアする（Ｓ４６０）。クリアとは初期化の意味であり暗号器正当性確認部５１にゼロが設定される。
【０１０７】
またＩ／Ｆ制御部５３は暗号器テストを動作させるためのパスを構築する（Ｓ４７０）。具体的には、ＲＷ−ＤＭＡＣ４５がメモリ１２から読み出したデータをデータ振り分け器４４に出力するパス、データ振り分け器４４から暗号器正当性確認部５１へのスルーパス４７、暗号器正当性確認部５１から暗号器４３へのパス、暗号器４３からデータ振り分け器４４へのパスを構築し、Ｉ／Ｆ制御モジュール５２を停止させる。
【０１０８】
次に、ＤＭＡＣ制御部６１はＲＷ−ＤＭＡＣ４５を起動する（Ｓ４８０）。
【０１０９】
正当性確認制御部５４は、暗号器正当性確認部５１のスルー設定をＯＦＦに設定する（Ｓ４９０）。これにより、暗号器正当性確認部５１はデータを保持することができる。
【０１１０】
ＲＷ−ＤＭＡＣ４５はデータサイズカウンタがテストデータサイズ記憶部５９に記憶されたデータサイズを読み出すまでメモリ１２からテストデータの読み出しを繰り返す。
【０１１１】
ＲＷ−ＤＭＡＣ４５は設定された転送サイズ分のデータ(1ブロック)をメモリ１２から読み込む（Ｓ５００）。１ブロックには、期待値データとＩＮＰＵＴデータが含まれている。
【０１１２】
データ振り分け器４４は、期待値データのみをスルーパス４７へ出力する（Ｓ５１０）。これにより、暗号器正当性確認部５１に１ブロック分の期待値データが記憶される（Ｓ５２０）。
【０１１３】
1ブロック分の期待値データを転送すると、正当性確認制御部５４は暗号器正当性確認部５１のスルー設定をＯＮに設定する（Ｓ５３０）。
【０１１４】
次に、データ振り分け器４４は1ブロック分のＩＮＰＵＴデータを、スルーパス４７を介して暗号器正当性確認部５１に入力する（Ｓ５４０）。暗号器正当性確認部５１はスルー設定がＯＮなので、ＩＮＰＵＴデータは暗号器４３に入力される（Ｓ５５０）。
【０１１５】
暗号器４３は転送されたＩＮＰＵＴデータを復号する（Ｓ５６０）。暗号器４３は、復号されたＩＮＰＵＴデータをデータ振り分け器４４に入力する。
【０１１６】
正当性確認制御部５４は、復号されたＩＮＰＵＴデータを蓄積するため暗号器正当性確認部５１のスルー設定をＯＦＦに設定する（Ｓ５７０）。
【０１１７】
データ振り分け器４４は、復号されたＩＮＰＵＴデータを暗号器正当性確認部５１に入力する（Ｓ５８０）。暗号器正当性確認部５１は復号されたＩＮＰＵＴデータを蓄積する（Ｓ５９０）。ここで、暗号器正当性確認部５１は上記のように排他的論理和を取る。
【０１１８】
正当性確認制御部５４は、暗号器正当性確認部５１に1ブロック分の復号されたＩＮＰＵＴデータが転送されたことを検出して、データ比較フラグをＯＮにする（Ｓ６００）。データ比較フラグがＯＮになると、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認する。
【０１１９】
正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を監視して、ＡＬＬゼロか否かを判定する（Ｓ６１０）。どれか1bitでも1が出力されていた場合（Ｓ６１０のＮｏ）、正当性確認制御部５４は暗号器４３の正当性が保たれていないとしてエラー処理を行う（Ｓ６２０）。
【０１２０】
ＡＬＬゼロの場合（Ｓ６１０のＹｅｓ）、正当性確認制御部５４はデータ比較フラグを再びＯＦＦに設定する（Ｓ６３０）。
【０１２１】
次に、正当性確認制御部５４は１ブロックの比較が完了したことを検出して、データサイズカウンタに１ブロック分のデータサイズを上乗せしていく（Ｓ６４０）。
【０１２２】
完了通知部５７は、テストデータサイズ記憶部５９に保持された値とデータサイズカウンタが同じになると、復号テストの完了通知をＣＰＵ１１に割り込むことでソフトウェア１６に対し通知する（Ｓ６５０）。これにより復号データが完了する。
【０１２３】
以上説明したように、本実施例の外部メディアＩ／Ｆ１００は、暗号器４３を通過した直後に暗号器正当性確認部５１が正当性を確認でき、外部記憶メディア２００に書き込む必要がないので、ユーザの待ち時間を短縮できる。また、復号時も外部記憶メディア２００に書き込む必要がないので暗号器４３の正当性を確認する時間を短縮できる。
【実施例２】
【０１２４】
実施例１にて説明したように、暗号化テスト用のテストデータ、復号テスト用のテストデータを用意することが好ましいが、必ずしも二種類のテストデータを用意する必要はない。本実施例では、いずれか一方のテストデータにより暗号化テストと復号テストの両方が可能な外部メディアＩ／Ｆ１００について説明する。
【０１２５】
こうすることで、メモリ領域を節約できたり、何らかの理由で暗号化テスト又は復号テストのどちらかのテストデータのみしか用意できない場合にも暗号化テストと復号テストの両方が可能になる。
【０１２６】
図１４は、暗号化テスト及び復号テストの際のデータフローとデータ間の関係を説明する図の一例である。
【０１２７】
中央に暗号器４３があり、暗号器４３が出力した暗号化したデータは「暗号データ」、暗号器４３が復号したデータは「復号データ」である。
（１）暗号器４３は、「復号データ」の入力値を暗号化する。これにより暗号化期待値が得られる。
（２）暗号器４３は、「暗号データ」の入力値を復号する。これにより復号期待値が得られる。
【０１２８】
暗号器４３が暗号化したデータは、同じ暗号器４３が復号することで、元の入力値に戻る。したがって、「復号データ」の入力値と復号期待値とは同じものであり、「暗号データ」の暗号化期待値と入力値とは同じものである。
【０１２９】
実施例１では、「復号データ」の入力値と「暗号データ」の暗号化期待値が暗号化テストのテストデータであり、「暗号データ」の入力値と「復号データ」の復号期待値が復号テストのテストデータである。したがって、暗号化テストと復号テストにおいて、期待値データとＩＮＰＵＴデータの関係を逆にするだけで、暗号化テストと復号テストの両方が可能になる。
【０１３０】
〔構成例〕
図１５は、メディアアクセス制御部４２の機能ブロック図の一例を示す。図１５において図６と同一部の説明は省略する。
【０１３１】
図１５のメディアアクセス制御部４２は、データ振り分け器４４がテストデータ保持部６２を有し、テスト回路５０がテストデータ状態通知部６３を有する。テストデータ保持部６２は、暗号器４３に出力するデータを一時的に保持する。テストデータ状態通知部６３は、暗号用又は復号用のテストデータの有無をデータ振り分け器４４に通知する。
【０１３２】
ソフトウェア１６は、暗号化用のテストデータと復号用のテストデータのうち、どちらを用意しているかをテストデータ状態通知部６３に設定しておく。
【０１３３】
〔動作手順  暗号化テスト〕
まず、暗号化時の手順について説明するが、復号時の手順から実行することも可能である。
【０１３４】
図１６は、データの流れを模式的に示す図の一例を、図１７は、ソフトウェア１６が外部メディアＩ／Ｆ１００の暗号器４３の暗号機能の正当性を確認する手順を示すフローチャート図の一例をそれぞれ示す。図１６の矢印線のステップ番号は図１７のステップ番号と対応している。
【０１３５】
図１６に示すように、データ振り分け器が期待値データをいったん保持しておき、先にＩＵＰＵＴデータを暗号器正当性確認部５１に入力する。そして、データ振り分け器は保持している期待値データを暗号器にて暗号化した後、暗号器正当性確認部５１に入力する。こうすることで、復号テスト用のテストデータで暗号化テストが可能になる。
【０１３６】
テスト回路５０が起動されると、暗号器制御部５５はモード選択部５８に「暗号化テスト」モードが選択されているか否かを判定する（Ｓ７１０）。
【０１３７】
モード選択部５８が暗号化テストモードに設定されていない場合（Ｓ７１０のＮｏ）、テスト回路５０は暗号器４３の正当性確認テストを行わない。このため、図１７の処理は終了する。
【０１３８】
モード選択部５８が暗号化テストモードに設定されている場合（Ｓ７１０のＹｅｓ）、テスト回路５０は暗号化テストを行う。
【０１３９】
テスト回路５０はまず、テストデータ状態通知部６３に暗号化テストのテストデータが用意されているか否かを問い合わせる（Ｓ７２０）。暗号化テストのテストデータが用意されている場合（Ｓ７３０のＹｅｓ）、すでに説明した図１１の暗号化テストが実行される（Ｓ７４０）。
【０１４０】
復号テストのテストデータしか用意されていない場合（Ｓ７３０のＮｏ）、暗号化テスト用のデータが用意されていない場合の暗号化テストを実施する。暗号化テストのテストデータが用意されていない場合の暗号化テストは次の手順で行われる。
【０１４１】
正当性確認制御部５４は、暗号器正当性確認部５１の現在の状態を確認するかどうかを指定するデータ比較フラグをＯＦＦにする（Ｓ７５０）。データ比較フラグがＯＦＦの場合、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認しない。
【０１４２】
次に、ＤＭＡＣ制御部６１は、ＲＷ−ＤＭＡＣ４５にメモリリード設定を行う（Ｓ７６０）。暗号器正当性確認部５１で比較できるデータサイズ分の転送が行われるように、ＲＷ−ＤＭＡＣ４５に転送サイズを設定する（Ｓ７７０）。
【０１４３】
暗号器制御部５５は、暗号器４３を暗号化モードに設定する（Ｓ７８０）。
【０１４４】
また正当性確認制御部５４は、暗号器正当性確認部５１をクリアする（Ｓ７９０）。クリアとは初期化の意味であり暗号器正当性確認部５１にゼロが設定される。
【０１４５】
またＩ／Ｆ制御部５３は暗号器テストを動作させるためのパスを構築する（Ｓ８００）。具体的には、ＲＷ−ＤＭＡＣ４５がメモリ１２から読み出したデータをデータ振り分け器４４に出力するパス、データ振り分け器４４と暗号器正当性確認部５１を結ぶスルーパス４７、データ振り分け器４４と暗号器４３を結ぶパス４８、及び、暗号器正当性確認部５１から暗号器４３へのパス、を構築する。また、使用しないＩ／Ｆ制御モジュール５２を停止させる。
【０１４６】
次に、ＤＭＡＣ制御部６１はＲＷ−ＤＭＡＣ４５を起動する（Ｓ８１０）。
【０１４７】
データ振り分け器４４は、パス４８をスルーパス４７へ切り換える（Ｓ８２０）。
【０１４８】
また、データ振り分け器４４はテストデータ保持部６２のデータ蓄積モードをＯＮに設定する（Ｓ８３０）。
【０１４９】
ＲＷ−ＤＭＡＣ４５は設定された転送サイズ分のデータ(1ブロック)をメモリ１２から読み込む（Ｓ８４０）。１ブロックには、期待値データとＩＮＰＵＴデータが含まれているが、これらは復号テスト用のテストデータである。まず、復号テスト用の期待値データのみをデータ振り分け器４４のテストデータ保持部６２に蓄積させていく（Ｓ８５０）。
【０１５０】
データ振り分け器４４は、１ブロック分の期待値データが蓄積された後、データ蓄積モードをＯＦＦに切り替える（Ｓ８６０）。
【０１５１】
次に、データ振り分け器４４は、復号テスト用のテストデータのＩＮＰＵＴデータを1ブロック分、スルーパス４７へ転送する（Ｓ８７０）。暗号器正当性確認部５１はＩＮＰＵＴデータを蓄積する（Ｓ８８０）。復号用テストデータのＩＮＰＵＴデータは、暗号化された状態である。
【０１５２】
データ蓄積完了後、データ振り分け器４４がスルーパス４７をパス４８(暗号器側)に切り替える（Ｓ８９０）。
【０１５３】
データ振り分け器４４はテストデータ保持部６２に蓄積された復号用テストデータの期待値データを暗号器４３へ入力する（Ｓ９００）。
【０１５４】
暗号器４３は期待値データを暗号化する（Ｓ９１０）。復号用のテストデータの期待値データが暗号化されるので、このデータは暗号化された状態である。
【０１５５】
暗号器４３は、暗号化した復号用テストデータの期待値データを暗号器正当性確認部５１に入力する（Ｓ９２０）。暗号器正当性確認部５１は上記のように２つのデータの排他的論理和を取る。
【０１５６】
正当性確認制御部５４は、暗号器正当性確認部５１に1ブロック分の暗号化された期待値データが転送されたことを検出して、データ比較フラグをＯＮにする（Ｓ９３０）。データ比較フラグがＯＮになると、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認する。
【０１５７】
正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を監視して、ＡＬＬゼロか否かを判定する（Ｓ９４０）。どれか1bitでも1が出力されていた場合（Ｓ９４０のＮｏ）、正当性確認制御部５４は暗号器４３の正当性が保たれていないとしてエラー処理を行う（Ｓ９５０）。
【０１５８】
ＡＬＬゼロの場合（Ｓ９４０のＹｅｓ）、正当性確認制御部５４はデータ比較フラグを再びＯＦＦに設定する（Ｓ９６０）。
【０１５９】
次に、正当性確認制御部５４は１ブロックの比較が完了したことを検出して、データサイズカウンタに１ブロック分のデータサイズを上乗せしていく（Ｓ９７０）。
【０１６０】
完了通知部５７は、テストデータサイズ記憶部５９に保持された値とデータサイズカウンタが同じになると、復号テストの完了通知をＣＰＵ１１に割り込むことでソフトウェア１６に対し通知する（Ｓ９８０）。
【０１６１】
以上のように、ソフトウェア１６が復号用のテストデータしか有していなくても、テストデータ保持部６２がテストデータを保持しておき、復号テスト用の期待値データを暗号器４３に、復号テスト用のＩＮＰＵＴデータを暗号器正当性確認部５１に入力することで、暗号器４３の暗号化テストが可能になる。
【０１６２】
〔動作手順  復号テスト〕
図１８は、復号テストにおけるデータの流れを模式的に示す図の一例を、図１９は、ソフトウェア１６が外部メディアＩ／Ｆ１００の暗号器４３の復号機能の正当性を確認する手順を示すフローチャート図の一例である。
【０１６３】
図１８に示すように、期待値データは暗号器正当性確認部５１をスルーして暗号器により復号された後、データ振り分け器にいったん保持される。次に、データ振り分け器はＩＵＰＵＴデータを暗号器正当性確認部５１に入力する。そして、データ振り分け器は保持している復号された期待値データを暗号器正当性確認部５１に入力する。こうすることで、暗号テスト用のテストデータで復号テストが可能になる。
【０１６４】
テスト回路５０が起動されると、暗号器制御部５５はモード選択部５８に「復号テスト」モードが選択されているか否かを判定する（Ｓ１０１０）。
【０１６５】
モード選択部５８が復号テストモードに設定されていない場合（Ｓ１０１０のＮｏ）、テスト回路５０は暗号器４３の正当性確認テストを行わない。このため、図１９の処理は終了する。
【０１６６】
モード選択部５８が暗号化テストモードに設定されている場合（Ｓ１０１０のＹｅｓ）、テスト回路５０は復号のテストを行う。テスト回路５０は、まず、テストデータ状態通知部６３に復号テスト用のテストデータが用意されているか否かを問い合わせる（Ｓ１０２０）。
【０１６７】
復号テストのテストデータが用意されている場合（Ｓ１０３０のＹｅｓ）、すでに説明した図１３の復号テストを実行すればよい（Ｓ１０４０）。
【０１６８】
暗号化用のテストデータしか用意されていない場合（Ｓ１０３０のＮｏ）、テスト回路５０は復号用のテストデータが用意されていない場合の復号テストを実行する。復号用のテストデータが用意されていない場合の復号テストは次の手順で行われる。
【０１６９】
正当性確認制御部５４は、暗号器正当性確認部５１の現在の状態を確認するかどうかを指定するデータ比較フラグをＯＦＦにする（Ｓ１０５０）。データ比較フラグがＯＦＦの場合、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認しない。
【０１７０】
次に、ＤＭＡＣ制御部６１は、ＲＷ−ＤＭＡＣ４５にメモリリード設定を行う（Ｓ１０６０）。暗号器正当性確認部５１で比較できるデータサイズ分の転送が行われるように、ＲＷ−ＤＭＡＣ４５に転送サイズを設定する（Ｓ１０７０）。
【０１７１】
暗号器制御部５５は、暗号器４３を復号モードに設定する（Ｓ１０８０）。
【０１７２】
また正当性確認制御部５４は、暗号器正当性確認部５１をクリアする（Ｓ１０９０）。クリアとは初期化の意味であり暗号器正当性確認部５１にゼロが設定される。
【０１７３】
またＩ／Ｆ制御部５３は暗号器テストを動作させるためのパスを構築する（Ｓ１１００）。具体的には、ＲＷ−ＤＭＡＣ４５がメモリ１２から読み出したデータをデータ振り分け器４４に出力するパス、データ振り分け器４４から暗号器正当性確認部５１へのスルーパス４７、暗号器正当性確認部５１から暗号器４３へのパス、暗号器４３からデータ振り分け器４４へのパスを構築し、Ｉ／Ｆ制御モジュール５２を停止させる。
【０１７４】
次に、ＤＭＡＣ制御部６１はＲＷ−ＤＭＡＣ４５を起動する（Ｓ１１１０）。
【０１７５】
正当性確認制御部５４は、暗号器正当性確認部５１のスルー設定をＯＮに設定する（Ｓ１１２０）。
【０１７６】
ＲＷ−ＤＭＡＣ４５は設定された転送サイズ分のデータ(1ブロック)をメモリ１２から読み込む（Ｓ１１３０）。１ブロックには、期待値データとＩＮＰＵＴデータが含まれているが、これらは暗号化用のテストデータである。
【０１７７】
まず、データ振り分け器４４は暗号化テストのテストデータの期待値データのみをスルーパス４７へ出力する（Ｓ１１４０）。暗号化テストのテストデータの期待値データは、暗号化された状態である。
【０１７８】
暗号器正当性確認部５１のスルー設定はＯＮなので、期待値データは暗号器４３にそのまま入力される（Ｓ１１５０）。
【０１７９】
暗号器４３は期待値データを復号する（Ｓ１１６０）。暗号化テストのテストデータの期待値データは暗号化されているので、復号により暗号化されていない状態になる。
【０１８０】
データ振り分け器４４は、復号された期待値データをテストデータ保持部６２に蓄積させていく（Ｓ１１７０）。
【０１８１】
次に、正当性確認制御部５４は、暗号器正当性確認部５１のスルー設定をＯＦＦに設定する（Ｓ１１８０）。
【０１８２】
データ振り分け器４４は、暗号化テストのテストデータのＩＮＰＵＴデータを暗号器正当性確認部５１に入力する（Ｓ１１９０）。暗号化テストのテストデータのＩＮＰＵＴデータは暗号化される前の状態である。
【０１８３】
暗号器正当性確認部５１は、ＩＮＰＵＴデータを保持する（Ｓ１２００）。
【０１８４】
次に、データ振り分け器４４は、テストデータ保持部６２に記憶している復号された期待値データを、スルーパス４７を介して暗号器正当性確認部５１に入力する（Ｓ１２１０）。
【０１８５】
暗号器正当性確認部５１は、復号された期待値データを取得する（Ｓ１２２０）。
【０１８６】
正当性確認制御部５４は、暗号器正当性確認部５１に1ブロック分のデータが転送されたことを検出して、データ比較フラグをＯＮにする（Ｓ１２３０）。データ比較フラグがＯＮになると、正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を確認する。
【０１８７】
正当性確認制御部５４は、暗号器正当性確認部５１の比較結果を監視して、ＡＬＬゼロか否かを判定する（Ｓ１２４０）。どれか1bitでも1が出力されていた場合（Ｓ１２４０のＮｏ）、正当性確認制御部５４は暗号器４３の正当性が保たれていないとしてエラー処理を行う（Ｓ１２５０）。
【０１８８】
ＡＬＬゼロの場合（Ｓ１２４０のＹｅｓ）、正当性確認制御部５４はデータ比較フラグを再びＯＦＦに設定する（Ｓ１２６０）。
【０１８９】
次に、正当性確認制御部５４は１ブロックの比較が完了したことを検出して、データサイズカウンタに１ブロック分のデータサイズを上乗せしていく（Ｓ１２７０）。
【０１９０】
完了通知部５７は、テストデータサイズ記憶部５９に保持された値とデータサイズカウンタが同じになると、復号テストの完了通知をＣＰＵ１１に割り込むことでソフトウェア１６に対し通知する（Ｓ１２８０）。
【０１９１】
以上のように、ソフトウェア１６が暗号化テストのテストデータしか有していなくても、復号テストが可能である。テストデータ保持部６２が暗号化テスト用の期待値データを暗号器正当性確認部５１経由で暗号器に復号させテストデータ保持部６２で保持しておく。暗号化テスト用のＩＮＰＵＴデータを暗号器正当性確認部５１に出力し、次に、テストデータ保持部６２で保持している復号された期待値データを暗号器正当性確認部５１に入力することで、暗号器４３の復号テストが可能になる。
【符号の説明】
【０１９２】
１１        ＣＰＵ
１２        メモリ
１６        ソフトウェア
４１        ＩＰ
４２        メディアアクセス制御部
４３        暗号器
４４        データ振り分け部
４５        ＲＷ−ＤＭＡＣ
５１        暗号器正当性確認部
５２        Ｉ／Ｆ制御モジュール
５３        Ｉ／Ｆ制御部
５４        正当性確認制御部
５５        暗号器制御部
５６        データサイズカウンタ
５７        完了通知部
５８        モード選択部
５９        テストデータサイズ記憶部
６０        データ振り分け制御部
６１        ＤＭＡＣ制御部
１００      外部メディアＩ／Ｆ
２００      外部記憶メディア
【先行技術文献】
【特許文献】
【０１９３】
【特許文献１】特開２００７−２１５０２８号公報
【図１】
2013021451.tif 000003
【図２】
2013021451.tif 000004
【図３】
2013021451.tif 000005
【図４】
2013021451.tif 000006
【図５】
2013021451.tif 000007
【図６】
2013021451.tif 000008
【図７】
2013021451.tif 000009
【図８】
2013021451.tif 000010
【図９】
2013021451.tif 000011
【図１０】
2013021451.tif 000012
【図１１】
2013021451.tif 000013
【図１２】
2013021451.tif 000014
【図１３】
2013021451.tif 000015
【図１４】
2013021451.tif 000016
【図１５】
2013021451.tif 000017
【図１６】
2013021451.tif 000018
【図１７】
2013021451.tif 000019
【図１８】
2013021451.tif 000020
【図１９】
2013021451.tif 000021