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

【发明公布】一阶掩码Kyber的方法_桂林电子科技大学_202410082921.0 

申请/专利权人:桂林电子科技大学

申请日:2024-01-19

公开(公告)日:2024-04-19

公开(公告)号:CN117914484A

主分类号:H04L9/08

分类号:H04L9/08;H04L9/00;H04L9/30;H04L9/06

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.05.07#实质审查的生效;2024.04.19#公开

摘要:本发明属于密码算法抗攻击的信息安全领域,具体是指一种一阶掩码Kyber方法。针对现有技术后量子密码采用一阶掩码防护时,在通常需要引入大量的额外随机数。本发明的掩码方法基于随机数重用方法,降低了随机数需求和时间消耗,并且能够抵抗一阶侧信道攻击。利用已有的随机数代替新生成的随机数,降低了随机数使用量进而降低了整体掩码方案的时间开销,从根本上解决格密码掩码随机数需求大导致时间开销高的问题,提高了掩码效率,在使用比较模块对密文进行比较的过程中再次对随机数进行重用,进一步缩短掩码时间开销,有利于提高掩码效率。

主权项:1.一种一阶掩码Kyber的方法,其特征在于,包括如下步骤:步骤1,将私钥sk的分量sk′输入解码模块,解码模块对sk′进行解码并将向量组s存储于寄存器中: 其中,向量组s表示秘密信息,s.vec[0]和s.vec[1]表示向量组s的第一和第二个向量,s.vec[0].sec[0]表示向量组s的第一个向量的第一个系数,q、N和k表示Kyber运算的模数、Kyber算法的封装密钥大小和可扩展安全参数;步骤2,将向量组s输入算术掩码模块,算术掩码模块对s进行一阶算术掩码并将掩码s′和生成的随机数rdi存储于寄存器中:生成k·N个额外随机数rdi0<rdi<q,i∈0,k·N,然后使用随机数计算新的共享s′.vec[0].sec[0].share[0]=rd1s′.vec[0].sec[0].share[1]=s.vec[0].sec[0]-rd1modqs′.vec[0].sec[1].share[0]=rd2s′.vec[0].sec[1].share[1]=s.vec[0].sec[1]-rd2modq s′.vec[k-1].sec[N-1].share[0]=rdk·Ns′.vec[k-1].sec[N-1].share[1]=s.vec[k-1].sec[N-1]-rdk.Nmodq步骤3,使用密文c生成向量组u′、向量v′,并将u′、v′存储于寄存器中;步骤4,计算掩码内部状态并对m进行掩码刷新操作得到掩码内部状态m′,然后将m′存储于寄存器中,其中s′T为s′的转置, 步骤5,将掩码内部状态m′通过解压缩模块和编码模块,得到掩码内部状态m″,并将m″存储于寄存器中;步骤6,将m″和私钥sk的分量h组合为字符串,然后输入SHA3-512算法,得到K,r,并将K和r存储于寄存器中;步骤7,将r输入SHAKE-256算法,并将输出通过中心二项采样器模块得到向量组r′、e1和向量e2,并将r′、e1和e2存储于寄存器中;步骤8,将公钥pk的分量ρ输入SHAKE-128算法,并将输出通过解码模块得到k×k阶矩阵A,并将A存储于寄存器中;步骤9,计算中间状态并生成k·N个随机数rdi′0<rdi′<q,i∈0,k·N,然后对中间状态c1进行掩码刷新操作得到c′1,并将c′1存储于寄存器中;步骤10,将公钥pk的分量t通过解码模块,得到向量t′;步骤11,计算中间状态并生成N个随机数rdi″0<rdi″<q,i∈0,N,然后对中间状态c2进行掩码刷新操作得到c′2,并将c′2存储于寄存器中;步骤12,将密文c输入SHA3-256,得到哈希值hc,并将hc存储于寄存器中;步骤13,将K和hc拼接为一个长字节串K′,即K′=K||hc;步骤14,将私钥sk的分量z和hc拼接为一个长字节串L′,即L′=z||hc步骤15,将u′、v′、c′1、c′2、K′和L′输入比较模块;步骤16,使用比较模块对密文进行比较,如果相同,则输出正确的封装密钥;否则输出错误的封装密钥。

全文数据:

权利要求:

百度查询: 桂林电子科技大学 一阶掩码Kyber的方法

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