买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于紧凑指令集扩展的Kyber实现方法及系统_山东大学_202310631631.2 

申请/专利权人:山东大学

申请日:2023-05-31

公开(公告)日:2023-09-29

公开(公告)号:CN116366248B

主分类号:H04L9/08

分类号:H04L9/08;H04L9/30

优先权:

专利状态码:有效-授权

法律状态:2023.09.29#授权;2023.07.18#实质审查的生效;2023.06.30#公开

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

主权项:1.基于紧凑指令集扩展的Kyber实现方法,其特征在于,应用于第一客户端,包括:通过多项式乘法和多项式加法,生成公钥和私钥,并发送公钥,接收通过所述公钥加密明文得到的密文;基于所述密文和所述私钥,通过多项式乘法和多项式减法,得到明文;其中,多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;所述蝴蝶变换包括:将存储在同一位置的两个输入系数的和作为第一结果;将两个输入系数的差的标准值,与旋转因子进行乘法运算;对乘积进行模约化,得到第二结果;将第一结果和第二结果映射到标准表示值后,打包存储;所述多项式乘法的实现过程为:对两个环上多项式分别进行过正向数论变换后,采用所述蝴蝶变换进行数论变换域上的乘法运算,并对计算结果进行逆向数论变换;所述旋转因子,br7i是无符号7位整数i的位反转,是正向数论变换中的旋转因子,它是n阶单位根ζn的2br7i+1j次方;所述多项式乘法、多项式加法和多项式减法均通过蝴蝶变换实现;蝴蝶变换的输入为:a0,a1,ζ;Kyber中的素数q=3329;蝴蝶变换的计算步骤包括:①、将a0和a1的和作为第一结果b0,即且;②、将a0和a1的差赋值给t0,即且;③、将a0和a1的差t0通过一个数据选择器mux,映射到标准值,即且;其中,mux是将整数映射到其标准表示的操作,通过数据选择器实现;④、对旋转因子ζ和差的标准值t0进行乘法运算,得到乘积t1,即且;⑤、通过广义的k2约化,对乘积t1进行模约化,得到第二结果b1,即且;⑥、第一结果通过一个数据选择器mux被映射到标准表示值,第一结果的标准表示值为add_res,add_res为需要计算的a0+a1modq,即且;⑦、第二结果通过一个数据选择器mux被映射到标准表示值,第二结果的标准表示值为sub_res,sub_res为需要计算的a0-a1ζmodq即且;⑧、b0和b1被同时打包放置在目的寄存器b中,即,add_res被放置在低16比特,sub_res被放置在高16比特,且输出系数b0和b1的范围是[0,q;蝴蝶变换指令的输出系数b1是a0-a1和ζ的模乘结果,即b1=a0-a1·ζ;蝴蝶变换指令的输出系数b0是两个输入系数a0和a1的模加结果,即b0=a0+a1;当ζ为1时,蝴蝶变换指令的输出系数b1是两个输入系数a0和a1的模减结果,即b1=a0-a1。

全文数据:

权利要求:

百度查询: 山东大学 基于紧凑指令集扩展的Kyber实现方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。