JP5990115B2 - Storage device, access pattern concealment method and program - Google Patents

Storage device, access pattern concealment method and program Download PDF

Info

Publication number
JP5990115B2
JP5990115B2 JP2013040592A JP2013040592A JP5990115B2 JP 5990115 B2 JP5990115 B2 JP 5990115B2 JP 2013040592 A JP2013040592 A JP 2013040592A JP 2013040592 A JP2013040592 A JP 2013040592A JP 5990115 B2 JP5990115 B2 JP 5990115B2
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.)
Active
Application number
JP2013040592A
Other languages
Japanese (ja)
Other versions
JP2014171005A (en
Inventor
有登 仲野
有登 仲野
清本 晋作
晋作 清本
三宅 優
優 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Research Inc
Original Assignee
KDDI R&D Laboratories Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI R&D Laboratories Inc filed Critical KDDI R&D Laboratories Inc
Priority to JP2013040592A priority Critical patent/JP5990115B2/en
Publication of JP2014171005A publication Critical patent/JP2014171005A/en
Application granted granted Critical
Publication of JP5990115B2 publication Critical patent/JP5990115B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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 Document 1 and Non-Patent Document 2).

Oded Goldreich and Rafail Ostrovsky,“Software protection and simulation on oblivious RAMS,” J.ACM,43(3):431−473,1996.Odded Goldrich and Rafir Ostrovsky, “Software protection and simulation on oblivious RAMS,” J. et al. ACM, 43 (3): 431-473, 1996. X.Zhuang et al.“Hardware Assisted Control Flow Obfuscation for Embedded Processors”,CASE2004,2004.X. Zhuang et al. "Hardware Assisted Control Flow Obfuscation for Embedded Processors", CASE 2004, 2004. Y.Nakano et al.“Memory Access Pattern Protection for Resource−constrained Devices”,CARDIS 2012,2012.Y. Nakano et al. “Memory Access Pattern Protection for Resource-constrained Devices”, CARDIS 2012, 2012.

ところが、非特許文献1などで検討されているOblivious RAMによるメモリの保護は、オーバーヘッドが大きく、実用化が困難であるという問題がある。そこで、非特許文献2では、ハードウェアの支援によるメモリ保護手法が提案されているが、この方法では、データに対するアクセス頻度や順序などの情報を攻撃者が入手できるという問題がある。また、専用のハードウェアが必要であるという制約がある。これらに対して、非特許文献3では、現実的なオーバーヘッドで攻撃者からアクセスパターンを保護する手法が提案されているが、ソフトウェアのみで実現するためには比較的大きなオーバーヘッドが生じる、オーバーヘッドを削減するためには安全なメモリが必要であるといった課題があった。   However, the memory protection by the Obvious RAM, which has been studied in Non-Patent Document 1 and the like, has a problem that it has a large overhead and is difficult to put into practical use. Therefore, Non-Patent Document 2 proposes a memory protection method supported by hardware, but this method has a problem that an attacker can obtain information such as access frequency and order of data. There is also a restriction that dedicated hardware is necessary. On the other hand, Non-Patent Document 3 proposes a method for protecting an access pattern from an attacker with a realistic overhead, but a relatively large overhead is required to realize with only software, and the overhead is reduced. In order to do so, there was a problem that a safe memory was necessary.

