秘密计算装置、秘密计算系统、秘密计算方法以及程序

申请号 CN202180099030.0 申请日 2021-06-08 公开(公告)号 CN117461068A 公开(公告)日 2024-01-26
申请人 日本电信电话株式会社; 发明人 须藤弘贵; 五十岚大;
摘要 使用将L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}隐匿化的[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],得到针对p=0,...,m‑1对x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的表示kp的元素的个数cp进行了隐匿化后的[c0],...,[cm‑1],得到针对p=0,...,m‑1对cp=L时eqp=T、不是cp=L时eqp=F的eqp进行了隐匿化的[eq0],...,[eqm‑1],输出包含相互进行了关联的[kp]以及[eqp]的数据结构作为X0,...,XL‑1的交集的隐匿化运算结果。
权利要求

1.一种秘密计算装置,在将L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}隐匿化的状态下,得到表示所述集合X0,...,XL‑1的交集的隐匿化信息的隐匿化运算结果,
L是2以上的整数,i=0,...,L‑1,r(i)是1以上的整数,j(i)=0,...,r(i)‑1,m是1以上的整数,k0,...,km‑1是相互不同的密钥信息,p=0,...,m‑1,[α]是α的隐匿化信息,所述秘密计算装置具有:
(A)计数部,
各元素xi,j(i)表示所述密钥信息k0,...,km‑1中的任一个,元素x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的表示密钥信息kp的元素的个数为cp,
所述计数部使用隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到计数结果[c0],...,[cm‑1];
(B)等号判定部,
在cp=L时eqp=T,在不是cp=L时eqp=F,T以及F相互不同,
所述等号判定部使用所述计数结果[c0],...,[cm‑1],通过秘密计算得到等号判定结果[eq0],...,[eqm‑1];以及
(C)输出标志赋予部,输出包含相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]的所述隐匿化运算结果。
2.如权利要求1所述的秘密计算装置,其中,
所述计数部使用所述隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,
[xL‑1,r(L‑1)‑1],通过秘密计算进一步得到隐匿化密钥信息[k0],...,[km‑1]。
3.如权利要求2所述的秘密计算装置,其中,
n是大于m的整数,
(A)所述计数部得到列([f],[k],[c]),
列[f]是包含m个有效标志[f0],...,[fm‑1]以及n‑m个虚拟标志[fm],...,[fn‑1]的列,f0,...,fm‑1是B1,fm,...,fn‑1是B0,B1以及B0相同不同,
列[k]是包含m个隐匿化密钥信息[k0],...,[km‑1]以及n‑m个虚拟信息[km],...,[kn‑1]的列,
列[c]是包含m个所述计数结果[c0],...,[cm‑1]以及n‑m个虚拟信息[cm],...,[cn‑1]的列,
针对p=0,...,m‑1,有效标志[fp]、隐匿化密钥信息[kp]和计数结果[cp]相互进行关联,
针对q=m,...,n‑1,虚拟标志[fq]、虚拟信息[kq]和虚拟信息[cq]相互进行关联,(B)所述等号判定部使用所述列([f],[k],[c]),通过秘密计算得到所述等号判定结果[eq0],...,[eqm‑1]以及虚拟信息[eqm],...,[eqn‑1],
(C)所述输出标志赋予部输出所述隐匿化运算结果,所述隐匿化运算结果包含针对p=
0,...,m‑1相互进行了关联的所述隐匿化密钥信息[kp]以及所述等号判定结果[eqp]、以及针对q=m,...,n‑1相互进行了关联的虚拟信息[kq]以及虚拟信息[eqq]。
4.如权利要求1至3中任一项所述的秘密计算装置,其中,
L是3以上的整数。
5.一种秘密计算系统,具有权利要求1至4中任一项所述的秘密计算装置。
6.一种秘密计算装置的秘密计算方法,在将L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}隐匿化的状态下,得到表示所述集合X0,...,XL‑1的交集的隐匿化信息的隐匿化运算结果,
L是2以上的整数,i=0,...,L‑1,r(i)是1以上的整数,j(i)=0,...,r(i)‑1,m是1以上的整数,k0,...,km‑1是相互不同的密钥信息,p=0,...,m‑1,[α]是α的隐匿化信息,所述秘密计算方法具有:
(A)计数步骤,
各元素xi,j(i)表示所述密钥信息k0,...,km‑1中的任一个,元素x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的表示密钥信息kp的元素的个数为cp,
在所述计数步骤中,在计数部中,使用隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到计数结果[c0],...,[cm‑1];
(B)等号判定步骤,
在cp=L时eqp=T,在不是cp=L时eqp=F,T以及F相互不同,
在所述等号判定步骤中,在等号判定部中,使用所述计数结果[c0],...,[cm‑1],通过秘密计算得到等号判定结果[eq0],...,[eqm‑1];以及
(C)输出标志赋予步骤,在输出标志赋予部中,输出包含相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]的所述隐匿化运算结果。
7.一种程序,用于使计算机作为权利要求1至4中任一项所述的秘密计算装置发挥功能。

说明书全文

秘密计算装置、秘密计算系统、秘密计算方法以及程序

技术领域

[0001] 本发明涉及加密技术,特别是涉及秘密计算技术。

背景技术

