JP2008085986A - データ変換装置と電子装置とデータ変換方法 - Google Patents

データ変換装置と電子装置とデータ変換方法 Download PDF

Info

Publication number
JP2008085986A
JP2008085986A JP2007161528A JP2007161528A JP2008085986A JP 2008085986 A JP2008085986 A JP 2008085986A JP 2007161528 A JP2007161528 A JP 2007161528A JP 2007161528 A JP2007161528 A JP 2007161528A JP 2008085986 A JP2008085986 A JP 2008085986A
Authority
JP
Japan
Prior art keywords
data
input
selector
output
data conversion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007161528A
Other languages
English (en)
Inventor
Toshio Takahashi
敏男 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007161528A priority Critical patent/JP2008085986A/ja
Priority to EP07114446A priority patent/EP1895441A1/en
Priority to US11/845,313 priority patent/US7511636B2/en
Priority to KR1020070086126A priority patent/KR20080021520A/ko
Priority to CN2007101471948A priority patent/CN101136979B/zh
Publication of JP2008085986A publication Critical patent/JP2008085986A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier

Abstract

【課題】 外部記憶装置を備えた電子装置で、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行できるようにする。
【解決手段】 レジスタ36の設定に基づいて、第1セレクタ33と第2セレクタ34と暗号化・復号化器31と乱数発生器32に対してモード又はパラメータを設定し、PATAデバイスI/F30から入力されたデータを暗号化・復号化器31によって暗号化してSATAホストI/F35から出力するように設定するか、PATAデバイスI/F30から入力されたデータを乱数発生器32によって発生させた乱数に置き換えてSATAホストI/F35から出力するように設定するか、SATAホストI/F35から入力された暗号化データを暗号化・復号化器31によって復号化してPATAデバイスI/F30から出力するように設定するかのいずれか一つの設定に切り換える。
【選択図】 図1

Description

