- 浏览: 98900 次
- 性别:
- 来自: 宁德
-
最新评论
-
oudoud:
非常不错,没见收藏按钮
240多个jQuery插件 -
idning:
ding
生日悖论 -
java之渴望:
<%@ page contentType="& ...
将网页数据导出到Excel(以最简单的方式呈现) -
zhoujiabin810812:
简介明了!
黑莓(BlackBerry)是什么 -
WiseNeuron:
谢谢。标记一下
240多个jQuery插件
15.3 对称密钥协定
不使用KDC,爱丽丝和鲍勃就可以在他们之间创建一个会话密钥。这种创建会话密钥的方法就称为对称密钥协议。虽然有几种方法都可以实现这一目标,但这里我们只讨论两种最普通的方法:Diffie-Hellman 协议和站对站协议。
15.3.1 Diffie-Hellman密钥协定
在Diffie-Hellman协议中,两个机构不需要使用KDC,就可以创建一个对称会话密钥。在创建对称密钥之前,这两个机构要选择两个数p和g。第一个数p,是一个有300个十进制数位(1024比特)的大的素数。第二个数g,是一个在群<Zp*
, ´>当中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位的数。我们选择g、x和y如下所示:
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/3,g是一个公开的值。另外两个部分必须要由爱丽丝和鲍勃往上加。他们每人加一部分。爱丽丝加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 和 y。x 和 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 -->发表评论
-
你想知道您的那个端口号被那个程序占用了吗?
2009-09-14 18:24 2579以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用 ... -
在电话接入时处理音频播放
2009-08-11 00:56 1004通话是手机最重要的功能,手机来电会抑制正在运行的MIDlet运 ... -
单向陷门函数
2009-08-11 00:55 2761单向陷门函数(One-way Trapdoor Functio ... -
RSA加密算法
2009-08-11 00:54 28581. 密钥的产生① 选两个 ... -
数据加密标准DES
2009-08-11 00:54 1547数据加密标准DES 数据加密算法(Data Encryp ... -
Java做一个最简单的Socket通话程序
2009-08-11 00:53 1131Java中的网络编程是一个很重要的部分,也是其编程优越性的地方 ... -
C/S模式中的远程方法调用
2009-08-11 00:52 2123摘要 基于C/S设计模式, ... -
Java加密和数字签名编程快速入门
2009-08-11 00:51 699文/jwsh1984 本文主要谈一下密码学中的加密和 ... -
Vigenere密码与Playfair密码 收
2009-08-11 00:50 4037维吉尼亚(vigenere)密码,美国南北战争期间联军广泛 ... -
java实现DES加密算法
2009-08-11 00:49 2428一、java实现DES加密算法 为了实现一对密钥对整个项目所有 ... -
DES算法理论
2009-08-11 00:48 1441DES算法理论 本世纪五 ... -
欧拉函数
2009-08-11 00:47 1648当n为1至1000的整数时的值 ... -
悖论概念
2009-08-11 00:47 837其定义可以这样表述:由一个被承认是真的命题为前提,设为B,进行 ... -
生日悖论
2009-08-11 00:45 1868生日悖论是指,如果一个房间裡有23个或23个以上的人,那么至少 ... -
TCP/IP端口基础常识大全
2009-08-11 00:44 807端口可分为3大类: 1) 公认端口(Well Known Po ... -
嵌入式处理器的基本概念
2009-08-11 00:42 1092嵌入式系统的核心部件是各种类型的嵌入式处理器,目前全世界嵌入式 ... -
嵌入式实时操作系统的现状和未来
2009-08-11 00:42 1267内容摘要:从RTOS(嵌入式实时操作系统)发展的历史、RTOS ... -
网络编程--WININET
2009-08-11 00:40 1626一个Internet客户端程序的目的是通过Interne ... -
Mod运算
2009-08-11 00:37 1746模p运算 给定一个正整数p,任意一个整数n,一定存在等式 ... -
欧拉定理 (数论)
2009-08-11 00:36 1673在数论中欧拉定理(也称费马-欧拉定理或欧拉函数定理: 若m,a ...
相关推荐
密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc 密码学与网络安全试题.doc ...
密码学与网络安全 原理与实践 密码学与网络安全 原理与实践 密码学与网络安全 原理与实践
### 密码学与网络安全知识点总结 #### 一、OSI安全体系结构 **定义**: OSI(Open Systems Interconnection)安全体系结构提供了一种系统化的方法来规定安全需求和实现这些需求的方式。它是ISO制定的一个框架,...
**密码学与网络安全实验2——深入理解DES加密算法在MATLAB中的实现** 在这个实验中,我们将探讨的是数据加密标准(DES)算法,一种在20世纪70年代广泛使用的对称密钥加密方法。DES是一种分组密码,它将明文数据分成...
大学计算机教育国外著名教材《密码学与网络安全》(英文版,附带目录)
根据提供的文件内容,以下是对《密码学与网络安全》这本书中相关知识点的详细阐述: ### 《密码学与网络安全》知识点 #### 1. 安全目标 - **机密性(Confidentiality)**:机密性意味着保护机密信息不被未经授权的...
本资源是《密码学与网络安全》(中文导读英文版)(大学计算机教育国外著名教材系列(影印版)) 的课后习题解答,很全
《密码学与网络安全实验指导书》是一门针对信息安全专业学生的实践课程,旨在通过实验加深学生对密码学原理和网络安全技术的理解。实验教学大纲分为多个部分,涵盖了从基础的加密算法到高级的公钥密码系统,以及网络...
西电应用密码学与网络安全实验报告及程序源代码。 实验1.凯撒密码。 实验2.单表置换。 实验3.仿射密码。 实验4.DES加解密。 实验5.AES加解密。 实验6.RSA加解密。 实验7.MD5加密。 实验8.文件的安全传输。
密码学与网络安全:原理与实践密码学与网络安全:原理与实践密码学与网络安全:原理与实践密码学与网络安全:原理与实践
西安电子科技大学计算机科学与技术专业,网络方向应用密码学与网络安全期末考试要点!基本都是考PPT上内容,不用担心!
密码学与网络安全是保障信息化社会安全的关键领域,它涉及到如何保护数据的机密性、完整性和可用性。本文主要从OSI安全框架、安全攻击、安全服务和安全机制等方面进行详细阐述。 首先,OSI安全框架是理解网络安全...
密码学与网络安全是保障信息安全的重要领域,涉及到许多理论和技术。以下是对给定文件内容的详细解读: 1. **古典密码学与公钥密码学**: - 古典密码学主要包括代换(Substitution)和置换(Permutation)技术。...
密码学与网络安全原理与实践 第二版 电子工业出版社
《密码学与网络安全:原理与实践》是William Stallings撰写的一本经典教材,第七版更是对当前网络安全领域的理论与实践进行了全面更新。本书是深入理解网络加密与安全的基础读物,对于从事信息安全、计算机科学或者...
密码学与网络安全 知识重点大全,清华大学出版社的,考试重难点一览无余
《密码学与网络安全双语课件》是一套深入探讨密码编码学与网络安全的教育资源,源自William Stallings的经典著作《密码编码学与网络安全:原理与实践(英文版)》。这本书籍由电子工业出版社出版,书号为7-121-02767...
本书可作为高等学校计算机、通信等有关专业本科生和研究生的教材、也可以作为计算机网络、通信工程师的技术参考书和培训教材。