[发明专利]一种提高AES加解密效率的方法和装置有效
申请号: | 202110949456.2 | 申请日: | 2021-08-18 |
公开(公告)号: | CN114172632B | 公开(公告)日: | 2023-09-08 |
发明(设计)人: | 何迪;杨念东 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102209 北京市昌平区北七家镇未*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提高 aes 解密 效率 方法 装置 | ||
本发明提出一种提高AES加解密效率的方法和装置,该方法打破原先每轮加解密所需要执行的四个子流程,采用错轮次流程合并的方式,使所有行操作连续执行并形成一个整体,使所有列操作连续执行并形成一个整体,以更加简洁的电路设计合并实现所有行以及列运算流程,以加快算法的运行时间,并减少了硬件电路的规模。同时对算法中所有操作数据在执行方法上进行转置,以去掉原始算法中对数据处理前和处理后的两次转置行为,进一步提升速度和减少硬件电路规模。本发明主要解决依照算法原理实现时效率不够高的问题。
技术领域
本发明涉及算法技术领域,以及智能卡、SE、MCU等需要用到AES算法的所有芯片。PC机端作为对比测试也可以使用本发明中提到的方法。
背景技术
AES加密算法作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。该算法内部的加解密主流程采用四种基本操作来组和实现AES算法。包括字节代替,行移位,列混合,轮密钥异或。根据算法原理实现时,需要对一个4*4的数组穿插进行行运算和列运算,且恰好三个行运算被一个列运算所分割,即使使用硬件实现速度依然远远慢于传统的DES算法,在进行大数据加密时会显得实时性不够。
发明内容
本发明提供一种提高AES加解密效率的方法和装置,拆分重组了轮加解密中的4个步骤,把i-1轮的D轮密钥异或操作和i轮的A字节代替和B行移位三个步骤进行组合,通过实际的减少赋值操作来进行提速,用以加快算法的加解密速度,并用实际硬件做了验证。
加密运算时把D轮密钥异或,A字节代替,B行移位,三个步骤合并成一个步骤,优化前算法每轮执行的ABCD4个步骤,A步骤对输入的16字节数据进行完字节代替后,B步骤再对刚才的结果进行行移位操作,以此类推,直到执行完轮密钥异或操作。除去C操作,剩余的ABD操作一共会执行48次赋值操作,而优化后针对上一轮的D和下一轮的AB将进行合并形成新的DAB,作为整体去运算,不再是每个步骤单独对16字节数据进行计算把结果传给下一个步骤,而是针对每个字节分别执行完DAB三个操作后再对下一个字节执行DAB操作,这种计算方法一共会执行20次赋值操作。相比优化前的48次赋值,提高了执行效率。
解密运算则完全是加密运算的逆运算,把BAD三个步骤组合,一样可以减少28次赋值操作。
本发明提供一种提高AES轮加密效率的方法,其流程包括4个阶段:
阶段1:重组后的第1轮。
阶段2:重组后的第2~(n-1)轮。
阶段3:重组后的第n轮。
阶段4:后处理。
为说明上述4个阶段的重组过程,这里先简单介绍未执行重组优化的原始AES算法流程。
AES整体分为轮运算和轮密钥生成两个过程。其中本发明并不涉及对轮密钥生成过程的优化,故不展开说。对于加密的轮运算,一共分为4个小步骤,分别是A字节代替,B行移位, C列混合,D轮密钥异或。算法的执行流程见图2。
步骤202和步骤204分别对应轮运算的第1轮和第n-1轮。
步骤203代表着一系列相同的步骤,都完全等同于步骤202和步骤204。为简化不予画出。
步骤205里面去掉了C列混合这步。
注意用户输入的待加密数据和输入到算法运行的数据是有区别的,用户每次输入16字节,然后内部先转化成一个4*4的矩阵,然后把矩阵进行转置,也就是沿着主对角线翻转一次,然后才传入算法进行运算。图2和图3最开始传入的明文和密文数据均需要先经过转置才能传给AES区运算,而图2和图3最后计算完的数据也需要再次执行转置操作才能得到最终的密文或明文数据传递给用户。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110949456.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:分布式宽带网络网关控制分组的优先级信道
- 下一篇:生成优化的神经网络