CN101276524A - 秘密分存装置和方法 - Google Patents
秘密分存装置和方法 Download PDFInfo
- Publication number
- CN101276524A CN101276524A CNA2008101092433A CN200810109243A CN101276524A CN 101276524 A CN101276524 A CN 101276524A CN A2008101092433 A CNA2008101092433 A CN A2008101092433A CN 200810109243 A CN200810109243 A CN 200810109243A CN 101276524 A CN101276524 A CN 101276524A
- Authority
- CN
- China
- Prior art keywords
- data
- secret
- information
- matrix
- branch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret 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)
Abstract
本发明提供了秘密分存装置和方法。根据本发明的秘密分存装置基于门限至少为4的(k,n)门限方案。该秘密分存装置生成GF(2)的生成矩阵(G),在该矩阵中n个列向量中的任意k个都是满秩的,将秘密信息划分为n-1个以生成划分秘密数据(K(1),...,K(n-1)),生成随机数据(U(0,1),...,U(k-2,n-1)),计算划分秘密数据、随机数据和生成矩阵(G)的矩阵乘积,将计算结果的第j×(n-1)+i列分配给分存部分数据(D(j,i)),以计算分存部分数据(D(j,i),生成头信息(H(j)),并将由头信息(H(j))和分存部分数据(D(j,i))构成的n个分存信息(D(0),...,D(n-1))分发给n个存储装置。
Description
背景技术
本发明涉及一种使用(k,n)门限方案的秘密分存(secret sharing)装置和方法,例如涉及一种能够实现在不使用多项式插值法的情况下被高速执行的(k,n)门限方案的秘密分存装置和方法。
通常,对于预防秘密信息丢失的可能情况,预产生一份如加密密钥(enciphering key)的秘密信息是有效的。然而,产生一份秘密信息不利地增加了被窃的风险。作为解决该问题的一项技术,Shamir提出了一种被称为(k,n)门限方案的秘密分存方案(例如,参见A.Shamir;“How to Share a secret”,Communications of the ACM,22,11,pp.612-613(1979))。
(k,n)门限方案将秘密信息分为n个分存信息,使得通过收集n个分存信息中的任意k个就能恢复原始信息,但是也使得从k-1个分存信息中不能获取关于原始秘密信息的信息。即,(k,n)门限方案具有使用门限k(1<k<n)作为界限来恢复秘密信息的性质。
因此,根据(k,n)门限方案,即使泄漏了最多k-1个分存信息,原始秘密也是安全的。这使得可以进行管理,从而使得即使丢失了最多n-k个分存信息,原始信息也能够得以恢复。
然而,Shamir(k,n)门限方案使用多项式插值法执行分存和恢复秘密信息的处理,这需要大量的计算。因此,为了使大量秘密数据可被分存,Shamir(k,n)门限方案不利地需要高速计算。
另外,Fujii等人的方案和Kurihana等人的方案是公知的解决这些缺点的(k,n)门限方案,它们能够明显地减少计算量(例如,参见Yoshihiro Fujii,Minako Tada,Norikazu Hosaka,Koya Tochikubo和Takehisa Kato:“A Fast(2,n)-Threshold Scheme and Its Application”,SCC2005 collection of preliminarypapers,(2005),和Jun Kurihara,Shinsaku Kiyomoto,Kazuhide Fukushima和Toshiaki Tanaka:“A(3,n)-Threshold Secret Sharing Scheme using XOROperations”,SCIS2007 collection of preliminary papers,(2007))。Fujii等人的方案和Kurihana等人的方案能够高速地执行,因为这些方案仅使用异或(exclusiveOR)操作来执行分存和恢复秘密信息的处理。
然而,Fujii等人的方案和Kurihana等人的方案不利地将门限k限制为2或3。
如上所述,Shamir(k,n)门限方案使用多项式插值法,不利地要求高速计算。另一方面,Fujii等人的方案和Kurihana等人的方案不利地将门限k限制为2或3。
发明内容
本发明的一个目的是提供一种秘密分存装置和方法,其使得可以实现在不需要多项式插值的情况下能以高速执行的门限至少为4的(k,n)门限方案。
在本发明的第一方面中,提供了一种基于(k,n)门限方案的秘密分存装置,该装置被配置为分别将由秘密信息S被划分成的n(n≥k≥4)个分存信息D(0),...,D(n-1)分发给n个存储装置,以及从这n个分存信息中的任意k个恢复秘密信息S,该装置包括:生成矩阵生成装置,其被配置为生成GF(2)的生成矩阵G,该矩阵包括n个列向量,每个列向量的大小为k(n-1)行×(n-1)列,这n个列向量中的任意k个都是满秩的(生成矩阵G的大小为k(n-1)行×n(n-1)列,GF(2)是2阶有限域);存储装置,其被配置为在分发分存信息D(0)至D(n-1)之前,临时存储秘密信息S;划分秘密数据生成装置,其被配置为将秘密信息划分为n-1份,并为划分结果分配从1变化到n-1的行号j(1≤j≤n-1),以生成具有相同大小的n-1个第一划分秘密数据K(1),...,K(j),...,K(n-1);随机数数据生成装置,其被配置为生成(k-1)(n-1)个与各个划分秘密数据均具有相同大小的随机数,并为这些随机数分配行号h(0≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1);分存部分数据计算装置,其被配置为计算划分秘密数据和随机数数据的矩阵(K(1),...,K(j),...,K(n-1),U(0,1),...,U(h,g),...,U(k-2,n-1))和生成矩阵G的乘积(该计算在GF(2)上执行的),并且将计算结果的第j×(n-1)+i列分配给分存部分数据D(j,i),以计算n(n-1)个分存部分数据D(j,i)(0≤j≤n-1,0≤i≤n-2);头信息生成装置,其被配置为给具有相同行号j的n-1个分存部分数据D(j,0)至D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1);和分存信息分发装置,其被配置为分别将n个分存信息D(0),...,D(j),...,D(n-1)分发给n个存储装置,所述分存信息包括具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)。
在本发明的第二方面中,提供了一种基于(k,n)门限方案的秘密分存装置,该装置被配置为分别将由秘密信息S被划分成的n(n≥k≥4)个分存信息D(0),...,D(n-1)分发给n个存储装置,以及从这n个分存信息中的任意k个恢复秘密信息S,该装置包括:存储装置,其被配置为在分发分存信息D(0)至D(n-1)前,临时存储秘密信息S;第一划分秘密数据生成装置(105a),其被配置为将秘密信息划分为n-1份,并为划分结果分配从1变化到n-1的行号j(1≤j≤n-1),以生成具有相同大小的n-1个第一划分秘密数据K(1),...,K(j),...,K(n-1);第二划分秘密数据生成装置,其被配置为创建与各个划分秘密数据具有相同大小的零值,并为创建结果分配行号j=0,以生成第二划分秘密数据K(0);第一随机数数据生成装置,其被配置为创建与各个划分秘密数据均具有相同大小的k-1个零值数据,并为所述零值数据分配行号h(0≤h≤k-2)和列号g=0,以生成随机数数据U(0,0),...,U(h,0),...,U(k-2,0);第二随机数数据生成装置,其被配置为生成与各个划分秘密数据均具有相同大小的k-1个随机数,并为这些随机数分配行号h(0≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1);随机数数据计算装置,其被配置为根据随机数数据U(0,0),...,U(h,g),...,U(k-2,n-1),计算n(n-1)个随机数数据R(j,i)=U(0,h×j+i+1(mod n))(+)...(+)U(h,h×j+i+1(mod n))(+)...(+)U(k-1,h×j+i+1(modn))((+)是代表异或的符号);分存部分数据计算装置,其被配置为根据分存部分数据K(0),K(1),...,K(j),...,K(n-1)和随机数数据R(0,0),...,R(i,j),...,R(n-1,n-2),计算n(n-1)个分存部分数据D(j,i)=K(j-i(mod n))(+)R(j,i);头信息生成装置,其被配置为为包含在生成的分存部分数据中的具有相同行号j的n-1个分存部分数据D(j,0)至D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1);和分存信息分发装置(109a,111),其被配置为分别将n个分存信息D(0),...,D(j),...,D(n-1)分发给n个存储装置,所述分存信息包括具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)。
第一和第二方面被表述为“装置”。然而,本发明并不限制于这些方面。这些方面可以被表述为“程序”、“存储程序的存储介质”或“方法”。
第一方面被配置为使用生成矩阵G来生成分存部分数据,以使分存和恢复秘密信息的处理能够使用异或以高速执行,使得门限至少为4的(k,n)门限方案在不使用多项式插值法的情况下得以实现。
第二方面被配置为与采用生成矩阵G的情况一样地生成分存部分数据,以使分存秘密信息的处理能够使用异或以高速执行,使得门限至少为4的(k,n)门限方案在不使用多项式插值法的情况下得以实现。
附图说明
图1是示出根据本发明第一实施例的秘密分存系统的配置的示意图;
图2是示出根据第一实施例的生成矩阵的示例的示意图;
图3是示出根据第一实施例的逆矩阵的示例的示意图;
图4是示出根据第一实施例的分存部分数据的示例的示意图;
图5是示出根据第一实施例的随机数数据的示例的示意图;
图6是示出根据第一实施例的头信息和分存信息的示例的示意图;
图7是示出根据第一实施例的分存处理的操作的流程图;
图8是示出根据第一实施例的生成矩阵生成处理的操作的流程图;
图9、10、11、12、13、14和15是示出根据第一实施例的生成矩阵生成操作的示意图;
图16是示出根据第一实施例的计算分存部分数据的处理的示意图;
图17是示出根据第一实施例的恢复处理的操作的流程图;
图18、19、20、21和22是示出根据第一实施例的计算分存秘密数据的操作的示意图;
图23是示出第一实施例的变型例的示意图;
图24是示出根据本发明第二实施例的秘密分存系统的示意图;
图25是示出根据第二实施例的分存处理的操作的流程图;
图26是示出根据第二实施例的生成划分秘密数据和随机数的操作的流程图;
图27是示出根据本发明第三实施例的生成矩阵的示例的示意图;
图28和29是示出根据第三实施例的生成矩阵生成操作的示意图;
图30是示出根据第三实施例的生成矩阵生成处理的操作的流程图;
图31是示出根据第三实施例的分存处理的操作的流程图;
图32是示出根据第三实施例的计算分存部分数据的处理的示意图;和
图33是示出根据第三实施例的分存部分数据的示例的示意图。
具体实施方式
以下将参考附图描述本发明的实施例。以下描述的装置均可以以硬件配置或者硬件资源和软件的组合配置来实现。如图1、23和24所示,在组合配置中的软件是通过网络或存储介质M而安装在作为秘密分存存装置的客户机装置中的计算机中的程序,该程序提供秘密分存装置的功能。
(第一实施例)
图1是示出根据本发明第一实施例的秘密分存系统的配置的示意图。该秘密分存系统具有一个客户机装置100和n-1个连接在一起的存储服务器装置200、300、...、n00,这n-1个存储服务器通过如因特网的网络NW与客户机装置100相连接。
总计n个装置100、200、300、...、n00对应于(k,n)门限方案中的n个成员。特别地,分别设置在n装置100、200、300、...、n00中的n个存储部101、201、...、n01对应于由这n个成员分别拥有的n个存储装置。指示分存信息的分发顺序的j编号(行编号)被分配给每一装置100、200、300、...、n00。例如,j=编号0被分配给客户机装置100,j=编号1被分配给存储服务器装置200。j=编号2被分配给存储服务装置300,...,j=编号n-1被分配给存储服务器装置n00。
在此,客户机装置100根据(k,n)门限方案实现秘密分存装置,该方案将秘密信息S被划分成的n(n≥k≥4)个分存信息D(0),...,D(n-1)分别分发给n个装置100、200、...、n00,并且使得可以使用n个分存信息中的任意k个来恢复秘密信息S。分存信息的个数可以至少为k。门限k可以至少为2。然而,为了明确地区别于Fujii等人的方案和Kurihara等人的方案,本实施例使用至少为4的门限K。例如,k=4且n=4,秘密信息S被划分为以下描述的n-1(=3)个,即K(1)、K(2)和K(3),并被分发为四个分存信息D(0)、D(1)、D(2)和D(3)。秘密信息S可以从分存信息D(0)、D(1)、D(2)和D(3)中恢复。
客户机装置100具有通过总线连接在一起的存储部101、输入部102、生成矩阵生成部103、逆矩阵生成部104、分存部分数据生成部105、哈希值生成部106、原始数据恢复部107、哈希值验证部108、控制部109、输出部110和通信部111。
存储部101是可由控制部109读写的作为硬件资源的存储装置。在分发分存信息D(0)到D(n-1)前,秘密信息S被临时存储在存储部101中。一旦创建了分存信息D(0)到D(n-1),分存信息创建信息就被存储在存储部101中。在分发了分存信息之后,j=编号0的分存息D(0)被存储在存储部101中,秘密信息被从存储部101中移除。这里,分存信息创建信息包括相互关联的关于分存信息D(j)的识别信息j和关于分存信息D(j)的目的地识别信息(装置ID、装置地址信息等)。
输入部102是如键盘或鼠标的普通输入装置,并具有根据操作者的操作而将命令(例如命令分存处理或解码处理开始的命令)和如秘密信息S的信息输入到客户机装置100的功能。
生成矩阵生成部103具有在控制部109的控制下生成GF(2)的生成矩阵G的功能,该矩阵由n个大小均为k(n-1)行×(n-1)列的列向量组成,其中n个列向量中的任意k个列向量是满秩的,如在图2中的k=4且n=5的(4,5)门限方案的例子所示。然而,生成矩阵G的大小为k(n-1)行×n(n-1)列。GF(2)是2阶有限域。术语“满秩”是指通过对矩阵进行基本变换而获取的秩是满的(=k(n-1)),其指示线性相关性。
具体地,生成矩阵生成部103具有执行以下描述的处理(p103-1)到(p103-10)的功能。
(p103-1)第一子式矩阵生成处理:当输入的分存数n和输入的门限k被存储在存储部101中时,根据存储部101中的分存数n和门限k,生成n行×(n-1)列的第一子式矩阵(minor matrix),在该子式矩阵中,第0行为零向量,并且第0行以下的(n-1)行×(n-1)列对应于一个与单位矩阵具有横向对称关系的矩阵。
(p103-2)第一邻接处理:将最左侧的第一子式矩阵的每一列向上循环移位一次以获得一个n行×(n-1)列的新的第一子式矩阵,并将该第一子式矩阵邻接地放置在尚未进行循环移位的第一子式矩阵的左侧。
(p103-3)第一子矩阵生成处理:执行第一邻接处理n-1次,以生成一个n行×n(n-1)列的第一子矩阵(submatrix)。
(p103-4)第一子矩阵分配处理:将第一子矩阵的第1行到第n-1行分配给生成矩阵G的第0行至第n-2行,以生成对应于生成矩阵G的第0行至第n-2行的子矩阵。
(p103-5)第二子式矩阵生成处理:生成一个n行×(n-1)列的第二子式矩阵,在该子式矩阵中,第0行为零向量,并且第0行以下的(n-1)行×(n-1)列对应于单位矩阵。
(p103-6)第二邻接处理:将最左侧的第二子式矩阵向下循环移位j次,以生成一个新的n行×(n-1)列的第二子式矩阵,并将该第二子式矩阵邻接地放置在尚未进行循环移位的第二子式矩阵的右侧(j=0,1,...,k-2)。
(p103-7)第二子矩阵生成处理:执行第二邻接处理n-1次,以生成一个n行×n(n-1)列的第二子矩阵。
(p103-8)第二子矩阵分配处理:将第二子矩阵的第1行至第n-1行分配给生成矩阵G的第(n-1)(j+1)行至第(n-1)(j+1)+n-2行,以生成一个对应于生成矩阵G的第(n-1)(j+1)行至第(n-1)(j+1)+n-2行的子矩阵(j=0,1,...,k-2)。
(p103-9)即如下处理:在对于第二邻接处理和第二子矩阵分配处理j的值从初始值0变化到最终值k-2的情况下,执行第二邻接处理、第二子矩阵生成处理和第二子矩阵分配处理k-1次,同时每当执行了第二子矩阵生成处理和第二子矩阵分配处理时,j的值增加1。
(p103-10)生成矩阵G生成处理:使用通过第一子矩阵分配处理的分配而得到的从第0行至第n-2行的子矩阵和通过第二子矩阵分配处理而得到的从第n-1行至第(n-1)(k-1)+n-2行的子矩阵,生成k(n-1)行×n(n-1)列的生成矩阵G。
逆矩阵生成部104在控制部109的控制下生成生成矩阵G的逆矩阵。例如,如图3中的k=4且n=5的(4,5)门限方案的例子所示,逆矩阵生成部104具有如下功能:计算生成矩阵G的由k个列向量形成的子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))的逆矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))-1。
这里,g(D(*))是生成矩阵G的子矩阵,它被用于计算第*个分存信息D(*),并被称为列向量。此外,表达式(i_1)表示任意第一项,表达式(i_j)表示任意第j个对象,表达式(i_k)表示任意第k项。即,位于圆括号左侧的i和下划线(即“i”)表示“任意”(表达式“i”中的i不是行号)。此外,例如,D(i_1)是任意第一D(*),因此可能是D(0)到D(4)中的任意一个。
分存部分数据生成部105具有在控制部109的控制下,根据临时存储在存储部101中的秘密信息S,生成n(n-1)个分存部分数据D(j_i)的功能,如在图4和5中的例子(k=4且n=5)所示。具体地,分存部分数据生成部105具有以下描述的功能(f105-1)到(f105-3)。
(f105-1)将存储在存储部101中的秘密信息划分为n-1个,并为划分结果分配从1到n-1的行号j(0≤j≤n-1),以生成n-1个具有相同大小的分存秘密数据K(1),...,K(j),...,K(n-1)的功能。
(f105-2)生成(k-1)(n-1)个与每个分存秘密数据大小相同的随机数,并为随机数分配行号h(1≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)的功能。随机数U(h,g)彼此独立。
(f105-3)根据分存秘密数据K(1),...,K(j),...,K(n-1)、随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)和生成矩阵G(在GF(2)上进行了计算),来计算矩阵(K(1),...,K(j),...,K(n-1),U(0,1),...,U(h,g),...,U(k-2,n-1))和生成矩阵G的乘积,并将计算结果的第j×(n-1)+i列分配给D(j,i),以计算n(n-1)个分存部分数据D(j,i)(0≤j≤n-1且0≤i≤n-2)的功能。
哈希值生成部106具有如下功能:当控制部109通过总线向哈希值生成部106输入头信息H(j)时,哈希值生成部106在控制部109的控制下为头信息H(j)生成哈希值h(H(j)),并将获得的哈希值h(H(j))输出到总线。如果头信息H(j)不被验证,则可省略哈希值生成部106。
原始数据恢复部107具有在控制部109的控制下,根据分发给n个装置100,...,n00的n个分存信息D(0)到D(n-1)中的k个分存信息D(i_1),...,D(i_j),...,D(i_k)(0≤i_j≤n-1),恢复秘密信息S的功能。具体地,原始数据恢复部107具有以下描述的功能(f107-1)和(f107-2)。
(f107-1)根据所收集的k个分存信息D(i_1),...,D(i_j),...,D(i_k)和生成矩阵G的逆矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))-1,计算矩阵(D(i_1),...,D(i_j),...,D(i_k)和逆矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))-1的乘积,并将计算结果的第i列中的数据分配给K(i+1),以获取分存秘密数据K(1),...,K(n-1)的功能。
(f107-2)将已恢复的n-1个分存秘密数据K(1),...,K(n-1)连接在一块,以恢复秘密信息S=K(1)‖K(2)‖...‖K(n-1)的功能(‖是表示连接的符号)。
哈希值验证部108具有如下功能:当控制部109通过总线向哈希值验证部108输入头信息H(j)和哈希值h(H(j))时,在控制部109的控制下,哈希值验证部108根据哈希值h(H(j))验证头信息H(j)并将验证结果输出到总线。在该验证中,当从头信息H(j)计算出的哈希值等于输入的哈希值h(H(j))时,头信息H(j)被确定为有效。如果不验证头信息H(j),则可省略哈希值验证部108。
在此,可能的头信息H(j)包括指示行号j的数据识别符、指示头大小的头大小、指示原始数据大小的原始数据大小m、指示原始秘密信息S被划分成的个数的划分数n-1、指示分存部分数据D(j,i)的处理单位比特数的处理单位比特长度a、指示随机数R(j,i)的数据大小的随机数据大小a、指示划分秘密数据K(j)的大小的划分数据大小a、指示有无填充(padding)或算法的填充算法、哈希算法信息(可选)、生成矩阵G的子矩阵g(D(j))(可选)、和生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))-1(可选)(总是包括g(D(j))),如图6上部的示例所示。
添加哈希算法信息来计算头信息的哈希值,以确保头信息的原始性。即,根据安全要求等,可添加或省略哈希算法信息。然而,如果系统由于安全要求而具有预定的哈希算法,则哈希算法信息可从头信息中省略。
分存信息D(j)的数据格式由头信息H(j)、头信息H(j)的哈希值h(H(j))、n-1个分存部分数据D(j,0),D(j,1),...,D(j,n-2)组成,如图6下部的示例所示。在此,哈希值h(H(j))是可选的,可根据安全要求被省略。
控制部109具有根据通过输入部102输入的命令以及下述的图7、8和17的流程图来控制各个部101、103到108、110和111的功能。控制部109具有以下描述的功能(f109-1)和(f109-2)。
(f109-1)为包括在由分存部分数据生成部105生成的分存部分数据中的、具有相同行号j的n-1个分存部分数据D(j,0)到D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1)的功能。
(f109-2)将由具有相同行号j的头信息H(j)和分存部分数据D(j,0)到D(j,n-2)组成的n个分存信息D(0),...,D(j),...,D(n-1)通过通信部111分别分发给n个装置100,200,...,n00的功能。为了避免分存信息D(0)到D(n-1)的可能泄漏,控制部109可以加密要分发的分存信息D(0)到D(n-1)。
输出部110是普通的输出装置,如显示器装置或打印机装置。输出部110具有在控制部109的控制下,输出命令等的输入画面、已恢复秘密信息S的输出画面的功能。
通信部111具有在控制部109的控制下,用作客户机装置100和网络NW之间的通信接口的功能。
将描述各个存储服务器装置200到n00。
除了所存储的分存信息D(1)到D(n-1)之外,存储服务器装置200到n00具有相同的配置。因此,在此,将作为典型例子描述n=2的存储服务器装置200。
存储服务器装置200包括存储部201和通信部202。
存储部201是可由通信部202读写的存储装置,它存储了由客户机装置100分发的分存信息D(1)(=D(n-1)且n=2)。
通信部202具有将由客户机装置100所分发的分存信息D(1)写入存储部201的功能,以及从存储部201读取客户机装置100所请求的分存信息D(1)并将该分存信息D(1)返回给客户机装置100的功能。
为了避免分存信息D(1)的可能泄漏,通信部202可以具有对客户机装置100进行认证的功能。在这种情况下,通信部202被配置为,在认证了客户机装置100后返回分存信息。
在这种情况下,存储服务器装置200,300,...,n00可用其他客户机装置、USB(通用串行总线)存储器、蜂窝电话或PDA(个人数字助理)或者用外部HDD(硬盘驱动器)代替。
如果存储装置200,300,...,n00被其他客户机装置代替,则存储装置200,300,...,n00可以保持分存部分数据生成部105或原始数据恢复部107的功能。即,能恢复秘密信息的装置不同于客户机装置100。例如,任意数目的存储装置200,300,...,n00可被配置为能够恢复秘密信息。
此外,在分存的情况下,能分存秘密信息的装置同样可以不同于客户机装置100。例如,任意数目的存储装置200,300,...,n00可被配置为能够分发分存信息。
如果存储装置200,300,...,n00被诸如USB存储器或蜂窝电话的物理连接装置或无线电通信装置所代替,则可省略网络NW。以上描述的存储装置200,300,...,n00被其他装置所代替的变型例,同样适用于以下描述的实施例。
现在,将要描述如上所述地配置的秘密分存系统的操作。
首先,假设通过根据(k,n)门限方案划分用于分存的秘密信息S而获得的分存信息D(j)分发给n个成员(初始成员)。在这种情况下,n必须被选为一质数。因此,为了将分存信息分发给n个成员,秘密分存方案被应用于n′,n′大于n并且是质数。在以下的描述中示出(k,n)门限方案的例子。
(分存处理的操作)
假设在客户机装置100中,在分发分存信息D(0)到D(n-1)前,比特长度为m的秘密信息被临时存储在存储部100中。
在该情况下,假设操作者操作输入部102,以向客户机装置100输入分存处理开始命令(ST1),如图7所示。
根据该开始命令,客户机装置100开始分存处理。控制部109设置分存数n、门限k、秘密信息的比特长度m和处理单位比特数a(ST1)。秘密信息S的比特长度m可从存储部101中的秘密信息S确定。处理单元比特长度a是根据分存数据生成部13的规格而预先确定的。
随后,控制部109确定在将比特长度为m的秘密信息S划分为n-1份时所获取的比特长度(m/(n-1))是否超过了处理单位比特数a(m/(n-1)>a)(ST2)。如果比特长度超过处理单位比特数a,则控制部109搜索比n大的质数n′,将结果质数n′替换为分存数n(ST3),并且返回步骤ST1。
另一方面,如果步骤ST2中的确定结果是否定的,则控制部109向生成矩阵生成部103输入分存数n和门限k。
生成矩阵生成部103输出分存数为n且门限为k的生成矩阵G(任意k个列向量是满秩的,矩阵G的大小为k(n-1)×n(n-1),列向量的大小为k(n-1)×(n-1))(ST4)。
参照图8至15,以下将描述在步骤ST4中生成生成矩阵G的处理过程。
如图8所示,生成矩阵生成部103在存储部101中搜索分存数为n且门限为k的生成矩阵G(ST4-1)。如果存在适当的生成矩阵G,则生成矩阵生成部103进行到ST4-8。如果没有适当的生成矩阵G,则如图9所示,生成矩阵生成部103生成n行×(n-1)列的第一子式矩阵i,该子式矩阵被配置为第0行为零向量,并且在第0行以下的(n-1)×(n-1)矩阵与单位矩阵具有横向对称关系((0,n-2)-元素,(1,n-3)-元素,...,(n-3,1)-元素和(n-2,0)-元素都为1,其他元素均为0)(ST4-2)。
随后,如图10所示,将(最左侧的)第一子式矩阵i中的各列向上循环移位一次,以获取被定义为新的第一子式矩阵i-1的n×(n-1)矩阵,并将该矩阵邻接地放置在尚未进行循环移位的第一子式矩阵的左侧(ST4-3)。随着i从n-1变化到1,重复ST4-3,以生成n×n(n-1)的第一子矩阵。第一子矩阵的第1行至第n-1行被分配给生成矩阵G的第0行至第n-2行(ST4-4)。在(4,5)门限方案的例子中,生成矩阵G的从第0行至第3行的子矩阵得以生成。
生成矩阵生成部103生成n行×(n-1)列的第二子式矩阵i,该子式矩阵被配置为第0行为零向量,并且在第0行以下的(n-1)×(n-1)矩阵由单位矩阵构成(ST4-5)。
随后,如图12至15所示,将(最右侧的)第二子式矩阵i中的各列向下循环移位j次,以获取被定义为新的第二子式矩阵i+1的n×(n-1)矩阵,并将该矩阵邻接地放置在尚未进行循环移位的第二子式矩阵的右侧(ST4-6)。随着i从1变化到n-1,重复ST4-6,以生成n×n(n-1)的第二子矩阵。第二子矩阵的第1行至第n-1行被分配给生成矩阵G的第(n-1)(j+1)行至第(n-1)(j+1)+n-2行,然后增加j(ST4-7)。随着j从0变化到k-2,重复ST4-6和ST4-7,以生成生成矩阵G。在(4,5)门限方案的例子中,生成矩阵G如图2所示地配置。
随后,生成矩阵生成部103将得到的生成矩阵G输出给控制部109(ST4-8)。
如上所述,生成生成矩阵G的处理完成。
在步骤ST4完成后,控制部109向分存部分数据生成部105输入秘密信息S、生成矩阵G、分存数n和门限k。
如图7所示,分存部分数据生成部105根据秘密信息S和分存数n,确定通过将比特长度为m的秘密信息S划分为n-1份而获得的比特数(m/(n-1))是否等于处理单位比特数a(m/(n-1)=a)(ST5)。
如果步骤ST5中的确定结果是否定的,则分存部分数据生成部105对分存秘密数据K(n-1)进行填充,即,对秘密信息S被划分成的n-1个划分秘密数据K(1)到K(n-1)中的最后一个(填充有数据)进行填充(ST6)。分存部分数据生成部105进行到步骤ST7。
不是必须对最后一个划分秘密数据K(n-1)进行填充,但是可对其他划分秘密数据K(j)进行填充。然而,在本实施例的描述中,作为示例,秘密信息S可被精确地划分为四份(无填充数据)。此外,如图2所示,作为示例,描述分存数n=5且门限k=4的(4,5)门限方案。
如果步骤ST5中的确定结果指示比特长度等于处理单位比特数a,则分存部分数据生成部105将秘密信息S划分为n-1份,并为划分结果分配从1变化到n-1的行号j(0≤j≤n-1),以生成n-1个具有相同大小的划分秘密数据K(1),...,K(j),...,K(n-1)(ST7)。在(4,5)门限方案的例子中,生成划分秘密数据K(1),...,K(4)。
然后,分存部分数据生成部105生成与各个划分秘密数据具有相同大小的(k-1)(n-1)个随机数,并为这些随机数分配行号h(0≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数据U(0,1),...,U(h,g),...,U(k-2,n-1)(ST7)。在(4,5)门限方案的例子中,生成随机数数据U(0,1),...,U(2,4)。
根据划分秘密数据K(1),...,K(j),...,K(n-1)、随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)和生成矩阵G,分存部分数据生成部105计算n(n-1)个分存部分数据(D(0,0),...,D(j_i),...,D(n-1,n-2))=(K(1),...,K(j),...,K(n-1),U(0,1),...,U(h,g),...,U(k-2,n-1))G(ST8)。在该情况下,根据处理单位比特数a,如果生成矩阵G的元素为1,则该矩阵被认为是a×a的GF(2)上的单位矩阵。如果生成矩阵G的元素为0,则该矩阵被认为是a×a的GF(2)上的零矩阵。在(4,5)门限方案的例子中,如图4和5所示,生成了20个分存部分数据D(j,i)。例如,图16示出计算分存部分数据D(0,0)的过程。
随后,分存部分数据生成部105将得到的n(n-1)个分存部分数据D(j,i)输出到控制部109。
控制部109为具有相同行号j的n-1个分存部分数据D(j,0)到D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1)(ST9)。头信息H(j)包括例如有无对K(n-1)的填充和原始数据大小的信息。
控制部109将分存信息D(0)写入存储部101,并将分存信息D(1),...,D(n-1)分别分发给存储服务器装置200,...,n00,以便使由具有相同行号j的头信息H(j)和分存部分数据D(j,0)到D(j,n-2)组成的n个分存信息D(0),...,D(j),...,D(n-1)被分别地分发给n个存储部101,201,...,n01(ST10)。在(4,5)门限方案的例子中,分发了5个分存信息D(0),...,D(4)。存储服务器装置200到500将所分发的分存信息D(1),...,D(4)存储在存储部201到501中。
分存秘密信息的处理由此完成。
(4,5)门限方案不是必须要求分发五个分存信息D(0),...,D(4)。例如,可以分发四个分存信息D(0),...,D(3),并且当增加一新成员时,将剩下的一个分存信息D(4)分发给该新成员。
(恢复处理的操作)
假设操作者操作输入部102,以向客户机装置100输入恢复处理开始命令。
如图17所示,客户机装置100根据开始命令而开始恢复处理。控制部109收集分发给n个装置100,...,n00的n个分存信息中包括的任意k个分存信息(Di_1),...,D(i_j),...,D(i_k)(0≤i_j≤n-1)(ST11)。
控制部109从分存信息D(i_1),...,D(i_j),...,D(i_k)中的头信息H(i_1),...,H(i_j),...,H(i_k)获得生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...g(D(i_k)))-1(ST12)。如果控制部109成功地获得逆子矩阵,则控制部109进行到ST15。如果控制部109无法获取逆子矩阵,则当从H(i_1),...,H(i j),...,H(i_k)获取生成矩阵G的k个列向量g(D(i_1)),...,g(D(i_j)),...,g(D(i_k))后,控制部109从这k个列向量形成和获取生成矩阵G的子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))(ST13)。
然后,控制部109将生成矩阵G的子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))输入逆矩阵生成部104。
逆矩阵生成部104从生成矩阵G的子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))计算生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...g(D(i_k)))-1(ST14)。
在(4,5)门限方案的例子中,图2示出了对应于分存信息D(1),D(2),D(3),D(4)的、生成矩阵G的子矩阵(g(D(1)),g(D(2)),g(D(3)),g(D(4)))。图3示出了对应于分存信息D(1),D(2),D(3),D(4)的、生成矩阵G的逆子矩阵((g(D(1)),g(D(2)),g(D(3)),g(D(4)))-1。
逆矩阵生成部104输出生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...g(D(i_k)))-1(ST15)。
控制部109向原始数据恢复部107输入生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...g(D(i_k)))-1和分存信息D(i_1),...,D(i_j),...,D(i_k)。
如图17所示,原始数据恢复部107根据在分存信息D(i_1),...,D(i_j),...,D(i_k)中的头信息H(i_1),...,H(i_j),...,H(i_k),进行分析以确认分存信息D(i_1),...,D(i_j),...,D(i_k)(ST16)。例如,在(4,5)门限方案的例子中,确认分存信息D(1),D(2),D(3),D(4)。
原始数据恢复部107计算由分存信息构成的矩阵(D(i_1),...,D(i_j),...,D(i_k))和生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...g(D(i_k)))-1的乘积(ST17)。在该情况下,根据处理单位比特数a,如果生成矩阵G的元素为1,则该矩阵被认为是a×a的GF(2)上的单位矩阵。如果生成矩阵G的元素为0,则该矩阵被认为是a×a的GF(2)上的零矩阵。
然后,原始数据恢复部107将计算结果中的第i+1列中的数据分配给K(i),以计算划分秘密数据K(1),...,K(n-1)。在(4,5)门限方案的例子中,如果从分存信息D(1),D(2),D(3),D(4)恢复了秘密信息,则如图18至22所示计算划分秘密数据K(1),K(2),K(3),K(4)。
控制部109根据头信息H(i)和H(j),从划分秘密数据K(1),...,K(n-1)中移除填充数据等,如果存在的话。
随后,控制部将划分秘密数据K(1),...,K(n-1)连接在一起,以恢复秘密信息S=K(1)‖K(2)‖...‖K(n-1)(ST18)。在该例子中,秘密信息S=K(1)‖K(2)‖...‖K(4)。
如上所述,本发明被配置成使用生成矩阵G来生成分存部分数据,以使分存和恢复秘密信息的处理能够采用异或以高速完成,使门限至少为4的(k,n)门限方案可以在不使用多项式插值法的情况下实现。
此外,在本实施例的描述中,为了明确地使本实施例区分于Fujii等人的方案和Kurihara等人的方案,门限至少为4。当然,本实施例即使当门限是2或3时也可以实现。因此,本实施例不限制分存数n或门限k,因此它可广泛地应用于各种系统。
另外,根据本实施例的分存和恢复处理仅通过异或来执行,不需要多项式插值。因此,本实施例不仅使该处理能以高速执行,而且还适合处理大量的数据。因此,本实施例有利地允许低规格的设备执行秘密分存。
在本实施例的描述中,生成矩阵生成部103生成生成矩阵G,逆矩阵生成部104生成逆矩阵。然而,本发明不限于此。假设分存数n和门限k是已知的,可改变本实施例,使得设置矩阵存储部112来代替生成矩阵生成部103和逆矩阵生成部104,作为其中预存储有生成矩阵G和G的逆矩阵的可读/可写存储装置,如图23所示。该变型例仍允许使用生成矩阵G和逆矩阵来实现(k,n)门限方案。
类似地,当然,可以改变本实施例,使得对于分存数n和门限k的每种组合,在矩阵存储部112中预存储生成矩阵G和G的逆矩阵,使得n和k的输入值被用作从矩阵存储部112中读取关于生成矩阵G和G的逆矩阵的数据的检索键。
(第二实施例)
图24是示出根据本发明第二实施例的秘密分存系统的配置的示意图。
本实施例是第一实施例的变型例,包括基于(K,n)门限方案使分存能根据分存算法而执行的秘密分存系统。在该情况下,上述生成矩阵部103和逆矩阵生成部104被省略。此外,分存部分数据生成部105a和控制部109a的功能改变了。
如图4和5作为示例(k=4且n=5)所示,分存部分数据生成部105a具有在控制部109a的控制下,根据临时存储在存储部101中的秘密信息,生成n(n-1)个分存部分数据D(j,i)的功能。具体地,分存部分数据生成部105a具有以下描述的功能(f105a-1)至(f105a-6)。
(f105a-1)将存储在存储部101中的秘密信息划分为n-1份,并为划分结果分配从1变化到n-1的行号j(1≤j≤n-1),以生成具有相同大小的n-1个划分秘密数据K(1),...,K(j),...,K(n-1)的功能。
(f105a-2)创建与各个划分秘密数据具有相同大小的零值数据,并为创建结果分配行号j=0,以生成划分秘密数据K(0)的功能。
(f105a-3)创建与各个划分秘密数据均具有相同大小的k-1个零值数据,并为该零值数据分配行号h(0≤h≤k-2)和列号g=0,以生成随机数数据U(0,0),...,U(h,0),...,U(k-2,0)的功能。
(f105a-4)生成与各个划分秘密数据均具有相同大小的k-1个随机数,并为这些随机数分配行号h(0≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)的功能。随机数U(h,g)具有不同的值。
(f105a-5)根据随机数数据U(0,0),...,U(h,g),...,U(k-2,n-1),计算n×(n-1)个随机数数据R(j,i)=U(0,h×j+i+1(mod n))(+)...(+)U(h,h×j+i+1(modn))(+)...(+)U(k-1,h×j+i+1(mod n))的功能((+)是表示异或的符号)。
对于U(h,h×j+i+1(mod n))=U(h,0)(=0),项U(h,0)不需要被计算。例如,U(0,3)(+)U(1,4)(+)U(2,0)可变为U(0,3)(+)U(1,4)。因此,对于U(h,0)(=0),项U(g,0)不需要被计算。这同样适用于本说明书的其余部分。
(f105a-6)根据分存部分数据K(0),K(1),...,K(j),...,K(n-1)和随机数数据R(0,0),...,R(j,i),...,R(n-1,n-2),计算n(n-1)个分存部分数据D(j,i)=K(j-i(mod n))(+)R(j,i)((+)是表示异或的符号)。
对于K(j-i(mod n))=K(0)(=0),项K(0)不是必须要被计算。例如,省略项K(0),可以计算出D(j,i)=R(j,i)。因此,对于K(0)(=0),项K(0)不需要被计算。这同样适用于本说明书的其余部分。
控制部109a具有根据通过输入部102输入的命令以及以下描述的图25和26中流程图来控制各个部101、105a至108、110和111的功能。
现在,将描述如上所述地配置的秘密分存系统的操作。在此,作为示例将描述(k,n)门限法。
首先,假设通过根据(k,n)门限方案将用于分存的秘密信息S划分而获得的分存信息D(j)被分发给n个成员(初始成员)。在该情况下,n必须选取为一质数。因此,为了将分存信息分发给这n个成员,秘密分存方案被应用于n′,n′大于n并且是质数。在以下的描述中,示出(k,n)门限方案的例子。
(分存处理的操作)
假设在客户机装置100中,在分发分存信息D(0)到D(n-1)之前,比特长度为m的秘密信息被临时存储在存储部101中。
在该情况下,如图25所示,假设操作者操作输入部102,向客户机装置100输入分存处理开始命令。
根据该开始命令,客户机装置100开始分存处理。控制部109a设置秘密信息的比特长度m、分存数n和处理单位比特数a(ST21)。秘密信息S的比特长度m可从在存储部101中的秘密信息S确定。处理单位比特数a是根据分存数据生成部13的规格而预先确定的。
随后,控制部109a确定,在将比特长度为m的秘密信息S划分成n-1份时所获得的比特长度(m/(n-1))是否超过了处理单位比特数a(m/(n-1)>a)(ST22)。如果该比特长度超过了处理单位比特数a,则控制部109a搜索大于n的质数n′,将得到的质数n′代替为分存数n(ST23),并返回到步骤ST21。
另一方面,如果步骤ST22中的确定结果是否定的,则控制部109a向分存部分数据生成部105a输入秘密信息S和分存数n。
根据秘密信息S和分存数n,分存部分数据生成部105a确定,在将比特长度为m的秘密信息S划分成n-1份时所获得的比特长度(m/(n-1))是否等于处理单位比特数a(m/(n-1)=a)(ST24)。
如果步骤ST24中的确定结果是否定的,则分存部分数据生成部105a对分存秘密数据K(n-1)进行填充,即,对秘密信息S被划分成的n-1个划分秘密数据K(1)到K(n-1)中的最后一个进行填充(填充有数据)(ST25)。分存部分数据生成部105a进行到步骤ST26。
不是必须对最后一个划分秘密数据K(n-1)进行填充,而可以对另一划分秘密数据K(j)进行填充。然而,在本实施例的描述中,作为示例,秘密信息S可以被精确地划分为四份(无填充数据)。此外,如图4和5所示,作为示例描述分存数n=5且门限k=4的(4,5)门限方案。
如果步骤ST24中的确定结果指示比特长度等于处理单位比特数a,则分存部分数据生成部105a开始步骤ST26,如图26所示。
即,分存部分数据生成部105a将秘密信息S划分为n-1份,并为划分结果分配从1变化到n-1的行号j(0≤j≤n-1),以生成具有相同大小的n-1个划分秘密数据K(1),...,K(j),...,K(n-1)。在(4,5)门限方案的例子中,生成划分秘密数据K(1),...,K(4)。
此外,分存部分数据生成部105a创建与各个划分秘密数据具有相同大小的k-1个零值数据,并为创建结果分配行号j=0,以生成划分秘密数据K(0)(ST26-1)。
而且,分存部分数据生成部105a创建与各个划分秘密数据均具有相同大小的k-1个零值数据,并分配行号h(0≤h≤k-2)和列号g=0,以生成随机数数据U(0,0),...,U(h,0),...,U(k-2,0)。
分存部分数据生成部105a然后创建与各个划分秘密数据均具有相同大小的(k-1)(n-1)个随机数,并分配行号h(0≤h≤k-2)和列号g(1≤g≤n-1),以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)(ST26-2)。
根据随机数数据U(0,0),...,U(h,g),...,U(k-2,n-1),分存部分数据生成部105a设置随机数据R(j,i)=0(ST26-3),并且随着h从0变化到k-2而重复该操作,以生成n(n-1)个随机数数据R(j,i)=U(0,h×j+i+1(mod n))(+)...(+)U(h,h×j+i+1(mod n))(+)...(+)U(k-1,h×j+i+1(mod n))(ST26-4)。在(4,5)门限方案的例子中,生成了随机数数据R(0,0),...,R(4,3)。
然后,根据划分秘密数据K(0),K(1),...,K(j),...,K(n-1)和随机数数据R(0,0),...,R(j,i),...,R(n-1,n-2),分存部分数据生成部105a计算n(n-1)个分存部分数据D(j,i)=K(j-i(mod n))(+)R(j,i)(ST27)。随着行号j从0变化到n-1、列号i从0变化到n-2,重复该操作,以进行计算。在(4,5)门限方案的例子中,如图4和5所示,生成了20个分存部分数据D(j,i)。
随后,分存部分数据生成部105a将得到的n(n-1)个分存部分数据中的分存部分数据D(j,i)输出给控制部109a。
控制部109a为具有相同行号j的n-1个分存部分数据D(j,0)到D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1)(ST28)。头信息H(j)包括对K(n-1)有无填充、原始数据的大小等等。
控制部109a将分存信息D(0)写入存储部101,并将分存信息D(1),...,D(n-1)分别分发给存储服务器装置200,...,n00,使得由具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)构成的n个分存信息D(0),...,D(j),...,D(n-1)被分别地分发给n个存储部101,201,...,n01(ST29)。
在(4,5)门限方案的例子中,五个分存信息D(0),...,D(4)被分发。存储服务器装置200至500将所分发的分存信息D(1),...,D(4)存储在存储部201至501中。
分存秘密信息的处理由此完成。
在(4,5)门限方案的例子中,所分发的分存信息的个数不是必须为五。例如,可以分发四个分存信息D(0),...,D(3),并且当增加新成员时,将剩下的一个分存信息D(4)分发发该新成员。
如上所述,本实施例被配置为使用一算法来生成分存部分数据,该算法实现的结果与根据第一实施例通过生成矩阵G实现的结果类似。因此本实施例使得分存秘密数据的处理能够使用异或以高速执行,从而允许实现在不使用多项式插值法的情况下能够以高速执行的(k,n)门限方案。
即,本实施例在不使用生成矩阵G的情况下实现了与第一实施例相似的效果。
(第三实施例)
现在,将描述根据本发明第三实施例的秘密分存系统。
本实施例是第一实施例的变型例,涉及具有不同于第一实施例的比特模式的生成矩阵G和使用该生成矩阵G的分存处理。
在该情况下,如图27中的k=4且n=5的(4,5)门限方案的例子所示,生成矩阵G的第0行至第11行具有与如图11至15所示的在j=0到2的情况下第4行至第15行的值相同的值,并且生成矩阵G的第12行至第15行具有与如图28和29所示的在j=3的情况下的值相同的值。
如图30所示,在用于生成生成矩阵G的方法中,在图8中用于第一子式矩阵i的步骤ST4-2至ST4-4被省略,执行与图8中用于第二子式矩阵的步骤ST4-1、ST4-5和ST4-6相似的步骤ST4-1、ST4-5和ST4-6,并且图8中的步骤ST4-7被使用G的第(n-1)j至第(n-1)j+n-2行作为分配行的步骤ST4-7’所代替。此外,在该方法中,随着j从0变化到k-1,步骤ST-6和ST-7’被重复执行。
即,生成矩阵生成部103具有执行以下描述的步骤(P103b-1)至(P103b-10)的功能。
(P103b-1)第二子式矩阵生成处理:当输入的分存数n和门限k被存储在存储部101中时,根据存储部101中的分存数n和门限k,生成n行×(n-1)列的第二子式矩阵,在该子式矩阵中第0行为零向量,并且第0行以下的(n-1)行×(n-1)列对应于单位矩阵。
(P103b-2)第二邻接处理:将最右侧的第二子式矩阵的各列向下循环移位j次,以获得一个新的n行×(n-1)列的第二子式矩阵,并将该新的第二子式矩阵邻接地放置在尚未进行循环移位的第二子式矩阵的右侧(j=0,1,...,k-1)。
(P103b-3)第二子矩阵生成处理:执行第二邻接处理n-1次,以生成n行×(n-1)列的第二子矩阵。
(P103b-4)第二子矩阵分配处理:将第二子矩阵的第1行至第n-1行分配给生成矩阵G的第(n-1)j行至第(n-1)j+n-2行,以生成对应于生成矩阵G的第(n-1)j行至第(n-1)j+n-2行的子矩阵(j=0,1,...,k-1)。
(P103b-5)即如下处理:随着第二邻接处理和第二子矩阵分配处理中的j值从初始值0变化到最终值k-1,执行第二邻接处理、第二子矩阵生成处理和第二子矩阵分配处理k次,同时每当执行了第二邻接处理、第二子矩阵生成处理和第二子矩阵分配处理时,j的值增加1。
(P103b-6)即如下处理:从通过k次第二划分和分配处理而分配的从第0行至第(n-1)(k-1)+n-2行的子矩阵,获得k(n-1)行×n(n-1)列的生成矩阵G。
在该实施例中,用于第一子式矩阵的步骤ST4-2至ST4-4被省略。因此,可以从以上描述的第二子式矩阵、第二子矩阵、第二邻接处理、第二子矩阵生成处理和第二子矩阵分配处理中省略术语“第二”。
此外,与生成矩阵G的变化相关,在为了计算分存部分数据而从生成矩阵G中左侧结合的矩阵中,分存秘密数据K(1)至K(n-1)被安排在随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)的右侧,如在图31和图32中的步骤ST8’所示。该安排与上述图7中的步骤ST8相反。
如图33和5作为示例(n=4,n=5)所示的,通过分存部分数据生成部105生成n(n-1)个分存部分数据D(j,i)。
在该情况下,分存部分生成部的功能(f105-3)改变为功能(f105-3’)。
(f105-3’)根据随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)、分存秘密数据K(1),...,K(j),...,K(n-1)和生成矩阵G(在GF(2)上执行了计算),计算矩阵(U(0,1),...,U(h,g),...,U(k-2,n-1),K(1),...,K(j),...,K(n-1))和生成矩阵G的乘积,并将计算结果的第j×(n-1)+i行中的数据分配给D(j,i),以计算出n(n-1)个分存部分数据D(j,i)(0≤j≤n-1,0≤i≤n-2)。
现在,将描述如上所述地配置的秘密分存系统的操作。
(分存处理的操作)
假设如前述那样执行图31所示的步骤ST1至ST3,并且处理随后进行到步骤ST4’。
生成矩阵生成部103向控制部109输出分存数为n且门限为k的生成矩阵G(任意k个列向量是满秩的,矩阵G的大小为k(n-1)×n(n-1),并且列向量的大小为k(n-1)×(n-1))(ST4’)。
参照图28至30,将描述步骤ST4’中的生成生成矩阵G的处理过程。
如图30所示,生成矩阵生成部103从存储部101中检索分存数为n且门限为k的生成矩阵G(ST4-1)。如果存在适当的生成矩阵G,则生成矩阵生成部103进行到ST4-8。如果没有适当的生成矩阵G,则如图11所示,生成矩阵生成部103生成n行×(n-1)列的第二子式矩阵i,在该子式矩阵中第0行为零向量,并且第0行以下的(n 1)×(n-1)矩阵由单位矩阵构成(ST4-5)。
随后,如图12至14的上部以及图28所示,生成矩阵生成部103将(最右侧的)第二子式矩阵i的各列向下循环移位j次,以获得一个n×(n-1)矩阵,作为新的第二子式矩阵i+1。然后,生成矩阵生成部103将该第二子式矩阵i+1邻接地放置在尚未进行循环移位的第二子式矩阵i的右侧(ST4-6)。随着i从1变化到n-1,生成矩阵生成部103重复ST4-6,以生成n×n(n-1)的第二子矩阵。然后,如图29所示,生成矩阵生成部103将第二子矩阵的第1行至第n-1行分配给生成矩阵G的第(n-1)j行至(n-1)j+n-2行,同时增加j(ST4-7’)。随着j从0变化到k-1,生成矩阵生成部103重复ST4-6至ST4-7’,以生成生成矩阵G。在(4,5)门限方案的例子中,如图27所示地构成生成矩阵G。
随后,生成矩阵生成部103将得到的生成矩阵G输出给控制部109(ST4-8)。
如上所述,生成生成矩阵G的处理完成。
假设在完成步骤ST4后,如前所述地执行图31所示的步骤ST5至ST7,并且处理进行到步骤ST8’。
分存部分数据生成部105计算生成矩阵G和由随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1)和分存秘密数据K(1),...,K(j),...,K(n-1)构成的矩阵(U(0,1),...,U(h,g),...,U(k-2,n-1),K(1),...,K(j),...,K(n-1))的乘积(ST8’),以计算n(n-1)个分存部分数据D(j,i)。在(4,5)门限方案的例子中,如图33和5所示,生成了20个分存部分数据D(j,i)。例如,图32示出了计算分存部分数据D(0,0)的处理。
然后,如前所述地执行步骤ST9和ST10以完成分存处理。
(恢复处理的操作)
如上面参照图17所述执行恢复处理的操作。严格来讲,由于生成矩阵G的比特模式与上述的不同,所以以下的也不同于上面的描述:由生成矩阵G的任意k个列矢量构成的子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))的比特模式和生成矩阵G的逆子矩阵(g(D(i_1)),...,g(D(i_j)),...,g(D(i_k)))-1的比特模式。然而,尽管比特模式不同,但恢复处理的操作仍然如上所述地执行。
如上所述,本实施例即使在被配置为产生与根据第一实施例不同的比特模式的生成矩阵G时,仍能取得与第一实施例相似的效果。
此外,根据第一实施例的步骤ST4-2至ST4-4被省略,这使生成矩阵G的生成算法得以简化。另外,虽然省略了步骤ST4-2至ST4-4,使步骤ST4-6至ST4-7’的重复次数增加了一次,但由于是重复相似的步骤,生成算法还是被简化了。
以上针对本实施例所描述的技术可作为由计算机执行的程序而存储在存储介质中,该存储介质包括用于分发的磁盘(软盘、硬盘等)、光盘(CD-ROM、DVD等)、磁光盘(MO)和半导体存储器。
能用于本发明的目的的存储介质并不限于以上所列的介质,任何类型的存储介质都可被用于本发明的目的,只要它们是计算机可读的介质即可。
另外,根据从存储介质安装在计算机中的程序指令而在计算机上运行的OS(操作系统)、数据库管理软件和/或例如网络软件的中间件可以参与实现上述实施例的各个处理。
另外,能用于本发明的目的的存储介质不限于独立于计算机的介质,还包括适于下载通过LAN和/或因特网传输的程序并永久或临时存储该程序的存储介质。
不需要对于上述实施例使用单个存储介质。换句话说,对于上述实施例,可以使用多个存储介质来执行上述各个处理中的任意一个。这样的存储介质可以具有任何配置。
对于本发明来说,计算机根据存储在上述的存储介质中的一个或多于一个的程序来执行优选实施例的各种处理。更具体地,计算机可以是单独的计算机或通过借助网络连接多个计算机而实现的系统。
对于本发明来说,计算机不仅包括个人计算机,还包括包含在信息处理装置中的处理器和微型计算机。换句话说,计算机一般指的是能借助计算机程序实现本发明功能特征的装置和设备。
本发明决不限于上述实施例,可在不脱离本发明精神和范围的情况下以多种不同方式修改上述实施例。另外,对于本发明而言,上述实施例中的任意部件能以各种合适的方式不同地组合。例如,上述实施例中的一些部件可被省略。另选地,对于本发明而言,不同实施例的部件可以以各种不同的方式适当地组合。
Claims (5)
1、一种基于(k,n)门限方案的秘密分存装置,该装置被配置为分别将由秘密信息S被划分成的n个分存信息D(0),...,D(n-1)分发给n个存储装置,以及从这n个分存信息中的任意k个恢复秘密信息S,其中n≥k≥4,该装置的特征在于其包括:
生成矩阵生成装置(103),其被配置为生成GF(2)的生成矩阵G,该矩阵包括n个列向量,每个列向量的大小为k(n-1)行×(n-1)列,这n个列向量中的任意k个都是满秩的,其中生成矩阵G的大小为k(n-1)行×n(n-1)列,GF(2)是2阶有限域;
存储装置(101),其被配置为在分发分存信息D(0)至D(n-1)之前,临时存储秘密信息S;
划分秘密数据生成装置(105),其被配置为将秘密信息划分为n-1个,并为划分结果分配从1变化到n-1的行号j,以生成具有相同大小的n-1个第一划分秘密数据K(1),...,K(j),...,K(n-1),其中1≤j≤n-1;
随机数数据生成装置(105),其被配置为生成(k-1)(n-1)个与各个划分秘密数据均具有相同大小的随机数,并为这些随机数分配行号h和列号g,以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1),其中0≤h≤k-2,1≤g≤n-1;
分存部分数据计算装置(105),其被配置为计算划分秘密数据和随机数数据的矩阵(K(1),...,K(j),...,K(n-1),U(0,1),...,U(h,g),...,U(k-2,n-1))和生成矩阵G的乘积,其中该计算在GF(2)上执行的,并且分存部分数据计算装置(105)被配置为将计算结果的第j×(n-1)+i列分配给分存部分数据D(j,i),以计算n(n-1)个分存部分数据D(j,i),其中0≤j≤n-1,0≤i≤n-2;
头信息生成装置(109),其被配置为给具有相同行号j的n-1个分存部分数据D(j,0)至D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1);和
分存信息分发装置(109,111),其被配置为分别将n个分存信息D(0),...,D(j),...,D(n-1)分发给n个存储装置,所述分存信息包括具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)。
2、根据权利要求1所述的秘密分存装置,其特征在于分存信息分发装置分别将n个列向量放置在n个分存信息D(0),...,D(n-1)中,并且
所述秘密分存装置还包括:
被配置为从自所述n个存储装置中的任意k个收集的k个分存信息中获得k个列向量的装置(109);
被配置为从这k个列向量形成生成矩阵的子矩阵并计算该子矩阵的逆矩阵的装置(104);
被配置为计算所收集的k个分存信息的矩阵与所述逆矩阵的乘积以获得划分秘密数据K(1),...,K(j),...,K(n-1)的装置(107),其中所述计算是在GF(2)上进行的;和
被配置为从得到的划分秘密数据K(1),...,K(j),...,K(n-1)恢复秘密信息S的装置(109)。
3、一种由根据权利要求1的秘密分存装置执行的秘密分存方法,该方法的特征在于其包括以下步骤:
在存储装置中存储输入的分存数n和输入的门限k;
由生成矩阵生成装置生成n行×(n-1)列的第一子式矩阵,在该子式矩阵中第0行以下的(n-1)行×(n-1)列与单位矩阵具有横向对称关系;
由生成矩阵生成装置执行第一邻接处理,即,将最左侧的第一子式矩阵的各列向上循环移位一次,以获得一个n行×(n-1)列的新的第一子式矩阵,并将该第一子式矩阵邻接地放置在尚未进行循环移位的第一子式矩阵的左侧;
由生成矩阵生成装置执行第一邻接处理n-1次,以生成n行×n(n-1)列的第一子矩阵;
由生成矩阵生成装置执行第一子矩阵分配处理,即,将第一子矩阵的第1行至第n-1行分配给生成矩阵G的第0行至第n-2行,以生成对应于生成矩阵G的第0行至第n-2行的子矩阵;
由生成矩阵生成装置执行生成n行×(n-1)列的第二子式矩阵的处理,在该子式矩阵中第0行是零向量并且第0行以下的(n-1)行×(n-1)列对应于单位矩阵;
由生成矩阵生成装置执行第二邻接处理,即,将最左侧的第二子式矩阵的各列向下循环移位j次,以获得一个n行×(n-1)列的新的第二子式矩阵,并将该第二子式矩阵邻接地放置在尚未进行循环移位的第二子式矩阵的右侧,其中j=0,1,...,k-2;
由生成矩阵生成装置执行第二子矩阵生成处理,即,执行第二邻接处理n-1次以生成n行×n(0n-1)列的第二子矩阵;
由生成矩阵生成装置执行第二子矩阵分配处理,即,将第二子矩阵的第1行至第n-1行分配给生成矩阵G的第(n-1)(j+1)行至第(n-1)(j+1)+n-2行,以生成对应于生成矩阵G的第(n-1)(j+1)行至第(n-1)(j+1)+n-2行的子矩阵,其中j=0,1,...,k-2;
由生成矩阵生成装置执行如下处理:随着用于第二邻接处理和第二子矩阵分配处理的j的值从初始值0变化到最终值k-2,执行第二邻接处理、第二子矩阵生成处理和第二子矩阵分配处理k-1次,同时每当执行了第二子矩阵生成处理和第二子矩阵分配处理时,j的值增加1;以及
由生成矩阵生成装置执行如下处理:使用通过第一子矩阵分配处理的分配而得到的从第0行至第n-2行的子矩阵和通过第二子矩阵分配处理的分配而得到的从第n-1行至第(n-1)(k-1)+n-2行的子矩阵,生成k(n-1)行×n(n-1)列的生成矩阵G。
4、一种基于(k,n)门限方案的秘密分存装置,该装置被配置为分别将由秘密信息S被划分成的n个分存信息D(0),...,D(n-1)分发给n个存储装置,以及从这n个分存信息中的任意k个恢复秘密信息S,其中n≥k≥4,该装置的特征在于其包括:
生成矩阵生成装置(103),其被配置为生成GF(2)的生成矩阵G,该矩阵包括n个列向量,每个列向量的大小为k(n-1)行×(n-1)列,这n个列向量中的任意k个都是满秩的,其中生成矩阵G的大小为k(n-1)行×n(n-1)列,并且GF(2)是2阶有限域;
存储装置(101),其被配置为在分发分存信息D(0)至D(n-1)前,临时存储秘密信息S;
划分秘密数据生成装置(105),其被配置为将秘密信息划分为n-1个,并为划分结果分配从1变化到n-1的行号j,以生成具有相同大小的n-1个第一划分秘密数据K(1),...,K(j),...,K(n-1),其中1≤j≤n-1;
随机数数据生成装置(105),其被配置为生成(k-1)(n-1)个与各个划分秘密数据均具有相同大小的随机数,并为这些随机数分配行号h和列号g,以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1),其中0≤h≤k-2,1≤g≤n-1;
分存部分数据计算装置(105),其被配置为计算随机数数据和划分秘密数据的矩阵(U(0,1),...,U(h,g),...,U(k-2,n-1),K(1),...,K(j),...,K(n-1))与生成矩阵G的乘积,其中该计算是在GF(2)上进行的,并分存部分数据计算装置(105)被配置为将计算结果的第j×(n-1)+i列分配给分存部分数据D(j,i),以计算n(n-1)个分存部分数据D(j,i),其中0≤j≤n-1,0≤i≤n-2;
头信息生成装置(109),其被配置为给具有相同行号j的n-1个分存部分数据D(j,0)至D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1);和
分存信息分发装置(109,111),其被配置为分别将n个分存信息D(0),...,D(j),...,D(n-1)分发给n个存储装置,所述分存信息包括具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)。
5、根据权利要求4所述的秘密分存装置,其特征在于分存信息分发装置分别将n个列向量放置在n个分存信息D(0),...,D(n-1)中,并且
所述秘密分存装置还包括:
被配置为从自所述n个存储装置中的任意k个收集的k个分存信息中获得k个列向量的装置(109);
被配置为从这k个列向量形成生成矩阵的子矩阵并计算该子矩阵的逆矩阵的装置(104);
被配置为计算所收集的k个分存信息的矩阵与所述逆矩阵的乘积以获得划分秘密数据K(1),...,K(j),...,K(n-1)的装置(107),其中所述计算是在GF(2)上进行的;和
被配置为从得到的划分秘密数据K(1),...,K(j),...,K(n-1)恢复秘密信息S的装置(109)。
6、一种基于(k,n)门限方案的秘密分存装置,该装置被配置为分别将由秘密信息S被划分成的n个分存信息D(0),...,D(n-1)分发给n个存储装置,以及从这n个分存信息中的任意k个恢复秘密信息S,其中n≥k≥4,该装置的特征在于其包括:
存储装置(101),其被配置为在分发分存信息D(0)至D(n-1)前,临时存储秘密信息S;
第一划分秘密数据生成装置(105a),其被配置为将秘密信息划分为n-1个,并为划分结果分配从1变化到n-1的行号j,以生成具有相同大小的n-1个第一划分秘密数据K(1),...,K(j),...,K(n-1),其中1≤j≤n-1;
第二划分秘密数据生成装置(105a),其被配置为创建与各个划分秘密数据具有相同大小的零值,并为创建结果分配行号j=0,以生成第二划分秘密数据K(0);
第一随机数数据生成装置(105a),其被配置为创建与各个划分秘密数据均具有相同大小的k-1个零值数据,并为所述零值数据分配行号h和列号g=0,以生成随机数数据U(0,0),...,U(h,0),...,U(k-2,0),其中0≤h≤k-2;
第二随机数数据生成装置(105a),其被配置为生成与各个划分秘密数据均具有相同大小的k-1个随机数,并为这些随机数分配行号h和列号g,以生成随机数数据U(0,1),...,U(h,g),...,U(k-2,n-1),其中0≤h≤k-2,1≤g≤n-1;
随机数数据计算装置(105a),其被配置为根据随机数数据U(0,0),...,U(h,g),...,U(k-2,n-1),计算n(n-1)个随机数数据R(j,i)=U(0,h×j+i+1(mod n))(+)...(+)U(h,h×j+i+1(mod n))(+)...(+)U(k-1,h×j+i+1(mod n)),其中(+)是代表异或的符号;
分存部分数据计算装置(105a),其被配置为根据分存部分数据K(0),K(1),...,K(j),...,K(n-1)和随机数数据R(0,0),...,R(i,j),...,R(n-1,n-2),计算n(n-1)个分存部分数据D(j,i)=K(j-i(mod n))(+)R(j,i);
头信息生成装置(109a),其被配置为为包含在生成的分存部分数据中的具有相同行号j的n-1个分存部分数据D(j,0)至D(j,n-2)中的每一个分配行号j,以生成n个头信息H(0),...,H(j),...,H(n-1);和
分存信息分发装置(109a,111),其被配置为分别将n个分存信息D(0),...,D(j),...,D(n-1)分发给n个存储装置,所述分存信息包括具有相同行号j的头信息H(j)和分存部分数据D(j,0)至D(j,n-2)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-077421 | 2007-03-23 | ||
JP2007077421A JP4304215B2 (ja) | 2007-03-23 | 2007-03-23 | 秘密分散装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101276524A true CN101276524A (zh) | 2008-10-01 |
CN101276524B CN101276524B (zh) | 2011-10-19 |
Family
ID=39774704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101092433A Active CN101276524B (zh) | 2007-03-23 | 2008-03-21 | 秘密分存装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8077863B2 (zh) |
JP (1) | JP4304215B2 (zh) |
CN (1) | CN101276524B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873212A (zh) * | 2010-06-09 | 2010-10-27 | 中国农业大学 | 门限秘密信息分配、还原装置及方法 |
CN101882992A (zh) * | 2010-06-21 | 2010-11-10 | 中国农业大学 | 门限秘密信息分配、还原方法及装置 |
CN102664731A (zh) * | 2012-04-09 | 2012-09-12 | 中科院成都信息技术有限公司 | 电子选票信息的加密及快速处理方法 |
CN106550616A (zh) * | 2015-07-23 | 2017-03-29 | Nec平台株式会社 | 过滤系统、管理装置、过滤方法和管理程序 |
CN107430829A (zh) * | 2015-03-18 | 2017-12-01 | 日本电信电话株式会社 | 份额恢复系统、份额恢复装置、份额恢复方法以及程序 |
CN110457936A (zh) * | 2019-07-01 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 数据交互方法、装置和电子设备 |
CN113474829A (zh) * | 2019-02-22 | 2021-10-01 | 松下电器产业株式会社 | 使用云服务的安全秘密共享存储系统 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4917453B2 (ja) * | 2007-02-22 | 2012-04-18 | Kddi株式会社 | 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム |
JP5134281B2 (ja) * | 2007-04-12 | 2013-01-30 | Kddi株式会社 | 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム |
JP5065795B2 (ja) * | 2007-08-03 | 2012-11-07 | Kddi株式会社 | 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム |
JP5241325B2 (ja) * | 2008-05-27 | 2013-07-17 | Kddi株式会社 | 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム |
US7995764B2 (en) * | 2008-08-28 | 2011-08-09 | Red Hat, Inc. | Sharing a secret using hyperplanes over GF(2m) |
US7995765B2 (en) * | 2008-08-28 | 2011-08-09 | Red Hat, Inc. | Sharing a secret using hyperplanes over GF(q) |
US8520854B2 (en) | 2008-08-28 | 2013-08-27 | Red Hat, Inc. | Sharing a secret using polynomials over polynomials |
US8675877B2 (en) * | 2008-08-29 | 2014-03-18 | Red Hat, Inc. | Sharing a secret via linear interpolation |
US8151333B2 (en) * | 2008-11-24 | 2012-04-03 | Microsoft Corporation | Distributed single sign on technologies including privacy protection and proactive updating |
US20100131752A1 (en) * | 2008-11-26 | 2010-05-27 | Ulrich Flegel | Method and system for invalidation of cryptographic shares in computer systems |
US9124423B2 (en) | 2010-05-14 | 2015-09-01 | International Business Machines Corporation | Iterative data secret-sharing transformation |
JP5669204B2 (ja) * | 2011-03-17 | 2015-02-12 | Necソリューションイノベータ株式会社 | 分散情報管理システム、分散情報管理方法、および分散情報管理プログラム |
US10447471B2 (en) * | 2012-06-05 | 2019-10-15 | Pure Storage, Inc. | Systematic secret sharing |
JP6008316B2 (ja) * | 2012-08-24 | 2016-10-19 | パナソニックIpマネジメント株式会社 | 秘密分散装置および秘密分散プログラム |
US9430655B1 (en) * | 2012-12-28 | 2016-08-30 | Emc Corporation | Split tokenization |
US9514326B1 (en) * | 2013-10-15 | 2016-12-06 | Sandia Corporation | Serial interpolation for secure membership testing and matching in a secret-split archive |
US10074293B2 (en) * | 2014-01-17 | 2018-09-11 | Nippon Telegraph And Telephone Corporation | Secret calculation method, secret calculation system, sorting device, and program |
JP2015170057A (ja) * | 2014-03-05 | 2015-09-28 | 富士通株式会社 | 秘匿検索装置、秘匿検索方法および秘匿検索プログラム |
WO2015177789A1 (en) * | 2014-05-20 | 2015-11-26 | B. G. Negev Technologies And Application Ltd., At Ben-Gurion Universitiy | A method for establishing a secure private interconnection over a multipath network |
US9461821B1 (en) * | 2014-06-30 | 2016-10-04 | Emc Corporation | System and method for key material protection on devices using a secret sharing scheme |
US9954680B1 (en) * | 2015-12-18 | 2018-04-24 | EMC IP Holding Company LLC | Secure management of a master encryption key in a split-key based distributed computing environment |
SG11201908666VA (en) * | 2017-03-21 | 2019-10-30 | Tora Holdings Inc | Secure order matching by distributing data and processing across multiple segregated computation nodes |
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US11456862B2 (en) * | 2017-07-05 | 2022-09-27 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and recording medium |
US10623181B2 (en) | 2018-01-02 | 2020-04-14 | Bank Of America Corporation | Security system utilizing vaultless tokenization and encryption |
JP7155727B2 (ja) * | 2018-08-07 | 2022-10-19 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム |
CN109308609B (zh) * | 2018-09-28 | 2021-07-30 | 北京金山安全软件有限公司 | 一种交易确认方法、装置、数字钱包设备及可读存储介质 |
US11212082B2 (en) * | 2019-09-30 | 2021-12-28 | Pq Solutions Limited | Ciphertext based quorum cryptosystem |
CN115001687B (zh) * | 2022-08-04 | 2022-10-25 | 广州思涵信息科技有限公司 | 一种基于秘密共享的身份隐私数据分布式存储方法和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485474A (en) * | 1988-02-25 | 1996-01-16 | The President And Fellows Of Harvard College | Scheme for information dispersal and reconstruction |
EP0695056B1 (en) * | 1994-07-29 | 2005-05-11 | Canon Kabushiki Kaisha | A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method |
US5764767A (en) * | 1996-08-21 | 1998-06-09 | Technion Research And Development Foundation Ltd. | System for reconstruction of a secret shared by a plurality of participants |
DE69917356T2 (de) * | 1998-02-13 | 2005-02-17 | Hitachi, Ltd. | Sicherheitstechnik an einem Computernetzwerk |
US6182214B1 (en) * | 1999-01-08 | 2001-01-30 | Bay Networks, Inc. | Exchanging a secret over an unreliable network |
JP4676695B2 (ja) | 2002-12-19 | 2011-04-27 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ分割方法、データ分割装置およびコンピュータプログラム |
KR100583635B1 (ko) * | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | 다수의 동작 모드들을 지원하는 암호화 장치 |
WO2005076518A1 (en) * | 2004-02-10 | 2005-08-18 | Ntt Communications Corporation | Secret information management scheme based on secret sharing scheme |
CN1925490A (zh) * | 2006-09-21 | 2007-03-07 | 中国船舶重工集团公司第七○九研究所 | 移动自组织网络中基于多项式组的密钥预共享安全引导模型 |
-
2007
- 2007-03-23 JP JP2007077421A patent/JP4304215B2/ja active Active
-
2008
- 2008-03-19 US US12/051,524 patent/US8077863B2/en active Active
- 2008-03-21 CN CN2008101092433A patent/CN101276524B/zh active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873212B (zh) * | 2010-06-09 | 2012-04-18 | 中国农业大学 | 门限秘密信息分配、还原装置及方法 |
CN101873212A (zh) * | 2010-06-09 | 2010-10-27 | 中国农业大学 | 门限秘密信息分配、还原装置及方法 |
CN101882992A (zh) * | 2010-06-21 | 2010-11-10 | 中国农业大学 | 门限秘密信息分配、还原方法及装置 |
CN101882992B (zh) * | 2010-06-21 | 2012-12-12 | 中国农业大学 | 门限秘密信息分配、还原方法及装置 |
CN102664731A (zh) * | 2012-04-09 | 2012-09-12 | 中科院成都信息技术有限公司 | 电子选票信息的加密及快速处理方法 |
CN102664731B (zh) * | 2012-04-09 | 2014-06-25 | 中科院成都信息技术股份有限公司 | 电子选票信息的加密及快速处理方法 |
CN107430829B (zh) * | 2015-03-18 | 2020-12-01 | 日本电信电话株式会社 | 份额恢复系统、装置、方法以及存储介质 |
CN107430829A (zh) * | 2015-03-18 | 2017-12-01 | 日本电信电话株式会社 | 份额恢复系统、份额恢复装置、份额恢复方法以及程序 |
CN106550616A (zh) * | 2015-07-23 | 2017-03-29 | Nec平台株式会社 | 过滤系统、管理装置、过滤方法和管理程序 |
CN106550616B (zh) * | 2015-07-23 | 2018-12-04 | Nec平台株式会社 | 过滤系统、管理装置、过滤方法和计算机可读介质 |
US10135787B2 (en) | 2015-07-23 | 2018-11-20 | Nec Platforms, Ltd. | Filtering system, management device, filtering method and management program |
CN113474829A (zh) * | 2019-02-22 | 2021-10-01 | 松下电器产业株式会社 | 使用云服务的安全秘密共享存储系统 |
CN113474829B (zh) * | 2019-02-22 | 2024-03-15 | 松下控股株式会社 | 使用云服务的安全秘密共享存储系统 |
CN110457936A (zh) * | 2019-07-01 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 数据交互方法、装置和电子设备 |
US10873452B1 (en) | 2019-07-01 | 2020-12-22 | Advanced New Technologies Co., Ltd. | Secret sharing data exchange for generating a data processing model |
Also Published As
Publication number | Publication date |
---|---|
US20080232580A1 (en) | 2008-09-25 |
CN101276524B (zh) | 2011-10-19 |
US8077863B2 (en) | 2011-12-13 |
JP4304215B2 (ja) | 2009-07-29 |
JP2008233823A (ja) | 2008-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101276524B (zh) | 秘密分存装置和方法 | |
JP4334582B2 (ja) | 秘密分散装置、方法及びプログラム | |
US20180011996A1 (en) | Secret shared random access machine | |
JP4783119B2 (ja) | 秘密分散装置、方法及びプログラム | |
US8000472B2 (en) | Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium | |
Faber et al. | Three-party ORAM for secure computation | |
JP4197710B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
CN107819569A (zh) | 登录信息的加密方法及终端设备 | |
JP6989006B2 (ja) | 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム | |
CN102224704A (zh) | 内容解密处理装置、内容解密处理方法及集成电路 | |
CN111008201A (zh) | 并行修改和读取状态树的方法和装置 | |
CN103164660B (zh) | 认证字符串是否被自动机受理的系统 | |
JP5388727B2 (ja) | 情報処理システム及び情報処理装置及びサーバ装置及び情報処理方法及びプログラム | |
CN109478996A (zh) | 用于执行混淆算术的设备和方法 | |
Yang et al. | An effective and scalable VM migration strategy to mitigate cross-VM side-channel attacks in cloud | |
CN101567781A (zh) | 利用排序产生的序号码加密的方法及密码机 | |
KR20230166281A (ko) | 양자키분배 네트워크장치 및 양자키분배 네트워크 운용 방법 | |
JP6100922B2 (ja) | 通信制御装置、通信制御方法、プログラムおよび通信システム | |
EP3483867B1 (en) | System, device, method, and program for indexing a secret-shared array with secure multiparty computations | |
CN115510490A (zh) | 一种非密钥共享的加密数据查询方法、装置、系统及设备 | |
JP6067596B2 (ja) | ペアリング演算装置、マルチペアリング演算装置、プログラム | |
CN103166951A (zh) | 通过遗失通信发送消息的系统 | |
JPWO2016136201A1 (ja) | 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体 | |
WO2023243141A1 (ja) | 連合学習システム及び連合学習方法 | |
JP7173282B2 (ja) | データ置換装置、データ置換方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |