秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
阅读说明:本技术 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序 (Secret tamper detection system, secret tamper detection device, secret tamper detection method, and program ) 是由 五十岚大 于 2018-05-11 设计创作,主要内容包括:在以较少的通信量保持隐匿性的情况下探测秘密计算中的篡改。随机数生成单元(11)生成[<Sup>→</Sup>r<Sub>i</Sub>]、[<Sup>→</Sup>s<Sub>i</Sub>]。随机数乘法单元(12)计算[<Sup>→</Sup>t<Sub>i</Sub>]:=[<Sup>→</Sup>r<Sub>i</Sub><Sup>→</Sup>s<Sub>i</Sub>]。秘密乘法单元(13)计算[<Sup>→</Sup>z]:=[<Sup>→</Sup>x<Sup>→</Sup>y]。随机数验证单元(14)在[<Sup>→</Sup>r<Sub>i</Sub>]、[<Sup>→</Sup>s<Sub>i</Sub>]、[<Sup>→</Sup>t<Sub>i</Sub>]中公开第p<Sub>i,j</Sub>个元素,确认作为乘法是否匹配。随机数置换单元(15)在[<Sup>→</Sup>r<Sub>i</Sub>]、[<Sup>→</Sup>s<Sub>i</Sub>]、[<Sup>→</Sup>t<Sub>i</Sub>]中随机置换第p<Sub>i,j</Sub>个以外的元素,生成[<Sup>→</Sup>r’<Sub>i</Sub>]、[<Sup>→</Sup>s’<Sub>i</Sub>]、[<Sup>→</Sup>t’<Sub>i</Sub>]。减法值公开单元(16)计算[<Sup>→</Sup>x-<Sup>→</Sup>r’<Sub>i</Sub>]、[<Sup>→</Sup>y-<Sup>→</Sup>s’<Sub>i</Sub>]。验证值计算单元(17)计算[<Sup>→</Sup>c<Sub>i</Sub>]:=[<Sup>→</Sup>z]-(<Sup>→</Sup>x-<Sup>→</Sup>r’<Sub>i</Sub>)[<Sup>→</Sup>y]-(<Sup>→</Sup>y-<Sup>→</Sup>s’<Sub>i</Sub>)[<Sup>→</Sup>r’<Sub>i</Sub>]-[<Sup>→</Sup>t’<Sub>i</Sub>]。验证值确认单元(18)确认验证值c<Sub>i</Sub>全部为0的情况。(Tampering in secret computation is detected while maintaining privacy with less traffic. A random number generation unit (11) generates [ 2 ] → r i ]、[ → s i ]. A random number multiplication unit (12) calculates → t i ]:=[ → r i → s i ]. A secret multiplication unit (13) calculates → z]:=[ → x → y]. The random number verification unit (14) is in → r i ]、[ → s i ]、[ → t i ]P of i,j Element, confirm as multiplication match. The random number substitution unit (15) is set in → r i ]、[ → s i ]、[ → t i ]In random permutation of p i,j An element other than the element, to produce [ alpha ], [ alpha → r' i ]、[ → s' i ]、[ → t' i ]. A subtraction value disclosing unit (16) calculates → x‑ → r' i ]、[ → y‑ → s' i ]. A verification value calculation unit (17) calculates → c i ]:=[ → z]‑( → x‑ → r' i )[ → y]‑( → y‑ → s' i )[ → r' i ]‑[ → t' i ]. An authentication value confirmation unit (18) confirms the authentication value c i All 0.)
技术领域
本发明涉及秘密计算技术,特别涉及在保持隐匿性的情况下探测秘密计算中的篡改的技术。
背景技术
在保持秘密计算中隐匿性的情况下探测篡改的技术中,例如有非专利文献1中记载的技术。在非专利文献1中记载的现有技术中,记载有生成被称为三倍乘法(multiplication triple)的事先数据,使用该三倍乘法探测秘密计算中的篡改的技术。
现有技术文献
非专利文献
非专利文献1:J.Furukawa,Y.Lindell,A.Nof,and O.Weinstein."High-throughput secure three-party computation for malicious adversaries and anhonest majority".IACR Cryptology ePrint Archive,2016:944,2016.
发明内容
发明要解决的课题
在现有技术中,需要事先生成三倍乘法,由此有通信量增加的情况。
本发明的目的是提供可通过较少的通信量在保持隐匿性的情况下探测秘密计算中的篡改的秘密篡改探测技术。
用于解决课题的手段
为了解决上述的课题,本发明的秘密篡改探测系统,σ表示1以上的任意的整数,N、D表示规定的自然数,i表示大于等于0小于σ的各整数,j表示大于等于0小于D的各整数,秘密篡改探测系统包含至少3台秘密篡改探测装置,将若复原则成为元素数N的向量→x的部分[→x]、若复原则成为元素数N的向量→y的部分[→y]作为输入,输出若复原则成为将向量→x和向量→y按每个元素相乘的结果的向量→z的部分[→z],秘密篡改探测装置包括:对于各整数i,生成若复原则成为元素数N+D的随机数向量→ri的σ个部分[→ri]、若复原则成为元素数N+D的随机数向量→si的σ个部分[→si]的随机数生成单元;对于各整数i,通过秘密计算将部分[→ri]和部分[→si]相乘,生成若复原则成为将向量→ri和向量→si按每个元素相乘的结果的向量→ti的σ个部分[→ti]的随机数乘法单元;通过秘密计算将部分[→x]和部分[→y]相乘,生成部分[→z]的秘密乘法单元;对于各整数i,随机选择大于等于0小于D+N的不同的D个整数pi,j,在部分[→ri],[→si],[→ti]中公开第pi,j个元素,确认与部分[→ri]、[→si]、[→ti]的每一个对应的公开的值的组作为乘法是否匹配的随机数验证单元;对于各整数i,生成在部分[→ri]、[→si]、[→ti]中随机置换第pi,j个以外的元素的部分[→r'i]、[→s'i]、[→t'i]的随机数置换单元;对于各整数i,计算并公开[→x-→r'i]、[→y-→s'i]的减法值公开单元;对于各整数i,计算[→ci]:=[→z]-(→x-→r'i)[→y]-(→y-→s'i)[→r'i]-[→t'i],生成若复原则成为验证值ci的向量→ci的部分[→ci]的验证值计算单元;以及对于各整数i,使用部分[→ci],确认验证值ci全部为0的情况的验证值确认单元。
发明效果
按照本发明,可通过较少的通信量在保持隐匿性的情况下探测秘密计算中的篡改。
附图说明
图1是例示了秘密篡改探测系统的功能结构的图。
图2是例示了秘密篡改探测装置的功能结构的图。
图3是例示了秘密篡改探测方法的处理流程的图。
具体实施方式
以下,详细地说明本发明的实施方式。而且,对附图中具有相同功能的结构单元附加相同标号,省略重复说明。
在本说明书中使用的上标的右箭头“→”表示是向量。“→”本来应被记载在紧后的字符的正上方,但是由于文本记法的限制,记载在该字符的紧前面。在数式中,这些记号记述在本来的位置,即该字符的正上方。例如,“→x”这样的文本,是与数式中的下式相同的意思。
[x]表示某个值x被秘密分散。[X]表示某个集合X的元全部被秘密分散的数据的集合。以下,也将被秘密分散的值称为“部分(share)”。→x→y表示对每个元素将向量→x和向量→y相乘后的结果的向量。F表示任意的域。
本发明的实施方式是改进了非专利文献1中记载的篡改探测技术的进行附带篡改探测乘法的秘密篡改探测系统以及方法。实施方式的秘密篡改探测系统以及方法执行下式所示的附带篡改探测乘法协议。
Scheme 1:附带篡改探测乘法
输入:[→x],[→y]∈[F]N
输出:[→x→y]∈[F]N,其中已篡改探测的情况下不输出
参数:σ≧1,D∈N
1:生成随机数向量[→ri],[→si]∈[F]N+D
2:计算各0≦i<σ中,[→ti]:=[→ri →si]
3:计算[→z]:=[→x→y],确认计算相关的通信已完成
4:在各0≦i<σ中,随机选择位置pi,0,…,pi,D-1
在向量[→ri],[→si],[→ti]中,公开与各0≦j<D对应的第pi,j元素,确认值作为作为乘法匹配的情况
在不匹配的情况下,探测出篡改而结束
通过随机置换πi置换未公开的剩余的元素,得到向量[→r'i],[→s'i],[→t'i]∈[F]N
5:公开[→x-→r'i],[→y-→s'i]
6:计算[→ci]:=[→z]-(→x-→r'i)[→y]-(→y-→s'i)[→r'i]-[→t'i]
7:在各0≦i<σ,确认[→ci]的全元素为0的情况
存在0以外的情况下,探测出篡改而结束
在上述的附带篡改探测乘法协议中,使用以下三个秘密计算协议。第一个是在步骤2、3中执行的无篡改探测乘法协议。已知的无篡改探测乘法协议例如记载在参考文献1等中。第二个是在步骤1中执行的带篡改探测随机数生成协议。已知的带篡改探测随机数生成协议例如记载在参考文献2等中。第三个是在步骤4、5中执行的带篡改探测公开协议。已知的带篡改探测公开协议例如记载在参考文献3等中。
〔参考文献1〕D.Ikarashi,R.Kikuchi,K.Hamada,and K.Chida."Activelyprivate and correctMPC scheme in t<n/2from passively secure schemes withsmall overhead",IACR Cryptology ePrint Archive,2014:304,2014.
〔参考文献2〕R.Cramer,I.Damgard,and Y.Ishai."Share conversion,pseudorandom secret-sharingand applications to secure computation",TCC,Vol.3378of Lecture Notes in Computer Science,pp.342-362.Springer,2005.
〔参考文献3〕日本专利特开2016-146530号公报
参照图1,说明实施方式的秘密篡改探测系统的结构例。秘密篡改探测系统包含K(≧3)台秘密篡改探测装置11,…,1K。在本方式中,秘密篡改探测装置11,…,1K分别连接至通信网2。通信网2是连接的各装置可相互通信地构成的线路交换方式或者分组交换方式的通信网,例如可以使用因特网或LAN(Local Area Network,局域网)、WAN(Wide AreaNetwork,广域网)等。而且,各装置不一定需要经由通信网2以在线方式可通信。例如,也可以将要输入至秘密篡改探测装置11,…,1K的信息存储在磁带或USB存储器等可拆装型记录介质中,以离线方式从该可拆装型记录介质输入至秘密篡改探测装置11,…,1K那样构成。
参照图2,说明秘密篡改探测系统中包含的秘密篡改探测装置1k(k=1,…,K)的结构例。例如如图2所示,秘密篡改探测装置1k包括:输入单元10;随机数生成单元11;随机数乘法单元12;秘密乘法单元13;随机数验证单元14;随机数置换单元15;减法值公开单元16;验证值计算单元17;验证值确认单元18;以及输出单元19。该秘密篡改探测装置1k(1≦k≦K)通过一边与其它秘密篡改探测装置1k'(k'=1,…,K,其中k≠k')协调一边进行如后所述的各步骤的处理,实现实施方式的秘密篡改探测方法。
秘密篡改探测装置1k例如是,在具有中央运算处理装置(CPU:CentralProcessing Unit)、主存储装置(RAM:Random Access Memory)等的公知或者专用的计算机中读入特别的程序而构成的特别的装置。秘密篡改探测装置1k例如在中央运算处理装置的控制下执行各处理。被输入到秘密篡改探测装置1k的数据或在各处理中得到的数据例如被存储在主存储装置中,主存储装置中存储的数据根据需要读出至中央运算处理装置,在其它处理中被利用。秘密篡改探测装置1k的各处理单元的至少一部分也可以由集成电路等硬件构成。
参照图3,说明实施方式的秘密篡改探测系统执行的秘密篡改探测方法的处理过程。
在步骤S1中,成为乘法对象的部分[→x]、[→y]∈[F]N被输入到各秘密篡改探测装置1k的输入单元10。[→x]是若复原则成为元素数N的向量→x的部分。[→y]是若复原则成为元素数N的向量→y的部分。输入单元10将部分[→x]、[→y]输入到秘密乘法单元13。
在步骤S2中,各秘密篡改探测装置1k的随机数生成单元11对于满足0≦i<σ的各整数i,使用带篡改探测随机数生成协议,生成若复原则成为元素数N+D的随机数向量→ri的σ个部分[→ri]、以及若复原则成为元素数N+D的随机数向量→si的σ个部分[→si]。这里,σ是预先确定的1以上的整数。σ越大则篡改成功概率越低,但计算量增大。因此,σ的值考虑希望的安全性和利便性而适当设定即可。带篡改探测随机数生成协议例如可以适用上述的参考文献2中记载的协议。随机数生成单元11将部分[→ri]、[→si]输入到随机数乘法单元12。
在步骤S3中,各秘密篡改探测装置1k的随机数乘法单元12从随机数生成单元11接受部分[→ri]、[→si],对于满足0≦i<σ的各整数i,使用无篡改探测乘法协议,将部分[→ri]和部分[→si]相乘,生成若复原则成为对每个元素将向量→ri和向量→si相乘的结果的向量→ti的σ个部分[→ti]:=[→ri →si]。无篡改探测乘法协议例如可以适用上述的参考文献1中记载的协议。随机数乘法单元12将部分[→ri]、[→si]、[→ti]成组地输入到随机数验证单元14。
在步骤S4中,各秘密篡改探测装置1k的秘密乘法单元13从输入单元10接受部分[→x]、[→y],使用无篡改探测乘法协议,将部分[→x]和部分[→y]相乘,计算若复原则成为对每个元素将向量→x和向量→y相乘的结果的向量→z的部分[→z]:=[→x→y]。秘密乘法单元13将部分[→x]、[→y]输入到减法值公开单元16,将部分[→y]、[→z]输入到验证值计算单元17。
在步骤S5中,各秘密篡改探测装置1k的随机数验证单元14从随机数乘法单元12接受部分[→ri]、[→si]、[→ti]的组,对于满足0≦i<σ的各整数i,随机地选择大于等于0且小于D+N的不同的D个整数pi,0,…,pi,D-1。这里,D是规定的自然数。接着,随机数验证单元14使用带篡改探测公开协议,公开在部分[→ri]、[→si]、[→ti]中,与满足0≦j<D的各整数j对应的第pi,j个元素,确认与部分[→ri]、[→si]、[→ti]各自对应的公开的值的组作为乘法是否匹配。带篡改探测公开协议例如可以适用上述的参考文献3中记载的协议。在存在不作为乘法匹配的值的组的情况下,从输出单元19输出表示探测到篡改的意思的信息,结束处理。在各值的组全部作为乘法匹配的情况下,随机数验证单元14将部分[→ri]、[→si]、[→ti]以及整数pi,j输入到随机数置换单元15。
在步骤S6中,随机数置换单元15从随机数验证单元14接受部分[→ri]、[→si]、[→ti]以及整数pi,j,对于满足0≦i<σ的各整数i,通过预先确定的随机置换πi置换部分[→ri]、[→si]、[→ti]中未公开的元素(即,第pi,j个以外的元素),生成部分[→r'i]、[→s'i]、[→t'i]∈[F]N。随机数置换单元15将部分[→r'i]、[→s'i]输入到减法值公开单元16,将部分[→r'i]、[→t'i]输入到验证值计算单元17。
在步骤S7中,各秘密篡改探测装置1k的减法值公开单元16从秘密乘法单元13接受部分[→x]、[→y],从随机数置换单元15接受部分[→r'i]、[→s'i],对于满足0≦i<σ的各整数i,使用带篡改探测公开协议,计算[→x-→r'i]以及[→y-→s'i]并公开。减法值公开单元16将公开的向量(→x-→r'i)、(→y-→s'i)输入到验证值计算单元17。
在步骤S8中,各秘密篡改探测装置1k的验证值计算单元17从秘密乘法单元13接受部分[→y]、[→z],从随机数置换单元15接受部分[→r'i]、[→t'i],从减法值公开单元16接受向量(→x-→r'i)、(→y-→s'i),对于满足0≦i<σ的各整数i,计算式(1),生成若复原则成为验证值ci的向量→ci的部分[→ci]。验证值计算单元17将部分[→z]、[→ci]输入到验证值确认单元18。
在步骤S9中,各秘密篡改探测装置1k的验证值确认单元18从验证值计算单元17接受部分[→z]、[→ci],对于满足0≦i<σ的各整数i,使用带篡改探测公开协议,从部分[→ci]公开验证值ci的向量→ci。然后,验证值确认单元18确认公开的向量→ci的全元素为0的情况。这里,在公开的向量→ci中包含不为0的元素的情况下,从输出单元19输出表示探测到篡改的意思的信息,结束处理。在公开的向量→ci的全元素为0的情况下,验证值确认单元18将接受的向量[→z]输入到输出单元19。
在步骤S10中,各秘密篡改探测装置1k的输出单元19输出从验证值确认单元18生成接受的向量[→z]。
一般来说,在无篡改探测乘法协议中,攻击者可进行篡改。但是,在实施方式的秘密篡改探测系统中,在步骤S4中进行了相乘后,通过在步骤S5中进行随机数向量的验证,防止篡改。攻击者为了成功篡改,在步骤S3中也进行篡改,必须进行篡改,使得用于验证的部分[→ti]也合理。但是,进行篡改的数目越多,由于步骤S5的公开,篡改被探测的概率越高。相反,进行篡改的数目越少,非法地通过验证的概率越低。通过进行σ次具有这样的性质的验证,可以将篡改成功概率设为O(N-σ)。
通过以下的处理,上述实施方式可以更高效。在上述实施方式中,对步骤S9中的验证值ci是否全部为0的确认,从部分[→ci]公开验证值ci后分别确认。这里,由验证值ci的向量→ci的部分[→ci]计算与随机数的积和构成的校验和,通过确认该校验和为0的情况,可以以不依赖于N的大小的通信量进行验证值的确认。作为这样的校验和,例如,可以使用下述参考文献4中记载的校验和。
〔参考文献4〕国际公开2014/112550号
参考文献4中记载的校验和如以下那样计算。在以下的说明中,将q作为2以上的整数,将ρ作为(N+D)/q以上的最小的整数,将R设为环。验证值确认单元18将若复原则成为验证值ci的向量→ci的部分[→ci]从开头每次q个进行分割,生成ρ个值向量A0,…,Aρ-1。在进行了分割时最后的值向量Aρ-1的元素数不为q的情况下,以任意的值(例如0)进行填充,使得元素数为q。验证值确认单元18选择随机数r∈Rq,通过式(2)计算校验和c。
这时,向量的相乘使用以式(3)(4)定义的函数f来计算。
这里,αi,j,k(i=0,…,q-1;j=0,…,q-1;k=0,…,q-1)是用于从两个环Rq的元素一致地对应至一个环Rq的元素的参数。参数αi,j,k可以有多个种类,但考虑计算容易度等,希望选择在参数αi,j,k中包含的q3个值中包含最多的0者作为参数αi,j,k。例如,若决定参数αi,j,k,使得R是域,Rq为域R的扩张域,则能够高效地探测出篡改。
示出在实施方式和以往技术中比较了通信量的结果。例如,若比较实施方式中将域F设为位数为2的有限域GF(2)的情况、与非专利文献1中记载的技术,则在相同的篡改成功概率O(N-2)下,相对于非专利文献1的各部分的通信量约为10N比特,在实施方式中约为7N比特即可。
本发明的发明点如以下那样。在作为现有技术的非专利文献1中,首先,对三倍乘法(multiplication triple)进行篡改探测。另一方面,在本发明中,从一开始,使用三倍乘法对要计算的乘法进行篡改探测。而且,在非专利文献1中,以要计算的乘法的数的整数倍为单位进行处理。另一方面,在本发明中,可以以与要计算的乘法的数相同的单位并行地进行处理。因此,与以往相比,可以高效地进行附带篡改探测乘法。
以上,说明了本发明的实施方式,但是不言而喻,具体的结构不限于这些实施方式,在不脱离本发明的宗旨的范围内即使存在适当设计的变更等,也包含在本发明中。实施方式中说明的各种处理不仅可以按照记载的顺序时间序列地执行,也可以根据执行处理的装置的处理能力或者需要并行或者单独地执行。
<程序,记录介质>
在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应有的功能的处理内容。然后,通过由计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。
记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
而且,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等可拆装型记录介质来进行。进而,也可以是将该程序存储在服务器计算机的存储装置中,经由网络,通过从服务器计算机向其它计算机转发该程序,使该程序流通的结构。
执行这样的程序的计算机例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的存储装置中存储的程序,执行按照读取的程序的处理。而且,作为该程序其它执行方式,计算机也可以从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用服务提供商)型的服务,执行上述的处理的结构。而且,本方式中的程序中,包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
而且,在本方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以硬件性地实现这些处理内容的至少一部分。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:显示设备