(57)【要約】【課題】外部記憶メディアの状態にかかわらず暗号器の正当性の確認を行うことができるようにする。【解決手段】暗号器１５３に対するテストモードを設定するモード選択部１７１と、テストモード中のＤＭＡコントローラ１５２の動作を制御するＤＭＡコントローラ制御部１７４と、テストモード中の暗号器１５３の動作を制御する暗号器制御部１７３とを有し、テストモード時に暗号器１５３を通してメモリとＳＲＡＭ１５１との間でテストデータの読み取り、書き込みを往復で行うようにＤＭＡコントローラ１５２の転送方向を切り替え制御して暗号器１５３の暗号化、復号に関するテストを行わせるテスト回路１７０を備える。【選択図】図３
2012194693.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのリードまたはライト動作を直接行うためのリードライト兼用のＤＭＡコントローラと、
データの暗号化または復号を行うための暗号器と、
前記メモリからの転送データまたは外部記憶メディアからの転送データを一時保存するためのＳＲＡＭと、
前記暗号器と前記ＳＲＡＭとの間のデータ授受を行うためのメモリ制御モジュールと、
前記外部記憶メディアと前記ＳＲＡＭとの間のデータ授受を行うためのインターフェース制御モジュールと、
前記暗号器に対するテストモードを設定するモード選択部と、テストモード中の前記ＤＭＡコントローラの動作を制御するＤＭＡコントローラ制御部と、テストモード中の前記暗号器の動作を制御する暗号器制御部とを有し、テストモード時に前記暗号器を通して前記メモリと前記ＳＲＡＭとの間でテストデータの読み取り、書き込みを往復で行うように前記ＤＭＡコントローラの転送方向を切り替え制御して前記暗号器の暗号化、復号に関するテストを行わせるテスト回路と、
を備えることを特徴とするインターフェース回路。
【請求項２】
前記暗号器制御部は、テストモード中の暗号化テスト時には、前記メモリから読み取られるテストデータは暗号化して前記ＳＲＡＭに書き込ませ、該ＳＲＡＭから読み取られる暗号化されたテストデータはスルーして前記メモリに書き戻させるように前記暗号器を制御することを特徴とする請求項１に記載のインターフェース回路。
【請求項３】
前記暗号器制御部は、テストモード中の復号テスト時には、前記メモリから読み取られる暗号化されたテストデータはスルーして前記ＳＲＡＭに書き込ませ、該ＳＲＡＭから読み取られる暗号化されたテストデータは復号して前記メモリに書き戻させるように前記暗号器を制御することを特徴とする請求項１に記載のインターフェース回路。
【請求項４】
前記テスト回路は、
テストモード時にデータの読み取りアドレスを保持する読み取りアドレス保持部と、
テストモード時にデータの書き込みアドレスを保持する書き込みアドレス保持部と、
テストモード時に転送すべきデータサイズを設定するテストデータサイズ保持部と、
テストモード時に前記メモリへの書き戻しを行ったサイズを保持する書き込みデータカウンタと、
テストモード時に該書き込みカウンタがテストデータサイズと同じになると完了をソフトウェアに通知する完了通知部と、
を備えることを特徴とする請求項１〜３のいずれか１つに記載のインターフェース回路。
【請求項５】
前記完了通知部は、完了通知を割り込みで発生させることを特徴とする請求項４に記載のインターフェース回路。
【請求項６】
前記完了通知部は、完了通知をレジスタで通知することを特徴とする請求項４に記載のインターフェース回路。
【請求項７】
前記読み取りアドレス保持部と前記書き込みアドレス保持部を１つのアドレス保持部で構成し、前記メモリ上の入力データへ出力データを上書きすることを特徴とする請求項４に記載のインターフェース回路。
【請求項８】
前記読み取りアドレス保持部と前記書き込みアドレス保持部を１つのアドレス保持部で構成し、前記メモリ上の入力データの位置からテストデータサイズ分アドレスが進んだ位置へ出力データを出力することを特徴とする請求項４に記載のインターフェース回路。
【請求項９】
前記完了通知部は、一度のリードライト動作毎に出力完了通知を行い、データ転送を一時中断するように動作制御することを特徴とする請求項４に記載のインターフェース回路。
【請求項１０】
前記ＤＭＡコントローラを備え、外部記憶メディアが接続される請求項１〜９のいずれか１つに記載のインターフェース回路と、
ソフトウェアに従い当該装置の全体制御を司る動作制御を行うＣＰＵと、
各種データを記憶し前記ＣＰＵまたは前記ＤＭＡコントローラからアクセス可能なメモリと、
原稿画像を読み取るスキャナと、
画像データに従い印刷出力するプロッタと、
を備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（Direct  Memory  Access）コントローラを備えるインターフェース回路および画像形成装置に関する。
【背景技術】
【０００２】
外部記憶メディアには、通常、読み込み（リード）方向または書き込み（ライト）方向が排他で行われる。この特性により、回路規模を小さくするために、１つのＤＭＡコントローラの読み書きの方向を切り替えて利用するようにしている。
【０００３】
ここで、外部記憶メディアは、取り外しが容易にできるため、セキュリティ上問題となりやすい。そのため、外部記憶メディアに記録する際には暗号器を用いて暗号化を行い記録する方法が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
暗号器を有するＬＳＩでは、暗号器の正当性を確保するために、起動時に暗号器の動作確認テストを実施しなければならない。この場合、暗号器を利用し外部記憶メディアへ一度出力を行い、それを再度メモリへ読み込み、用意した期待値と一致するか否かを比較する方法がとられる。外部記憶メディアは、駆動系が安定動作するまで待つ必要があるものがあり、また、動作前に初期化を行う必要があるものもある。これらの処理には比較的時間がかかることは周知の事実である。よって、起動時にこの処理を行うと、機器をユーザが利用するまでの時間（起動時間）が大幅に長くなってしまい、ユーザの利便性を著しく損なうものとなる。
【０００５】
本発明は、上記に鑑みてなされたものであって、外部記憶メディアの状態にかかわらず暗号器の正当性の確認を行うことができるインターフェース回路および画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、メモリへのリードまたはライト動作を直接行うためのリードライト兼用のＤＭＡコントローラと、データの暗号化または復号を行うための暗号器と、前記メモリからの転送データまたは外部記憶メディアからの転送データを一時保存するためのＳＲＡＭと、前記暗号器と前記ＳＲＡＭとの間のデータ授受を行うためのメモリ制御モジュールと、前記外部記憶メディアと前記ＳＲＡＭとの間のデータ授受を行うためのインターフェース制御モジュールと、前記暗号器に対するテストモードを設定するモード選択部と、テストモード中の前記ＤＭＡコントローラの動作を制御するＤＭＡコントローラ制御部と、テストモード中の前記暗号器の動作を制御する暗号器制御部とを有し、テストモード時に前記暗号器を通して前記メモリと前記ＳＲＡＭとの間でテストデータの読み取り、書き込みを往復で行うように前記ＤＭＡコントローラの転送方向を切り替え制御して前記暗号器の暗号化、復号に関するテストを行わせるテスト回路と、を備えることを特徴とする。
【０００７】
また、本発明は、前記ＤＭＡコントローラを備え、外部記憶メディアが接続される上記発明のいずれか一に記載のインターフェース回路と、ソフトウェアに従い当該装置の全体制御を司る動作制御を行うＣＰＵと、各種データを記憶し前記ＣＰＵまたは前記ＤＭＡコントローラからアクセス可能なメモリと、原稿画像を読み取るスキャナと、画像データに従い印刷出力するプロッタと、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、外部記憶メディアの状態にかかわらず暗号器の正当性の確認を行うことができるインターフェース回路および画像形成装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態の画像形成装置の構成例を示す概略ブロック図である。
【図２】図２は、外部メディアＩＦ１５の構成例を示す概略ブロック図である。
【図３】図３は、ＩＦ制御部の構成例を示す概略ブロック図である。
【図４】図４は、ＣＰＵにより実行されるソフトウェアの制御を示す概略フローチャートである。
【図５】図５は、テスト回路が暗号器の暗号化機能をテストする場合の動作制御例を示す概略フローチャートである。
【図６】図６は、テスト回路が暗号器の復号機能をテストする場合の動作制御例を示す概略フローチャートである。
【図７】図７は、本実施の形態の変形例１の構成例を示す概略ブロック図である。
【図８】図８は、変形例２においてテスト回路が暗号器の暗号化機能をテストする場合の動作制御例を示す概略フローチャートである。
【図９】図９は、変形例２において暗号器の復号機能をテストする場合の動作制御例を示す概略フローチャートである。
【図１０】図１０は、変形例２においてＣＰＵにより実行されるソフトウェアの制御を示す概略フローチャートである。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかるインターフェース回路および画像形成装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
図１は、本実施の形態の画像形成装置の構成例を示す概略ブロック図である。本実施の形態の画像形成装置は、ソフトウェアに従い当該画像形成装置の全体の制御を司るように動作制御するＣＰＵ１を備えている。また、ＣＰＵ１や後述のＤＭＡコントローラからアクセス可能で各種データを記憶するメモリ２の他、スキャナ３、プロッタ４、外部記憶メディア５、ＦＡＸ６、ネットワーク７等の複数の画像処理アルゴリズムモジュールを備えている。スキャナ３は、原稿画像を読み取るデバイスである。プロッタ４は、画像データを印刷出力するデバイスである。ＦＡＸ６は、接続されたファクシミリ回線網に従いファクシミリ通信を行うためのデバイスである。ネットワーク７は、パソコン等の機器との間データの授受を行うためのＬＡＮ（Local  Area  Network）等の通信回線網である。
【００１２】
ＣＰＵ１は、アクセス制御を行うＣＰＵ  Ｉ／Ｆ（インターフェース）１１を介してデータバス１９に接続されている。同様に、メモリ２、スキャナ３、プロッタ４、外部記憶メディア５、ＦＡＸ６、ネットワーク７は、各々、アクセス制御を行うメモリＩ／Ｆ１２、スキャナ入力部１３、プロッタ出力部１４、外部メディアＩＦ１５、ＦＡＸ  Ｉ／Ｆ１６、ネットワークＩ／Ｆ１７を介してデータバス１９に接続されている。これらのＣＰＵ  Ｉ／Ｆ１１等のアクセス制御部は、ＡＳＩＣ（Application  Specific  IC）１０構成とされている。ＡＳＩＣ１０中には、画像データの向きを回転させる回転器１８も内蔵されている。
【００１３】
図２は、外部メディアＩＦ１５の構成例を示す概略ブロック図である。外部メディアＩＦ１５は、ＵＳＢメモリのような外部記憶メディア５へのアクセス制御を行うもので、本実施の形態のインターフェース回路を構成する。本実施の形態の外部メディアＩＦ１５は、ＳＲＡＭ（Static  RAM）１５１と、リードライト兼用のＤＭＡコントローラ１５２と、暗号器１５３と、ＩＦ制御部１６０とから構成されている。ＳＲＡＭ１５１は、メモリ２から読み込み、外部記憶メディア５へ転送する際に一時バッファとして利用されるメモリである。これは、外部記憶メディア５へのデータ転送は、一般的に、ある一定量のデータを連続して送る必要があるからである。ＤＭＡコントローラ１５２は、メモリ２へのデータリードまたはデータライトを、ＣＰＵ１を介さずに直接行うためのものである。通常、外部記憶メディア５はリード動作、ライト動作を排他で行う。そこで、回路規模を小さくするために、通常は、リードライト兼用のＤＭＡコントローラ１５２を利用する。暗号器１５３は、ＤＭＡコントローラ１５２により読み込まれたデータの暗号化を行ったり、外部記憶メディア５から読み込まれた暗号化データを復号してＤＭＡコントローラ１５２に渡したりするデータ暗号化・復号を行う機能部である。ＩＦ制御部１６０は、外部記憶メディア５へアクセスを行うためのインターフェースを制御するブロックである。
【００１４】
図３は、ＩＦ制御部１６０の構成例を示す概略ブロック図である。本実施の形態のＩＦ制御部１６０は、メモリ制御モジュール１６１、ＩＦ制御モジュール１６２に加えて、テスト回路１７０を含む構成とされている。メモリ制御モジュール１６１は、暗号器１５３とのインターフェースを行う機能部である。すなわち、メモリ制御モジュール１６１は、暗号器１５３を制御してＤＭＡコントローラ１５２からデータを取得しＳＲＡＭ１５１へ格納する、または、ＳＲＡＭ１５１からデータを取得し暗号器１５３を制御してＤＭＡコントローラ１５２へデータを格納する機能を有する。ＩＦ制御モジュール１６２は、外部記憶メディア５とのインターフェースを行う機能部である。すなわち、ＩＦ制御モジュール１６２は、ＳＲＡＭ１５１からデータを取得して外部記憶メディア５へ転送する、または、外部記憶メディア５からデータを取得してＳＲＡＭ１５１へ格納する機能を有する。
【００１５】
テスト回路１７０は、モード選択部１７１、ＩＦ動作制御部１７２、暗号器制御部１７３、ＤＭＡコントローラ制御部１７４、読み取りアドレス保持部１７５、書き込みアドレス保持部１７６、テストデータサイズ保持部１７７、データカウンタ１７８および完了通知部１７９を有する。モード選択部１７１は、暗号器テストを行うか否かを選択するスイッチの役割をなす。モードとしては、「通常転送」モードと「暗号器テスト」モードとを選択できる。「通常転送」モードは、テストを行わず通常の転送を行うモードである。「暗号器テスト」モードは、暗号器１５３の動作を確認するときに選択するモードである。ＩＦ動作制御部１７２は、モード選択により「暗号器テスト」モードが選択されると、ＩＦ制御モジュール１６２を停止し、メモリ制御モジュール１６１を後述する制御フローに従い動作させる機能を果たす。暗号器制御部１７３は、暗号器１５３の動作モードを選択する機能部である。暗号器１５３は、「暗号化」「復号」「スルー」の３つの動作モードを有する。暗号器制御部１７３は、これらのモードを後述する制御フローに従い制御する。ＤＭＡコントローラ制御部１７４は、リードライト兼用のＤＭＡコントローラ１５２の転送方向を制御する機能部である。完了通知部１７９は、テスト回路１７０の動作が完了したことをソフトウェアに通知する機能部である。
【００１６】
読み取りアドレス保持部１７５は、ソフトウェアから設定され、テストデータがあるアドレスを保持する。書き込みアドレス保持部１７６は、ソフトウェアから設定され、テスト結果を書き込むアドレスを保持する。テストデータサイズ保持部１７７は、ソフトウェアから設定され、テストデータのサイズを保持する。書き込みデータカウンタ１７８は、書き込み終わったデータ数を保持する。書き込みデータカウンタ１７８のカウント値とテストデータサイズの保持値とが同じになったときが、書き込み終了の条件となる。
【００１７】
図４は、ＣＰＵ１により実行されるソフトウェアの制御を示す概略フローチャートである。ソフトウェアは、まず、テスト用の入力データと期待値データ（暗号化結果）とをメモリ２上に用意する（ステップＳ１，Ｓ２）。また、出力データを置くための出力先メモリ領域を確保する（ステップＳ３）。さらに、テスト回路１７０の動作モードを「暗号器テスト」モードに設定する（ステップＳ４）。そして、メモリ２上に用意したテスト用入力データの最初のアドレスを読み込みアドレス保持部１７５に設定する（ステップＳ５）。同様に、メモリ２上に確保した出力データの出力先の最初のアドレスを書き込みアドレス保持部１７６に設定する（ステップＳ６）。さらに、メモリ２上に用意したテスト用入力データのデータサイズをテストデータサイズ保持部１７７に設定する（ステップＳ７）。これらの設定が完了した後、テスト回路１７０を起動させる（ステップＳ８）。その後、テスト回路１７０からテスト完了通知を受けると（ステップＳ９）、出力データと期待値データとの比較を行い（ステップＳ１０）、不一致の場合には（ステップＳ１１：Ｙｅｓ）、所定のエラー処理を行い、出力データと期待値データとが一致した場合には（ステップＳ１１：Ｎｏ）、暗号器１５３が正常に動作していると判断できるため、テストを終了する。
【００１８】
図５は、テスト回路１７０が暗号器１５３の暗号化機能をテストする場合の動作制御例を示す概略フローチャートである。テスト回路１７０は、起動されると、モードが「暗号化テスト」モードであるか否かを判定する（ステップＳ１０１）。「暗号化テスト」モードでない場合には（ステップＳ１０１：Ｎｏ）、暗号化確認テストを行わずに処理を終了する。「暗号化テスト」モードに設定されている場合には（ステップＳ１０１：Ｙｅｓ）、暗号化テストを実行する。
【００１９】
暗号化テストは、以下の手順で実行される。まず、入力データを読み込み、暗号化して、ＳＲＡＭ１５１へ保存する動作を行う。ＤＭＡコントローラ制御部１７４は、ＤＭＡコントローラ１５２にメモリリードの設定を行い（ステップＳ１０３）、ＳＲＡＭ１５１に保持できるデータサイズ分の転送が行われるようにＤＭＡコントローラ１５２に転送サイズを設定する（ステップＳ１０４）。また、同時に、読み取りアドレス保持部１７５に保持されているアドレスを読み取り開始アドレスとしてＤＭＡコントローラ１５２に通知する。ついで、暗号器制御部１７３により、暗号器１５３を「暗号化」モードに設定する（ステップ１０５）。また、ＩＦ動作制御部１７２により、ＩＦ制御モジュール１６２がＳＲＡＭ１５１からデータを読み込まないように動作を停止させる（ステップＳ１０６）とともに、メモリ制御モジュール１６１がメモリリード動作を行うように設定する（ステップＳ１０７）。ついで、ＤＭＡコントローラ制御部１７４により、ＤＭＡコントローラ１５２を起動する（ステップＳ１０８）。
【００２０】
ＤＭＡコントローラ１５２は、設定された読み取り開始アドレスから設定されたデータサイズ分のデータをメモリ２から読み込み、暗号器１５３へ転送する（ステップＳ１０９，Ｓ１１０）。暗号器１５３は、受け取ったデータを暗号化してメモリ制御モジュール１６１に転送する（ステップＳ１１１）。メモリ制御モジュール１６１は、暗号器１５３から転送された暗号化データをＳＲＡＭ１５１へ書き込む（ステップＳ１１２）。転送が完了すると、テスト回路１７０は、読み取りアドレスについても、転送したデータサイズ分のアドレスを加算する（ステップＳ１１３）。
【００２１】
次に、ＳＲＡＭ１５１に書き込まれた暗号化データをメモリ２へ書き戻す。まず、ＤＭＡコントローラ制御部１７４は、ＤＭＡコントローラ１５２をメモリライトに設定し（ステップＳ１２１）、ＳＲＡＭ１５１に保持されたデータ分の転送が行われるように転送サイズの設定を行う（ステップＳ１２２）。また、同時に、書き込みアドレス保持部１７６に保持されているアドレスを書き込み開始アドレスとしてＤＭＡコントローラ１５２へ通知する。また、暗号器制御部１７３により、暗号器１５３を「スルー」モードに設定する（ステップＳ１２３）。また、ＩＦ動作制御部１７２により、ＩＦ制御モジュール１６２がＳＲＡＭ１５１へデータを書き込まないように動作を停止させる（ステップＳ１２４）とともに、メモリ制御モジュール１６１がメモリライト動作を行うように設定する（ステップＳ１２５）。そして、ＤＭＡコントローラ制御部１７４によりＤＭＡコントローラ１５２を起動する（ステップＳ１２６）。
【００２２】
まず、メモリ制御モジュール１６１はＳＲＡＭ１５１からデータを読み込み、暗号器１５３へ転送する（ステップＳ１２７，Ｓ１２８）。暗号器１５３は、受け取ったデータをそのままＤＭＡコントローラ１５２へ転送（スルー）する（ステップＳ１２９）。ＤＭＡコントローラ１５２は、設定された書き込み開始アドレスから設定されたデータ分のデータをメモリ２へ書き込む（ステップＳ１３０）。転送が完了すると、データカウンタ１７８は、書き込みデータサイズ分だけ加算する（ステップＳ１３１）とともに、テスト回路１７０は、書き込みアドレスについても、転送したデータサイズ分のアドレスを加算する（ステップＳ１３２）。
【００２３】
以上のような、メモリ２からの読み込みとメモリ２への書き込み動作を、テストデータサイズ保持部１７７に保持された値と、データカウンタ１７８の値とが同じになるまで繰り返す（ステップＳ１０２）。全てのデータ転送が完了すると、テスト回路１７０は、完了通知部１７９によりソフトウェアに対して完了を通知する（ステップＳ１３３）。
【００２４】
図６は、テスト回路１７０が暗号器１５３の復号機能をテストする場合の動作制御例を示す概略フローチャートである。入力データが暗号化データ、期待値データが復号結果に置き換わる以外は、図５に示したフローチャートの場合と同様である。
【００２５】
まず、テスト回路１７０は、起動されると、モードが「復号テスト」モードであるか否かを判定する（ステップＳ１５１）。「復号テスト」モードでない場合には（ステップＳ１５１：Ｎｏ）、復号確認テストを行わずに処理を終了する。「復号テスト」モードに設定されている場合には（ステップＳ１５１：Ｙｅｓ）、復号テストを実行する。
【００２６】
復号テストは、以下の手順で実行される。まず、暗号化された入力データを読み込み、暗号化されたデータをそのままＳＲＡＭ１５１へ保存する動作を行う。ＤＭＡコントローラ制御部１７４は、ＤＭＡコントローラ１５２にメモリリードの設定を行い（ステップＳ１５３）、ＳＲＡＭ１５１に保持できるデータサイズ分の転送が行われるようにＤＭＡコントローラ１５２に転送サイズを設定する（ステップＳ１５４）。また、同時に、読み取りアドレス保持部１７５に保持されているアドレスを読み取り開始アドレスとしてＤＭＡコントローラ１５２に通知する。ついで、暗号器制御部１７３により、暗号器１５３を「スルー」モードに設定する（ステップ１５５）。また、ＩＦ動作制御部１７２により、ＩＦ制御モジュール１６２がＳＲＡＭ１５１からデータを読み込まないように動作を停止させる（ステップＳ１５６）とともに、メモリ制御モジュール１６１がメモリリード動作を行うように設定する（ステップＳ１５７）。ついで、ＤＭＡコントローラ制御部１７４により、ＤＭＡコントローラ１５２を起動する（ステップＳ１５８）。
【００２７】
ＤＭＡコントローラ１５２は、設定された読み取り開始アドレスから設定されたデータサイズ分のデータをメモリ２から読み込み、暗号器１５３へ転送する（ステップＳ１５９，Ｓ１６０）。暗号器１５３は、受け取ったデータをスルーしてそのままメモリ制御モジュール１６１に転送する（ステップＳ１６１）。メモリ制御モジュール１６１は、暗号器１５３からそのまま転送された暗号化データをＳＲＡＭ１５１へ書き込む（ステップＳ１６２）。転送が完了すると、テスト回路１７０は、読み取りアドレスについても、転送したデータサイズ分のアドレスを加算する（ステップＳ１１３）。
【００２８】
次に、ＳＲＡＭ１５１に書き込まれた暗号化データを復号してメモリ２へ書き戻す。まず、ＤＭＡコントローラ制御部１７４は、ＤＭＡコントローラ１５２をメモリライトに設定し（ステップＳ１７１）、ＳＲＡＭ１５１に保持されたデータ分の転送が行われるように転送サイズの設定を行う（ステップＳ１７２）。また、同時に、書き込みアドレス保持部１７６に保持されているアドレスを書き込み開始アドレスとしてＤＭＡコントローラ１５２へ通知する。また、暗号器制御部１７３により、暗号器１５３を「復号」モードに設定する（ステップＳ１７３）。また、ＩＦ動作制御部１７２により、ＩＦ制御モジュール１６２がＳＲＡＭ１５１へデータを書き込まないように動作を停止させる（ステップＳ１７４）とともに、メモリ制御モジュール１６１がメモリライト動作を行うように設定する（ステップＳ１７５）。そして、ＤＭＡコントローラ制御部１７４によりＤＭＡコントローラ１５２を起動する（ステップＳ１７６）。
【００２９】
まず、メモリ制御モジュール１６１はＳＲＡＭ１５１から暗号化データを読み込み、暗号器１５３へ転送する（ステップＳ１７７，Ｓ１７８）。暗号器１５３は、受け取った暗号化データを復号してＤＭＡコントローラ１５２へ転送する（ステップＳ１７９）。ＤＭＡコントローラ１５２は、設定された書き込み開始アドレスから設定されたデータ分のデータをメモリ２へ書き込む（ステップＳ１８０）。転送が完了すると、データカウンタ１７８は、書き込みデータサイズ分だけ加算する（ステップＳ１８１）とともに、テスト回路１７０は、書き込みアドレスについても、転送したデータサイズ分のアドレスを加算する（ステップＳ１８２）。
【００３０】
以上のような、メモリ２からの読み込みとメモリ２への書き込み動作を、テストデータサイズ保持部１７７に保持された値と、データカウンタ１７８の値とが同じになるまで繰り返す（ステップＳ１５２）。全てのデータ転送が完了すると、テスト回路１７０は、完了通知部１７９によりソフトウェアに対して完了を通知する（ステップＳ１８３）。
【００３１】
完了通知を割り込みで発生させることで、ソフトウェアは、テスト回路１７０を起動後、テスト完了の割り込みが発生するまで、他の処理を容易に行うことができる。なお、完了通知は、レジスタで通知するようにしてもよい。この場合、完了通知レジスタの初期化をテスト回路起動と同時に行う。
【００３２】
上述したように、本実施の形態によれば、テストモード時に暗号器１５３を通してメモリ２とＳＲＡＭ１５１との間でテストデータの読み取り、書き込みを往復で行うようにＤＭＡコントローラ１５２の転送方向を切り替え制御して暗号器１５３の暗号化、復号に関するテストを行わせるテスト回路１７０を備え、ＤＭＡコントローラ１５２の転送方向を自動で切り替えながらメモリ２とＳＲＡＭ１５１との間でテストデータを往復転送するようにしたので、外部記憶メディア５を使用しないため、外部記憶メディア５の状態にかかわらず暗号器１５３の正当性の確認を行うことができる。
【００３３】
（変形例１）
図７は、本実施の形態の変形例１の構成例を示す概略ブロック図である。本変形例のテスト回路１８０は、読み込みアドレス保持部１７５と書き込みアドレス保持部１７６とを１つのアドレス保持部１８１にまとめたものである。暗号器１５３による暗号化は、通常、データサイズが変わらないため、以下のような条件を追加することにより、ソフトウェアの設定を減らすことができる。一つ目は、ソフトウェアが入力データと出力先領域を連続して確保することを条件に、出力先アドレスをアドレス保持＋データサイズ保持とすることで計算させる方法である。すなわち、メモリ２上の入力データの位置からテストデータサイズ分だけアドレスが進んだ位置へ出力データを出力させるようにすればよい。二つ目は、入力データの読み込みに対して、結果の出力は必ず遅れるため、入力データのあった場所を出力先に指定する方法である。すなわち、メモリ２上の入力データへ出力データを上書きするようにすればよい。このようにすることで、出力先に確保するメモリ領域を削減できる。
【００３４】
（変形例２）
本実施の形態の変形例２は、１回のメモリリード・メモリライト毎に出力完了通知を行うようにしたものである。図８は、変形例２においてテスト回路１７０が暗号器１５３の暗号化機能をテストする場合の動作制御例を示す概略フローチャートであり、図９は、変形例２において暗号器１５３の復号機能をテストする場合の動作制御例を示す概略フローチャートであり、図１０は、変形例２においてＣＰＵ１により実行されるソフトウェアの制御を示す概略フローチャートである。
【００３５】
まず、暗号化機能のテストにおいては、基本的に、図５の場合と同様であるが、メモリリード、メモリライトを行った後、ソフトウェアに対して出力完了の通知を行う（ステップＳ１４１）。その後、ソフトウェアから転送継続通知を受けると（ステップＳ１４２）、転送を再開する。このとき、出力先アドレスは変更を行わない。また、復号機能のテストにおいては、基本的に、図６の場合と同様であるが、メモリリード、メモリライトを行った後、ソフトウェアに対して出力完了の通知を行う（ステップＳ１９１）。その後、ソフトウェアから転送継続通知を受けると（ステップＳ１９２）、転送を再開する。このとき、出力先アドレスは変更を行わない。このようにすることで、出力先のメモリ確保量をテストデータサイズではなく、ＳＲＡＭ１５１のサイズ分確保すればよく、少ないメモリ領域でテストの実行を行える。
【００３６】
ソフトウェア側の制御としては、図１０に示すように、ハードウェア側から出力完了通知を確認すると（ステップＳ２２）、出力データと期待値データとを比較し（ステップＳ２３）、不一致か否かを判定する（ステップＳ２４）。不一致の場合には（ステップＳ２４：Ｙｅｓ）、所定のエラー処理を行う（ステップＳ２５）。一方、一致する場合には（ステップＳ２４：Ｎｏ）、転送継続をハードウェアに対して行う（ステップＳ２６）。このような動作制御を転送が完了するまで（ステップＳ２１：Ｙｅｓ）、繰り返す。
【符号の説明】
【００３７】
１  ＣＰＵ
２  メモリ
３  スキャナ
４  プロッタ
１５  外部メディアＩＦ
１５１  ＳＲＡＭ
１５２  リードライト兼用のＤＭＡコントローラ
１５３  暗号器
１７０，１８０  テスト回路
１７１  モード選択部
１７３  暗号器制御部
１７４  ＤＭＡコントローラ制御部
１７５  読み取りアドレス保持部
１７６  書き込みアドレス保持部
１７７  テストデータサイズ保持部
１７８  データカウンタ
１７９  完了通知部
１８１  アドレス保持部
【先行技術文献】
【特許文献】
【００３８】
【特許文献１】特開２００７−２１５０２８号公報
【図１】
2012194693.tif 000003
【図２】
2012194693.tif 000004
【図３】
2012194693.tif 000005
【図４】
2012194693.tif 000006
【図５】
2012194693.tif 000007
【図６】
2012194693.tif 000008
【図７】
2012194693.tif 000009
【図８】
2012194693.tif 000010
【図９】
2012194693.tif 000011
【図１０】
2012194693.tif 000012