CN110363030A - 用于执行基于格的密码操作的方法和处理设备 - Google Patents

用于执行基于格的密码操作的方法和处理设备 Download PDF

Info

Publication number
CN110363030A
CN110363030A CN201910256894.3A CN201910256894A CN110363030A CN 110363030 A CN110363030 A CN 110363030A CN 201910256894 A CN201910256894 A CN 201910256894A CN 110363030 A CN110363030 A CN 110363030A
Authority
CN
China
Prior art keywords
multinomial
noise
public
polynomial
secret
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.)
Granted
Application number
CN201910256894.3A
Other languages
English (en)
Other versions
CN110363030B (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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN110363030A publication Critical patent/CN110363030A/zh
Application granted granted Critical
Publication of CN110363030B publication Critical patent/CN110363030B/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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

公开了一种用于执行基于格的密码操作的方法和处理设备。根据各种实施方式,描述了一种用于执行基于格的密码操作的方法,该方法包括:获得噪声多项式、秘密多项式和公共多项式;通过将噪声多项式、秘密多项式和公共多项式中的至少一个与随机盲多项式相乘来伪装噪声多项式、秘密多项式和公共多项式中的至少一个;基于所伪装的至少一个多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和;以及基于所计算的公共多项式和秘密多项式的乘积与噪声多项式之和来确定基于格的密码操作的结果。

Description

用于执行基于格的密码操作的方法和处理设备
技术领域
本公开内容涉及用于执行基于格的密码操作的方法和处理设备。
背景技术
最近,美国政府宣布将从如RSA(Rivest Shamir Adleman)和ECC(椭圆曲线密码术)的传统非对称密码系统转向不能被量子计算机攻击的方案。目前,由于技术复杂性和工程挑战,量子计算机不可用,但量子计算机一旦建成,它们就能够在多项式时间内破坏RSA和ECC。因此,如NIST(美国国家标准与技术研究院)的标准化机构现在也在积极研究替代的密码系统。因此,替代方案被研究。料想会抵制量子计算机攻击的一类方案是基于格的公共(public)密钥加密、密钥交换或签名方案。它们可以变为RSA和ECC的继承者,并且可以在大矩阵(标准格)或多项式环(理想格)上运行。因此,期望用于安全地实现基于格的公共密钥加密的方法。
发明内容
根据各种实施方式,提供了一种用于执行基于格的密码操作的方法,该方法包括:获得噪声多项式、秘密多项式和公共多项式;通过将噪声多项式、秘密多项式和公共多项式中的至少一个与随机盲多项式相乘来伪装噪声多项式、秘密多项式和公共多项式中的至少一个;基于所伪装的多项式(或所伪装的多个多项式)来计算公共多项式和秘密多项式的乘积与噪声多项式之和;以及基于所计算的公共多项式和秘密多项式的乘积与噪声多项式之和来确定基于格的密码操作的结果。
附图说明
在附图中,相同的附图标记通常在不同视图中指代相同的部件。附图不一定按比例绘制,而是通常将重点放在说明本发明的原理上。在下面的描述中,参照以下附图描述了各个方面,在附图中:
图1示出了具有用于执行密码操作的各种部件的处理设备。
图2示出了处理设备的另一示例。
图3示出了说明上述过程的实现的处理电路。
图4示出了说明用于执行基于格的密码操作的方法的流程图。
图5示出了用于执行基于格的密码操作的处理设备。
具体实施方式
以下详细描述参考了附图,附图通过图示的方式示出了可以实践本发明的本公开内容的具体细节和方面。可以利用其他方面,并且可以在不脱离本发明的范围的情况下进行结构、逻辑和电气变化。本公开内容的各个方面不一定是相互排斥的,原因是本公开内容的一些方面可以与本公开内容的一个或更多个其他方面组合以形成新的方面。
在下文中,描述了用于随机化基于格的密码系统的执行以防止诸如故障和侧信道攻击的物理攻击的实施方式。具体地,描述了用于基于格的密码系统的盲方法,其对抗侧信道攻击。在随机多项式与其逆之间的关系的使用中结合数论变换的特征可以看出基本思想。
本文中描述的示例可以被实现为由如个人计算机、微控制器、智能卡、安全微控制器、硬件信任根、(嵌入式)安全元件(ESE)、可信平台模块(TPM)或硬件安全模块(HSM)的处理设备处理的指令。
图1示出了处理设备100的示例,该处理设备100包括CPU 101、RAM 102、非易失性存储器103(NVM)、密码模块104、模拟模块106、输入/输出接口107和硬件随机数字发生器112。
在该示例中,CPU 101可以通过共享总线105访问至少一个密码模块104,每个密码模块104耦接至共享总线105。每个密码模块104可以特别地包括一个或更多个密码核,以执行某些密码操作。示例性密码核是:
-AES核109,
-SHA核110,
-ECC核111,以及
-基于格的密码(LBC)核108。
可以提供基于格的密码核108,以加速基于格的密码术。
CPU 101、硬件随机数发生器112、NVM 103、密码模块104、RAM 102和输入/输出接口107连接至总线105。输入/输出接口107可以具有至可以类似于处理设备100的其他设备的连接件。
模拟模块106经由电气接触和/或经由电磁场被提供电力。该电力被提供以驱动处理设备100的电路系统,并且可以特别地允许输入/输出接口经由连接件启动和/或保持与其他设备的连接。
总线105本身可以是隐蔽的或普通的。用于执行下面描述的处理和算法的指令可以特别地存储在NVM 103中并且由CPU 105进行处理。处理的数据可以存储在NVM 103或RAM102中。支持功能可以由密码模块104(例如,伪随机数据的扩展)提供。随机数由硬件随机数发生器112提供。
以下描述的处理和算法可以排他地或至少部分地在密码模块104上进行,例如在基于格的密码核108上进行。密码模块104可以配备有或可以不配备有基于硬件的安全特征。这种基于硬件的安全特征可以是实现针对侧信道功率分析或故障注入(例如,使用激光)的对策的电路。可以通过使用随机性、冗余硬件或冗余处理来实现这种对策。一般而言,对策的目标是向攻击者伪装经内部处理的值,该攻击者能够观察到对这些值的处理的物理效应。
为了执行下面描述的过程,指令可以存储在基于格的密码核108中,或者它们可以由CPU 101经由总线105来提供。数据可以本地地存储在基于格的密码核108内。还可以选择将数据临时存储在RAM 102或NVM 103中。基于格的密码核108还可以使用其他密码模块来提供支持功能(例如,伪随机数据的扩展)。基于格的密码核108还可以包括硬件随机数发生器112或用于生成物理和/或软件随机数的装置。
基于格的密码核108可以支持如对如系数阵列的数据结构的多项式加法或多项式乘法、随机多项式的采样的操作。在另一实例中,本文中描述的过程可以至少部分地被实现为基于格的密码核108中的固定CMOS电路,该固定CMOS电路不直接由CPU 101控制,并且其中,在密码核108的外部没有可用的中间值。另外,加速器可以实现如文献中描述的特定方案,如NewHope密钥交换、Kyber公共密钥封装、GLP签名方案或Frodo公共密钥加密。在这种情况下,对CPU 101而言,只有高级功能可用。例如,签名可以被生成,其中消息和私钥通过总线105被发送到基于格的密码核108,然后GLP签名被计算,CPU 101使用总线105检索GLP签名以用于进一步处理。
处理设备100的部件可以例如在单个芯片上实现。处理设备100可以是通过直接电气接触或通过电磁场被供电的芯片卡(或芯片卡模块)。处理设备100可以是固定电路或基于可重新配置的硬件(例如,现场可编程门阵列,FPGA)。处理设备100可以耦接至个人计算机、微控制器、FPGA或智能电话片上系统(SoC)或智能电话的其他部件。处理设备100可以是充当可信平台模块(TPM)的芯片,其根据到计算机、智能电话、物联网(IoT)设备或汽车的标准化接口来提供密码功能(安全存储、安全时间、签名生成和验证、认证)。
图2示出了处理设备200的另一示例。
处理设备200包括硬件安全模块201、非易失性存储器(NVM)208、应用处理器207、随机存取存储器(RAM)209、用于与其他设备进行通信的接口210以及与硬件安全模块(HSM)201、RAM 209和接口210耦接的应用处理器207。
HSM 201包括控制器202、硬件随机数发生器(HRNG)206和密码模块203,该密码模块203包括AES核204和LBC核205作为示例性核。
根据一个实施方式,硬件安全模块(HSM)201和应用处理器207可以紧密耦接地在同一物理芯片上制造。在应用处理器执行计算密集型任务(例如,图像识别、通信、电机控制)时,HSM 201递送密码服务和安全密钥存储。HSM 201的定义属性是它仅可由限定的接口访问并且被认为以如下方式独立于系统的其余部分:应用处理器207的安全性妥协仅对HSM201的安全性具有有限的影响。HSM 201可以或可以不通过使用由示例性AES 204和HRNG206支持的控制器202、LBC 205来执行关于处理设备200描述的所有任务或任务的子集。它可以执行在下面描述的(至少部分地)由内部控制器控制或作为CMOS电路的过程。此外,应用处理器207还可以执行以下描述的过程(至少部分地,例如,与HSM 201协作)。具有应用处理器和HSM的处理设备200可以用作汽车或其他车辆中的中央通信网关或(电)电机控制单元。
本文中描述的示例特别地可以基于以下方法中的至少一个。特别地,可以利用以下特征的组合以达到期望的结果。方法的特征可以与设备、装置或系统的任何特征组合,反之亦然。
在下文中,描述了基于格的密码术的背景,并且引入了以下使用的符号。
基于格的密码术
各种因特网和行业标准使用基于RSA或椭圆曲线密码术(ECC)的非对称密码术来保护智能卡、智能电话、计算机、服务器或工业控制系统之间的数据通信。作为示例,利用RSA算法,可以实现公共密钥加密(PKE)方案,其允许用户将加密的电子邮件(例如,利用PGP/GPG或S/MIME)发送至接收者而无需首先交换安全信道上的对称密钥——接收者的公共密钥足以实现机密性。非对称密码术的其他应用是数字签名,也基于RSA或ECC。它们可以用于签名和验证数据,其中使用公共密钥来检查签名的有效性。如果签名后修改了数字签名的合同或长期档案,即使修改了一位,数字签名检查也将失败。
同时,PKE和数字签名在传输层安全(TLS)协议中都是至关重要的,TLS协议是因特网中安全通信的支柱,并且被浏览器、智能电话以及越来越多的IoT(物联网)设备使用。TLS在通信被加密、检查以用于操纵并且使用通过公共密钥基础结构(PKI)提供的数字证书来验证参与者的身份的两个设备之间建立安全信道。当使用https而不是http连接到网站(例如,银行之一)时,浏览器使用TLS。通常,绿锁(green lock)和进一步的信息被显示,以显示通信实际上是利用银行的网站执行的并且防止了所谓的中间人进行的攻击。在没有这种基于PKI的身份检查与强数据加密相结合的情况下,攻击者就有可能操纵通信并冒充被访问的网站。
然而,自1994年Peter Shor的开创性工作以来,众所周知,RSA和ECC容易受到量子计算机的攻击。另外,该算法还可能被修改以破坏基于ECC的公共密钥。量子计算机可以被描述为直接使用量子力学现象来加速处理的计算机。建造量子计算机的关键构思是用于将状态存储在量子寄存器中的所谓的量子比特或量子位。目前,没有足够强大(例如,具有足够的量子位)以实现Shor的量子计算机。
然而,仍然存在从传统的非对称密码系统(RSA/ECC)转向不能被量子计算机成功攻击的方案的一般动机。即使目前量子计算机由于其技术复杂性和工程挑战而需要更多工作,它们也许能够在未来(可能是15到20年)在多项式时间内破坏RSA和ECC。因此,需要用于签名方案、密钥交换和公共密钥加密的新方法,该新方法不基于与RSA和ECC相同的基础(即,离散对数问题或因子分解)。如NIST(美国国家标准与技术研究院)的标准化机构已经认识到对新技术方案的这种需求,NIST目前正在研究替代的密码系统。
密码系统可以被理解为指代密码公共密钥加密、密钥交换或签名方案,但也可以是高级方案,如同态加密或基于属性的加密。在公共密钥加密中,非秘密公共密钥用于加密只能利用相关联的秘密密钥解密的数据。在签名方案中,秘密密钥用于对消息进行签名,并且可以利用相关联的公共密钥将秘密密钥验证为签名者拥有秘密密钥并因此被授权产生签名。密钥交换、密钥建立机制(KEM)或密钥传输方案被认为是交互式协议,其中双方建立被动的或有时是主动的对手或窃听者不知道的秘密密钥。各种对称密钥密码术(例如,AES)、哈希函数(例如,SHA2)、公共密钥加密、密钥交换或签名方案可以被组合成如传输层安全性(TLS)、因特网密钥交换(IKE)、因特网协议安全性(IPsec)或Kerberos的协议。
一类方案或者料想会抵制量子计算机攻击的方案是基于格的密码系统。基于格的密码系统可能变为RSA和ECC的继承者,并且通常在大矩阵(标准格)或多项式环(理想格)上运行。然而,最近还引入了两种方法的混合(例如,在方案Kyber或Dilithium中),其基于所谓的模块化格。
格是由基向量的整数线性组合创建的结构。因此,格可以被描述为n维空间中的规则结构。更确切地说,格在本文中被限定为具有规则结构的欧几里得空间中的点的排列。给定n个线性独立向量由它们生成的格被限定为向量被称为格的基。的元素是具有实系数的m维向量。在格(即,n维空间)中,某些基本问题——如找到短基或短向量——被推测为在数学上很难或至少足够复杂以将它们用于密码术。通常,破坏基于格的密码系统的难度可以被降低或者与解决这种基本问题的难度相关。因此,基于格的密码术或基于格的密码系统是指密码系统或构造,其安全性基于难度或与格中某些数学上困难的问题的难度相关。然而,在实现方案时,如上面限定的格不一定需要对设计者可见。当证明安全性或估计参数大小时,格主要是工具,但是用于方案的结构(即,对实现方案的工程师可见的结构)可以不同。
几十年来,格已经被用于构建密码系统。最近,基于格的密码术也由于用户友好的错误学习(LWE)问题和环-LWE(RLWE)问题的引入而备受关注。在这种情况下,问题是指被推测难以解决(即,没有多项式时间算法可用)但是也允许构建密码方案(例如,像用于RSA的因子分解问题或用于ECC的离散对数)的数学问题(例如,找到某事物)。通常,为了解决LWE问题,当关于给定一系列近似(即,随机扰动)的随机线性方程时,必须在中恢复秘密向量因此,LWE和RLWE问题允许构建实际的格结构对于方案的设计者而言实际上不可见的方案。
然而,当试图解决LWE或RLWE问题的实例时,可以使用格算法,原因是找到的问题可以被描述为格问题。RLWE问题通过多项式环起作用并且支持关于理想格的困难问题的安全性降低,而LWE使得能够减少所谓的随机(或任意)格(即,格没有结构)。因此,理想格比随机格携载更多结构,但也允许实现更好的公共密钥、密文和签名长度的方案的设计。
基于格的密码术的突出示例是所谓的NTRU和NTRU签名方案以及所谓的GGH方案。基于格的(短暂的)密钥交换或公共密钥加密方案的示例是Kyber、Newhope、NewHope-Simple、Hila5、ThreeBears和Frodo方案。应该注意,对于大多数方案,密钥交换和公共密钥加密之间的转换是微不足道的。另外,对于PKE,可以使用标准转换(例如,Fujisaki-Okamoto)来实现各种安全级别,如关于自适应选择明文(CPA)的语义安全或关于自适应选择密文攻击(CCA)的语义安全。对于NewHope方案,这已经示例性地被示出,其也可以被实例化为CPA安全或CCA安全PKE。注意,NewHope-Simple和其他方案是对被称为LPR10的方案的简单改编。基于格的签名方案的示例是Dilithium、BLISS、GLP12、Flacon和Tesla。
关于基于格的密码术的技术挑战
当在计算机、微控制器或如硬件-软件协同设计方法中的集成电路或如固定电路上实现基于格的密码术和基于格的密码系统(例如,NewHope、Dilithium、NTRU)时,在执行密码操作(例如,签名、加密、解密、验证、密钥生成)时出现多个技术挑战。该领域中出现的此类技术挑战的示例如下:
1.通过使用专门优化的算法执行密码系统的某些步骤并且通过使用可用目标硬件的所有特征(特殊的寄存器或指令、在不标准的硬件中实现的特殊功能,如协处理器)来实现最佳性能。
2.使用最少量的易失性或非易失性存储器来执行密码操作。
3.给定性能目标,利用最少量的逻辑电路和存储器单元(例如,通过CMOS工艺形成)来实现密码操作或其部分。
4.考虑挑战1至3或者与挑战1至3相结合或不与挑战1至3相结合,有效且全面的防范实施攻击(也被称为物理攻击、观察性攻击、侵入性和半侵入性攻击)。
应当注意,当在安全控制器上或在任何不利环境中(例如,在硬件安全模块上)执行密码系统时,需要针对实施攻击/物理攻击的保护。可能的攻击是侧信道攻击,其中攻击者试图通过观察设备的物理行为——如功耗(例如,简单和差分功率分析(SPA/DPA))、电子发射或温度——来获得秘密信息。此外,在攻击者试图在执行流或数据中引入干扰(例如,利用激光)以获得秘密信息或影响设备行为的情况下,故障攻击是可能发生的。
实施攻击的显著特征在于:这种攻击不利用方案的数学描述中的弱点(这将被认为是密码分析),而是利用在特定设备上实现该方案的方式。通常,对手在执行实施攻击时被认为可以访问设备。通常,像智能卡的设备以如下方式被构造:物理效应(例如,功耗或辐射)被伪装,以使它难以获得安全关键资产。对抗物理攻击的常用方法针对随机化的值来执行以防止侵入性和非侵入性攻击,其目的是从设备中提取秘密密钥或中间值变得更加困难。然而,以有效方式实现这种随机化或冗余并且不开放进一步的攻击可能性是技术挑战。
在下文中,描述了关于基于格的密码术的实现的细节。
符号和数学背景
在本文中以下符号、缩写和附图标记被全局地使用,而其他对象如变量和多项式可以局部地定义:
q 是整数,
k 是整数,
n 是整数,
mod q 是对在整数上定义的q取模的取模运算,其结果在[0,q-1]的范
围内,
是整数(在没有小数部分的情况下写的数字),
是有理数(可能具有小数部分的数字),
Zq 是对取模的整数的环,其是对取模的整数的等价类的商环
商环是抽象代数中的结构,
是不确定的,
是具有整数的最大限度的整数多项式的环,
是对取模的整数多项式的环;元素可以由限
度小于整数的整数多项式来表示或者可替选地作为系数向量
是对多项式和整数两者取模的整数多项式的环;元素
可以由限度小于的整数多项式(其中系数被
减去模)来表示或者可替选地作为系数向量
是多项式(用粗体书写),其是中的元素,
v[i] 是向量或多项式在位置i处的系数,
误差分布,
从集合或分布中随机采样,
整数上的离散高斯分布,具有标准偏差
具有整数参数的二项分布,
均匀分布,
二进制记数法中的数字,使得
中多项式的均匀随机采样,其中所有系数在中是均匀
随机的,
FFT 快速傅里叶变换,
NTT 数论变换,
DPA 差分功率分析,
SPA 简单功率分析,
ALU 算术逻辑单元。
理想格与多项式运算
目前,存在两种基于格的密码术:基于理想格的密码术和基于标准格的密码术。中间地带是所谓的基于模块化格的密码术,它混合了理想格和标准格的构思。
基于理想格的密码术中的基本操作是商环中的多项式乘法、加法或减法
Rq=Zq[x]/(f),
其中,模是整数,并且维数(系数的数量)是整数多项式可以被表示为值的数组,并且整数位置处的单个值可以被访问。值的数组是物理表示(例如,在存储器中),而多项式是数学对象。在本文中,数组和多项式被隐含地视为相同,原因是它们可以相互转换或仅仅是不同的表示。总之,基于格的密码系统方案中的所有主要计算可以对对q取模的值的数组(即,系数在Zq中)来执行。如果保存值的数据结构仍然具有足够的可用空间并且可以仅在一些计算结束时执行减模q(所谓的“惰性归约”),则当值大于或等于q或者可以允许值增大时,可以执行减模q。
对于商环,可以定义如加法、减法、乘法和倒置的操作,这些是累积和关联的。关于的加法可以被定义为
其中,是整数,的第i个系数,的第i个系数,是不确定的。减法以相同的方式起作用,其中“+”被“-”代替。
还可以计算多项式的乘积它被定义为多项式乘法,其后是对整数减模以及对多项式减模。从而
如果如上所述实现或执行算法,则有时也将其称为“教科书”乘法算法,并且在Zq中需要大约次乘法。通过考虑当(负循环卷积)时的事实,可以简化多项式乘法的公式,但是也可以相应地使用相似的多项式。从而
其中,是整数,q是整数,的第i个系数,的第j个系数,是不确定的。
稀疏乘法
通过利用多项式的特定属性的算法可以获得多项式运算的一些效率。作为示例,多项式可能仅具有非零的几个系数,可能仅由一或负一的系数组成,或者通常可能具有小的系数,或者可能表现出这些属性的组合。这种多项式运算的优化是标准技术,并且在仅设置少量系数的情况下有时被称为稀疏乘法。
NTT
如上所述,遵循用于多项式乘法的教科书公式的实现将需要n2个模乘法,即,Zq中的乘法,因此(在计算上)相当昂贵。快速多项式乘法的另一种方法是数论变换(NTT)。NTT可以被看作在有限域或环上定义的快速傅里叶变换(FFT)。因此,FFT的所有复数单位根被交换用于整数单位根,并且计算在对整数q取模的整数的环中执行。使用NTT的的多项式乘法可以被计算为其中表示系数乘法,表示多项式的变换,表示多项式b的变换,NTT-1()表示逆变换。对于系数乘法可以被定义为
NTT的优点在于:当使用有效算法时,操作仅需要大约n log2 n个模乘法,并且减模f=xn+1(所谓的循环卷积属性)或f=xn-1可以集成到NTT算法中。因此,n点NTT足以与n系数多项式一同起作用。然而,NTT也可以用于对f的任意值执行有效乘法。在这种情况下,使用2n点NTT,然后执行减模f。
为了正式地引入NTT,参数的选择受到限制,并且f=xn+1和素数整数q≡1 mod 2n被设置,使得NTT存在。对于多项式
其中
被定义,其中ω是中的第n个原始单位根并且
逆变换类似于正向变换。对于多项式 被定义,其中
按照先前给出的定义直接计算NTT将具有二次复杂度,并且不会比教科书方法更有效。因此,为了使用卷积定理实现快速多项式乘法,需要用于计算NTT的快速算法。在Zq中具有O(n log n)运算的NTT的最直接实现是Cooley-Tukey基二时间抽取(DIT)算法或频率抽取(DIF)算法。DIT NTT算法递归地将计算分成NTT的偶数输入上的子问题和奇数输入上的子问题。
多项式逆的计算
在签名算法或密钥生成中经常需要多项式逆的计算。这意味着一些算法需要针对来计算多项式的逆使得计算Zq以及Rq中整数的乘法逆的方法是费马(Fermat)小定理。除了专家已知的技术,如扩展欧几里德算法,计算逆的有效方法是将NTT与费马小定理一起使用。已知费马小定理主要用于教导如何计算Zq中整数的乘法逆。使用这种方法,多项式被转换到NTT域作为然后费马小定理被使用,其表明在对于适当选择的Rq而言可逆的情况下对于取幂方法,如(从右到左或从左到右)平方和乘法或加法链可用。当被转换到NTT域时,乘法只是系数乘法。作为示例,可以被计算为以及其通常比使用如教科书或Karatsuba乘法的算法计算更快。利用加法链,系数乘法的数量可以根据q的份额进一步减少。作为q=12289的示例,可以使用需要18次多项式乘法的加法链。使用平方和乘法算法逐位处理指数12289-2=12287=10111111111111b将需要25次多项式乘法。
随机性和随机采样
通过a←$S,表示从某个集合S或特定分布S独立地且随机均匀地选择变量的动作。注意,在这方面“随机的”或“均匀的”(例如,随机地选择或任何随机值)可以是真正的随机、伪随机或确定性方法以获得值。因此,根据实施方式使用的这种“随机性”或任何随机效果的属性可以为:攻击者不知道该值并且对于至少一部分操作值是不同的。随机性特别在“随机地”确定(例如,生成或选择)的值之间添加一定水平的熵。对于有限S,S上的均匀分布由U(S)表示。此外,符号用于表示的均匀随机采样,其中a的所有系数都是[-k,k]。对于概率分布χ,假设可以有效地执行采样,符号t←$χ用于表示来自χ的变量t的随机采样。符号用于表示的随机采样,其中系数是独立的并且遵循χ。
采样意味着生成遵循特定指定分布的随机数据。采样器被定义为一段代码或一组指令或执行生成的硬件电路。通常,采样器可以访问(均匀)随机的源,或者利用从中生成伪随机数据的种子来启动。秘密噪声或误差向量的采样是基于格的公共密钥加密(PKE)、密钥交换、签名方案和其他方案(例如,同态加密)中的基本任务。这种噪声或误差向量的特定属性是它们通常很小(即,具有接近零的系数)。在整数上具有均值0和标准偏差σ>0的离散高斯分布DZ,σ将概率ρσ(x)/pσ(Z)与x∈Z相关联,其中并且因此,通过a←$DZ,σ,表示根据DZ,σ对值d∈Z进行随机采样的过程。通过表示维数为n的多项式的随机采样的过程,其中系数是独立的并且根据DZ,σ分布。如果使用累积分布函数(CDF)或累积分布表(CDT)或利用高精度计算访问随机比特的源,则可以实现根据离散高斯分布产生值的采样器。其他方法是Knuth-Yao算法、拒绝采样或ziggurat算法。
由于高斯采样在计算工作量方面仍然是昂贵的,因此可以使用比离散高斯更容易采样的噪声分布。这可能很重要,原因是密码方案的执行通常需要来自噪声或错误分布的512到4096个样本。更简单的要使用的分布是二项分布ψk。来自ψk的样本可以通过计算来生成,其中bi,bi′∈{0,1}是均匀的独立比特。因此,通过a←$ψk,表示根据ψk对值d∈Z进行随机采样的过程。通过表示对维数为n的多项式进行随机采样的过程,其中系数是独立的并且根据ψk分布。二项分布的标准差为并且方差为k/2。从ψk采样的替代方法是计算其中bi∈{0,1}是均匀的独立比特。
可以在假设访问随机比特的源的情况下实现二项分布的采样器。一种方法是获得两个长度为k的随机比特串v1、v2,以计算整数汉明权重h1=HW(v1)和h2=HW(v2),然后输出h1-h2作为采样器的输出。
关于格的数学问题
基于格的密码系统的安全性可以基于或可以与某些问题及其变型相关。本领域技术人员已知的这些具体问题是:
带错误学习问题(LWE)
带错误环学习问题(RLWE)
短整数解问题(SIS)
环短整数解问题(RSIS)
NTRU问题
在下文中,给出了RLWE问题的非正式定义。
对于作为2的整数幂的n和整数q,令R表示环Rq=Zq[x]/(xn+1)。对于m>0个样本、模q和具有Z上的误差分布θ,RLWE问题被定义如下:
对于n、q的适当值、适当选择的θ、秘密的两者在
Zq中具有均匀系数,假设整数m个样本的形式其中具有从θ绘制的恢复秘密多项式的系数。
RLWE问题将众所周知的LWE问题转换为环设置。RLWE的难度可以基于关于理想格的短向量问题的最坏情况难度,理想格是标准格的子类。RLWE问题还具有决策版本(决定在给定多项式是来自RLWE分布还是均匀的),其被认为与某些参数的搜索版本的难度相等。还可以从误差分布θ而不是均匀分布U(Rq)对秘密进行采样。这种形式的RLWE(以及标准LWE)问题有时被称为“Hermite正常形式”。已经证明,当误差分布是高精度的离散高斯并且以某种方式选择参数时,RLWE问题很难。然而,在实践中,对于二次分布或者对于小的均匀分布θ=U(Rq,k),以较低精度采样的离散高斯也难以解决该问题。
基于标准格的密码术中的操作包括矩阵-矩阵乘法、矩阵-向量乘法或向量加法和减法,其中系数是对q取模的整数的环中的值。
公共密钥加密和密钥交换方案
RLWE问题的属性可以用于实现语义上安全的公共密钥加密方案,其具有对决策RLWE的减少。因此,在普通版本中,仅针对选择明文攻击(CPA)的安全性被实现并且被归类为基于格的密码系统,原因是难度基于RLWE问题的难度,RLWE问题的难度本身基于某些格问题的难度。该方案的一般思想是隐藏变为公共密钥(-只是术语)的RLWE样本内的秘密密钥并且利用RLWE样本来隐蔽消息。因此,公共密钥和每个密文对被动对手均匀地随机出现,并且实现了语义安全。本文中引用的方案通常归因于Lyubashevsky、Peikert和Regev或Lindner和Peikert,有时也被称为LPR10。例如,以下过程被执行。
RLWE.CPA.Gen:
1.选择
2.
3.
4.公共密钥(pk):
5.秘密密钥:
6.返回
RLWE.CPA.Enc
1.
2.
3.
4.
5.返回
RLWE.CPA.Dec
1.返回解码
该方案通常在多项式环Rq中实例化,但其他环的使用是直截了当的。误差分布θ的可能选择是其密钥生成过程RLWE.CPA.Gen只需要从误差分布θ中随机采样两个噪声多项式公共密钥是多项式可以在密钥生成期间(作为每个公共密钥的一部分)选择或者被视为全局常量,或者基于种子在运行中生成。多项式仅在密钥生成期间使用并且在之后被丢弃,而是秘密密钥。从公共密钥中提取被认为等同于解决RLWE问题。
加密过程RLWE.CPA.Enc需要从误差分布θ中对三个噪声多项式进行采样。为了在密文中隐藏消息,消息被编码为并且被加到密文由组成,基本上都是Hermite正常形式中的RLWE样本。针对选择明文攻击(CPA)的安全性是从加密算法返回的所有内容与随机无法区分的事实得出的。
解密过程RLWE.CPA.Enc需要知道秘密密钥因为不然的话在计算时不能消除大项n比特消息的编码是必要的,原因是在计算之后仍然存在一些小噪声(即,)并且将在解密之后禁止检索消息:
注意,因为所有噪声项都是从误差分布θ中采样的,所以噪声相对较小。为了处理剩余噪声,提出了各个系数的阈值编码功能。
用于实例化方案的示例参数是:
(n=256,q=4093,σ=8.35),大约100比特安全性归因于它,
(n=512,q=12289,σ=11.31),大约128比特安全性归因于它,以及
(n=1024,q=12289,k=16),大约256比特安全性归因于它。
为了在主动的对手出现时实现语义安全,本领域专家可以直接应用选择密文攻击(CCA)转换,如由Targhi和Unruh基于Fujisaki-Okamoto进行的转换。
Güneysu Lyubashevsky (GLP12)方案的描述
在2012年,Güneysu、Lyubashevsky和提出了签名方案,该签名方案是Lyubashevsky先前的方案以及附加优化的组合,其允许将签名长度减少几乎二分之一。该方案的安全性基于格相关问题,其中一个是给定一对有序多项式其中是从Rq均匀选择的并且其中从{-k,...,k}n中均匀地选择,并且被要求找到有序对使得因此它类似于RLWE问题。
GLP签名方案有两种版本。在下文中,描述了与“基本的”变型相比而言“优化的”变型,包括用于签名的第二分量的压缩算法。它包括以下过程:
GLP.GEN()
1)
2)
3)
4)返回
GLP.SIGN
1)
2)
3)
4)
5)如果则转到步骤1
6)
7)如果那么转到步骤1
8)返回
GLP.VERIFY
1)如果并且则接受。
密钥生成算法GLP.GEN()基本上需要对随机多项式进行采样,然后进行一次多项式乘法和加法。多项式在{-1,0,1}中具有小系数,而的所有系数在Zq中均匀随机。私钥由值组成,公共密钥为从公共密钥中提取秘密密钥需要对手来解决由Güneysu、Lyubashevsky和引入的所谓的决策紧凑型背包(DCK)问题的搜索版本。
签名过程GLP.SIGN获取消息μ∈{0,1}*、秘密密钥sk和公共密钥pk作为输入。在1中,两个多项式y1,y2被随机均匀地选择,其中系数在[-k,k]的范围内。在2中,哈希函数H被应用于的高阶位(由(*)(1)表示),其通过解释哈希输出的前160位来输出多项式作为稀疏多项式。在3和4中,用于通过计算来隐蔽私钥。如果的所有系数都在[-(k-32),k-32]的范围内,则该过程才继续,否则重新开始。然后在步骤6中通过压缩函数将多项式压缩为因为只有的某些部分才是维持方案的安全性所必需的,所以这种压缩是签名的积极的大小减小的一部分。对于已实现的参数集,压缩具有低于2%的导致整个签名过程重新开始的失败几率。
验证过程GLP.VERIFY首先检查的所有系数是否在[-(k-32),k-32]范围内,否则不接受无效签名。接下来,被计算,被转换为高阶位并且与消息μ一起被执行哈希算法。然后验证等于来自签名的
在下文中,描述了根据各种实施方式的用于有效地随机化基于格的密码系统的执行以防止故障和侧信道攻击的方法。
基于理想格的密码系统中的标准操作(例如,如NewHope的密钥交换、公共密钥加密或如BLISS或GLP12的签名方案)是的计算,其中所有元素都是多项式其中用于所谓的秘密的分布θ’,并且用于所谓的误差的分布θ”。分布θ′和θ″有时是相同的。针对一个或另一个的可能选择也是均匀分布U(Rq)、离散高斯分布DZ,σ(例如,在LPR10中)、二项分布ψk(例如,在NewHope中)、小均匀分布U(Rq,k)(例如,在GLP12中)。形式为的运算可以在NewHope的所有运算中找到,但也可以在BLISS、GLP12和其他基于格的密码系统中找到。一般来说,值被认为是秘密的,并且应该向对手隐藏。它们可能是短暂的值(仅使用一次的值),或者它们也可以是多次执行中使用的秘密密钥。因此,需要防止侧信道攻击。
根据各种实施方式,在假设攻击者可能知道或者可能能够以一些方式获得一个或另一个值或部分信息的情况下计算时,使用随机化的方案。应该注意,由于RLWE问题的推测难度,因此假设难以从t中提取
根据实施方式,使用攻击者不知道的盲系数或盲多项式来随机化值
根据实施方式,执行以下过程“ComputeBlindedInv”以计算
ComputeBlindedInv
输入:
输出:
1.的生成
a.采样盲多项式
b.计算盲多项式的逆如果不可逆,则跳转到1。
2.计算
3.计算
4.计算
5.计算
由于攻击者不知道因此变得难以利用在的计算中的泄漏。另外,难以利用在的计算中的泄漏,原因是并因此被随机化。的最终乘法直接产生即,预期结果。
当使用NTT时,可以假设已经被转换到NTT域。此外,可以仅对随机进行采样,然后使用它就好像它已经在NTT域中一样。NTT将均匀多项式映射到均匀多项式,因此不必首先变换均匀多项式(NTT是一对一映射)。根据实施方式,执行以下用于在NTT域中计算的过程“ComputeBlindedInvNTT”。
ComputeBlindedInvNTT
输入:
输出:
1.的生成
a.采样盲多项式
b.假设是NTT格式并设置(可能为NTT映射均匀到均匀)
c.计算盲多项式的逆这可以使用费马小定理在NTT域中完成。如果不可逆,则跳转到1。
2.计算
3.计算
4.计算
5.计算
6.计算
在ComputeBlindedInv和ComputeBlindedInvNTT的操作1中,随机对的计算在计算上是昂贵的。选择和计算新的对可能花费太多资源。因为随机化会以这种方式被削弱,因此在多次执行中重用是危险的。然而,可以使用的方法是可获得的。该方法当在执行之间使用NTT时要存储对并且要在每次使用之前更新这个对并且可选地要存储更新的值。
可以通过将两个值都提高到随机整数幂x来更新多项式对作为示例,可以通过计算来更新对当使用NTT时也是如此。在NTT的情况下,可以使用平方和乘法算法或加法链在NTT域中有效地计算随机整数幂x的取幂。
形成恒定秘密密钥的情况下,根据一个实施方式,它们可以存储在NTT域中,但是也可以以盲方式存储在非易失性或易失性存储器中。为了计算用于存储的盲版本(例如,在密钥生成期间),可以执行以下过程:
1.
2.
3.
4.
5.的生成,如ComputeBlindedInvNTT中的1
6.输出
现在可以使用三元组 的值由乘法地隐蔽。例如,执行以下过程ComputeBlindedInvNTTSharedKey。
ComputeBlindedInvNTTSharedKey
输入:
输出:
1.的生成,如在ComputeBlindedInvNTT的1中
2.计算
3.计算
4.计算
5.计算
6.计算
过程ComputeBlindedInvNTTSharedKey对已经存储在NTT域中的乘法隐蔽秘密进行操作,这对于效率非常重要。然后,它使用来自ComputeBlindedInvNTT的方法在它被使用并且与可能的公共值进行组合之前执行掩码的更新。
如果效率是ComputeBlindedInv、ComputeBlindedInvNTT和ComputeBlindedInvNTTSharedKey所关注的,那么选择也是仅通过计算而不是通过盲化来盲化秘密于是过程是:
1.的生成
2.计算
3.计算
4.计算
根据一个实施方式,使用低权重盲化的优化被使用。该思想是:可以优化乘以稀疏多项式。如果l<<n系数被设置(因此存在n-l个零系数),则多项式是稀疏的。乘法过程只能扫描稀疏多项式的非零值,或者仅直接获得具有设置位置及其值的列表。这样,要计算的内积的量从n减少到l。此外,可以优化稀疏多项式的NTT以说明该事实。在下面给出了该过程的示例。
ComputeBlindedSparse
输入:
输出:
1.采样盲多项式使得仅l个系数被设置。从U(Zq)均匀地随机采样这l个系数。
2.通过使用快速稀疏乘法算法来计算
3.通过使用快速稀疏乘法算法来计算
4.计算
5.计算
6.计算
7.计算(是公共值)
8.计算
9.计算
10.计算
用于盲化的另一种方法是通过以下过程给出的:
ComputeBlindedAddNTT
输入:
输出:
1.盲值的生成
a.采样盲多项式
b.计算盲多项式的NTT形式
2.计算
3.计算
4.计算
5.计算
6.计算(是公共值)
7.计算
8.计算
9.计算
该过程的优点是对秘密值的NTT的计算()已经被盲化。要执行的附加计算是NTT(z)以及以消除盲化。然而,与其他盲化或隐蔽方法相比,在大多数架构上逐点乘法和加法相当便宜,并且一个附加NTT非常有利。
存储或更新的方法也是可能的。一种方法是存储并使该对的每个分量乘以随机整数r←$Zq。因此这也可以被解释为使用的随机倍数进行盲化。此外,NTT是线性的。因此,可以计算其中x是不确定的,r是0到n的范围内的随机整数。基本上,这是通过r的偏移。可以相当有效地将相同的偏移应用于值因此可以通过使用这个技巧来生成更新的对 的多个偏移值的总和。并且相当于这些偏移应用于
图3示出了处理电路300,其示出了上述过程的实现。
处理电路300包括可以保存多项式(P0至P4)302至306的存储器301、ALU(算术逻辑单元)307、具有用于各种操作309至311的指令的控制器308和随机采样器312。
处理电路300可以是处理设备的一部分,并且处理电路300的存储器301和处理电路300的控制器307可以由处理设备的其他部件经由相应的接口来访问。
处理可以根据本文中描述的过程来执行各种命令,并实现处理电路300的内部状态的随机化。
在下文中,示出了通过使用如在ComputeBlindedInv中详述的上述方法来保护GLP12签名方案的密钥生成以防止实施攻击的实施方式。该方法是:在执行多项式乘法之前,利用随机多项式来随机化秘密密钥分量
GLP.GEN-PROTECTION1()
5)
6)生成
7)
8)
9)计算
10)
11)计算
12)计算
13)计算
14)返回
可替选地,可以返回而不是普通的使得秘密密钥以随机方式被存储。
该过程可以与附加的随机化相结合。假设采样器MASKED-SAMPLER从R1中采样多项式但是通过随机化来隐藏内部值并以共享方式输出值s。这样,采样器输出其中s’=s+s”,并且其中s”来自U(Rq)。该过程的示例如下。
GLP.GEN-PROTECTION2()
1)
2)生成
3)
4)
5)
6)
7)
8)
9)计算
10)计算
11)返回
另一种选择是不对秘密密钥的已经随机化的值进行随机化,而是在关键计算期间随机化公共值:
GLP.GEN-PROTECTION3()
1)
2)生成
3)
4)
5)
6)
7)
8)计算
9)计算
10)返回
类似地,该过程可以集成到结合ComputeBlindedInvNTT和ComputeBlindedAddNTT提议的RLWE公共密钥加密方案中。RLWE.CPA.Dec算法需要计算和最终解码,其中是关键资产。在此,秘密密钥由ComputeBlindedAddNTT保护,并且公共值由乘法ComputeBlindedInvNTT隐蔽。
如在对解码器的输入进行加性共享时所描述的,可以通过隐蔽的解码器来保护解码。因此对于 以及对于m,m’,m”∈{0,1}*,消息m=m”xor m’。假设已经以NTT格式存储为示例性过程如下。
RLWE.CPA.Dec-PROTECTION
2.的生成
3.
4.
5.
6.
7.计算
8.计算
9.计算
10.计算
11.返回
MaskedDecoder的输入是因此
总之,根据各种实施方式,提供了如图4所示的方法。
图4示出了流程图400,其说明了用于执行基于格的密码操作的方法。
在401中,噪声多项式、秘密多项式和公共多项式被获得(不一定按此顺序)。
在402中,通过将噪声多项式、秘密多项式和公共多项式中的至少一个与随机盲多项式相乘来伪装噪声多项式、秘密多项式和公共多项式中的至少一个。
在403中,基于伪装的至少一个多项式来计算噪声多项式与公共多项式和秘密多项式的乘积之和。
在404中,基于所计算的噪声多项式与公共多项式和秘密多项式的乘积之和来确定基于格的密码操作的结果。
根据各种实施方式,换句话说,通过将用于计算t=a·s+e的多项式a(公共多项式)、s(秘密多项式)和e(噪声多项式)中的至少一个与随机(盲或隐蔽)多项式相乘来伪装(即,盲化或隐蔽)用于计算t=a·s+e的多项式a(公共多项式)、s(秘密多项式)和e(噪声多项式)中的至少一个。
该方法可以包括确定噪声多项式、秘密多项式和公共多项式中的一个或更多个。噪声多项式、秘密多项式和公共多项式也可以由密码系统预先确定。噪声多项式和秘密多项式可以例如是秘密密钥,并且公共多项式可以是系统常数。
秘密多项式可以例如通过从集合(其不对应于均匀分布)或诸如均匀分布、离散高斯分布、小均匀分布或稀疏分布(即,多项式具有许多等于零的系数以及很少的非零系数)的分布中随机采样来确定。
密码操作可以对由通信设备(例如,如本文中描述的处理设备)从另一通信设备接收的数据进行操作。例如,密码操作可以从由通信设备经由通信信道接收的数据中提取有用数据。有用数据可以例如包括控制数据,并且通信设备可以基于提取的控制数据来执行控制动作。例如,汽车中的微控制器可以以这种方式接收控制数据,并且可以基于控制数据来执行控制动作。通信设备还可以存储或转发通过密码操作处理的数据。因此,密码操作可以用于保护两个通信设备之间的通信信道,其中基于其保护通信信道的通信端点(即,通信设备)中的秘密数据(噪声多项式和秘密多项式)通过在当它们用于计算时对它们进行盲化在通信设备中进行保护。因此可以确保通信信道和传输数据的安全性。
可以通过处理设备——例如参照图1描述的处理设备(不一定具有图1中所示的所有部件)——来执行该方法。可以由硬件加速器来执行t的计算。例如,可以由多项式乘法处理器——即,为多项式乘法优化的处理器——来执行a和s的乘法。可以通过安全处理器——即,“硬化”设备——来至少部分地执行该方法。
图5示出了用于执行基于格的密码操作的处理设备500。
处理设备500包括存储器501,该存储器501被配置成存储噪声多项式、秘密多项式和公共多项式。
处理设备500还包括隐蔽电路502,该隐蔽电路502被配置成:通过将噪声多项式、秘密多项式和公共多项式中的至少一个与随机盲多项式相乘来伪装噪声多项式、秘密多项式和公共多项式中的至少一个。
另外,处理装置500包括计算电路503,该计算电路503被配置成:基于所伪装的至少一个多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和。
处理设备500还包括密码电路504,该密码电路504被配置成:基于所计算的公共多项式和秘密多项式的乘积与噪声多项式之和来确定基于格的密码操作的结果。
处理设备500可以包括生成电路,该生成电路被配置成:在存储噪声多项式、秘密多项式和公共多项式中的一个或更多个之前生成噪声多项式、秘密多项式和公共多项式中的一个或更多个。处理设备500还可以包括接收器,该接收器被配置成:接收噪声多项式、秘密多项式和公共多项式中的一个或更多个的表示。应当注意,在图4的方法的上下文中描述的任何特征和实施方式对于图5的处理设备类似地有效,反之亦然。
通信设备(例如,通信子系统、应用处理器和密码电路)可以例如由一个或更多个处理器实现。“处理器”可以被理解为任何类型的逻辑实现实体,其可以是专用电路系统或执行存储在存储器中的软件、固件的处理器或其任何组合。因此,“处理器”可以是硬线逻辑处理器或诸如可编程处理器的可编程逻辑处理器,例如微处理器。“处理器”也可以是执行软件例如任何类型的计算机程序的处理器。将在下面更详细地描述的各个功能的任何其他类型的实现也可以被理解为“处理器”。
在下面描述了各种示例:
示例1是用于执行如图4所示的基于格的密码操作的方法。
示例2是根据示例1的方法,其中,秘密多项式、噪声多项式和公共多项式中的一个或更多个表示一个或更多个秘密密码密钥。
示例3是根据示例1或2的方法,其中,公共多项式和秘密多项式的乘积与噪声多项式之和表示公共密钥或密文。
示例4是根据示例1至3中任一示例的方法,包括:通过将噪声多项式和秘密多项式与同一随机盲多项式或不同的盲多项式相乘来伪装噪声多项式和秘密多项式。
示例5是根据示例1至4中任一示例的方法,包括:伪装噪声多项式、秘密多项式和公共多项式中的至少一个,以防止关于秘密多项式或噪声多项式的信息的泄漏。
示例6是根据示例1至5中任一示例的方法,包括:伪装噪声多项式、秘密多项式和公共多项式中的至少一个,以防止对秘密多项式、噪声多项式或这两者的物理攻击。
示例7是根据示例1至6中任一示例的方法,包括:基于随机数发生器的输出来生成随机盲多项式。
示例8是根据示例1至7中任一示例的方法,包括:通过从均匀分布进行采样来生成随机盲多项式。
示例9是根据示例1至8中任一示例的方法,包括:通过从误差分布随机采样来确定噪声多项式。
示例10是根据示例9的方法,其中,误差分布是均匀分布、离散高斯分布或小均匀分布。
示例11是根据示例1至10中任一示例的方法,包括:通过从集合或均匀分布、离散高斯分布、小均匀分布或稀疏分布随机采样来确定秘密多项式。
示例12是根据示例1至11中任一示例的方法,其中,噪声多项式、秘密多项式、公共多项式和盲多项式是对预定多项式取模的多项式,其中所述预定多项式的系数对预定整数取模。
示例13是根据示例1至12中任一示例的方法,包括:对于多个不同的公共多项式,针对同一秘密多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和。
示例14是根据示例13的方法,包括:对秘密多项式和噪声多项式中的至少一个盲化,以防止攻击者从多个不同的公共多项式的计算中提取秘密多项式的信息。
示例15是根据示例13或14的方法,包括:对于不同的公共多项式,在计算公共多项式和秘密多项式的乘积与噪声多项式之和之间更新随机盲操作。
示例16是根据示例1至15中任一示例的方法,包括:通过以下操作来伪装噪声多项式和秘密多项式中的至少一个:将噪声多项式和秘密多项式中的至少一个与随机盲多项式相乘,并且将相乘的结果与同一随机盲多项式或不同的随机盲多项式相加;或者将噪声多项式和秘密多项式中的至少一个与随机盲多项式相加,并且将相加的结果与同一随机盲多项式或不同的随机盲多项式相乘。
示例17是根据示例1至16中任一示例的方法,包括:执行噪声多项式、秘密多项式和公共多项式中的至少一个的伪装,并且在数论变换域中基于所伪装的至少一个多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和。
示例18是根据示例17的方法,包括:将噪声多项式、秘密多项式和公共多项式变换到数论变换域中,以及将公共多项式和秘密多项式的乘积与噪声多项式之和的结果从数论变换域变换回去。
示例19是根据示例1至18中任一示例的方法,包括:在签名或公共密钥密码处理中执行基于格的密码操作。
示例20是如图5所示的用于执行基于格的密码操作的处理设备。
示例21是根据示例20的处理设备,其中,秘密多项式、噪声多项式和公共多项式中的一个或更多个表示一个或更多个秘密密码密钥。
示例22是根据示例20或21的处理设备,其中,公共多项式和秘密多项式的乘积与噪声多项式之和表示公共密钥或密文。
示例23是根据示例20至22中任一示例的处理设备,包括:通过将噪声多项式和秘密多项式与同一随机盲多项式或不同的盲多项式相乘来伪装噪声多项式和秘密多项式。
示例24是根据示例20至23中任一示例的处理设备,其中,隐蔽电路被配置成:伪装噪声多项式、秘密多项式和公共多项式中的至少一个,以防止关于秘密多项式或噪声多项式的信息的泄漏。
示例25是根据示例20至24中任一示例的处理设备,其中,隐蔽电路被配置成:伪装噪声多项式、秘密多项式和公共多项式中的至少一个,以防止对秘密多项式、噪声多项式或这两者的物理攻击。
示例26是根据示例20至25中任一示例的处理设备,该处理设备包括生成电路,该生成电路被配置成:基于随机数发生器的输出来生成随机盲多项式。
示例27是根据示例20至26中任一示例的处理设备,该处理设备包括生成电路,该生成电路被配置成:通过从均匀分布进行采样来生成随机盲多项式。
示例28是根据示例20至27中任一示例的处理设备,该处理设备包括生成电路,该生成电路被配置成:通过从误差分布随机采样来确定噪声多项式。
例29是根据示例28的处理设备,其中,误差分布是均匀分布、离散高斯分布或小均匀分布。
示例30是根据示例20至29中任一示例的处理设备,该处理设备包括生成电路,该生成电路被配置成:通过从集合或均匀分布、离散高斯分布、小均匀分布或稀疏分布随机采样来确定秘密多项式。
示例31是根据示例20至30中任一示例的处理设备,其中,噪声多项式、秘密多项式、公共多项式和盲多项式是对预定多项式取模的多项式,其中预定多项式的系数对预定整数取模。
示例32是根据示例20至31中任一示例的处理设备,其中,计算电路被配置成:对于多个不同的公共多项式,针对同一秘密多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和。
示例33是根据示例32的处理设备,其中,隐蔽电路被配置成:对秘密多项式和噪声多项式中的至少一个进行盲化,以防止攻击者从多个不同的公共多项式的计算中提取秘密多项式的信息。
示例34是根据示例32或33的处理设备,其中,隐蔽电路被配置成:对于不同的公共多项式,在计算公共多项式和秘密多项式的乘积与噪声多项式之和之间更新随机盲操作。
示例35是根据示例20至34中任一示例的处理设备,其中,隐蔽电路被配置成通过以下操作来伪装噪声多项式和秘密多项式中的至少一个:将噪声多项式和秘密多项式中的至少一个与随机盲多项式相乘,并且将相乘的结果与同一随机盲多项式或不同的随机盲多项式相加;或者将噪声多项式和秘密多项式中的至少一个与随机盲多项式相加,并且将相加的结果与同一随机盲多项式或不同的随机盲多项式相乘。
示例36是根据示例20至35中任一示例的处理设备,其中,隐蔽电路和计算电路被配置成:执行噪声多项式、秘密多项式和公共多项式中的至少一个的伪装,并且在数论变换域中基于所伪装的至少一个多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和。
示例37是根据示例36的处理设备,其中,隐蔽电路和计算电路被配置成:将噪声多项式、秘密多项式和公共多项式变换到数论变换域中,以及将公共多项式和秘密多项式的乘积与噪声多项式之和的结果从数论变换域变换回去。
示例38是根据示例20至37中任一示例的处理设备,该处理设备被配置成:在签名或公共密钥密码处理中执行基于格的密码操作。
根据另一示例,提供了一种用于执行基于格的密码操作的处理设备,该处理设备包括:
获取装置,其被配置成:获取噪声多项式、秘密多项式和公共多项式;
伪装装置,其被配置成:通过将噪声多项式、秘密多项式和公共多项式中的至少一个与随机盲多项式相乘来伪装噪声多项式、秘密多项式和公共多项式中的至少一个;
计算装置,其被配置成:基于所伪装的至少一个多项式来计算公共多项式和秘密多项式的乘积与噪声多项式之和;以及
确定装置,其被配置成:基于所计算的公共多项式和秘密多项式的乘积与噪声多项式之和来确定基于格的密码操作的结果。
应当注意,在一个处理设备的上下文中描述的特征和示例对于其他处理设备和方法也是有效的,反之亦然。
尽管本文中已经说明和描述了特定实施方式,但是本领域普通技术人员将理解,在不脱离本发明的范围的情况下,可以用各种替代和/或等同实现来代替所示出和描述的特定实施方式。本申请旨在涵盖本文中讨论的特定实施方式的任何改编或变型。因此,本发明旨在仅由权利要求及其等同物限制。
附图标记
100 处理设备
101 CPU
102 RAM
103 NVM
104 密码模块
105 总线
106 模拟模块
107 I/O接口
108 LBC核
109 AES核
110 SHA核
111 ECC核
112 HRNG
200 处理设备
201 硬件安全模块
202 控制器
203 密码模块
204 AES核
205 LBC核
206 HRNG
207 应用处理器
208 NVM
209 RAM
210 接口
300 处理电路
301 存储器
302至306 多项式
307 ALU
308 控制器
309至311 操作
312 随机采样器
400 流程图
401至404 方法步骤
500 处理设备
501 存储器
502 隐蔽电路
503 计算电路
504 密码电路