この発明は、入力したデータを暗号化と複合化を含む各種の変換をして出力するデータ変換装置と、そのデータ変換装置を備えた複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む電子装置と、入力したデータを暗号化と複合化を含む各種の変換をして出力するデータ変換方法とに関する。
従来、パラレルインタフェース、シリアルインタフェース、又は不揮発性メモリカードインタフェースを含む各種のインタフェースで接続されるハードディスク装置を含む外部記憶装置又は光学記録装置を含む外部記録装置(以下、「外部記憶装置」にまとめて記述する)を搭載している複写機、印刷装置(プリンタ)、ファクシミリ装置、及びそれらの複合機(「マルチファンクションペリフェラル:MFP」とも称する)を含む電子装置に、例えば、外部記憶装置に書き込むデータの暗号化を行うデータセキュリティ機能を追加する場合、電子装置のコントローラボードの交換やソフトウェアによる暗号化・復号化機能の追加、電子装置の本体の拡張スロットにデータの暗号化・復号化を行うためのデバイスをオプションとして追加するなどの手段がとられてきた(例えば、特許文献1参照)。
特開2006−18428号公報
しかしながら、上述のような従来の技術の場合、例えば、ソフトウェアによる暗号化・復号化機能の追加の場合、ユーザサイドでの機能追加は可能であるが、電子装置のCPUへの負荷が非常に高くなってしまい、電子装置が持つ本来のデータ転送(出力)速度を達成できず、生産性が落ちることになるという問題があった。
そこで、電子装置に予め高性能なCPUを搭載することにより、上述のような生産性が落ちるのを防ぐことができるが、機能追加がなければ必要以上に高価なCPUを搭載していることになって、電子装置の製造コストが上昇するという問題が生じる。
また、電子装置の本体の拡張スロットにデータの暗号化・復号化を行うためのデバイスをオプションとして追加する場合も、ユーザサイドでの対応は可能であるが、他のオプションの装着によって空きスロットがなければ対応できないという物理的な制約を持っており、電子装置の構成によっては対応できなくなるという問題が生じる。
この発明は上記の点に鑑みてなされたものであり、外部記憶装置を備えた電子装置において、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行できるようにすることを目的とする。
この発明は上記の目的を達成するため、次のデータ変換装置と電子装置とデータ変換方法を提供する。
(1)第1の入出力手段と、第2の入出力手段と、暗号化手段と、復号化手段と、乱数発生手段を有し、上記第1の入出力手段から入力されたデータを上記暗号化手段によって暗号化して上記第2の入出力手段から出力するように設定する第1の設定手段と、上記第1の入出力手段から入力されたデータを上記乱数発生手段によって発生させた乱数に置き換えて上記第2の入出力手段から出力するように設定する第2の設定手段と、上記第2の入出力手段から入力された暗号化データを上記復号化手段によって復号化して上記第1の入出力手段から出力するように設定する第3の設定手段と、上記第1乃至第3の設定手段のいずれか一つの手段に設定させる手段を備えたデータ変換装置。
(2)上記のようなデータ変換装置において、上記第1の入出力手段と上記第2の入出力手段が共にパラレル方式でデータを入出力する手段であるデータ変換装置。
(3)上記のようなデータ変換装置において、上記第1の入出力手段と上記第2の入出力手段が共にシリアル方式でデータを入出力する手段であるデータ変換装置。
(4)上記のようなデータ変換装置において、上記第1の入出力手段と上記第2の入出力手段のいずれか一方がパラレル方式でデータを入出力する手段であり、もう一方がシリアル方式でデータを入出力する手段であるデータ変換装置。
(5)上記のようなデータ変換装置において、上記暗号化手段によるデータの暗号化を予め設定したデータ単位毎に行うようにしたデータ変換装置。
(6)上記のようなデータ変換装置において、上記データ単位は最小記録単位であるデータ変換装置。
(7)上記のようなデータ変換装置のいずれかを備えた複写機、印刷装置、ファクシミリ装置、コンピュータ、及びそれらの複合機を含む電子装置。
(8)入力されたデータを暗号化して出力する第1の工程と、入力されたデータを予め発生させた乱数に置き換えて出力する第2の工程と、入力された暗号化データを復号化して出力する第3の工程と、上記第1乃至第3の工程のいずれか一つの工程を選択して実行するデータ変換方法。
(9)上記のようなデータ変換方法において、上記データの入出力をパラレル方式で行うデータ変換方法。
(10)上記のようなデータ変換方法において、上記データの入出力をシリアル方式で行うデータ変換方法。
(11)上記のようなデータ変換方法において、上記データの入力と出力をそれぞれパラレル方式とシリアル方式で行う、あるいは上記データの入力と出力をそれぞれシリアル方式とパラレル方式で行うデータ変換方法。
(12)上記のようなデータ変換方法において、上記データの暗号化を予め設定したデータ単位毎に行うデータ変換方法。
(13)上記のようなデータ変換方法において、上記データ単位は最小記録単位であるデータ変換方法。
この発明によるデータ変換装置とデータ変換方法は、外部記憶装置を備えた電子装置に用いることにより、外部記憶装置に対して読み書きするデータに所定の処理を施す機能を電子装置に大幅な変更を加えなくても実行することができる。
また、この発明による電子装置は、上記のようなデータ変換装置を備えることにより、電子装置に大幅な変更を加えなくても外部記憶装置に対して読み書きするデータに所定の処理を施す機能を実行することができる。
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔実施例〕
図2は、この発明の一実施例であるデータ変換装置の外観斜視図である。
図1は、図2に示すデータ変換装置の機能構成を示すブロック図である。
図2に示すように、このデータ変換装置1は、基板15上にASIC10,例えば、SCSIを含むパラレルATA(PATA)コネクタ11,例えば、RS−232Cを含むシリアルATA(SATA)コネクタ12を備えており、PATAコネクタ11にPATAケーブル4を介してPATAインタフェースを備えた複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む電子装置(図示を省略)を接続し、SATAコネクタ12にSATAケーブル(図示を省略)を介してSATAインタフェースを備えたハードディスク装置(HDD),光ディスク装置を含む外部記憶装置(図示を省略)を接続することにより、電子装置に、PATAインタフェースでSATAの外部記憶装置を利用させることを可能にする。
また、外部記憶装置に書き込むデータの暗号化の機能と、外部記憶装置に記憶された暗号化データの復号化の機能と、外部記憶装置に記憶されているデータに乱数のデータを上書きして消去するデータ消去機能を含むセキュリティ機能を有する。
したがって、このデータ変換装置1を用いることにより、電子装置2に対して、外部記憶装置に記憶するデータのデータ保護のためのデータの暗号化と復号化の機能と、外部記憶装置への書き込みデータを乱数に置き換えて外部記憶装置に記憶されたデータに上書きさせることによるデータ消去機能とを容易に付加することができる。
上記各機能は、ASIC10の処理によって実現される。
上記ATAとは、米国規格協会(ANSI)によって標準化されたIDEの正式な規格である。
図1に示すように、このデータ変換装置1は、基板15上に設けられたPATAコネクタ11にPATAケーブル4の一方の端子を接続し、そのPATAケーブル4のもう一方の端子を電子装置2のPATAインタフェース22と接続することにより、電子装置2との間ではパラレル方式でデータのやり取りを行う。
また、SATAコネクタ12にSATAケーブル5の一方の端子を接続し、そのSATAケーブル5のもう一方の端子をSATAインタフェース(図示を省略)を有するハードディスク装置(SATAHDD)3を接続することにより、SATAHDD3との間ではシリアル方式でデータのやり取りを行う。
すなわち、2種類のインタフェース間でのデータ転送におけるブリッジ機能を有する。
ASIC10は、PATAデバイスインタフェース(I/F)30、暗号化・復号化器31、乱数発生器32、第1セレクタ33、第2セレクタ34、SATAホストインタフェース(I/F)35、レジスタ36からなる。
PATAデバイスI/F30は、電子装置2との間でパラレル方式でデータを入出力する第1の入出力手段である。
暗号化・復号化器31は、PATAデバイスI/F30から入力されたデータを暗号化する暗号化手段と、SATAホストI/F35から入力された暗号化データを復号化する復号化手段である。その暗号化と復号化のアルゴリズムには、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)を含む各種のアルゴリズムがあり、いずれのアルゴリズムを用いても良い。また、データのみを暗号化、復号化処理を行い、コマンド(命令)については無変換とする機能も有している。
乱数発生器32は、PATAデバイスI/F30から入力されたデータを置き換えるための乱数を発生させる乱数発生手段である。
第1セレクタ33は、レジスタ36の設定により、PATAデバイスI/F30、又は暗号化・復号化器31から入力したデータのいずれか一方を選択して出力するように切り換える。また、第2セレクタ34から入力したデータを、PATAデバイスI/F30、又は暗号化・復号化器31へ出力するように切り換える。
第2セレクタ34は、レジスタ36の設定により、第1セレクタ33から入力したデータをそのまま出力するか、あるいは乱数発生器32から出力された乱数に置き換えて出力するかのいずれか一方に切り換える。また、SATAホストI/F35から入力したデータを第1セレクタ33へ出力する。
SATAホストI/F35は、SATAHDD3との間でシリアル方式でデータを入出力する第2の入出力手段である。
レジスタ36は、電子装置2のレジスタインタフェース(I/F)21からの各種のモードと各種のパラメータの設定により、上記暗号化・復号化器31又は上記乱数発生器32へのモードとパラメータの設定と、上記第1セレクタ33と上記第2セレクタ34に対するデータパスの選択切り換えのモードの設定を行い、PATAデバイスI/F30から入力された電子装置2からのデータを暗号化・復号化器31によって暗号化してSATAホストI/F35からSATAHDD3へ出力するように設定する第1の設定手段と、PATAデバイスI/F30から入力された電子装置2からのデータを乱数発生器32によって発生させた乱数に置き換えてSATAホストI/F35からSATAHDD3へ出力するように設定する第2の設定手段と、SATAホストI/F35から入力されたSATAHDD3からの暗号化データを暗号化・復号化器31によって復号化してPATAデバイスI/F30から電子装置2へ出力するように設定する第3の設定手段と、上記第1乃至第3の設定手段のいずれか一つの手段に設定させる手段の機能を果たす。
この実施例では、上記レジスタ36へは、PATAデバイスI/F30とは別のインタフェースを介して設定する場合を示しているが、PATA、SATAの拡張コマンドを利用して電子装置2から上記レジスタ36へのアクセスを行うことも可能であり、その場合、レジスタI/Fは不要になる。
電子装置2は、例えば、複数のクライアントコンピュータと、これらのクライアントコンピュータからの動作指令によって作動し、画像処理、画像出力、データ通信を含む複数のアプリケーション機能を有し、各アプリケーション機能がメモリ、ハードディスクを含む各部を共有資源として利用することができるように設計されている複写機、プリンタ、ファクシミリ装置及びそれらの複合機を含む画像形成装置やパーソナルコンピュータであり、マイクロコンピュータによって実現され、装置全体の制御を司るホストコントローラ20と、レジスタI/F21、PATAインタフェース22を備えている。
この電子装置2は、ホストコントローラ20からデータ変換装置1へデータの読み出し(リードコマンド)を出力し、データ変換装置1を介して外部記憶装置に記憶されている所望のデータを読み出して取得する。また、データの書き込み(ライトコマンド)と、その書き込むデータを出力し、データ変換装置1を介して外部記憶装置へデータを書き込む。また、その際、レジスタI/F21によってデータ変換装置1のレジスタ36へ各種のモードと各種のパラメータの設定情報を出力する。
次に、このデータ変換装置1と電子装置2の動作について説明する。
まず、電子装置2は、自装置とSATAHDD3との間にデータ変換装置1が装着されてSATAHDD3が外部接続され、電子装置2及びSATAHDD3の電源投入後、電子装置2の全体の制御を司るホストコントローラ20ではデータ変換装置1のASIC10がHDDのように見えており、このホストコントローラ20により、PATAデバイスI/F30のコンフィグレーション(初期化)を行う。
データ変換装置1では、PATAデバイスI/F30のコンフィグレーション(初期化)が終了するまで、暗号化・復号化器31、乱数発生器32、SATAホストI/F35は停止状態にある。
さらに、電子装置2のレジスタI/F21により、データ変換装置1のレジスタ36に、暗号化・復号化器31へのモードとパラメータ、第1セレクタ33と第2セレクタ34へのデータパスの切り換え選択のモード、又は乱数発生器32へのモードとパラメータの設定を行うと共に、ホストコントローラ20が、SATAホストI/F35及びSATAHDD3のコンフィグレーション(初期化)を行う。
データ変換装置1では、レジスタ36にモードとパラメータが設定されると、それらの値に基づいて内部の各部への設定を行う。
図3は、図2に示すデータ変換装置1のASIC10のモード又はパラメータの設定処理を示すフローチャート図である。
この処理は、ステップ(図中「S」で示す)1でレジスタに乱数消去モードが設定されたか否かを判断し、乱数消去モードの設定でなければ、ステップ2で暗号化モード・復号化モードか否かを判断する。
ステップ2の判断で暗号化モードあるいは復号化モードならば、ステップ3でセレクタに設定されたモードによって第1セレクタを暗号化モードあるいは復号化モードに設定する。ここで、暗号化モードの設定は、PATAデバイスI/Fから入力された電子装置2からのデータを暗号化・復号化器によって暗号化してSATAホストI/FからSATAHDDへ出力するようにデータパスを選択して切り換える設定の第1の設定であり、復号化モードの設定は、SATAホストI/Fから入力されたSATAHDDからの暗号化データを暗号化・復号化器によって復号化してPATAデバイスI/Fから電子装置へ出力するようにデータパスを選択して切り換える設定の第3の設定手段である。
ステップ4では、セレクタに設定されたモードによって乱数発生器と第2セレクタを非乱数書込モードに設定する。この非乱数書込モードの設定は、乱数発生器に対しては乱数を発生させないようにする設定であり、第2セレクタに対しては第1セレクタから出力されるデータをそのままSATAホストI/Fへ出力するように切り換える設定である。
ステップ5では、セレクタに設定されたパラメータによって暗号化・復号化器に動作(演算)モードを設定する。この動作モードは、暗号化あるいは復号化の種類を示すモードであり、例えば、電子コードブロックモード(Electronic Code Block:ECB)は、基本的な暗号化及び復号化モードであり、データを単純に予め決められたブロック長毎に秘密鍵で暗号化及び復号化する動作モードである。また、暗号ブロック連鎖モード(Cipher Block Chaining:CBC)は、一つ前の暗号化されたブロックと次のこれから暗号化するブロックをXOR演算し、その演算結果を秘密鍵を用いて暗号化し、その暗号化されたデータを復号化する動作モードである。なお、最初のブロックについては、一つ前のブロックが存在しないので、初期ベクタ(「初期ベクトル」ともいう)に基づいてXOR演算する。
ステップ6では、セレクタに設定されたパラメータによって暗号化・復号化器に暗号化又は復号化に用いる秘密鍵の鍵長を設定する。その鍵長は、例えば、128ビット、192ビット、256ビットを含む各種の長さがある。
ステップ7では、セレクタに設定されたパラメータによって暗号化・復号化器に秘密鍵の値を設定する。
ステップ8では、セレクタに設定されたパラメータによって暗号化・復号化器に初期ベクタを設定する。この処理は、暗号化・復号化器にCBCモードで暗号化又は復号化を行わせるときに行う。
一方、ステップ1の判断で乱数消去モードならば、ステップ9で第1セクタをスルーモードに設定する。このスルーモードの設定は、PATAデバイスI/Fから入力された電子装置からのデータをそのまま第2セレクタへ出力するようにデータパスを選択して切り換える設定である。
ステップ10では、セレクタに設定されたモードによって乱数発生器と第2セレクタを乱数書込モードに設定する。この乱数書込モードの設定は、乱数発生器に対しては、乱数を発生して第2セレクタへ出力するように動作させる設定であり、第2セレクタに対しては第1セレクタから出力されるデータを乱数発生器から出力される乱数に置き換えてSATAホストI/Fへ出力するように切り換える設定である。
ステップ11では、セレクタに設定されたパラメータによって乱数発生器に乱数発生の際に用いる初期ベクタの値を設定する。
また一方、ステップ2の判断で暗号化モードでも復号化モードでもなければ、ステップ12でセレクタに設定されたモードによって第1セレクタをスルーモードに設定する。このスルーモードの設定は、PATAデバイスI/Fから入力された電子装置からのデータをそのまま第2セレクタへ出力するようにデータパスを選択して切り換える設定である。
ステップ13では、セレクタの設定によって乱数発生器と第2セレクタを非乱数書込モードに設定する。この非乱数書込モードの設定は、乱数発生器に対しては乱数を発生させないように動作させる設定であり、第2セレクタに対しては第1セレクタから入力したデータをそのままSATAホストI/Fへ出力するように切り換える設定である。
このようにして、上述の処理を終えると、データ変換装置の初期設定が終了する。
次に、電子装置2のデータをデータ変換装置1によって暗号化してSATAHDD3に書き込むときの処理について説明する。
電子装置2は、データ変換装置1のPATAデバイスI/F30の初期化を行い、レジスタI/F21によってデータ変換装置1のレジスタ36に、暗号化モードと、暗号化の種類のモード(例えば、CBCモード、ECBモード)、暗号化の際の鍵長(暗号鍵の長さ)のパラメータ、秘密鍵(暗号鍵)のパラメータ、初期ベクタのパラメータを書き込んで設定する。
データ変換装置1は、レジスタ36に設定されたモードとパラメータに基づいて、第1セレクタ33を暗号化モードに設定し、乱数発生器32と第2セレクタ34を非乱数書込モードに設定し、暗号化・復号化器31に暗号化の種類のモード(例えば、ECBモードあるいはCBCモード)と、暗号化の鍵長と、暗号化の秘密鍵と、CBCモードの場合は初期ベクタを設定する。
そして、上記設定終了後、電子装置2のホストコントローラ20からデータ変換装置1へデータを出力すると、データ変換装置1のPATAデバイスI/F30によってデータを入力し、そのデータを暗号化・復号化器31によって暗号化し、第1セレクタ33と第2セレクタ34を通ってSATAホストI/F35へ出力し、SATAホストI/F35からSATAHDD3へ出力して、SATAHDD3に暗号化されたデータが書き込まれる。
このようにして、電子装置2に対して容易にデータの暗号化の機能を提供することができる。
次に、SATAHDD3に記憶されている暗号化データをデータ変換装置1によって復号化して電子装置2へ読み出すときの処理について説明する。
電子装置2は、データ変換装置1のPATAデバイスI/F30の初期化を行い、レジスタI/F21によってデータ変換装置1のレジスタ36に、復号化モードと、暗号化の種類のモード(例えば、CBCモード、ECBモード)、暗号化の際の鍵長(暗号鍵の長さ)のパラメータ、秘密鍵(暗号鍵)のパラメータ、初期ベクタのパラメータを書き込んで設定する。
データ変換装置1は、レジスタ36に設定されたモードとパラメータに基づいて、第1セレクタ33を復号化モードに設定し、乱数発生器32と第2セレクタ34を非乱数書込モードに設定し、暗号化・復号化器31に暗号化の種類のモード(例えば、ECBモードあるいはCBCモード)と、暗号化の鍵長と、暗号化の秘密鍵と、CBCモードの場合は初期ベクタを設定する。
そして、上記設定終了後、電子装置2のホストコントローラ20から発行されたリードコマンドに応じてSATAHDD3から暗号化データが読み出されて、データ変換装置1へ出力されると、データ変換装置1のSATAホストI/F35よって暗号化データを入力し、そのデータを第2セレクタ34はそのまま第1セレクタ33へ出力し、第1セレクタ33もそのまま暗号化・復号化器31へ出力し、暗号化・復号化器31によって復号化し、PATAデバイスI/F30を介して電子装置2へ送られる。
このようにして、電子装置2に対して容易に暗号化データの復号化の機能を提供することができる。
次に、電子装置2とSATAHDD3との間でデータに暗号化又は復号化せずにそのまま書き込み、読み出すときの処理について説明する。
電子装置2は、データ変換装置1のPATAデバイスI/F30の初期化を行い、レジスタI/F21によってデータ変換装置1のレジスタ36に、スルーモードと、非乱数書込モードを書き込んで設定する。
データ変換装置1は、レジスタ36に設定されたモードに基づいて、第1セレクタ33をスルーモードに設定し、乱数発生器32と第2セレクタ34を非乱数書込モードに設定する。
そして、上記設定終了後、電子装置2のホストコントローラ20からデータ変換装置1へデータを出力すると、データ変換装置1のPATAデバイスI/F30によってデータを入力し、そのデータを第1セレクタ33と第2セレクタ34を通してSATAホストI/F35へ出力し、SATAホストI/F35からSATAHDD3へ出力して、SATAHDD3にデータがそのまま書き込まれる。
また、電子装置2のホストコントローラ20から発行されたリードコマンドに応じてSATAHDD3からデータが読み出されて、データ変換装置1へ出力されると、データ変換装置1のSATAホストI/F35によってデータを入力し、そのデータを第2セレクタ34はそのまま第1セレクタ33へ出力し、第1セレクタ33もそのままPATAデバイスI/F30へ出力し、SATAHDD3から読み出したデータをPATAデバイスI/F30を介してそのまま電子装置2へ送る。
次に、SATAHDD3に記憶されているデータに乱数を上書きして消去するときの処理について説明する。
電子装置2は、データ変換装置1のPATAデバイスI/F30の初期化を行い、レジスタI/F21によってデータ変換装置1のレジスタ36に、スルーモードと、乱数書込モードと、乱数発生のための初期ベクタのパラメータを書き込んで設定する。
データ変換装置1は、レジスタ36に設定されたモードに基づいて、第1セレクタ33をスルーモードに設定し、乱数発生器32と第2セレクタ34を乱数書込モードに設定し、乱数発生器に初期ベクタのパラメータを設定する。
そして、上記設定終了後、電子装置2のホストコントローラ20からデータ変換装置1へデータを出力すると、データ変換装置1のPATAデバイスI/F30によってデータを入力し、そのデータを第1セレクタ33を介して第2セレクタ34へ出力する。第2セレクタ34へは乱数発生器32によって発生された乱数が出力されるので、第2セレクタ34は、第1セレクタ33から入力したデータを乱数発生器32から入力した乱数に置き換えてSATAホストI/F35へ出力し、SATAホストI/F35からSATAHDD3へデータを出力して、SATAHDD3の消去すべきデータに乱数のデータを上書きすることによってデータ消去する。
このようにして、電子装置2に対して容易に乱数によるデータ消去の機能を提供することができる。
次に、SATAHDD3に記録されたデータを読み出す場合、読み出しの開始位置と長さは一定ではなく、ひとつのファイルの一部分だけを読み出すケースもある。
したがって、ファイルをひとかたまりとして暗号化してしまうと、暗号化のモードによっては、一部分だけを取り出す場合でも、それより前のデータをすべて復号化しなければならない場合がある。
これでは、ファイルの後端になればなるほど復号化にかかる時間が長くなるという、不都合が生じることになる。
そこで、これを防止するために、上記暗号化と上記復号化を予め設定したデータ単位毎にするとよい。例えば、セクタと呼ばれる外部記憶装置の最小記録単位(例えば、ハードディスク装置なら512バイト)をひとかたまりとして暗号化、復号化するとよい。
図4は、セクタ単位で暗号化するときのデータの流れを示す説明図である。
同図に示すように、電子装置2から第1セクタ、第2セクタ、第3セクタ、……のようにセクタ単位で送られるデータ50をPATAデバイスI/F30で入力すると、暗号化・復号化器31の暗号化器31aによって各セクタ毎に暗号化し、SATAホストI/F35を介してSATAHDD3へ第1セクタ、第2セクタ、第3セクタ、……のようにセクタ単位で暗号化された暗号化データ51を書き込む。
図5は、セクタ単位で暗号化された暗号化データを復号化するときのデータの流れを示す説明図である。
同図に示すように、SATAHDD3から第1セクタ、第2セクタ、第3セクタ、……のようにセクタ単位で読み出された暗号化データ51をSATAホストI/F35で入力すると、暗号化・復号化器31の復号化器31bによって各セクタ毎に復号化し、PATAデバイスI/F30を介して電子装置2へ第1セクタ、第2セクタ、第3セクタ、……のようにセクタ単位で復号化されたデータ50を送る。
このようにして、読み出したい部分のデータを短時間で復号化することができる。
また、暗号化されたデータを読み出す際に、任意の位置のデータを読み出すためにファイルを先頭から読み出さなければならないといった無駄な処理時間を削減できる。
さらに、ファイル中の任意の位置から必要な分だけのリードが可能となる。
上述の実施例では、データ変換装置1に電子装置との接続インタフェースとしてPATAインタフェースを、外部記憶装置であるSATAHDD3との接続インタフェースとしてSATAインタフェースを設けた場合を説明したが、図6に示すように、PATAデバイスI/F30とPATAホストI/F37を設けたASIC40と、PATAコネクタ11とPATAコネクタ13をそれぞれ設けたデータ変換装置6にすれば、PATAインタフェースを備えたPATAHDD7を接続した場合に電子装置2へ上述の機能を提供することができる。
また、図7に示すように、SATAデバイスI/F38とPATAホストI/F37を設けたASIC41と、SATAコネクタ14とPATAコネクタ13をそれぞれ設けたデータ変換装置8にすれば、PATAインタフェースを備えたPATAHDD7を接続した場合に電子装置2へ上述の機能を提供することができる。
あるいはまた、図8に示すように、SATAデバイスI/F38とPATAホストI/F35を設けたASIC42と、SATAコネクタ14とSATAコネクタ12をそれぞれ設けたデータ変換装置9にすれば、SATAインタフェースを備えたSATAHDD3を接続した場合に電子装置2へ上述の機能を提供することができる。
上述の実施例では、外部記憶装置としてHDDを接続する場合について説明したが、フレキシブルディスク、MOを含む記録媒体に対するデータの読み書きを行う記録装置や、CD、DVDを含む各種の光ディスクに対するデータの読み書きを行う光ディスク装置を接続するようにしても、上述の機能を上述と同様にして提供することができる。
また、SDカードを含む不揮発性メモリカードに対するデータの読み書きを行うメモリカードインタフェースを設けるようにしても上述の機能を上述と同様にして提供することができる。
図9は、図2に示すデータ変換装置のさらにまた他の構成例を示すブロック図であり、図1,図6〜図8と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置70では、上述のデータ変換装置における外部記憶装置側のインタフェースに代えて、SDカードを含むメモリカード60を装着し、メモリカード60に対するデータの読み書きを行うメモリカードインタフェース39を設けたASIC44を備えており、上述と同様にして、電子装置とメモリカードとの間のデータ変換と暗号化と複合化を含む所定の処理を施す。
なお、同図では、電子装置側のインタフェースがPATAデバイスI/Fの場合を示しているが、SATAデバイスI/Fの場合でも、上述と同様に実施することができる。
このようにして、上記実施例のデータ変換装置は、電子装置と外部記憶装置のそれぞれの既存インタフェースであるパラレルATAインタフェース又はシリアルATAインタフェースを含む各種インタフェースとの間、又は電子装置と不揮発性メモリカードとの間に介在してセキュリティ機能を、新たなオプションスロットを要せず、容易に追加することができる。また、セキュリティ機能をハードウェアで提供することによって電子装置のCPUに負担をかけずに実現することができる。
また、パラレルATAインタフェースとシリアルATAインタフェースの変換機能、パラレルATAインタフェースとメモリカードインタフェースの変換機能、シリアルATAインタフェースとメモリカードインタフェースの変換機能も提供することで、装着できる外部記憶装置とメモリカードの選択肢が広がる。
また、データを最小記録単位で暗号化又は復号化することにより、暗号化されたデータのランダムリードアクセスでの復号化のオーバーヘッドを最小限に抑えることができる。
さらに、画像形成装置を含む電子装置に、上述したASICを搭載することにより、画像データや通信データ、アドレス帳などの機密情報を、装置の生産性を落とすことなくハードディスク、光ディスク、メモリカードに暗号化して保存することが可能であり、不要になったデータは乱数による上書き消去を行うことでデータの安全性/機密性を高めることができる。
また、上述のようなセキュリティ機能を持たない電子装置に対して機能追加が容易になるため、既存ユーザに対して装置全体を置き換えることなく、上記ASICを追加実装し、ソフトウェアを書き換えることで対応が可能になる。
さらに、上述したASICを搭載することにより、DVD、CDを含むリムーバブルメディアに記録された画像データや通信データ、アドレス帳を含む機密情報を、装置の生産性を落とすことなくハードディスクに暗号化して保存することが可能になる。
また、上述のデータ変換装置を外部記憶装置側に設けるようにしても良い。
次に、この発明の他の実施例について説明する。
この実施例では、上述した実施例のデータ変換装置に、さらにデータ再送機能を設けている。
このデータ再送機能は、電子装置と外部記憶装置又は電子装置とメモリカードとの間のデータ転送時にデータ転送エラーが発生した場合、電子装置、外部記憶装置又はメモリカードからデータを再送せずに済むように、データ変換装置が電子装置と外部記憶装置又は電子装置とメモリカードとの間で転送されるデータを一時的に保持し、データ転送エラーが発生したときに再送するものである。また、このデータの再送を所定回数あるいは所定条件を満たすまで繰り返すリトライ動作を含むようにしても良い。
ここでは、図1に示したデータ変換装置に、上述したデータ再送機能を実現する構成を設けた場合の例について説明する。
図10は、この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図であり、図1と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置71は、図1に示したデータ変換装置に新たに、第3セレクタ80,第4セレクタ81,第5セレクタ82,コマンド処理回路83,第6セレクタ84,第1バッファメモリ85,第2バッファメモリ86を設けたASIC44を備えている。
まず、第1セレクタ33が、上述のものとは若干機能が異なり、レジスタ36の設定により、第1バッファメモリ85、第2バッファメモリ86、又はコマンド処理回路83から入力したデータのいずれか一方を選択して出力するように切り換える。また、第2セレクタ34から入力したデータを第1バッファメモリ85、又は第2バッファメモリ86の一方を選択して出力するように切り換える。
また、レジスタ36は、上述した機能の他に、第3セレクタ80、第4セレクタ81、第5セレクタ82、第6セレクタ53に対するデータパスの選択切り換えのモードの設定を行う手段の機能も果たす。
第3セレクタ80は、レジスタ36の設定により、PATAデバイスI/F30、第4セレクタ81、又はコマンド処理回路83から入力したデータのいずれか一方を選択して出力するように切り換える。
第4セレクタ81は、レジスタ36の設定により、第3セレクタ80、第5セレクタ82、又は暗号化・復号化器31から入力したデータのいずれか一方を選択して出力するように切り換える。
第5セレクタ82は、レジスタ36の設定により、第4セレクタ81、暗号化・復号化器31、又は第6セレクタ84から入力したデータのいずれか一方を選択して出力するように切り換える。
コマンド処理回路83は、電子装置2から受信したコマンドに基づいてSATAHDD3に出力するコマンドを作成して出力する。
第6セレクタ84は、レジスタ36の設定により、第5セレクタ82から入力したデータを第1バッファメモリ85、又は第2バッファメモリ86のいずれか一方を選択して出力するように切り換える。また、第1バッファメモリ85、又は第2バッファメモリ86から入力したデータを第5セレクタ82へ出力する。
第1バッファメモリ85と第2バッファメモリ86は、例えば、それぞれ128セクタ分のデータを格納できるだけの容量を持ち、電子装置2とSATAHDD3との間で転送されるデータを一時的に保持する複数個のバッファメモリである。
また、この実施例での電子装置2は、SATAHDD3に記憶されている所望のデータを読み出しと、SATAHDD3に対するデータの書き込みの際、レジスタI/F21によってデータ変換装置1のレジスタ36へ、第1セレクタ33、第3セレクタ80、第4セレクタ81、第5セレクタ82、第6セレクタ84への各種のモードと各種のパラメータの設定情報も出力する。
次に、この実施例のデータ変換装置71のデータ読み出し時の動作について説明する。
まず、SATAHDD3から129セクタ以上256セクタ以下のデータを読み出すときの処理を説明する。
[フェーズa1]
電子装置2のホストコントローラ20がSATAHDD3に記憶されているN(N>128)セクタのデータのリードコマンドをデータ変換装置71へ発行(出力)すると、データ変換装置71はPATAデバイスI/F30によって受信し、第3セレクタ80を介してコマンド処理回路83へ送る。
[フェーズa2]
コマンド処理回路83は、Nセクタのリードコマンドのうち、前半の128セクタ分のリードコマンドを作成し、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行(出力)する。
SATAホストI/F35は、コマンド処理回路83から前半の128セクタ分のリードコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の128セクタ分のリードコマンドの再送を実行する。
[フェーズa3]
SATAHDD3は、データ変換装置71から上記前半の128セクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置71へ返送する。
データ変換装置71は、SATAホストI/F35によってSATAHDD3から返送される前半の128セクタ分のデータを受信すると、第1セレクタ33は第1バッファメモリ85へのパスに切り換え、上記受信したデータを第2セレクタ34と第1セレクタ33を介して第1バッファメモリ85へ格納する。
ここで、SATAHDD3からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズa2からの処理を予め設定したリトライ回数まで繰り返し、SATAHDD3からデータを取得する。
[フェーズa4]
データ変換装置71は、第1バッファメモリ85に上記前半の128セクタ分のデータを格納すると、コマンド処理回路83が、Nセクタのリードコマンドのうち、残りの後半のN−128セクタ分のリードコマンドを作成し、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行する。
SATAホストI/F35は、コマンド処理回路83から後半のN−128セクタ分のリードコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで後半のN−128セクタ分のリードコマンドの再送を実行する。
[フェーズa5]
SATAHDD3は、データ変換装置71から上記後半のN−128セクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置71へ返送する。
データ変換装置71は、SATAホストI/F35によってSATAHDD3から返送される後半のN−128セクタ分のデータを受信すると、第1セレクタ33は第2バッファメモリ86へのパスに切り換え、上記受信したデータを第2セレクタ34と第1セレクタ33を介して第2バッファメモリ86へ格納する。
ここで、SATAHDD3からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズa4からの処理を予め設定したリトライ回数まで繰り返し、SATAHDD3からデータを取得する。
[フェーズa6]
データ変換装置71は、第1バッファメモリ85と第2バッファメモリ86にそれぞれ正しいデータが格納され、上記電子装置2からのリードコマンドに基づくNセクタのデータを保持すると、第6セレクタ84を含む各セレクタの切り換えと、暗号化されたデータの場合は上述の実施例と同様にして暗号化・復号化部31で復号化し、そのままのデータはそのままで、第1バッファメモリ85に格納されたデータを先に、第2バッファメモリ86に格納されたデータを後にそれぞれ順に電子装置2へ出力する。
次に、SATAHDD3から128セクタ以下のデータを読み出すときの処理を説明する。
[フェーズb1]
電子装置2のホストコントローラ20がSATAHDD3に記憶されているN(N≦128)セクタのデータのリードコマンドをデータ変換装置71へ発行(出力)すると、データ変換装置71はPATAデバイスI/F30によって受信し、第3セレクタ80を介してコマンド処理回路83へ送る。
[フェーズb2]
コマンド処理回路83は、Nセクタのリードコマンドを、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行する。
SATAホストI/F35は、コマンド処理回路83からNセクタ分のリードコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までN分のリードコマンドの再送を実行する。
[フェーズb3]
SATAHDD3は、データ変換装置71からNセクタ分のリードコマンドを受信すると、該当するデータを読み出してデータ変換装置71へ返送する。
データ変換装置71は、SATAホストI/F35によってSATAHDD3から返送されるNセクタ分のデータを受信すると、第1セレクタ33は第1バッファメモリ85へのパスに切り換え、上記受信したデータを第2セレクタ34と第1セレクタ33を介して第1バッファメモリ85へ格納する。
ここで、SATAHDD3からのデータ返送が失敗し、正しいデータを受信できなかった場合、上記フェーズb2からの処理を予め設定したリトライ回数まで繰り返し、SATAHDD3からデータを取得する。
[フェーズb4]
データ変換装置71は、第1バッファメモリ85に正しいデータが格納され、上記電子装置2からのリードコマンドに基づくNセクタのデータを保持すると、第6セレクタ84を含む各セレクタの切り換えと、暗号化されたデータの場合は上述の実施例と同様にして暗号化・復号化部31で復号化し、そのままのデータはそのままで、第1バッファメモリ85に格納されたデータを電子装置2へ出力する。
次に、この実施例のデータ変換装置71のデータ書き込み時の動作について説明する。
まず、SATAHDD3に129セクタ以上のデータを書き込むときの処理を説明する。
[フェーズc1]
電子装置2のホストコントローラ20がSATAHDD3に対するN(N>128)セクタのデータのライトコマンドをデータ変換装置71へ発行(出力)すると、データ変換装置71はPATAデバイスI/F30によって受信し、第3セレクタ80を介してコマンド処理回路83へ送る。
[フェーズc2]
コマンド処理回路83は、Nセクタのライトコマンドのうち、前半の128セクタ分のライトコマンドを作成し、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行(出力)する。
SATAホストI/F35は、コマンド処理回路83から前半の128セクタ分のライトコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の128セクタ分のライトコマンドの再送を実行する。
上記処理と並行して、電子装置2から送信されるデータを受信し、暗号化する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データを暗号化・復号化器31へデータを出力し、上述の実施例と同様にして暗号化・復号化器31で暗号化して第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第1バッファメモリ85へ前半の128セクタ分のデータを格納する。また、データをそのまま記憶する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データをそのまま第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第1バッファメモリ85へ前半の128セクタ分のデータを格納する。
[フェーズc3]
SATAHDD3は、データ変換装置71から上記前半の128セクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置71は、上記前半の128セクタ分のライトコマンドの発行が成功したら、第1バッファメモリ85に格納された128セクタ分のデータを第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ出力する。SATAホストI/F35は、そのデータをSATAHDD3へ出力する。
ここで、SATAHDD3へのデータ送信が成功した場合はフェーズc6へ移行し、SATAHDD3へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズc4へ移行する。
上記処理と並行して、電子装置2から送信されるデータを受信し、暗号化する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データを暗号化・復号化器31へデータを出力し、上述の実施例と同様にして暗号化・復号化器31で暗号化して第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第2バッファメモリ86へ後半のN−128セクタ分のデータを格納する。また、データをそのまま記憶する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データをそのまま第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第2バッファメモリ86へ後半のN−128セクタ分のデータを格納する。
[フェーズc4]
コマンド処理回路83は、上記前半の128セクタ分のライトコマンドを、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行する。
SATAホストI/F35は、コマンド処理回路83から前半の128セクタ分のライトコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで前半の128セクタ分のライトコマンドの再送を実行し、SATAHDD3へコマンドが正しく発行できたら、フェーズc5へ移行する。
また、データ変換装置71は、この間は電子装置2のホストコントローラ20からの新規のコマンドを受け付けないようにする。
[フェーズc5]
SATAホストI/F35は、第1バッファメモリ85に格納された前半の128セクタ分のデータをSATAHDD3へ出力し、その出力が成功した場合はフェーズc6へ移行し、その出力に失敗した場合は、上記フェーズc4からの処理を予め設定したリトライ回数まで繰り返し、SATAHDD3へデータを出力する。
また、データ変換装置1は、この間は電子装置2のホストコントローラ20からの新規のコマンドを受け付けないようにする。
[フェーズc6]
データ変換装置71は、SATAHDD3への第1バッファメモリ85の上記前半の128セクタ分のデータ出力を成功すると、コマンド処理回路83が、Nセクタのライトコマンドのうち、残りの後半のN−128セクタ分のライトコマンドを作成し、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行する。
SATAホストI/F35は、コマンド処理回路83から後半の128セクタ分のライトコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数まで後半の128セクタ分のライトコマンドの再送を実行する。
また、データ変換装置71は、この間は電子装置2のホストコントローラ20からの新規のコマンドを受け付けないようにする。
[フェーズc7]
SATAHDD3は、データ変換装置71から上記後半のN−128セクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置71は、上記後半のN−128セクタ分のライトコマンドの発行が成功したら、第2バッファメモリ86に格納されたN−128セクタ分のデータを第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ出力する。SATAホストI/F35は、そのデータをSATAHDD3へ出力する。
ここで、SATAHDD3へのデータ送信が成功した場合は電子装置2からのライトコマンドが正常終了したことになるので、電子装置2からの新規のコマンドの受付を可能にする。
一方、SATAHDD3へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズc6へ戻って処理を繰り返し、その間は、電子装置2からの新規のコマンドを受け付けないようにする。
次に、SATAHDD3に128セクタ以下のデータを書き込むときの処理を説明する。
[フェーズd1]
電子装置2のホストコントローラ20がSATAHDD3に対するN(N≦128)セクタのデータのライトコマンドをデータ変換装置71へ発行(出力)すると、データ変換装置71はPATAデバイスI/F30によって受信し、第3セレクタ80を介してコマンド処理回路83へ送る。
[フェーズd2]
コマンド処理回路83は、Nセクタのライトコマンドを、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行(出力)する。
SATAホストI/F35は、コマンド処理回路83からライトコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までNセクタ分のライトコマンドの再送を実行する。
上記処理と並行して、電子装置2から送信されるデータを受信し、暗号化する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データを暗号化・復号化器31へデータを出力し、上述の実施例と同様にして暗号化・復号化器31で暗号化して第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第1バッファメモリ85へNセクタ分のデータを格納する。また、データをそのまま記憶する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データをそのまま第5セレクタ82へ出力し、第6セレクタ84のパスを切り換えて第1バッファメモリ85へNセクタ分のデータを格納する。
[フェーズd3]
SATAHDD3は、データ変換装置71から上記Nセクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置71は、上記Nセクタ分のライトコマンドの発行が成功したら、第1バッファメモリ85に格納されたNセクタ分のデータを第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ出力する。SATAホストI/F35は、そのデータをSATAHDD3へ出力する。
ここで、SATAHDD3へのデータ送信が成功した場合は電子装置2からのライトコマンドが正常終了したことになるので、電子装置2からの新規のコマンドの受付を可能にする。
一方、SATAHDD3へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズd2へ戻って処理を繰り返し、その間は、電子装置2からの新規のコマンドを受け付けないようにする。
このように、電子装置2とSATAHDD3との間に、システムが1度の転送で使用する最大サイズの容量のバッファメモリをデータ変換装置71のASIC10に搭載することにより、SATAHDD3との間で通信エラーがあった際に、電子装置2側からデータを再送処理する手間を省くことができる。
また、上記バッファメモリを比較的少ない容量の複数個のバッファメモリに分割して持つことにより、通信エラー時の再送にかかるオーバヘッドを低減することができる。
上記実施例では、128セクタ分の容量を持つ2個のバッファメモリを設けた場合の構成を説明したが、例えば、64セクタ分の容量を持つ4個のバッファメモリを設けるようにしても上述と同様にして実施することができる。
次に、この発明のまた他の実施例について説明する。
この実施例では、上述した実施例のデータ再送機能を設けたデータ変換装置について、複数個のバッファメモリを1つのバッファメモリで実現する場合のデータ変換装置を説明する。
図11は、この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図であり、図10と共通する部分には、同一符号を付してその説明を省略する。
このデータ変換装置72では、上述の第6セレクタと第1バッファメモリ85と第2バッファメモリ86に代えて、第5セレクタ82と第1セレクタ33との間にバッファメモリ87を設けたASIC45を備えている。
ここで、例えば、SATAHDD3に128セクタ以下のデータを書き込むときの処理を説明する。この場合、バッファメモリ87の容量は128セクタ分有ればよい。
[フェーズe1]
電子装置2のホストコントローラ20がSATAHDD3に対するN(N≦128)セクタのデータのライトコマンドをデータ変換装置72へ発行(出力)すると、データ変換装置72はPATAデバイスI/F30によって受信し、第3セレクタ80を介してコマンド処理回路83へ送る。
[フェーズe2]
コマンド処理回路83は、Nセクタのライトコマンドを、第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ発行(出力)する。
SATAホストI/F35は、コマンド処理回路83からライトコマンドを受信すると、SATAHDD3へそのコマンドを発行する。そのコマンドの発行が失敗した場合、予め設定したリトライ回数までNセクタ分のライトコマンドの再送を実行する。
上記処理と並行して、電子装置2から送信されるデータを受信し、暗号化する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データを暗号化・復号化器31へデータを出力し、上述の実施例と同様にして暗号化・復号化器31で暗号化して第5セレクタ82へ出力し、バッファメモリ87へNセクタ分のデータを格納する。また、データをそのまま記憶する場合は、第3セレクタ80と第4セレクタ81のパスを切り換え、データをそのまま第5セレクタ82へ出力し、バッファメモリ87へNセクタ分のデータを格納する。
[フェーズe3]
SATAHDD3は、データ変換装置1から上記Nセクタ分のライトコマンドを受信すると、データ待ちをする。
データ変換装置72は、上記Nセクタ分のライトコマンドの発行が成功したら、バッファメモリ87に格納されたNセクタ分のデータを第1セレクタ33と第2セレクタ34を介してSATAホストI/F35へ出力する。SATAホストI/F35は、そのデータをSATAHDD3へ出力する。
ここで、SATAHDD3へのデータ送信が成功した場合は電子装置2からのライトコマンドが正常終了したことになるので、電子装置2からの新規のコマンドの受付を可能にする。
一方、SATAHDD3へのデータ送信が失敗し、正しいデータを送信できなかった場合、フェーズe2へ戻って処理を繰り返し、その間は、電子装置2からの新規のコマンドを受け付けないようにする。
また、SATAHDD3からのデータの読み出しについても、上述のバッファメモリ87の容量を、電子装置2が一度のデータ転送に要する容量にすれば、その容量に応じて128セクタ以上のデータを扱うことができる。
例えば、上述したSATAHDD3へ129セクタ以上のデータを書き込む場合、バッファメモリを2個設けたデータ変換装置の場合とバッファメモリを1個設けたデータ変換装置の場合とを比較検討してみる。
例えば、256セクタ分のデータ転送を考えてみる。
SATAI/F上で128セクタ分のデータ転送時におけるエラー発生率を10−12と仮定すると、256セクタのデータ転送の場合、エラーの発生確率は2倍の10−11と考えられる。
さらに、256セクタのデータ転送の間に1回、エラーが発生した場合に再送しなければならないデータサイズは、バッファメモリを2個設けた場合では128セクタ、バッファメモリを1個設けた場合では256セクタとなり、1個設けた場合は2個設けた場合の2倍になる。
したがって、256セクタのデータを2つの128セクタのデータに分割して2回に分けてSATAI/F上を転送した場合に、1回エラーが発生すると仮定すると、256セクタのデータを1回で転送した場合、エラーの発生頻度は、上記2回に分けて転送した場合の2倍と考えられる。
また、データ再送1回を含めた総転送データサイズは、バッファメモリを2個設けた場合で256+128=384セクタになるのに対し、バッファメモリを1個設けた場合では256×2=512セクタとなる。
さらに、エラーの発生し易さを考慮すると、バッファメモリを1個設けた場合では256×3=768セクタとなる。
このように、上述した実施例のデータ再送機能を設けたデータ変換装置によれば、SATAHDD3との間で通信エラーがあった際に、電子装置2側からデータを再送処理する手間を省くことができる。
なお、上述の説明では、図1に示したデータ変換装置にデータ再送機能を設けた場合について説明したが、図6〜図9に示したデータ変換装置についても同様にして実現することができる。
また、上述の実施例では、シリアルインタフェースとパラレルインタフェースとメモリカードインタフェースについて説明したが、この実施例のデータ変換装置は、IEEEインタフェース、USBインタフェースを含むインタフェース全般についても上述と同じように適用することができる。
この発明によるデータ変換装置、データ変換方法は、プリンタ,ファクシミリ装置,複写機,それらの複合機を含む画像処理装置と、デスクトップパソコン,ノートブックパソコン等のパーソナルコンピュータを含むデータ処理装置全般において適用することができる。
図2に示すデータ変換装置の機能構成を示すブロック図である。 この発明の一実施例であるデータ変換装置の外観斜視図である。 図2に示すデータ変換装置1のASIC10のモード又はパラメータの設定処理を示すフローチャート図である。 図2に示すデータ変換装置におけるセクタ単位で暗号化するときのデータの流れを示す説明図である。
図2に示すデータ変換装置におけるセクタ単位で暗号化された暗号化データを復号化するときのデータの流れを示す説明図である。 図2に示すデータ変換装置の他の構成例を示すブロック図である。 図2に示すデータ変換装置のまた他の構成例を示すブロック図である。 図2に示すデータ変換装置のさらに他の構成例を示すブロック図である。
図2に示すデータ変換装置のさらにまた他の構成例を示すブロック図である。 この発明の他の実施例であるデータ変換装置の機能構成を示すブロック図である。 この発明のまた他の実施例であるデータ変換装置の機能構成を示すブロック図である。
符号の説明
1,6,8,9,70〜72:データ変換装置 2:電子装置 3:SATAHDD 4:PATAケーブル 5:SATAケーブル 7:PATAHDD 10,40〜45:ASIC 11,13:PATAコネクタ 12,14:SATAコネクタ 15:基板 20:ホストコントローラ 21:レジスタI/F 22:PATAインタフェース 23:SATAインタフェース 30:PATAデバイスI/F 31:暗号化・復号化器 32:乱数発生器 33:第1セレクタ 34:第2セレクタ 35:SATAホストI/F 36:レジスタ 37:PATAホストI/F 38:SATAデバイスI/F 39:メモリカードI/F 60:メモリカード 80:第3セレクタ 81:第4セレクタ 82:第5セレクタ 83:コマンド処理回路 84:第6セレクタ 85:第1バッファメモリ 86:第2バッファメモリ 87:バッファメモリ