[0002] 将集合A,B的交集表述为A∩B。已知如下秘密交集计算方法:使用集合A,B的隐匿化信息作为输入,在将集合A,B隐匿化的状态下,通过秘密计算得到集合A,B的交集运算结果的隐匿化信息(例如,参照非专利文献1等)。
[0003] 现有技术文献
[0004] 非专利文献
[0005] 非专利文献1:濱田浩気,五十嵐大,千田浩司,“秘密計算上の関係代数演算アルゴリズムの改良(Improved Algorithms for Computing Relational Algebra Operators for Secure Function Evaluation)”,通信学技報LOIS2012‑82,Vol.112,No.446,pp.76‑82,2013.

发明内容

[0006] 发明要解决的课题
[0007] 但是,现有的秘密交集计算方法限于使用两个集合的隐匿化信息作为输入的情况。因此,为了使用三个以上的集合的隐匿化信息作为输入,来得到该三个以上的集合的交集运算结果的隐匿化信息,需要反复进行使用两个集合的隐匿化信息作为输入的秘密交集计算。然而,在该方法中,随着成为交集运算的对象的集合的个数增加,回合(round)数增加,此外,在回合间一部分处理变得冗余,因此存在计算成本变大的课题。
[0008] 本发明是鉴于这样的问题而完成的,其目的在于提供如下技术:不仅能够将两个集合的隐匿化信息作为直接输入来处理,还能够将三个以上的集合的隐匿化信息作为直接输入来处理,并且还能够直接得到该三个以上的集合的交集运算结果的隐匿化信息。
[0009] 用于解决课题的手段
[0010] 在本发明中,如以下那样,在将L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}隐匿化的状态下,得到表示集合X0,...,XL‑1的交集的隐匿化信息的隐匿化运算结果。这里,L是2以上的整数,i=0,...,L‑1,r(i)是1以上的整数,j(i)=0,...,r(i)‑1,m是1以上的整数,k0,...,km‑1是相互不同的密钥信息,p=0,...,m‑1,[α]是α的隐匿化信息。
[0011] (A)在计数部中,使用隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到计数结果[c0],...,[cm‑1]。这里,各元素xi,j(i)表示密钥信息k0,...,km‑1中的任一个,元素x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的表示密钥信息kp的元素的个数为cp。
[0012] (B)在等号判定部中,使用计数结果[c0],...,[cm‑1],通过秘密计算得到等号判定结果[eq0],...,[eqm‑1]。这里,在cp=L时eqp=T,在不是cp=L时eqp=F,T以及F相互不同。
[0013] (C)在输出标志赋予部中,输出包含相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]的隐匿化运算结果。
[0014] 发明的效果
[0015] 由此,不仅能够将两个集合的隐匿化信息作为直接输入来处理,还能够将三个以上的集合的隐匿化信息作为直接输入来处理,并且还能够直接得到该三个以上的集合的交集运算结果的隐匿化信息。附图说明
[0016] 图1是例示了实施方式的秘密计算系统的功能结构的框图
[0017] 图2是例示了实施方式的秘密计算装置的功能结构的框图。
[0018] 图3是用于例示实施方式的秘密计算方法的流程图
[0019] 图4是例示了实施方式的秘密计算装置的硬件结构的框图。

具体实施方式

