AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥加密使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。密码学简介据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。
AES加密算法主要步骤
1.1 AES算法整体描述
l 给定一个明文x,将State初始化为x,并进行AddRoundKey操作,将RoundKey与State异或。
l 对前Nr-1轮中的每一轮,用S盒对进行一次代换操作,称为SubBytes;对State做一置换ShiftRows;再对State做一次操作MixColumns;然后进行AddRoundKey操作。
l 依次进行SubBytes、ShiftRows和AddRoundKey操作。
l 将State定义为密文y。
1.2 伪代码
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1])
for round = 1 step 1 to Nr-1
SubBytes(state)
ShiftRows(state)
MixColumns(state)
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
end
2 KeyExpansion()实现
2.1要求
将128 bit的密钥扩展至加密过程中的9轮循环,再上初始及最后2轮,需构造11轮密钥。每一轮密钥由4个字组成。每个字由4个byte组成。
2.2 算法设计
输入:byte[] key, byte[] w //key为密钥 w为扩展的密钥
输出:byte[] w //扩展密钥 长度为4 * 4 * 11
处理:
1)建立一个4 byte的一维数组,存放一个字。Byte[] temp;
2)将密钥key[0..15]送至w[0..15];//已赋值4个字给w。
3) for I = 4 to 43
//以下每次处理一个字(32 bit)
temp = w[I-1];
if (I = 0 mod 4) //处理一个字 then
for j = 1 to 4 //字的4 byte处理
在此循环中取temp数组下标的次序为1,2,3,0 //RotWord 操作
如果是字的首byte,取Rcon常数Rcon(I/4);
temp[j] = Sbox(temp[ (j + 1) /4]^Rcon常数
end for
temp = SubWord(RotWord(temp))⊕Rcon[i/4]
end if
w[I] = w[I-4]⊕temp;
end for
4) 输出w
3多项式乘法mod GF(28)运算
3.1要求
将两个byte在有限域GF(28)按多项式乘法,并mod 不可约多项式m(x)=x8+x4+x3+x+1。
3.2 算法设计
输入:byte a ,byte b
输出:byte r
数学基础:
GF(28)有限域性质:两个元素的加法与两个字节按位模2加是一致的;乘法满足结合律;
考虑多项式中的一项aixi(i∈0-7),用一次x乘以多项式:
b(x) = b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 + b1x + b0,
得到
b7x8 + b6x7 + b5x6 + b4x5 + b3x4 + b2x3 + b1x2 + b0x (式1)
将结果模m(x)求余得到x*b(x)。
如果b7 = 0,则式1就是x*b(x)。
如果b7 不等于0,则必须从式1中减去m(x)后结果为x*b(x)。用x乘一个多项式简称x乘。
由此得出,aixi 乘以b(x),可以作i次x乘。x(十六进制表示为0x02)乘可以用字节内左移一位和紧接着的一个与0x1b的按位模2加来实现,该运算暂记为xtime()。X的更高次的乘法可以通过重复应用xtime()来实现。通过将中间结果相加,任意乘法都可以利用xtime()来实现。例如:
57 * 13 = fe ,这是因为:
57 * 02 = xtime(57) = ae
57 * 04 = xtime(ae) = 47
57 * 08 = xtime(47) = 8e
57 * 10 = xtime(8e) = 07
所以
57 * 13 = 57 * ( 01⊕ 02 ⊕10 )
= 57⊕ ae⊕ 07
= fe
4 Sbox生成
4.1要求
一个字节byte看作为一个在有限域GF(28)的多项式,求出它关于模m(x)的乘法逆,之后将该乘法逆在GF(2)上作仿射变换。
4.2 算法设计
输入:byte a
输出:byte[] S
数学逻辑:
由有限域GF(28)性质。某个生成元(也是本原元)a,其a^(28-1) ≡ 1 mod m(x)。或a255 ≡ 1 mod m(x)。另外,a的从1到28-1的幂的值是构成了有限域GF(28)。
由乘法逆的性质b * b -1 ≡ 1。求乘法逆可简化如下
设 x = am ,设y是x的乘法逆,则y = a255-m
处理:
建立三个一组数组,分别为:byte S[255],byte L[255],byte E[255]。
取本原元为a = 0x03,
将a的0,1,2…255次方mod m(x)分另送至数组L中。a的运算参考前面的多项式乘法运算。如下伪码:
For i = 0 to 255
L[i] = ai (式2)
End for
为方便计算乘法逆的指数,数组E存放ai的幂指数i。将式2中ai值为数组E的下标,而将ai在数组L中的下标i作为数组E中对应的值。对应(式2)每一项有E[ai] = i。
由上面两个数组L,E,可得到GF(28)域中的任一byte的乘法逆。
设字节c它由ai生成的。其中a是GF(28)域中的生成元。欲求c的乘法逆。只需要找到a255-i即可。在数组E中可以由c查出生成元a的幂指数i。c-1的幂指数255-i。所以c-1 = L[255-i]。
对每一个字节byte根据以上内容得到乘法逆,作仿射变换得到数组S。即为Sbox
B. DES和AES算法的比较,各自优缺点
DES与AES的比较研究
聂定远;李小俊
讨论了目前主要的一些数据加密算法、DES算法及高级加密标准(AES)的Rijndael算法。比较了DES、AES对称密码算法,得出AES具有比DES更好的安全性、效率、灵活性的结论。
【作者单位】:中国地质大学信息工程学院 湖北武汉430074
【关键词】:密码算法;数据加密;DES;AES
【分类号】:TN918.1
【DOI】:CNKI:ISSN:1672-7800.0.2007-05-012
【正文快照】:
1DES算法介绍DES算法具有对称性,既可以用于加密又可以用于解密。对称性带来的一个很大的好处在于硬件实现,DES的加密和解密可以用完全相同的硬件来实现。DES算法的明文分组是64位,输出密文也是64位。所以密钥的有效位数是56位,加上校验位共64位。总体流程如表1所示:输入的64位明文,先经初始IP变换,形成64位数据,64位数据被分为两部分,分别是L部分和R部分;L和R经过16次迭代,形成新的64位;新的64位数据再经初始逆变换,输出64位密文。初始置换和逆初始置换是简单的移位操作。在迭代过程这一步骤,替代是在密钥控制下进行的,而移位是按…
推荐 CAJ下载 PDF下载
C. 无线路由器加密算法tkip和aes有什么区别
一、安全性能不同
TKIP本质上是一个WEP补丁,解决了攻击者通过获得少量的路由器流量解析出路由器密钥的问题。TKIP还提供了一个较为完善的安全升级,但是对于保护网络不受黑客攻击上不够全面。
AES是一个完全独立的加密算法,远远优于任何TKIP提供的算法,该算法有128位,192位或256位的分组密码。所以AES安全性能比TKIP好。
二、速度不同
TKIP是一种过时的加密方法,而且除了安全问题,它还会减缓系统运行速度,速度会减慢至54Mbps。
支持WPA2-AES加密的802.11ac理想条件下最大速度为3.46Gbps。所以AES的运行速度相较于TKIP要快。
三、密钥长度不同
TKIP中密码使用的密钥长度为128位,这就解决了WEP密码使用的密钥长度过短的问题。
AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。
D. aes算法是什么
AES:Advanced Encryption Standard(高级加密标准),是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。
AES具有应用范围广
等待时间短、相对容易隐藏、吞吐量高等优点,在性能等各方面都优于WEP算法。利用此算法加密,WLAN的安全性将会获得大幅度提高。AES算法已经在802.11i标准中得到最终确认,成为取代WEP的新一代的加密算法。但是由于AES算法对硬件要求比较高,因此AES无法通过在原有设备上升级固件实现,必须重新设计芯片。
以上内容参考:网络-AES技术
E. aes算法最新攻击手段
DES算法优点:DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
DES算法缺点:
1、分组比较短。
2、密钥太短。
3、密码生命周期短。
4、运算速度较慢。
AES算法优点:
1、运算速度快。
2、对内存的需求非常低,适合于受限环境。
3、分组长度和密钥长度设计灵活。
4、 AES标准支持可变分组长度,分组长度可设定为32比特的任意倍数,最小值为128比特,最大值为256比特。
5、 AES的密钥长度比DES大,它也可设定为32比特的任意倍数,最小值为128比特,最大值为256比特,所以用穷举法是不可能破解的。
6、很好的抵抗差分密码分析及线性密码分析的能力。
AES算法缺点:目前尚未存在对AES 算法完整版的成功攻击,但已经提出对其简化算法的攻击。
(5)aes算法的缺点扩展阅读:
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
F. aes加密安全吗
AES算法作为DES算法和MD5算法的替代产品,10轮循环到目前为止还没有被破解。一般多数人的意见是:它是目前可获得的最安全的加密算法。AES与目前使用广泛的加密算法─DES算法的差别在于,如果一秒可以解DES,则仍需要花费1490000亿年才可破解AES,由此可知AES的安全性。AES 已被列为比任何现今其它对称加密算法更安全的一种算法。
G. aes des rsa的加密算法有什么区别通俗简单讲,就是各个的优点和缺点,不要太深奥
aes/des加密速度快,适合大量数据,des容易破解,一般用3重des,后来又出现了更快更安全的aes
rsa是公钥加密,速度慢,只能处理少量数据,优点是公钥即使在不安全的网络上公开,也能保证安全
常见情况是双方用rsa协商出一个密钥后通过aes/3des给数据加密
H. aes算法中哪种模式不安全
应该是ecb的模式,因为ecb掩盖不了明文结构信息,难以抵抗统计分析攻击。可对明文进行主动攻击。
I. 几种常用数据加密算法的比较
几种对称性加密算法:AES,DES,3DES
DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。
相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。
几种非对称性加密算法:RSA,DSA,ECC
RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。
几种线性散列算法(签名算法):MD5,SHA1,HMAC
这几种算法只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传说过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道密匙生成算法,而HMAC与之不同的是需要生成一个密匙,发送方用此密匙对数据进行摘要处理(生成密文),接收方再利用此密匙对接收到的数据进行摘要处理,再判断生成的密文是否相同。
对于各种加密算法的选用:
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。
J. DES和AES算法的比较,各自优缺点有哪些
一、数据加密标准不同
1、DES算法的入口参数有三个:Key、Data、Mode。
其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
2、AES的基本要求是,采用对称分组密码体制,密钥的长度最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。
因此AES的密钥长度比DES大, 它也可设定为32比特的任意倍数,最小值为128比特,最大值为256 比特,所以用穷举法是不可能破解的。
二、运行速度不同
1、作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。处理速度慢、加密耗时
2、AES对内存的需求非常低,运算速度快,在有反馈模式、无反馈模式的软硬件中,Rijndael都表现出非常好的性能。
三、适用范围不同
1、数据加密标准,速度较快,适用于加密大量数据的场合。DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES
2、AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数)达到十亿量级。同样,其也适用于RFID系统。