Claims (20)

1.一种用于执行基于格的密码操作的方法,包括:
获得噪声多项式、秘密多项式和公共多项式;
通过将所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个与随机盲多项式相乘来伪装所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个;
基于所伪装的至少一个多项式来计算所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和;
基于所计算的所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和来确定所述基于格的密码操作的结果。
2.根据权利要求1所述的方法,其中,所述秘密多项式、所述噪声多项式和所述公共多项式中的一个或更多个表示一个或更多个秘密密码密钥。
3.根据权利要求1或2所述的方法,其中,所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和表示公共密钥或密文。
4.根据权利要求1至3中任一项所述的方法,包括:通过将所述噪声多项式和所述秘密多项式与相同的随机盲多项式或不同的盲多项式相乘来伪装所述噪声多项式和所述秘密多项式。
5.根据权利要求1至4中任一项所述的方法,包括:伪装所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个,以防止关于所述秘密多项式或所述噪声多项式的信息的泄漏。
6.根据权利要求1至5中任一项所述的方法,包括:伪装所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个,以防止对所述秘密多项式、所述噪声多项式或两者的物理攻击。
7.根据权利要求1至6中任一项所述的方法,包括:基于随机数发生器的输出来生成所述随机盲多项式。
8.根据权利要求1至7中任一项所述的方法,包括:通过从均匀分布采样来生成所述随机盲多项式。
9.根据权利要求1至8中任一项所述的方法,包括:通过从误差分布随机采样来确定所述噪声多项式。
10.根据权利要求9所述的方法,其中,所述误差分布是均匀分布、离散高斯分布或小均匀分布。
11.根据权利要求1至10中任一项所述的方法,包括:通过从集合或均匀分布、离散高斯分布、小均匀分布或稀疏分布随机采样来确定所述秘密多项式。
12.根据权利要求1至11中任一项所述的方法,其中,所述噪声多项式、所述秘密多项式、所述公共多项式和所述随机盲多项式是对预定多项式取模的多项式,其中所述预定多项式的系数对预定整数取模。
13.根据权利要求1至12中任一项所述的方法,包括:针对多个不同的公共多项式,针对同一秘密多项式来计算所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和。
14.根据权利要求13所述的方法,包括:对所述秘密多项式和所述噪声多项式中的至少一个进行盲化,以防止攻击者从针对所述多个不同的公共多项式的计算中提取所述秘密多项式的信息。
15.根据权利要求13或14所述的方法,包括:对于不同的公共多项式,在所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和的计算之间更新随机盲操作。
16.根据权利要求1至15中任一项所述的方法,包括:通过以下操作来伪装所述噪声多项式和所述秘密多项式中的至少一个:
将所述噪声多项式和所述秘密多项式中的至少一个与随机盲多项式相乘,并且将相乘的结果与相同的随机盲多项式或不同的随机盲多项式相加;或者
将所述噪声多项式和所述秘密多项式中的至少一个与随机盲多项式相加,并且将相加的结果与相同的随机盲多项式或不同的随机盲多项式相乘。
17.根据权利要求1至16中任一项所述的方法,包括:执行所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个的伪装,以及在数论变换域中基于所伪装的至少一个多项式来计算所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和。
18.根据权利要求17所述的方法,包括:将所述噪声多项式、所述秘密多项式和所述公共多项式变换到数论变换域中,以及将所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和的结果从数论变换域变换回去。
19.根据权利要求1至18中任一项所述的方法,包括:在签名或公共密钥密码处理中执行所述基于格的密码操作。
20.一种用于执行基于格的密码操作的处理设备,包括:
存储器,其被配置成存储噪声多项式、秘密多项式和公共多项式;
隐蔽电路,其被配置成:通过将所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个与随机盲多项式相乘来伪装所述噪声多项式、所述秘密多项式和所述公共多项式中的至少一个;
计算电路,其被配置成:基于所伪装的至少一个多项式来计算所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和;
密码电路,其被配置成:基于所计算的所述公共多项式和所述秘密多项式的乘积与所述噪声多项式之和来确定所述基于格的密码操作的结果。
CN201910256894.3A 2018-04-09 2019-04-01 用于执行基于格的密码操作的方法和处理设备 Active CN110363030B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018108313.0 2018-04-09
DE102018108313.0A DE102018108313A1 (de) 2018-04-09 2018-04-09 Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis

