CN1726669A - 数据分割方法和使用异或运算的装置 - Google Patents

数据分割方法和使用异或运算的装置 Download PDF

Info

Publication number
CN1726669A
CN1726669A CNA2003801065291A CN200380106529A CN1726669A CN 1726669 A CN1726669 A CN 1726669A CN A2003801065291 A CNA2003801065291 A CN A2003801065291A CN 200380106529 A CN200380106529 A CN 200380106529A CN 1726669 A CN1726669 A CN 1726669A
Authority
CN
China
Prior art keywords
data
cut apart
local
random number
apart
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2003801065291A
Other languages
English (en)
Other versions
CN100563152C (zh
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.)
NTT Communications Corp
Original Assignee
NTT Communications Corp
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 NTT Communications Corp filed Critical NTT Communications Corp
Publication of CN1726669A publication Critical patent/CN1726669A/zh
Application granted granted Critical
Publication of CN100563152C publication Critical patent/CN100563152C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Complex Calculations (AREA)

Abstract

多个原始局部数据通过用指定的处理单元比特长度将原始数据分割来生成,对应于多个原始局部数据,生成每个长度小于或等于指定的处理单元比特长度的多个随机数局部数据,通过使用原始局部数据和随机数局部数据的异或运算生成多个分割后局部数据,该分割后局部数据组成每个分割后数据,每个分割后局部数据具有和指定的处理单元比特长度相同的长度。然后,从多个分割后局部数据中生成所想要的分割次数的分割后数据,从而原始数据不能从任何一个分割后数据中单独地被确定出来,但是原始数据可以从生成的分割后数据中的指定数量的分割后数据中恢复出来。

Description