そこで、本発明は、上述の課題に鑑みてなされたものであり、アクセスパターンを秘匿し、オーバーヘッドを削減する記憶装置、アクセスパターンの秘匿方法およびプログラムを提供することを目的とする。   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、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数1により、これらを難読化したデータx1、x2、x3、・・・、xに変換することを特徴とする記憶装置を提案している。 (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 number 1, the data x1 they were obfuscated, x2, x3, · · ·, to the x n A storage device characterized by the above is proposed.

(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、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 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 Processing, in all areas When the minimum unit bit number of data is larger than the processing unit bit number, a first step of performing a process of storing a plurality of data in one block of all the regions, and once in the initial state A second step of randomly rearranging the data in the non-access area, and a third step of selecting the data in the non-access area according to the memory size of the access area and moving it to the access area And, when access to one data occurs, exchanges data between the access area and the non-access area, and also accesses other data in the access area, Data is exchanged with non-access areas, and the data to be accessed does not exist in the access area but exists in the non-access area When there is data stored in the history area, the access area and arbitrary data stored in the history area are moved to the access area, and the access area is moved according to the moved data size. A fourth step of moving arbitrary data in the history area to the history area, a fifth step of obfuscating the data moved to the access area and the history area by the equation 2, and access to the data to be accessed And a sixth step of writing out necessary data in the access area when the processing is completed.

(8)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 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 Processing, in all areas When the minimum unit bit number of data is larger than the processing unit bit number, a first step of performing a process of storing a plurality of data in one block of all the regions, and once in the initial state A second step of randomly rearranging the data in the non-access area, and a third step of selecting the data in the non-access area according to the memory size of the access area and moving it to the access area And, when access to one data occurs, exchanges data between the access area and the non-access area, and also accesses other data in the access area, When data is exchanged with a non-access area and data to be accessed is stored in the history area, the history is The data not stored in the area is selected, the data to be accessed and the selected data are moved to the access area, and the arbitrary data in the access area is transferred to the history according to the moved data size. A fourth step of moving to the area, a fifth step of obfuscating the data moved to the access area and the history area according to the equation 3, and the access when the access processing to the data to be accessed is completed And a sixth step of writing out necessary data in the area, and a method of concealing an access pattern characterized by comprising:

(9)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 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 Processing, in all areas When the minimum unit bit number of data is larger than the processing unit bit number, a first step of performing a process of storing a plurality of data in one block of all the regions, and once in the initial state A second step of randomly rearranging the data in the non-access area, and a third step of selecting the data in the non-access area according to the memory size of the access area and moving it to the access area And, when access to one data occurs, exchanges data between the access area and the non-access area, and also accesses other data in the access area, When exchanging data with a non-access area and the data to be accessed is stored in the access area, A fourth step of moving data randomly selected from the access area and the history area to the access area, a fifth step of obfuscating the data moved to the access area by the equation 4, and the data to be accessed And a sixth step of writing out the necessary data in the access area when the access process is completed. An access pattern concealment method is proposed.

(10)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 areas 1 step, in the initial state, a second step of randomly rearranging the data in the non-access area only once, and selecting the data in the non-access area according to the memory size of the access area The third step of moving to the access area and exchanging data between the access area and the non-access area when one data is accessed and other data in the access area The data to be accessed is exchanged between the access area and the non-access area. If there is data that does not exist in the access area but exists in the non-access area and is stored in the history area, the data to be accessed and any data stored in the history area are stored in the access area. A fourth step of moving arbitrary data in the access area to the history area according to the moved data size, and obfuscation of the data moved to the access area and history area by the equation (5) A program for causing a computer to execute a fifth step of performing the above and a sixth step of writing out necessary data in the access area when an access process to the data to be accessed is completed is proposed. .

(11)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数6により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 areas 1 step, in the initial state, a second step of randomly rearranging the data in the non-access area only once, and selecting the data in the non-access area according to the memory size of the access area The third step of moving to the access area and exchanging data between the access area and the non-access area when one data is accessed and other data in the access area Is also accessed, data is exchanged between the access area and the non-access area, and the data to be accessed is When the data is stored in the history area, the 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 the data size is changed. A fourth step of moving arbitrary data in the access area to the history area; a fifth step of obfuscating the data moved to the access area and history area by the equation 6; A program for causing a computer to execute a sixth step of writing out necessary data in the access area when a data access process is completed is proposed.

(12)本発明は、データの数的な処理により安全性が担保されたデータのアクセス領域と履歴データ領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数7により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第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 areas 1 step, in the initial state, a second step of randomly rearranging the data in the non-access area only once, and selecting the data in the non-access area according to the memory size of the access area The third step of moving to the access area and exchanging data between the access area and the non-access area when one data is accessed and other data in the access area Is also accessed, data is exchanged between the access area and the non-access area, and the data to be accessed is A fourth step of moving data randomly selected from the non-access area and the history area to the access area when the data is stored in the access area; Proposing a program for causing a computer to execute a fifth step for generating a data and a sixth step for writing out necessary data in the access area when an access process to the data to be accessed is completed Yes.

本発明によれば、データの数的処理により安全性を担保するため、従来よりも小さなオーバーヘッドでアクセスパターンを秘匿することができる。また、非アクセス領域内のデータの並べ替えを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 equation 1 and the like, the column multiplied by the random number d is always 1, which changes the original data v over the entire obfuscated variable. By applying randomization, changing the random number affects all variables, which has the effect of increasing efficiency compared to rewriting the entire access area.

また、保存領域の全ブロックに、例えば、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 bits 1 and 0, the management of the data in the access area is small overhead. By realizing the above, there is an effect that the speed can be increased.

さらに、本発明によれば、例えば、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.

本発明の第1の実施形態に係る記憶装置の構成を示す図である。It is a figure which shows the structure of the memory | storage device which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る処理部の機能を説明する図である。It is a figure explaining the function of the process part which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る情報付加部の機能を説明する図である。It is a figure explaining the function of the information addition part which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る格納制御部の機能を説明する図である。It is a figure explaining the function of the storage control part which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る記憶装置の処理を示す図である。It is a figure which shows the process of the memory | storage device which concerns on the 1st Embodiment of this invention. 本発明の第2の実施形態に係る記憶装置の構成を示す図である。It is a figure which shows the structure of the memory | storage device which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る記憶装置の処理を示す図である。It is a figure which shows the process of the memory | storage device which concerns on the 2nd Embodiment of this invention. 本発明の第3の実施形態に係る記憶装置の構成を示す図である。It is a figure which shows the structure of the memory | storage device which concerns on the 3rd Embodiment of this invention. 本発明の第3の実施形態に係る記憶装置の処理を示す図である。It is a figure which shows the process of the memory | storage device which concerns on the 3rd Embodiment of this invention. 本発明の実施例に係るアクセス時の記憶領域内のデータの遷移を示す図である。It is a figure which shows the transition of the data in the storage area at the time of the access which concerns on the Example of this invention. 本発明の実施例に係る記憶装置の処理を示す図である。It is a figure which shows the process of the memory | storage device which concerns on the Example of this invention. 本発明の実施例に係る記憶装置の処理を示す図である。It is a figure which shows the process of the memory | storage device which concerns on the Example of this invention.

以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
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 rearrangement unit 110, a movement unit 120, a control unit 130, a writing unit 140, a storage unit 150, a processing unit 160, and an information addition unit. 170, a storage control unit 180, and a storage area 200. The storage device of the present invention includes not only a general storage device such as a RAM but also a storage medium such as a SIM or an IC card.

記憶領域200は、メモリをデータのアクセス領域と非アクセス領域と履歴領域とに分割されており、アクセス領域と履歴データ領域とは、後述する処理部160により、データの数的な処理により安全性が担保されている。なお、アクセス領域、非アクセス領域、履歴領域は、DRAM、SRAM等の書き換え可能なメモリで構成される。並べ替え部110は、初期状態において、1度だけ、非アクセス領域内のデータをランダムに並び替える。移動部120は、非アクセス領域内のデータをアクセス領域のメモリサイズに応じて選択して、アクセス領域に移動させる。   In the storage area 200, the memory is divided into a data access area, a non-access area, and a history area, and the access area and the history data area are more safely processed by numerical processing of data by the processing unit 160 described later. Is secured. The access area, non-access area, and history area are composed of rewritable memories such as DRAM and SRAM. The rearrangement unit 110 randomly rearranges the data in the non-access area only once in the initial state. The moving unit 120 selects data in the non-access area according to the memory size of the access area and moves it to the access area.

制御部130は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。   When access to one piece of data occurs, the control unit 130 exchanges data between the access area and the non-access area, and also accesses other data in the access area so that the access area and the non-access area are not. Exchange data with the access area.

例えば、アクセスを行うデータがアクセス領域に存在せず、非アクセス領域に存在し、履歴領域に保存されたデータがある場合に、アクセスを行うデータと履歴領域に保存された任意のデータとをアクセス領域に移動する。   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 writing unit 140 writes necessary data in the access area when the access process to the data to be accessed is completed. The storage unit 150 stores data moved from the access area to the non-access area as history data in the history area.

処理部160は、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数1により、これらを難読化したデータx1、x2、x3、・・・、xに変換する。具体的には、図2に示すように、アクセス領域を例にとれば、アクセス領域は、6つのブロックから形成されているため、これを3つのブロックごとに、2つブロック群に分割し、この分割したブロック群に対して、数1による演算を行うことにより、3つの値をそれぞれy01からy05、y11からy15の値に変換することによって難読化を行うことができる。 Processor 160, 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, A is an n × (m + 1) matrix whose rank is m + 1, and its rightmost column is all 1, and these are obfuscated by Equation 1. Are converted into converted data x1, x2, x3,..., Xn . Specifically, as shown in FIG. 2, if the access area is taken as an example, the access area is formed of six blocks. Therefore, the access area is divided into two block groups every three blocks. Obfuscation can be performed by converting the three values from y01 to y05 and y11 to y15, respectively, by performing an operation according to Equation 1 on the divided block group.

Figure 0005990115
Figure 0005990115

行列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 information adding unit 170 adds 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. Specifically, for example, as shown in FIG. 3, a block for additional information is added to the data block in the non-access area, and “1” is added to the data in the access area to this block, A bit string assigned with “0” is added.

つまり、アクセス領域に保管されているデータを管理することは重要であり、最新のデータが一つだけ保持されていなければならない。そのため、保存領域(非アクセス領域)からアクセス領域にデータを移動する際に、選択したデータがアクセス領域に保持されていないことを確認する必要がある。シンプルな解決策としてスキャンによるものがあるが、スキャンを使用した場合、多くのオーバーヘッドが生じる。そこで、保存領域の全ブロックに、例えば、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 whether or not each data is held in the access area is determined by bits 1 and 0. As a result, it is possible to manage the data in the access area at high speed.

格納制御部180は、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する。具体的には、例えば、図4に示すように、CPUのワードサイズが32ビットである場合に、8ビットのデータを4つ格納したり、16ビットのデータを2つ格納したり、あるいは、16ビットのデータ1つと8ビットのデータ2つを格納する。   The storage control unit 180 stores a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the areas. Specifically, for example, as shown in FIG. 4, when the CPU word size is 32 bits, four 8-bit data are stored, two 16-bit data are stored, or One 16-bit data and two 8-bit data are stored.

つまり、各ブロックのサイズは一定である。そのため、大きなサイズのデータブロックに対応するために、各ブロックを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、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップ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 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 S100).

Figure 0005990115
Figure 0005990115

次に、初期状態において、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 Equation 2. (Step S400).

そして、アクセスすべきデータへのアクセス処理が終了したときに、アクセス領域内の必要なデータを書き出す(ステップ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 rearrangement unit 110, a movement unit 120, a control unit 131, a writing unit 140, a storage unit 150, a processing unit 160, and an information addition unit. 170, a storage control unit 180, and a storage area 200. The storage device of the present invention includes not only a general storage device such as a RAM but also a storage medium such as a SIM or an IC card. In addition, about the component which attaches | subjects the same code | symbol as 1st Embodiment, since it has the same function, the detailed description is abbreviate | omitted.

制御部131は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。   When access to one piece of data occurs, the control unit 131 exchanges data between the access area and the non-access area, and also accesses other data in the access area. Exchange data with the access area.

<記憶装置の処理>
図7を用いて、本実施形態に係る記憶装置の処理について説明する。
<Storage device processing>
Processing of the storage device according to the present embodiment will be described with reference to FIG.

まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップ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 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 S110).

Figure 0005990115
Figure 0005990115

次に、初期状態において、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 rearrangement unit 110, a movement unit 120, a control unit 132, a writing unit 140, a storage unit 150, a processing unit 160, and an information addition unit. 170, a storage control unit 180, and a storage area 200. The storage device of the present invention includes not only a general storage device such as a RAM but also a storage medium such as a SIM or an IC card. In addition, about the component which attaches | subjects the same code | symbol as 1st Embodiment, since it has the same function, the detailed description is abbreviate | omitted.

制御部132は、1つのデータにアクセスが生じたときに、アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と非アクセス領域との間でデータ交換を行う。   When access to one piece of data occurs, the control unit 132 exchanges data between the access area and the non-access area, and also accesses other data in the access area so that the access area and the non-access area are not. Exchange data with the access area.

<記憶装置の処理>
図9を用いて、本実施形態に係る記憶装置の処理について説明する。
<Storage device processing>
The processing of the storage device according to this embodiment will be described with reference to FIG.

まず、アクセス領域および履歴データ領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップ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).