[0020] 以下,参照附图对本发明的实施方式进行说明。
[0021] [术语的定义]
[0022] 首先,定义在实施方式中使用的记号。
[0023] Xi={xi,0,...,xi,r(i)‑1}表示将xi,0,...,xi,r(i)‑1作为元素的集合。i是集合的索引,i=0,...,L‑1。L是表示集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}的个数的2以上的整数。L也可以是3以上。r(i)是表示集合Xi的元素数的1以上的整数。r(i)既可以是1,也可以是2以上。λ(i)是集合Xi的元素xi,0,...,xi,r(i)‑1的索引,将与集合Xi的索引λ(i)对应的元素表述为xi,λ(i)。其中,λ(i)=0,...,r(i)‑1。属于相同集合Xi的元素xi,0,...,xi,r(i)‑1分别表示的内容(例如,数值、字符(字母、数字等)、日期时间等)相互不同。即,属于相同集合Xi的元素xi,0,...,xi,r(i)‑1分别表示的内容不重复。这与通常的集合的定义相同。
[0024] (κ0,...,κΘ‑1)表示Θ个元素κ0,...,κΘ‑1的列。例如,列(κ0,...,κΘ‑1)是具有元素κ0,...,κΘ‑1的矢量,但不限定于列(κ0,...,κΘ‑1)的实现方式。
[0025] [α]表示α的隐匿化信息。即,[α]表示使α隐匿化而得到的信息。在α为多个元素κ0,...,κP‑1的列(κ0,...,κP‑1)的情况下,α=(κ0,...,κP‑1)所具有的多个元素κ0,...,κP‑1各自的隐匿化信息的列[κ0],...,[κP‑1]也表现为[α]。其中,隐匿化信息[α]是能够进行秘密计算的信息。即,在隐匿了α的状态下,通过使用了隐匿化信息[α]的秘密计算,能够得到针对α的运算结果β的隐匿化信息[β]。秘密计算既可以是基于秘密分散的计算(例如,参照非专利文献1等),也可以是基于同态型加密的计算。在前者的情况下,[α]是将α秘密分散而得到的份额(有时也称为秘密份额(secret share)或秘密分散值)。在后者的情况下,[α]是遵循同态型加密方式将α加密而得到的密文。
[0026] <秘密分散>
[0027] 秘密分散是指将数据分为多个值(份额)而分散到多方的加密方法。秘密分散的一例是(K,N)阈值秘密分散。(K,N)阈值秘密分散是指将原始数据分为N个随机的份额而分散到多方的方式,是具有如下性质的秘密分散法:如果收集K个以上的份额,则能够复原原始的数据,但无法从小于K个的份额得到原始数据的信息。其中,K,N是满足K≤N的正整数。(K,N)阈值秘密分散的具体例是Shamir(沙米尔)秘密分散(例如,参照参考文献1等)、复制秘密分散(例如,参照参考文献2、3等)。
[0028] 参考文献1:Adi Shamir,“How to share a secret,”Communications of the ACM,Vol.22,No.11,pp.612‑613,1979.
[0029] 参考文献2:Mitsuru Ito,Akira Saito,and Takao Nishizeki,“Secret sharing scheme realizing general access structure,”Electronics and Communications in Japan(Part III:Fundamental Electronic Science),Vol.72,No.9,pp.56‑64,1989.
[0030] 参考文献3:Ronald Cramer,Ivan  Damgard,and  Yuval  Ishai,“Share conversion,pseudorandom secret‑sharing and applications to secure 
computation,”In Theory of Cryptography Conference,pp.342‑362.Springer,2005.[0031] 以下,例示基于秘密计算的运算(例如,参照非专利文献1等)。
[0032] <等号判定>
[0033] 基于秘密计算的隐匿化信息[α1],[α2]的等号判定意指如下运算:使用α1,α2的隐匿化信息[α1],[α2](例如,份额)作为输入,输出在α1=α2时β=T(真)、在不是α1=α2时β=F(假)的真假值β∈{T,F}的隐匿化信息[β](例如,份额)。这里,T和F表示相互不同的值(T≠F),例如,既可以是T=1且F=0,也可以是T=0且F=1。以如下方式描述该运算的执行。
[0034] [β]←EQ([α1],[α2])
[0035] <按组计数(Group‑by Count)>
[0036] 基于秘密计算的隐匿化信息[A]的按组计数(Group‑by Count)意指如下处理:将集合A的隐匿化信息[A]作为输入,通过秘密计算,按表示相同的内容(例如,相同的数值、相同的字符、相同的日期时间等)的每个元素将集合A的元素分组,得到表示属于得到各组Gp的元素所表示的内容的密钥信息kp的隐匿化信息(隐匿化密钥信息)[kp]和属于各组Gp的元素的个数cp的隐匿化信息(计数结果)[cp]。这里,p=0,...,m‑1,m是组G0,...,Gm‑1的个数。属于相同组Gp的元素表示相同的内容,属于相互不同的组Gp1以及组Gp2(其中,p1,p2∈{0,...,m‑1})的元素表示相互不同的内容。即,集合A的元素表示密钥信息k0,...,km‑1中的任一个,集合A的元素中的表示密钥信息kp的元素的个数为cp。以如下方式描述该处理的执行。
[0037] ([k],[c])←GroupbyCount([A])(1)
[0038] 这里,[k]表示列([k0],...,[km‑1]),[c]表示列([c0],...,[cm‑1])。
[0039] 实现该处理的实现方法在参考文献4等中公开。
[0040] 参考文献4:菊池亮,濱田浩気,五十嵐大,高橋元“.横断的動線分析を秘密計算でやってみよう(Secure cross‑sector customer‑flow invention),”In SCIS2020,pp.1‑8,2020.
[0041] 此外,为了将集合A的组G0,...,Gm‑1的个数m隐匿化,还可以通过按组计数(Group‑by Count)得到包含虚拟(dummy)信息的[k]以及[c]、和用于区分有效信息和虚拟信息的标志的列[f](例如,参照参考文献4等)。即,基于秘密计算的隐匿化信息[A]的按组计数(Group‑by Count)也可以是将集合A的隐匿化信息[A]作为输入,通过秘密计算得到列([f],[k],[c])的处理。这里,列[f]是包含m个有效标志[f0],...,[fm‑1]以及n‑m个虚拟标志[fm],...,[fn‑1]的列。n是大于m的整数,f0,...,fm‑1是B1,fm,...,fn‑1是B0,B1以及B0相互不同。B1以及B0可以是任意的,但例如既可以是B1=1且B0=0,也可以是B1=0且B0=1。只要被隐匿化,则优选不区分有效标志[f0],...,[fm‑1]和虚拟标志[fm],...,[fn‑1]。列[k]是包含m个隐匿化密钥信息[k0],...,[km‑1]以及n‑m个虚拟信息[km],...,[kn‑1]的列。只要被隐匿化,则优选不区分隐匿化密钥信息[k0],...,[km‑1]和虚拟信息[km],...,[kn‑1]。例如,虚拟信息[km],...,[kn‑1]既可以是被随机选择的信息(例如,随机数),也可以是被随机选择的信息的隐匿化信息。列[c]是包含m个计数结果[c0],...,[cm‑1]以及n‑m个虚拟信息[cm],...,[cn‑1]的列。只要被隐匿化,则优选不区分计数结果[c0],...,[cm‑1]和虚拟信息[cm],...,[cn‑1]。例如,虚拟信息[cm],...,[cn‑1]既可以是被随机选择的信息(例如,随机数),也可以是被随机选择的信息的隐匿化信息。此外,针对p=0,...,m‑1,有效标志[fp]、隐匿化密钥信息[kp]、计数结果[cp]相互进行关联,针对q=m,...,n‑1,虚拟标志[fq]、虚拟信息[kq]、虚拟信息[cq]相互进行关联。在该情况下,基于秘密计算的隐匿化信息[A]的按组计数(Group‑by Count)以如下方式描述。
[0042] ([f],[k],[c])←GroupbyCount([A])(2)
[0043] [第一实施方式]
[0044] 接着,对本发明的第一实施方式进行说明。
[0045] <结构>
[0046] 如图1例示的那样,第一实施方式的秘密计算系统1具有构成为能够通过网络进行通信的W个秘密计算装置11‑0,...,11‑(W‑1)。其中,W是1以上的整数。例如,在秘密计算装置11‑0,...,11‑(W‑1)进行基于秘密分散的秘密计算的情况下,W为2以上的整数,在进行基于同态型加密的秘密计算的情况下,W为1以上的整数。
[0047] 如图2例示的那样,秘密计算装置11‑w(其中,w=0,...,W‑1)具有输入部111‑w、结合部112‑w、计数部113‑w、等号判定部114‑w、输出标志赋予部115‑w、控制部118‑w以及存储部119‑w。秘密计算装置11‑w基于控制部118‑w的控制而执行各处理,向秘密计算装置11‑w输入的数据以及由各处理得到的数据被存储于存储部119‑w,根据需要被读出并用于其他处理。
[0048] <处理>
[0049] 秘密计算装置11‑w(其中,w=0,...,W‑1)通过秘密计算,在将L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}隐匿化的状态下,得到并输出表示集合X0,...,XL‑1的交集∩0≤i≤L‑1Xi的运算结果的隐匿化信息的数据结构的隐匿化运算结果[Z]。如果表示具体例,则例如在L=3、r(0)=4,r(1)=2,r(2)=2、三个集合X0,X1,X2的元素表示字母、X0={a,b,e,g},X1={b,e},X2={a,e}的情况下,集合X0,X1,X2的交集∩0≤i≤2Xi为{e},秘密计算装置11‑w得到并输出表示[e]的隐匿化运算结果[Z]。使用图3,对该秘密计算装置11‑w的秘密计算处理进行说明。
[0050] 向秘密计算装置11‑w的输入部111‑w输入L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}的隐匿化信息[X0],...,[XL‑1]。在上述的具体例中,输入[X0]={[a],[b],[e],[g]},[X1]={[b],[e]},[X2]={[a],[e]}。[X0],...,[XL‑1]既可以是从W个秘密计算装置11‑0,...,11‑(W‑1)中的任一个发送的,也可以是从未图示的其他其他装置发送的(步骤S111‑w)。
[0051] [X0],...,[XL‑1]被输入到结合部112‑w。结合部112‑w得到并输出将[X0],...,[XL‑1]的元素结合后的隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1]的列[U]。例如,结合部112‑w得到并输出将隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1]纵向排列后的以下的列[U]。
[0052] [数学式1]
[0053]
[0054] 例如,在上述的具体例的情况下,
[0055] [X0]={[a],[b],[e],[g]},[X1]={[b],[e]},[X2]={[a],[e]},
[0056] 结合部112‑w得到并输出以下的式(3)的列[U]。
[0057] [数学式2]
[0058]
[0059] [X0],...,[XL‑1]的个数L被发送到等号判定部114‑w,列[U]被发送到计数部113‑w(步骤S112‑w)。
[0060] 向计数部113‑w输入列[U]。计数部113‑w使用列[U]的隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到并输出计数结果[c0],...,[cm‑1]的列[c]=([c0],...,[cm‑1])。其中,j(i)=0,...,r(i)‑1,m为1以上的整数,k0,...,km‑1是相互不同的密钥信息,p=0,...,m‑1。各元素xi,j(i)表示密钥信息k0,...,km‑1中的任一个,元素x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的表示密钥信息kp的元素的个数为cp。
[0061] 进而,计数部113‑w也可以使用隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到隐匿化密钥信息[k0],...,[km‑1]的列[k]=([k0],...,[km‑1])。即,计数部113‑w例如也可以得到并输出以下的式(4)的列([k],[c])。
[0062] ([k],[c])=([k0],...,[km‑1],[c0],...,[cm‑1])   (4)
[0063] 例如,计数部113‑w也可以通过式(1)所示的按组计数(Group‑by Count),以如下方式得到列([k],[c])。
[0064] ([k],[c])←GroupbyCount([U])   (5)
[0065] 例如,在式(3)例示的列[U]的情况下,通过式(5)得到以下的列([k],[c])。
[0066] ([k],[c])=([a],[b],[e],[g],[2],[2],[3],[1])   (6)
[0067] 这里,[k]=([a],[b],[e],[g]),[c]=([2],[2],[3],[1])。
[0068] 与密钥信息k0,...,km‑1对应的列[k]=([k0],...,[km‑1])被发送到输出标志赋予部115‑w,列[c]=([c0],...,[cm‑1])被发送到等号判定部114‑w(步骤S113‑w)。
[0069] 向等号判定部114‑w输入[X0],...,[XL‑1]的个数L以及列[c]=([c0],...,[cm‑1])。等号判定部114‑w使用个数L以及计数结果[c0],...,[cm‑1],通过秘密计算得到并输出等号判定结果[eq0],...,[eqm‑1]。其中,在cp=L时eqp=T,在不是cp=L时eqp=F,T以及F相互不同。例如,既可以是T=1且F=0,也可以是T=0且F=1。例如,等号判定部114‑w对p=0,...,m‑1(即,对[cp]∈[c])进行以下的计算(例如,对p=0,...,m‑1并行地进行计算)。
[0070] [eqp]←EQ([cp],L)
[0071] 例如,在式(6)例示的列[c]的情况下,如果设为T=1且F=0,则得到以下的式(7)所示的等号判定结果。
[0072] [eq0]=[0],[eq1]=[0],[eq2]=[1],[eq3]=[0],[eq4]=[0]   (7)
[0073] 等号判定结果[eq0],...,[eqm‑1]的列[eq]被发送到输出标志赋予部115‑w(步骤S114‑w)。
[0074] 向输出标志赋予部115‑w输入列[k]=([k0],...,[km‑1])以及列[eq]=([eq0],...,[eqm‑1])。输出标志赋予部115‑w输出包含针对p=0,...,m‑1相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]的隐匿化运算结果[Z]=([eq],[k])。例如,输出标志赋予部115‑w输出以下的隐匿化运算结果[Z]。
[0075] [数学式3]
[0076]
[0077] 例如,在式(6)例示的[k]=([a],[b],[e],[g])以及式(7)例示的[eq0]=[0],[eq1]=[0],[eq2]=[1],[eq3]=[0],[eq4]=[0]的情况下,输出以下的隐匿化运算结果[Z]。
[0078] [数学式4]
[0079]
[0080] 在该隐匿化运算结果[Z]中,[1]与对应于集合X0,X1,X2的交集∩0≤i≤2Xi即{e}的[e]进行关联,[0]与其他[a][b][g]进行关联。
[0081] <本实施方式的特征>
[0082] 假设对于集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1},在属于相同集合Xi的元素xi,0,...,xi,r(i)‑1分别表示的内容中没有重复,则与由计数部113‑w得到的计数结果[cp]对应的元素的个数cp(表示密钥信息kp的元素)与集合X0,...,XL‑1的个数L相等也就是指在集合X0,...,XL‑1的每一个中各包含一个表示相同的密钥信息kp的元素。因此,在等号判定部114‑w中成为[eqp]=[T](例如,[1])的密钥信息kp是集合X0,...,XL‑1的交集∩0≤i≤L‑1Xi的运算结果即集合的元素。因此,包含相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]的隐匿化运算结果[Z]=([eq],[k])的数据结构表示交集∩0≤i≤L‑1Xi的运算结果的隐匿化信息。
[0083] 本实施方式的方法无论集合X0,...,XL‑1的个数L是2还是3以上都能够直接应用,还能够将三个以上的集合X0,...,XL‑1的隐匿化信息作为直接输入来处理,还能够直接得到该三个以上X0,...,XL‑1的集合的交集运算结果的隐匿化信息。计数部113‑w的处理是对将集合X0,...,XL‑1结合后的U的隐匿化信息[U]执行的处理,与L的值无关,能够通过一次按组计数(Group‑by Count)等而直接执行。此外,由等号判定部114‑w比较的L的比特数少(log2(L)),因此计算成本也小。在[cp]和L的等号判定中没有与p相关的顺序依赖,因此能够对p=0,...,m‑1并行地进行计算,能够高速地进行计算。特别是,本实施方式的方法在集合X0,...,XL‑1的个数大的情况下、或执行时间的长度的影响大的环境、例如延迟大的网络环境下特别有效。
[0084] 另外,隐匿化运算结果[Z]既可以用于复原Z,也可以用作后续的秘密计算的运算对象(operand,日文:被演算子)。
[0085] [第二实施方式]
[0086] 接着,对本发明的第二实施方式进行说明。由第一实施方式的计数部113‑w得到的列[k]=([k0],...,[km‑1])是将密钥信息k0,...,km‑1隐匿而得到的,列[c]=([c0],...,[cm‑1])是将元素x0,0,...,x0,r(0)‑1,...,xL‑1,0,...,xL‑1,r(L‑1)‑1中的分别与密钥信息k0,...,km‑1一致的元素的个数c0,...,cm‑1隐匿而得到的。因此,密钥信息k0,...,km‑1自身以及元素的个数c0,...,cm‑1自身被隐匿,但[k0],...,[km‑1]的个数m以及[c0],...,[cm‑1]的个数m、即集合X0,...,XL‑1的元素被划分为m个组的情况没有被隐匿。为了对其进行隐匿,也可以附加虚拟信息。以下,以与第一实施方式的不同点为中心进行说明,对于已说明的事项使用相同的参照编号、记号来简化说明。
[0087] <结构>
[0088] 如图1例示的那样,第二实施方式的秘密计算系统2具有构成为能够通过网络进行通信的W个秘密计算装置21‑0,...,21‑(W‑1)。其中,W是1以上的整数。例如,在秘密计算装置21‑0,...,21‑(W‑1)进行基于秘密分散的秘密计算的情况下,W为2以上的整数,在进行基于同态型加密的秘密计算的情况下,W为1以上的整数。
[0089] 如图2例示的那样,秘密计算装置21‑w(其中,w=0,...,W‑1)具有输入部111‑w、结合部112‑w、计数部213‑w、等号判定部214‑w、输出标志赋予部215‑w、控制部118‑w以及存储部119‑w。秘密计算装置21‑w基于控制部118‑w的控制而执行各处理,向秘密计算装置11‑w输入的数据以及由各处理得到的数据被存储于存储部119‑w,根据需要被读出并用于其他处理。
[0090] <处理>
[0091] 向秘密计算装置21‑w的输入部111‑w输入L个集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1}的隐匿化信息[X0],...,[XL‑1](步骤S111‑w)。
[0092] [X0],...,[XL‑1]被输入到结合部112‑w。结合部112‑w得到并输出将[X0],...,[XL‑1]的元素结合后的隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1]的列[U](步骤S112‑w)。
[0093] 向计数部213‑w输入列[U]。计数部213‑w使用列[U]的隐匿化元素[x0,0],...,[x0,r(0)‑1],...,[xL‑1,0],...,[xL‑1,r(L‑1)‑1],通过秘密计算得到并输出列([f],[k],[c])。列[f]是包含m个有效标志[f0],...,[fm‑1]以及n‑m个虚拟标志[fm],...,[fn‑1]的列,f0,...,fm‑1是B1,fm,...,fn‑1是B0,B1以及B0相互不同。这里,n是大于m的整数。列[k]是包含m个隐匿化密钥信息[k0],...,[km‑1]以及n‑m个虚拟信息[km],...,[kn‑1]的列。与虚拟信息[km],...,[kn‑1]对应的km,...,kn‑1的每一个既可以与密钥信息k0,...,km‑1中的任一个一致,也可以与密钥信息k0,...,km‑1中的哪一个都不一致。列[c]是包含m个计数结果[c0],...,[cm‑1]以及n‑m个虚拟信息[cm],...,[cn‑1]的列。针对p=0,...,m‑1,有效标志[fp]、隐匿化密钥信息[kp]、计数结果[cp]相互进行关联。与虚拟信息[cm],...,[cn‑1]对应的cm,...,cn‑1分别与L不同。此外,针对q=m,...,n‑1,虚拟标志[fq]、虚拟信息[kq]、虚拟信息[cq]相互进行关联。例如,计数部213‑w得到并输出以下的式(9)的列([f],[k],[c])。
[0094] ([f],[k],[c])=([B1],...,[B1],[B0],...,[B0],[k0],...,[km‑1],[km],...,[kn‑1],[c0],...,[cm‑1],[c m],...,[cn‑1])
[0095] 例如,计数部213‑w也可以通过式(2)所示的按组计数(Group‑by Count),以如下方式得到列([f],[k],[c])。
[0096] ([f],[k],[c])←GroupbyCount([U])(9)
[0097] 例如,m=4且n=5,在式(3)例示的列[U]的情况下,通过式(9)得到以下的列([f],[k],[c])。
[0098] ([f],[k],[c])=([1],[1],[1],[1],[0],[a],[b],[e],[g],[*],[2],[2],[3],[1],[*])   (10)
[0099] 这里,
[0100] [f]=([1],[1],[1],[1],[0]),
[0101] [k]=([a],[b],[e],[g],[*]),
[0102] [c]=([2],[2],[3],[1],[*]),
[0103] [*]表示虚拟信息。
[0104] 列[k]=([k0],...,[km‑1],[km],...,[kn‑1])被发送到输出标志赋予部215‑w,列[c]=([c0],...,[cm‑1],[cm],...,[cn‑1])被发送到等号判定部214‑w(步骤S213‑w)。
[0105] 向等号判定部214‑w输入[X0],...,[XL‑1]的个数L以及列[c]=([c0],...,[cm‑1],[cm],...,[cn‑1])。等号判定部214‑w使用列([f],[k],[c]),通过秘密计算得到等号判定结果[eq0],...,[eqm‑1]以及虚拟信息[eqm],...,[eqn‑1],得到并输出包含它们的列[eq]=([eq0],...,[eqm‑1],[eqm],...,[eqn‑1])。针对p=0,...,m‑1的[eq0],...,[eqm‑1]与第一实施方式相同。针对q=m,...,n‑1的[eqm],...,[eqn‑1]是eqm,...,eqn‑1的隐匿化信息。其中,在cq=L时eqq=T,在不是cq=L时eqq=F,针对q=m,...,n‑1的T以及F与针对p=0,...,m‑1时相同,T以及F相互不同。如前述那样,cm,...,cn‑1分别与L不一致,因此eqm=...=eqn‑1=F,([eqm],...,[eqn‑1])=([F],...,[F])。
[0106] 例如,等号判定部214‑w对u=0,...,n‑1(即,对[cu]∈[c])进行以下的计算(例如,对u=0,...,n‑1并行地进行计算)。
[0107] [equ]←EQ([cu],L)
[0108] 例如,在式(10)例示的列[c]的情况下,设为T=1且F=0,得到以下的式(11)所示的等号判定结果。
[0109] [eq0]=[0],[eq1]=[0],[eq2]=[1],[eq3]=[0],[eq4]=[0],[eq5]=[0]   (11)
[0110] 等号判定结果[eq0],...,[eqn‑1]的列[eq]被发送到输出标志赋予部215‑w(步骤S214‑w)。
[0111] 向输出标志赋予部215‑w输入列[k]=([k0],...,[kn‑1])以及列[eq]=([eq0],...,[eqn‑1])。输出标志赋予部215‑w输出隐匿化运算结果[Z]=([eq],[k]),该隐匿化运算结果[Z]=([eq],[k])包含针对p=0,...,m‑1相互进行了关联的隐匿化密钥信息[kp]以及等号判定结果[eqp]、以及针对q=m,...,n‑1相互进行了关联的虚拟信息[kq]以及虚拟信息[eqq]。例如,输出标志赋予部215‑w输出以下的隐匿化运算结果[Z]。
[0112] [数学式5]
[0113]
[0114] 例如,在式(10)例示的[k]=([a],[b],[e],[g],[*])以及式(11)例示的[eq0]=[0],[eq1]=[0],[eq2]=[1],[eq3]=[0],[eq4]=[0],[eq5]=[0]的情况下,输出以下的隐匿化运算结果[Z]。
[0115] [数学式6]
[0116]
[0117] 在该隐匿化运算结果[Z]中,[1]与对应于集合X0,X1,X2的交集∩0≤i≤2Xi即{e}的[e]进行关联,[0]与其他[a][b][g][*]进行关联。
[0118] <本实施方式的特征>
[0119] 假设对于集合X0={x0,0,...,x0,r(0)‑1},...,XL‑1={xL‑1,0,...,xL‑1,r(L‑1)‑1},在属于相同集合Xi的元素xi,0,...,xi,r(i)‑1分别表示的内容中没有重复,则与由计数部213‑w得到的计数结果[cp](其中,p=0,...,m‑1)对应的元素的个数cp(表示密钥信息kp的元素)与集合X0,...,XL‑1的个数L相等也就是指在集合X0,...,XL‑1的每一个中各包含一个表示相同的密钥信息kp的元素。此外,与虚拟信息[cm],...,[cn‑1]对应的cm,...,cn‑1分别与L不同。因此,在等号判定部214‑w中成为[equ]=[T](其中,u=0,...,n‑1)的密钥信息ku是集合X0,...,XL‑1的交集∩0≤i≤L‑1Xi的运算结果即集合的元素。此外,与虚拟信息[km],...,[kn‑1]对应的km,...,kn‑1的每一个与集合X0,...,XL‑1的实际的密钥信息k0,...,km‑1中的哪一个都不一致。因此,包含相互进行了关联的隐匿化密钥信息[ku]以及等号判定结果[equ]的隐匿化运算结果[Z]=([eq],[k])的数据结构表示交集∩0≤i≤L‑1Xi的运算结果的隐匿化信息。
[0120] 本实施方式的方法无论集合X0,...,XL‑1的个数L是2还是3以上都能够直接应用,还能够将三个以上的集合X0,...,XL‑1的隐匿化信息作为直接输入来处理,还能够直接得到该三个以上X0,...,XL‑1的集合的交集运算结果的隐匿化信息。计数部213‑w的处理是对将集合X0,...,XL‑1结合而得到的U的隐匿化信息[U]执行的处理,与L的值无关,能够通过一次按组计数(Group‑by Count)等而直接执行。此外,由等号判定部214‑w比较的L的比特数少(log2(L)),因此计算成本也小。在[cu]和L的等号判定没有与u相关的顺序依赖,因此能够对u=0,...,n‑1并行地进行计算,能够高速地进行计算。本实施方式的方法也在集合X0,...,XL‑1的个数大的情况下、或执行时间的长度的影响大的环境、例如延迟大的网络环境下特别有效。进而,由本实施方式得到的列([f],[k],[c])、列[eq]、隐匿化运算结果[Z]均包含虚拟信息,集合X0,...,XL‑1的元素被划分为m个组的情况也被隐匿。由此,本实施方式的方法的安全性更高。
[0121] 另外,隐匿化运算结果[Z]既可以用于复原Z,也可以用作后续的秘密计算的被运算符。例如,也可以通过参考文献5等所公开的方法从隐匿化运算结果[Z]中删除与虚拟信息对应的无效的元素(行),并将所得到的结果用于其他数据库运算。
[0122] 参考文献5:須藤弘貴,五十嵐大,“行数のみ開示する秘密計算データベース管理システムの実装と評価,”In SCIS2021,pp.1‑6,2021.
[0123] [硬件结构]
[0124] 各实施方式中的秘密计算装置11‑w、21‑w例如是通过具备CPU(central processing unit,中央处理单元)等处理器(硬件处理器)、RAM(random‑access memory,随机存取存储器)、ROM(read‑only memory,只读存储器)等存储器等的通用或专用的计算机来执行规定的程序而构成的装置。即,各实施方式中的秘密计算装置11‑w、21‑w例如具有构成为实现各自所具有的各部的处理电路(processing circuitry)。该计算机既可以具备一个处理器、存储器,也可以具备多个处理器、存储器。该程序既可以安装在计算机中,也可以预先记录在ROM等中。此外,也可以不使用如CPU那样通过读入程序来实现功能结构的电子电路(circuitry),而使用单独实现处理功能的电子电路来构成一部分或全部处理部。此外,构成1个装置的电子电路也可以包含多个CPU。
[0125] 图4是例示了各实施方式中的秘密计算装置11‑w、21‑w的硬件结构的框图。如图4例示的那样,该例子的秘密计算装置11‑w、21‑w具有CPU(Central Processing Unit,中央处理部)10a、输入部10b、输出部10c、RAM(Random Access Memory,随机存取存储器)10d、ROM(Read Only Memory,只读存储器)10e、辅助存储装置10f以及总线10g。该例子的CPU10a具有控制部10aa、运算部10ab以及寄存器10ac,依据被读入到寄存器10ac的各种程序来执行各种各样的运算处理。此外,输入部10b是输入数据的输入端子键盘鼠标、触摸面板等。此外,输出部10c是输出数据的输出端子、显示器、由读入了规定的程序的CPU10a控制的LAN卡等。此外,RAM10d是SRAM(Static Random Access Memory,静态随机存取存储器)、DRAM(Dynamic Random Access Memory,动态随机存取存储器)等,具有存储规定的程序的程序区域10da以及存储各种数据的数据区域10db。此外,辅助存储装置10f例如是硬盘、MO(Magneto‑Optical disc,磁光盘)、半导体存储器等,具有存储规定的程序的程序区域10fa以及存储各种数据的数据区域10fb。此外,总线10g将CPU10a、输入部10b、输出部10c、RAM10d、ROM10e以及辅助存储装置10f连接为能够进行信息的交换。CPU10a依据被读入的OS(Operating System,操作系统)程序,将存储于辅助存储装置10f的程序区域10fa的程序写入到RAM10d的程序区域10da中。同样地,CPU10a将存储于辅助存储装置10f的数据区域10fb的各种数据写入到RAM10d的数据区域10db中。然后,被写入了该程序、数据的RAM10d上的地址被存储到CPU10a的寄存器10ac。CPU10a的控制部10aa依次读出被存储到寄存器10ac的这些地址,从被读出的地址所表示的RAM10d上的区域读出程序、数据,使运算部10ab依次执行该程序所表示的运算,并将该运算结果存储到寄存器10ac。通过这样的结构,实现秘密计算装置11‑w、21‑w的功能结构。
[0126] 上述的程序能够预先记录在计算机可读取的记录介质中。计算机可读取的记录介质的例子是非临时性的(non‑transitory)记录介质。这样的记录介质的例子是磁记录装置、光盘、光磁记录介质、半导体存储器等。
[0127] 该程序的流通例如通过销售、转让、租借记录有该程序的DVD、CD‑ROM等可移动型记录介质等来进行。进而,也可以设为如下的结构,即,将该程序存储于服务器计算机的存储装置,经由网络,从服务器计算机向其他计算机转发该程序,从而使该程序流通。如上述的那样,执行这样的程序的计算机例如首先将记录于可移动型记录介质的程序或从服务器计算机转发的程序暂时存储于自身的存储装置。然后,在执行处理时,该计算机读取存储于自身的存储装置的程序并执行按照所读取的程序的处理。此外,作为该程序的其他执行方式,也可以是,计算机从可移动型记录介质直接读取程序并执行按照该程序的处理,进而,还可以是,每当从服务器计算机向该计算机转发程序时,逐次执行按照接收到的程序的处理。此外,也可以设为如下的结构,即,不进行从服务器计算机向该计算机的程序的转发,而通过仅通过该执行指示和结果取得来实现处理功能的所谓的ASP(Application Service Provider,应用服务提供商)型服务来执行上述的处理。另外,设为在本方式中的程序中,包含提供为用于基于电子计算机的处理的信息且以程序为准的信息(虽然不是针对计算机的直接指令,但是具有规定计算机的处理的性质的数据等)。
[0128] 在各实施方式中,设为通过在计算机上执行规定的程序来构成本装置,但也可以设为通过硬件来实现这些处理内容的至少一部分。
[0129] 另外,本发明不限定于上述的实施方式。例如,不仅可以遵循记载而以时间序列执行,而且还可以根据执行处理的装置的处理能或者根据需要而并行或单独执行。此外,当然可以在不脱离本发明的主旨的范围内进行适当变更。
[0131] 本发明能够应用于通过秘密计算来进行对两个以上的集合的积和运算的用途。例如,能够将本发明用于通过秘密计算以RDBMS(Relational DataBase Management System,关系数据库管理系统)进行积和运算的用途。
[0132] 附图标记说明
[0133] 1秘密计算系统
[0134] 11‑w、21‑w秘密计算装置
[0135] 113‑w、213‑w计数部
[0136] 114‑w、214‑w等号判定部
[0137] 115‑w、215‑w输出标志赋予部
QQ群二维码
意见反馈