CN114981863A - 秘密平方根倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 - Google Patents
秘密平方根倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 Download PDFInfo
- Publication number
- CN114981863A CN114981863A CN202080093589.8A CN202080093589A CN114981863A CN 114981863 A CN114981863 A CN 114981863A CN 202080093589 A CN202080093589 A CN 202080093589A CN 114981863 A CN114981863 A CN 114981863A
- Authority
- CN
- China
- Prior art keywords
- value
- bit
- secret
- variance
- dispersion
- 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.)
- Pending
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
在秘密计算中高速地计算平方根的倒数。秘密平方根倒数计算系统(100)将[a]设为输入,计算[1/√a]。比特分解部(11)生成a的比特表现{a0},…,{aλ‑1}。第一比特串生成部(12)计算{a'i}={ai}∨{ai+1}而生成{a'0},…,{a'λ'‑1}。标志串生成部(13)生成表示{a'0},…,{a'λ'‑1}的最左比特的{x0},…,{xλ'‑1}。归一化乘数生成部(14)生成将{xλ'‑1},…,{x0}比特结合后的[c']。第二比特串生成部(15)设定{a"i}={a2i}而生成{a"0},…,{a"λ'‑1}。标志计算部(16)计算将{xj}{a"j}求和后的分散值{r}。归一化部(18)若r=1则计算[b]:=[c'][c'][2a],若r=0则计算[b]:=[c'][c'][a]。平方根倒数计算部(19)若r=1则计算[w]:=[1/√b]*√2,若r=0则计算[w]:=[1/√b]。逆归一化部(20)对[1/√a]:=[w][c']进行乘法运算。
Description
技术领域
本发明涉及在秘密计算中计算平方根的倒数的技术。
背景技术
秘密计算是在将数据隐匿的情况下计算任意的函数的加密技术。期待利用该特征,对系统运用者以及对数据利用者都不泄漏数据的数据利活用的方式。已知在秘密计算中存在几种方式,其中将秘密分散设为构成要素的秘密计算,数据的处理单位小,能够进行高速的处理。
所谓秘密分散是指将秘密信息转换为称为份额的几个片断的方法。例如有虽然从秘密的信息生成n个份额,从k个以上的份额秘密能够复原,但是从不足k个的份额秘密的信息不泄漏的称为(k,n)阈值法的秘密分散。秘密分散的具体的构成方法已知Shamir秘密分散、复制秘密分散等。在本说明书中,将通过秘密分散而被分散的值的1个片断称为“份额”。另外,将全部份额的集合全体称为“分散值”。
近年,基于秘密计算的高度的统计或机器学习的研究正在盛行。可是,这些运算大多数包含有超过秘密计算擅长的加减乘法运算的、倒数、平方根、指数、对数等计算。平方根的倒数的计算是计算机等中的基本的运算之一,被利用在各种情形中。在非专利文献1中,公开了在秘密计算中计算平方根的倒数的方法。另外,在包含平方根的各种函数计算中,有时需要进行归一化的处理,使得数值收敛在某个范围内。在秘密计算中,通过最左比特(msb:most significant bit,最高有效位)的移动来进行数值的归一化。
现有技术文献
非专利文献
非专利文献1:五十嵐大、“秘密計算AIの実装に向けた秘密実数演算群の設計と実装-O(|p|)ビツト通信量O(1)ラウンドの実数向け右シフト-”,CSS2019,2019年(五十岚大,“面向秘密计算AI的安装的秘密实数运算群的设计和安装-O(|p|)比特通信量O(1)圆的面向实数右移位-”,CSS2019,2019年”)
发明内容
发明要解决的课题
可是,在非专利文献1中公开的方法存在计算成本大的课题。
鉴于上述那样的技术的课题,本发明的目的在于提供能够高速地计算平方根的倒数的秘密计算技术。
用于解决课题的方案
为了解决上述的课题,本发明的第一方式的秘密平方根倒数计算系统是包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的倒数的分散值[1/√a]的秘密平方根倒数计算系统,λ是值a的小数点位置,λ′是大于等于λ/2的最小的整数,λ″是小于等于λ/2的最大的整数,秘密计算装置包括:比特分解部,由分散值[a]生成值a的比特表现a0,...,aλ-1的分散值的串{a0},...,{aλ-1};第一比特串生成部,通过对于大于等于0且小于λ″的各整数i,求计算了分散值{ai}与分散值{ai+1}的“或”的比特a′i的分散值{a′i},生成比特串a′0,...,a′λ′-1的分散值的串{a′0},...,{a′λ′-1};标志串生成部,生成表示分散值的串{a′0},...,{a′λ′-1}的最左比特的标志串x0,...,xλ′-1的分散值的串{x0},...,{xλ′-1};归一化乘数生成部,生成将分散值的串{x0},...,{xλ′-1}倒序地比特结合后的归一化乘数c′的分散值[c′];第二比特串生成部,通过对于大于等于0且小于λ″的各整数i,将分散值{a2i}设定为比特a″i的分散值{a″i},生成比特串a″0,...,a″λ′-1的分散值的串{a″0},...,{a″λ′-1};标志计算部,对于大于等于0且小于λ′的各整数j,计算将分散值{xj}与分散值{a″j}的积求和后的乘法运算标志r的分散值{r};归一化部,使用分散值[a]和分散值[c′]和分散值{r},对在r=1时计算了[c′][c′][2a]、在r=0时计算了[c′][c′][a]的分散值[b]进行计算;平方根倒数计算部,使用分散值[b]和分散值[r],求在r=1时计算了[1/√b]*√2,在r=0时计算了[1/√b]的分散值[w];以及逆归一化部,计算将分散值[w]与分散值[c′]相乘后的分散值[1/√a]。
本发明的第二方式的秘密归一化系统是包含多个秘密计算装置,为了计算值a的平方根的倒数的分散值[1/√a],将值a的分散值[a]归一化的秘密归一化系统,λ是值a的小数点位置,λ′是大于等于λ/2的最小的整数,λ″是小于等于λ/2的最大的整数,秘密计算装置包括:比特分解部,由分散值[a]生成值a的比特表现a0,...,aλ-1的分散值的串{a0},...,{aλ-1};第一比特串生成部,通过对于大于等于0且小于λ″的各整数i,求计算了分散值{ai}与分散值{ai+1}的“或”的比特a′i的分散值{a′i},生成比特串a′0,...,a′λ′-1的分散值的串{a′0},...,{a′λ′-1};标志串生成部,生成表示分散值的串{a′0},,..,{a′λ′-1}的最左比特的标志串x0,...,xλ′-1的分散值的串{x0},...,{xλ′-1};归一化乘数生成部,生成将分散值的串{x0},...,{xλ′-1}倒序地比特结合后的归一化乘数c′的分散值[c′];第二比特串生成部,通过对于大于等于0且小于λ″的各整数i,将分散值{a2i}设定为比特a″i的分散值{a″i},生成比特串a″0,...,a″λ′-1的分散值的串{a″0},...,{a″λ′-1};标志计算部,对于大于等于0且小于λ′的各整数j,计算将分散值{xj}与分散值{a″j}的积求和后的乘法运算标志r的分散值{r};以及归一化部,使用分散值[a]和分散值[c′]和分散值{r},求在r=1时计算了[c′][c′][2a]、在r=0时计算了[c′][c′][a]的分散值[b]。
发明效果
按照本发明,能够在秘密计算中高速地计算平方根的倒数。
附图说明
图1是例示秘密平方根倒数计算系统的功能结构的图。
图2是例示秘密计算装置的功能结构的图。
图3是例示平方根倒数计算部的功能结构的图。
图4是例示秘密平方根倒数计算方法的处理过程的图。
图5是例示平方根倒数计算部的处理过程的图。
图6是例示计算机的功能结构的图。
具体实施方式
以下,对本发明的实施方式详细地进行说明。另外,对于附图中具有相同的功能的结构部附加相同的标号,省略重复说明。
在本说明书中,使用以下的记法。
[·]是将数值·隐匿后的数据。例如,能够使用Shamir秘密分散、复制秘密分散等分散值。
{·}是将比特·隐匿后的数据。例如,能够使用Z2上的复制秘密分散等分散值。
λ表示小数点位置。设想在秘密计算中使用的环或者域的比特数|p|的一半左右。
[a?b:c]为,若a=1,则表示b,若a=0则表示c。
【数学式1】
分别表示“非”(NOT)、“与”(AND)、“或”(OR)、“异或”(XOR)。
通过在环上的整数中决定公开的小数点位置,能够视为固定小数点的实数。在本发明中,将这样处理而在环上表示的固定小数点的实数仅记述为实数。
[实施方式:秘密平方根倒数计算系统]
本发明的实施方式是将值a的分散值[a]设为输入,在隐匿了值a的情况下,计算值a的平方根的倒数的分散值[1/√a]的秘密平方根倒数计算系统以及方法。以下,对执行实施方式的秘密平方根倒数计算系统的平方根倒数协议的概要进行说明。
以往,在秘密计算中,超过加减乘法运算的、倒数或平方根、指数函数、对数函数等初等函数群,处理成本大,尚未实施。在本发明中,为了解决这些课题,使用能够高效并且统一地近似秘密计算上的初等函数群的算法,能够高效地计算平方根的倒数。该近似方法仅通过以单一的方法改变参数就能够近似包含平方根的倒数的主要的初等函数。进而,该近似方法在单精度(23比特)中是相当于实数乘法运算3次的通信量/轮数,是理论最佳的效率。
平方根的倒数能够在将机器学习中的最适化方法Adam等导入秘密计算的情况下进行应用。在对于明文的平方根的倒数计算中,为了高效地计算,有时进行以下的归一化。将输入a的小数点位置中的0.5(即,2-1)的位的位置与输入a的最左比特(msb:mostsignificant bit,最高有效位)之差设为e,进行以下的变形。即,乘以2e而归一化到区间[0.5,1),在求出平方根的倒数1/√(2ea)后乘以√2e。
【数学式2】
在非专利文献1中,为了得到为归一化而相乘的2的幂的值[c],执行了对于使最左比特匹配的协议追加[√c]而得到协议。可是,若评价处理成本,则判明了先计算[√c],将其乘以2而得到[c]的效率较好。因此,在本发明中,将非专利文献1中公开的平方根的倒数协议变形为先计算[√c],并将其乘以2而得到[c]。
以下表示为了用8次多项式近似秘密计算上的初等函数群的算法。
〔算法1:基于8次多项式的函数近似协议〕
输入:[x]∈[L,R)
参数:a,b,c,d,f,g,H,i,j,k,l,m,n,o,p,q,α,β,γ,δ,ζ
输出:与目的的函数func对应的[func(x)]
1:通过积和计算[y′]:=[x(δx+a-i)-j],通过右移位,降低小数点位置。
2:计算[y]:=[y′+(ix+j)]。
3:通过积和计算[z′]:=[y(ζy+b-k)+(c-1)x-m],通过右移位,降低小数点位置。
4:计算[z]:=[z′+(ky+lx+m)]。
5:通过积和计算[w′/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ],同时进行基于γ的乘法运算和小数点位置的下降,得到[w′]。
6:输出[w]:=[w′+(nz+oy+px+q)]。
在算法1的步骤1、3中执行的小数点位置的下降,例如能够通过使用在非专利文献1中公开的除数公开除法运算来高效地进行。
在算法1的步骤5中执行的公开值乘法运算和小数点位置的下降的同时执行,例如能够通过使用以下的算法来高效地进行。
〔算法2:从右移位开始无处理成本增大地同时进行公开值乘法运算〕
输入:[x],乘数m,移位量σ
输出:移位后的[mx]
1:计算公开值2σ/m。
2:通过公开值除法运算计算下式。其中,[mx]视为小数点位置比[x]低了σ的表现。
【数学式3】
在算法1中使用的参数L、R、a、b、c、d、f、g、H、i、j、k、l、m、n、o、p、q、α、β、γ、δ、ζ根据要进行近似的函数func来设定。在本发明中要近似设为对象的求平方根的倒数函数时,将各参数例如如下表那样设定即可。另外,ex,ey,ez,ew是x,y,z,w的小数点位置,e′y,e′z,e′w是y′,z′,w′的小数点位置。这些是决定8次多项式近似中的右移位量的参数。例如,在由y′计算y时的右移位量为e′y-ey。
【表1】
以下表示使用算法1来计算秘密计算上的平方根的倒数的算法。这里,分为将设为计算对象的输入归一化为平方根的倒数计算用的算法(算法3)、以及使用该算法技术平方根的倒数的算法(算法4)进行说明。
〔算法3:平方根的倒数用归一化协议〕
输入:[a]
输出:[b]、[r]、[c′](其中,b是将a的最左比特移动到λ-1的位置后的值(即,将a归一化到[0.5,1)后的值)。r是表示是否对计算结果乘以√2的真值。c′是在归一化及其逆运算中使用的2的幂的数。)
1:通过比特分解得到[a]的比特表现{a0},...,{aλ-1}。
2:通过下式设定λ′、λ″。即,将大于等于λ/2的最小的整数设为λ′,将小于等于λ/2的最大的整数设为λ″。
【数学式4】
3:在0≤i<λ″时,设为{a′i}:={ai∨ai+1}。即,计算{ai}与{ai+1}的“或”。
4:若λ为奇数,则设为{a′λ′-1}:={aλ-1}。
a′是表示将a的每次2比特以OR连接的整数的比特串。
5:得到仅a′的最左比特的位置成为1的比特串{x0},...,{xλ′-1}。
6:以比特结合来结合{xλ′-1},...,{x0},设为[c′]。
7:在0≤i<λ″时,设为{a″i}:={a2i}。
8:若λ为奇数,则设为{a″λ′-1}:={aλ-1}。
a″是将a的第偶数比特(从0开始记述)排列后的比特串。
9:计算积和{r}:={x0a″0+,..+xλ′-1a″λ′-1}。
r是表示msb是否位于第偶数比特的真值。
10:通过mod p变换将{r}设为[r]。
11:计算[b]∶=[c′][c′][r?2a:a],输出[b]、[r]、[c′]。
〔算法4:平方根的倒数协议〕
输入:[a]
输出:[1/√a]
1:通过算法3得到将[a]归一化到[0.5,1)后的值[b]、归一化的逆运算所需要的[c′]、[r]。
2:对[b]执行算法1,计算[b]的平方根的倒数。这时,在算法1的步骤5中进行的公开值γ的乘法运算,将条件设为[r],将选项分别设为√2γ、γ,执行选择性的公开乘法运算,计算[w′/γ]*γ*[r?√2:1]。将结果设为[w]。
3:计算[w][c′]。
在算法3的步骤5中执行的表示最左比特的标志串的生成,例如能够通过使用以下的算法,高效地进行。
〔算法5:msb标志串取得协议〕
输入:被比特表现的整数{a0},...,{aλ-1}
输出:仅a的msb位置成为1的比特串{x0},...,{xλ-1}
1:在0≤i<λ-1时,设为{fi}:={fi+1∨ai}。
2:设为{fλ-1}:={aλ-1}。至此,{f0},...,{fλ-1}如0,0,0,1,1,1,...,1那样,成为以msb为界,01排列的比特串。
3:在0≤i<λ-1时,设为{xi}:={fiXOR fi+1}。
4:设为{xλ-1}:={aλ-1}。至此,{x0},...,{xλ-1}如0,0,0,1,0,0,...,0的那样,成为仅msb位置成为1的比特串。
在算法4的步骤2中执行的选择性的公开乘法运算例如能够通过使用以下的算法,高效地进行。
〔算法6:向要右移位值的选择性的公开乘数的乘法运算〕
输入:[a],乘数m0,m1,条件[c]
输出:[m1a]if c=1,[m0a]if c=0
1:计算[m1a]、[m0a]。
2:通过if-then-else门,输出[c?m1a:m0a]。
在算法6的步骤1中执行的公开值乘法运算,例如能够通过将算法2和以下的算法组合来高效地进行。
〔算法7:多个除数下的右移位/除数公开除法运算〕
输入:[a],除数d0,d1,...,dn-1
输出:[a/d0],[a/d1],,..,[a/dn-1]
1:求[a]的商[q]。
2:使用商[q],在右移位/除数公开除法运算中计算并输出对于各i的[a/di]。
在算法7的步骤1中求出的商能够通过商转移高效地求出(参考参考文献1)。
<<参考文献1>>Ryo Kikuchi,Dai Ikarashi,Takahiro Matsuda,Koki Hamada,and Koji Chida,″Efficient bit-decomposition and modulus-conversion protocolswith an honest majority,″Proceedings of Information Security and Privacy-23rdAustralasian Conference(ACISP 2018),pp.64-82,July 11-13,2018.
<秘密平方根倒数计算系统100>
实施方式的秘密平方根倒数计算系统100是执行上述的平方根的倒数协议的信息处理系统。如图1所示,秘密平方根倒数计算系统100包含N(≥3)台秘密计算装置11,...,1N。在本实施方式中,秘密计算装置11,...,1N分别被连接到通信网9。通信网9是以被连接的各装置能够相互通信的方式构成的线路交换方式或者分组交换方式的通信网,例如能够使用因特网或LAN(Local Area Network,局域网)、WAN(Wide Area Network,广域网)等。另外,各装置不必需要能够经由通信网9以在线方式进行通信。例如也可以构成为,将输入至秘密计算装置1n(n=1,...,N)的信息存储在磁带或USB存储器等可拆装型记录介质中,以离线方式从该可拆装型记录介质输入至秘密计算装置1n。
实施方式的秘密平方根倒数计算系统100中包含的秘密计算装置1n例如如图2所示具有:比特分解部11、第一比特串生成部12、标志串生成部13、归一化乘数生成部14、第二比特串生成部15、标志计算部16、标志变换部17、归一化部18、平方根倒数计算部19、以及逆归一化部20。平方根倒数计算部19例如如图3所示具有:参数存储部190、第一积和部191、第一加法部192、第二积和部193、第二加法部194、第三积和部195、选择积计算部196、以及第三加法部197。该秘密计算装置1n通过一边与其它秘密计算装置1n′(n′=1,...,N,其中n≠n′)协调,一边进行在后叙述的各步骤的处理,实现实施方式的秘密平方根倒数计算方法。
秘密计算装置1n例如是在具有中央运算处理装置(CPU:Central ProcessingUnit,中央处理单元)、主存储装置(RAM:Random Access Memory,随机存取存储器)等公知或者专用的计算机中读入特别的程序而构成的特别的装置。秘密计算装置1n例如在中央运算处理装置的控制下执行各处理。被输入到秘密计算装置1n的数据或在各处理中得到的数据例如被存储在主存储装置中,被存储在主存储装置中的数据根据需要被读出到中央运算处理装置而被其它处理利用。秘密计算装置1n的各处理部也可以至少一部分由集成电路等硬件构成。秘密计算装置1n具有的各存储部例如能够由RAM(Random Access Memory,随机存取存储器)等主存储装置、由硬盘或光盘或闪存(Flash Memory)那样的半导体存储器元件构成的辅助存储装置、或者关系数据库或键值存储等中间件构成。
参考图4,说明实施方式的秘密平方根倒数计算系统100执行的秘密平方根倒数计算方法的处理过程。
在步骤S11中,各秘密计算装置1n的比特分解部11通过将输入到秘密平方根倒数计算系统100的值a的分散值[a]进行比特分解,得到值a的比特表现的分散值的串{a0},...,{aλ-1}。比特分解部11将分散值的串{a0},...,{aλ-1}输出到第一比特串生成部12以及第二比特串生成部15。
在步骤S12中,各秘密计算装置1n的第一比特串生成部12使用分散值的串{a0},...,{aλ-1},在各i<λ″时生成{a′i}:={ai∨ai+1}的比特串a′0,...,a′λ′-1的分散值的串{a′0},...,{a′λ′-1}。这里,λ′是大于等于λ/2的最小的整数,λ″是小于等于λ/2的最大的整数。即,对于大于等于0且小于λ″的各整数i,对计算了分散值{ai}与分散值{ai+1}的“或”后的比特a′i的分散值{a′i}进行计算。进而,在λ为奇数时,设为{a′λ′-1}:={aλ-1}。第一比特串生成部12将分散值的串{a′0},...,{a′λ′-1}输出到标志串生成部13。
在步骤S13中,各秘密计算装置1n的标志串生成部13使用分散值的串{a′0},...,{a′λ′-1},生成表示值a′的最左比特的标志串x0,...,xλ′-1的分散值的串{x0},...,{xλ′-1}。表示最左比特的标志串例如是,仅使用上述的算法5得到的最左比特的位置成为1的标志串。标志串生成部13将分散值的串{x0},,..,{xλ′-1}输出到归一化乘数生成部14以及标志计算部16。
在步骤S14中,各秘密计算装置1n的归一化乘数生成部14通过将分散值的串{x0},...,{xλ′-1}倒序地比特结合,生成为了进行归一化及其逆运算而对计算结果乘以的乘数c′(以下,也称为“归一化乘数”)的分散值[c′]。归一化乘数生成部14将分散值[c′]输出到归一化部18。
在步骤S15中,各秘密计算装置1n的第二比特串生成部15使用分散值的串{a0},...,{aλ-1},生成在各i<λ″时成为{a″i}:={a2i}的比特串a″0,...,a″λ′-1的分散值的串{a″0},...,{a″λ′-1}。即,对于大于等于0且小于λ″的各整数i,将分散值{a2i}设定为比特a″i的分散值{a″i}。进而,在λ为奇数时,设为{a″λ′-1}:={aλ-1}。第二比特串生成部15将分散值的串{a″0},...,{a″λ′-1}输出到标志计算部16。
在步骤S16中,各秘密计算装置1n的标志计算部16使用分散值的串{x0},...,{xλ′-1}以及{a″0},...,{a″λ′-1},计算表示是否对计算结果乘以√2的标志r(以下,也称为“乘法运算标志”)的分散值[r]。具体地说,对于大于等于0且小于λ′的各整数i,将{xi}与{a″i}的积求和。即,计算{r}:={x0a″0+,..+xλ′-1a″λ′-1}。标志计算部16将分散值[r]输出到标志变换部17。
在步骤S17中,各秘密计算装置1n的标志变换部17通过mod p变换,将乘法运算标志r的分散值{r}变换为分散值[r]。标志变换部17将分散值[r]输出到平方根倒数计算部19。
在步骤S18中,各秘密计算装置1n的归一化部18使用值a的分散值[a]和归一化乘数c′的分散值[c′]和乘法运算标志r的分散值[r],通过在r=1时计算[c′][c’][2a],在r=0时计算[c′][c′][a],求将值a归一化后的值b的分散值[b]。即,计算[b]:=[c′][c′][r?2a:a]。归一化部18将分散值[b]输出到平方根倒数计算部19。
在步骤S19中,各秘密计算装置1n的平方根倒数计算部19通过使用以8次多项式进行近似平方根的倒数函数的参数来执行算法1,对于值b的分散值[b]计算平方根的倒数。这时,在算法1的步骤5中进行的公开值γ的乘法运算通过将条件设为乘法运算标志的分散值[r],将选项分别设为√2γ、γ来执行算法6而进行。即,平方根倒数计算部19使用值b的分散值[b]和乘法运算标志r的分散值[r],在r=1时计算[1/√b]*√2,在r=0时计算[1/√b],生成计算结果w的分散值[w]。平方根倒数计算部19将分散值[w]输出到逆归一化部20。
在步骤S20中,各秘密计算装置1n的逆归一化部20将计算结果w的分散值[w]与归一化乘数c′的分散值[c′]相乘,作为值a的平方根的倒数的分散值[1/√a]输出。
参考图5,详细地说明平方根倒数计算部19执行的处理过程。
在参数存储部190中存储有用于以8次多项式近似平方根的倒数函数的参数a、b、c、d、f、g、H、i、j、k、1、m、n、o、p、q、α、β、γ、δ、ζ。各参数根据要进行近似的函数而预先决定,在要近似平方根的倒数函数的情况下设定表1中例示的值即可。
在步骤S191中,平方根倒数计算部19的第一积和部191通过积和计算[y′]:=[x(δx+a-i)-j],通过右移位降低小数点位置。其中,x是将值a进行了归一化后的值b。即,为[x]:=[b]。第一积和部191将[y′]输出到第一加法部192。
在步骤S192中,平方根倒数计算部19的第一加法部192计算[y]:=[y′+(ix+j)]。第一加法部192将[y]输出到第二积和部193。
在步骤S193中,平方根倒数计算部19的第二积和部193通过积和计算[z′]:=[y(ζy+b-k)+(c-1)x-m],通过右移位降低小数点位置。第二积和部193将[z′]输出到第二加法部194。
在步骤S194中,平方根倒数计算部19的第二加法部194计算[z]:=[z′+(ky+lx+m)]。第二加法部194将[z]输出到第三积和部195。
在步骤S195中,平方根倒数计算部19的第三积和部195通过积和计算[w′/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]。第三积和部195将[w′/γ]输出到选择积计算部196。
在步骤S196中,平方根倒数计算部19的选择积计算部196将条件设为[r],将选项分别设为√2γ、γ,执行算法6。即,使用乘法运算标志r的分散值{r},在r=1时计算[w′]:=[w′/γ]*√2γ,在r=0时计算[w′]:=[w′/γ]*γ。选择积计算部196将[w′]输出到第三加法部197。
在步骤S197中,平方根倒数计算部19的第三加法部197计算[w]:=[w′+(nz+oy+px+q)]。
[变形例:秘密归一化系统]
实施方式的秘密平方根倒数计算系统100构成为执行用于平方根的倒数计算的归一化(算法3)和平方根的倒数计算(算法4)两方。变形例的秘密归一化系统构成为在秘密平方根倒数计算系统100中仅执行进行用于平方根的倒数计算的归一化(算法3)的部分。即,秘密归一化系统将值a的分散值[a]设为输入,输出将值a归一化为[0.5,1)后的值b的分散值[b]、归一化乘数c′的分散值[c′]、乘法运算标志r的分散值[r]。具体地说,在变形例的秘密归一化系统中包含的秘密计算装置1n具有:比特分解部11、第一比特串生成部12、标志串生成部13、归一化乘数生成部14、第二比特串生成部15、标志计算部16、标志变换部17、以及归一化部18。
以上,说明了本发明的实施方式,但是具体的结构不限于这些实施方式,不用说,在不脱离本发明的宗旨的范围内即使有适当设计的变更等,也包含在本发明中。实施方式中说明的各种处理不仅按照记载的顺序时间序列地执行,也可以根据执行处理的装置的处理能力或者需要并行地或者单独地执行。
[程序、记录介质]
在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应有的功能的处理内容。然后,使该程序读入图6所示的计算机的存储部1020中,通过使控制部1010、输入部1030、输出部1040等动作,在计算机上实现上述各装置中的各种处理功能。
记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
而且,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等可拆装型记录介质来进行。进而,也可以设为将该程序存储在服务器计算机的存储装置中,经由网络,通过将该程序从服务器计算机转发到其它计算机,使该程序流通的结构。
执行这样的程序的计算机例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的存储装置中存储的程序,执行按照读取的程序的处理。而且,作为该程序的其它执行方式,计算机也可以从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用服务提供商)型的服务,执行上述的处理的结构。而且,本方式中的程序中,包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
而且,在本方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以硬件性地实现这些处理内容的至少一部分。
Claims (7)
1.一种秘密平方根倒数计算系统,包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的倒数的分散值[1/√a],
λ是所述值a的小数点位置,λ'是大于等于λ/2的最小的整数,λ"是小于等于λ/2的最大的整数,
所述秘密计算装置包括:
比特分解部,由所述分散值[a]生成值a的比特表现a0,…,aλ-1的分散值的串{a0},…,{aλ-1};
第一比特串生成部,通过对于大于等于0且小于λ"的各整数i,求计算了所述分散值{ai}与所述分散值{ai+1}的“或”的比特a'i的分散值{a'i},生成比特串a'0,…,a'λ'-1的分散值的串{a'0},…,{a'λ'-1};
标志串生成部,生成表示所述分散值的串{a'0},…,{a'λ'-1}的最左比特的标志串x0,…,xλ'-1的分散值的串{x0},…,{xλ'-1};
归一化乘数生成部,生成将所述分散值的串{x0},…,{xλ'-1}倒序地比特结合后的归一化乘数c'的分散值[c'];
第二比特串生成部,通过对于大于等于0且小于λ"的各整数i,将所述分散值{a2i}设定为比特a"i的分散值{a"i},生成比特串a"0,…,a"λ'-1的分散值的串{a"0},…,{a"λ'-1};
标志计算部,对于大于等于0且小于λ'的各整数j,计算将所述分散值{xj}与所述分散值{a"j}的积求和后的乘法运算标志r的分散值{r};
归一化部,使用所述分散值[a]和所述分散值[c']和所述分散值{r},求在r=1时计算了[c'][c'][2a]、在r=0时计算了[c'][c'][a]的分散值[b];
平方根倒数计算部,使用所述分散值[b]和所述分散值[r],对在r=1时计算了[1/√b]*√2、在r=0时计算了[1/√b]的分散值[w]进行计算;以及
逆归一化部,计算将所述分散值[w]与所述分散值[c']相乘后的所述分散值[1/√a]。
2.如权利要求1所述的秘密平方根倒数计算系统,其中,
设a、b、c、d、f、g、H、i、j、k、l、m、n、o、p、q、α、β、γ、δ、ζ为用于以8次多项式近似平方根函数的参数,设[x]:=[b],
所述平方根倒数计算部包括:
第一积和部,计算[y']:=[x(δx+a-i)-j];
第一加法部,计算[y]:=[y'+(ix+j)];
第二积和部,计算[z']:=[y(ζy+b-k)+(c-l)x-m];
第二加法部,计算[z]:=[z'+(ky+lx+m)];
第三积和部,计算[w'/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ];
选择积计算部,使用所述分散值{r},在r=1时计算[w'/γ]*√2γ,在r=0时计算[w'/γ]*γ,将计算结果设为[w'];以及
第三加法部,计算[w]:=[w'+(nz+op+px+q)]。
3.一种秘密归一化系统,包含多个秘密计算装置,为了计算值a的平方根的倒数的分散值[1/√a],将值a的分散值[a]归一化,
λ为所述值a的小数点位置,λ'为大于等于λ/2的最小的整数,λ"为小于等于λ/2的最大的整数,
所述秘密计算装置包括:
比特分解部,由所述分散值[a]生成值a的比特表现a0,…,aλ-1的分散值的串{a0},…,{aλ-1};
第一比特串生成部,通过对于大于等于0且小于λ"的各整数i,求计算了所述分散值{ai}与所述分散值{ai+1}的“或”的比特a'i的分散值{a'i},生成比特串a'0,…,a'λ'-1的分散值的串{a'0},…,{a'λ'-1};
标志串生成部,生成表示所述分散值的串{a'0},…,{a'λ'-1}的最左比特的标志串x0,…,xλ'-1的分散值的串{x0},…,{xλ'-1};
归一化乘数生成部,生成将所述分散值的串{x0},…,{xλ'-1}倒序地比特结合后的归一化乘数c'的分散值[c'];
第二比特串生成部,通过对于大于等于0且小于λ"的各整数i,将所述分散值{a2i}设定为比特a"i的分散值{a"i},生成比特串a"0,…,a"λ'-1的分散值的串{a"0},…,{a"λ'-1};
标志计算部,对于大于等于0且小于λ'的各整数j,计算将所述分散值{xj}与所述分散值{a"j}的积求和后的乘法运算标志r的分散值{r};以及
归一化部,使用所述分散值[a]和所述分散值[c']和所述分散值{r},求在r=1时计算了[c'][c'][2a]、在r=0时计算了[c'][c'][a]的分散值[b]。
4.一种秘密平方根倒数计算方法,由秘密平方根倒数计算系统执行,所述秘密平方根倒数计算系统包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的倒数的分散值[1/√a],
λ是所述值a的小数点位置,λ'是大于等于λ/2的最小的整数,λ"是小于等于λ/2的最大的整数,
各秘密计算装置的比特分解部由所述分散值[a]生成值a的比特表现a0,…,aλ-1的分散值的串{a0},…,{aλ-1},
各秘密计算装置的第一比特串生成部通过对于大于等于0且小于λ"的各整数i,求计算了所述分散值{ai}与所述分散值{ai+1}的“或”的比特a'i的分散值{a'i},生成比特串a'0,…,a'λ'-1的分散值的串{a'0},…,{a'λ'-1},
各秘密计算装置的标志串生成部生成表示所述分散值的串{a'0},…,{a'λ'-1}的最左比特的标志串x0,…,xλ'-1的分散值的串{x0},…,{xλ'-1},
各秘密计算装置的归一化乘数生成部生成将所述分散值的串{x0},…,{xλ'-1}倒序地比特结合后的归一化乘数c'的分散值[c'],
各秘密计算装置的第二比特串生成部通过对于大于等于0且小于λ"的各整数i,将所述分散值{a2i}设定为比特a"i的分散值{a"i},生成比特串a"0,…,a"λ'-1的分散值的串{a"0},…,{a"λ'-1},
各秘密计算装置的标志计算部对于大于等于0且小于λ'的各整数j,计算将所述分散值{xj}与所述分散值{a"j}的积求和后的乘法运算标志r的分散值{r},
各秘密计算装置的归一化部使用所述分散值[a]和所述分散值[c']和所述分散值{r},求在r=1时计算了[c'][c'][2a]、在r=0时计算了[c'][c'][a]的分散值[b],
各秘密计算装置的平方根倒数计算部使用所述分散值[b]和所述分散值[r],对在r=1时计算了[1/√b]*√2,在r=0时计算了[1/√b]的分散值[w]进行计算,
各秘密计算装置的逆归一化部计算将所述分散值[w]与所述分散值[c']相乘后的所述分散值[1/√a]。
5.一种秘密归一化方法,由秘密归一化系统执行,所述秘密归一化系统包含多个秘密计算装置,为了计算值a的平方根的倒数的分散值[1/√a],将值a的分散值[a]归一化,
λ是所述值a的小数点位置,λ'是大于等于λ/2的最小的整数,λ"是小于等于λ/2的最大的整数,
各秘密计算装置的比特分解部由所述分散值[a]生成值a的比特表现a0,…,aλ-1的分散值的串{a0},…,{aλ-1},
各秘密计算装置的第一比特串生成部通过对于大于等于0且小于λ"的各整数i,求计算了所述分散值{ai}与所述分散值{ai+1}的“或”的比特a'i的分散值{a'i},生成比特串a'0,…,a'λ'-1的分散值的串{a'0},…,{a'λ'-1},
各秘密计算装置的标志串生成部生成表示所述分散值的串{a'0},…,{a'λ'-1}的最左比特的标志串x0,…,xλ'-1的分散值的串{x0},…,{xλ'-1},
各秘密计算装置的归一化乘数生成部生成将所述分散值的串{x0},…,{xλ'-1}倒序地比特结合后的归一化乘数c'的分散值[c'],
各秘密计算装置的第二比特串生成部通过对于大于等于0且小于λ"的各整数i,将所述分散值{a2i}设定为比特a"i的分散值{a"i},生成比特串a"0,…,a"λ'-1的分散值的串{a"0},…,{a"λ'-1},
各秘密计算装置的标志计算部对于大于等于0且小于λ'的各整数j,计算将所述分散值{xj}与所述分散值{a"j}的积求和后的乘法运算标志r的分散值{r},
各秘密计算装置的归一化部使用所述分散值[a]和所述分散值[c']和所述分散值{r},求在r=1时计算了[c'][c'][2a]在r=0时计算了[c'][c'][a]的分散值[b]。
6.一种在权利要求1或者2的秘密平方根倒数计算系统或者权利要求3的秘密归一化系统中被使用的所述秘密计算装置,。
7.一种程序,用于使计算机作为权利要求6所述的秘密计算装置发挥功能。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/001675 WO2021149099A1 (ja) | 2020-01-20 | 2020-01-20 | 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114981863A true CN114981863A (zh) | 2022-08-30 |
Family
ID=76992241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080093589.8A Pending CN114981863A (zh) | 2020-01-20 | 2020-01-20 | 秘密平方根倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230038504A1 (zh) |
EP (1) | EP4095833A4 (zh) |
JP (1) | JP7331952B2 (zh) |
CN (1) | CN114981863A (zh) |
AU (1) | AU2020425195B2 (zh) |
WO (1) | WO2021149099A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019005946A2 (en) * | 2017-06-27 | 2019-01-03 | Leighton Bonnie Berger | OPEN GENOME OUTSOURCING FOR LARGE SCALE ASSOCIATION STUDIES |
-
2020
- 2020-01-20 CN CN202080093589.8A patent/CN114981863A/zh active Pending
- 2020-01-20 JP JP2021572121A patent/JP7331952B2/ja active Active
- 2020-01-20 EP EP20916057.1A patent/EP4095833A4/en active Pending
- 2020-01-20 US US17/791,211 patent/US20230038504A1/en active Pending
- 2020-01-20 WO PCT/JP2020/001675 patent/WO2021149099A1/ja unknown
- 2020-01-20 AU AU2020425195A patent/AU2020425195B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2020425195B2 (en) | 2023-07-27 |
US20230038504A1 (en) | 2023-02-09 |
EP4095833A4 (en) | 2023-10-18 |
JP7331952B2 (ja) | 2023-08-23 |
JPWO2021149099A1 (zh) | 2021-07-29 |
WO2021149099A1 (ja) | 2021-07-29 |
EP4095833A1 (en) | 2022-11-30 |
AU2020425195A1 (en) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112805770B (zh) | 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 | |
JP2006003905A (ja) | 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置 | |
Dzwonkowski et al. | Secure quaternion feistel cipher for DICOM images | |
JPWO2019087317A1 (ja) | 秘密計算装置、システム、方法、プログラム | |
CN113434886A (zh) | 联合生成用于安全计算的数据元组的方法及装置 | |
Mounica et al. | Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit | |
CN113780552A (zh) | 一种双向隐私保护的安全多方计算方法 | |
CN114981863A (zh) | 秘密平方根倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 | |
CN114981865A (zh) | 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 | |
JP7540501B2 (ja) | 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム | |
CN114945965A (zh) | 秘密倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 | |
CN114981862A (zh) | 秘密指数函数计算系统、秘密指数函数计算方法、秘密计算装置以及程序 | |
WO2021149101A1 (ja) | 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム | |
CN113924610A (zh) | 秘密共轭梯度法计算系统、秘密计算装置、共轭梯度法计算装置、秘密共轭梯度法计算方法、共轭梯度法计算方法、以及程序 | |
CN113966511A (zh) | 秘密除法系统、秘密计算装置、秘密除法方法以及程序 | |
CN117573074A (zh) | 常数模加乘法运算器、常数模乘运算器、解密方法及介质 | |
JP2024013184A (ja) | 暗号処理装置、暗号処理方法、暗号処理プログラム | |
CN117196053A (zh) | 多项式模平方运算器、运算方法及相关装置 | |
CN117196052A (zh) | 多项式模乘运算器、运算方法及相关装置 | |
CN116368549A (zh) | 秘密指数部统一系统、秘密指数部统一装置、秘密指数部统一方法、秘密和计算系统、秘密积和计算系统、程序 | |
CN114981860A (zh) | 秘密计算装置、秘密计算方法、以及程序 | |
Salman et al. | Proposed Method to Encrypt Images to Mobile Device Based on the Principles of Shannon | |
Selianinau | The modular principles of parallel pipeline information processing | |
Liu et al. | Current Development of Historical Methods for Solving Linear Systems of Simultaneous Congruences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |