第讲数据加密算法优秀文档_第1页
第讲数据加密算法优秀文档_第2页
第讲数据加密算法优秀文档_第3页
第讲数据加密算法优秀文档_第4页
第讲数据加密算法优秀文档_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

《数据通信与计算机网络(第二版)》电子教案 笫卄八讲 数据加密算法本讲内容第十章网络管理与信息安全

10.3数据加密算法

10.3.2对称密钥算法

10.3.3公开密钥算法

10.3.2对称密钥算法基本原理举例说明假设Alice和Bob使用对称密钥进行通信,则:Alice和Bob同意使用同一个密码系统;Alice和Bob同意使用同一个密钥;Alice取她的明文,用加密算法和密钥加密明文信息,产生一个密文信息;Alice发密文给Bob;Bob用相同的算法和密钥解密密文信息然后阅读。10.3.2对称密钥算法(续)在Alice和Bob之间有一个窃听者Eve,他只窃听到步骤(4)的传输,则他必须试图对密文进行密码分析。但是,如果Eve知道步骤(1)和(2),他就成功了。用对称算法,Alice和Bob可以公开完成步骤(1),但必须秘密地完成步骤(2)。协议前后及执行当中,密钥必须保待安全;否则,信息将不安全。10.3.2对称密钥算法(续)DES算法DES基本构架10.3.2对称密钥算法(续)基本概念:DES使用相同的算法来对数据进行加密和解密,所使用的加密密钥和解密密钥是相同的,算法的输入有64位的明文,使用56位的密钥,输出是64位的密文,它使用16轮的混合操作,目标是彻底地打乱明文的信息,使得密文的每一位都依赖于明文的每一位和密钥的每一位。算法的组成:10.3.2对称密钥算法(续)共有19个阶段;第一个阶段是一个与密钥无关的变换;最后一个阶段是第一个阶段的反向变换;最后第二个阶段是对左右32位进行交换的简单变换;其它16个阶段在功能上是相同的,但是它们的参数是密钥的不同的函数。中间阶段过程如下图所示:10.3.2对称密钥算法(续)DES中间变换过程DES加密标准L0R0L1=R0IPL2=R1L15=R14R1=L0f(R0,K1)R2=L1f(R1,K2)R15=L14f(R14,K15)L16=R15R16=L15f(R15,K16)IP1fff输出密文Y(64bit)明文X(64bit)输入K16(48bit)K2(48bit)K1(48bit)X0的左半边

(32bit)X0(64bit)X0的右半边(32bit)R16L16(64bit)10.3.2对称密钥算法(续)每一轮的关键是f函数,以及这一阶段的子密钥Ki,用来产生右边的32位的输出,这个函数有四个步骤:把Ri-1按预先规定的规则扩展成48位的Ei

321234545678989101112131213141516171617181920212021222324252425262728292829303132110.3.2对称密钥算法(续)进行Ei

Ki操作(异或)把上一步的结果分为6位的小组,共8组,记为B1到B8,每一组通过各自的S-Box形成4位的输出。具体做法如下(参见书上表格):把Bj的前一位和最后一位组合的数值记为m,把Bj的第2位到第5位组成的数值记为n,这个(n,m)数对用来选择S-Box的行和列,产生一个新的4位输出。S-Box与Bj相对应,共有8个。10.3.2对称密钥算法(续)上述8组4位输出(共32位)通过一个变换,产生32位的输出,如下所示:167202129122817115232651831102824143227391913306221142510.3.2对称密钥算法(续)

Ki的计算方法如下:

把带奇偶校验位的64位密钥舍弃其中的奇偶校验位,根据下表进行变位得到56位的密钥,在变位时,奇偶校验位已被舍弃。即56位密钥的第1位是原64位密钥的第57位,第2位是原64位密钥的第49位等等,直到第56位为原64位密钥的第4位。5749413325179158504234261810259514335271911360524436635547393123157625446383022146615345372921135282012410.3.2对称密钥算法(续)把56位的密钥分成两个部分,前面的28位称为C0,后面的28位称为D0,

和是对和按如下左移产生:再把按如下变换产生:轮数(i)12345678910111213141516左移位数1122222212222221具体做法如下(参见书上表格):这表明:私有密钥和公开密钥具有互换性,即公开密钥与私有密钥只是概念的不同,其实质是没有区别的。明文X(64bit)作为解密指数。解密密钥是接收者专用的秘密密钥,对其他人都保密。Alice和Bob同意使用同一个密钥;再把按如下变换产生:算法中的反向变换方法如下:R16L16(64bit)EPK(DSK(X))X3公开密钥算法(续)用公开密钥加密时,先计算K2(48bit)K1(48bit)在Alice和Bob之间有一个窃听者Eve,他只窃听到步骤(4)的传输,则他必须试图对密文进行密码分析。数据加密中,有一个比较重要的问题需要解决,即如何把密钥送到对方,由对方来进行解密。用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的d则保密。10.3.2对称密钥算法(续)1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932同样是指的第1位是

的第14位,

的第2位是

的第17位等等,直到

的第48位为

的第32位。10.3.2对称密钥算法(续)整个算法的初始变换方法如下:算法中的反向变换方法如下:

58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157DES

的保密性DES

的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译DES方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。DES是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。目前较为严重的问题是DES的密钥的长度。现在已经设计出来搜索DES密钥的专用芯片。

三重DES

(TripleDES)三重DES使用两个密钥,执行三次DES算法。下图中的方框E和D分别表示执行加密和解密算法。因此加密时是E-D-E,解密时是D-E-D。EDEK1K2K1明文密文DEDK1K2K1密文明文加密解密10.3.2对称密钥算法(续)在加密或解密过程中,如果需要加密的明文信息超过64位,这时,可以采用四种方式:电码薄方式(ECB:ElectronicCodeBook);密码块链方式(CBC:CipherBlockChaining);密码反馈方式(CFB:CipherFeedBack);输出反馈方式(OFB:OutputFeedBack)10.3.2对称密钥算法(续)Rijndael算法步骤:在初始块和密钥之间进行逐位异或,加密第1轮的输入,结果称为状态(state)。接着进行10轮类似的运算,每一轮都用特定的矩阵操作来改变它的输入,从而产生输出状态(本质上是另一个矩阵),并以此作为下一轮活动的输入如果块或密钥大小更大,需要更多轮次,但是基本的步骤还是一样的。10.3.3公开密钥算法公开密钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。现有三种公开密钥密码体制,其中最著名的是RSA体制,它基于数论中大数分解问题的体制,由美国三位科学家Rivest,Shamir和Adleman于1976年提出并在1978年正式发表的加密密钥与解密密钥在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。应当注意任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。由于目前公开密钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。公开密钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更为简单。公开密钥算法的特点(1)发送者用加密密钥PK对明文X加密后,在接收者用解密密钥SK解密,即可恢复出明文,或写为:

DSK(EPK(X))X(9-5)解密密钥是接收者专用的秘密密钥,对其他人都保密。此外,加密和解密的运算可以对调,即

EPK(DSK(X))X公开密钥算法的特点(2)加密密钥是公开的,但不能用它来解密,即

DPK(EPK(X))X(9-6)(3)在计算机上可容易地产生成对的PK和SK。(4)从已知的PK实际上不可能推导出SK,即从PK到SK是“计算上不可能的”。(5)加密和解密算法都是公开的。公开密钥密码体制接收者发送者E加密算法D解密算法加密密钥PK解密密钥SK明文X密文Y=EPK(X)密钥对产生源明文X=DSK(EPK(X))9.3.2RSA公开密钥密码体制RSA公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。每个用户有两个密钥:加密密钥PK{e,n}和解密密钥SK{d,n}。用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的d则保密。N为两个大素数p和q之积(素数p和q一般为100位以上的十进数),e和d满足一定的关系。当敌手已知e和n时并不能求出d。(1)加密算法若用整数X表示明文,用整数Y表示密文(X和Y均小于n),则加密和解密运算为:加密:YXemodn(9-7)

解密:XYdmodn(9-8)(2)密钥的产生①计算n。用户秘密地选择两个大素数p和q,计算出n

pq。n称为RSA算法的模数。明文必须能够用小于n的数来表示。实际上n是几百比特长的数。②计算(n)。用户再计算出n的欧拉函数(n)(p

1)(q

1)(9-9)(n)定义为不超过n并与n互素的数的个数。③选择e。用户从[0,(n)1]中选择一个与(n)互素的数e作为公开的加密指数。在加密或解密过程中,如果需要加密的明文信息超过64位,这时,可以采用四种方式:Ki的计算方法如下:这表明:私有密钥和公开密钥具有互换性,即公开密钥与私有密钥只是概念的不同,其实质是没有区别的。这表明:私有密钥和公开密钥具有互换性,即公开密钥与私有密钥只是概念的不同,其实质是没有区别的。接着进行10轮类似的运算,每一轮都用特定的矩阵操作来改变它的输入,从而产生输出状态(本质上是另一个矩阵),并以此作为下一轮活动的输入数据加密算法RSA公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。因此加密时是E-D-E,解密时是D-E-D。假设明文为P,加密算法(包括密钥)为E,解密算法(包括密钥)为D,要求满足以下三个条件:的第17位等等,直到的第48位为的第32位。(2)加密密钥是公开的,但不能用它来解密,即⑤得出所需要的公开密钥和秘密密钥:R16L16(64bit)(2)密钥的产生(续)④计算d。用户计算出满足下式的d

