CN114981865A - 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 - Google Patents

秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 Download PDF

Info

Publication number
CN114981865A
CN114981865A CN202080093618.0A CN202080093618A CN114981865A CN 114981865 A CN114981865 A CN 114981865A CN 202080093618 A CN202080093618 A CN 202080093618A CN 114981865 A CN114981865 A CN 114981865A
Authority
CN
China
Prior art keywords
value
variance
secret
string
unit
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
Application number
CN202080093618.0A
Other languages
English (en)
Inventor
五十岚大
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN114981865A publication Critical patent/CN114981865A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

在秘密计算中高速地计算平方根。秘密平方根计算系统(100)将[a]设为输入,计算[√a]。标志串生成部(12)生成表示a的最左比特的{x0},…,{xλ‑1}。比特串生成部(13)计算{yi}:={x2i}XOR{x2i+1}而生成{y0},…,{yλ'‑1}。标志计算部(14)对于各奇数j,计算对全部{xj}的“异或”进行了计算的{r}。公开值乘数设定部(16)设定若λ为奇数则为√2、若λ为偶数则为1的r'。逆归一化乘数生成部(17)生成将{y0},…,{yλ'‑1}比特结合后的[c']。归一化乘数生成部(18)生成将{xλ‑1},…,{x0}比特结合后的[c]。归一化部(19)计算[b]:=[a][c]。平方根计算部(20)若r=1则计算[w]:=[√b]*(r'/√2),若r=0则计算[w']:=[√b]*r'。逆归一化部(21)计算[w][c'],并右移位λ'比特。

Description

秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计 算装置以及程序
技术领域
本发明涉及在秘密计算中计算平方根的技术。
背景技术
秘密计算是在将数据隐匿的情况下计算任意的函数的加密技术。期待利用该特征,对系统运用者以及对数据利用者都不泄漏数据的数据利活用的方式。已知在秘密计算中存在几种方式,其中将秘密分散设为构成要素的秘密计算,数据的处理单位小,能够进行高速的处理。
所谓秘密分散是指将秘密信息转换为称为份额的几个片断的方法。例如有虽然从秘密的信息生成n个份额,从k个以上的份额秘密能够复原,但是从不足k个的份额秘密的信息不泄漏的称为(k,n)阈值法的秘密分散。秘密分散的具体的构成方法已知Shamir秘密分散、复制秘密分散等。在本说明书中,将通过秘密分散而被分散的值的1个片断称为“份额”。另外,将全部份额的集合全体称为“分散值”。
近年,基于秘密计算的高度的统计或机器学习的研究正在盛行。可是,这些运算大多数包含有超过秘密计算擅长的加减乘法运算的、倒数、平方根、指数、对数等计算。平方根的计算是计算机等中的基本的运算之一,被利用在各种情形中。一般来说,已知就平方根的计算而言,经由平方根的倒数而设为√x=x/√x来计算的方法是高效的。在非专利文献1中公开了在秘密计算中利用平方根的倒数计算平方根的方法。另外,在包含平方根的各种函数计算中,有时需要进行归一化的处理,使得数值收敛在某个范围内。在秘密计算中,通过最左比特(msb:most significant bit,最高有效位)的移动来进行数值的归一化。
现有技术文献
非专利文献
非专利文献1:五十嵐大、“秘密計算AIの実装に向けた秘密実数演算群の設計と実装-O(|p|)ビッ卜通信量O(1)ラウンドの実数向け右シフ卜-”,CSS2019,2019年(五十岚大,“面向秘密计算AI的安装的秘密实数运算群的设计和安装-O(|p|)比特通信量O(1)圆的面向实数右移位-”,CSS2019,2019年”)
发明内容
发明要解决的课题
可是,在非专利文献1中公开的方法由于求出平方根的倒数后进行乘法运算,所以有计算成本大的课题。
鉴于上述那样的技术的课题,本发明的目的在于提供能够高速地计算平方根的秘密计算技术。
用于解决课题的方案为了解决上述的课题,本发明的第一方式的秘密平方根计算系统是包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的分散值[√a]的秘密平方根计算系统,λ为值a的小数点位置,λ′是大于等于λ/2的最小的整数,秘密计算装置包含:标志串生成部,生成表示值a的最左比特的标志串x0,...,xλ-1的分散值的串{x0},...,{xλ-1};比特串生成部,对于大于等于0且小于λ′的各整数i,通过求计算了分散值{x2i}与分散值{x2i+1}的“异或”的比特yi的分散值{yi},生成比特串y0,...,yλ′-1的分散值的串{y0},...,{yλ′-1};标志计算部,对于大于等于0且小于λ的各奇数j,求计算了分散值{xj}的“异或”的除法运算标志r的分散值{r};公开值乘数设定部,设定在λ为奇数时成为√2、在λ为偶数时成为1的公开值乘数r′;逆归一化乘数生成部,生成将分散值的串{y0},...,{yλ′-1}正序地比特结合后的逆归一化乘数c′的分散值[c′];归一化乘数生成部,生成将分散值的串{x0},...,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c];归一化部,计算将分散值[a]与分散值[c]相乘后的分散值[b];平方根计算部,使用分散值[b]和分散值{r}和公开值乘数r′,计算在r=1时计算了[√b]*(r′/√2)、在r=0时计算了[√b]*r′的分散值[w′];以及逆归一化部,计算将分散值[w′]和分散值[c′]的相乘结果右移位了λ′比特后的分散值[√a]。
本发明的第二方式的秘密归一化系统是包含多个秘密计算装置,为了计算值a的平方根的分散值[√a],将值a的分散值[a]归一化的秘密归一化系统,λ是值a的小数点位置,λ′是大于等于λ/2的最小的整数,秘密计算装置包含:标志串生成部,生成表示值a的最左比特的标志串x0,...,xλ-1的分散值的串{x0},...,{xλ-1};比特串生成部,对于大于等于0且小于λ′的各整数i,通过计算对分散值{x2i}与分散值{x2i+1}的“异或”进行了计算的比特yi的分散值{yi},生成比特串y0,...,yλ′-1的分散值的串{y0},...,{yλ′-1};标志计算部,对于大于等于0且小于λ的各奇数j,计算对全部的分散值{xj}的“异或”进行了计算的除法运算标志r的分散值{r};公开值乘数设定部,设定在λ为奇数时成为√2、在λ为偶数时成为1的公开值乘数r′;逆归一化乘数生成部,生成将分散值的串{y0},...,{yλ′-1}正序地比特结合后的逆归一化乘数c′的分散值[c′];归一化乘数生成部,生成将分散值的串{x0},...,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c];以及归一化部,计算将分散值[a]和分散值[c]相乘后的分散值[b]。
发明效果
按照本发明,能够在秘密计算中高速地计算平方根。
附图说明
图1是例示秘密平方根计算系统的功能结构的图。
图2是例示秘密计算装置的功能结构的图。
图3是例示平方根计算部的功能结构的图。
图4是例示秘密平方根计算方法的处理过程的图。
图5是例示平方根计算部的处理过程的图。
图6是例示计算机的功能结构的图。
具体实施方式
以下,对本发明的实施方式详细地进行说明。另外,对于附图中具有相同的功能的结构部附加相同的标号,省略重复说明。
在本说明书中,使用以下的记法。
[·]是将数值·隐匿后的数据。例如,能够使用Shamir秘密分散、复制秘密分散等分散值。
{·}是将比特·隐匿后的数据。例如,能够使用Z2上的复制秘密分散等分散值。
λ表示小数点位置。设想在秘密计算中使用的环或者域的比特数|p|的一半左右。
[a?b:c]为,若a=1,则表示b,若a=0则表示c。
【数学式1】
Figure BDA0003751333740000041
分别表示“非”(NOT)、“与”(AND)、“或”(OR)、“异或”(XOR)。
通过在环上的整数中决定公开的小数点位置,能够视为固定小数点的实数。在本发明中,将这样处理而在环上表示的固定小数点的实数仅记述为实数。
[实施方式:秘密平方根计算系统]
本发明的实施方式是将值a的分散值[a]设为输入,在将值a隐匿的情况下,计算值a的平方根的分散值[√a]的秘密平方根计算系统以及方法。以下,对实施方式的秘密平方根计算系统执行的平方根协议的概要进行说明。
以往,在秘密计算中,超过加减乘法运算的、倒数或平方根、指数函数、对数函数等初等函数群,处理成本大,尚未实施。在本发明中,为了解决这些课题,使用能够高效并且统一地近似秘密计算上的初等函数群的算法,能够高效地计算平方根。该近似方法仅通过以单一的方法改变参数就能够近似包含平方根的主要的初等函数。进而,该近似方法在单精度(23比特)中是相当于实数乘法运算3次的通信量/轮数,是理论最佳的效率。
在对于明文的平方根计算中,为了高效地进行计算,有时进行以下的归一化。将输入a的小数点位置中的1(即,20)的位的位置与输入a的最左比特(msb:most significantbit,最高有效位)之差设为e,进行以下的变形。即,乘以2e而归一化到区间[1,2),在求出平方根√(2ea)后乘以1/√2e
【数学式2】
Figure BDA0003751333740000042
在非专利文献1中,使用了利用1/√a×a=√a的关系的方式。在本发明中,为了更高效地进行计算,直接求出√a。在该情况下,近似后的归一化的逆运算变为除法运算。因此,为了除以√2e,设为乘以√2λ-e而除以√2λ这样的处理。
以下表示为了用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】
Figure BDA0003751333740000051
在算法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】
Figure BDA0003751333740000061
以下表示使用算法1计算秘密计算上的平方根的算法。这里,分为将设为计算对象的输入归一化为平方根计算用的算法(算法3)、使用该算法来计算平方根的算法(算法4)来进行说明。
〔算法3:平方根用归一化协议〕
输入:[a]
输出:[b],[r],[c′](其中,b是将a的最左比特移动到小数点位置λ后的值(即,将a归一化为[1,2)后的值)。R是表示是否将计算结果除以√2的真值。c′是在归一化的逆运算中使用的2的幂的数。)
1:通过比特分解得到[a]的比特表现{a0},...,{aλ-1}。
2:得到仅a的最左比特的位置成为1的比特串{x0},...,{xλ-1}。
3:通过下式设定λ′。即,将λ/2以上的最小的整数设为λ′。
【数学式4】
Figure BDA0003751333740000062
4:在各i<λ′,通过下式设定{yi}。即,计算{x2i}与{x2i+1}的“异或”。
【数学式5】
Figure BDA0003751333740000071
其中,在λ为奇数时,通过下式设定{yλ′-1}。
【数学式6】
{yλ′-1}:={x2i}
5:通过下式设定{r}。即,对于大于等于0且小于λ的各奇数j,计算全部{xj}的“异或”。R表示是否需要除以√2。
【数学式7】
Figure BDA0003751333740000072
6:在mod p变换中将{r}设为[r]。
7:在比特结合中将{y0},...,{yλ′-1}结合,设为[c′]。
8:在比特结合中将{xλ-1},...,{x0}结合,设为[c]。
9:计算[b]:=[a][c],输出[b],[r],[c′]。
〔算法4:平方根协议〕
输入:[a]
输出:[√a]
1:通过算法3,得到将[a]归一化到[1,2)后的值[b]、归一化的逆运算所需要的[c′]、[r]。
2:通过下式设定λ′。即,λ/2以上的最小的整数设为λ′。
【数学式8】
Figure BDA0003751333740000073
3:若λ为奇数则将r′设为√2,若λ为偶数则将r′设为1。
4:对[b]执行算法1,计算[b]的平方根。这时,在算法1的步骤5中进行的公开值γ的乘法运算将条件设为[r],将选项分别设为r′γ、(r′/√2)γ而执行选择性的公开乘法运算,计算[w′/γ]*γ*[r?1/√2:1]*r′。将结果设为[w]。
5:计算[w][c′]。这时,比通常多向右移位λ′比特。
表示在算法3的步骤2中执行的最左比特的标志串的生成例如能够通过使用以下的算法高效地进行。
〔算法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}:={fiXORfi+1}。
4:设为{xλ-1}:={aλ-1}。至此,{x0},...,{xλ-1}如0,0,0,1,0,0,...,0那样,变为仅msb位置为1的比特串。
在算法4的步骤4中执行的选择性的公开乘法运算,例如能够通过使用以下的算法来高效地进行。
〔算法6:向要右移位值的基于选择性的公开乘数的乘法运算〕
输入:[a],乘数m0,m1,条件[c]
输出:[m1a]ifc=1,[m0a]ifc=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,andKoji Chida,″Efficient bit-decomposition and modulus-conversion protocols withan 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、逆归一化部21、以及右移位部22。平方根计算部20例如如图3所示具有参数存储部200、第一积和部201、第一加法部202、第二积和部203、第二加法部204、第三积和部205、选择积计算部206、以及第三加法部207。该秘密计算装置1n通过一边与其它秘密计算装置1n′(n′=1,...,N,其中n≠n′)协调一边进行在后叙述的各步骤的处理,实现实施方式的秘密平方根计算方法。
秘密计算装置1n例如是在具有中央运算处理装置(CPU:Central ProcessingUnit,中央处理单元)、主存储装置(RAM:Random Access Memory,随机存取存储器)等公知或者专用的计算机中读入特别的程序而构成的特别的装置。秘密计算装置1n例如在中央运算处理装置的控制下执行各处理。被输入到秘密计算装置1n的数据或在各处理中得到的数据例如被存储在主存储装置中,被存储在主存储装置中的数据根据需要被读出到中央运算处理装置而被其它处理利用。秘密计算装置1n的各处理部也可以至少一部分由集成电路等硬件构成。秘密计算装置1n具有的各存储部例如能够由RAM(Random AccessMemory,随机存取存储器)等主存储装置、由硬盘或光盘或闪存(Flash Memory)那样的半导体存储器元件构成的辅助存储装置、或者关系数据库或键值存储等中间件构成。
参考图4,说明实施方式的秘密平方根计算系统100执行的秘密平方根计算方法的处理过程。
在步骤S11中,各秘密计算装置1n的比特分解部11通过将输入到秘密平方根计算系统100的值a的分散值[a]进行比特分解,得到值a的比特表现a0,...,aλ-1的分散值的串{a0},...,{aλ-1}。比特分解部11将分散值的串{a0},...,{aλ-1}输入到标志串生成部12。
在步骤S12中,各秘密计算装置1n的标志串生成部12使用分散值的串{a0},…,{aλ-1},生成表示值a的最左比特的标志串x0,...,xλ-1的分散值的串{x0},...,{xλ-1}。表示最左比特的标志串例如是,仅使用上述的算法5而得到的最左比特的位置成为1的标志串。标志串生成部12将分散值的串{x0},...,{xλ-1}输出到比特串生成部13、标志计算部14、以及归一化乘数生成部18。
在步骤S13中,各秘密计算装置1n的比特串生成部13使用分散值的串{x0},...,{xλ-1},生成在各i<λ′时成为{yi}:={x2i}XOR{x2i+1}的比特串y0,...,yλ′-1的分散值的串{y0},...,{yλ′-1}。这里,λ′是λ/2以上的最小的整数。即,对于大于等于0且小于λ′的各整数i,求计算了分散值{x2i}和分散值{x2i+1}的“异或”的比特yi的分散值{yi}。进而,在λ为奇数时,设为{yλ′-1}:={x2i}。比特串生成部13将分散值的串{y0},...,{yλ′-1}输出到逆归一化乘数生成部17。
在步骤S14中,各秘密计算装置1n的标志计算部14使用分散值的串{x0},…,{xλ-1},计算表示是否将计算结果除以√2的标志r(以下,也称为“除法运算标志”)的分散值{r}。具体地说,对于大于等于0且小于λ的各奇数j,计算全部的分散值{xj}的“异或”。标志计算部14将分散值{r}输出到标志变换部15。
在步骤S15中,各秘密计算装置1n的标志变换部15通过mod p变换,将除法运算标志r的分散值{r}变换为分散值[r]。标志变换部15将分散值[r]输出到平方根计算部20。
在步骤S16中,各秘密计算装置1n的公开值乘数设定部16在λ为奇数时设为r′=√2,在λ为偶数时设为r′=1,设定对计算结果相乘的公开值r′(以下,也称为“公开值乘数”)。公开值乘数设定部16将公开值乘数r′输出到平方根计算部20。
在步骤S17中,各秘密计算装置1n的逆归一化乘数生成部17通过将分散值的串{y0},...,{yλ′-1}正序地进行比特结合,生成为了进行归一化的逆运算而对计算结果相乘的乘数c′(以下,也称为“逆归一化乘数”)的分散值[c′]。逆归一化乘数生成部17将分散值[c′]输出到逆归一化部21。
在步骤S18中,各秘密计算装置1n的归一化乘数生成部18通过将分散值的串{x0},...,{xλ-1}倒序地进行比特结合,生成为了进行归一化而对输入相乘的乘数c(以下,也称为“归一化乘数”)的分散值[c]。归一化乘数生成部18将分散值[c]输出到归一化部19。
在步骤S19中,各秘密计算装置1n的归一化部19通过将值a的分散值[a]与归一化乘数c的分散值[c]相乘,计算将值a归一化后的值b的分散值[b]。归一化部19将分散值[b]输出到平方根计算部20。
在步骤S20中,各秘密计算装置1n的平方根计算部20通过使用将平方根函数以8次多项式进行近似的参数来执行算法1,对值b的分散值[b]计算平方根。这时,在算法1的步骤5中进行的公开值γ的乘法运算通过将条件设为除法运算标志r的分散值[r],将选项分别设为r′γ、(r′/√2)γ而执行算法6来进行。即,平方根计算部20使用值b的分散值[b]和除法运算标志r的分散值[r]和公开值乘数r′,在r=1时计算[√b]*(r′/√2),在r=0时计算[√b]*r′,生成计算结果w的分散值[w]。平方根计算部20将分散值[w]输出到逆归一化部21。
在步骤S21中,各秘密计算装置1n的逆归一化部21将计算结果w的分散值[w]与逆归一化乘数c′的分散值[c′]相乘。逆归一化部21将乘法运算结果[w][c′]输出到右移位部22。
在步骤S22中,各秘密计算装置1n的右移位部22将乘法运算结果[w][c′]右移位λ′比特,作为值a的平方根的分散值[√a]输出。
参考图5,详细地说明平方根计算部20执行的处理过程。
在参数存储部200中,存储有用于将平方根函数以8次多项式进行近似的参数a、b、c、d、f、g、H、i、j、k、l、m、n、o、p、q、α、β、γ、δ、ζ。各参数根据要进行近似的函数而预先决定,在近似平方根函数的情况下,设定表1中例示的值即可。
在步骤S201中,平方根计算部20的第一积和部201通过积和计算[y′]:=[x(8x+a-i)-j],通过右移位降低小数点位置。其中,x是将值a归一化后的值b。即为,[x]:=[b]。第一积和部201将[y′]输出到第一加法部202。
在步骤S202中,平方根计算部20的第一加法部202计算[y]:=[y′+(ix+j)]。第一加法部202将[y]输出到第二积和部203。
在步骤S203中,平方根计算部20的第二积和部203通过积和计算[z′]:=[y(ζy+b-k)+(c-l)x-m],通过右移位降低小数点位置。第二积和部203将[z′]输出到第二加法部204。
在步骤S204中,平方根计算部20的第二加法部204计算[z]:=[z′+(ky+lx+m)]。第二加法部204将[z]输出到第三积和部205。
在步骤S205中,平方根计算部20的第三积和部205通过积和计算[w′/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]。第三积和部205将[w′/γ]输出到选择积计算部206。
在步骤S206中,平方根计算部20的选择积计算部206将条件设为[r],将选项分别设为r′γ、(r′/√2)γ,执行算法6。即,使用除法运算标志r的分散值[r],在r=1时计算[w′]:=[w′/γ]*(r′/√2)γ,在r=0时计算[w′]:=[w′/γ]*r′γ。选择积计算部206将[w′]输出到第三加法部207。
在步骤S207中,平方根计算部20的第三加法部207计算[w]:=[w′+(nz+oy+px+q)]。
[变形例:秘密归一化系统]
实施方式的秘密平方根计算系统100构成为,执行用于平方根计算的归一化(算法3)和平方根计算(算法4)两方。变形例的秘密归一化系统构成为,在秘密平方根计算系统100中仅执行进行用于平方根计算的归一化(算法3)的部分。即,秘密归一化系统将值a的分散值[a]设为输入,输出将值a归一化到[1,2)的值b的分散值[b]、逆归一化乘数c′的分散值[c′]、除法运算标志r的分散值[r]。具体地说,在变形例的秘密归一化系统中包含的秘密计算装置1n具有:比特分解部11、标志串生成部12、比特串生成部13、标志计算部14、标志变换部15、逆归一化乘数生成部17、归一化乘数生成部18、以及归一化部19。
以上,对本发明的实施方式进行了说明,但是具体的结构不限于这些实施方式,不言而喻,即使在不脱离本发明的宗旨的范围中有适当设计的变更等,也包含在发明中。实施方式中说明的各种处理不仅可以按照记载的顺序时间序列地被执行,也可以根据执行处理的装置的处理能力或者需要并行地或者单独地被执行。
[程序、记录介质]
在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应有的功能的处理内容。然后,使该程序读入图6所示的计算机的存储部1020中,通过使控制部1010、输入部1030、输出部1040等动作,在计算机上实现上述各装置中的各种处理功能。
记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
而且,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等可拆装型记录介质来进行。进而,也可以设为将该程序存储在服务器计算机的存储装置中,经由网络,通过将该程序从服务器计算机转发到其它计算机,使该程序流通的结构。
执行这样的程序的计算机例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的存储装置中存储的程序,执行按照读取的程序的处理。而且,作为该程序的其它执行方式,计算机也可以从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用服务提供商)型的服务,执行上述的处理的结构。而且,本方式中的程序中,包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
另外,在本方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以硬件性地实现这些处理内容的至少一部分。