Publications (2)

Publication Number Publication Date
CN110363030A true CN110363030A (zh) 2019-10-22
CN110363030B CN110363030B (zh) 2023-10-10

Family

ID=67991795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910256894.3A Active CN110363030B (zh) 2018-04-09 2019-04-01 用于执行基于格的密码操作的方法和处理设备

Country Status (3)

Country Link
US (1) US11265163B2 (zh)
CN (1) CN110363030B (zh)
DE (1) DE102018108313A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111586685A (zh) * 2020-04-26 2020-08-25 重庆邮电大学 一种基于格的匿名漫游认证方法
CN112003707A (zh) * 2020-08-25 2020-11-27 湖南宸瀚信息科技有限责任公司 一种抗量子计算攻击的区块链数字签名加密方法及系统
CN112818362A (zh) * 2021-01-29 2021-05-18 江苏理工学院 基于r-lwe的公钥加密方法
CN114172629A (zh) * 2021-12-09 2022-03-11 合肥工业大学 基于rlwe加密方案的高性能全同态加密处理器电路

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
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
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11070362B2 (en) 2018-02-12 2021-07-20 Massachusetts Institute Of Technology Systems and methods for providing secure communications using a protocol engine
EP3624391A1 (en) * 2018-09-12 2020-03-18 Koninklijke Philips N.V. Public/private key system with decreased encrypted message size
TWI672932B (zh) * 2018-09-27 2019-09-21 國立交通大學 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統
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
WO2020172234A1 (en) * 2019-02-19 2020-08-27 Massachusetts Institute Of Technology Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
US11456855B2 (en) * 2019-10-17 2022-09-27 Arm Limited Obfuscating data at-transit
CN112910649A (zh) * 2019-12-04 2021-06-04 深圳奥联信息安全技术有限公司 Dilithium算法的实现方法和装置
EP3843320A1 (en) * 2019-12-24 2021-06-30 Koninklijke Philips N.V. Public/private key system with increased security
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
WO2021182908A1 (ko) * 2020-03-12 2021-09-16 주식회사 크립토랩 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법
CN111698081B (zh) * 2020-06-08 2023-05-02 中国科学院重庆绿色智能技术研究院 一种基于格的压缩分块ibe加密装置及方法
DE102020121229B3 (de) 2020-08-12 2022-01-27 Infineon Technologies Ag Verfahren zum Überprüfen einer GDFT-Operation und Sicherheitseinrichtung zur Durchführung des Verfahrens
KR102399762B1 (ko) * 2020-09-09 2022-05-19 이규인 전력선 노이즈 기반 비밀키를 이용하는 페어링 장치 및 그 방법
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112437055B (zh) * 2020-11-10 2022-05-31 国网宁夏电力有限公司电力科学研究院 基于边缘计算的电力物联网络终端ntru安全接入方法
US20210119766A1 (en) * 2020-12-24 2021-04-22 Intel Corporation Technologies for memory and i/o efficient operations on homomorphically encrypted data
WO2022225536A1 (en) * 2021-04-23 2022-10-27 Pqsecure Technologies, Llc A low footprint hardware architecture for dilithium digital signature scheme
US11496297B1 (en) * 2021-06-10 2022-11-08 Pqsecure Technologies, Llc Low footprint resource sharing hardware architecture for CRYSTALS-Dilithium and CRYSTALS-Kyber
US11914757B2 (en) 2021-07-08 2024-02-27 International Business Machines Corporation Accelerated cryptographic-related processing
US11847938B2 (en) * 2021-08-03 2023-12-19 Nxp B.V. Combining regular and symbolic NTTs using co-processors
US11792004B2 (en) * 2021-09-17 2023-10-17 Intel Corporation Polynomial multiplication for side-channel protection in cryptography
WO2023055377A1 (en) * 2021-09-30 2023-04-06 Pqsecure Technologies, Llc An area efficient architecture for lattice based key encapsulation and digital signature generation
DE102021005813A1 (de) * 2021-11-23 2023-05-25 Giesecke+Devrient Mobile Security Gmbh Maskiertes gitterbasiertes kryptographisches Verfahren
EP4195578B1 (en) * 2021-12-13 2024-02-07 Zama SAS Polynomial multiplication of encrypted values
US11924346B2 (en) * 2022-04-28 2024-03-05 Nxp B.V. Efficient and masked sampling of polynomials for lattice-based cryptography
WO2024043890A1 (en) * 2022-08-25 2024-02-29 Pqsecure Technologies, Llc A computer architecture and method for performing lattice-based cryptographic primitives with resistance to side-channel attacks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010002486A1 (en) * 1998-01-02 2001-05-31 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US20030163718A1 (en) * 2000-04-12 2003-08-28 Johnson Harold J. Tamper resistant software-mass data encoding
US20130216044A1 (en) * 2012-02-17 2013-08-22 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
CN104461463A (zh) * 2013-09-20 2015-03-25 威盛电子股份有限公司 用于微处理器的动态重设方法
CN105634732A (zh) * 2016-01-21 2016-06-01 中国人民武装警察部队工程大学 一种密文域多比特可逆信息隐藏方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081597A (en) * 1996-08-19 2000-06-27 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
JP2005515659A (ja) * 2001-12-07 2005-05-26 エヌティーアールユー・クリプトシステムズ・インコーポレーテッド ディジタル署名、認証方法及び装置
US8861716B2 (en) * 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US9673977B1 (en) * 2016-09-15 2017-06-06 ISARA Corporation Refreshing public parameters in lattice-based cryptographic protocols
US10644876B2 (en) * 2017-01-20 2020-05-05 Enveil, Inc. Secure analytics using homomorphic encryption
EP3402118A1 (en) * 2017-05-10 2018-11-14 Koninklijke Philips N.V. Key agreement devices and method
DE102017117907B4 (de) * 2017-08-07 2023-04-27 Infineon Technologies Ag Durchführen einer kryptografischen Operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010002486A1 (en) * 1998-01-02 2001-05-31 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US20030163718A1 (en) * 2000-04-12 2003-08-28 Johnson Harold J. Tamper resistant software-mass data encoding
US20130216044A1 (en) * 2012-02-17 2013-08-22 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
CN104461463A (zh) * 2013-09-20 2015-03-25 威盛电子股份有限公司 用于微处理器的动态重设方法
CN105634732A (zh) * 2016-01-21 2016-06-01 中国人民武装警察部队工程大学 一种密文域多比特可逆信息隐藏方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111586685A (zh) * 2020-04-26 2020-08-25 重庆邮电大学 一种基于格的匿名漫游认证方法
CN111586685B (zh) * 2020-04-26 2022-05-03 重庆邮电大学 一种基于格的匿名漫游认证方法
CN112003707A (zh) * 2020-08-25 2020-11-27 湖南宸瀚信息科技有限责任公司 一种抗量子计算攻击的区块链数字签名加密方法及系统
CN112818362A (zh) * 2021-01-29 2021-05-18 江苏理工学院 基于r-lwe的公钥加密方法
CN112818362B (zh) * 2021-01-29 2023-09-22 江苏理工学院 基于r-lwe的公钥加密方法
CN114172629A (zh) * 2021-12-09 2022-03-11 合肥工业大学 基于rlwe加密方案的高性能全同态加密处理器电路
CN114172629B (zh) * 2021-12-09 2023-06-27 合肥工业大学 基于rlwe加密方案的高性能全同态加密处理器电路

