1、什么是对称密码体制, 分析DES算法及其应用模式,主讲人:黄鑫,小组成员:孔黎明李东旭黄鑫,目录,DES算法,对称密码体制,应用模式,DES问题讨论,DES的变形,对称密码体制,密码体制是指实现加密和解密的密码方案,从使用密码策略上,可分为对称密码体制(Symmetric Key Cryptosystem)和非对称密码体制(Asymmetric Key Cryptosystem)。,在对称密码体制中,使用的密钥必须完全保密,且要求加密密钥和解密密钥相同,或由其中的一个可以很容易地推出另一个。 对称密码体制根据对明文的加密方式的不同而分为分组密码和流密码。 分组密码先按一定长度(如64字节、12
2、8字节等)对明文进行分组,以组为单位加/解密流密码则不进行分组,而是按位加密。,对称密码体制,加密算法,信道,解密算法,明文,密文,明文,密钥,加密密钥,解密密钥,优点:加密或解密运算速度快,加密强度高,并且算法公开 缺点:密钥分发困难,更新周期长,不便于管理 常见算法:DES、IDEA、AES等,DES算法(Data Encryption Standard),DES是分组长度为64比特的分组密码算法,密钥长度也是64比特,其中每8比特有一位奇偶校验位,因此有效密钥长度为56比特。DES算法是公开的,其安全性依赖于密钥的保密程度。DES结构框图如图2.1。,图2.1 DES加密算法框图,左图为
3、DES加密算法执行过程,解密使用与加密同样的算法 ,只是子密钥的使用次序相反。其中迭代变换是DES算法的核心部分且较为复杂,在此单独做出介绍。在每轮开始将输入的64比特数据分成左、右长度相等的两半,将右半部分原封不动地作为本轮输出的64比特数据的左半部分,同时对右半部分进行一系列的变换,即用轮函数作用右半部分,然后将所得结果(32比特数据)与输入数据的左半部分进行逐位异或,将所得数据作为本轮输出的64比特数据的右半部分。,图2.2 DES的一轮迭代,Ri-1(32比特),选择扩展运算E,48比特寄存器,48比特寄存器,选择压缩运算S,32比特寄存器,置换运算P,Li-1(32比特),子密钥Ki
4、(48比特),Ri(32比特),Li(32比特),Li=Ri-1,Ri=Li-1F(Ri-1,Ki),轮函数F,DES中的子密钥的生成,DES加解密过程,令i表示迭代次数,表示异或,f为加密函数。DES的加密和解密过程表示如下。 加密过程:解密过程:,DES问题讨论,其他,性质,2)完全效应指密文中的每个比特都由明文的许多比特决定。由DES中的扩展和S盒产生的扩散和混淆作用表明了强烈的完全效应。,1)雪崩效应明文中的一个小变动将会引起密文的显著变化。已经证明,DES具有强烈的雪崩效应。例:对两个只有一个比特的不同明文分组进行加密(用同样的密钥),观察每轮加密后比特数的不同。,明文:000000
5、0000000000 密钥:22234512987ABB23 密文:4789FD476E82A5F1 明文:0000000000000001 密钥: 22234512987ABB23 密文:0A4ED5C15A63FEA3,设计标准,2、设计标准 (1)S盒的设计 每一行的元素都是从0-15的置换。 S盒是非线性的。 如果改变输入的一个比特,输出中的两个或更多比特会改变。 如果一个S盒的两个输入只有中间两个比特不同(第3和第4个比特),输出中至少有两个比特不同。 如果一个S盒的两个输入开头的两个比特不同(第1和第2比特),且最后两个比特相同(第5和第6),则输出一定不同。 最后三个输出比特得到
6、的方式与第一个比特相同,都是补充一些它的输入比特。 在两个特定的对S盒排列的输入可以构造出相同的输出。 只改变相邻的S盒的比特在单轮加密中可能出现箱体的输出。 (2)初始置换和扩展置换 不清楚为什么DES的设计者采用初始和最终置换,这没有安全益处。 在扩展置换中,每4个比特序列的第一个和第四个会重复。,3、其他 (1)密钥中的长度缺陷 关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有2561017个。用现有的技术,一秒钟可以检查一百万各密钥。如果能够制造出一台拥有一百万各芯片的电脑,我们可以在约20小时内测试完成整个密钥域。 1998年7月
7、电子前沿基金会(EFF)使用一台25万美元的电脑在56小时内破译了56比特密钥的DES。 1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。一个带有56个比特密钥密码的DES还不是足够安全的。 (2)S盒的安全问题有人认为s盒可能存在陷门,但至今没有迹象表明s盒中存在陷门。由于DES算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠的信道来分发密钥。如采用信使递送密钥等。因此,它不适合在网络环境下单独使用。,1.两重DES,DES的变形,双重DES密钥长度为112bit,密码强度似乎增强了一倍,但问题并非如此。,双重DES易 受中途攻击,
8、C=EK2(EK1(P),P=DK1(DK2(C),2.三重DES(以被广泛采用) 优点:能对付中途攻击。密钥长度为168bit,即用两个56位的密钥K1、K2,发送方用K1加密,K2解密,再使用K1加密。接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。,应用模式,电子密码本 ECB (electronic codebook mode) 密码分组链接 CBC (cipher block chaining) 密码反馈 CFB (cipher feedback) 输出反馈 OFB (output feedback)这四种工作模式适用于不同的应用需求,5.1电码本模式(E
9、CB)ECB (Electronic Codebook)模式是最简单的运行模式,它一次对一个64比特长的明文分组加密,而且每次的加密密钥都相同,如图所示 。当密钥取定时,对每一个明文组,都有一个惟一的密文组与之对应。Ci = EK(Pi) Pi = DK(Ci),ECB的特点,ECB用于短数据(如加密密钥)是非常理想,长消息不够安全 简单、有效 可以并行实现 不能隐藏明文的模式信息 相同明文生成相同密文,同样信息多次出现造成泄漏 对明文的主动攻击是可能的 信息块可被替换、重排、删除、重放 误差传递:密文块损坏仅对应明文块损坏 适合于传输短信息,典型应用:(1)用于随机数的加密保护;(2)用于单
10、分组明文的加密。,优点:(1) 实现简单;(2) 不同明文分组的加密可并行实施,尤其是硬件实现时速度很快. 缺点:不同的明文分组之间的加密独立进行,故保 留了单表代替缺点,造成相同明文分组对应相同密文分组,因而不能隐蔽明文分组的统计规律和结构规律,不能抵抗替换攻击.,ECB模式的优、缺点和应用,敌手C通过截收从A到B的加密消息,只要将第5至第12分组替换为自己的姓名和帐号相对应的密文,即可将别人的存款存入自己的帐号。,例: 假设银行A和银行B之间的资金转帐系统所使用报文模式如下:,例:假定伊夫每月工资非常低,她知道公司对每一个雇员都使用几个信息分组,这里第七个分组就是存入该雇员帐户的钱数。伊夫
11、可以在月底拦截送往银行的密文,然后复制一个全职雇员的工资信息分组,并用这个分组替换她自己的工资信息分组,这样伊夫每月都可以得到比应得报酬多的钱。为了克服ECB的安全性缺陷,我们希望设计一个工作模式,可以使得当同一个明文分组重复出现时产生不同的密文分组。一个简单的方法是密码分组链接,从而使输出不仅与当前输入有关,而且与以前输入和输出有关。,5.2 密码分组链接模式(CBC) 为了克服ECB的缺陷,希望设计一种方案使同一明文分组重复出现时产生的密文分组不同。一种简单的方案就是密码分组链接(Cipher Block Chaining)模式。每次加密使用同一密钥,加密算法的输入是当前明文与前一次密文组
12、的异或。因此加密算法的输入与明文分组之间不再有固定的关系,所以重复的明文分组不会在密文中暴露。,图4.15 CBC模式(加密),1. 明文块的统计特性得到了隐蔽。,CBC模式的特点:,由于在密文CBC模式中,各密文块不仅与当前明文块有关,而且还与以前的明文块及初始化向量有关,从而使明文的统计规律在密文中得到了较好的隐蔽。,2. 具有有限的(两步)错误传播特性。一个密文块的错误将导致两个密文块不能正确脱密. 3. 具有自同步功能密文出现丢块和错块不影响后续密文块的脱密.若从第t块起密文块正确,则第t+1个明文块就能正确求出.,安全问题相同明文:在相同密钥和VI 下,加密相同的明文会得到相同密文分
13、组。链接依赖性:链接机制致使密文Ci依赖于Pi以及所有前面的明文分组,重排密文的顺序会影响到解密。错误传播:解密时,密文分组Ci中一个单比特错误会影响到其他分组;加密时,修改一个明文分组会改变以后所有密文分组。 当密文分组Ci中一个单比特错误时,解密结果受影响的分组是哪些?密文分组Ci中一个单比特错误会影响到明文分组Pi中大部分比特的错误,只对明文分组Pi+1中的一个比特(相同位置)起作用。单个错误对从Pi+2到明文PN的明文分组没有影响。典型应用:(1) 数据加密;(2) 完整性认证和身份认证;,例: 电脑彩票的防伪技术 -彩票中心检查兑奖的电脑彩票是否是自己发行的,问题:如何防止电脑彩票的
14、伪造问题。方法:(1)选择一个分组密码算法和一个认证密钥,将他们存于售票机内; (2)将电脑彩票上的重要信息,如彩票期号、彩票号码、彩票股量、售票单位代号等重要信息按某个约定的规则作为彩票资料明文;(3)对彩票资料明文扩展一个校验码分组后,利用认证密钥和分组密码算法对之加密,并将得到的最后一个分组密文作为认证码打印于彩票上面;认证过程:执行(3),并将计算出的认证码与彩票上的认证码比较,二者一致时判定该彩票是真彩票,否则判定该彩票是假彩票。,5.3 密码反馈模式(CFB) 若待加密的消息必须按字符(如电传电报)处理时,可以采用CFB (Cipher Feedback)模式或OFB (Outpu
15、t Feedback)模式,这样做事实上将DES转换成为流密码。流密码不需要对消息填充,而且运行是实时的。因此如果传送字母流,可使用流密码对每个字母直接加密并传送。,64比特,64-j比特,64比特,加密,j比特,j比特,左移j比特,64-j比特(丢弃),Ci1,K,.,64比特移位寄存器,64-j比特,j比特,64比特,加密,j比特,64-j比特(丢弃),Ci,左移j比特,Ci-1,K,.,Pi+1,Pi,64比特,加密,j比特,64-j比特(丢弃),.,K,:,Vi,C1,:,图4.16密码反馈模式加密过程,P1,64比特,64-j比特,64比特,加密,j比特,j比特,左移j比特,64-j
16、比特(丢弃),64比特移位寄存器,64-j比特,j比特,64比特,加密,j比特,64-j比特(丢弃),Ci,左移j比特,Ci-1,K,.,Pi,64比特,加密,j比特,64-j比特(丢弃),.,K,:,Vi,C1,.,Ci+1,Pi+1,P1,图4.17 CFB模式解密过程,:,K,安全问题相同明文:同CBC。链接依赖:密文分组的正确性依赖于其前面所有明文分组的正确性,密文分组正确解密要求之前n/r个密文组也正确。错误传播:传输过程中密文分组Ci的一个单比特错误就可以在明文分组Pi中产生一个单笔特错误(相同位置上)。只要Ci中的一些比特还在移位寄存器中,接下来的明文分组中的大多数比特都是错误的
17、(50%的概率)。错误恢复:自同步,需要n/r个分组才能恢复吞吐量:降低了加密速度。,5.4 输出反馈模式(OFB)OFB (Output Feedback) 模式在结构上类似于CFB ,如图所示 。不同之处是OFB模式将加密算法的输出反馈到移位寄存器,而CFB模式是将密文单元反馈到移位寄存器。,64-j比特(丢弃),Pi1,图4.18 OFB模式,特点:与 CFB模式相比,OFB模式的优点是传输过程中的比特错误不会被传播。例如C1中出现一比特错误,在解密结果中只有P1受影响,以后各明文单元则不受影响 。OFB模式的缺点是难于检测密文是否被篡改。如在密文中取 1比特的补 ,那么在恢复的明文中相应位置的比特也为原比特的补。因此敌手有可能通过对数据部分和校验部分同时进行篡改,导致纠错码无法检测。,总 评:(1)ECB模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。(2)CBC,CFC,OFB模式的选用取决于实际的特殊需求。(3)明文不易丢信号,对明文的格式没有特殊要求的环境可选用CBC模式。需要完整性认证功能时也可选用该模式。(4)容易丢信号的环境,或对明文格式有特殊要求的环境,可选用CFB模式。(5)不易丢信号,但信号特别容易错,但明文冗余特别多,可选用OFB模式。,谢谢观看,