(57)【要約】      （修正有）【課題】組み込みシステムなどでも実行が可能かつ専用ハードウェアが不要で、アクセスパターンを秘匿し、履歴情報を攻撃者から秘匿化する。【解決手段】メモリをデータのアクセス領域と非アクセス領域とに分割し、履歴データ記憶領域を備えた記憶装置で、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択しアクセス領域に移動し、１つのデータにアクセスが生じた時に、アクセス領域と非アクセス領域との間でデータ交換を行うと共に、アクセス領域内の他のデータについてもアクセスを行う。アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、アクセス領域にあった任意のデータを履歴領域に移動する。そしてアクセス領域内の必要なデータを書き出す。【選択図】図２
2014068289.tif 000002
【特許請求の範囲】
【請求項１】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置。
【請求項２】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置。
【請求項３】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置。
【請求項４】
前記制御手段が、すでに、前記履歴領域がデータで満たされた状態で、前記上書き保存することを特徴とする請求項１から請求項３のいずれかに記載の記憶装置。
【請求項５】
前記アクセス領域が耐タンパ性を有することを特徴とする請求項１から請求項４に記載の記憶装置。
【請求項６】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
【請求項７】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
【請求項８】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
【請求項９】
すでに、前記履歴領域がデータで満たされた状態で、前記第３のステップにおける上書き保存をすることを特徴とする請求項６から請求項８のいずれかに記載のアクセスパターンの秘匿方法。
【請求項１０】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１１】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１２】
メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１３】
すでに、前記履歴領域がデータで満たされた状態で、前記第３のステップにおける上書き保存をすることを特徴とする請求項１０から請求項１２のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実的なオーバーヘッドでアクセスパターンを秘匿するとともに、履歴情報を攻撃者から秘匿化する記憶装置、アクセスパターンの秘匿方法およびプログラムに関する。
【背景技術】
【０００２】
近年、暗号に対するサイドチャネル攻撃と呼ばれる攻撃が大きな問題となっている。ソフトウェアに対するサイドチャネル攻撃としては、メモリアクセスを解析し秘密情報を復元する攻撃がある。こうした攻撃に対応して、メモリアクセスを攻撃者から保護するためにＯｂｌｉｖｉｏｕｓ  ＲＡＭが注目を集めている（例えば、非特許文献１および非特許文献２参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｏｄｅｄ  Ｇｏｌｄｒｅｉｃｈ  ａｎｄ  Ｒａｆａｉｌ  Ｏｓｔｒｏｖｓｋｙ，“Ｓｏｆｔｗａｒｅ  ｐｒｏｔｅｃｔｉｏｎ  ａｎｄ  ｓｉｍｕｌａｔｉｏｎ ｏｎ  ｏｂｌｉｖｉｏｕｓ  ＲＡＭＳ，”Ｊ．ＡＣＭ，４３（３）：４３１−４７３，１９９６．
【非特許文献２】Ｘ．Ｚｈｕａｎｇ  ｅｔ  ａｌ．“Ｈａｒｄｗａｒｅ  Ａｓｓｉｓｔｅｄ  Ｃｏｎｔｒｏｌ  Ｆｌｏｗ  Ｏｂｆｕｓｃａｔｉｏｎ  ｆｏｒ  Ｅｍｂｅｄｄｅｄ  Ｐｒｏｃｅｓｓｏｒｓ”，ＣＡＳＥ  ２００４，２００４．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、非特許文献１などで検討されているＯｂｌｉｖｉｏｕｓ  ＲＡＭによるメモリの保護は、オーバーヘッドが大きく、実用化が困難であるという問題がある。そこで、非特許文献２では、ハードウェアの支援によるメモリ保護手法が提案されているが、この方法では、データに対するアクセス頻度や順序などの情報を攻撃者が入手できるという問題がある。また、専用のハードウェアが必要であるという制約がある。また、従来の方法では、攻撃者から記憶装置が保持している履歴情報を保護することが困難であるため、履歴情報を利用した攻撃を防止できないという問題があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、組み込みシステムなどでも実行が可能であり、かつ専用ハードウェアが不要であって、アクセスパターンを秘匿するとともに、履歴情報を攻撃者から秘匿化することができる記憶装置、アクセスパターンの秘匿方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００７】
（１）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段（例えば、図１の並べ替え部１１０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段（例えば、図１の移動部１２０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段（例えば、図１の制御部１３０に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段（例えば、図１の書き出し部１４０に相当）と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置を提案している。
【０００８】
この発明によれば、並び替え手段は、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替える。移動手段は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。制御手段は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。書き出し手段は、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。そして、保存手段は、アクセス領域から非アクセス領域に移動したデータを履歴領域に履歴データとして保存し、制御手段は、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【０００９】
（２）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段（例えば、図３の並べ替え部１１０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段（例えば、図３の移動部１２０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段（例えば、図３の制御部１３１に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段（例えば、図３の書き出し部１４０に相当）と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置を提案している。  
【００１０】
この発明によれば、並び替え手段は、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替える。移動手段は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。制御手段は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。書き出し手段は、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。そして、保存手段は、アクセス領域から非アクセス領域に移動したデータを履歴領域に履歴データとして保存し、制御手段は、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動して、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００１１】
（３）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段（例えば、図５の並べ替え部１１０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段（例えば、図５の移動部１２０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段（例えば、図５の制御部１３２に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段（例えば、図５の書き出し部１４０に相当）と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存することを特徴とする記憶装置を提案している。
【００１２】
この発明によれば、並び替え手段は、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替える。移動手段は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。制御手段は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。書き出し手段は、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。そして、保存手段は、アクセス領域から非アクセス領域に移動したデータを履歴領域に履歴データとして保存し、制御手段は、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、非アクセス領域からランダムに選択したデータとアクセスするデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００１３】
（４）本発明は、（１）から（３）の記憶装置について、前記制御手段が、すでに、前記履歴領域がデータで満たされた状態で、前記上書き保存することを特徴とする記憶装置を提案している。
【００１４】
この発明によれば、制御手段が、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【００１５】
（５）本発明は、（１）から（４）の記憶装置について、前記アクセス領域が耐タンパ性を有することを特徴とする記憶装置を提案している。
【００１６】
この発明によれば、アクセス領域が耐タンパ性を有する。この場合、アクセス領域内のすべてのデータにアクセスする必要がなくなるため、さらに、オーバーヘッドを削減できる。また、記憶装置として、ＳＩＭカード等を用いることができる。
【００１７】
（６）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図２のステップＳ１００に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図２のステップＳ２００に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図２のステップＳ３００に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図２のステップＳ４００に相当）と、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
【００１８】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００１９】
（７）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図４のステップＳ１１０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図４のステップＳ２１０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図４のステップＳ３１０に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図４のステップＳ４１０に相当）と、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
【００２０】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動して、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００２１】
（８）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法であって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図６のステップＳ１２０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図６のステップＳ２２０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図６のステップＳ３２０に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図６のステップＳ４２０に相当）と、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
【００２２】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを非アクセス領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、非アクセス領域からランダムに選択したデータとアクセスするデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００２３】
（９）本発明は、（６）から（８）のアクセスパターンの秘匿方法について、すでに、前記履歴領域がデータで満たされた状態で、前記第３のステップにおける上書き保存をすることを特徴とするアクセスパターンの秘匿方法を提案している。
【００２４】
この発明によれば、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【００２５】
（１０）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図２のステップＳ１００に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図２のステップＳ２００に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図２のステップＳ３００に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図２のステップＳ４００に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２６】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００２７】
（１１）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図４のステップＳ１１０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図４のステップＳ２１０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図４のステップＳ３１０に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図４のステップＳ４１０に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２８】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動して、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００２９】
（１２）本発明は、メモリをデータのアクセス領域と非アクセス領域とに分割され、履歴データを記憶する記憶領域を備えた記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップ（例えば、図６のステップＳ１２０に相当）と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップ（例えば、図６のステップＳ２２０に相当）と、１つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、ランダムに選択された前記履歴領域内のデータに代えて、上書き保存する第３のステップ（例えば、図６のステップＳ３２０に相当）と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第４のステップ（例えば、図６のステップＳ４２０に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００３０】
この発明によれば、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させ、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを非アクセス領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。したがって、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、非アクセス領域からランダムに選択したデータとアクセスするデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００３１】
（１３）本発明は、（１０）から（１３）のプログラムについて、すでに、前記履歴領域がデータで満たされた状態で、前記第３のステップにおける上書き保存をすることを特徴とするプログラムを提案している。
【００３２】
この発明によれば、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【発明の効果】
【００３３】
本発明によれば、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができるという効果がある。また、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うことから、データのアクセスパターンを秘匿することができるという効果がある。さらに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うため、さらに、データのアクセスパターンを秘匿することができるという効果がある。
【００３４】
また、本発明によれば、保存しておく履歴情報をランダムに選択することで、攻撃者が履歴を推測することが困難になる。その結果として、あるデータに対するアクセスが、履歴領域に含まれているからアクセスしているのか、プログラムが必要とするデータであるからアクセスしているのか、ランダムに選択されたデータであるのか、が識別困難になり、攻撃者からアクセスパターンを秘匿することが可能となるという効果である。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施形態に係る記憶装置の構成を示す図である。
【図２】本発明の第１の実施形態に係る記憶装置の処理を示す図である。
【図３】本発明の第２の実施形態に係る記憶装置の構成を示す図である。
【図４】本発明の第２の実施形態に係る記憶装置の処理を示す図である。
【図５】本発明の第３の実施形態に係る記憶装置の構成を示す図である。
【図６】本発明の第３の実施形態に係る記憶装置の処理を示す図である。
【図７】本発明の実施例に係るアクセス時の記憶領域内のデータの遷移を示す図である。
【図８】本発明の実施例に係る記憶装置の処理を示す図である。
【図９】本発明の実施例に係る記憶装置の処理を示す図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３７】
＜第１の実施形態＞
図１から図２を用いて、本発明の実施形態について説明する。
【００３８】
＜記憶装置の構成＞
本実施形態に係る記憶装置は、図１に示すように、並べ替え部１１０と、移動部１２０と、制御部１３０と、書き出し部１４０と、保存部１５０と、記憶領域２００とから構成されている。なお、本発明の記憶装置は、例えば、ＲＡＭ等の一般的な記憶装置ばかりでなく、ＳＩＭやＩＣカード等の記憶媒体も含むものである。
【００３９】
記憶領域２００は、メモリをデータのアクセス領域と非アクセス領域と履歴領域とに分割されている。なお、アクセス領域、非アクセス領域、履歴領域は、ＤＲＡＭ、ＳＲＡＭ等の書き換え可能なメモリで構成される。また、アクセス領域を耐タンパ性を備えたＤＲＡＭ、ＳＲＡＭ等の書き換え可能なメモリで構成してもよい。並べ替え部１１０は、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替える。移動部１２０は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。
【００４０】
制御部１３０は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
【００４１】
例えば、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。
【００４２】
なお、制御部１３０は、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【００４３】
書き出し部１４０は、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。保存部１５０は、アクセス領域から非アクセス領域に移動したデータを履歴領域に履歴データとして保存する。
【００４４】
＜記憶装置の処理＞
図２を用いて、本実施形態に係る記憶装置の処理について説明する。
【００４５】
まず、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替え（ステップＳ１００）、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる（ステップＳ２００）。
【００４６】
次に、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する（ステップＳ３００）。
【００４７】
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す（ステップＳ４００）。
【００４８】
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００４９】
＜第２の実施形態＞
図３から図４を用いて、本発明の実施形態について説明する。
【００５０】
＜記憶装置の構成＞
本実施形態に係る記憶装置は、図３に示すように、並べ替え部１１０と、移動部１２０と、制御部１３１と、書き出し部１４０と、保存部１５０と、記憶領域２００とから構成されている。なお、本発明の記憶装置は、例えば、ＲＡＭ等の一般的な記憶装置ばかりでなく、ＳＩＭやＩＣカード等の記憶媒体も含むものである。なお、第１の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は省略する。
【００５１】
制御部１３１は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
【００５２】
例えば、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動して、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。
【００５３】
なお、制御部１３１は、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【００５４】
＜記憶装置の処理＞
図４を用いて、本実施形態に係る記憶装置の処理について説明する。
【００５５】
まず、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替え（ステップＳ１１０）、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる（ステップＳ２１０）。
【００５６】
次に、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動して、ランダムに選択された履歴領域内のデータに代えて、上書き保存する（ステップＳ３１０）。  
【００５７】
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す（ステップＳ４１０）。
【００５８】
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００５９】
＜第３の実施形態＞
図５から図６を用いて、本発明の実施形態について説明する。
【００６０】
＜記憶装置の構成＞
本実施形態に係る記憶装置は、図５に示すように、並べ替え部１１０と、移動部１２０と、制御部１３２と、書き出し部１４０と、保存部１５０と、記憶領域２００とから構成されている。なお、本発明の記憶装置は、例えば、ＲＡＭ等の一般的な記憶装置ばかりでなく、ＳＩＭやＩＣカード等の記憶媒体も含むものである。なお、第１の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は省略する。
【００６１】
制御部１３２は、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
【００６２】
例えば、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを非アクセス領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する。
【００６３】
なお、制御部１３２は、すでに、履歴領域がデータで満たされた状態で、上書き保存する。したがって、従来のように、保存されたタイミングが古い順番に上書きをするのではなく、ランダムに上書きを実行するため、有効に、履歴情報を攻撃者から秘匿化することができる。
【００６４】
＜記憶装置の処理＞
図６を用いて、本実施形態に係る記憶装置の処理について説明する。
【００６５】
まず、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替え（ステップＳ１２０）、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる（ステップＳ２２０）。
【００６６】
次に、１つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを非アクセス領域に移動し、ランダムに選択された履歴領域内のデータに代えて、上書き保存する（ステップＳ３２０）。
【００６７】
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す（ステップＳ４２０）。
【００６８】
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを１度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うＯｂｌｉｖｉｏｕｓ  ＲＡＭのように、オーバーヘッドが大きくなることを防止することができる。また、非アクセス領域からランダムに選択したデータとアクセスするデータとをアクセス領域に移動して、所望のデータへのアクセスを行うとともに、ランダムに選択された履歴領域内のデータに代えて、上書き保存することから、有効に、履歴情報を攻撃者から秘匿化することができる。
【００６９】
＜実施例＞
図７から図９を用いて、本発明の実施例について説明する。
【００７０】
図７は、１、２、・・・、９、Ａ、Ｂ、・・・、Ｆをメモリに保存されているデータとしたときに、プログラムが、５→Ｄ→８→５→Ａの順にデータにアクセスする場合のメモリの遷移を示したものである。以下、この処理を例示として、説明する。なお、図７の例にかかわらず、非アクセス領域をさらに複数に分割してもよい。
【００７１】
まず、初期状態において、１度だけ、非アクセス領域内のデータをランダムに並び替え（ステップＳ１１００）、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる（ステップＳ１２００）。
【００７２】
そして、まず、５にアクセスする場合には、５はアクセス領域に含まれないため、５ともう一つランダムに選択されたデータ（図７では、２）をアクセス領域に移動し、例えば、これにより、アクセス領域から移動する４とＢとを履歴領域に保存して、５にアクセスする。このとき、アクセス領域内の他のデータ（図７では、２、３、８）に対してもアクセスを行う（ステップＳ１３００）。
【００７３】
次に、Ｄにアクセスする場合には、Ｄはアクセス領域に含まれないため、Ｄをアクセス領域に移動し、もう一つのデータは、履歴領域から選択する（例えば、図７では、Ｂ）。これにより、アクセス領域から移動する５と８とを履歴領域に保存して、Ｄにアクセスする。このとき、アクセス領域内の他のデータ（図７では、３、Ｂ、２）に対してもアクセスを行う（ステップＳ１４００）。
【００７４】
さらに、８にアクセスする場合には、８は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータをランダムに選択し（図７では、Ａ）、アクセス領域に移動する。これにより、アクセス領域から移動する３とＢとを履歴領域に保存して、８にアクセスする。このとき、アクセス領域内の他のデータ（図７では、Ａ、Ｄ、２）に対してもアクセスを行う（ステップＳ１５００）。
【００７５】
さらに、５にアクセスする場合、５は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータをランダムに選択し（図７では、６）、アクセス領域に移動する。これにより、アクセス領域から移動する２と８とを履歴領域に保存して、５にアクセスする。このとき、４と５とがランダムに選択され、２とＢとで上書きされる。また、アクセス領域内の他のデータ（図７では、Ａ、Ｄ、６）に対してもアクセスを行う（ステップＳ１６００）。
【００７６】
最後に、Ａにアクセスする場合、Ａはアクセス領域に含まれているため、アクセス領域に含まれないランダムに選択したデータと履歴領域に保存されているデータとを（図７では、３、Ｆ）、アクセス領域に移動する。これにより、アクセス領域から移動する６とＤとが非アクセス領域に書き出される。このとき、履歴領域に保存されている８とＢとが６とＤとによって上書きされ、Ａにアクセスする。また、アクセス領域内の他のデータ（図７では、５、Ｆ、３）に対してもアクセスを行う（ステップＳ１７００）。
【００７７】
そして、すべての処理が完了するとアクセス領域内の必要なデータを書き出して、終了する（ステップＳ１８００）。
【００７８】
したがって、本実施例によれば、履歴を保存し、その中に含まれるデータに対して毎回アクセスすることで、あるデータに対して複数回アクセスした場合の安全性を確保することが可能となり、現実的なオーバーヘッドでアクセスパターンを秘匿することが可能となる。また、保存しておく履歴情報をランダムに選択することで、攻撃者が履歴を推測することが困難になる。その結果として、あるデータに対するアクセスが、履歴領域に含まれているからアクセスしているのか、プログラムが必要とするデータであるからアクセスしているのか、ランダムに選択されたデータであるのか、が識別困難になり、攻撃者からアクセスパターンを秘匿することが可能となる。
【００７９】
なお、記憶装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを記憶装置に読み込ませ、実行することによって本発明の記憶装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００８０】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００８１】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００８２】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８３】
１１０；並べ替え部
１２０；移動部
１３０；制御部
１３１；制御部
１３２；制御部
１４０；書き出し部
１５０；保存部
２００；記憶領域
【図１】
2014068289.tif 000003
【図２】
2014068289.tif 000004
【図３】
2014068289.tif 000005
【図４】
2014068289.tif 000006
【図５】
2014068289.tif 000007
【図６】
2014068289.tif 000008
【図７】
2014068289.tif 000009
【図８】
2014068289.tif 000010
【図９】
2014068289.tif 000011