公钥基础设施(PKI)教程

上传人:m**** 文档编号:204110713 上传时间:2023-04-26 格式:DOCX 页数:45 大小:419.21KB
收藏 版权申诉 举报 下载
公钥基础设施(PKI)教程_第1页
第1页 / 共45页
公钥基础设施(PKI)教程_第2页
第2页 / 共45页
公钥基础设施(PKI)教程_第3页
第3页 / 共45页
资源描述:

《公钥基础设施(PKI)教程》由会员分享,可在线阅读,更多相关《公钥基础设施(PKI)教程(45页珍藏版)》请在装配图网上搜索。

1、公钥基础设施(PKI)教程课程简介这本教材对各种加密过程和其相应的检验算法展开了详细的探讨。我们还将向您介绍数字证书的内容。重点在于强调一个真正的公钥基础设施(PKI)的重要 性。课程目标 简要介绍关于应用在现代网络环境中的加密技术。 介绍为什么我们会需要一个完整的“公钥基础设施(PKI)”。 理解一个真正的公钥基础设施的所有需求。注意:这是个PKI的简介,而不是密码学的的教程。密码学是一个十分复杂的课题。这个题 目已经超出了我们这个课程的范围,或者任何公司所设的培训教程。要求 因为这是一个入门课程,我们唯一的要求是关于计算机网络的一些基本概念。 这是一个“JIT CA”的用户的一个必修教程。

2、 这是一个“JIT证书管理者”的一个必修教程。目录第一章 网络安全和保密 11.1 什么是网络安全? 21.2 为什么我们需要网络安全? 21.3 加密简介 31.4 一个好的加密算法所必须具有的属性 41.5 对称加密 51.6 哈希(Hash)函数61.7 公钥加密体系 81.8 把对称加密和公钥加密体系结合起来 101.9 结合哈希函数和公钥加密算法111.10 总结 131.11 习题 14第二章 通用加密算法综述 152.1 密钥的长度162.2 对称算法 172.2.1 数据加密标准(DES) 172.2.2 三重 DES 182.2.3 CAST 算法182.2.4 RC2 和

3、RC4192.3 哈希函数 192.3.1 信息摘要(MD5) 202.3.2 安全哈希算法(SHA) 202.4 公开密钥算法 202.4.1 RSA 算法 212.4.2 数字签名算法(DSA) 212.4.3 密钥交换算法 212.5 总结 222.6 习题 23第三章 数字证书和认证权威243.1 在网络安全中信任的概念253.2 认证权威的角色 263.3 数字证书介绍 283.4 X .509 证书 283.5 总结 303.6 习题 30第四章公钥基础设施(PKI) 314.1 什么是公钥基础设施(PKI) 324.2 PKI的组成324.3 CA 的组成及功能334.4 RA

4、的组成及功能384.5 DA 的功能 404.6 密钥管理中心(KMC )414.9 总结424.10 习题42第一章 网络安全和保密这一章讨论了网络安全的必要性,还介绍了一些加密基础知识。课程概要: 什么是网络安全? 网络安全的必要性 一个好的加密算法所必须具有的属性 对称算法 哈希(HASH)函数 怎样把加密和公钥加密结合起来? 怎样把哈希函数和公钥加密结合起来? 总结 习题1.1 什么是网络安全?对网络安全作一个精确的定义是困难的。但是,当你考虑要作一个这样的定义时,有 一些重要的方面要考虑。首先,一个安全的网络保护着该网络的资源。这些资源包括网络的数据(不管是通过 网络传输的数据还是存

5、贮在媒介中的数据),还包括对物理资源的访问权力。第二,这些资源应该不受有意或无意的破坏。一个安全的网络应该是黑客们所破坏不 了的。一个同等重要的问题是怎样防止资源被人无意破坏。这样的破坏在计算机网络中经常 发生。例如,一个人不愿意发一封重要的电子邮件给另一个人。但由于各种原因(人 为的或邮件系统的错误),电子邮件发出去了。最后,对网络资源的保护不能太强制和繁琐,以至于被授权的人不能以一种简单的方 式来访问这些资源。总结以上的要求,网络安全可以定义为:一些保护重要信息的手段和措施,使之免受 蓄意的和无意的破坏,不管这些信息是保存在哪里或是在网络中传播。而且这些手段 和措施的实现不应给已授权的用户

6、在访问这些信息时造成任何障碍。1.2 为什么我们需要网络安全?有很多原因使网络安全非常重要。当我们意识到现在有如此多的“电子商务”在各种 不安全的网络上发生的时候,这些原因就变得很明显了。电子商务使商家和个人可以 在几乎任何地方,只要是网络或电话能够布到,包括在家里、办公室、机场、旅店等 等,以任何额度,来存款、取款、投资、购买。当人们看到越来越多的著名组织开始提供“在线”服务,他们经常会产生一个错觉, “它肯定是安全的”。当一些组织开始重新开发他们的商业进程时,许多人认为“服务器/客户端”技术是 一种不错的解决方案。集中式的主机框架使它十分自然地有一个数据安全的内含。然 而,在“服务器/客户

7、端”环境中,这种分布式的数据处理模式对数据保护提出了巨 大的挑战。“北方佬组织”所进行的一项研究表明,到2000 年,电子商务市场将达到$1340亿。 这将被那些认识到这种商务的潜力的组织炒作起来。在1995 年大概有 15 万商家提供 “在线服务”。到2000年,将涨到约200万家,数字设备公司预计实现$23500 万元 的网上销售额,GE公司预计能实现$10亿的销售额。随着电子商务的数量在持续增 长,危险也在增加。有一个计算机安全研究所(CSI)调查了 242家进了“财富” 500家的公司,发现被 调查的公司中有 12%的公司经历了由于系统被突破而导致的损失。平均损失为 $45 万,总损失

