第7章数据加密技术ppt课件.ppt

上传人:牧羊曲112 文档编号:2105303 上传时间:2023-01-11 格式:PPT 页数:112 大小:2.94MB
返回 下载 相关 举报
第7章数据加密技术ppt课件.ppt_第1页
第1页 / 共112页
第7章数据加密技术ppt课件.ppt_第2页
第2页 / 共112页
第7章数据加密技术ppt课件.ppt_第3页
第3页 / 共112页
第7章数据加密技术ppt课件.ppt_第4页
第4页 / 共112页
第7章数据加密技术ppt课件.ppt_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《第7章数据加密技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《第7章数据加密技术ppt课件.ppt(112页珍藏版)》请在三一办公上搜索。

1、网络安全与管理,第7章 数据加密技术,知识目标掌握数据加密的有关概念、数据加密的模型了解传统的加密技术掌握现代加密技术的原理及其分类掌握非对称加密算法的基本原理掌握报文鉴别的概念技能目标掌握DES算法的基本思想及其加密、解密过程和安全性掌握RSA算法的基本思想及其加密、解密过程了解报文摘要MD5和安全散列算法了解数据加密技术的应用,7.1 数据加密概述,7.1.1 密码学的有关概念,1.消息:消息(message,M)是用语言、文字、数字、符号、图像、声音或其组合等方式记载或传递的有意义的内容。如果消息被攻击者窃取,就能够读懂其中的含义,所以在密码学中,保护的对象就是消息。2.明文:未经过任何

2、伪装或技术处理的消息称为明文(plain text,P)。3.加密:利用某些方法或技术对明文进行伪装或隐藏的过程称为加密(encryption,E)。4.密文:被加密的消息称为密文(cipher text,C)。密文看起来是一堆杂乱无章、没任何意义的数据。,7.1.1 密码学的有关概念,5.解密:将密文恢复为原明文的过程或操作称为解密(decryption,)。解密也称为脱密,可以看成加密的逆过程。6.加密算法:加密算法(encryption algorithm)是将明文消息加密成密文所采用的一组规则或数学函数。7.解密算法:解密算法(decryption algorithm)是将密文消息解密

3、成明文所采用的一组规则或数学函数。8.密钥:密钥(key,K)是进行加密或解密操作所需要的秘密参数或关键信息。如果缺少密钥,就不能正确地进行加密或者解密。在加密算法中,密钥又分为加密密钥(加密时采用的密钥)和解密密钥(解密时采用的密钥)。,7.1.2 加密算法的模型,图7-1 加密算法的一般模型,加密和解密的描述公式,发送端对数据的处理可以用下式描述:接收端对数据的处理可以用下式描述:,密码学的内容,密码学包括两方面密切相关的内容:一方面是密码编码学,主要是研究各种加密方案,保护信息不被敌方或者任何无关的第三方侦悉;另一方面是密码分析学,研究攻破一个加密算法的途径,恢复被隐藏的信息的本来面目。

4、这两个部分相辅相成,互相促进,也是矛盾的两个方面。,7.1.3 传统的加密技术,在计算机出现之前,密码学由基于字符的密码算法构成(即针对字符进行操作)的。密码算法主要采用的是替代(substitution)和置换(transposition)这两种方法,好的密码算法是结合这两种方法,每次进行多次运算。现代的计算机密码算法要复杂得多,但基本原理没有变化,其重要的变化是算法只对位而不是字符进行变换。传统的加密技术有以下几种。,1.替代密码,替代密码是将明文中的每一个字符替换成密文中的另一个字符,接收者对密文进行逆替换就恢复出明文来。在传统的加密技术中有3种类型的替代密码:单表替代密码、多表替代密码