数据分割方法和使用异或运算的装置
发明领域
本发明涉及数据分割方法和装置,其可以有效地维护分割中的数据,从而保护数据的保密性和安全性,特别是涉及根据所想要的处理单元比特将原始数据分割成所想要数量的分割后数据的数据分割方法和装置。
背景技术
在维护重要的秘密数据的情况下(以下指原始数据),有例如丢失,破坏,被盗,和隐私侵犯的潜在威胁。这样的威胁不能通过将数据简单地加密进行保密维护而得到保护。预先在秘密数据丢失和破坏的情况下产生多份拷贝是有效的,但多份拷贝的产生提升了被盗的危险性。
作为用来解决这样问题的传统方法,有一种阈值秘密共享方法(例如,参见,A.Shamir“How to Share a Secret”,Comm.Assoc.Comput.Mach.,Vol.22,no.11,pp.612-613(November 1979))。在这个传统的方法中,原始数据S被分割成n组分割后数据,原始数据S可以通过在此n组分割后数据中搜集至少一定数量的x组的分割后数据得到恢复,但是原始数据S不能通过搜集仅仅x-1组分割后数据来得到恢复。因此,即使有x-1组分割后数据被盗,原始数据S也不会被泄漏,即使n-x组分割后的数据被丢失或破坏,原始数据S也可以被恢复。
作为一个用来认识此方法的代表性的例子,有一个使用(n-1)阶多项式和余数运算的方法(例如,参见Bruce Schneier“Applied Cryptography”,JohnWiley & Sons,Inc.,pp.383-384(1994))。这个传统的方法已经应用在公钥加密***的密钥的分割管理中,其中要被维护的数据量不是非常大,从而它不会在当前的计算机的计算处理能力和存储装置或媒介的花费方面产生任何问题。
然而,这种传统方法的应用在要被安全地维护的数据量达到兆字节(Megabytes),千兆字节(Gigabytes)或更高的时候,它将要求能够执行包括对于大量数据的多项式运算和余数运算的多长度整数运算处理的运算处理能力。此外,在此传统的方法中,在分割次数n为5的情况下,一个字节长度的五个分割后数据从一个字节长度的数据中产生,从而它将要求很大的存储器容量,该存储器容量是对于原始数据的分割次数线性地成比例的存储器容量。因此,存在的问题在于使用计算机来实现此传统方法是很不实际的。
而且,在上面描述的传统方法中,为了保密数据的安全,设定一用于分割计算的处理单位,但是该用于分割计算的处理单位要求一定的数据长度,分割计算不能在任意处理单位中得到执行已经是个问题。
发明内容
本发明的目的是提供数据分割方法和装置,其能够通过相对简单的处理将原始数据有效地分割。
根据本发明的一个方面,提供有一种数据分割方法,用来通过使用指定的处理单元比特长度,将原始数据分割成所想要数量的分割后数据,其包括如下步骤:用指定的处理单元比特长度来分割原始数据,生成多个原始局部数据;对应于多个原始局部数据,从具有一长度小于或等于原始数据的比特长度的随机数字中生成多个随机数局部数据,每个随机数局部数据具有和指定处理单元比特长度相等的长度;通过用原始局部数据和随机数局部数据的异或运算,生成多个分割后局部数据,其中该分割后局部数据组成每个分割后数据,每个分割后局部数据具有和指定处理单元比特长度相同的长度;和从多个分割后局部数据中产生所想要数量的分割后数据,从而原始数据不能从任何一个分割后数据中被单独地确定出来,但是原始数据可以从生成的分割后数据中的指定数量的分割后数据中恢复出来。
根据本发明的另一方面,提供有一种数据分割装置,用来通过使用指定的处理单元比特长度,将原始数据分割成所想要数量的分割后数据,其包括:一原始局部数据产生单元,其被配置用于通过用指定的处理单元比特长度将原始数据分割来生成多个原始局部数据;一随机数产生单元,其被配置用于对应于多个原始局部数据,从具有一有小于或等于原始数据的比特长度的随机数中产生多个随机数局部数据,每个随机数局部数据具有和指定处理单元比特长度相同的长度;一分割后局部数据产生单元,其被配置用于通过使用原始局部数据和随机数局部数据的异或计算来生成多个分割后局部数据,其中该分割后局部数据组成每个分割后数据的,每个分割后局部数据具有和指定的处理单元比特长度相同的长度;和一分割后数据产生单元,其被配置用于从多个分割后局部数据中以所想要的分割次数产生分割后数据,从而原始数据不能从任何一个分割后数据中被单独地确定出来,但是原始数据可以从生成的分割后数据中的指定数量的分割后数据中恢复出来。
根据本发明的另一方面,提供有一种计算机程序产品,用来使计算机行使数据分割装置的功能,该数据分割装置通过使用一指定的处理单元比特长度将原始数据分割成所想要数量的分割后数据,计算机程序产品包括:第一计算机程序代码,通过用指定的处理单元比特长度分割原始数据来使计算机产生多个原始局部数据;第二计算机程序代码,对应于多个原始局部数据,从具有小于或等于原始数据比特长度的随机数中,使计算机产生多个随机数局部数据,每个随机数局部数据具有和指定处理单元比特长度相同的长度;第三计算机程序代码,通过使用原始局部数据和随机数局部数据的异或运算,使计算机生成多个分割后局部数据,该分割后局部数据组成每个分割后数据,每个分割后局部数据有等于指定处理单元比特长度的长度;第四计算机程序代码,使计算机从多个分割后局部数据中以所想要的分割次数生成分割后数据,从而原始数据不能从任何一个分割后数据中被单独地确定出来,但是原始数据可以从产生的分割后数据中的指定数量的分割后数据中恢复出来。
下面将结合附图对本发明的其它特征和优点进行描述。
附图说明
图1是所示本发明实施***结构的框图,其包括根据本发明的一个实施例实现数据分割的方法和数据分割的装置;
图2是所示由图1所示的数据分割装置执行的分割处理的流程图,在此情况下,分割数是三;
图3是所示根据本发明的一个实施例,在分割为三的情况下的分割处理和恢复处理的概要图;
图4是所示根据本发明的一个实施例,在分割为三的情况下的分割后局部数据及其的定义公式的表格;
图5是所示由图1所示的数据分割装置执行的分割处理的流程图,在此情况下,分割数是四;
图6是所示根据本发明的一个实施例,在分割为四的情况下的分割后局部数据及其定义公式的表格;
图7是所示根据本发明的一个实施例,在分割为五的情况下的分割后局部数据和及其定义公式的表格;
图8是所示由图1所示的数据分割装置执行的分割处理的流程图,在此情况下,分割数是n;
图9是所示由图1所示的数据分割装置执行的分割处理的流程图,在此情况下,分割数是2;
图10是所示根据本发明的另一实施例,在分割为三的情况下的分割后局部数据和及其定义公式的表格;
图11是所示仍然根据本发明的另一实施例,在分割为三的情况下的分割后局部数据和及其定义公式的表格;
图12是所示仍然根据本发明的另一实施例,在分割为四的情况下的分割后局部数据和及其定义公式的表格;
图13是所示仍然根据本发明的另一实施例,在分割为五的情况下的分割后局部数据和及其定义公式的表格。
具体实施方式
现在参考图1至图13,根据本发明下述实施例中的数据分割方法和装置进行详细地描述
图1显示根据本发明的一个实施例的***配置图,其包括用来实现数据分割方法的数据分割装置。
在这个实施例中,分割装置1连接与网络3连接,并且根据从终端5来的原始数据分割请求,分割装置1将原始数据S执行分割而生成分割后数据,其中终端5对网络3进行访问并将多个分割后数据通过网络3存放在多个存放服务器7a,7b和7c中。注意,在图1中,分割装置1将从终端5来的原始数据S分割成三个分割后的数据D(1),D(2)和D(3),并将它们分别存放在多个服务器7a,7b和7c中。
而且,根据来自通过网络3访问的终端5的一原始数据恢复请求,分割装置通过网络3从存放服务器7中执行获取多个分割后数据D(1),D(2)和D(3),从多个分割后数据D(1),D(2)和D(3)中恢复原始数据S,并通过网络3将原始数据S传送到终端5。
更特定地,分割装置1包含一分割后数据产生单元11,其用来从原始数据S中产生多个分割后数据D;一原始数据恢复单元13,其用来从多个分割后数据D中恢复原始数据S;一随机数产生单元15,其用来产生随机数R,所述的随机数用作从原始数据S中生成多个分割后数据D;和一数据传输与接收单元17,其用来将多个分割后数据D通过网络3传送到多个存储服务器7a,7b和7c,或通过网络3从多个存放服务器7a,7b和7c接收多个分割后数据D,其中所述的多个分割后数据D是由分割后数据产生单元11产生的。
在根据这个实施例的原始数据分割和恢复中,根据一所想要的处理单元比特长度,将原始数据以所想要的分割次数分割成分割后数据,这个处理单元比特长度可以设为一任意值。而且,原始数据被分割成该处理单元比特长度的原始局部数据,从每个原始局部数据中生成分割后局部数据,并且该分割后局部数据的数量比分割次数小1,因此当原始数据的比特长度不是(分割次数-1)乘以处理单元比特长度的整数倍时候,例如,通过在原始数据的尾部补充0而使原始数据的比特长度被调整为(分割次数-1)乘以处理单元比特长度的整数倍。
而且,对应于(分割次数-1)组的原始局部数据,上面提及的随机数由随机数产生单元15所产生(分割次数-1)组的随机数局部数据,其中随机数局部数据具有的比特长度等于处理单元比特长度。也就是说,随机数由处理单元比特长度产生和分割为(分割次数-1)组随机数局部数据,其中该随机数局部数据具有的比特长度和处理单元比特长度相等。此外,根据处理单元比特长度,原始数据以所想要的分割次数被分割成分割后数据,并且这些分割后数据中的每一个也对应于(分割次数-1)组原始局部数据被生成为(分割次数-1)组分割后局部数据,该分割后局部数据具有的比特长度和处理单元比特长度相等。也就是说,每一个分割后数据由处理单元比特长度产生和分割为(分割次数-1)组分割后局部数据,该分割后局部数据具有的比特长度和处理单元比特长度相等。
注意,在下面的描述中,上述原始数据,随机数,分割后数据,分割次数和处理单元比特长度将被分别表示为S,R,D,n和b,变量i(=1到n),和j(等于1到n-1)将用作变量表示多个数据或随机数中的一个,(分割次数-1)组原始局部数据的每一组,(分割次数-1)组随机数局部数据的每一组和n组分割后数据D的每一组将分别被表示为S(j),R(j)和D(j),组成每个分割后数据D(i)的(n-1)组分割后局部数据将被表示为D(i,j)。也就是说,S(j)表示第j个原始局部数据,此情况下原始数据S被处理单元比特长度从顶部分割,并且对作为结果的原始局部数据编号。
用这些符号,原始数据,随机数数据,分割后数据和它们的要素,即原始局部数据,随机数局部数据和分割后局部数据,可以做如下表示。
原始数据S
=(n-1)组原始局部数据S(j)
=S(1),S(2),......,S(n-1)
随机数R
=(n-1)组随机数局部数据R(j)
=R(1),R(2),......,R(n-1)
n组分割后数据=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*0的计算结果是0
0*1的计算结果是1
1*0的计算结果是1
1*1的计算结果是0
而且,在异或运算中,交换率和结合率有效。也就是说,下列等式数学上证明是成立的。
a*b=b*a
(a*b)*c=a*(b*c)
此外,a*a=0和a*0=0*a=a也成立。这里,a,b和c代表相同长度的比特序列,0代表一由“0”组成的长度和a,b和c相同的比特序列。
接下来,在本实施例中的操作将参考附图表来描述。第一,对在流程图2,5,8,和9中使用符号的定义进行描述。
(1) A(i)表示A(1)*A(2)*......*A(n)
(2)c(j,i,k)是一个(n-1)×(n-1)的矩阵,该矩阵被定义为U[n-1,n-1]×(P[n-1,n-1]^(j-1)的第i行和第k列的值
那么Q(j,i,j)被作为如下定义。
Q(j,i,k)=R((n-1)×m+k    当c(j,i,k)=1
Q(j,i,k)=0    当c(j,i,k)=0
这里,m≥0,是一个整数。
(3)U[n,n]是一个n×n的矩阵,其中u(i,j)代表第i行和第j列的值,由下面给出:
u(i,j)=1当i+j≤n+1
u(i,j)=0当i+j>n+1
这个矩阵将被参考作为一个“上三角矩阵”。更特别地,这是一个如下所示的矩阵。
U [ 3,3 ] = 1 1 1 1 1 0 1 0 0
U [ 4,4 ] = 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0
(4)P[n,n]是一个n×n的矩阵,其中p(i,j)代表一个第i行和第j列的值,由下面给出:
p(i,j)=1当j=i+1
p(i,j)=1当i=1,j=n
p(i,j)=0其他
这个矩阵将被参考作为一个“旋转矩阵”。更特别地,这是一个如下所示的矩阵。
P [ 3,3 ] = 0 1 0 0 0 1 1 0 0
P [ 4,4 ] = 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0
当这个旋转矩阵从右侧和另一矩阵相乘的时候,这个旋转矩阵有将另一矩阵中的第一列移到第二列,第二列到第三列,第n-l列到第n列,第n列到第一列的效果。换言之,当矩阵P从右侧和另一矩阵相乘多次的时候,另一矩阵的每一列就被向右旋转,该旋转的次数和相乘次数一样多。
(5)当A和B是n×n的矩阵,A×B表示矩阵A和B的乘积。对于矩阵元素的运算规则和通常的数学是一样的。
(6)当A是一个n×n的矩阵,i是一个整数,A^i表示i组矩阵A的乘积。而且,A^0表示一个单位矩阵E。
(7)单位矩阵E[n,n]是一个n×n的矩阵,该矩阵的第i行和第j列的一个值e(i,j)由下面给出:
e(i,j)=1当i=j
e(i,j)=0其他
更特别地,如下述此矩阵。
E [ 3,3 ] = 1 0 0 0 1 0 0 0 1
E [ 4,4 ] = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
当A是一个任意的n×n矩阵,单位矩阵有这样的特性,A×E=E×A=A
接下来,参考图2,3和4,对于用来分割原始数据S的处理进行描述。
本实施例的分割装置1的用户通过网络3从终端5访问分割装置1并将原始数据S传送到分割装置1。分割装置1的数据传输和接收单元17从终端5接收原始数据S并将该数据提供给分割装置1(图2中的步骤S201)。注意,在这里例子中,假设原始数据S为由“1011001000110111”给出的16比特。
接下来,用户将分割次数n=3指定到分割装置1(步骤S203)。这个分割次数n可以是一个由分割装置1预先设定的值。注意,根据分割次数n=3,分割装置1产生三个分割后数据,其将被表示为D(1),D(2)和D(3)。这些分割后数据D(1),D(2)和D(3)都是由16比特长度的数据,其和原始数据有相同的比特长度。
然后,用在分割原始数据S的处理单元比特长度b被确定为8比特,并且随机数R以和原始数据S有相同长度的16比特由随机数参生单元15产生出(步骤S205)。该处理单元比特长度b可以由用户从终端5指定到分割装置1中,或者可以是一个由分割装置1预先设定的值。注意,处理单元比特长度b可以是任意长度的比特,但是这里假设原始数据S可以被比特长度为8比特将其分割。因此,当上述原始数据S“1011001000110111”的16比特被8比特的处理单元比特长度所分割的时候,所得的两个原始局部数据S(1)和S(2)的结果为“10110010”和“00110111”。
接下来,在步骤S207中,判断原始数据S的比特长度是否是8×2的整数倍,如果不是整数倍,原始数据S的尾部填补0使其成为8×2的整数倍。注意,在此情况下,在本实施例中的处理单元比特长度b被设为8比特,分割次数n被设为3,分割处理不但对比特长度是16的原始数据S是有效的,而且对于比特长度是处理单元比特长度b×(分割次数n-1)=8×2整数倍的原始数据S也是有效的。
接下来,在步骤S209中,表示上述整数倍数的变量m被设为0。注意,在此实施例中,在原始数据S的比特长度和处理单元比特长度b×(分割次数n-1)=8×2相等为16的情况下,m等于0。但是在为两倍比特长度,32比特情况下,m等于1,在为三倍比特长度,48比特的情况下,m等于2。
接下来,判断是否存在原始数据S的第8×2×m+1比特的8×2比特的数据(步骤211)。从步骤S211开始的分割处理被执行之后,判断接下来的16比特是否存在于原始数据S中,其中所述的步骤211是通过由变量m对处理单元比特长度b×(分割次数n-1)=8×2=16比特的原始数据S进行设定来执行的。在原始数据S是如本实施例的16比特的情况下,当从步骤S211开始的分割处理对于有16比特的原始数据执行了一次的时候,变量m递增1,在下面步骤S219中将会描述,,但是从第17个比特开始的数据,对应于变量m=1的情况下,在本实施例的原始数据S中是不存在的,从而处理流程从步骤S211到步骤S221,但是当前变量m是0,从而原始数据S的第8×8×m+1个比特是8×2×0+1=1和来自16位比特存在于原始数据S中的第一个比特8×2比特数据,,因此处理流程到步骤S213。
在步骤S213中,当将变量j从1改变到2(=分割次数n-1)的时候,来自原始数据S的第8×(2×m+j-1)+1个比特的8比特数据(=处理单元比特长度)被设为原始局部数据S(2×m+j),从而由原始数据S被处理单元比特长度分割产生如下的两组(=分割次数n-1)原始局部数据S(1)和S(2)。
原始数据S=S(1),S(2)
第一原始局部数据S(1)=“10110010”
第二原始局部数据S(2)=“00110111”
接下来,当将变量j从1改变到2(=分割次数n-1)的时候,,由随机数产生单元15中产生长度等于8比特的随机数,该随机数被设为一随机数局部数据R(2×m+j),从而由随机数R被处理单元比特长度分割而产生的两组(=分割次数n-1)随机数局部数据R(1)和R(2)如下(步骤S215)。
随机数R=R(1),R(2)
第一随机数局部数据R(1)=“10110001”
第二随机数局部数据R(2)=“00110101”
接下来,在步骤S217,当将变量i从1改变到3(=分割次数n)和将对于每个变量i的变量j从1改变到2(=分割次数n-1)的时候,根据用作如步骤S217中所示的生成分割后数据的定义公式,生成每个分割后局部数据D(i,2×m+j),其中该每个分割后的局部数据组成多个分割后数据中D(i)中的每个数据,在步骤S217中生成的分割后数据是由原始局部数据和随机数局部数据的异或关系定义的。结果,下面的分割后数据D被生成。
分割后数据D
=三个分割后数据D(i)=D(1),D(2),D(3)
第一分割后数据D(1)
=两个分割后局部数据D(1,j)=D(1,1),D(1,2)
=“00110110”,“10110011”
第二分割后数据D(2)
=两个分割后局部数据D(2,j)=D(2,1),D(2,2)
=“00000011”,“00000010”
第三分割后数据D(2)
=两个分割后局部数据D(3,j)=D(3,1),D(3,2)
=“10110001”,“00110101”
注意,在步骤S217中所示的用来生成每个分割后局部数据D(i,j)的定义公式成为如图4所示的表格中描述的特定的形式,在此情况下,如本实施例中分割次数=3。从图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,m是个任意整数的情况下的一般的定义公式。
对于在表示整数倍数的变量m=0的情况下,以这种方式生成分割后数据D后,变量m递增1(步骤S219),处理流程回到步骤S211,这里,对应于变量m=1,从原始数据的第17个比特开始的数据尝试类似的分割处理,但是在这个例子中,原始数据S是16比特,从第17个比特开始的数据是不存在的,从而处理流程从步骤S211到步骤S221,这里如上所述的产生的分割后数据D(1),D(2)和D(3)通过网络3被分割装置1的数据传输和接收单元17分别传输到存放服务器7a,7b和7c,以便它们被存放在各存放服务器中,然后分割处理就结束了。
现在,对使用在上述图2的步骤S217中所示的定义公式的分割后数据产生过程,或更特定地在分割次数n=3的情况下的分割后数据产生过程,进行描述。
首先,在表示整数倍数的变量m=0的情况下,从步骤S217所示的定义公式,如下是组成每个分割后数据D(i)=D(1)至D(3)的分割后局部数据D(i,2×m+j)=D(i,j)(i=1到3,j=1到2)。
D(1,1)=S(1)*Q(1,1,1)*Q(1,1,2)
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)
如下给出包含在上述六个方程中的四个等式中的Q(j,i,k),即当c(j,i,k)是2×2矩阵U[2,2]×(P[2,2]^(j-1)第i行地k列的值的时候,Q(j,i,k)给出:
Q(j,i,k)=R(k)当c(j,i,k)=1
Q(j,i,k)=0当c(j,i,k)=1
因此,当j=1,
U [ 2,2 ] × ( P [ 2,2 ] ) ^ ( j - 1 ) = U [ 2,2 ] × ( P [ 2,2 ] ) ^ 0 = U [ 2,2 ] × E [ 2,2 ] = U [ 2,2 ] = 1 1 1 0
当j=2的时候,
U [ 2,2 ] × ( P [ 2,2 ] ) ^ ( j - 1 ) = U [ 2,2 ] × ( P [ 2,2 ] ) ^ 1 = U [ 2,2 ] × P [ 2,2 ] = 1 1 1 0 × 0 1 1 0 = 1 1 0 1
使用这些,每个分割后局部数据D(i,j)由下列定义公式生成。
D(1,1)=S(1)*Q(1,1,1)*Q(1,1,2)=S(1)*R(1)*R(2)
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中给出。
图3是一个表格,显示每个数据和在用上述的8比特的处理单元比特长度将16比特的原始数据分割成三部分(分割次数n=3)的定义公式,以及在将原始数据S从分割后局部数据中恢复出来的情况下的计算公式。
现在,对处理和用来生成分割后数据D(1),D(2)与D(3)和分割后局部数据D(1,1),D(1,2),D(2,1),D(2,2),D(3,1)与D(3,2)的一般形式的定义公式进行描述。
首先,对于第一分割后数据D(1),第一分割后局部数据D(1,1)由上述公式S(1)*R(1)*R(2)所定义,第二分割后局部数据D(1,2)由上述公式S(2)*R(1)*R(2)所定义。注意,对于D(1,j)来说一般的形式是S(j)*R(j)*R(j+1),对于D(1,j+1)来说一般的形式是S(j+1)*R(j)*R(j+1)(此处j被假设为奇数),通过定义公式的计算,D(1,1)是“00110110”,D(1,2)是“10110011”,因此D(1)是“0011011010110011”。注意,一般形式的定义公式在图4中显示。
同样,对于第二分割后数据D(2),第一分割后局部数据D(2,1)由上述公式S(1)*R(1)所定义,第二分割后局部数据D(2,2)由上述公式S(2)*R(2)所定义。注意,对于D(2,j)来说一般的形式是S(j)*R(j),对于D(2,j+1)来说一般的形式是S(j+1)*R(j+1)(此处j被假设为奇数),通过定义公式的计算,D(2,1)是“00000011”,D(2,2)是“00000010”,因此D(2)是“0000001100000010”。
同样,对于第三分割后数据D(3),第一分割后局部数据D(3,1)由上述公式R(1)所定义,第二分割后局部数据D(3,2)由上述公式R(2)所定义。注意,对于D(3,j)来说一般的形式是R(j),对于D(3,j+1)来说一般的形式是R(j+1)(此处j被假设为奇数),通过定义公式的计算,D(3,1)是“10110001”,D(3,2)是“00110101”,因此D(3)是“1011000100110101”。
注意,在上面的描述中,S,R,D(1),D(2)和D(3)的比特长度假设为16比特,但是通过从数据顶部重复上述分割处理,从任何比特长度的原始数据S中生成分割后数据D(1),D(2)与D(3)是可能的。而且,处理单元比特长度b可以是任意的,通过重复上述的对继续地从原始数据S顶部的每个b×2长度的分割处理对于任意比特长度的原始数据S是适用的,或更特定地,对于比特长度是处理单元比特长度b×2整数倍的原始数据S适用。注意,如果原始数据S的比特长度不是处理单元比特长度b×2的整数倍,通过例如将原始数据S的尾部填补0来将原始数据S的比特长度调整为处理单元比特长度b×2的整数倍,应用上述这个实施例的分割处理仍然是可能的。
接下来,参考图3右边所示的表格,对用来从分割后数据中恢复原始数据的处理进行描述。
首先,用户通过网络3从终端5访问分割装置1,并且通过分割装置1的数据传输和接收单元17请求原始数据S的恢复。一旦接收到原始数据S的恢复的该请求时,因为分割装置1知道对应于该原始数据S的分割后数据D(1),D(2)与D(3)被存放在存放服务器7a,7b和7c,下面,分割装置1就通过网络3从存放服务器7a,7b和7c中获取分割后数据D(1),D(2)与D(3),并从所获取的分割后数据D(1),D(2)与D(3)中将原始数据恢复出来。
首先,如下是第一原始局部数据S(1)可以从分割后数据D(2,1)和D(3,1)中生成。
D(2,1)*D(3,1)=(S(1)*R(1))*R(1)
               =S(1)*(R(1)*R(1))
               =S(1)*0
               =S(1)
更特定地,D(2,1)是“00000011”,D(3,1)是“10110001”因此S(1)成为“10110010”。
同样,如下是第二原始局部数据S(2)可以从其它分割后局部数据中生成,。
D(2,2)*D(3,2)=(S(2)*R(2))*R(2)
               =S(2)*(R(2)*R(2))
               =S(2)*0
               =S(2)
更特定地,D(2,2)是“00000010”,D(3,2)是“00110101”因此S(2)成为“00110111”。
通常,当j是一奇数,关系:
D(2,j)*D(3,j)=(S(j)*R(j))*R(j)
               =S(j)*(R(j)*R(j))
               =S(j)*0
               =S(j)
成立,因此S(j)可以通过计算D(2,j)*D(3,j)而得到。
同样,通常地,当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)
成立,因此S(j+1)可以通过计算D(2,j+1)*D(3,j+1)而得到。
接下来,如下是通过获取D(1)和D(3)来恢复原始数据S的情况。即,关系:
D(1,1)*D(3,1)*D(3,2)=(S(1)*R(1)*R(2))*R(1)*R(2)
                       =S(1)*(R(1)*R(1))*(R(2)*R(2))
                       =S(1)*0*0
                       =S(1)
成立,因此S(1)可以通过计算D(1,1)*D(3,1)*D(3,2)来获得。更特定地,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)
成立,因此S(2)可以通过计算D(1,2)*D(3,1)*D(3,2)来获得。更特定地,D(1,2)是“10110011”,D(3,1)是“10110001”,D(3,2)是“00110101”,因此S(1)成为“00110111”。
通常地,当j是一奇数的时候,关系:
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)
成立,因此S(j)可以通过计算D(1,j)*D(3,j)*D(3,j+1)来获得。
同样,通常地,当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)
成立,因此S(j+1)可以通过计算D(1,j+1)*D(3,j)*D(3,j+1)来获得。
接下来,如下是通过获取分割后数据D(1)和D(3)来恢复原始数据S的情况。
即,关系:
D(1,1)*D(2,1)=(S(1)*R(1)*R(2))*(S(1)*R(1))
               =(S(1)*S(1))*(R(1)*R(1))*R(2)
               =0*0*R(2)
               =R(2)