8、$5000 万。1996 年 CSI/FBI 计算机犯罪和安全部门调查了 5000 家私人公 司、美国国家研究所和大学,发现有42%的被调查单位在过去的 12个月里有非法使 用计算机系统的案例。为了解决网络安全问题,我们必须达到几条基本的要求:我们必须确保数据能够保持私有或保存为一个秘密的格式。我们称之为“机密 性”。 我们需要一种授权方法,使需要它的人可以访问那些私有的或秘密的数据。这叫“访问控制”。 “完整性”保证是另一个非常重要的要求,特别是当你在处理电子交易的时候。 例如,假设你对你的银行发出一个要求说要将$100在两个帐户之间转移。银行必 须能够确信他们所收到的正是你所发出的。这一点

9、非常重要。 跟完整性一样重要的是,银行要能够证明确实是你要求转帐。这称之为“真实性”。 用这个相同的例子,这个处理你的要求的银行要有能力让你对你的要求负责,这 一点是至关重要的。如果你要求转帐$100,你不能事后否认你发出过这个要求。 这称为“不可抵赖性”。把机密性、访问控制、完整性、真实性和不可抵赖性结合起来,能够组成一个很高程 度的网络安全。余下的材料将更详细地解释这些过程,告诉你它们怎么能够实现,并且考虑它们的要 求。1.3 加密简介加密的应用开始回答 “我们应怎样实现网络安全” 的问题。尽管加密本身并不是一 个完整的解决方法,但它是一个基础。有许多种加密算法能够用“密钥”来加密数据 保

10、证它在传输和保存过程中的机密性。一种现代的加密技术,即“数字签名”能够被 用来保证数据的完整性和真实性。通过应用各种加密技术,我们能够实现以上的 5 条安全要求。尽管加密技术只是在二战期间开始流行,并且近期才用于网络安全,但实际上它的内 容已经存在了好几千年了。现代的加密技术只是对这个过程添加了一个高得多的数学 逻辑而已。加密领域源于Julius Caesar和罗马帝国。Caesar用一简单的加密方法(如图1),来 跟他的将军们联系。Caesar的方法只是简单地将正文的每个字母移动一个固定的偏移 量(在这个例子中是12)。例如,“A”变成“M”,“B”变成“N”,如此等等。A=MN= ZB=N

11、O=AC=OP=B输入=JITCAD=PQ=CE=QR=D算法=字母右移F=RS=EG=ST=F密钥=12H=TU=GI=UV=H输出=V UFOMJ=VW=IK=WX=JL=XY=KM=YZ=L图 1 : 简单加密算法和密钥考察 Caesar 的加密方法,我们会发现两个内容:加密算法和密钥。加密算法是用来 改变原始数据的方法。在这个例子中“字母移位”就是加密算法。密钥是使加密过程 得出一个唯一结果的变量。这个例子中密钥是 12。用一个不同的密钥,将得到一个 不同的结果。在我们的简单的加密例子中,你可能可以看到,当 Caesar 为他的将军加密了一个消 息后,这个将军将用同样的密钥来解密这则消

12、息。在上面的例子中, Caesar 最多能有多少个密钥?如果 Caesar 想给他的六个将军送密 文,并且他还想让将军们彼此通信时加密,那么将需要多少个密钥?1.4 一个好的加密算法所必须具有的属性如果一个算法的机制必须保密,那么,这意味着这个算法有弱点。一个好的加密算法 只依赖于它的密钥。也就是说,发现一个好加密算法的机制并不能显著提高一个黑客 的攻击能力。一个加密算法想要得到采纳,它必须被广泛传播,以便于让公众来仔细审查。经过许 多的“加密专家”的无数次彻底审查,如果没有发现缺陷,这个算法将开始被接受。1.5 对称加密Caesar 的方法是一个粗糙的对称加密的例子。一个对称算法用相同的钥匙

13、来加密和解 密信息。尽管密钥的长度根据实际应用的算法可以变化,但它们一般在 40 到 128 比 特中变化。被加密的数据一般是文本或消息,但也可以是任何形式的数据。对称加密的主要好处是速度。由于它的高速,它非常适合于海量数据的加密。随着加 密/数字签名工业的发展,要求的密钥长度持续增长。例如,40bit的密钥在几年前还 能为大家接受,但现在已经证明这样长度的密钥能在非常短的时间内破解。现在的密 钥一般必须在80到128bit之间。尽管有许多因素能影响一个密钥的强度,但一般认为密钥的强度可以由它的长度来衡 量。例如,考虑Caesar的方法。如果这个方法在现在应用,我们说他有26种可能性 的钥匙。

14、因此,我们可以人工尝试每一个钥匙,直到有一个正确。因此,如果一个人 想破获一则消息,一个 56bit 的密钥会比一个 64bit 的密钥容易破解。因为每增加一 个bit,可能的钥匙长度就翻番。为计算可能的钥匙数目,我们可以用如下公式:X=2n这是n是密钥的bit数,X是可能的密钥数。240=1, 099, 511, 627, 776 图2描述了对称加密的基本过程。第一步是密钥的产生。然后,把数据用这个算法和 这个密钥加密。得出的结果是密文。图 2: 基本的对称加密过程解密时,我们只须简单地把这个过程反过来。用密文和密钥实施这个算法,得到原来 的明文。图 3 描述了这个过程。对称加密过程本身给了

15、我们一个提供数据机密性的方 法。图 3: 对称解密过程如果考虑一下 Caesar 在维护他的加密方法时所可能遇到的问题,我们会想到两个最 重要的问题。第一个是Caesar如何给要解密的将军传送密钥。Caesar必须派一个送信员将密钥送 到将军手里。第二个问题是如果Caesar想秘密地与他的每一个将军通信(例如,送给将军A的密 文不能让将军B解开),他需要多少种不同的方案。在这个例子,Caesar可能需要对 每个将军使用不同的方案。记住众多的加密方案,并且保证每个消息都被用相应的方 案加密,随着时间的推移和众多的变化的产生,这将是一个很大的问题。现在计算机所使用的方法远比Caesar所使用的方法

