本发明专利技术公开了一种后量子密码构造中环上舍入学习的通用软件实现方法,其步骤包括:A、设定RLWR参数N、f、p、q、S,以及实际运行平台的CPU位数B;B、根据参数N、f、q、S、B,选取一多项式乘法实现算法,记为PMA,生成该多项式乘法实现方案中可预计算的参数;C、根据参数q和已选取的多项式乘法的实现方案PMA,选取一可用模约化方法作为模约化的实现方案,记为MRA;D、根据参数p、q选取一舍入计算实现方法,记为RA,生成该舍入计算实现方案中可预计算的参数;E、对于输入的多项式a(x)和s(x),计算并输出RLWR分布中的对应值b(x)。
【技术实现步骤摘要】
一种后量子密码构造中环上舍入学习的通用软件实现方法
本专利技术属于后量子格密码领域,特别是涉及一种后量子密码构造中环上舍入学习的通用软件实现方法。
技术介绍
随着量子计算机的深入研究和快速发展,互联网中广泛部署的传统公钥密码体制面临被彻底攻破的风险,发展能抵抗量子攻击的后量子公钥密码体制是当前密码学界的研究及应用热点之一。现有构造后量子密码体制的底层数学资源包括:格、多变量方程、超奇异椭圆曲线同源问题、纠错码、哈希函数等,目前公开的几类后量子密码体制中,格密码凭借适用性广泛、可并行实现以及存在最坏情形下底层困难问题的安全性归约等优势,被认为是最有前景的后量子公钥密码候选方案之一。舍入学习(LearningwithRounding,LWR)和环上舍入学习(RingLearningwithRounding,RLWR)作为具有确定误差的底层函数,是基于格的后量子密码原语的重要构造单元,目前已广泛应用于低深度伪随机函数、有损陷门函数、确定性公钥加密和密钥交换协议等基础后量子密码构造。由于去除了带错学习(LearningwithError,LWE)中的随机误差采样模块,相同安全等级下基于LWR的密码体制实现效率相对较高,此外还具有对计算资源需求较少、受侧信道攻击风险较低等优势。在此基础上,RLWR密码体制能够在减小密文长度、提升实现效率的情况下达到与LWR密码体制基本相当的安全性,因此,已有的格密码方案设计大部分采用了环结构,例如NIST后量子密码标准算法征集中的Lizard、Round2、Round5和SABER都是采用环结构的LWR方案。RLWR分布定义为(),其中a和s是多项式环上的多项式,f(x)为N次首一多项式,正整数q≥p≥2,舍入计算即映射假设多项式a的系数多项式s的系数RLWR分布中b(x)的计算可大致分为三步:首先计算整数域上的多项式乘法,即计算b1(x)=a(x)·s(x);然后对b1(x)执行模多项式和模整数操作,即计算b2(x)=((b1(x)modf(x))modq);最后计算b2(x)的舍入值,即因此,RLWR实现通常涉及多项式乘法、模约化和舍入计算三项基础操作。整数域上常用多项式乘法快速实现算法有Karatsuba、Toom-Cook、稀疏乘法、快速傅里叶变换(FastFourierTransform,FFT)以及数论变换(NumberTheoreticTransform,NTT),其中NTT乘法算法和FFT乘法算法的理论时间复杂度最低,稀疏乘法算法的效率取决于多项式系数的稀疏程度。实际中稀疏乘法算法和NTT乘法算法的效率可以达到较优水平,但二者均存在一定的限制条件:稀疏乘法算法只适用于其中一个输入多项式的系数取自0-1分布的RLWR;NTT算法需要在上进行运算,其中间值(特别是中的两个整数在整数域上的乘积)不能超过计算机能直接处理的整数上界,即NTT模数M存在上界,因此NTT乘法算法只适用于参数N、q、S较小的RLWR。模约化操作包括模多项式和模整数。注意,采用特殊多项式乘法实现方案时,可省略模约化操作:若采用了基于NTT负折叠卷积的多项式乘法算法,则可省略模多项式操作;若多项式乘法采用了模数M=q的NTT或NTT负折叠卷积,则可省略模整数操作。模首一多项式通常可采用减法迭代算法实现。模整数快速实现方法有Montgomery算法、Barrett算法、按位与运算和无优化的模运算,其中按位与运算的效率最高,但只适用于q为2的方幂的RLWR。舍入计算快速实现方法有传统预计算算法和移位运算,其中移位运算的效率最高,但只适用于模数比值是2的方幂的RLWR。综上所述,RLWR的三项基础操作均有多种软件实现方案,但目前效率相对较高的实现方案都只适用于特殊参数,相同实现平台、相同安全等级下RLWR实现效率受参数N、f、p、q、S的影响显著。虽然基于RLWR的密码体制已有许多软件实现及效率优化工作,但目前大部分软件实现及优化方法仅适用于特定参数,缺乏通用且高效的RLWR软件实现方法。
技术实现思路
为解决现有后量子密码构造中RLWR软件实现难以兼顾通用性与高效性的问题,本专利技术提供一种通用高效的RLWR软件实现方法。本专利技术具有如下技术特色:一,可根据RLWR的具体参数N、f、p、q、S以及实际运行平台的CPU位数B,灵活选择三项基础操作实现方案的组合方式,在保证通用性的情况下达到较高的软件实现效率;二,结合格密码中常用的特殊参数(特别是特殊的N、f)和实际运行平台的CPU位数B,给出了NTT及NTT负折叠卷积的具体使用条件,某些情况下即使RLWR的模数q不满足NTT模数的一般性要求,也可使用NTT或NTT负折叠卷积;三,针对为2的方幂的RLWR设计了一种新型舍入实现方法,提高了舍入计算的实现效率,适合与NTT或NTT负折叠卷积搭配使用。本专利技术为解决上述需求采取的技术方案:根据本专利技术设计出一种后量子密码构造中环上舍入学习的通用软件实现方法,特征在于,通用的软件实现方法包括如下步骤:A、设定RLWR参数N、f、p、q、S,以及实际运行平台的CPU位数B,其中N、p、q、S为正整数,f为N次首一多项式f(x),所有参数以常量的形式存储运算;计算q的所有素因子{p1,...,pt},以及p1-1,...,pt-1的最大公因数O(q);用Mmax(n,B)表示可在B位CPU平台上高效实现的n阶NTT的模数可以取到的最大值,计算和若S=2,则需要设定多项式s系数不为0的概率P[si≠0];B、根据参数N、f、q、S、B,以及稀疏乘法、基于NTT负折叠卷积的多项式乘法、基于NTT的多项式乘法、基于FFT的多项式乘法这四个算法的使用条件,确定可以使用的多项式乘法算法,选取其中效率相对较高的算法作为多项式乘法的软件实现方案,记为PMA,生成该多项式乘法实现方案中可预计算的参数,即NTT或FFT算法中的旋转因子及其方幂;C、根据参数q和已选取的多项式乘法的实现方案PMA,确定可以使用的模约化方法,选取其中效率相对较高的方法作为模约化的实现方案,记为MRA;其中,模约化实现包含模多项式实现和模整数实现,模多项式实现方案可采用减法迭代算法或省略模多项式操作,模整数实现方案可采用无优化的模运算、按位与运算或省略模整数操作;D、根据参数p、q,以及移位运算、传统预计算算法和本专利技术提出的新型舍入算法这三个算法的使用条件,确定可以使用的舍入计算实现方法,选取其中效率相对较高的方法作为舍入计算的实现方案,记为RA,生成该舍入实现方案中可预计算的参数,即传统预计算算法中的浮点数或新型舍入算法中的数组Pre[q]。E、对于输入的多项式a(x)和s(x),计算并输出RLWR分布中的对应值b(x):首先计算整数域上的多项式乘法b1(x)←PMA(a(x),s(x)),即计算b1(x)=a(x)·s(x);其次执行模约化操作b2(x)←MRA(b1(x)),即计算b2(x)=((b1(x)modf(x))modq);然后计算舍入值b(x)←RA(b2(x)),即最后输出b本文档来自技高网...
【技术保护点】
1.一种后量子密码构造中环上舍入学习的通用软件实现方法,其中环上舍入学习RLWR分布定义为
【技术特征摘要】
1.一种后量子密码构造中环上舍入学习的通用软件实现方法,其中环上舍入学习RLWR分布定义为其中a、s是多项式环上的多项式,f为N次首一多项式,正整数q≥p≥2,舍入计算即映射多项式a的系数
多项式s的系数其步骤包括:
A、设定RLWR参数N、f、p、q、S,以及实际运行平台的CPU位数B,其中N、p、q、S为正整数,f为N次首一多项式f(x),计算q的所有素因子{p1,...,pt},以及p1-1,...,pt-1的最大公因数O(q);用Mmax(n,B)表示可在B位CPU平台上实现的n阶NTT的模数最大值,计算和若S=2,则需要设定多项式s系数不为0的概率P[si≠0];
B、根据参数N、f、q、S、B,选取一多项式乘法实现算法,记为PMA,生成该多项式乘法实现方案中可预计算的参数;
C、根据参数q和已选取的多项式乘法的实现方案PMA,选取一可用模约化方法作为模约化的实现方案,记为MRA;
D、根据参数p、q选取一舍入计算实现方法,记为RA,生成该舍入计算实现中可预计算的参数;
E、对于输入的多项式a(x)和s(x),计算并输出RLWR分布中的对应值b(x):首先计算整数域上的多项式乘法b1(x)←PMA(a(x),s(x)),即计算b1(x)=a(x)·s(x);其次执行模约化操作b2(x)←MRA(b1(x)),即计算b2(x)=((b1(x)modf(x))modq);然后计算舍入值b(x)←RA(b2(x)),即最后输出b(x)。
2.如权利要求1所述的方法,其特征在于,步骤B中,所述多项式乘法实现方案为稀疏乘法、基于NTT负折叠卷积的多项式乘法、基于NTT的多项式乘法或基于FFT的多项式乘法。
3.如权利要求2所述的方法,其特征在于,所述多项式乘法实现方案为稀疏乘法时,稀疏乘法的使用条件为:S=2。
4.如权利要求2所述的方法,其特征在于,所述多项式乘法实现方案为基于NTT负折叠卷积的多项式乘法时,基于NTT负折叠卷积的多项式乘法的使用条件为:f(x)=xN+1;N|O(q)且或
5...
【专利技术属性】
技术研发人员:周永彬,姜子铭,张锐,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。