成立,因此R(2)可以通过计算D(1,1)*D(2,1)来获得。更特定地,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)
成立,因此R(1)可以通过计算D(1,2)*D(2,2)来获得。更特定地,D(1,2)是“10110011”,D(2,2)是“00000010”,因此R(1)成为“10110001”。
如下是通过使用这些R(1)和R(2),S(1)和S(2)得到。即,关系:
D(2,1)*R(1)=(S(1)*R(1))*R(1)
            =S(1)*(R(1)*R(1))
            =S(1)*0
            =S(1)
成立,因此S(1)可以通过计算D(2,1)*R(1)来获得。更特定地,D(2,1)是“00000011”,R(1)是“10110001”,因此S(1)成为“10110010”。
类似地,关系:
D(2,2)*R(2)=(S(2)*R(2))*R2)
            =S(2)*(R(2)*R(2))
            =S(2)*0
            =S(2)
成立,因此S(2)可以通过计算D(2,2)*R(2)来获得。更特定地,D(2,2)是“00000010”,R(2)是“00110101”,因此S(2)成为“00110111”。
通常地,当j是一奇数的时候,关系:
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)
成立,因此R(j+1)可以通过计算D(1,j)*D(2,j)来获得。
同样,通常地,当j是一奇数的时候,关系:
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)
成立,因此R(j)可以通过计算D(1,j+1)*D(2,j+1)来获得。
如下是通过使用这些R(j)和R(j+1),S(j)和S(j+1)得到。即,关系:
D(2,j)*R(j)=(S(j)*R(j))*R(j)
            =S(j)*(R(j)*R(j))
            =S(j)*0
            =S(j)