5、和多字母替代密码。,1)单表替代密码,所谓的单表替代密码,就是明文中的每一个字符用相应的密文字符代替。著名的“凯撒密码”就是一种单表替代密码,也称为循环移位密码。这是一种古老的加密方法,当年凯撒大帝行军打仗时用这种方法进行通信,因此得名。,凯撒密码加密的原理,凯撒密码加密的原理是把明文中的每一个字母都用该字母在字母表中右边的第个字母替代(这里k就是加密密钥),并认为Z后边又是A。例如,假如k为3,其替代表(在这里,为了不出现混淆,明文使用的是小写字母,密文使用的是大写字母,在实际使用中可不作这样要求)如下:,凯撒密码举例,例如,明文为:network security则密文为:QHWZRUN

6、VHFXULWB,如果将26个字母分别对应于整数025,可得凯撒密码变换为:加密:解密,一般的凯撒密码变换,加密:解密:,凯撒密码的缺点,显然,这种加密算法是不安全的,它非常容易被攻破。首先,简单的单表替代没有掩盖明文不同字母出现的频率;其次,移位替代的密钥空间有限,只有26个密钥,利用暴力攻击很容易破解,2)多表替代密码,大多数多表替代密码是周期替代密码,当周期为1时,就是单表替代密码。多表替代密码的种类很多,一种常用的多表替代密码叫Vigenere(维吉尼亚)密码。它是循环使用有限个字母实现替代的。在Vigenere密码中,把26个字母循环移位,排列在一起,形成一个2626的方阵表,如下表

7、所示。,Vigenere密码加密原理,实际使用时,往往把某个容易记忆的词或词组当做密钥。给一个信息加密时,只要把密钥反复写在明文下方,以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密文字母。例如,以HOW为密钥,明文为ILOVEYOUP=ILOVEYOUK=HOWHOWHO加密后的密文Ek(P)=PZKCSUVI解密时,以密钥字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母。,3)多字母替代密码,多字母替代密码是每次对多于一个的字母进行替代的加密方法。例如,将明文中的字符每3个分为一组,当出现AAA时用RTQ替代,当出现AAB时用SLL替代,等等。在进行解密时,再按

8、照这个对应关系进行逆替换就可以恢复出原来的明文。多字母替代密码的优点在于将字母的出现频率隐蔽或者均匀化,从而利于抗统计分析。多字母替代密码是在19世纪中期发明的,在第一次世界大战中,英国人就采用了这种对成组字母加密的密码。,2.置换密码,置换密码也称为换位密码,是根据一定的规则重新排列明文字母的顺序,使之成为密文。常用的置换密码有列置换密码和周期置换密码两种。,1)列置换密码,列置换密码是将明文分割成n列的分组形式(即每行n个字符),按照每一列从上向下产生密文。例如,将明文WHAT YOU CAN LEARN FROM THIS BOOK分割成为5列的分组(这里5就成为密钥k),最后不全的组可

9、以用不常使用的字符填满,如右所示:,按照每一列,从上向下,就可以得到密文:WOLFHOHUERIKACAOSXTARMBXYNN TOX,这里的密钥是数字5。,2)周期置换密码,周期置换密码是把明文中的字母按照给定的顺序排在一个矩阵中,然后用另一种顺序选出矩阵中的字母来产生明文。例如,将上例中的明文按行排在一个56的矩阵中。给定一个置换,密钥为24513,即按第二列,第四列,第五列,第一列,第三列的次序排列,可得到如右的矩阵:,然后按每一行,从左向右读出,即可得到密文:HTYWAUANOCERNLARMTFO IBOHSKXXOX。,7.1.4 现代加密技术,在传统的加密技术中,算法的安全性主

10、要是基于算法的保密性,一旦算法被泄露,很容易就被破解。这种算法称为受限制的算法。在现代密码学中,由于加密技术的普遍应用,不可能为每一个应用都开发一个成熟、有效的加密算法,因此算法的安全性就不能基于算法的保密性,而要基于密钥的保密性。也就是说,只要密钥不公开,即使算法公开并被分析,不知道密钥的人也无法理解加密过的消息。现代加密技术中,引入了计算机对信息进行加密和解密处理,因此,运算速度大大提高,要求的密钥长度也越来越长。,7.1.5 现代加密技术的分类,密码学发展至今,产生了很多密码算法。有的算法已在学术刊物中披露,而更多的却作为军事、商业及贸易等秘密被严加保密。因此,密码算法的分类也是多种多样