16、复杂。尽管Caesar的加密系统非 常简单(“每个字母移位X个位置”),而现在的计算机用电子钥匙来保证信息的安全 性,然而,有趣的是,这两个中心问题仍然一样:1 一个对称密钥怎样安全地传到用户的计算机?2 在整个团体中,共需要多少把密钥?这一点可以用公式X=( n-1) *n来计算。这里,n是用户数,X是共需要的密钥数。下面的表显示了一些较流行的对称算法。这些算法我们将在下一章进行更详细地讨 论。对称加密算法算法密钥开发者备注数据加密 标准(DES)56位IBM 为美国政府(NBS/NIST)开发很多政府组织强 制使用三重DES3*56 位IBM应用三次DESCAST40-256 位(可变)C

17、arlisle Adams & StaffordTavares(北方通信)比DES快一些Rivest算法(RC2)可变Ron Rivest(RSA数据安全)专利一细节未公开表 1:对称加密算法1.6哈希(Hash)函数一个哈希是一段数据的数学上的概要。它有一定的长度。它是数据的唯一的“数字指 纹”。即使数据的一个 bit 变了,它的哈希码会发生巨大的变化。哈希函数的强度在 于它是一个单向函数。换句话说,如果我们有一个输入文件,可以很容易地得到它的 哈希码,但反过来,如果我们有一个哈希码,要得到它的原来的输入文件非常困难。 尽管我们可以认为哈希函数类似于一个求校验和函数,哈希函数有它更多的考虑。

18、例如,如果我们有一个存放金融数据的文件,一个哈希函数必须对字母的相对位置相 当敏感。如果$167 被换成了$761,一个校验和函数会得出相同的结果。但是,一个 哈希函数将会得到一个大大不同的结果。下面的表给出了哈希函数(MD5)的不同输入和相应的哈希结果。正如你看到的, 输入中一个微小的变化导致哈希结果产生巨大的变化。输入哈希结果(使用MD5)Could you please transfer $100 from my checking account to the account of Mr.Smith?D55f1123532d43a16a08557236615502Could you pl

19、ease transfer $1000 from my checking account to the account of Mr.Smith?b7b7ba62cae668d8a47bbdf5128a1055表 2:使用 MD5 的哈希结果尽管哈希函数一般不需要密钥,但根据需要,我们可以给我们的输入文件添加一个密 钥来保护哈希结果的完整性。考虑下面的例子: 我们用一个不带密钥的哈希函数产生了一个文件的数字指纹并且把这个文件和它的 数字指纹一起送到一个接收者那儿。但在途中被一个黑客截到。他可以把文件的内容 先修改了,然后用这个修改后的内容和相同的哈希算法产生一个假冒的哈希值。最后 他这个包整个地

20、重新送给原来的接收者,但接收者接到这个包后通过检查哈希值查不 出任何问题来。但是,如果我们对文件的哈希散列值加密,那么在黑客改动这个文件后,接收方只要 用带这个参数的哈希函数一验证就会发现问题。这样,数据的完整性就得到了保护。图 4 描述了一个哈希函数的基本操作过程。图 4:哈希函数的基本操作过程要产生一个数据指纹:把输入文件实施哈希过程,例如SHA1或MD5。 把输出结果添加到输入文件的后边。如果要检查数据的完整性: 接收者得到原文件,并把它实施相同的哈希过程。用户得到一个新的哈希结果,并把 两者相比较。如果这两者相同,则文件没有被改动。但是,它接着产生了另一个问题:我们怎样才能使接收者得到

21、这个密钥呢?你很快就 会看到,我们还有一个更好的方法,它既能保证数据的完整性,还不用给接收者送哈 希检查的密码。作为参考,下面的表给出了两个最流行的哈希函数及它们的基本特点。我们将在下一 章进一步讨论这些哈希函数。单向哈希函数函数开发者输出信息摘要5(MD5)Ron Rivest(RSA数据安全)128位安全哈希算法(SHA1)国家标准技术研究所 (NIST)/国家安全局 (NSA)160位表 3:流行的单向哈希函数1.7 公钥加密体系公钥加密体系是密码学上的一个重要里程碑。公钥加密的主要特点是加密和解密不需 要用同一个钥匙。在公钥加密体系中,密钥论“对”,一个称为“公钥”,一个称为“私 钥”

22、。公钥我私钥互为“逆运算”,即用公钥加密的东西只有用它对应的私钥才能解密, 而用私钥加密的东西也只有用它对应的公钥才能正确解密。公钥要广为传播,越广泛 越好;私钥为个人所有,越秘密越好。而且,令人惊奇的是,公钥的广泛传播并不会 影响私钥的秘密性,即公钥和私钥之间几乎没有什么相关性,由公钥推出私钥的可能 性几乎为零。正如图5所描述的,Alice要用公钥体系给Bob发一封加密信,他应该: 从一个公共路径得到Bob的公钥。 用这个公钥将信用一个公钥加密算法加密(如RSA)并发给Bob。正如图 6 所示,当 Bob 接到这个信后,他可用自己的私钥解开这个信函。注意,用 公钥体系不再需要在发送方和接收方

23、之间传递秘密密钥。尽管公钥体系不必要在发送方和接收方间共享密码,但它本身并没有提供一个完整的 解决方案。例如,A可能要把相同的消息送给三个人,她必须为每一个接收者加密一个该消息的 拷贝。另一个缺点是公钥算法比起对称加密算法来说很慢。最后,一个公钥加密系统 需要公钥被广泛传播。在一个企业网内,这不一定是一个很容易的事。我们将在后续 课程中讨论这些问题。1.8 把对称加密和公钥加密体系结合起来把对称加密和公钥加密体系结合起来,我们可以得到一个新的体系,它能够提供保密 性和访问控制。我们可以用对称加密来加密海量数据,然后用公钥加密算法把对称加 密密钥加密起来。这样就兼具有了对称加密和公钥加密二者的长