成立,从而S(j)可以通过计算D(2,j)*R(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)
成立,因此S(j+1)可以通过计算D(2,j+1)*R(j+1)来获得。
如上所述,当通过根据处理单元比特长度b从原始数据顶部重复分割处理而产生分割后数据的时候,用三个分割后数据中的两个来恢复原始数据是可能的,不用使用所有的三个分割后数据D(1),D(2)与D(3)。
作为本发明的另一实施例,使用比特长度小于原始数据S比特长度的随机数R来执行原始数据分割处理是可能的。
也就是说,随机数R被假设为和在上面的S,D(1),D(2)和D(3)有相同比特长度的数据,但是随机数R可以有小于原始数据S的比特长度,这个有着比较短的比特长度的随机数R可以被重复地用作分割后数据D(1),D(2)和D(3)的生成。
注意,分割后数据D(3)单独地从随机数R中生成,从而没有必要去为了分割后数据D(3)重复地存放随机数R。例如,假设原始数据S的比特长度是1600比特(200字节),随机数是任意地选择的160个比特(20字节)的重复。换言之,R(1)至R(20)是随机生成的,R(21)至R(200)被设为R(21)=R(1),R(22)=R(2),......,R(40)=R(20),R(41)=R(1),R(42)=R(2),......,R(60)=R(20),R(61)=R(1),R(62)=R(2),......,R(80)=R(20),......,R(181)=R(1),R(182)=R(2),......,R(200)=R(20)。
在先前的描述中,通过将分割后局部数据D(3,j)定义为随机数局部数据R(j)而生成D(3),但是在此情况中,仅仅足够存储一直到D(3,20)。即,D(3)的长度成为D(1)和D(2)的1/10。因此,总的要被存储的数据量成为先前实施例中的原始数据S的数据量的三倍,但是在这个实施例中,该总量可以被降低到原始数据S的数据量的2.1倍。在随机数R中重复部分的数据长度应该更优选适当足够的长,因为如果它太短,随机数R可能从D(1)和D(2)中被单独解码。
在本实施例中,例如为了生成随机数R,使用伪随机数生成算法。有两种类型的随机数,包括通过使用自然中的物理现象生成的真实的随机数,和使用计算机算法或类似生成的伪随机数。真实的随机数可以通过将骰子投掷很多次或者使用例如噪声的物理现象来生成,但是它要求太多的时间和努力,因此代替而使用伪随机数。伪随机数根据一确定性的算法从一合适长度的种子(信息成为随机数产生的种子)中产生。例如,比较长的随机数可以从比较短的种子获得。例如,种子的长度可以是128比特,160比特或更长。虽然随机数是由确定性的算法生成的,但是随机数所要求的属性例如统计均匀和非相关的属性在很大程度上得到满足。标准的伪随机数的具体例子包括ANSI X9.42和FIPS 186-2(见例如“http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/cryptrec20030425_spec01.html”)。
通过使用这些,从随机数生成种子的输入生成一序列长的伪随机数是可能的。
例如,通过输入一160比特的种子,生成具有的长度和原始数据S的比特长度相等的随机数R,D(1)和D(2)从上述的S和R中生成,并且用D(3)存储和管理160比特的种子而不是存储R。这样,即使在原始数据S的比特长度变长的时候,需要用D(3)被存储和管理的比特数量仍然能被降到160比特,从而总的要被存储的数据量就被压缩。在恢复原始数据S的情况下,长度和原始数据S的比特长度相等的随机数R从用D(3)存储的160比特的种子中又一次被生成,并且通过使用这个R和上述的D(1)和D(2)使原始数据S能够得到恢复。
上述的实施例指原始数据被分割为三部分的情况,并且原始数据可以从两个分割后数据中得到恢复,但是也可以将分割次数n设定为大于3,将原始数据从小于n的分割后的数据中恢复出来。
作为一个例子,在分割次数n=4情况下的分割处理,,从而参考图5和图6对原始数据被分割为四个分割后数据来进行描述。
首先,用户通过从终端5访问分割装置1来传输原始数据S,数据分割装置1的数据传输和接收单元17从终端5接收原始数据S并将它提供给分割装置1(步骤S301)。然后,用户从终端5(步骤S303)将分割次数n作为4指定给分割装置1。分割次数n可以是一由分割装置1预先设定的值。而且,例如,处理单元比特长度b被确定为8比特(步骤S305)。接下来,判断原始数据S的比特长度是否是8×3的整数倍,如果它不是一整数倍,对原始数据S的尾部填补0(步骤S307)。而且,一表示整数倍数的变量m被设为0(步骤S309)。
接下来,判断来自原始数据S的第8×3×m+1比特的8×3比特的数据是否存在(步骤311)。注意,该例子指原始数据S是比特长度等于8×3=24比特数据的情况。
作为步骤S311的判断结果,该例子的原始数据S是8×3=24比特的数据,从第25比特开始,对应于在m=1的情况下第8×3×m+1比特的数据是不存在的,从而当m=1时处理流程将从步骤S311到步骤S321,但是当前变量m是0从而第8×3×m+1比特是8×3×0+1=1,从在24比特的原始数据S中的第一比特中的8×3比特数据存在,处理流程到步骤S313。
在步骤S313中,当将变量j从1改变到3(=分割次数n-1)的时候,来自原始数据S的第8×(3×m+j-1)比特的8比特(=处理单元比特长度)数据被设为原始局部数据S(3×m+j),从而生成三组原始局部数据S(1),S(2)和S(1),所述的原始局部数据是以处理单元比特长度对原始数据S进行分割而得到的。
接下来,当将变量j从1改变到3的时候,由随机数生成单元15生成的长度等于8比特的随机数被设为随机数局部数据R(3×m+j),从而生成三组随机数局部数据R(1),R(2)和R(3),所述的随机局部数据是以处理单元比特长度对随机数R进行分割而得到的。
接下来,在步骤S317中,当将变量i从1改变到4(=分割次数n),和将对于每个i变量,变量j从1改变到3的时候,根据用来生成如步骤S317所示的分割后数据的定义公式,生成每一个分割后局部数据D(i,3×m+j),其中所述的每一个分割后局部数据组成多个分割后数据D(i)的中每一个。结果,生成跟随的分割后局部数据D。
分割后数据D
=四个分割后数据D(i)=D(1),D(2),D(3),D(4)
第一分割后数据D(1)
=三个分割后局部数据D(1,j)
=D(1,1),D(1,2),D(1,3)
第二分割后数据D(2)
=三个分割后局部数据D(2,j)
=D(2,1),D(2,2),D(2,3)
第三分割后数据D(3)
=三个分割后局部数据D(3,j)
=D(3,1),D(3,2),D(3,3)
第四分割后数据D(4)
=三个分割后局部数据D(4,j)
=D(4,1),D(4,2),D(4,3)
注意,如步骤S317所示的用来生成每个分割后局部数据D(i,j)的定义公式成为在图6中的表格中描述的特定的格式,此情况下,在本例中分割次数n=4。从图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,m是一任意整数情况下的一般的定义公式。
当对于变量m=0的情况下以这样的方式生成分割后局部数据D后,变量m递增1(步骤S319),处理回到步骤S311,这里,对应于变量m=1尝试从原始数据S的第25个比特开始的数据进行类似的分割处理,但是在此例中,原始数据S是24比特,从第25比特开始的数据不存在,因此处理流程从步骤S311到步骤S321,这里,上述生成的分割后数据D(1),D(2),D(3)和D(4)通过网络3从分割装置1的数据传输和接收单元17被分别传输到存放服务器7,从而被分别存放在存放服务器7中,然后分割处理就完成了。注意,有三个存放服务器7显示在图1中,但是根据分割次数来提高存放服务器的个数是更优选的,从而将不同的分割后数据能被存放进不同的存放服务器。
现在,使用上述图5中步骤S317所示的定义公式的分割后数据产生处理,或更特定地,对在分割次数n=4的情况下的分割后生成处理进行描述。
首先,从步骤S317所是的定义公式,如下是组成每一个的分割后数据D(i)=D(1)至D(4)的分割后局部数据D(i,3×m+j)。
D(1,3×m+1)=S(3×m+1)*Q(1,1,1)*Q(1,1,2)*Q(1,1,3)
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列的值的时候,Q(j,i,k)被给出:
Q(j,i,k)=R(3×m+k)当c(j,i,k)=1
Q(j,i,k)=0当c(j,i,k)=0
因此,当j=1,
U [ 3,3 ] × ( P [ 3,3 ] ) ^ ( j - 1 ) = U [ 3,3 ] × ( P [ 3,3 ] ) ^ 0 = U [ 3,3 ] = 1 1 1 1 1 0 1 0 0
当j=2
U [ 3,3 ] × ( P [ 3,3 ] ) ^ ( j - 1 ) = U [ 3,3 ] × ( P [ 3,3 ] ) ^ 1 = U [ 3,3 ] × ( P [ 3,3 ] ) = 1 1 1 1 1 0 1 0 0 × 0 1 0 0 0 1 1 0 0 = 1 1 1 0 1 1 0 1 0
当j=3
U [ 3,3 ] × ( P [ 3,3 ] ) ^ ( j - 1 ) = U [ 3,3 ] × ( P [ 3,3 ] ) ^ 2 = U [ 3,3 ] × ( P [ 3,3 ] ) × ( P [ 3,3 ] ) = 1 1 1 0 1 1 0 1 0 × 0 1 0 0 0 1 1 0 0 = 1 1 1 1 0 1 0 0 1
使用这些,通过下面的定义公式生成每一个分割后局部数据D(i,j)。
D(1,3×m+1)=S(3×m+1)*Q(1,1,1)*Q(1,1,2)*Q(1,1,3)
            =S(3×m+1)*R(3×m+1)*R(3×m+2)*S(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)*S(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)*S(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所示的定义公式用来将原始数据进行分割的一般形式的分割原则进行描述。
注意,原始数据,随机数,分割后数据,分割次数和处理单元比特长度就分别被表示为S,R,D,n和b,变量i(=1到n)和j(=1到n-1)将被用作表示多个数据或随机数中的一个的变量,n-1组原始局部数据的每一组,n-1组随机数局部数据的每一组,n组中分割后数据的每一组,和每一分割后数据的n-1组中分割后局部数中的每一组将被表示为S(j),R(j),D(j)和D(i,j)。
而且,当将上述变量j从1改变到n-1的时候,每个原始局部数据S(j)从原始数据S的第b×(j-1)+1比特生成b比特数据。然后,当U[n,n]是一n×n的上三角矩阵,P[n,n]是一n×n旋转矩阵的时候,c(j,i,k)被定义为一(n-1)×(n-1)矩阵U[n-1,n-1]×P[n-1,n-1]^(j-1)第i行第j列的一值。然后,当将变量i从1改变到n和将对应于每个变量,变量j从1改变到n-1的时候,当i<n时,每个分割后局部数据D(i,j)被设为:
D ( i , j ) = S ( j ) * ( Π k = 1 n - 1 Q ( j , i , k ) )
当i=n的时候,每个分割后局部数据D(i,j)被设为:
D(i,j)=R(j)
通过从原始数据S的顶部到尾部重复上述处理,n组分割后数据的分割次数可以从原始数据S中生成。
接下来,参考图6用来将原始数据S从分割后数据D(1),D(2),D(3)和D(4)中恢复出来的处理进行描述,分割后数据D(1),D(2),D(3)和D(4)是通过将原始数据S分割为4部分而生成的。如图6所示的分割为四部分的情况下,原始数据S可以从图6所示的使用如下变量j=3×m+1(m≥0是一任意整数)的一般公式中恢复出来。
首先,对从分割后数据D(1)和D(2)中得到原始数据S的情况进行描述。
D(1,j)*D(2,j)
=(S(j)*R(j)*R(j+1)*R(j+2))*((S(j)*R(j)*R(j+1))
=(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)
因此,随机数R(j+2)可以通过计算D(1,j)*D(2,j)而得到,类似地,随机数R(j)可以通过计算D(1,j+1)*D(2,j+1)而得到,随机数R(j+1)可以通过计算D(1,j+2)*D(2,j+2)而得到。那么,通过使用这些得到的随机数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)
从而S(j)可以通过计算D(1,j)*R(j)*R(j+1)*R(j+2)或者D(2,j)*R(j)*R(j+1)来得到。
类似地,S(j+1)可以通过计算D(1,j+1)*R(j)*R(j+1)*R(j+2)或者D(2,j+1)*R(j+1)*R(j+2)来得到,S(j+2)可以通过计算D(1,j+2)*R(j)*R(j+1)*R(j+2)或者D(2,j+2)*R(j)*R(j+2)来得到。
而且,类似于上面的描述,S可以从D(2)和D(3)中获得。
更特定地,首先得到R(j),R(j+1)和R(j+2),然后通过D(2,j),D(2,j+1)和D(2,j+2)或者D(3,j),D(3,j+1)和D(3,j+2)和R(j),R(j+1)和R(j+2)的XOR计算而得到S(j),S(j+1)和S(j+2)。
类似地,S可以从D(1)和D(4),或D(2)和D(4),或D(3)和D(4)来得到。
D(4)被R自身定义,从而不需要任何计算就可以从D(4)得到R(j),R(j+1)和R(j+2)。例如,可以通过D(1,j),D(1,j+1),D(1,j+2)和R(j),R(j+1),R(j+2)的XOR计算得到S(j),S(j+1)和S(j+2)。
如上所述,S可以从两个任意的分割后数据D(1)和D(2),或D(2)和D(3),或D(4)和分割数据D(1),D(2)或D(3)中的任意一个中恢复出来,其中计算的次数差是1。即,如果四个分割后数据中得到三个,上述情况中至少一种可以实现,从而原始数据可以从这四个分割后数据中的任意三个中恢复出来。
图7显示的表格是一个表示分割后数据和在分割为五部分的情况下的定义公式。在分割为五部分的情况下,类似于上述分割为四部分的恢复处理,可以通过使用分割后数据和j=4×m+1(m≥0是任意整数)的定义公式来实现。因此,S可以从两个任意分割后数据D(1)和D(2),或者D(2)和D(3),或者D(3)和D(4),或者D(5)和分割后数据D(1),D(2),D(3)或D(4)中的任意一个中恢复出来,其中计算的次数差是1。即,如果五个分割后数据中得到三个,上述情况中至少一种可以实现,从而原始数据可以从这五个分割后数据中的任意三个中恢复出来。
同样,即使分割次数n被设为大于5,通过类似地形成分割后数据,如果n是一奇数,原始数据可以从(n+1)/2组分割后数据中恢复出来,或者如果n是一偶数,原始数据可以从(n/2)+1组分割后数据中恢复出来。组的数量由一加上最大数量而获得,其中所述的最大数量是当有n个分割后数据时,所能选择的最大数量,邻近的分割后数据将不被选择,第n个分割后数据将不被选择。换言之,如果获得最大数加上一组分割后数据,两个分割后数据为此计算次数的差别是1或者第n个分割后数据和任何其他被确定包含在其中的分割后数据,从而这个给出了对于恢复必需的分割数据的数量。
接下来,参考图8,对分割次数是n和处理单元比特长度是b的一般分割处理的情况下进行描述。
首先,用户通过从终端5访问分割装置1将传送原始数据S,分割装置1的数据传输和接收单元17从终端5接收原始数据S,并将它提供给分割装置1(步骤S401)。然后,用户从终端5指定分割次数n(任意整数n≥3)到分割装置1(步骤S403)。这个分割次数n可以是由分割装置1预先设定的一个值。同时,确定处理单元比特长度b(步骤S405),这里n是一个任意的大于零的整数。接下来,判断原始数据S的比特长度是否是b×(n-1)的整数倍,如果它不是一整数倍,就对原始数据S的尾部填补0(步骤S407)。同样,表示整数倍的变量m被设为0(步骤S409)。
接下来,判断从原始数据S的第b×(n-1)×m+1的b×(n-1)比特数据是否存在(步骤S411)。作为此判断的结果,如果该数据不存在,处理流程到步骤S421,但是当前变量m在步骤S409被设为0,数据存在从而处理流程到步骤S413。
在步骤S413中,当将变量j从1改变到j-1的时候,从原始数据S的第b×((n-1)×m+j-1)+1个比特的b比特数据被设为原始局部数据S((n-1)×m+j),从而生成(n-1)组原始局部数据S(1),S(2),......,S(n-1),所述的原始局部数据是通过以处理单元比特长度b对原始数据S进行分割而得到的。
接下来,当将变量j从1改变到n-1的时候,长度等于处理单元比特长度b的随机数,该随机数由随机数生成单元15生成,且被设为随机数局部数据R((n-1)×m+j),从而生成(n-1)组随机数局部数据R(1),R(2),......,R(n-1),所述的随机数局部数据是通过以处理单元比特长度b对随机数R进行分割而得到的(步骤S415)。
接下来,在步骤S417中,当变量i从1变化到n和对于每个变量,变量j从1变化到n-1的时候,根据步骤S417所示的用来生成分割后数据的定义公式,生成每个分割后局部数据D(i,(n-1)×m+j),其中该每个分割后局部数据组成多个分割后数据D(i)中的每一个。结果,生成随后的分割后数据D。
分割后数据D
=n组分割后数据D(i)=D(1),d(2),......,D(n)
第一分割后数据D(1)
=n-1组分割后局部数据D(1,j)
=D(1,1),D(1,2),......,D(1,n-1)
第二分割后数据D(2)
=n-1组分割后局部数据D(2,j)
=D(2,1),D(2,2),......,D(2,n-1)
......     ......   ......
第n分割后数据D(n)
=n-1组分割后局部数据D(3,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的判断结果被处理的时候,处理流程从步骤S411到步骤S421,这里,上述生成的分割后数据D通过网络3,从分割装置1的数据传输和接收单元17被分别传输到存放服务器7,从而它们被从放在各存放服务器7中,然后分割处理完成。注意,图1中显示有三个存放服务器,但是根据分割次数来增加存放服务器是更好的,以便不同的分割后数据能被存放在不同的存放服务器中。
接下来,参考图9,这里在分割次数n是2的情况下的分割处理。即,上述实施例是指分割次数大于或者等于3(n≥3)的情况,如在图8的步骤S403中描述的一样,从而通过用图9对分割次数为2的情况进行描述。
首先,用户通过从终端5访问分割装置1来提供原始数据S(步骤S501)。然后,通过终端5将分割次数n是2指定给分割装置1(步骤503)。
这个分割次数n可以是被分割装置1预先设定的值。处理单元比特长度b被决定为8比特(步骤S505)。接下来,判断原始数据S的比特长度是否是8的整数,如果它不是整数倍,就对原始数据S的尾部填补上0(步骤S507)。同样,表示整数倍数的变量m被设为0(步骤S509)。
接下来,判断从原始数据S的第8×m+1个比特的8比特数据是否存在(步骤S511)。作为该判端的结果,如果该数据不存在,处理流程将到步骤S521,但是当前变量m被设为0,数据存在,从而处理流程到步骤S513。
在步骤S513中,从原始数据S的第8×m+1个比特的8比特数据被设为原始局部数据S(m+1),从而生成原始局部数据S(1)。
接下来,由随机数生成单元15生成的长度等于8比特的随机数被设为随机数局部数据R(m+1),从而生成随机数局部数据R(1)(步骤S515)。
接下来,在步骤S517中,根据如步骤S517所示的用来生成分割后数据的定义公式,生成每个分割后局部数据D(i,m+1)和D(2,m+1),该每个分割后局部数据组成每个分割后数据D。
当变量m=0的情况,在以此方式生成分割后数据D以后,变量m递增1(步骤519),并且处理回到步骤S511,这里,对应于变量m=1,对从原始数据S的第b×(n-1)个比特开始的数据执行类似的分割处理。最后,当原始数据所有的数据作为在步骤S511的判断结果被处理的时候,处理从步骤S511处理到步骤S521,这里,如上述生成的分割后数据D(1)和D(2)通过网络3,从分割装置1的数据传输和接收单元17被分别传输到存放服务器7,从而它们被从放在各存放服务器7中,然后分割处理完成。注意,图1中显示有三个存放服务器,在本例中,将分割后数据足够存放在其中的两个服务器中。
现在,使用上述图9的步骤S517所示的定义公式的分割后数据生成处理,或更特定地,对在分割次数n=2的情况下的分割后数据生成处理进行描述。
首先,在m=0的情况下,从如步骤S517所示的定义公式中,如下是分割后局部数据D(1,1)和D(2,1)。
D(1,1)=S(1)*Q(1,1,1)
D(2,1)=R(1)
接下来,如下给出Q(j,i,k)。这里,在n=2的情况下,所有的j,i和k仅仅是值1。当c(j,i,k)是1×1矩阵即U[1,1]×(P[1,1])^(j-1)的第i行和第k列的值的时候,给出Q(j,i,k):
Q(j,i,k)=R(k) 当c(j,i,k)=1
Q(j,i,k)=0 当c(j,i,k)=1
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)
注意,在分割次数n=2的情况下,原始数据S不能通过仅仅获取两个分割后数据其中之一来得到恢复,从而原始数据S必须通过获取两个分割后数据来得到恢复。
现在,在上述的修改中,可以是这样的情况,通过在组成一个和相同的分割后数据的分割后局部数据中执行计算,可以消除随机数成份。即,在分割为三的情况下,例如,如图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),......
对于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=2×m+1,且m≥0是一任意整数。
从上述定义可以看到,D(1,1)和D(1,2)是通过关于原始数据和随机数的计算而生成的,不能从D(1,1)和D(1,2)中单独的一个确定出原始数据的内容,但是通过执行D(1,1)*D(1,2)的计算,获得S(1)*S(2)是可能的。这不同于原始数据本身,但它不包含随机数成份。
当随机数成份被消除的时候,下面的问题出现了。即,关于单独的原始局部数据,例如,如果S(2)的一部分变成已知,那么恢复S(1)的一部分就成为可能,从而可以认为这是不安全的。例如,当原始数据是根据一标准数据格式的数据,S(2)是一包含具有数据格式的头部信息的部分或者填充部分(例如被0填充的一部分数据区域),等等,这部分可能包含关键字或者对于此数据格式特定的固定的字符串,因此推测其的内容成为可能。而且,S(1)的一部分可以从已知的S(2)的部分和S(1)*S(2)的值中恢复出来。
在分割为四的情况下,从图6中可以看到,D(2,j)*D(2,j+1)*D(2,j+2)=S(j)*S(j+1)*S(j+2),这里j=3×m+1,m≥0是一任意整数。
在分割为五的情况下,从图7中可以看到,D(i,j)*D(i,j+1)*D(i,j+2)*D(i,j+3)=S(j)*S(j+1)*S(j+2)*S(j+3),这里i=1或者3,j=4×m+1,m≥0是一任意整数。
即使在分割大于五的情况下,通过简单计算可以将随机数成份消除。注意,这个问题在分割数为二的情况下不发生。
如下是一用来解决上述分割为三的情况下适用的问题的可能方法。
图10显示了在此情况下的分割后局部数据,在其中,如图4所示的D(1,j+1)和D(2,j+1)被相互交换,这里j=2×m+1,m≥0是一任意整数。
在此情况下,即使当分割后的局部数据中的运算没有被执行时,随机数成份也不会被消除,所述的分割后局部数据组成一个和相同的分割后数据。如下,可以从图10中得到:
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(1)和D(2)来恢复原始数据的情况下,应该很清楚,原始数据可以被恢复,是因为通过简单交换由图4中组成D(1)和D(2)的分割后局部数据,可以得到图10中的D(1)和D(2)。
在通过获取D(1)和D(3),或D(2)和D(3)来恢复原始数据的情况下,因为D(3)是仅仅包含随机数的分割后数据,其可以通过消除随机数部分来恢复原始数据,所述的消除随机数部分是通过对D(1)和D(2)的每一分割后局部数据必要数量的随机数进行异或运算而得到的。
如下是另一用来解决上述在分割次数大于或等于三的情况下适用的问题的方法。
图11,12和13显示了在此情况下的分割后局部数据,其中,R(j)被从用来生成如图4,6和7所示的D(i,j)的定义公式中移走,这里n-1>i>0,j=(n-1)×m+1,m≥0是一任意整数,n是分割次数。这个也适用于分割次数大于五的情况。
在此情况中,下面即使当分割后局部数据中的运算执行时,随机数成份也不会被消除,所述的分割后局部数据组成一个和相同的分割后数据。
在图4,6和7中,当分割后局部数据中的运算执行时,所述的分割后局部数据组成一个和相同的分割后数据,在分割次数为三的情况下,随机数成份被消除如D(1,j)*D(1,j+1)=S(j)*S(j+1)(j=2×m+1,m≥0是一任意整数),在分割次数为四的情况下,D(2,j)*D(2,j+1)*D(2,j+2)=S(j)*S(j+1)*S(j+2)(j=3×m+1,m≥0是一任意整数),在分割数为五的情况下,D(i,j)*D(i,j+1)*D(i,j+2)*D(i,j+3)=S(j)*S(j+1)*S(j+2)*S(j+3)(i=1或3,j=4×m+1,m≥0是一任意整数)。
然而,如上所述,在此例中R(j)被从用来生成D(i,j)的每个定义公式中移除(n-1>i>0,j=(n-1)×m+1,m≥0是一任意整数,n是分割次数),以便一个R(j)将被确实地保持。
而且,在这种情况下,从n组分割后数据中规定数量的分割后数据中被恢复出来的原始数据的属性可以仍然完整。
首先,分割为三的情况如下,在通过获取D(1)和D(2)来恢复原始数据的情况下,可以通过计算如上所述的D(1,j+1)*D(2,j+1)来得到R(j)(j=2×m+1,m≥0是一任意整数),S(j)可以通过下面得到:
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)来恢复原始数据的情况下,因为D(3)是仅仅包含随机数的分割后数据,所以通过以对于D(1)和D(2)的每个分割后局部数据必要多的随机数执行异或运算来消除随机数部分是使得恢复原始数据成为可能。
接下来,如下是分割为四的情况。在通过获取D(1)和D(2)来恢复原始数据的情况下,R(j+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(2)和D(3)来恢复原始数据的情况下,R(j+2)可以通过计算上述的D(2,j+1)*R(3,j+1)来得到,R(j)可以通过计算上述的D(2,j+2)*R(3,j+2)来得到,S(j)可以通过如下获得:
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)来获得。
在通过获取D(4)和D(1),D(2)与D(3)中的任何一个来恢复原始数据的情况下,因为D(4)是仅仅包含随机数的分割后数据,所以通过以对于D(1),D(2)或D(3)的每个分割后局部数据必要多的随机数执行异或运算来消除随机数部分是使得恢复原始数据成为可能。
因此,S可以从两个任意的分割后数据D(1)和D(2),或D(2)和D(3),或D(4)和分割后数据D(4)和D(1),D(2)或D(3)中的任何一个中恢复出来,对于此,计算次数的差别是1。即,如果四个分割后数据中获取三个,上述情况中的至少一个可以被实现,从而原始数据可以从此四个分割后数据中的任意三个中恢复出来。
接下来,在所有通过获取D(1)和D(2),或D(2)和D(3)来恢复原始数据,通过获取D(3)和D(4)来恢复原始数据,和通过获取D(5)和D(1),D(2),D(3)和D(4)中的任何一个来恢复数据的情况下,分割为五的情况基本上和分割为四的情况相同。
因此,S可以从两个任意的分割后数据D(1)和D(2),或D(2)和D(3),或D(3)和D(4),或D(5)和D(1),D(2),D(3)和D(4)中的任何一个中恢复出来,对于此,计算次数的差别是1。即,如果五个分割后数据中的三个被获取,上述情况中的至少一个可以被实现,从而原始数据可以从五个分割后数据中的任意三个中恢复出来。
同样,即使当分割次数n被设为大于5,通过类似地形成分割后数据,如果n是一奇数,原始数据可以从(n+1)/2组分割后数据中恢复出来,或者如果n是一偶数,原始数据可以从(n/2)+1组分割后数据中恢复出来。一加上最大数得到的组的数量,所述的最大数是指当有n个分割后数据时的所能选择的最大数量,邻近的分割后数据将不被选择,第n个分割后数据将不被选择。换言之,如果获得最大数加上一组的分割后数据,两个分割后数据为此计算次数的差别是1或者第n个分割后数据和任何其他确实地被包含在其中的分割后数据,从而这个给出了对于恢复必需的分割数据的数量。
注意,上述实施例的数据分割方法的处理过程可以被记录在一纪录媒体上,例如CD或FD,该记录媒体可以被结合到计算机***中。记录在纪录媒体上的程序可以通过一通信信道下载到计算机***中,或是从记录媒体上安装到计算机***上,然后计算机***可以执行该程序,从而计算机***具有用来实现数据分割方法的数据分割装置的功能。通过使用这样的记录媒体,此程序的发行可以得到提升。
如上所述,根据上述的实施例,指定的定义公式包括原始局部数据和随机数局部数据的异或运算,从而用来执行传统上要求的多项式和余数运算的高速和高性能的计算处理能力就不是必需的,即使对于大容量的数据,通过重复简单的计算处理,仍然可以简单快速地生成分割后数据。
原始数据通过将定义公式应用在分割后数据上,该分割后数据的数量上小于在生成的多个分割后数据中的分割次数,从而原始数据可以由指定数量x小于分割次数的分割后数据中恢复出来,甚至在和分割次数减去x数量一样的分割后数据被丢失或破坏的时候,原始数据仍然可以被恢复出来。
此外,原始数据通过网络从终端接收过来,并且通过应用原始局部数据,随机数局部数据和对应于此原始数据的分割后局部数据生成处理而生成的多个分割后局部数据通过网络被传输到存放服务器中,并且被存放服务器保存和管理,以便很多用户可以通过网络从终端访问和对数据分割发出请求,从而数据分割装置可以被很多用户共享和被做得很经济。
根据本发明的描述,原始数据被处理单元比特长度分割成多个原始局部数据,生成多个随机数局部数据,根据指定的由原始局部数据和随机数局部数据的异或运算形成的定义公式,生成分割后局部数据,该分割后局部数据组成每个分割后数据,从而通过使用由异或运算形成的定义公式,该异或运算是适合计算机处理的比特运算而不是传统上使用的多项式和余数运算,它不需要高速和高性能的计算处理能力,即使对于大容量的数据,通过重复简单的计算处理,仍然可以简单快速地生成分割后数据,并且要求来存放分割后数据的存储容量变得小于和分割次数成线性比例的容量。
值得指出的是,上述实施例是指分割后数据包含被一随机数单独地形成的一个分割后数据和一个或多个由分割后局部数据形成的分割后数据的情况,该分割后局部数据是通过一个原始局部数据和一个或多个随机数局部数据的异或运算生成的。
然而,仍然可以修改这些实施例,从而包含一个或多个由一随机数单独形成的分割后数据,和一个或多个由分割后局部数据形成的分割后数据,该分割后局部数据由一个或多个原始局部数据和一个或多个随机数局部数据的异或运算生成。
也可以修改这些实施例,从而分割后数据包含两个或多个由分割后局部数据形成的分割后数据,该分割后局部数据是由一个或多个原始局部数据和一个或多个随机数局部数据的异或运算生成的。
也值得指出的是,除了上述已提及的那些,上述实施例的很多修改和变化可以在不离开本发明的新颖和有利的特征的情况下得到实施,从而,所有这样的修改和变化都被包含在附上的权利要求的范围中。

