《安全生产_网络与系统安全培训课件》由会员分享,可在线阅读,更多相关《安全生产_网络与系统安全培训课件(41页珍藏版)》请在金锄头文库上搜索。
1、实验三 AES的加解密、 对称密钥管理,一、AES高级加密标准,高级加密标准的起源 1997年4月15日,NIST发起征集高级加密标准的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。 1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。 对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。 1998年8月12日,在首届AES会议上指定了15个候选算法。 1999年3月22日
2、第二次AES会议上,将候选名单减少为5 个, 这5 个算法是RC6,Rijndael,SERPENT,Twofish和MARS。 2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。 2000年10月2日,NIST宣布了获胜者Rijndael算法,2001年11月出版了最终标准FIPS PUB197。,一、AES参数,一、AES特性,AES的特性 所有的已知攻击具有免疫性 在各种平台上执行速度快,代码紧凑 设计简单 数据结构 以字节为单位的方阵描述:输入分组in、中间数组 State、输出、密钥 排列顺序:方阵中从上到下,从左到右,一、AES算法结构,AES算法
3、的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层。 线性混合层:确保多轮之上的高度扩散。 非线性层:具有最优最差-情形非线性的S-盒的并行应用。 密钥加层:轮密钥简单地异或到中间状态上。,一、AES算法结构,一、AES算法结构,AES算法的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层。 线性混合层:确保多轮之上的高度扩散。 非线性层:具有最优最差-情形非线性的S-盒的并行应用。 密钥加层:轮密钥简单地异或到中间状态上。,一、AES加密过程,一、AES算法描述,假设:State表示数据以及每一轮的中间结果, RoundKey表示每
4、一轮对应的子密钥 算法如下: 第一轮之前执行AddRoundKey(State,RoundKey) Round(State,RoundKey) ByteSub(State); ShiftRow(State); MixColumn(State); AddRoundKey(State,RoundKey); FinalRound(State,RoundKey) ByteSub(State); ShiftRow(State); AddRoundKey(State,RoundKey);,二、 DES-数据加密标准,二、DES算法框图,初始置换和初始逆置换,初始置换和初始逆置换,DES中的初始置换和初始逆
5、置换,初始置换与初始逆置换是互逆的 严格而言不具有加密的意义,Note,DES的十六轮迭代加密,十六轮迭代加密,Round i,第 i 轮 加 密,DES第i轮迭代加密,F函数,扩展E置换(E-盒),S盒(1),S-盒是DES加密算法的唯一非线性部件,S盒(2),S-盒,S盒(3),输入,输出,S-盒的查表操作,S盒(4),DES中其它算法都是线性的,而S-盒运算则是非线性的 提供了密码算法所必须的混乱作用 S-盒不易于分析,它提供了更好的安全性 S-盒的设计未公开,Note,S盒(5),P置换,直接P置换(P-盒),P置换,F函数,DES第i轮迭代加密,子密钥产生器,置换选择1,循环左移的次
6、数,(舍弃了奇偶校验位,即第8,16,64位),压缩置换2,舍弃了第9,18,22,25,35,38,43,54比特位,三、对称密码算法2DES,二、对称密码算法3DES,二、对称密码算法3DES,二、对称密码算法3DES,二、对称密码Blowfish算法,三、对称密码算法实验,实验目的 1.通过对AES算法的C源程序代码进行修改,了解和掌握分组密码体制的运行原理和编程思想。 2. 通过对DES算法的代码编写,了解分组密码算法的设计思想和分组密码算法的工作模式。 实验环境 PC机,且其上安装有一种C语言编译环境,三、对称密码算法实验,实验步骤 1. 下载AES源码,分析代码,找出各个部分是由哪个函数实现的。 2. 选取密钥长度和分组长度均为128b,试修改上述代码,完成全0密钥扩展验证:对于128b全零密钥,测试密文输出。 3. 下载DES实现的源代码,并以112b全0密钥加密ff ff ff ff ff ff ff ff,验证加密结果是否为35 55 50 b2 15 0e 24 51 实验报告 1. 简述AES算法每轮加密过程的四个步骤 2. DES算法程序实现框图 3. 算法加密速度测试结果,