第四章分组密码课件

上传人:文**** 文档编号:241592620 上传时间:2024-07-07 格式:PPT 页数:88 大小:552.04KB
返回 下载 相关 举报
第四章分组密码课件_第1页
第1页 / 共88页
第四章分组密码课件_第2页
第2页 / 共88页
第四章分组密码课件_第3页
第3页 / 共88页
点击查看更多>>
资源描述
第四章第四章 分组密码分组密码一、分组密码概述一、分组密码概述二、分组密码运行模式二、分组密码运行模式三、三、DESDES四、四、AESAES五、分组密码的分析五、分组密码的分析2024/7/71 第四章 分组密码一、分组密码概述2023/8/131一、分组密码概述一、分组密码概述2024/7/72一、分组密码概述2023/8/132分组密码概述分组密码概述n分组密码是许多系统安全的一个重要组成部分。分组密码是许多系统安全的一个重要组成部分。可用于构造可用于构造n拟随机数生成器拟随机数生成器n流密码流密码n消息认证码消息认证码(MAC)MAC)和杂凑函数和杂凑函数n消息认证技术、数据完整性机构、实体认证协议以消息认证技术、数据完整性机构、实体认证协议以及单钥数字签字体制的核心组成部分及单钥数字签字体制的核心组成部分。2024/7/73分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于应用中对于分组码的要求应用中对于分组码的要求n安全性安全性n运行速度运行速度n存储量存储量(程序的长度、数据分组长度、高速缓程序的长度、数据分组长度、高速缓存大小存大小)n实现平台实现平台(硬、软件、芯片硬、软件、芯片)n运行模式运行模式2024/7/74应用中对于分组码的要求安全性2023/8/134分组密码概述分组密码概述 明文序列明文序列 x1,x2,xi,加密函数加密函数E:VnKVn 这种密码实质上是字长为这种密码实质上是字长为m的数字序列的代换密码的数字序列的代换密码。解密算法加密算法密钥k=(k0,k1,kt-1)密钥k=(k0,k1,kt-1)明文明文x=(x0,x1,xm-1)明文明文x=(x0,x1,xm-1)密文密文x=(y0,y1,ym-1)2024/7/75分组密码概述 明文序列 x1,x2,xi,解分组密码概述分组密码概述n通常取通常取n=m。n若若nm,则为有数据扩展的分组密码。则为有数据扩展的分组密码。n若若n0,L(i)=L(i-1)1 if the first bit of L(i-1)is 0 L(i)=(L(i-1)1 if the last bit of L is 0,L(-1)=L1 xor 0 x80000000000000000000000000000043 otherwise.2024/7/742OCB模式function ocb-aes-encrypt(比较和选用比较和选用nECB模模式式,简简单单、高高速速,但但最最弱弱、易易受受重重发发攻攻击击,一般不推荐。一般不推荐。nCBC适适用用于于文文件件加加密密,但但较较ECB慢慢。安安全全性性加加强强。当有少量错误时,也不会造成同步错误。当有少量错误时,也不会造成同步错误。nOFB和和CFB较较CBC慢慢许许多多。每每次次迭迭代代只只有有少少数数bit完完成成加加密密。若若可可以以容容忍忍少少量量错错误误扩扩展展,则则可可换换来来恢恢复复同同步步能能力力,此此时时用用CFB。在在字字符符为为单单元元的的流流密码中多选密码中多选CFB模式。模式。nOFB用于高速同步系统,不容忍差错传播。用于高速同步系统,不容忍差错传播。2024/7/743比较和选用ECB模式,简单、高速,但最弱、易受重发攻击,一般三、三、美国数据加密标准美国数据加密标准DES(Data Encryption Standard)2024/7/744三、美国数据加密标准DES(Data Encryption美国制定数据加密标准简况美国制定数据加密标准简况n目的目的 通信与计算机相结合是人类步入信息社会的一个阶梯,通信与计算机相结合是人类步入信息社会的一个阶梯,它始于六十年代末,完成于它始于六十年代末,完成于90年代初。计算机通信网的形年代初。计算机通信网的形成与发展,要求信息作业标准化,安全保密亦不例外。只成与发展,要求信息作业标准化,安全保密亦不例外。只有标准化,才能真正实现网的安全,才能推广使用加密手有标准化,才能真正实现网的安全,才能推广使用加密手段,以便于训练、生产和降低成本。段,以便于训练、生产和降低成本。2024/7/745美国制定数据加密标准简况目的2023/8/1345美国制定数据加密标准简况美国制定数据加密标准简况n美国美国NBS在在1973年年5月月15公布了征求建议。公布了征求建议。1974年年8月月27日日NBS再次出公告征求建议,对建议方案提出如下再次出公告征求建议,对建议方案提出如下要求:要求:n算法必须完全确定而无含糊之处;算法必须完全确定而无含糊之处;n算法必须有足够高的保护水准,即可以检测到威胁,算法必须有足够高的保护水准,即可以检测到威胁,恢复密钥所必须的运算时间或运算次数足够大;恢复密钥所必须的运算时间或运算次数足够大;n保护方法必须只依赖于密钥的保密;保护方法必须只依赖于密钥的保密;n对任何用户或产品供应者必须是不加区分的。对任何用户或产品供应者必须是不加区分的。2024/7/746美国制定数据加密标准简况美国NBS在1973年5月15公布了美国制定数据加密标准简况美国制定数据加密标准简况nIBM公公司司在在1971年年完完成成的的LUCIFER密密码码(64 bit分分组组,代代换换-置置换换,128 bit密密钥钥)的的基基础础上上,改改进进成成为为建建议议的的DES体体制制n1975年年3月月17日日NBS公公布布了了这这个个算算法法,并并说说明明要要以以它它作作为为联邦信息处理标准,征求各方意见。联邦信息处理标准,征求各方意见。n1977年年1月月15日日建建议议被被批批准准为为联联邦邦标标准准FIPS PUB 46,并并设计推出设计推出DES芯片。芯片。n1981年年美美国国ANSI 将将其其作作为为标标准准,称称之之为为DEAANSI X3.92n1983年年国国际际标标准准化化组组织织(ISO)采采用用它它作作为为标标准准,称称作作DEA-1 2024/7/747美国制定数据加密标准简况IBM公司在1971年完成的LUCI美国制定数据加密标准简况美国制定数据加密标准简况nNSA宣宣布布每每隔隔5年年重重新新审审议议DES是是否否继继续续作作为为联联邦邦标标准准,1988年年(FIPS46-1)、1993年年(FIPS46-2),1998年年不不再再重重新批准新批准DES为联邦标准。为联邦标准。n虽虽然然DES已已有有替替代代的的数数据据加加密密标标准准算算法法,但但它它仍仍是是迄迄今今为为止止得得到到最最广广泛泛应应用用的的一一种种算算法法,也也是是一一种种最最有有代代表表性性的的分分组组加加密体制。密体制。n1993年年4月月,Clinton政政府府公公布布了了一一项项建建议议的的加加密密技技术术标标准准,称称作作密密钥钥托托管管加加密密技技术术标标准准EES(Escrowed Encryption Standard)。算法属美国政府。算法属美国政府SECRET密级。密级。2024/7/748美国制定数据加密标准简况NSA宣布每隔5年重新审议DES是否美国制定数据加密标准简况美国制定数据加密标准简况nDES发发展展史史确确定定了了发发展展公公用用标标准准算算法法模模式式,而而EES的的制制定定路路线线与与DES的的背背道道而而驰驰。人人们们怀怀疑疑有有陷陷门门和和政政府府部部门门肆肆意意侵犯公民权利。此举遭到广为反对。侵犯公民权利。此举遭到广为反对。n1995年年5月月AT&T Bell Lab的的M.Blaze博博士士在在PC机机上上用用45分分钟钟时时间间使使SKIPJACK的的 LEAF协协议议失失败败,伪伪造造ID码码获获得得成成功功。1995年年7月月美美国国政政府府宣宣布布放放弃弃用用EES来来加加密密数数据据,只只将将它用于语音通信。它用于语音通信。n1997年年1月月美美国国NIST着着手手进进行行AES(Advanced Encryption Standard)的的研研究究,成成立立了了标标准准工工作作室室。2001年年Rijndael被被批准为批准为AES标准。标准。2024/7/749美国制定数据加密标准简况DES发展史确定了发展公用标准算法模DES 算法算法n分组长度为分组长度为64 bits(8 bytes)n密文分组长度也是密文分组长度也是64 bits。n密密钥钥长长度度为为64 bits,有有8 bits奇奇偶偶校校验验,有有效效密密钥钥长长度为度为56 bits。n算算法法主主要要包包括括:初初始始置置换换IP、16轮轮迭迭代代的的乘乘积积变变换换、逆初始置换逆初始置换IP-1以及以及16个子密钥产生器。个子密钥产生器。2024/7/750DES 算法分组长度为64 bits(8 bytes)2DES算法框图算法框图 输入 64 bit明文数据 初始置换IP 乘积变换 (16轮迭代)逆初始置换IP-1 64 bit密文数据 输出 标准数据加密算法2024/7/751DES算法框图 初始置换初始置换IPIPn将将64 bit明文的位置进行置换,得到一个乱序的明文的位置进行置换,得到一个乱序的64 bit明文组,而后分成左右两段,每段为明文组,而后分成左右两段,每段为32 bit,以以L0和和R0表示,表示,IP中各列元素位置号数相差为中各列元素位置号数相差为8,相当于将原明,相当于将原明文各字节按列写出,各列比特经过偶采样和奇采样置文各字节按列写出,各列比特经过偶采样和奇采样置换后,再对各行进行逆序。将阵中元素按行读出构成换后,再对各行进行逆序。将阵中元素按行读出构成置换输出。置换输出。n逆逆初初始始置置换换IPIP-1-1。将将16轮轮迭迭代代后后给给出出的的64 bit组组进进行行置置换换,得得到到输输出出的的密密文文组组。输输出出为为阵阵中中元元素素按按行行读读得得的的结果。结果。nIP和和IPIP-1-1在在密密码码意意义义上上作作用用不不大大,它它们们的的作作用用在在于于打打乱乱原原来来输输入入x x的的ASCII码码字字划划分分的的关关系系,并并将将原原来来明明文文的的校验位校验位x8,x16,x64变成为变成为IP输出的一个字节。输出的一个字节。2024/7/752初始置换IP将64 bit明文的位置进行置换,得到一个乱序的 Li-1(32bit)Ri-1(32bit)选择扩展运算 E 48 bit寄存器 按bit模2加密 48 bit寄存器 选择压缩运算 S 32 bit寄存器 置换运算 P 按bit模2和 Li(32bit)Ri(32bit)乘积变换框图乘积变换框图密钥产生器2024/7/753密钥产生器2023/8/1353乘积变换乘积变换n它它是是DES算算法法的的核核心心部部分分。将将经经过过IP置置换换后后的的数数据据分分成成32 bit的左右两组,在迭代过程中彼此左右交换位置。的左右两组,在迭代过程中彼此左右交换位置。n每每次次迭迭代代时时只只对对右右边边的的32 bit进进行行一一系系列列的的加加密密变变换换,在在此此轮轮迭迭代代即即将将结结束束时时,把把左左边边的的32 bit与与右右边边得得到到的的32 bit逐逐位位模模2相相加加,作作为为下下一一轮轮迭迭代代时时右右边边的的段段,并并将将原原来来右右边边未未经经变变换换的的段段直直接接送送到到左左边边的的寄寄存存器器中中作作为为下下一一轮轮迭迭代代时时左左边边的段。的段。n在在每每一一轮轮迭迭代代时时,右右边边的的段段要要经经过过选选择择扩扩展展运运算算E E、密密钥钥加加密运算、选择压缩运算密运算、选择压缩运算S S、置换运算置换运算P P和左右混合运算和左右混合运算。2024/7/754乘积变换它是DES算法的核心部分。将经过IP置换后的数据分成乘积变换乘积变换 选选择择扩扩展展运运算算E E。将将输输入入的的32 bit Ri-1扩扩展展成成48 bit的的输输出出,令令s表表示示E原原输输入入数数据据比比特特的的原原下下标标,则则E的的输输出出是是将将原原下下标标s 0或或1(mod 4)的的各各比比特特重重复复一一次次得得到到的的,即即对对原原第第32,1,4,5,8,9,12,13,16,17,20,21,24,25,28,29各各位位都都重重复复一一次次,实实现现数数据据扩展。将表中数据按行读出得到扩展。将表中数据按行读出得到48 bit输出。输出。密密钥钥加加密密运运算算。将将子子密密钥钥产产生生器器输输出出的的48 bit子子密密钥钥ki与与选选择择扩扩展运算展运算E输出的输出的48 bits数据按位模数据按位模2相加。相加。选选择择压压缩缩运运算算S S。将将前前面面送送来来的的48 bit数数据据自自左左至至右右分分成成8组组,每每组组为为6 bit。而而后后并并行行送送入入8个个S一一盒盒,每每个个S盒盒为为一一非非线线性性代代换网络,有换网络,有4个输出,运算个输出,运算S的框图在图的框图在图4-4-6中给出。中给出。p.186 图图4-4-6 选择压缩运算选择压缩运算S 置置换换运运算算P P。对对S1至至S8盒盒输输出出的的32 bit数数据据进进行行坐坐标标置置换换,如如图图4-4-7所所示示。置置换换P输输出出的的32 bit数数据据与与左左边边32 bit即即Ri-1逐逐位位模模2相相加加,所所得得到到的的32 bit作作为为下下一一轮轮迭迭代代用用的的右右边边的的数数字字段段。并并将将Ri-1并并行行送送到到左左边边的的寄寄存存器器,作作为为下下一一轮轮迭迭代代用用的的左左边边的的数数字段。字段。子子密密钥钥产产生生器器。将将64 bit初初始始密密钥钥经经过过置置换换选选择择PC1PC1、循循环环移移位位置置换换、置置换换选选择择PC2PC2给给出出每每次次迭迭代代加加密密用用的的子子密密钥钥ki,参参看看图图4-4-8。在在64 bit初初始始密密钥钥中中有有8位位为为校校验验位位,其其位位置置号号为为8、16、32、48、56和和64。其其余余56位位为为有有效效位位,用用于于子子密密钥钥计计算算。将将这这56位位送送入入置置换换选选择择PC1,参参看看图图4-4-9。经经过过坐坐标标置置换换后后分分成成两两组组,每每级级为为28 bit,分分别别送送入入C寄寄存存器器和和D寄寄存存器器中中。在在各各次次迭迭代代中中,C和和D寄寄存存器器分分别别将将存存数数进进行行左左循循环环移移位位置置换换,移移位位次次数数在在表表4-4-2中中给给出出。每每次次移移位位后后,将将C和和D寄寄存存器器原原存存数数送送给给置置换换选选择择PC2,见见图图4-4-10。置置换换选选择择PC2将将C中中第第9、18、22、25位位和和D中中第第7、9、15、26位位删删去去,并并将将其其余余数数字字置置换换位位置置后后送出送出48 bit数字作为第数字作为第i次迭代时所用的子密钥次迭代时所用的子密钥ki。p.186 p.186 图图4-4-7 置换运算置换运算P 图图4-4-8 子密钥产生器框图子密钥产生器框图 表表4-4-2 移位次数表移位次数表 第第i次迭代次迭代 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 循环左移次数循环左移次数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 p.187 图图4-4-9 置换选择置换选择PC1 至至此此,我我们们已已将将DES算算法法的的基基本本构构成成作作了了介介绍绍,加加密密过过程程可可归归结结如如下下:令令IP表表示示初初始始置置换换,KS表表示示密密钥钥运运算算,i为为迭迭代代次次数数变量,变量,KEY为为64 bit密钥,密钥,f为加密函数,为加密函数,表示逐位模表示逐位模2求和。求和。2024/7/755乘积变换 选择扩展运算E。将输入的32 bit Ri-1扩选择压缩运算选择压缩运算S 6 bit 选择函数组选择函数组 4 bit 48 bit 寄存器32 bit 寄存器S1S2S3S4S5S6S7S82024/7/756选择压缩运算S 48 bit 寄存器32 bit 寄存器S乘积变换乘积变换 置置换换运运算算P P。对对S1至至S8盒盒输输出出的的32 bit数数据据进进行行坐坐标标置置换换,置置换换P输输出出的的32 bit数数据据与与左左边边32 bit即即Ri-1逐逐位位模模2相相加加,所所得得到到的的32 bit作作为为下下一一轮轮迭迭代代用用的的右右边边的的数数字字段段。并并将将Ri-1并并行行送送到到左左边边的的寄寄存存器器,作为下一轮迭代用的左边的数字段。作为下一轮迭代用的左边的数字段。子子密密钥钥产产生生器器。将将64 bit初初始始密密钥钥经经过过置置换换选选择择PC1PC1、循循环环移移位位置置换换、置置换换选选择择PC2PC2给给出出每每次次迭迭代代加密用的子密钥加密用的子密钥ki,2024/7/757乘积变换 置换运算P。对S1至S8盒输出的32 bit数据子密钥产生器框图子密钥产生器框图 密钥(64 bit)置换选择1,PC1置换选择2,PC2 Ci(28 bit)Di(28 bit)循环左移ti+1bit 循环左移ti+1bit除去第8,16,64位(8个校验位)ki2024/7/758子密钥产生器框图 密钥(64 bit)DES的的安全性安全性n互补性互补性。DES算法具有下述性质。若明文组算法具有下述性质。若明文组x逐位取逐位取补,密钥补,密钥k逐位取补,即逐位取补,即y=DESk(x),则有则有 这这种种互互补补性性会会使使DES在在选选择择明明文文破破译译下下所所需需的的工工作量减半。作量减半。n弱弱密密钥钥和和半半弱弱密密钥钥。DES算算法法在在每每次次迭迭代代时时都都有有一一个个子子密密钥钥供供加加密密用用。如如果果给给定定初初始始密密钥钥k,各各轮轮的的子子密钥都相同,即有密钥都相同,即有 k1=k2=k16 就称给定密钥就称给定密钥k为弱密钥为弱密钥(Weak key)。2024/7/759DES的安全性互补性。DES算法具有下述性质。若明文组x逐位DES的的安全性安全性若若k为弱密钥,则有为弱密钥,则有 DESk(DESk(x)=x DESk-1(DESk-1(x)=x 即即以以k对对x加加密密两两次次或或解解密密两两次次都都可可恢恢复复出出明明文文。其其加加密密运算和解密运算没有区别。运算和解密运算没有区别。弱密钥下使弱密钥下使DES在选择明文攻击下的搜索量减半。在选择明文攻击下的搜索量减半。如如果果随随机机地地选选择择密密钥钥,弱弱密密钥钥所所占占比比例例极极小小,而而且且稍稍加加注注意意就就不不难难避避开开。因因此此,弱弱密密钥钥的的存存在在不不会会危危及及DES的的安安全性。全性。2024/7/760DES的安全性若k为弱密钥,则有2023/8/1360DES的的安全性安全性密文与明文、密文与密钥的相关性密文与明文、密文与密钥的相关性。Meyer1978详详细细研研究究了了DES的的输输入入明明文文与与密密文文及及密密钥钥与与密密文文之之间间的的相相关关性性。表表明明每每个个密密文文比比特特都都是是所所有有明明文文比比特特和和所所有有密密钥钥比比特特的的复复合合函函数数,并并且且指指出出达达到到这这一一要要求求所所需需的的迭迭代代次次数数至至少少为为5。Konheim1981用用 2检检验验证证明明,迭迭代代8次后输出和输入就可认为是不相关的了次后输出和输入就可认为是不相关的了。2024/7/761DES的安全性密文与明文、密文与密钥的相关性。2023/8/DES的的安全性安全性S S盒设计盒设计。DES靠靠S盒实现非线性变换。盒实现非线性变换。密钥搜索机密钥搜索机。对对DES安安全全性性批批评评意意见见中中,较较为为一一致致的的看看法法是是DES的的密密钥钥短短了了些些。IBM最最初初向向NBS提提交交的的建建议议方方案案采采用用112 bits密密钥钥,但但公公布布的的DES标标准准采采用用64 bits密密钥钥。有有人人认认为为NSA故故意意限限制制DES的的密密钥钥长长度度。采采用用穷穷搜搜索索对对已已经经对对DES构成了威胁构成了威胁2024/7/762DES的安全性S盒设计。2023/8/1362二重二重DES 用用DES进行两次加密,但这是否就意味着两重进行两次加密,但这是否就意味着两重DES加密的强度等价于加密的强度等价于112 bit密钥的密码的强度密钥的密码的强度?答案是否定的。?答案是否定的。中途相遇攻击法中途相遇攻击法(Meet-in-the-Middle Attack)由由Diffie和和Hellman1977最早提出,可以降低搜最早提出,可以降低搜索量其基本想法如下。若有明文密文对索量其基本想法如下。若有明文密文对(xi,yi)满足满足 yi=Ek2Ek1xi 则可得则可得 z=Ek1xi=Dk2yi 2024/7/763二重DES 用DES进行两次加密,但这是否就意味着两二重二重DES 图图4-14-1 中途相遇攻击示意图中途相遇攻击示意图 zEEDDxiyixizyi k1 k1k2k22024/7/764二重DESzEEDDxiyixizyi k1 k1k2k22中途相遇攻击中途相遇攻击给定一已知明密文对给定一已知明密文对(x1,y1),可按下述方法攻击。可按下述方法攻击。n以以密密钥钥k1的的所所有有256个个可可能能的的取取值值对对此此明明文文x1加加密密,并并将密文将密文z存储在一个表中;存储在一个表中;n从从所所有有可可能能的的256个个密密钥钥k2中中依依任任意意次次序序选选出出一一个个对对给给定定的的密密文文y1解解密密,并并将将每每次次解解密密结结果果z 在在上上述述表表中中查查找找相匹配的值。一旦找到,则可确定出两个密钥相匹配的值。一旦找到,则可确定出两个密钥k1和和k2;n以以此此对对密密钥钥k1和和k2对对另另一一已已知知明明文文密密文文对对(x2,y2)中中的的明明文文x2进进行行加加密密,如如果果能能得得出出相相应应的的密密文文y2就就可可确确定定k1和和k2是所要找的密钥。是所要找的密钥。2024/7/765中途相遇攻击给定一已知明密文对(x1,y1),可按下述方法攻中途相遇攻击中途相遇攻击n对于给定明文对于给定明文x,以两重以两重DES加密将有加密将有264个可能的密文。个可能的密文。n可可能能的的密密钥钥数数为为2112个个。所所以以,在在给给定定明明文文下下,将将有有2112/264=248个密钥能产生给定的密文。个密钥能产生给定的密文。n用用另另一一对对64bits明明文文密密文文对对进进行行检检验验,就就使使虚虚报报率率降降为为248-64=2-16。n这这一一攻攻击击法法所所需需的的存存储储量量为为2568 Byte,最最大大试试验验的的加加密密次数次数2256=257。这说明破译双重。这说明破译双重DES的难度为的难度为257量级。量级。2024/7/766中途相遇攻击对于给定明文x,以两重DES加密将有264个可能三重三重DES加密加密加密:加密:y=Ek1Dk2Ek1 x解密:解密:x=Dk1Ek2Dk1yn称称其其为为加加密密-解解密密-加加密密方方案案,简简记记为为EDE(encrypt-decrypt-encrypt)。n此此方方案案已已在在ANSI X9.17和和ISO 8732标标准准中中采采用用,并并在在保密增强邮递保密增强邮递(PEM)系统中得到利用。系统中得到利用。n破破译译它它的的穷穷举举密密钥钥搜搜索索量量为为2112 51035量量级级,而而用用差差分分分析破译也要超过分析破译也要超过1052量级。此方案仍有足够的安全性。量级。此方案仍有足够的安全性。2024/7/767三重DES加密加密:y=Ek1Dk2Ek1 x2四、AES2024/7/768四、AES2023/8/1368 AES提出提出n1997年年1月月,美美国国NIST向向全全世世界界密密码码学学界界发发出出征征集集21世世纪纪高高级级加加密密标标准准(AESAdvanced Encryption Standard)算算法法的的公公告告,并并成成立立了了AES标标准准工工作作研研究究室室,1997年年4月月15日日的的例例会会制制定定了了对对AES的的评评估标准。估标准。n 2024/7/769 AES提出1997年1月,美国NIST向全世AES的要求(1)AES是公开的;是公开的;(2)AES为单钥体制分组密码;为单钥体制分组密码;(3)AES的密钥长度可变,可按需要增大;的密钥长度可变,可按需要增大;(4)AES适于用软件和硬件实现;适于用软件和硬件实现;(5)AES可可以以自自由由地地使使用用,或或按按符符合合美美国国国国家家标准(标准(ANST)策略的条件使用;策略的条件使用;2024/7/770AES的要求(1)AES是公开的;2023/8/1370算法衡量条件n满足以上要求的满足以上要求的AES算法,需按下述条算法,需按下述条件判断优劣件判断优劣na.安全性安全性nb.计算计算效率效率nc.内内存要求存要求nd.使用使用简便性简便性ne.灵活性。灵活性。2024/7/771算法衡量条件满足以上要求的AES算法,需按下述条件判断优劣2AES的评审的评审n 1998年年4月月15日日全全面面征征集集AES算算法法的的工工作作结结束束。1998年年8月月20日日举举行行了了首首届届AES讨讨论论会会,对对涉涉及及14个个国国家家的的密密码码学学家家所所提提出出的的候候选选AES算算法法进进行行了了评评估估和和测测试试,初初选选并并公公布布了了15个被选方案,供大家公开讨论。个被选方案,供大家公开讨论。CAST-256,RC-6,CRYPTON-128,DEAL-128,FROG,DFC,LOKI-97,MAGENTA,MARS,HPC,RIJNDAEL,SAFER+,SERPENT,E-2,TWOFISH。n这这些些算算法法设设计计思思想想新新颖颖,技技术术水水平平先先进进,算算法法的的强强度度都都超过超过3-DES,实现速度快于实现速度快于3-DES。2024/7/772AES的评审 1998年4月15日全面征集AES算法的工作结AES的评审的评审n1999年年8月月9日日NIST宣布第二轮筛选出的宣布第二轮筛选出的5个个候选算法为:候选算法为:MARS(C.Burwick等等,IBM),RC6TM(R.Rivest等等,RSA Lab.),RIJNDEAL(J.Daemen,比比),SERPENT(R.Anderson等,等,英、以、挪威英、以、挪威),TWOFISH(B.Schiener)。n2000年年10月月2日,日,NIST宣布宣布Rijndael作为新的作为新的AES2024/7/773AES的评审1999年8月9日NIST宣布第二轮筛选出的5个AES算法设计思想n抵抗所有已知的攻击;n在多个平台上速度快,编码紧凑;n设计简单。nRijndael没有采用Feistel结构,轮函数由3个不同的可逆均匀变换构成的,称为3个层n均匀变换是指状态的每个bit都用类似的方法处理2024/7/774AES算法设计思想抵抗所有已知的攻击;2023/8/1374轮函数的3层n线性混合层线性混合层n确保多轮之上的高度扩散;确保多轮之上的高度扩散;n非线性层非线性层n将具有最优的将具有最优的“最坏情况非线性特性最坏情况非线性特性”的的S盒并行使用;盒并行使用;n密钥加层密钥加层n单轮子密钥简单的异或到中间状态上,实现单轮子密钥简单的异或到中间状态上,实现一次性掩盖。一次性掩盖。2024/7/775轮函数的3层线性混合层2023/8/1375算法说明算法说明n分组和密钥长度可变,各自可独立指定为分组和密钥长度可变,各自可独立指定为128、192、256比特。比特。n状态状态n算法中间的结果也需要分组,称之为状态,状态可算法中间的结果也需要分组,称之为状态,状态可以用以字节为元素的矩阵阵列表示,该阵列有以用以字节为元素的矩阵阵列表示,该阵列有4行,行,列数列数Nb为分组长度除为分组长度除32n种子密钥种子密钥n以字节为元素的矩阵阵列描述,阵列为以字节为元素的矩阵阵列描述,阵列为4行,列数行,列数Nk为密钥长度除为密钥长度除322024/7/776算法说明分组和密钥长度可变,各自可独立指定为128、192、算法说明算法说明n算法的输入、输出和种子密钥可看成字算法的输入、输出和种子密钥可看成字节组成的一维数组。节组成的一维数组。n下标范围下标范围n输入输出:输入输出:04Nb-1,n种子密钥:种子密钥:04Nk-12024/7/777算法说明算法的输入、输出和种子密钥可看成字节组成的一维数组。Nb=6和Nk=4的状态密钥阵列按此顺序放入和读出按此顺序放入和读出按此顺序放入按此顺序放入2024/7/778Nb=6和Nk=4的状态密钥阵列按此顺序放入和读出按此顺序放分组和阵列中元素对应关系分组和阵列中元素对应关系n分组下标分组下标nn阵列位置阵列位置(i,j)ni=n mod 4,j=n/4;n=i+4jn轮数轮数Nr与与Nb和和Nk对应关系对应关系Nb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=81414142024/7/779分组和阵列中元素对应关系分组下标nNb=4Nb=6Nb=8N轮函数轮函数n字节代换字节代换n行移位行移位n列混合列混合n密钥加密钥加2024/7/780轮函数字节代换2023/8/1380字节代换字节代换n非线性代换,独立地对状态的每个字节非线性代换,独立地对状态的每个字节进行,并且代换表进行,并且代换表(S盒盒)可逆,记为可逆,记为ByteSub(State),分两步分两步(1)将字节作为将字节作为GF(28)上的元素映射到自上的元素映射到自己的逆元己的逆元(2)将字节做如下的将字节做如下的GF(2)上变换上变换2024/7/781字节代换非线性代换,独立地对状态的每个字节进行,并且代换表(字节代换字节代换2024/7/782字节代换2023/8/1382行移位行移位n将状态阵列的各行进行循环移位,不同行的移位量不同n0行:不动n1行:循环左移C1字节n2行:循环左移C2字节n3行:循环左移C3字节n记为:ShiftRow(State)2024/7/783行移位将状态阵列的各行进行循环移位,不同行的移位量不同202行移位行移位n移位量与分组长度的关系移位量与分组长度的关系NbC1C2C34123612381342024/7/784行移位移位量与分组长度的关系NbC1C2C341236123列混合列混合n将每列视为将每列视为GF(28)上多项式,与固定的上多项式,与固定的多项式多项式c(x)进行模进行模x4+1乘法乘法,要求要求c(x)模模x4+1可逆。可逆。n表示为表示为MixColumn(State)2024/7/785列混合将每列视为GF(28)上多项式,与固定的多项式c(x)密钥加密钥加n轮密钥与状态进行逐比特异或。轮密钥与状态进行逐比特异或。n轮密钥由种子密钥通过密钥编排算法得轮密钥由种子密钥通过密钥编排算法得到到n轮密钥长度与分组密钥长度相同轮密钥长度与分组密钥长度相同n表示为表示为AddRoundKey(State,RoundKey)2024/7/786密钥加轮密钥与状态进行逐比特异或。2023/8/1386轮函数的伪轮函数的伪C代码代码Round(State,RoundKey)ByteSub(State);ShiftRow(State);MixColumn(State);AddRoundKey(State,Roundkey);2024/7/787轮函数的伪C代码Round(State,RoundKey)2结尾轮的轮函数结尾轮的轮函数Round(State,RoundKey)ByteSub(State);ShiftRow(State);AddRoundKey(State,Roundkey);2024/7/788结尾轮的轮函数Round(State,RoundKey)20
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!