重点:
分组密码的设计思想
分组密码的基本特点
AES、DES密码算法
AES和DES各自组成、每部分的实现过程以及特点
AES和DES的相似和不同
分组密码的五种操作模式各自特点(重点:ECB,CBC,CTR)
1 分组密码
1.1 概述
-应用最为广泛、影响最大的一种密码体制,
-主要任务是提供数据保密性,也可以用到许多方面,如构造伪随机数生成器、序列密码、认证码和哈希函数等
-又分为对称分组密码和非对称分组密码;习惯上,分组密码一词多指:对称分组密码,简称分组密码
-由于分组密码加解密速度较快,安全性好,以及得到许多密码芯片的支持,现代分组密码发展非常快,应用广泛
1.2 含义
1.3 分组密码要求
分组长度足够大:分组长度较小时,难于抵御选择明文攻击
密钥量足够大:密钥量小,攻击者可以通过穷举密钥的方法进行破译
密码变换足够复杂:除了穷举攻击外,找不到其他有效的攻击方法
加密和解密运算简单:便于软件和硬件实现,性能好
无数据扩散或压缩:实际应用中很重要。
1.4 设计思想
(1)扩散
要将算法设计成明文每一比特的变化尽可能多得影响到输出密文序列的变化,以便隐蔽明文的统计特性。形象地成为雪崩效应。
另一层意思是密钥每一位的影响尽可能迅速地扩散到较多的密文比特中去。扩散的目的是希望密文中的任一比特都要尽可能与明文、密钥相关联,或者说,明文和密钥中任何一比特值发生改变,都会某种程度上影响到密文值的变化,以防止将明文或密钥分解成若干个孤立的小部分,然后被各个击破。
(2)混乱
加解密变换过程中明文、密钥以及密文之间的关系尽可能地复杂化,以防密码破译者采用解析法(即通过建立并求解一些方程)进行破译攻击。
混乱可以用“搅拌机”来形象地解释,将一组明文和一组密钥输入到算法中,经过充分混合,最后变成密文。同时要求,执行这种“混乱”作业的每一步都必须是可逆的,即明文混乱以后得到密文,反之,密文经过逆向的混乱操作后能会付出明文。(按照混乱原则,分组密码算法应有复杂的非线性因素)
1.5 分组密码的基本特点
(1)分组长度:能够抵御选择明文攻击
(2)密钥长度:能够抵御穷举攻击
(3)子密钥
子密钥的生成是迭代分组算法的一个重要组成部分,是从初始(种子)密钥产生各轮迭代要使用的子密钥的算法
轮函数F的功能是在子密钥的参与和控制下实现的,
评价指标:
实现简单、速度,满足轮函数F的要求;
种子密钥的所有比特对每个子密钥比特的影响大致相同
没有弱密钥或弱密钥容易确定
(4)轮函数F
轮函数F的设计准则(轮函数F是分组密码的核心,是分组密码中单轮加解密函数)
--非线性:主要依赖S盒
--可逆性:能够实现解密
--雪崩效应
主要性能指标是:安全性、速度、灵活性。
(5)迭代
分组密码一般采用简单的、安全性弱的密码函数进行多轮迭代运算,使得安全性增强。一般来说,分组密码迭代轮数越多,密码分析越困难;但也不是越多越好,过多会使加解密算法性能下降。
决定迭代论述的准则:密码算法分析的难度大于简单穷举搜索攻击的难度;
分组密码迭代轮数一般采用8/10/12/16/20
2 DES算法
2.1 概述
分组加密算法:明文和密文为64位分组长度
密码算法:加密和解密除密钥编排不同外,使用同一算法
密钥长度:56位,但存在弱密钥,容易避开
采用混乱和扩散的组合,每个组合先代换后置换,共16轮;
只使用了简单的逻辑运算,易于实现,速度快
现代密码学诞生的标志之一,揭开了商用密码研究的序幕
2.2 加密流程图
公式化描述:
轮函数F实现流程:
压缩替代S盒:
2.3 解密算法
解密流程图:
2.4 DES安全性
(1)互补性
互补性会使DES在选择明文攻击下所需的工作量减半
(2)弱密钥和半弱密钥
弱密钥
如果给定初始密钥k,经过子密钥产生器产生的各个子密钥都相同,即有 k1=k2=…=k16,则称给定的初始密钥k为弱密钥
若k为弱密钥,则对任意的64bit信息有: Ek(Ek(m))=m和Dk(Dk(m))=m
半弱密钥
若给定初始密钥k,产生的16个子密钥只有两种,且每种都出现8次,则称k为半弱密钥。
半弱密钥特点是成对出现
此外,还有四分之一弱密钥和八分之一弱密钥;
(3)密钥搜索
DES的强度:56比特的密钥长度
AES(128位)取代DES
(4)差分分析和线性分析
查分分析
一种攻击迭代密码体制的选择明文攻击方法,不是直接分析密文或密钥和明文的统计相关性,而是分析一对给定明文的异或与对应密文对的异或之间的统计相关性。
基本思想:在攻击的迭代密码系统中找出某些高概率的明文差分和密文差分对来推算密钥;
理论上有意义 2^47
线性分析
试图通过大量的“明-密文对”找出分组密码算法中与密钥有关的线性方程,然后试着得到大量的这类关系从而确定密钥。
基本思想是 以最佳的先行函数逼近DES的非线性变换S盒,是一种已知明文攻击方法
针对DES在实际上仍然不可行
3. AES算法
3.1 算法特点
安全性:稳定的数学基础,没有算法弱点,算法抗密码分析强度高
性能:能在多个平台上以较快的速度实现
大小:不占用大量的存储空间和内存
易实现:灵活性、硬件和软件适应性、算法的简单性
3.2 分类
加密流程:
轮函数加密:
行位移:
列混淆:
3.3 AES设计上的考虑
与DES相比,扩散的效果更快,即两轮可达到完全扩散;
S盒使用清晰而简单的代数方法构造,避免任何对算法留有后门的怀疑
密钥扩散方案实现对密钥位的非线性混合,即实现了均等效应,也实现了非对称性
比穷举攻击更好的攻击进行到6轮,多出4轮可以提供足够的安全性(AES-128)
3.4 安全性
弱密钥:设计上不是对称的,其加密和解密过程不一致,这也避免弱密钥的存在;
差分分析和线性分析:在设计时考虑了这两种攻击的方法,因此AES具有较好的抗击其攻击的能力。
密钥穷举攻击:平均需要2^127次AES运算,按目前的计算不能力是不可能完成的
3.5 AES和DES对比
(1)相似之处
两者的轮函数都是有四层构成,非线性层,移位层,线性混合层、子密钥异或,知识顺序不同;
AES的非线性运算是字节代换,对应于DES中的非线性运算S盒
行移位运算保证了每一行的字节不仅仅影响其他行对应的字节,而且影响其他行所有的字节,这与DES中置换P相似;
AES中的列混淆运算的目的是让不同的字节相互影响,而DES中F函数的输出与左边一半数据相加也有类似的效果。
AES的子密钥异或对应于DES中S盒之前的子密钥异或。
(2)不同之处
AES的密钥长度(128、192、256)是可变的,而DES的密钥长度固定为56位
DES是面相比特的运算,AES是面相字节的运算
AES的加密运算和解密运算不一致,因而加密器不能同时做解密器,而DES的加密器可用做解密器,只是子密钥的顺序不同。
4.分组密码的操作模式
分组加密算法智能加密固定长度的分组,通常加密的明文长度会超过分组密码的分组长度,这是需要对分组密码算法进行迭代,以便将很长的明文全部加密,而迭代的方法就称为分组密码的模式。
密码模式通常是基本密码、一些反馈和一些简单运算的组合。
4.1 ECB--电子密码本模式:Electronic Code Book
模式特点:
模式操作简单,主要用于内容较短且随机的报文的加密传递;
相同明文(在相同密钥下)得出相同的密文,即明文中的重复内容可能将在密文中表现出来,易实现统计分析攻击、分组重放攻击和代换攻击
链接依赖性:各组的加密都独立于其他分组,可实现并行处理
错误传播:单个密文分组中有一个或多个比特错误只会影响该分组的解密结果
4.2 CBC--密码分组链接模式:Clipher Block Chaining
模式特点:
一种反馈机制在分组密码中的应用,每个密文分组不仅依赖于产生它的明文分组,还依赖于它前面的所有分组;
相同的明文,即使相同的密钥下也会得到不同的密文分组,隐藏了明文的统计特性;
链接依赖性:对于一个正确密文分组的正确解密要求它之前的那个密文分组也正确,不能实现并行处理;
错误传播:密文分组中的一个分组出现错误会影响到本组和其后分组的揭解密,错误传播为两组;
初始化向量IV不需要保密,它可以明文相似与密文一起传送。
4.3 CTR--计数器模式:Counter
模式特点:
效率高:能并行处理多块明(密)文,可用来提供流水线、每个时钟周期的多指令分派等并行特征;
预处理:基本加密算法的执行并不依靠明文或密文的输入,可预先处理,当给出明文或密文时,所需的计算仅是进行一系列的以后运算;
随机访问:密文的第i个明文组能够用一种随机访问的方式处理;
简单性:只要求实现加密算法而不要求实现解密算法,像AEs这类加解密算法不同就更能体现CTR的简单性。
4.4 CFB--密文反馈模式:Cipher Feedback
模式特点:
消息被看做数据分组流,不需要整个数据接受完后才能进行加解密;
可用于自同步序列密码;
具有CBC模式的优点
对信道错误较敏感且会造成错误传播
数据加解密的速率降低,其数据率不会太高
4.5 OFB--输出反馈模式:Output Feedback
模式特点:
OFB模式是CFB模式的一种变形,克服由错误传播带来的问题,但对密文被篡改难于进行检测;
OFB模式不有自同步能力,要求系统保持严格的同步,否则难于解密;
4.6 小结
EBC:最快、最简单;安全性最弱,不推荐;若果是加密随机数,如密钥,ECB是最好的选择
CBC:适合文件加密,且有少量错误时不会造成同步失败;软件加密的最后选择;
CTR:结合ECB和CBC的优点,ATM网络和IPSec中起到重要作用;
CFB:加密分组序列所选择;能容忍少量错误扩展,且具有同步恢复功能;
OFB:在极易出错的环境中选用的模式,需有高速同步机制。