11、的。这里,重点介绍以下分类。,1.分组密码和序列密码,按照对明文的处理方式,密码算法可以分为分组密码和序列密码。,1)分组密码,分组密码的加密方式是首先将明文序列以固定长度进行分组,每一组明文用相同的密钥和加密函数进行运算。分组密码的优点是:明文信息良好的扩散性。对插入的敏感性。不需要密钥同步。较强的适用性,适宜作为加密标准。缺点是:加密速度慢,错误扩散和传播。,2)序列密码,序列密码的加密过程是把报文、语音、图像和数据等原始信息转换成明文数据序列,然后将它同密钥序列进行逐位模2加生成密文序列发送给接收者。接收者用相同的密钥序列进行逐位解密来恢复明文序列。序列密码的安全性主要依赖于密钥序列。序

12、列密码的优点是:处理速度快,实时性好。错误传播少。不存在串破译问题。适用于军事、外交等保密信道。缺点是:明文扩散性差。插入信息的敏感性差。需要密钥同步。,2.对称加密算法和非对称加密算法,按加密和解密密钥的类型划分,可分为对称加密算法和非对称加密算法两种。1)对称加密算法如果加密密钥和解密密钥相同,或由其中一个很容易得出另一个,这样的密码算法称为对称加密算法。在这种算法中,加密和解密密钥都需要保密。对称加密算法也称为单密钥算法或私钥加密算法。常用的对称加密算法有DES、IDEA、RC2、RC4、SKIPJACK等。2)非对称加密算法如果加密密钥与解密密钥不同,且由其中一个不容易得到另一个,则这

13、种加密算法是非对称加密算法。这两个不同的密钥,往往其中一个是公开的,另一个是保密的。非对称加密算法也称为公钥加密算法。常用的非对称加密算法有RSA、Elgamal、背包算法、Rabin、ECC(椭圆曲线加密算法)等。,3.单向加密算法和双向加密算法,根据加密变换是否可逆,可以将加密算法分为单向加密算法和双向加密算法。1)单向加密算法单向加密算法使用的是单向函数(也称为散列函数、Hash函数),可以将明文加密成密文,但却不能将密文转换为明文(或在计算上不可行),只有同样的输入数据经过同样的不可逆运算才能得到同样的加密数据。单向加密算法用于不需要解密的场合,因此不需要密钥。单向加密算法主要用来进行

14、数据完整性校验和身份验证。单向加密算法的代表有MD4算法、MD5算法、安全散列算法SHA。2)双向变换加密算法通常的加密解密都属于双向变换加密算法,即可以把加密的密文通过解密恢复为原来的明文。,7.2 对称加密算法,对称加密算法是应用较早的数据加密方法,技术成熟。对称密钥加密算法中应用最广泛的数据加密标准(data encryption standard,DES)算法。,7.2.1 DES算法及其基本思想,1973年,美国国家标准局NBS在认识到建立数据保护标准的需要的情况下,开始征集联邦数据加密标准的方案,1975年3月17日,NBS公布了IBM公司提供的密码算法,以标准建议的形式在全国范围

15、内征求意见。经过两年多的公开讨论之后,1977年7月15日NBS宣布接受这个建议,并作为第46号联邦信息处理标准,即DES正式颁布,供民用、商业和非国防性政府部门使用,也使得DES成为使用最广泛的一种加密算法。,1.DES算法描述,DES采用分组密码,它把要加密的明文以64位为一组,分成若干个分组,若最后一个分组不足64位,则在分组之后用0补足。分组之后,利用给定的密钥,依次对每个分组进行加密,每个分组都会产生64位的密文分组。把所有的分组加密完之后,把产生的所有64位密文分组按顺序组合起来就构成了用户需要的整个密文。DES算法所使用的密钥长度为64位,但实际只使用其中的56位,其余的8位用做

