《网络安全设计》08-密码学 3对称密钥加密_第1页
《网络安全设计》08-密码学 3对称密钥加密_第2页
《网络安全设计》08-密码学 3对称密钥加密_第3页
《网络安全设计》08-密码学 3对称密钥加密_第4页
《网络安全设计》08-密码学 3对称密钥加密_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络安全设计密码学⑶对称密钥加密Content什么是对称密钥加密?对称密钥加密技术类型对称密钥加密技术原理典型对称密钥加密算法密钥的安全生成和分发算法1《网络安全设计》密码学⑶对称密钥加密什么是对称密钥加密?对称密钥加密SymmetricKeyCryptography

私钥加密PrivateKeyCryptography

单钥加密One-KeyCryptography现代加密技术的一种重要类型加密和解密使用同一个密钥流式加密块式加密(分组加密)《网络安全设计》密码学⑶对称密钥加密2典型对称密钥加密算法流式加密算法RC(RC2、RC4、RC5)分组加密算法FeistalTEADESIDEAAESSMS4《网络安全设计》密码学⑶对称密钥加密3StreamCryptography《网络安全设计》密码学⑶对称密钥加密4流式加密RCRonRivest在1987年设计流式对称加密方法密钥可变长1~256byte(8~2048bit)面向字节操作(任意长度的明文)《网络安全设计》密码学⑶对称密钥加密5RC算法(1)状态向量初始化

设:状态向量S={S[0],S[1],S[2],…,S[255]}

令:S[i]=i(i=0..255)即256个元素依次赋值0~255

在整个计算过程中,S的各个元素仅仅进行位置的交换(即数值换位),而始终包含0~255这256个数值(2)密钥初始化

设:临时向量T={T[0],T[1],T[2],…,T[255]}

T[i]=K[imodl](i=0..255)将密钥K循环赋值给T

此时,密钥K已经完成了使命,算法中不再使用《网络安全设计》密码学⑶对称密钥加密6RC算法(续)(3)初始置换

用T产生S的初始置换

根据T[i]的值,将S[i]与S中指定元素进行置换(即换位swap)操作

j=0; for(i=0to255)do{

j=(j+S[i]+T[i])mod256; swap(S[i],S[j]);}

初始置换操作的本质就是根据密钥的值,改变原来S中呈升序排列的数值,使之成为“随机”的分布。至此,T也不再使用,算法初始化阶段完成《网络安全设计》密码学⑶对称密钥加密7RC算法(续)(4)加密运算

输入明文M,长度为n(byte),字节流为M[k](0≤k<n),经过加密运算,应输出密文C,密文字节流为C[k](0≤k<n)

i=j=0; for(k=0ton)do{

i=(i+1)mod256;

j=(j+S[i])mod256; swap(S[i],S[j]);

t=(S[i]+S[j])mod256;

C[k]=M[k]⊕S[t];}

RC4加密循环往复地使用状态向量S,每个明文字节与S生成的数值进行异或,得到密文,同时S中的元素不断换位《网络安全设计》密码学⑶对称密钥加密8思考:RC加密算法如何解密?讨论《网络安全设计》密码学⑶对称密钥加密9流式加密适合什么网络应用?BlockCryptography《网络安全设计》密码学⑶对称密钥加密10块式加密(分组加密)分组加密要求分组密钥作用在nbit明文分组上,产生nbit密文分组(明文、密文同样长度)加密是可逆的(可解密),每一个明文分组唯一对应一个密文分组,反之亦然共2n个不同的明文分组共2n个不同的密文分组共2n!个不同的变换关系(非奇异变换)《网络安全设计》密码学⑶对称密钥加密11分组加密基本原理《网络安全设计》密码学⑶对称密钥加密124-bit明文→4-bit密文→变换关系例:1110密文:1011↑可逆↓“理想分组加密”方法分析考察代换加密表对于一个特定的变换,映射本身就是密钥当n=4时(如表)密钥长度4×16=64bit一般地,对nbit加密密钥长度n×2nbit较大分组的密钥长度过长,不利于计算和管理例如,对64bits明文加密:

