计算机安全与保密207-3对称密码体制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1计算机安全与保密信息安全原理与应用袁静波东北大学秦皇岛分校2第3章对称密码体制分组密码数据加密标准DES高级加密标准AES序列密码其他对称加密算法3概述对称密码体制就是在加密和解密是用到的密钥相同,或者加密密钥和解密密钥之间存在着确定的转换关系。对称密码体制又有两种不同的实现方式,即分组密码和序列密码(或称流密码)。–流密码每次加密数据流中的一位或一个字节。–分组密码,就是先把明文划分为许多分组,每个明文分组被当作一个整体来产生一个等长(通常)的密文分组。通常使用的是64位或128位分组大小。43.1分组密码分组密码的实质,是设计一种算法,能在密钥控制下,把n比特明文简单而又迅速地置换成唯一n比特密文,并且这种变换是可逆的(解密)。输入输出加密算法密钥明文输入输出解密算法密钥明文nbitnbitnbitnbit密文密文5分组密码的要求一般情况下对密码算法的要求是:–分组长度m足够大(64~128比特)–密钥空间足够大(密钥长度64~128比特)–密码变换必须足够复杂(包括子密钥产生算法)6分组密码一次变换一组数据。分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。分组密码便于标准化;一个密文组的传输错误不会影响其他密文组,容易实现同步。由于相同的密文一定对应相同的明文,所以分组密码不能隐蔽数据模式,同时也不能抵抗组重放、嵌入和删除等攻击。分组密码体制的特点7分组密码的设计思想扩散(diffusion)–将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中。产生扩散的最简单方法是通过“置换(Permutation)”。混淆(confusion)–其目的在于使作用于明文的密钥和密文之间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法是“代换(Substitution)”。83.2数据加密标准DES1973年5月美国国家标准局发出通告,公开征求对计算机数据在传输和存储期间的进行数据加密算法的要求:(1)必须提供高度的安全性;(2)具有相当高的复杂性,使得破译的开销超过获得的利益,但同时又便于理解和掌握;(3)安全性应当不依赖于算法的保密,加密的安全性仅以加密密钥的保密为基础;(4)必须适合不同的用户和不同的应用场合;(5)实现算法的电子器件必须很经济,运行有效;(6)必须能够有出口。93.2.1DES简介美国国家标准局接受了美国国际商业机器公司IBM推荐的一种密码算法并向全国公布,征求对采用该算法作为美国信息加密标准的意见。经过两年的激烈争论,美国国家标准局于1977年7月正式采用该算法作为美国数据加密标准。1980年12月美国国家标准协会正式采用这个算法作为美国的商用加密算法。DES(DataEncryptionStandard)属于常规密钥密码体制,是一种分组密码。在加密前,先对整个明文进行分组。每一个组长为64bit。然后对每一个64bit二进制数据进行加密处理,产生一组64bit密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥为64bit,进行16轮代换和置换加密既可用于加密,也可用于解密103.2.2DES的加密解密原理加密前,先将明文分成64bit的分组,然后将64bit二进制码输入到密码器中,密码器对输入的64位码首先进行初始置换,然后在64bit主密钥产生的16个子密钥控制下进行16轮乘积变换,接着再进行末置换就得到64位已加密的密文。11L0R0L1=R0IPL2=R1L15=R14R1=L0f(R0,K1)R2=L1f(R1,K2)R15=L14f(R14,K15)L16=R15R16=L15f(R15,K16)IP1fff输出密文Y(64bit)明文X(64bit)输入K16(48bit)K2(48bit)K1(48bit)X0的左半边(32bit)X0(64bit)X0的右半边(32bit)R16L16(64bit)DES加密需要四个关键点:1、IP置换表和IP-1逆置换表。2、函数f。3、子密钥Ki。4、S盒置换。12DES算法的实现步骤DES算法实现加密需要三个步骤:第一步:变换明文。–对给定的64位比特的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。第二步:–按照规则迭代。规则为Li=Ri-1Ri=Li⊕f(Ri-1,Ki)(i=1,2,3…16)–经过第一步变换已经得到L0和R0的值,其中符号⊕表示的数学运算是异或,f表示一种置换,由S盒置换构成,Ki是一些由密钥编排函数产生的比特块。f和Ki将在后面介绍。第三步:–对L16R16利用IP-1作逆置换,就得到了密文y。131.初始置换函数IPDES对64位明文分组进行操作。首先,64位明文分组x经过一个初始置换函数IP,产生64位的输出x0,再将分组x0分成左半部分L0和右半部分R0,即:x0=IP(x)=L0R058504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置换表IP例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D16D8R0=D57D49...D15D7DES加密过程细化142.子密钥产生器DES加密算法的密钥长度为56位,但一般表示为64位,其中,每个第8位用于奇偶校验。在DES加密算法中,将用户提供的64位初始密钥经过一系列的处理得到K1,K2,…,K16,分别作为1~16轮运算的16个子密钥。PC-1C0D0左移左移C1D1PC-2K1左移左移CiDiPC-2Ki左移左移C16D16PC-2K1656位密钥..................15(1)置换选择1:将64位密钥去掉8个校验位,用密钥置换PC–1置换剩下的56位密钥;再将56位分成前28位C0和后28位D0两部分,即PC–1(K56)=C0D0。密钥置换PC-1如下表所示。获取子密钥Ki的步骤C0D05749413325179158504234261810259514335271911360524436635547393123157625446383022146615345372921135282012416第i次迭代12345678910111213141516循环左移位数1122222212222221若C1=c1c2…c28,D1=d1d2…d28则C2=c2c3…c28c1,D2=d2d3…d28d1移位次数表:获取子密钥Ki的步骤(2)移位17移动后,将两部分合并成56位后通过压缩置换PC–2后得到48位子密钥,即Ki=PC-2(CiDi)。(3)置换选择2获取子密钥Ki的步骤置换选择PC-2将C中第9182225位和D中第791526位删去,并将其余数字置换位置后送出48bit数字作为第i次迭代时所用的子密钥kiCiDi=b1b2…b56,则ki=b14b17b11b24…b36b29b32141711241532815621102319124268167272013241523137475530405145334844493956345346425036293218K:1111111011011100101110101001100001110110010101000011001000010000PC-1(K):00001111001100110101010111110101010100110011000011111111循环左移:00011110011001101010101111101010101001100110000111111110(PC-2):111101001111110110011000011001001011011001011010已知K=0xfedcba9876543210K1的产生:第1轮:循环左移一位子密钥的产生举例K1C1D119K2的计算:C1D1:00011110011001101010101111101010101001100110000111111110循环左移:00111100110011010101011111000101010011001100001111111101K2(PC-2):100101100101100110100110110110101001010111011001第2轮:循环左移一位可以按此继续求出K3-K16子密钥的产生举例C2D2203.迭代变换Li-1(32bit)Ri-1(32bit)选择扩展运算E盒48bit寄存器48bit寄存器选择压缩运算S盒32bit寄存器置换运算PRi=Li-1⊕f(Ri-1,ki)(32bit)(32bit)⊕Li=Ri-1轮开始:64bit分成左右两半子密钥Ki(48bit)函数F⊕DES的一轮迭代21F(Ri,Ki)计算函数F的操作步骤:密码函数F的输入是32比特数据和48比特的子密钥,其操作步骤如下图所示。密码函数FRi-1(32比特)E48比特S1S2S3S4S5S6S7S8Ki(48比特)P32比特输出22扩展置换(E)。将数据的右半部分Ri从32位扩展为48位。选择函数(也称E盒)如表所示。(1)扩展置换321234545678989101112131213141516171617181920212021222324252425262728292829303132123(2)异或运行异或运行。扩展后的48位输出E(Ri)与压缩后的48位密钥Ki作异或运算。24S盒替代。将异或得到的48位结果分成八个6位的块,每一块通过对应的一个S盒产生一个4位的输出。八个S盒如表所示。•作用:将6个输入位映射为4个输出位S盒0123456789101112131415S114413121511831061259070157414213110612119538411481362111512973105015128249175113141006130123S215181461134972131205103134715281412011069115014711104131581269321513810131542116712051490123(3)S盒替代25S盒0123456789101112131415S310091463155113127114281370934610285141211151136498153011121251014711013069874151431152120123S471314306910128511124151381156150347212110149106901211713151314528431506101138945111272140123S52124171011685315130149141121247131501510398642111101378159125630141181271142136150910453012326S盒0123456789101112131415S612110159268013341475111015427129561131401138914155281237041011311643212951510111417608130123S741121415081331297510611301174911014351221586141113123714101568059261113814107950151423120123S8132846151111093145012711513810374125611014927114191214206101315358211

1 / 64
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功