一种对于基于格的公钥加密算法的加速方法技术

技术编号:22691902 阅读:126 留言:0更新日期:2019-11-30 05:18
本发明专利技术公开了一种对于基于格的公钥加密算法的加速方法,本方法为:首先采用Karatsuba算法或Toom‑Cook算法将格密码算法中的高维多项式运算拆分为多次的低维多项式乘法,然后用克罗内克变换将低维多项式乘法转换为大数协处理器支持计算的大数乘法运算,最后使用大数协处理器执行大数乘法运算。本发明专利技术可以提升多项式乘法的运算计算效率,从而加速基于格的后量子密码算法。

An accelerated method for lattice based public key encryption algorithm

The invention discloses an acceleration method for the lattice based public key encryption algorithm. The method is as follows: firstly, the karatsua algorithm or the toom \u2011 cook algorithm is used to divide the high-dimensional polynomial operation in the lattice encryption algorithm into multiple low-dimensional polynomial multiplication, then the low-dimensional polynomial multiplication is converted into the large number multiplication supported by the large number coprocessor by the croneck transformation, and finally Use the large coprocessor to perform large multiplication. The invention can improve the calculation efficiency of polynomial multiplication, thereby accelerating the lattice based post quantum cryptography algorithm.

【技术实现步骤摘要】
一种对于基于格的公钥加密算法的加速方法
本专利技术属于密码
,尤其涉及一种利用大数运算协处理器的对于基于格(lattice)的公钥加密算法的加速方法。
技术介绍
基于公钥密码学的加解密技术应用广泛,成为保证信息安全的重要工具,尤其是在数据加密、数字签名等方面发挥着巨大的作用。目前,RSA加密算法、ECC加密算法、DH密钥交换协议等公钥密码算法被广泛的使用,这些密码算法均基于经典数学困难问题,如大数分解(integerfactorization)和离散对数(discretelogarithm)等。研究表明,这些基于经典数学困难问题的公钥密码算法在量子计算模型下存在多项式时间的破解算法。近年来,量子计算机及其相关技术的不断发展,严重威胁着基于经典数学困难问题的公钥密码算法的安全性。后量子(或称“抗量子”)密码算法(post-quantumcryptography)被视为可以抵抗量子计算攻击的密码算法,主要包括基于格的密码、基于编码的密码、基于多变量的密码和基于杂凑函数的密码等。在几种后量子密码算法中,基于格的密码算法具有良好的安全性与运行效率,近年来发展迅速。格(lattice)密码系统是一种新型的密码系统,一个格L就是线性空间Rn上确定的一组线性无关向量的整线性组合,这组向量称为格L。格上的困难问题主要包括最短向量问题(shortestvectorproblem,SVP),最近向量问题(closestvectorproblem,CVP),小整数解问题(smallintegersolutionproblem,SIS)和误差学习(learningwitherrors,LWE)。2016年,美国国家标准与技术研究院(NationalInstituteofStandardsandTechnology,NIST)启动了后量子密码算法的征集进程。截至2019年初,NIST的后量子密码算法征集进程已进入第二轮(Round-2)。在候选的密码算法中,相比基于其他困难问题的算法,基于格的算法NewHope、Kyber、Saber等均具有较好的运行效率,分别基于R-LWE,M-LWE,M-LWR困难问题(属LWE困难问题的变体),这些算法的运算效率均严重依赖于(带模的)多项式乘法运算。快速数论变换(Number-TheoreticTransform,NTT)被认为是目前已知的最快的多项式乘法算法,其算法复杂度为O(nlgn),但是满足特定条件的维度n和模数q的多项式相乘才可以使用NTT算法来计算。在一些基于格的密码算法的设计中,为了能够使用效率最高的NTT算法来做多项式乘法,其参数取为满足NTT使用条件的n和q,如Kyber(基于M-LWE),NewHope(基于R-LWE)等。基于M-LWR困难问题的算法,通常会比基于M-LWE和R-LWE问题的算法设计要简单,一般会将模数p和q取为2的幂,其设计时可以用更为高效的Rounding的运算来代替LWE中的复杂的基于离散高斯分布或中心二项分布采样的错误向量生成,同时公共矩阵A可采用无需拒绝采样的方式来生成。Saber是一种基于M-LWR困难问题的后量子密码算法,其标准版本(Saber-KEM)可以达到180量子比特的安全性。Saber的参数q=8192,p=1024均为2的幂,使得算法过程中的取模运算有很高的效率,也有利于实施高效的Rounding运算(在具体实现中使用高效的位运算即可),但是这也造成了Saber无法使用NTT算法来进行多项式运算。除NTT以外,可被良好实现的快速多项式乘法算法还包括Karatsuba算法与Toom-Cook算法,在Saber的参考实现中使用了这两种算法。克罗内克变换(Kroneckersubstitution)可以将多项式乘法运算转化为大数乘法运算,该算法具有多种变体。对于克罗内克变换算法的标准版本,例如要计算f(x)=2x+1和g(x)=3x+2的多项式乘法,我们可以首先计算出f和g在取值点x=100处的函数值,即f(100)=2*100+1=201,g(100)=3*100+2=302,然后计算201*302=60702,最后按两位数代表一个系数的方式(6|07|02)拆分出多项式乘法结果,即6x2+7x+2(称之为解拆封运算)。标准版本的克罗内克变换也称作KS1。为了保证计算的正确性,KS1算法需满足以下条件:对于n维的多项式f与m维的多项式g相乘,f与g中每个系数均属于[0,2c)(即最大为c比特),带入f和g的取值点(即带入x=2b)的最小比特长度其中为向上取整函数,然后再通过解拆封运算得出多项式结果。克罗内克变换的一个变体称为NegatedKroneckersubstitution,也称为KS2算法。与KS1只需要计算在一个取值点的大数乘法不同,KS2需要计算在两个取值点的大数乘法,然后将两个大数乘法的结果再通过解拆封运算得出多项式结果。KS2与KS1相比,带来的突出优点是大大降低了带入f和g的取值点的比特长度:对于n维的多项式f与m维的多项式g相乘,f与g中每个系数均属于[0,2c)(即最大为c比特),带入f和g两个取值点(即带入x1=2b,x2=-2b)的最小比特长度为多项式乘法的教科书式运算具有O(n2)的复杂度(n指多项式维数)。Karatsuba算法可以将一次的高维多项式运算转换为3次的维的多项式乘法,其算法复杂度近似为O(nlg3)。Toom-Cook算法是Karatsuba的一般化,其算法复杂度近似为这里我们主要使用Toom-Cook-4-way算法,可以将一次的高维多项式运算转换为7次的维的多项式乘法。另外,Karatsuba和Toom-Cook也是一种快速大数运算算法,可以将长比特的大数相乘转化为数次的短比特的大数相乘。ESP32芯片是一款嵌入式芯片,原生支持WiFi和Bluetooth,在物联网(InternetofThings,IoT)领域有广泛的应用。ESP32具有一些安全特性,如安全启动与Flash加密等。另外,ESP32内置了基于物理噪声的真随机数发生器、大数运算协处理器、SHA2协处理器、AES协处理器。
技术实现思路
本专利技术的目的是在ESP32芯片上使用硬件大数运算协处理器来实现对基于格(lattice)的公钥加密算法的加速。在一些具有安全特性的嵌入式芯片或智能卡中内置了大数乘法协处理器(本专利技术中主要讨论大数运算协处理器,在接下来的的叙述中,如未作特别说明,“协处理器”一般指大数运算协处理器,该协处理器专为实现高速大数运算而设计,可以高效地实现512比特及以上长度的大数运算,比使用CPU以软件方式实现大数的运算要快数倍甚至数十倍。该协处理器通常被用于加速RSA和ECC等依赖大数运算的公钥加密算法。本专利技术的技术方案为:一种对于基于格的公钥加密算法的加速方法,其特征在于,首先使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算,然后使用大数协处理器执行大数乘法运算。进一步的,使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算本文档来自技高网
...

【技术保护点】
1.一种对于基于格的公钥加密算法的加速方法,其特征在于,首先使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算,然后使用大数协处理器执行大数乘法运算。/n

【技术特征摘要】
1.一种对于基于格的公钥加密算法的加速方法,其特征在于,首先使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算,然后使用大数协处理器执行大数乘法运算。


2.如权利要求1所述的方法,其特征在于,使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算的方法为:首先使用克罗内克变换将格密码算法中的高维多项式乘法转换为长比特长度的大数乘法运算,然后通过Karatsuba或Toom-Cook算法将长比特长度的大数乘法拆分为数次大数协处理器支持计算的短比特长度的大数乘法,最后使用大数协处理器计算这些短比特长度的大数乘法。


3.如权利要求2所述的方法,其特征在于,使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算的方法为:首先使用克罗内克变换将格密码算法中的多项式乘法转换为N比特的大数乘法运算,通过a次递归的Karatsuba或一次b-way的Toom-Cook快速大数乘法运算,将该N比特的大数乘法拆分为数次的M比特长度的大数乘法,然后使用大数协处理器计算M比特的大数乘法;其中,a≥log2(N/M),b≥(N/M),M为大数运算协处理器所在芯片支持的定长比特。


4.如权利要求1所述的方法,其特征在于,使用克罗内克变换将格密码算法中的多项式乘法转换为大数乘法运算的方法为:首先采用Karatsuba或Toom-Cook算法将格密码算法中的高维多项式乘法拆分为数次的低维多项式乘法,然后用克罗内克变换将低维多项式乘法转换为大数协处理器支持计算的短比特长度的大数乘法...

【专利技术属性】
技术研发人员:王斌顾小卓杨颖珊
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1