数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制ppt课件_第1页
数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制ppt课件_第2页
数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制ppt课件_第3页
数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制ppt课件_第4页
数字证书,数字签名的基本原理,以及如何使用非对称加密技术实现软件的LICENSE机制ppt课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

非对称加密实现软件LICENSE机制,黄种龙hzhonglong南威软件研发中心,1,1,内容概述,一点密码学的历史故事数字签名与数字证书JAVA与第三方加密解密库软件产品授权管理系统的机制原理,2,2,分享的目标,了解散列函数、对称加密、非对称加密的概念;了解数据签名与数据证书的概念;了解JAVA安全领域中JCA和JCE以及第第三方JCE实现:BouncyCastle;软件产品授权管理系统的机制原理;,3,3,一点密码学的历史故事,第一点密码体制划分单向加密算法、对称加密算法、非对称加法三大类。1、MD5、SHA算法是单向加密算法的代表,单向加密算法是数据完整性验证的常用算法。散列函数,又称哈希函数、消息摘要函数、单向函数或杂凑函数。2、DES&AES算法是对称加密算法的典型代表,对称加密算法是数据存储加密的常用算法。此外还有PBEPassword-basedencryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体。3、RSA算法是非对称加密算法的典型代表,非对称加密算法是数据传输加密的常用算法。对称加密算法也可以用做数据传输加密,但非对称加密算法在密钥管理方面更有优势。相对对称加密算法而言,非对称加密算法在安全级别上等级更高,但非对称加密算法在时间效率上远不如对称加密算法。,4,4,一点密码学的历史故事,第二点为什么RSA是现在地球上最重要的算法1976年以前,所有的加密方法都是同一种模式:(1)甲方选择某一种加密规则,对信息进行加密;(2)乙方使用同一种规则,对信息进行解密。由于加密和解密使用同样规则(简称密钥),这被称为对称加密算法(Symmetric-keyalgorithm)。这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。,5,5,一点密码学的历史故事,1976年,两位美国计算机学家WhitfieldDiffie和MartinHellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为Diffie-Hellman密钥交换算法。这个算法启发了其他科学家。,人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为非对称加密算法。,6,6,一点密码学的历史故事,非对称加密的最初的设想:(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。(2)甲方获取乙方的公钥,然后用它对信息加密。(3)乙方得到加密后的信息,用私钥解密。如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。,7,7,一点密码学的历史故事,非对称加密设想的实现者:,1977年,三位数学家Rivest、Shamir和Adleman设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的非对称加密算法。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。,久经30年的考验,这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。,8,8,【内容】什么是散列函数,以及用途举例。数据签名简单介绍。从Bob、Susan、Doug三个人的故事理解数字签名与数字证书。,数字签名与数字证书,9,9,散列函数,大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为司法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5/SHA1等等算法就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5/SHA1值也就是对应的“数字指纹”都会发生变化。,10,10,散列函数,散列函数,又称哈希函数、消息摘要函数、单向函数或杂凑函数。散列函数的主要作用不是完成数据加密与解密的工作,它是用来验证数据完整性的重要技术。通过散列函数,可以为数据创建“数字指纹”(散列值)。散列值通常是一个短的随机字母和数字组成的字符串。消息认证流程如图下所示。,11,11,散列函数,在上述认证流程中,信息收发双方在通信前已经商定了具体的散列算法,并且该算法是公开的。如果消息在传递过程中被篡改,则该消息不能与已获得的数字指纹相匹配。散列函数具有以下一些特性:消息的长度不受限制。对于给定的消息,其散列值的计算是很容易的。如果两个散列值不相同,则这两个散列值的原始输入消息也不相同,这个特性使得散列函数具有确定性的结果。散列函数的运算过程是不可逆的,这个特性称为函数的单向性。这也是单向函数命名的由来。对于一个已知的消息及其散列值,要找到另一个消息使其获得相同的散列值是不可能的,这个特性称为抗弱碰撞性。这被用来防止伪造。任意两个不同的消息的散列值一定不同,这个特性称为抗强碰撞性。散列函数广泛用于信息完整性的验证,是数据签名的核心技术。散列函数的常用算法有MD(消息摘要算法)、SHA(安全散列算法)1及Mac(消息认证码算法)。,12,12,散列函数数据的指纹,散列函数,数据指纹应用。,可以通过生成文件的MD5和SHA来防止多人上次同样的文件。,可以通过文件的MD5和SHA散列数值确定散布到网络上的各个文件是否同一个文件,实现一个文件的多源点下载,13,13,数字签名简述,通过散列函数可以确保数据内容的完整性,但这还远远不够。此外,还需要确保数据来源的可认证(鉴别)性和数据发送行为的不可否认性。完整性、可认证性和不可否认性,正是数字签名的主要特征。数字签名针对以数字形式存储的消息进行处理,产生一种带有操作者身份信息的编码。执行数字签名的实体称为签名者,签名过程中所使用的算法称为签名算法。签名操作中生成的编码称为签名者对该消息的数字签名。发送者通过网络将消息连同其数字签名一起发送给接收者。接收者在得到该消息及其数字签名后,可以通过一个算法来验证签名的真伪以及识别相应的签名者。这一过程称为验证过程,其过程中使用的算法称为验证算法(VerificationAlgorithm),执行验证的实体称为验证者。数字签名离不开非对称密码体制,签名算法受私钥控制,且由签名者保密;验证算法受公钥控制,且对外公开。,14,14,数字签名简述,数字签名满足以下3个基本要求:签名者任何时候都无法否认自己曾经签发的数字签名。信息接收者能够验证和确认收到的数字签名,但任何人无法伪造信息发送者的数字签名。当收发双方对数字签名的真伪产生争议时,通过仲裁机构(可信赖的第三方)进行仲裁。CA在这里要提醒大家注意:私钥用于签名,公钥用于验证。签名操作只能由私钥完成,验证操作只能由公钥完成;公钥与私钥成对出现,用公钥加密的消息只能用私钥解密,用私钥加密的消息只能用公钥解密。,15,15,Bob、Susan、Doug的故事,BOB有两把钥匙,一把是公钥,另一把是私钥。,16,16,Bob、Susan、Doug的故事,Bob把公钥送给他的朋友们-Pat、Doug、Susun-每人一把。,17,17,Bob、Susan、Doug的故事,Susun爱上Bob,给Bob写一封私密的情书。她写完后用Bob的公钥加密,就可以达到保密的效果。没有其他人,除了Bob才可以阅读这封信。,18,18,Bob、Susan、Doug的故事,Bob收信后,用自己的私钥解密,就看到了信件内容。这里要强调的是,只要Bob的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。,19,19,Bob、Susan、Doug的故事,Bob读到了Susun的情书后,非常的高兴,马上写了回信。但是Bob是个高调的人(他甚至有意无意的在朋友中,透露出SuSun爱上了自己)。他回信的时候,并没有用私钥加密整封邮件。他只是通过散函数计算了这封信的散列数值。然后用自己的私有密钥加密这个散数值,这个散列数值加密后就是数字签名(signature)。因为它是用Bob的私钥加密的,所在这个数字签名就像Bob的亲笔签名。,20,20,Bob、Susan、Doug的故事,Bob回信给Susun的时候附上了这个数字签名。注意:这个时候即使没有Bob公钥的中间人也可以阅读到这封信。,21,21,Bob、Susan、Doug的故事,SuSun阅读了Bob热情洋溢的甜言回信,非常的高兴。由于太兴奋了,她甚至开始怀疑这封信是不是Bob写给她的了。她马上用Bob的公钥解密了附在信后面的签名文件。解密成功了。,22,22,Bob、Susan、Doug的故事,热恋中的人的荷尔蒙是奇妙的。Susun又开始怀疑Bob的信会不会被人偷偷地改过。她通过散列函数计算出Bob信原件的散列值(摘要),再使用Bob公钥解密随信的数字签名后得到散列值(摘要),互相对比。现在,她可以确定这是没有被人篡改过的BOB的亲笔信了。,23,23,Bob、Susan、Doug的故事,Doug暗恋着Susun,一直偷偷的窃听着Susun的邮件。毫无疑问,他一点也不满意Bob与Susun之间的恋爱。Doug无法知道Susun给Bob的信件内容。却读到了BOB给Susun的回信。,24,24,Bob、Susan、Doug的故事,嫉妒中的Doug想破坏这段良缘。他制作了一把自己的私匙。并从私钥生成一把公钥。在一个难得的机会里,Doug用自己的公钥替换了SuSun电脑上的Bob的公钥。,25,25,Bob、Susan、Doug的故事,就这样。Doug使用Bob的公钥,冒充SuSun给Bob写信。又使用自己私钥冒充Bob与SuSun通信。SuSun一点也不知道,自己电脑上的公钥已经不是Bob的,而实际上是Doug假冒的。就这样Susun阅读着“BOB”的信伤心欲绝。但是。,26,26,Bob、Susan、Doug的故事,27,27,Bob、Susan、Doug的故事,为了证实自己的怀疑。Susun找到了Bob当面对质。很快,他们都明白自己的通信被“中间人”假冒了。Susun很气愤,她要求Bob要有能力去保证自己的公钥不被假冒。,28,28,Bob、Susan、Doug的故事,Bob想到可以去找个第三方的权威机构来证明自己的公钥,确实是自己发出去的。这样Susun就不会使用到仿冒成Bob的公钥匙了。于是,Bob去和CA机构VeriSign公司签约了。签约过程就像在银行开账号一样。,29,Bob、Susan、Doug的故事,要帮助Bob捍卫爱情的Verisign公司有什么秘密武器呢?其实,Verisign也有两把钥匙,一把是私钥,一把是公钥。,30,Bob、Susan、Doug的故事,Verisign公司使用自己的私钥,加密了Bob的公钥匙,制作成一个数字证书。,31,Bob、Susan、Doug的故事,Verisign公司颁发给Bob的数字证书内容。Bob把这张数字证书,给了SuSun,让她使用证书中的“Bob的公钥匙”,32,Bob、Susan、Doug的故事,Susun拿到VeriSign颁发给Bob的证书后,她到Verisign的网站上下载了Verisign的公钥。通过解密证书里面的内容,SuSun得到了Bob的公钥。所以,现在没有人可以再仿冒Bob的公钥了。Doug也不行了,除非他能偷出VersiSign的私钥,制作一张假的证书。Verisign公司显然不会让这足以让自己公司倒闭和引起巨额赔偿的事情发生。,33,数字证书小结,通过Bob、Susan、Doug的故事。我们了解了,什么是数字证书。可以说,数字证书是非对称加密算法公钥的载体。数字证书是网络用户的身份标表,包含ID、公钥和颁发机构的数字签名等内容。其形式主要有X.509公钥证书、SPKI(SimplePublicKeyInfrastructure,简单PKI)证书、PGP(PrettyGoodPrivacy,译为“很好的私密”)证书和属性(Attribute)证书。其中,X.509证书最为常见。我们俗称的数字证书,通常指的是X.509公钥证书。,34,JAVAJCE与第三方提供者,Java的:JCA(JavaCryptographyArchitecture,Java加密体系结构)JCE(JavaCryptographyExtension,Java加密扩展包)JCA提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器。JCE在JCA的基础上作了扩展,提供了各种加密算法、消息摘要算法和密钥管理等功能。我们已经有所了解的DES算法、AES算法、RSA算法、DSA算法等就是通过JCE来提供的。有关JCE的实现主要在javax.crypto包(及其子包)中。JCA和JCE是Java平台提供的用于安全和加密服务的两组API。它们并不执行任何算法,它们只是连接应用和实际算法实现程序的一组接口。软件开发商可以根据JCE接口(又称安全提供者接口)将各种算法实现后,打包成一个Provider(安全提供者),动态地加载到Java运行环境中。,35,JAVAJCE与第三方提供者,BouncyCastleJCE就是其中的一个安全提供者。安全提供者是承担特定安全机制实现的第三方。有些提供者是完全免费的,而另一些提供者则需要付费。提供安全提供者的公司有Sun、BouncyCastle等,Sun提供了如何开发安全提供者的细BouncyCastle提供了可以在J2M

温馨提示

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

评论

0/150

提交评论