Claims (13)

  1. 第1の入出力手段と、第2の入出力手段と、暗号化手段と、復号化手段と、乱数発生手段とを有し、前記第1の入出力手段から入力されたデータを前記暗号化手段によって暗号化して前記第2の入出力手段から出力するように設定する第1の設定手段と、前記第1の入出力手段から入力されたデータを前記乱数発生手段によって発生させた乱数に置き換えて前記第2の入出力手段から出力するように設定する第2の設定手段と、前記第2の入出力手段から入力された暗号化データを前記復号化手段によって復号化して前記第1の入出力手段から出力するように設定する第3の設定手段と、前記第1乃至第3の設定手段のいずれか一つの手段に設定させる手段とを備えたことを特徴とするデータ変換装置。
  2. 前記第1の入出力手段と前記第2の入出力手段が共にパラレル方式でデータを入出力する手段であることを特徴とする請求項1記載のデータ変換装置。
  3. 前記第1の入出力手段と前記第2の入出力手段が共にシリアル方式でデータを入出力する手段であることを特徴とする請求項1記載のデータ変換装置。
  4. 前記第1の入出力手段と前記第2の入出力手段のいずれか一方がパラレル方式でデータを入出力する手段であり、もう一方がシリアル方式でデータを入出力する手段であることを特徴とする請求項1記載のデータ変換装置。
  5. 前記暗号化手段によるデータの暗号化を予め設定したデータ単位毎に行うようにしたことを特徴とする請求項1乃至4のいずれか一項に記載のデータ変換装置。
  6. 前記データ単位は最小記録単位であることを特徴とする請求項5記載のデータ変換装置。
  7. 請求項1乃至6のいずれか一項に記載のデータ変換装置を備えたことを特徴とする複写機、印刷装置、ファクシミリ装置、コンピュータ、及びそれらの複合機を含む電子装置。
  8. 入力されたデータを暗号化して出力する第1の工程と、入力されたデータを予め発生させた乱数に置き換えて出力する第2の工程と、入力された暗号化データを復号化して出力する第3の工程と、前記第1乃至第3の工程のいずれか一つの工程を選択して実行することを特徴とするデータ変換方法。
  9. 前記データの入出力をパラレル方式で行うことを特徴とする請求項8記載のデータ変換方法。
  10. 前記データの入出力をシリアル方式で行うことを特徴とする請求項8記載のデータ変換方法。
  11. 前記データの入力と出力をそれぞれパラレル方式とシリアル方式で行う、あるいは前記データの入力と出力をそれぞれシリアル方式とパラレル方式で行うことを特徴とする請求項8記載のデータ変換方法。
  12. 前記データの暗号化を予め設定したデータ単位毎に行うことを特徴とする請求項8乃至11のいずれか一項に記載のデータ変換方法。
  13. 前記データ単位は最小記録単位であることを特徴とする請求項12記載のデータ変換方法。
