JP4676695B2 - データ分割方法、データ分割装置およびコンピュータプログラム - Google Patents
データ分割方法、データ分割装置およびコンピュータプログラム Download PDFInfo
- Publication number
- JP4676695B2 JP4676695B2 JP2003423530A JP2003423530A JP4676695B2 JP 4676695 B2 JP4676695 B2 JP 4676695B2 JP 2003423530 A JP2003423530 A JP 2003423530A JP 2003423530 A JP2003423530 A JP 2003423530A JP 4676695 B2 JP4676695 B2 JP 4676695B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- divided
- original
- partial data
- partial
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000004590 computer program Methods 0.000 title claims description 6
- 239000011159 matrix material Substances 0.000 claims description 37
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 description 12
- 230000011218 segmentation Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Description
A. Shamir, "How to Share a Secret", Comm.Assoc.Comput.Mach., Vol. 22, no. 11, pp. 612-613(Nov.1979) Bruce Schneier, "Applied Cryptography", John Wiley&Sons, Inc., pp. 383-384(1994)
n×n行列でi行j列の値u(i,j)が
i+j≦n+1 のとき u(i,j)=1
i+j>n+1 のとき u(i,j)=0
である行列とし、P[n,n]をn×n行列でi行j列の値p(i,j)が
j=i+1 のとき p(i,j)=1
i=n,j=1 のとき p(i,j)=1
上記以外のとき p(i,j)=0
である行列としたとき、c(j,i,k)を(n-1)×(n-1)行列であるU[n-1,n-1]×P[n-1,n-1]^(j-1)のi行k列の値と定義し、ただしU[n-1,n-1]×P[n-1,n-1]^(j-1)とは行列U[n-1,n-1]とj-1個のP[n-1,n-1]の積を表し、Q(j,i,k)をc(j,i,k)=1のとき、Q(j,i,k)=R(k),c(j,i,k)=0のとき、Q(j,i,k)=0 と定義したとき、各分割部分データD(i,j)を、変数iを1からnまで変えながら各変数iにおいて変数jを1からn-1まで変えて、i<nのとき、
D(i,j)=R(j)
として生成する、ただし
=S(1),S(2),…,S(n-1)
乱数R=(n-1)個の乱数部分データR(j)
=R(1),R(2),…,R(n-1)
n個の分割データD(i)=D(1),D(2),…,D(n)
各分割部分データD(i,j)
=D(1,1),D(1,2),…,D(1,n-1)
D(2,1),D(2,2),…,D(2,n-1)
… … …
D(n,1),D(n,2),…,D(n,n-1)
(i=1〜n), (j=1〜n-1)
本実施形態は、上述したように処理単位ビット長毎に区分けされる複数の部分データに対して元部分データと乱数部分データの排他的論理和演算(XOR)を行って、詳しくは、元部分データと乱数部分データの排他的論理和演算(XOR)からなる定義式を用いて、元データの分割を行うことを特徴とするものであり、上述したデータ分割処理に多項式や剰余演算を用いる従来の方法に比較して、コンピュータ処理に適したビット演算である排他的論理和(XOR)演算を用いることにより高速かつ高性能な演算処理能力を必要とせず、大容量のデータに対しても簡単な演算処理を繰り返して分割データを生成することができるとともに、また分割データの保管に必要となる記憶容量も分割数に比例した倍数の容量よりも小さくすることができる。更に、任意に定めた一定の長さ毎にデータの先頭から順に演算処理を行うストリーム処理により分割データが生成される。
0 * 1 の演算結果は 1
1 * 0 の演算結果は 1
1 * 1 の演算結果は 0
また、XOR演算は交換法則、結合法則が成り立つ。すなわち、
a*b=b*a
(a*b)*c=a*(b*c)
が成り立つことが数学的に証明される。
c(j,i,k)=0 のとき Q(j,i,k)=0
ただし、mはm≧0の整数を表す。
i+j≦n+1 のとき u(i,j)=1
i+j>n+1 のとき u(i,j)=0
である行列を意味するものとし、「上三角行列」ということとする。具体的には下記のような行列である。
j=i+1 のとき p(i,j)=1
i=n,j=1 のとき p(i,j)=1
上記以外のとき p(i,j)=0
である行列を意味するものとし、「回転行列」ということとする。具体的には下記のような行列であり、他の行列の右側からかけると当該他の行列の1列目を2列目へ、2列目を3列目へ、…,n-1列目をn列目へ、n列目を1列目へ移動させる作用がある。つまり、行列Pを他の行列に右側から複数回かけると、その回数分だけ各列を右方向へ回転させるように移動させることができる。
。行列の成分同士の計算規則は通常の数学で用いるものと同じである。
i=j のとき e(i,j)=1
上記以外のとき e(i,j)=0
である行列を意味するものとする。具体的には下記のような行列である。Aを任意のn×n行列とすると
A×E=E×A=A
となる性質がある。
第1の元部分データS(1)=「10110010」
第2の元部分データS(2)=「00110111」
次に、変数jを1から2(=分割数n-1)まで変えて、乱数部分データR(2×m+j)に乱数発生手段15から発生する8ビットの長さの乱数を設定し、これにより乱数Rを処理単位ビット長で区分けした2(分割数n-1)個の乱数部分データR(1),R(2)を次のように生成する(ステップS215)。
第1の乱数部分データR(1)=「10110001」
第2の乱数部分データR(2)=「00110101」
次に、ステップS217において、変数iを1から3(=分割数n)まで変えるとともに、更に各変数iにおいて変数jを1から2(=分割数n-1)まで変えながら、ステップS217に示す分割データを生成するための元部分データと乱数部分データの排他的論理和からな
る定義式により複数の分割データD(i)の各々を構成する各分割部分データD(i,2×m+j) を生成する。この結果、次に示すような分割データDが生成される。
=3個の分割データD(i)=D(1),D(2),D(3)
第1の分割データD(1)
=2個の分割部分データD(1,j)=D(1,1),D(1,2)
=「00110110」,「10110011」
第2の分割データD(2)
=2個の分割部分データD(2,j)=D(2,1),D(2,2)
=「00000011」,「00000010」
第3の分割データD(3)
=2個の分割部分データD(3,j)=D(3,1),D(3,2)
=「10110001」,「00110101」
なお、各分割部分データD(i,j)を生成するためのステップS217に示す定義式は、本例のように分割数n=3の場合には、具体的には図4に示す表に記載されているものとなる。図4に示す表から、分割部分データD(1,1)を生成するための定義式はS(1)*R(1)*R(2)であり、D(1,2)の定義式はS(2)*R(1)*R(2)であり、D(2,1)の定義式はS(1)*R(1)であり、D(2,2)の定義式はS(2)*R(2)であり、D(3,1)の定義式はR(1)であり、D(3,2)の定義式はR(2)である。また、図4に示す表にはm>0の場合の任意の整数についての一般的な定義式も記載されている。
D(1,2)=S(2)*Q(2,1,1)*Q(2,1,2)
D(2,1)=S(1)*Q(1,2,1)*Q(1,2,2)
D(2,2)=S(2)*Q(2,2,1)*Q(2,2,2)
D(3,1)=R(1)
D(3,2)=R(2)
上記の6つの式のうち上から4つの式に含まれるQ(j,i,k)を具体的に求める。
D(1,2)=S(2)*Q(2,1,1)*Q(2,1,2)=S(2)*R(1)*R(2)
D(2,1)=S(1)*Q(1,2,1)*Q(1,2,2)=S(1)*R(1)*0=S(1)*R(1)
D(2,2)=S(2)*Q(2,2,1)*Q(2,2,2)=S(2)*0*R(2)=S(2)*R(2)
上述した各分割部分データD(i,j)を生成するための定義式は、図3にも図示されている。
データから元データを復元する場合の計算式などを示す表である。
は任意にとることができ、元データSの先頭から順にb×2の長さ毎に上記分割処理を繰り返すことにより任意の長さの元データ、具体的には処理単位ビット長b×2の整数倍の長さの元データに対して適用することができる。なお、元データSの長さが処理単位ビット長b×2の整数倍でない場合は、例えば、データ末尾の部分を0で埋めるなどして元データSの長さを処理単位ビット長b×2の整数倍に合わせることにより上述した本実施形態の分割処理を適用することができる。
=S(1)*(R(1)*R(1))
=S(1)*0
=S(1)
具体的に計算すると、D(2,1)は00000011, D(3,1)は10110001なので、S(1)は10110010となる。
=S(2)*(R(2)*R(2))
=S(2)*0
=S(2)
具体的に計算すると、D(2,2)は00000010, D(3,2)は00110101なので、S(2)は00110111となる。
D(2,j)*D(3,j)=(S(j)*R(j))*R(j)
=S(j)*(R(j)*R(j))
=S(j)*0
=S(j)
であるから、D(2,j)*D(3,j)を計算すれば、S(j)が求まる。
D(2,j+1)*D(3,j+1)=(S(j+1)*R(j+1))*R(j+1)
=S(j+1)*(R(j+1)*R(j+1))
=S(j+1)*0
=S(j+1)
であるから、D(2,j+1)*D(3,j+1)を計算すれば、S(j+1)が求まる。
=S(1)*(R(1)*R(1))*(R(2)*R(2))
=S(1)*0*0
=S(1)
であるから、D(1,1)*D(3,1)*D(3,2)を計算すれば、S(1)が求まる。具体的に計算すると、D(1,1)は00110110, D(3,1)は10110001, D(3,2)は00110101なので、S(1)は10110010となる。
D(1,2)*D(3,1)*D(3,2)=(S(2)*R(1)*R(2))*R(1)*R(2)
=S(2)*(R(1)*R(1))*(R(2)*R(2))
=S(2)*0*0
=S(2)
であるから、D(1,2)*D(3,1)*D(3,2)を計算すれば、S(2)が求まる。具体的に計算すると、D(1,2)は10110011, D(3,1)は10110001, D(3,2)は00110101なので、S(2)は00110111となる。
D(1,j)*D(3,j)*D(3,j+1)=(S(j)*R(j)*R(j+1))*R(j)*R(j+1)
=S(j)*(R(j)*R(j))*(R(j+1)*R(j+1))
=S(j)*0*0
=S(j)
であるから、D(1,j)*D(3,j)*D(3,j+1)を計算すれば、S(j)が求まる。
D(1,j+1)*D(3,j)*D(3,j+1)=(S(j+1)*R(j)*R(j+1))*R(j)*R(j+1)
=S(j+1)*(R(j)*R(j))*(R(j+1)*R(j+1))
=S(j+1)*0*0
=S(j+1)
であるから、D(1,j+1)*D(3,j)*D(3,j+1)を計算すれば、S(j+1)が求まる。
=(S(1)*S(1))*(R(1)*R(1))*R(2)
=0*0*R(2)
=R(2)
であるから、D(1,1)*D(2,1)を計算すれば、R(2)が求まる。具体的に計算すると、D(1,1)は00110110, D(2,1)は00000011なので、R(2)は00110101となる。
D(1,2)*D(2,2)=(S(2)*R(1)*R(2))*(S(2)*R(2))
=(S(2)*S(2))*R(1)*(R(2)*R(2))
=0*R(1)*0
=R(1)
であるから、D(1,2)*D(2,2)を計算すれば、R(1)が求まる。具体的に計算すると、D(1,2)は10110011, D(2,2)は00000010なので、R(1)は10110001となる。
=S(1)*(R(1)*R(1))
=S(1)*0
=S(1)
であるから、D(2,1)*R(1)を計算すれば、S(1)が求まる。具体的に計算すると、D(2,1)は00000011, R(1)は10110001なので、S(1)は10110010となる。
D(2,2)*R(2)=(S(2)*R(2))*R(2)
=S(2)*(R(2)*R(2))
=S(2)*0
=S(2)
であるからD(2,2)*R(2)を計算すればS(2)が求まる。具体的に計算するとD(2,2)は00000010, R(2)は00110101なので、S(2)は00110111となる。
D(1,j)*D(2,j)=(S(j)*R(j)*R(j+1))*(S(j)*R(j))
=(S(j)*S(j))*(R(j)*R(j))*R(j+1)
=0*0*R(j+1)
=R(j+1)
であるからD(1,j)*D(2,j)を計算すればR(j+1)が求まる。
D(1,j+1)*D(2,j+1)=(S(j+1)*R(j)*R(j+1))*(S(j+1)*R(j+1))
=(S(j+1)*S(j+1))*R(j)*(R(j+1)*R(j+1))
=0*R(j)*0
=R(j)
であるからD(1,j+1)*D(2,j+1)を計算すればR(j)が求まる。
=S(j)*(R(j)*R(j))
=S(j)*0
=S(j)
であるからD(2,j)*R(j)を計算すればS(j)が求まる。
D(2,j+1)*R(j+1)=(S(j+1)*R(j+1))*R(j+1)
=S(j+1)*(R(j+1)*R(j+1))
=S(j+1)*0
=S(j+1)
であるからD(2,j+1)*R(j+1)を計算すればS(j+1)が求まる。
(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/cryptrec20030425_spec01.html)。
=4個の分割データD(i)=D(1),D(2),D(3),D(4)
第1の分割データD(1)
=3個の分割部分データD(1,j)=D(1,1),D(1,2),D(1,3)
第2の分割データD(2)
=3個の分割部分データD(2,j)=D(2,1),D(2,2),D(2,3)
第3の分割データD(3)
=3個の分割部分データD(3,j)=D(3,1),D(3,2),D(3,3)
第4の分割データD(4)
=3個の分割部分データD(4,j)=D(4,1),D(4,2),D(4,3)
なお、各分割部分データD(i,j)を生成するためのステップS317に示す定義式は、本例のように分割数n=4の場合には、具体的には図6に示す表に記載されているものとなる。図6に示す表から、分割部分データD(1,1)を生成するための定義式はS(1)*R(1)*R(2)*R(3)であり、D(1,2)の定義式はS(2)*R(1)*R(2)*R(3)であり、D(1,3)の定義式はS(3)*R(1)*R(2)*R(3)であり、D(2,1)の定義式はS(1)*R(1)*R(2)であり、D(2,2)の定義式はS(2)*R(2)*R(3)であり、D(2,3)の定義式はS(3)*R(1)*R(3)であり、D(3,1)の定義式はS(1)*R(1)であり、D(3,2)の定義式はS(2)*R(2)であり、D(3,3)の定義式はS(3)*R(3)であり、D(4,1)の定義式はR(1)であり、D(4,2)の定義式はR(2)であり、D(4,3)の定義式はR(3)である。また、図6に示す表にはm>0の場合の任意の整数についての一般的な定義式も記載されている。
D(1,3×m+2)=S(3×m+2)*Q(2,1,1)*Q(2,1,2)*Q(2,1,3)
D(1,3×m+3)=S(3×m+3)*Q(3,1,1)*Q(3,1,2)*Q(3,1,3)
D(2,3×m+1)=S(3×m+1)*Q(1,2,1)*Q(1,2,2)*Q(1,2,3)
D(2,3×m+2)=S(3×m+2)*Q(2,2,1)*Q(2,2,2)*Q(2,2,3)
D(2,3×m+3)=S(3×m+3)*Q(3,2,1)*Q(3,2,2)*Q(3,2,3)
D(3,3×m+1)=S(3×m+1)*Q(1,3,1)*Q(1,3,2)*Q(1,3,3)
D(3,3×m+2)=S(3×m+2)*Q(2,3,1)*Q(2,3,2)*Q(2,3,3)
D(3,3×m+3)=S(3×m+3)*Q(3,3,1)*Q(3,3,2)*Q(3,3,3)
D(4,3×m+1)=R(3×m+1)
D(4,3×m+2)=R(3×m+2)
D(4,3×m+3)=R(3×m+3)
次に、Q(j,i,k)を具体的に求める。これはc(j,i,k)を3×3行列であるU[3,3]×(P[3,3])^(j-1)のi行k列の値としたとき下記のように定義される。
=S(3×m+1)*R(3×m+1)*R(3×m+2)*R(3×m+3)
D(1,3×m+2)=S(3×m+2)*Q(2,1,1)*Q(2,1,2)*Q(2,1,3)
=S(3×m+2)*R(3×m+1)*R(3×m+2)*R(3×m+3)
D(1,3×m+3)=S(3×m+3)*Q(3,1,1)*Q(3,1,2)*Q(3,1,3)
=S(3×m+3)*R(3×m+1)*R(3×m+2)*R(3×m+3)
D(2,3×m+1)=S(3×m+1)*Q(1,2,1)*Q(1,2,2)*Q(1,2,3)
=S(3×m+1)*R(3×m+1)*R(3×m+2)
D(2,3×m+2)=S(3×m+2)*Q(2,2,1)*Q(2,2,2)*Q(2,2,3)
=S(3×m+2)*R(3×m+2)*R(3×m+3)
D(2,3×m+3)=S(3×m+3)*Q(3,2,1)*Q(3,2,2)*Q(3,2,3)
=S(3×m+3)*R(3×m+1)*R(3×m+3)
D(3,3×m+1)=S(3×m+1)*Q(1,3,1)*Q(1,3,2)*Q(1,3,3)
=S(3×m+1)*R(3×m+1)
D(3,3×m+2)=S(3×m+2)*Q(2,3,1)*Q(2,3,2)*Q(2,3,3)
=S(3×m+2)*R(3×m+2)
D(3,3×m+3)=S(3×m+3)*Q(3,3,1)*Q(3,3,2)*Q(3,3,3)
=S(3×m+3)*R(3×m+3)
D(4,3×m+1)=R(3×m+1)
D(4,3×m+2)=R(3×m+2)
D(4,3×m+3)=R(3×m+3)
ここで、上述したように図2のステップS217や図5のステップS317で示した定義式に基づいて元データを分割する分割規則について一般的な表現で記載する。
i<nのとき、各分割部分データD(i,j)を
D(i,j)=R(j)
と設定する。上記処理を元データSの先頭から末尾まで繰り返し行うことにより元データSから分割数nの分割データを生成することができる。
=(S(j)*S(j))*(R(j)*R(j))*(R(j+1)*R(j+1))*R(j+2)
=0*0*0*R(j+2)
=R(j+2)
従って、D(1,j)*D(2,j)を計算すれば、乱数R(j+2)が求まり、同様にD(1,j+1)*D(2,j+1)を計算すれば、乱数R(j)が求まり、同様にD(1,j+2)*D(2,j+2)を計算すれば、乱数R(j+1)が求まり、これらの得られた乱数R(j),R(j+1),R(j+2)を用いれば、
D(1,j)*R(j)*R(j+1)*R(j+2)
=(S(j)*R(j)*R(j+1)*R(j+2))*(R(j)*R(j+1)*R(j+2))
=S(j)*(R(j)*R(j))*(R(j+1)*R(j+1))*(R(j+2)*R(j+2))
=S(j)*0*0*0
=S(j)
であるから、D(1,j)*R(j)*R(j+1)*R(j+2)を計算して、S(j)を求めてもよいし、D(2,j)*R(j)*R(j+1)からS(j)を求めることもできる。
=n個の分割データD(i)=D(1),D(2),…D(n)
第1の分割データD(1)
=n-1個の分割部分データD(1,j)=D(1,1),D(1,2),…D(1,n-1)
第2の分割データD(2)
=n-1個の分割部分データD(2,j)=D(2,1),D(2,2),…D(2,n-1)
… … …
… … …
第nの分割データD(n)
=n-1個の分割部分データD(n,j)=D(n,1),D(n,2),…D(n,n-1)
このように変数m=0の場合について分割データDを生成した後、次に変数mを1増やし(ステップS419)、ステップS411に戻り、変数m=1に該当する元データSのb×(n-1)ビット以降について同様の分割処理を行う。最後にステップS411の判定の結果、元データSにデータがなくなった場合、ステップS411からステップS421に進み、上述したように生成した分割データDを分割装置1のデータ送受信手段17からネットワーク3を介して保管サーバ7にそれぞれ送信し、各保管サーバ7に保管し、分割処理を終了する。図1では保管サーバは3個であるが、分割数に応じて保管サーバを増やし、各分割データを異なる保管サーバに保管することが望ましい。
ットを決定する(ステップS505)。次に、元データSのビット長が8の整数倍であるか否かを判定し、整数倍でない場合には、元データSの末尾を0で埋める(ステップS507)。また、整数倍を意味する変数mを0に設定する(ステップS509)。
D(2,1)=R(1)
次に、Q(j,i,k)を具体的に求める。ここで、n=2を定義に当てはめると、j,i,kはいずれも1しか値をとらない。
c(j,i,k)=0 のとき Q(j,i,k)=0
U[1,1]×(P[1,1])^(j-1)=U[1,1]×(P[1,1])^0
=(1)×E[1,1]
=(1)×(1)
=(1)
従って、c(1,1,1)は1であるから、Q(1,1,1)はR(1)と定義される。
D(1,1)=S(1)*R(1)
D(2,1)=R(1)
となる。変数mを使用した形式では、
D(1,m+1)=S(m+1)*R(m+1)
D(2,m+1)=R(m+1)
となる。
D(2,1)=S(1)*R(1), D(2,2)=S(2)*R(2), …
D(3,1)=R(1), D(3,2)=R(2), …
D(1)について見ると、例えば、D(1,1)、D(1,2)が取得できると、
D(1,1)*D(1,2)=(S(1)*R(1)*R(2))*(S(2)*R(1)*R(2))
=S(1)*S(2)*((R(1)*R(1))*((R(2)*R(2))
=S(1)*S(2)*0*0
=S(1)*S(2)
となる。一般にはD(1,j)*D(1,j+1)=S(j)*S(j+1)である。ここでjはj=2×m+1、mはm≧0の任意の整数である。
の演算を行うことによりS(1)*S(2)が算出される。これは元データそのものではないが、乱数成分を含んでいない。
D(1,j)*D(1,j+1)=(S(j)*R(j)*R(j+1))*(S(j+1)*R(j+1))
=S(j)*S(j+1)*R(j)*((R(j+1)*R(j+1))
=S(j)*S(j+1)*R(j)*0
=S(j)*S(j+1)*R(j)
D(2,j)*D(2,j+1)=(S(j)*R(j))*(S(j+1)*R(j)*R(j+1))
=S(j)*S(j+1)*(R(j)*R(j))*R(j+1))
=S(j)*S(j+1)*0*R(j+1)
=S(j)*S(j+1)*R(j+1)
D(3,j)*D(3,j+1)=R(j)*R(j+1)
となるからである。
D(2,j)*R(j)=S(j)*R(j)*R(j)
=S(j)*0
=S(j)
から求まり、R(j+1)が
D(1,j)*S(j)=S(j)*R(j+1)*S(j)
=S(j)*S(j)*R(j+1)
=0*R(j+1)
=R(j+1)
から求まり、上述した通りS(j+1)がD(2,j+1)*R(j+1)から求まる。また、D(1)とD(3)またはD(2)とD(3)を取得してSを復元する場合には、D(3)は乱数のみからなる分割データであるので、D(1)またはD(2)の分割部分データ毎に必要な個数の乱数との排他的論理和演算を行うことにより、乱数部分を消去して元データを復元することができる。
D(1,j)*D(2,j)=(S(j)*R(j+1)*R(j+2))*(S(j)*R(j+1))
=(S(j)*S(j))*(R(j+1)*R(j+1))*R(j+2)
=0*0*R(j+2)
=R(j+2)
から求まり、上述した通りS(j)がD(1,j)*R(j+1)*R(j+2)またはD(2,j)*R(j+1)から求まる。
D(3,j)*R(j)=(S(j)*R(j))*R(j)
=S(j)*(R(j)*R(j))
=S(j)*0
=S(j)
から求まり、R(j+1)が
D(2,j)*S(j)=(S(j)*R(j+1))*S(j)
=(S(j)*S(j))*R(j+1)
=0*R(j+1)
=R(j+1)
から求まり、上述した通りS(j)がD(1,j)*R(j+1)*R(j+2)または D(2,j)*R(j+1)から求まる。
3 ネットワーク
5 端末
7a,7b,7c 保管サーバ
11 分割データ生成手段
13 元データ復元手段
15 乱数発生手段
17 データ送受信手段
Claims (9)
- データ分割装置が行う、元データを秘密分散するために所定の分割数n(n≧3)の分割データに分割するデータ分割方法であって、
前記データ分割装置は、
前記元データを所定の長さに区切って、複数の元部分データを生成するステップと、
前記複数の元部分データの各々に対応して、前記元データと同じ長さの乱数または前記元データより短い長さの乱数を前記所定の長さに区切って、複数の乱数部分データを生成するステップと、
各分割データのみから元データは復元できないが、前記分割数より少ない所定の個数の分割データから元データが復元可能であるように、元部分データと乱数部分データの排他的論理和を行い、各分割データを構成する各分割部分データを生成するステップと、
前記各分割部分データを結合して構成される各分割データを、各記憶部にそれぞれ保管するステップと、を行い、
前記元部分データと前記乱数部分データは、前記分割数より1つ少ない複数個(n-1)ずつ生成され、
前記生成ステップは、前記分割部分データをD(i,j)で表わした場合(i=1〜n、j=1〜n-1)、jが同じ値であって、分割部分データ内での排他的論理和の演算回数の差が1である2つの分割部分データ同士の排他的論理和によって、元部分データまたは乱数部分データが復元される排他的論理和の定義式にしたがって分割部分データを生成すること
を特徴とするデータ分割方法。 - 前記分割部分データを生成するステップは、分割数n-1個単位で元部分データと乱数部分データの排他的論理和を行い、各分割データを構成する各分割部分データを生成することを特徴とする請求項1記載のデータ分割方法。
- 分割データは、乱数のみからなる1つ以上の分割データと、1つ以上の元部分データと1つ以上の乱数部分データの排他的論理和演算によって生成された分割部分データからなる1つ以上の分割データを含むことを特徴とする請求項1記載のデータ分割方法。
- 乱数のみからなる1つの分割データは、任意に定めた長さの乱数を繰り返すことによって構成されることを特徴とする請求項3記載のデータ分割方法。
- 乱数のみからなる1つの分割データは、疑似乱数生成アルゴリズムに基づいて所定の長さの情報から生成された疑似乱数により構成されることを特徴とする請求項3または請求項4記載のデータ分割方法。
- 分割データは、1つ以上の元部分データと1つ以上の乱数部分データの排他的論理和演算によって生成された分割部分データからなる2つ以上の分割データを含むことを特徴とする請求項1記載のデータ分割方法。
- 元データ、乱数、分割データ、分割数および処理単位ビット長をそれぞれS,R,D,nおよびbで表すとともに、変数としてi(=1〜n)およびj(=1〜n-1)を用いて複数(n-1)個の元部分データ、複数(n-1)個の乱数部分データ、複数(n)個の分割データおよび各分割データの複数(n-1)個の分割部分データのそれぞれのうちの1つをそれぞれS(j),R(j),D(i)およびD(i,j)で表わし、変数jを1からn-1まで変えて、各元部分データS(j)を元データSのb×(j-1)+1ビット目からbビット分のデータとして作成し、U[n,n]を
n×n行列でi行j列の値u(i,j)が
i+j≦n+1 のとき u(i,j)=1
i+j>n+1 のとき u(i,j)=0
である行列とし、P[n,n]をn×n行列でi行j列の値p(i,j)が
j=i+1 のとき p(i,j)=1
i=n,j=1 のとき p(i,j)=1
上記以外のとき p(i,j)=0
である行列としたとき、c(j,i,k)を(n-1)×(n-1)行列であるU[n-1,n-1]×P[n-1,n-1]^(j-1)のi行k列の値と定義し、ただしU[n-1,n-1]×P[n-1,n-1]^(j-1)とは行列U[n-1,n-1]とj-1個のP[n-1,n-1]の積を表し、Q(j,i,k)をc(j,i,k)=1のとき、Q(j,i,k)=R(k)、c(j,i,k)=0のとき、Q(j,i,k)=0 と定義したとき、各分割部分データD(i,j)を、変数iを1からnまで変えながら各変数iにおいて変数jを1からn-1まで変えて、i<nのとき、
D(i,j)=R(j)
として生成する、ただし
- 元データを秘密分散するために所定の分割数n(n≧3)の分割データに分割するデータ分割装置であって、
前記元データを所定の長さに区切って、複数の元部分データを生成する元部分データ生成手段と、
前記複数の元部分データの各々に対応して、前記元データと同じ長さの乱数または前記元データより短い長さの乱数を所定の長さに区切って、複数の乱数部分データを生成する乱数生成手段と、
各分割データのみから元データは復元できないが、前記分割数より少ない所定の個数の分割データから元データが復元可能であるように、元部分データと乱数部分データの排他的論理和を行い、各分割データを構成する各分割部分データを生成する分割データ生成手段と、を有し、
前記元部分データと前記乱数部分データは、前記分割数より1つ少ない複数個(n-1)ずつ生成され、
前記分割データ生成手段は、前記分割部分データをD(i,j)で表わした場合(i=1〜n、j=1〜n-1)、jが同じ値であって、分割部分データ内での排他的論理和の演算回数の差が1である2つの分割部分データ同士の排他的論理和によって、元部分データまたは乱数部分データが復元される排他的論理和の定義式にしたがって分割部分データを生成すること
を特徴とするデータ分割装置。 - 元データを秘密分散するために所定の分割数n(n≧3)の分割データに分割するデータ分割用のコンピュータプログラムであって、
コンピュータを、
前記元データを所定の長さに区切って、複数の元部分データを生成する元部分データ生成手段、
前記複数の元部分データの各々に対応して、前記元データと同じ長さの乱数または前記元データより短い長さの乱数を所定の長さに区切って、複数の乱数部分データを生成する乱数生成手段、
各分割データのみから元データは復元できないが、前記分割数より少ない所定の個数の分割データから元データが復元可能であるように、元部分データと乱数部分データの排他的論理和を行い、各分割データを構成する各分割部分データを生成する分割データ生成手段と、として機能させ、
前記元部分データと前記乱数部分データは、前記分割数より1つ少ない複数個(n-1)ずつ生成され、
前記分割データ生成手段は、前記分割部分データをD(i,j)で表わした場合(i=1〜n、j=1〜n-1)、jが同じ値であって、分割部分データ内での排他的論理和の演算回数の差が1である2つの分割部分データ同士の排他的論理和によって、元部分データまたは乱数部分データが復元される排他的論理和の定義式にしたがって分割部分データを生成すること
を特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003423530A JP4676695B2 (ja) | 2002-12-19 | 2003-12-19 | データ分割方法、データ分割装置およびコンピュータプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002367608 | 2002-12-19 | ||
JP2003423530A JP4676695B2 (ja) | 2002-12-19 | 2003-12-19 | データ分割方法、データ分割装置およびコンピュータプログラム |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005228133A Division JP2006018850A (ja) | 2002-12-19 | 2005-08-05 | データ保管システム |
JP2010252306A Division JP5194094B2 (ja) | 2002-12-19 | 2010-11-10 | データ分割方法、データ分割装置およびコンピュータプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004213650A JP2004213650A (ja) | 2004-07-29 |
JP2004213650A5 JP2004213650A5 (ja) | 2007-01-11 |
JP4676695B2 true JP4676695B2 (ja) | 2011-04-27 |
Family
ID=32828786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003423530A Expired - Lifetime JP4676695B2 (ja) | 2002-12-19 | 2003-12-19 | データ分割方法、データ分割装置およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4676695B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5396352B2 (ja) * | 2003-04-15 | 2014-01-22 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム |
JP4602675B2 (ja) * | 2004-02-10 | 2010-12-22 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム |
WO2005076518A1 (en) | 2004-02-10 | 2005-08-18 | Ntt Communications Corporation | Secret information management scheme based on secret sharing scheme |
JP2006099697A (ja) * | 2004-09-30 | 2006-04-13 | Toshiba Corp | 情報プログラム保護方法及び装置 |
JP4856909B2 (ja) * | 2005-08-05 | 2012-01-18 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ分割・復元システム、端末装置、データ分割・復元方法、およびコンピュータプログラム |
JP4884052B2 (ja) * | 2006-03-31 | 2012-02-22 | セコム株式会社 | 生体認証システム |
JP4787080B2 (ja) * | 2006-06-12 | 2011-10-05 | 日本電信電話株式会社 | 分散情報共有方法および端末装置 |
JP4917453B2 (ja) | 2007-02-22 | 2012-04-18 | Kddi株式会社 | 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム |
JP4976891B2 (ja) * | 2007-03-15 | 2012-07-18 | 富士電機株式会社 | Icカードシステム、その分割情報/秘密情報生成端末、プログラム |
JP4304215B2 (ja) | 2007-03-23 | 2009-07-29 | 株式会社東芝 | 秘密分散装置、方法及びプログラム |
JP4334582B2 (ja) | 2007-06-26 | 2009-09-30 | 株式会社東芝 | 秘密分散装置、方法及びプログラム |
JP5065802B2 (ja) * | 2007-08-06 | 2012-11-07 | Kddi株式会社 | 分散情報生成装置、秘密情報復元装置、権限情報を伴った分散情報の生成方法、秘密情報のアクセス制御方法およびプログラム |
JP5113630B2 (ja) * | 2008-05-30 | 2013-01-09 | 株式会社日立製作所 | 秘密分散方法、プログラム、及び装置 |
JP2010011109A (ja) * | 2008-06-27 | 2010-01-14 | Kddi Corp | 認証ユニット、認証端末、認証システム、認証方法およびプログラム |
BRPI1013062A2 (pt) * | 2009-05-19 | 2016-04-05 | Security First Corp | sistemas e métodos para proteger dados na nuvem |
JP2011035618A (ja) * | 2009-07-31 | 2011-02-17 | Ntt Communications Kk | 秘密分散装置、秘密分散方法、および秘密分散プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11134259A (ja) * | 1997-10-29 | 1999-05-21 | Oki Electric Ind Co Ltd | 情報の管理方法と管理装置 |
JP2006018850A (ja) * | 2002-12-19 | 2006-01-19 | Ntt Communications Kk | データ保管システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1576763B1 (en) * | 2002-12-19 | 2015-09-30 | NTT Communications Corp. | Secret sharing scheme using exclusive or calculation |
-
2003
- 2003-12-19 JP JP2003423530A patent/JP4676695B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11134259A (ja) * | 1997-10-29 | 1999-05-21 | Oki Electric Ind Co Ltd | 情報の管理方法と管理装置 |
JP2006018850A (ja) * | 2002-12-19 | 2006-01-19 | Ntt Communications Kk | データ保管システム |
Also Published As
Publication number | Publication date |
---|---|
JP2004213650A (ja) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5194094B2 (ja) | データ分割方法、データ分割装置およびコンピュータプログラム | |
JP4676695B2 (ja) | データ分割方法、データ分割装置およびコンピュータプログラム | |
KR100363457B1 (ko) | 암호체계용매핑레퍼토리 | |
JP4610176B2 (ja) | データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム | |
US9483656B2 (en) | Efficient and secure data storage utilizing a dispersed data storage system | |
KR101829267B1 (ko) | 암호문의 크기가 감소되는 동형 암호화 방법 | |
EP2953052B1 (en) | Systems and methods for dynamic data storage | |
KR100994841B1 (ko) | 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체 | |
US20100266119A1 (en) | Dispersed storage secure data decoding | |
JP4539952B2 (ja) | 情報分散保管システム、その装置、プログラム及び記録媒体 | |
JP2006018850A (ja) | データ保管システム | |
JP2005141436A5 (ja) | ||
JP5749368B2 (ja) | データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム | |
JP4856909B2 (ja) | データ分割・復元システム、端末装置、データ分割・復元方法、およびコンピュータプログラム | |
CN116488814A (zh) | 一种基于fpga的数据加密的安全计算方法 | |
JP4789536B2 (ja) | データ分割装置、データ分割方法およびコンピュータプログラム | |
JP6259295B2 (ja) | データ秘匿方法、データ秘匿装置、およびデータ秘匿プログラム | |
JP4619045B2 (ja) | データ秘匿装置、データ秘匿方法、及びデータ秘匿プログラム | |
CN117318909A (zh) | 基于整数多项式环的同态加密系统和方法、同态加密装置 | |
JP4194481B2 (ja) | 秘密情報保管処理方法及び秘密情報保管装置、並びに秘密情報復元処理方法及び秘密情報復元装置 | |
JP4486851B2 (ja) | 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム | |
JP2007124610A (ja) | 秘密情報分散装置及び秘密情報復元装置及び方法及びプログラム | |
JP6322314B2 (ja) | データ秘匿方法、データ秘匿装置、およびデータ秘匿プログラム | |
JP2005167794A5 (ja) | ||
JP2005346006A (ja) | アクセス権管理システム、アクセス権管理装置、アクセス権管理方法、端末用プログラム、及びアクセス権管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061121 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101110 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101116 |
|
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: 20110125 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110128 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140204 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4676695 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |