AES密码算法

  1. AES密码算法概述
    高级加密标准(Advanced Encryption Standard, AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,己经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之。

    严格地说,AES和 Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度: AES的区块长度固定为128比特,密钥长度则可以是128,192 或256比特;而Rijndael使 用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。加密过程中使用的密钥是由Rijndael密钥生成方案产生。

    高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密解密用相同的密钥。
    AES密码算法工作过程如下图所示:
    在这里插入图片描述

  2. AES加密算法基本结构
    AES算法主要由密钥拓展加密模块解密模块三部分组成。分组长度(Np)密钥长度(Nk)和加密轮数(N)的关系如下表表1所示:
    在这里插入图片描述
    类似于明密文分组,AES算法的中间结果也分组,中间结果的分组称为状态,所有的操作都在状态上进行。
    而状态可以用以字节为元素的矩阵表示,该矩阵有4行,列数记为Nb,Nb等于分组长度除以32。
    种子密钥也用一个以字节为元素的矩阵表示,该矩阵有4行,列数记为Nk,Nk等于分组长度除以32。
    AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。而密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同。以AES-128为例,也就是密钥的长度为128位,加密轮数为10轮。

  3. AES加密算法优点
    自DES 算法公诸于世以来,学术界围绕它的安全性等方面进行了研究并展开了激烈的争论。在技术上,对DES的批评主要集中在以下几个方面:
    1、作为分组密码,DES 的加密单位仅有64 位二进制,这对于数据传输来说太小,因为每个分组仅含8 个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。
    2、DES 的密钥的位数太短,只有56 比特,而且各次迭代中使用的密钥是递推产生的,这种相关必然降低密码体制的安全性,在现有技术下用穷举法寻找密钥已趋于可行。
    3、DES 不能对抗差分和线性密码分析。
    4、DES 用户实际使用的密钥长度为56bit,理论上最大加密强度为256。DES 算法要提高加密强度(例如增加密钥长度),则系统开销呈指数增长。除采用提高硬件功能和增加并行处理功能外,从算法本身和软件技术方面都无法提高DES 算法的加密强度。
    相对DES算法来说,AES算法无疑解决了上述问题,主要表现在以下几个方面:
    1、运算速度快,在有反馈模式、无反馈模式的软硬件中,AES都表现出非常好的性能。
    2、对内存的需求非常低,适合于受限环境。
    3、AES是一个分组迭代密码, 分组长度和密钥长度设计灵活。
    4、AES标准支持可变分组长度,分组长度可设定为32 比特的任意倍数,最小值为128 比特,最大值为256 比特。
    5、AES的密钥长度比DES大, 它也可设定为32 比特的任意倍数,所以用穷举法是不可能破解的。
    6、AES算法的设计策略是WTS。WTS 是针对差分分析和线性分析提出的,可对抗差分密码分析和线性密码分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值