JP2014171005A - Storage device, access pattern concealing method, and program - Google Patents
Storage device, access pattern concealing method, and program Download PDFInfo
- Publication number
- JP2014171005A JP2014171005A JP2013040592A JP2013040592A JP2014171005A JP 2014171005 A JP2014171005 A JP 2014171005A JP 2013040592 A JP2013040592 A JP 2013040592A JP 2013040592 A JP2013040592 A JP 2013040592A JP 2014171005 A JP2014171005 A JP 2014171005A
- Authority
- JP
- Japan
- Prior art keywords
- data
- access area
- area
- access
- accessed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、アクセスパターンを秘匿し、オーバーヘッドを削減する記憶装置、アクセスパターンの秘匿方法およびプログラムに関する。 The present invention relates to a storage device that conceals an access pattern and reduces overhead, an access pattern concealment method, and a program.
近年、暗号に対するサイドチャネル攻撃と呼ばれる攻撃が大きな問題となっている。ソフトウェアに対するサイドチャネル攻撃としては、メモリアクセスを解析し秘密情報を復元する攻撃がある。こうした攻撃に対応して、メモリアクセスを攻撃者から保護するためにOblivious RAMが注目を集めている(例えば、非特許文献1および非特許文献2参照。)。
In recent years, attacks called side channel attacks against cryptography have become a major problem. As a side channel attack against software, there is an attack that analyzes memory access and restores secret information. In response to such an attack, Obvious RAM has attracted attention in order to protect memory access from attackers (see, for example, Non-Patent
ところが、非特許文献1などで検討されているOblivious RAMによるメモリの保護は、オーバーヘッドが大きく、実用化が困難であるという問題がある。そこで、非特許文献2では、ハードウェアの支援によるメモリ保護手法が提案されているが、この方法では、データに対するアクセス頻度や順序などの情報を攻撃者が入手できるという問題がある。また、専用のハードウェアが必要であるという制約がある。これらに対して、非特許文献3では、現実的なオーバーヘッドで攻撃者からアクセスパターンを保護する手法が提案されているが、ソフトウェアのみで実現するためには比較的大きなオーバーヘッドが生じる、オーバーヘッドを削減するためには安全なメモリが必要であるといった課題があった。
However, the memory protection by the Obvious RAM, which has been studied in Non-Patent
そこで、本発明は、上述の課題に鑑みてなされたものであり、アクセスパターンを秘匿し、オーバーヘッドを削減する記憶装置、アクセスパターンの秘匿方法およびプログラムを提供することを目的とする。 Therefore, the present invention has been made in view of the above-described problems, and an object thereof is to provide a storage device that conceals an access pattern and reduces overhead, a method for concealing an access pattern, and a program.
本発明は、上記の課題を解決するために、以下の事項を提案している。 The present invention proposes the following matters in order to solve the above problems.
(1)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置であって、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動することを特徴とする記憶装置を提案している。 (1) The present invention is a storage device that is divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data. A rearranging means for randomly rearranging data in the non-access area, a moving means for selecting the data in the non-access area according to the memory size of the access area, and moving the data to the access area; When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When the access process to the data to be accessed and the control means for exchanging data with Writing means for writing data, and storage means for saving data moved from the access area to the non-access area as history data in the history area, wherein the control means has access data in the access area Without moving the data to be accessed and the arbitrary data stored in the history area to the access area when there is data stored in the history area and existing in the non-access area. A storage device is proposed.
(2)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置であって、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動することを特徴とする記憶装置を提案している。 (2) The present invention is a storage device that is divided into a data access area, a history data area, and a non-access area whose safety is ensured by numerical processing of data. A rearranging means for randomly rearranging data in the non-access area, a moving means for selecting the data in the non-access area according to the memory size of the access area, and moving the data to the access area; When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When the access process to the data to be accessed and the control means for exchanging data with Writing means for writing data, and saving means for saving data moved from the access area to the non-access area as history data in the history area, and the control means saves data to be accessed in the history area In this case, there is proposed a storage device that selects data not stored in the history area and moves the data to be accessed and the selected data to the access area.
(3)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置であって、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、備え、前記制御手段は、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域からランダムに選択したデータと前記アクセスするデータとを前記アクセス領域に移動することを特徴とする記憶装置を提案している。 (3) The present invention is a storage device that is divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data. A rearranging means for randomly rearranging data in the non-access area, a moving means for selecting the data in the non-access area according to the memory size of the access area, and moving the data to the access area; When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When the access process to the data to be accessed and the control means for exchanging data with Writing means for writing data, and saving means for saving data moved from the access area to the non-access area as history data in the history area, wherein the control means saves data to be accessed in the access area In this case, a storage device is proposed in which randomly selected data from the non-access area and the data to be accessed are moved to the access area.
(4)本発明は、(1)から(3)の記憶装置について、前記データの数的な処理を行う処理手段を備え、前記処理手段が、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数1により、これらを難読化したデータx1、x2、x3、・・・、xnに変換することを特徴とする記憶装置を提案している。
(4) The present invention comprises processing means for performing numerical processing of the data for the storage devices of (1) to (3), wherein the processing means converts the data in the access area and the history data area to v1, v2, ···, v m (m is a positive integer), a random number d, y1, y2, y3, ···, y n (n is a positive integer) masking variable vector, an a rank conversion but m + 1, when and its n × rightmost column are all 1 (m + 1) matrix, the
(5)本発明は、(1)から(3)の記憶装置について、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する情報付加手段を備えたことを特徴とする記憶装置を提案している。 (5) In the storage device according to (1) to (3), the present invention associates information indicating whether each data in the non-access area is in the access area with each data in the non-access area. Thus, there has been proposed a storage device characterized by comprising information adding means for adding.
(6)本発明は、(1)から(3)の記憶装置について、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する格納制御手段を備えたことを特徴とする記憶装置を提案している。 (6) In the storage devices of (1) to (3), the present invention provides one block in all the areas when the minimum number of unit bits of data is larger than the number of processing unit bits in all areas. Has proposed storage control means for storing a plurality of data.
(7)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、該アクセス領域および履歴領域に移動したデータを前記数2により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
(7) The present invention is a method for concealing an access pattern in a storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data, .., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is an n × (m + 1) matrix in which the rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by
(8)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、該アクセス領域および履歴領域に移動したデータを前記数3により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
(8) The present invention is a method for concealing an access pattern in a storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data, .., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and its rightmost column is all 1, data x1 obfuscated by
(9)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、該アクセス領域に移動したデータを前記数4により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、を備えたことを特徴とするアクセスパターンの秘匿方法を提案している。
(9) The present invention is a method for concealing an access pattern in a storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data, .., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a variable vector for masking, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by
(10)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、該アクセス領域および履歴領域に移動したデータを前記数5により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、をコンピュータに実行させるためのプログラムを提案している。
(10) The present invention executes in a computer an access pattern concealment method in a storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data. , V m (m is a positive integer), d is a random number, y1, y2, y3,... , Y n (n is a positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, A process of converting these into obfuscated data x1, x2, x3,..., Xn , and information indicating whether each data in the non-access area is in the access area or not. To data A process of adding and associating, a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of data is larger than the processing unit bit number in all
(11)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数6により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、該アクセス領域および履歴領域に移動したデータを前記数6により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、をコンピュータに実行させるためのプログラムを提案している。
(11) The present invention executes in a computer an access pattern concealment method in a storage device that is divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data. , V m (m is a positive integer), d is a random number, y1, y2, y3,... , Y n (n is a positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, A process of converting these into obfuscated data x1, x2, x3,..., Xn , and information indicating whether each data in the non-access area is in the access area or not. To data A process of adding and associating, a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of data is larger than the processing unit bit number in all
(12)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数7により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、該アクセス領域に移動したデータを前記数7により難読化する第5のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、をコンピュータに実行させるためのプログラムを提案している。
(12) The present invention executes in a computer an access pattern concealment method in a storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data. , V m (m is a positive integer), d is a random number, y1, y2, y3,... , Y n (n is a positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, A process of converting these into obfuscated data x1, x2, x3,..., Xn , and information indicating whether each data in the non-access area is in the access area or not. To data A process of adding and associating, a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of data is larger than the processing unit bit number in all
本発明によれば、データの数的処理により安全性を担保するため、従来よりも小さなオーバーヘッドでアクセスパターンを秘匿することができる。また、非アクセス領域内のデータの並べ替えを1度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うOblivious RAMのように、オーバーヘッドが大きくなることを防止することができるという効果がある。また、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うことから、データのアクセスパターンを秘匿することができるという効果がある。さらに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うため、さらに、データのアクセスパターンを秘匿することができるという効果がある。 According to the present invention, since the safety is ensured by the numerical processing of data, the access pattern can be concealed with a smaller overhead than in the past. Further, since the data in the non-access area is rearranged only once, it is possible to prevent an increase in overhead as in the case of an Obvious RAM in which data is rearranged many times at a predetermined timing. There is an effect. In addition, since data is exchanged between the access area and the non-access area when one data is accessed, the data access pattern can be concealed. Further, since other data in the access area is accessed and data is exchanged between the access area and the non-access area, the data access pattern can be concealed.
また、数1等に示すように、乱数dとかけられる列は常に1になっており、これによって元のデータvの変更が難読化後の変数全体に及ぶようになっているため、この難読化を適用することによって、乱数を変更すれば、それがすべての変数に影響を及ぼすことになり、アクセス領域全体を書き換えるよりは効率が上がるという効果がある。
Further, as shown in the
また、保存領域の全ブロックに、例えば、1ビットの値を割り当て、ビットの1,0によって各データがアクセス領域に保持されているかどうかを判定することにより、アクセス領域のデータの管理を小さなオーバーヘッドで実現することにより、高速化を図ることができるという効果がある。
Further, for example, by assigning a 1-bit value to all blocks in the storage area and determining whether each data is held in the access area by
さらに、本発明によれば、例えば、short int型の場合、1つのデータは2バイト(16ビット)であるので、64ビット環境では、1つのブロックに4つのshort int型を格納することが可能となる。これによって、必要なメモリサイズの削減が可能となる。同時に、4つのshort int型変数を1度に取得することが可能となるので、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。 Furthermore, according to the present invention, for example, in the case of the short int type, since one data is 2 bytes (16 bits), it is possible to store four short int types in one block in a 64-bit environment. It becomes. As a result, the required memory size can be reduced. At the same time, four short int type variables can be acquired at a time. Therefore, when data to be continuously accessed is stored in the same block, the access speed can be improved.
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Note that the constituent elements in the present embodiment can be appropriately replaced with existing constituent elements and the like, and various variations including combinations with other existing constituent elements are possible. Therefore, the description of the present embodiment does not limit the contents of the invention described in the claims.
<第1の実施形態>
図1から図5を用いて、本発明の実施形態について説明する。
<First Embodiment>
The embodiment of the present invention will be described with reference to FIGS.
<記憶装置の構成>
本実施形態に係る記憶装置は、図1に示すように、並べ替え部110と、移動部120と、制御部130と、書き出し部140と、保存部150と、処理部160と、情報付加部170と、格納制御部180と、記憶領域200とから構成されている。なお、本発明の記憶装置は、例えば、RAM等の一般的な記憶装置ばかりでなく、SIMやICカード等の記憶媒体も含むものである。
<Configuration of storage device>
As illustrated in FIG. 1, the storage device according to the present embodiment includes a
記憶領域200は、メモリをデータのアクセス領域と非アクセス領域と履歴領域とに分割されており、アクセス領域と履歴データ領域とは、後述する処理部160により、データの数的な処理により安全性が担保されている。なお、アクセス領域、非アクセス領域、履歴領域は、DRAM、SRAM等の書き換え可能なメモリで構成される。並べ替え部110は、初期状態において、1度だけ、非アクセス領域内のデータをランダムに並び替える。移動部120は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。
In the
制御部130は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
When access to one piece of data occurs, the
例えば、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動する。 For example, if the data to be accessed does not exist in the access area, exists in the non-access area, and there is data stored in the history area, the data to be accessed and any data stored in the history area are accessed. Move to the area.
書き出し部140は、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す。保存部150は、アクセス領域から非アクセス領域に移動したデータを履歴領域に履歴データとして保存する。
The
処理部160は、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数1により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する。具体的には、図2に示すように、アクセス領域を例にとれば、アクセス領域は、6つのブロックから形成されているため、これを3つのブロックごとに、2つブロック群に分割し、この分割したブロック群に対して、数1による演算を行うことにより、3つの値をそれぞれy01からy05、y11からy15の値に変換することによって難読化を行うことができる。
行列Aは、乱数dとかけられる最右列がすべて1になっており、これによって元の変数vの変更が難読化後の変数全体に及ぶようになっている。つまり、難読化を適用することによって、乱数を変更すれば、それがすべての変数に影響を及ぼすことになる。したがって、アクセス領域全体を書き換えるよりは効率的であり、従来のように、ソフトウェアのみで実現する手法よりも小さいオーバーヘッドでアクセスパターンを秘匿することが可能となる。また、難読化するブロックサイズを状況に応じて変更することで、必要に応じて安全性と性能を選択できる。 In the matrix A, the rightmost column multiplied by the random number d is all 1, so that the change of the original variable v extends to the entire obfuscated variable. In other words, if you change the random number by applying obfuscation, it will affect all variables. Therefore, it is more efficient than rewriting the entire access area, and the access pattern can be concealed with a smaller overhead than the conventional technique realized only by software. Further, by changing the block size to be obfuscated according to the situation, safety and performance can be selected as necessary.
情報付加部170は、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する。具体的には、例えば、図3に示すように、非アクセス領域のデータブロックに付加情報用のブロックを加え、このブロックに、アクセス領域にあるデータには、「1」、ないデータには、「0」を割り付けたビット列を付加する。
The
つまり、アクセス領域に保管されているデータを管理することは重要であり、最新のデータが一つだけ保持されていなければならない。そのため、保存領域(非アクセス領域)からアクセス領域にデータを移動する際に、選択したデータがアクセス領域に保持されていないことを確認する必要がある。シンプルな解決策としてスキャンによるものがあるが、スキャンを使用した場合、多くのオーバーヘッドが生じる。そこで、保存領域の全ブロックに、例えば、1ビットの値を割り当て、ビットの1,0によって各データがアクセス領域に保持されているかどうかを判定する。これによって、アクセス領域のデータの管理を高速に行うことが可能である。
That is, it is important to manage the data stored in the access area, and only one latest data must be held. Therefore, when moving data from the storage area (non-access area) to the access area, it is necessary to confirm that the selected data is not held in the access area. A simple solution is by scanning, but using scanning creates a lot of overhead. Therefore, for example, a 1-bit value is assigned to all blocks in the storage area, and it is determined whether each data is held in the access area by
格納制御部180は、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する。具体的には、例えば、図4に示すように、CPUのワードサイズが32ビットである場合に、8ビットのデータを4つ格納したり、16ビットのデータを2つ格納したり、あるいは、16ビットのデータ1つと8ビットのデータ2つを格納する。
The
つまり、各ブロックのサイズは一定である。そのため、大きなサイズのデータブロックに対応するために、各ブロックをCPUのワードサイズに合わせて32あるいは64ビットで構成する必要がある。しかし、プログラムが扱う変数はこれよりも小さい場合が多く、大きなブロックを使用すると必要となるメモリが増加するという問題がある。そこで、1ブロックのサイズを32あるいは64ビットとし、1つのブロックに複数の小さいデータを格納する。 That is, the size of each block is constant. Therefore, in order to cope with a large data block, it is necessary to configure each block with 32 or 64 bits according to the word size of the CPU. However, the variables handled by the program are often smaller than this, and there is a problem that the required memory increases when a large block is used. Therefore, the size of one block is 32 or 64 bits, and a plurality of small data is stored in one block.
例えば、short int型の場合、1つのデータは2バイト(16ビット)であるので、64ビット環境では、1つのブロックに4つのshort int型を格納することが可能となる。これによって、必要なメモリサイズの削減が可能となる。同時に、4つのshort int型変数を1度に取得することが可能となるので、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。 For example, in the case of the short int type, since one data is 2 bytes (16 bits), it is possible to store four short int types in one block in a 64-bit environment. As a result, the required memory size can be reduced. At the same time, four short int type variables can be acquired at a time. Therefore, when data to be continuously accessed is stored in the same block, the access speed can be improved.
<記憶装置の処理>
図5を用いて、本実施形態に係る記憶装置の処理について説明する。
<Storage device processing>
The processing of the storage device according to this embodiment will be described with reference to FIG.
まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップS100)。 First, the data of the access area and historical data area v1, v2, ···, v m (m is a positive integer), a random number d, y1, y2, y3, ···, y n (n is , A positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1. Processing for converting to x1, x2, x3,..., xn , processing for adding information indicating whether each data in the non-access area is in the access area in association with each data in the non-access area In all the areas, when the minimum number of unit bits of data is larger than the number of processing unit bits, a process of storing a plurality of data in one block of all areas is performed (step S100).
次に、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替え(ステップS200)、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる(ステップS300)。 Next, in the initial state, the data in the non-access area is rearranged randomly only once (step S200), and the data in the non-access area is selected according to the memory size of the access area, Move (step S300).
さらに、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、アクセス領域および履歴領域に移動したデータを数2により難読化する(ステップS400)。
Furthermore, when one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area Data is exchanged between them, and if the data to be accessed does not exist in the access area, exists in the non-access area, and there is data saved in the history area, the data to be accessed and the history area are saved. Arbitrary data is moved to the access area, the arbitrary data in the access area is moved to the history area according to the moved data size, and the access area and the data moved to the history area are obfuscated by
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す(ステップS500)。 Then, when the access processing to the data to be accessed is completed, necessary data in the access area is written (step S500).
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを1度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うOblivious RAMのように、オーバーヘッドが大きくなることを防止することができる。 As described above, according to the present embodiment, since the data in the non-access area is rearranged only once, like an Obvious RAM that rearranges the data many times at a predetermined timing. It is possible to prevent the overhead from becoming large.
また、上記のような難読化を適用することによって、乱数を変更すれば、それがすべての変数に影響を及ぼすことになり、アクセス領域全体を書き換えるよりは効率が上がるという効果がある。また、付加されたデータによって各データがアクセス領域に保持されているかどうかを判定することにより、アクセス領域のデータの管理を小さなオーバーヘッドで実現することにより、高速化を図ることができるという効果がある。 In addition, by applying obfuscation as described above, if the random number is changed, it affects all variables, which has the effect of increasing efficiency compared to rewriting the entire access area. In addition, by determining whether each data is held in the access area by the added data, there is an effect that the management of the data in the access area is realized with a small overhead, and the speed can be increased. .
さらに、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納することにより、必要なメモリサイズの削減が可能となる。また、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。 Furthermore, if the minimum unit bit number of data in all areas is larger than the number of processing unit bits, it is possible to reduce the required memory size by storing multiple data in one block in all areas. It becomes. In addition, when the data to be accessed continuously is stored in the same block, the access speed can be improved.
<第2の実施形態>
図6から図7を用いて、本発明の実施形態について説明する。
<Second Embodiment>
The embodiment of the present invention will be described with reference to FIGS.
<記憶装置の構成>
本実施形態に係る記憶装置は、図6に示すように、並べ替え部110と、移動部120と、制御部131と、書き出し部140と、保存部150と、処理部160と、情報付加部170と、格納制御部180と、記憶領域200とから構成されている。なお、本発明の記憶装置は、例えば、RAM等の一般的な記憶装置ばかりでなく、SIMやICカード等の記憶媒体も含むものである。なお、第1の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は省略する。
<Configuration of storage device>
As illustrated in FIG. 6, the storage device according to the present embodiment includes a
制御部131は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
When access to one piece of data occurs, the
<記憶装置の処理>
図7を用いて、本実施形態に係る記憶装置の処理について説明する。
<Storage device processing>
Processing of the storage device according to the present embodiment will be described with reference to FIG.
まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップS110)。 First, the data of the access area and historical data area v1, v2, ···, v m (m is a positive integer), a random number d, y1, y2, y3, ···, y n (n is , A positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1. Processing for converting to x1, x2, x3,..., xn , processing for adding information indicating whether each data in the non-access area is in the access area in association with each data in the non-access area When the minimum number of unit bits of data is larger than the number of processing unit bits in all areas, a process of storing a plurality of data in one block of all areas is performed (step S110).
次に、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替え(ステップS210)、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる(ステップS310)。 Next, in the initial state, the data in the non-access area is rearranged randomly only once (step S210), and the data in the non-access area is selected according to the memory size of the access area, Move (step S310).
さらに、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが履歴領域に保存されている場合に、履歴領域に保存されていないデータを選択し、アクセスを行うデータと選択したデータとをアクセス領域に移動し、移動したデータサイズに応じて、アクセス領域にあった任意のデータを履歴領域に移動し、アクセス領域および履歴領域に移動したデータを数3により難読化する(ステップS410)。 Furthermore, when one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When data to be accessed is stored in the history area, the data not stored in the history area is selected, and the data to be accessed and the selected data are moved to the access area. Then, according to the moved data size, arbitrary data in the access area is moved to the history area, and the data moved to the access area and the history area is obfuscated by Equation 3 (step S410).
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す(ステップS510)。 Then, when the access processing to the data to be accessed is completed, necessary data in the access area is written (step S510).
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを1度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うOblivious RAMのように、オーバーヘッドが大きくなることを防止することができる。 As described above, according to the present embodiment, since the data in the non-access area is rearranged only once, like an Obvious RAM that rearranges the data many times at a predetermined timing. It is possible to prevent the overhead from becoming large.
また、上記のような難読化を適用することによって、乱数を変更すれば、それがすべての変数に影響を及ぼすことになり、アクセス領域全体を書き換えるよりは効率が上がるという効果がある。また、付加されたデータによって各データがアクセス領域に保持されているかどうかを判定することにより、アクセス領域のデータの管理を小さなオーバーヘッドで実現することにより、高速化を図ることができるという効果がある。 In addition, by applying obfuscation as described above, if the random number is changed, it affects all variables, which has the effect of increasing efficiency compared to rewriting the entire access area. In addition, by determining whether each data is held in the access area by the added data, there is an effect that the management of the data in the access area is realized with a small overhead, and the speed can be increased. .
さらに、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納することにより、必要なメモリサイズの削減が可能となる。また、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。 Furthermore, if the minimum unit bit number of data in all areas is larger than the number of processing unit bits, it is possible to reduce the required memory size by storing multiple data in one block in all areas. It becomes. In addition, when the data to be accessed continuously is stored in the same block, the access speed can be improved.
<第3の実施形態>
図8から図9を用いて、本発明の実施形態について説明する。
<Third Embodiment>
The embodiment of the present invention will be described with reference to FIGS.
<記憶装置の構成>
本実施形態に係る記憶装置は、図8に示すように、並べ替え部110と、移動部120と、制御部132と、書き出し部140と、保存部150と、処理部160と、情報付加部170と、格納制御部180と、記憶領域200とから構成されている。なお、本発明の記憶装置は、例えば、RAM等の一般的な記憶装置ばかりでなく、SIMやICカード等の記憶媒体も含むものである。なお、第1の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は省略する。
<Configuration of storage device>
As illustrated in FIG. 8, the storage device according to the present embodiment includes a
制御部132は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。
When access to one piece of data occurs, the
<記憶装置の処理>
図9を用いて、本実施形態に係る記憶装置の処理について説明する。
<Storage device processing>
The processing of the storage device according to this embodiment will be described with reference to FIG.
まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップS120)。 First, the data of the access area and historical data area v1, v2, ···, v m (m is a positive integer), a random number d, y1, y2, y3, ···, y n (n is , A positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1. Processing for converting to x1, x2, x3,..., xn , processing for adding information indicating whether each data in the non-access area is in the access area in association with each data in the non-access area When the minimum unit bit number of data is larger than the processing unit bit number in all the regions, a process of storing a plurality of data in one block of all the regions is performed (step S120).
次に、初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替え(ステップS220)、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる(ステップS320)。 Next, in the initial state, the data in the non-access area is randomly rearranged only once (step S220), and the data in the non-access area is selected according to the memory size of the access area and is set in the access area. Move (step S320).
さらに、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータがアクセス領域に保存されている場合に、非アクセス領域と履歴領域からランダムに選択したデータをアクセス領域に移動し、アクセス領域に移動したデータを数4により難読化する(ステップS420)。 Furthermore, when one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When data to be accessed is stored in the access area, randomly selected data from the non-access area and history area is moved to the access area, and the data moved to the access area is Obfuscation is performed using Equation 4 (step S420).
そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す(ステップS520)。 Then, when the access processing to the data to be accessed is completed, necessary data in the access area is written (step S520).
以上、説明したように、本実施形態によれば、非アクセス領域内のデータの並べ替えを1度しか行わないため、所定のタイミングで、何度もデータの並べ替えを行うOblivious RAMのように、オーバーヘッドが大きくなることを防止することができる。 As described above, according to the present embodiment, since the data in the non-access area is rearranged only once, like an Obvious RAM that rearranges the data many times at a predetermined timing. It is possible to prevent the overhead from becoming large.
また、上記のような難読化を適用することによって、乱数を変更すれば、それがすべての変数に影響を及ぼすことになり、アクセス領域全体を書き換えるよりは効率が上がるという効果がある。また、付加されたデータによって各データがアクセス領域に保持されているかどうかを判定することにより、アクセス領域のデータの管理を小さなオーバーヘッドで実現することにより、高速化を図ることができるという効果がある。 In addition, by applying obfuscation as described above, if the random number is changed, it affects all variables, which has the effect of increasing efficiency compared to rewriting the entire access area. In addition, by determining whether each data is held in the access area by the added data, there is an effect that the management of the data in the access area is realized with a small overhead, and the speed can be increased. .
さらに、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納することにより、必要なメモリサイズの削減が可能となる。また、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。 Furthermore, if the minimum unit bit number of data in all areas is larger than the number of processing unit bits, it is possible to reduce the required memory size by storing multiple data in one block in all areas. It becomes. In addition, when the data to be accessed continuously is stored in the same block, the access speed can be improved.
<実施例>
図10から図12を用いて、本発明の実施例について説明する。
<Example>
An embodiment of the present invention will be described with reference to FIGS.
図10は、1、2、・・・、9、A、B、・・・、Fをメモリに保存されているデータとしたときに、プログラムが、5→D→8→5→Aの順にデータにアクセスする場合のメモリの遷移を示したものである。以下、この処理を例示として、説明する。なお、図10の例にかかわらず、非アクセス領域をさらに複数に分割してもよい。 FIG. 10 shows the program in the order of 5 → D → 8 → 5 → A when 1, 2,..., 9, A, B,. The memory transition when accessing data is shown. Hereinafter, this process will be described as an example. Regardless of the example of FIG. 10, the non-access area may be further divided into a plurality.
まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップS1100)。 First, the data of the access area and historical data area v1, v2, ···, v m (m is a positive integer), a random number d, y1, y2, y3, ···, y n (n is , A positive integer) is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1. Processing for converting to x1, x2, x3,..., xn , processing for adding information indicating whether each data in the non-access area is in the access area in association with each data in the non-access area When the minimum unit bit number of data is larger than the processing unit bit number in all areas, a process of storing a plurality of data in one block of all areas is performed (step S1100).
次に、初期状態において、1度だけ、非アクセス領域内のデータをランダムに並び替え(ステップS1200)、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる(ステップS1300)。 Next, in the initial state, the data in the non-access area is rearranged randomly only once (step S1200), and the data in the non-access area is selected according to the memory size of the access area and moved to the access area. (Step S1300).
そして、まず、5にアクセスする場合には、5はアクセス領域に含まれないため、5ともう一つランダムに選択されたデータ(図10では、2)をアクセス領域に移動し、例えば、これにより、アクセス領域から移動する4とBとを履歴領域に保存して、5にアクセスする。このとき、アクセス領域内の他のデータ(図10では、2、3、8)に対してもアクセスを行う(ステップS1400)。 First, when accessing 5, since 5 is not included in the access area, 5 and another randomly selected data (2 in FIG. 10) are moved to the access area. Thus, 4 and B moving from the access area are stored in the history area and 5 is accessed. At this time, another data in the access area (2, 3, 8 in FIG. 10) is also accessed (step S1400).
次に、Dにアクセスする場合には、Dはアクセス領域に含まれないため、Dをアクセス領域に移動し、もう一つのデータは、履歴領域から選択する(例えば、図10では、B)。これにより、アクセス領域から移動する5と8とを履歴領域に保存して、Dにアクセスする。このとき、アクセス領域内の他のデータ(図10では、3、B、2)に対してもアクセスを行う(ステップS1500)。 Next, when accessing D, since D is not included in the access area, D is moved to the access area, and another data is selected from the history area (for example, B in FIG. 10). Thereby, 5 and 8 moved from the access area are stored in the history area, and D is accessed. At this time, another data in the access area (3, B, 2 in FIG. 10) is also accessed (step S1500).
さらに、8にアクセスする場合には、8は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータをランダムに選択し(図10では、A)、アクセス領域に移動する。これにより、アクセス領域から移動する3とBとを履歴領域に保存して、8にアクセスする。このとき、アクセス領域内の他のデータ(図10では、A、D、2)に対してもアクセスを行う(ステップS1600)。 Further, when accessing 8, since 8 is included in the history area, another data is selected at random (A in FIG. 10) and moved to the access area. To do. As a result, 3 and B moving from the access area are stored in the history area, and 8 is accessed. At this time, another data (A, D, 2 in FIG. 10) in the access area is also accessed (step S1600).
さらに、5にアクセスする場合、5は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータをランダムに選択し(図10では、6)、アクセス領域に移動する。これにより、アクセス領域から移動する2と8とを履歴領域に保存して、5にアクセスする。また、アクセス領域内の他のデータ(図10では、A、D、6)に対してもアクセスを行う(ステップS1700)。 Further, when accessing 5, since 5 is included in the history area, another data is randomly selected that is not included in the history area (6 in FIG. 10) and moved to the access area. Thus, 2 and 8 moving from the access area are stored in the history area and 5 is accessed. Further, access is made to other data in the access area (A, D, 6 in FIG. 10) (step S1700).
最後に、Aにアクセスする場合、Aはアクセス領域に含まれているため、アクセス領域に含まれないランダムに選択したデータと履歴領域に保存されているデータとを(図10では、3、F)、アクセス領域に移動する。これにより、アクセス領域から移動する6とDとが非アクセス領域に書き出され、Aにアクセスする。また、アクセス領域内の他のデータ(図10では、5、F、3)に対してもアクセスを行う(ステップS1800)。 Finally, when accessing A, since A is included in the access area, randomly selected data not included in the access area and data stored in the history area (in FIG. 10, 3, F ) Move to the access area. As a result, 6 and D moving from the access area are written to the non-access area and A is accessed. Further, access is also made to other data (5, F, 3 in FIG. 10) in the access area (step S1800).
そして、すべての処理が完了するとアクセス領域内の必要なデータを書き出して、終了する(ステップS1900)。 When all the processes are completed, necessary data in the access area is written and the process ends (step S1900).
なお、記憶装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを記憶装置に読み込ませ、実行することによって本発明の記憶装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。 Note that the storage device of the present invention can be realized by recording the processing of the storage device on a recording medium readable by the computer system, reading the program recorded on the recording medium into the storage device, and executing the program. The computer system here includes an OS and hardware such as peripheral devices.
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。 Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW (World Wide Web) system is used. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。 The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, what is called a difference file (difference program) may be sufficient.
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 The embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the embodiments, and includes designs and the like that do not depart from the gist of the present invention.
110;並べ替え部
120;移動部
130;制御部
131;制御部
132;制御部
140;書き出し部
150;保存部
160;処理部
170;情報付加部
180;格納制御部
200;記憶領域
110;
Claims (12)
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動することを特徴とする記憶装置。 A storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data,
In an initial state, rearrangement means for randomly rearranging data in the non-access area only once,
Moving means for selecting data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area Control means for exchanging data with
Writing means for writing out the necessary data in the access area when the access process to the data to be accessed is completed;
Storage means for storing data moved from the access area to the non-access area as history data in the history area;
Prepared,
The control means includes
If the data to be accessed does not exist in the access area, exists in the non-access area, and there is data stored in the history area, the data to be accessed and any data stored in the history area And moving the arbitrary data in the access area to the history area in accordance with the moved data size.
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動することを特徴とする記憶装置。 A storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data,
In an initial state, rearrangement means for randomly rearranging data in the non-access area only once,
Moving means for selecting data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area Control means for exchanging data with
Writing means for writing out the necessary data in the access area when the access process to the data to be accessed is completed;
Storage means for storing data moved from the access area to the non-access area as history data in the history area;
Prepared,
The control means includes
When data to be accessed is stored in the history area, data that is not stored in the history area is selected, the data to be accessed and the selected data are moved to the access area, and moved A storage device that moves arbitrary data in the access area to the history area according to a data size.
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域からランダムに選択したデータと前記アクセスするデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動することを特徴とする記憶装置。 A storage device divided into a data access area, a history data area, and a non-access area that are secured by numerical processing of data,
In an initial state, rearrangement means for randomly rearranging data in the non-access area only once,
Moving means for selecting data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area Control means for exchanging data with
Writing means for writing out the necessary data in the access area when the access process to the data to be accessed is completed;
Storage means for storing data moved from the access area to the non-access area as history data in the history area;
Prepared,
The control means includes
When data to be accessed is stored in the access area, data randomly selected from the non-access area and the data to be accessed are moved to the access area, and the access is performed according to the moved data size. Arbitrary data in an area is moved to the history area.
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
該アクセス領域および履歴領域に移動したデータを前記数2により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is an n × (m + 1) matrix in which the rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by Equation 2 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When the data to be accessed does not exist in the access area, exists in the non-access area, and there is data stored in the history area, the data to be accessed and the data A fourth step of moving arbitrary data stored in a history area to the access area, and moving arbitrary data in the access area to the history area according to the moved data size;
A fifth step of obfuscating the data moved to the access area and the history area according to Equation 2;
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A method for concealing an access pattern, comprising:
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
該アクセス領域および履歴領域に移動したデータを前記数3により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a masking variable vector, and A is an n × (m + 1) matrix whose rank is m + 1 and its rightmost column is all 1, data x1 obfuscated by Equation 3 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When data to be accessed is stored in the history area, data not stored in the history area is selected, and the data to be accessed and the selected data are A fourth step of moving arbitrary data in the access area to the history area according to the moved data size;
A fifth step of obfuscating the data moved to the access area and the history area according to Equation 3;
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A method for concealing an access pattern, comprising:
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、
該アクセス領域に移動したデータを前記数4により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a variable vector for masking, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by Equation 4 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area A fourth step of exchanging data with each other and moving data randomly selected from the non-access area and the history area to the access area when the data to be accessed is stored in the access area When,
A fifth step of obfuscating the data moved to the access area according to the equation (4);
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A method for concealing an access pattern, comprising:
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
該アクセス領域および履歴領域に移動したデータを前記数5により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a variable vector for masking, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by Equation 5 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When the data to be accessed does not exist in the access area, exists in the non-access area, and there is data stored in the history area, the data to be accessed and the data A fourth step of moving arbitrary data stored in a history area to the access area, and moving arbitrary data in the access area to the history area according to the moved data size;
A fifth step of obfuscating the data moved to the access area and the history area according to Equation 5;
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A program that causes a computer to execute.
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数6により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
該アクセス領域および履歴領域に移動したデータを前記数6により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is a variable vector for masking, and A is an n × (m + 1) matrix whose rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by Equation 6 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area When data to be accessed is stored in the history area, data not stored in the history area is selected, and the data to be accessed and the selected data are A fourth step of moving arbitrary data in the access area to the history area according to the moved data size;
A fifth step of obfuscating the data moved to the access area and the history area according to Equation 6;
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A program that causes a computer to execute.
アクセス領域および履歴データ領域内のデータをv1、v2、・・・、vm(mは、正の整数)、dを乱数、y1、y2、y3、・・・、yn(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数7により、これらを難読化したデータx1、x2、x3、・・・、xnに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、
該アクセス領域に移動したデータを前記数7により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
.., V m (m is a positive integer), d is a random number, y1, y2, y3,..., Y n (n is a positive value) ) Is an n × (m + 1) matrix in which the rank is m + 1 and the rightmost column is all 1, the data x1 obfuscated by Equation 7 x2, x3,..., xn , and information indicating whether each data in the non-access area is in the access area, is added in association with each data in the non-access area Process, a first step of performing a process of storing a plurality of data in one block of all areas when the minimum unit bit number of data is larger than the process unit bit number in all areas;
A second step of randomly rearranging the data in the non-access area only once in an initial state;
A third step of selecting the data in the non-access area according to the memory size of the access area and moving the data to the access area;
When one data is accessed, data is exchanged between the access area and the non-access area, and other data in the access area is also accessed, and the access area and the non-access area A fourth step of exchanging data with each other and moving data randomly selected from the non-access area and the history area to the access area when the data to be accessed is stored in the access area When,
A fifth step of obfuscating the data moved to the access area according to Equation 7;
A sixth step of writing out necessary data in the access area when the access process to the data to be accessed is completed;
A program that causes a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013040592A JP5990115B2 (en) | 2013-03-01 | 2013-03-01 | Storage device, access pattern concealment method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013040592A JP5990115B2 (en) | 2013-03-01 | 2013-03-01 | Storage device, access pattern concealment method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014171005A true JP2014171005A (en) | 2014-09-18 |
JP5990115B2 JP5990115B2 (en) | 2016-09-07 |
Family
ID=51693108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013040592A Active JP5990115B2 (en) | 2013-03-01 | 2013-03-01 | Storage device, access pattern concealment method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5990115B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012145916A1 (en) * | 2011-04-29 | 2012-11-01 | 北京中天安泰信息科技有限公司 | Safe data storage method and device |
JP5801273B2 (en) * | 2012-09-27 | 2015-10-28 | Kddi株式会社 | Storage device, access pattern concealment method and program |
JP5882134B2 (en) * | 2012-05-28 | 2016-03-09 | Kddi株式会社 | Storage device, storage medium, access pattern concealment method and program |
-
2013
- 2013-03-01 JP JP2013040592A patent/JP5990115B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012145916A1 (en) * | 2011-04-29 | 2012-11-01 | 北京中天安泰信息科技有限公司 | Safe data storage method and device |
JP5882134B2 (en) * | 2012-05-28 | 2016-03-09 | Kddi株式会社 | Storage device, storage medium, access pattern concealment method and program |
JP5801273B2 (en) * | 2012-09-27 | 2015-10-28 | Kddi株式会社 | Storage device, access pattern concealment method and program |
Non-Patent Citations (2)
Title |
---|
JPN6015029432; Yuto Nakano, et al.: '"Memory Access Pattern Protection for Resource-constrained Devices"' CARDIS 2012 Implementations for Constrainted Devices, 20121129, [online] * |
JPN6016018771; Kazuhide FUKUSHUMA, et al.: 'Analysis of Program Obfuscation Schemes with Variable Encoding Technique' IEICE transactions on fundamentals of electronics, communications and computer science Vol.E91-A, No.1, 20080101, pp.316-329 * |
Also Published As
Publication number | Publication date |
---|---|
JP5990115B2 (en) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205359B (en) | A kind of JavaScript code guard method and device | |
CN103645863B (en) | Method for reading data and system, the wiring method and system of shared drive | |
JP5632086B2 (en) | Method, apparatus and system for protecting against hardware attack on system memory | |
CN103973431B (en) | A kind of AES parallelization implementation methods based on OpenCL | |
US20140189366A1 (en) | Obfuscating Transformations on Data Array Content and Addresses | |
CN106599629B (en) | Android application program reinforcing method and device | |
JP5882134B2 (en) | Storage device, storage medium, access pattern concealment method and program | |
WO2001079969A2 (en) | Tamper resistant software | |
US9972065B2 (en) | Resource layout randomization for GPU execution | |
CN109598107A (en) | A kind of code conversion method and device based on application installation package file | |
US8140809B2 (en) | Computer implemented masked representation of data tables | |
CN106096441A (en) | Date storage method and data storage device | |
US20240362321A1 (en) | Systems and methods for interpreter based application cybersecurity | |
EP2937803B1 (en) | Control flow flattening for code obfuscation where the next block calculation needs run-time information | |
JP5801273B2 (en) | Storage device, access pattern concealment method and program | |
CN106209346A (en) | Whitepack cryptographic technique is interlocked look-up table | |
KR20090052130A (en) | Data protection method using data partition | |
JP5865222B2 (en) | Storage device, access pattern concealment method and program | |
Shrivastava et al. | Securator: A fast and secure neural processing unit | |
JP2013156798A (en) | Storage device, method for concealing access pattern, and program | |
JP5990115B2 (en) | Storage device, access pattern concealment method and program | |
JP6106050B2 (en) | Storage device, storage system, storage method and program | |
EP4020287A1 (en) | Time-based multi-dimensional key recreation mechanism using puf technologies | |
JP2023065323A (en) | Computer-implemented method, system and computer program | |
JP6077421B2 (en) | Storage device, storage system, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150828 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20160524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160705 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160812 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5990115 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |