CN110199338B - 秘密计算系统、秘密计算装置、秘密计算方法、记录介质 - Google Patents

秘密计算系统、秘密计算装置、秘密计算方法、记录介质 Download PDF

Info

Publication number
CN110199338B
CN110199338B CN201880007430.2A CN201880007430A CN110199338B CN 110199338 B CN110199338 B CN 110199338B CN 201880007430 A CN201880007430 A CN 201880007430A CN 110199338 B CN110199338 B CN 110199338B
Authority
CN
China
Prior art keywords
secret
text
hidden
hidden text
value
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
CN201880007430.2A
Other languages
English (en)
Other versions
CN110199338A (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 CN110199338A publication Critical patent/CN110199338A/zh
Application granted granted Critical
Publication of CN110199338B publication Critical patent/CN110199338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/556Logarithmic or exponential functions
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials
    • 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/04Masking or blinding
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供用更小的计算时间计算多项式的秘密计算技术。包括使用隐匿文[[r]],由隐匿文[[x]]生成作为值x和随机数r的大小比较结果的u的隐匿文[[u]]的比较单元(120);由隐匿文[[x]]、[[r]]、[[u]],生成掩码c的隐匿文[[c]]的掩码单元(130);由隐匿文[[c]],复原掩码c的复原单元(140);由次数n、系数a0,a1,…,an、掩码c,对i=0,…,n计算系数bi的系数计算单元(150);由隐匿文[[u]],对i=1,…,n生成根据大小比较结果u决定的选择值si的隐匿文[[si]]的选择单元(160);以及计算系数bi和隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为隐匿文[[a0+a1x1+…+anxn]]的线性组合单元(170)。

Description

秘密计算系统、秘密计算装置、秘密计算方法、记录介质
技术领域
本发明涉及秘密计算技术,特别涉及在使输入值一直为秘密的情况下计算多项式的秘密计算技术。
背景技术
作为不复原被加密的数值而得到指定的运算的运算结果的方法,有称为秘密计算的方法(例如参照非专利文献1)。在非专利文献1的方法中,可以进行将可复原数值的多个信息(数值的片段)分散在三个秘密计算装置中的加密,不复原数值,而将加减运算、常数和、乘法运算、常数倍、逻辑运算(“非”,逻辑“与”、逻辑“或”、“异或”)、数据形式变换(整数、二进数)的结果在分散在三个秘密计算装置的状态、即被加密的情况下进行保持。一般来说,分散数不限于3,可设为W(W是2以上的规定的常数),通过W个秘密计算装置的协同计算来实现秘密计算的协议称为多方协议。
而且,关于分散数为2的情况的秘密计算方法,例如被非专利文献2公开。
作为通过秘密计算实现多项式的计算的方法,有非专利文献3的方法。在非专利文献3的方法中,在进行变量x的多项式的计算时,反复执行并行地进行对各个x1,x2,…,x2^k乘以x2^k的处理(k=0,1,…),实现x1,x2,…,xn的计算(而且,^(插入符号)表示上标,例如,xy^z表示yz是对于x的上标)。
现有技术文献
非专利文献
非专利文献1:千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,情報処理学会シンポジウム論文集,Vol.2010,No.9,pp.555-560,2010.
非专利文献2:Ivan Damgard,Valerio Pastro,Nigel Smart,Sarah Zakarias,“Multiparty Computation from Somewhat Homomorphic Encryption”,CRYPTO 2012,LNCS7417,pp.643-662,2012.
非专利文献3:Liina Kamm,Jan Willemson,“Secure floating pointarithmetic and private satellite collision analysis”,International Journal ofInformation Security,Vol.14,No.6,pp.531-548,2015.
发明内容
发明要解决的课题
但是,在非专利文献3的方法中,在计算多项式a0+a1x1+…+anxn时,需要执行2n-1次(ceiling(log2n)+1级)的乘法运算和n次加法运算,所以存在计算时间变大的问题。
因此,本发明的目的是提供以更少的计算时间计算多项式的秘密计算技术。
用于解决课题的手段
本发明的一方式是一种秘密计算系统,将a0+a1x1+…+anxn设为变量x的n次多项式(n是多项式的次数,a0,a1,…,an是多项式的各系数),将x设为代入所述n次多项式的值,将k设为满足k≦x<k+1的整数,将r设为满足k≦r<k+1的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,所述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]],计算代入了所述值x的所述n次多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]],所述秘密计算系统包括:使用所述隐匿文[[r]],由所述隐匿文[[x]]生成作为所述值x和所述随机数r的大小比较结果的u(其中,若x≦r则u=1,若不是x≦r则u=0)的隐匿文[[u]]的比较单元;由所述隐匿文[[x]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]]的掩码单元;由所述隐匿文[[c]],复原所述掩码c的复原单元;由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi的系数计算单元,
Figure GDA0003742603090000021
由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si(其中,若u=1则si=(r-1)i,若u=0则si=ri)的隐匿文[[si]]的选择单元;以及计算所述系数bi(i=0,…,n)和所述隐匿文[[si]](i=1,…,n)的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述隐匿文[[a0+a1x1+…+anxn]]的线性组合单元。
本发明的一个方式是秘密计算系统,将a0+a1x1+…+anxn设为变量x的n次多项式(n是多项式的次数,a0,a1,…,an是多项式的各系数),将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,设所述值x的倒数1/x表示为1/x=a0+a1x1+…+anxn,所述述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]],计算所倒数1/x的隐匿文[[1/x]],所述秘密计算系统包括:由所述隐匿文[[x]],生成满足x=s×2e×f(s∈{-1,1},e为整数,1≦f<2)的s,e,f的隐匿文[[s]],[[e]],[[f]]的输入值分解单元;使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u(其中,若f≦r则u=1,若不是f≦r则u=0)的隐匿文[[u]]的比较单元;由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]]的掩码单元;由所述隐匿文[[c]],复原所述掩码c的复原单元;由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi的系数计算单元,
Figure GDA0003742603090000031
由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si(其中,若u=1则si=(r-1)i,若u=0则si=ri)的隐匿文[[si]]的选择单元;计算所述系数bi(i=0,…,n)和所述隐匿文[[si]](i=1,…,n)的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的倒数1/f的隐匿文[[1/f]]的线性组合单元;以及由所述隐匿文[[s]]、所述隐匿文[[e]]、所述隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])(其中,[[1/f]]<<[[-e]]是将1/f左偏移了-e比特的值)作为所述隐匿文[[1/x]]的倒数计算单元。
本发明的一方式是秘密计算系统,将a0+a1x1+…+anxn设为变量x的n次多项式(n是多项式的次数,a0,a1,…,an是多项式的各系数),将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,所述值x的对数logx表示为logx=a0+a1x1+…+anxn,所述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]],计算所述对数logx的隐匿文[[logx]],所述秘密计算系统包括:由所述隐匿文[[x]],生成满足x=2e×f(e为整数,1≦f<2)的e,f的隐匿文[[e]],[[f]]的输入值分解单元;使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u(其中,若f≦r则u=1,若不是f≦r则u=0)的隐匿文[[u]]的比较单元;由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]]的掩码单元;由所述隐匿文[[c]],复原所述掩码c的复原单元;由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi的系数计算单元,
Figure GDA0003742603090000041
由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si(其中,若u=1则si=(r-1)i,若u=0则si=ri)的隐匿文[[si]]的选择单元;计算所述系数bi(i=0,…,n)和所述隐匿文[[si]](i=1,…,n)的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的对数logf的隐匿文[[logf]]的线性组合单元;以及由所述隐匿文[[e]]、所述隐匿文[[logf]],计算对所述对数logf相加了e的值[[logf]]+[[e]]作为所述隐匿文[[logx]]的对数计算单元。
发明效果
按照本发明,通过将多项式的计算所需要的乘法运算设为1级,能够削减多项式的秘密计算所需要的计算时间。
附图说明
图1是表示第一实施方式的秘密计算算法的处理步骤的图。
图2是表示秘密计算系统10的结构的方框图。
图3是表示秘密计算装置100i的结构的方框图。
图4是表示秘密计算系统10的操作的流程图。
图5是表示第二实施方式的秘密计算算法的处理步骤的图。
图6是表示秘密计算装置200i的结构的方框图。
图7是表示秘密计算系统20的操作的流程图。
图8是表示第三实施方式的秘密计算算法的处理步骤的图。
图9是表示秘密计算装置300i的结构的方框图。
图10是表示秘密计算系统30的操作的流程图。
具体实施方式
以下,详细地说明本发明的实施方式。而且,对具有相同的功能的结构部件附加相同的标号,省略重复说明。
如后所述的秘密计算算法通过已知的秘密计算上的运算的组合来构建。该秘密计算算法所需要的运算为,隐匿化和复原、加法运算、减法运算、乘法运算、比较、选择、以及左偏移。首先,说明各运算的定义,记法等。
<定义,记法等>
[隐匿化和复原]
将通过加密或秘密分散等隐匿化了某个值a的值称为a的隐匿文,表示为[[a]]。在a的隐匿文[[a]]是通过秘密分散而生成的情况下,通过[[a]]参照各秘密计算装置具有的秘密分散的片段的集合。
而且,将复原a的隐匿文[[a]],得到a的处理表示为a←Open([[a]])。
作为隐匿化和复原的方法,具体地说,有参考非专利文献1的方法。
(参考非专利文献1)Mehrdad Aliasgari,Marina Blanton,Yihua Zhang,AaronSteele,“Secure Computation on Floating Point Numbers”,NDSS 2013,2013.
在参考非专利文献1中,公开了关于浮点中的运算。关于定点或整数中的运算,可以通过组合从参考非专利文献1中公开的浮点至定点或整数的类型变换来实现。
[加法运算、减法运算、乘法运算]
加法运算、减法运算、乘法运算的各运算,将两个值a,b的隐匿文[[a]],[[b]]作为输入,分别计算作为a+b,a-b,ab的计算结果的和c1、差c2、积c3的隐匿文[[c1]],[[c2]],[[c3]]。将得到[[c1]],[[c2]],[[c3]]的处理分别表示为[[c1]]←Add([[a]],[[b]]),[[c2]]←Sub([[a]],[[b]]),[[c3]]←Mul([[a]],[[b]])。在不担心导致误解的情况下,有时也将Add([[a]],[[b]]),Sub([[a]],[[b]]),Mul([[a]],[[b]])分别略记为[[a]]+[[b]],[[a]]-[[b]],[[a]]×[[b]]。
作为加法运算、减法运算、乘法运算的方法,具体地说,有参考非专利文献1的方法。在参考非专利文献1中,公开了关于浮点中的运算。关于定点或整数中的运算,可以通过组合将从参考非专利文献1中公开的浮点至定点或整数的类型变换来实现。
[比较]
对于a的隐匿文[[a]],b的隐匿文[[b]],将计算若a≦b则为c=1、若不是a≦b则为c=0的a和b的大小比较结果c的隐匿文[[c]]的处理表示为[[c]]←([[a]]≦[[b]])。
作为比较的方法,具体地说,有参考非专利文献1的方法。在参考非专利文献1中,公开了关于浮点中的运算。关于定点或整数中的运算,可以通过组合从参考非专利文献1中公开的浮点至定点或整数的类型变换来实现。
[选择]
对于a∈{0,1}的隐匿文[[a]]和两个值t,f的隐匿文[[t]],[[f]],将计算若a=1则为b=t、若a=0则为b=f的选择值b的隐匿文[[b]]的处理表示为[[b]]←IfElse([[a]],[[t]],[[f]])。该选择处理可以使用乘法运算和加法运算实现作为IfElse([[a]],[[t]],[[f]]):=[[a]]×[[t]]+[[a]]×[[f]]。
[左偏移]
将从a的隐匿文[[a]]和b的隐匿文[[b]]计算将a左偏移了b比特的值(即,将a进行2b倍后的值)即左偏移值c(=a×2b)的隐匿文[[c]]的处理表示为[[c]]←[[a]]<<[[b]]。
关于浮点中的运算,只要在指数部分加上偏移量(x<<y的y)即可。而且,关于定点或整数中的运算,只要将参考非专利文献1的定点数和浮点数的相互变换与上述浮点数的左偏移组合即可。
<第一实施方式>
以下说明第一实施方式的秘密计算算法的输入和输出、处理步骤和实现第一实施方式的秘密计算算法的秘密计算系统。
[输入和输出]
说明图1所示的第一实施方式的秘密计算算法的输入和输出。
多项式a0+a1x1+…+anxn的次数n、系数a0,a1,…,an和代入多项式的值x的隐匿文[[x]]为输入。而且,还输入满足k≦r<k+1(其中,k设为满足k≦x<k+1的整数)的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]。
代入了x的多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]]为输出。
[处理步骤]
说明图1所示的第一实施方式的秘密计算算法的处理步骤。此时,用图1左端的数字表现为步骤1、步骤2等。
在步骤1中,由输入的隐匿文[[x]]和[[r]],生成x和随机数r的大小比较结果即u的隐匿文[[u]]←([[x]]≦[[r]])。[[u]]是,若x≦r则为u=1、若不是x≦r则为u=0的u的隐匿文。
在步骤2中,由隐匿文[[x]]、[[r]]和步骤1中生成的隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]]。掩码c满足0<c≦1。
在步骤3中,由步骤2中生成的隐匿文[[c]]复原掩码c。
在步骤4中,由次数n、系数a0,a1,…,an和步骤3中复原的c,对i=0,…,n按下式计算系数bi
Figure GDA0003742603090000071
在步骤5中,由步骤1中生成的隐匿文[[u]],对i=1,…,n生成根据大小比较结果u决定的选择值si的隐匿文[[si]]=IfElse([[u]],[[(r-1)i]],[[ri]])。[[si]]是,若u=1则为si=(r-1)i,若u=0则为si=ri的隐匿文。即,若[[u]]=[[1]]则为[[si]]=[[(r-1)i]],若[[u]]=[[0]]则为[[si]]=[[ri]]。
在步骤6中,由在步骤4中生成的系数bi(i=0,…,n)和步骤5中生成的隐匿文[[si]](i=1,…,n),计算线性组合b0+b1[[s1]]+…+bn[[sn]]。其中,[[a0+a1x1+…+anxn]]=b0+b1[[s1]]+…+bn[[sn]]成立。
[秘密计算系统]
以下,参照图2~图4说明第一实施方式的秘密计算系统10。图2是表示秘密计算系统10的结构的方框图。秘密计算系统10包含W个(W是2以上的规定的整数)秘密计算装置1001,…,100W。秘密计算装置1001,…,100W连接到网络800,可相互通信。网络800例如是因特网等通信网或者广播通信路径等。图3是表示秘密计算装置100i(1≦i≦W)的结构的方框图。图4是表示秘密计算系统10的操作的流程图。
图3所示的秘密计算装置100i包含:随机数生成单元110i、比较单元120i、掩码单元130i、复原单元140i、系数计算单元150i、选择单元160i、线性组合单元170i、记录单元190i。除了记录单元190i,秘密计算装置100i的各构成单元构成为可执行秘密计算算法中需要的运算,即,至少在隐匿化、复原、加法运算、减法运算、乘法运算、比较、选择中,在实现各构成单元的功能上执行需要的运算。本发明中用于实现各个运算的具体的功能结构,用可执行例如作为现有技术文献公开的非专利文献或在<定义,记法等>中公开的参考非专利文献等中执行某个算法的结构就足够,由于这些是以往的结构所以省略详细的说明。而且,记录单元190i是记录秘密计算装置100i的处理所需要的信息的构成单元。例如,记录次数n、系数a0,a1,…,an
通过W个秘密计算装置100i的协同计算,秘密计算系统10实现作为多方协议的秘密计算算法。因此,秘密计算系统10的随机数生成单元110(未图示)由随机数生成单元1101,…,110W构成,比较单元120(未图示)由比较单元1201,…,120W构成,掩码单元130(未图示)由掩码单元1301,…,130W构成,复原单元140(未图示)由复原单元1401,…,140W构成,系数计算单元150(未图示)由系数计算单元1501,…,150W构成,选择单元160(未图示)由选择单元1601,…,160W构成,线性组合单元170(未图示)由线性组合单元1701,…,170W构成。
秘密计算系统10使用事先生成的随机数r(k≦r<k+1,其中,k是满足k≦x<k+1的整数)和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]],由代入多项式的值x的隐匿文[[x]],计算代入了x的多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]]。以下,按照图4说明秘密计算系统10的操作。
随机数生成单元110生成满足k≦r<k+1的随机数r,并生成隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]](S110)。这与图1的秘密计算算法的输入值的事先设置对应。隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]记录在记录单元1901,…,190W中。
比较单元120使用在输入隐匿文[[x]]之前生成的隐匿文[[r]],由隐匿文[[x]]生成作为值x和随机数r的大小比较结果的u的隐匿文[[u]]←([[x]]≦[[r]])(S120)。这与图1的秘密计算算法的步骤1对应。
掩码单元130由隐匿文[[x]],[[r]]和S120中生成的隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]](S130)。这与图1的秘密计算算法的步骤2对应。
复原单元140由S130中生成的隐匿文[[c]],复原掩码c(S140)。这与图1的秘密计算算法的步骤3对应。
系数计算单元150由多项式的次数n、系数a0,a1,…,an和S140中复原的掩码c,通过下式对i=0,…,n计算系数bi(S150)。这与图1的秘密计算算法的步骤4对应。
Figure GDA0003742603090000091
选择单元160从由S120中生成的隐匿文[[u]],对于i=1,…,n生成根据大小比较结果u决定的选择值si(其中,若u=1则si=(r-1)i,若u=0则si=ri)的隐匿文[[si]](S160)。这与图1的秘密计算算法的步骤5对应。
线性组合单元170由S150中生成的系数bi(i=0,…,n)和S160中生成的隐匿文[[si]](i=1,…,n),计算线性组合b0+b1[[s1]]+…+bn[[sn]](S170)。这与图1的秘密计算算法的步骤6对应。
按照本实施方式的发明,可以通过n次加法运算、n次(1级)乘法运算、1次比较、1次复原实现多项式a0+a1x1+…+anxn的计算,所以计算成本被削减。特别是,在定点中的计算那样可忽略加法运算的情况下,计算时间被有效地削减。具体地说,以往大致需要2n-1次(ceiling(log2n)+1级)比特分解的处理可通过n+1次(2级)的处理实现。而且,利用代入的值x的范围被限制为k≦x<k+1,将从输入值[[x]]计算输出值[[a0+a1x1+…+anxn]]的处理还原为利用x-r+u和事先生成的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]来计算的处理。通常,若复原x-r+u则信息泄露,但是通过进行调整使得x-r+u成为大于0且小于等于1的均匀随机的值,能够安全地执行a0+a1x1+…+anxn的计算。
<第二实施方式>
在x的倒数1/x可以使用多项式表示为1/x=a0+a1x1+…+anxn的情况下,可以使用第一实施方式的秘密计算算法,由x的隐匿文[[x]]高效地计算倒数1/x的隐匿文[[1/x]]。
以下说明第二实施方式的秘密计算算法的输入和输出、处理步骤和实现第二实施方式的秘密计算算法的秘密计算系统。
[输入和输出]
说明图5所示的第二实施方式的秘密计算算法的输入和输出。
多项式a0+a1x1+…+anxn的次数n、系数a0,a1,…,an和计算倒数的值的值x的隐匿文[[x]]成为输入。而且,还输入满足1≦r<2的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]。
x的倒数1/x的隐匿文[[1/x]]成为输出。
[处理步骤]
说明图5所示的第二实施方式的秘密计算算法的处理步骤。此时,使用图5的左端的数字表现为步骤1、步骤2等。
在步骤1中,对于被输入的隐匿文[[x]],生成满足x=s×2e×f(s∈{-1,1},e为整数,1≦f<2)的s,e,f的隐匿文[[s]],[[e]],[[f]]。可以使用参考非专利文献1的求[[x]]的浮点表现的运算,生成隐匿文[[s]],[[e]],[[f]]。
在步骤2中,由多项式的次数n、系数a0,a1,…,an、隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]、以及步骤1中生成的隐匿文[[f]],计算[[a0+a1f1+…+anfn]]。其中,[[a0+a1f1+…+anfn]]=[[1/f]]成立。
在步骤3中,由步骤1中生成的隐匿文[[s]],[[e]]和步骤2中计算的隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])。其中,[[s]]×([[1/f]]<<[[-e]])=[[1/x]]成立。
[秘密计算系统]
以下,参照图6~图7,说明第二实施方式的秘密计算系统20。秘密计算系统20在取代包含W个(W为2以上的规定的整数)秘密计算装置1001,…,100W而包含W个秘密计算装置2001,…,200W这一点上与秘密计算系统10有所不同。图6是表示秘密计算装置200i(1≦i≦W)的结构的方框图。图7是表示秘密计算系统20的操作的流程图。
图6所示秘密计算装置200i在还包括输入值分解单元210i和倒数计算单元220i这一点上与秘密计算装置100i有所不同。输入值分解单元210i和倒数计算单元220i也构成为在秘密计算算法中需要的运算中,可执行在实现其功能上所需要的运算。
秘密计算系统20的输入值分解单元210由输入值分解单元2101,…,210W构成,倒数计算单元220由倒数计算单元2201,…,220W构成。
秘密计算系统20使用事先生成的随机数r(1≦r<2)和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]],由代入到多项式中的值x的隐匿文[[x]],计算x的倒数1/x的隐匿文[[1/x]]。以下,按照图7说明秘密计算系统20的操作。
随机数生成单元110生成满足1≦r<2的随机数r,生成隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]](S110)。这与图5的秘密计算算法的输入值的事先设置对应。隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]记录在记录单元1901,…,190W中。
输入值分解单元210由隐匿文[[x]]生成满足x=s×2e×f(s∈{-1,1},e为整数,1≦f<2)的s,e,f的隐匿文[[s]],[[e]],[[f]](S210)。这与图5的秘密计算算法的步骤1对应。
比较单元120、掩码单元130、复原单元140、系数计算单元150、选择单元160、线性组合单元170由多项式的次数n、系数a0,a1,…,an、输入[[x]]前生成的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]、S210中生成的隐匿文[[f]],计算[[a0+a1f1+…+anfn]](=[[1/f]])(S120~S170)。这与图5的秘密计算算法的步骤2(图1的秘密计算算法的步骤1~步骤6)对应。
倒数计算单元220由在S210中生成的隐匿文[[s]],[[e]]、在S120~S170中计算出的隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])作为倒数1/x的隐匿文[[1/x]](S220)。这与图5的秘密计算算法的步骤3对应。
按照本实施方式的发明,通过使用第一实施方式的秘密计算算法计算多项式a0+a1x1+…+anxn,可以削减从隐匿文[[x]]计算倒数1/x的隐匿文[[1/x]]的成本。而且,利用分解x得到的f的范围被限制为1≦f<2,将由输入值[[f]]计算输出值[[a0+a1f1+…+anfn]]的处理还原为使用f-r+u和事先生成的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]进行计算的处理。通常,若复原f-r+u则信息泄露,但是通过进行调整使得f-r+u为大于0小于等于1的均匀随机的值,能够安全地执行a0+a1f1+…+anfn的计算。
<第三实施方式>
在x的对数logx可以使用多项式表示为logx=a0+a1x1+…+anxn的情况下,可以使用第一实施方式的秘密计算算法,由x的隐匿文[[x]]高效地计算对数logx的隐匿文[[logx]]。
以下说明第三实施方式的秘密计算算法的输入和输出、处理步骤和实现第三实施方式的秘密计算算法的秘密计算系统。
[输入和输出]
说明图8所示的第三实施方式的秘密计算算法的输入和输出。
多项式a0+a1x1+…+anxn的次数n、系数a0,a1,…,an、以及计算对数的值的值x的隐匿文[[x]]成为输入。而且,还输入满足1≦r<2的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]。
x的对数logx的隐匿文[[logx]]成为输出。
[处理步骤]
说明图8所示的第三实施方式的秘密计算算法的处理步骤。此时,使用图8的左端的数字表现为步骤1、步骤2等。
在步骤1中,对输入的隐匿文[[x]],生成满足=2e×f(e为整数,1≦f<2)的e,f的隐匿文[[e]],[[f]]。使用参考非专利文献1的求[[x]]的浮点表现的运算,可以生成隐匿文[[e]],[[f]]。
在步骤2中,由多项式的次数n、系数a0,a1,…,an、隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]和步骤1中生成的隐匿文[[f]],计算[[a0+a1f1+…+anfn]]。这里,[[a0+a1f1+…+anfn]]=[[logf]]成立。
在步骤3中,由步骤1中生成的隐匿文[[e]]和步骤2中计算出的隐匿文[[logf]],计算[[logf]]+[[e]]。这里,[[logf]]+[[e]]=[[logx]]成立。
[秘密计算系统]
以下,参照图9~图10说明第三实施方式的秘密计算系统30。秘密计算系统30在取代包含W个(W为2以上的规定的整数)和秘密计算装置1001,…,100W而包含W个秘密计算装置3001,…,300W这一点上与秘密计算系统10有所不同。图9是表示秘密计算装置300i(1≦i≦W)的结构的方框图。图10是表示秘密计算系统30的操作的流程图。
图9所示的秘密计算装置300i在还包括输入值分解单元310i、对数计算单元320i这一点上与秘密计算装置100i有所不同。输入值分解单元310i和对数计算单元320i也构成为,在秘密计算算法中需要的运算中,可执行在实现其功能上需要的运算。
秘密计算系统30的输入值分解单元310由输入值分解单元3101,…,310W构成,对数计算单元320由对数计算单元3201,…,320W构成。
秘密计算系统30使用事先生成的随机数r(1≦r<2)和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]],由代入到多项式的值x的隐匿文[[x]],计算x的对数logx的隐匿文[[logx]]。以下,按照图10说明秘密计算系统30的操作。
随机数生成单元110生成满足1≦r<2的随机数r,生成隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]](S110)。这与图8的秘密计算算法的输入值的事先设置对应。隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]记录在记录单元1901,…,190W中。
输入值分解单元310由隐匿文[[x]],生成满足x=2e×f(e为整数,1≦f<2)的e,f的隐匿文[[e]],[[f]](S310)。这与图8的秘密计算算法的步骤1对应。
比较单元120、掩码单元130、复原单元140、系数计算单元150、选择单元160、线性组合单元170由多项式的次数n、系数a0,a1,…,an、输入[[x]]之前生成的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]、以及在S310中生成的隐匿文[[f]],计算[[a0+a1f1+…+anfn]](=[[logf]])(S120~S170)。这与图8的秘密计算算法的步骤2(图1的秘密计算算法的步骤1~步骤6)对应。
对数计算单元320由S310中生成的隐匿文[[e]]和S120~S170中计算出的隐匿文[[logf]],计算[[logf]]+[[e]]作为对数logx的隐匿文[[logx]](S320)。这与图8的秘密计算算法的步骤3对应。
按照本实施方式的发明,通过使用第一实施方式的秘密计算算法计算多项式a0+a1x1+…+anxn,可以削减由隐匿文[[x]]计算对数logx的隐匿文[[logx]]的成本。而且,利用分解x得到的f的范围被限制为1≦f<2,将由输入值[[f]]计算输出值[[a0+a1f1+…+anfn]]的处理还原为使用f-r+u和事先生成的随机数r和r-1的取幂的隐匿文[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]进行计算的处理。通常,若复原f-r+u则信息泄露,但是通过进行调整使得f-r+u成为大于0小于等于1的均匀随机的值,能够安全地执行a0+a1f1+…+anfn的计算。
<补充说明>
本发明的装置,例如作为单一的硬件实体,包括:能够连接键盘等的输入单元、能够连接液晶显示器等的输出单元、能够和可与硬件实体的外部通信的通信装置(例如通信电缆)连接的通信单元、CPU(Central Processing Unit,也可以具有高速缓存存储器或寄存器等),作为存储器的RAM或ROM、作为硬盘的外部存储装置、以及连接这些输入单元、输出单元、通信单元、CPU、RAM、和ROM,以便可进行外部存储装置之间的数据的存取的总线。而且也可以根据需要,在硬件实体中设置可读写CD-ROM等记录介质的装置(驱动器)等。作为具有这样的硬件资源的物理的实体,有通用计算机等。
在硬件实体的外部存储装置中,存储为了实现上述功能所需要的程序以及该程序的处理中所需要的数据等(不限于外部存储装置,例如也可以使其存储在作为读出程序专用存储装置的ROM中)。而且,通过这些程序的处理得到的数据等,适当存储在RAM或外部存储装置等中。
在硬件实体中,外部存储装置(或者ROM等)中存储的各程序和该各程序的处理所需要的数据根据需要被读入存储器中,适当地在CPU中被解释执行、处理。其结果,CPU实现规定的功能(表示为上述,…部件,…单元等的各结构要件)。
本发明不限定于上述的实施方式,在不脱离本发明的宗旨的范围内能够适当变更。而且,上述实施方式中说明的处理不仅按照记载的顺序时间序列地执行,也可以根据执行处理的装置的处理能力或者根据需要并行地或者单独地执行。
如已经叙述的那样,在通过计算机实现上述实施方式中说明的硬件实体(本发明的装置)中的处理功能的情况下,通过程序记述硬件实体应有的功能的处理内容。然后,通过由计算机执行该程序,在计算机上实现上述硬件实体中的处理功能。
记述了该处理内容的程序,可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。具体地说,例如,作为磁记录装置,可以使用硬盘装置、软盘、磁带等,作为光盘,可以使用DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(CompactDisc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等,作为光磁记录介质,可以使用MO(Magneto-Optical disc)等,作为半导体存储器可以使用EEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等。
而且,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD,CD-ROM等可拆装型记录介质来进行。进而,也可以将该程序存储在服务器计算机的存储装置中,通过经由网络,将该程序从服务器计算机转发到其它计算机,使该程序流通。
执行这样的程序的计算机,例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取在自身的记录装置中存储的程序,按照读取的程序执行处理。而且,作为该程序其它执行方式,也可以计算机从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以每当从服务器计算机将程序转发到该计算机时,逐次执行按照接受到的程序的处理。而且,也可以通过从服务器计算机不进行至该计算机的程序的转发,而仅通过其执行指令和结果取得来实现处理功能的、所谓ASP(Application Service Provider,应用提供商)型的服务,执行上述的处理。而且,本方式的程序中,包含作为供电子计算机的处理使用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
而且,在该方式中,所谓通过在计算机上执行规定的程序来构成硬件实体,但是也可以硬件性地实现这些处理内容的至少一部分。
上述的本发明的实施方式的记载是以例证和记载的目的而提示的记载。即不是包罗的意思,也不是将发明限定于公开的严密的形式的意思。由上述的教导能够进行变形或变化。实施方式是,为了提供本发明的原理的最好的例证,而且,为了本领域的本领域的技术人员为适用于深思熟虑的实际的使用而以各种实施方式、以及附加了各种变形而可利用本发明,而选择并表现的方式。所有这样的变形或变化,在通过按照公正、合法、公平地提供的宽度来解释的添加的权利要求而决定的本发明的范围内。

Claims (10)

1.一种秘密计算系统,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将k设为满足k≦x<k+1的整数,将r设为满足k≦r<k+1的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
所述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]],计算代入了所述值x的所述n次多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]],
所述秘密计算系统包括:
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[x]]生成作为所述值x和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若x≦r则u=1,若不是x≦r则u=0;
掩码单元,由所述隐匿文[[x]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000011
选择单元,由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri;以及
线性组合单元,计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述隐匿文[[a0+a1x1+…+anxn]],其中bi中的i=0,…,n,si中的i=1,…,n。
2.一种秘密计算系统,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的倒数1/x表示为1/x=a0+a1x1+…+anxn
所述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]]计算所述倒数1/x的隐匿文[[1/x]],
所述秘密计算系统包括:
输入值分解单元,由所述隐匿文[[x]]生成满足x=s×2e×f的s,e,f的隐匿文[[s]],[[e]],[[f]],其中s∈{-1,1},e为整数,1≦f<2;
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中若f≦r则u=1,若不是f≦r则u=0;
掩码单元,由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000021
选择单元,由所述隐匿文[[u]],对i=1,…,n,生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合单元,计算所述系数bi(i=0,…,n)和所述隐匿文[[si]](i=1,…,n)的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的倒数1/f的隐匿文[[1/f]];以及
倒数计算单元,由所述隐匿文[[s]]、所述隐匿文[[e]]、所述隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])作为所述隐匿文[[1/x]],其中,[[1/f]]<<[[-e]]是将1/f左偏移了-e比特的值。
3.一种秘密计算系统,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中,n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的对数logx表示为logx=a0+a1x1+…+anxn
所述秘密计算系统由2个以上的秘密计算装置构成,由所述值x的隐匿文[[x]]计算所述对数logx的隐匿文[[logx]],
所述秘密计算系统包括:
输入值分解单元,由所述隐匿文[[x]]生成满足x=2e×f的e,f的隐匿文[[e]],[[f]],其中e为整数,1≦f<2;
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若f≦r则u=1,若不是f≦r则u=0;
掩码单元,由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式,对i=0,…,n计算系数bi
Figure FDA0003742603080000031
选择单元,由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合单元,计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的对数logf的隐匿文[[logf]],其中bi中的i=0,…,n,si中的i=1,…,n;以及
对数计算单元,由所述隐匿文[[e]]、所述隐匿文[[logf]],计算对所述对数logf相加了e的值[[logf]]+[[e]]作为所述隐匿文[[logx]]。
4.一种秘密计算装置,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将k设为满足k≦x<k+1的整数,将r设为满足k≦r<k+1的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
所述秘密计算装置由所述值x的隐匿文[[x]]计算代入了所述值x的所述n次多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]],是以2个以上的秘密计算装置构成的秘密计算系统中的秘密计算装置,
所述秘密计算装置包括:
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[x]]生成作为所述值x和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若x≦r则u=1,若不是x≦r则u=0;
掩码单元,由所述隐匿文[[x]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000041
选择单元,由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri;以及
线性组合单元,计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述隐匿文[[a0+a1x1+…+anxn]],其中bi中的i=0,…,n,si中的i=1,…,n。
5.一种秘密计算装置,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的倒数1/x表示为1/x=a0+a1x1+…+anxn
所述秘密计算装置由所述值x的隐匿文[[x]]计算所述倒数1/x的隐匿文[[1/x]],是以2个以上的秘密计算装置构成的秘密计算系统中的秘密计算装置,
所述秘密计算装置包括:
输入值分解单元,由所述隐匿文[[x]],生成满足x=s×2e×f的s,e,f的隐匿文[[s]],[[e]],[[f]],其中s∈{-1,1},e为整数,1≦f<2;
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若f≦r则u=1,若不是f≦r则u=0;
掩码单元,由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000051
选择单元,由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合单元,计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的倒数1/f的隐匿文[[1/f]],其中bi中的i=0,…,n,[[si]]中的i=1,…,n;以及
倒数计算单元,由所述隐匿文[[s]]、所述隐匿文[[e]]、所述隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])作为所述隐匿文[[1/x]],其中,[[1/f]]<<[[-e]]是将1/f左偏移了-e比特的值。
6.一种秘密计算装置,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的对数logx表示为logx=a0+a1x1+…+anxn
所述秘密计算装置由所述值x的隐匿文[[x]]计算所述对数logx的隐匿文[[logx]],是以2个以上的秘密计算装置构成的秘密计算系统中的秘密计算装置,
所述秘密计算装置包括:
输入值分解单元,由所述隐匿文[[x]],生成满足x=2e×f的e,f的隐匿文[[e]],[[f]],e为整数,1≦f<2;
比较单元,使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若f≦r则u=1,若不是f≦r则u=0;
掩码单元,由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原单元,由所述隐匿文[[c]],复原所述掩码c;
系数计算单元,由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000061
选择单元,由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合单元,计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的对数logf的隐匿文[[logf]],其中bi中的i=0,…,n,[[si]]中的i=1,…,n;以及
对数计算单元,由所述隐匿文[[e]]、所述隐匿文[[logf]],计算对所述对数logf相加了e的值[[logf]]+[[e]]作为所述隐匿文[[logx]]。
7.一种秘密计算方法,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将k设为满足k≦x<k+1的整数,将r设为满足k≦r<k+1的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,其中n是多项式的次数,a0,a1,…,an是多项式的各系数,
所述秘密计算方法使用由2个以上的秘密计算装置构成的秘密计算系统,由所述值x的隐匿文[[x]],计算代入了所述值x的所述n次多项式a0+a1x1+…+anxn的值的隐匿文[[a0+a1x1+…+anxn]],
所述秘密计算方法包括:
比较步骤,所述秘密计算系统使用所述隐匿文[[r]],由所述隐匿文[[x]]生成作为所述值x和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若x≦r则u=1,若不是x≦r则u=0;
掩码步骤,所述秘密计算系统由所述隐匿文[[x]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[x]]-[[r]]+[[u]];
复原步骤,所述秘密计算系统由所述隐匿文[[c]],复原所述掩码c;
系数计算步骤,所述秘密计算系统由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000071
选择步骤,所述秘密计算系统由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri;以及
线性组合步骤,所述秘密计算系统计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述隐匿文[[a0+a1x1+…+anxn]],其中bi中的i=0,…,n,[[si]]中的i=1,…,n。
8.一种秘密计算方法,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的倒数1/x表示为1/x=a0+a1x1+…+anxn
所述秘密计算方法使用2个以上的秘密计算装置构成的秘密计算系统,由所述值x的隐匿文[[x]],计算所述倒数1/x的隐匿文[[1/x]],
所述秘密计算方法包括:
输入值分解步骤,所述秘密计算系统由所述隐匿文[[x]],生成满足x=s×2e×f的s,e,f的隐匿文[[s]],[[e]],[[f]],s∈{-1,1},e为整数,1≦f<2;
比较步骤,所述秘密计算系统使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若f≦r则u=1,若不是f≦r则u=0;
掩码步骤,所述秘密计算系统由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原步骤,所述秘密计算系统由所述隐匿文[[c]],复原所述掩码c;
系数计算步骤,所述秘密计算系统由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000081
选择步骤,所述秘密计算系统由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合步骤,所述秘密计算系统计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的倒数1/f的隐匿文[[1/f]],其中bi中的i=0,…,n,[[si]]中的i=1,…,n;以及
倒数计算步骤,所述秘密计算系统由所述隐匿文[[s]]、所述隐匿文[[e]]、所述隐匿文[[1/f]],计算[[s]]×([[1/f]]<<[[-e]])作为所述隐匿文[[1/x]],其中,[[1/f]]<<[[-e]]是将1/f左偏移了-e比特的值。
9.一种秘密计算方法,
将a0+a1x1+…+anxn设为变量x的n次多项式,将x设为代入所述n次多项式的值,将r设为满足1≦r<2的随机数,将[[r]],[[r2]],…,[[rn]],[[r-1]],
[[(r-1)2]],…,[[(r-1)n]]设为所述随机数r和r-1的取幂的隐匿文,n是多项式的次数,a0,a1,…,an是多项式的各系数,
设所述值x的对数logx表示为logx=a0+a1x1+…+anxn
所述秘密计算方法使用由2个以上的秘密计算装置构成的秘密计算系统,由所述值x的隐匿文[[x]],计算所述对数logx的隐匿文[[logx]],
所述秘密计算方法包括:
输入值分解步骤,所述秘密计算系统由所述隐匿文[[x]],生成满足x=2e×f的e,f的隐匿文[[e]],[[f]],其中e为整数,1≦f<2;
比较步骤,所述秘密计算系统使用所述隐匿文[[r]],由所述隐匿文[[f]]生成作为所述f和所述随机数r的大小比较结果的u的隐匿文[[u]],其中,若f≦r则u=1,若不是f≦r则u=0;
掩码步骤,所述秘密计算系统由所述隐匿文[[f]]、所述隐匿文[[r]]、所述隐匿文[[u]],生成掩码c的隐匿文[[c]]作为[[c]]=[[f]]-[[r]]+[[u]];
复原步骤,所述秘密计算系统由所述隐匿文[[c]]复原所述掩码c;
系数计算步骤,所述秘密计算系统由所述次数n、所述系数a0,a1,…,an、所述掩码c,通过下式对i=0,…,n计算系数bi
Figure FDA0003742603080000091
选择步骤,所述秘密计算系统由所述隐匿文[[u]],对i=1,…,n生成根据所述大小比较结果u决定的选择值si的隐匿文[[si]],其中,若u=1则si=(r-1)i,若u=0则si=ri
线性组合步骤,所述秘密计算系统计算所述系数bi和所述隐匿文[[si]]的线性组合b0+b1[[s1]]+…+bn[[sn]]作为所述f的对数logf的隐匿文[[logf]],其中bi中的i=0,…,n,[[si]]中的i=1,…,n;以及
对数计算步骤,所述秘密计算系统由所述隐匿文[[e]]、所述隐匿文
[[logf]],计算对所述对数logf相加了e的值[[logf]]+[[e]]作为所述隐匿文
[[logx]]。
10.一种计算机可读取的记录介质,存储程序,该程序使计算机具有作为构成权利要求1至3的任意一项的秘密计算系统的秘密计算装置的功能。
CN201880007430.2A 2017-01-20 2018-01-18 秘密计算系统、秘密计算装置、秘密计算方法、记录介质 Active CN110199338B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017-008095 2017-01-20
JP2017008095 2017-01-20
PCT/JP2018/001341 WO2018135563A1 (ja) 2017-01-20 2018-01-18 秘密計算システム、秘密計算装置、秘密計算方法、プログラム

Publications (2)

Publication Number Publication Date
CN110199338A CN110199338A (zh) 2019-09-03
CN110199338B true CN110199338B (zh) 2022-09-20

Family

ID=62908612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880007430.2A Active CN110199338B (zh) 2017-01-20 2018-01-18 秘密计算系统、秘密计算装置、秘密计算方法、记录介质

Country Status (5)

Country Link
US (1) US11164484B2 (zh)
EP (1) EP3573040B1 (zh)
JP (1) JP6629466B2 (zh)
CN (1) CN110199338B (zh)
WO (1) WO2018135563A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11456862B2 (en) * 2017-07-05 2022-09-27 Nippon Telegraph And Telephone Corporation Secure computation system, secure computation apparatus, secure computation method, and recording medium
KR102667837B1 (ko) * 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가
JP6977882B2 (ja) * 2018-05-25 2021-12-08 日本電信電話株式会社 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
JP6916770B2 (ja) * 2018-09-27 2021-08-11 Kddi株式会社 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
JP2022523182A (ja) * 2019-02-22 2022-04-21 インファー,インク. モジュラー整数を使用したセキュアなマルチパーティ計算のための算術
JP7073295B2 (ja) * 2019-03-27 2022-05-23 Kddi株式会社 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
JP7327511B2 (ja) * 2019-12-19 2023-08-16 日本電信電話株式会社 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
CN114945965A (zh) * 2020-01-20 2022-08-26 日本电信电话株式会社 秘密倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
WO2005109379A1 (ja) * 2004-05-12 2005-11-17 Matsushita Electric Industrial Co., Ltd. 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP4671776B2 (ja) * 2005-06-15 2011-04-20 株式会社エヌ・ティ・ティ・ドコモ 秘匿処理装置及び秘匿処理方法
CN101505222B (zh) * 2005-12-19 2012-12-05 日本电信电话株式会社 终端识别方法、认证方法、认证系统、服务器、终端、无线基站、程序以及记录介质
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8861734B2 (en) * 2007-08-22 2014-10-14 Nec Corporation Secret information distribution system, method, program, and transmission system
JP5736816B2 (ja) * 2010-05-31 2015-06-17 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
DK2634955T3 (da) * 2010-10-29 2020-02-03 Hitachi Ltd Fremgangsmåde til informationsautentifikation og informationsautentifikationssystem
WO2012121333A1 (ja) * 2011-03-10 2012-09-13 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
FR2976101B1 (fr) * 2011-05-31 2013-07-05 Oberthur Technologies Procede de traitement cryptographique de donnees
JP6142704B2 (ja) * 2013-07-11 2017-06-07 富士通株式会社 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法
US10218495B2 (en) * 2014-01-28 2019-02-26 Nippon Telegraph And Telephone Corporation Secure computation method, secure computation system, secure computation server, registrant terminal, user terminal and program
JP2016012111A (ja) * 2014-06-30 2016-01-21 富士通株式会社 暗号処理方法、暗号処理装置、および暗号処理プログラム
WO2016129363A1 (ja) * 2015-02-12 2016-08-18 学校法人東京理科大学 秘密分散を用いた秘匿演算システムに関する計算装置