64×264=270≈1021(bits)《网络安全设计》密码学⑶对称密钥加密13明文密文00001110000101000010110100110001010000100101111101101011011110001000001110011010101001101011110011000101110110011110000011110111理想分组加密的近似体制对于较大n的分组,采用2n!个不同可逆映射的一个子集(减少映射关系,从而缩短密钥长度)例:n=4,定义线性方程组(类似Hill密码)y1=k11x1+k12x2+k13x3+k14x4y2=k21x1+k22x2+k23x3+k24x4y3=k31x1+k32x2+k33x3+k34x4y4=k41x1+k42x2+k43x3+k44x4均为二进制比特,模2运算密钥长度为n2=42=16bit减小密钥长度是可能的,但安全性相应降低《网络安全设计》密码学⑶对称密钥加密144-bit明文x1x2x3x4→密文y1y2y3y4Feistal加密使用乘积加密方法来逼近简单代换加密乘积加密:依次使用两个或两个以上的基本密码目标:开发一种分组加密方法分组长度nbit,密钥长度kbit,用2k个变换变换方法——交替使用代换和置换基于ClaudeShannon加密理论交替使用混淆和扩散《网络安全设计》密码学⑶对称密钥加密15加密系统的基本构件用于挫败基于统计方法的密码分析混淆Confusion尽可能使密文和密钥间的统计关系复杂化,阻止发现密钥扩散Diffusion使明文的统计特征消散在密文中,可以让每个明文数字尽可能多地影响多个密文数字例如:代换和置换是混淆和扩散的实际应用《网络安全设计》密码学⑶对称密钥加密16Feistel加密原理《网络安全设计》密码学⑶对称密钥加密17Feistel解密方法及其证明解密与加密过程一致,逆序使用子密钥K16…K1加密:明文为LE0|RE0,输出密文为RE16|LE16解密:密文为LD0|RD0,输出密文为RD16|LD16证明:对于加密过程,有:LE16=RE15;RE16=LE15⊕f(RE15,K16)对于解密过程第1轮,LD0=RE16;RD0=LE16;LD1=RD0=LE16=RE15

RD1=LD0⊕f(RD0,K16)=RE16⊕f(RE15,K16)=[LE15⊕f(RE15,K16)]⊕f(RE15,K16)=LE15故,解密第1轮输出LE15|RE15,正是加密第16轮输入左右互换的值。依此类推,解密第16轮,LD16=RE0,RD16=LE0,换位输出为LE0|RE0,正是原始明文。证明完毕。《网络安全设计》密码学⑶对称密钥加密18Feistel加密重要参数分组长度长度越长,安全性高,但速度慢典型:64bit、128bit密钥长度密钥越长,安全性高,但速度慢典型:64bit、128bit(更佳)迭代轮数轮数越多,安全性高,但速度慢典型:16轮子密钥生成算法K→k1k2…ki轮函数f《网络安全设计》密码学⑶对称密钥加密19TEATinyEncryptionAlgorithm微型加密算法剑桥大学DavidWheeler和RogerNeedam提出分组型对称加密方法TEA不是通过算法的复杂性来保证,而是依赖加密的轮数(16或32或64轮)TEA加密速度快、算法简单易实现,并具有较强的抗差分攻击能力QQ中使用TEA进行数据加密《网络安全设计》密码学⑶对称密钥加密20TEA常数TEA算法使用了一个神秘常数δ(以保证每一轮加密有所差异)δ来源于黄金比率φ:

定义:《网络安全设计》密码学⑶对称密钥加密21TEA算法TEA的分组块为64bit;密钥长度为128bit《网络安全设计》密码学⑶对称密钥加密22TEA加密流程《网络安全设计》密码学⑶对称密钥加密23V0V1V1V0一个循环(含2轮)均为32bit运算异或加法<<逻辑左移>>逻辑右移DESDataEncryptionStandard数据加密标准属于分组加密算法会话密钥(SessionKey)为56位(8-byte,其中第8位为奇偶校验位)的任意数数据划分为64位的数据块(分组)对64位的数据块进行16轮迭代运算解密方法与加密完全一致,逆向使用子密钥《网络安全设计》密码学⑶对称密钥加密24DES工作步骤初始变换IP迭代运算f共进行16轮每轮采用不同的子密钥k1k2…k16逆变换IP-1《网络安全设计》密码学⑶对称密钥加密25DES算法《网络安全设计》密码学⑶对称密钥加密26(见下页)64bits明文MIP32bitsL032bitsR0i=1...16i=1...16E48bitsS32bits+32bitsRi32bitsLi32bitsL1632bitsR16IP-164bits密文C64bits密钥Ki=16?i=16?i=1...16①56bits28bitsC028bitsD0循环左移m(i)位循环左移m(i)位28bitsC128bitsD1②48bitsKi初始变换迭代运算f逆变换子密钥DES的S运算《网络安全设计》密码学⑶对称密钥加密27DES四种工作方式电子密码本(ElectronicCodeBook,ECB)密文分组链(CipherBlockChaining,CBC)密文反馈(CipherFeedBack,CFB)输出反馈(OutputFeedBack,OFB)《网络安全设计》密码学⑶对称密钥加密28DES加密准备使明文长度成为64-bit的整数倍将明文分成n个64-bit分组Xi(i=0,1,…,n-1)如果明文长度不是64-bit的倍数,则在明文末尾填充数据《网络安全设计》密码学⑶对称密钥加密2964-bitblock64-bitblock64-bitblock······pad······padlength······64-bitblockpadlength······64-bitblockpadlengthDES工作方式①电子密码本(ElectronicCodeBook,ECB)对64-bit明文组mi用密钥K分别进行加密,得到密文C=(c0,c1,…,cn-1),其中ci=DES(K,mi),i=0,1,…,n-1。此方式适合于并行处理,但相同的8-byte明文分组会加密得到相同的密文,而且被成组替换或修改而难以发现《网络安全设计》密码学⑶对称密钥加密30m0m1······m2mn-1Kc0c1······c2cn-1KKKM→C→DES工作方式②密文分组链(CipherBlockChaining,CBC)每个明文分组Mi在加密前与前一组密文异或(XOR)后,再送到DES加密。第一个分组加密时,需设置一个初始值(InitializationVector)。CBC方式克服了ECB方式的缺点,但由于加密与前一组密文有关,因此密文错误会依次传播下去,且无法采用并行处理;而一组密文在传输中被破坏,仅影响两组明文(本身和下一组)的正确解密《网络安全设计》密码学⑶对称密钥加密31m0m1······m2mn-1Kc0c1······c2cn-1KKKIVM→C→DES工作方式③密文反馈(CipherFeedBack,CFB)每个明文分组与前一组密文的加密结果异或后作为密文。第一个分组加密时,需使用初始值IV。由于加密与前一组密文相关,无法进行并行处理,且错误会往后扩散。此外,文本型明文的64-bit块加密易被破译《网络安全设计》密码学⑶对称密钥加密32m0m1······m2mn-1c0c1······c2cn-1IVM→C→DES工作方式③的可变长加密方法加密j-bit(j≤64)块当j=8,即加密字节流(即使是文本型明文也难以破译)《网络安全设计》密码学⑶对称密钥加密33IVM→C→64-jbits64-bit移位寄存器Ri(逻辑左移j位)jbits64-jjm0K丢弃64-jbits64-bit选择寄存器Sj(选择左侧j位)jbits64-jjc06464jjj64-jjm1K64-jjc16464jjj64-jjm2K64-jjc26464jjjDES工作方式④输出反馈(OutputFeedBack,OFB)与CFB方式一致,唯一不同的是OFB是直接取自前一组DES输出的密文,故每个分组加密相互独立,克服了CFB的密文错误传播的缺点《网络安全设计》密码学⑶对称密钥加密34IVM→C→64-jjm0K64-jjc06464jjj64-jjm1K64-jjc16464jjj64-jjm2K64-jjc26464jjj3DESTriple-DES三重DES使用3个密钥进行三次DES运算约相当于DES的112bits密钥强度四种3DES模型——EEE3:三个不同密钥,顺序三次加密EDE3:三个不同密钥,加密-解密-加密EEE2:密钥K1=K3,顺序三次加密EDE2:密钥K1=K3,加密-解密-加密《网络安全设计》密码学⑶对称密钥加密35IDEAInternationalDataEncryptionAlgorithm国际数据加密算法属于分组加密算法基于“相异代数群上的混合运算”设计思想长度为128-bit的密钥数据块大小为64-bit加密速度快,易实现《网络安全设计》密码学⑶对称密钥加密36IDEA算法《网络安全设计》密码学⑶对称密钥加密37IDEA算法图解《网络安全设计》密码学⑶对称密钥加密3864-bit数据128-bit密钥16-bit16-bit16-bit16-bit16-bit16-bit16-bit16-bit①②③④⑤⑥⑦⑧⑨⑩X116-bitX216-bitX316-bitX416-bit888816-bit16-bit16-bit16-bit⑾⑿⒀⒁循环左移25bits16-bit16-bit16-bit16-bit16-bit16-bit16-bit16-bit78126543910111213314151612345649505152177891011121AES高级加密标准AdvancedEncryptionStandard属于分组加密技术采用Rijndael算法(Daeman&Rijmen,1999)分组长度128bits密钥长度128/192/256bits,相应10/12/14轮速度快,耗用内存小,可靠性、防御能力强将替代DES成为新的数据加密标准《网络安全设计》密码学⑶对称密钥加密39AES算法《网络安全设计》密码学⑶对称密钥加密40第10轮第9轮第10轮第1轮明文128bit密钥128bit明文128bit密文128bit密文128bit轮密钥加字节代换行移位列混淆轮密钥加……w[0,3]第9轮字节代换行移位列混淆轮密钥加字节代换行移位轮密钥加扩展密钥w[4,7]轮密钥加字节代换逆行移位逆列混淆逆轮密钥加字节代换逆行移位逆……轮密钥加w[36,39]w[40,43]第1轮列混淆逆轮密钥加字节代换逆行移位逆44byteSMS4SMS4我国公布的第一个商用密码算法(2006年1月)基于Feistel结构的对称密钥分组加密技术分组长度为128bits密钥长度为128bits32轮非线性迭代f数据处理单位:8bits和32bits解密过程同加密过程(逆向用子密钥)用于WAPI(WiFi)加密《网络安全设计》密码学⑶对称密钥加密41SMS4算法结构《网络安全设计》密码学⑶对称密钥加密42X4iX4i+1X4i+2X4i+3128-bit明文128-bit密钥32-bit32-bit32-bit32-bitfX4i+5X4i+6ffX4i+7fX4i+4X4i+5X4i+6X4i+7i=0…7i++X35X34X33X32Y0Y1Y2Y3128-bit密文密钥扩展gk4ik4i+1k4i+2k4i+3轮函数f进行32轮迭代每轮使用一个轮密钥kr反向排列最后四个双字X4i+4SMS4变换等价图《网络安全设计》密码学⑶对称密钥加密43128-bit明文32-bitX0X1X2X332-bit32-bit32-bitX4X5X6X7X8······X31X32X33X34X35······128-bit密文32-bit32-bit32-bit32-bitff第1轮第2轮f第5轮f第32轮SMS4的轮函数f《网络安全设计》密码学⑶对称密钥加密44Xi+4=f(Xi,Xi+1,Xi+2,Xi+3,ki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕ki),i=0,1…31T(x)=L(S(x))32-bit运算L(x)=x⊕(x<<2)⊕(x<<10)⊕(x<<18)⊕(x<<24)<<循环左移S(x)为S-box置换(32-bit):8-bit8-bit8-bit8-bitx