16、奇偶校验位。,1)DES算法的过程,第一个阶段为初始置换(IP),IP表,第二个阶段是进行16轮的迭代运算。,在第i(1i16)轮运算中,输入的是Li-1、Ri-1和该轮需要的子密钥Ki(第1轮的输入是L0、R0和K1),输出的是Li、Ri。Li、Ri和子密钥Ki+1就成为下一轮的输入。两次相邻的运算之间的关系是:Li=Ri-1Ri=Li-1 g(Ri-1,Ki)其中表示异或操作。当进行完16轮的操作之后,把输出的L16、R16进行对换,并合并为64位的输出。,第三个阶段完成逆初始置换(IP-1),IP-1表,剩下的两个问题,每一轮的子密钥K1、K2、K3、K16是如何产生的。g函数的结构。,

17、2)子密钥的产生,子密钥产生,密钥置换PC1,每轮移动的位数,置换选择PC2,3)g函数,扩展置换E,S盒结构,S盒的具体置换过程,S盒的具体置换过程为:某个S盒的6位输入的第1位和第6位形成一个2位的二进制数(从03),对应表中的行号;同时,输入的中间4位构成4位二进制数(从015)对应表中的列号(注意:行和列均从0开始计数)。将8个S盒的输出连在一起生成一个32位的输出,输出结果再通过如下表 所示的P盒置换产生一个32位的输出,这个输出的值就是g函数的输出值g(Ri-1,Ki)。,P盒置换,2.DES解密,DES解密操作与加密采用相同的算法,如下图所示。解密算法使用子密钥的顺序与加密过程相

18、反。,DES解密算法,7.2.2 DES算法的安全性分析,1.56位的密钥长度对于当前的计算速度来说太小2.16轮的迭代运算次数可能太少3.S盒中可能存在着不安全的因素4.DES的一些关键部分不应当保密,7.3 非对称加密算法,7.3.1 非对称加密算法概述,在介绍非对称加密算法之前,先介绍对称加密算法的一些缺陷。(1)密钥数量大。(2)密钥分配困难。(3)无法抗抵赖。,非对称加密算法的概念,在这之前,加密和解密算法都是建立在替代和置换的基础上,而非对称加密算法则是建立在数学函数的基础之上,更重要的是,非对称加密算法是非对称的,加密密钥与解密密钥不同,且由其中一个不容易得到另一个,用其中一个密

19、钥加密的数据,必须用另外一个密钥才能进行解密。因此在使用的时候,可以公开其中一个密钥(称为公开密钥,简称公钥),而保密另外一个密钥(私人密钥,简称私钥)。这对于保密通信、密钥分配和鉴别等领域产生深远的影响。,公钥加密算法可用于以下两个方面:,(1)保密通信(2)数字签名,(1)保密通信,(2)数字签名,非对称加密算法的基础,非对称加密算法的算法基础是基于一些数学难题的。比如有基于背包问题的背包算法(这是最早的非对称加密算法),基于大整数因数分解的RSA算法、LUC算法、Rabin体制等,基于有限域中计算离散对数的困难的ElGamal算法、椭圆曲线加密算法(Elliptic Curve Cryp

20、tosystems,ECC)、Diffie-Hellman算法。,7.3.2 RSA算法及其基本思想,著名的非对称加密算法RSA是由美国麻省理工学院的位科学家Rivest、Shamir和Adleman于1976年提出的,故名RSA,并在1978年正式发表。RSA是非对称加密算法中最具有典型意义的算法,大多数使用非对称加密算法进行加密和数字签名的产品和标准使用的都是RSA算法。,1.RSA基于的数学难题,RSA算法的安全性基于大整数因数分解的困难性。我们知道,求一对大素数的乘积很容易,但要对这个乘积进行因式分解则非常困难,迄今为止在数学上还没有找到有效的办法。,2.RSA的数学基础,如果要想更好