24、处。如果我们想给多 个人发送,我们只须把一个对称密钥为每个人加密一下。假设Alice有一个文件想发给Bob,让我们来考虑整个过程: Alice用她的客户端应用软件选定Bob来作为接收者。应用软件从一个含有所有 人的公钥的路径下获得Bob的公钥。 Alice 产生一个一次性使用的对称密钥,来把文件加密。图7:使用对称和公钥算法的基本加密过程(步骤 1、2) 用Bob的公钥把这个对称密钥加密。这意味着只有Bob能解开该密钥。 写出要输出的文件,它包括密文及加密的对称密钥。Bob的公钥访问控制已加密的Alice对称密钥RSA密钥*?r8=lkrr#图8:使用对称和公钥算法的基本加密过程(步骤 3、4

25、)再看Bob在接收端的过程: Bob的应用程序确定这个文件是发给他的。 Bob用他的私钥把加密过程中产生的对称密钥解开。 用对称密钥把密文解密。把解密出来的内容写成文件。1.9 结合哈希函数和公钥加密算法把哈希函数和公钥加密算法结合起来,能提供一个方法来保证数据的完整性和真实 性。完整性检查保证数据没有被改变,真实性检查保证数据真是由产生这个哈希值的 人发出的。把这两个机制结合起来,就是所谓的“数字签名”。数字签名的过程的第 一步是产生一个我们想签名的数据的哈希值。第二步是把这个哈希值用我们的私钥加 密。这个被加密的哈希结果被添加到数据后。这是一个在哈希函数上的巨大的提高。 用这个方法,我们能

26、够保护哈希结果的完整性。并且,由于我们用的是公钥加密算法, 我们用不着给检查这段哈希结果的人一个密钥。数据的接收者能够有你的公钥解密这段哈希值。同时,你能从你接到的数据产生一段 哈希值。两者相比,如果相同,则可以肯定,他所接到的数据没有被更改。同时,接 收者也知道,只有你才能发出这段数据,因为只有你才会有这个在哈希上签名的私钥。面这个例子演示了 Alice 对一个文件数字签名的过程。 Alice的第一步是对这个文件进行哈希,例如SHA-1。我们称得到的结果为原哈 Alice用公钥加密算法来保护,或者签名,这段哈希值。她通过用一个公钥加密 算法,如RSA的私钥来加密或者签名这段哈希。 最后一步,

27、 Alice 把原文件和数字签名放在一起,并加上一个公钥的拷贝,以便 于证实。图12:基本的数字签名过程(步骤 2、3)如果Bob接到Alice的带数字签名的消息,他可以检查这个文件的完整性,或者他可 以证实这确实是Alice发的消息。 Bob的第一步是产生一个这则消息的新的哈希。他通过把数据实施与Alice所实 施的函数相同的函数实现这一点。图 13 :验证数字签名过程(步骤 1 ) Bob用Alice的公钥和恰当的公钥算法来解密出原哈希值。 最后,Bob将比较他产生的新哈希值和解密出的原哈希值,如果相同,Bob就能 够确信数据没有被更改,并且确实是Alice对这则消息签的名。匕较BobT%

28、*l)8kT%*l)8k明文1 DSAAlice 的公钥图14:验证数字签名过程(步骤 2、3)1.10 总结这一章向我们介绍了: 网络安全的必要性一一我们仔细地观察并解释了为什么我们需要网络安全。我们 讨论了工业和工作环境的一些什么变化使我们需要网络安全。我们了解了为了提 供一个完整的网络安全解决方案,在哪些地方需要注意和解决。 密码学的历史一一它们都是开始于Julius Caesar。我们指出了这种密码本式的加 密方法的缺陷和它与数据保护方法的联系。 一个好的加密算法所必须具有的属性一一我们讨论了什么使一个算法值得依赖, 谁是密码分析员,他们怎么做,他们怎样改进算法。 几个基本的加密过程,

29、它们包括:对称加密算法哈希算法 公钥加密 数字签名1.11 习题 为什么网络安全变得如此重要? “客户机/服务器”的网络方式给网络安全带来了什么样的挑战? 通过加密,哪 5个网络安全需求可以得到满足? 这些需求中哪个是通过数字签名算法实现的? 在实现这些需求中的哪一个时使用了对称加密? 一个加密算法的功能通常不被保密。一个黑客仔细研究一个算法的内部机制,为 什么这不会产生危险? 对称加密的主要优点是什么?它的主要缺点是什么? 公钥加密的主要优点是什么,它的主要缺点又是什么? DES 加密算法的主要缺点是什么?第二章 通用加密算法综述在这一章将对用于对称密码学、哈希函数和公钥密码学的一些通用算法

30、展开高层次的 讨论。课程概要: 密钥的长度 对称算法 数据加密标准( Data Encryption Standard 简称 DES) 三重DES算法 CAST算法 RC2、RC4 算法 哈希函数信息摘要算法(MD) 安全哈希算法( SHA) 公开密钥算法 RSA算法 数字签名算法( DSA) 密钥交换算法 总结 习题2.1 密钥的长度本章中将要讨论的绝大多数算法在实施对数据的操作时都需要一定长度的密钥。正如 你所看到的,这些密钥的长度变化很大。那么,多长的密钥合适呢?对这个问题的回答依赖以下两点:首先,必须清楚要加密 的数据的重要程度,其次是数据将被保护多长时间。如果我们正在保护非常敏感的数