Claims (12)

1.一数据分割方法,其用来通过使用一指定的处理单元比特长度,将原始数据分割成和所想要分割次数一样多的分割后数据,包括步骤:
通过用指定的处理单元比特长度将原始数据分割而生成多个原始局部数据;
对应于多个原始局部数据,从具有一长度小于或等于原始数据比特长度的随机数,生成多个随机数局部数据,每个随机数局部数据具有和指定的处理单元比特长度相等的长度;
通过使用原始局部数据和随机数局部数据的异或运算,生成多个分割后局部数据,该分割后局部数据组成每个分割后数据,每个分割后局部数据具有和指定的处理单元比特长度相等的长度;和
从多个分割后局部数据中生成所想要的分割次数的分割后数据,从而使原始数据不能从任何一个分割后数据中单独地被确定,但是原始数据可以从生成的分割后数据中指定数量的分割后数据中恢复出来。
2.根据权利要求1所述的数据分割方法,其中,原始局部数据和随机数局部数据被生成的数量和所想要的分割次数减去1一样多。
3.根据权利要求1所述的数据分割方法,其中,分割后数据包含由一随机数单独形成的一个或多个分割后数据,和由分割后局部数据形成的一个或多个分割后数据,该分割后局部数据是通过一个或多个原始局部数据和一个或多个随机数局部数据的异或运算生成的。
4.根据权利要求3所述的数据分割方法,其中,由一随机数单独形成的一个分割后数据是通过重复一有任意确定的长度的随机数而形成的。
5.根据权利要求3所述的数据分割方法,其中,由一随机数单独形成的一个分割后数据是由一伪随机数形成的,该伪随机数是根据伪随机数生成算法从一指定长度的信息中生成的。
6.根据权利要求1所述的数据分割方法,其中,分割后数据包含两个或多个由分割后局部数据形成的分割后数据,该分割后局部数据是通过一个或多个原始局部数据和一个或多个随机数局部数据的异或运算生成的。
7.根据权利要求1所述的数据分割方法,其中,当原始数据、随机数、分割后数据、所想要的分割次数、处理单元比特长度被分别表示为S、R、D、n、b的时候,变量i(=1至n)和j(=1至n-1)被用作变量,(n-1)组原始局部数据中的每一组、(n-1)组随机数局部数据中的每一组、n组分割后数据D中的每一组、每一分割后数据的(n-1)组分割后局部数据的每一组被分别表示为S(j)、R(j)、D(j)、D(i,j),当将一变量j从1改变到n-1的时候,从原始数据S的第b×(j-1)+1个比特,每个原始局部数据S(j)被生成为b比特数据,U[n,n]是一n×n的矩阵,其中U[i,j]表示第i行和第j列的值,由下面给出:
u(i,j)=1    当i+j≤n+1
u(i,j)=0    当i+j>n+1
P[n,n]是一n×n矩阵,其中P[i,j]表示第i行和第j列的值,由下面给出:
p(i,j)=1    当j=i+1
p(i,j)=1    当i=1,j=n
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)被生成:
D ( i , j ) = S ( j ) * ( Π k = 1 n - 1 Q ( j , i , k ) )                        当i<n
D(i,j)=R(j)            当i=n
当将变量i从1改变到n和将对应于每个变量i,将变量j从1改变到n-1的时候,
Π k = 1 n - 1 Q ( j , i , k ) = Q ( j , i , 1 ) * Q ( j , i , 2 ) * · · · · · · * Q ( j , i , n - 1 )
这里*表示异或运算。
8.根据权利要求1所述的数据分割方法,其中,每个分割后数据被生成,以便一随机数成份不能通过在分割后局部数据中执行运算被消除,其中所述的分割后局部数据组成每个分割后数据。
9.根据权利要求8所述的数据分割方法,其中,首先通过使用由原始局部数据和随机数局部数据的异或运算形成的一指定定义公式,来生成多个分割后局部数据,其中该分割后局部数据组成每个分割后数据,然后将一个分割后局部数据和另一分割后局部数据进行交换,从而生成每个分割后数据,其中该另一分割后局部数据在组成每个分割后数据的分割后局部数据中。
10.根据权利要求8所述的数据分割方法,其中,首先通过使用由原始局部数据和随机数局部数据的异或运算形成的指定的定义公式,来生成多个分割后局部数据D(i,j),其中该分割后局部数据D(i,j),组成每个分割后数据D(i),然后从D(i,j)中将第j个随机数局部数据R(j)移除,从而生成分割后数据,其中D(i,j)是i在n-1>i>0的范围内的一值,这里n是所想要的分割次数,j=(n-1)×m+1,m≥0是一任意整数。
11.一数据分割装置,其用来通过使用一指定的处理单元比特长度来将原始数据分割成和所想要的分割次数一样多的分割后数据,包括:
一原始局部数据产生单元,其被配置通过用指定的处理单元比特长度将原始数据分割而生成多个原始局部数据;
一随机数产生单元,其被配置对应于多个原始局部数据,从具有一长度小于或等于原始数据的比特长度的随机数,生成多个随机数局部数据,该多个随机数局部数据的每一个具有和指定的处理单元比特长度相同的长度;
一分割后局部数据产生单元,其被配置通过使用原始局部数据和随机数局部数据的异或运算,生成多个分割后局部数据,该分割后局部数据组成每个分割后数据,每个分割后局部数据具有和指定的处理单元比特长度相同的长度;和
一分割后数据产生单元,其被配置从多个分割后局部数据中以所想要的分割次数生成分割后数据,以便原始数据不能从任何一个分割后数据中单独地被确认出来,但是原始数据可以从在生成的分割后数据中的指定数量的分割后数据中恢复出来。
12.一计算机程序产品,其用于使计算机具有数据分割装置的功能,该数据分割装置是用来通过使用一指定的处理单元比特长度将原始数据分割成和所想要的分割次数一样多的分割后数据,该计算机程序产品包括:
第一计算机程序代码,其用来通过用指定的处理单元比特长度将原始数据分割,使计算机生成多个原始局部数据;
第二计算机程序代码,其对应于多个原始局部数据,从具有长度小于或等于原始数据的比特长度的随机数中,生成多个随机数局部数据,其中每一个随机数局部数据的长度和指定的处理单元比特长度相同;
第三计算机程序代码,其通过使用原始局部数据和随机数局部数据的异或运算,来使计算机生成多个分割后局部数据,其中所述的分割后局部数据组成每个分割后数据,每个分割后局部数据具有和指定的处理单元比特长度相同的长度;和
第四计算机程序代码,其用来使计算机从多个分割后局部数据中以所想要的分割次数生成分割后数据,以便原始数据不能从任何一个单独地分割后数据中被确定出来,但是原始数据可以从在生成的分割后数据中的指定数量的分割后数据中恢复出来。
CNB2003801065291A 2002-12-19 2003-12-19 数据分割方法和使用异或运算的装置 Expired - Lifetime CN100563152C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002367608 2002-12-19
JP367608/2002 2002-12-19