edmod(n)=1(9-10)

作为解密指数。⑤得出所需要的公开密钥和秘密密钥:公开密钥(即加密密钥)PK{e,n}

秘密密钥(即解密密钥)SK{d,n}(3)正确性的例子说明设选择了两个素数,p

7,q

17。计算出n

pq

717119。计算出(n)(p

1)(q

1)96。从[0,95]中选择一个与96互素的数e。选e

5。然后根据(9-10)式,

5dmod96=1解出d。不难得出,d

77,因为ed

57738549611mod96。于是,公开密钥PK(e,n){5,119},

秘密密钥SK{77,119}。(3)正确性的例子说明(续)对明文进行加密。先把明文划分为分组,使每个明文分组的二进制值不超过n,即不超过119。设明文X19。用公开密钥加密时,先计算

Xe

195

2476099。再除以119,得出商为20807,余数为66。这就是对应于明文19的密文Y的值。在用秘密密钥SK{77,119}进行解密时,先计算

Yd

6677

1.27...10140。再除以119,得出商为1.06...10138,余数为19。此余数即解密后应得出的明文X。RSA算法举例明文

1919==20807公开密钥={5,119}加密52476099119及余数

66密文

6610秘密密钥={77,119}解密771.27...10119及余数

19

明文

1914013810.3.3公开密钥算法问题的提出数据加密中,有一个比较重要的问题需要解决,即如何把密钥送到对方,由对方来进行解密。不管一个加密方法如何强壮,一旦解密密钥被入侵者获得,那么加密也就没有意义。公开密钥算法

体制思想: 要求密钥成对出现,一个为加密密钥(Ke),另一个为解密密钥(Kd),加密密钥和解密密钥不同,且不可能从其中一个推导出另一个。P=D(d,E(e,P))(1)对P加密就是计算C=Pemodn2)若取d=27,则最小的e是多少?第十章网络管理与信息安全具体做法如下(参见书上表格):每一轮的关键是f函数,以及这一阶段的子密钥Ki,用来产生右边的32位的输出,这个函数有四个步骤:且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。把上一步的结果分为6位的小组,共8组,记为B1到B8,每一组通过各自的S-Box形成4位的输出。3公开密钥算法(续)密码反馈方式(CFB:CipherFeedBack);算法中的反向变换方法如下:然后根据(9-10)式,(3)正确性的例子说明这表明:私有密钥和公开密钥具有互换性,即公开密钥与私有密钥只是概念的不同,其实质是没有区别的。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。第一个阶段是一个与密钥无关的变换;10.3.3公开密钥算法(续)假设明文为P,加密算法(包括密钥)为E,解密算法(包括密钥)为D,要求满足以下三个条件:D(E(P))=P;从E推导D是极其困难的;E不能通过部分明文来解破。优点: 不需要经安全渠道传递密钥,大大简化了密钥管理。10.3.3公开密钥算法(续)RSA算法理论基础即将两个大的质数合成一个大数很容易,而相反的过程则非常困难。在当今技术条件下,当n足够大时,欲从n中通过质因子分解试图找到与d对应的p、q是极其困难甚至是不可能的。例如:分解一个200位的整数需要40亿年的计算机时间,而分解一个500位的整数需要1025年的计算机时间10.3.3公开密钥算法(续)步骤:选择两个大整数p和q,一般要求大于10100;计算n=pq和z=(p-1)(q-1);选择一个与z互素的整数,记为d;计算满足下列条件的e,(ed)modz=1加密:把待加密的明文分割成一定大小的块P,这个P可以看成是一个整数,要求0Pn,我们可以把P的长度设为k,则要求2k<n。对P加密就是计算C=Pemodn10.3.3公开密钥算法(续)解密: 解密计算P=Cdmodn

注意: 为了加密,我们需要e和n,为了解密,我们需要d和n,这样,加密密钥(即公开密钥)为(e,n),解密密钥(即秘密密钥)为(d,n)。举例说明假设p=3,q=11;=>n=33,z=2010.3.3公开密钥算法(续)选择与20互素的d=7;对于e,要求7emod20=1,可以选择e=3。加密过程为C=P3mod33,解密为P=C7mod33。

温馨提示

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

评论

0/150

提交评论