一种基于国密SM3算法的密钥扩展方法及其系统和介质技术方案

技术编号:37065434 阅读:17 留言:0更新日期:2023-03-29 19:43
本发明专利技术提出了一种基于国密SM3算法的密钥扩展方法及其系统和介质,本发明专利技术方法根据所需加密的明文确定所需密钥量,基于国密SM3算法对初始密钥对不同量的密钥按业务需求进行扩展或轮循处理。在轮循处理中引入轮常数规则表,预设丢弃规则,每个轮常数的不同消除了密钥的对称性,密钥扩展的非线性消除了相同密钥的可能性。整个密钥扩展过程以密钥为国密SM3算法的扩展、轮循参数进行按需扩充,保证密钥的完整性、时效性。时效性。时效性。

【技术实现步骤摘要】
一种基于国密SM3算法的密钥扩展方法及其系统和介质


[0001]本专利技术属于量子通信
,特别是涉及一种基于国密SM3算法的密钥扩展方法及其系统和介质。

技术介绍

[0002]当今通信安全技术在新的领域内不断地取得新的突破。量子加密采用量子密钥对用户信息进行加密,密钥量与用户信息的数据量以1:1为标准,利用一次一密的加密方式保证了数据通信的安全性。然而,受限于经典网络的负载量,在面对用户高业务量的需求时,如传附件、实时音视频等场景下,将与用户信息等比例的密钥中继到通信的另一端,会造成业务负载超量,并带来业务通信成本的大幅增加。传统SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准,为一种单向算法,其多用于商用密码应用中的数字签名和验证,是在SHA

256基础上改进的一种算法,其安全性与SHA

256相当。SM3算法的执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果。SM3杂凑算法需要将输入数据按照512比特的大小分成若干组,最后一组不足512比特时按规则填充至512比特,经过多轮迭代压缩后,输出长度为256比特的摘要值。对密钥量需求不高的业务可以使用该方式进行多轮密钥扩展,但面对密钥量需求高的业务,用此算法对密钥进行大量的扩充存在耗时长、效率低等问题,同时也存在密钥生成率低等问题。而密钥生成率低继而会导致实时通信不连续,用户体验感较差。因此,为保证在面对高负载、实时性要求高的通信业务时能够进行不间断、高效的数据传输,需要更全面的密钥扩展方法。

技术实现思路

[0003]专利技术目的:本专利技术的目的是提供一种基于国密SM3算法的密钥扩展方法及其系统和介质,能够在不同的密钥量需求下提供不同的密钥扩展模式,在面对密钥量需求低的通信业务时有效缩减密钥扩充过程,进而为数据传输节约时间和资源,在面对高负载、实时性要求高的通信业务时对不同的密钥量提供针对性的密钥扩充过程,进而保证连续、高效的数据传输。该方法可以应对不同需求的业务通信,确保数据传输过程高效、完整地进行。
[0004]本专利技术提供一种基于国密SM3算法的密钥扩展方法,其包括以下步骤:
[0005]S1、确定待加密的明文的长度值Sum,以及加密所述明文的密钥key的长度m;
[0006]S2、根据待加密的明文的长度值Sum,判断密钥key是否满足轮循条件,若不满足轮循条件则进入S3,若满足轮循条件则进入S4;
[0007]S3、基于国密SM3算法对密钥key进行扩展处理,得到扩展密钥key


[0008]S4、基于国密SM3算法对密钥key进行预处理,预处理后的密钥key1进入轮循扩展,得到扩展密钥key


[0009]作为本专利技术的一种改进,在步骤S2中,所述轮循条件为Sum≥4224。
[0010]作为本专利技术的一种改进,在步骤S3中,所述基于国密SM3算法对密钥key进行扩展处理,得到扩展密钥key

,具体为:
[0011]S3

1:当Sum≤256时,将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,从SM3杂凑算法的计算结果中选取长度与Sum值相等的密钥作为扩展密钥key


[0012]S3

2:当256<Sum<4224且m≤256时,计算n1=Sum
÷
256,其中若n1只有整数部分,则n1

=n1,若n1存在余数部分,则n1

=[Sum
÷
256]+1,将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,执行n1

轮SM3杂凑算法的计算,从n1

轮SM3杂凑算法的计算结果之和中选取长度与Sum值相等的密钥作为扩展密钥key


[0013]S3

3:当256<Sum<4224且m>256时,计算n1=Sum
÷
256,n2=m
÷
256:
[0014]若n1只有整数部分,则n1

=n1,若n1存在小数部分,则n1

=[Sum
÷
256]+1;
[0015]若n2只有整数部分,则n2

=n2,并将后256比特的密钥作为SM3杂凑算法的参数;若n2存在余数部分,则n2

=[m
÷
256],并将余数部分对应的密钥作为SM3杂凑算法的参数;
[0016]将所述SM3杂凑算法的参数代入SM3杂凑算法,执行(n1
′‑
n2

)轮SM3杂凑算法的计算,将每一轮计算出来的密钥累加,并与整数部分n2

对应的密钥相加,从相加结果中选取长度与Sum值相等的密钥作为扩展密钥key


[0017]作为本专利技术的一种改进,在步骤S3