31、 据,那么我们应该使用能够支持长密钥的算法。一个短点儿的密钥对于保密较不敏感 的数据是合适的。保密数据的时间也是一个重要的考虑因素。尽管今天看来一个 80 位的密钥可能是安全的,但 5 年之后情况还会这样么?其次,我们使用对称算法还是公开密钥算法?对称算法使用 40-256 位长度的密钥, 而公开密钥算法使用 512-2048 位长度的密钥。在密钥长度上存在如此大的差异是由 于攻击的类型不同而造成的,对被这两种算法加密的数据进行攻击时采用的方式不 同。攻击对称密钥算法加密的数据的一般的方法是强力攻击法。这种类型的攻击需要攻击 者掌握少量的密文和相对应的明文。然后攻击者将明文应用于算法,同时尝试

32、各种可 能的密钥,直到输出与已知的密文匹配。一旦密钥被攻破,用该密钥加密的任何数据 都将可能被攻击。尽管尝试各种可能的密钥听起来很简单,实际做的时候需要很长的 时间。我们刚才说过对称算法使用40-128 位的密钥。让我们取一个中间长度的密钥, 如 80 位,那么将尝试多少种可能的密钥呢?X=2nX=280X=1,208,925,819,615 万亿可能的密钥对于这么大的数量,我们不妨将它和其它的已知量进行比较:宇宙的年龄=261 秒 行星中原子的数目=2170人们已经做了很多尝试去估计使用强力攻击法攻击各种长度的密钥所使用的时间。1995 年,Entrust Technologies 的 Mi

33、chael Wiener 设计了一台机器,理论上能够在 3.5 小时内攻破一个56位的密钥。根据对专用的零件和其它设备的估价,Wiener先生估 计这台机器的价格将近 1 百万美金。尽管这些听起来有些吓人,但随着密钥长度的增 加,攻破密钥的时间将巨增。下面的表将说明这一情况。密钥长度(位)405664801121280.2 秒3.5小时37天700年1013 年1018 年表 4:攻破密钥需要的时间(使用 1 百万美圆的机器)尽管上面显示的数字是理论上的,但近来的实验已经表明一个 56 位的密钥事实上能 够在几天内被攻破。基于这点任何长度上小于 80 位的密钥对于需要高度安全的情况 都是不合适

34、的。如果我们使用公开密钥算法而不是对称算法,那么我们的注意力从上面阐述的攻击方 法转变为分解大数的可能性。如果我们取两个非常大的素数并将它们乘起来,分解乘 积以获得初始两个素数是一件非常困难的工作。今天流行的公钥算法中的大多数使用 以上原理作为安全的基础。这一章的其它部分将简要介绍一些流行的加密算法,分别给出这些算法的背景和各自 的特点。2.2 对称算法对称算法,也称密钥算法,通常使用 40-256 位的密钥。一般说来,对称算法使用相 同的密钥进行加密和解密。一个好的对称算法的安全性在于密钥的安全性。正如前面 所讨论的,永远也不需要去保密算法的内部工作过程。如此“封闭的”或私有的算法 应该是值

35、得怀疑的。对称算法分做两类:序列算法和分组算法。序列算法在一个时间处理输入的一位(或 字节)。分组算法,正如它的名字所暗示的那样,在一个时间处理输入的一个分组。 大多数基于对称算法的现代计算机都属于分组算法类。2.2.1数据加密标准(DES)数据加密标准(DES)是到目前为止最有名的加密算法。该算法是七十年代由IBM 开发的,基于较早的 Lucifer 算法。该算法被用作美国联邦政府标准已经二十多年了。1973年5月15日,国家标准局(NBS),现称为国家标准和技术研究所(NIST)发 布了一个公开的请求,旨在寻求一种用作政府标准的加密算法。随后IBM提交了一 个算法。在国家安全局(NSB)的

36、帮助下,NIST评价了 IBM的算法并且使得它的细 节对公众可见。 1976年11月23日,该算法被采纳为官方的美国联邦标准,成为众 所周知的“数据加密标准”(DES)。几年以后,DES也被美国国家标准研究所(ANSI) 批准作为私营部门的标准。DES 算法已经经受了时间的考验,然而,围绕着与协议一起使用的密钥的长度问题 仍十分引人关注。尽管最初提交给NBS的算法使用的密钥长度是128位,但最后通 过的版本使用 56 位长度的密钥。事实已经表明具有该长度的密钥是不适合保密敏感 数据的。引用NIST的发言人的话说DES的生命期将在90年代末结束。DES在1998 年又被重新认证同时 NIST 已

37、经开始寻求可能的代替方案。面的表给出 DES 的一些基本特征。DES的特征输入块大小输出块大小密钥长度加密轮数64位64位56位16表5:数据加密标准(DES)的特征2.2.2 三重 DES为了解决des中的密钥长度问题,实现上使用了多种变异,其中最出名的一种为三 重DES。这种变异是用不同的密钥三次运行DES算法。尽管这样给出了更长、更有 效的密钥长度,但它严重妨碍了实施。比较其它的对称算法,DES的速度要慢一些。 运行这个算法三次将会使速度更慢。下面的图解释了使用三重DES算法加密的过程。图 15:三重 DES2.2.3 CAST 算法CAST 算法是由加拿大的 Carlisle Adam

38、s(Entrust Technologies)和 Stafford Tavares 共同 设计的。尽管 CAST 常常被看作算法,实际上它是用于构造算法的设计过程。结果 算法(由CAST构造的算法)将是一个“CAST算法”CAST设计过程的细节已经向密码学界公布了,专家们可以评论和分析它,并且必须 承受全部密码分析的尝试。各种各样的研究表明CAST比DES具有更强的抗攻击能 力,而且在加密和解密上要更快一些。应用在Entrust产品线中的“CAST算法”比 典型的 DES 算法大约快 5-6 倍。“CAST算法”是分组算法,它使用64位分组作为输入。“CAST算法”的设计允许 可变的密钥长度,