21、地了解RSA的加密和解密的原理,先补充一些数学知识。1)模运算mod2)乘法逆元3)欧拉数4)欧拉定理,1)模运算mod,如果a是一个整数,而n是一个正整数,定义a mod n的结果为为a除以n得到的余数。例如,11 mod 7=4,25 mod 7=4。如果两个整数a、b满足:(a mod n)=(b mod n),则称整数a和b模n同余,可记为:a b mod n例如,11 25 mod 7。,2)乘法逆元,如果两个整数x、y满足:xy 1 mod n则称y是x的关于模n的乘法逆元(也可称为x是y的关于模n的乘法逆元)。需要注意的是,并非所有整数都有乘法逆元。性质:若n为素数,对于所有非0

22、的x(xn)都存在乘法逆元。,3)欧拉数,设n是正整数,那么从1到n-1中与n互素的数的个数称为n的欧拉数,记为(n)。例如,n=10,从1到9之间与10互素的数有1、3、7、9共4个,因此(10)=4。欧拉数的两个性质:(1)若p是素数,则(p)=p-1。(2)若pq,且均为素数,则(pq)=(p)(q)=(p-1)(q-1)。例如p=3,q=5,(35)=(15)=(3-1)(5-1)=8。,4)欧拉定理,设pq,且均为素数,n=pq,那么任取整数x(0 xn),则:xm(n)+1 x mod n其中,m可为任意整数由于0 xn,上式也可以写成:xm(n)+1 mod n=x,欧拉定理得到

23、的结论,这样我们得到一个很有趣的结果,就是x经过一系列运算之后又变回了x。我们可以想象把x看成明文,中间的运算结果可以看成密文y(上式并没给出中间结果),经过最后的运算又恢复成了明文x。,3.RSA密钥对的产生,(1)随机地选取两个不同的大素数p和q(一般为150位以上的十进制数,可以从网上下载)。(2)计算乘积n=pq。(3)计算n的欧拉数(n)=(p-1)(q-1)。(4)随机取一个整数e,1e(n),且e和(n)互素。此时可求得满足下式的整数d:ed 1 mod(n)因为e和(n)互素,所以e的乘法逆元d是存在的。(5)把e,n公开作为公钥,把d,n作为私钥,而p、q、(n)要销毁。,4

24、.RSA加密的过程,RSA加密明文消息p时(这里假设p是以十进制表示的数),首先将消息分成大小合适的数据分组,然后对分组分别进行加密。每个分组的大小应该比n小。设ci为明文分组pi加密后的密文,则加密公式为:ci=pie mod n,5.RSA解密的过程,解密时,对每一个密文分组进行如下运算:pi=cid mod n,7.3.3 RSA算法的安全性分析,RSA的安全性基于这么一种想法,那就是模n(即选取的大素数p、q的乘积)要足够大以至于在适当的时间内把它分解是不可能的。目前,还没有一种有效的方法可以对大数进行因数分解。,7.4 报文鉴别,7.4.1 报文鉴别的概念和一般实现方法,数据加密主要

25、防止的是被动攻击,而报文鉴别的目的是保护数据不受主动攻击,也就是保护数据的完整性。数据即使被非法用户改变了或者数据是攻击者伪造的,数据的使用者也能发现。报文鉴别的主要方式有以下几种。1.报文加密函数2.报文鉴别码3.散列函数,7.4.2 散列函数,散列函数又称Hash函数、单向函数,它将任意长度的报文M变换成固定长度的散列值(即报文摘要)h,散列函数表示为:h=H(M)它生成报文所独有的“指纹”。如果原始报文改变,再次通过散列函数时,它将生成不同的散列值,因此散列函数能用来检测报文的完整性,保证报文从建立开始到收到始终没有被改变或破坏。收到报文的接收者,使用同样的散列函数对报文重新计算散列值,

