欢迎来到天天文库
浏览记录
ID:44267651
大小:4.49 MB
页数:118页
时间:2019-10-20
《Lecture05_对称密码体制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章 对称密码体制学习要点:了解对称密码体制的基本概念了解分组密码原理了解分组密码操作模式了解DES和AES两种典型的对称密码算法§5-1分组密码分组密码模型对分组密码算法的要求分组长度足够大密钥量足够大密码变换足够复杂分组密码原理扩散就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中去,以便隐藏明文的统计特性。混乱是指密文和明文之间的统计特性关系尽可能地复杂化。乘积密码指依次使用两个或两个以上的基本密码,所得结果的密码强度将强于所有单个密码的强度P盒的分类雪崩效应雪崩效应:输入(明文或密钥)即使只有很小的变化,也会导致输出发
2、生巨大变化的现象输入位有很少的变化,经过多轮变换以后导致多位发生变化。即明文的一个比特的变化应该引起密文许多比特的改变Feistel密码Feistel结构的实现依赖于参数:分组长度密钥长度迭代轮数子密钥生成算法轮函数分组密码的操作模式电子密码本(ECB)模式密码分组链接(CBC)模式计数器(CRT)模式输出反馈(OFB)模式密码反馈(CFB)模式ECB模式ECB模式的优缺点模式操作简单明文中的重复内容将在密文中表现出来,特别对于图像数据和明文变化较少的数据适于短报文的加密传递CBC模式CBC模式的特点同一个明文分组重复出现时产生不同的密
3、文分组加密函数的输入是当前的明文分组和前一个密文分组的异或;对每个分组使用相同的密钥。将明文分组序列的处理连接起来了。每个明文分组的加密函数的输入与明文分组之间不再有固定的关系有助于将CBC模式用于加密长消息CTR模式CTR模式的特点使用与明文分组规模相同的计数器长度处理效率高(并行处理)预处理可以极大地提高吞吐量可以随机地对任意一个密文分组进行解密处理,对该密文分组的处理与其它密文无关实现的简单性适于对实时性和速度要求较高的场合OFB模式CFB模式影响密码操作模式选择的因素安全性高效性所能实现的功能§5-2数据加密标准(DES)DES
4、的加密处理略图S1盒的定义循环左移位轮序12345678910111213141516移位数11222222122222213DES的优、缺点优点:密钥长度增加到112位或168位,可以有效克服穷举搜索攻击;相对于DES,增强了抗差分分析和线性分析的能力;具备继续使用现有的DES实现的可能。缺点:处理速度相对较慢,特别是对于软件实现。明文分组的长度仍为64位,就效率和安全性而言,与密钥的增长不相匹配。§5-3高级加密标准(AES)1997年9月12日:美国NIST提出征集该算法的公告1998年8月20日:NIST召开了第一次候选大会,并
5、公布了15个候选算法1999年3月22日:NIST从15个候选算法中公布了5个进入第二轮选择:MARS,RC6,Rijindael,SERPENT和Twofish2000年10月2日:以安全性、性能、大小、实现特性为标准而最终选定了Rijndael算法2001年:正式发布AES标准Rijndael算法是由两位比利时的密码专家发明的,它很快而且所需的内存不多,这个算法非常可靠Rijndael算法的设计策略是宽轨迹策略,是针对差分分析和线性分析提出来的,是一个分组迭代密码,具有可变的分组长度和密钥长度Rijndael汇聚了安全性能、效率、可
6、实现性和灵活性等优点破译时间:AES的基本运算字节代替SubBytes列混淆MixColumns轮密钥加AddRoundKey行移位ShiftRows“三代替、一换位”有限域GF(28)上的字节运算加法“+”:字节的按位异或运算( )+( )=( )其中,= + ,i=0,1,…,7。乘法“•”是普通多项式乘法,但系数运算可看作比特的乘法和异或运算,即看作域{0,1}上的运算例子(01110011)(10010101)所以,(01110011)(10010101)=(01110000)乘法的实际计算方法讨论再看前面的例子(0
7、1110011)•(10010101)=(01110000),即(73)•(95)=(70)(01110011)•(10010101)=[(00000001)+(00000010)+(00010000)+(00100000)+(01000000)]•(10010101)=(00000001)•(10010101)⊕(00000010)•(10010101)⊕(00010000)•(10010101)⊕(00100000)•(10010101)⊕(01000000)•(10010101)=(10010101)⊕[(00101010)⊕(0
8、0011011)]⊕(00010000)•(10010101)⊕(00100000)•(10010101)⊕(01000000)•(10010101)=(10010101)⊕(00110001)⊕[(100
此文档下载收益归作者所有