Figure 0005990115
Figure 0005990115

次に、初期状態において、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、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、非アクセス領域の各データが、アクセス領域にあるか否かを示す情報を非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、すべての領域の一つのブロックに複数のデータを格納する処理を行う(ステップ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).

Figure 0005990115
Figure 0005990115

次に、初期状態において、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; rearrangement unit 120; movement unit 130; control unit 131; control unit 132; control unit 140; writing unit 150; storage unit 160; processing unit 170; information addition unit 180; storage control unit 200;

Claims (12)

領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置であって、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える並び替え手段と、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる移動手段と、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行う制御手段と、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す書き出し手段と、
前記アクセス領域から前記非アクセス領域に移動したデータを前記履歴領域に履歴データとして保存する保存手段と、
備え、
前記制御手段は、
アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動することを特徴とする記憶装置。
A storage device divided into an access area and history area for obfuscating and storing data in the area, and a non-access area,
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;
A storage means for storing as history data a data moved to the non-access area from the access area to 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 an access area and history area for obfuscating and storing data in the area, and a non-access area,
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;
A storage means for storing as history data a data moved to the non-access area from the access area to 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 an access area and history area for obfuscating and storing data in the area, and a non-access area,
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;
A storage means for storing as history data a data moved to the non-access area from the access area to 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、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数1により、これらを難読化したデータx1、x2、x3、・・・、xに変換することを特徴とする請求項1から請求項3のいずれかに記載の記憶装置。
Figure 0005990115
Comprising a processing means for performing numerical processing of the data, said processing means, said access region and the data of the history area v1, v2, ···, v m (m is a positive integer), d , Y 1 , y 2, y 3,..., Y n (n is a positive integer) is a masking variable vector, A is a rank m + 1, and the rightmost column is 1 × n (m + 1) when a is a matrix, the number 1, according to claim 3 these data obfuscated x1, x2, x3, · · ·, claim 1, characterized in that converting the x n Storage device.
Figure 0005990115
前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する情報付加手段を備えたことを特徴とする請求項1から請求項3のいずれかに記載の記憶装置。   The information adding means 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 is provided. The storage device according to claim 3. すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する格納制御手段を備えたことを特徴とする請求項1から請求項3のいずれかに記載の記憶装置。   The storage control means for storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the areas. The storage device according to any one of claims 1 to 3. 領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数2により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
前記アクセス領域および前記履歴領域に移動したデータを前記数2により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
Figure 0005990115
An access pattern concealment method in a storage device divided into an access area and a history area for obfuscating and storing data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obtained by obfuscating these by equation 2 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 by the access region and said movement data to the history area number 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:
Figure 0005990115
領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数3により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
前記アクセス領域および前記履歴領域に移動したデータを前記数3により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
Figure 0005990115
An access pattern concealment method in a storage device divided into an access area and a history area for obfuscating and storing data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obfuscated by Equation 3 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 by the number 3 to move data to the access area and the history area,
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:
Figure 0005990115
領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法であって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数4により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、
該アクセス領域に移動したデータを前記数4により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
を備えたことを特徴とするアクセスパターンの秘匿方法。
Figure 0005990115
An access pattern concealment method in a storage device divided into an access area and a history area for obfuscating and storing data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obfuscated by Equation 4 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 It performs data exchange with the, if the data to be accessed is stored in the access area, the non-access area and the from the history area fourth to move data selected randomly in said access area Steps,
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:
Figure 0005990115
領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数5により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行い、アクセスを行うデータが前記アクセス領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
前記アクセス領域および前記履歴領域に移動したデータを前記数5により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
Figure 0005990115
A program for causing a computer to execute an access pattern concealment method in a storage device divided into an access area and a history area that obfuscate and store data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obfuscated by Equation 5 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 by the number 5 to move data to the access area and the history area,
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.
Figure 0005990115
領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数6により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータを選択し、前記アクセスを行うデータと前記選択したデータとを前記アクセス領域に移動し、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動する第4のステップと、
前記アクセス領域および前記履歴領域に移動したデータを前記数6により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
Figure 0005990115
A program for causing a computer to execute an access pattern concealment method in a storage device divided into an access area and a history area that obfuscate and store data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obfuscated by Equation 6 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 by the access region and said movement data to the history area 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.
Figure 0005990115
領域内のデータを難読化して保管するアクセス領域および履歴領域と、非アクセス領域とに分割された記憶装置におけるアクセスパターンの秘匿方法をコンピュータに実行させるためのプログラムであって、
前記アクセス領域および前記履歴領域内のデータをv1、v2、・・・、v(mは、正の整数)、dを乱数、y1、y2、y3、・・・、y(nは、正の整数)をマスキング用変数ベクトル、Aを階数がm+1で、その最右列がすべて1であるn×(m+1)行列であるとしたときに、数7により、これらを難読化したデータx1、x2、x3、・・・、xに変換する処理、前記非アクセス領域の各データが、前記アクセス領域にあるか否かを示す情報を前記非アクセス領域の各データに対応付けて、付加する処理、すべての領域において、データの最小単位ビット数が、処理単位ビット数よりも大きい場合に、前記すべての領域の一つのブロックに複数のデータを格納する処理を行う第1のステップと、
初期状態において、1度だけ、前記非アクセス領域内のデータをランダムに並び替える第2のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第3のステップと、
1つのデータにアクセスが生じたときに、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域からランダムに選択したデータを前記アクセス領域に移動する第4のステップと、
該アクセス領域に移動したデータを前記数7により難読化する第5のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出す第6のステップと、
をコンピュータに実行させるためのプログラム。
Figure 0005990115
A program for causing a computer to execute an access pattern concealment method in a storage device divided into an access area and a history area that obfuscate and store data in the area, and a non-access area,
The access area and the data in the history 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. Data x1 obtained by obfuscating these by Equation 7 , X2, x3,..., Xn , and information indicating whether or not each data in the non-access area is in the access area is added in association with each data in the non-access area A first step of performing a process of storing a plurality of data in one block of all the areas when the minimum unit bit number of the data is larger than the processing unit bit number in all the 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 It performs data exchange with the, if the data to be accessed is stored in the access area, the non-access area and the from the history area fourth to move data selected randomly in said access area Steps,
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.
Figure 0005990115
JP2013040592A 2013-03-01 2013-03-01 Storage device, access pattern concealment method and program Active JP5990115B2 (en)

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 JP2014171005A (en) 2014-09-18
JP5990115B2 true 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)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329141B (en) * 2011-04-29 2017-05-03 中天安泰(北京)信息技术有限公司 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

Also Published As

Publication number Publication date
JP2014171005A (en) 2014-09-18

Similar Documents

Publication Publication Date Title
CN105205359B (en) A kind of JavaScript code guard method and device
JP5632086B2 (en) Method, apparatus and system for protecting against hardware attack on system memory
CN103645863B (en) Method for reading data and system, the wiring method and system of shared drive
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
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
CN106209346B (en) White-box cryptography interleaving lookup table
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
KR20090052130A (en) Data protection method using data partition
Shrivastava et al. Securator: A fast and secure neural processing unit
JP5865222B2 (en) Storage device, access pattern concealment method and program
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
JP6181573B2 (en) Data sharing system, data sharing method and program
JP6144126B2 (en) Storage device

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