(57)【要約】【課題】  外部記憶装置を備えた電子装置で、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行できるようにする。【解決手段】  レジスタ３６の設定に基づいて、第１セレクタ３３と第２セレクタ３４と暗号化・復号化器３１と乱数発生器３２に対してモード又はパラメータを設定し、ＰＡＴＡデバイスＩ／Ｆ３０から入力されたデータを暗号化・復号化器３１によって暗号化してＳＡＴＡホストＩ／Ｆ３５から出力するように設定するか、ＰＡＴＡデバイスＩ／Ｆ３０から入力されたデータを乱数発生器３２によって発生させた乱数に置き換えてＳＡＴＡホストＩ／Ｆ３５から出力するように設定するか、ＳＡＴＡホストＩ／Ｆ３５から入力された暗号化データを暗号化・復号化器３１によって復号化してＰＡＴＡデバイスＩ／Ｆ３０から出力するように設定するかのいずれか一つの設定に切り換える。【選択図】        図１
2008085986.tif 000002
【特許請求の範囲】
【請求項１】
第１の入出力手段と、第２の入出力手段と、暗号化手段と、復号化手段と、乱数発生手段とを有し、前記第１の入出力手段から入力されたデータを前記暗号化手段によって暗号化して前記第２の入出力手段から出力するように設定する第１の設定手段と、前記第１の入出力手段から入力されたデータを前記乱数発生手段によって発生させた乱数に置き換えて前記第２の入出力手段から出力するように設定する第２の設定手段と、前記第２の入出力手段から入力された暗号化データを前記復号化手段によって復号化して前記第１の入出力手段から出力するように設定する第３の設定手段と、前記第１乃至第３の設定手段のいずれか一つの手段に設定させる手段とを備えたことを特徴とするデータ変換装置。
【請求項２】
前記第１の入出力手段と前記第２の入出力手段が共にパラレル方式でデータを入出力する手段であることを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記第１の入出力手段と前記第２の入出力手段が共にシリアル方式でデータを入出力する手段であることを特徴とする請求項１記載のデータ変換装置。
【請求項４】
前記第１の入出力手段と前記第２の入出力手段のいずれか一方がパラレル方式でデータを入出力する手段であり、もう一方がシリアル方式でデータを入出力する手段であることを特徴とする請求項１記載のデータ変換装置。
【請求項５】
前記暗号化手段によるデータの暗号化を予め設定したデータ単位毎に行うようにしたことを特徴とする請求項１乃至４のいずれか一項に記載のデータ変換装置。
【請求項６】
前記データ単位は最小記録単位であることを特徴とする請求項５記載のデータ変換装置。
【請求項７】
請求項１乃至６のいずれか一項に記載のデータ変換装置を備えたことを特徴とする複写機、印刷装置、ファクシミリ装置、コンピュータ、及びそれらの複合機を含む電子装置。
【請求項８】
入力されたデータを暗号化して出力する第１の工程と、入力されたデータを予め発生させた乱数に置き換えて出力する第２の工程と、入力された暗号化データを復号化して出力する第３の工程と、前記第１乃至第３の工程のいずれか一つの工程を選択して実行することを特徴とするデータ変換方法。
【請求項９】
前記データの入出力をパラレル方式で行うことを特徴とする請求項８記載のデータ変換方法。
【請求項１０】
前記データの入出力をシリアル方式で行うことを特徴とする請求項８記載のデータ変換方法。
【請求項１１】
前記データの入力と出力をそれぞれパラレル方式とシリアル方式で行う、あるいは前記データの入力と出力をそれぞれシリアル方式とパラレル方式で行うことを特徴とする請求項８記載のデータ変換方法。
【請求項１２】
前記データの暗号化を予め設定したデータ単位毎に行うことを特徴とする請求項８乃至１１のいずれか一項に記載のデータ変換方法。
【請求項１３】
前記データ単位は最小記録単位であることを特徴とする請求項１２記載のデータ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力したデータを暗号化と複合化を含む各種の変換をして出力するデータ変換装置と、そのデータ変換装置を備えた複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む電子装置と、入力したデータを暗号化と複合化を含む各種の変換をして出力するデータ変換方法とに関する。
【背景技術】
【０００２】
従来、パラレルインタフェース、シリアルインタフェース、又は不揮発性メモリカードインタフェースを含む各種のインタフェースで接続されるハードディスク装置を含む外部記憶装置又は光学記録装置を含む外部記録装置（以下、「外部記憶装置」にまとめて記述する）を搭載している複写機、印刷装置（プリンタ）、ファクシミリ装置、及びそれらの複合機（「マルチファンクションペリフェラル：ＭＦＰ」とも称する）を含む電子装置に、例えば、外部記憶装置に書き込むデータの暗号化を行うデータセキュリティ機能を追加する場合、電子装置のコントローラボードの交換やソフトウェアによる暗号化・復号化機能の追加、電子装置の本体の拡張スロットにデータの暗号化・復号化を行うためのデバイスをオプションとして追加するなどの手段がとられてきた（例えば、特許文献１参照）。
【特許文献１】特開２００６−１８４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述のような従来の技術の場合、例えば、ソフトウェアによる暗号化・復号化機能の追加の場合、ユーザサイドでの機能追加は可能であるが、電子装置のＣＰＵへの負荷が非常に高くなってしまい、電子装置が持つ本来のデータ転送（出力）速度を達成できず、生産性が落ちることになるという問題があった。
そこで、電子装置に予め高性能なＣＰＵを搭載することにより、上述のような生産性が落ちるのを防ぐことができるが、機能追加がなければ必要以上に高価なＣＰＵを搭載していることになって、電子装置の製造コストが上昇するという問題が生じる。
また、電子装置の本体の拡張スロットにデータの暗号化・復号化を行うためのデバイスをオプションとして追加する場合も、ユーザサイドでの対応は可能であるが、他のオプションの装着によって空きスロットがなければ対応できないという物理的な制約を持っており、電子装置の構成によっては対応できなくなるという問題が生じる。
【０００４】
この発明は上記の点に鑑みてなされたものであり、外部記憶装置を備えた電子装置において、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明は上記の目的を達成するため、次のデータ変換装置と電子装置とデータ変換方法を提供する。
（１）第１の入出力手段と、第２の入出力手段と、暗号化手段と、復号化手段と、乱数発生手段を有し、上記第１の入出力手段から入力されたデータを上記暗号化手段によって暗号化して上記第２の入出力手段から出力するように設定する第１の設定手段と、上記第１の入出力手段から入力されたデータを上記乱数発生手段によって発生させた乱数に置き換えて上記第２の入出力手段から出力するように設定する第２の設定手段と、上記第２の入出力手段から入力された暗号化データを上記復号化手段によって復号化して上記第１の入出力手段から出力するように設定する第３の設定手段と、上記第１乃至第３の設定手段のいずれか一つの手段に設定させる手段を備えたデータ変換装置。
【０００６】
（２）上記のようなデータ変換装置において、上記第１の入出力手段と上記第２の入出力手段が共にパラレル方式でデータを入出力する手段であるデータ変換装置。
（３）上記のようなデータ変換装置において、上記第１の入出力手段と上記第２の入出力手段が共にシリアル方式でデータを入出力する手段であるデータ変換装置。
（４）上記のようなデータ変換装置において、上記第１の入出力手段と上記第２の入出力手段のいずれか一方がパラレル方式でデータを入出力する手段であり、もう一方がシリアル方式でデータを入出力する手段であるデータ変換装置。
（５）上記のようなデータ変換装置において、上記暗号化手段によるデータの暗号化を予め設定したデータ単位毎に行うようにしたデータ変換装置。
（６）上記のようなデータ変換装置において、上記データ単位は最小記録単位であるデータ変換装置。
【０００７】
（７）上記のようなデータ変換装置のいずれかを備えた複写機、印刷装置、ファクシミリ装置、コンピュータ、及びそれらの複合機を含む電子装置。
（８）入力されたデータを暗号化して出力する第１の工程と、入力されたデータを予め発生させた乱数に置き換えて出力する第２の工程と、入力された暗号化データを復号化して出力する第３の工程と、上記第１乃至第３の工程のいずれか一つの工程を選択して実行するデータ変換方法。
（９）上記のようなデータ変換方法において、上記データの入出力をパラレル方式で行うデータ変換方法。
（１０）上記のようなデータ変換方法において、上記データの入出力をシリアル方式で行うデータ変換方法。
【０００８】
（１１）上記のようなデータ変換方法において、上記データの入力と出力をそれぞれパラレル方式とシリアル方式で行う、あるいは上記データの入力と出力をそれぞれシリアル方式とパラレル方式で行うデータ変換方法。
（１２）上記のようなデータ変換方法において、上記データの暗号化を予め設定したデータ単位毎に行うデータ変換方法。
（１３）上記のようなデータ変換方法において、上記データ単位は最小記録単位であるデータ変換方法。
【発明の効果】
【０００９】
この発明によるデータ変換装置とデータ変換方法は、外部記憶装置を備えた電子装置に用いることにより、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行することができる。
また、この発明による電子装置は、上記のようなデータ変換装置を備えることにより、電子装置に大幅な変更を加えなくても外部記憶装置に対して読み書きするデータに所定の処理を施す機能を実行することができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔実施例〕
図２は、この発明の一実施例であるデータ変換装置の外観斜視図である。
図１は、図２に示すデータ変換装置の機能構成を示すブロック図である。
【００１１】
図２に示すように、このデータ変換装置１は、基板１５上にＡＳＩＣ１０，例えば、ＳＣＳＩを含むパラレルＡＴＡ（ＰＡＴＡ）コネクタ１１，例えば、ＲＳ−２３２Ｃを含むシリアルＡＴＡ（ＳＡＴＡ）コネクタ１２を備えており、ＰＡＴＡコネクタ１１にＰＡＴＡケーブル４を介してＰＡＴＡインタフェースを備えた複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む電子装置（図示を省略）を接続し、ＳＡＴＡコネクタ１２にＳＡＴＡケーブル（図示を省略）を介してＳＡＴＡインタフェースを備えたハードディスク装置（ＨＤＤ），光ディスク装置を含む外部記憶装置（図示を省略）を接続することにより、電子装置に、ＰＡＴＡインタフェースでＳＡＴＡの外部記憶装置を利用させることを可能にする。
【００１２】
また、外部記憶装置に書き込むデータの暗号化の機能と、外部記憶装置に記憶された暗号化データの復号化の機能と、外部記憶装置に記憶されているデータに乱数のデータを上書きして消去するデータ消去機能を含むセキュリティ機能を有する。
したがって、このデータ変換装置１を用いることにより、電子装置２に対して、外部記憶装置に記憶するデータのデータ保護のためのデータの暗号化と復号化の機能と、外部記憶装置への書き込みデータを乱数に置き換えて外部記憶装置に記憶されたデータに上書きさせることによるデータ消去機能とを容易に付加することができる。
上記各機能は、ＡＳＩＣ１０の処理によって実現される。
上記ＡＴＡとは、米国規格協会（ＡＮＳＩ）によって標準化されたＩＤＥの正式な規格である。
【００１３】
図１に示すように、このデータ変換装置１は、基板１５上に設けられたＰＡＴＡコネクタ１１にＰＡＴＡケーブル４の一方の端子を接続し、そのＰＡＴＡケーブル４のもう一方の端子を電子装置２のＰＡＴＡインタフェース２２と接続することにより、電子装置２との間ではパラレル方式でデータのやり取りを行う。
また、ＳＡＴＡコネクタ１２にＳＡＴＡケーブル５の一方の端子を接続し、そのＳＡＴＡケーブル５のもう一方の端子をＳＡＴＡインタフェース（図示を省略）を有するハードディスク装置（ＳＡＴＡＨＤＤ）３を接続することにより、ＳＡＴＡＨＤＤ３との間ではシリアル方式でデータのやり取りを行う。
すなわち、２種類のインタフェース間でのデータ転送におけるブリッジ機能を有する。
【００１４】
ＡＳＩＣ１０は、ＰＡＴＡデバイスインタフェース（Ｉ／Ｆ）３０、暗号化・復号化器３１、乱数発生器３２、第１セレクタ３３、第２セレクタ３４、ＳＡＴＡホストインタフェース（Ｉ／Ｆ）３５、レジスタ３６からなる。
ＰＡＴＡデバイスＩ／Ｆ３０は、電子装置２との間でパラレル方式でデータを入出力する第１の入出力手段である。
暗号化・復号化器３１は、ＰＡＴＡデバイスＩ／Ｆ３０から入力されたデータを暗号化する暗号化手段と、ＳＡＴＡホストＩ／Ｆ３５から入力された暗号化データを復号化する復号化手段である。その暗号化と復号化のアルゴリズムには、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）を含む各種のアルゴリズムがあり、いずれのアルゴリズムを用いても良い。また、データのみを暗号化、復号化処理を行い、コマンド（命令）については無変換とする機能も有している。
【００１５】
乱数発生器３２は、ＰＡＴＡデバイスＩ／Ｆ３０から入力されたデータを置き換えるための乱数を発生させる乱数発生手段である。
第１セレクタ３３は、レジスタ３６の設定により、ＰＡＴＡデバイスＩ／Ｆ３０、又は暗号化・復号化器３１から入力したデータのいずれか一方を選択して出力するように切り換える。また、第２セレクタ３４から入力したデータを、ＰＡＴＡデバイスＩ／Ｆ３０、又は暗号化・復号化器３１へ出力するように切り換える。
第２セレクタ３４は、レジスタ３６の設定により、第１セレクタ３３から入力したデータをそのまま出力するか、あるいは乱数発生器３２から出力された乱数に置き換えて出力するかのいずれか一方に切り換える。また、ＳＡＴＡホストＩ／Ｆ３５から入力したデータを第１セレクタ３３へ出力する。
ＳＡＴＡホストＩ／Ｆ３５は、ＳＡＴＡＨＤＤ３との間でシリアル方式でデータを入出力する第２の入出力手段である。
【００１６】
レジスタ３６は、電子装置２のレジスタインタフェース（Ｉ／Ｆ）２１からの各種のモードと各種のパラメータの設定により、上記暗号化・復号化器３１又は上記乱数発生器３２へのモードとパラメータの設定と、上記第１セレクタ３３と上記第２セレクタ３４に対するデータパスの選択切り換えのモードの設定を行い、ＰＡＴＡデバイスＩ／Ｆ３０から入力された電子装置２からのデータを暗号化・復号化器３１によって暗号化してＳＡＴＡホストＩ／Ｆ３５からＳＡＴＡＨＤＤ３へ出力するように設定する第１の設定手段と、ＰＡＴＡデバイスＩ／Ｆ３０から入力された電子装置２からのデータを乱数発生器３２によって発生させた乱数に置き換えてＳＡＴＡホストＩ／Ｆ３５からＳＡＴＡＨＤＤ３へ出力するように設定する第２の設定手段と、ＳＡＴＡホストＩ／Ｆ３５から入力されたＳＡＴＡＨＤＤ３からの暗号化データを暗号化・復号化器３１によって復号化してＰＡＴＡデバイスＩ／Ｆ３０から電子装置２へ出力するように設定する第３の設定手段と、上記第１乃至第３の設定手段のいずれか一つの手段に設定させる手段の機能を果たす。
【００１７】
この実施例では、上記レジスタ３６へは、ＰＡＴＡデバイスＩ／Ｆ３０とは別のインタフェースを介して設定する場合を示しているが、ＰＡＴＡ、ＳＡＴＡの拡張コマンドを利用して電子装置２から上記レジスタ３６へのアクセスを行うことも可能であり、その場合、レジスタＩ／Ｆは不要になる。
【００１８】
電子装置２は、例えば、複数のクライアントコンピュータと、これらのクライアントコンピュータからの動作指令によって作動し、画像処理、画像出力、データ通信を含む複数のアプリケーション機能を有し、各アプリケーション機能がメモリ、ハードディスクを含む各部を共有資源として利用することができるように設計されている複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む画像形成装置やパーソナルコンピュータであり、マイクロコンピュータによって実現され、装置全体の制御を司るホストコントローラ２０と、レジスタＩ／Ｆ２１、ＰＡＴＡインタフェース２２を備えている。
【００１９】
この電子装置２は、ホストコントローラ２０からデータ変換装置１へデータの読み出し（リードコマンド）を出力し、データ変換装置１を介して外部記憶装置に記憶されている所望のデータを読み出して取得する。また、データの書き込み（ライトコマンド）と、その書き込むデータを出力し、データ変換装置１を介して外部記憶装置へデータを書き込む。また、その際、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６へ各種のモードと各種のパラメータの設定情報を出力する。
【００２０】
次に、このデータ変換装置１と電子装置２の動作について説明する。
まず、電子装置２は、自装置とＳＡＴＡＨＤＤ３との間にデータ変換装置１が装着されてＳＡＴＡＨＤＤ３が外部接続され、電子装置２及びＳＡＴＡＨＤＤ３の電源投入後、電子装置２の全体の制御を司るホストコントローラ２０ではデータ変換装置１のＡＳＩＣ１０がＨＤＤのように見えており、このホストコントローラ２０により、ＰＡＴＡデバイスＩ／Ｆ３０のコンフィグレーション（初期化）を行う。
【００２１】
データ変換装置１では、ＰＡＴＡデバイスＩ／Ｆ３０のコンフィグレーション（初期化）が終了するまで、暗号化・復号化器３１、乱数発生器３２、ＳＡＴＡホストＩ／Ｆ３５は停止状態にある。
さらに、電子装置２のレジスタＩ／Ｆ２１により、データ変換装置１のレジスタ３６に、暗号化・復号化器３１へのモードとパラメータ、第１セレクタ３３と第２セレクタ３４へのデータパスの切り換え選択のモード、又は乱数発生器３２へのモードとパラメータの設定を行うと共に、ホストコントローラ２０が、ＳＡＴＡホストＩ／Ｆ３５及びＳＡＴＡＨＤＤ３のコンフィグレーション（初期化）を行う。
【００２２】
データ変換装置１では、レジスタ３６にモードとパラメータが設定されると、それらの値に基づいて内部の各部への設定を行う。
図３は、図２に示すデータ変換装置１のＡＳＩＣ１０のモード又はパラメータの設定処理を示すフローチャート図である。
この処理は、ステップ（図中「Ｓ」で示す）１でレジスタに乱数消去モードが設定されたか否かを判断し、乱数消去モードの設定でなければ、ステップ２で暗号化モード・復号化モードか否かを判断する。
【００２３】
ステップ２の判断で暗号化モードあるいは復号化モードならば、ステップ３でセレクタに設定されたモードによって第１セレクタを暗号化モードあるいは復号化モードに設定する。ここで、暗号化モードの設定は、ＰＡＴＡデバイスＩ／Ｆから入力された電子装置２からのデータを暗号化・復号化器によって暗号化してＳＡＴＡホストＩ／ＦからＳＡＴＡＨＤＤへ出力するようにデータパスを選択して切り換える設定の第１の設定であり、復号化モードの設定は、ＳＡＴＡホストＩ／Ｆから入力されたＳＡＴＡＨＤＤからの暗号化データを暗号化・復号化器によって復号化してＰＡＴＡデバイスＩ／Ｆから電子装置へ出力するようにデータパスを選択して切り換える設定の第３の設定手段である。
【００２４】
ステップ４では、セレクタに設定されたモードによって乱数発生器と第２セレクタを非乱数書込モードに設定する。この非乱数書込モードの設定は、乱数発生器に対しては乱数を発生させないようにする設定であり、第２セレクタに対しては第１セレクタから出力されるデータをそのままＳＡＴＡホストＩ／Ｆへ出力するように切り換える設定である。
【００２５】
ステップ５では、セレクタに設定されたパラメータによって暗号化・復号化器に動作（演算）モードを設定する。この動作モードは、暗号化あるいは復号化の種類を示すモードであり、例えば、電子コードブロックモード（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅ  Ｂｌｏｃｋ：ＥＣＢ）は、基本的な暗号化及び復号化モードであり、データを単純に予め決められたブロック長毎に秘密鍵で暗号化及び復号化する動作モードである。また、暗号ブロック連鎖モード（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ：ＣＢＣ）は、一つ前の暗号化されたブロックと次のこれから暗号化するブロックをＸＯＲ演算し、その演算結果を秘密鍵を用いて暗号化し、その暗号化されたデータを復号化する動作モードである。なお、最初のブロックについては、一つ前のブロックが存在しないので、初期ベクタ（「初期ベクトル」ともいう）に基づいてＸＯＲ演算する。
【００２６】
ステップ６では、セレクタに設定されたパラメータによって暗号化・復号化器に暗号化又は復号化に用いる秘密鍵の鍵長を設定する。その鍵長は、例えば、１２８ビット、１９２ビット、２５６ビットを含む各種の長さがある。
ステップ７では、セレクタに設定されたパラメータによって暗号化・復号化器に秘密鍵の値を設定する。
ステップ８では、セレクタに設定されたパラメータによって暗号化・復号化器に初期ベクタを設定する。この処理は、暗号化・復号化器にＣＢＣモードで暗号化又は復号化を行わせるときに行う。
【００２７】
一方、ステップ１の判断で乱数消去モードならば、ステップ９で第１セクタをスルーモードに設定する。このスルーモードの設定は、ＰＡＴＡデバイスＩ／Ｆから入力された電子装置からのデータをそのまま第２セレクタへ出力するようにデータパスを選択して切り換える設定である。
ステップ１０では、セレクタに設定されたモードによって乱数発生器と第２セレクタを乱数書込モードに設定する。この乱数書込モードの設定は、乱数発生器に対しては、乱数を発生して第２セレクタへ出力するように動作させる設定であり、第２セレクタに対しては第１セレクタから出力されるデータを乱数発生器から出力される乱数に置き換えてＳＡＴＡホストＩ／Ｆへ出力するように切り換える設定である。
ステップ１１では、セレクタに設定されたパラメータによって乱数発生器に乱数発生の際に用いる初期ベクタの値を設定する。
【００２８】
また一方、ステップ２の判断で暗号化モードでも復号化モードでもなければ、ステップ１２でセレクタに設定されたモードによって第１セレクタをスルーモードに設定する。このスルーモードの設定は、ＰＡＴＡデバイスＩ／Ｆから入力された電子装置からのデータをそのまま第２セレクタへ出力するようにデータパスを選択して切り換える設定である。
ステップ１３では、セレクタの設定によって乱数発生器と第２セレクタを非乱数書込モードに設定する。この非乱数書込モードの設定は、乱数発生器に対しては乱数を発生させないように動作させる設定であり、第２セレクタに対しては第１セレクタから入力したデータをそのままＳＡＴＡホストＩ／Ｆへ出力するように切り換える設定である。
このようにして、上述の処理を終えると、データ変換装置の初期設定が終了する。
【００２９】
次に、電子装置２のデータをデータ変換装置１によって暗号化してＳＡＴＡＨＤＤ３に書き込むときの処理について説明する。
電子装置２は、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０の初期化を行い、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６に、暗号化モードと、暗号化の種類のモード（例えば、ＣＢＣモード、ＥＣＢモード）、暗号化の際の鍵長（暗号鍵の長さ）のパラメータ、秘密鍵（暗号鍵）のパラメータ、初期ベクタのパラメータを書き込んで設定する。
【００３０】
データ変換装置１は、レジスタ３６に設定されたモードとパラメータに基づいて、第１セレクタ３３を暗号化モードに設定し、乱数発生器３２と第２セレクタ３４を非乱数書込モードに設定し、暗号化・復号化器３１に暗号化の種類のモード（例えば、ＥＣＢモードあるいはＣＢＣモード）と、暗号化の鍵長と、暗号化の秘密鍵と、ＣＢＣモードの場合は初期ベクタを設定する。
【００３１】
そして、上記設定終了後、電子装置２のホストコントローラ２０からデータ変換装置１へデータを出力すると、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０によってデータを入力し、そのデータを暗号化・復号化器３１によって暗号化し、第１セレクタ３３と第２セレクタ３４を通ってＳＡＴＡホストＩ／Ｆ３５へ出力し、ＳＡＴＡホストＩ／Ｆ３５からＳＡＴＡＨＤＤ３へ出力して、ＳＡＴＡＨＤＤ３に暗号化されたデータが書き込まれる。
このようにして、電子装置２に対して容易にデータの暗号化の機能を提供することができる。
【００３２】
次に、ＳＡＴＡＨＤＤ３に記憶されている暗号化データをデータ変換装置１によって復号化して電子装置２へ読み出すときの処理について説明する。
電子装置２は、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０の初期化を行い、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６に、復号化モードと、暗号化の種類のモード（例えば、ＣＢＣモード、ＥＣＢモード）、暗号化の際の鍵長（暗号鍵の長さ）のパラメータ、秘密鍵（暗号鍵）のパラメータ、初期ベクタのパラメータを書き込んで設定する。
【００３３】
データ変換装置１は、レジスタ３６に設定されたモードとパラメータに基づいて、第１セレクタ３３を復号化モードに設定し、乱数発生器３２と第２セレクタ３４を非乱数書込モードに設定し、暗号化・復号化器３１に暗号化の種類のモード（例えば、ＥＣＢモードあるいはＣＢＣモード）と、暗号化の鍵長と、暗号化の秘密鍵と、ＣＢＣモードの場合は初期ベクタを設定する。
【００３４】
そして、上記設定終了後、電子装置２のホストコントローラ２０から発行されたリードコマンドに応じてＳＡＴＡＨＤＤ３から暗号化データが読み出されて、データ変換装置１へ出力されると、データ変換装置１のＳＡＴＡホストＩ／Ｆ３５よって暗号化データを入力し、そのデータを第２セレクタ３４はそのまま第１セレクタ３３へ出力し、第１セレクタ３３もそのまま暗号化・復号化器３１へ出力し、暗号化・復号化器３１によって復号化し、ＰＡＴＡデバイスＩ／Ｆ３０を介して電子装置２へ送られる。
このようにして、電子装置２に対して容易に暗号化データの復号化の機能を提供することができる。
【００３５】
次に、電子装置２とＳＡＴＡＨＤＤ３との間でデータに暗号化又は復号化せずにそのまま書き込み、読み出すときの処理について説明する。
電子装置２は、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０の初期化を行い、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６に、スルーモードと、非乱数書込モードを書き込んで設定する。
データ変換装置１は、レジスタ３６に設定されたモードに基づいて、第１セレクタ３３をスルーモードに設定し、乱数発生器３２と第２セレクタ３４を非乱数書込モードに設定する。
【００３６】
そして、上記設定終了後、電子装置２のホストコントローラ２０からデータ変換装置１へデータを出力すると、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０によってデータを入力し、そのデータを第１セレクタ３３と第２セレクタ３４を通してＳＡＴＡホストＩ／Ｆ３５へ出力し、ＳＡＴＡホストＩ／Ｆ３５からＳＡＴＡＨＤＤ３へ出力して、ＳＡＴＡＨＤＤ３にデータがそのまま書き込まれる。
また、電子装置２のホストコントローラ２０から発行されたリードコマンドに応じてＳＡＴＡＨＤＤ３からデータが読み出されて、データ変換装置１へ出力されると、データ変換装置１のＳＡＴＡホストＩ／Ｆ３５によってデータを入力し、そのデータを第２セレクタ３４はそのまま第１セレクタ３３へ出力し、第１セレクタ３３もそのままＰＡＴＡデバイスＩ／Ｆ３０へ出力し、ＳＡＴＡＨＤＤ３から読み出したデータをＰＡＴＡデバイスＩ／Ｆ３０を介してそのまま電子装置２へ送る。
【００３７】
次に、ＳＡＴＡＨＤＤ３に記憶されているデータに乱数を上書きして消去するときの処理について説明する。
電子装置２は、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０の初期化を行い、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６に、スルーモードと、乱数書込モードと、乱数発生のための初期ベクタのパラメータを書き込んで設定する。
データ変換装置１は、レジスタ３６に設定されたモードに基づいて、第１セレクタ３３をスルーモードに設定し、乱数発生器３２と第２セレクタ３４を乱数書込モードに設定し、乱数発生器に初期ベクタのパラメータを設定する。
【００３８】
そして、上記設定終了後、電子装置２のホストコントローラ２０からデータ変換装置１へデータを出力すると、データ変換装置１のＰＡＴＡデバイスＩ／Ｆ３０によってデータを入力し、そのデータを第１セレクタ３３を介して第２セレクタ３４へ出力する。第２セレクタ３４へは乱数発生器３２によって発生された乱数が出力されるので、第２セレクタ３４は、第１セレクタ３３から入力したデータを乱数発生器３２から入力した乱数に置き換えてＳＡＴＡホストＩ／Ｆ３５へ出力し、ＳＡＴＡホストＩ／Ｆ３５からＳＡＴＡＨＤＤ３へデータを出力して、ＳＡＴＡＨＤＤ３の消去すべきデータに乱数のデータを上書きすることによってデータ消去する。
このようにして、電子装置２に対して容易に乱数によるデータ消去の機能を提供することができる。
【００３９】
次に、ＳＡＴＡＨＤＤ３に記録されたデータを読み出す場合、読み出しの開始位置と長さは一定ではなく、ひとつのファイルの一部分だけを読み出すケースもある。
したがって、ファイルをひとかたまりとして暗号化してしまうと、暗号化のモードによっては、一部分だけを取り出す場合でも、それより前のデータをすべて復号化しなければならない場合がある。
これでは、ファイルの後端になればなるほど復号化にかかる時間が長くなるという、不都合が生じることになる。
【００４０】
そこで、これを防止するために、上記暗号化と上記復号化を予め設定したデータ単位毎にするとよい。例えば、セクタと呼ばれる外部記憶装置の最小記録単位（例えば、ハードディスク装置なら５１２バイト）をひとかたまりとして暗号化、復号化するとよい。
図４は、セクタ単位で暗号化するときのデータの流れを示す説明図である。
同図に示すように、電子装置２から第１セクタ、第２セクタ、第３セクタ、……のようにセクタ単位で送られるデータ５０をＰＡＴＡデバイスＩ／Ｆ３０で入力すると、暗号化・復号化器３１の暗号化器３１ａによって各セクタ毎に暗号化し、ＳＡＴＡホストＩ／Ｆ３５を介してＳＡＴＡＨＤＤ３へ第１セクタ、第２セクタ、第３セクタ、……のようにセクタ単位で暗号化された暗号化データ５１を書き込む。
【００４１】
図５は、セクタ単位で暗号化された暗号化データを復号化するときのデータの流れを示す説明図である。
同図に示すように、ＳＡＴＡＨＤＤ３から第１セクタ、第２セクタ、第３セクタ、……のようにセクタ単位で読み出された暗号化データ５１をＳＡＴＡホストＩ／Ｆ３５で入力すると、暗号化・復号化器３１の復号化器３１ｂによって各セクタ毎に復号化し、ＰＡＴＡデバイスＩ／Ｆ３０を介して電子装置２へ第１セクタ、第２セクタ、第３セクタ、……のようにセクタ単位で復号化されたデータ５０を送る。
このようにして、読み出したい部分のデータを短時間で復号化することができる。
また、暗号化されたデータを読み出す際に、任意の位置のデータを読み出すためにファイルを先頭から読み出さなければならないといった無駄な処理時間を削減できる。
さらに、ファイル中の任意の位置から必要な分だけのリードが可能となる。
【００４２】
上述の実施例では、データ変換装置１に電子装置との接続インタフェースとしてＰＡＴＡインタフェースを、外部記憶装置であるＳＡＴＡＨＤＤ３との接続インタフェースとしてＳＡＴＡインタフェースを設けた場合を説明したが、図６に示すように、ＰＡＴＡデバイスＩ／Ｆ３０とＰＡＴＡホストＩ／Ｆ３７を設けたＡＳＩＣ４０と、ＰＡＴＡコネクタ１１とＰＡＴＡコネクタ１３をそれぞれ設けたデータ変換装置６にすれば、ＰＡＴＡインタフェースを備えたＰＡＴＡＨＤＤ７を接続した場合に電子装置２へ上述の機能を提供することができる。
【００４３】
また、図７に示すように、ＳＡＴＡデバイスＩ／Ｆ３８とＰＡＴＡホストＩ／Ｆ３７を設けたＡＳＩＣ４１と、ＳＡＴＡコネクタ１４とＰＡＴＡコネクタ１３をそれぞれ設けたデータ変換装置８にすれば、ＰＡＴＡインタフェースを備えたＰＡＴＡＨＤＤ７を接続した場合に電子装置２へ上述の機能を提供することができる。
あるいはまた、図８に示すように、ＳＡＴＡデバイスＩ／Ｆ３８とＰＡＴＡホストＩ／Ｆ３５を設けたＡＳＩＣ４２と、ＳＡＴＡコネクタ１４とＳＡＴＡコネクタ１２をそれぞれ設けたデータ変換装置９にすれば、ＳＡＴＡインタフェースを備えたＳＡＴＡＨＤＤ３を接続した場合に電子装置２へ上述の機能を提供することができる。
【００４４】
上述の実施例では、外部記憶装置としてＨＤＤを接続する場合について説明したが、フレキシブルディスク、ＭＯを含む記録媒体に対するデータの読み書きを行う記録装置や、ＣＤ、ＤＶＤを含む各種の光ディスクに対するデータの読み書きを行う光ディスク装置を接続するようにしても、上述の機能を上述と同様にして提供することができる。
また、ＳＤカードを含む不揮発性メモリカードに対するデータの読み書きを行うメモリカードインタフェースを設けるようにしても上述の機能を上述と同様にして提供することができる。
【００４５】
図９は、図２に示すデータ変換装置のさらにまた他の構成例を示すブロック図であり、図１，図６〜図８と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置７０では、上述のデータ変換装置における外部記憶装置側のインタフェースに代えて、ＳＤカードを含むメモリカード６０を装着し、メモリカード６０に対するデータの読み書きを行うメモリカードインタフェース３９を設けたＡＳＩＣ４４を備えており、上述と同様にして、電子装置とメモリカードとの間のデータ変換と暗号化と複合化を含む所定の処理を施す。
なお、同図では、電子装置側のインタフェースがＰＡＴＡデバイスＩ／Ｆの場合を示しているが、ＳＡＴＡデバイスＩ／Ｆの場合でも、上述と同様に実施することができる。
【００４６】
このようにして、上記実施例のデータ変換装置は、電子装置と外部記憶装置のそれぞれの既存インタフェースであるパラレルＡＴＡインタフェース又はシリアルＡＴＡインタフェースを含む各種インタフェースとの間、又は電子装置と不揮発性メモリカードとの間に介在してセキュリティ機能を、新たなオプションスロットを要せず、容易に追加することができる。また、セキュリティ機能をハードウェアで提供することによって電子装置のＣＰＵに負担をかけずに実現することができる。
また、パラレルＡＴＡインタフェースとシリアルＡＴＡインタフェースの変換機能、パラレルＡＴＡインタフェースとメモリカードインタフェースの変換機能、シリアルＡＴＡインタフェースとメモリカードインタフェースの変換機能も提供することで、装着できる外部記憶装置とメモリカードの選択肢が広がる。
【００４７】
また、データを最小記録単位で暗号化又は復号化することにより、暗号化されたデータのランダムリードアクセスでの復号化のオーバーヘッドを最小限に抑えることができる。
さらに、画像形成装置を含む電子装置に、上述したＡＳＩＣを搭載することにより、画像データや通信データ、アドレス帳などの機密情報を、装置の生産性を落とすことなくハードディスク、光ディスク、メモリカードに暗号化して保存することが可能であり、不要になったデータは乱数による上書き消去を行うことでデータの安全性／機密性を高めることができる。
【００４８】
また、上述のようなセキュリティ機能を持たない電子装置に対して機能追加が容易になるため、既存ユーザに対して装置全体を置き換えることなく、上記ＡＳＩＣを追加実装し、ソフトウェアを書き換えることで対応が可能になる。
さらに、上述したＡＳＩＣを搭載することにより、ＤＶＤ、ＣＤを含むリムーバブルメディアに記録された画像データや通信データ、アドレス帳を含む機密情報を、装置の生産性を落とすことなくハードディスクに暗号化して保存することが可能になる。
また、上述のデータ変換装置を外部記憶装置側に設けるようにしても良い。
【００４９】
次に、この発明の他の実施例について説明する。
この実施例では、上述した実施例のデータ変換装置に、さらにデータ再送機能を設けている。
このデータ再送機能は、電子装置と外部記憶装置又は電子装置とメモリカードとの間のデータ転送時にデータ転送エラーが発生した場合、電子装置、外部記憶装置又はメモリカードからデータを再送せずに済むように、データ変換装置が電子装置と外部記憶装置又は電子装置とメモリカードとの間で転送されるデータを一時的に保持し、データ転送エラーが発生したときに再送するものである。また、このデータの再送を所定回数あるいは所定条件を満たすまで繰り返すリトライ動作を含むようにしても良い。
【００５０】
ここでは、図１に示したデータ変換装置に、上述したデータ再送機能を実現する構成を設けた場合の例について説明する。
図１０は、この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図であり、図１と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置７１は、図１に示したデータ変換装置に新たに、第３セレクタ８０，第４セレクタ８１，第５セレクタ８２，コマンド処理回路８３，第６セレクタ８４，第１バッファメモリ８５，第２バッファメモリ８６を設けたＡＳＩＣ４４を備えている。
【００５１】
まず、第１セレクタ３３が、上述のものとは若干機能が異なり、レジスタ３６の設定により、第１バッファメモリ８５、第２バッファメモリ８６、又はコマンド処理回路８３から入力したデータのいずれか一方を選択して出力するように切り換える。また、第２セレクタ３４から入力したデータを第１バッファメモリ８５、又は第２バッファメモリ８６の一方を選択して出力するように切り換える。
また、レジスタ３６は、上述した機能の他に、第３セレクタ８０、第４セレクタ８１、第５セレクタ８２、第６セレクタ５３に対するデータパスの選択切り換えのモードの設定を行う手段の機能も果たす。
【００５２】
第３セレクタ８０は、レジスタ３６の設定により、ＰＡＴＡデバイスＩ／Ｆ３０、第４セレクタ８１、又はコマンド処理回路８３から入力したデータのいずれか一方を選択して出力するように切り換える。
第４セレクタ８１は、レジスタ３６の設定により、第３セレクタ８０、第５セレクタ８２、又は暗号化・復号化器３１から入力したデータのいずれか一方を選択して出力するように切り換える。
第５セレクタ８２は、レジスタ３６の設定により、第４セレクタ８１、暗号化・復号化器３１、又は第６セレクタ８４から入力したデータのいずれか一方を選択して出力するように切り換える。
【００５３】
コマンド処理回路８３は、電子装置２から受信したコマンドに基づいてＳＡＴＡＨＤＤ３に出力するコマンドを作成して出力する。
第６セレクタ８４は、レジスタ３６の設定により、第５セレクタ８２から入力したデータを第１バッファメモリ８５、又は第２バッファメモリ８６のいずれか一方を選択して出力するように切り換える。また、第１バッファメモリ８５、又は第２バッファメモリ８６から入力したデータを第５セレクタ８２へ出力する。
第１バッファメモリ８５と第２バッファメモリ８６は、例えば、それぞれ１２８セクタ分のデータを格納できるだけの容量を持ち、電子装置２とＳＡＴＡＨＤＤ３との間で転送されるデータを一時的に保持する複数個のバッファメモリである。
【００５４】
また、この実施例での電子装置２は、ＳＡＴＡＨＤＤ３に記憶されている所望のデータを読み出しと、ＳＡＴＡＨＤＤ３に対するデータの書き込みの際、レジスタＩ／Ｆ２１によってデータ変換装置１のレジスタ３６へ、第１セレクタ３３、第３セレクタ８０、第４セレクタ８１、第５セレクタ８２、第６セレクタ８４への各種のモードと各種のパラメータの設定情報も出力する。
【００５５】
次に、この実施例のデータ変換装置７１のデータ読み出し時の動作について説明する。
まず、ＳＡＴＡＨＤＤ３から１２９セクタ以上２５６セクタ以下のデータを読み出すときの処理を説明する。
［フェーズａ１］
電子装置２のホストコントローラ２０がＳＡＴＡＨＤＤ３に記憶されているＮ（Ｎ＞１２８）セクタのデータのリードコマンドをデータ変換装置７１へ発行（出力）すると、データ変換装置７１はＰＡＴＡデバイスＩ／Ｆ３０によって受信し、第３セレクタ８０を介してコマンド処理回路８３へ送る。
【００５６】
［フェーズａ２］
コマンド処理回路８３は、Ｎセクタのリードコマンドのうち、前半の１２８セクタ分のリードコマンドを作成し、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行（出力）する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３から前半の１２８セクタ分のリードコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の１２８セクタ分のリードコマンドの再送を実行する。
【００５７】
［フェーズａ３］
ＳＡＴＡＨＤＤ３は、データ変換装置７１から上記前半の１２８セクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置７１へ返送する。
データ変換装置７１は、ＳＡＴＡホストＩ／Ｆ３５によってＳＡＴＡＨＤＤ３から返送される前半の１２８セクタ分のデータを受信すると、第１セレクタ３３は第１バッファメモリ８５へのパスに切り換え、上記受信したデータを第２セレクタ３４と第１セレクタ３３を介して第１バッファメモリ８５へ格納する。
ここで、ＳＡＴＡＨＤＤ３からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズａ２からの処理を予め設定したリトライ回数まで繰り返し、ＳＡＴＡＨＤＤ３からデータを取得する。
【００５８】
［フェーズａ４］
データ変換装置７１は、第１バッファメモリ８５に上記前半の１２８セクタ分のデータを格納すると、コマンド処理回路８３が、Ｎセクタのリードコマンドのうち、残りの後半のＮ−１２８セクタ分のリードコマンドを作成し、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３から後半のＮ−１２８セクタ分のリードコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで後半のＮ−１２８セクタ分のリードコマンドの再送を実行する。
【００５９】
［フェーズａ５］
ＳＡＴＡＨＤＤ３は、データ変換装置７１から上記後半のＮ−１２８セクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置７１へ返送する。
データ変換装置７１は、ＳＡＴＡホストＩ／Ｆ３５によってＳＡＴＡＨＤＤ３から返送される後半のＮ−１２８セクタ分のデータを受信すると、第１セレクタ３３は第２バッファメモリ８６へのパスに切り換え、上記受信したデータを第２セレクタ３４と第１セレクタ３３を介して第２バッファメモリ８６へ格納する。
ここで、ＳＡＴＡＨＤＤ３からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズａ４からの処理を予め設定したリトライ回数まで繰り返し、ＳＡＴＡＨＤＤ３からデータを取得する。
【００６０】
［フェーズａ６］
データ変換装置７１は、第１バッファメモリ８５と第２バッファメモリ８６にそれぞれ正しいデータが格納され、上記電子装置２からのリードコマンドに基づくＮセクタのデータを保持すると、第６セレクタ８４を含む各セレクタの切り換えと、暗号化されたデータの場合は上述の実施例と同様にして暗号化・復号化部３１で復号化し、そのままのデータはそのままで、第１バッファメモリ８５に格納されたデータを先に、第２バッファメモリ８６に格納されたデータを後にそれぞれ順に電子装置２へ出力する。
【００６１】
次に、ＳＡＴＡＨＤＤ３から１２８セクタ以下のデータを読み出すときの処理を説明する。
［フェーズｂ１］
電子装置２のホストコントローラ２０がＳＡＴＡＨＤＤ３に記憶されているＮ（Ｎ≦１２８）セクタのデータのリードコマンドをデータ変換装置７１へ発行（出力）すると、データ変換装置７１はＰＡＴＡデバイスＩ／Ｆ３０によって受信し、第３セレクタ８０を介してコマンド処理回路８３へ送る。
【００６２】
［フェーズｂ２］
コマンド処理回路８３は、Ｎセクタのリードコマンドを、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３からＮセクタ分のリードコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までＮ分のリードコマンドの再送を実行する。
【００６３】
［フェーズｂ３］
ＳＡＴＡＨＤＤ３は、データ変換装置７１からＮセクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置７１へ返送する。
データ変換装置７１は、ＳＡＴＡホストＩ／Ｆ３５によってＳＡＴＡＨＤＤ３から返送されるＮセクタ分のデータを受信すると、第１セレクタ３３は第１バッファメモリ８５へのパスに切り換え、上記受信したデータを第２セレクタ３４と第１セレクタ３３を介して第１バッファメモリ８５へ格納する。
ここで、ＳＡＴＡＨＤＤ３からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズｂ２からの処理を予め設定したリトライ回数まで繰り返し、ＳＡＴＡＨＤＤ３からデータを取得する。
【００６４】
［フェーズｂ４］
データ変換装置７１は、第１バッファメモリ８５に正しいデータが格納され、上記電子装置２からのリードコマンドに基づくＮセクタのデータを保持すると、第６セレクタ８４を含む各セレクタの切り換えと、暗号化されたデータの場合は上述の実施例と同様にして暗号化・復号化部３１で復号化し、そのままのデータはそのままで、第１バッファメモリ８５に格納されたデータを電子装置２へ出力する。
【００６５】
次に、この実施例のデータ変換装置７１のデータ書き込み時の動作について説明する。
まず、ＳＡＴＡＨＤＤ３に１２９セクタ以上のデータを書き込むときの処理を説明する。
［フェーズｃ１］
電子装置２のホストコントローラ２０がＳＡＴＡＨＤＤ３に対するＮ（Ｎ＞１２８）セクタのデータのライトコマンドをデータ変換装置７１へ発行（出力）すると、データ変換装置７１はＰＡＴＡデバイスＩ／Ｆ３０によって受信し、第３セレクタ８０を介してコマンド処理回路８３へ送る。
【００６６】
［フェーズｃ２］
コマンド処理回路８３は、Ｎセクタのライトコマンドのうち、前半の１２８セクタ分のライトコマンドを作成し、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行（出力）する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３から前半の１２８セクタ分のライトコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の１２８セクタ分のライトコマンドの再送を実行する。
【００６７】
上記処理と並行して、電子装置２から送信されるデータを受信し、暗号化する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データを暗号化・復号化器３１へデータを出力し、上述の実施例と同様にして暗号化・復号化器３１で暗号化して第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第１バッファメモリ８５へ前半の１２８セクタ分のデータを格納する。また、データをそのまま記憶する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データをそのまま第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第１バッファメモリ８５へ前半の１２８セクタ分のデータを格納する。
【００６８】
［フェーズｃ３］
ＳＡＴＡＨＤＤ３は、データ変換装置７１から上記前半の１２８セクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置７１は、上記前半の１２８セクタ分のライトコマンドの発行が成功したら、第１バッファメモリ８５に格納された１２８セクタ分のデータを第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ出力する。ＳＡＴＡホストＩ／Ｆ３５は、そのデータをＳＡＴＡＨＤＤ３へ出力する。
ここで、ＳＡＴＡＨＤＤ３へのデータ送信が成功した場合はフェーズｃ６へ移行し、ＳＡＴＡＨＤＤ３へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズｃ４へ移行する。
【００６９】
上記処理と並行して、電子装置２から送信されるデータを受信し、暗号化する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データを暗号化・復号化器３１へデータを出力し、上述の実施例と同様にして暗号化・復号化器３１で暗号化して第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第２バッファメモリ８６へ後半のＮ−１２８セクタ分のデータを格納する。また、データをそのまま記憶する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データをそのまま第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第２バッファメモリ８６へ後半のＮ−１２８セクタ分のデータを格納する。
【００７０】
［フェーズｃ４］
コマンド処理回路８３は、上記前半の１２８セクタ分のライトコマンドを、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３から前半の１２８セクタ分のライトコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の１２８セクタ分のライトコマンドの再送を実行し、ＳＡＴＡＨＤＤ３へコマンドが正しく発行できたら、フェーズｃ５へ移行する。
また、データ変換装置７１は、この間は電子装置２のホストコントローラ２０からの新規のコマンドを受け付けないようにする。
【００７１】
［フェーズｃ５］
ＳＡＴＡホストＩ／Ｆ３５は、第１バッファメモリ８５に格納された前半の１２８セクタ分のデータをＳＡＴＡＨＤＤ３へ出力し、その出力が成功した場合はフェーズｃ６へ移行し、その出力に失敗した場合は、上記フェーズｃ４からの処理を予め設定したリトライ回数まで繰り返し、ＳＡＴＡＨＤＤ３へデータを出力する。
また、データ変換装置１は、この間は電子装置２のホストコントローラ２０からの新規のコマンドを受け付けないようにする。
【００７２】
［フェーズｃ６］
データ変換装置７１は、ＳＡＴＡＨＤＤ３への第１バッファメモリ８５の上記前半の１２８セクタ分のデータ出力を成功すると、コマンド処理回路８３が、Ｎセクタのライトコマンドのうち、残りの後半のＮ−１２８セクタ分のライトコマンドを作成し、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３から後半の１２８セクタ分のライトコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで後半の１２８セクタ分のライトコマンドの再送を実行する。
また、データ変換装置７１は、この間は電子装置２のホストコントローラ２０からの新規のコマンドを受け付けないようにする。
【００７３】
［フェーズｃ７］
ＳＡＴＡＨＤＤ３は、データ変換装置７１から上記後半のＮ−１２８セクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置７１は、上記後半のＮ−１２８セクタ分のライトコマンドの発行が成功したら、第２バッファメモリ８６に格納されたＮ−１２８セクタ分のデータを第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ出力する。ＳＡＴＡホストＩ／Ｆ３５は、そのデータをＳＡＴＡＨＤＤ３へ出力する。
ここで、ＳＡＴＡＨＤＤ３へのデータ送信が成功した場合は電子装置２からのライトコマンドが正常終了したことになるので、電子装置２からの新規のコマンドの受付を可能にする。
一方、ＳＡＴＡＨＤＤ３へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズｃ６へ戻って処理を繰り返し、その間は、電子装置２からの新規のコマンドを受け付けないようにする。
【００７４】
次に、ＳＡＴＡＨＤＤ３に１２８セクタ以下のデータを書き込むときの処理を説明する。
［フェーズｄ１］
電子装置２のホストコントローラ２０がＳＡＴＡＨＤＤ３に対するＮ（Ｎ≦１２８）セクタのデータのライトコマンドをデータ変換装置７１へ発行（出力）すると、データ変換装置７１はＰＡＴＡデバイスＩ／Ｆ３０によって受信し、第３セレクタ８０を介してコマンド処理回路８３へ送る。
【００７５】
［フェーズｄ２］
コマンド処理回路８３は、Ｎセクタのライトコマンドを、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行（出力）する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３からライトコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までＮセクタ分のライトコマンドの再送を実行する。
【００７６】
上記処理と並行して、電子装置２から送信されるデータを受信し、暗号化する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データを暗号化・復号化器３１へデータを出力し、上述の実施例と同様にして暗号化・復号化器３１で暗号化して第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第１バッファメモリ８５へＮセクタ分のデータを格納する。また、データをそのまま記憶する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データをそのまま第５セレクタ８２へ出力し、第６セレクタ８４のパスを切り換えて第１バッファメモリ８５へＮセクタ分のデータを格納する。
【００７７】
［フェーズｄ３］
ＳＡＴＡＨＤＤ３は、データ変換装置７１から上記Ｎセクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置７１は、上記Ｎセクタ分のライトコマンドの発行が成功したら、第１バッファメモリ８５に格納されたＮセクタ分のデータを第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ出力する。ＳＡＴＡホストＩ／Ｆ３５は、そのデータをＳＡＴＡＨＤＤ３へ出力する。
ここで、ＳＡＴＡＨＤＤ３へのデータ送信が成功した場合は電子装置２からのライトコマンドが正常終了したことになるので、電子装置２からの新規のコマンドの受付を可能にする。
一方、ＳＡＴＡＨＤＤ３へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズｄ２へ戻って処理を繰り返し、その間は、電子装置２からの新規のコマンドを受け付けないようにする。
【００７８】
このように、電子装置２とＳＡＴＡＨＤＤ３との間に、システムが１度の転送で使用する最大サイズの容量のバッファメモリをデータ変換装置７１のＡＳＩＣ１０に搭載することにより、ＳＡＴＡＨＤＤ３との間で通信エラーがあった際に、電子装置２側からデータを再送処理する手間を省くことができる。
また、上記バッファメモリを比較的少ない容量の複数個のバッファメモリに分割して持つことにより、通信エラー時の再送にかかるオーバヘッドを低減することができる。
上記実施例では、１２８セクタ分の容量を持つ２個のバッファメモリを設けた場合の構成を説明したが、例えば、６４セクタ分の容量を持つ４個のバッファメモリを設けるようにしても上述と同様にして実施することができる。
【００７９】
次に、この発明のまた他の実施例について説明する。
この実施例では、上述した実施例のデータ再送機能を設けたデータ変換装置について、複数個のバッファメモリを１つのバッファメモリで実現する場合のデータ変換装置を説明する。
図１１は、この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図であり、図１０と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置７２では、上述の第６セレクタと第１バッファメモリ８５と第２バッファメモリ８６に代えて、第５セレクタ８２と第１セレクタ３３との間にバッファメモリ８７を設けたＡＳＩＣ４５を備えている。
ここで、例えば、ＳＡＴＡＨＤＤ３に１２８セクタ以下のデータを書き込むときの処理を説明する。この場合、バッファメモリ８７の容量は１２８セクタ分有ればよい。
【００８０】
［フェーズｅ１］
電子装置２のホストコントローラ２０がＳＡＴＡＨＤＤ３に対するＮ（Ｎ≦１２８）セクタのデータのライトコマンドをデータ変換装置７２へ発行（出力）すると、データ変換装置７２はＰＡＴＡデバイスＩ／Ｆ３０によって受信し、第３セレクタ８０を介してコマンド処理回路８３へ送る。
【００８１】
［フェーズｅ２］
コマンド処理回路８３は、Ｎセクタのライトコマンドを、第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ発行（出力）する。
ＳＡＴＡホストＩ／Ｆ３５は、コマンド処理回路８３からライトコマンドを受信すると、ＳＡＴＡＨＤＤ３へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までＮセクタ分のライトコマンドの再送を実行する。
【００８２】
上記処理と並行して、電子装置２から送信されるデータを受信し、暗号化する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データを暗号化・復号化器３１へデータを出力し、上述の実施例と同様にして暗号化・復号化器３１で暗号化して第５セレクタ８２へ出力し、バッファメモリ８７へＮセクタ分のデータを格納する。また、データをそのまま記憶する場合は、第３セレクタ８０と第４セレクタ８１のパスを切り換え、データをそのまま第５セレクタ８２へ出力し、バッファメモリ８７へＮセクタ分のデータを格納する。
【００８３】
［フェーズｅ３］
ＳＡＴＡＨＤＤ３は、データ変換装置１から上記Ｎセクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置７２は、上記Ｎセクタ分のライトコマンドの発行が成功したら、バッファメモリ８７に格納されたＮセクタ分のデータを第１セレクタ３３と第２セレクタ３４を介してＳＡＴＡホストＩ／Ｆ３５へ出力する。ＳＡＴＡホストＩ／Ｆ３５は、そのデータをＳＡＴＡＨＤＤ３へ出力する。
ここで、ＳＡＴＡＨＤＤ３へのデータ送信が成功した場合は電子装置２からのライトコマンドが正常終了したことになるので、電子装置２からの新規のコマンドの受付を可能にする。
一方、ＳＡＴＡＨＤＤ３へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズｅ２へ戻って処理を繰り返し、その間は、電子装置２からの新規のコマンドを受け付けないようにする。
【００８４】
また、ＳＡＴＡＨＤＤ３からのデータの読み出しについても、上述のバッファメモリ８７の容量を、電子装置２が一度のデータ転送に要する容量にすれば、その容量に応じて１２８セクタ以上のデータを扱うことができる。
【００８５】
例えば、上述したＳＡＴＡＨＤＤ３へ１２９セクタ以上のデータを書き込む場合、バッファメモリを２個設けたデータ変換装置の場合とバッファメモリを１個設けたデータ変換装置の場合とを比較検討してみる。
例えば、２５６セクタ分のデータ転送を考えてみる。
ＳＡＴＡＩ／Ｆ上で１２８セクタ分のデータ転送時におけるエラー発生率を１０−１２と仮定すると、２５６セクタのデータ転送の場合、エラーの発生確率は２倍の１０−１１と考えられる。
さらに、２５６セクタのデータ転送の間に１回、エラーが発生した場合に再送しなければならないデータサイズは、バッファメモリを２個設けた場合では１２８セクタ、バッファメモリを１個設けた場合では２５６セクタとなり、１個設けた場合は２個設けた場合の２倍になる。
【００８６】
したがって、２５６セクタのデータを２つの１２８セクタのデータに分割して２回に分けてＳＡＴＡＩ／Ｆ上を転送した場合に、１回エラーが発生すると仮定すると、２５６セクタのデータを１回で転送した場合、エラーの発生頻度は、上記２回に分けて転送した場合の２倍と考えられる。
また、データ再送１回を含めた総転送データサイズは、バッファメモリを２個設けた場合で２５６＋１２８＝３８４セクタになるのに対し、バッファメモリを１個設けた場合では２５６×２＝５１２セクタとなる。
さらに、エラーの発生し易さを考慮すると、バッファメモリを１個設けた場合では２５６×３＝７６８セクタとなる。
【００８７】
このように、上述した実施例のデータ再送機能を設けたデータ変換装置によれば、ＳＡＴＡＨＤＤ３との間で通信エラーがあった際に、電子装置２側からデータを再送処理する手間を省くことができる。
なお、上述の説明では、図１に示したデータ変換装置にデータ再送機能を設けた場合について説明したが、図６〜図９に示したデータ変換装置についても同様にして実現することができる。
また、上述の実施例では、シリアルインタフェースとパラレルインタフェースとメモリカードインタフェースについて説明したが、この実施例のデータ変換装置は、ＩＥＥＥインタフェース、ＵＳＢインタフェースを含むインタフェース全般についても上述と同じように適用することができる。
【産業上の利用可能性】
【００８８】
この発明によるデータ変換装置、データ変換方法は、プリンタ，ファクシミリ装置，複写機，それらの複合機を含む画像処理装置と、デスクトップパソコン，ノートブックパソコン等のパーソナルコンピュータを含むデータ処理装置全般において適用することができる。
【図面の簡単な説明】
【００８９】
【図１】図２に示すデータ変換装置の機能構成を示すブロック図である。
【図２】この発明の一実施例であるデータ変換装置の外観斜視図である。
【図３】図２に示すデータ変換装置１のＡＳＩＣ１０のモード又はパラメータの設定処理を示すフローチャート図である。
【図４】図２に示すデータ変換装置におけるセクタ単位で暗号化するときのデータの流れを示す説明図である。
【００９０】
【図５】図２に示すデータ変換装置におけるセクタ単位で暗号化された暗号化データを復号化するときのデータの流れを示す説明図である。
【図６】図２に示すデータ変換装置の他の構成例を示すブロック図である。
【図７】図２に示すデータ変換装置のまた他の構成例を示すブロック図である。
【図８】図２に示すデータ変換装置のさらに他の構成例を示すブロック図である。
【００９１】
【図９】図２に示すデータ変換装置のさらにまた他の構成例を示すブロック図である。
【図１０】この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図である。
【図１１】この発明のまた他の実施例であるデータ変換装置の機能構成を示すブロック図である。
【符号の説明】
【００９２】
１，６，８，９，７０〜７２：データ変換装置    ２：電子装置    ３：ＳＡＴＡＨＤＤ    ４：ＰＡＴＡケーブル    ５：ＳＡＴＡケーブル    ７：ＰＡＴＡＨＤＤ    １０，４０〜４５：ＡＳＩＣ    １１，１３：ＰＡＴＡコネクタ    １２，１４：ＳＡＴＡコネクタ    １５：基板    ２０：ホストコントローラ    ２１：レジスタＩ／Ｆ    ２２：ＰＡＴＡインタフェース    ２３：ＳＡＴＡインタフェース    ３０：ＰＡＴＡデバイスＩ／Ｆ    ３１：暗号化・復号化器    ３２：乱数発生器    ３３：第１セレクタ    ３４：第２セレクタ    ３５：ＳＡＴＡホストＩ／Ｆ    ３６：レジスタ    ３７：ＰＡＴＡホストＩ／Ｆ    ３８：ＳＡＴＡデバイスＩ／Ｆ    ３９：メモリカードＩ／Ｆ    ６０：メモリカード    ８０：第３セレクタ    ８１：第４セレクタ    ８２：第５セレクタ    ８３：コマンド処理回路    ８４：第６セレクタ    ８５：第１バッファメモリ    ８６：第２バッファメモリ    ８７：バッファメモリ
【図１】
2008085986.tif 000003
【図２】
2008085986.tif 000004
【図３】
2008085986.tif 000005
【図４】
2008085986.tif 000006
【図５】
2008085986.tif 000007
【図６】
2008085986.tif 000008
【図７】
2008085986.tif 000009
【図８】
2008085986.tif 000010
【図９】
2008085986.tif 000011
【図１０】
2008085986.tif 000012
【図１１】
2008085986.tif 000013