CN104509024B - 用于使输入同态随机化的方法和系统 - Google Patents

用于使输入同态随机化的方法和系统 Download PDF

Info

Publication number
CN104509024B
CN104509024B CN201380039463.2A CN201380039463A CN104509024B CN 104509024 B CN104509024 B CN 104509024B CN 201380039463 A CN201380039463 A CN 201380039463A CN 104509024 B CN104509024 B CN 104509024B
Authority
CN
China
Prior art keywords
matrix
prht
input
denoted
random
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
CN201380039463.2A
Other languages
English (en)
Other versions
CN104509024A (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.)
Acano UK Ltd
Original Assignee
NDS Ltd
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 NDS Ltd filed Critical NDS Ltd
Publication of CN104509024A publication Critical patent/CN104509024A/zh
Application granted granted Critical
Publication of CN104509024B publication Critical patent/CN104509024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/58Random or pseudo-random number generators
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Complex Calculations (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Storage Device Security (AREA)

Abstract

描述了一种使输入随机化的全同态方法和系统,其中,在交换环上执行所有计算。详细说明使用矩阵和多项式执行随机化的等效方法以及混合矩阵和多项式函数的方式。进一步描述了矩阵和多项式函数的加法、乘法以及除法。通过在环ZN上执行函数模数N的计算,函数可用作加密函数。该方法和系统还可用于验证由第三方执行的计算的返回结果对于在本文中描述的任何计算是有效的。还描述了相关方法、系统以及设备。

Description

用于使输入同态随机化的方法和系统
相关申请
本申请要求NDS公司的于2012年7月26日提交的未公布以色列申请IL 221152以及于2013年1月24日提交的IL 224400的优先权权益。
技术领域
本发明涉及同态随机化和加密的系统和方法。
背景技术
Kristin Lauter、Michael Naehrig、Vinod Vaikuntanathan的2011年7月的CanHomomorphic Encryption be Practical描述了越来越多的数据储存和管理外包给云服务的发展对个人和生意等增加了很多新的隐私忧虑。如果用户将发送给云的数据加密,则可以令人满意地解决隐私忧虑。如果加密方案是同态,则即使加密,云也可以依然在数据上进行有意义的计算。
政府、工业以及社团追求实际的同态加密的承诺。IBM和微软朝着其潜在的承诺积极地进行研究,这是因为(例如)通过公共(公开)云服务器时限‘安全的加密搜索’(或者‘隐私保护信息传递’);例如,服务器在加密的医疗数据库中搜索(不了解该查询或结果),并且由安全客户端递送加密的结果以进行解密。‘安全函数评估’的又一个应用在于,公开的不受信任的服务器为输入执行秘密算法,而不了解算法或结果的性能。因此,假设获得了公共云服务器的公开访问的黑客(甚至是恶意的云服务员工)未呈现危害信息或交易的任何威胁。这种同态加密的应用很多,并且能够广泛地使用云计算,例如,允许注重安全性的政府和金融业通过将其数据库加密来将其业务移动到公共云,并且使其能够用于云计算,不必担心受到云服务或外部黑客的安全侵害。而且,这种隐私保护技术帮助社团处理对机密数据的不断增加的攻击,更不必说隐私云。要注意的是,以上内容的安全性并非运动目标范例(moving-target paradigm)(例如,为了阻碍黑客的分析而快速更新的软件)或者清晰的软件混淆的结果,而是同态密码系统的数学性质所固有的。
迄今为止,发现同态系统不切实际;仅受限的特例约束使用显示对实际用途具有某种可能性。
Gentry等人在STOC′09,Proceedings of the 41st Annual ACM Symposium onTheory ofComputing的第169-178页中提出了全同态加密方案-即,允许人们通过加密的数据(不需要能够解密)评估电路的方案。
Xiao等人在www.utdallas.edu/~ilyen/techrep/HPbound.pdf中可获得的题为An Efficient Homomorphic Encryption Protocol for Multi-User Systems的文章中提出了针对同态加密问题的解决方案。
还认为以下专利参考文献反应了现有技术的状况:
Chen等人的US 7,254,586;
INTRINSIC ID B.V.的WO/2010/100015;
Takashima的US 20100329454;
Juels的US 7,472,093;以及
Gentry的US 20110110525。
发明内容
在本发明的某些实施方式中,本发明试图提供一种用于计划用于加密应用的ZN(ZN是残数模数N的环;N由两个质数(p和q)进行因子分解)中的特定数据的改进的实用全同态加密系统。对于某些应用,在ZN中期望使用随机的大数目,其中,例如,根据先有技术的当前水平,出于实际考虑,大数目是1Kbit。
同态加密是如下一种加密形式:允许在密文(cipher text)上执行特定类型的计算并且获得加密结果,该结果是对明文(plain text)执行的运算结果的密文。例如,一个人可将两个加密数相加,并且然后,另一个人可将结果进行解密,这两个人都不能找出各个数的值。同态加密方案通过设计具有可塑性(malleable,延展性)。各种密码系统的同态性能可用于创建安全表决系统、抗冲突的散列函数、私有信息检索方案,并且通过确保处理数据的机密性,能够广泛地使用云计算。
在本文中提出了用于数据的实际随机化(通过交换环)的高性能非确定性全同态方法,并且在环ZN上的模N数据(mod-N data)的对称加密非常适合于加密应用。例如,本发明的实施方式确保多变量输入(multivariate input)或公共多项式函数的系数以在公开的不受信任的环境中运行。所使用的方法还可为某些现有的密码算法提供抵抗某些攻击的增强保护,例如,保护OSS公共密钥签名抵抗Pollard攻击。而且,这些方法的有效性质(每个加密具有一个大数乘法,并且两个加密值的乘积为六个)激励并且能够使用低成本协同安全平台以用于诸如密钥散列或私有密钥推导算法的应用。这种平台包括由运行同态算法的不受信任的高性能服务器支持的低成本(低性能)安全元件。已经表明,随机明文数据是同态加密的安全性的证明的充分条件。在交换环上的数据的同态随机化提供了抵抗例如在AES密钥上的侧信道(side-channel)攻击(DPA)的保护。而且,这些方法具有提供故障检测和计算数据完整性的验证的平行的并且不可分离的计算的固有耦合。
期望所提出的加密方案为很多应用和客户/服务器模型提供安全性解决方案,其包括:
1、低成本安全平台;以及
2、作为上述公共云服务器的公开的不受信任的平台。
低成本安全平台由提供协同安全性的两个元素组成:
a)执行同态计算同时隐藏其秘密的低安全性高性能元件(例如,PC(个人电脑)、STB(机顶盒)或移动计算装置),以及
b)安全地长期保密并且使用它们来在可信环境中执行一些基础计算的高安全性低性能元件(例如,低成本SC(智能卡)、RFID(射频识别)、SIM(用户识别模块)、或者服务安全的执行环境的安全OTP(一次性可编程存储器))。
该平台标记为(LHHL)或(LH)2平台。这种平台可限定由STB和SC构成的安全客户端、具有SIM的智能电话或者具有Arm TrustZone(或者其他安全的执行环境)的连接电视。
例如,并且不限制上文的普遍性,公开平台是存在于假设为不受信任的公共网络(云)中的PC(或在PC上运行的处理)。
通过举例,应用程序可使用数据的同态加密以:
使用同态修改的OSS(HoMoSS)的有效的基于PK(公共/私有密钥)的签名。与RSA签名操作相比,在该新的方案之下,使OSS免于Pollard攻击(如下面所述)并且基本上保持其效率。在这种应用中,保持私有密钥的签名者是(LH)2平台。可以在公开平台内进行PK签名的验证。
隐藏对称密钥,例如,并且不限制上文的普遍性,通过(LH)2客户端验证密钥散列(例如,安全HMAC验证),具有SC的STB-其中,STB执行大部分验证操作的同态计算,而SC使用秘密对称密钥执行需要加密的最终步骤。
因此,根据本发明的实施方式,提供了一种使输入随机化的全同态方法,其中,在下文中表示为CR的交换环(commutative)上进行所有计算,所述方法包括:接收包括CR中的k个输入元素的序列的输入(表示为INP);执行(a)或(a)中的任一个:(a)在CR中随机地选择秘密(secret)n×n矩阵(在下文中表示为S),S用作对称随机化密钥,其中,S包括CR上的可逆矩阵;确定S-1;对于包括INP的k个元素之中的m个不同的输入元素的每个集合i,其中,0<m<k+1并且m<n,从INP中选择要被共同随机化的m个不同的输入元素,并且m个不同的输入元素在下文中表示为X1,X2,...,Xm,在CR中选择n-m(n减去m)个随机数Y1,Y2,...,Yn-m,其中,输入元素为X1,X2,...,Xn;在随机数Y1,Y2,...,Yn-m的集合之中选择至少一个随机数;并且可选地,一个或多个常数放置在表示为M的n×n对角矩阵的对角线上,其中,除了对角线以外,矩阵M仅由0填充;并且通过使用在下文中表示为MRHT的基于矩阵的随机化和同态变换函数,为在表示为{Xim}=X1,X2,...,Xm的集合i中的m个输入元素,确定随机输出Aim,其中:
从而产生与m个输入元素的i集合{Xim)=X1,X2,...,Xm对应的随机输出Aim;以及(b)在CR中选择n个随机数,n个随机数在下文中表示为v1,v2,...,vn,确定公共多项式选择在下文中表示为PRHT(Xim)的基于多项式的随机化和同态变换函数,包括满足下列方程的变量为v的形式为的任何函数:
在CR中为ai,m,ai,m+1...,ai,n-1选择将产生ai,0,ai,1...,ai,m-1的以上方程的解的n-m个随机值,并且执行(c)或(d)中的任一个:(c)产生与包括集合(ai0,ai1,...,ain-1)以及P(v)的公共系数集合(C0,C1,...,Cn-1,Cn)的输入元素X1,X2,...,Xm对应的随机输出Aim,其中,需要公共系数集合(C0,C1,...,Cn-1,Cn)以用于利用输入元素来执行运算的算术;以及(d)在CR中为给定的输入元素X1,X2,...,Xm选择n-m个随机值R1,R2,...,Rn-m,其将解出以下n个联立方程 针对未知数ai0,ai1,...,ain-1,从而为X1,X2,...,Xm产生包括集合(ai0,ai1,...,ain-1)以及P(v)的公共集合(C0,C1,...,Cn-1,Cn)的随机文本。
而且,根据本发明的实施方式,输入INP的随机化包括连续应用函数PRHT(Xi)和MRHT(Xi)的组合,其中,Xi表示INP的m个不同的输入元素的集合,并且其中:
并且
其中,PRHT(amj)=(a0,a1,...,an-1)mj,因此
更进一步地,根据本发明的实施方式,执行(a)和(b)中的任一个:(a)在CR上接收包括随机化Xim输入(其为在下文中表示为Aim的n×n对角矩阵)的输出,其中,使用S来确定并且通过执行以下中的一个来确定Xim:S-1·Aim·S=M,其中,X1,X2,...,Xm是上面所产生的对角矩阵的左上元素,或者并且(b)接收Xim的随机化输出作为(ai0,ai1,...,ain-1),并且使用v1,v2,...,vm来确定去随机化的输入
此外,根据本发明的实施方式,该方法包括:对于Xi,包括MRHT(Xi)=Ai,接收A1和A2,并且MRHT(X1)+MRHT(X2)=A1+A2,并且对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1,接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn并且PRHT(X1)+PRHT(X2)=a10+a20,a11+a21,...,a1n-1+a2n-1
而且,根据本发明的实施方式,该方法包括:对于Xi,包括MRHT(Xi)=Ai,接收A1和A2,并且MRHT(X1)·MRHT(X2)=A1·A2并且对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1,接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,并且PRHT(X1)·PRHT(X2)=r10,r11,...,r1n-1,所产生的n-1阶多项式的系数为r(v),其中,
而且,根据本发明的实施方式,对于Xi,包括MRHT(Xi)=Ai,接收A1和A2并且对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1,接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn;根据n个未知的系数u2j,通过计算来得出1/PRHT(X2)=u20,u21,...,u2n-1,从而确定
其中,g2j()是n个未知数u2j的线性组合;并且对于所有的u2j j=0,...,n-1,j=1,..,n-1,求解n个导出方程(derived equaiton)q20()=1和g2j()=0,并且
更进一步地,根据本发明的实施方式,至少一个随机化输入包括密钥。
此外,根据本发明的实施方式,所述密钥包括AES密钥。
而且,根据本发明的实施方式,至少一个随机化输入包括模数N多项式系数。
进一步地,根据本发明的实施方式,模数N多项式系数用于私有函数密钥生成。
更进一步地,根据本发明的实施方式,模数N多项式系数用于私有的基于散列的消息认证码。
而且,根据本发明的实施方式,模数N多项式系数用于生成OSS签名。
进一步地,根据本发明的实施方式,输入包括明文,输出包括密文,并且在环ZN上执行模数(modulo)N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥,其中,加密函数表示为MEnc和PEnc,分别与MRHT和PRHT对应。
此外,根据本发明的实施方式,明文的加密包括连续应用加密函数PEnc=PRHT(Xi)和MEnc=MRHT(Xi)的组合,其中,
并且
其中,
PEnc(aij)=(a0,a1,...,an-1)ij。
而且,根据本发明的实施方式,所接收的输出包括表示为C的密文,根据上述方法产生所述密文C,并且去随机化输入包括明文,并且在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
而且,根据本发明的用于将一对密文输出Ci和Cj相加的实施方式,Ci和Cj包括根据上述方法产生的密文,所述方法包括如上所述的将Ci和Cj相加,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
更进一步地,根据本发明的用于将一对密文输出Ci和Cj相乘的实施方式,Ci和Cj包括根据上述方法产生的密文,所述方法包括如上所述的使Ci和Cj相乘,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
此外,根据本发明的用于将一对密文输出Ci和Cj相除的实施方式,Ci和Cj包括根据上述方法产生的密文,所述方法包括如上所述的使Ci和Cj相除,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
而且,根据本发明的用于验证由第三方执行的计算的返回结果(returnedresult)为有效的实施方式,所述结果由根据上述权利要求中任一项所述的方法执行,对于使用表示为M的MRHT或MEnc函数返回的结果,所述结果表示为并且对于使用表示为P的PRHT或PEnc函数返回的结果,所述结果表示为所述结果包括对A1,A2,...,Ak执行的表示为f的同态计算的结果,其中,Ai等于M(Xi)和P(Xi)中的一个;f(A1,A2,...,Ak)等于以下中的一个:M(f(X1,X2,...,Xk))=f(M(Xi)、M(X2),...,M(Xk))以及P(f(X1X2,...,Xk))=f(P(X1),P(X2),...,P(Xk)),所述方法包括:接收为以下形式的其中一个的f(A1,A2,...,Ak)的结果:
,并且f(A1,A2,...,Ak)为的形式,在所述结果为的形式的情况下,对于任何m,m=1,2,...,n-1,计算f(Ym1,Ym2,...,Ymk)(表示为Q),其中,Ymj包括在加密和随机化Xj的一个中使用的第m个随机值,执行解密和去随机化R*M中的一个,从而从所产生的m+1行的矩阵对角线中确定f(Ym1,Ym2,...,Ymk)(表示为E);并且如果E等于Q,则将f(Xi)的计算结果视为有效,并且在所述结果为形式的情况下,计算f(Ym1,Ym2,...,Ymk),表示为Q,对于任何m,m=1,2,...,n-1,其中,Ymj包括在加密和随机化Xj的一个中使用的第m个随机值;执行解密和去随机化R*M中的一个,从而确定(表示为E),并且如果E等于Q,则将f(X1,X2,...,XK)的计算结果视为有效。
附图说明
通过结合附图进行的以下详细描述,将更全面地理解和了解本发明,其中:
图1为根据本发明的实施方式构成和操作的与高安全性低性能装置交互的低安全性高性能装置的简化描绘;
图2为图1的系统的一个实施方式的描述,其中,使用私有算法和公共输入;以及
图3A-图3E为描述图1的系统的各种实施方式的方法的数据流程图。
通过结合附图进行的以下详细描述,将更全面地理解和了解本发明,其中:
附件A是由在本文中描述的发明的发明人在eprint.iacr.org/2012/637.pdf上发布的题为Efficient Methods for Practical Fully-Homomorphic Symmetric-keyEncryption,Randomization,and Verification的文章,并且该文章为在本文中描述的方法和安全性提供了数学方法,包括证明。
具体实施方式
参照图1,该图是根据本发明的实施方式构成并且进行操作的与高安全性低性能装置交互的低安全性高性能装置的简化描绘。
如上所述,本发明提供了非确定性全同态方法的几个实施方式,用于:
实用的(高效率)全同态:
A、在交换环CR中的任何数据的对称随机化;
B、特定数据的对称加密(在ZN中的模数N);
C、计算的耦合
本申请描述了本发明的以下实施方式:
任何数据的随机化
在这种情况下,数据和操作在CR上。该方法应用于数据的随机化和同态变换(RHT)中的数据结果中。该结果可以是由加法和乘法构成的多项式函数的输入,例如,在硅芯片内运行的AES算法。将RHT应用于秘密的AES密钥中,保护不受到以显示清晰的AES密钥为目标的侧信道攻击(例如,差分功率攻击)。
在ZN中的模数N的有效同态加密,
在秘密(对称密钥)和一组私有算法的公开的不受信任的平台中的安全使用。
实例是密钥散列(其中,密钥是秘密的)以及用于密钥生成的私有函数(PFKG),其输入是公共输入(例如,广播ECM(授权控制信息)由在STB中运行的秘密的PFKG或者在智能卡中的可比元件处理)。私有函数可以是具有秘密系数的任何多项式(并且a0=0)。
大部分安全工作负载由低安全性主机执行,而同态加密密钥由低性能高安全性元件保持。
用于某些算法(例如,保护OSS(公共密钥)签名不受到Pollard攻击)的增强保护。
计算的耦合
通过利用平行的多个单独的计算的不可分离的耦合(即,缠绕(entaglement)),提供计算完整性的验证,从而提供抵抗故障攻击的保护。
I、定义
N是作为两个质数P和Q的乘积的数;(出于安全的原因,假设P和Q是秘密的);假设将N因式分解成质数,是计算上的难题)。
要加密的消息X由ZN中的k模数N数量的X1,X2,...,Xm构成。
ZN是残留模数N的环。
CR是交换环。
MnXn(ZN)是在ZN上的n×n矩阵的环。
在ZN上,其中,ZN[v]/P(v)是多项式环模数P(v)。
通常,该方法为每个方法应用使用一个Xi,以允许在函数中计算(任意的)多变量输入,这些函数的运算是加法、乘法以及除法。然而,如果(例如)具有两个已知的多变量函数,这两个函数具有输入的两个不同集合(X1,X2,...,Xh)和(Xh+1,Xh+2,...,XL),那么在每个输入集合中的每对变量应被共同加密(或者随机化),即,通过该方法的简单应用。通常,在假设一个变量的前提下,讨论在本文中讨论的方法。
此外,要理解的是,在本文中讨论的方法可以在专用软件、专用硬件、非专用硬件或其某个组合上运行。例如,并且不限制以上内容的普遍性,在本文中作为“接收输入”描述的步骤可操作为在软件中(其在合适的硬件上运行)运行。可替换地,接收输入的步骤可在专业芯片的专用电路中运行。进一步可替换地,可具有基于硬件的处理器,对于某些操作,该处理器可用于运行“接收输入”的步骤。者对于在各种方法中描述的其他步骤以及在本文中描述的程序同样如此。
II、任意数据的全同态随机化
在不被视为强烈的加密时,假设在安全环境中在CR上发生任意数据的随机化。其中的一个目的在于,阻止对算法执行的侧信道攻击,以获得关于敏感数据的信息,例如,对称的加密密钥,例如,AES加密密钥。这种攻击假设秘密数据(例如,密钥)在AES算法的重复运行上静止,以渐增地收集密钥信息,并且攻击还假设攻击者了解由该算法处理的输入(或者替换地,作为算法的结果产生的输出)。然而,在这种非决定性方法中,对于每个运行的密码,随机密钥改变,从而阻止这种攻击。(算法的输入被随机化,因此,在随机化值之上进行运算。该算法仅操作随机化数据和随机化秘钥,由该算法操作的数据不暴露在安全环境的边界之外。暴露在安全环境的外部的数据是已经根据在本文中公开的方法去随机化的数据)。
通过实例,随机化可用于阻止侧信道攻击,例如,并且不限制上文的普遍性,差分功率分析(DPA)攻击。DPA是侧信道攻击的具体实例。DPA需要在未知的密钥位与已知的数据位之间的交互。攻击者选择并且将数据位输入密码内,并且通过测量加密装置消耗的电流,来了解它们与密钥位的交互。然后,通过使用统计方法,攻击者可检索其预先不了解的密钥位。
随机化还可用于抵抗故障攻击。故障攻击依赖于攻击者在密码计算内引入故障的能力。然后,攻击者观察故障计算的结果,比较这些结果和非故障计算的结果,并且试图推断出未知的密钥位的值。
随机化和同态变换(RHT)是变换T(及其逆变换T-1),该变换T允许在变换数据上进行简单运算(例如,加法、乘法)。由于采用输入值,将随机数据附加到该输入值中,然后在该输入值中应用变换,所以该变换被随机化。该变换称为“同态”,这是因为该变换允许在变换域中进行运算(虽然运算本身也变换)。考虑输入值X,然后T(X,r)通过r将X随机化,并且变换其。RHT应满足:
X+Y=T-1(T(X,r1)+T(Y,r2))和
X*Y=T-1(T(X,r1)*T(Y,r2))。
在用于使用RHT的随机化性能来抵抗侧信道攻击的本发明的实施方式中,由于不需要连续地去除由随机化的数据的计算造成的错误,所以同态性能提供安全有效的保护。
此外,RHT在单个不可分离的步骤中计算两个或更多个值(即,对一个值的任何影响将影响第二值)。
而且,可使用RHT的计算耦合来抵抗故障攻击:
RHT可用于同态评估函数,其需要安全的环境来执行该评估;并且
RHT可以应用于同态算法中,该算法不需要安全执行。主要应用是使数据随机化,即,在统计上‘平坦’。
因此,由于在CR上的所有计算,所以任意数据的全同态随机化的方法包括:
接收包括在CR内的k个输入元素X1,X2,X3,...,Xi,...,Xk的序列的表示为X的输入,然后,执行以下中的一个:
矩阵方法
矩阵方法的最一般性的陈述是:
接收表示为INP的输入。INP包括在CR中的k个输入元素的序列。
在CR中选择秘密n×n矩阵,该矩阵在下文中表示为S,其中,S用作对称随机化秘钥。S包括在CR上的可逆矩阵。确定S-1
对于从INP中选择要共同被随机化的m个不同的输入元素的每个集合i,其中,0<m<k+1并且m<n,在下文中表示为Xi1,Xi2,...,Xin,其中,Xi1,Xi2,...,Xin包括输入元素X1,X2,X3,...,Xi,...,Xk的任何子集。为了方便讨论,在下文中讨论的输入元素表示为X1,X2,...,Xm
此外,为m个不同元素的每个输入集合i,在CR中选择n-m(n减去m)个随机数Y1,Y2,...,Yn-m,输入元素X1,X2,...,Xm和随机数Y1,Y2,...,Yn-m按顺序放在n×n对角矩阵的对角线上:
通过使用在下文中表示为MRHT的基于矩阵的随机化和同态变换函数,为在表示为{Xim}=X1,X2,...,Xm的集合i中的m个输入元素,确定随机输出Aim,其中:
从而产生与m个输入元素的i集合{Xim}=X1,X2,...,Xm对应的随机输出Aim
本领域的技术人员会理解的是,矩阵(表示为M)的微小变化:
例如:
分散在对角线上的值之中的常数;并且
改变顺序(即,使Xjs和Yis)混合),不会改变在本文中定义的基本方法。通过实例,并且不限制上文的一般性,以下内容可以均为矩阵的示例性的微小变化:
对角线是:X1,X2,...Xm,0,Y1,Y2,...Ym
对角线是:X1,0,X2,0,...Xm,0,Y1,0,Y2,0,...Ym,C。
对角线是:X1,Y1,X2,Y2,...Xm,Ym
此外,在矩阵对角线周围使用0增加行和列,即:
也是微小变化,该变化不会改变在本文中定义的基本方法。
矩阵方法的不太一般性的陈述是:
对于每个输入集合Xi,在CR中选择n-1个随机数Y1,Y2,...,Yn-1,其中,输入元素Xi和随机数Y1,Y2,...,Yn-1按顺序放在n×n对角矩阵的对角线上;
在CR中随机选择秘密n×n矩阵,所述秘密n×n矩阵在下文中表示为S,S用作对称的随机化秘钥,其中,S包括在CR上的可逆矩阵;
确定S-1;并且
通过使用在下文中表示为MRHT的基于矩阵的随机化和同态变换函数方法,为输入元素Xi确定随机输出Ai,其中:
从而产生与输入元素Xi对应的随机输出Ai
本领域的技术人员会理解的是,以上方法可被一般化。代替在CR中为输入元素Xi选择n-1个随机数Y1,Y2,...,Yn-1,对于m(其中,1<m<k并且m<n)个输入元素的集合,选择n-m个随机数Y1,Y2,...,Yn-m
多项式方法
多项式方法的最一般性的陈述是:
在CR中选择n个随机数,所述n个随机数在下文中表示为v1,v2,...,vn
确定公共多项式
对于从INP中选择要共同被随机化的并且在下文中表示为Xi1,Xi2,...,Xin的m个不同的输入元素的每个集合i,其中,0<m<k+1以及m<n,,其中,Xi1,Xi2,...,Xim包括输入元素X1,X2,X3,...,Xi,...,Xk的任何子集。为了方便讨论,在下文中讨论的输入元素表示为X1,X2,...,Xm
选择在下文中表示为PRHT(Xim)的基于多项式的随机化和同态变换函数,包括满足以下方程的形式为的以v为变量的任何函数:
为ai,m,ai,m+1...,ai,n-1在CR中选择n-m(n减去m)个随机值,这为ai,0,ai,1...,ai,m-1的以上方程产生解;然后,执行以下中的一个:
产生与输入元素X1,X2,...,Xm对应的随机输出Aim,其中,Aim包括集合(ai0,ai1,...,ain-1)以及P(v)的公共系数集合(C0,C1,...,Cn-1,Cn),其中,需要系数集合(C0,C1,...,Cn-1,Cn)以用于通过输入元素来进行运算的算术;并且
在CR中为给定的输入元素X1,X2,...,Xm选择n-m(n减去m)个随机值R1,R2,...,Rn-m,这会解出以下关于未知数ai0,ai1,...,ain-1的n个联立方程:
从而为X1,X2,...,Xm产生包括集合(ai0,ai1,...,ain-1)以及P(v)的公共集合(C0,C1,...,Cn-1,Cn)的随机文本。
矩阵方法的不太一般性的陈述是:
在CR中选择n个随机数,所述n个随机数在下文中表示为v1,v2,...,vn
确定公共多项式
选择在下文中表示为PRHT(Xi)的基于多项式的随机化和同态变换函数,包括满足以下方程的形式为的以v为变量的任何函数;
为Xi的ai,m,ai,m+1...,ai,n-1在CR中选择n-1个随机值,从而确定并且
产生与输入元素Xi对应的随机输出Aim,随机输出包括集合(ai0,ai1,...,ain-1)以及P(v)的公共系数集合(C0,C1,...,Cn-1,Cn),其中,需要系数集合(C0,C1,...,Cn-1,Cn)以用于利用输入元素Xi来执行运算的算术;
或者可替换地,
在CR中为给定的输入元素Xi选择n-1个随机值Ri1,...,Rin-1并且求解关于未知数ai0,ai1,...,ain-1的n个联立方程:
从而如上所述,为Xi产生包括集合(ai0,ai1,...,ain-1)以及P(v)的公共集合(C0,C1,...,Cn-1,Cn)的随机文本。
通过举例,输入X如下转换成2×2矩阵M[x](S是随机的可逆矩阵):
其中,元素Y(≠0)可随机选择或者选择为预先定义的值。元素通过矩阵加法相加并且通过矩阵乘法相乘。要注意的是,可在上述变换的元素之上容易地表示和计算普遍的密码原语(例如,AES密码),例如并且不限制上文的一般性地,将CR用作F256,在具有两个元素F2的域之上,具有8度的扩展域,并且在F256之上将AES运算表示为代数运算。然而,要注意的是,必须从变换的元素(即,矩阵)中提取AES密码的实际的最终结果。通过将所产生的矩阵解密(即,使M[x]乘以左边的S-1和右边的S),并且将左上角的值用作实际上产生的AES密码文本来进行。
抵抗DPA:在将随机化变换(即,随机选择Y)用于密码(例如,AES)中时,将随机化应用于输入中,即,密钥元素和文本元素。由于攻击者不知道其变换的数据元素的精确值(根据该方案,这些元素随机化),所以DPA不再起作用。
抵抗故障攻击:该方案具有将关于元素的每个运算转换成在2×2矩阵之上进行的扩展的不可分离的计算的性能。因此,通过插入Y的特定的预先定义的值,人们可验证无故障地正确地执行AES密码等计算。例如,通过使用预设的Y来应用矩阵方法,然后比较处于位置Y中的结果和预期的结果来进行。
要理解的是,输入X的随机化包括连续应用函数PRHT(Xi)和MRHT(Xi)的组合,其中:输入X的随机化包括连续应用函数PRHT(Xi)和MRHT(Xi)的组合,其中:
并且
其中,PRHT(apj)=(ai0,ai1,...,ai n-1)pj,,因此,(记住Xi的并且在ai0,ai1,...,ai n-1中的指数i不应与在aij中的指数i混淆):
将随机化输入去随机化
执行以下中的一个:
矩阵方法
为了使根据上面提供的随机化的最一般的矩阵方法产生的随机化输入去随机化:
在CR上接收包括输入的随机化集合{Xim}=X1,X2,...,Xm的输出,输入是在下文中表示为Aim的n×n对角矩阵,其中:
使用S来确定并且确定Xim
然后,执行以下:
其中,X1,X2,...,Xm在矩阵的左上角元素中。
同样,以下公式可用于更有效的计算,以确定
为了使根据上面提供的矩阵方法的不太一般性的陈述产生的随机化输入去随机化:
输出在ZN上包括随机化Xi,并且输入是在下文中表示为Ai的n×n对角矩阵,其中:
使用S来确定
通过执行以下中的一个来确定Xi:
其中,Xi在矩阵的左上角元素中,从而确定并且
多项式方法
为了使根据上面提供的随机化的最普遍的多项式方法产生的随机化输入去随机化:
接收{Xi}的随机化输出,作为(ai0,ai1,...,ai n-1),并且使用v1,v2,...,vm来确定去随机化的输入
为了使根据上面提供的多项式方法的不太一般性的陈述产生的随机化输入去随机化:
接收Xi的随机化输出,作为(ai0,ai1,...,ai n-1),并且使用v1来确定去随机化的输入
全同态运算的算术性能
由于以上方法为全同态的,所以满足加法和乘法性能。
加法同态:
(1)RHT-1(RHT(x)+RHT(y))=RHT-1(RHT(x+y))=x+y
乘法同态:
(2)RHT-1(RHT(x)·RHT(y))=RHT-1(RHT(x·y))=x·y
此外,以上方法对于除法运算同态:
(3)RHT-1(RHT(x)/RHT(y))=RHT-1(RHT(x/y))=x/y
随机化值的加法和乘法分别由相应矩阵和多项式的加法和乘法限定。
矩阵方法
随机化值的加法和乘法分别由相应A矩阵的加法和乘法限定。
对于Xi,包括MRHT(Xi)=Ai
MRHT(X1)+MRHT(X2)=A1+A2;并且
MRHT(X1)·MRHT(X2)=A1·A2
对于除法,如果X2≠0并且MRHT-1(MRHT(X2)≠C,则由MRHT(X1)·(MRHT(X2))-1=A1·A2 -1计算MRHT(X1/X2)
以及
多项式方法
随机化值的加法和乘法分别由在ZN[v]/P(v)中的相应的线性函数的加法和乘法限定。
如果PRHT(X1)=(m1;d1)、PRHT(X2)=(m2;d2)并且P(v)=v2+bv+c,,则对于:
加法:PRHT(X1)+PRHT(X2)=(m1+m2;d1+d2;以及
乘法:PRHT(X1)·PRHT(X2)=((m1·d2+m2·(d1-b·m1));(d1·d2-c·m1·m2))。
要注意的是,
PRHT(X1)=a10,a11,...,a1n-1并且PRHT(X2)=a20,a21,...,a2n-1并且P(v)的C0,C1,...,Cn-1并且
PRHT(X1)+PRHT(X2)=a10+a20,a11+a21,...,a1n-1+a2n-1
对于除法,假设D=(m2)2·c-d2·(m2·b+d2)
PRHT(X1)/PRHT(X2)=((m1·(d2-m2·b)-m2·(d1-b·m1)/D;(d1·(d2-m2·b)+c·m1·m2)/D)
因此,对于PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn,通过在n个未知的系数u2j,(j=0,...,n-1方面计算可确定1/PRHT(X2)=u20,u21,...,u2n-1,从而确定
其中,g2j()是n个未知的系数u2j的线性组合;并且
求解n个导出方程g20()=1以及g2j()=0的系统,j=1,...,n-1,用于所有的u2jj=0,...,n-1;以及
III、模数N的全同态加密
明文X是k个模数N元素X1,X2,...,Xk的序列。
基于矩阵方法和基于多项式方法的效用相同,但是具有一些实现方式和性能的差异。
仅仅需要一个模乘,用于多项式方法的加密和解密,其中,使用矩阵方法的加密需要更多的乘法。
要理解的是,加密方法是上面描述的任意数据方法的全同态随机化的一个特例。在模数N的加密中,输入包括明文,输出包括密文,并且在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称的加密密钥。加密函数MEnc(矩阵方法加密)和PEnc(多项式方法加密)分别与MRHT和PRHT对应。要理解的是,N不一定是上面讨论的两个质数的乘积,并且可使用任何N。然而,出于安全的原因,N优选地为两个质数(如上所述)的乘积。或者,如果P和Q适当地与N的平方根一样大,则P和Q可以是任意数,因此,满足安全考虑。
矩阵方法
通过举例,考虑以下情况:n×n矩阵是2×2矩阵,其中,一个输入元素Xi是明文,并且选择一个相应的随机值Yi,并且在ZN上的表示为S的秘密的随机选择的2×2矩阵选择为对称的加密密钥。S在ZN上选择为可逆矩阵,即,Det(S)≠0。
然后,确定S-1
如下在其部分Xi上限定加密X:Enc(X)=(Enc(X1),...,Enc(Xk))。
如下限定Xi的加密:其中,所有运算是模数N。
加密函数产生Ai,输入元素Xi的密文;Ai是在ZN之上的2×2矩阵。
多项式方法
通过举例,考虑以下情况:多项式是二次方程式。选择两个模数N秘密随机数v1和v2。计算公共多项式P(v)=(v-v1)·(v-v2)mod N=v2+b·v+c。Xi的加密Enc(Xi)是在满足mi·vi+di=Xi的形式为mi·v+di的变量为V的任何线性函数。
选择mi值的模数N随机数。求解线性方程mi·vi+di=Xi for di=Xi-mi·v1。要理解的是,所有计算是模数N。密文包括该对(mi,di)以及P(v)的系数b和c。
可替代地,对于给定的Xi,选择随机数Yi。对于未知数mi和di,求解以下联立方程:
mi·v1+di=Xi;以及
mi·v2+di=Yi
结果:mi=(Xi-Yi)/(v1-v2)并且di=Xi-mi·v1=(Yi·v1-Xi·v2)/(v1-v2)是明文。
要理解的是,替换方案在计算上比第一替换方案的实施方式更重要,并且在需要Yi时有用,独立于并且正好在Xi之前。
要理解的是,用于使矩阵和多项式随机化方法相结合的上述方法适用于在本文中的加密方法,如上所述,加密方法是任意数据方法的全同态随机化的一个特例。
解密
执行上面详细说明的去随机化方法,然而,所接收的输出包括表示为C的密文,根据上面的加密方法产生密文C,去随机化输入包括明文,并且在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称的加密密钥。仅需要一个模乘。
矩阵方法
为了使用以上示例性2×2矩阵将加密进行解密,其中,密文A是在ZN上的2×2对角矩阵,假设向量(1,e)是矩阵的特征向量:
满足:(1,e)A=(X,e·X)。
将A如下解密:
X=A1,1+e·A2,1(Mod N),其中,e=(-S12/S22)mod N,,并且Aij和Sij分别是矩阵S和A的ij元素。
多项式方法
Xi的密文是该对(mi,di)(表示线性函数miv+di)。密文如下解密:mi-vi+di=Xi
要理解的是,由于以上加密方法全同态,所以满足上面描述的加法、乘法以及除法性能。
在公开的不受信任的平台中的安全性
为了在不受信任的平台中进行远程计算,考虑在输入和函数(算法)的模型中限定秘密的三种情况:
a、仅输入是私有的(而非算法)。该算法的特征在于公共多项式,其输入是同态加密的数据,与在仅密钥是秘密的密钥散列中一样。通常,计算的多项式可具有多变量输入。
b、仅仅算法是私有的(而非输入)。该算法的特征在于多项式,一些多项式的系数是模数N秘密,并且输入是公共的。上述一个实例可以是PFKG(私有函数密钥生成),其输入是用于广播CA系统中的公共ECM。又一个相似的实例是在图2中描述的私有HMAC(基于散列的信息认证码),图2为图1的系统的一个实施方式的描述,其中,使用私有算法和公共输入,多项式具有模数N同态加密的系数。HMAC在敞开式机器上安全地运行;将在该过程中的最后一个步骤传递给安全客户,用于进行验证。
c、算法和输入是私有的。处理实体并不了解算法及其输入。(要注意的是,必须使用授权了解输入和算法的实体了解的相同同态加密密钥,将算法及其输入加密。)
这种不受信任的平台可以是公共(开放)云服务器、机顶盒主机、移动电话ACPU(应用程序中央处理单元)等;由低性能装置的安全客户进行结果的解密,例如,智能卡、SIM、RFID或者具有安全OTP(一次性可编程存储器)的安全执行环境。
用于某些算法的增强保护-保护OSS签名免于Pollard攻击
原始的OSS(Ong、Schnorr、Shamir)方案是基于具有两个变量的模块方程的签署方案。
给出以下两个变量模数方程:X2-μY2=M(mod N),其中,公共密钥包括(μ,N)。
私有密钥ε是平方根μ模Nε2=μ(mod N)。
消息的签名是满足以上方程的一对(X,Y),其中,M是消息的散列。
知道ε的人可找出该方程的解。
选择随机值r模数N,其如下限定X和Y:
OSS方案被视为对于签署人和检验者非常有效。
OSS签名需要3个模乘以及一个模除,并且验证需要3个模乘。
然而,Pollard打破了OSS签名,Pollard提出了一种算法,用于找出方程的解,无需了解因子分解N和ε的值。
在本文中描述根据以上模N同态加密方案的原始OSS方案的变形。
考虑两个模方程:
X1 21Y1 2=M1(mod N)and X2 22Y2 2=M2(mod N)。
值μ1,μ2是秘密。随机可逆2×2矩阵S限定并且选择为公共密钥。
私有密钥分别是矩阵S和μ1,μ2的平方根的值。
为了签署消息,计算该消息的散列,并且选择与U交换的在矩阵的二维子空间中的矩阵M。M具有形式计算M1和M2(计算M1和M2需要2个模乘),并且选择两个随机模数N r1、r2。找出使用M1和M2求解这两个模数方程的值X1,X2,Y1,Y2,并且与在原始的OSS中一样。
限定矩阵A和B:
签名是矩阵对(A,B)。矩阵A和B与U交换。与U交换的所有矩阵的子空间具有二维,签名仅仅需要A的两个参数和B的两个参数(总共4个模数N)。
检验者发现A和B的缺失元素(每个缺失参数是在签名中的两个参数的已知的线性组合)。检验者计算消息的散列,限定M,并且验证A2-U·B2=M。
在M1=M2时,具有简化版本的方案。在这种情况下,不需要计算矩阵M,模数N数量M限定为消息的散列,与以前一样限定矩阵A和B,并且通过检查等式A2-U·B2=M·I来验证签名。
在不能发动对矩阵的攻击时,修改的OSS方案保护抵抗Pollard攻击。
要注意的是,虽然在矩阵方法中提出了以上内容,但是可以使用多项式方法提出抵抗Pollard攻击的等效保护。
低成本(协同)安全平台
在图1中描述了低成本协同安全平台(LH)2的逻辑元件,这些元件包括低性能高安全性部件和低安全性高性能主机或服务器。其构思是,在低(或者不安全)环境(例如,公共云服务器)中,在同态加密下可以执行给定的安全函数或数据,然而,在低性能安全(低成本)元素中,执行同态秘密及其相关的光操作(light operation)。
一个实例是用于(内容)密钥生成的PFKG私有函数。在其同态加密的形式中的PFKG在主机中运行-低安全性STB(机顶盒)(在SC(智能卡)中没有清晰的形式,从而使SC更简洁),广播ECM作为其输入。运算输出是期望的同态加密的预先散列内容密钥。SC接收同态加密的预先散列内容密钥并且将其解密,以便获得预先散列内容密钥。然后,使密钥散列,并且将其作为在内容解密中使用的内容密钥送回主机。
因此,保护用于生成广播的内容密钥的机构远离对主机STB的任何攻击。
计算完整性的验证
通常需要验证代表安全客户执行同态计算的一方实际上正确地执行这项工作,即,返回结果有效。
对于使用在下文中表示为M的MRHT或MEnc函数返回的结果,所接收的结果验证为并且对于使用在下文中表示为P的PRHT或PEnc函数返回的结果,所接收的结果表示为然后,该结果包括对A1A2,...,Ak执行的表示为f的同态计算的结果,其中,Ai等于M(Xi)和P(Xi)中的一个;f(A1,A2,...,Ak)等于以下中的一个:M(f(X1,X2,...,Xk))=f(M(X1),、M(X2),...,M(Xk))以及P(f(X1,X2,...,Xk))=f(P(X1),P(X2),...,P(Xk))。f(A1,A2,...,Ak)的结果为以下两中形式的其中一种:
或者:
形式的f(A1,A2,...,Ak)。
在所述结果具有形式的情况下:
为某个值m,m=1,2,...,n-1计算f(Ym1,Ym2,...,Ymk)(在下文中表示为Q),其中,Ymj是在随机化和加密Xj中的一个中使用的第m个随机值。
然后,R*M是使用上面解释的解密和去随机化技术进行解密和去随机化中的一个,从而从所产生的矩阵的m+1行的矩阵对角线中确定f(Ym1,Ym2,...,Ymk)(在下文中表示为E)。然后,比较E和Q。如果发生匹配,则将f(Xi)的计算结果视为有效。
可替代地,在所述结果具有形式的情况下:
为某个值m,m=1,2,...,n-1计算f(Ym1,Ym2,...,Ymk)(在下文中表示为Q),其中,Ymj包括在随机化和加密Xj中的一个中使用的第m个随机值。
R*P是解密和去随机化中的一个,从而确定:
(表示为E)。
然后,比较E和Q。如果发生匹配,则将f(Xi)的计算结果视为有效。
矩阵模式实例
虽然如上所述,矩阵方法和多项式方法是等效的,但是了说明起见,将矩阵视为X的密文(要理解的是,密文可一般化为N×N矩阵);A用于同态计算函数f(A)=Enc(f(X))=R*。将结果R*返回到给安全客户,用于将形式解密。
安全客户具有预先计算的f(Y),并且比较该f(Y)和在R中的f(Y)。正向匹配向客户保证f(X)是有效结果。
本领域的技术人员会理解的是,还可为多项式方法显示计算完整性的以上验证。
近年来,Xiao发布了在www.utdallas.edu/~ilyen/techrep/HPbound.pdf可获得的题为An Efficient Homomorphic Encryption Protocol for Multi-User Systems的文章,提出了同态加密问题的解决方案。本发明的发明人具有上述文章提出了一种基于4×4对角矩阵的方法的观点,其中,任意的明文数据和随机数举例说明了该对角线;并且通过将秘密4×4矩阵应用于对角矩阵中,表示密文。
在本文中描述的基于矩阵的方法(在附件A中称为“MORE”)要求(见在附件A中题为“安全”的部分中的证明),对于限制的(即,在ZN之上均匀地并且单独地选择的)明文输入(x1,x2,...,xn)的同态加密,在ZN上的对角交换矩阵的使用有效,即,安全;即,在ZN中随机选择xi’。
另一方面,上述引用文献(“An Efficient Homomorphic Encryption Protocolfor Multi-User Systems”)提出了用于任何(任意)明文输入的同态加密方案,即,不限制(x1,x2,...,xn)的尺寸和统计性能。参考文献对在本文中提出的方案的安全性的要求不正确。
可以表明:
对于小值明文输入,(例如,xi<80字节);或者
对于在统计上不独立的明文值(例如,x1=3x2-4(x3)2),
在“An Efficient...”参考文献中提出的方案不安全,并且即使该参考文献要求因子分解的安全强度,也可被中断。同样,在“An Efficient...”参考文献中提出的方案不能被视为所提出的有效加密方案。要注意的是,甚至在不能使用任何已知的明文时,下面描述的攻击有用,并且更重要的是,在已知的明文模型中要求安全的4×4方案(“E4”)中,攻击将还起作用。
对于小值明文输入,(例如,xi<80字节)的情况:加密方案不安全,并且实际上可被中断,即,一旦使用所提出的方案,将n个小值明文值的序列加密,就能够恢复秘密的明文值。
假设具有带明文的n个密文消息的序列:x1,...xn中的每个满足xi<280-8(即,xi<80字节)。采用具有常用大小的N,例如,N是具有1024位长的以基数2表示的整数。
使用“An Efficient...”参考文献的表示,密文采用形式
所有矩阵E(xi)存在于二维的子空间内,因此,具有两个模数N(a和b),从而对于所有1≤i≤n,具有:xi=aE(xi)1,1+bE(xi)1,2mod N。
考虑由向量跨过的n+2维的以下晶格L:
w1=(a,0,E(x1)1,1,...,E(xn)1,1)
w2=(0,a,E(x1)1,2,...,E(xn)1,2)
w3=(0,0,N,,0,...0,,0)
w4=(0,0,0,,N,...,0,,0)
wn+2=(0,0,0 0...0 N)
对于足够大的n(例如,n>4)以及正确选择α~28-80/N,由于xi足够小,所以向量(aα,bα,x1...xn)是在具有最小范数(长度)的L中的非零向量,并且在晶格中的任何其他非零向量具有大得多的范数。这些足以确保LLL算法造成在晶格中找出最小的非零元素。
向量wmin作为晶格基础元素w1...,wi,...,wn+2的整数组合的表示是唯一的,并且具有以下形式:
一旦恢复wmin,使用标志的线性代数,就容易发现系数a、b,并且找出所需要的参数。
如上所述,已知在密文与明文之间的关系xi=aE(xi)1,1+bE(xi)1,2mod N,并且这能够允许攻击者恢复给出密文的明文。
结果,本发明的发明人得出如下结论,所提出的算法并非是针对将小明文值加密的安全的加密方案。
对于在统计上并非独立的明文值的情况(例如,x1=3x2-4(x3)1):
可以显示出,对于在统计上并非独立的明文值(例如,x1=3x2-4(x3)2),即使作者要求因子分解的安全强度,该方案也不安全,并且可被中断。
表示E(x1),E(x2),E(x3)用于明文x1,x2,x3 的加密值,1≤i≤3。假设x1,x2,x3满足代数关系:x1=3x2-4(x3)2或x1+4(x3)2-3x2=0,然后,可显示可恢复明文的方式。
由于该方案是同态,所以具有以下矩阵关系:
E(x1)-3E(x2)+2(E(x3))2=E(0)或
随机选择值R1,R2,R3,并且因此,值R不等于0的概率非常高。假定使用标志的线性代数计算,容易找出由矩阵映射到(0,0)中的所有向量的子空间,则在这个一维子空间v1内的任何非零向量良好E(x1)v1=x1·v1;E(x2)v1=x2·v1;E(x3)v1=x3·v1
在本文中描述的可替换的基于多项式的加密方法提供了超过在本文中的矩阵方法的极好性能增强(来自于仅仅1的四个大数量乘法)。与矩阵方法不同(其中,加法和乘法的代数运算是标准的矩阵运算),多项式在以2或更高度数的某个特别的多项式为模的多项式的环上执行加法和乘法的代数运算。
而且:
a、通过计算以2或更高度数的某个特别的多项式为模的中间结果,保存(覆盖)密文(具有加法和乘法)的任意函数的计算效率;并且
b、通过矩阵方法,提高了密文的乘法效率。
现在,参照图3A-图3E,其为描述图1的系统的各种实施方式的方法的流程图。鉴于以上讨论,认为图3A-图3E是不言自明的。
要理解的是,必要时,本发明的软件部分可以ROM(只读存储器)形式实现。如果期望的话,软件部分通常可使用传统技术在硬件中实施。进一步理解的是,例如,软件部分可被实例化:作为计算机程序产品;在有形介质上;或者作为合适的计算机可解释的信号。
要理解的是,为了清晰起见,在单独实施方式的背景下描述的本发明的各种特征还可在单个实施方式中相结合。相反,为了简单起见,在单个实施方式的背景下描述的本发明的各种特征还可单独地或者在任何合适的子组合中提供。
本领域的技术人员将理解的是,本发明不受到在上文中特别示出和描述的内容的限制。确切地说,本发明的范围由所附权利要求及其等同物限定:
附件A
用于实际的全同态对称密钥加密、随机化以及验证的有效方法
Aviad Kipnis;
Eli Hibshoosh
摘要
我们提出了高性能的非确定性全同态方法,用于数据的实际随机化(通过交换环)以及通过非常适合于加密应用的在环ZN上的随机N数据的对称密钥加密。例如,这些方法确保多项式函数的多变量输入或系数在公开的不受信任的环境中运行。我们显示了随机明文是同态加密的安全性的证明的充分条件。这些方法的有效性质(每个加密具有一个大数目乘法,并且两个加密值的乘积具有六个)激励并且能够使用低成本协同安全平台,用于密钥散列或私有密钥推导算法等加密应用。这种平台包括由运行同态算法的不受信任的高性能服务器支持的低成本和低性能安全元件。所使用的方法还可为一些现有的加密算法提供增强保护,抵抗某些攻击。具体而言,示出了保护OSS公共密钥签名抵抗Pollard攻击的方式。而且,我们证明数据的同态随机化可提供AES密钥的保护以抵抗侧信道攻击。最后,这些方法提供了故障检测和计算数据完整性的验证。
1、引言
我们提出了非确定性的高效率方法,这些方法提供了全同态的对称密钥加密和随机化函数(FSERF)。在加密或随机化之下,这些方法不变。对于这两种(同构)方法中的每个,我们限定两个域:一个域用于安全加密,另一个域用于随机化。对于对称密钥加密,明文是ZN的元素,并且为模数N进行所有计算;N是两个(大)质数的乘积。出于安全的原因,在(非确定性)加密运算中使用的明文和随机值是大随机数(例如,1k比特或更大)。对于没有安全约束的随机化,所使用的输入数据和随机值在某个交换环(CR)中。在整个文章中,我们集中讨论这些方法的内部运算,深入理解使用不同的域CR或ZN分别使输入数据随机化或加密。这些方法的另一个有用的内在性能是耦合计算,其中,一个计算可以证明另一个计算的有效性,从而通过加密输入验证所计算的函数的完整性。故障检测是以上内容的又一个用途。
我们呈现了几个应用,其中,FSERF的效用显而易见。尤其地,FSERF降低低成本协同安全(LOCOS)系统的成本。在各种现实应用程序中,我们面临以下问题:具有处理数据的牢固机器,但是该机器通常不安全,另一方面,在该系统中的安全模块在计算上微弱,并且不能足够快速地处理大量数据。下面描述这种平台。
为了提供快速和直观的理解,我们提出了这些方法及其性能的最简单的表现形式-每个方法应用的简单的明文元素以及单个随机数;(在附件A中提供这些方法更一般化的描述。)在后续部分中,我们还解决了相关工作、样品应用以及性能。
2、相关工作
Rivest等人介绍了同态加密(隐私)的问题[5]。通过无限数量的运算支持加法和乘法的全同态加密(FHE)的问题基本上保持公开(仅仅了解部分解决方案),直到Gentry在2009年的工作。Gentry在2009年[3]显示了根据理想晶格的第一全同态加密方案。Gentry开发了两阶段方法。在第一步骤中,Gentry提出了“略微同态的加密方案”-满足同态要求的加密方案。然而,在加密数据上的代数运算累积错误;因此,只要在加密数据上执行有限数量的代数运算,加密数据的解密就保持有效。在第二步骤中,Gentry开发了一种通用的“引导程序”方法,该方法清理了累积的错误。这两个步骤的组合能够构成全同态加密方案(FHE)。在Gentry的成功之后,提出了一些其他同态加密方案,在2011年,Brakersky和Vikuntanathan发布了基于差错学习(LWE)问题的FHE方案[2]。以上方案的计算复杂性激励以提高其效率为目标的研究,例如,[4]。在[1]中描述了通过现实问题的实际应用证明有效同态加密的方法。该方法基于支持有限数量的同态运算的‘略微’同态加密。在[1]中的实际结果基于使用在[2]中提出的略微同态方案。该方法首先开始满足效率(实际性)的要求,然后,在‘略微’同态中找出解决方案。
在该文章中,我们提出了全同态加密(FHE)方法,虽然主要适用于密码和安全算法,但是这些方法是实际方法。这些方案基于非确定性线性变换。通常,线性方案固有地不适合于加密。然而,在该文章中提出的线性变换能够进行有效的同态计算。为了提供必要的安全性,足以限制明文,以便在ZN中仅仅包含随机大数目。这使该方案适合于一些安全应用的领域。
3、方法:简化的实际FSERF(单个输入)
所提出的每个同构方法是一种有效的非确定性全同态对称加密和随机化函数(FSERF)。输入或消息IN在交换环(CR)中或者在环ZN中包括k个元素。在通用的交换环(CR)(例如,F256,R(实数))或者交换矩阵的子环之上限定随机化。在环ZN之上限定加密(所有运算是模数N,其中,N是两个(大秘密)质数的乘积)。非确定性方法在输入和随机参数上(在ZN或CR中)进行运算;每次执行该方法,随机参数改变。为了进行加密,与其相关的明文输入和随机参数在ZN中是随机大数目。
下面限定两个基本同构方法;每个方法随机化或加密单个输入元素Xi。基本(同构)方法是基于矩阵的方法MORE(用于随机化或加密的矩阵运算)以及基于多项式的方法PORE(用于随机化或加密的多项式运算)。此外,通过连续地应用基本方法,可以构成‘合成’方法(见附件)。
为了在该部分中简化描述,我们假设使输入被加密。
3.1、矩阵方法MORE
对称密钥生成
Alice随机在ZN中选择了秘密2×2可逆矩阵S,作为用于加密的对称密钥。
加密
对于每个明文输入元素Xi,Alice在ZN中选择随机大数目Yi
Xi和Yi按顺序放在2×2对角矩阵的对角线上。我们将MORE的输出矩阵表示为Ai,并且将Xi的加密限定为:
Xi的密文可以被视为在矩阵Ai中提供的四个值。然而,可以具有一个可替换的经济表示。对于规定的S,MORE的矩阵空间由两个大数目限定,并且Xi的密文由在Ai中的任何一对大数目限定,除了a12,a21以外。
解密
了解S的人可将密文矩阵A解密并且恢复明文X,通过简单的矩阵乘法X-(S-1AS)11消除了S和S-1
或者,假设向量(1,e)是矩阵的特征向量,满足(1,e)A=(X,e·X)。
如下限定A的解密:
X=a11+e·a21(Mod N),其中,e=(-S12/S22)mod N,并且Sij、aij分别是矩阵S和A的jj元素。
加密值的多变量函数的计算
下面我们限定加密值的加法、乘法以及除法的运算。
假设A1和A2分别是X1和X2的加密值。
Ai包括函数的输入,其中,Ai相加、相乘或者相除。因此,具有:
加法
MORE(X1)+MORE(X2)=A1+A2;以及
乘法
MORE(X1)·MORE(X2)=A1·A2;以及
除法
并且
可以容易地显示,在以上定义下,MORE是全同态的。
3.2、多项式方法PORE
而且,要考虑的最简单的却最有用的情况是单个变量加密,具有最小程度的公共多项式。
对称密钥生成
Alice为对称密钥选择两个(模数N)秘密随机大数目v1和v2。Alice计算公共多项式PP(v)=(v-v1)·(v-v2)mod N=v2+b·v+c。
加密
Xi明文的加密Enc(Xi)是形式为ai·v+di的变量为v的任何线性函数,满足ai·v1+di=X。
假设这对(ai,di)限定Enc(Xi)。
Alice选择用于ai的大数目模数N随机数Ri,并且为di解决线性方程Ri·v1+di=Xi;因此,di=Xi-Ri-v1
明文Xi包括这对(a1,di)。
可替代地,Alice可为规定的Xi挑选随机大数目模数N、Ri,并且下面为未知数ai和di解决联立方程:
a.ai-v1+d1=X1并且
b.ai-v2+di=Ri
导致:ai=(Xi-Ri)/(v1-v2)并且di=Xi-ai·v1=Ri·v1-Xi·v2)/(v1-v2)。
这个替换方案(在计算上更重要)可用于验证的某些应用中。
解密
如果加密变量(或者加密变量的计算函数)由对(a,d)表示,那么通过仅仅计算a·v1+d,了解秘密根的任何人可以解密。
多变量函数的计算
对于使用加密的Xi计算函数的Bob,需要公共系数b和c(上面在密钥生成之下限定);要注意的是,为了将不同的变量加密,b和c不改变;Alice仅仅将b和c提供给Bob一次(每个预先定义的阶段)。我们还注意到,为了进行加密,仅仅需要一个大数目乘法。
在使用加密变量计算多变量函数时,我们需要考虑两个变量的加法、乘法以及除法。加密值的加法和乘法在ZN[v]/PP(v)中分别由相应线性函数的加法和乘法限定。
如果PORE(X1)=(a1,d1)、PORE(X2)=(a2,d2)并且PP(v)=v2+bv+c,那么如下执行加法、乘法以及除法。
加法
PORE(X1)+PORE(X2)=(a1+a2,d1+d2
乘法
PORE(X1)·PORE(X2)=((a1+d1)·(a2+d2)-a1·a2·(1+b)-d1·d2,(d1·d2-a1·a2·c))
这个特定的形式的目标在于,尽可能减小大数目的乘法的数量,即,5。
要注意的是,为了求变量的平方值,
除法
假设D=d2·(a2·b-d2)-(c·a2)·a2
PORE(X1)/PORE(X2)=((a2·d1-a1·d2)/D,(d1·(a2·b-d2)-(c·a2)·a1)/D)
可以容易地显示,在以上定义下,PORE方案是全同态的。
3.3、MORE和PORE同构
给定MORE和PORE的以上定义,其中,在MORE之下的运算在交换环C1={SMS-1|M包括X和Y的对角矩阵}之上进行,并且在PORE之下的运算在交换环C2=ZN[v]mod PP(v)内进行,可以表明:
1、由T(SMS-1)=av+d限定的映射T:C1→C2(其中,av1+d=X并且av2+d=Y)是同构,并且
2、对于在C1中规定的元素,了解PP(v)的人找出其同构图像与因子分解N一样困难。
3.4、验证
这些方法提供了一种机制,用于验证由第三方在加密的多变量输入上执行的计算的返回结果有效。我们将使用MORE的返回结果表示为该结果是在A1,A2,...,A,上执行的表示为f的同态计算,其中,A1等于一个MORE(Xi);f(A1,A2,...,Ak)等于MORE(f(X1,X2,...,Xk))=f(MORE(X1),MORE(X2),...,MORE(Xk)。
检验者接收具有以下形式的结果f(A1,A2,...,Ak):
将该结果解密,以产生f(X1,X2,....,XK)和f(Y1,Y2,....,YK)。
检验者预先计算f(Y1,Y2,....,YK)。在计算加密的输入之前,可以适当地这样做。检验者比较解密值f(Y1,Y2,....,YK)和预先计算的值,并且如果发生匹配,那么将f(X1,X2,...,Xk)的计算结果视为已验证。
4、应用
在该部分中,提出了利用这些方法的固有性能的应用。
4.1、确保LOCOS和不受信任的开放云
为了在不受信任的平台中进行远程计算,考虑在输入和函数(算法)的模型中限定秘密的三种情况:
a)仅输入是私有输入(而非算法)。
该算法的特征在于公共多项式,其输入是同态加密的数据,与在仅仅密钥是秘密的密钥散列中一样。通常,计算的多项式可以具有多变量输入。
b)仅算法是私有算法(而非输入)。
该算法的特征在于多项式,一些多项式的系数是秘密的大数目(模N),并且输入是公共输入。一个实例是秘密函数密钥生成(SFKG),其输入是公共ECM(用于广播CA系统中)。又一个相似的实例下面描述的秘密HMAC函数。HMAC在敞开式机器上安全地运行;将在该工序中的最后一个步骤传递给安全客户端,用于进行验证。
c)算法和输入是秘密的。
处理实体并不了解算法及其输入是秘密的。(要注意的是,必须使用授权相同同态加密密钥,将算法及其输入加密。)
这种不受信任的平台可以是公共(开放)云服务器、STB主机、移动电话ACPU等;由具有低性能装置的安全客户进行结果的解密,例如,智能卡、SIM、RFID或者具有安全OTP的安全执行环境。
4.2、确保OSS公共签名抵抗Pollard攻击、HoMOSS(同态OSS)
在[6]中描述的OSS公共签署方案对于签名和验证非常有效;签名和验证需要几个模乘。
下面,我们总结其亮点。
消息的签名是对(X,Y),其满足二次二变量模块(QBM)方程X2+μY2=M(mod N),其中,M是消息的散列。
公共密钥是对(μ,N),并且私有密钥是ε,其中,ε2=-μ(mod N)。
签署人如下计算M并且使用私有密钥ε来找出解决方案(X,Y),用于以上QBM方程:签署人选择随机值r模数N并且计算X和Y容易看出,X和Y解决了以上QBM方程。
为QBM方程找出解决方案的问题被视为难题,因此,假设不了解ε的攻击者难以伪造签名。
OSS签署方案由Pollard和Schnor中断r[9]。他们提出了一种算法,用于找出形式X2+μY2=M mod N的二变量二次方程的解决方案,其中,不了解N的因子分解或者μ mod N的平方根。
我们提出了原始OSS方案的修改,以便保护抵抗Pollard Schnorr攻击。
HoMOSS-同态修改的OSS
对于U,在ZN上的2×2矩阵,在ZN上限定2×2矩阵的交换环,CU={B|BU=UB|B∈M2×2(ZN)},与U交换的在ZN之上的2×2矩阵的子环。
可以验证CU是在ZN之上的二维模块,并且可以由两个参数t1,t2表示:CU={t1U+t2/[t1,t2∈ZN}。
由单向映射引起同态非确定性加密:
在该部分中提出的HoMOSS方案基于通过考虑两个耦合的OSS(QBM)方程的私有密钥所获得的交换矩阵的方程。
选择通过使用MORE方法来说明HoMOSS。
公共密钥是在ZN上的2×2矩阵。U的特征多项式不应是线性多项式的平方,并且其根存在于ZN内。
私有密钥是矩阵S,并且值ε1,ε2(分别是μ1,μ2的平方根)满足
签署消息:
1、该消息被散列,以产生两个ZN参数:t1、t2
2、计算在CU中的矩阵M:M=t1U+t2l。
3、矩阵M具有表示签署人从M中计算M1M2
4、签署人知道ε1,ε2分别是μ1,μ2的平方根。与在原始OSS方案中一样,签署人计算方程X1 21Y1 2=M1(mod N)的解决方案X1,Y1和方程X2 22Y2 2=M2(mod N的解决方案X2,Y2
5、签署人计算在CU中的以下两个矩阵:
6、在CU中的每个矩阵A和B可由两个模N参数表示。
因此,签名包括四个模数N(a11,a12,b11,a12;分别来自第一行的A和B)。
验证签名:
检验者接收消息和签名-4个模数N(a11,a12,b11,b12)。
1、检验者恢复A和B的缺失元素(每个都是签名的两个元素的已知线性组合)。
2、检验者计算消息的散列并且产生ZN元素t1,t2
3、检验者计算在CU中的矩阵M:M=t1U+t2j。并且,
4、验证矩阵方程A2+U·B2=M成立,接受签名有效。
同态修改的OSS-简化版本
提出了该方案的简化版本。
签署消息:
1、该消息被散列,以在ZN中产生数m。
2、签署人知道ε1,ε2分别是μ1,μ2的平方根,与在原始OSS方案中一样,签署人计算方程X1 21Y1 2=M1(mod N)的解X1,Y1以及方程X2 22Y2 2=M2(mod N)的解X2,Y2
3、签署人计算在CU中的以下两个矩阵:
4、可以使用两个模N参数表示在CU中的每个矩阵A和B。
因此,签名包括四个模数N(a11,a12,b11,b12;分别来自第一行的A和B)。
验证签名:
检验者接收消息和签名(4个模数N)。
1、检验者恢复A和B的缺失元素(每个都是签名的两个元素的已知线性组合)。
2、检验者计算消息的散列并且产生数m。并且
3、验证矩阵方程A2+U-B2=m-1成立,接受签名。
可以容易地表明,有效签名满足以上矩阵方程。
HoMOSS抵抗Pollard和Schnorr攻击
根据在ZN上的OSS QBM方程可以在ZN、ZL或Z(L是质数)中被视为特定的乘法准则这一事实,预测Pollard和Schnorr攻击[9]。特定的乘法准则能够允许Pollard开始找出在ZL上的解,然后,限定递归过程,以在可以变换成ZN的Z之上产生OSS QBM的解。
OSS方案的所提出的保护起源于在交换环CU中(而非在ZN中的元素)使用矩阵。假设难以找出可以用于Pollard攻击中的在矩阵上的准则。
4.3、任意数据的实际的全同态随机化
假设在安全环境中发生任意数据的随机化;另外,人们可以从规定的随机化任意数据中推断出随机化秘钥。潜在的应用在于,保护抵抗对算法执行的侧信道攻击,其目的在于,获得算法的敏感数据。侧信道攻击安装在安全的执行环境(例如,安全的智能卡)上,其中,聚集泄露信息(例如,定时或功耗),以收集秘密信息。例如,在AES密钥攻击中,攻击者通过不同的明文但是通过相同的AES密钥反复运行算法,同时聚集旁路信息,以便显示AES密钥。然而,在这个非确定性方法中,对于每个运行的密码,随机密钥和明文改变,从而阻止这种攻击(见下面的图XX)。要注意的是,AES固有地帮助有效表示作为可以有效地运行的在F256之上的一系列代数运算。
随机化可以提供保护,抵抗故障攻击。由于可以验证计算的有效性,所以可以检测导出故障;见用于讨论验证的附件。
5、性能和吞吐量
参照部分3.2(PORE),可以看出,单输入加密/解密(或随机化)的成本是大数目的一个乘法。吞吐量是处于稳态中的两个大数目(由于PPV每次加密都不改变,所以仅仅传输两个额外的PPV系数)。对于单个同态计算的结果,返回仅仅两个大数目。
计算两个不同的变量的乘积的成本是大数目的5个乘法。求变量的平方值的成本是4个乘法,并且计算x2n产生4n个乘法。
可以在10个乘法加上1个除法中,进行除法。
6、安全性
在该文章中提出的全同态(对称)加密方案是基本上秘密的线性变换,这些变换用于构成非确定性加密方案。通常,由于一旦了解充足数量的明文和密文对,就使用线性代数计算,容易恢复秘密变换,所以秘密的线性方案固有地不适合于密码应用。因此,这种变换不用于传统的数据加密,其中,通常假设对手了解明文。然而,在该文章中提出的特定线性变换在特定的条件下被视为安全,并且具有实际(有效)同态计算的优点。所提出的线性变换在两个条件下在各种应用中提供完善的安全性:1、不了解明文,以及2、明文可以被视为“随机数据”。
在这个部分中,要求在明文在ZN中包括未知的随机大数目的假设下,在部分3.1中提出的同态加密方案MORE确保具有高度安全性。
定理:了解在ZN中的随机明文值X1...Xk的加密值并且能够计算任一个明文值(输入)的人可以分解因子N。
证明:不失一般性地,表明了如果对手可以计算第一输入X1,那么就可以分解因子N。首先证明k=1的定理,由A1表示X1的加密值:A1=Enc(X1)。
引理1:与仅仅了解A1的特征多项式的对手相比,获得A1的对手没有获得关于X1的更多信息。
证明:加密X1的工序需要在ZN中单独选择随机秘密值Y1并且在ZN之上选择秘密随机可逆矩阵S。表明了下面的(a),加密矩阵A1的分布与由f(x)=(x·X1)(x-Y1)提供特征多项式的所有矩阵之上的均匀分布不能区分。然后,表明了(b),了解f(x)的人能够在所有矩阵之中均匀地选择一个矩阵,特征多项式等于f(x)。结果,可以断定,在为一个人提供A1时,这个人获得的关于X1的信息是由A1的特征多项式的知识提供的相同信息。
a、A1的分布与特征多项式是f(x)的所有矩阵f(x)=(x-X1)(x-Y1)之上的均匀分布不能区分。对于某个规则矩阵T∈GL2×2(ZN),具有作为特征多项式的f(x)的矩阵B具有以下表示由Sf(x)表示具有作为特征多项式的f(x)的在ZN之上的所有2×2矩阵的集合。人们可以限定在ZN之上的规则2×2矩阵的分割(GL2×2(ZN))。对于任何B∈Sf(x),将规则矩阵SB的集合限定为SB={S|S∈GL2×2(ZN);表明了只要满足不等式X1≠Y1,X1≠0,Y1≠0模数P和Q,SB的尺寸就独立于B,X1,Y1。如果
即,交换,那么就假设T1,T2是在SB中的矩阵。可以断定,在SB中的任何矩阵T2可以表示为T2=T1·E,用于某个可逆矩阵E,该矩阵与交换。如果b·X1=b·Y1mod N和c·X1=c·Y1mod N,那么矩阵交换;由于X1≠Y1模式P和模数Q,所以获得c=0mod N和d=0mod N,并且E具有形式E是可逆矩阵,即,(a,N)=1并且(d,N)=1。具有这种矩阵QED。
*注意,事件(X1,N)≠1、(X1-Y1,N)≠1或(Y1,N)≠1具有可忽略的概率。
b、了解A1的特征多项式f(x)的人能够在具有特征多项式f(x)的所有矩阵之中选择均匀分布的矩阵。假设f(x)=x2+d·x+l,使用特征多项式f(x)限定矩阵对于X1≠Y1模P和模Q,在ZN之上具有可逆的2×2矩阵U,以便选择在ZN之上的随机可逆的2×2矩阵R,并且限定D=RBR-1;D∈Sf(x)。要求D在具有特征多项式f(x)的所有矩阵之中均匀分布。上面显示了,对于X1≠Y1,X1≠0,Y1≠0模P和Q,生成相同矩阵的矩阵T的数量恒定。由于并且RU是均匀分布的规则随机矩阵,所以可以推断出,矩阵D在Sf(x)·QED中在矩阵之间均匀地分布。
通过观察,如果一个人能够从其加密值A1中找出明文X1,那么他就能够找出随机二次多项式模数N的方根f(x),我们推断出k=1的定理的证明;人们认为这个问题与因子分解N一样困难。
一般情况:在ZN中获得随机明文值X1...X的加密值并且能够计算明文值X1的人可以因子分解N。
引理2:由加密值提供的关于X1的信息A1=Enc(X1),A2=Enc(X2),...,Ak=Enc(Xk)与A1提供的关于X1的信息相同。
证明:引理的证明具有两个步骤。在步骤a中,显示了矩阵A2,A3,...Ak是从与A1交换的所有矩阵的集合中随机选择的矩阵,表示为CA1。在步骤b中,显示了获得A1的人可以随机选择CA1的k-1个矩阵。
由于这些步骤,所以我们推断出,与仅仅看见A1的人相比,了解这系列矩阵A1,A2,...Ak的人没有获得关于X1的更多信息。考虑特例k=1的以上证明,我们可以规定,找出X1与因子分解N一样困难。
a、限定与A1交换的所有矩阵的集合:
CA1={B|BA=AB;B∈M2×2(ZN)}。具有对于与A1交换的B,具有即,与S-1BS交换。在以上引理1中表明,这种矩阵具有形式a,d∈ZN,其中,X1≠Y1模P和Q。因此,即,CA1是在ZN之上的2×2矩阵的ZN模块的二维子模块。2≤i≤k的矩阵Ai具有形式用于在ZN中的Xi,Yi随机元素。因此,我们可以推断出,人们可以将A2,...,Ak视为CA1的单独随机元素。
b、表明了解A1的人可以使用一个不同的表示CA1从CA1中选择随机元素。假设HA1={a·A1+b·I|a,b∈ZN};容易验证形式aA1+bl的矩阵与A1交换0并且还形成在ZN之上的2×2矩阵的ZN模块的二维子模块。因此,HA1=CA1。人们在ZN中随机选择参数ai,bi,以在CA1:B1=ai·A1+bi·l中产生矩阵Bi的随机选择。
Q.E.D.
输入的较重大的有理函数具有相似的证明。
7、结论
为特定领域的应用,提出了全同态有效方法。对于对称密钥FHE,应用领域是安全算法,其输入是在ZN中的随机大数目。为了进行随机化,输入数据是交换环的任意元素,不对尺寸进行任何限制。故障检测功能是固有的,允许验证计算的数据。在两个变量的乘积的成本(5个模块化大数目乘法)中,反映计算加密数据的成本。加密或解密仅仅需要一个模块化大数目乘法。此外,这些方法在对于密码应用可能是新的交换矩阵的环的代数域中使用运算。我们希望这可以用于在上面为OSS提出的某些算法中增加安全性,并且提高抵抗某些侧信道攻击的保护。
具有挑战性的搜索领域是寻找新算法,这些算法允许我们放松所提出的方法的加密的当前约束,例如,在ZN中的大随机值,以便任意数据可以有效地加密,用于FHE应用或者用于略微同态应用。进一步的调查可以阐明难以在可用于Pollard攻击中的矩阵之上找出准则这一推论。
8、附件:方法-实际的FSERF-一般化的
所提出的每个同构方法是有效的非确定性全同态对称加密和随机化函数(FSERF)。函数的输入IN在交换环(CR)中或者在环ZN中包括k个输入元素。在交换环(CR)之上限定随机化,并且在环ZN之上进行加密(所有运算是模数N,其中,N是两个(秘密)质数的乘积)。大随机数模数N用于输入IN中并且用于在方法中使用的随机参数中,为加密的安全性提供充足的条件(见部分6)。
下面限定两个基本同构方法;每个方法随机化或加密表示为输入Xim(=(X1,X2,...,Xm))的IN的任何m个不同输入元素的集合i(其中,0<m<k+1并且m<n)。基本方法是基于矩阵的方法MORE(用于随机化或加密的矩阵运算)以及基于多项式的方法PORE(用于随机化或加密的多项式运算)。此外,通过连续地应用基本方法,可以构成‘合成’方法。
通常,m等于1;一种方法使用每个方法应用的一个输入元素(m=1,Xi1=Xj(j=(1..k)),来允许在运算是加法、乘法以及除法的函数中计算(任意)多变量输入。然而,例如,如果两个已知的多变量函数分别具有输入的两个不同的集合,例如,(X1,X2,...,X1)和(XL+1,XL+2,..,Xs),,那么在每个输入集合中的任何一对变量都不应共同加密(或随机化),即,通过该方法的单个应用。
通过连续应用基本的MORE和PORE,可以构成合成方法。
8.1、矩阵方法MORE。
在CR(或ZN)中随机选择的秘密n×n可逆矩阵S用作对称密钥,用于进行随机化(或加密)。对于从IN中选择的要共同随机化(或加密)的表示为X1,X2,...,Xm的m个不同的输入元素的每个集合Xim,选择n-m个随机数Y1,Y2,...,Yn-m,其中,在Xim以及Y1,Y2,...,Yn-m中的输入元素按顺序放在n×n对角矩阵的对角线上。将MORE的输出矩阵表示为Aim并且将其限定为:
其中,分别根据CR或ZN(模数N)的使用,Aim是明文X1,X2,...,Xm的随机值或密文。
而且,要注意的是,在单个多变量输入函数中,未使用由X1,X2,...,或Xm表示的任一对输入变量,即,每个加密(或随机化)的元素(变量)必须由一个不同的函数使用。
8.2、多项式方法PORE。
PORE是基于多项式的方法,其中,在CR或ZN中,PORE(Xim)=Aim=(ai0,ai1,...,ain-1)。
在CR或ZN中选择n个随机数v1,v2,...,vn,以限定公共多项式假设P(v)是在满足以下方程的形式的变量v中的任何函数:
为了为特定的Xim限定PORE(),在CR或ZN中将n-m个选择的随机值分配给ai,m,ai,m+1...,ai,n-1,这会在以上方程中为未知系数ai,0,ai,1...,ai,m-1产生解;(否则,缺少解决方案,在为未知系数解决以上方程的另一种尝试中,选择n-m个随机值的一个新集合)。或者交替地,在CR或ZN中选择n-m个随机值R1,...,Rn-m,这会解出以下n个联立方程:
用于未知数ai0,ai1,...,ain-1,从而如上所述,为X1,X2,...,Xm产生随机文本,包括PP(v)的集合(ai0,ai1,...,ain-1)和公共(C0,C1,...,Cn-1,Cn)。
这为明文X1,X2,...,Xm产生了共同随机化(或加密)输出Aim,具有P(v)的集合(ai0,ai1,...,ain-1)和系数的公共集合(C0,C1,...,Cn-1,Cn)的形式。要注意的是,要求系数的集合(C0,C1,...,Cn-1,Cn)通过随机化(或加密)元素执行算术运算。
8.3、合成方法
我们注意到,可以从函数PORE(Xi)和MORE(Xi)的混合物的连续应用中,获得其他方法,如在以下方程中:
MORE(PORE(Xi))=(MORE(ai0),MORE(ai1),...,MORE(ain-1))=
并且相反
因此
8.4、多变量函数的同态运算
可以容易地表明,以上方法全同态(加法和乘法),而且,对于除法同态。
下面分别限定受到CR和ZN的以上约束的加密(或随机化)值的加法、乘法以及除法的运算。
在MORE或PORE之下,假设A1和A2分别是X1和X2的加密(或随机化)值,在的C1,...,Cn-1,Cn下,MORE(Xi)=Ai矩阵并且PORE(Xi)=Ai=ai0,ai1,...,ain+1
Ai包括同态函数的输入,其中,Ai相加、相乘或者相除。因此,具有:
加法
MORE(X1)+MORE(X2)=A1+A2;并且
PORE(X1)+PORE(X2)=a10+a20,d11+d21,...,d1n-1+a2n-1
乘法
MORE(X1)·MORE(X2)=A1·A2;并且
PORE(X1)·PORE(X2)=r0,r1,...,rn-1,所产生的n-1阶多项式r(v)的系数,其中,
除法
并且以及
假设PORE(X1)=a10,a11,...,a1n-1和PORE(X2)=a20,a21,...,a2n-1,并且
假设通过在n个未知系数u2f,(j=0,...,n-1)方面,解决:
来导出
1/PRHT(X2)=u20,u21,...,u2n-1,从而确定
其中,g2j()是n个未知数u2j的线性组合;并且
为所有u2j(j=0,...,n-1,),n个未知数u20,u21,...,u2n-1,解出n个导出的方程g20()=1和g2j()=((j=1,..,n-1);并且因此
8.5、加密或去随机化
一旦在加密(或随机化)多变量输入之上计算同态函数f,返回结果就必须解密(或去随机化)。假设Ai表示加密或随机化Xi输入;我们接收具有以下一种形式的这种函数f(A1,A2,...,Ak)的结果:
或者,
f(A1,A2,...,Ak)具有形式
在该结果具有矩阵形式的情况下,解密产生:
或者可替换地,使用S确定
并且对于PORE(),我们使用和v1来确定:
8.6、计算的完整性的验证
这些方法提供了一种机构,用于验证由第三方在加密的多变量输入上执行的计算的返回结果有效。根据使用MORE(下面表示为M)还是PORE(下面表示为P),将返回结果表示为或者该结果是在A1,A2,...,A上执行的表示为f的同态计算,其中,A1等于一个M(Xi)和P(Xi)中的一个;f(A1,A2,...,Ak)等于M(f(X1,X2,...,Xk))=f(M(X1),M(X2),...,M(Xk)或P(f(X1,X2,...,Xk))=f(P(X1),P(X2),...,P(Xk)。
检验者接收具有以下一种形式的结果f(A1,A2,...,Ak):
f(A1,A2,...,Ak)具有形式
其中,该结果具有形式
检验者预先计算f(Ym1,Ym2,....,Ymk),对于某个m,在(1,2,...,n-1)中,其中,Ymj是用于加密Xj的第m个随机数。在计算加密的输入之前,可以适当地这样做。
然后,将R* M解密,以便从所产生的m+1行的矩阵对角线中确定f(Ym1.Ym2,....,Ymk)。最后,比较解密的f(Ym1,Ym2,....,Ymk)和预先计算的值,并且如果发生匹配,那么将f(Xi)的计算结果视为已验证。
其中,该结果具有形式
检验者预先计算f(Rm1,Rm2,…,Rmk),对于某个m,在1,2,...,n-1中,其中,Rmj是用于加密Xj的第m个随机数。在计算加密的输入之前,可以适当地这样做。
使用(v1,v2,...,vn)并且如上所述,在(1,..,n-1)中挑选同一个m,用于确定并且比较确定的f(Rm1,Rm2,...,Rmk)和预先计算的值,并且如果发生匹配,那么将f(X1,X2,...,XK)的计算结果视为已验证。
参考文献
1.Can Homomorphic Encryption be Practical?Kristin Lauter,MicahelNaehring,Vinod Vikuntanathan
2.Zvika Brakerski and Vinod Vaikuntanathan.Efficient fullyhomomorphic encryption from(standard)LWE.FOCS,2011
3.Craig Gentry.Fully homomorphic encryption using ideal lattices.InMichael Mitzenmacher,editor,STOC,pages 169-178.ACM,2009
4.Implementing Gentry′s fully-homomorphic encryption scheme,Gentry,SHalevi-Advances in Cryptology-EUROCRYPT 2011
5.R.L.Rivest,L.Adleman,and M.L.Dertouzos.On data banks and privacyhomomorphisms.In Foundations of Secure Computation,1978
6.Ong,Schnorr,Shamir An Efficient signature based on quadraticequations,proceedings of the 16′th symposium on theory of computing pp.208-216 1984
7.Rivest,R.;A.Shamir;L.Adleman(1978)."A Method for Obtaining DigitalSignatures and Public-Key Cryptosystems".Communications of the ACM 21(2):120-126
8.FIPS-186-3The third and current revision to the official DSAspecification
9.J.Pollard&C.Schnorr"An efficient solution of the congruence x2+ky2=m modulo n"IEEE transactions on Information Theory,vol.IT-33no.5.,September1987pp 208-216

Claims (27)

1.一种使输入随机化的全同态方法,其中,在下文中表示为CR的交换环上执行所有计算,所述方法包括:
接收包括CR中的k个输入元素的序列的输入,所述输入表示为INP;
执行(a)和(b)中的任一个:
(a)随机选择在下文中表示为S的CR中的秘密n×n矩阵,S用作对称随机化密钥,其中,S包括在CR上的可逆矩阵;
确定S-1
为包括INP的k个元素之中的m个不同的输入元素的每个集合i,在CR中选择n-m(n减去m)个随机数Y1,Y2,...,Yn-m,其中,0<m<k+1以及m<n,从INP中选择要被共同随机化的所述m个不同的输入元素并且所述m个不同的输入元素在下文中表示为X1,X2,...,Xm,其中,输入元素为X1,X2,...,Xm;在所述随机数Y1,Y2,...,Yn-m的集合之中选择至少一个随机数;并且可选地,一个或多个常数放在表示为M的n×n对角矩阵的对角线中,其中,除了所述对角线以外,矩阵M仅由0填充;并且
通过使用在下文中表示为MRHT的基于矩阵的随机化和同态变换函数,确定表示为{Xim}=X1,X2,...,Xm的集合i中的m个输入元素的随机输出Aim,其中:
从而产生与m个输入元素的所述集合i{Xim}=X1,X2,...,Xm对应的随机输出Aim
以及
(b)在CR中选择n个随机数,所述n个随机数在下文中表示为v1,v2,...,vn
确定公共多项式其中,Cj表示公共多项式P(v)的公共系数;
选择在下文中表示为PRHT(Xim)的基于多项式的随机化和同态变换函数,包括以v为变量的形式为的任何函数,所述函数满足以下方程:
<mrow> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <msup> <msub> <mi>v</mi> <mn>1</mn> </msub> <mi>j</mi> </msup> <mo>=</mo> <msub> <mi>X</mi> <mn>1</mn> </msub> <mo>,</mo> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <msup> <msub> <mi>v</mi> <mn>2</mn> </msub> <mi>j</mi> </msup> <mo>=</mo> <msub> <mi>X</mi> <mn>2</mn> </msub> <mo>,</mo> <mn>...</mn> <mo>,</mo> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>a</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <msup> <msub> <mi>v</mi> <mi>m</mi> </msub> <mi>j</mi> </msup> <mo>=</mo> <msub> <mi>X</mi> <mi>m</mi> </msub> <mo>;</mo> </mrow>
在CR中为ai,m,ai,m+1...,ai,n-1选择将产生ai,0,ai,1...,ai,m-1的以上方程的解的n-m个随机值,并且
执行(c)和(d)中的任一个:
(c)产生与包括集合(ai0,ai1,...,ain-1)以及P(v)的公共系数集合(C0,C1,...,Cn-1,Cn)的输入元素X1,X2,...,Xm对应的随机输出Aim,其中,需要公共系数集合(C0,C1,...,Cn-1,Cn)以用于利用输入元素来执行运算的算术;并且
(d)在CR中为给定的输入元素X1,X2,...,Xm选择将解出以下关于未知数ai0,ai1,...,ain-1的n个联立方程的n-m个随机值R1,R2,...,Rn-m
从而为X1,X2,...,Xm产生包括所述集合(ai0,ai1,...,ain-1)以及P(v)的公共集合(C0,C1,...,Cn-1,Cn)的随机文本。
2.根据权利要求1所述的方法,其中,随机化所述输入INP包括连续应用函数PRHT(Xi)和MRHT(Xi)的组合,其中,Xi表示INP的m个不同的输入元素的集合,并且其中:
并且
其中,PRHT(amj)=(a0,a1,...,an-1)mj,因此
3.根据权利要求1或2所述的方法,其中,INP的至少一部分包括加密密钥。
4.根据权利要求1或2所述的方法,其中,INP的至少一部分包括模数N多项式系数。
5.根据权利要求1所述的方法,其中,所述输入包括明文,所述输出包括密文,并且在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥,其中,加密函数表示为分别与MRHT和PRHT对应的MEnc和PEnc。
6.根据权利要求5所述的方法,其中,加密所述明文包括连续应用加密函数PEnc=PRHT(Xi)和MEnc=MRHT(Xi)的组合,其中:
并且
其中,
PEnc(aij)=(a0,a1,...,an-1)ij
7.一种用于将权利要求1的随机化输出去随机化的方法,所述方法包括:
执行(a)和(b)中的任一个:
(a)在CR上接收在下文中表示为Aim的输出,所述输出包括为n×n对角矩阵的随机化Xim输入,其中:
使用S来确定并且通过执行以下中的一项来确定Xim
S-1·Aim·S=M,其中,X1,X2,...,Xm是上面所产生的对角矩阵的左上元素,
可替代地:
并且
(b)接收Xim的随机化输出作为(ai0,ai1,...,ain-1),并且使用v1,v2,...,vm来确定去随机化输入
8.根据权利要求7所述的方法,其中,至少一个所述随机化输出包括加密密钥。
9.根据权利要求7所述的方法,其中,至少一个所述随机化输出包括模数N多项式系数。
10.根据权利要求7所述的方法,其中,所接收的输出包括表示为C的密文,根据权利要求5所述的方法产生所述密文C,并且所述去随机化输入包括明文,并且在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
11.一种用于将随机化的X1和随机化的X2相加的方法,X1和X2根据权利要求1所述的使输入随机化的全同态方法来随机化,所述方法包括:
对于Xi,包括MRHT(Xi)=Ai
接收A1和A2;并且
MRHT(X1)+MRHT(X2)=A1+A2;并且
对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1
接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn;并且
PRHT(X1)+PRHT(X2)=a10+a20,a11+a21,...,a1n-1+a2n-1
12.根据权利要求11所述的方法,其中,至少一个用于随机化的所述输入包括加密密钥。
13.根据权利要求11所述的方法,其中,至少一个用于随机化的所述输入包括模数N多项式系数。
14.一种用于将随机化的X1和随机化的X2相乘的方法,X1和X2根据权利要求1所述的使输入随机化的全同态方法来随机化,所述方法包括:
对于Xi,包括MRHT(Xi)=Ai
接收A1和A2;并且
MRHT(X1)·MRHT(X2)=A1·A2;并且
对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1
接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn;并且
PRHT(X1)·PRHT(X2)=r10,r11,...,r1n-1,,所产生的n-1阶多项式的系数为r(v),其中,
15.根据权利要求14所述的方法,其中,至少一个用于随机化的所述输入包括加密密钥。
16.根据权利要求14所述的方法,其中,至少一个用于随机化的所述输入包括模数N多项式系数。
17.一种用于将随机化的X1与随机化的X2相除的方法,X1和X2根据权利要求1所述的使输入随机化的全同态方法来随机化,所述方法包括:
对于Xi,包括MRHT(Xi)=Ai
接收A1和A2
并且
<mrow> <mi>MRHT</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>/</mo> <mi>MRHT</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>A</mi> <mn>1</mn> </msub> <mo>&amp;CenterDot;</mo> <msubsup> <mi>A</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow>
对于Xi,包括PRHT(Xi)=ai0,ai1,...,ain-1
接收PRHT(X1)=a10,a11,...,a1n-1和PRHT(X2)=a20,a21,...,a2n-1以及的C0,C1,...,Cn-1,Cn
根据n个未知的系数u2j(j=0,...,n-1),通过计算 来得出1/PRHT(X2)=u20,u21,...,u2n-1,从而确定
其中,g2j( )是n个未知数u2j的多个的线性组合;
对于所有u2j j=0,...,n-1,求解n个导出方程g20( )=1和g2j( )=0,j=1,...,n-1;并且
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>P</mi> <mi>R</mi> <mi>H</mi> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>/</mo> <mi>P</mi> <mi>R</mi> <mi>H</mi> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>P</mi> <mi>R</mi> <mi>H</mi> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>&amp;CenterDot;</mo> <mo>(</mo> <mn>1</mn> <mo>/</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>P</mi> <mi>R</mi> <mi>H</mi> <mi>T</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>)</mo> <mo>=</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>a</mi> <mrow> <mn>1</mn> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <msup> <mi>v</mi> <mi>j</mi> </msup> </mrow> <mo>)</mo> <mo>&amp;CenterDot;</mo> <mo>(</mo> <mrow> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>u</mi> <mrow> <mn>2</mn> <mi>j</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <msup> <mi>v</mi> <mi>j</mi> </msup> </mrow> <mo>)</mo> <mo>)</mo> <mi>mod</mi> <msubsup> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>&amp;CenterDot;</mo> <msup> <mi>v</mi> <mi>j</mi> </msup> </mrow> </mtd> </mtr> </mtable> <mo>.</mo> </mrow>
18.根据权利要求17所述的方法,其中,至少一个用于随机化的所述输入包括加密密钥。
19.根据权利要求18所述的方法,其中,所述加密密钥包括AES密钥。
20.根据权利要求17所述的方法,其中,至少一个用于随机化的所述输入包括模数N多项式系数。
21.根据权利要求20所述的方法,其中,所述模数N多项式系数用于私有函数密钥生成。
22.根据权利要求20所述的方法,其中,所述模数N多项式系数用于私有的基于散列的消息认证码。
23.根据权利要求20所述的方法,其中,所述模数N多项式系数用于生成OSS签名。
24.一种用于将一对密文输出Ci和Cj相加的方法,Ci和Cj是根据权利要求5所述的方法产生的密文,所述方法包括根据权利要求11所述的方法将Ci和Cj相加,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
25.一种用于将一对密文输出Ci和Cj相乘的方法,Ci和Cj包括根据权利要求5所述的方法产生的密文,所述方法包括根据权利要求14所述的方法将Ci和Cj相乘,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
26.一种用于将一对密文输出Ci和Cj相除的方法,Ci和Cj包括根据权利要求5所述的方法产生的密文,所述方法包括根据权利要求17所述的方法将Ci和Cj相除,其中,在环ZN上执行模数N的所有计算,其中,N是两个质数的乘积,并且矩阵S包括对称加密密钥。
27.一种验证由第三方执行的计算的返回结果为有效的方法,所述结果由根据权利要求1-26中任一项所述的方法执行,对于使用表示为M的MRHT或MEnc函数返回的结果,所述结果表示为并且对于使用表示为P的PRHT或PEnc函数返回的结果,所述结果表示为所述结果包括对A1,A2,...,Ak执行的表示为f的同态计算的结果,其中,Ai等于M(Xi)和P(Xi)中的一个;f(A1,A2,...,Ak)等于以下中的一个:M(f(X1,X2,...,Xk))=f(M(X1),M(X2),...,M(Xk))以及P(f(X1,X2,...,Xk))=f(P(X1),P(X2),...,P(Xk)),所述方法包括:
接收为以下形式的其中一个的f(A1,A2,...,Ak)的结果:
并且
f(A1,A2,...,Ak)为的形式;
在所述结果为的形式的情况下:
对于任何m,m=1,2,...,n-1,计算表示为Q的f(Ym1,Ym2,....,Ymk),其中,Ymj包括在加密和随机化Xj的一个中使用的第m个随机值;
执行解密和去随机化R*M中的一个,从而从所产生的m+1行的矩阵对角线确定表示为E的f(Ym1,Ym2,....,Ymk);并且
如果E等于Q,则将f(Xi)的所述计算的所述结果视为有效;并且
在所述结果为R*P形式的情况下:
对于任何m,m=1,2,...,n-1,计算表示为Q的f(Ym1,Ym2,....Ymk),其中,Ymj包括在加密和随机化Xj的一个中使用的第m个随机值;
执行解密和去随机化R*P中的一个,从而确定:
表示为E的并且
如果E等于Q,则将f(X1,X2,....,XK)的所述计算所述结果视为有效。
CN201380039463.2A 2012-07-26 2013-07-25 用于使输入同态随机化的方法和系统 Active CN104509024B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IL22115212 2012-07-26
IL221152 2012-07-26
IL224400 2013-01-24
IL22440013 2013-01-24
PCT/IB2013/056102 WO2014016795A2 (en) 2012-07-26 2013-07-25 Method and system for homomorphicly randomizing an input

Publications (2)

Publication Number Publication Date
CN104509024A CN104509024A (zh) 2015-04-08
CN104509024B true CN104509024B (zh) 2018-02-27

Family

ID=49484393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380039463.2A Active CN104509024B (zh) 2012-07-26 2013-07-25 用于使输入同态随机化的方法和系统

Country Status (4)

Country Link
US (2) US9350543B2 (zh)
EP (1) EP2873186B1 (zh)
CN (1) CN104509024B (zh)
WO (1) WO2014016795A2 (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382194B1 (en) * 2014-01-10 2019-08-13 Rockwell Collins, Inc. Homomorphic encryption based high integrity computing system
SG11201608601TA (en) * 2014-04-23 2016-11-29 Agency Science Tech & Res Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
CN105337736B (zh) * 2014-06-30 2018-10-30 华为技术有限公司 全同态消息认证方法、装置及系统
RU2701716C2 (ru) * 2014-09-30 2019-09-30 Конинклейке Филипс Н.В. Электронное вычислительное устройство для выполнения арифметики с обфускацией
US10536262B2 (en) * 2014-12-12 2020-01-14 Koninklijke Philips N.V. Electronic generation device
BR112017013069A2 (pt) * 2014-12-22 2018-02-27 Koninklijke Philips Nv dispositivo e método de cálculo eletrônico, e programa de computador
WO2016155804A1 (en) * 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
CN106160995B (zh) * 2015-04-21 2019-04-16 郑珂威 基于系数映射变换的多项式完全同态加密方法及系统
US20160352710A1 (en) * 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
US9973334B2 (en) 2015-09-03 2018-05-15 Cisco Technology, Inc. Homomorphically-created symmetric key
CN106100831B (zh) * 2016-06-01 2019-07-09 兰雨晴 一种传送和处理数据的方法及系统
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
MA39511A1 (fr) 2016-11-07 2018-05-31 Univ Mohammed V Rabat Un efficace cryptosysteme entierement homomorphe a base des quaternions.
CN106452723B (zh) * 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
MA39664B1 (fr) 2016-12-30 2018-09-28 Univ Mohammed V Rabat Une méthode pratique de cryptage entièrement homomorphe et vérifiable.
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
WO2018136811A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. Secure web browsing via homomorphic encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10644876B2 (en) * 2017-01-20 2020-05-05 Enveil, Inc. Secure analytics using homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US9942020B1 (en) * 2017-04-26 2018-04-10 Cisco Technology, Inc. Minimum delay spatio-temporal filtering for interference rejection
DE102017117899A1 (de) * 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
DE102017117907B4 (de) * 2017-08-07 2023-04-27 Infineon Technologies Ag Durchführen einer kryptografischen Operation
CN107682379A (zh) * 2017-11-22 2018-02-09 南京汽车集团有限公司 基于同态加密的信息安全传输装置、传输方法及存储方法
EP3493460A1 (en) * 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having secure provision of random number sequences
CN111801670A (zh) 2017-12-18 2020-10-20 中佛罗里达大学研究基金会有限公司 操作在公共计算机上加密数据的代码的安全执行技术
EP3503458A1 (en) * 2017-12-22 2019-06-26 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Distributed computation method and system
CN110022239A (zh) * 2018-01-08 2019-07-16 深圳市中兴微电子技术有限公司 一种检测方法、设备及存储介质
CN108768622A (zh) * 2018-03-30 2018-11-06 国网河南省电力公司新乡供电公司 一种云计算中矩阵行列式的安全外包计算加密方法
CN108632033B (zh) * 2018-06-04 2020-11-03 湖北工业大学 一种外包计算中基于随机加权酉矩阵的同态加密方法
CN108933650B (zh) * 2018-06-28 2020-02-14 阿里巴巴集团控股有限公司 数据加解密的方法及装置
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN110020883A (zh) * 2018-12-12 2019-07-16 阿里巴巴集团控股有限公司 一种对评分矩阵中的未知评分进行预测的方法及装置
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof
US11654635B2 (en) 2019-04-18 2023-05-23 The Research Foundation For Suny Enhanced non-destructive testing in directed energy material processing
WO2020231439A1 (en) * 2019-05-16 2020-11-19 Compunetix, Inc. Method and apparatus for factoring large integers
US11323255B2 (en) 2019-08-01 2022-05-03 X-Logos, LLC Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
WO2021050856A1 (en) * 2019-09-13 2021-03-18 Brown University Multi-message multi-user signature aggregation
US11283620B2 (en) 2019-10-01 2022-03-22 Here Global B.V. Method, apparatus, and system for providing a homomorphic cryptosystem
CN111125788B (zh) * 2019-12-26 2020-11-10 南京星环智能科技有限公司 一种加密计算方法、计算机设备及存储介质
CN111586685B (zh) * 2020-04-26 2022-05-03 重庆邮电大学 一种基于格的匿名漫游认证方法
US11764943B2 (en) 2020-08-10 2023-09-19 Algemetric, Inc. Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
WO2022061184A2 (en) 2020-09-17 2022-03-24 X-Logos, LLC Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
WO2022141014A1 (zh) * 2020-12-29 2022-07-07 深圳大学 一种基于多用户数据的安全求均值方法
CN113055153B (zh) * 2021-03-10 2022-12-23 中国人民大学 一种基于全同态加密算法的数据加密方法、系统和介质
CN113162752B (zh) * 2021-04-26 2022-07-19 建信金融科技有限责任公司 基于混合同态加密的数据处理方法和装置
CN117640066B (zh) * 2024-01-26 2024-04-05 北京隐算科技有限公司 一种基于同态加密的多用户联合加解密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
CN102822816A (zh) * 2010-03-30 2012-12-12 国际商业机器公司 用于双线性型的高效同态加密方案

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472093B2 (en) 2000-03-08 2008-12-30 Rsa Security Inc. Targeted delivery of informational content with privacy protection
US7254586B2 (en) 2002-06-28 2007-08-07 Microsoft Corporation Secure and opaque type library providing secure data protection of variables
JP5094882B2 (ja) 2008-01-18 2012-12-12 三菱電機株式会社 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
WO2010100015A1 (en) 2009-03-06 2010-09-10 Intrinsic Id B.V. System for establishing a cryptographic key depending on a physical system
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
CN102822816A (zh) * 2010-03-30 2012-12-12 国际商业机器公司 用于双线性型的高效同态加密方案

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Efficient Fully Homomorphic Encryption from(Standard)LWE;Zvika Brakerski, Vinod Vaikuntanathan;《2011 IEEE 52nd Annual Symposium on Foundations of Computer Science》;20111025;全文 *

Also Published As

Publication number Publication date
EP2873186A2 (en) 2015-05-20
WO2014016795A8 (en) 2015-01-08
WO2014016795A2 (en) 2014-01-30
US20160234010A1 (en) 2016-08-11
CN104509024A (zh) 2015-04-08
US20150215123A1 (en) 2015-07-30
EP2873186B1 (en) 2018-03-07
WO2014016795A3 (en) 2014-03-27
US9350543B2 (en) 2016-05-24
US9571268B2 (en) 2017-02-14

Similar Documents

Publication Publication Date Title
CN104509024B (zh) 用于使输入同态随机化的方法和系统
Kipnis et al. Efficient methods for practical fully homomorphic symmetric-key encrypton, randomization and verification
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
US11882218B2 (en) Matching system, method, apparatus, and program
US20130318351A1 (en) Similarity degree calculation system, similarity degree calculation apparatus, computer program, and similarity degree calculation method
JP6459658B2 (ja) 暗号処理装置、暗号処理方法、および暗号処理プログラム
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
CN109818752B (zh) 信用评分生成方法、装置、计算机设备和存储介质
Domingo-Ferrer et al. Flexible and robust privacy-preserving implicit authentication
Zhang et al. Efficient computation outsourcing for inverting a class of homomorphic functions
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
Huang et al. Block-Level Message-Locked Encryption with Polynomial Commitment for IoT Data.
Bayat et al. A secure and efficient chaotic maps based authenticated key-exchange protocol for smart grid
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
Li et al. Privacy-preserving large-scale systems of linear equations in outsourcing storage and computation
Lee Efficient three-party authenticated key agreements based on Chebyshev chaotic map-based Diffie–Hellman assumption
KR102067065B1 (ko) 전력 분석 및 전자파 분석에 안전한 메시지 랜덤화 기반의 행렬-벡터 곱 연산 장치, 이를 이용한 암호화 장치 및 방법
Nguyen et al. Quasi-inverse based cryptography
Benrebbouh et al. A lightweight security scheme to defend against quantum attack in IoT-based energy internet
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
Azrour et al. A new efficient SIP authentication and key agreement protocol based on chaotic maps and using smart card
Rama et al. RSA public key cryptosystem using modular multiplication
Hsu et al. Convertible authenticated encryption scheme with hierarchical access control
Jiang et al. Enabling public and privacy-preserving auditability for cloud storage
Cryptography Secure Data Storage on Cloud using hybrid cryptography Methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: The Middlesex County

Patentee after: NDS LIMITED

Address before: The Middlesex County

Patentee before: NDS Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20180824

Address after: The Middlesex County

Patentee after: ACANO UK LTD

Address before: The Middlesex County

Patentee before: NDS LIMITED

TR01 Transfer of patent right