26、并与收到的散列值相比较。如果相同,则证明报文在传输过程中没有被修改,否则报文是不可信的。,散列函数必须具备如下特征:,(1)对于不同的报文不能产生相同的散列值,改变原始报文中的任意一位数值将产生完全不同的散列值。(2)对于任意一个报文无法预知它的散列值。(3)无法根据散列值倒推报文,因为一条报文的散列值可能是由无数的报文产生的。(4)散列算法是公开的,不需要保密,它的安全性来自它产生单向散列的能力。(5)散列值有固定的长度,一个短报文的散列与一个非常长的报文的散列可以产生相同长度的散列值。(6)要找到两个不同报文产生相同的散列值在计算上是不可行的。,7.4.3 报文摘要MD5,MD表示报文摘要

27、(message digest),MD5是MD4的改进版,是由Ron Rivest在麻省理工学院提出的,曾是使用最广泛的散列算法。该算法对输入任意长度的报文进行计算,以512bit的分组进行处理,产生一个128位长度的报文摘要。MD5算法的实现要经过以下5个步骤。,1.附加填充比特,通过附加填充比特,使其长度成为一个比512的倍数小64的数,即将报文扩展至L512-64(L为正整数)位,留出64位在步骤2使用。填充方法为:在报文后面填充一位1,然后填充所需数量的0。即使原始报文长度已经满足比512的倍数小64,仍然要进行填充。即最少要填充1位,最多填充512位。,2.附加长度值,用步骤1留出的

28、64位填充报文的原始长度。当原始长度大于264时(即使现在看来,几乎不会出现这种情况),用消息长度模264之后的值填充。这时,填充之后的报文长度恰好是512的整数倍(如512的L倍)。把扩展后的消息以512位为一组进行分组,可以分为L组,表示为Y0,Y1,Y2,YL-1。,3.初始化MD缓存器,在MD5算法中,需要一个128位的缓存器,用来存放中间结果和最终结果。这个缓存器由4个32位寄存器A、B、C、D表示。这4个寄存器的初始值(十六进制,按低位字节在前的顺序存放)为:,4.处理512位的分组,这一步骤为MD5的主循环,如图7-10所示。每次主循环处理一个512位的分组,处理L个分组总共要进

29、行L次循环。第q(q=0,1,L-1)次循环是以当前正在处理的512位分组Yq和128位的缓存值ABCD为输入,然后更新缓存值ABCD的内容,作为下一次主循环的缓存值的输入。当q=0时,输入的ABCD正好是初始化的缓存值。每次主循环共包含4圈主操作,每圈主操作又包含16轮迭代运算,即每次主循环总共包括64轮迭代运算。某一轮运算的过程如图7-11所示。,MD5主循环处理,图7-10 MD5主循环处理,MD5某一轮的运算操作,图7-11 MD5某一轮的运算操作,(1)i,表示第i轮操作,i取值范围为063。,(2)g函数,g函数的输入值为B、C、D。共有4圈主操作,每圈主操作使用的g函数不同,如表

30、7-10所示。,表7-10 g函数,(3)Xi,Xi是由输入的512位的分组Yq得出的。把512位的分组以32位为一组,分为16组,表示为M0,M1,M2,M15。Xi就是由Mi通过运算得出的,每一的轮Xi如表7-11所示。,每一轮的Xi,表7-11 每一轮的Xi,(4)Ti,Ti为232*abssin(i+1)的整数部分值(0i63),其中abs表示取绝对值。运算时,要转换为二进制数,不够32位,前面用0填充。,(5)S,表示循环左移S位,每一轮左移的位数S见表7-12。,表7-12 每一轮循环左移的位数,5.输出,对所有的512位分组运算完之后,由A、B、C、D四个寄存器的输出按位低字节在

31、前的顺序(即以A的低字节开始、D的高字节结束)得到的值即为所求出的128位的报文摘要。以上就是对MD5算法的描述。MD5算法的运算均为基本运算,易于用硬件实现,可以达到较高的运算速度。,7.4.4 安全散列算法,SHA是美国国家标准技术研究院和NSA共同设计的安全散列算法(secure hash algorithm,SHA),用于数字签名标准(digital signature standard,DSS)。SHA1产生报文摘要的过程类似MD5。SHA1的输入为长度小于264位的报文,输出为160位的报文摘要,算法的安全性比MD5要高。具体过程如下。,1.附加填充比特,通过附加填充比特,使其长度