JP2007161528A 2006-08-30 2007-06-19 データ変換装置と電子装置とデータ変換方法 Pending JP2008085986A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007161528A JP2008085986A (ja) 2006-08-30 2007-06-19 データ変換装置と電子装置とデータ変換方法
EP07114446A EP1895441A1 (en) 2006-08-30 2007-08-16 Data conversion unit, data conversion method, and electronic apparatus using the data conversion unit
US11/845,313 US7511636B2 (en) 2006-08-30 2007-08-27 Data conversion unit, data conversion method, and electronic apparatus using the data conversion unit
KR1020070086126A KR20080021520A (ko) 2006-08-30 2007-08-27 데이터 변환 장치, 이 데이터 변환 장치를 구비한 전자장치 및 데이터 변환 방법
CN2007101471948A CN101136979B (zh) 2006-08-30 2007-08-30 数据转换单元、使用其的电子装置、以及数据转换方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006233017 2006-08-30
JP2007161528A JP2008085986A (ja) 2006-08-30 2007-06-19 データ変換装置と電子装置とデータ変換方法

Publications (1)

Publication Number Publication Date
JP2008085986A true JP2008085986A (ja) 2008-04-10

Family

ID=38664051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007161528A Pending JP2008085986A (ja) 2006-08-30 2007-06-19 データ変換装置と電子装置とデータ変換方法

