当前位置:
文档之家› 数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制
数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制
3
一点密码学的历史故事
• 第一点 密码体制划分
单向加密算法、对称加密算法、非对称加法三大类。 1、MD5、SHA算法是单向加密算法的代表,单向加密算法是数据完整性验证的 常用算法。散列函数,又称哈希函数、消息摘要函数、单向函数或杂凑函 数。 2、DES&AES算法是对称加密算法的典型代表,对称加密算法是数据存储加密的 常用算法。此外还有PBE——Password-based encryption(基于密码加 密)。其特点在于口令由用户自己掌管,不借助任何物理媒体。 3、RSA算法是非对称加密算法的典型代表,非对称加密算法是数据传输加密的 常用算法。对称加密算法也可以用做数据传输加密,但非对称加密算法在 密钥管理方面更有优势。相对对称加密算法而言,非对称加密算法在安全 级别上等级更高,但非对称加密算法在时间效率上远不如对称加密算法。
15
Bob、Susan、Doug 的故事
BOB有两把钥匙,一把是公钥,另一把是私钥。
16
Bob、Susan、Doug 的故事
Bob把公钥送给他的朋友们----Pat、Doug、Susun----每人一把。
17
Bob、Susan、Doug 的故事
Susun爱上Bob,给Bob写一封私密的情书。她写完后用 Bob的公钥加密,就可以达到保密的效果。没有其他人,
22
Bob、Susan、Doug 的故事
热恋中的人的荷尔蒙是奇妙的。Susun又开始怀疑Bob的信会不会被人偷偷地 改过。她通过散列函数计算出Bob信原件的散列值(摘要),再使用Bob公钥解密 随信的数字签名后得到散列值(摘要),互相对比。现在,她可以确定这是没有被 人篡改过的BOB的亲笔信了。 23
7
一点密码学的历史故事
非对称加密设想的实现者:
1977年,三位数学家Rivest 、Shamir 和 Adleman 设计 了一种算法,可以实现非对称 加密。这种算法用他们三个人 的名字命名,叫做RSA算法。 从那时直到现在,RSA算法一 直是最广为使用的"非对称加 密算法"。毫不夸张地说,只 要有计算机网络的地方,就有 RSA算法。
14
数字签名简述
• 数字签名满足以下3个基本要求: ❑签名者任何时候都无法否认自己曾经签发的数字签名。 ❑信息接收者能够验证和确认收到的数字签名,但任何人无 法伪造信息发送者的数字签名。 ❑当收发双方对数字签名的真伪产生争议时,通过仲裁机构 (可信赖的第三方)进行仲裁。CA 在这里要提醒大家注意:私钥用于签名,公钥用于验证。 签名操作只能由私钥完成,验证操作只能由公钥完成; 公钥与私钥成对出现,用公钥加密的消息只能用私钥解密, 用私钥加密的消息只能用公钥解密。
25
Bob、Susan、Doug 的故事
就这样。Doug使用Bob的公钥,冒充SuSun给Bob写信。又使用自己 私钥冒充Bob与SuSun通信。SuSun一点也不知道,自己电脑上的公 钥已经不是Bob的,而实际上是Doug假冒的。就这样Susun阅读着 “BOB”的信伤心欲绝。。。。。。。。。但是。
• 什么是散列函数,以及用途举例。 • 数据签名简单介绍 。 • 从Bob、Susan、Doug三个人的故事理解 数字签名与数字证书。
9
散列函数
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为司 法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5/SHA1等 等算法就可以为任何文件(不管其大小、格式、数量)产生一个同样 独一无二的“数字指纹”,如果任何人对文件做了任何改动,其 MD5/SHA1值也就是对应的“数字指纹”都会发生变化。
Verisign公司颁发给Bob的数字证书内容。Bob把这张数字证书,给了 SuSun,让她使用证书中的“Bob的公钥匙”
Bob、Susan、Doug 的故事
Susun拿到VeriSign颁发给Bob的证书后,她到Verisign的网站上下载 了Verisign的公钥。通过解密证书里面的内容,SuSun得到了Bob的公钥 。所以,现在没有人可以再仿冒Bob的公钥了。Doug也不行了,除非他能 偷出VersiSign的私钥,制作一张假的证书。Verisign公司显然不会让 这足以让自己公司倒闭和引起巨额赔偿的事情发生。
Bob、Susan、Doug 的故事
要帮助Bob捍卫爱情的Verisign公司有什么秘密武器呢?其实,Verisign 也有两把钥匙,一把是私钥,一把是公钥。
Bob、Susan、Doug 的故事
Verisign公司使用自己的私钥,加密了Bob的公钥匙,制作成一个数字 证书。
Bob、Susan、Doug 的故事
Bob、Susan、Doug 的故事
Doug暗恋着Susun,一直偷偷的窃听着Susun的邮件。毫无疑问,他一 点也不满意Bob与Susun之间的恋爱。Doug无法知道Susun给Bob的 24 信件内容。却读到了BOB给Susun的回信。
Bob、Susan、Doug 的故事
嫉妒中的Doug想破坏这段良缘。他制作了一把自己的私匙。并从私钥 生成一把公钥。在一个难得的机会里,Doug用自己的公钥替换了 SuSun电脑上的Bob的公钥。
10
散列函数
散列函数,又称哈希函数、消息摘要函数、单向函数或杂凑函数。散列函数的主要作 用不是完成数据加密与解密的工作,它是用来验证数据完整性的重要技术。通过散 列函数,可以为数据创建“数字指纹”(散列值)。散列值通常是一个短的随机字 母和数字组成的字符串。消息认证流程如图下所示。
11
散列函数
在上述认证流程中,信息收发双方在通信前已经商定了具体的散列算法,并且该算法是公 开的。如果消息在传递过程中被篡改,则该消息不能与已获得的数字指纹相匹配。 散列函数具有以下一些特性: ❑消息的长度不受限制。 ❑对于给定的消息,其散列值的计算是很容易的。 ❑如果两个散列值不相同,则这两个散列值的原始输入消息也不相同,这个特性使得散列 函数具有确定性的结果。 ❑散列函数的运算过程是不可逆的,这个特性称为函数的单向性。这也是单向函数命名的 由来。 ❑对于一个已知的消息及其散列值,要找到另一个消息使其获得相同的散列值是不可能的, 这个特性称为抗弱碰撞性。这被用来防止伪造。 ❑任意两个不同的消息的散列值一定不同,这个特性称为抗强碰撞性。 散列函数广泛用于信息完整性的验证,是数据签名的核心技术。散列函数的常用算法有 MD(消息摘要算法)、SHA(安全散列算法)1及Mac(消息认证码算法)。
4
一点密码学的历史故事
• 第二点 为什么RSA是现在地球上最重要的算法
1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加密; (2)乙方使用同一种规则,对信息进行解密。 由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法" (Symmetric-key algorithm)。 这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。 保存和传递密钥,就成了最头疼的问题。
20
Bob、Susan、Doug 的故事
Bob回信给Susun的时候附上了这个数字签名。 注意:这个时候即使没有Bob公钥的中间人也可以阅读到这封信。
21
Bob、Susan、Doug 的故事
SuSun阅读了Bob热情洋溢的甜言回信,非常的高兴。由于太兴奋了,她 甚至开始怀疑这封信是不是Bob写给她的了。她马上用Bob的公钥解密了 附在信后面的签名文件。解密成功了。
12
散列函数——数据的指纹
散列函数,数据指纹应用。
可以通过文件的MD5和SHA散列数值确定散 布到网络上的各个文件是否同一个文件,实 现一个文件的多源点下载 可以通过生成文件的MD5和SHA 来防止多人上次同样的文件。
13
数字签名简述
通过散列函数可以确保数据内容的完整性,但这还远远不够。此外,还 需要确保数据来源的可认证(鉴别)性和数据发送行为的不可否认性。 完整性、可认证性和不可否认性,正是数字签名的主要特征。数字签名 针对以数字形式存储的消息进行处理,产生一种带有操作者身份信息的 编码。执行数字签名的实体称为签名者,签名过程中所使用的算法称为 签名算法。 签名操作中生成的编码称为签名者对该消息的数字签名。 发送者通过网络将消息连同其数字签名一起发送给接收者。接收者在得 到该消息及其数字签名后,可以通过一个算法来验证签名的真伪以及识 别相应的签名者。这一过程称为验证过程,其过程中使用的算法称为验 证算法(Verification Algorithm),执行验证的实体称为验证者。数 字签名离不开非对称密码体制,签名算法受私钥控制,且由签名者保密; 验证算法受公钥控制,且对外公开。
5
一点密码学的历史故事
1976年,两位美国计算机学家 Whitfield Diffie 和 Martin Hellman,提出了一种崭新构 思,可以在不直接传递密钥的情 况下,完成解密。这被称为 "Diffie-Hellman密钥交换算法"。 这个算法启发了其他科学家。
人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间 存在某种对应关系即可,这样就避免了直接传递密钥。 这种新的加密模式被称为"非对称加密算法"。
6
一点密码学的历史故事
非对称加密的最初的设想: (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都 可以获得,私钥则是保密的。 (2)甲方获取乙方的公钥,然后用它对信息加密。 (3)乙方得到加密后的信息,用私钥解密。 如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信 就是安全的。
数字证书小结
通过Bob、Susan、Doug的故事。我们了解了,什么是数字证书。 可以说,数字证书是非对称加密算法公钥的载体。数字证书是网络用 户的身份标表,包含ID、公钥和颁发机构的数字签名等内容。其形式 主要有X.509公钥证书、SPKI(Simple Public Key Infrastructure,简单PKI)证书、PGP(PrettyGood Privacy,译 为“很好的私密”)证书和属性(Attribute)证书。其中,X.509证书 最为常见。我们俗称的数字证书,通常指的是X.509公钥证书。