[发明专利]一种基于弱关联性的AES密钥扩展方法有效

专利信息
申请号: 202010166116.8 申请日: 2020-03-11
公开(公告)号: CN111400730B 公开(公告)日: 2022-03-08
发明(设计)人: 廖浩德;田培培 申请(专利权)人: 西南石油大学
主分类号: G06F21/60 分类号: G06F21/60
代理公司: 成都方圆聿联专利代理事务所(普通合伙) 51241 代理人: 宋红宾
地址: 610500 四*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 关联性 aes 密钥 扩展 方法
【权利要求书】:

1.一种基于弱关联性的AES密钥扩展方法,其特征在于:包括以下步骤:

S1.基于RC4算法密钥长度可变的特点,利用伪随机发生器生成136-256比特数的随机数,进而得到种子密钥,并进行保存;

S2.根据待扩展的AES算法密钥长度的不同,确定对应的密钥总轮数Q:

对于长度为128位的密钥,Q=10;

对于长度为192位的密钥,Q=12;

对于长度为256位的密钥,Q=14;

初始化参数q=0;

S3.将种子密钥作为RC4算法中的KSA算法的输入,得到一个初始S密钥,该初始S密钥具有256位;

所述步骤S3包括以下子步骤:

S301.初始化一个一维数组S[i],i=0,1,…,255,其元素值与下标相同且每个元素值为一个字节;

S302.初始化一个临时数组T[j],j=0,1,…,255,其元素值为步骤S1中的种子密钥,若种子密钥的长度不足256位,则把种子密钥分别复制给数组T中的余下部分,直至数组T被填满;

S303.初始化参数j=0,i=0;

A1、对参数j进行更新,得到j′:

j′=(j+S[i]+T[j])mod256;

其中mod256表示运算结果与256求余数;

A2、交换S[i]和T[j′],使S[i]有一定的随机性:

S[i]变为S′[i]:

S′[i]=T[j′];

T[j′]变为T′[j′]:

T′[j′]=S[i];

A3、对参数i进行更新,每次更新后i的值加1;

A4、判断更新后的i是否满足条件:i不大于255;

若是,返回步骤A1,将更新得到的j′作为新的j,与更新后的i一起按照步骤A1~A4进行重复迭代;

若否,输出数组S′[i],i=0,1,…,255,即初始S密钥;

S4.将初始S密钥作为RC4算法中的PRGA算法的输入,得到一个256位的密钥流;

所述步骤S4包括以下子步骤:

S401.初始化参数:t=0,p=0,r=0;

S402.对参数t进行更新,得到t′:

t′=(t+1)mod 256;

对参数p进行更新,得到p′:

p′=(p+S′[t′])mod 256

S403.交换S′[t′],S′[p′]的值:

S′[t′]变为S″[t′]:

S″[t′]=S′[p′];

S′[p′]变为S″[p′]:

S″[p′]=S′[t′]

S404.计算中间参数h:

h=(S″[t′]+S″[p′])mod 256;

S405.确定参数K[r]:

K[r]=S′[h];

K表示的是一个中间数组,K[r]的意思是数组K的下标为r的对应的元素;

S406.对参数r进行更新,每次更新后r的值加1;

S407.判断更新后的r是否满足条件:r不大于255;

若是,返回步骤S402,将更新得到的t′、p′作为新的t、p,与更新得到的r一起按照步骤S402~S407进行重复迭代;

若否,输出K[r],r=0,1,…,255,即最终的256位的密钥流;

S5.对步骤S4中得到的256位的密钥流进行相应的截取,得到16字节的轮密钥,截取规则为:

种子密钥经过KSA和PRGA算法后生成256位的密钥流后,对于128位密钥长度的AES加密算法,选择种子密钥的第q+1个字节作为基础进行轮密钥截取:将选择的字节与255进行与操作并将操作后的数值与64进行取余运算,将运算结果对应到256位的密钥流的字节上,然后向右循环截取,得到16字节的轮密钥;

种子密钥经过KSA和PRGA算法后生成256位的密钥流后,对于192位密钥长度的AES加密算法,选择种子密钥的第q+2个字节,作为基础进行轮密钥截取:将选择的字节与255进行与操作并将操作后的数值与64进行取余运算,将运算结果对应到256位的密钥流的字节上,然后向右循环截取,得到16字节的轮密钥;

种子密钥经过KSA和PRGA算法后生成256位的密钥流后,对于256位密钥长度的AES加密算法,选择种子密钥的第q+3个字节作为基础进行轮密钥截取:将选择的字节与255进行与操作并将操作后的数值与64进行取余运算,将运算结果对应到256位的密钥流的字节上,然后向右循环截取,得到16字节的轮密钥;

S6.对q进行更新,每次更新后q的值加1;

S7.判断是否满足条件q不大于Q;

若是,将得到的256位的密钥流作为步骤S4的输入,并基于更新后的q值,再次按照步骤S4~S7进行循环迭代;

若否,输出最终的轮密钥矩阵。

2.根据权利要求1所述的一种基于弱关联性的AES密钥扩展方法,其特征在于:所述步骤S5中,利用选择的字节作为基础进行轮密钥截取的具体过程如下:

S501.根据选择的字节,从ASCII码对照表中找到对应的十进制数值,将该十进制数值表示为二进制,并与255的二进制按照二进制位进行“与”运算,“与”运算的规则为:

00=0;01=0;10=0;11=1;

S502.将“与”运算得到的二进制数转换为十进制数,并除以64取余,得到余数m;

S503.将取余运算结果对应到256位密钥流的字节上,截取轮密钥:从256位密钥流的第m个字节开始,向右循环截取,得到16字节的轮密钥。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南石油大学,未经西南石油大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010166116.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top