(57)【特許請求の範囲】
【請求項１】
保護対象データ及びこの保護対象データにアクセスするための処理プログラムを一時的に記憶するメモリと、前記メモリ内の処理プログラムを実行するＣＰＵとを備え、前記処理プログラムの実行中に前記保護対象データを保護するデータ保護装置であって、
前記メモリ内の記憶領域のうちの前記保護対象データの記憶領域とは異なる記憶領域に設けられ、前記保護対象データのアドレス情報、長さ情報及びアクセス履歴情報を含む管理用情報を記憶するデータ管理手段と、
前記データ管理手段内のアクセス履歴情報に基づいて、一定期間毎に前記保護対象データへのアクセスの有無又はしきい値に対する前記アクセスの多少を判定する判定手段と、
この判定の結果、前記アクセスが無い又はしきい値より少ない場合には、当該判定に用いたアクセス履歴情報を含む管理用情報内のアドレス情報及び長さ情報に基づいて、この管理用情報に対応する保護対象データを前記メモリから消去するデータ消去手段と、
を備えたことを特徴とするデータ保護装置。
【請求項２】
請求項１に記載のデータ保護装置において、
前記データ管理手段、前記判定手段及び前記データ消去手段としてデータ保護装置本体を機能させるためのデータ保護プログラムを記憶する記憶手段を更に備えており、
前記ＣＰＵは、前記記憶手段から前記メモリに読み出されたデータ保護プログラム及び前記処理実行プログラムを並列に実行し、
前記データ保護プログラム及び前記処理実行プログラムは、前記ＣＰＵ及び前記メモリを含む計算機資源を互いに共有することを特徴とするデータ保護装置。
【請求項３】
請求項２に記載のデータ保護装置において、
前記処理実行プログラムは、
前記ＣＰＵによる保護対象データのアクセス毎に、前記アクセス履歴情報を更新記録するアクセス履歴記録手段、として前記データ保護装置本体を機能させることを特徴とするデータ保護装置。
【請求項４】
請求項３に記載のデータ保護装置において、
前記アクセス履歴情報はカウンタ値を含んでおり、
前記アクセス履歴記録手段は、前記ＣＰＵによる保護対象データのアクセス毎に、前記カウンタ値を増加又は減少させる手段であることを特徴とするデータ保護装置。
【請求項５】
請求項４に記載のデータ保護装置において、
前記アクセス履歴情報はアクセス回数を更に含んでおり、
前記アクセス履歴記録手段は、前記ＣＰＵによる保護対象データのアクセス毎に、前記アクセス回数を増加させると共に、当該増加させたアクセス回数に基づいて、予めアクセス回数毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であることを特徴とするデータ保護装置。
【請求項６】
請求項５に記載のデータ保護装置において、
前記管理用情報は履歴記録方式情報を更に含んでおり、
前記アクセス履歴記録手段は、前記増加させたアクセス回数及び前記履歴記録方式情報に基づいて、予めアクセス回数及び履歴記録方式情報毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であることを特徴とするデータ保護装置。
【請求項７】
請求項５に記載のデータ保護装置において、
前記管理用情報はデータ種別情報を更に含んでおり、
前記アクセス履歴記録手段は、前記増加させたアクセス回数及び前記データ種別情報に基づいて、予めデータ種別情報に関連付けた履歴記録方式情報及びアクセス回数毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であることを特徴とするデータ保護装置。
【請求項８】
保護対象データ及びこの保護対象データにアクセスするための処理プログラムを一時的に記憶するメモリと、前記メモリ内の処理プログラムを実行するＣＰＵとを備え、前記処理プログラムの実行中に前記保護対象データを保護するデータ保護装置に用いられるデータ保護プログラムであって、
前記データ保護装置を、
前記メモリ内の記憶領域のうちの前記保護対象データの記憶領域とは異なる記憶領域に設けられ、前記保護対象データのアドレス情報、長さ情報及びアクセス履歴情報を含む管理用情報を記憶するデータ管理手段、
前記データ管理手段内のアクセス履歴情報に基づいて、一定期間毎に前記保護対象データへのアクセスの有無又はしきい値に対する前記アクセスの多少を判定する判定手段、
この判定の結果、前記アクセスが無い又はしきい値より少ない場合には、当該判定に用いたアクセス履歴情報を含む管理用情報内のアドレス情報及び長さ情報に基づいて、この管理用情報に対応する保護対象データを前記メモリから消去するデータ消去手段、
として機能させるためのデータ保護プログラム。
【請求項９】
請求項８に記載のデータ保護プログラムにおいて、
前記データ保護装置は、前記データ保護プログラム本体を記憶する記憶手段を更に備えており、
前記ＣＰＵは、前記記憶手段から前記メモリに読み出されたデータ保護プログラム及び前記処理実行プログラムを並列に実行し、
前記データ保護プログラム本体は、前記ＣＰＵ及び前記メモリを含む計算機資源を前記処理実行プログラムと共有することを特徴とするデータ保護プログラム。
【請求項１０】
請求項９に記載のデータ保護プログラムにおいて、
前記処理実行プログラムは、
前記ＣＰＵによる保護対象データのアクセス毎に、前記アクセス履歴情報を更新記録するアクセス履歴記録手段、として前記データ保護装置本体を機能させるデータ保護プログラム。
【請求項１１】
請求項１０に記載のデータ保護プログラムにおいて、
前記アクセス履歴情報はカウンタ値を含んでおり、
前記アクセス履歴記録手段は、前記ＣＰＵによる保護対象データのアクセス毎に、前記カウンタ値を増加又は減少させる手段であるデータ保護プログラム。
【請求項１２】
請求項１１に記載のデータ保護プログラムにおいて、
前記アクセス履歴情報はアクセス回数を更に含んでおり、
前記アクセス履歴記録手段は、前記ＣＰＵによる保護対象データのアクセス毎に、前記アクセス回数を増加させると共に、当該増加させたアクセス回数に基づいて、予めアクセス回数毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であるデータ保護プログラム。
【請求項１３】
請求項１２に記載のデータ保護プログラムにおいて、
前記管理用情報は履歴記録方式情報を更に含んでおり、
前記アクセス履歴記録手段は、前記増加させたアクセス回数及び前記履歴記録方式情報に基づいて、予めアクセス回数及び履歴記録方式情報毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であるデータ保護プログラム。
【請求項１４】
請求項１２に記載のデータ保護プログラムにおいて、
前記管理用情報はデータ種別情報を更に含んでおり、
前記アクセス履歴記録手段は、前記増加させたアクセス回数及び前記データ種別情報に基づいて、予めデータ種別情報に関連付けた履歴記録方式情報及びアクセス回数毎に設定された数量だけ前記カウンタ値を増加又は減少させる手段であるデータ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報などの保護対象データの漏洩を阻止するためのデータ保護装置及びプログラムに関する。
【背景技術】
【０００２】
コンピュータプログラムの実行時に、保護対象データとして、例えば秘密情報を取り扱う場合、秘密情報は変数としてメモリ上に置かれる。一般に、変数はプログラム中の関数呼び出し時に確保されるスタック変数、又はプログラム実行時に確保されるヒープ変数が用いられる。Ｃ言語を例に述べると、関数内のローカル変数はスタック変数であり、大域変数あるいは関数内の静的変数はヒープ変数である。
【０００３】
変数として置かれた秘密情報は、変数が利用されなくなった場合でも、プログラムが終了するまでの間、他のデータで上書きされるまで残る。他のデータで上書きされるまでの時間は、プログラムやオペレーティングシステムの状態などにより異なり、短期に上書きされる場合もあれば長時間残る場合もある。
【０００４】
例えば、スタック変数は、関数呼び出し毎にスタック階層が確保され、関数終了時に開放され、新たな関数呼び出し時に再利用される仕組みであるが、呼び出し階層の深部に位置する関数の場合、スタック変数の秘密情報が上書きされずに長時間残りやすい。スタック変数が開放された場合でも、プログラム開発者が明示的な消去処理をプログラム実装していない限り、スタック変数は、関数が終了するまで消去されない。また、ヒープ変数は明示的な上書きが必要である。
【０００５】
このように、変数として置かれた秘密情報が長時間メモリに残る場合、プログラムを解析する攻撃者に対し、メモリから秘密情報が漏洩する可能性が増大してしまう。
【０００６】
このため、一時的に利用したい秘密情報は、利用後、速やかにメモリから消去することが望ましい。この種の消去方法としては、プログラム内で秘密情報を利用した後、秘密情報を格納した変数に別のデータを上書きする処理を当該プログラムに挿入しておく方式がある。
【０００７】
このような消去方法によれば、秘密情報の利用時以外にはメモリに秘密情報が存在しないため、秘密情報が漏洩する可能性を低減できる。
【０００８】
なお、この出願に関連する先行技術文献情報には次のものがある。  
【特許文献１】特表２００５−５２１１３３号公報
【特許文献２】特開平９−２０４３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、以上のような消去方法は、プログラムの規模に比例して、参照する秘密情報の種類や場所が増大するため、秘密情報に別のデータを上書きする処理を誤りや抜けなく当該プログラムに挿入することが困難となる。
【００１０】
また、秘密情報を利用した直後に秘密情報を消去した場合、その消去を手がかりとして該プログラム処理の近辺におけるメモリの利用状態を攻撃者が解析することにより、かえって秘密情報が漏洩する可能性が増大してしまう。
【００１１】
本発明は上記実情を考慮してなされたもので、処理プログラムに保護対象データの上書き処理を挿入せず、且つ利用直後の保護対象データを消去せずに、保護対象データが漏洩する可能性を低減し得るデータ保護装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一つの局面は、保護対象データ及びこの保護対象データにアクセスするための処理プログラムを一時的に記憶するメモリと、前記メモリ内の処理プログラムを実行するＣＰＵとを備え、前記処理プログラムの実行中に前記保護対象データを保護するデータ保護装置であって、前記メモリ内の記憶領域のうちの前記保護対象データの記憶領域とは異なる記憶領域に設けられ、前記保護対象データのアドレス情報、長さ情報及びアクセス履歴情報を含む管理用情報を記憶するデータ管理手段と、前記データ管理手段内のアクセス履歴情報に基づいて、一定期間毎に前記保護対象データへのアクセスの有無又は多少を判定する判定手段と、この判定の結果、前記アクセスが無い又はしきい値より少ない場合には、当該判定に用いたアクセス履歴情報を含む管理用情報内のアドレス情報及び長さ情報に基づいて、この管理用情報に対応する保護対象データを前記メモリから消去するデータ消去手段と、を備えたデータ保護装置である。
【００１３】
なお、上記局面は、装置として表現したが、装置に限らず、プログラム、プログラムを記憶したコンピュータ読み取り可能な記憶媒体、又は方法として表現することができる。
【００１４】
（作用）
本発明の一つの局面によれば、一定期間毎に保護対象データへのアクセスの有無又は多少を判定し、アクセスが無い又はしきい値より少ない場合には保護対象データをメモリから消去する構成により、処理プログラムに保護対象データの上書き処理を挿入せず、且つ利用直後の保護対象データを消去せずに、保護対象データが漏洩する可能性を低減することができる。
【発明の効果】
【００１５】
以上説明したように本発明によれば、処理プログラムに保護対象データの上書き処理を挿入せず、且つ利用直後の保護対象データを消去せずに、保護対象データが漏洩する可能性を低減できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【００１７】
（第１の実施形態）
図１は本発明の第１の実施形態に係るデータ保護装置の構成を示す模式図である。このデータ保護装置１０は、記憶装置１１、主記憶装置１２、ＣＰＵ１３、入力装置１４、表示装置１５及び入出力部１６がバス１７を介して接続された構成となっている。
【００１８】
ここで、記憶装置１１は、ＣＰＵ１３から読出／書込可能で電源オフ時にも記憶内容が消去されない記憶装置であり、例えば、外部の記憶媒体からインストールされたデータ保護プログラム２０、ＯＳ（Operating System）、ミドルウェア、ユーザアプリケーションプログラム、暗号文データ及び復号鍵ｋなどが適宜、記憶される。記憶装置１１としては、例えば、ハードディスク装置等が利用される。復号鍵ｋは秘密情報の一例であり、保護対象データでもある。秘密情報は、未使用の期間、スクランブルや暗号化等の手段により秘匿された状態で記憶装置１１に保存されており、利用する際に主記憶装置１２に読み出され、後述するデータ保護プログラム２０に基づいて保護される。また、データ保護プログラム２０以外の任意のプログラムを一般プログラム３０と呼ぶ。一般プログラム３０としては、例えば、ＯＳ、ミドルウェア又はユーザアプリケーションプログラムが該当する。
【００１９】
主記憶装置１２は、ＣＰＵ１３から読出／書込可能なランダムアクセスメモリであり、保護対象データ（例、暗号文を復号するための復号鍵、復号鍵により暗号文から復号された平文データ）と、保護対象データにアクセスして処理を実行するための処理プログラム３０と、アクセスが無い又はアクセスがしきい値より少ない保護対象データを消去するためのデータ保護プログラム２０と、その他処理中のデータ等とを一時的に記憶するために用いられる。
【００２０】
ＣＰＵ１３は、通常のＣＰＵであり、例えばスレッド機能を提供するＯＳを実行し、記憶装置１１から主記憶装置１２に読み出されたデータ保護プログラム２０及び一般プログラム３０を当該スレッド機能により並列に実行する。補足すると、ＣＰＵ１３で実行されるデータ保護プログラム２０は、一般プログラム３０の実行により生成されたスレッドとして動作する。また、データ保護プログラム２０及び一般プログラム３０は、これらＣＰＵ１３及び主記憶装置１２を含む計算機資源を互いに共有している。なお、ＣＰＵ１３は、一般プログラム３０の実行により、例えば、主記憶装置１２内の復号鍵（保護対象データ）に基づいて暗号文データを復号し、この復号により得られた平文データ（保護対象データ）を利用したデータ処理を行うと共に、データ保護プログラム２０の実行により、これら復号鍵及び平文データの各々に対し、一定期間毎にアクセスが無い場合には消去処理を行う。
【００２１】
データ保護プログラム２０は、図２及び図３に示すように、管理用情報２１ａを記憶するための管理用情報記憶領域であるデータ管理部２１と、データ変数２２ａを記憶するためのデータ変数記憶領域であるメモリアクセス記憶部２２とを備えており、ＣＰＵ１３に実行されることによりデータ保護装置１０を、データ管理部２１内のアクセス履歴情報２１ｄに基づいて、一定期間毎にデータ変数（保護対象データ）２２ａへのアクセスの有無を判定する判定手段、この判定の結果、アクセスが無い場合には、当該判定に用いたアクセス履歴情報２１ｄを含む管理用情報２１ａ内のアドレス情報２１ｂ及び長さ情報２１ｃに基づいて、この管理用情報２１ａに対応するデータ変数２２ａを主記憶装置１２から消去するデータ消去手段、として機能させるためのプログラムである。
【００２２】
なお、データ管理部２１及びメモリアクセス記憶部２２は、主記憶装置１２内の互いに異なる記憶領域に設けられる。また、管理用情報２１ａは、メモリアクセス記憶部２２内の各データ変数２２ａに対応してデータ管理部２１に記録され、データ変数２２ａのアドレス情報２１ｂ、データ変数２２ａの長さ情報２１ｃ、データ変数のアクセス履歴情報２１ｄの要素から構成される。
【００２３】
一般プログラム３０は、前述した任意のプログラムであり、任意のプログラム本体処理の実現手段に加え、ＣＰＵ１３に実行されることによりデータ保護装置１０を、保護対象データをデータ変数２２ａとしてメモリアクセス記憶部２２に記録する手段、データ変数２２ａ毎に管理用情報２１ａをデータ管理部２１に登録する手段、ＣＰＵ１３によるデータ変数（保護対象データ）２２ａのアクセス毎に、アクセス履歴情報２１ｄを更新記録するアクセス履歴記録手段、として機能させるプログラムである。
【００２４】
入力装置１４は、操作者の操作により、各種のデータや指示をデータ保護装置１０本体内に入力する装置であり、例えばキーボード装置及びマウス装置などが適宜使用可能となっている。
【００２５】
表示装置１５は、一般プログラム３０及びデータ保護プログラム２０を実行するＣＰＵ１３に制御され、各プログラム３０，２０の実行に応じて画面を表示する装置である。
【００２６】
入出力部（Ｉ／Ｏ）１６は、ネットワーク及び図示しない他の記憶媒体等とデータ保護装置１０本体内とを接続し、ＣＰＵ１３からデータの読出／書込処理を実行するための入出力インターフェイス機器である。
【００２７】
次に、以上のように構成されたデータ保護装置の動作を図４の流れ図を用いて説明する。なお、以下の説明中、ユーザアプリケーションプログラムを一般プログラム３０として述べる。
【００２８】
データ保護装置１０は、操作者による入力装置１４の操作により、ＣＰＵ１３が記憶装置１１内のユーザアプリケーションプログラムを主記憶装置１２に読み出して、当該ユーザアプリケーションプログラムを起動する。これにより、ＣＰＵ１３は、一般プログラムの一例であるユーザアプリケーションプログラム（以下、一般プログラム３０という）の処理を開始する。
【００２９】
ＣＰＵ１３は、一般プログラム３０の実行中、操作者による入力装置１４の操作により、管理対象のデータ変数２２ａをメモリアクセス記憶部２２に登録する処理を実行し（ＳＴ１１）、ステップＳＴ１６に進んでアクセス履歴記録の処理により、データ変数２２ａに対応する管理用情報２１ａをデータ管理部２１に登録する。管理用情報２１ａは、データ変数２２ａのアドレス情報２１ｂ、長さ情報２１ｃ及びアクセス履歴情報２１ｄから構成される。
【００３０】
データ変数２２ａ及び管理用情報２１ａの登録後、ＣＰＵ１３は、全ての管理用情報２１ａのアクセス履歴情報を「アクセスなし」にセットする処理を実行し（ＳＴ１２）、ステップＳＴ１６に進んでアクセス履歴記録の処理により、管理用情報２１ａを「アクセスなし」にセットする。
【００３１】
ＣＰＵ１３は、データ保護プログラム２０の処理開始を指示し（ＳＴ１３）、例えばＯＳが提供するスレッド機能により、一般プログラム３０の本体処理とデータ保護プログラム２０の処理とを並列に実行する（ＳＴ１４〜ＳＴ１６）。
【００３２】
一般プログラム３０の本体処理を実行中、ＣＰＵ１３は、この本体処理によりデータ変数２２ａを参照する場合、データ変数２２ａにアクセスする毎に、当該データ変数２２ａの管理用情報２１ａ内のアクセス履歴情報２１ｄを更新記録する処理を開始し（ＳＴ１４）、ステップＳＴ１６に進んでアクセス履歴記録の処理により、管理用情報２１ａのアクセス履歴情報２１ｄを更新する。
【００３３】
一方、データ保護プログラム２０の実行中、ＣＰＵ１３は、一定期間の経過又はイベントを受けるまで待ち受け処理を実行する（ＳＴ１５−１）。イベントとしては、例えばタイマー割り込み、関数呼び出し命令、特定のアドレスメモリへの参照時に発生する割り込み信号などが適宜使用可能となっている。
【００３４】
待ち受け処理の実行後、ＣＰＵ１３は、各管理用情報についてアクセス履歴情報２１ｄの値が「アクセスなし」であるか否かを判定する（ＳＴ１５−２）。
【００３５】
ステップＳＴ１５−２の判定の結果、アクセス無しの場合には、ＣＰＵ１３は、当該判定に用いたアクセス履歴情報を含む管理用情報２１ａ内のアドレス情報２１ｂ及び長さ情報２１ｃに基づいて、この管理用情報２１ａに対応するデータ変数２２ａをメモリアクセス記憶部２２から消去する（ＳＴ１５−３）。
【００３６】
ステップＳＴ１５−３の消去処理は、データ変数２２ａの内容を閲覧不能にする処理であり、具体的には例えば、値ＦＦによる上書き処理、値００による上書き処理、乱数による上書き処理、又は再暗号化処理などの任意の処理が使用可能となっている。
【００３７】
ステップＳＴ１５−２の判定結果がアクセス無しの場合の全ての管理用情報２１ａにステップ１５−３を実行した後、又はステップＳＴ１５−２の判定結果の全てがアクセス有りの場合には、ＣＰＵ１３は、全ての管理用情報２１ａのアクセス履歴情報２１ｄを「アクセスなし」にセットする（ＳＴ１５−４）。なお、ステップＳＴ１５−３，ＳＴ１５−４の処理は、具体的にはステップＳＴ１６のアクセス履歴記録の処理により実行される。
【００３８】
次に、ＣＰＵ１３は、データ保護プログラム２０の処理終了指示を受けたか否かを判定し（ＳＴ１５−５）、処理終了指示を受けた場合にはデータ保護プログラム２０の処理を終了する。
【００３９】
ステップＳＴ１５−５の判定の結果、処理終了指示を受けていない場合には、ステップＳＴ１５−１に戻り、前述したステップＳＴ１５−１〜ＳＴ１５−５の処理を繰り返し実行する。
【００４０】
一般プログラム３０を終了する場合、ＣＰＵ１３は、操作者による入力装置１４の操作により、データ保護プログラム２０を終了する指示を発生し（ＳＴ１７）、一般プログラム３０及びデータ保護プログラム２０を終了する。
【００４１】
上述したように本実施形態によれば、一定期間毎にデータ変数２２ａへのアクセスの有無を判定し、アクセスが無い場合にはデータ変数２２ａを主記憶装置１２から消去する構成により、一般プログラム３０に保護対象データの上書き処理を挿入せず、且つ利用直後の保護対象データを消去せずに、保護対象データが漏洩する可能性を低減することができる。
【００４２】
また、一般プログラム３０の作成者は、ＣＰＵ１３が保護対象データを参照する直前に、当該保護対象データを主記憶装置１２上に展開するように一般プログラム３０を作成する。これにより、主記憶装置１２上に展開した保護対象データが、一般プログラム３０の処理により参照される前に、データ保護プログラム２０の処理により消去されるといった不具合を阻止することができる。また、主記憶装置１２に秘密情報が平文状態で存在する期間を短縮することにより、秘密情報が漏洩する可能性を低減することができる。
【００４３】
また、本実施形態は、一般プログラム３０に対する悪意のあるリバースエンジニア等から、秘密情報を保護するためのデータ保護装置及びデータ保護プログラムとしても利用することができる。
【００４４】
なお、第１の実施形態は、秘密情報を使用していないときに当該秘密情報を消去する点で、特許文献１，２に記載の技術よりも優れている。特許文献１に記載の技術は、到達不能な秘密情報を消去する方式であるので（例えば、請求項６，５６等参照）、到達可能な秘密情報であれば使用していなくても消去しない不具合が考えられる。一方、第１の実施形態は、到達可能な秘密情報でも使用していなければ消去するので、特許文献１に記載の技術のような不具合がなく、秘密情報の保護に優れている。
【００４５】
また、特許文献２に記載の技術は、ランダムあるいは一定時間毎に秘密情報を消去する方式であり（例えば、段落［００４８］参照）、使用している秘密情報を消去してしまう不具合が考えられる。一方、第１の実施形態は、使用していない秘密情報を消去するので、特許文献２に記載の技術のような不具合がないため、実用性に優れている。
【００４６】
（第２の実施形態）
次に、本発明に係るデータ保護装置について図５を用いて説明するが、前述した図面と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【００４７】
すなわち、第２の実施形態は、第１の実施形態の変形例であり、ＣＰＵ１３が一般プログラム３０とデータ保護プログラム２０とを独立して実行する構成となっている。
【００４８】
これに伴い、一般プログラム３０は、前述したステップＳＴ１１，ＳＴ１４及びＳＴ１６の処理をデータ保護装置１０に実現させるためのプログラムとして構成される。
【００４９】
データ保護プログラム２０は、前述したステップＳＴ１２、ＳＴ１５−１，ＳＴ１５−２及びＳＴ１５−３の繰り返し処理をデータ保護装置１０に実現させるためのプログラムとして構成される。また、データ保護プログラム２０は、一般プログラム３０とは並列に実行される、異なるプロセス、ドライバあるいはＯＳカーネルの一部としてＣＰＵ１３に実行される。
【００５０】
以上のような構成としても、第１の実施形態と同様の作用効果を得ることができる。
【００５１】
（第３の実施形態）
次に、本発明の第３の実施形態に係るデータ保護装置について説明する。  
第３の実施形態は、第１又は第２の実施形態の変形例であり、管理用情報２１ａにおけるアクセス履歴情報２１ｄがカウンタ値を含んでおり、一般プログラム３０におけるアクセス履歴記録手段としては、ＣＰＵ１３によるデータ変数（保護対象データ）２２ａのアクセス毎に、カウンタ値を増加（又は減少）させる手段となっている。なお、カウンタ値の増加と減少は逆にしてもよく、このことは以下の各実施形態でも同様である。
【００５２】
これに伴い、ＣＰＵ１３は、図６に示すように、ステップＳＴ１６のアクセス履歴記録の処理を、ＣＰＵ１３によるデータ変数２２ａのアクセス毎に、当該カウンタ値を増加させる処理ＳＴ１６−３と、一定期間毎に当該カウンタ値を減少させる処理ＳＴ１６−４とを含むように実行する。
【００５３】
具体的には、アクセス履歴記録の処理ＳＴ１６は、管理用情報の作成処理ＳＴ１６−１、カウンタ値の初期化処理ＳＴ１６−２、カウンタ値の増加処理ＳＴ１６−３及びカウンタ値の減少処理ＳＴ１６−４を含んでいる。
【００５４】
管理用情報の作成処理ＳＴ１６−１においては、前述同様に、ＣＰＵ１３が管理用情報２１ａをデータ管理部２１に記録するが、このとき、アクセス履歴情報２１ｄがカウンタ値を含む内容となっている。
【００５５】
カウンタ値の初期化処理ＳＴ１６−２においては、ＣＰＵ１３がアクセス履歴情報２１ｄのカウンタ値を初期値にして初期化する。なお、カウンタ値の初期値は、正の値、負の値、又はゼロ値のいずれとしてもよく、このことは以下の各実施形態でも同様である。また、カウンタ値の使用に伴い、例えば図７又は図８のステップＳＴ１５−２’及びＳＴ１５−３’に示すように、前述した「アクセスなし」の判定に代えて、「しきい値より少ない」か否かの判定を用いている。
【００５６】
カウンタ値の増加処理ＳＴ１６−３においては、ＣＰＵ１３がデータ変数２２ａにアクセスする毎に、当該ＣＰＵ１３がアクセス履歴情報２１ｄのカウンタ値を増加させる。
【００５７】
カウンタ値の減少処理ＳＴ１６−４においては、例えば図７又は図８のステップＳＴ１５−４’に示すように、データ保護プログラム２０におけるＳＴ１５−１からＳＴ１５−４’までの繰り返し毎に、ＣＰＵ１３がアクセス履歴情報２１ｄのカウンタ値を減少させる。なお、ステップＳＴ１６−３におけるカウンタ値の増加量と、ステップＳＴ１６−４におけるカウンタ値の減少量とは、絶対値が互いに同一でも異なってもよい。
【００５８】
以上のような構成によれば、前述したアクセスの有無に限らず、一定期間毎にアクセスがあるもののアクセスが少ないといった場合にもデータ変数２２ａを消去できるので、第１又は第２の実施形態に比べ、より広い条件で消去処理を実現することができる。
【００５９】
（第４の実施形態）
次に、本発明の第４の実施形態に係るデータ保護装置について説明する。  
第４の実施形態は、第３の実施形態の変形例であり、管理用情報２１ａにおけるアクセス履歴情報２１ｄがカウンタ値の他に、更にアクセス回数を含んでおり、一般プログラム３０におけるアクセス履歴手段としては、ＣＰＵ１３によるデータ変数（保護対象データ）２２ａのアクセス毎に、アクセス回数を増加させると共に、当該増加させたアクセス回数に基づいて、予めアクセス回数毎に設定された数量だけカウンタ値を増加（又は減少）させる手段となっている。
【００６０】
これに伴い、ＣＰＵ１３は、図９のいずれかの方式１〜４に示すように、ステップＳＴ１６のアクセス履歴記録の処理を、ＣＰＵ１３によるデータ変数２２ａのアクセス毎に、アクセス履歴情報２１ｄ内のアクセス回数を増加させると共に、当該増加させたアクセス回数に基づいて、予めアクセス回数毎に設定された数量だけ当該アクセス履歴情報２１ｄ内のカウンタ値を増加（又は減少）させるように実行する。
【００６１】
ここで、方式１は増加と減少を対称に行う方法であり、方式２〜４は増加に統計情報等を考慮して重み付けを設定した方式である。
【００６２】
具体的には方式１は、カウンタ値の初期値０、カウンタ値の増加処理ＳＴ１６−３がアクセス回数によらずにカウンタ値を＋１増加する処理であり、カウンタ値の減少処理ＳＴ１６−４がカウンタ値を１だけ減少する処理である。
【００６３】
方式２は、カウンタ値の初期値０、カウンタ値の増加処理ＳＴ１６−３がアクセス回数ｎに応じてカウンタ値の増加量が２^{5-n}に減少する増加処理であり（なお、＾はべき乗を表す記号）、カウンタ値の減少処理ＳＴ１６−４がカウンタ値を１だけ減少する処理である。
【００６４】
方式３は、カウンタ値の初期値０、カウンタ値の増加処理ＳＴ１６−３がアクセス回数ｎに応じてカウンタ値の増加量が２^{n-1}に増大する増加処理であり、カウンタ値の減少処理ＳＴ１６−４がカウンタ値を１だけ減少する処理である。
【００６５】
方式４は、カウンタ値の初期値３２、カウンタ値の増加処理ＳＴ１６−３がアクセス回数に応じてカウンタ値の増加量２^{5-n}に減少する増加処理であり、カウンタ値の減少処理ＳＴ１６−４がカウンタ値を１だけ減少する処理である。
【００６６】
以上のような構成によれば、方式１〜４のいずれかに示すように、アクセス回数に応じて異なる増加量でカウンタ値を増加させることができるので、第３の実施形態に比べ、きめ細かい条件で消去処理を実現することができる。
【００６７】
（第５の実施形態）
次に、本発明の第５の実施形態に係るデータ保護装置について説明する。  
第５の実施形態は、第４の実施形態の変形例であり、図１０に示すように、管理用情報２１ａがカウンタ値２１ｄ１及びアクセス回数２１ｄ２の他に、更に（履歴記録）方式情報２１ｅを含む構成により、データ変数２２ａ毎に、図９に示した方式１〜４を選択可能としたものである。
【００６８】
これに伴い、一般プログラム３０におけるアクセス履歴手段としては、ＣＰＵ１３によるデータ変数（保護対象データ）２２ａのアクセス毎に、アクセス回数２１ｄ２を増加させると共に、当該増加させたアクセス回数２１ｄ２及び方式情報２１ｅに基づいて、予めアクセス回数及び方式情報毎に設定された数量だけカウンタ値２１ｄ１を増加（又は減少）させる手段となっている。
【００６９】
具体的には、ＣＰＵ１３は、ステップＳＴ１６のアクセス履歴記録の処理を、ＣＰＵ１３によるデータ変数２２ａのアクセス毎に、アクセス履歴情報２１ｄ内のアクセス回数を増加させると共に、当該増加させたアクセス回数及び管理用情報２１ａ内の方式情報２１ｅに基づいて、予めアクセス回数及び方式情報毎に設定された数量だけ当該アクセス履歴情報２１ｄ内のカウンタ値を増加（又は減少）させるように実行する。
【００７０】
以上のような構成によれば、データ変数２２ａ毎に、所望の方式１〜４でカウンタ値２１ｄ１を増減できるので、第４の実施形態に比べ、よりきめ細かい条件で消去処理を実現することができる。
【００７１】
（第６の実施形態）
次に、本発明の第６の実施形態に係るデータ保護装置について説明する。  
第６の実施形態は、第５の実施形態の変形例であり、図１１及び図１２に示すように、管理用情報２１ａがカウンタ値２１ｄ１及びアクセス回数２１ｄ２の他に、更にデータ種別情報２１ｆを含む構成により、データ変数２２ａのデータ種別毎に、図１２に示した方式１〜４を選択可能としたものである。なお、データ種別情報２１ｆと、方式１〜４とは、図１２に示すように、一般プログラム３０において予め関連付けられている。
【００７２】
これに伴い、一般プログラム３０におけるアクセス履歴手段としては、ＣＰＵ１３によるデータ変数（保護対象データ）２２ａのアクセス毎に、アクセス回数２１ｄ２を増加させると共に、当該増加させたアクセス回数２１ｄ２及びデータ種別情報２１ｆに基づいて、予めデータ種別情報に関連付けた（履歴記録）方式情報及びアクセス回数毎に設定された数量だけカウンタ値２１ｄ１を増加又は減少させる手段となっている。
【００７３】
具体的には、ＣＰＵ１３は、ステップＳＴ１６のアクセス履歴記録の処理を、ＣＰＵ１３によるデータ変数２２ａのアクセス毎に、アクセス履歴情報２１ｄ内のアクセス回数を増加させると共に、当該増加させたアクセス回数及び管理用情報２１ａ内のデータ種別情報２１ｆに基づいて、予めデータ種別情報に関連付けた方式情報及びアクセス回数毎に設定された数量だけ当該アクセス履歴情報２１ｄ内のカウンタ値を増加（又は減少）させるように実行する。
【００７４】
以上のような構成によれば、データ変数２２ａのデータ種別毎に、所望の方式１〜４でカウンタ値２１ｄ１を増減できるので、第４の実施形態と同様に、きめ細かい条件で消去処理を実現することができる。
【００７５】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００７６】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００７７】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【００７８】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【００７９】
また、記憶媒体は１つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００８０】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００８１】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００８２】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施形態に係るデータ保護装置の構成を示す模式図である。
【図２】同実施形態におけるデータ保護プログラムと一般プログラムとを説明するための模式図である。
【図３】同実施形態における管理用情報の構成を説明するための模式図である。
【図４】同実施形態における動作を説明するための流れ図である。
【図５】本発明の第２の実施形態に係るデータ保護装置の動作を説明するための流れ図である。
【図６】本発明の第３の実施形態に係るデータ保護装置のアクセス履歴記録の処理を説明するための模式図である。
【図７】同実施形態における動作を説明するための流れ図である。
【図８】同実施形態における動作を説明するための流れ図である。
【図９】本発明の第４の実施形態に係るアクセス履歴記録処理の方式を表形式で説明するための図である。
【図１０】本発明の第５の実施形態における管理用情報の構成を説明するための模式図である。
【図１１】本発明の第６の実施形態における管理用情報の構成を説明するための模式図である。
【図１２】同実施形態におけるアクセス履歴記録処理の方式を表形式で説明するための図である。
【符号の説明】
【００８４】
１０…データ保護装置、１１…記憶装置、１２…主記憶装置、１３…ＣＰＵ、１４…入力装置、１５…表示装置、１６…入出力部、１７…バス、２０…データ保護プログラム、２１…データ管理部、２１ａ…管理用情報、２１ｂ…アドレス情報、２１ｃ…長さ情報、２１ｄアクセス履歴情報、２１ｄ１…カウンタ値、２１ｄ２…アクセス回数、２１ｅ…方式情報、２１ｆ…データ種別情報、２２…メモリアクセス記憶部、２２ａ…データ変数。
【図１】
0004724195.tif 000002
【図２】
0004724195.tif 000003
【図３】
0004724195.tif 000004
【図４】
0004724195.tif 000005
【図５】
0004724195.tif 000006
【図６】
0004724195.tif 000007
【図７】
0004724195.tif 000008
【図８】
0004724195.tif 000009
【図９】
0004724195.tif 000010
【図１０】
0004724195.tif 000011
【図１１】
0004724195.tif 000012
【図１２】
0004724195.tif 000013