32、成为一个比512的倍数小64的数,即将报文扩展至L*512-64(L为正整数)位,留出64位在步骤2使用。填充方法:在报文后面填充一位1,然后填充所需数量的0。即使原始报文长度已经满足比512的倍数小64,仍然要进行填充。即最少要填充1位,最多填充512位。,2.附加长度值,用步骤1留出的64位填充报文的原始长度。这时,填充之后的报文长度恰好是512的整数倍(即512的L倍)。把扩展后的消息以512位为一组进行分组,可以分为L组,表示为Y0,Y1,Y2,YL-1。,3.初始化MD缓存器,在SHA算法中,需要一个160位的缓存器,用来存放中间结果和最终结果。这个缓存器由5个32位寄存器A、B、C

33、、D、E表示。这5个寄存器的初始值为(十六进制,按低位字节在前的顺序存放):,4.处理512位的分组,这一步骤为SHA的主循环,如图7-12所示。每次主循环处理一个512位的分组,处理L个分组总共要进行L次循环。第q(q=0,1,L-1)次循环是以当前正在处理的512位分组Yq和160位的缓存值ABCDE为输入,然后更新缓存值ABCDE的内容,作为下一次主循环的缓存值的输入。当q=0时,输入的ABCDE正好是初始化的缓存值。每次主循环共包含4圈主操作,每圈主操作又包含20轮迭代运算,即每次主循环总共包括80轮迭代运算。某轮运算的过程如图7-13所示。,SHA主循环处理,图7-12 SHA主循环

34、处理,SHA某一轮的运算操作,图7-13 SHA某一轮的运算操作,(1)i,i表示第i轮操作,i取值范围为079。,(2)5、30,5、30:分别表示循环左移5位、循环左移30位,(3)f函数,f函数的输入值为B、C、D。共有4圈主操作,每圈主操作使用的f函数如表7-13所示(其中第2圈和第4圈的f函数相同)。,表7-13 f函数,(4)Wi,Wi:是由输入的512位的分组Yq得出的。把512位的分组以32位为一组,分为16组,表示为M0,M1,M2M15。Wi就是由Mi通过运算得出的,每一轮的Wi如表7-14所示。表中的S表示把括号内的数值循环左移1位。,表7-14 每一轮的Wi,(5)Ki

35、,Ki:表示一个额外的常数,见表7-15。,表7-15 SHA的常数Ki,5.输出,对所有的512位分组运算完之后,最后输出的A、B、C、D、E五个寄存器的值即为所求出的160位的报文摘要。,7.4.5 SHA-1与MD5的比较,表7-17 SHA-1与MD5的比较,7.5 数据加密技术的应用,随着计算机技术和Internet技术的发展和广泛应用,在越来越多的场合使用了数据加密技术。数据加密技术除了具有最常用的数据加密功能之外,还有其他一些作用,如电子签名、数字时间戳、数字证书等。,7.5.1 数字签名,在计算机网络通信中,不容易通过亲笔签名或印章的形式来确认身份,经常会发生发送方不承认自己曾

36、发送过的文件,接收方伪造发送方文件等现象。解决这种问题的方法就是数字签名。数字签名与书面文件签名有相同之处,采用数字签名也能确认以下两点:信息是由签名者发送的。信息在传输过程中未曾作过任何修改。,1.改进的RSA方案,(1)文件的发送者A对要发送的文件M使用SHA算法进行加密,产生一个160位的报文摘要h:h=SHA(M)(2)发送者A生成自己的RSA密钥对,并公布自己的公钥KUA。然后用私钥KRA对生成的报文摘要h再加密,加密后的密文C就成了数字签名。C=EKRA(h)(3)将原文M和数字签名C同时传给对方。(4)对方用发送者公布的公钥KUA对数字签名进行解密,同时对收到的文件M用SHA算法

