AES加密算法原理

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-26
aes加密算法原理

AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。
1.1圈变化
AES每一个圈变换由以下三个层组成:
非线性层——进行Subbyte变换;
线行混合层——进行ShiftRow和MixColumn运算;
密钥加层——进行AddRoundKey运算。
① Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。

② ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。

③ 在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。 b(x)=c(x)*a(x)的系数这样计算:
*运算不是普通的乘法运算,而是特殊的运算,即 b(x)=c(x)·a(x)(mod x4+1) 对于这个运算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0
其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。

对于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)*a(x)。
④ 密钥加层运算(addround)是将圈密钥状态中的对应字节按位“异或”。

⑤ 根据线性变化的性质[1],解密运算是加密变化的逆变化。

一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,本文对对称加密和分组加密中的几种种模式进行一一分析(ECB、CBC、CFB、OFB,CTR)

这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。

优点:

这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。

优点:

计算器模式不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是 在计算器不能维持很长的情况下,密钥只能使用一次 。CTR的示意图如下所示:

优点:

优点:

优点:

AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。\x0d\x0a1.1圈变化\x0d\x0aAES每一个圈变换由以下三个层组成:\x0d\x0a非线性层——进行Subbyte变换;\x0d\x0a线行混合层——进行ShiftRow和MixColumn运算;\x0d\x0a密钥加层——进行AddRoundKey运算。\x0d\x0a① Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。\x0d\x0a\x0d\x0a② ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。\x0d\x0a\x0d\x0a③ 在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。 b(x)=c(x)*a(x)的系数这样计算:\x0d\x0a*运算不是普通的乘法运算,而是特殊的运算,即 b(x)=c(x)·a(x)(mod x4+1) 对于这个运算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0\x0d\x0a其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。\x0d\x0a\x0d\x0a对于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)*a(x)。\x0d\x0a④ 密钥加层运算(addround)是将圈密钥状态中的对应字节按位“异或”。\x0d\x0a\x0d\x0a⑤ 根据线性变化的性质[1],解密运算是加密变化的逆变化。

  • aes算法是对称算法吗
    答:非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。DES加密算法,AES加密算法,RSA加密算法,Base64加密算法,MD5加密算法,SHA1加密算法。AES加密算法是对称密钥还是非对称密钥...
  • aes加密是什么意思?
    答:AES加密(Advanced Encryption Standard)是一种高级加密标准。AES加密算法是现今公认最为安全的加密算法之一。它使用对称密钥加密(Symmetric Key Encryption)技术,即加密和解密所用的密钥是相同的。由于其高强度的加密算法,AES加密算法被广泛应用于保护重要数据的加密过程中。AES加密算法具有强大的加密能力,...
  • aes算法是什么?
    答:AES具有应用范围广 等待时间短、相对容易隐藏、吞吐量高等优点,在性能等各方面都优于WEP算法。利用此算法加密,WLAN的安全性将会获得大幅度提高。AES算法已经在802.11i标准中得到最终确认,成为取代WEP的新一代的加密算法。但是由于AES算法对硬件要求比较高,因此AES无法通过在原有设备上升级固件实现,必须...
  • aes算法步骤
    答:aes算法由四个不同的变换组成,包括一个置换和三个替代:字节代替(SubBytes):用一个S盒完成分组的字节到字节的代替。行移位(ShiftRows):一个简单的置换。列混淆(MixColumns):利用域GF(28)上的算术特性的一个代替。轮密钥加(AddRoundKey):当前分组和扩展密钥的一部分进行按位XOR(异或)。输入的密钥被...
  • aes128算法 密文和明文如何算出密码
    答:AES-128是一种对称加密算法,使用相同的密钥进行加密和解密。密钥长度为128位(16字节),密钥可以是随机生成的。要计算出密码(即密文和明文之间的转换),需要以下步骤:1. 密钥生成:首先,需要生成一个128位的密钥。密钥可以是随机生成的,也可以使用密码学安全的伪随机数生成器生成。2. 分组和填充...
  • 什么是aes加密?
    答:3、适用情况不同 TKIP加密算法经常在老的无线网卡上使用,适用于802.1x无线传输协议,TKIP中密码使用的密钥长度为128位;AES加密算法是在新无线网卡上使用,适用于802.11n无线传输协议,AES加密数据块和密钥长度可以是128比特、192比特、256比特中的任意一个。参考资料来源:百度百科-TKIP 参考资料来源:...
  • Android-AES加解密
    答:AES 是一种对称加密算法,即使用秘钥加密数据以后,要使用相同的秘钥才能解密。AES 加密方式比 DES 加密更安全,但是速度比不上 DES,但在不同运行环境下能保持良好的性能。 AES 共有 5 种加密模式:其中 ECB、CBC、CTR 为块加密模式,CFB、OFB 为流加密模式。 AES 五种加密模式: https:/...
  • 算法秘密共享shamir请问shamir算法秘密共享的原理是什么
    答:Rijndael被选中成为将来的AES。 Rijndael是在 1999 年下半年,由研究员 Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准 (AES) 规范。算法原理 AES 算法基于排列和置换运算。排列...
  • 电脑里有个文件EA-Key3.1是什么,可以删除吗
    答:电脑中的EA-Key3.1是加密软件。如果在电脑中使用这个软件加密过文件的话,可以不删除。如果没有用它加密过文件的话,就可以把它删除。在删除的时候,它会留下一些注册的信息。可以直接在控制面板中进行卸载。也可以直接在软件管家中进行卸载。如果没有它的程序的话,就可以直接删除它的文件夹。
  • 软件保护的硬件加密原理
    答:全球最先进的加密狗内置高安全强度的加密算法,在通讯中同时采用128位AES对称算法(标准加密算法)及224位ECC以及1024位RSA非对称算法(椭圆算法)作为通讯加密手段,每一次数据传输都用128位随机密钥AES算法对其加密,而这个随机的密钥又用224位ECC算法加密,在随后传输。由于ECC是非对称算法,加密和解密的...