版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章对称秘钥密码体系
2.1密码体系的原理和基本概念2.2数据加密标准(DES)2.3IDEA2.4AES2.5序列密码
NetworkandInformationSecurity2.1密码体系的原理
NetworkandInformationSecurity加密解密公式明文用M(消息)或P(明文)表示,密文用C表示。加密函数E作用于M得到密文C,用数学式子表示为:E(M)=C相反地,解密函数D作用于C产生MD(C)=M先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:D(E(M))=MNetworkandInformationSecurity2.1.2安全密码准则所有算法的安全性都基于密钥的安全性,而不是基于算法细节的安全性。
只有公开的算法才是安全的。
NetworkandInformationSecurity
2.1.3对称密钥密码和非对称密钥密码基于密钥的算法通常有两类:对称算法和非对称算法。对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中容易地推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。对称算法可分为两类。一次只对明文中的单个比特(有时对字节)运算的算法称为序列密码或流密码算法。另一类算法是对明文的一组比特进行运算,这些比特组称为分组,相应的算法称为分组算法。NetworkandInformationSecurity
图2-4分组密码的工作原理NetworkandInformationSecurity非对称算法是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的有限时间内)。非对称算法也叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。NetworkandInformationSecurity2.1.4密码分析根据被破译的难易程度,不同的密码算法具有不同的安全等级如果破译算法的代价大于加密数据的价值,那么可能是安全的。如果破译算法所需的时间比加密数据保密的时间更长,那么可能是安全的。如果用单密钥加密的数据量比破译算法需要的数据量少得多,那么可能是安全的。NetworkandInformationSecurity复杂性几乎所有密码系统在唯密文攻击中都是可破的,只要简单地一个接一个地去试每种可能的密钥,并且检查所得明文是否有意义。这种方法叫做蛮力攻击。密码学更关心在计算上不可破译的密码系统。如果一个算法用(现在或将来)可得到的资源在可接受的时间内都不能破译,这个算法则被认为在计算上是安全的。NetworkandInformationSecurity可以用不同方式衡量攻击方法的复杂性:(1)数据复杂性:用作攻击输入所需要的数据量。(2)时间复杂性:完成攻击所需要的时间。(3)存储复杂性:进行攻击所需要的存储量。NetworkandInformationSecurity2.2数据加密标准(DES)
2.2.1DES算法
DES加密算法如图2-3所示,由以下四个部分组成。NetworkandInformationSecurity1.初始置换函数IPDES对64位明文分组进行操作。首先,64位明文分组x经过一个初始置换函数IP,产生64位的输出x0,再将分组x0分成左半部分L0和右半部分R0,即:
x0=IP(x)=L0R0置换表如表2-1所示。此表顺序为从上到下,从左至右。如初始置换把明文的第58位换至第1位,把第50位换至第二位,以此类推。NetworkandInformationSecurity表2-1初始置换IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157NetworkandInformationSecurity图2-5DES加密算法NetworkandInformationSecurity2.获取子密钥KiDES加密算法的密钥长度为56位,但一般表示为64位,其中,每个第8位用于奇偶校验。在DES加密算法中,将用户提供的64位初始密钥经过一系列的处理得到K1,K2,…,K16,分别作为1~16轮运算的16个子密钥。现在来看如何获得这16个子密钥。首先,将64位密钥去掉8个校验位,用密钥置换PC–1置换剩下的56位密钥;再将56位分成前28位C0和后28位D0两部分,即PC–1(K56)=C0D0。密钥置换PC-1如表2-2所示。NetworkandInformationSecurity表2-2密钥置换PC–157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124NetworkandInformationSecurity接下来,根据轮数,这两部分分别循环左移1位或2位。具体每轮移位的位数如表2-3所示。表2-3每轮移动的位数轮次12345678910111213141516位数1122222212222221NetworkandInformationSecurity移动后,将两部分合并成56位后通过压缩置换PC–2后得到48位子密钥,即Ki=PC-2(CiDi)。压缩置换如表2-4所示。表2-4压缩置换PC–214171124153281562110231912426816727201324152313747553040514533484449395634534642503629329,18?NetworkandInformationSecurity图2-6子密钥产生NetworkandInformationSecurity3.密码函数F1)函数F的操作步骤密码函数F的输入是32比特数据和48比特的子密钥,其操作步骤如图2-5所示。(1)扩展置换(E)。将数据的右半部分Ri从32位扩展为48位。位选择函数(也称E盒)如表2-5所示。NetworkandInformationSecurity图2-7F(Ri,Ki)计算NetworkandInformationSecurity表2-5扩展置换(E)32123
4
54
5678
989101112131213141516171617
1819202120212223242524252627282928293031321NetworkandInformationSecurity(2)异或。扩展后的48位输出E(Ri)与压缩后的48位密钥Ki作异或运算。(3)S盒替代。将异或得到的48位结果分成八个6位的块,每一块通过对应的一个S盒产生一个4位的输出。八个S盒如表2-6所示。NetworkandInformationSecurityS盒的具体置换过程为:某个Si盒的6位输入的第1位和第6位形成一个2位的二进制数(从0~3),对应表中的某一行;同时,输入的中间4位构成4位二进制数(从0~15)对应表中的某一列(注意:行和列均从0开始计数)。例如,第8个S盒的输入为001011,前后2位形成的二进制数为01,对应第8个S盒的第1行;中间4位为0101,对应同一S盒的第5列。从表2-6中可得S8盒的第1行第5列的数为3,于是就用0011代替原输入001011。
NetworkandInformationSecurity表2-6S盒S1盒1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S2盒1518146113497213120510313471528141201106911501471110413158126932151381013154211671205149NetworkandInformationSecurityS3盒1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S4盒7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S5盒2124171011685315130149141121247131501510398642111101378159125630141181271142136150910453NetworkandInformationSecurityS6盒1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S7盒4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S8盒1328461511110931450127115138103741256110149271141912142061013153582114741081315129035611NetworkandInformationSecurity(4)P盒置换。将八个S盒的输出连在一起生成一个32位的输出,输出结果再通过置换P产生一个32位的输出即:F(Ri,Ki)。表2-7为P盒置换。至此,密码函数F的操作就完成了。最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始下一轮计算。NetworkandInformationSecurity表2-7P盒置换1672021291228171152326518311028241432273919133062211425NetworkandInformationSecurity2)函数F的设计
函数F是DES加密的核心,它依赖于S盒的设计。这也适用于其它的对称分组加密算法。下面我们简单讨论一下有关F函数的一些通用设计准则以及S盒设计问题。
(1)F的设计准则。函数F的基本功能就是“扰乱(confusion)”输入,因此,对于F来说,其非线性越高越好,也就是说,要恢复F所做的“扰乱”操作越难越好。NetworkandInformationSecurity
其它的设计准则还包括严格雪崩准则(SAC)和比特独立准则(BIC)
。所谓SAC,就是要求算法具有良好的雪崩效应,输入当中的一个比特发生变化都应当使输出产生”尽可能多”
的比特变化。严格地说,就是当任何单个输入比特位i发生变换时,一个S盒的第j比特输出位发生变换的概率应为1/2,且对任意的i,j都应成立。BIC的意思是当单个输入比特位i发生变化时,输出比特位j,k的变化应当互相独立,且对任意的i,j,k均应成立。SAC和BIC可以有效的增强F函数的“扰乱”功能。
NetworkandInformationSecurity
(2)S盒设计。S盒的设计在对称分组密码研究领域中起着举足轻重的作用。本质上,S盒的作用就是对输入向量进行处理,使得输出看起来更具随机性,输入和输出之间应当是非线性的,很难用线性函数来逼近。显然,S盒的尺寸是一个很重要的特性。一个S盒其输入为n比特,输出为m比特。DES的S盒大小为6×4。S盒越大,就越容易抵制差分和线性密码分析。NetworkandInformationSecurityMister和Adams提出了很多的S盒设计原则,其中包括要求S盒满足SAC和BIC的原则,以及S盒的所有列的全部线性组合应当满足一类称为bent函数的高度非线性布尔函数的原则。Bent函数具有很多有趣的特性,其中,高度非线性和最高阶的严格雪崩准则对于S盒的设计尤为重要。NetworkandInformationSecurity
Nyberg提出了以下几种S盒的设计和实践原则:●随机性:采用某些伪随机数发生器或随机数表格来产生S盒的各个项。●随机测试:随机选择S盒各个项,然后按照不同准则测试其结果。●数学构造:根据某些数学原理来产生S盒。其好处就是可以根据数学上的严格证明来抵御差分和线性密码分析,并且可以获得很好的扩散(Diffusion)特性。NetworkandInformationSecurity
4.末置换函数IP-1
末置换是初始置换的逆变换。对L0和R0进行16轮相同的运算后,将得到的两部分数据合在一起,经过一个末置换函数就可得到64位的密文c,即:c=IP-1(R16L16)(16指的是16轮)
表2-8列出了该变换。
NetworkandInformationSecurity表2-8末置换IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725NetworkandInformationSecurity5.总结根据上面所述,可以将DES算法归结如下:子密钥生成:C[0]D[0]=PC–1(K)for1<=i<=16{C[i]=LS[i](C[i−1])D[i]=LS[i](D[i−1])K[i]=PC–2(C[i]D[i])}NetworkandInformationSecurity加密过程:L[0]R[0]=IP(x)for1<=i<=16{L[i]=R[i−1]R[i]=L[i−1]XORf (R[i−1],K[i])}c=IP−1(R[16]L[16])vNetworkandInformationSecurity解密过程:R[16]L[16]=IP(c)for1<=i<=16{R[i−1]=L[i]L[i−1]=R[i]XORf (L[i],K[i])}x=IP−1(L[0]R[0])NetworkandInformationSecurity
2.2.2三重DES
三重DES是DES的一种变形的实现方式,如图2-10所示。从图中我们可以得到其加/解密运算为:
加密:c=EK3(DK2(EK1(m)))
解密:?m=DK1(EK2(DK3(c)))其中,K1、K2、K3为56位DES密钥。为了获得更高的安全性,三个密钥应该选择为互不相同。但在某些情况下,如与原来的DES保持兼容,则可以选择K1=K3。?注:所谓兼容就是原来的加密和解密不变化(可以继续使用)NetworkandInformationSecurity图2-12三重DESNetworkandInformationSecurity2.3IDEA
IDEA即国际数据加密算法,它的原型是PES(ProposedEncryptionStandard)。对PES改进后的新算法称为IPES,并于1992年改名为IDEA(InternationalDataEncryptionAlgorithm)。NetworkandInformationSecurityIDEA是一个分组长度为64位的分组密码算法,密钥长度为128位,同一个算法即可用于加密,也可用于解密。IDEA的加密过程包括两部分:(1)输入的64位明文组分成四个16位子分组:X1、X2、X3和X4。四个子分组作为算法第一轮的输入,总共进行八轮的迭代运算,产生64位的密文输出。(2)输入的128位会话密钥产生八轮迭代所需的52个子密钥(八轮运算中每轮需要六个,还有四个用于输出变换)。NetworkandInformationSecurity子密钥产生:输入的128位密钥分成八个16位子密钥(作为第一轮运算的六个和第二轮运算的前两个密钥);将128位密钥循环左移25位后再得八个子密钥(前面四个用于第二轮,后面四个用于第三轮)。这一过程一直重复,直至产生所有密钥。IDEA的解密过程和加密过程相同,只是对子密钥的要求不同。表2-8给出了加密子密钥和相应的解密子密钥。NetworkandInformationSecurity2.4高级加密标准(AES)
2.4.1高级加密标准产生背景1997年4月15日,美国国家标准与技术研究所(NIST)发起征集AES(AdvancedEncryptionStandard)的活动。对AES的基本要求是:比三重DES快,至少与三重DES一样安全,数据分组长度为128比特,密钥长度为128/192/256比特。1998年8月12日,在首届AES会议上公布了AES的15个候选算法,任由全世界各机构和个人攻击和评论。1999年3月,在第二届AES会议上从15个候选算法中选出5个。2000年4月13号和14号,召开第三届AES会议。2000年10月2日,NIST宣布Rijndael作为新的AES,Rijndael终于脱颖而出。介绍其中的3个。NetworkandInformationSecurity2.4.2Rijndael算法Rijndael(荣代尔)算法是比利时的JoanDaemen和VincentRijmen设计的,该算法的原形是Square算法。它的设计策略是宽轨迹策略。宽轨迹策略是针对差分分析和线性分析提出的一种新的策略,其最大优点是可以给出算法的最佳差分特性的概率及最佳线性逼近的偏差的界。由上述条件可以分析算法抵抗差分密码分析和线性密码分析的能力。Rijndael采用的是代替/置换算法。每一轮由以下3层组成。线性混合层:确保多轮之上的高度扩散。非线性层:由16个S盒并置而成,起到混淆的作用。密钥加层:子密钥简单地异或到中间状态上。NetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurity(4)轮密钥加(AddRoundKey)轮密钥加(AddRoundKey,ARK):在轮密钥加变换中,每一轮的轮密钥按位与状态进行异或运算.轮密钥通过密钥按照密钥方案来生成,下面将具体描述密钥方案。NetworkandInformationSecurity2.5序列密码2.5.1序列密码原理序列密码加密时将明文划分成字符(如单个字母)或其编码的基本单元(如0、1),然后将其与密钥流进行运算(通常为异或),解密时以同步产生的相同密钥流实现解密。序列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务谈判合同(2篇)
- 森林公园:绿色未来
- 2024-2024学年第一学期德育工作总结
- 上市公司某事业部组织建设方案
- 2023年江苏南京鼓楼医院人力资源服务中心招聘考试真题
- 2023年昆明市盘龙区明通小学教育集团教师招聘笔试真题
- 现代幼儿园内部监测评估制度
- 消防维保公司消防维保服务管理制度
- 工艺管道安装方案
- NSC-42196-Standard-生命科学试剂-MCE
- 输尿管软镜的手术操作
- 《乌鲁木齐市国土空间总体规划(2021-2035年)》
- 教师进企业实践日志
- 2024版新房屋装修贷款合同范本
- 15MW源网荷储一体化项目可行性研究报告写作模板-备案审批
- 少先队辅导员笔试题库附有答案
- 婴儿培养箱校准规范
- 《补贴与反补贴措施协议》对出口信贷的法律规制研究2
- 铁道运输实训总结报告
- MOOC 光纤光学-华中科技大学 中国大学慕课答案
- 中国医药流通行业情况分析
评论
0/150
提交评论