37、产生又一摘要h1。h=DKUA(C)h1=SHA(M)(5)将h和h1进行对比。如两者一致,则说明传送过程中文件没有被破坏或篡改过。否则不然。,2.数字签名算法,1991年8月,美国NIST公布了用于数字签名标准DSS的数字签名算法DSA,1994年12月1日正式采用为美国联邦信息处理标准。DSA中用到了以下参数:(1)p为L位长的素数,其中,L为5121024之间且是64倍数的数。(2)q是160位长的素数,且为p-1的因子。(3)g=h(p-1)/q mod p,其中,h是满足1hp-1且h(p-1)/q mod p大于1的整数。(4)x是随机产生的大于0而小于q的整数。(5)y=gx m

38、od p。(6)k是随机产生的大于0而小于q的整数。前三个参数p、q、g是公开的;x为私钥,y为公钥;x和k用于数字签名,必须保密;对于每一次签名都应该产生一次k。,签名和验证签名过程,对消息m签名:r=(gk mod p)mod qs=(k-1(SHA(m)+xr)mod q r和s就是签名。验证签名时,算法如下:w=s-1 mod qu1=(SHA(m)w)mod qu2=(rw)mod qv=(gu1yu2)mod p)mod q如果v=r,则签名有效。,7.5.2 数字时间戳,交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关

39、键性内容。在电子交易中,同样需对交易文件的日期和时间信息采取安全措施,而数字时间戳服务(digital time-stamp service,DTS)就能提供电子文件发表时间的安全保护。DTS是网上安全服务项目,由专门的机构提供。时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括以下3个部分:需加时间戳的文件的摘要。DTS收到文件的日期和时间。DTS的数字签名。,时间戳的产生过程,时间戳产生的过程如下:(1)用户首先将需要加时间戳的文件用散列算法加密形成摘要,然后将该摘要发送到DTS。(2)DTS在收到文件摘要后给其加入日期和时间信息,然后再对该文件加密(数字签名),然后送回用

40、户。DTS的过程可以描述为:加密时将摘要信息归并到二叉树的数据结构;再将二叉树的根值发表在一些权威性期刊或者杂志上,这样更有效地为文件发表时间提供了佐证。,7.5.3 数字证书,数字证书又称为数字凭证,是用电子手段来证实一个用户的身份和对网络资源的访问的权限。数字证书的内部格式是由CCITT X.509国际标准所规定的,它包含了以下几点:证书拥有者的姓名。证书拥有者的公共密钥。公共密钥的有效期。颁发数字证书的单位。数字证书的序列号(serial number)。颁发数字证书单位的数字签名。,三种数字证书,数字证书有以下3种类型:(1)个人证书(personal ID)(2)企业(服务器)证书(

41、server ID)(3)软件(开发者)证书(developer ID)上述3类证书中前两类是常用的证书,第三类则用于较特殊的场合,大部分认证中心提供前两类证书,能提供各类证书的认证中心并不普遍。,7.5.4 电子商务,电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被别人盗用。在过去,用户为了防止信用卡的号码被窃取,一般是通过电话订货,然后使用用户的信用卡进行付款。现在人们开始使用各种加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。Netscape公司是电子商务中领先技术的提供者,该公司提供了一种基于数据加密技术的Internet技

42、术,被称为安全套接字层(secure sockets layer,SSL)。SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。SSL3.0通过数字证书进行身份验证之后,双方就可以用数据加密进行安全的会话了。,本章小结,密码学发展到现在,经历了很多阶段,有很多种算法和应用协议。本章首先介绍了密码学的基本概念,然后把重点放在了对称加密算法和公开密钥加密算法这两种密码编码系统上,并分别详细介绍了它们的代表算法:DES算法和RSA算法。DES是第一个被作为标准形式而被广泛接受的数据加密标准,而RSA则是迄今为止理论上最成熟完善的公钥加密算法。随后,介绍了报文鉴别的基本概念,给出了报文鉴别的两种最常用的算法MD5和SHA的详细步骤。在本章的最后,介绍了数据加密技术的各种应用,如数字签名、数字时间戳、数字证书等。,第7章 结束,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号