39、变化范围在40-256位。“CAST算法”使用的迭代轮数由设计者决 定。报告已经显示一个仅仅使用8轮迭代的“CAST算法”比DES (使用16轮迭代) 具有稍强一些的抗攻击能力。CAST算法已经被美国和加拿大政府接受作为代替DES的后选算法之一。2.2.4 RC2 和 RC4RC2和RC4是由RSA数据安全有限公司(简称RSA)的Ron Rivest设计的两个对 称算法。缩写分别代表“ Rivest Cipher 2” 和“ Rivest Cipher 4”。RC2是一个64位的分组算法,支持可变长度密钥。RC2算法的细节当前是私有的, 从未向密码学界公布。不象DES和CAST那样完全开放并且

40、能够被任何人自由地使 用,RC2需要付给RSA数据安全有限公司许可费。在这种情况下,RC2依然受到软 件工业界的大量关注。RC2初始被指定为用于E-mail安全的S/MIME标准的可选算 法,然而,由于许可费问题,这一标准现在推荐 DES。RC4 是一个序列算法,支持可变长度密钥。尽管算法的细节被保密很多年,有人还 是在 1994 年在没有经过 RSA 同意的情况下,化名对 Internet 公布了源代码。很多年 来, RC4已经找到自己的方式进入很多商业上可得到的软件包,包括Lotus Notes和 Oracle Secure SQL。2.3 哈希函数在第一章中我们提到过,一个哈希函数是一块

41、数据的数学概要。一个哈希函数能从任 意长度的输入文件中创建固定长度的哈希结果(或信息摘要)。这么做的目的是保证 输入数据的完整性。如果你用哈希函数作用于一块数据产生一个哈希结果,那么其他 的人能够用同样的函数作用于同样的数据而产生和你相同的结果。如果这样,数据就 拥有了完整性。哈希函数最重要的特征是它们是单向函数。换而言之,应用哈希函数 作用于数据产生哈希结果是非常容易的,然而,从哈希结果中恢复初始数据是非常困 难的。哈希函数也应该避免哈希冲突,即对于两个不同的输入产生相同的哈希结果称 为哈希冲突。一个较长的哈希结果减少发生哈希冲突的机会。下面的图显示出一个哈 希函数的基本操作,当然这个图是过

42、于简化了。正文512Bits512Bits512Bits512Bits512Bits512Bits512Bits512Bits512Bit哈希结果512Bit512Bit*异或哈希函数128图 16:一个哈希函数的基本操作2.3.1信息摘要(MD5 )信息摘要是由 Ron Rivest 开发的哈希函数。信息摘要函数多年来经过了大量的修改, 而且获得了日益增多的可靠性。由于它已经出现多年并且经过了广泛的研究,所以 MD5 算法获得了广泛的接受。MD5处理512位的输入数据块,产生固定的128位的信息摘要。尽管MD5是一个快 速的哈希函数,但它的哈希结果的长度被今天的标准看作是最小的。2.3.2

43、安全哈希算法( SHA)安全哈希算法是由NIST和NSA共同开发的用于数字签名标准(DSS)的哈希算法。 尽管SHA的设计基于MD4,但它的细节从没公开过。在这种情况下,人们仍然认为 SHA比MD4和MD5安全的多。一个原因就是SHA产生160位的信息摘要而不是 128 位。这极大地增加了强力攻击的难度。面的表是前面提到的各哈希函数的特征比较。算法名称块大小摘要大小速度(kBytes/s)MD4512位128位236MD5512位128位174SHA512位160位75*33MHZ-486SX表 6:常用哈希函数的比较2.4 公开密钥算法1976 年 Whitfield Diffie 和 Ma

44、rtin Hellman 提出了公开密钥密码学,这给密码学界带 来了极大的振奋。密钥成对产生,且从一个密钥推算出另一个是不可行的。这使得人 们不再需要同其他人共享秘密密钥或者说至少他们可以以一种安全的方式共享秘密 密钥。公开密钥密码学的安全性基于解决“困难问题”的难度。举例来说,很多公开密钥算 法把它们的安全性建筑在分解两个大素数乘积的难度上,尽管这些算法提出了很多有 趣的可能性,但比起对称算法它们仍然相当慢。不是所有的公开密钥算法都具有相同的功能。正如你将要在下面看到的,一些算法用 于加密,一些算法用于密钥交换,另一些算法用于数字签名。我们将要看到的第一个 公开密钥算法实际上具有全部的功能。

45、2.4.1 RSA 算法到目前为止,RSA是使用最广泛的公开密钥算法,已经经受住了多年的密码分析。 在世界上许多地方RSA已经成为事实上的标准。RSA以它的三个发明者Ron Rivest、 Adi Shamir和Leonard Adleman的名字命名,它被设计成一个具有多种应用的算法, 能够用作加密、数字签名和密钥交换。RSA的安全性在于大数分解的难度。RSA的公开密钥和私人密钥是一对大素数的函 数。很多关于密码学的著作都讨论了这些密钥的产生细节。 RSA 使用的密钥长度由 实现者决定,200-300位数比较普遍。为了保证这些数足够大,RSA数据安全有限 公司发起了一个名为“RSA因数分解挑

46、战”的活动。在1994年3月,600人使用分 布在Internet上的1600台计算机分解一个129位的数,结果用了大约8个月才完成。目前RSA在美国获得了专利,由于应用广泛,它为RSA数据安全有限公司创下了大 量的许可收入。然而,RSA在美国的专利将在2000年9月20日到期。2.4.2数字签名算法(DSA)数字签名算法是由 NSA 为 NIST 而开发的。该算法是为在 NIST 的数字签名标准 (DSS)中使用而设计。算法专为数字签名而设计,但它也能用来加密。尽管在1994 年DSA被NIST采用为一种标准,但同时NIST也遭到不少非议。大多数批评来自从 RSA算法中获取经济利益的人们。D