Publications (2)

Publication Number Publication Date
CN1726669A true CN1726669A (zh) 2006-01-25
CN100563152C CN100563152C (zh) 2009-11-25

Family

ID=32677086

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801065291A Expired - Lifetime CN100563152C (zh) 2002-12-19 2003-12-19 数据分割方法和使用异或运算的装置

Country Status (7)

Country Link
US (1) US7616766B2 (zh)
EP (1) EP1576763B1 (zh)
JP (1) JP5194094B2 (zh)
CN (1) CN100563152C (zh)
AU (1) AU2003288758A1 (zh)
HK (1) HK1087859A1 (zh)
WO (1) WO2004057461A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882992A (zh) * 2010-06-21 2010-11-10 中国农业大学 门限秘密信息分配、还原方法及装置
CN105406966A (zh) * 2015-12-30 2016-03-16 中国农业大学 一种门限秘密信息分配、还原、完整性验证方法及装置
CN107612897A (zh) * 2017-09-07 2018-01-19 唐冬香 一种数据传输方法
CN113169859A (zh) * 2019-04-05 2021-07-23 谷歌有限责任公司 用于保护隐私的方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676695B2 (ja) * 2002-12-19 2011-04-27 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ分割方法、データ分割装置およびコンピュータプログラム
WO2005076518A1 (en) 2004-02-10 2005-08-18 Ntt Communications Corporation Secret information management scheme based on secret sharing scheme
JP4602675B2 (ja) * 2004-02-10 2010-12-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム
US20050216754A1 (en) * 2004-03-24 2005-09-29 Natan Ehud Method of encrypting digital items delivery through a communication network
WO2006047694A1 (en) 2004-10-25 2006-05-04 Orsini Rick L Secure data parser method and system
JP2008022373A (ja) * 2006-07-13 2008-01-31 Canon Inc 改竄検知情報生成装置、撮像装置、改竄検知情報生成方法、プログラムおよび記憶媒体
EP2053533A4 (en) * 2006-11-09 2011-03-23 Panasonic Corp FAKE DETECTION SYSTEM, FAKE DETECTION METHOD, FAKE IDENTIFICATION PROGRAM, RECORDING MEDIUM, INTEGRATED CIRCUIT, DEVICE FOR GENERATING AUTHENTICATION INFORMATION AND FAKE DETECTION DEVICE
JP4917453B2 (ja) * 2007-02-22 2012-04-18 Kddi株式会社 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム
JP4302150B2 (ja) * 2007-03-23 2009-07-22 株式会社東芝 データ処理装置及びプログラム
CA2760251A1 (en) 2009-05-19 2010-11-25 Security First Corp. Systems and methods for securing data in the cloud
CN103229165A (zh) 2010-08-12 2013-07-31 安全第一公司 用于数据的安全远程存储的***和方法
AU2011291640B2 (en) 2010-08-18 2015-11-12 Security First Corp. Systems and methods for securing virtual machine computing environments
US8538029B2 (en) * 2011-03-24 2013-09-17 Hewlett-Packard Development Company, L.P. Encryption key fragment distribution
US9430655B1 (en) * 2012-12-28 2016-08-30 Emc Corporation Split tokenization
CA2900504A1 (en) 2013-02-13 2014-08-21 Security First Corp. Systems and methods for a cryptographic file system layer
KR101472320B1 (ko) * 2013-05-30 2014-12-12 고려대학교 산학협력단 클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법
EP2887575B1 (en) * 2013-12-18 2020-09-02 Laurenz Vorderwülbecke Distributed data file storage method and apparatus
JP6259295B2 (ja) * 2014-01-23 2018-01-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ秘匿方法、データ秘匿装置、およびデータ秘匿プログラム
WO2016081942A2 (en) 2014-11-21 2016-05-26 Security First Corp. Gateway for cloud-based secure storage
US9813232B2 (en) * 2015-03-17 2017-11-07 Cypress Semiconductor Corporation Device and method for resisting non-invasive attacks
US10348490B2 (en) * 2015-12-10 2019-07-09 Ns Solutions Corporation Information processing device, authorization system, information processing method, and recording medium
FR3050554B1 (fr) * 2016-04-21 2018-05-18 Institut De Recherche Technologique Systemx Procede d'encodage d'un ensemble de bits
JP6322314B2 (ja) * 2017-03-17 2018-05-09 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ秘匿方法、データ秘匿装置、およびデータ秘匿プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US6088449A (en) * 1996-11-05 2000-07-11 Tri-Strata Security, Inc. Tri-signature security architecture systems and methods
US6526145B2 (en) * 1997-01-29 2003-02-25 David M. Marzahn Data encryptor/decryptor using variable in-place I/O
US6047069A (en) * 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
FI107669B (fi) * 1998-02-13 2001-09-14 Nokia Mobile Phones Ltd Menetelmä ja järjestely tiedonsiirron salaamiseksi
JP2000172548A (ja) * 1998-12-11 2000-06-23 Nippon Telegr & Teleph Corp <Ntt> 電子データ管理方法,装置およびそのプログラム記録媒体
JP3560860B2 (ja) * 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
AU770753B2 (en) * 1999-12-20 2004-03-04 Dainippon Printing Co. Ltd. Distributed data archive device and system
JP2001211153A (ja) * 2000-01-25 2001-08-03 Murata Mach Ltd 秘密鍵生成方法
JP2001290707A (ja) * 2000-04-05 2001-10-19 Kazumi Mochizuki データ処理方法、データ処理プログラムを格納したコンピュータ読取可能な記憶媒体、およびデータ処理装置
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2002352146A (ja) * 2001-05-22 2002-12-06 Nippon Telegr & Teleph Corp <Ntt> コンテンツ部分課金方法及びシステム及びコンテンツ部分課金プログラム及びコンテンツ部分課金プログラムを格納した記憶媒体
US7787619B2 (en) * 2002-01-29 2010-08-31 Avaya Inc. Method and apparatus for secure key management using multi-threshold secret sharing

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882992A (zh) * 2010-06-21 2010-11-10 中国农业大学 门限秘密信息分配、还原方法及装置
CN101882992B (zh) * 2010-06-21 2012-12-12 中国农业大学 门限秘密信息分配、还原方法及装置
CN105406966A (zh) * 2015-12-30 2016-03-16 中国农业大学 一种门限秘密信息分配、还原、完整性验证方法及装置
CN105406966B (zh) * 2015-12-30 2018-11-09 中国农业大学 一种门限秘密信息分配、还原、完整性验证方法及装置
CN107612897A (zh) * 2017-09-07 2018-01-19 唐冬香 一种数据传输方法
CN113169859A (zh) * 2019-04-05 2021-07-23 谷歌有限责任公司 用于保护隐私的方法
US11962687B2 (en) 2019-04-05 2024-04-16 Google Llc Methods for protecting privacy