Country Status (5)

Country Link
US (1) US7511636B2 (ja)
EP (1) EP1895441A1 (ja)
JP (1) JP2008085986A (ja)
KR (1) KR20080021520A (ja)
CN (1) CN101136979B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010084562A1 (ja) * 2009-01-21 2010-07-29 パナソニック株式会社 携帯端末、映像データ補修方法及びプログラム
JP2015170952A (ja) * 2014-03-06 2015-09-28 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
JP2018078610A (ja) * 2017-12-15 2018-05-17 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423789B1 (en) * 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
JP5102082B2 (ja) * 2008-03-18 2012-12-19 株式会社リコー 画像形成装置
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
US8296555B2 (en) 2008-09-18 2012-10-23 Marvell World Trade Ltd. Preloader
CN101795334B (zh) * 2009-02-02 2012-06-06 联想(北京)有限公司 待输出数据处理装置和方法
JP5364840B2 (ja) * 2010-02-22 2013-12-11 株式会社東芝 暗号化装置
US8645716B1 (en) 2010-10-08 2014-02-04 Marvell International Ltd. Method and apparatus for overwriting an encryption key of a media drive
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
US9836306B2 (en) 2013-07-31 2017-12-05 Marvell World Trade Ltd. Parallelizing boot operations
IL243789A0 (en) 2016-01-26 2016-07-31 Winbond Electronics Corp Split calculation of the next state to prevent analysis by energy consumption
EP3427435A1 (en) 2016-03-08 2019-01-16 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
CN107786331B (zh) * 2017-09-28 2020-03-17 平安普惠企业管理有限公司 数据处理方法、装置、系统及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249826A (ja) * 1998-03-03 1999-09-17 Fujitsu Ltd 光磁気ディスク制御装置
JP2000228060A (ja) * 1998-12-02 2000-08-15 Olympus Optical Co Ltd 可搬型記憶媒体を用いたデータ記録/再生装置
JP2003198531A (ja) * 2001-12-27 2003-07-11 Denso Corp 共通鍵暗号通信方法及び装置
JP2004022104A (ja) * 2002-06-18 2004-01-22 Toshiba Corp 信号処理装置、信号処理方法、及び記憶媒体
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003203B2 (ja) * 2000-08-10 2007-11-07 サイファーゲート株式会社 暗号化プログラムを記録した記録媒体及び復号化プログラムを記録した記録媒体
JP2003006144A (ja) 2001-06-26 2003-01-10 Hitachi Ltd 半導体集積回路及びコンピュータ読取り可能な記録媒体
CN1359071A (zh) * 2001-11-29 2002-07-17 上海格尔软件股份有限公司 彻底删除硬盘文件的方法
JP4351071B2 (ja) 2002-04-03 2009-10-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Ata/sata複合コントローラ
JP2004106503A (ja) 2002-09-20 2004-04-08 Ricoh Co Ltd 画像形成装置
KR100604833B1 (ko) * 2004-02-18 2006-07-26 삼성전자주식회사 기록 매체의 데이터 보안 소거 방법 및 이를 이용한디스크 드라이브
JP2005346123A (ja) 2004-05-31 2005-12-15 Toshiba Corp パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ
US7958292B2 (en) * 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
JP2006018428A (ja) 2004-06-30 2006-01-19 Toshiba Corp 情報処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249826A (ja) * 1998-03-03 1999-09-17 Fujitsu Ltd 光磁気ディスク制御装置
JP2000228060A (ja) * 1998-12-02 2000-08-15 Olympus Optical Co Ltd 可搬型記憶媒体を用いたデータ記録/再生装置
JP2003198531A (ja) * 2001-12-27 2003-07-11 Denso Corp 共通鍵暗号通信方法及び装置
JP2004022104A (ja) * 2002-06-18 2004-01-22 Toshiba Corp 信号処理装置、信号処理方法、及び記憶媒体
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010084562A1 (ja) * 2009-01-21 2010-07-29 パナソニック株式会社 携帯端末、映像データ補修方法及びプログラム
JP5414699B2 (ja) * 2009-01-21 2014-02-12 パナソニック株式会社 携帯端末、映像データ補修方法及びプログラム
US9049492B2 (en) 2009-01-21 2015-06-02 Panasonic Intellectual Property Corporation Of America Portable terminal, video data repair method and program
JP2015170952A (ja) * 2014-03-06 2015-09-28 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
JP2018078610A (ja) * 2017-12-15 2018-05-17 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム

