安全加密算法之AES分析1
• AES是一种分组密码,用以取代DES的商业应用 。其明文长度为128位,密钥长度为128位、 192位、或256位。
算法特点:
• 明文分组的长度为128位即16字节,密 钥长度可以为16,24,或32字节(128,192 或256位)。根据密钥的长度,算法被称 为AES-128、AES-192、AES-256。
对称加密算的特点
• 对称加密算法的特点是算法公开、计算量小、 加密速度快、加密效率高。不足之处是,交易 双方都使用同样钥匙,安全性得不到保证。此 外,每对用户每次使用对称加密算法时,都需 要使用其他人不知道的惟一钥匙,这会使得发 收信双方所拥有的钥匙数量成几何级数增长, 密钥管理成为用户的负担。对称加密算法在分 布式网络系统上使用较为困难,主要是因为密 钥管理困难,使用成本较高。而与公开密钥加 密算法比起来,对称加密算法能够提供加密和 认证却缺乏了签名功能,使得使用范围有所缩 小。在计算机专网系统中广泛使用的对称加密 算法有DES和IDEA等。美国国家标准局倡导的 AES即将作为新标准取代DES。
字节代替
S盒
2、行移位变换
• 4X4的state矩阵第一行保持不变,第二 行循环左移一个字节,第三行循环左移 两个字节,第四行循环左移三个字节。
S0,0 S0,1 S0,2 S0,3 S1,0 S1,1 S1,2 S1,3 S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3
• 每轮的轮常量均不同,其定义为 Rcon[j]=(RC[j],0,0,0),其中 RC[1]=1,RC[j]=2·RC[j-1]。
• RC[j]的值按十六进制表示为:
j 1 2 3 4 5 6 7 8 9 10 RC[j] 01 02 04 08 10 20 40 80 1B 36
AES算法安全性
• 截至2006年,针对AES唯一的成功攻击 是旁道攻击。美国国家安全局审核了所 有的参与竞选AES的最终入围者(包括 Rijndael),认为他们均能够满足美国 政府传递非机密文件的安全需要。2003 年6月,美国政府宣布AES可以用于加密 机密文件。
AES应用
• Rijndael 被选为AES是经过多个国家的密码专家广泛讨论的 结果。Rijndael 算法具有灵活、简便、抗击多种密码分析 的优点,它的目标是发展成能够安全用于商业、政治和军事 的加密算法。
• 商业的和其他非美国政府组织被推荐( 而非要求)使用AES和NIST的其它加密标 准。Rijndael的商业产品本应在宣布之 后不久推出,然而AES本身在2001年某 一时间才会成为正式标准,之后NIST还 会推出相应的测试规范,NIST和加拿大 政府通讯安全机构(CSE)共同运行加密 模块确认程序(CMVP)来测试此算法,为 NIST的标准和规范制定商业的、官方认 可的实验室测试加密执行标准,如果可 行,NIST和CSE将共同为该算法授权。
目录结构
1、对称加密算法
• 对称加密算法[1]是应用较早的加密算法,技 术成熟。在对称加密算法中,数据发信方将明 文(原始数据)和加密密钥一起经过特殊加密 算法处理后,使其变成复杂的加密密文发送出 去。收信方收到密文后,若想解读原文,则需 要使用加密用过的密钥及相同算法的逆算法对 密文进行解密,才能使其恢复成可读明文。在 对称加密算法中,使用的密钥只有一个,发收 信双方都使用这个密钥对数据进行加密和解密 ,这就要求解密方事先必须知道加密密钥。
S0,0 S0,1 S0,2 S0,3 S1,1 S1,2 S1,3 S1,0 S2,2 S2,3 S2,0 S2,1 S3,3 S3,0 S3,1 S3,2
3、列混淆变换
• 每列的每个字节被映射为一个新值,此值由该列中的4个字 节通过函数变换得到。
• 变换如下:
02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02
S’0,0 S’0,1 S’0,2 S’0,3
=
S’1,0 S’1,1 S’1,2 S’1,3 S’2,03,1 S’3,2 S’3,3
列混淆
4、轮密钥加变换
• 在轮密钥加变换中,128位的state 矩阵按位与128位的轮密钥XOR。
5、密钥扩展
• 随着网络技术发展迅猛,网络数据加密要求日益提高,AES 的应用首先体现在网络信息安全领域中。
无线网络的应用
• 由于无线网络的通信信道较有线网络更 为开放,安全性的要求更高。为了保障 数据传输安全性,一些无线网络技术使 用了AES。例如ZigBee 技术,为确保 MAC 帧的完整性、机密性、真实性和一 致性,其MAC 层使用AES 算法进行加密 ,并且生成一系列的安全机制。
组分左右部分,进行一般为16轮的迭代运算,每次迭代 完后交换左右位置,可以自己进行设计的有: 分组大小 密钥长度 轮次数 子密钥生成 轮函数 • (2)输入的密钥被扩展成由44个32位字所组成的数组w[i] 。 • (3)由4个不同的阶段组成,包括一个置换和三个代替: • 字节代替(SubBytes ):用一个S盒完成分组的字节到字节 的代替。 • 行移位(ShiftRows ):一个简单的置换。 • 列混淆(MixColumns ):利用域GF(28)上的算术特性的一 个代替。
• 没人知道AES或其他的加密算法会持续多 久,NIST的数据加密标准(DES)是一个美 国政府标准,直到被庞大的并行网络电 脑攻击和特定的"DES- Cracking"硬件攻 克时,它已连续使用了20年。AES比DES 支持更长的密钥。除非一些对AES的攻击 速度比密钥耗尽(key exhaustion)还要 快, 否则AES可保持超过20年之久的安 全。当AES作为FIPS被发布出来后,该算 法将正式被作为一个合适的加密法,可 被美国政府组织用以保护敏感信息。
S’3,0 S’3,1 S’3,2 S’3,3
0E 0B 0D 09 09 0E 0B 0D 0D 09 0E 0B 0B 0D 09 0E
固定
S0,0 S0,1 S0,2 S0,3 S1,0 S1,1 S1,2 S1,3 S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3
明文分组长度(字/字节/ 位)
4/16/128
4/16/128
4/16/128
轮数
10
12
14
每轮的密钥长度(字/字节 /位)
4/16/128
扩展密钥长度(字/字节/ 位)
44/176
注:1字=4字节、1字节=8位
4/16/128 52/208
4/16/128 60/240
AES结构:
• (1)它不是Feistel 结构。 • Feistel结构就是一种分组密码,一般分为64位一组,一
2、高级加密标准
• 高级加密标准(Advanced Encryption Standard,AES),在密码学中又称 Rijndael加密法,是美国联邦政府采用 的一种区块加密标准。这个标准用来替 代原先的DES,已经被多方分析且广为 全世界所使用。经过五年的甄选流程, 高级加密标准由美国国家标准与技术研 究院(NIST)于2001年11月26日发布于 FIPS PUB 197,并在2002年5月26日成 为有效的标准。2006年,高级加密标准 已然成为对称密钥加密中最流行的算法 之一。
AES算法优点
• AES的基本要求是,比三重DES快,至少与三重 DES一样安全,采用对称分组密码体制,密钥 长度的最少支持为128、192、256,分组长度 128位,算法应易于各种硬件和软件实现。
• 2000年10月2日美国政府正式宣布选中比利时 密码学家Joan Daemen 和 Vincent Rijmen 提 出的一种密码算法RIJNDAEL 作为 AES.
安全加密算法之AES分析
AES(Rijndael)算法汇聚了安 全性、效率高、易实现性和灵活 性等优点,是一种较DES更好的 算法,通常被认为是DES算法的 取代者。
组员分工:
• 张威 20103272 • 李鑫 20103277 • 李正熹 20103273 • 苏龙杰 20103281
1、对称加密算法 2、高级加密算法AES 3、AES安全性分析
• 2、字代替利用S盒对 输入字中的每个字节字代替 进行字节代替。
• 3、将结果与轮常量 Rcon[j]相异或。
B0 B1 B2 B3
g
B1 B2 B3 B0 SS SS B1’ B2’ B3’ B0’
⊕ RCj 0 0 0
轮常量 w’
轮常量:
• 轮常量是一个字,这个字的最右边三个字节总 为0。因此字与Rcon相异或,其结果只是与该 字最左边那个字节相异或。
• 输入密钥直接被复制到扩展密钥数组 的前四个字。然后每次用四个字填充 扩展密钥数组余下的部分。在扩展密 钥数组中,每个新增的字w[i]依赖于 w[i-1]和w[i-4]。在四种情形下,三 个使用了异或。对w数组中下标为4的 倍数的元素采用了更复杂的函数来计 算。
g函数:
字节
w
• 1、字循环的功能是使 一个字中的4个字节循 环左移一个字节,即字循环 将输入字[B0,B1,B2,B3] 变换成[B1,B2,B3,B0]。
• 密码由N轮组成,其中轮数依赖于密钥长度 :16字节密钥是10轮,24字节密钥对应12轮 ,32字节密钥对应14轮。
• 最后一轮仅包含三个变换,而在第一轮的前 面有一个起始的单变换(轮密钥加),可以视 为0轮。
AES的参数
密钥长度(字/字节/位) 4/16/128 6/24/192 8/32/256
、扩散以及非线性功能,这种方法非常有效且 非常安全。 • (7)每个阶段均可逆。 • (8)解密算法按逆序方式利用了扩展密钥。但 是AES的解密和加密算法并不一样。 • (9)一旦将所有的四个阶段求逆,很容易证明 解密函数的确可以恢复原来的明文。 • (10)加密和解密过程的最后一轮均只包含三个 阶段。