2中,所述将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,执行n1

轮SM3杂凑算法的计算,从n1

轮SM3杂凑算法的计算结果之和中选取长度与Sum值相等的密钥作为扩展密钥key

,具体过程为:
[0018]S3
‑2‑
1:将密钥key作为SM3密码杂凑算法的参数,代入SM3杂凑算法,计算得到杂凑值H1,将所述杂凑值H1再次代入SM3密码杂凑算法进行计算,得到新的杂凑值H2;
[0019]S3
‑2‑
2:重复步骤S3
‑2‑
1,每一轮产生一组新的杂凑值,下一轮都以上一轮的杂凑值作为SM3杂凑算法的参数,代入SM3杂凑算法,如此经过n1

轮的计算,将每一轮计算出来的密钥累加,从n1

轮的计算结果之和中丢弃比Sum值大的部分,留下长度与Sum值相等的密钥作为扩展密钥key


[0020]作为本专利技术的一种改进,在步骤S3

3中,所述将所述SM3杂凑算法的参数代入SM3杂凑算法,执行(n1
′‑
n2

)轮SM3杂凑算法的计算,具体过程为:
[0021]S3
‑3‑
1:将所述SM3杂凑算法的参数代入SM3杂凑算法,计算得到杂凑值H3,将所述杂凑值H3再次代入SM3密码杂凑算法进行计算,得到新的杂凑值H4;
[0022]S3
‑3‑
2:重复步骤S3
‑3‑
1,每一轮产生一组新的杂凑值,下一轮都以上一轮的杂凑值作为SM3杂凑算法的参数,代入SM3杂凑算法,如此经本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于国密SM3算法的密钥扩展方法,其特征在于,包括以下步骤:S1、确定待加密的明文的长度值Sum,以及加密所述明文的密钥key的长度m;S2、根据待加密的明文的长度值Sum,判断密钥key是否满足轮循条件,若不满足轮循条件则进入S3,若满足轮循条件则进入S4;S3、基于国密SM3算法对密钥key进行扩展处理,得到扩展密钥key

;S4、基于国密SM3算法对密钥key进行预处理,预处理后的密钥key1进入轮循扩展,得到扩展密钥key

。2.根据权利要求1所述的基于国密SM3算法的密钥扩展方法,其特征在于,在步骤S2中,所述轮循条件为Sum≥4224。3.根据权利要求1所述的基于国密SM3算法的密钥扩展方法,其特征在于,在步骤S3中,所述基于国密SM3算法对密钥key进行扩展处理,得到扩展密钥key

,具体为:S3

1:当Sum≤256时,将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,从SM3杂凑算法的计算结果中选取长度与Sum值相等的密钥作为扩展密钥key

;S3

2:当256<Sum<4224且m≤256时,计算n1=Sum
÷
256,其中若n1只有整数部分,则n1

=n1,若n1存在余数部分,则n1

=[Sum
÷
256]+1,将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,执行n1

轮SM3杂凑算法的计算,从n1

轮SM3杂凑算法的计算结果之和中选取长度与Sum值相等的密钥作为扩展密钥key

;S3

3:当256<Sum<4224且m>256时,计算n1=Sum
÷
256,n2=m
÷
256:若n1只有整数部分,则n1

=n1,若n1存在小数部分,则n1

=[Sum
÷
256]+1;若n2只有整数部分,则n2

=n2,并将后256比特的密钥作为SM3杂凑算法的参数;若n2存在余数部分,则n2

=[m
÷
256],并将余数部分对应的密钥作为SM3杂凑算法的参数;将所述SM3杂凑算法的参数代入SM3杂凑算法,执行(n1
′‑
n2

)轮SM3杂凑算法的计算,将每一轮计算出来的密钥累加,并与整数部分n2

对应的密钥相加,从相加结果中选取长度与Sum值相等的密钥作为扩展密钥key

。4.根据权利要求3所述的基于国密SM3算法的密钥扩展方法,其特征在于,在步骤S3

2中,所述将密钥key作为SM3杂凑算法的参数,代入SM3杂凑算法,执行n1

轮SM3杂凑算法的计算,从n1

轮SM3杂凑算法的计算结果之和中选取长度与Sum值相等的密钥作为扩展密钥key

,具体过程为:S3
‑2‑
1:将密钥key作为SM3密码杂凑算法的参数,代入SM3杂凑算法,计算得到杂凑值H1,将所述杂凑值H1再次代入SM3密码杂凑算法进行计算,得到新的杂凑值H2;S3
‑2‑
2:重复步骤S3
‑2‑
1,每一轮产生一组新的杂凑值,下一轮都以上一轮的杂凑值作为SM3杂凑算法的参数,代入SM3杂凑算法,如此经过n1

轮的计算,将每一轮计算出来的密钥累加,从n1

轮的计算结果之和中丢弃比Sum值大的部分,留下长度与Sum值相等的密钥作为扩展密钥key

。5.根据权利要求3所述的基于国密SM3算法的密钥扩展方法,其特征在于,在步骤S3<...

【专利技术属性】
技术研发人员:谢婷付晓满李研张上峰
申请(专利权)人:矩阵时光数字科技有限公司
类型:发明
国别省市:

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

1