当前位置: 首页 > 专利查询>山东大学专利>正文

基于紧凑指令集扩展的Kyber实现方法及系统技术方案

技术编号:38106976 阅读:10 留言:0更新日期:2023-07-06 09:29
本发明专利技术涉及密钥封装技术领域,本发明专利技术公开了基于紧凑指令集扩展的Kyber实现方法及系统,包括:第一客户端通过多项式乘法和多项式加法,生成公钥和私钥,并将公钥发送至第二客户端;第二客户端使用公钥将明文加密为密文;第一客户端通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。平衡了扩展指令集的硬件资源开销和Kyber算法实现速度。销和Kyber算法实现速度。销和Kyber算法实现速度。

【技术实现步骤摘要】
基于紧凑指令集扩展的Kyber实现方法及系统


[0001]本专利技术涉及密钥封装
,具体的说,是涉及基于紧凑指令集扩展的Kyber实现方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]Kyber是一种密钥封装方法,其安全性建立在解决模块格上的带错误学习问题的难度上。经过三轮筛选,Kyber在美国国家标准研究院(NIST,National Institute of Standards and Technology)启动的后量子算法竞赛中成功入围候选标准算法,之后对Kyber算法的高效实现方法进行了广泛研究。
[0004]现在已有的Kyber的数论变换中的模乘运算都是基于蒙哥马利约化算法(Montgomery Reduction)或巴瑞特约化算法(Barrett Reduction)的,这两个约化算法中包括两个相对较大的因数的乘法,这些大因数的乘法在硬件电路中会消耗较多的硬件资源。

技术实现思路

[0005]为了解决上述
技术介绍
中存在的技术问题,本专利技术提供基于紧凑指令集扩展的Kyber实现方法及系统,使用蝴蝶变换来计算Kyber的正向数论变换和逆向数论变换,平衡了扩展指令集的硬件资源开销和Kyber算法实现速度。
[0006]为了实现上述目的,本专利技术采用如下技术方案:第一方面,本专利技术提供了基于紧凑指令集扩展的Kyber实现方法;基于紧凑指令集扩展的Kyber实现方法,应用于第一客户端,包括:通过多项式乘法和多项式加法,生成公钥和私钥,并发送公钥,接收通过所述公钥加密明文得到的密文;基于所述密文和所述私钥,通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。
[0007]进一步地,所述多项式乘法的实现过程为:对两个环上多项式分别进行过正向数论变换后,采用所述蝴蝶变换进行数论变换域上的乘法运算,并对计算结果进行逆向数论变换。
[0008]进一步地,所述正向数论变换中,采用一次扭转技术。
[0009]进一步地,所述数论变换域上的乘法运算中,通过比特位的交换完成系数的交换。
[0010]进一步地,所述正向数论变换前,通过若干条交换系数指令,保证进行正向数论变
换的系数对在同一个寄存器中;或者,所述逆向数论变换前,通过若干条交换系数指令,保证进行逆向数论变换的系数对在同一个寄存器。
[0011]第二方面,本专利技术提供了基于紧凑指令集扩展的Kyber实现方法;基于紧凑指令集扩展的Kyber实现方法,应用于第二客户端,包括:获取公钥和明文;基于公钥和明文,通过多项式乘法和多项式加法,得到密文,并发送;其中,发送出的密文,通过多项式乘法和多项式减法,采用私钥解密得到明文;所述多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。
[0012]第三方面,本专利技术提供了基于紧凑指令集扩展的Kyber实现方法;基于紧凑指令集扩展的Kyber实现方法,包括:第一客户端通过多项式乘法和多项式加法,生成公钥和私钥;第二客户端获取公钥和明文,通过多项式乘法和多项式加法,得到密文;第一客户端获取所述密文,并结合所述私钥,通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。
[0013]第四方面,本专利技术提供了基于紧凑指令集扩展的Kyber实现系统;基于紧凑指令集扩展的Kyber实现系统,包括第一客户端和第二客户端;所述第一客户端,用于通过多项式乘法和多项式加法,生成公钥和私钥;所述第二客户端,用于获取公钥和明文,通过多项式乘法和多项式加法,得到密文;所述第一客户端,还用于获取所述密文,并结合所述私钥,通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。
[0014]第五方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,该程序被处理器执行时实现如上述第一方面或第二方面所述的基于紧凑指令集扩展的Kyber实现方法中的步骤。
[0015]第六方面,本专利技术还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面或第二方面所述的基于紧凑指令集扩展的Kyber实现方法中的步骤。
[0016]与现有技术相比,本专利技术的有益效果是:本专利技术提供了基于紧凑指令集扩展的Kyber实现方法,其使用蝴蝶变换来计算Kyber的正向数论变换和逆向数论变换来平衡扩展指令集的硬件资源开销和Kyber算法实现速度。
[0017]本专利技术提供了基于紧凑指令集扩展的Kyber实现方法,其与原始的k2约化算法相比,广义的k2约化的GE值更小,输出范围更小,意味着更少的资源开销就可将结果约化到其标准表示。
附图说明
[0018]构成本专利技术的一部分说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的限定。
[0019]图1是本专利技术实施例一的GS

butterfly的原理图;图2是本专利技术实施例一的GS

butterfly的电路图;图3(a)是本专利技术实施例一的GS

butterfly的整体运算图;图3(b)是本专利技术实施例一的基于GS

butterfly的模乘运算图;图3(c)是本专利技术实施例一的基于GS

butterfly的模加运算图;图3(d)是本专利技术实施例一的基于GS

butterfly的模减运算图;图4是本专利技术实施例一的交换系数示例图;图5是本专利技术实施例一的一个4层的合并数论变换示例图;图6是本专利技术实施例一的自定制GS

butterfly和交换系数指令的格式示例图;图7是本专利技术实施例一的采用GS

butterfly和实现正向数论变换和逆向数论变换的示例图。
具体实施方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于紧凑指令集扩展的Kyber实现方法,其特征在于,应用于第一客户端,包括:通过多项式乘法和多项式加法,生成公钥和私钥,并发送公钥,接收通过所述公钥加密明文得到的密文;基于所述密文和所述私钥,通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储。2.如权利要求1所述的基于紧凑指令集扩展的Kyber实现方法,其特征在于,所述多项式乘法的实现过程为:对两个环上多项式分别进行过正向数论变换后,采用所述蝴蝶变换进行数论变换域上的乘法运算,并对计算结果进行逆向数论变换。3.如权利要求2所述的基于紧凑指令集扩展的Kyber实现方法,其特征在于,所述正向数论变换中,采用一次扭转技术。4.如权利要求2所述的基于紧凑指令集扩展的Kyber实现方法,其特征在于,所述数论变换域上的乘法运算中,通过比特位的交换完成系数的交换。5.如权利要求2所述的基于紧凑指令集扩展的Kyber实现方法,其特征在于,所述正向数论变换前,通过若干条交换系数指令,保证进行正向数论变换的系数对在同一个寄存器中;或者,所述逆向数论变换前,通过若干条交换系数指令,保证进行逆向数论变换的系数对在同一个寄存器。6.基于紧凑指令集扩展的Kyber实现方法,其特征在于,应用于第二客户端,包括:获取公钥和明文;基于公钥和明文,通过多项式乘法和多项式加法,得到密文,并发送;其中,发送出的密文,通过多项式乘法和多项式减法,采用私钥解密得到明文;所述多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第...

【专利技术属性】
技术研发人员:王伟嘉李璐秦国峰
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1