(32-bit)S-boxS-boxS-boxS-box8-bit8-bit8-bit8-bitS(x)(32-bit)SMS4的S-box《网络安全设计》密码学⑶对称密钥加密458-bitS-box8-bit0xRC行号R列号C查表结果值8-bit数值的非线性变换SMS4的轮函数f图示《网络安全设计》密码学⑶对称密钥加密46XjXj+1Xj+2Xj+3kj32bits32bitsS-box<<2<<10<<18<<24Xj+4第j轮的f变换j=0,1,2…3132bits32bits32bits32bits32bitsSMS4的轮密钥生成①密钥扩展算法准备常数FKiFK0=(A3B1BAC6),FK1=(56AA3350)FK2=(677D9197),FK3=(B27022DC)参数CKi(i=0,1,…31)ckij=(4i+j)×7(mod256)

i=0,1,2…31,j=0,1,2,300070e15,1c232a31,383f464d,545b6269,70777e85,8c939aa1,a8afb6bd,c4cbd2d9,e0e7eef5,fc030a11,181f262d,343b4249,50575e65,6c737a81,888f969d,a4abb2b9,c0c7ced5,dce3eaf1,f8ff060d,141b2229,30373e45,4c535a61,686f767d,848b9299,a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,10171e25,2c333a41,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论