Also Published As

Publication number Publication date
EP1895441A1 (en) 2008-03-05
KR20080021520A (ko) 2008-03-07
US7511636B2 (en) 2009-03-31
CN101136979B (zh) 2011-04-20
CN101136979A (zh) 2008-03-05
US20080136685A1 (en) 2008-06-12

Similar Documents

Publication Publication Date Title
JP2008085986A (ja) データ変換装置と電子装置とデータ変換方法
KR101394710B1 (ko) 단일 명령어를 이용한 다수 모드에서의 aes 암호화 또는 암호 해독 수행
JP6067757B2 (ja) ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP5134894B2 (ja) ストレージ装置及び暗号鍵変更方法
JP2012090286A (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
US20130290736A1 (en) Data storage device, data control device and method for encrypting data
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
JP2008252174A (ja) コンテンツ処理装置、暗号処理方法及びプログラム
JP4596538B2 (ja) 情報処理装置、記録媒体、およびプログラム
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP4619361B2 (ja) 暗号化指示情報を有する記録媒体
JP2009111687A (ja) 記憶装置、暗号化データ処理方法
JP2008524969A5 (ja)
JP2004199688A (ja) 安全なドライバ
JP4791741B2 (ja) データ処理装置とデータ処理方法
JP2010010824A (ja) 電子装置、および著作権保護チップ
US20100138670A1 (en) Storage apparatus and data writing method
JP2007336446A (ja) データ暗号化装置
JP4853026B2 (ja) 情報処理装置及びプログラム
JP5532516B2 (ja) ストレージ装置、及び、暗号鍵の変更方法
JP5481354B2 (ja) 情報処理装置
JP2007193800A (ja) カード認証システムのセキュリティレベルを向上させる装置及び方法
JP2010219883A (ja) 画像形成装置および画像形成方法
JP2008310678A (ja) 記憶装置、情報機器、及びコンテンツ変換方法
JP4867935B2 (ja) 暗号化データ記憶装置、暗号化データ管理方法、データ暗号化装置、及び暗号化データ管理制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807