Also Published As

Publication number Publication date
US20060072744A1 (en) 2006-04-06
EP1576763A2 (en) 2005-09-21
JP5194094B2 (ja) 2013-05-08
AU2003288758A1 (en) 2004-07-14
CN100563152C (zh) 2009-11-25
WO2004057461A2 (en) 2004-07-08
AU2003288758A8 (en) 2004-07-14
WO2004057461A3 (en) 2005-02-24
HK1087859A1 (en) 2006-10-20
US7616766B2 (en) 2009-11-10
EP1576763B1 (en) 2015-09-30
JP2011041326A (ja) 2011-02-24

Similar Documents

Publication Publication Date Title
CN1726669A (zh) 数据分割方法和使用异或运算的装置
CN1157020C (zh) 提高了安全性的密码处理装置
CN1160940C (zh) 代码生成方法、检测方法及其设备、水印嵌入器和检测器
CN101040306A (zh) 伪随机数生成装置
CN1531241A (zh) 密码重构方法、分散密码重构装置及密码重构***
CN1922643A (zh) 加密***、加密装置、解密装置、程序和集成电路
CN1302408C (zh) 认证***、认证装置、终端装置以及认证方法
CN1087569C (zh) 扩频通信***
CN1977250A (zh) 进行加密或解密的计算机***和计算机程序
CN1148643C (zh) 模幂运算装置
CN1647139A (zh) 数据变换装置和数据变换方法
CN1142718A (zh) 通信设备和通信***
CN1753356A (zh) 信息处理方法、解密方法、信息处理装置和计算机程序
CN1959770A (zh) 加密方法、密文解码方法、加密器、密文解码器和通信***
CN1898621A (zh) 内容输出设备、内容分发服务器及密钥发布中心
CN1303065A (zh) 数据库管理装置和加密/解密***
CN1822538A (zh) 加密方法,加密装置,解密方法和解密装置
CN1665185A (zh) 内容提供***、用户***、跟踪***、装置及方法
CN1620756A (zh) 滤波装置、接收装置、发送装置、扩频调制装置、伪随机数序列的输出装置、滤波方法、接收方法、发送方法、扩频调制方法、伪随机数序列的输出方法及程序
CN1126053C (zh) 文件检索方法、文件检索发送方法及装置
CN1960190A (zh) Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN1453687A (zh) 通信装置及***、***模块控制方法及记录媒体
CN1918844A (zh) 基于保密共享方案的保密信息管理方案
CN1478234A (zh) 用于有效地执行线性变换的方法和装置
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1087859

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1087859

Country of ref document: HK

CX01 Expiry of patent term

Granted publication date: 20091125

CX01 Expiry of patent term