47、SA的安全性在于计算离散对数的难度,正好与大数分解相反。在产生签名上DSA 比RSA要快,但在验证签名时明显比RSA慢。这一点非常重要当考虑用户验证签名 的操作比产生签名的操作更频繁时。不象来自 NIST 或 NSA 的其它算法,数字签名算法的技术细节已经向密码学界公开 了。2.4.3 密钥交换算法Diffie-Hellman密钥交换算法是在 1976 年由 Whitfield Diffie 和 Martin Hellman 共同开 发的。让我们来考虑对称算法,为了使加密的文件或其它数据能够被解开,不同的用 户之间就需要共享秘密密钥,这是对称算法存在的主要问题。 Diffie-Hellman

48、给出了 一种解决方法。让我们看一个例子,Alice和Bob想在网络中实时安全地通信。在他们开始通信前, Alice 和 Bob 用 Diffie-Hellman 算法产生一个秘密密钥,使用该密钥他们可以保证通 信通道的安全。当他们结束通信时,密钥即被丢弃。概括秘密密钥产生的过程:Alice 和 Bob 各自产生一些能够在开放网络上公开传输的公有数据。在这些公有数据以及 私有数据的基础上,Alice和Bob都实施一种计算,产生一个密钥。这一过程在很多 密码学著作中都有较详细的解释。Diffie-Hellman密钥交换算法的主要优点是Alice和Bob使用的秘密密钥不需要在网 上进行传送。双方在各

49、自的工作站上计算密钥。另外,使用Diffie-Hellman算法所有 的密钥每次都需要重新生成。这就导致了一个概念-“完全向前保密”。RSA也具有 相同的功能,在这种情况下,Alice要先选择一个私钥,然后使用Bob的公钥加密该 私钥后发送给Bob。尽管RSA在将私钥发送到网络以前加密该私钥,Diffie-Hellman 依然是一个更好的选择,因为它从不将密钥发送到网络上而且RSA也不给我们“完 全向前保密”。2.5 总结这一章介绍了: 选择相应密钥长度的重要性。 各种对称算法的特征,这些对称算法包括:数据加密标准(DES)、三重DES、 CAST算法和RC2算法。 信息摘要和安全哈希算法的特

50、征。 各种公开密钥算法的特征,这些算法包括:RSA算法、数字签名算法(DSA)、 密钥交换算法。2.6 习题 对于对称算法,密钥长度的典型范围是什么? 叙述对称算法的两个主要种类。 DES 算法使用的密钥长度是多大? 对比DES,列举CAST算法的优点。 什么是RC2和RC4算法的主要障碍? 叙述哈希函数的目的。 说明一个好的哈希函数的两个主要特征。 对比MD5,SHA的优点是什么? 公开密钥算法从哪里获得其安全性? RSA算法有哪些应用? 比较RSA算法,数字签名算法的一个优势是什么? 对比RSA,在实施安全密钥交换时,Difie-Hellman有什么优势?第三章 数字证书和认证权威这一章将

51、介绍“信任”的概念,解释为什么需要数字证书同时讨论认证权威签名和发 布证书的必要性。课程概要: 网络安全中信任的概念 认证权威(CA)的角色 数字证书的介绍 X.509 证书 总结 习题3.1 在网络安全中信任的概念每个安全系统都依赖于系统用户之间的信任,不管这种信任具有怎样的形式。一般说 来,存在信任的多种形式是为了解决不同的问题和减少一定条件下的风险。在一个给 定的环境里应用哪种形式的信任由政策决定。在一个网络安全解决方案中存在两种重要形式的信任:第三方信任和直接信任。这一 节介绍这些概念并说明这两种形式的信任分别应用在哪种情况中。为了完整地解释第三方信任和直接信任,我们还将介绍认证权威、

52、认证权威域、证书 和交叉认证的概念。第三方信任是指这样的情况,两个个体彼此暗中信任对方即使他们从没建立个人关 系,他们之间的信任来自于他们共同信任的第三方。图 17 :第三方信任模型对于任何基于公开密钥密码学的大规模网络安全产品,第三方信任是基本的需要。公 开密钥密码学需要有权使用所有用户的公钥。然而,在一个大规模的网络中每一个用 户与网络中的所有用户都建立关系是不现实的甚至不可行的。此外,由于用户的公钥 必须被广泛传播,公钥和个人之间的联系也必须由一个另人信任的第三方来保证,以 防伪造。直接信任是指两个个体已经建立了彼此间的信任关系的情况。直接信任依靠个人关系 的存在才能够安全地交换信息,相

53、反第三方信任在不存在个人关系的情况下允许个体 之间的信任。在网络安全中,当来自不同组织(没经过交叉认证)的个体为保证他们通信的安全而 交换密钥信息时,需要直接信任。因为这些用户所属的组织没有通过交叉认证建立彼 此的信任,所以这些用户必须以个人方式建立彼此的信任。如果没有个人之间的信任, 这些用户之间交换的密钥信息是没有价值的,因为密钥信息本身就不被信任。当直接 信任用于安全通信时,每一方的唯一责任是保证他们可以舒适地在同一级别信任另一 方。当直接信任存在时,在个人关系下个体之间的密钥交换提供了一种强有力的机制 来保证安全通信。3.2 认证权威的角色一个认证权威(Certification Au

54、thority,简称CA)是一个实体,它的主要职责是 验证用户身份的真实性。本质上,一个CA的功能类似于政府护照签发办公室的功能。 一个护照是一个公民的安全文件(纸身份证),由权威机关发放,它来验证该公民是 否就是他自己所说的那个人。只要相信那个国家政府护照办公室的权威性就将信任该 公民的护照,这是一个非常好的第三方信任的例子。与护照相似,由CA签发给网络用户的电子身份证是该用户被CA信任的证明。这样, 通过第三方信任,任何信任 CA 的用户也应该信任该用户。无论护照签发办公室还是认证权威CA都是政策和物理元素的结合。在护照办公室, 有一套由政府制定的政策,这些政策指明了哪些人可以是公民以及公