Also Published As

Publication number Publication date
EP3573040A4 (en) 2020-10-28
US11164484B2 (en) 2021-11-02
CN110199338A (zh) 2019-09-03
WO2018135563A1 (ja) 2018-07-26
US20190333415A1 (en) 2019-10-31
JP6629466B2 (ja) 2020-01-15
EP3573040A1 (en) 2019-11-27
EP3573040B1 (en) 2021-07-21
JPWO2018135563A1 (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
CN110199338B (zh) 秘密计算系统、秘密计算装置、秘密计算方法、记录介质
CN110199339B (zh) 秘密计算系统、秘密计算装置、秘密计算方法、记录介质
JP6583970B2 (ja) 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
CN112805770B (zh) 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质
EP4016506B1 (en) Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program
JP7273753B2 (ja) 数論変換処理装置、数論変換処理方法及びプログラム
JP6777816B2 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
WO2019059042A1 (ja) 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
CN113924610B (zh) 秘密共轭梯度法计算系统及方法、秘密计算装置、共轭梯度法计算装置及方法、以及记录介质
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
US20230036496A1 (en) Secure selective product computation system, secure selective product computation method, secure computation apparatus, and program
Santos et al. On the reliability of computational chaos-based cryptography for information exchange
EP3982282B1 (en) Secret division system, secret calculation device, secret division method, and program
EP4095828A1 (en) Secure exponential function computation system, secure exponential function computation method, secure computation device, and program
CN116368549A (zh) 秘密指数部统一系统、秘密指数部统一装置、秘密指数部统一方法、秘密和计算系统、秘密积和计算系统、程序

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