Claims (7)

1.一种秘密平方根计算系统,包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的分散值[√a],
λ是所述值a的小数点位置,λ'是大于等于λ/2的最小的整数,
所述秘密计算装置包括:
标志串生成部,生成表示所述值a的最左比特的标志串x0,…,xλ-1的分散值的串{x0},…,{xλ-1};
比特串生成部,对于大于等于0且小于λ'的各整数i,通过求计算了所述分散值{x2i}和所述分散值{x2i+1}的“异或”的比特yi的分散值{yi},生成比特串y0,…,yλ'-1的分散值的串{y0},…,{yλ'-1};
标志计算部,对于大于等于0且小于λ的各奇数j,求计算了全部所述分散值{xj}的“异或”的除法运算标志r的分散值{r};
公开值乘数设定部,设定在λ为奇数时成为√2、λ为偶数时成为1的公开值乘数r';
逆归一化乘数生成部,生成将所述分散值的串{y0},…,{yλ'-1}正序地比特结合后的逆归一化乘数c'的分散值[c'];
归一化乘数生成部,生成将所述分散值的串{x0},…,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c];
归一化部,计算将所述分散值[a]与所述分散值[c]相乘后的分散值[b];
平方根计算部,使用所述分散值[b]和所述分散值{r}和所述公开值乘数r',计算在r=1时计算了[√b]*(r'/√2)、在r=0时计算了[√b]*r'后的分散值[w];以及
逆归一化部,计算将所述分散值[w]与所述分散值[c']的相乘结果右移位λ'比特后的所述分散值[√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'/γ]*(r'/√2)γ,在r=0时计算[w'/γ]*r'γ,将计算结果设为[w'];以及
第三加法部,计算[w]:=[w'+(nz+op+px+q)]。
3.一种秘密归一化系统,包含多个秘密计算装置,为了计算值a的平方根的分散值[√a],将值a的分散值[a]归一化,
λ是所述值a的小数点位置,λ'是大于等于λ/2的最小的整数,
所述秘密计算装置包括:
标志串生成部,生成表示所述值a的最左比特的标志串x0,…,xλ-1的分散值的串{x0},…,{xλ-1};
比特串生成部,对于大于等于0且小于λ'的各整数i,通过求计算了所述分散值{x2i}与所述分散值{x2i+1}的“异或”的比特yi的分散值{yi},生成比特串y0,…,yλ'-1的分散值的串{y0},…,{yλ'-1};
标志计算部,对于大于等于0且小于λ的各奇数j,对计算了全部所述分散值{xj}的“异或”后的除法运算标志r的分散值{r}进行计算;
公开值乘数设定部,设定在λ为奇数时成为√2、在λ为偶数时成为1的公开值乘数r';
逆归一化乘数生成部,生成将所述分散值的串{y0},…,{yλ'-1}正序地比特结合后的逆归一化乘数c'的分散值[c'];
归一化乘数生成部,生成将所述分散值的串{x0},…,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c];以及
归一化部,计算将所述分散值[a]与所述分散值[c]相乘后的分散值[b]。
4.一种秘密平方根计算方法,由秘密平方根计算系统执行,所述秘密平方根计算系统包含多个秘密计算装置,将值a的分散值[a]设为输入,计算值a的平方根的分散值[√a],
λ为所述值a的小数点位置,λ'为大于等于λ/2的最小的整数,
各秘密计算装置的标志串生成部生成表示所述值a的最左比特的标志串x0,…,xλ-1的分散值的串{x0},…,{xλ-1},
各秘密计算装置的比特串生成部对于大于等于0且小于λ'的各整数i,通过求计算了所述分散值{x2i}与所述分散值{x2i+1}的“异或”后的比特yi的分散值{yi},生成比特串y0,…,yλ'-1的分散值的串{y0},…,{yλ'-1},
各秘密计算装置的标志计算部对于大于等于0且小于λ的各奇数j,求计算了全部所述分散值{xj}的“异或”后的除法运算标志r的分散值{r},
各秘密计算装置的公开值乘数设定部设定在λ为奇数时成为√2、在λ为偶数时成为1的公开值乘数r',
各秘密计算装置的逆归一化乘数生成部生成将所述分散值的串{y0},…,{yλ'-1}正序地比特结合后的逆归一化乘数c'的分散值[c'],
各秘密计算装置的归一化乘数生成部生成将所述分散值的串{x0},…,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c],
各秘密计算装置的归一化部计算将所述分散值[a]与所述分散值[c]相乘后的分散值[b],
各秘密计算装置的平方根计算部使用所述分散值[b]和所述分散值{r}和所述公开值乘数r',对在r=1时计算了[√b]*(r'/√2)、并且在r=0时计算了[√b]*r'的分散值[w]进行计算,
各秘密计算装置的逆归一化部计算将所述分散值[w]与所述分散值[c']的相乘结果右移位了λ'比特后的所述分散值[√a]。
5.一种秘密归一化方法,由秘密归一化系统执行,所述秘密归一化系统包含多个秘密计算装置,为了计算值a的平方根的分散值[√a],将值a的分散值[a]归一化,
λ为所述值a的小数点位置,λ'为大于等于λ/2的最小的整数,
各秘密计算装置的标志串生成部生成表示所述值a的最左比特的标志串x0,…,xλ-1的分散值的串{x0},…,{xλ-1},
各秘密计算装置的比特串生成部对于大于等于0且小于λ'的各整数i,通过求计算了所述分散值{x2i}与所述分散值{x2i+1}的“异或”的比特yi的分散值{yi},生成比特串y0,…,yλ'-1的分散值的串{y0},…,{yλ'-1},
各秘密计算装置的标志计算部对于大于等于0且小于λ的各奇数j,求计算了全部所述分散值{xj}的“异或”的除法运算标志r的分散值{r},
各秘密计算装置的公开值乘数设定部设定在λ为奇数时成为√2、在λ为偶数时成为1的公开值乘数r',
各秘密计算装置的逆归一化乘数生成部生成将所述分散值的串{y0},…,{yλ'-1}正序地比特结合后的逆归一化乘数c'的分散值[c'],
各秘密计算装置的归一化乘数生成部生成将所述分散值的串{x0},…,{xλ-1}倒序地比特结合后的归一化乘数c的分散值[c],
各秘密计算装置的归一化部计算将所述分散值[a]与所述分散值[c]相乘后的分散值[b]。
6.一种在权利要求1或者2的秘密平方根计算系统或者权利要求3的秘密归一化系统中被使用的所述秘密计算装置。
7.一种程序,用于使计算机作为权利要求6中记载的秘密计算装置发挥功能。
CN202080093618.0A 2020-01-20 2020-01-20 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 Pending CN114981865A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/001674 WO2021149098A1 (ja) 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム

Publications (1)

Publication Number Publication Date
CN114981865A true CN114981865A (zh) 2022-08-30

Family

ID=76992239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080093618.0A Pending CN114981865A (zh) 2020-01-20 2020-01-20 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序

Country Status (6)

Country Link
US (1) US20230044126A1 (zh)
EP (1) EP4095827A4 (zh)
JP (1) JP7331951B2 (zh)
CN (1) CN114981865A (zh)
AU (1) AU2020424575B2 (zh)
WO (1) WO2021149098A1 (zh)

Also Published As

Publication number Publication date
US20230044126A1 (en) 2023-02-09
WO2021149098A1 (ja) 2021-07-29
AU2020424575A1 (en) 2022-07-14
AU2020424575B2 (en) 2023-08-03
JP7331951B2 (ja) 2023-08-23
EP4095827A4 (en) 2023-10-11
JPWO2021149098A1 (zh) 2021-07-29
EP4095827A1 (en) 2022-11-30

Similar Documents

Publication Publication Date Title
JP7067633B2 (ja) 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
JPWO2019087317A1 (ja) 秘密計算装置、システム、方法、プログラム
CN114981865A (zh) 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序
WO2022079891A1 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
CN114981863A (zh) 秘密平方根倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序
WO2021149101A1 (ja) 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム
WO2021149100A1 (ja) 秘密指数関数計算システム、秘密指数関数計算方法、秘密計算装置、およびプログラム
JP7331953B2 (ja) 秘密逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
WO2021149104A1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
WO2021149106A1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
WO2020250269A1 (ja) 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム
Wong et al. Speeding up the Montgomery Exponentiation with CMM-SDR Over GPU with Maxwell and Pascal Architecture
CN114981859A (zh) 秘密计算装置、秘密计算方法、以及程序
CN116368549A (zh) 秘密指数部统一系统、秘密指数部统一装置、秘密指数部统一方法、秘密和计算系统、秘密积和计算系统、程序
JP2004151234A (ja) べき乗演算装置

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