您好,欢迎访问三七文档
1分组密码的设计原则数据加密标准DES分组密码的工作模式高级加密标准AES第三章分组密码2第二节DES分组密码算法(DateEncipherStandard)主要内容:DES算法概述,圈函数,密钥生成算法,多重DES重点:DES加密算法,圈函数难点:圈函数实现的混乱和扩散DES分组密码算法3算法的标准化(1)美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征集标准加密算法。(2)1975年3月NBS采纳了IBM公司提交的候选算法。DES算法1976年11月被采纳作为政府标准,1977年1月由NBS颁布为数据加密标准,于1977年7月生效。算法的征集一、DES算法产生的背景DES分组密码算法4(3)新标准是AES,是由比利时密码学家设计的分组密码算法----Rijndael算法。(1)成为国际上商用保密通信和计算机通信最常用的加密算法。(2)安全性评估:规定每五年审查一次,最近一次是在1994年1月,美国政府已决定1998年12月以后不再使用DES算法。DES算法的应用DES分组密码算法5DES算法的意义DES算法是第一个公开的分组密码算法,是密码学发展的一个重要的阶段,对算法的标准化研究和分组密码的发展有重大意义。DES分组密码算法6二、DES算法概述●分组长度:64比特●密钥长度:64比特●有效密钥长度:56比特●迭代圈数:16圈●每圈子密钥长度:48比特DES算法是迭代型分组密码算法。基本参数:DES分组密码算法7m1m2……m64C1C2……C64迭代16圈……初始置换逆初始置换Round16K16:::Round1K1DES算法加密流程框图1、算法流程DES分组密码算法8DES加密框图m1m2……m64C1C2……C64迭代16圈……初始置换逆初始置换Round16:::Round1L1R1L0R0fK1L16R16L15R15fK1692、初始置换和逆初始置换初始置换IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157明文Ma1a2…a64,则IP(M)a58a50…a7。变换规则:按置换指示的顺序从输入取出,即得输出。DES分组密码算法10逆初始置换IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725逆初始置换IP-1与初始置换IP互逆,可直接利用置换求逆的方法由IP求出。且有:IP-1[IP(X)]=X变换规则:同初始置换。DES分组密码算法11DES加密框图m1m2……m64C1C2……C64迭代16圈……初始置换逆初始置换Round16K16:::Round1K1DES分组密码算法12三、圈函数DES算法的第i(i=1,2,…,15)圈加密结构图缺点:•每圈加密时输入有一半没有改变•左右块的加密处理不能并行实施优点:圈变换的数学描述如下:Li=Ri-1Feistel模型LiRiLi-1(32位)Ri-1(32位)fKiRi=Li-1f(Ri-1,Ki)•设计容易:f函数不要求可逆DES分组密码算法13Pa1a2…a32S1S8S2S7S6S4S3S51、DES算法的f函数123Ea’1a’2…a’48k1k2…k48DES分组密码算法1412345678910111213141516171819202122232425262728293031323212345456789891011121312131415161716171819202120212223242524252627282928293031321①扩展变换----E盒扩展方式:分别将第i-1块的最右比特和第i+1块的最左比特添到第i块的左边和右边,形成输出的第i个6比特块.扩展E盒的作用:是将输入的32比特数据扩展为48比特数据扩展DES分组密码算法15S1S8S2S7S6S4S3S548比特32比特②压缩替代变换----S盒S盒作用:是将输入的48比特数据压缩为32比特数据。DES分组密码算法1600010203040506070809101112131415012314041301021511080310061205090007001507041402130110061211090503080401140813060211151209070310050015120802040901070511031410000613012315010814061103040907021312000510031304071502081412000110060911050014071110041301050812060903021513081001031504021106071200051409012310000914060315050113120711040208130700090304061002080514121115011306040908150300110102120510140701101300060908070415140311050212012307131403000609100102080511120415130811050615000304070212011014091006090012110713150103140502080403150006100113080904051112070214012302120401071011060805031513001409141102120407130105001510030908060402011110130708150912050603001411081207011402130615000910040503012312011015090206080013030414070511101504020712090506011314001103080914150502081203070004100113110604030212090515101114010706000813012304110214150008130312090705100601130011070409011014030512021508060104111312030714101506080005090206111308010410070905001514020312012313020804061511011009031405001207011513081003070412050611001409020711040109121402000610131503050802011407041008131512090003050611输出列行S8S1S6S7S5S3S4S28个6进4出S盒每个S盒有4行,记为第0,1,2,3行。16列记为第0,1,2,…,15列。实际上每个S盒是一个4行代替表。17S6(1100112)=11102即:b1b2b3b4b5b61100112行:b1b6=112=3列:b2b3b4b5=10012=9S6盒3行9列值:14=11102b1b2b3b4b5b6b1b6b2b3b4b5查表方法:以S6为例b1b2b3b4b5b6=110011行号列号DES分组密码算法压缩替代S盒是DES中唯一的非线性变换,在算法中起核心作用!18③移位变换----P盒P1672021291228171152326518311028241432273919133062211425将S盒变换后的32比特数据再进行P盒置换,置换后得到的32比特即为f函数的输出(1)P盒的各输入块的4个比特都分配到不同的输出块之中DES的P盒的设计特点(2)P盒的各输出块的4个比特都来自不同的输入块DES分组密码算法19(,)(())fRkPSERkDES的f函数:11111(,)(,)(,(,))ikiiiiiiiiTLRLRRLfRkDES的圈函数:00||)(RLMIP11(,)iiiiRLfRk1iiLRCLRIP)(16161DES的加密过程描述为:1,2,,16iDES分组密码算法20562828密钥1置换选择0C0D位移1C1D2置换选择1k位移2C2D2置换选择2k4848位移位移16C16D2置换选择16k48位移位移圈子密钥生成算法DES分组密码算法四、圈子密钥生成算法21用于产生16圈迭代的16个圈子密钥。其中的置换选择1和置换选择2由算法给定。置换选择1和置换选择2各分为两部分,前四行表示C中的比特,后四行表示D中的比特。每一圈的C和D循环左移的位数与其所在的圈数有关,每圈循环左移的位数也由算法给定。DES分组密码算法22574941332517915850423426181025951433527191136052443663554739312315762544638302214661534537292113528201241417112415328156211023191242681672720132415231374755304051453348444939563453464250362932置换选择1置换选择2DES分组密码算法23迭代次数(圈数)左移位数123456789101112131415161122222212222221C寄存器和D寄存器循环左移的位数DES分组密码算法24例1:已知DES分组密码算法第一圈的输入为L0=83D67FEB16,R0=97A4F8ED16子密钥为K1=38127AD67B4516,求第一圈的加密结果。解:第一圈的圈函数L1R1L0R0fK1DES分组密码算法25第一圈的圈函数??83D67FEB1697A4F8ED16f38127AD67B4516DES分组密码算法2610111111010000100101111111000101110101101123221aaaPS1S8S2S7S6S4S35S4821kkk4821aaaE………S51、输入的右半部分R0是:97A4F8ED16=1001011110100100111110001110110122、经E盒扩展后为1100103、第一圈的子密钥K1是C4127AD42B4516=1100010000010010011110101101010000101011010001012DES分组密码算法27PS1S8S2S7S6S4S35S4821kkk4821aaa3221aaaE………S54、与子密钥K1模2加后为00001110111011110111001110101011001111000001111025、查S盒后的32比特输出为1111000100100100110111101010011126、经P盒后得F函数的32比特输出001100011010011011011110001011112=31A6BE2F16DES分组密码算法287、将F函数的输出与圈函数的左半输入模2加80D3712B1631A6BE2F16=B115CF04168、左右两边交换,第一圈64比特输出为L1=97A4F8ED16,R1=B115CF041697A4F8ED16B115CF041683D67FEB1697A4F8ED16f38127AD67B4516DES分组密码算法29DES运行框图64比特明文L0R0L15R15L16R16fK1L1R1......初始置换64比特密文逆初始置换fK16DES分组密码算法30(一)双重DES双重DES是分别用两个不同的密钥k1和k2对明文进行两次DES变换以实现对数据的加密保护,即))((12mDESDESck
本文标题:DES分组密码算法
链接地址:https://www.777doc.com/doc-7095549 .html