当前位置: 首页 > 专利查询>黑龙江大学专利>正文

一种基于长密钥的SM4密钥扩展算法的实现系统及其方法技术方案

技术编号:14135758 阅读:531 留言:0更新日期:2016-12-10 03:24
一种基于长密钥的SM4密钥扩展算法的实现系统及其方法,系统包括混沌映射模块、数据缓存模块、异或模块、非线性置换S盒模块和线性变换L模块;所述混沌映射模块输入为部分初始密钥,通过利用混沌映射的多次迭代,产生具有良好随机性的伪随机序列作为原SM4密钥扩展算法的输入,通过对混沌性能和硬件实现资源消耗的考虑,混沌映射模块选择Logistic映射;本发明专利技术将混沌映射融入到SM4密钥扩展算法中。通过对SM4密钥扩展算法的优化,不仅增大了SM4算法的密钥空间,还增强了每轮子密钥的随机性。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,具体涉及一类基于长密钥的SM4密钥扩展算法的实现系统及其方法
技术介绍
SM4算法是国内广泛使用的WAPI无线网络标准算法中使用的加密算法。SM4算法原名为SMS4算法,在2012年被国家商用密码管理局确定为国家密码行业标准,标准编号GM/T0002-2012并且改名为SM4算法。SM4分组密码算法与SM2椭圆曲线公钥密码算法、SM3密码杂凑算法共同作为国家密码行业标准,在我国密码行业有着重要的位置。密钥长度决定密钥空间的大小。密钥空间是保障加密算法不受穷举法破解的最基本的安全保障。现在使用的128位密钥的分组加密算法足够安全,并广泛运用在各个需要加密的环境中,例如AES-128、SM4、Camellia-128等。随着现在计算机运算速度成倍的增加,特别是量子计算机的突飞猛进。在未来几十年内,具有128位密钥空间的加密算法也存在着被破译的可能。使用256位密钥的分组加密算法如AES-256、Camellia-256等被称为“高级算法”,使用现存量子算法并配合量子计算机也无法破解。相对AES和Camellia算法而言,SM4算法存在着密钥空间较小的安全隐患。
技术实现思路
基于以上不足之处,本专利技术提供一种基于长密钥的SM4密钥扩展算法的实现系统及其方法,解决了现在SM4算法存在的密钥空间较小的安全隐患。本专利技术所采用如下技术:一种基于长密钥的SM4密钥扩展算法的实现系统,包括混沌映射模块、数据缓存模块、异或模块、非线性置换S盒模块和线性变换L模块,所述混沌映射模块输入为部分初始密钥,通过利用混沌映射的多次迭代,产生具有良好随机性的伪随机序列作为原SM4密钥扩展算法的输入,通过对混沌性能和硬件实现资源消耗的考虑,混沌映射模块选择Logist ic映射;所述异或模块为多输入异或逻辑门电路;所述非线性置换S盒模块共使用四个并行的8输入的S盒,每个并行的S盒对输入的8比特数地址进行寻址,输出存储在S盒中的8比特数据;所述线性变换L模块是简单地移位和异或操作。本专利技术还具有如下技术特征:采用如上所述的实现系统得出的一种基于长密钥的SM4密钥扩展算法的实现方法,包括如下步骤:步骤1001:数据缓存模块接收128位初始密钥。将接收到的初始密钥分成4个32比特的数据,并分别缓存起来。Logistic混沌映射模块接收剩余初始密钥,输出伪随机序列。步骤1002:将数据缓存模块中的4个32比特的数据中选取3个和Logistic混沌映射模块产生的伪随机序列异或,得到最终的32比特数据。步骤1003:将步骤1002中最终生成的32比特数据划分成4个8比特数据,并分别作为寻址地址输入到4个并行8输入的S盒中。最后将得到置换后的4个8比特数进行位拼接,形成新的32比特数。步骤1004:将步骤1003中最终得到的32比特数分别同时循环移位不同位数,并与步骤1002中数据缓存模块剩余的一个32比特数异或,得到最终的32比特数。该32比特数置换数据缓存模块中的一个32比特数,并缓存起来。步骤1005:重复步骤1002至步骤1004共32次,并停止输出。本专利技术通过引入混沌系统Logistic映射,加强了每轮子密钥的随机性,增大了SM4算法的密钥空间,解决了现在SM4算法存在的密钥空间较小的安全隐患。附图说明图1为本专利技术的一种基于长密钥的SM4密钥扩展算法的实现框图;图2为本专利技术实施例提供的Logistic混沌映射实现框图;图3为本专利技术的一种基于长密钥SM4的密钥扩展算法的实现系统结构图。具体实施方式实施例1如图1所示,一种基于长密钥的SM4密钥扩展算法的实现系统,包括混沌映射模块、数据缓存模块、异或模块、非线性置换S盒模块和线性变换L模块,所述混沌映射模块输入为部分初始密钥,通过利用混沌映射的多次迭代,产生具有良好随机性的伪随机序列作为原SM4密钥扩展算法的输入,通过对混沌性能和硬件实现资源消耗的考虑,混沌映射模块选择Logist ic映射;所述异或模块为多输入异或逻辑门电路;所述非线性置换S盒模块共使用四个并行的8输入的S盒,每个并行的S盒对输入的8比特数地址进行寻址,输出存储在S盒中的8比特数据;所述线性变换L模块是简单地移位和异或操作。实施例2如图3所示,采用实施例1的系统得出的一种基于长密钥的SM4密钥扩展算法的实现方法,包括下步骤:步骤1001:将初始密钥分为两个部分。一部分为固定大小的128比特k1,剩余的初始密钥为另一部分k2。k2的位数需要大于或等于32比特。故整个初始密钥的位数需要大于或等于160比特。步骤1002:将固定的128比特密钥k1从高位到低位按顺序划分为4个32比特数据,并存储在Xi、Xi+1、Xi+2和Xi+3中。剩余的初始密钥k2作为Logistic混沌映射的初始值,并存储在yi中。步骤1003:将Xi+1、Xi+2和Xi+3相异或,最后在与k2中抽取低的32位数据异或,得到最终的32比特数V。步骤1004:将32比特数V从高位到低位按顺序划分为4个8比特数。将这4个8比特数作为寻址地址输入到4个并行的8输入非线性置换S盒中,置换出S盒中相应位置存储的8比特数据。最后将置换后的4个8比特数据位拼接为32比特数据S(V)。于此同时,将yi作为输入数据,送入取反模块和乘4模块中。取反模块将yi与相同位数的二进制数值1相异或得到u。乘4模块将yi向左移动2比特数得到w。步骤1005:将S(V)通过线性函数L。其操作具体为:将S(V)同时循环左移2位、循环左移10位、循环左移18位、循环左移24位,再将这四次循环移位后的数据异或,最后再与S(V)异或得到32比特数L(S(V))。与此同时,将u加一得到z。步骤1006:将32比特数L(S(V))与Xi异或厚的数据更新Xi+4的值。并同时将Xi+1的值传递给原Xi,Xi+2的值传递给原Xi+1,Xi+3的值传递给原Xi+2。与此同时将z与w相乘得到h。从数据h低位中提取与初始密钥k2相同位数的比特数据,并将该比特数据更新yi的值。步骤1007:将步骤1001至步骤1006重复共32次后停止。本文档来自技高网...
一种基于长密钥的SM4密钥扩展算法的实现系统及其方法

