(57)【要約】      （修正有）【課題】組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿する記憶装置を提供する。【解決手段】アドレス決定部２００が、記憶領域１００に配置するデータを保存するアドレスをランダムに決定し、アクセスパターン秘匿部３００が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる。【選択図】図１
2013156798.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域に配置するデータを保存するアドレスをランダムに決定するアドレス決定手段と、
ダミーデータを追加し、アクセスパターンを秘匿するアクセスパターン秘匿手段と、
を備え、
前記ダミーデータのデータ長が、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応する長さであることを特徴とする記憶装置。
【請求項２】
前記アクセスパターン秘匿手段は、ランダムにダミーアクセスを生じさせることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記アドレス決定手段が、シャッフルバッファであることを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記ランダムにデータを配置するメモリ領域を有する記憶素子がＲＡＭであることを特徴とする請求項１に記載の記憶装置。
【請求項５】
アドレス決定手段が、該メモリ領域に配置するデータを保存するアドレスをランダムに決定する第１のステップと、
アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる第２のステップと、
を備えたアクセスパターンの秘匿方法。
【請求項６】
アドレス決定手段が、該メモリ領域に配置するデータを保存するアドレスをランダムに決定する第１のステップと、
アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる第２のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダムにデータを配置するメモリ領域を有し、攻撃者に対して、アクセスパターンを秘匿する記憶装置、アクセスパターンの秘匿方法およびプログラムに関する。
【背景技術】
【０００２】
従来より、重要なデータを保存するための記憶装置が知られている。そのため、この記憶装置が信頼のできないものである場合には、セキュリティ上、問題がある。そこで、信頼できないストレージにデータを安全に保存し、どのデータにアクセスしたのかを秘匿する方法が知られている（例えば、非特許文献１参照。）。
【０００３】
この方法は、実行中のプログラムをサイドチャネル攻撃から保護するための方法であり、攻撃者が、メモリに保存されているデータを取得したとしても、そのデータがプログラムによって使用されているデータであるのか、全く関係のないデータであるのかを判別できない。また、データをどこに保存するかをランダムに決定し、データが一定のアドレスにとどまらないようにするものである。
【０００４】
また、この方法は、近年、問題となっているサイドチャネル攻撃と呼ばれる攻撃のうち、メモリアクセスを解析し秘密情報を復元する攻撃に有効であることが知られている。一方で、ハードウェアの支援によるメモリ保護方法も提案されている（例えば、非特許文献２参照。）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｏｄｅｄ  Ｇｏｌｄｒｅｉｃｈ  ａｎｄ  Ｒａｆａｉｌ  Ｏｓｔｒｏｖｓｋｙ，“Ｓｏｆｔｗａｒｅ  ｐｒｏｔｅｃｔｉｏｎ  ａｎｄ  ｓｉｍｕｌａｔｉｏｎ  ｏｎ  ｏｂｌｉｖｉｏｕｓ  ｒａｍｓ，”  Ｊ．ＡＣＭ，４３（３）：４３１−４７３，１９９６．
【非特許文献２】Ｘ．  Ｚｈｕａｎｇ  ｅｔ  ａｌ．“Ｈａｒｄｗａｒｅ  Ａｓｓｉｓｔｅｄ  Ｃｏｎｔｒｏｌ  Ｆｌｏｗ  Ｏｂｆｕｓｃａｔｉｏｎ  ｆｏｒ  Ｅｍｂｅｄｄｅｄ  Ｐｒｏｃｅｓｓｏｒｓ”，ＣＡＳＥ  ２００４，２００４．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に記載の方法では、オーバーヘッドが大きく、実用化にはこれを解決することが必要であるという問題がある。また、非特許文献２に記載の方法は、ダミーデータが用いられておらず、データに対するアクセス頻度や順序などの情報を攻撃者が入手できるという問題がある。
【０００７】
そこで、本発明は、上述の課題に鑑みてなされたものであり、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿する記憶装置、アクセスパターンの秘匿方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００９】
（１）本発明は、メモリ領域に配置するデータを保存するアドレスをランダムに決定するアドレス決定手段（例えば、図１のアドレス決定部２００に相当）と、ダミーデータを追加し、アクセスパターンを秘匿するアクセスパターン秘匿手段（例えば、図１のアクセスパターン秘匿部３００に相当）と、を備え、前記ダミーデータのデータ長が、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応する長さであることを特徴とする記憶装置を提案している。
【００１０】
この発明によれば、アドレス決定手段が、アクセスパターン秘匿手段が、メモリ領域に配置するデータを保存するアドレスをランダムに決定するダミーデータを追加し、アクセスパターンを秘匿する。さらに、ダミーデータのデータ長が、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応する長さである。したがって、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿することができる。
【００１１】
（２）本発明は、（１）の記憶装置について、前記アクセスパターン秘匿手段（例えば、図１のアクセスパターン秘匿部３００に相当）は、ランダムにダミーアクセスを生じさせることを特徴とする記憶装置を提案している。
【００１２】
この発明によれば、アクセスパターン秘匿手段は、ランダムにダミーアクセスを生じさせる。したがって、攻撃者はダミーデータと真のデータの判別ができないので、ダミーアクセスを含む処理フローから真のフローを復元することができず、安全性を保つことができる。
【００１３】
（３）本発明は、（１）の記憶装置について、前記アドレス決定手段（例えば、図１のアドレス決定部２００に相当）が、シャッフルバッファであることを特徴とする記憶装置を提案している。
【００１４】
この発明によれば、アドレス決定手段が、シャッフルバッファである。つまり、シャッフルバッファを用いることにより、簡易な実装が可能となる。
【００１５】
（４）本発明は、（１）の記憶装置について、前記ランダムにデータを配置するメモリ領域を有する記憶素子がＲＡＭであることを特徴とする記憶装置を提案している。
【００１６】
この発明によれば、ランダムにデータを配置するメモリ領域を有する記憶素子がＲＡＭである。つまり、ＲＡＭを用いることにより、簡易な実装が可能となる。
【００１７】
（５）本発明は、アドレス決定手段が、該メモリ領域に配置するデータを保存するアドレスをランダムに決定する第１のステップ（例えば、図４のステップＳ１０１に相当）と、アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる第２のステップ（例えば、図４のステップＳ１０２に相当）と、を備えたアクセスパターンの秘匿方法を提案している。
【００１８】
この発明によれば、アドレス決定手段が、メモリ領域に配置するデータを保存するアドレスをランダムに決定し、アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる。したがって、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿することができる。
【００１９】
（６）本発明は、アドレス決定手段が、該メモリ領域に配置するデータを保存するアドレスをランダムに決定する第１のステップ（例えば、図４のステップＳ１０１に相当）と、アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる第２のステップ（例えば、図４のステップＳ１０２に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２０】
この発明によれば、アドレス決定手段が、メモリ領域に配置するデータを保存するアドレスをランダムに決定し、アクセスパターン秘匿手段が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる。したがって、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿することができる。
【発明の効果】
【００２１】
本発明によれば、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿することができることから、サイド攻撃からアクセスパターンを効果的に保護できるという効果がある。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る記憶装置の構成を示す図である。
【図２】本発明の実施形態に係るシャッフルバッファの動作を説明する図である。
【図３】本発明の実施形態に係る記憶装置において、ダミーデータを追加したシャッフルバッファの動作を説明する図である。
【図４】本発明の実施形態に係る記憶装置の処理を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００２４】
図１から図４を用いて、本実施形態に係る記憶装置について説明する。
【００２５】
＜記憶装置の構成＞
図１から図３を用いて、本実施形態に係る記憶装置の構成について説明する。
【００２６】
本実施形態に係る記憶装置は、図１に示すように、記憶領域１００と、ＲＡＭ１１０と、アドレス決定部２００と、アクセスパターン秘匿部３００とから構成されている。
【００２７】
記憶領域１００は、データを保存する領域であり、その一部をＲＡＭ１１０が構成している。
【００２８】
アドレス決定部２００は、ＲＡＭ１１０に配置するデータを保存するアドレスをランダムに決定する。なお、アドレス決定部２００は、シャッフルバッファであることが好ましい。
【００２９】
図２および図３を用いて、シャッフルバッファの動作を説明する。
初期状態では、シャッフルバッファの中身は、空であり、メモリに１〜９のデータが保存されている。次に、シャッフルバッファにメモリから１〜３のデータを保存する。今、メモリの「５」に対して、アクセスが発生したとすると、メモリの「５」とシャッフルバッファの「２」が入れ替わり、シャッフルバッファ内のデータは、「１」、「５」、「３」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「６」、「７」、「８」、「９」となる。
【００３０】
続いて、メモリの「８」に対して、アクセスが発生したとすると、メモリの「８」とシャッフルバッファの「１」が入れ替わり、シャッフルバッファ内のデータは、「８」、「５」、「３」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「６」、「７」、「１」、「９」となる。
【００３１】
さらに、メモリの「６」に対して、アクセスが発生したとすると、メモリの「６」とシャッフルバッファの「５」が入れ替わり、シャッフルバッファ内のデータは、「８」、「６」、「３」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「５」、「７」、「１」、「９」となる。
【００３２】
次に、メモリの「８」に対して、アクセスが発生した場合は、メモリに「８」がなく、シャッフルバッファに「８」があるため、メモリへのアクセスは発生しない。そして、すべてのアクセスが終了すると、メモリの開いた部分に、シャッフルバッファのデータが書き込まれ、処理が終了する。
【００３３】
このようにシャッフルバッファを使用することにより、同じブロックにアクセスが生じた場合でも、メモリ上の異なるアドレスにアクセスが起こり、プログラムがどのデータにアクセスしているかを秘匿することができる。しかしながら、この従来の方式では、メモリとシャッフルバッファの間の通信を観測することで、５−８−６とアクセスしたことがわかる。最後のブロック８のみメモリへのアクセスが生じないため、シャッフルバッファ内のどのブロックにアクセスしたのかはわからない。
【００３４】
そこで、図３に示すように、メモリ内にダミーデータを追加する。ここで、Ａ〜Ｆは、ダミーデータである。
【００３５】
図３の処理は以下のようになる。
つまり、初期状態では、シャッフルバッファの中身は、空であり、メモリに１〜Ｆのデータが保存されている。次に、シャッフルバッファにメモリから１〜３のデータを保存する。今、メモリの「５」に対して、アクセスが発生したとすると、メモリの「５」とシャッフルバッファの「２」が入れ替わり、シャッフルバッファ内のデータは、「１」、「５」、「３」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「６」、「７」、「８」、「９」、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」となる。
【００３６】
続いて、メモリの「Ｄ」に対して、アクセスが発生したとすると、メモリの「Ｄ」とシャッフルバッファの「３」が入れ替わり、シャッフルバッファ内のデータは、「１」、「５」、「Ｄ」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「６」、「７」、「８」、「９」、「Ａ」、「Ｂ」、「Ｃ」、「３」、「Ｅ」、「Ｆ」となる。
【００３７】
さらに、メモリの「８」に対して、アクセスが発生したとすると、メモリの「８」とシャッフルバッファの「１」が入れ替わり、シャッフルバッファ内のデータは、「８」、「５」、「Ｄ」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「６」、「７」、「１」、「９」、「Ａ」、「Ｂ」、「Ｃ」、「３」、「Ｅ」、「Ｆ」となる。
【００３８】
続いて、メモリの「６」に対して、アクセスが発生したとすると、メモリの「６」とシャッフルバッファの「５」が入れ替わり、シャッフルバッファ内のデータは、「８」、「６」、「Ｄ」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「５」、「７」、「１」、「９」、「Ａ」、「Ｂ」、「Ｃ」、「３」、「Ｅ」、「Ｆ」となる。
【００３９】
さらに、メモリの「Ｂ」に対して、アクセスが発生したとすると、メモリの「Ｂ」とシャッフルバッファの「８」が入れ替わり、シャッフルバッファ内のデータは、「Ｂ」、「６」、「Ｄ」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「５」、「７」、「１」、「９」、「Ａ」、「８」、「Ｃ」、「３」、「Ｅ」、「Ｆ」となる。
【００４０】
さらに、メモリの「８」に対して、アクセスが発生したとすると、メモリの「８」とシャッフルバッファの「Ｄ」が入れ替わり、シャッフルバッファ内のデータは、「Ｂ」、「６」、「８」となり、メモリ内のデータは、「−」、「−」、「−」、「４」、「２」、「５」、「７」、「１」、「９」、「Ａ」、「Ｄ」、「Ｃ」、「３」、「Ｅ」、「Ｆ」となる。
【００４１】
そして、すべてのアクセスが終了すると、メモリの開いた部分に、シャッフルバッファのデータが書き込まれ、処理が終了する。
【００４２】
つまり、本来の処理フロー５−８−６−８の間にランダムにダミーアクセスを生じさせることにより、攻撃者は、ダミーデータと真のデータの判別ができないため、ダミーを含む処理フロー５−Ｄ−８−６−Ｂ−８から真のフローである５−８−６−８を復元することができず、安全性を保つことができる。
【００４３】
また、メモリの内容をダンプした場合も、ダミーデータと真のデータの判別ができないため、安全性を確保できる。加えて、ダミーデータのサイズを大きくすることで高い安全性を確保することができ、小さくすることでオーバーヘッドを小さくすることができる。
【００４４】
アクセスパターン秘匿部３００は、ダミーデータを追加し、アクセスパターンを秘匿する。なお、追加するダミーデータのデータ長は、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応する長さである。また、アクセスパターン秘匿部３００は、ランダムにダミーアクセスを生じさせることにより、攻撃者に対して、アクセスパターンを秘匿する。
【００４５】
＜記憶装置の処理＞
図４を用いて、記憶装置の処理について説明する。
【００４６】
アドレス決定部２００が、メモリ領域に配置するデータを保存するアドレスをランダムに決定する（ステップＳ１０１）。
【００４７】
そして、アクセスパターン秘匿部３００が、アクセス要求があったときに、要求される安全性を確保でき、かつ、要求されるオーバーヘッドに対応するデータ長のダミーデータによるランダムなアクセスを生じさせる（ステップＳ１０２）。
【００４８】
以上、説明したように、本実施形態によれば、組み込みシステムなどでも実行が可能であり、かつデータへのアクセスパターンを秘匿することができることから、サイド攻撃からアクセスパターンを効果的に保護できる。
【００４９】
なお、記憶装置の処理をコンピュータシステム読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを記憶装置に読み込ませ、実行することによって本発明の記憶装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００５０】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５２】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５３】
１００；記憶領域
１１０；ＲＡＭ
２００；アドレス決定部
３００；アクセスパターン秘匿部
【図１】
2013156798.tif 000003
【図２】
2013156798.tif 000004
【図３】
2013156798.tif 000005
【図４】
2013156798.tif 000006