Also Published As

Publication number Publication date
US11265163B2 (en) 2022-03-01
DE102018108313A1 (de) 2019-10-10
US20190312728A1 (en) 2019-10-10
CN110363030B (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
CN110363030A (zh) 用于执行基于格的密码操作的方法和处理设备
US11798435B2 (en) Executing a cryptographic operation
US9571268B2 (en) Method and system for homomorphicly randomizing an input
US11283608B2 (en) Executing a cryptographic operation
CN107683502B (zh) 根据紧凑源代码生成加密函数参数
Saarinen HILA5: On reliability, reconciliation, and error correction for Ring-LWE encryption
WO2018210895A1 (en) Post-quantum secure private stream aggregation
CN109661792B (zh) 计算分组密码的设备和方法
JP2012129993A (ja) 暗号装置の保護方法及び保護システム
CN107615285A (zh) 包括物理不可克隆功能和阈值加密的认证系统和装置
US20110060901A1 (en) Cryptographic System for Performing Secure Iterative Matrix Inversions and Solving Systems of Linear Equations
US11870911B2 (en) Providing a cryptographic information
Kundu et al. Higher-order masked saber
Hart et al. A Practical Cryptanalysis of WalnutDSA^ TM TM
US11838431B2 (en) Cryptographic operation
JP2020515093A (ja) 符号化加算のための計算デバイス
Hasija et al. A survey on nist selected third round candidates for post quantum cryptography
Kara et al. A Probabilistic Public-Key Encryption with Ensuring Data Integrity in Cloud Computing
Naseri et al. Confidentiality attacks against encrypted control systems
Ou et al. Research on a high‐order AES mask anti‐power attack
US20230171103A1 (en) Apparatus and Method for Decrypting an Encrypted Bit Sequence
US20240137225A1 (en) Providing a Cryptographic Information
Gorbenko et al. Code-based hybrid cryptosystem: comparative studies and analysis of efficiency
Cambou et al. Key Distribution for Post Quantum Cryptography using Physical Unclonable Functions
Lavery Asymmetric Cryptography from Number Theoretic Transformations

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