(57)【特許請求の範囲】
【請求項１】
記憶領域のうちアプリケーションから要求された必要データを格納するためのアクセス領域、及び前記アプリケーションからアクセスされない保存領域の間で、複数個のデータを交換する交換処理の結果、前記アクセス領域に前記必要データが存在するように制御する交換部と、
前記アクセス領域の全体に対して一度にアクセスして前記必要データを含むデータ群を取得するアクセス部と、を備え、
前記交換部は、外側の前記アクセス領域及び外側の前記保存領域の間で前記交換処理を行った後に、外側の前記アクセス領域を構成する内側の前記アクセス領域及び内側の前記保存領域の間で前記交換処理を行い、
前記アクセス部は、内側の前記アクセス領域に対してアクセスする記憶装置。
【請求項２】
前記交換部は、外側の前記アクセス領域を内側の前記アクセス領域及び内側の前記保存領域に分割する階層化を複数階層に渡って行い、前記交換処理を当該複数階層の数だけ繰り返した後、
前記アクセス部は、前記複数階層の最も内側の前記アクセス領域に対してアクセスする請求項１に記載の記憶装置。
【請求項３】
前記交換部は、
前記アクセス領域から前記保存領域へ移動したデータの履歴を、前記記憶領域のうち履歴領域に記憶し、
前記交換処理において前記保存領域からアクセス領域へ移動するデータの少なくとも１つを、前記履歴領域に記憶されているデータから選択する請求項１又は請求項２に記載の記憶装置。
【請求項４】
前記交換部は、前記交換処理を行う際に、前記必要データが前記アクセス領域にある場合、交換対象のデータとして、前記保存領域からランダムにデータを選択し、かつ、前記履歴領域からランダムにデータを選択する請求項３に記載の記憶装置。
【請求項５】
前記交換部は、前記交換処理を行う際に、前記必要データが前記保存領域にあり、かつ、前記履歴領域にある場合、交換対象のデータとして、前記必要データと共に、前記保存領域からランダムにデータを選択する請求項３に記載の記憶装置。
【請求項６】
前記交換部は、前記交換処理を行う際に、前記必要データが前記保存領域にあり、かつ、前記履歴領域にない場合、交換対象のデータとして、前記必要データと共に、前記履歴領域からランダムにデータを選択する請求項３に記載の記憶装置。
【請求項７】
記憶装置によるデータ保護方法であって、
記憶領域のうちアプリケーションから要求された必要データを格納するためのアクセス領域、及び前記アプリケーションからアクセスされない保存領域の間で、複数個のデータを交換する交換処理の結果、前記アクセス領域に前記必要データが存在するように制御する交換ステップと、
前記アクセス領域の全体に対して一度にアクセスして前記必要データを含むデータ群を取得するアクセスステップと、を実行し、
前記交換ステップにおいて、外側の前記アクセス領域及び外側の前記保存領域の間で前記交換処理を行った後に、外側の前記アクセス領域を構成する内側の前記アクセス領域及び内側の前記保存領域の間で前記交換処理を行い、
前記アクセスステップにおいて、内側の前記アクセス領域に対してアクセスするデータ保護方法。
【請求項８】
請求項７に記載のデータ保護方法を前記記憶装置に実行させるためのデータ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に記憶されるデータの保護方法に関する。
【背景技術】
【０００２】
従来、コンピュータがアプリケーションを実行する場合、メモリ上に各種データが展開され、アプリケーションにより適宜アクセスされる。これらのデータが第３者から保護されるべき秘密情報である場合、データへのアクセスパターンを秘匿することによりデータを保護する手法が求められる。
【０００３】
非特許文献１では、Ｏｂｌｉｖｉｏｕｓ  ＲＡＭによるメモリ保護が提案されているが、安全性を確保するために全データの定期的な並べ替えが必要であるため、オーバーヘッドが大きい。これに対して、例えば特許文献１及び非特許文献２では、アクセスの履歴を利用することでデータの並べ替え処理の負荷を低減し、高速化を実現する手法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２４６６７８号公報
【非特許文献】
【０００５】
【非特許文献１】Ｏｄｅｄ  Ｇｏｌｄｒｅｉｃｈ  ａｎｄ  Ｒａｆａｉｌ  Ｏｓｔｒｏｖｓｋｙ，  “Ｓｏｆｔｗａｒｅ  ｐｒｏｔｅｃｔｉｏｎ  ａｎｄ  ｓｉｍｕｌａｔｉｏｎ  ｏｎ  ｏｂｌｉｖｉｏｕｓ  ＲＡＭｓ，”  Ｊ．  ＡＣＭ，  ４３  （３）：  ４３１−４７３，  １９９６．
【非特許文献２】Ｙｕｔｏ  Ｎａｋａｎｏ，  Ｃａｒｌｏｓ  Ｃｉｄ，  Ｓｈｉｎｓａｋｕ  Ｋｉｙｏｍｏｔｏ，  ａｎｄ  Ｙｕｔａｋａ  Ｍｉｙａｋｅ，  “Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｐａｔｔｅｒｎ  Ｐｒｏｔｅｃｔｉｏｎ  ｆｏｒ  Ｒｅｓｏｕｒｃｅ−ｃｏｎｓｔｒａｉｎｅｄ  Ｄｅｖｉｃｅｓ，”  ＣＡＲＩＤＳ２０１２，  Ｓｐｒｉｎｇｅｒ，  ２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、オーバーヘッドの削減と安全性の向上とは、通常、トレードオフの関係にあるので、上述の手法によっても、安全性を確保するためにオーバーヘッドの削減は十分でなかった。
【０００７】
本発明は、安全性を確保しつつ、データ保護のための処理速度を向上できる記憶装置、データ保護方法及びデータ保護プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る記憶装置は、アクセス領域と当該アクセス領域とは異なる保存領域との間で、複数個のデータを交換する交換処理の結果、前記アクセス領域に必要データが存在するように制御する交換部と、前記アクセス領域の全体に対して一度にアクセスして前記必要データを含むデータ群を取得するアクセス部と、を備え、前記交換部は、外側アクセス領域及び外側保存領域の間で前記交換処理を行った後に、前記外側アクセス領域を構成する内側アクセス領域及び内側保存領域の間で前記交換処理を行い、前記アクセス部は、前記内側アクセス領域に対してアクセスする。
【０００９】
前記交換部は、前記外側アクセス領域を前記内側アクセス領域及び前記内側保存領域に分割する階層化を複数階層に渡って行い、前記交換処理を当該複数階層の数だけ繰り返した後、前記アクセス部は、前記複数階層の最も内側のアクセス領域に対してアクセスしてもよい。
【００１０】
前記交換部は、前記アクセス領域から前記保存領域へ移動したデータの履歴を履歴領域に記憶し、前記交換処理において前記保存領域からアクセス領域へ移動するデータの少なくとも１つを、前記履歴領域に記憶されているデータから選択してもよい。
【００１１】
前記交換部は、前記交換処理を行う際に、前記必要データが前記アクセス領域にある場合、交換対象のデータとして、前記保存領域からランダムにデータを選択し、かつ、前記履歴領域からランダムにデータを選択してもよい。
【００１２】
前記交換部は、前記交換処理を行う際に、前記必要データが前記保存領域にあり、かつ、前記履歴領域にある場合、交換対象のデータとして、前記必要データと共に、前記保存領域からランダムにデータを選択してもよい。
【００１３】
前記交換部は、前記交換処理を行う際に、前記必要データが前記保存領域にあり、かつ、前記履歴領域にない場合、交換対象のデータとして、前記必要データと共に、前記履歴領域からランダムにデータを選択してもよい。
【００１４】
本発明に係るデータ保護方法は、記憶装置によるデータ保護方法であって、アクセス領域と当該アクセス領域とは異なる保存領域との間で、複数個のデータを交換する交換処理の結果、前記アクセス領域に必要データが存在するように制御する交換ステップと、前記アクセス領域の全体に対して一度にアクセスして前記必要データを含むデータ群を取得するアクセスステップと、を実行し、前記交換ステップにおいて、外側アクセス領域及び外側保存領域の間で前記交換処理を行った後に、前記外側アクセス領域を構成する内側アクセス領域及び内側保存領域の間で前記交換処理を行い、前記アクセスステップにおいて、前記内側アクセス領域に対してアクセスする。
【００１５】
本発明に係るデータ保護プログラムは、前記データ保護方法を前記記憶装置に実行させる。
【発明の効果】
【００１６】
本発明によれば、安全性を確保しつつ、データ保護のための処理速度を向上できる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る記憶装置の機能構成を示す図である。
【図２】実施形態に係る記憶領域の構成を示す図である。
【図３】実施形態に係るデータ保護方法を示すフローチャートである。
【図４】実施形態に係る交換処理の第１のパターンを示す図である。
【図５】実施形態に係る交換処理の第２のパターンを示す図である。
【図６】実施形態に係る交換処理の第３のパターンを示す図である。
【図７】実施形態に係る２段階の交換処理が行われた場合のデータの移動の様子を例示する図である。
【図８】１段階の交換処理が行われた場合のデータの移動の様子を例示する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係る記憶装置１の機能構成を示す図である。
【００１９】
記憶装置１は、交換部１１と、アクセス部１２とを備える。
交換部１１は、アクセス領域と、このアクセス領域とは異なる保存領域との間で、複数個（例えば２個）のデータを交換する交換処理の結果、アクセス領域にアプリケーションが要求する必要データが存在するように制御する。
アクセス部１２は、アクセス領域の全体に対して一度にアクセスして、必要データを含むデータ群を取得する。
【００２０】
記憶装置１は、これら各部の機能により、記憶領域１０に保存されているデータの並べ替えを行った後、複数データに一度にアクセス（読み出し又は書き込み）することにより、第３者からアクセスパターンを解析されるリスクを低減してデータを保護する。
次に、記憶装置１におけるデータ保護方法を詳述する。
【００２１】
図２は、本実施形態に係る記憶装置１が制御対象とする記憶領域１０の構成を示す図である。
記憶領域１０は、外側アクセス領域Ａ１と、外側保存領域Ｂ１とに分けられ、さらに、外側履歴領域Ｃ１が設けられる。アプリケーションから要求された必要データは、要求された時点で、外側アクセス領域Ａ１又は外側保存領域Ｂ１のいずれかに存在する。
ここで、外側履歴領域Ｃ１は、後述の交換処理によって外側アクセス領域Ａ１から外側保存領域Ｂ１へ移動したデータの履歴を記憶する領域である。
【００２２】
また、外側アクセス領域Ａ１は、内側アクセス領域Ａ２と、内側保存領域Ｂ２とに分けられ、さらに、内側履歴領域Ｃ２が設けられる。
内側履歴領域Ｃ２は、後述の交換処理によって内側アクセス領域Ａ２から内側保存領域Ｂ２へ移動したデータの履歴を記憶する領域である。
【００２３】
履歴領域（Ｃ１又はＣ２）は、実データへのポインタ、すなわち実データが格納されている保存領域（Ｂ１又はＢ２）のアドレスを記憶する。アクセス領域（Ａ１又はＡ２）についても、保存領域（Ｂ１又はＢ２）へのポインタが記憶される構成であってもよい。
また、履歴領域（Ｃ１又はＣ２）は、有限個の履歴が記憶される領域であってよく、古いデータから順に削除される。
【００２４】
ここで、内側アクセス領域Ａ２は、さらに内側のアクセス領域及び保存領域に分けられてもよく、同様に、外側アクセス領域Ａ１を内側アクセス領域Ａ２及び内側保存領域Ｂ２に分割する階層化を、ｎ階層に渡って行ってもよい。この場合、交換部１１は、階層の数（ｎ）だけ外側から交換処理を順に繰り返し、アクセス部１２は、最も内側のアクセス領域に対してアクセスする。
【００２５】
本実施形態では、説明を簡略化するため、記憶領域１０は、２階層の構造であるものとする。すなわち、交換部１１は、外側アクセス領域Ａ１と外側保存領域Ｂ１との間で交換処理を行った後に、内側アクセス領域Ａ２と内側保存領域Ｂ２との間で交換処理を行う。その後、アクセス部１２は、内側アクセス領域Ａ２の全体に対してアクセスする。
【００２６】
図３は、本実施形態に係る記憶装置１におけるデータ保護方法を示すフローチャートである。
ステップＳ１において、交換部１１は、外側アクセス領域Ａ１と外側保存領域Ｂ１との間で交換処理を行い、外側アクセス領域Ａ１内に必要データが存在するようにデータを交換する。
【００２７】
ステップＳ２において、交換部１１は、内側アクセス領域Ａ２と内側保存領域Ｂ２との間で交換処理を行い、内側アクセス領域Ａ２内に必要データが存在するようにデータを交換する。
【００２８】
ステップＳ３において、アクセス部１２は、内側アクセス領域Ａ２へアクセスし、必要データを含むデータ群を取得する。
【００２９】
交換処理は、必要データがいずれの領域に存在しているかによって、以下の３つのパターンに分けられる。なお、交換処理は、同一階層のアクセス領域（Ａ１又はＡ２）、保存領域（Ｂ１又はＢ２）及び履歴領域（Ｃ１又はＣ２）を対象としており、各階層で共通の処理内容については、単にアクセス領域Ａ、保存領域Ｂ及び履歴領域Ｃと表記する。
【００３０】
（１）必要データがアクセス領域Ａにある場合。
（２）必要データが保存領域Ｂにあり、かつ、履歴領域Ｃにある場合。
（３）必要データが保存領域Ｂにあり、かつ、履歴領域Ｃにない場合。
【００３１】
交換部１１は、交換処理の各パターンにおいて、保存領域Ｂからアクセス領域Ａへ移動するデータの少なくとも１つを、履歴領域Ｃに記憶されているデータから選択する。本実施形態では、交換部１１は、履歴領域Ｃに記憶されているデータを含む２つのデータを保存領域Ｂからアクセス領域Ａへ移動し、これらの代わりにアクセス領域Ａから保存領域Ｂへ２つのデータを移動する。
【００３２】
図４は、本実施形態に係る交換処理の第１のパターンを示す図である。
必要データＸがアクセス領域Ａにある場合、交換部１１は、交換対象のデータとして、保存領域ＢからランダムにデータＹを選択し、かつ、履歴領域ＣからランダムにデータＺを選択する。
【００３３】
図５は、本実施形態に係る交換処理の第２のパターンを示す図である。
必要データＸが保存領域Ｂにあり、かつ、履歴領域Ｃにある場合、交換部１１は、交換対象のデータとして、必要データＸと共に、保存領域ＢからランダムにデータＹを選択する。
【００３４】
図６は、本実施形態に係る交換処理の第３のパターンを示す図である。
必要データＸが保存領域Ｂにあり、かつ、履歴領域Ｃにない場合、交換部１１は、交換対象のデータとして、必要データＸと共に、履歴領域ＣからランダムにデータＺを選択する。
【００３５】
なお、交換部１１は、交換処理の各パターンにおいて、保存領域Ｂからアクセス領域Ａへ移動する２つのデータが重複しないように制御するものとする。また、アクセス領域Ａから保存領域Ｂへ移動するデータは、必要データを除いてランダムに２つが選択されてよい。
【００３６】
このような交換処理が２段階で行われる場合、第１の交換処理で各パターンにより外側アクセス領域Ａ１と外側保存領域Ｂ１とでデータが交換された後、第２の交換処理により、必要データの場所に応じて、さらに各パターンでデータが交換される。
【００３７】
図７は、本実施形態に係る２段階の交換処理が行われた場合のデータの移動の様子を例示する図である。
例えば、必要データａが外側保存領域Ｂ１にある場合、第１の交換処理によって、必要データａは、他のデータｘと共に外側アクセス領域Ａ１内の内側保存領域Ｂ２又は内側アクセス領域Ａ２に移動する。
【００３８】
必要データａが内側保存領域Ｂ２に移動した場合（ａ）、第２の交換処理によって、必要データａは、他のデータｙと共に内側アクセス領域Ａ２へ再度移動する。
一方、必要データａが内側アクセス領域Ａ２に移動した場合（ｂ）、第２の交換処理によって、必要データａは移動対象とはならず、他のデータｙ及びｚが内側アクセス領域Ａ２へ移動する。
【００３９】
このように、外側保存領域Ｂ１にある必要データａは、内側保存領域Ｂ２を経由して内側アクセス領域Ａ２へ移動する場合と、直接内側アクセス領域Ａ２へ移動する場合とがある。また、必要データａは、交換処理の前から外側アクセス領域Ａ１内に存在する場合もある。特に、必要データａが頻繁にアクセスされる場合、他のデータよりも内側アクセス領域Ａ２又は外側アクセス領域Ａ１内に留まっている可能性が高い。
【００４０】
したがって、複数回の交換処理によって、必要データａの移動パターンが多様化する。この結果、たとえ、第１の交換処理によるデータ移動（破線）と、第２の交換処理によるデータ移動（実線）とが解析されたとしても、例えば図７（ａ）のような連続した移動の発生頻度は低下し、第三者に必要データａが特定されるリスクが低減される。
【００４１】
図８は、本実施形態との比較のため、１段階の交換処理が行われた場合のデータの移動の様子を例示する図である。
アクセス領域Ａのサイズは、保存領域Ｂのサイズに比べて非常に小さいため、多くの場合、必要データａは、交換処理によって保存領域Ｂからアクセス領域Ａへ移動する。
したがって、攻撃者は、このデータ移動を解析することにより、アクセス領域Ａ全体を解析するよりも高い確率で必要データａを特定できる可能性がある。
【００４２】
これに対して、本実施形態では、必要データａは、図７（ｂ）のように第１の交換処理（破線）で内側アクセス領域Ａ２へ移動する場合も多く、第２の交換処理（実線）で移動するとは限らない。したがって、データ移動の解析により必要データａが特定されるリスクが低減される。
【００４３】
本実施形態によれば、記憶装置１は、外側アクセス領域Ａ１と外側保存領域Ｂ１との間で交換処理を行った後、内側アクセス領域Ａ２と内側保存領域Ｂ２との間で交換処理を行う。これにより、記憶装置１は、内側アクセス領域Ａ２へ１段階の交換処理を行う場合に比べて、内側アクセス領域Ａ２の全体へアクセスした場合に、必要データを特定される可能性を低減できる。この結果、内側アクセス領域Ａ２のサイズを拡大することなく安全性を高めることができ、さらに、内側アクセス領域Ａ２のサイズを拡大するよりも処理速度を向上できる。
【００４４】
また、記憶装置１は、外側アクセス領域Ａ１を内側アクセス領域Ａ２及び内側保存領域Ｂ２に分割する階層化を複数階層に渡って行うことができ、これにより、安全性を確保しつつ、最も内側のアクセス領域のサイズを抑えてデータ保護のための処理速度を向上できる。
【００４５】
また、記憶装置１は、履歴領域Ｃ１及びＣ２を設け、交換処理における移動対象のデータをこの履歴領域Ｃ１及びＣ２からも選択するように制御する。したがって、記憶装置１は、移動の対象となるデータの偏りを抑制し、安全性を向上できる。
具体的には、記憶装置１は、必要データがアクセス領域Ａにある場合、保存領域Ｂ及び履歴領域Ｃからそれぞれランダムに移動対象のデータを選択し、必要データが保存領域Ｂにある場合、さらに履歴領域Ｃにあるか否かによって、保存領域Ｂ又は履歴領域Ｃから移動対象のデータをランダムに選択する。これにより、記憶装置１は、容易に移動対象のデータを選択し、高速にデータ保護の処理を実行できる。
【００４６】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００４７】
記憶装置１によるデータ保護方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（記憶装置１）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータ（記憶装置１）に提供されてもよい。
【符号の説明】
【００４８】
１  記憶装置
１０  記憶領域
１１  交換部
１２  アクセス部
Ａ１  外側アクセス領域
Ａ２  内側アクセス領域
Ｂ１  外側保存領域
Ｂ２  内側保存領域
Ｃ１  外側履歴領域
Ｃ２  内側履歴領域
【図１】
0006563261.tif 000002
【図２】
0006563261.tif 000003
【図３】
0006563261.tif 000004
【図４】
0006563261.tif 000005
【図５】
0006563261.tif 000006
【図６】
0006563261.tif 000007
【図７】
0006563261.tif 000008
【図８】
0006563261.tif 000009