【技术保护点】
一种基于长密钥的SM4密钥扩展算法的实现系统,包括混沌映射模块、数据缓存模块、异或模块、非线性置换S盒模块和线性变换L模块,其特征在于:所述混沌映射模块输入为部分初始密钥,通过利用混沌映射的多次迭代,产生具有良好随机性的伪随机序列作为原SM4密钥扩展算法的输入,通过对混沌性能和硬件实现资源消耗的考虑,混沌映射模块选择Logistic映射;所述异或模块为多输入异或逻辑门电路;所述非线性置换S盒模块共使用四个并行的8输入的S盒,每个并行的S盒对输入的8比特数地址进行寻址,输出存储在S盒中的8比特数据;所述线性变换L模块是简单地移位和异或操作。

【技术特征摘要】
1.一种基于长密钥的SM4密钥扩展算法的实现系统,包括混沌映射模块、数据缓存模块、异或模块、非线性置换S盒模块和线性变换L模块,其特征在于:所述混沌映射模块输入为部分初始密钥,通过利用混沌映射的多次迭代,产生具有良好随机性的伪随机序列作为原SM4密钥扩展算法的输入,通过对混沌性能和硬件实现资源消耗的考虑,混沌映射模块选择Logistic映射;所述异或模块为多输入异或逻辑门电路;所述非线性置换S盒模块共使用四个并行的8输入的S盒,每个并行的S盒对输入的8比特数地址进行寻址,输出存储在S盒中的8比特数据;所述线性变换L模块是简单地移位和异或操作。2.采用如权利要求1所述的实现系统得出的一种基于长密钥的SM4密钥扩展算法的实现方法,其特征在于,包括如下步骤:步骤1001:数据缓存模块接收128位初始密钥,将接收...

【专利技术属性】
技术研发人员:丁群王传福
申请(专利权)人:黑龙江大学
类型:发明
国别省市:黑龙江;23

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

1