(57)【要約】 【課題】  簡易な構成で記憶装置のデータを保護できる電子機器、記憶装置へのアクセス制御方法およびプログラムを提供する。【解決手段】  実施形態によれば、電子機器は、データ管理部とアクセス制御とを有する。データ管理部は、記憶装置に記憶するデータをセクタアドレスで指定するセクタごとに管理し、データへのアクセス要求が発生した場合、アクセス要求によるアクセス対象のデータへのアクセス条件を指定する。アクセス制御部は、データ管理部により指定されたアクセス条件に含まれるセクタアドレスを所定の変換ルールによって変換し、所定の変換ルールで変換したセクタアドレスに基づいて記憶装置にアクセスする。【選択図】図２
2016133829.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を接続する電子機器であって、
前記記憶装置に記憶するデータをセクタアドレスで指定するセクタごとに管理し、データへのアクセス要求が発生した場合、前記アクセス要求によるアクセス対象のデータへのアクセス条件を指定するデータ管理部と、
前記データ管理部により指定されたアクセス条件に含まれるセクタアドレスを所定の変換ルールによって変換し、前記所定の変換ルールで変換したセクタアドレスに基づいて前記記憶装置にアクセスするアクセス制御部と、
を有する電子機器。
【請求項２】
前記アクセス制御部は、前記データ管理部がデータの書込みを要求する場合、前記データ管理部が指定する書込みデータを所定のデータ変換方法によって変換したデータを記憶装置に書き込み、前記データ管理部がデータの読出しを要求する場合、前記記憶装置から読み出したデータを前記所定のデータ変換方法とは逆変換の関係となる逆変換方法により変換したデータを読出しデータとする、
請求項１に記載の電子機器。
【請求項３】
前記アクセス制御部は、所定数の連続するセクタ群を単位ブロックとし、単位ブロックごとにセクタアドレスの変換を行う、
請求項１又は２の何れか１項に記載の電子機器。
【請求項４】
記憶装置を接続する電子機器に用いる記憶装置へのアクセス制御方法であって、
前記記憶装置に記憶するデータをセクタアドレスで指定するセクタごとに管理し、
データへのアクセス要求が発生した場合、前記アクセス要求によるアクセス対象のデータへのアクセス条件を指定し、
前記指定されたアクセス条件に含まれるセクタアドレスを所定の変換ルールによって変換し、
前記所定の変換ルールで変換したセクタアドレスに基づいて前記記憶装置にアクセスする、
記憶装置へのアクセス制御方法。
【請求項５】
さらに、データの書込みが要求された場合、書込みデータを所定のデータ変換方法によって変換したデータを記憶装置に書き込み、データの読出しが要求される場合、前記記憶装置から読み出したデータを前記所定のデータ変換方法とは逆変換の関係となる逆変換方法により変換したデータを読出しデータとする、
請求項４に記載の記憶装置へのアクセス制御方法。
【請求項６】
記憶装置を接続するコンピュータに、
前記記憶装置に記憶するデータをセクタアドレスで指定するセクタごとに管理し、データへのアクセス要求が発生した場合、前記アクセス要求によるアクセス対象のデータへのアクセス条件を指定する機能と、
前記指定されたアクセス条件に含まれるセクタアドレスを所定の変換ルールによって変換し、前記所定の変換ルールで変換したセクタアドレスに基づいて前記記憶装置にアクセスする機能と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、電子機器、記憶装置へのアクセス制御方法およびプログラムに関する。
【背景技術】
【０００２】
一般に、ＰＣ、サーバ又は産業機器などの電子機器は、ＨＤＤ或いはＳＳＤ等のＳＡＴＡ（ｓｅｒｉａｌ  ＡＴＡ）デバイスを記憶装置として具備するものが多い。ＳＡＴＡデバイスが盗難された場合、ＳＡＴＡデバイス内のファイルは、ファイルシステムを通して容易に読み出せる。また、ＳＡＴＡデバイスは、パスワードでロックしても、動作中にＳＡＴＡインターフェースをアナライザでモニタすることにより、データが読み出せる。また、ＳＡＴＡデバイスは、暗号化によりデータを保護することも可能である。しかし、データの暗号化には、暗号化用のハードウェアまたはソフトウェアを取り入れる必要がある。ＳＡＴＡデバイスのデータを暗号化する構成の電子機器は、開発のコストがかかったり、開発工数が多くなったりする可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−８５９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、簡易な構成で記憶装置のデータを保護できる電子機器、記憶装置へのアクセス制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、電子機器は、データ管理部とアクセス制御とを有する。データ管理部は、記憶装置に記憶するデータをセクタアドレスで指定するセクタごとに管理し、データへのアクセス要求が発生した場合、アクセス要求によるアクセス対象のデータへのアクセス条件を指定する。アクセス制御部は、データ管理部により指定されたアクセス条件に含まれるセクタアドレスを所定の変換ルールによって変換し、所定の変換ルールで変換したセクタアドレスに基づいて記憶装置にアクセスする。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る電子機器としてのデジタル複合機の構成例を示すブロック図である。
【図２】図２は、本実施形態に係るデジタル複合機における記憶装置に対するアクセス制御の概要を説明するための図である。
【図３】図３（ａ）は、本実施形態に係るデジタル複合機においてファイルシステムが管理するＬＢＡの例を示す図である。図３（ｂ）は、本実施形態に係るデジタル複合機においてＬＢＡ変換処理した後のＬＢＡの例を示す図である。
【図４】図４（ａ）は、本実施形態に係るデジタル複合機においてファイルシステムが指定するライトコマンドの例である。図４（ｂ）は、図４（ａ）のライトコマンドに対するＬＢＡ変換処理後の処理手順の例を示す。
【図５】図５（ａ）は、本実施形態に係るデジタル複合機においてファイルシステムが管理するエリアの例を示す図である。図５（ｂ）は、図５（ａ）に示すエリアに対応する記憶装置１４内のエリアの例を示す図である。
【図６】図６は、本実施形態に係るデジタル複合機における記憶装置へのアクセス制御の第１動作例を説明するためのフローチャートである。
【図７】図７は、本実施形態に係るデジタル複合機における記憶装置へのアクセス制御の第２動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施の形態について、図面を参照して説明する。  
図１は、実施形態に係る電子機器としてのデジタル複合機（ＭＦＰ，Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｈｅｒａｌ）の構成例を示すブロック図である。  
図１に示す例において、デジタル複合機１は、コントローラ１１（ＳＯＣ：ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）１１、プログラムメモリ１２、メインメモリ１３、記憶装置（ＳＡＴＡ：（ｓｅｒｉａｌ  ＡＴＡ  ）ドライブ）１４、画像処理部１５、スキャナ１６、および、プリンタ１７を有する。
【０００８】
コントローラ１１、プログラムメモリ１２、メインメモリ１３、記憶装置１４、および画像処理部１５は、システム制御部を構成する。システム制御部は、コントローラ１１と外部装置とを接続する通信インターフェースを具備しても良い。システム制御部は、コントローラ１１と操作部とを接続するインターフェースを具備しても良い。
【０００９】
コントローラ１１は、デジタル複合機１の各部を統括的に制御する。コントローラ１１は、例えば、プロセッサ１１ａ、コントローラ、メモリなどを有するＳＯＣ（ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）で実現する。コントローラ１１は、システムバスを介して、デジタル複合機１内の各部に接続する。例えば、コントローラ１１は、スキャナ１６およびプリンタ１７との双方向の通信により、各部へ動作指示を出力したり、各部から種々の情報を取得したりする。また、コントローラ１１は、データ処理を実行するプロセッサ１１ａを有する。プロセッサ１１ａは、プログラムを実行することにより種々の処理を実現する。
【００１０】
プログラムメモリ１２は、プログラムおよび制御データなどを記憶する。プログラムメモリ１２は、例えば、ＦＲＯＭなどの不揮発性のメモリである。例えば、プログラムメモリ１２は、ファイルシステムのプログラムを記憶する記憶領域１２ａ、及び、記憶装置ドライバのプログラムを記憶する記憶領域１２ｂを有する。
【００１１】
ファイルシステムは、データをファイル単位で管理するシステムである。プロセッサ１１ａがファイルシステムのプログラムを実行することにより、コントローラ１１は、ファイルシステムを実現する。以下の説明において、ファイルシステムのプログラムを実行するコントローラ１１は、単にファイルシステムとも称する。例えば、ファイルシステムは、記憶装置内のファイル（データ）へのアクセス（書込み又は読出し）を指示する命令（コマンド）を生成する。
【００１２】
記憶装置ドライバは、記憶装置１４を制御するためのプログラムである。プロセッサ１１ａが記憶装置ドライバのプログラムを実行することにより、コントローラ１１は、記憶装置の制御機能を実現する。以下の説明において、記憶装置ドライバのプログラムを実行するコントローラ１１は、単に記憶装置ドライバとも称する。例えば、記憶装置ドライバは、ファイルシステムが生成するコマンドに応じて記憶装置へアクセスする。記憶装置ドライバは、後述するアドレス（ＬＢＡ）変換処理あるいはデータ変換処理などの機能を有する。
【００１３】
メインメモリ１３は、ワーキングメモリあるいはバッファメモリとして機能するメモリである。メインメモリ１３は、例えば、ＲＡＭなどの揮発性のメモリである。コントローラ１１のプロセッサ１１ａは、メインメモリ１３を使用してプログラムメモリ１２或は記憶装置１４に記憶したプログラムを実行する。
【００１４】
記憶装置１４は、データを記憶する。記憶装置１４は、例えば、書換え可能な不揮発性のメモリである。記憶装置１４は、ＨＤＤ（ｈａｒｄ  ｄｉｓｃ  ｄｒｉｖｅ）、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、あるいは光学ドライブなどの記憶装置である。記憶装置１４は、例えば、ＡＴＡ、ＳＡＴＡ（ｓｅｒｉａｌ  ＡＴＡ）などの特定の規格に準じた仕様の機器（ドライブ）である。記憶装置１４は、規格などに応じた記憶装置ドライバのプログラムを実行するコントローラ１１によって制御される。本実施形態は、記憶装置１４がＳＡＴＡ（ｓｅｒｉａｌ  ＡＴＡ  ）に準拠したドライブ（ＳＡＴＡドライブ）であることを想定して説明する。また、記憶装置１４がＳＡＴＡドライブであれば、記憶装置ドライバは、ＳＡＴＡドライバである。
【００１５】
記憶装置１４は、画像データおよび各種の動作履歴情報などを記憶する。また、記憶装置１４は、制御プログラム、制御データあるいは設定情報などを記憶しても良い。記憶装置１４は、ファイルシステムにより管理されるファイルとしてデータを記憶する。記憶装置１４は、アプリケーションプログラムを記憶する記憶領域１４ａを有する。コントローラ１１のプロセッサ１１ａは、アプリケーションプログラムを実行することにより種々の処理を実現する。以下の説明において、アプリケーションプログラムを実行するコントローラ１１は、単にアプリケーションとも称する。例えば、アプリケーションは、ファイルシステムを介して記憶装置内のファイルにアクセスする。
【００１６】
画像処理部１５は、画像データを処理する。例えば、画像処理部１５は、入力画像処理機能と出力画像処理機能とを有する。入力画像処理機能は、例えば、スキャナ１６が読み取った画像データ（入力画像）を画像処理する。入力画像処理機能は、例えば、シェーディング補正処理、階調変換処理、ライン間補正処理、圧縮伸張処理などの機能を含む。出力画像処理機能は、例えば、プリンタ１７が用紙にプリントするプリント用の画像データを生成する。出力画像処理機能は、入力画像処理機能により処理された画像データをプリント用の画像データに変換する。
【００１７】
スキャナ１６は、原稿の画像を読み取って画像データに変換する装置である。スキャナ１６は、例えば、原稿の読取面における画像を画像データに変換するＣＣＤラインセンサなどにより構成する。スキャナ１６は、原稿台ガラス上に載置された原稿をスキャンする機能を有するものであっても良い。また、スキャナ１６は、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）が搬送する原稿の画像を読み取る機能を有するものであっても良い。スキャナ１６は、例えば、デジタル複合機の本体上部に設置する。スキャナ１６は、コントローラ１１により制御される。スキャナ１６は、原稿の画像データを画像処理部１５へ出力する。
【００１８】
プリンタ１７は、画像形成装置である。プリンタ１７は、記録媒体としての用紙に画像を形成する。プリンタ１７は、特定の画像形成方式に限定されない。例えば、プリンタ１７は、電子写真方式であっても良いし、インクジェット方式であっても良いし、熱転写方式であっても良い。また、プリンタ１７は、カラー印刷機能を有するものであっても良いし、モノクロ印刷機能ものを有するものであっても良い。
【００１９】
次に、本実施形態に係るデジタル複合機における記憶装置１４へのアクセス制御について説明する。  
図２は、記憶装置１４に対するアクセス制御の概要を説明するための図である。  
記憶装置に対するアクセス制御は、コントローラ１１のプロセッサ１１ａが実行する種々のプログラムにより実現する。例えば、プロセッサ１１ａは、ファイルシステム、記憶装置ドライバ、および、アプリケーションなどのプログラムを実行する。アプリケーションプログラムは、ファイルへのアクセスを要求するプログラムである。ファイルシステムのプログラムは、ファイルを制御するためのプログラムである。記憶装置ドライバのプログラムは、記憶装置１４へのアクセスを制御するためのプログラムである。
【００２０】
なお、図１に示す構成例において、記憶装置１４は、アプリケーションプログラムを記憶する。図１に示す構成例において、プログラムメモリ１２は、ファイルシステムおよび記憶装置ドライバのプログラムを記憶する。アプリケーションプログラム及びファイルシステムのプログラムは、プログラムメモリ１２または記憶装置１４のどちらに記憶しても良い。ただし、記憶装置ドライバのプログラムは、記憶装置１４以外のメモリ（図１に示す構成例ではプログラムを記憶する）を記憶する。
【００２１】
コントローラ１１は、プロセッサ１１ａによりアプリケーションプログラムを実行する（ＡＣＴ１）。コントローラ１１は、プロセッサ１１ａによりアプリケーションプログラムを実行することにより様々な処理を実行する。例えば、アプリケーションは、特定のファイル（データ）へのアクセス要求が発生する。アプリケーションは、発生したファイルへのアクセス要求をファイルシステムに指示する。
【００２２】
アプリケーションにより特定のファイルへのアクセス要求が発生すると、コントローラ１１は、ファイルへのアクセス要求をファイルシステムにより処理する（ＡＣＴ２）。コントローラ１１は、プロセッサ１１ａがファイルシステムのプログラムを実行することにより、ファイル（データ）管理部として機能する。例えば、ファイルシステムを実行するコントローラ１１は、アプリケーションにより発生したアクセス要求に応じて、記憶装置１４のファイルに対するアクセス条件を決定する。ファイルシステムは、決定したアクセス条件で記憶装置１４にアクセスすることを要求するコマンドを生成する。
【００２３】
例えば、ファイルシステムは、アクセス条件として、リード又はライト（Ｒ／Ｗ）の指定、セクタアドレス、転送セクタ数、及び、メモリアドレス等を決定する。Ｒ／Ｗの指定は、データの読み出しか、データの書込みかを指定する。セクタアドレスは、記憶装置におけるセクタのアドレスである。例えば、セクタアドレスは、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）を用いる。転送セクタ数は、転送するセクタの数を示す。メモリアドレスは、ライトデータを書き込むメモリ上のアドレスまたはリードデータを格納しているメモリ上のアドレス等である。
【００２４】
ファイルシステムによりコマンドを生成すると、コントローラ１１は、ファイルシステムで生成したコマンドを記憶装置ドライバにより処理する（ＡＣＴ３）。コントローラ１１は、プロセッサ１１ａが記憶装置ドライバのプログラムを実行することによりアクセス制御部として機能する。例えば、記憶装置ドライバを実行するコントローラ１１は、ファイルシステムで生成したコマンドに応じた記憶装置１４へのアクセスを制御する。
【００２５】
本デジタル複合機において、コントローラ１１は、記憶装置ドライバによりファイルシステムが指定するアクセス条件或いはデータを所定の変換ルールで変換する。例えば、コントローラ１１は、記憶装置ドライバによりファイルシステムが指定するアクセス条件のＬＢＡを所定の変換ルールにより変換するＬＢＡ変換処理を行う。また、コントローラ１１は、記憶装置ドライバによりアクセス対象のデータを所定の変換ルールに従って変換するデータ変換処理を行う。
【００２６】
次に、本実施形態に係るデジタル複合機における記憶装置１４内のデータを保護するためのアドレス変換処理（ＬＢＡ変換処理）について説明する。  
ＬＢＡは、ファイルシステムがアクセス対象とするデータを指定するアドレス情報である。ＬＢＡ変換処理は、プロセッサ１１ａが実行する記憶装置ドライバによりファイルシステムが指定するＬＢＡを変換する処理である。コントローラ１１は、ファイルシステムが指定するＬＢＡに直接アクセスするのではなく、記憶装置ドライバによるＬＢＡ変換処理で変換したＬＢＡにアクセスする。
【００２７】
ＬＢＡ変換処理として、コントローラ１１は、ファイルシステムが指定するＬＢＡを予め定められた変換ルールに従って変換する。コントローラ１１は、ファイルシステムによりＬＢＡを含むアクセス条件を指定するコマンドを生成する。例えば、ファイルシステムは、アクセス条件として、転送対象（アクセス対象）となる記憶装置１４におけるエリア（連続エリア）の先頭ＬＢＡとセクタ数とを指定する。従って、記憶装置ドライバは、コマンドのアクセス条件のＬＢＡで指定されるエリアにおけるＬＢＡに対してＬＢＡ変換処理を行う。
【００２８】
図３（ａ）は、記憶装置におけるＬＢＡの例を示す図である。図３（ｂ）は、ＬＢＡ変換処理した後の記憶装置におけるＬＢＡの例を示す図である。また、図４（ａ）は、ファイルシステムにより指定するライトコマンドの例である。図４（ｂ）は、図４（ａ）に示すライトコマンドに対するＬＢＡ変換処理後の処理例を示す。
【００２９】
図３（ａ）は、転送対象とするエリアＥ１を示す。エリアＥ１は、ＬＢＡが「０ｘ００００００１０」から１０セクタが連続するエリアである。図３（ａ）は、エリアＥ１に対応する５つのエリアＥ１１、Ｅ１２、Ｅ１３、Ｅ１４、Ｅ１５を示す。各エリアＥ１１、Ｅ１２、Ｅ１３、Ｅ１４、Ｅ１５は、２セクタが連続するエリアである。図３（ｂ）の各エリアＥ１１´〜Ｅ１５´は、図３（ａ）に示すエリアＥ１に対してＬＢＡ変換処理したものである。
【００３０】
例えば、コントローラ１１は、記憶装置ドライバにより図３（ａ）のエリアＥ１のＬＢＡをＬＢＡ変換処理することにより図３（ｂ）のＬＢＡを得る。図３（ａ）を図３（ｂ）に変換する変換ルールは、ＬＢＡのｂｉｔ６〜０をデータ０ｘ２Ａとエクスクルージブ・オアを取るものである。なお、ＬＢＡ変換処理に用いる変換ルールは、上述の例に限定されるものではない。ＬＢＡ変換処理の変換ルールは、書込みおよび読出しが行えるように予め設定しておくものであれば良い。
【００３１】
ここで、ファイルシステムが指定するコマンドは、図４（ａ）に示す書込み要求（ライトコマンド）であるものとする。図４（ａ）に示すライトコマンドは、アクセス条件がＬＢＡ＝０ｘ００００００１０（ＬＢＡ先頭アドレス）、転送セクタ数＝１０である。図４（ａ）に示すライトコマンドのアクセス条件は、図３（ａ）に示すエリアＥ１に対応する。また、図４（ｂ）は、図３（ａ）および（ｂ）に示すＬＢＡ変換処理を行う場合のライトコマンドの実行手順の例である。図４（ｂ）は、図４（ａ）に示すライトコマンドの処理として、所定の変換ルールで指定される連続ブロック（２セクタ）ごとにデータの書込みを行う手順を示す。
【００３２】
記憶装置ドライバを実行するコントローラ１１は、図４（ａ）のライトコマンドに対して、指定されたエリアＥ１内の各ＬＢＡを変換する。これにより、エリアＥ１は、５つのエリアＥ１１´〜Ｅ１５´に変換される。すなわち、コントローラ１１は、ＬＢＡが「０ｘ００００００１０」〜「０ｘ００００００１９」のエリアを連続する２セクタごとのエリアに変換する。具体的には、コントローラ１１は、記憶装置ドライバにより連続する２セクタごとの単位ブロックを以下の（１）〜（５）に示すように変換する。
（１）「０ｘ００００００１０〜１１」を「０ｘ００００００３Ａ〜３Ｂ」に変換。  
（２）「０ｘ００００００１２〜１３」を「０ｘ００００００３８〜３９」に変換。  
（３）「０ｘ００００００１４〜１５」を「０ｘ００００００３Ｅ〜３Ｆ」に変換。  
（４）「０ｘ００００００１６〜１７」を「０ｘ００００００３Ｃ〜３Ｄ」に変換。  
（５）「０ｘ００００００１８〜１９」を「０ｘ００００００３２〜３３」に変換。
【００３３】
１回のライトコマンドは、アクセス条件として１つの連続エリアしか指定できないものとする。コントローラ１１は、記憶装置ドライバによりＬＢＡ変換処理で単位ブロックとして分割したエリアごとにデータを書込む。つまり、コントローラ１１は、エリアＥ１を指定するライトコマンドに対して、上記（１）〜（５）の各エリアＥ１１´〜１５´にデータ転送（書込み）を実行する。
【００３４】
次に、コントローラ１１が実行する記憶装置ドライバによる読出し要求（リードコマンド）に対する処理について説明する。  
図５（ａ）は、ファイルシステムが指定するデータエリアＥ２の例を示す図である。図５（ｂ）は、図５（ａ）に示すデータエリアＥ２に対応する実際の記憶装置１４内のエリアＥ２１´、Ｅ２２´、Ｅ２３´の例を示す図である。  
図５（ａ）に示すデータエリアＥ２は、図５（ｂ）に示すエリアＥ２１´、Ｅ２２´、Ｅ２３´に対応する。図５（ａ）に示すエリアＥ２は、ファイルシステムが管理するＬＢＡを示す。図５（ａ）に示すデータエリアＥ２は、ファイルシステムではＬＢＡが「Ｍ」〜「Ｍ＋５」である。従って、コントローラ１１は、ファイルシステムによりデータエリアＥ２を指定するアクセス条件としてＬＢＡを「Ｍ」〜「Ｍ＋５」とする。
【００３５】
図５（ｂ）は、ＬＢＡ変換処理後にデータが書き込まれた状態を示す。図５（ｂ）に示すエリアＥ２１´は、ＬＢＡが「Ｘ＋２」及び「Ｘ＋３」である。図５（ｂ）に示すＬＢＡ「Ｘ＋２」及び「Ｘ＋３」（エリアＥ２１´）は、図５（ａ）に示すＬＢＡ「Ｍ」及び「Ｍ＋１」（エリアＥ２１）に対応する。従って、記憶装置ドライバは、ファイルシステムからのＬＢＡ「Ｍ」及び「Ｍ＋１」を指定するリードコマンドに対して、ＬＢＡ「Ｘ＋２」及び「Ｘ＋３」のデータを読み出す。
【００３６】
また、図５（ｂ）に示すエリアＥ２２´は、ＬＢＡが「Ｘ」及び「Ｘ＋１」である。図５（ｂ）に示すＬＢＡ「Ｘ」及び「Ｘ＋１」（エリアＥ２２´）は、図５（ａ）に示すＬＢＡ「Ｍ＋２」及び「Ｍ＋３」（エリアＥ２２）に対応する。従って、記憶装置ドライバは、ファイルシステムからのＬＢＡ「Ｍ＋２」及び「Ｍ＋３」を指定するリードコマンドに対して、ＬＢＡ「Ｘ」及び「Ｘ＋１」のデータを読み出す。
【００３７】
また、図５（ｂ）に示すエリアＥ２３´は、ＬＢＡが「Ｘ＋６」及び「Ｘ＋７」である。図５（ｂ）に示すＬＢＡ「Ｘ＋６」及び「Ｘ＋７」（エリアＥ２３´）は、図５（ａ）に示すＬＢＡ「Ｍ＋４」及び「Ｍ＋５」（エリアＥ２３）に対応する。従って、記憶装置ドライバは、ファイルシステムからのＬＢＡ「Ｍ＋４」及び「Ｍ＋５」を指定するリードコマンドに対して、ＬＢＡ「Ｘ＋６」及び「Ｘ＋７」のデータを読み出す。
【００３８】
上記のように、コントローラ１１は、ＬＢＡ変換処理を行う記憶装置ドライバにより、ファイルシステムが指定するデータを書き込む場合には、アドレス変換したＬＢＡにデータを書き込む。また、コントローラ１１は、ＬＢＡ変換処理を行う記憶装置ドライバにより、データを読み出す場合にはアドレス変換したＬＢＡからデータを読み出す。これにより、記憶装置１４は、当該デジタル複合機の記憶装置ドライバでなければデータへの正常なアクセスができなくなる。
【００３９】
仮に記憶装置が盗難された場合であっても、記憶装置ドライバによるＬＢＡ変換処理なしでは、当該記憶装置からは正しくデータを読み出すことができない。例えば、別の装置は、ファイルシステムによりＬＢＡとして「Ｍ」を指定するリードコマンドを実行しても、ＬＢＡ変換無しでは、ＤＡＴＡ＿０を読み出せない。この結果として、ＬＢＡ変換処理を行う記憶装置ドライバを有するデジタル複合機は、盗難等があっても記憶装置からのデータ漏えいを防止できる。
【００４０】
なお、上述のＬＢＡ変換処理を行うと、１回のコマンドで実施していた連続エリアへのアクセスを複数回に分けて実施することとなる。これは、記憶装置１４へのアクセス制御のパフォーマンスとしては不利になる。ただし、パフォーマンス低下は、ＬＢＡ変換処理の方法を工夫することで抑えることができる。例えば、ＬＢＡ変換処理は、必ずしも個々のＬＢＡに対してアドレス変換を行うものではなく、ブロック単位で行うようにしても良い。ブロック単位のＬＢＡ変換処理は、変換前のＬＢＡをｎセクタ毎にブロック化し、ブロック単位でＬＢＡ変換することにより実現できる。ブロック単位のＬＢＡ変換処理は、ＬＢＡ変換後の各ブロック内が連続するＬＢＡのままなので、ランダムアクセスの頻度を減らせてパフォーマンス低下を抑えることができる。
【００４１】
次に、本実施形態に係るデジタル複合機における記憶装置１４内のデータを保護するためのデータ変換処理について説明する。  
本実施形態に係るデジタル複合機は、記憶装置１４に記憶したデータを保護するために、データに対して変換処理（データ変換処理）を行う機能も有する。コントローラ１１は、記憶装置ドライバによる、データの書込み処理及びデータの読出し処理において、データ変換処理を実行する。
【００４２】
例えば、ファイルシステムがライトコマンドを生成した場合、コントローラ１１は、記憶装置ドライバによりライトコマンドが指定するデータを所定の変換方法で変換する。コントローラ１１は、データ変換後、記憶装置ドライバによりデータ変換したデータを記憶装置１４に書き込む。
【００４３】
また、ファイルシステムがリードコマンドを生成した場合、コントローラ１１は、記憶装置ドライバによりリードコマンドが指定するデータを記憶装置１４から読出す。コントローラ１１は、記憶装置ドライバにより記憶装置１４から読出したデータを書込み処理時の変換方法とは逆関係となる変換方法（逆変換方法）で変換する。コントローラ１１は、記憶装置ドライバにより逆変換方法で変換したデータをファイルシステムに渡す。
【００４４】
上述のデータ変換処理に適用する変換方法及び逆変換方法は、暗号化処理よりも処理負荷が軽い方法を採用する。例えば、データ変換処理に適用する変換方法及び逆の変換方法は、特定データとのエクスクルージブ・オアを取るなどの方法が適用できる。データ変換処理は、記憶装置１４内のデータがランダムな値になるものであれば良い。すなわち、データ変換処理は、暗号化処理よりも、プロセッサの負荷が軽く、処理時間が短縮できる処理である。データ変換処理によれば、記憶装置１４内のデータをランダム値となるので、盗難等でのデータ漏えいを防止できる。また、データ変換処理を上述のＬＢＡ変換処理と組み合わせることにより、記憶装置１４からのデータ漏えいをさらに厳格に防止できる。仮に記憶装置１４が盗難されても、ＬＢＡ変換のルールとデータ変換のルールとの両方が破られなければ、不正にデータを読み出すことはできない。
【００４５】
次に、本実施形態に係るデジタル複合機における記憶装置へのアクセス制御の第１動作例について説明する。  
図６は、記憶装置ドライバによる記憶装置へのアクセス制御の第１動作例を説明するためのフローチャートである。  
コントローラ１１は、アプリケーションによりアクセス要求が発生すると、ファイルシステムによりアクセス要求に応じたコマンドを生成する。コントローラ１１は、ファイルシステムにより生成したコマンドを記憶装置ドライバへ供給する。すなわち、コントローラ１１は、ファイルシステムで生成したコマンドを記憶装置ドライバにより取得する（ＡＣＴ１１、ＹＥＳ）。
【００４６】
コントローラ１１は、記憶装置ドライバによりコマンドを取得すると、当該コマンドの種類を判別する（ＡＣＴ１２、ＡＣＴ１３）。例えば、コントローラ１１は、ファイルシステムが生成したコマンドがデータの書込み要求（ライトコマンド）であるか否かを判別する（ＡＣＴ１２）。取得したコマンドがライトコマンドでない場合（ＡＣＴ１２、ＮＯ）、コントローラ１１は、当該コマンドがデータの読出し要求（リードコマンド）であるか否かを判別する（ＡＣＴ１３）。取得したコマンドがライトコマンドでもリードコマンドでもないと判別した場合（ＡＣＴ１３、ＮＯ）、コントローラ１１は、当該コマンドに応じた処理を実行する（ＡＣＴ１４）。
【００４７】
ファイルシステムが生成したコマンドがライトコマンドであると判別した場合（ＡＣＴ１２、ＹＥＳ）、コントローラ１１は、データ変換処理を実行する（ＡＣＴ１４）。コントローラ１１は、上述したデータ変換処理により、当該ライトコマンドで書込みが指定されるデータ（ライトデータ）全体を所定の変換方法でデータ変換する。コントローラ１１は、データ変換処理したデータを後述するデータ転送設定における転送元情報で示すメモリアドレスに記憶する。
【００４８】
また、コントローラ１１は、当該ライトコマンドで指定されるアクセス条件に対してＬＢＡ変換処理を実行する（ＡＣＴ２２）。コントローラ１１は、ＬＢＡ変換処理として、所定の変換ルール（アドレス変換ルール）に従ってＬＢＡを変換する。  
コントローラ１１は、ＬＢＡ変換処理を実行すると、ＬＢＡ変換処理により生成された連続エリアの数Ｎを設定する（ＡＣＴ２３）。コントローラ１１は、連続エリア数Ｎを設定すると、変数ｉを初期化（ｉ＝１）する（ＡＣＴ２４）。変数ｉを初期化した後、コントローラ１１は、各エリアへのデータの書込み（データ転送）を順に実行する（ＡＣＴ２５−２８）。
【００４９】
すなわち、コントローラ１１は、変数ｉを設定又は更新すると、ｉ番目のエリアに対するデータの書込み（データ転送）を設定する（ＡＣＴ２５）。例えば、コントローラ１１は、ｉ番目のエリアに対するデータ転送設定として、データの転送元情報、データの転送先情報、及びデータの転送数情報をセットする。例えば、コントローラ１１は、転送元情報として、ｉ番目のエリアに書込むデータを蓄積しているメインメモリ１３上のアドレスをセットする。また、コントローラ１１は、転送先情報として、実際にデータを書き込むｉ番目のエリアを示す記憶装置１４上のＬＢＡ（ＬＢＡ変換処理後のＬＢＡ）をセットする。コントローラ１１は、転送数情報として、転送セクタ数（図３に示す例では２セクタ）をセットする。
【００５０】
コントローラ１１は、ｉ番目のエリアに対するデータの書込み設定が完了すると、設定したＬＢＡ変換処理後のＬＢＡに基づいてデータを書込む（ＡＣＴ２６）。ｉ番目のエリアに対するデータの書込みが完了すると、コントローラ１１は、変数ｉをインクリメント（ｉ＝ｉ＋１）する（ＡＣＴ２７）。
【００５１】
コントローラ１１は、変数ｉをインクリメントすると、変数ｉが連続エリア数Ｎ以上であるか否かを判断する（ＡＣＴ２８）。コントローラ１１は、変数ｉが連続エリア数Ｎ以上でないと判断した場合（ＡＣＴ２８、ＮＯ）、上述のＡＣＴ２５−２８の処理を再度実行する。また、コントローラ１１は、変数ｉが連続エリア数Ｎ以上であると判断した場合（ＡＣＴ２８、ＹＥＳ）、当該コマンドに対する処理を終了する。
【００５２】
また、ファイルシステムが生成したコマンドがリードコマンドであると判別した場合（ＡＣＴ１３、ＹＥＳ）、コントローラ１１は、記憶装置１４からのデータ読出処理を行う。まず、コントローラ１１は、当該リードコマンドで指定されるアクセス条件に対してＬＢＡ変換処理を実行する（ＡＣＴ３１）。コントローラ１１は、ＬＢＡ変換処理として、所定の変換ルール（アドレス変換ルール）に従ってＬＢＡを変換する。コントローラ１１は、データの書込み処理時と同じＬＢＡが得られるように、データ書込み時と同じ変換ルールでＬＢＡ変換処理を実行する。
【００５３】
コントローラ１１は、ＬＢＡ変換処理を実行すると、ＬＢＡ変換処理により生成された連続エリアの数Ｎをセットする（ＡＣＴ３２）。コントローラ１１は、連続エリア数Ｎをセットすると、変数ｉを初期化（ｉ＝１）する（ＡＣＴ３３）。変数ｉを初期化した後、コントローラ１１は、各エリアからのデータの読出し（データ転送）を順に実行する（ＡＣＴ３４−３６）。
【００５４】
すなわち、コントローラ１１は、変数ｉを設定又は更新すると、ｉ番目のエリアからのデータの読出し（データ転送）を設定する（ＡＣＴ３４）。例えば、コントローラ１１は、ｉ番目のエリアに対するデータ転送設定として、データの転送元情報、データの転送先情報、及びデータの転送数情報をセットする。例えば、コントローラ１１は、転送元情報として、実際にデータが書き込まれているｉ番目のエリアを示す記憶装置１４上のＬＢＡ（ＬＢＡ変換処理後のＬＢＡ）をセットする。また、コントローラ１１は、転送先情報として、ｉ番目のエリアから読み出したデータを蓄積するメインメモリ１３上のアドレスをセットする。コントローラ１１は、転送数情報として、転送セクタ数をセットする。
【００５５】
コントローラ１１は、ｉ番目のエリアに対するデータ転送（データ読出し）設定が完了すると、設定したＬＢＡ変換処理後のＬＢＡに基づいてデータを読み出す（ＡＣＴ３５）。ｉ番目のエリアからのデータの読出しが完了すると、コントローラ１１は、変数ｉをインクリメント（ｉ＝ｉ＋１）する（ＡＣＴ３６）。
【００５６】
コントローラ１１は、変数ｉをインクリメントすると、変数ｉが連続エリア数Ｎ以上であるか否かを判断する（ＡＣＴ３７）。コントローラ１１は、変数ｉが連続エリア数Ｎ以上でないと判断した場合（ＡＣＴ３７、ＮＯ）、上述のＡＣＴ３４−３７の処理を再度実行する。また、コントローラ１１は、変数ｉが連続エリア数Ｎ以上であると判断した場合（ＡＣＴ３７、ＹＥＳ）、各エリアからのデータ読出しを完了する。
【００５７】
コントローラ１１は、全エリアからのデータの読出しが完了すると、読み出したデータ全体を所定の逆変換方法でデータ変換処理する（ＡＣＴ３８）。逆変換方法は、書込みデータに対する変換方法とは逆変換となる変換方法である。コントローラ１１は、逆変換方法によるデータ変換処理により得られたデータを読出しデータとしてファイルシステムへ渡す。
【００５８】
次に、本実施形態に係るデジタル複合機における記憶装置へのアクセス制御の第２動作例について説明する。  
図７は、記憶装置ドライバによる記憶装置１４へのアクセス制御の第２動作例を説明するためのフローチャートである。  
第２動作例は、第１動作例におけるデータ変換処理のタイミングを変更した動作例である。第２動作例では、ライトコマンドに対して、ＬＢＡ変換処理で分割した各エリアに書き込むデータ毎にデータ変換処理を実行する。また、第２動作例は、リードコマンドに対して、ＬＢＡ変換処理で生成した各連続エリアから読み出したデータ毎にデータ変換処理を実行する。
【００５９】
すなわち、コントローラ１１は、記憶装置ドライバによりコマンドを取得すると（ＡＣＴ５１、ＹＥＳ）、当該コマンドの種類を判別する（ＡＣＴ５２、ＡＣＴ５３）。コントローラ１１は、取得したコマンドがライトコマンドである場合（ＡＣＴ５２、ＹＥＳ）、ＬＢＡ変換処理を実行する（ＡＣＴ６１）。コントローラ１１は、ＬＢＡ変換処理によりＬＢＡを所定の変換ルールで変換する。コントローラ１１は、ＬＢＡ変換処理により生成された連続エリアの数Ｎをセットする（ＡＣＴ６２）。コントローラ１１は、連続エリア数Ｎをセットすると、変数ｉを初期化（ｉ＝１）する（ＡＣＴ６３）。コントローラ１１は、変数ｉを初期化した後、各エリアへのデータの書込み（データ転送）を順に実行する（ＡＣＴ６４−６８）。
【００６０】
コントローラ１１は、変数ｉを設定又は更新すると、ｉ番目のエリアへのデータの書込み（データ転送）を設定する（ＡＣＴ６４）。例えば、コントローラ１１は、ｉ番目のエリアに対するデータ転送設定として、データの転送元情報、データの転送先情報、及びデータの転送数情報をセットする。コントローラ１１は、ｉ番目のエリアに対するデータ転送設定が完了すると、ｉ番目のエリアに書込むデータ（ライトデータ）に対してデータ変換処理を実行する（ＡＣＴ６５）。
【００６１】
コントローラ１１は、ｉ番目のエリアに対するデータ転送設定およびデータ変換処理が完了すると、データ転送設定に従ってデータ変換処理後のデータを書込む（ＡＣＴ６６）。ｉ番目のエリアに対するデータの書込みが完了すると、コントローラ１１は、変数ｉをインクリメント（ｉ＝ｉ＋１）する（ＡＣＴ６７）。コントローラ１１は、変数ｉをインクリメントすると、変数ｉが連続エリア数Ｎ以上であるか否かを判断する（ＡＣＴ６８）。
【００６２】
コントローラ１１は、変数ｉが連続エリア数Ｎ以上でないと判断した場合（ＡＣＴ６８、ＮＯ）、上述のＡＣＴ６４−６８の処理を再度実行する。また、コントローラ１１は、変数ｉが連続エリア数Ｎ以上であると判断した場合（ＡＣＴ６８、ＹＥＳ）、当該コマンドに対する処理を終了する。
【００６３】
また、リードコマンドを取得した場合（ＡＣＴ５３、ＹＥＳ）、コントローラ１１は、当該リードコマンドのアクセス条件に対するＬＢＡ変換処理を実行する（ＡＣＴ７１）。コントローラ１１は、ＬＢＡ変換処理後、ＬＢＡ変換処理により生成された連続エリアの数Ｎをセットする（ＡＣＴ７２）。さらに、コントローラ１１は、変数ｉを初期化（ｉ＝１）する（ＡＣＴ７３）。変数ｉを初期化した後、コントローラ１１は、各エリアからのデータの読出し（データ転送）を順に実行する（ＡＣＴ７４−７８）。
【００６４】
コントローラ１１は、変数ｉを設定又は更新すると、ｉ番目のエリアからのデータの読出し（データ転送）を設定する（ＡＣＴ７４）。コントローラ１１は、ｉ番目のエリアに対するデータ転送設定が完了すると、データ転送（データ読出し）設定に基づいて記憶装置１４からデータを読み出す（ＡＣＴ７５）。
【００６５】
また、コントローラ１１は、ｉ番目のエリアから読み出したデータに対して、所定の逆変換方法でデータ変換処理を実行する（ＡＣＴ７６）。逆変換方法は、ライトデータに対する変換方法とは逆変換となる変換方法である。コントローラ１１は、ｉ番目のエリアから読み出した後にデータ変換処理したデータをデータ転送設定における転送先情報で設定したメモリアドレスに蓄積する。
【００６６】
コントローラ１１は、ｉ番目のエリアからのデータの読み出し及びデータ変換が完了すると、変数ｉをインクリメント（ｉ＝ｉ＋１）する（ＡＣＴ７７）。コントローラ１１は、変数ｉをインクリメントすると、変数ｉが連続エリア数Ｎ以上であるか否かを判断する（ＡＣＴ７８）。
【００６７】
コントローラ１１は、変数ｉが連続エリア数Ｎ以上でないと判断した場合（ＡＣＴ７８、ＮＯ）、上述のＡＣＴ７４−７８の処理を再度実行する。また、コントローラ１１は、変数ｉが連続エリア数Ｎ以上であると判断した場合（ＡＣＴ７８、ＹＥＳ）、当該リードコマンドに対する処理を終了する。
【００６８】
上記のように、本実施形態に係るデジタル複合機は、記憶装置のデータを保護するための処理として、アドレス変換処理とデータ変換処理とを有する。  
アドレス変換処理は、ファイルシステムが指定するＬＢＡ（セクタアドレス）を記憶装置ドライバにより所定の変換ルール（アドレス変換ルール）に従って変換する処理である。デジタル複合機は、記憶装置へのアクセス制御において、アドレス変換処理により変換されたＬＢＡに対してデータのライト又はリードを行う。
【００６９】
上記のアドレス変換処理を適用したデジタル複合機は、記憶装置内のデータ配置がファイルシステムにより指定するデータ配置と異なる。このため、記憶装置内のデータは、ファイルシステムで読み出そうとしても、記憶装置ドライバが無ければ、ファイルの存在を認識することができない。この結果、上記のアドレス変換処理を適用したデジタル複合機は、記憶装置のデータを保護できる。
【００７０】
データ変換処理は、記憶装置への書込みデータを記憶装置ドライバにより所定の変換方法で変換する処理である。また、データ変換処理は、記憶装置ドライバにより記憶装置から読出したデータを書込みデータに対する所定の逆変換方法で変換する処理である。すなわち、デジタル複合機は、ファイルシステムがライトコマンドを発行すると、記憶装置ドライバにより所定の変換方法でデータ変換したデータを記憶装置に書き込む。また、デジタル複合機は、ファイルシステムがリードコマンドを発行すると、記憶装置ドライバにより記憶装置から読出したデータを所定の逆変換方法でデータ変換する。
【００７１】
上記のデータ変換処理を適用したデジタル複合機は、記憶装置内のデータが全てランダムなデータとなる。このため、記憶装置内のデータは、通常のファイルシステムで読み出そうとしても、記憶装置ドライバが無ければファイルの存在を認識することができない。この結果、上記のデータ変換処理を適用したデジタル複合機は、記憶装置のデータを保護できる。
【００７２】
なお、上述した各実施形態では、装置内のメモリにプロセッサが実行するプログラムが予め記録されている場合で説明をした。しかし、プロセッサが実行するプログラムは、ネットワークから装置にダウンロードしても良いし、記録媒体から装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等のプログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば良い。また、予めインストールやダウンロードにより得る機能は、装置内部のＯＳ（オペレーティング・システム）等と協働して実現させるものであってもよい。
【００７３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１…デジタル複合機、１１…コントローラ、１１ａ…プロセッサ、１２…プログラムメモリ、１２ａ、１２ｂ…記憶領域、１３…メインメモリ、１４…記憶装置、１４ａ…記憶領域、１６…スキャナ、１７…プリンタ。
【図１】
2016133829.tif 000003
【図２】
2016133829.tif 000004
【図３】
2016133829.tif 000005
【図４】
2016133829.tif 000006
【図５】
2016133829.tif 000007
【図６】
2016133829.tif 000008
【図７】
2016133829.tif 000009