CN112805770B - 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 - Google Patents

秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 Download PDF

Info

Publication number
CN112805770B
CN112805770B CN201980066066.1A CN201980066066A CN112805770B CN 112805770 B CN112805770 B CN 112805770B CN 201980066066 A CN201980066066 A CN 201980066066A CN 112805770 B CN112805770 B CN 112805770B
Authority
CN
China
Prior art keywords
value
secret
dispersion
dispersion value
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.)
Active
Application number
CN201980066066.1A
Other languages
English (en)
Other versions
CN112805770A (zh
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 CN112805770A publication Critical patent/CN112805770A/zh
Application granted granted Critical
Publication of CN112805770B publication Critical patent/CN112805770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

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

Abstract

在秘密计算中实现高速的右移位运算以及除法运算。公开值倍部(11)从值a的分散值[a]计算[a']=[2ua]。第一变换部(12)将[a']变换为加法的秘密分散。右移位运算部(13)计算<s>i=<a'>i>>b+u。第二变换部(14)将<s>变换为线性秘密分散。第一比特变换部(15)将<a'>i的低位u比特变换为{a'i mod 2u}。商转移部(16)得到‑Σi<m{a'i mod 2u}的低位u比特作为{q}。第二比特变换部(17)将<a'>i的低位b+u比特变换为{a'iR}={a'i mod 2b+u}。加法运算部(18)计算{z}=Σi<m{a'iR}+{q},得到{z}的第b+u比特以后的比特串{zQ}。第三变换部(19)将{q}、{zQ}变换为线性秘密分散。输出计算部(20)输出[s]‑[2l‑(b+u)q]+[zQ]作为[a>>b]。

Description

秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密 计算装置以及记录介质
技术领域
本发明涉及在秘密计算中进行右移位运算以及除法运算的技术。
背景技术
所谓秘密计算,是指保持将数据隐匿的状态来计算任意的函数的加密技术。利用该特征,无论系统运用者还是数据利用者,都被期待不遗漏数据的灵活利用数据的方式。已知,在秘密计算中存在几种方式,其中将秘密分散设为结构要素,数据的处理单位小,能够进行高速的处理。
所谓秘密分散,是指将秘密信息变换为被称为份额的几个片断的方法。例如,有从秘密信息生成n个份额,从k个以上的份额可以复原秘密,但是从不足k个的份额不泄漏秘密信息的被称为(k,n)阈值法的秘密分散。关于秘密分散的具体的构成方法,已知Shamir秘密分散、复制秘密分散等。在本说明书中,将通过秘密分散被分散的值的1个片断称为“份额”。另外,将全部份额的集合全体称为“被分散的值”或者“分散值”。
右移位运算是计算机等中的基本的运算之一,在各种情形下被利用。例如,右移位运算可以利用为降低数值精度的运算。另外,除数为2的幂的情况下的除法运算可以通过右移位运算来实现。在非专利文献1中,公开了在秘密计算中在位数2的幂的整数环上进行移位运算的方法。
现有技术文献
非专利文献
非专利文献1:D.Bogdanov,M.Niitsoo,T.Toft,and J.Willemson,"High-performance secure multi-party computation for data mining applications,"International Journal of Information Security,Volume 11,Issue 6,Pages 403-418,November 2012.
发明内容
发明要解决的课题
可是,在非专利文献1中公开的方法,只能在位数2的幂的整数环上利用,所以存在如下课题,即如果在域上重复乘法运算等使数值精度增大的运算则引起溢出(overflow),从而无法进行计算。
本发明的目的是,鉴于上述那样的技术的课题,提供实现高速的右移位运算以及除法运算的秘密计算技术。
用于解决课题的方案
为了解决上述的课题,关于本发明的第一方式的秘密右移位运算系统,[·]是将值·以第一秘密分散进行了分散的分散值,<·>是将值·以加法的秘密分散进行了分散的分散值,{·}是将值·的比特表现进行了分散的分散值,分散值[·]和分散值<·>能够相互变换,a为任意的值,b为移位量,m是3以上的分散数,u是log m以上的整数,l是值a的比特数,>>是右移位运算符,该秘密右移位运算系统包含m台秘密计算装置,将值a的分散值[a]和移位量b设为输入,计算将值a右移位了b比特的值的分散值[a>>b],秘密计算装置包括:使用分散值[a]计算分散值[a']=[2ua]的公开值倍部;将分散值[a']变换为加法的秘密分散的分散值<a'>=<a'>0,…,<a'>m-1的第一变换部;对于0以上不足m的各整数i,计算<s>i=<a'>i>>b+u,生成分散值<s>=<s>0,…,<s>m-1的右移位运算部;将分散值<s>变换为第一秘密分散的分散值[s]的第二变换部;对于0以上不足m的各整数i,将分散值<a'>的份额<a'>i的低位u比特变换为比特表现的分散值{a'i mod 2u}的第一比特变换部;使用分散值{a'i mod 2u}计算-Σi<m{a'i mod 2u}的低位u比特,作为比特表现的分散值{q}而得到的商转移部;将分散值{q}变换为第一秘密分散的分散值[q]的第三变换部;以及使用分散值[s]、[q]计算[s]-[2l-(b+u)q]+1,作为分散值[a>>b]而得到的输出计算部。
为了解决上述的课题,关于本发明的第二方式的秘密除法运算系统,p为素数,[·]是将值·以份额数为3的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为2的加法的秘密分散进行了分散的分散值,分散值[·]和分散值<·>能够相互变换,a为被除数,d为除数,/是表示舍去小数点以下的除法运算的运算符,该秘密除法运算系统包含3台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],秘密计算装置包括:将分散值[a]变换为加法的秘密分散的分散值<a>=<a>0,<a>1的输入变换部;使用分散值[a]和除数d计算分散值<a'>=<2a>和值d'=2d的公开值倍部;使用分散值<a'>得到值a'除以素数p的商q的分散值<q>的商转移部;得到素数p除以值d'的商p'和余数r'的公开除法运算部;使用分散值<a'>和值d'和余数r',计算<b>0=(<a'>0+d'-1-r')/d',<b>1=<a'>1/d',生成分散值<b>=<b>0,<b>1的近似部;使用分散值<b>、<q>和商p',计算<b>-(p'+1)<q>+1,作为除法运算结果a/d的分散值<a/d>而得到的输出计算部;以及将分散值<a/d>变换为第一秘密分散的分散值[a/d]的输出变换部。
为了解决上述课题,关于本发明的第三方式的秘密除法运算系统,p为素数,[·]是将值·以份额数为m的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为m的加法的秘密分散进行了分散的分散值,分散值[·]和分散值<·>能够相互变换,a为被除数,d为除数,m是3以上的分散数,u是log m以上的整数,/是表示舍去小数点以下的除法运算的运算符,该秘密除法运算系统包含m台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],秘密计算装置包括:将分散值[a]变换为加法的秘密分散的分散值<a>=<a>0,…,<a>m-1的输入变换部;使用分散值[a]和除数d计算分散值<a'>=<2ua>和值d'=2ud的公开值倍部;使用分散值<a'>得到值a'除以素数p的商q的分散值<q>的商转移部;得到素数p除以值d'的商p'和余数r'的公开除法运算部;得到若r'≥d'/2则设定z=1,若r'<d'/2则设定z=0的标记z的标记设定部;对于0以上不足m的各整数i,若i=0则计算<b>i=(<a'>i+(d'-r')+(d'-r')/2)/d',若i≠0则计算<b>i=<a'>i/d',生成分散值<b>=<b>0,…,<b>m-1的近似部;对于0以上不足m的各整数i,关于将分散值<b>的份额<b>j除以值d'而得的商p"和余数r",若为r"≤d'/2-1则计算<b'>i=<p">,若为r"≥d'/2则计算<b'>i=<p"+1>,得到分散值<b'>=<b'>0,…,<b'>m-1的端数处理部;使用分散值<b'>、<q>和商p'和标记z,计算<b'>-(p'+z)<q>-1,作为除法运算结果a/d的分散值<a/d>而得到的输出计算部;以及将分散值<a/d>变换为第一秘密分散的分散值[a/d]的输出变换部。
发明的效果
根据本发明的秘密计算技术,可以在秘密计算中实现高速的右移位运算以及除法运算。
附图说明
图1是例示秘密右移位运算系统的功能结构的图。
图2是例示第一实施方式的秘密计算装置的功能结构的图。
图3是例示第一实施方式的秘密右移位运算方法的处理步骤的图。
图4是例示第二实施方式的秘密计算装置的功能结构的图。
图5是例示第二实施方式的秘密右移位运算方法的处理步骤的图。
图6是例示第三实施方式的秘密除法运算系统的功能结构的图。
图7是例示第三实施方式的秘密计算装置的功能结构的图。
图8是例示第三实施方式的秘密除法运算方法的处理步骤的图。
图9是例示第四实施方式的秘密除法运算系统的功能结构的图。
图10是例示第四实施方式的秘密计算装置的功能结构的图。
图11是例示第四实施方式的秘密除法运算方法的处理步骤的图。
具体实施方式
以下,详细地说明本发明的实施方式。另外,对附图中具有相同的功能的结构部附加相同的标号,省略重复说明。另外,在数式等中,在省略了log的底的情况下,底为2。
[第一实施方式]
本发明的第一实施方式是,保持将设为右移位的对象的被移位数隐匿了的状态,将被移位数以被给定的移位量右移位而输出的秘密右移位运算系统以及方法。以下,对第一实施方式的秘密右移位运算系统执行的右移位协议的概要进行说明。该协议是梅森素数上的协议。梅森素数是在基于秘密分散的秘密计算中被使用的重要的结构(参照参考文献1)。
〔参考文献1〕桐淵直人,五十嵐大,濱田浩気,菊池亮,“プログラマブルな秘密計算ライブラリMEVAL3,”暗号と情報セキュリティシンポジウム(SCIS),pp.1-8,2018.
右移位是整数除法运算,不是由加法运算以及乘法运算构成的环运算。首先,在定理1中以使用了加法的秘密分散的商q的环运算表现一般的整数除法运算,在其系统1中以使用了加法的秘密分散的商q的环运算表现右移位。另外,商q可以通过商转移高效地计算(参照参考文献2)。
〔参考文献2〕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.
<定理1:基于整数环Zq上的公开值的商>
设有任意的分散数m∈N,素数p∈N,除数d∈N,被除数a∈R,满足a=Σi<maimod p的份额a0,...,am-1。这里,对于各i,非负整数aiQ,aiR分别设为ai除以d的商和余数,非负整数pQ,pR分别设为p除以d的商和余数,非负整数q设为Σi<mai除以p的商,zQ设为Σi<maiR+q(d-pR)除以d的商。这时,a除以d的商aQ以以下的式(1)表示。
aQ=Σi<maiQ-(pQ+1)q+zQ(1)
<定理1的证明>
由假定a=Σi<maimod p,a为Σi<mai除以p的余数。由假定“q是Σi<mai除以p的商”,有Σi<mai=qp+a。由假定,ai=aiQd+aiR,p=pQd+pR,所以有
a=(Σi<maiQ)d+ΣaiR-qpQd-qpR
=(Σi<maiQ-qpQ)d+(Σi<maiR-qpR)。
进而,若将Σi<maiR-qpR除以d的商设为yQ,则有
aQ=(Σi<maiQ-qpQ)+yQ
另一方面,zQ为Σi<maiR+q(d-pR)除以d的商,所以有yQ=zQ-q。
<系统1:梅森素数上右移位公式>
在定理1中,将素数比特长度l∈N设为任意,将移位比特数b∈N设为b≤l,设素数p=2l-1,除数d=2b。这样,z'Q为Σi<maiR+q除以2b的商,aQ通过以下的式(2)表示。
aQ=Σi<maiQ-2l-bf+z'Q(2)
<系统1的证明>
只要在式(1)中代入p=2l-1,d=2b即可。
<系统2:梅森素数上的商转移>
对于任意的分散数m∈N、梅森素数p,设u∈N满足log m≤u,a0,...,am-1∈Zp满足Σi<mai mod 2u=0。这时若将q设为Σi<mai除以p的商,则q通过以下的式(3)表示。
q=-Σi<mai mod 2u (3)
<右移位协议>
以下表示在本实施方式中执行的右移位协议。该协议是按照系统1的式(2)进行计算的协议。这里使用以下的记法。
[·]是通过成为输入输出的形式的秘密分散被分散而得的值。需要能够进行加法、公开值倍、与加法的秘密分散的相互变换、来自比特串的比特合成。例如,可以使用Shamir秘密分散、复制秘密分散等线性秘密分散。
<·>是通过加法的秘密分散被分散而得的值。加法的秘密分散是复原以加法进行的秘密分散。例如,可以使用单纯的加法的秘密分散、复制秘密分散。
{·}是作为比特串被分散而得的值。即为,作为将比特秘密分散而得的值的串,将数值进行比特表现而得的值。例如,可以使用Z2上的复制秘密分散的串。
未附加尾标的[·]、<·>、{·}表示被分散的值整体。附加下标的[·]i、<·>i、{·}i表示份额(这里为第i个份额)。
在复制秘密分散中,各方(party)具有的份额由被称为“子份额”的多个元素构成,在多方中相同的值的元素被共享。该子份额也作为份额来处理。
〔算法1:整数环Zq上的右移位协议〕
输入:被移位数[a],移位量b
参数:加法的秘密分散的分散数m、log m以上的整数u
输出:[a>>b](其中,>>是右移位运算符,表示将a的各比特以b比特而右移位。)
1:通过公开值倍计算[a']=[2ua]。
2:将[a']变换为加法的秘密分散,得到<a'>。
3:将<s>设为<s>i=<a'>i>>b+u。
4:将<s>变换为线性秘密分散,得到[s]。
5:将各<a'>i的低位u比特分散,得到<a'>i mod 2u的比特表现{a'i mod 2u}。
6:通过加法运算电路以及符号反转电路,计算-Σi<m{a'i mod 2u}的低位u比特。通过商转移定理,该输出等于q,所以设为{q}。
7:将各<a'>i的低位b+u比特分散,得到<a'>i mod 2b+u的比特表现{a'iR}。
8:通过加法运算电路,计算{z}=Σi<m{a'iR}+{q},将第b+u比特(0开始)以后的比特串设为{zQ}。这时,可以循环使用一部分在步骤6中得到的u比特的加法运算电路的处理结果。
9:将{q}、{zQ}通过比特合成而变换为线性秘密分散,得到[q]、[zQ]。
10:输出[s]-[2l-(b+u)q]+[zQ]。
另外,包含在上述协议中使用的线性秘密分散和复制秘密分散的加法的秘密分散的相互变换、比特合成、复制秘密分散的各比特的分散都记载在上述参考文献2中。
<秘密右移位运算系统100>
第一实施方式的秘密右移位运算系统100执行上述的算法1:整数环Zq上的右移位协议。如图1所示,秘密右移位运算系统100包含m(≥3)台的秘密计算装置11,…,1m。在该实施方式中,秘密计算装置11,…,1m分别被连接至通信网9。通信网9是以被连接的各装置可相互通信的方式构成的线路交换方式或者分组交换方式的通信网,例如可以使用因特网或LAN(Local Area Network,局域网)、WAN(Wide Area Network,广域网)等。另外,各装置不一定需要能够经由通信网9以在线方式进行通信。例如,也可以构成为,将输入至秘密计算装置1i(i=1,…,m)的信息存储在磁带或USB存储器等可拆装记录介质中,从该可拆装记录介质以离线方式输入至秘密计算装置1i
第一实施方式的秘密右移位运算系统中包含的秘密计算装置1i(i=1,…,m)例如如图2所示,包含:公开值倍部11、第一变换部12、右移位运算部13、第二变换部14、第一比特变换部15、商转移部16、第二比特变换部17、加法运算部18、第三变换部19、以及输出计算部20。通过该秘密计算装置1i一边与其他秘密计算装置1i'(i'=1,…,m,其中i≠i')协调,一边进行后述的各步骤的处理,实现第一实施方式的秘密右移位运算方法。
秘密计算装置1i例如是在具有中央运算处理装置(CPU:Central ProcessingUnit)、主存储装置(RAM:Random Access Memory)等的公知或者专用的计算机中读入特别的程序而构成的特别的装置。秘密计算装置1i例如在中央运算处理装置的控制下执行各处理。被输入到秘密计算装置1i的数据或在各处理中得到的数据例如被存储在主存储装置中,被存储在主存储装置中的数据根据需要被读出至中央运算处理装置,被利用在其它处理中。秘密计算装置1i的各处理部也可以至少一部分由集成电路等硬件构成。
参照图3,说明第一实施方式的秘密右移位运算系统100执行的秘密右移位运算方法的处理过程。
在步骤S11中,各秘密计算装置1i的公开值倍部11接受被输入到秘密计算装置1i的被移位数a的分散值[a],通过公开值倍计算[a']=[2ua]。这里,u是log m以上的整数,m是加法的秘密分散的分散数。U、m是被预先给定的参数。公开值倍部11将计算出的分散值[a']输入到第一变换部12。
在步骤S12中,各秘密计算装置1i的第一变换部12从公开值倍部11接受分散值[a'],将分散值[a']变换为加法的秘密分散的分散值<a'>=<a'>0,…,<a'>m-1。第一变换部12将变换后的分散值<a'>输入到右移位运算部13、第一比特变换部15、以及第二比特变换部17。
在步骤S13中,各秘密计算装置1i的右移位运算部13从第一变换部12接受分散值<a'>,计算<s>i=<a'>i>>b+u,得到分散值<s>。其中,>>是右移位运算符。右移位运算部13将计算出的分散值<s>输入到第二变换部14。
在步骤S14中,各秘密计算装置1i的第二变换部14从右移位运算部13接受分散值<s>,将分散值<s>变换为线性秘密分散。第二变换部14将变换后的分散值[s]输入到输出计算部20。
在步骤S15中,各秘密计算装置1i的第一比特变换部15从第一变换部12接受分散值<a'>,将分散值<a'>的份额<a'>i的低位u比特分散,得到<a'>i mod 2u的比特表现即分散值{a'i mod 2u}。第一比特变换部15将分散值{a'i mod 2u}输入到商转移部16。
在步骤S16中,各秘密计算装置1i的商转移部16从第一比特变换部15接受分散值{a'imod 2u},通过加法运算电路以及符号反转电路,计算-Σi<m{a'imod 2u}的低位u比特。将计算结果的比特串设为商q的分散值{q}。商转移部16将分散值{q}输入到加法运算部18以及第三变换部19。
在步骤S17中,各秘密计算装置1i的第二比特变换部17从第一变换部12接受分散值<a'>,将分散值<a'>的份额<a'>i的低位b+u比特分散,得到<a'>i mod 2b+u的比特表现即分散值{a'iR}。第二比特变换部17将分散值{a'iR}输入到加法运算部18。
在步骤S18中,各秘密计算装置1i的加法运算部18从商转移部16接受分散值{q},从第二比特变换部17接受分散值{a'iR},通过加法运算电路计算{z}=Σi<m{a'iR}+{q}。将计算结果的比特串{z}的第b+u比特(0开始)以后的比特串设为分散值{zQ}。加法运算部18将分散值{zQ}输入到第三变换部19。
在步骤S19中,各秘密计算装置1i的第三变换部19从商转移部16接受分散值{q},从加法运算部18接受分散值{zQ},通过比特合成而将{q}、{zQ}变换为线性秘密分散。第三变换部19将变换后的分散值[q]、[zQ]输入到输出计算部20。
在步骤S20中,各秘密计算装置1i的输出计算部20从第二变换部14接受分散值[s],从第三变换部19接受分散值[q]、[zQ],计算[s]-[2l-(b+u)q]+[zQ],作为将被移位数a右移位了b比特后的值a>>b的分散值[a>>b]输出。
<效果>
评价右移位协议的通信量和轮(round)数。考虑系数,忽略常数项。设想为u的值在被动(passive)下小至1,在主动(active)下也小至2,所以u视为常数进行评价。
通信量为以下那样。将每一方的发送比特数设为单位。从线性秘密分散至加法的秘密分散的变换为0,从加法的秘密分散至线性秘密分散的变换为l,低位b+u比特的分散为b,加法运算电路为b,符号反转电路为0,比特合成每1次将l设为2次,合计使用素数比特长度l、移位量b表示为3l+2b。
轮数如以下那样。加法运算电路为b轮,其它为常数轮,合计b轮。
[第二实施方式]
在第一实施方式的秘密右移位运算系统中,第二比特变换部17以及加法运算部18进行了将通过右移位运算产生的低位比特的误差进行近似的处理。可是,能够近似的误差是在数值计算中可以忽略的范围的误差。在秘密计算中加法运算电路的运算量大,所以通过忽略该误差(即,省略该近似处理),可以实现更高速的右移位运算。以下表示在本实施方式中执行的右移位协议。
〔算法2:高速的右移位协议〕
输入:被移位数[a],移位量b
参数:加法的秘密分散的分散数m,log m以上的整数u
输出:[a>>b](其中,>>是右移位运算符,表示将a的各比特以b比特进行右移位。)
1:通过公开值倍计算[a']=[2ua]。
2:将[a']变换为加法的秘密分散,得到<a'>。
3:将<s>设为<s>i=<a'>i>>b+u。
4:将<s>变换为线性秘密分散而得到[s]。
5:将各<a'>i的低位u比特分散,得到<a'>i mod 2u的比特表现{a'i mod 2u}。
6:通过加法运算电路以及符号反转电路,计算-Σi<m{a'imod 2u}的低位u比特。通过商转移定理,该输出等于q,所以设为{q}。
7:通过比特合成,将{q}变换为线性秘密分散,得到[q]。
8:输出[s]-[2l-(b+u)q]+1。
<秘密右移位运算系统200>
第二实施方式的秘密右移位运算系统200执行上述的算法2:高速的右移位协议。第二实施方式的秘密右移位运算系统200中包含的秘密计算装置2i(i=1,…,m)例如如图4所示,包含:公开值倍部11、第一变换部12、右移位运算部13、第二变换部14、第一比特变换部15、商转移部16、第三变换部19、以及输出计算部20。即,不包含在第一实施方式的秘密计算装置1i(i=1,…,m)中包含了的第二比特变换部17以及加法运算部18。通过该秘密计算装置2i一边与其他秘密计算装置2i'(i'=1,…,m,其中i≠i')协调,一边进行后述的各步骤的处理,实现第二实施方式的秘密右移位运算方法。
参照图5,说明第二实施方式的秘密右移位运算系统200执行的秘密右移位运算方法的处理过程。
在步骤S11中,各秘密计算装置2i的公开值倍部11接受被输入到秘密计算装置2i的被移位数a的分散值[a],通过公开值倍来计算[a']=[2ua]。公开值倍部11将计算出的分散值[a']输入到第一变换部12。
在步骤S12中,各秘密计算装置2i的第一变换部12从公开值倍部11接受分散值[a'],将分散值[a']变换为加法的秘密分散的分散值<a'>=<a'>0,…,<a'>m-1。第一变换部12将变换后的分散值<a'>输入到右移位运算部13以及第一比特变换部15。
在步骤S13中,各秘密计算装置2i的右移位运算部13从第一变换部12接受分散值<a'>,计算<s>i=<a'>i>>b+u,得到分散值<s>。右移位运算部13将计算出的分散值<s>输入到第二变换部14。
在步骤S14中,各秘密计算装置2i的第二变换部14从右移位运算部13接受分散值<s>,将分散值<s>变换为线性秘密分散。第二变换部14将变换后的分散值[s]输入到输出计算部20。
在步骤S15中,各秘密计算装置2i的第一比特变换部15从第一变换部12接受分散值<a'>,将分散值<a'>的份额<a'>i的低位u比特分散,得到<a'>i mod 2u的比特表现即分散值{a'i mod 2u}。第一比特变换部15将分散值{a'i mod2u}输入到商转移部16。
在步骤S16中,各秘密计算装置2i的商转移部16从第一比特变换部15接受分散值{a'I mod 2u},通过加法运算电路以及符号反转电路,计算-Σi<m{a'i mod 2u}的低位u比特。将计算结果的比特串设为商q的分散值{q}。商转移部16将分散值{q}输入到第三变换部19。
在步骤S19中,各秘密计算装置2i的第三变换部19从商转移部16接受分散值{q},通过比特合成,将{q}变换为线性秘密分散。第三变换部19将变换后的分散值[q]输入到输出计算部20。
在步骤S20中,各秘密计算装置2i的输出计算部20从第二变换部14接受分散值[s],从第三变换部19接受分散值[q],计算[s]-[2l-(b+u)q]+1,作为将被移位数a右移位了b比特而得的值a>>b的分散值[a>>b]而输出。
[第三实施方式]
右移位运算能够视为基于2的幂的除法运算。因此,在第三实施方式中,考虑扩展至基于2的幂以外的除法运算。另外,与右移位运算中移位量是公开的一样,除数设为公开值。在第三实施方式中,设想使用份额数为2的加法的秘密分散。即,在内部的处理中使用的加法的秘密分散是(2,2)加法的秘密分散,成为输入输出的形式的秘密分散是(2,3)线性秘密分散。以下表示在本实施方式中执行的除数公开除法运算协议。
〔算法3:除数公开除法运算协议(份额数2,除数为无符号整数)〕
输入:被除数[a],除数d
输出:[a/d](其中,/表示舍去小数点以下的除法运算。)
1:将[a]变换为(2,2)加法的秘密分散,得到<a>。
2:计算<a'>:=<2a>,d'=2d。
3:通过商转移等,得到<a'>除以p的商<q>。
4:得到p除以d'的商p'和余数r'。
5:计算下式,得到<b>。这里,加减法不是mod p,而是自然数上的加减法。
【数学式1】
6:计算<b>-(p'+1)<q>+1,作为<a/d>的结果得到。
7:将<a/d>变换为(2,3)线性秘密分散,输出[a/d]。
<秘密除法运算系统300>
第三实施方式的秘密除法运算系统300执行上述的算法3:除数公开除法运算协议。如图6所示,秘密除法运算系统300包含3台秘密计算装置31、32、33。在该实施方式中,秘密计算装置31、32、33分别被连接至通信网9。
第三实施方式的秘密除法运算系统300中包含的秘密计算装置3i(i=1,…,3)例如如图7所示,包含:输入变换部31、公开值倍部32、商转移部33、公开除法运算部34、近似部35、输出计算部36、以及输出变换部37。通过该秘密计算装置3i一边与其他秘密计算装置3i'(i'=1,…,3,其中i≠i')协调,一边进行后述的各步骤的处理,实现第三实施方式的秘密除法运算方法。
参照图8,说明第三实施方式的秘密除法运算系统300执行的秘密除法运算方法的处理过程。
在步骤S31中,各秘密计算装置3i的输入变换部31接受被输入到秘密计算装置3i的被除数a的分散值[a],将分散值[a]变换为(2,2)加法的秘密分散的分散值<a>=<a>0,<a>1。输入变换部31将变换后的分散值<a>输入到公开值倍部32。
在步骤S32中,各秘密计算装置3i的公开值倍部32接受被输入到秘密计算装置3i的除数d和从输入变换部31而被输入的分散值<a>,通过公开值倍,计算<a'>=<2a>,d'=2d。公开值倍部32将计算出的分散值<a'>和值d'输入到商转移部33以及近似部35。另外,公开值倍部32将值d'输入到公开除法运算部34。
在步骤S33中,各秘密计算装置3i的商转移部33从公开值倍部32接受分散值<a'>和值d',通过商转移等,得到值a'除以模p的商q的分散值<q>。具体地说,执行在第一实施方式的第一比特变换部15、商转移部16、以及第三变换部19中进行过的处理即可。即,将分散值<a'>的份额<a'>i的低位u比特分散,得到<a'>i mod 2u的比特表现即分散值{a'i mod2u},通过加法运算电路以及符号反转电路,计算-Σi<m{a'imod 2u}的低位u比特,将计算结果的比特串作为商q的分散值{q},通过比特合成将{q}变换为分散值<q>。商转移部33将分散值<q>输入到输出计算部36。
在步骤S34中,各秘密计算装置3i的公开除法运算部34从公开值倍部32接受值d',得到模p除以值d'的商p'和余数r'。公开除法运算部34将余数r'输入到近似部35。另外,公开除法运算部34将商p'输入到输出计算部36。
在步骤S35中,各秘密计算装置3i的近似部35从公开值倍部32接受分散值<a'>和值d',从公开除法运算部34接受余数r',计算下式。
【数学式2】
即,若i=0则计算<b>i=(<a'>i+d'-1-r')/d',若为除此以外则计算<b>i=<a'>i/d',得到分散值<b>。近似部35将分散值<b>输入到输出计算部36。
在步骤S36中,各秘密计算装置3i的输出计算部36从商转移部33接受分散值<q>,从公开除法运算部34接受商p',从近似部35接受分散值<b>,计算<b>-(p'+1)<q>+1。输出计算部36将计算结果作为a/d的分散值<a/d>输入到输出变换部37。
在步骤S37中,各秘密计算装置3i的输出变换部37从输出计算部36接受分散值<a/d>,将分散值<a/d>变换为(2,3)线性秘密分散。输出变换部37输出变换后的分散值[a/d]。
<定理2:算法3的误差>
算法3满足以下的三个性质。其作为适于具有概率性输出的数值计算的、适于固定小数点数的整数除法运算,是理想的。另外,虽然/、÷都是表示除法运算的运算符,但是/是舍去小数点以下的除法运算,÷是实数除法运算。
(1)“输出的期待值的小数部分~a÷d的小数部分”成立,其近似误差为O(a÷p)。
(2)在1-O(a÷p)的概率下,输出为a/d或者a/d+1,是用于在整数输出下使期待值与a÷d一致的最小误差幅度。关于最差值,在O(a÷p)的概率下变为a/d+2。
(3)特别是在a被d整除时,误差在1-O(a÷p)的概率下为0。
<效果>
算法3:评价除数公开除法运算协议的通信量和轮数。通信量变为5/3(|p|+1)比特。轮数变为2轮。兼顾通信量O(|p|)、轮数O(1)的除数公开除法运算至今尚不存在。另外,常数系数极小为2以下,例如在为了反复进行机械学习等的运算而大量处理右移位(即,2的幂的除法运算)的应用中,可以说特别有效。
[第四实施方式]
在第三实施方式中,设想了使用份额数为2的加法的秘密分散。在第四实施方式中,一般化为份额数为3以上的加法的秘密分散或者复制秘密分散。以下表示在本实施方式中执行的除数公开除法运算协议。
〔算法4:除数公开除法运算协议(份额数3以上)〕
输入:被除数[a],除数d
输出:[a/d](其中,/表示舍去小数点以下的除法运算。)
1:将[a]变换为份额数m(≥3)的加法的秘密分散或者复制秘密分散,得到<a>。
2:计算<a'>:=<2ua>,d':=2ud。
3:通过商转移等,得到<a'>除以p的商<q>。
4:得到p除以d'的商p'和余数r'。
5:若r'≥d'/2则z=1,若除此以外则设定z=0。
6:计算下式,得到<b>。这里,加减法不是mod p,而是自然数上的加减法。
【数学式3】
7:将<b>i除以d'而得的商p"和余数r",若为r"≤d'/2-1则计算<b'>i=<p">,若为r"≥d'/2则计算<b'>i=<p"+1>,得到<b'>。请注意,由于d':=2ud,所以d'为偶数。
8:计算<b'>-(p'+z)<q>-1,作为<a/d>的结果得到。
9:将<a/d>变换为份额数m的线性秘密分散,输出[a/d]。
<秘密除法运算系统400>
第四实施方式的秘密除法运算系统400执行上述的算法4:除数公开除法运算协议。如图9所示,秘密除法运算系统400包含m(≥3)台秘密计算装置41,…,4m。在本实施方式中,秘密计算装置41,…,4m分别被连接至通信网9。
第四实施方式的秘密除法运算系统400中包含的秘密计算装置4i(i=1,…,m)例如如图10所示,包含:输入变换部31、公开值倍部32、商转移部33、公开除法运算部34、近似部35、输出计算部36、输出变换部37、标记设定部38、以及端数处理部39。即,除了第三实施方式的秘密计算装置3i(i=1,…,3)中包含的各处理部,还包含标记设定部38以及端数处理部39。通过该秘密计算装置4i一边与其他秘密计算装置4i'(i'=1,…,m,其中i≠i')协调,一边进行后述的各步骤的处理,实现第四实施方式的秘密除法运算方法。
参照图11,以与第三实施方式的不同点为中心,说明第四实施方式的秘密除法运算系统400执行的秘密除法运算方法的处理过程。
在步骤S31中,各秘密计算装置4i的输入变换部31接受被输入到秘密计算装置4i的被除数a的分散值[a],将分散值[a]变换为份额数m的加法的秘密分散或者复制秘密分散的分散值<a>=<a>0,…,<a>m-1。输入变换部31将变换后的分散值<a>输入到公开值倍部32。
在步骤S32中,各秘密计算装置4i的公开值倍部32接受被输入到秘密计算装置4i的除数d和从输入变换部31而被输入的分散值<a>,通过公开值倍,计算<a'>=<2ua>,d'=2ud。公开值倍部32将计算出的分散值<a'>和值d'输入到商转移部33以及近似部35。另外,公开值倍部32将值d'输入到公开除法运算部34以及端数处理部39。
在步骤S38中,各秘密计算装置4i的标记设定部38从公开除法运算部34接受余数r',若r'≥d'/2则设定z=1,若除此以外,则设定z=0。标记设定部38将设定的标记z输入到输出计算部36。
在步骤S35中,各秘密计算装置4i的近似部35从公开值倍部32接受分散值<a'>和值d',从公开除法运算部34接受余数r',计算下式。
【数学式4】
即,若i=0则计算<b>i=(<a'>i+(d'-r')+(d'-r')/2)/d',若除此以外,则计算<b>i=<a'>i/d',得到分散值<b>。近似部35将分散值<b>输入到端数处理部39。
在步骤S39中,各秘密计算装置4i的端数处理部39从公开值倍部32接受值d',从近似部35接受分散值<b>,关于将<b>i除以d'而得的商p"和余数r",若为r"≤d'/2-1则计算<b'>i=<p">,若为r"≥d'/2则计算<b'>i=<p"+1>,得到<b'>。端数处理部39将分散值<b'>输入到输出计算部36。
在步骤S36中,各秘密计算装置4i的输出计算部36从商转移部33接受分散值<q>,从公开除法运算部34接受商p',从标记设定部38接受标记z,从端数处理部39接受分散值<b'>,计算<b'>-(p'+z)<q>-1。输出计算部36将计算结果作为a/d的分散值<a/d>而输入到输出变换部37。
在步骤S37中,各秘密计算装置4i的输出变换部37从输出计算部36接受分散值<a/d>,将分散值<a/d>变换为份额数m的线性秘密分散。输出变换部37输出变换后的分散值[a/d]。
[第五实施方式]
在第三实施方式以及第四实施方式中,除数d设想使用一般的无符号整数。在第五实施方式中,设想除数d为有符号整数的情况。以下表示在本实施方式中执行的除法运算协议。
〔算法5:除数公开除法运算协议(除数为有符号整数)〕
输入:被除数[a],除数d(其中,设μ<0,M≥0,a满足μ≤a≤M。)
输出:[a/d](其中,/表示舍去小数点以下的除法运算。)
1:得到满足-μ≤wd≤2|p|-u的w。
2:通过算法3或者4,得到[(wd+a)/d](=[w+a/d])。
3:从[w+a/d]减去w,输出[a/d]。
第五实施方式的秘密除法运算系统执行上述的算法5:除数公开除法运算协议。第五实施方式的秘密除法运算系统与第三实施方式或者第四实施方式同样地包含多台秘密计算装置,各秘密计算装置包含与第三实施方式或者第四实施方式同样的处理部。
各秘密计算装置的输入变换部31接受被输入到秘密计算装置的除数d,将2|p|-1除以d,而得到尾数进位后的数w。另外,以[wd+a]更新被输入到秘密计算装置的被除数a的分散值[a]。然后,将更新后的分散值[a]变换为规定的加法的秘密分散的分散值<a>。输入变换部31将变换后的分散值<a>输入到公开值倍部32。
各秘密计算装置的输出变换部37从输出计算部36接受分散值<a/d>,将分散值<a/d>变换为规定的线性秘密分散。由于输入变换部31以[wd+a]更新[a],所以该分散值[a/d]实际为[(wd+a)/d](=[w+a/d])。因此,输出变换部37从变换后的分散值[a/d]减去w。输出变换部37输出减法运算后的分散值[a/d]。
以上,说明了本发明的实施方式,但是具体的结构不限于这些实施方式,不用说,在不脱离本发明的宗旨的范围内即使有适当设计的变更等,也包含在本发明中。实施方式中说明的各种处理不仅按照记载的顺序时间序列地执行,也可以根据执行处理的装置的处理能力或者需要并行地或者单独地执行。
[程序,记录介质]
在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应具有的功能的处理内容。并且,通过计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。
记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
而且,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等可拆装型记录介质来进行。进而,也可以设为将该程序存储在服务器计算机的存储装置中,经由网络,将该程序从服务器计算机转发到其它计算机,由此来使该程序流通的结构。
执行这样的程序的计算机例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的记录装置中存储的程序,执行按照读取的程序的处理。而且,作为该程序的其它执行方式,计算机也可以从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,通过仅利用该执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用服务提供商)型的服务,执行上述的处理的结构。而且,本方式中的程序中,包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
而且,在本方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以以硬件的方式实现这些处理内容的至少一部分。

Claims (10)

1.一种秘密右移位运算系统,
[·]是将值·以第一秘密分散进行了分散的分散值,<·>是将值·以加法的秘密分散进行了分散的分散值,{·}是将值·的比特表现进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a是任意的值,b是移位量,m是3以上的分散数,u是log m以上的整数,l是值a的比特数,>>是右移位运算符,
该秘密右移位运算系统包含m台秘密计算装置,将值a的分散值[a]和移位量b设为输入,计算将值a右移位了b比特的值的分散值[a>>b],
所述秘密计算装置包括:
公开值倍部,使用所述分散值[a]计算分散值[a']=[2ua];
第一变换部,将所述分散值[a']变换为加法的秘密分散的分散值<a'>=<a'>0,…,<a'>m-1
右移位运算部,对于0以上不足m的各整数i,计算<s>i=<a'>i>>b+u,生成分散值<s>=<s>0,…,<s>m-1
第二变换部,将所述分散值<s>变换为第一秘密分散的分散值[s];
第一比特变换部,对于0以上不足m的各整数i,将所述分散值<a'>的份额<a'>i的低位u比特变换为比特表现的分散值{a'i mod 2u};
商转移部,使用所述分散值{a'i mod 2u}计算-Σi<m{a'imod 2u}的低位u比特,作为比特表现的分散值{q}而得到;
第三变换部,将所述分散值{q}变换为第一秘密分散的分散值[q];以及
输出计算部,使用所述分散值[s]、[q]计算[s]-[2l-(b+u)q]+1,作为所述分散值[a>>b]而得到。
2.如权利要求1所述的秘密右移位运算系统,其中,
所述秘密计算装置还包括:
第二比特变换部,对于0以上不足m的各整数i,将上述份额<a'>i的低位b+u比特变换为比特表现的分散值{a'iR}={a'imod 2b+u};以及
加法运算部,使用所述分散值{a'iR}、{q}计算比特表现的分散值{z}=Σi<m{a'iR}+{q},得到所述分散值{z}的第b+u比特以后的比特串作为分散值{zQ},
上述第三变换部将所述分散值{q}、{zQ}变换为第一秘密分散的分散值[q]、[zQ],
上述输出计算部使用所述分散值[s]、[q]、[zQ]计算[s]-[2l-(b+u)q]+[zQ],作为所述分散值[a>>b]而得到。
3.一种秘密除法运算系统,
p为素数,[·]是将值·以份额数为3的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为2的加法的秘密分散进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a为被除数,d为除数,/是表示舍去小数点以下的除法运算的运算符,
该秘密除法运算系统包含3台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],
所述秘密计算装置包括:
输入变换部,将所述分散值[a]变换为上述加法的秘密分散的分散值<a>=<a>0,<a>1
公开值倍部,使用所述分散值[a]和所述除数d,计算分散值<a'>=<2a>和值d'=2d;
商转移部,使用所述分散值<a'>,得到值a'除以素数p的商q的分散值<q>;
公开除法运算部,得到素数p除以值d'的商p'和余数r';
近似部,使用所述分散值<a'>、上述值d'和上述余数r',计算<b>0=(<a'>0+d'-1-r')/d',<b>1=<a'>1/d',生成分散值<b>=<b>0,<b>1
输出计算部,使用所述分散值<b>、<q>和所述商p',计算<b>-(p'+1)<q>+1,作为上述除法运算结果a/d的分散值<a/d>而得到;以及
输出变换部,将所述分散值<a/d>变换为所述第一秘密分散的分散值[a/d]。
4.一种秘密除法运算系统,
p为素数,[·]是将值·以份额数为m的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为m的加法的秘密分散进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a为被除数,d为除数,m是3以上的分散数,u是log m以上的整数,/是表示舍去小数点以下的除法运算的运算符,
该秘密除法运算系统包含m台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],
所述秘密计算装置包括:
输入变换部,将所述分散值[a]变换为上述加法的秘密分散的分散值<a>=<a>0,…,<a>m-1
公开值倍部,使用所述分散值[a]和所述除数d,计算分散值<a'>=<2ua>和值d'=2ud;
商转移部,使用所述分散值<a'>,得到值a'除以素数p的商q的分散值<q>;
公开除法运算部,得到素数p除以值d'的商p'和余数r';
标记设定部,得到若r'≥d'/2则设定z=1,若r'<d'/2则设定z=0的标记z;
近似部,对于0以上不足m的各整数i,若i=0则计算<b>i=(<a'>i+(d'-r')+(d'-r')/2)/d',若i≠0则计算<b>i=<a'>i/d',生成分散值<b>=<b>0,…,<b>m-1
端数处理部,对于0以上不足m的各整数i,关于将所述分散值<b>的份额<b>i除以值d'而得的商p"和余数r",若r"≤d'/2-1则计算<b'>i=<p">,若r"≥d'/2则计算<b'>i=<p"+1>,得到分散值<b'>=<b'>0,…,<b'>m-1
输出计算部,使用所述分散值<b'>、<q>、所述商p'和所述标记z,计算<b'>-(p'+z)<q>-1,作为上述除法运算结果a/d的分散值<a/d>而得到;以及
输出变换部,将所述分散值<a/d>变换为所述第一秘密分散的分散值[a/d]。
5.如权利要求3或者4所述的秘密除法运算系统,其中,
设μ<0,M≥0,a满足μ≤a≤M,
上述输入变换部计算满足-μ≤wd≤2|p|-u的w,以分散值[wd+a]更新所述分散值[a],
上述输出变换部输出从变换后的分散值[a/d]减去了w后的结果作为所述分散值[a/d]。
6.一种秘密右移位运算方法,
[·]是将值·以第一秘密分散进行了分散的分散值,<·>是将值·以加法的秘密分散进行了分散的分散值,{·}是将值·的比特表现进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a为任意的值,b为移位量,m是3以上的分散数,u是log m以上的整数,l是值a的比特数,>>是右移位运算符,
该秘密右移位运算方法由秘密右移位运算系统所执行,该秘密右移位运算系统包含m台秘密计算装置,将值a的分散值[a]和移位量b设为输入,计算将值a右移位了b比特的值的分散值[a>>b],
所述秘密计算装置的公开值倍部使用所述分散值[a]计算分散值[a']=[2ua],
所述秘密计算装置的第一变换部将所述分散值[a']变换为加法的秘密分散的分散值<a'>=<a'>0,…,<a'>m-1
所述秘密计算装置的右移位运算部对于0以上不足m的各整数i,计算<s>i=<a'>i>>b+u,生成分散值<s>=<s>0,…,<s>m-1
所述秘密计算装置的第二变换部将所述分散值<s>变换为第一秘密分散的分散值[s],
所述秘密计算装置的第一比特变换部对于0以上不足m的各整数i,将所述分散值<a'>的份额<a'>i的低位u比特变换为比特表现的分散值{a'i mod 2u},
所述秘密计算装置的商转移部使用所述分散值{a'imod 2u}计算-Σi<m{a'imod 2u}的低位u比特,作为比特表现的分散值{q}而得到,
所述秘密计算装置的第三变换部将所述分散值{q}变换为第一秘密分散的分散值[q],
所述秘密计算装置的输出计算部使用所述分散值[s]、[q]计算[s]-[2l-(b+u)q]+1,作为所述分散值[a>>b]而得到。
7.一种秘密除法运算方法,
p为素数,[·]是将值·以份额数为3的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为2的加法的秘密分散进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a为被除数,d为除数,/是表示舍去小数点以下的除法运算的运算符,
该秘密除法运算方法由秘密除法运算系统所执行,该秘密除法运算系统包含3台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],
所述秘密计算装置的输入变换部将所述分散值[a]变换为上述加法的秘密分散的分散值<a>=<a>0,<a>1
所述秘密计算装置的公开值倍部使用所述分散值[a]和所述除数d计算分散值<a'>=<2a>和值d'=2d,
所述秘密计算装置的商转移部使用所述分散值<a'>,得到值a'除以素数p的商q的分散值<q>,
所述秘密计算装置的公开除法运算部得到素数p除以值d'的商p'和余数r',
所述秘密计算装置的近似部使用所述分散值<a'>和上述值d'和上述余数r',计算<b>0=(<a'>0+d'-1-r')/d',<b>1=<a'>1/d',生成分散值<b>=<b>0,<b>1
所述秘密计算装置的输出计算部使用所述分散值<b>、<q>和所述商p',计算<b>-(p'+1)<q>+1,作为上述除法运算结果a/d的分散值<a/d>而得到,
所述秘密计算装置的输出变换部将所述分散值<a/d>变换为所述第一秘密分散的分散值[a/d]。
8.一种秘密除法运算方法,
p为素数,[·]是将值·以份额数为m的第一秘密分散进行了分散的分散值,<·>是将值·以份额数为m的加法的秘密分散进行了分散的分散值,所述分散值[·]和所述分散值<·>能够相互变换,a为被除数,d为除数,m是3以上的分散数,u是log m以上的整数,/是表示舍去小数点以下的除法运算的运算符,
该秘密除法运算方法由秘密除法运算系统所执行,该秘密除法运算系统包含m台秘密计算装置,将被除数a的分散值[a]和除数d设为输入,计算被除数a除以除数d的、小数点以下舍去的除法运算结果a/d的分散值[a/d],
所述秘密计算装置的输入变换部将所述分散值[a]变换为上述加法的秘密分散的分散值<a>=<a>0,…,<a>m-1
所述秘密计算装置的公开值倍部使用所述分散值[a]和所述除数d,计算分散值<a'>=<2ua>和值d'=2ud,
所述秘密计算装置的商转移部使用所述分散值<a'>,得到值a'除以素数p的商q的分散值<q>,
所述秘密计算装置的公开除法运算部得到素数p除以值d'的商p'和余数r',
所述秘密计算装置的标记设定部得到若r'≥d'/2则设定z=1,若r'<d'/2则设定z=0的标记z,
所述秘密计算装置的近似部对于0以上不足m的各整数i,若i=0则计算<b>i=(<a'>i+(d'-r')+(d'-r')/2)/d',若i≠0则计算<b>i=<a'>i/d',生成分散值<b>=<b>0,…,<b>m-1
所述秘密计算装置的端数处理部对于0以上不足m的各整数i,关于将所述分散值<b>的份额<b>i除以值d'而得的商p"和余数r",若为r"≤d'/2-1则计算<b'>i=<p">,若为r"≥d'/2则计算<b'>i=<p"+1>,得到分散值<b'>=<b'>0,…,<b'>m-1
所述秘密计算装置的输出计算部使用所述分散值<b'>、<q>、所述商p'和所述标记z,计算<b'>-(p'+z)<q>-1,作为上述除法运算结果a/d的分散值<a/d>而得到,
所述秘密计算装置的输出变换部将所述分散值<a/d>变换为所述第一秘密分散的分散值[a/d]。
9.一种秘密计算装置,是在权利要求1或者2所述的秘密右移位运算系统或者权利要求3至5的任意一项所述的秘密除法运算系统中包含的秘密计算装置。
10.一种计算机可读取的记录介质,记录了用于使计算机作为权利要求9所述的秘密计算装置而发挥功能的程序。
CN201980066066.1A 2018-10-10 2019-10-10 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 Active CN112805770B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018191830 2018-10-10
JP2018-191830 2018-10-10
PCT/JP2019/039985 WO2020075797A1 (ja) 2018-10-10 2019-10-10 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム

Publications (2)

Publication Number Publication Date
CN112805770A CN112805770A (zh) 2021-05-14
CN112805770B true CN112805770B (zh) 2023-10-03

Family

ID=70164571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980066066.1A Active CN112805770B (zh) 2018-10-10 2019-10-10 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质

Country Status (6)

Country Link
US (1) US20220060318A1 (zh)
EP (2) EP3866142B1 (zh)
JP (1) JP7067633B2 (zh)
CN (1) CN112805770B (zh)
AU (1) AU2019356344B2 (zh)
WO (1) WO2020075797A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084751A1 (ja) * 2018-10-26 2020-04-30 日本電気株式会社 秘密計算サーバ、システム、秘密計算方法及びプログラム
CN114981858A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密计算装置、秘密计算方法以及程序
EP4210028A4 (en) * 2020-10-16 2024-05-15 Nippon Telegraph And Telephone Corporation SECRET SHIFT SYSTEM, SECRET SHIFT DEVICE, SECRET SHIFT METHOD AND PROGRAM
JP7451445B2 (ja) 2021-02-10 2024-03-18 株式会社東芝 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置
CN114422116B (zh) * 2021-12-14 2023-11-28 阿里巴巴(中国)有限公司 数据处理方法及装置
CN114760055B (zh) * 2022-06-15 2022-09-09 山东区块链研究院 基于梅森素数的秘密分享方法、系统、存储介质及设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214026A (ja) * 1997-01-30 1998-08-11 Nippon Telegr & Teleph Corp <Ntt> 電子署名方法
JPH10269060A (ja) * 1997-01-27 1998-10-09 Toshiba Corp モンゴメリ除算装置及びモンゴメリ逆元計算装置並びにモンゴメリ除算方法及びモンゴメリ逆元計算方法
CN1364284A (zh) * 2000-03-09 2002-08-14 三菱电机株式会社 数据变换装置和数据变换方法以及记录用以在计算机上执行数据变换方法的程序的计算机可读取存储媒体
JP2005234069A (ja) * 2004-02-18 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> 相互検証を可能とする秘密情報分配装置、秘密情報検証装置、秘密情報照合装置、秘密情報分配システム及びプログラム
JP2006023974A (ja) * 2004-07-08 2006-01-26 Fujitsu Ltd 剰余演算処理装置及び剰余演算処理方法
JP2010122246A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd 逆元演算装置および逆元演算プログラム
JP2012220789A (ja) * 2011-04-11 2012-11-12 Toshiba Corp ハッシュ関数演算装置及び演算プログラム
JP2012242539A (ja) * 2011-05-18 2012-12-10 Renesas Electronics Corp セキュリティシステム及びマイクロコンピュータ
CN103282950A (zh) * 2010-12-27 2013-09-04 三菱电机株式会社 运算装置、运算装置的椭圆标量乘法方法、椭圆标量乘法程序、运算装置的剩余运算方法、剩余运算程序、运算装置的零判定方法以及零判定程序
JP2015068999A (ja) * 2013-09-30 2015-04-13 日本電信電話株式会社 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム
CN107533812A (zh) * 2015-05-12 2018-01-02 日本电信电话株式会社 秘密分散方法、秘密分散系统、分散装置和程序
WO2018034079A1 (ja) * 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004226674A (ja) * 2003-01-23 2004-08-12 Renesas Technology Corp 情報処理方法
EP2858297B1 (en) * 2012-07-05 2017-03-01 Nippon Telegraph And Telephone Corporation Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program
US9749128B2 (en) * 2014-05-15 2017-08-29 Xerox Corporation Compact fuzzy private matching using a fully-homomorphic encryption scheme

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269060A (ja) * 1997-01-27 1998-10-09 Toshiba Corp モンゴメリ除算装置及びモンゴメリ逆元計算装置並びにモンゴメリ除算方法及びモンゴメリ逆元計算方法
JPH10214026A (ja) * 1997-01-30 1998-08-11 Nippon Telegr & Teleph Corp <Ntt> 電子署名方法
CN1364284A (zh) * 2000-03-09 2002-08-14 三菱电机株式会社 数据变换装置和数据变换方法以及记录用以在计算机上执行数据变换方法的程序的计算机可读取存储媒体
JP2005234069A (ja) * 2004-02-18 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> 相互検証を可能とする秘密情報分配装置、秘密情報検証装置、秘密情報照合装置、秘密情報分配システム及びプログラム
JP2006023974A (ja) * 2004-07-08 2006-01-26 Fujitsu Ltd 剰余演算処理装置及び剰余演算処理方法
JP2010122246A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd 逆元演算装置および逆元演算プログラム
CN103282950A (zh) * 2010-12-27 2013-09-04 三菱电机株式会社 运算装置、运算装置的椭圆标量乘法方法、椭圆标量乘法程序、运算装置的剩余运算方法、剩余运算程序、运算装置的零判定方法以及零判定程序
JP2012220789A (ja) * 2011-04-11 2012-11-12 Toshiba Corp ハッシュ関数演算装置及び演算プログラム
JP2012242539A (ja) * 2011-05-18 2012-12-10 Renesas Electronics Corp セキュリティシステム及びマイクロコンピュータ
JP2015068999A (ja) * 2013-09-30 2015-04-13 日本電信電話株式会社 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム
CN107533812A (zh) * 2015-05-12 2018-01-02 日本电信电话株式会社 秘密分散方法、秘密分散系统、分散装置和程序
WO2018034079A1 (ja) * 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李娜,吴泽.基于位运算的两种字符串加密解密算法.2009,第28卷(第2期),95-99. *

Also Published As

Publication number Publication date
EP4280574A2 (en) 2023-11-22
WO2020075797A1 (ja) 2020-04-16
AU2019356344A1 (en) 2021-05-13
EP4280574A3 (en) 2024-01-03
JPWO2020075797A1 (ja) 2021-09-02
EP3866142A1 (en) 2021-08-18
JP7067633B2 (ja) 2022-05-16
EP3866142B1 (en) 2023-12-06
US20220060318A1 (en) 2022-02-24
CN112805770A (zh) 2021-05-14
EP3866142A4 (en) 2022-09-14
AU2019356344B2 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
CN112805770B (zh) 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质
Oder et al. Implementing the newhope-simple key exchange on low-cost fpgas
CN110199338B (zh) 秘密计算系统、秘密计算装置、秘密计算方法、记录介质
US11294633B2 (en) Secure computation system, secure computation device, secure computation method, and program
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
JPWO2019087317A1 (ja) 秘密計算装置、システム、方法、プログラム
CN112805768A (zh) 秘密s型函数计算系统、秘密逻辑回归计算系统、秘密s型函数计算装置、秘密逻辑回归计算装置、秘密s型函数计算方法、秘密逻辑回归计算方法、程序
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
Mounica et al. Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit
Budati et al. High speed data encryption technique with optimized memory based RSA algorithm for communications
JP7540501B2 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
Lu et al. Design and logic synthesis of a scalable, efficient quantum number theoretic transform
US12010220B2 (en) Secure division system, secure computation apparatus, secure division method, and program
WO2021149101A1 (ja) 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム
WO2021149099A1 (ja) 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
US20230069892A1 (en) Secure exponential function computation system, secure exponential function computation method, secure computation apparatus, and program
CN111201559B (zh) 置换装置、置换方法、以及记录介质
EP4213135A1 (en) Secret exponent part unifying system, secret exponent part unifying device, secret exponent part unifying method, secret sum calculation system, secret product sum calculation system, and program
Du et al. Towards efficient implementation of lattice-based public-key encryption on modern CPUs
JP4243179B2 (ja) 演算装置
CN114945965A (zh) 秘密倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序
JP6293681B2 (ja) マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム
Wong et al. Speeding up the Montgomery Exponentiation with CMM-SDR Over GPU with Maxwell and Pascal Architecture
Vignesh et al. Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications

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
GR01 Patent grant
GR01 Patent grant