对称密码技术4信息安全技术基础2011~2012第一学期2信息安全技术基础制作:张浩军学习目标数据加密标准DES高级加密标准AES其它典型分组密码算法流密码算法分组密码算法工作模式本章以几个典型对称密码算法为例,介绍对称密码算法实现过程、机理及特点,理解密码算法的应用背景。23信息安全技术基础制作:张浩军目录4.1数据加密标准DES4.2高级加密标准AES4.3其他分组密码算法介绍4.4流密码算法RC44.5分组密码工作模式34信息安全技术基础制作:张浩军如何实现加解密过程相同、密钥相同的对称密码算法?4SymmetricCryptography?5信息安全技术基础制作:张浩军4.1数据加密标准DES•数据加密标准DES(DataEncryptionStandard)是一个著名分组加密算法。•美国国家标准局1973年5月公开征集用于计算机数据在传输和存储期间实现加密保护的密码算法。•1975年美国国家标准局接受了IBM公司提交的一种密码算法并向社会公开征求意见。•1997年正式采用该算法作为美国数据加密标准。•1980年12月美国国家标准协会正式采用该算法作为美国商用加密算法。56信息安全技术基础制作:张浩军4.1.1概述美国国家标准局征求加密算法的要求:(1)提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改。(2)具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又便于理解和掌握。(3)密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础。(4)实现经济,运行有效,并且适用于多种完全不同的应用。67信息安全技术基础制作:张浩军4.1.1概述•DES是一种分组密码算法,加密和解密使用相同的密钥。•DES的分组长度为64比特位•使用64比特密钥(其中包括8比特奇偶校验位),密钥通过扩展后•经过16轮对明文分组的代换和置换7加/解密密钥相同有何好处?长度为什么选择64比特?为什么要做16轮?8信息安全技术基础制作:张浩军4.1.2DES工作过程864比特明文L0R0fL1=R0R1=L0Åf(R0,K1)K1fL2=R1R2=L1Åf(R1,K2)K2L15=R14R15=L14Åf(R14,K15)……fK16R16=L15Åf(R15,K16)L16=R1564比特密文初始置换IP逆初始置换IP-1第2轮第1轮第16轮置换PC156比特密钥置换PC2PC2PC2左循环移位(去除奇偶校验位)(生成第3至第15轮子密钥)48bits48bits48bits32bits32bits密钥调度算法…28bits28bits9信息安全技术基础制作:张浩军1.初始置换及其逆置换958504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157IP置换40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725逆IP置换10信息安全技术基础制作:张浩军2.f函数10R(32bit)扩展置换EER(48bit)(48bit)S1S2S3S4S5S6(32bit)(32bit)P置换S7S8S-盒替换(6bit)(6bit)K(48bit)f函数输出f函数输入11信息安全技术基础制作:张浩军2.f函数113212345456789891011121312131415161716171819202120212223242524252627282928293031321012345678910111213141501231441312151183106125907015741421311061211953841148136211151297310501512824917511314100613f函数中扩展操作S1替换阵列12信息安全技术基础制作:张浩军2.f函数121672021291228171152326518311028241432273919133062211425置换P13信息安全技术基础制作:张浩军4.1.3密钥调度•56比特密钥作为初始输入,经过置换选择操作PC1,输出56比特分作左右两个部分(各28比特),分别做左循环移位,之后左右两部分合并再进行置换选择操作PC2,产生48比特轮密钥。13574941332517915850423426181025951433527191136052443663554739312315762544638302214661534537292113528201241417112415328156211023191242681672720132415231374755304051453348444939563453464250362932置换选择PC1置换选择PC214信息安全技术基础制作:张浩军4.1.4DES安全性分析•S盒是DES的核心,也是DES算法最敏感的部分,所有替换都是固定的,甚显神秘。许多密码学家曾担心NSA设计S盒时隐藏了某些陷门。•DES算法具有很好的雪崩效应。•1997年互联网利用上万台微机个月成功破译DES。•1998年EFF花费大约25万美元定制构造了一个DES解密器,该机器包含1856个定制芯片,可以在2天内强力搜索一个DES密钥。•2006年德国Bochum和Kiel大学花费1万美元,构建了一个名为COPACOBANA机器,它包含120个低成本FPGA,平均在9天内能够完成一个DES密钥穷举。1415信息安全技术基础制作:张浩军4.1.53DESP=EK3(DK2(EK1(M)))标准中定义3种密钥使用方式:(1)3个密钥相互独立,互不相同。这种方式提供最强安全性,相当于提供3×56=168比特长度密钥。(2)K1和K2相互独立,互不相同,而K3=K1。提供2×56=112比特长度密钥,密钥空间为2112=5×1033。实际应用多采用此方法。(3)3个密钥完全相等,即K1=K2=K3。算法退化为标准DES,保证向后兼容。1516信息安全技术基础制作:张浩军如何设计数学上可证明安全性的对称密码算法?16ProvableSecurity?17信息安全技术基础制作:张浩军目录4.1数据加密标准DES4.2高级加密标准AES4.3其他分组密码算法介绍4.4流密码算法RC44.5分组密码工作模式1718信息安全技术基础制作:张浩军4.2.1AES基本操作流程•AES也是由多轮操作组成,轮数由分组和密钥长度决定。•AES在4×n字节数组(矩阵)上操作,称为状态(State),其中n是密钥字节数除4。18in0in1in2in3in4in5in6in7in8in9in10in11in12in13in14in15in0in1in2in3in4in5in6in7in8in9in10in11in12in13in14in15输入字节输入字节矩阵ins0,0状态矩阵ss0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3out0out1out2out3out4out5out6out7out8out9out10out11out12out13out14out15输出字节矩阵out19信息安全技术基础制作:张浩军4.2.1AES基本操作流程•AES允许分组和密钥以128比特为基础,以8字节倍数扩展长度,因此192、256比特分组(或密钥)就被组织成4×6、4×8矩阵。•AES标准中使用Nb、Nk分别表示分组矩阵、密钥矩阵列数,如当分组为4×6矩阵,即Nb=6,密钥为4×8矩阵,则Nk=8。•AES算法流程中轮数依赖于密钥长度,标准中使用Nr表示轮数。AES包括3个分组密码套件:AES-128、AES-192、AES-265对应Nk分别为4、6、8,即密钥长度对应128、192和256比特,对应轮数Nr等于10、12、14,分组长度都为128比特。1920信息安全技术基础制作:张浩军4.2.1AES基本操作流程(1)字节替换(Byte):执行一个非线性替换操作,通过查表替换每个字节。(2)行移位:状态(矩阵)的每一行按字节为单位循环移动若干字节。(3)列混合:基于状态列的混合操作。(4)轮密钥叠加:状态的每一个字节混合轮密钥。轮密钥也是由密钥调度算法产生。2021信息安全技术基础制作:张浩军21轮密钥加字节替换行移位列混合轮密钥加第1轮字节替换行移位列混合轮密钥加第9轮字节替换行移位轮密钥加第10轮128比特明文128比特密文轮密钥加逆字节替换逆行移位第1轮逆列混合轮密钥加逆字节替换逆行移位轮密钥加第10轮128比特明文128比特密文第9轮逆列混合轮密钥加逆字节替换逆行移位主密钥Kw[0,3]密钥扩展w[4,7]w[36,39]w[40,43]加密解密22信息安全技术基础制作:张浩军4.2.2轮操作221.字节替换s0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3s0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3''''''''''''''''sr,csr,c'S-盒替换前状态矩阵替换后状态矩阵23信息安全技术基础制作:张浩军4.2.2轮操作232.行移位s0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3移位前状态矩阵Ss0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3移位后状态矩阵S'24信息安全技术基础制作:张浩军4.2.2轮操作243.列混合Nbcsssssssscccccccc002010103030201010103020101010302,3,2,1,0',3',2',1',0其中:25信息安全技术基础制作:张浩军4.2.2轮操作254.轮密钥加NbcwsssssssscNbroundccccccccÅ0,3,2,1,0',3',2',1',0其中:26信息安全技术基础制作:张浩军4.2.3密钥扩展26K0K1K2K3K4K5K6K7KiKi-3Ki-1Ki-2Ki-4循环移位字节替换Rcon[0]循环移位字节替换Rcon[i/4]imod4=0imod4≠027信息安全技术基础制作:张浩军对称密码中混乱与替换的不同实现方法?27ProvableSecurity?28信息安全技术基础制作:张浩军目录4.1数据加密标准DES4.2高级加密标准AES4.3其他分组密码算法介绍4.4流密码算法RC44.5分组密码工作模式2829信息安全技术基础制作:张浩军4.3.1IDEA算法•国际数据加密算法IDEA是1991年由JamesMassey和我国学者来学嘉共同设计的,在协议PGP中广泛应用。•IDEA算法采用64比特分组和128比特密钥,包括相同的8轮转换和1个输出转换(半轮)。•IDEA通过交叉使用不同群-模加和乘运算,以及比特位异或,这些运算在代数上是“不协调的”。•轮变换输入将64比特分为4个16比特子分组,经过变换输出4个16比特子分组,作为下一轮输入。•每轮变换中,在模乘或模加运算中混合6个16比特密钥,最后一轮4个运算,混合K1到K4密钥,4个16比特输出,合并后作为IDEA加密产生的64比特密文。2930信息安全技术基础制作:张浩军30++++K1K2K3K4K5K6