55、民取得护照的过 程。相似地,一个 CA 也可以被看作一个组织中的一群人,他们制定网络的安全策略 同时决定该组织中的哪些人可以在网上获得电子身份证。所谓的交叉认证是一个过程,在这个过程中,两个CA安全地交换它们的密钥信息, 并且每一个都能够有效地验证另一个的密钥的真实性。本质上,交叉认证仅仅是第三 方信任的扩展,一个CA域中的网络用户相信与该CA域交叉认证的CA域中的所有用 户。从技术上讲,两个CA之间的交叉认证包括交叉认证的建立。当CA X和CA Y进行交 叉认证时, CA X 实际建立并签名了一张包含 CA Y 的公钥的证书。相应地,两个 CA 域中的用户从CA之间的信任得到保证,因而,一个

56、CA域中的用户能够通过扩展的第 三方信任相信另一个 CA 域中的用户。交叉认证中还包括比密钥交换更多的技术细节。由于交叉认证扩展了第三方信任,对 于每个CA域来说完全适应其它CA的安全政策是非常重要的。让我们重新回到护照的 比喻上来,一个国家在没有调查清楚另一个国家建立和发放护照的政策前就宣布相信 该国的护照,这是不可能的。例如,在建立信任之前,每个国家都想详细地了解其它 国家在给一个公民发放护照前验证该公民身份的过程。当交叉认证CA域时会出现相 似的问题。例如,在进行交叉认证前,两个 CA 域都想了解对方的安全策略,包括关于有权使用 对方的高级安全性功能的信息。来自两个CA域的代表也可能签署

57、法律协议。这些协 议将声明在两个域中所需的安全策略和履行这些策略的保证并签名。在开始有关证书的讨论前,我们再来介绍一个网络安全信任概念一CA域。一个CA域指的是该CA具有签发证书权威的用户群。这个概念和护照办公室类似,因 为一个国家没有权利给其他国家的公民发护照。一个护照办公室的作用域仅仅限制在 它自己国家的公民中。3.3 数字证书介绍一个网络用户的证书等于他的电子版的护照。一个证书包含了能够证明证书持有者身 份的可靠信息。包含在用户证书中的一个重要的信息是用户的公钥。在证书中的公钥 既可被他人用于加密也可用来验证持有者的数字签名。就信任而言,涉及到证书有两个重要的问题。第一个问题是如何保证证

58、书中的信息是 安全的?人们又怎么能够相信在一个证书中的名字和公钥属于该证书的持有者?实 际上,如果没有信任,公开密钥密码学将完全被摧毁,因为没有人能够被保证他们正 在为正确的对象加密数据或正在验证特定人的数字签名。为了建立一种信任,将证书中的用户公钥和诸如名字等其他信息绑定起来,CA使用 它的签名私钥对证书信息进行数字签名。CA的数字签名对证书提供了安全和信任的 三个重要元素:第一,通过定义,在一个证书上的有效的数字签名是证书完整性的保 证。第二,由于CA是唯一有权使用它的签名私钥的实体,对于验证证书上CA签名的 任何人,保证了只有CA能做那样的签名。第三,由于只有CA有权使用它的签名私钥,

59、所以CA不能否认它签名的证书。(这个概念常常被称为抗抵赖性)假定一个证书的安全性由CA的签名保证,涉及信任一个证书的第二个问题就关系到 发证的 CA 本身是否是可信赖的。如果我们将这一情景同护照类比,正确的解释是对 发护照机关的信任度。例如,如果进入A国的公民出示一张由B国的护照发行办公室 签发的表面看起来有效的护照,海关官员必须估计B国的护照发行办公室是否值得信 赖。为了解决这个问题,A国的海关官员将可能参看当前A国所信任的国家的列表, 最终由边界控制机构中更高层的决策组来决定。被A国信任的国家在网络安全中被称 为经过交叉认证的CA域。3.4X .509证书一个被称为X.509的证书标准出现

60、了,该标准是为了保证使用数字证书的系统间的互 操作性而制定的。图20显示了一个标准版本3的X.509证书的内容(各种域)。下面 是其中一些域的简要描述。证书格式版本证书序列号CA的签名算法标识符V31234567890RSA 和 MD5版本1的域发证者的X.500名字c=CN,o=JIT-CA有效期01/08/00-01/08/07主题X.500名字c=CN,o=SX Corp,cn=John Doe1主题公钥信息56af8dc3a4a785d6ff4/RSA/SHA版本2的域发证者唯一标识符Value主题唯一标识符Value版本3的域类型关键程度Value类型关键程度ValueCA的数字签名

61、图 20 : X.509 版本 3 的证书形式版本版本域指出 X.509 证书的版本,版本(1、2、3)的格式及对扩展域的规定。序列号序列号域指定了证书的数字标识符,这个标识符在由 CA 签发的所有公开密钥证书中 是唯一的。签名算法签名算法域指出CA在证书上签名使用的算法。算法标识符指定CA签名证书使用的公 钥算法和哈希算法(例如,RSA和MD5)。发证者X.500名字发证者X.500名字域指定了发证的CA的X.500甄别名称。有效期有效期域指定了证书的开始日期和撤消日期。主题X.500名字主题X.500名字域指定了持有与证书中标识的公钥相应的私钥的实体的X.500甄别名 称。主题公钥信息主题公钥信息域标识了两个重要的信息:a)主题拥有的公钥的值b)公钥所应用的算 法的标识符。算法标识符指定公钥算法和哈希算法(例如,RSA和SHA-1)。3.5这一章介绍了: 网络环境中为了安全引入的各种信任模型。 认证权威(CA)的概念及其在信任模型中的角色。 数字证书的概念及它作为电子身份证的能力。 标准 X.509 数字证书的格式。3.6 习题 说明直接信任和第三方信任的差异。 数字密钥和数字证书之间有什么不同? 数字证书为什么需要CA的签名? 在建立一个扩展的第三方信任之前应该做些什么? “扩展的第三方信任”又称什么? 对于

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!