(57)【特許請求の範囲】
【請求項１】
第１の暗号鍵で暗号化されたデータが格納される記憶領域と、
前記記憶領域のデータをバックアップ保存するためのバックアップ領域と、
前記記憶領域に保存されているデータもしくは該データを復号化した後のデータを前記第１の暗号鍵とは別の暗号鍵で暗号化して前記バックアップ領域に保存するバックアップ動作と、前記バックアップ領域に保存されているデータを復号化し、この復号化後のデータに基づいて前記記憶領域のデータを修復する修復動作とを行う制御部と
を有し、
前記制御部は、前記バックアップ動作の実行時に前記記憶領域に保存されているデータが破壊されているか否を判別し、破壊されている場合は前記修復動作を実行する
ことを特徴とするデータ管理装置。
【請求項２】
前記制御部は、外部からの指示に応じて前記修復動作を実行する
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記制御部は、前記修復動作の実行時に前記バックアップ領域に保存されているデータが破壊されているか否かを判別し、破壊されている場合は該修復動作を中止する
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項４】
前記制御部は、前記バックアップ動作の開始条件の成立を監視し、成立した場合に前記バックアップ動作を開始する
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項５】
前記記憶領域は複数のブロックに区分され、前記開始条件は前記ブロック毎に設定されており、前記制御部は前記ブロック毎の開始条件の成立を監視し、前記開始条件の成立したブロックに対して前記バックアップ動作を実行する
ことを特徴とする請求項４に記載のデータ管理装置。
【請求項６】
前記開始条件は前記バックアップ動作の実行頻度を示す条件である
ことを特徴とする請求項４または５に記載のデータ管理装置。
【請求項７】
情報処理装置を、請求項１乃至６のいずれか１つに記載のデータ管理装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのバックアップ保存を行うデータ管理装置およびプログラムに関する。
【背景技術】
【０００２】
重要なデータは、その破壊に備えてバックアップ保存することが一般に行われる。バックアップが磁気テープなどの記録媒体に行われる場合、その盗難に備えてデータを暗号化してバックアップすることや、さらにはデータを複数のブロックに分割し、ブロック毎に異なる暗号鍵で暗号化してバックアップすることなども行われている（たとえば、特許文献１参照。）。
【０００３】
また、バックアップファイルの破壊や改竄に備えて、バックアップファイルを複数作成しておき、チェックサムなどからバックアップファイルの正常／異常を判別して正常なバックアップファイルを使用するようにしたシステムもある（たとえば、特許文献２参照。）。
【０００４】
さらに、近年はセキュリティ性向上のためにデータの暗号化が頻繁に行われており、バックアップ対象の元データ自体が既に暗号化されている場合もある。
【０００５】
【特許文献１】特開２００６−２６０２２４号公報
【特許文献２】特開２００４−１６４２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
データの暗号化はセキュリティの向上に貢献するが、データが破壊された場合には、その修復を困難にする。たとえば、データを保存するメモリ素子自体の不具合や電気的なノイズあるいは電源遮断などの要因でメモリ上のデータが破壊される場合がある。暗号化されていないデータの場合には、その内容をある程度判読できるため、壊れた部分の特定や壊れた部分をユーザが直接書き換えるといった方法による修復の余地がある。しかし、データが暗号化されている場合には上記の手法による修復は一切不可能になる。
【０００７】
一方、元データ自体が暗号化されている場合のバックアップを、その元データを復号化した平文の状態で行うとセキュリティが低下してしまうので、暗号化されたデータのバックアップは暗号化された状態で行うことが好ましく、セキュリティの確保とデータ破壊時の修復性との両立が難しいという問題があった。
【０００８】
本発明は、上記の問題を解決しようとするものであり、暗号化されたデータに関するバックアップをセキュリティ性とデータ破壊時の修復性とを備えて管理することのできるデータ管理装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１０】
［１］第１の暗号鍵で暗号化されたデータが格納される記憶領域と、
前記記憶領域のデータをバックアップ保存するためのバックアップ領域と、
前記記憶領域に保存されているデータもしくは該データを復号化した後のデータを前記第１の暗号鍵とは別の暗号鍵で暗号化して前記バックアップ領域に保存するバックアップ動作と、前記バックアップ領域に保存されているデータを復号化し、この復号化後のデータに基づいて前記記憶領域のデータを修復する修復動作とを行う制御部と
を有し、
前記制御部は、前記バックアップ動作の実行時に前記記憶領域に保存されているデータが破壊されているか否を判別し、破壊されている場合は前記修復動作を実行する
ことを特徴とするデータ管理装置。
【００１１】
上記発明では、暗号化されている元データは、別の暗号鍵で暗号化されてバックアップ保存される。両者が暗号化されることで高いセキュリティが確保される。元データとバックアップデータの両者が暗号化されている場合には、破壊されたデータをそのデータの内容を判読して復旧するといった修復手法はとれなくなるが、」データ管理装置が修復動作を行うのでデータが破壊された場合にもその修復が可能になる。
【００１３】
上記発明では、バックアップ動作を行う際に元データの破壊を判別して修復するので、壊れた元データがバックアップ保存されて、以後のバックアップデータに基づく修復が不能になることが防止される。
【００１４】
［２］前記制御部は、外部からの指示に応じて前記修復動作を実行する
ことを特徴とする［１］に記載のデータ管理装置。
【００１５】
上記発明では、たとえば、記憶領域に元データを格納するモジュールによって元データの破壊が発見された場合に、そのモジュールからの指示で修復動作が行われる。
【００１６】
［３］前記制御部は、前記修復動作の実行時に前記バックアップ領域に保存されているデータが破壊されているか否かを判別し、破壊されている場合は該修復動作を中止する
ことを特徴とする［１］に記載のデータ管理装置。
【００１７】
上記発明では、バックアップ領域のデータが破壊されている場合は、このデータに基づく修復動作は中止される。無駄な修復動作が回避される。また、壊れたバックアップデータによって正常に修復されたとされるミスバックアップが防止される。
【００１８】
［４］前記制御部は、前記バックアップ動作の開始条件の成立を監視し、成立した場合に前記バックアップ動作を開始する
ことを特徴とする［１］に記載のデータ管理装置。
【００１９】
上記発明では、予め定めた開始条件が成立したとき、バックアップ動作が開始される。開始条件は固定であるいは変更可能に設定される。
【００２０】
［５］前記記憶領域は複数のブロックに区分され、前記開始条件は前記ブロック毎に設定されており、前記制御部は前記ブロック毎の開始条件の成立を監視し、前記開始条件の成立したブロックに対して前記バックアップ動作を実行する
ことを特徴とする［４］に記載のデータ管理装置。
【００２１】
上記発明では、ブロック毎に、異なる開始条件でバックアップ動作を開始させることができる。
【００２２】
［６］前記開始条件は前記バックアップ動作の実行頻度を示す条件である
ことを特徴とする［４］または［５］に記載のデータ管理装置。
【００２３】
上記発明では、たとえば、データの重要度や退避のリアルタイム性に応じて実行頻度が変わるように開始条件を設定する。
【００２８】
［７］情報処理装置を、［１］乃至［６］のいずれか１つに記載のデータ管理装置として動作させるためのプログラム。
【発明の効果】
【００２９】
本発明に係るデータ管理装置およびプログラムによれば、暗号化されたデータのバックアップをセキュリティ性とデータ破壊時の修復性とを備えて管理することができる。
【発明を実施するための最良の形態】
【００３０】
以下、図面に基づき本発明の実施の形態を説明する。
【００３１】
図１は、本発明の実施の形態に係るデータ管理装置を含む複合機１０の概略構成を示している。複合機１０は、原稿画像を光学的に読み取ってその複製画像を記録紙に印刷するコピー機能、読み取った原稿の画像データをファイルにして保存したり外部端末へ送信したりするスキャン機能、外部端末から受信した印刷データに基づいてラスタライズした画像を記録紙に印刷して出力するプリンタ機能、画像データを送受信するファクシミリ機能などを備えている。
【００３２】
複合機１０は、当該複合機１０の動作を統括制御する制御部としての機能を果たすＣＰＵ（Central Processing Unit）１１を備え、ＣＰＵ１１にはバス１２を通じてＲＡＭ（Random Access Memory）１３、ＲＯＭ（Read Only Memory）１４、バックアップ用メモリ１５、印刷部１６、読取部１８、ファクシミリ部１９、ユーザ認証部２１、表示部２２、操作部２３、ネットワークＩ／Ｆ（Interface)部２４などが接続されている。
【００３３】
ＲＯＭ１４は各種のプログラムや固定のデータを格納している。ＣＰＵ１１は、ＲＯＭ１４に格納されているプログラムにしたがって動作することで複合機１０やデータ管理装置としての機能を実現する。ＲＯＭ１４には、コピー機能やファクシミリ機能などの機能を実現するための各種モジュールやＯＳ（Operating System）などを含むシステムプログラム３１と、データ管理装置としての機能、すなわちデータのバックアップに関する機能、を実現するためのメモリ管理モジュール３２が記憶されている。また、データの暗号化に使用される暗号鍵が登録された暗号鍵テーブル３３やバックアップ対象のデータの初期値を示す初期値データ３４なども記憶されている。
【００３４】
ＲＡＭ１３は、ＣＰＵ１１がプログラムを実行する際に各種のデータを一時的に格納するワークメモリや画像メモリとして使用される。ＲＡＭ１３にはバックアップ対象のデータ（元データ４１）なども記憶される。
【００３５】
バックアップ用メモリ１５は、元データ４１をバックアップ保存するためのメモリである。バックアップ用メモリ１５にバックアップ保存されたデータはバックアップデータ５１である。バックアップ用メモリ１５は不揮発メモリが好ましい。
【００３６】
表示部２２は、液晶ディスプレイ（ＬＣＤ…Liquid Crystal Display）などで構成され、各種の操作画面や設定画面、案内画面の表示に使用される。操作部２３は、表示部２２の画面上に形成されてタッチパネル、テンキーやスタートボタンといった各種操作スイッチで構成され、ユーザから各種の操作を受け付ける機能を果たす。
【００３７】
印刷部１６は、画像データに応じた画像を記録紙に印刷する機能を果たす。ここでは、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。
【００３８】
読取部１８は、原稿を光学的に読み取って画像データを取得する機能を果たす。読取部１８は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路などを備えて構成される。
【００３９】
ファクシミリ部１９は、ファクシミリ送信やファクシミリ受信のための通信制御を行う。
【００４０】
ユーザ認証部２１は、ユーザ認証を行う。たとえば、操作部２３から入力されたユーザＩＤとパスワードに基づいてユーザ認証する。
【００４１】
ネットワークＩ／Ｆ部２４は、ＬＡＮなどのネットワークを通じて外部端末と通信する機能を果たす。
【００４２】
図２は、バックアップに関連する部分の概略構成等を示している。バックアップ対象の元データ４１が格納される元データ領域４２は、システムプログラム３１に含まれるモジュールＡ、Ｂ、Ｃ…に対応付けて領域Ａ、Ｂ、Ｃ、…のように区分けされており、各領域Ａ、Ｂ、Ｃ、…は対応するモジュールＡ、Ｂ、Ｃ…はバックアップ対象のデータを格納する領域に割り当てられている。
【００４３】
元データ領域４２に格納される元データ４１は暗号化されている。ここでは、モジュール毎に異なる暗号鍵を使用して暗号化されている。図２の例では、モジュールＡはＫｅｙＡを暗号鍵として使用し、モジュールＢは暗号鍵としてＫｅｙＢを使用するというようにモジュール毎に異なる暗号鍵が使用される。なお、元データ４１の暗号化に使用される暗号鍵は各モジュールＡ、Ｂ、Ｃ…に共通であってもかまわない。
【００４４】
メモリ管理モジュール３２は、元データ領域４２に格納されている暗号化された元データ４１を、当該メモリ管理モジュール３２に専用の暗号鍵であるＫｅｙＭを使用して暗号化した後、バックアップ用メモリ１５に保存する。なお、暗号化されている元データ４１を一旦復号化してからＫｅｙＭで暗号化してバックアップ用メモリ１５に保存してもよいし、暗号化された状態の元データ４１を復号化せずにそのままＫｅｙＭで暗号化してバックアップ用メモリ１５に保存する構成としてもよい。本実施の形態では前者の動作を行う。
【００４５】
メモリ管理モジュール３２は各モジュールが暗号化に使用する暗号鍵（ＫｅｙＡ、ＫｅｙＢ…など）とその暗号鍵（ＫｅｙＡ、ＫｅｙＢ…など）が使用される領域Ａ、Ｂ、Ｃ…を特定する情報とが関連付けて登録された暗号鍵テーブル３３を保持している。また、暗号鍵テーブル３３には、メモリ管理モジュール３２に専用の暗号鍵であるＫｅｙＭも登録されている。
【００４６】
一方、各モジュールＡ、Ｂ、Ｃ…は自モジュールで使用する暗号鍵は認識しているが、他のモジュールが使用する暗号鍵やメモリ管理モジュール３２が使用する暗号鍵ＫｅｙＭについては認識していない。また、各モジュールＡ、Ｂ、Ｃ…は自モジュールに割り当てられた元データ領域４２（領域Ａ、Ｂ、Ｃ…）にはアクセスするが他のモジュールに割り当てられている元データ領域４２やバックアップ用メモリ１５にはアクセスしないように構成されている。
【００４７】
まず、各モジュールの動作を、モジュールＡを例に説明する。モジュールＡは、自モジュールＡに割り当てられた領域Ａにデータを格納する場合は、そのデータを自モジュールＡの暗号鍵ＫｅｙＡで暗号化して格納する。また、領域Ａに格納されているデータを読み出すときは、そのデータを自モジュールＡの暗号鍵ＫｅｙＡで復号化して読み出す。この格納や読み出しのアクセスを行う際に、モジュールＡは自身でそのアクセス対象の領域の元データ４１が破壊されているか否かをチェックし、破壊されている場合はそのデータの修復をメモリ管理モジュール３２に依頼する（図２、Ｒｃ）。
【００４８】
メモリ管理モジュール３２は、元データ領域４２に格納されている元データ４１をバックアップ用メモリ１５に保存するバックアップ動作と、破壊された元データ４１を修復する修復動作とを行う。
【００４９】
バックアップ動作では、元データ４１のデータをその格納されている領域Ａ、Ｂ、Ｃに応じた暗号鍵で復号化した後、復号後のデータをメモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭで暗号化し、この暗号後のバックアップデータ５１をバックアップ用メモリ１５に保存する。このとき、元データ４１が破壊されているか否かをチェックし、破壊されている場合はその修復をバックアップ用メモリ１５に保存してあるバックアップデータ５１に基づいて行う。
【００５０】
バックアップ動作は、システムプログラム３１に基づくシステム動作（コピー機能やプリンタ機能などを実現するための各モジュールの動作）のバックグラウンドで行われる。具体的には、システム動作に係わるモジュールの優先度よりメモリ管理モジュール３２のバックアップ処理の優先度を低く設定してあり、ＯＳがこの優先度に基づいて実行状態にするモジュール（処理やタスク）を切り替えることで、システム動作のバックグラウンドでバックアップ動作が実行されるようになっている。
【００５１】
また、メモリ管理モジュール３２は、所定の開始条件の成立を監視し、成立した場合にバックアップ動作を開始するようになっている。元データ領域４２は、データが破壊された場合の影響度および／またはリアルタイム性（バックアップの必要性に関するリアルタイム性）に基づいて複数のブロックに区分されており、ブロック毎に開始条件が設定されている。なお、ブロックと領域Ａ、Ｂ、Ｃ…とは別ものであり、たとえば、領域Ａの中に複数のブロックが設けられる。
【００５２】
元データ領域４２内での各ブロックの位置とそのブロックに設定された開始条件とは関連付けて記憶されており、メモリ管理モジュール３２はこれを参照して各ブロックに対するバックアップ動作の開始タイミングを制御するようになっている。
【００５３】
開始条件はバックアップ動作の実行頻度に対応しており、開始条件１は、実行頻度が最高レベルとなる条件であり、データの書き換えが発生したことにより成立し、データの書き換えが発生する毎にバックアップ動作が実行される条件である。開始条件１は、たとえば、コピー枚数やプリント枚数などのカウンタ（カウント値）を保存するブロックに対して設定される。
【００５４】
開始条件２は実行頻度が高レベルとなる条件であり、短い（たとえば１秒に１回の）周期で成立し、この短い周期でバックアップ動作が実行される条件である。開始条件２は、たとえば、プログラムパラメータなどを格納するブロックに対して設定される。
【００５５】
開始条件３は実行頻度が中レベルとなる条件であり、長い（たとえば１０分に１回の）周期で成立し、この長い周期でバックアップ動作が実行される条件である。開始条件３は、たとえば、ユーザパラメータなどを格納するブロックに対して設定される。
【００５６】
開始条件４は実行頻度が低レベルとなる条件であり、電源立ち上げ時に成立し、電源立ち上げ時にバックアップ動作が実行される条件である。開始条件４は調整データなどを格納するブロックに対して設定される。
【００５７】
たとえば、カウンタは課金にかかわる重要データであり、一枚出力する度にカウントアップされることから、データ破壊の影響度とリアルタイム性の双方において重要であるため、これを格納するブロックの開始条件は開始条件１に設定する。なお、データ破壊の影響度とリアルタイム性はほぼ同一の関係になることが多い。また、データの重要度(データ破壊の影響度やリアルタイム性)はそのデータ自体（データの属性）に起因する。
【００５８】
修復動作は、上記のバックアップ動作中にデータ破壊を見つけた場合にメモリ管理モジュール３２によって自動的に行われるほか、各モジュールＡ、Ｂ、Ｃ…からの依頼Ｒｃに基づいて行われる。
【００５９】
このほかメモリ管理モジュール３２は、データ破壊を見つけ出すための情報、ここではチェックサム値を管理する機能も備えている。具体的には、暗号化した元データ４１をモジュールが元データ領域４２に格納するとき、メモリ管理モジュール３２はこの元データ４１の暗号化前の平文の状態でのチェックサム値をモジュールから受け取り、該チェックサム値を暗号化（たとえば、暗号鍵ＫｅｙＭを使用して暗号化）して保存する。そして、バックアップ動作などを行う際に、元データ４１を復号化した後のデータのチェックサムと、保存してある暗号化されたチェックサムを復号化した値とを比較することで、データ破壊の有無を判定するようになっている。
【００６０】
以下、流れ図に基づいて各動作を詳細に説明する。
【００６１】
図３は、複合機１０のＣＰＵ１１が行うメイン処理のうちバックアップに関連する部分の流れを示している。メイン処理の例には、コピー用のメイン処理、プリンタ用のメイン処理、ファクシミリ用のメイン処理、スキャン用のメイン処理などがあり、モジュール別に設けられている。
【００６２】
メイン処理においてＣＰＵ１１は、設定されている開始条件が成立したブロックが存在するか否かを調べ（ステップＳ１０１）、開始条件の成立したブロックがある場合は（ステップＳ１０１；Ｙ）、そのブロックに対するバックアップ動作（バックアップ処理）をメモリ管理モジュール３２にバックグラウンドで実行させる(ステップＳ１０２)。また元データ４１に対するアクセスの必要が生じたときは（ステップＳ１０３：Ｙ）、後述のデータアクセス処理を行う(ステップＳ１０４)。
【００６３】
図４は、メモリ管理モジュール３２がバックグラウンドで行うバックアップ処理の流れを示している。開始条件の成立したブロックの元データ４１を復号化し（ステップＳ２０１）、復号されたデータのチェックサムを計算する（ステップＳ２０２）。この復号化に使用する暗号鍵はＫｅｙＡなどモジュール用の暗号鍵である。次に、保存してある暗号時のチェックサムを復号化し（ステップＳ２０３）、両チェックサム値が等しいか否かを調べる（ステップＳ２０４）。保存してある暗号時のチェックサムとは、当該ブロックの元データ４１をモジュールが保存したときにそのモジュールから渡されたチェックサム値をメモリ管理モジュール３２で暗号化して保存しておいたものである。
【００６４】
両チェックサム値が等しい場合は(ステップＳ２０４：Ｙ)、該当するブロックの元データ４１を復号化した後のデータを、メモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭで暗号化し、バックアップ用メモリ１５の該当領域に上書き保存して（ステップＳ２０５）処理を終了する（エンド）。
【００６５】
両チェックサム値が等しくない場合は（ステップＳ２０４；Ｎ）、その元データ４１が破壊されていると判断し(ステップＳ２０７)、その修復を試みる。すなわち、その破壊されている元データ４１に対応するバックアップデータ５１をバックアップ用メモリ１５から読み出して復号化し(ステップＳ２０８)、その復号後のチェックサムを計算する（ステップＳ２０９）。また、保存してある暗号時の当該元データ４１に対応するチェックサムを復号化し（ステップＳ２１０）、両チェックサム値が等しいか否かを調べる（ステップＳ２１１）。
【００６６】
両チェックサム値が等しい場合は（ステップＳ２１１：Ｙ）、復号後のバックアップデータをモジュール用の暗号鍵で暗号化して、該暗号化後のデータを該当の破壊された元データ４１に上書きして（ステップＳ２１２）処理を終了する。
【００６７】
両チェックサム値が等しくない場合は（ステップＳ２１１；Ｎ）、バックアップデータ５１も破壊されていると判断し(ステップＳ２１３)、該当の元データ４１とバックアップデータ５１を共に初期値データ３４などを用いて初期化した後、元データ４１についてはモジュール用の暗号鍵を使用し、バックアップデータ５１についてはメモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭを使用して暗号化した後、該当の領域にそれぞれ格納し、さらに初期化したデータのチェックサムを暗号化して保存時のチェックサム値を更新して（ステップＳ２１４）処理を終了する（エンド）。なお、初期値のチェックサム値は予めＲＯＭ１４に記憶されていてもよいし、上記の処理の実行時に計算してもよい。
【００６８】
図５は、図３のステップＳ１０４のデータアクセス処理の詳細を示している。アクセス先の元データ４１（アクセス先のデータを含むブロック）の復号化を行い（ステップＳ３０１）、復号後のデータのチェックサムを計算する（ステップＳ３０２）。また、そのアクセス先の領域（アクセス先のデータを含むブロック）の暗号時に保存してあるチェックサム値をメモリ管理モジュール３２に要求し（ステップＳ３０３）、これら両チェックサム値が等しいか否かを調べる(ステップＳ３０４)。メモリ管理モジュール３２はこの要求に応じて該当する暗号化されたチェックサムを復号化した値をモジュールに返す。
【００６９】
上記の両チェックサム値が一致する場合は（ステップＳ３０４；Ｙ）、元データ４１の読み出し、あるいは書き換えなどのアクセス処理を実行する（ステップＳ３０５）。データを書き換える場合は、その変更後のデータ（このデータを含むブロック）のチェックサムを計算し、その値をメモリ管理モジュール３２に渡して保存して貰うと共に（ステップＳ３０６）、変更したデータ（このデータを含むブロック）を自モジュールに割り当てられている暗号鍵で暗号化したものを元データ領域４２内の該当領域に格納して(ステップＳ３０７)処理を終了する（エンド）。
【００７０】
両チェックサム値が一致しない場合は（ステップＳ３０４；Ｎ）、アクセス先の元データ４１が破壊されていると判断し(ステップＳ３０８)、当該モジュールからメモリ管理モジュール３２に対してその破壊された領域（破壊されたデータを含むブロック）の元データ４１の修復を依頼する(ステップＳ３０９  図２：Ｒｃ)。
【００７１】
修復完了もしくは修復不可能で初期化処理がなされた後、当該モジュールはデータを書き換える場合には、データの変更を行い(ステップＳ３１０)、その変更後のデータ（このデータを含むブロック）のチェックサムを計算し、その値をメモリ管理モジュール３２に渡して保存して貰うと共に（ステップＳ３１１）、変更したデータ（このデータを含むブロック）を自モジュールに割り当てられている暗号鍵で暗号化したものを元データ領域４２内の該当領域に格納して(ステップＳ３１２)処理を終了する（エンド）。
【００７２】
図６は、メモリ管理モジュール３２が行うデータの修復動作の流れを示している。修復対象の元データ４１（修復対象のデータを含むブロック）に対応するバックアップデータ５１をバックアップ用メモリ１５から読み出してメモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭで復号し（ステップＳ４０１）、復号後のデータ（このデータを含むブロック）のチェックサムを計算し(ステップＳ４０２)、保存してある暗号時のチェックサムと比較する（ステップＳ４０３）。
【００７３】
両チェックサムが一致する場合は（ステップＳ４０４：Ｙ）、復号されたバックアップデータを修復要求元のモジュールに割り当てられている暗号鍵で暗号化したものを該当の元データ４１（このデータを含むブロック）に上書きして（ステップＳ４０５）処理を終了する（エンド）。なお、復号されたバックアップデータを該当の元データ４１（このデータを含むブロック）に上書きし、暗号化は修復要求元のモジュールで行うように構成されてもよい。
【００７４】
両チェックサムが一致しない場合は（ステップＳ４０４：Ｎ）、バックアップデータ５１もデータが破壊されていると判断し(ステップＳ４０６)、該当の元データ４１とバックアップデータとを共に初期値データ３４などを用いて初期化して（ステップＳ４０７）処理を終了する（エンド）。なお、バックアップデータ５１はステップＳ４０７にてメモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭで暗号化した後バックアップ用メモリ１５に保存するが、元データ４１については修復要求元のモジュールに割り当てられている暗号鍵で暗号化したものを該当の元データ４１に上書きしてもよいし、暗号化前の生データを上書きもしくは修復要求元のモジュールに返すように構成されてもよい。
【００７５】
図７は、メモリ管理モジュール３２が行うチェックサムの管理に関する処理の流れを示している。メモリ管理モジュール３２は、あるモジュールからチェックサム値を受け取ると（ステップＳ５０１）、そのチェックサム値をメモリ管理モジュール３２に専用の暗号鍵ＫｅｙＭで暗号化し（ステップＳ５０２）、そのモジュール毎に割り当てられたチェックサム保存領域に該暗号化後のチェックサム値を保存して(ステップＳ５０３)処理を終了する（エンド）。なお、チェックサムを暗号化するために使用する暗号鍵は、メモリ管理モジュール３２に専用の暗号鍵であればよく、バックアップデータを暗号化する暗号鍵ＫｅｙＭと同一でなくてもよい。また、モジュール毎に割り当てられたチェックサム保存領域は、バックアップデータ５１を保存する領域とは別の領域や別のメモリ素子にすることが望ましい。なお、チェックサム値はブロック毎に保存される。
【００７６】
このように本実施の形態に係わるデータ管理装置を含む複合機１０では、メモリ管理モジュール３２がバックアップ動作および修復動作を管理して実行するので、元データ４１とバックアップデータ５１の双方が暗号化されていても、データ破壊を発見し、その箇所を特定して修復することができる。また、元データ４１とバックアップデータ５１の双方が暗号化されているので高いセキュリティ性が確保される。特にバックアップデータ５１の暗号化には他のモジュールが知らないメモリ管理モジュール３２に専用の暗号鍵を使用するので、バックアップデータ５１に対する高い機密性を確保することができる。
【００７７】
また、バックアップ動作を複合機１０におけるシステム動作のバックグラウンドで行うので、バックアップ動作を随時行ってもコピーやプリントアウトなど複合機１０の各機能に係わる動作のパフォーマンス低下を招くことはない。
【００７８】
さらに、データが破壊した場合のシステムへの影響度やリアルタイム性に応じてデータの重要度を決定し、この重要度に応じた実行頻度（開始条件）でそのデータに対するバックアップ動作を行うようにしたので、重要でリアルタイム性の高いデータについては元データ４１とバックアップデータ５１との高い整合性を確保しつつ、重要度の低いデータについてはバックアップ動作の実行頻度が低くなるのでＣＰＵ１１の負担を軽減することができる。
【００７９】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００８０】
たとえば、データ管理装置を含む複合機１０を例に説明したが、データ管理装置は他の装置に組み込まれてもよいし、単独で構成されてもよい。元データ４１が格納される元データ領域４２とバックアップ用メモリ１５とは同一メモリ素子に設けられてもよいが、別のメモリ素子に設けることが好ましい。
【００８１】
実施の形態では、暗号化されている元データ４１を一旦復号化した後、メモリ管理モジュール３２に専用の暗号鍵で暗号化してバックアップ保存するようにしたが、暗号化された状態の元データ４１をそのままメモリ管理モジュール３２に専用の暗号鍵で暗号化してバックアップ保存してもよい。
【００８２】
データ破壊を検知する方法は、実施の形態で例示した方法に限定されない。たとえば、チェックサム以外にハッシュ値などを使用してもよい。また、バックアップ動作をバックグラウンドで行うことは必須ではない。
【００８３】
元データ４１は暗号化されていない平文であってもかまわない。また、バックアップ動作の実行頻度をデータの重要度（開始条件）に応じて制御する点に着目する場合には、元データ４１やバックアップデータ５１は暗号化されなくてもよい。
【００８４】
また、ブロックに分けて管理したが、ブロックに分けずにバックアップ動作や修復動作を行ってもよい。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態に係るデータ管理装置を含む複合機の構成を示すブロック図である。
【図２】本発明の実施の形態に係る複合機のうちバックアップ機能に関連する部分の構成等を示す説明図である。
【図３】本発明の実施の形態に係るデータ管理装置を含む複合機のＣＰＵが行うメイン処理のうち、バックアップに関連する部分の動作を示す流れ図である。
【図４】メモリ管理モジュールがバックグラウンドで行うバックアップ処理を示す流れ図である。
【図５】図３のデータアクセス処理（ステップＳ１０４）の詳細を示す流れ図である。
【図６】メモリ管理モジュールが行うデータの修復動作示す流れ図である。
【図７】メモリ管理モジュールが行うチェックサムの管理に関する処理を示す流れ図である。
【符号の説明】
【００８６】
１０…複合機
１１…ＣＰＵ
１２…バス
１３…ＲＡＭ
１４…ＲＯＭ
１５…バックアップ用メモリ
１６…印刷部
１８…読取部
１９…ファクシミリ部
２１…ユーザ認証部
２２…表示部
２３…操作部
２４…ネットワークＩ／Ｆ部
３１…システムプログラム
３２…メモリ管理モジュール
３３…暗号鍵テーブル
３４…初期値データ
４１…元データ
４２…元データ領域
５１…バックアップデータ
【図１】
0005104137.tif 000002
【図２】
0005104137.tif 000003
【図３】
0005104137.tif 000004
【図４】
0005104137.tif 000005
【図５】
0005104137.tif 000006
【図６】
0005104137.tif 000007
【図７】
0005104137.tif 000008