`
jian0487
  • 浏览: 96184 次
  • 性别: Icon_minigender_1
  • 来自: 宁德
社区版块
存档分类
最新评论

密码学与网络安全

阅读更多

15.3  对称密钥协定

不使用KDC,爱丽丝和鲍勃就可以在他们之间创建一个会话密钥。这种创建会话密钥的方法就称为对称密钥协议。虽然有几种方法都可以实现这一目标,但这里我们只讨论两种最普通的方法:Diffie-Hellman 协议和站对站协议。

15.3.1  Diffie-Hellman密钥协定

在Diffie-Hellman协议中,两个机构不需要使用KDC,就可以创建一个对称会话密钥。在创建对称密钥之前,这两个机构要选择两个数pg。第一个数p,是一个有300个十进制数位(1024比特)的大的素数。第二个数g,是一个在群<Zp*

, ´>当中p - 1阶的生成元。这两个(群和生成元)都不是保密的。他们可以通过因特网发送,也可以公开。图15-9所示,就是这一过程。

, ´>当中p - 1阶的生成元。这两个(群和生成元)都不是保密的。他们可以通过因特网发送,也可以公开。图15-9所示,就是这一过程。

图15-9  Diffie-Hellman方法

步骤如下:

(1) 爱丽丝选择一个大的随机数x,使得0 £ x £ p - 1,并算出R1 = gx mod p

(2) 鲍勃选择另一个大的随机数y,使得0 £ y £ p - 1,并算出R2 = gy mod p

(3) 爱丽丝发送R1给鲍勃。注意,爱丽丝不发送x的值,只发送R1

(4) 鲍勃发送R2给爱丽丝。也要注意,鲍勃不发送y的值,只发送R2

(5) 爱丽丝算出K = (R2)x mod p

(6) 鲍勃也算出K = (R1)y mod p

K是会话的对称密钥。

鲍勃算出了K = (R1)y mod p = (gx mod p)y mod p = gxymod p。爱丽丝算出了K = (R2)x mod p = (gy mod p)x mod = gxy mod p。鲍勃不知道x的值,爱丽丝也不知道y的值,但是两个人求出来的值是相同的。

Diffie-Hellman方法中,对称(共享)密钥是K = gxy mod p

15.1

我们用一个普通的例子来清楚地说明这一过程。在这个例子中,我们用小数字,但是要注意,在实际情况中,数字是非常大的。假定g = 7 和 p = 23。步骤如下:

(1) 爱丽丝选择x = 3并算出R1 = 73 mod 23 = 21。

(2) 鲍勃选择y = 6并算出R2 = 76 mod 23 = 4。

(3) 爱丽丝发送数字21给鲍勃。

(4) 鲍勃发送数字4给爱丽丝。

(5) 爱丽丝算出对称密钥K = 43 mod 23 = 18。

(6) 鲍勃算出对称密钥K = 216 mod 23 = 18。

爱丽丝的K值和鲍勃的K值是相同的:gxy mod p = 718 mod 35 = 18

15.2

我们再给出一个更实际的例子。我们用一个程序创建一个512比特(理想位数是1024比特)的随机整数。整数p是一个159位的数。我们选择gxy如下所示:

p

764624298563493572182493765955030507476338096726949748923573772860925

235666660755423637423309661180033338106194730130950414738700999178043

6548785807987581

g

2

x

557

y

273

下面就表示出了R1、R2和K的值。

R1

844920284205665505216172947491035094143433698520012660862863631067673

619959280828586700802131859290945140217500319973312945836083821943065 966020157955354

R2

435262838709200379470747114895581627636389116262115557975123379218566

310011435718208390040181876486841753831165342691630263421106721508589 6255201288594143

K

155638000664522290596225827523270765273218046944423678520320400146406

500887936651204257426776608327911017153038674561252213151610976584200 1204086433617740

1. Diffie-Hellman的分析

Diffie-Hellman的概念,如图15-10所示,既简单又精密。我们可以认为爱丽丝和鲍勃之间的密钥是由三部分组成的:g, x y。第一部分是公开的,人人都知道这个密钥的1/3g是一个公开的值。另外两个部分必须要由爱丽丝和鲍勃往上加。他们每人加一部分。爱丽丝加x作为鲍勃的第二部分;鲍勃加y作为爱丽丝的第二部分。如果爱丽丝从鲍勃那里收到全密钥的2/3,她就把最后的部分,她的x,加上去完成密钥。如果鲍勃从爱丽丝那里收到全密钥的2/3,他就把最后部分,他的y,加上去完成密钥。注意,虽然爱丽丝手上的密钥由g, y x组成,鲍勃手上的密钥由g, x y组成,但因为gxy = gyx,这两个密钥是相同的。

15-10  Diffie-Hellman概念

也要注意,虽然两个密钥相同,因为计算是在p中进行,爱丽丝不能求出鲍勃使用的y值;爱丽丝从鲍勃那里收到的是gy mod p,不是gy。为了要知道y的值,爱丽丝必须要用前一章中讨论过的离散对数。

2. Diffie-Hellman的安全性

Diffie-Hellman密钥交换易受两种攻击:离散对数攻击和中间相遇攻击。

离散对数攻击  密钥交换的安全性基于离散对数问题的困难性。伊夫可以拦截R1和R2。如果她能从R1 = gx mod p 求出x,从 R2 = gy mod p求出y,那么她就可以计算出对称密钥K = gxy mod p。密钥就不再是秘密了。为了使Diffie-Hellman能够抵抗离散对数攻击,推荐采取以下措施。

(1) 素数p必须要非常大(多于300个十进制数位)

(2) 素数p的选择必须要使得p - 1具有至少一个大的素因子(多于60个十进制数位)

(3) 生成元必须要从群<Zp*, ´ >中选择。

(4) 鲍勃和爱丽丝算出对称密钥后,必须立即x yx y的值只能使用一次。

中间人攻击  该协议还有一个缺陷。伊夫不需要求出x y的值,就可以攻击这个协议。她可以创建两个密钥来欺骗爱丽丝和鲍勃:一个是她和爱丽丝之间的,另一个是她和鲍勃之间的。图15-11所示,就是这种情况。

15-11  中间相遇攻击

可能发生如下过程:

(1) 爱丽丝选择x,计算出R1 = gxmod p,并发送R1给鲍勃。

(2) 入侵者伊夫拦截R1。她选择z,计算出R2 = gz mod p,并发送R2给爱丽丝和鲍勃。

(3) 鲍勃选择y,计算出R3 = gy mod p,并发送R3给爱丽丝。R3被伊夫拦截并没有到达爱丽丝那里。

(4) 爱丽丝和伊夫算出K1 = gxz mod p,这就成为了爱丽丝和伊夫之间的共享密钥了。然而,爱丽丝却认为这是她和鲍勃之间的共享密钥。

(5) 伊夫和鲍勃计算出K2 = gzy mod p,这就是伊夫和鲍勃之间的共享密钥,然而,鲍勃认为这是他和爱丽丝之间共享的密钥。

也就是说,创建了两个密钥,而不是一个:一个是爱丽丝和伊夫之间的,一个是伊夫和鲍勃之间的。如果爱丽丝发送用K1加密的数据给鲍勃(爱丽丝和伊夫共享),那这个数据就可以被伊夫解密并读出其内容。伊夫可以发送一个用K2(伊夫和鲍勃共享)加密的信息给鲍勃,她甚至可以改变信息或干脆发送一个新的信息。鲍勃被欺骗从而相信信息是来自爱丽丝的。相似的情形也可以在另一个方向上对爱丽丝发生。

因为伊夫出现在中间,并拦截了爱丽丝发送经鲍勃的R1,以及鲍勃发送给爱丽丝的R3,这就称为中间相遇攻击(man-in-the-middle attack)。因为和一个志愿者之间依次传递水桶的队列相似,也称为水桶队列攻击(bucket brigade attack)。接下来的方法是基于Diffie-Hellman的,用验证来阻止这种攻击。

15.3.2  站对站密钥协定

站对站密钥协定是基于Diffie-Hellman的一种方法。它使用带有公钥证书(参看后面这一部分)的数字签名,在爱丽丝和鲍勃之间建立会话密钥,如图15-12所示。

下面就是这种方法的步骤:

●       算出R1后,爱丽丝把R1发送给鲍勃(图15-12中的第一步和第二步)

●       算出R2和会话密钥后,鲍勃把爱丽丝的ID、R1与R2连接起来。然后他用他自己的私钥为结果签名。鲍勃现在把签名、R2和他自己的公钥证书发送给爱丽丝。签名用会话密钥来加密(图15-12中的第三步、第四步和第五步)

●       如果鲍勃的数字签名已经验证,会话密钥也已经算出,爱丽丝就把鲍勃的ID、R1与R2连接起来。然后她就用她自己的私钥在结果上签名,并发送给鲍勃。签名用会话密钥加密(图15-12中的第六步、第七步和第八步)

●       如果爱丽丝的签名已被验证,鲍勃就把会话密钥保存起来(图15-12中的第九步)

站对站协议的安全性

站对站协议避免了中间相遇攻击。拦截R1后,伊夫不能发送她自己的R2给爱丽丝,因为伊夫不能伪造鲍勃用来创建数字签名的私钥,也不能假装R2是来自鲍勃的。鲍勃的数字签名,不能用证书当中确定的鲍勃的公钥进行验证。同样,伊夫不能伪造爱丽丝的私钥来为爱丽丝发送的第三个信息签名。因为我们在本书后面将要了解到,证书是由可信的权威机构发布的,所以这些证书也是可信的。

15-12  站对站密钥协定方法

<!-- page -->
分享到:
评论

相关推荐

    密码学与网络安全实验2

    **密码学与网络安全实验2——深入理解DES加密算法在MATLAB中的实现** 在这个实验中,我们将探讨的是数据加密标准(DES)算法,一种在20世纪70年代广泛使用的对称密钥加密方法。DES是一种分组密码,它将明文数据分成...

    《密码学与网络安全》

    根据提供的文件内容,以下是对《密码学与网络安全》这本书中相关知识点的详细阐述: ### 《密码学与网络安全》知识点 #### 1. 安全目标 - **机密性(Confidentiality)**:机密性意味着保护机密信息不被未经授权的...

    密码学与网络安全(中文导读英文版)课后习题解答

    本资源是《密码学与网络安全》(中文导读英文版)(大学计算机教育国外著名教材系列(影印版)) 的课后习题解答,很全

    西电应用密码学与网络安全.rar

    西电应用密码学与网络安全实验报告及程序源代码。 实验1.凯撒密码。 实验2.单表置换。 实验3.仿射密码。 实验4.DES加解密。 实验5.AES加解密。 实验6.RSA加解密。 实验7.MD5加密。 实验8.文件的安全传输。

    密码学与网络安全实验指导书

    《密码学与网络安全实验指导书》是一门针对信息安全专业学生的实践课程,旨在通过实验加深学生对密码学原理和网络安全技术的理解。实验教学大纲分为多个部分,涵盖了从基础的加密算法到高级的公钥密码系统,以及网络...

    密码学与网络安全:原理与实践

    密码学与网络安全:原理与实践密码学与网络安全:原理与实践密码学与网络安全:原理与实践密码学与网络安全:原理与实践

    密码学与网络安全(英文版,附带目录)

    大学计算机教育国外著名教材《密码学与网络安全》(英文版,附带目录)

    西安电子科技大学计算机科学与技术专业,网络方向应用密码学与网络安全期末考试往年要点!

    西安电子科技大学计算机科学与技术专业,网络方向应用密码学与网络安全期末考试要点!基本都是考PPT上内容,不用担心!

    密码学与网络安全知识点整理.docx

    密码学与网络安全是保障信息化社会安全的关键领域,它涉及到如何保护数据的机密性、完整性和可用性。本文主要从OSI安全框架、安全攻击、安全服务和安全机制等方面进行详细阐述。 首先,OSI安全框架是理解网络安全...

    密码学与网络安全简答题总结

    密码学与网络安全是保障信息安全的重要领域,涉及到许多理论和技术。以下是对给定文件内容的详细解读: 1. **古典密码学与公钥密码学**: - 古典密码学主要包括代换(Substitution)和置换(Permutation)技术。...

    密码学与网络安全试题.doc

    密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc ...

    密码学与网络安全原理与实践

    密码学与网络安全原理与实践 第二版 电子工业出版社

    密码学和网络安全原理与实践,第七版William Stallings

    《密码学与网络安全:原理与实践》是William Stallings撰写的一本经典教材,第七版更是对当前网络安全领域的理论与实践进行了全面更新。本书是深入理解网络加密与安全的基础读物,对于从事信息安全、计算机科学或者...

    密码学与网络安全只是重点

    密码学与网络安全 知识重点大全,清华大学出版社的,考试重难点一览无余

    密码学与网络安全双语课件

    《密码学与网络安全双语课件》是一套深入探讨密码编码学与网络安全的教育资源,源自William Stallings的经典著作《密码编码学与网络安全:原理与实践(英文版)》。这本书籍由电子工业出版社出版,书号为7-121-02767...

    密码学与网络安全技术

    本书可作为高等学校计算机、通信等有关专业本科生和研究生的教材、也可以作为计算机网络、通信工程师的技术参考书和培训教材。

    密码学与网络安全技术基础,汤惟主编,机械工业

    密码学与网络安全技术基础,汤惟主编,机械工业

Global site tag (gtag.js) - Google Analytics