`
cherubim.chen
  • 浏览: 32467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

公钥、私钥、数字证书的概念(转)

阅读更多
公钥和私钥
                                     
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。
      公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
      2. 必须保证是我发送的邮件,不是别人冒充我的。
      要达到这样的目标必须发送邮件的两人都有公钥和私钥。
      公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
      比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
      首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
      其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
      当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。


  
数字证书的原理

   数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

我的解释:

每个用户都有一对私钥和公钥。
私钥用来进行解密和签名,是给自己用的。
公钥由本人公开,用于加密和验证签名,是给别人用的。

当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。
当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。可以避免被其他人看到。


数字证书

是 数字形式的标识,与护照或驾驶员执照十分相似。数字证书是数字凭据,它提供有关实体标识的信息以及其他支持信息。数字证书是由成为证书颁发机构(CA)的 权威机构颁发的。由于数字证书有证书权威机构颁发,因此由该权威机构担保证书信息的有效性。此外,数字证书只在特定的时间段内有效。

数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。


我的解释:

数字证书用来使用户找到该授信机构的公钥。

银行系统的使用
有三种证书:建行CA认证中心的根证书、建行网银中心的服务器证书,每个网上银行用户在浏览器端的客户证书。有了这三个证书,就可以在浏览器与建行网银服务器之间建立起SSL连接。这样,您的浏览器与建行网银服务器之间就有 了一个安全的加密信道。您的证书可以使与您通讯的对方验证您的身份(您确实是您所声称的那个您),同样,您也可以用与您通讯的对方的证书验证他的身份(他 确实是他所声称的那个他),而这一验证过程是由系统自动完成的。
银行系统一般是:
1. 用对方的公钥加密数据,对方收到后用自己的私钥解密;
2. 用你自己的私钥签名数据,对方收到后用你自己的公钥验证签名。
网银在传递数据过程中要把”传递的数据“用自己的私钥进行签名,而且要把”传递的数据“用通话对方的公钥进行加密
客户端有自己的私钥和一个数字证书,其中私钥和服务器中的公钥成对,而且是数字证书中的公钥和服务器上的私钥成对匹配.
过程如下:
1)客户A准备好要传送的数字信息(明文).
2)客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。
3)客户A用自己的私钥(SK)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。
4)客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。
5)客户A用双方共有的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙.
6)银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥.
7)银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废).
8)银行B用双方共有的公钥(PK)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。
9)银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
分享到:
评论

相关推荐

    数字证书原理,公钥私钥加密原理

    数字证书原理,公钥私钥加密原理基础概念和原理,数字证书的管理与使用

    密码学总结_公钥_私钥_数字签名_数字证书完全解析

    1、很多刚接触加解密的同学会对单钥、双钥加密、公钥、私钥、数字证书、数字签名的概念感到头疼,这篇文章就是给你治病的。 2、童叟无欺,保证你看了过后会很满意。

    公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip

    公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip

    数字证书技术大全

    所有与数字证书相关的各种概念和技术,统称为PKI( Public Key Infrastructure 公钥基础设施),为解决公钥与用户映射关系问题,PKI引入了数字证书。数字证书里包含了用户身份信息,用户公钥信息(两者用于确定用户...

    证书服务器配置与管理.pptx

    证书服务的基本概念 公钥数字证书(又称为公钥证书、数字证书、Certificates)简称证书,是用于绑定实体身份和公钥信息的经过权威机构数字签名的声明,以文件的形式存在,证书将公钥与保存对应私钥的实体绑定在一起...

    信息安全概论课后习题答案总结(华南理工大学出版社)

    首先,在选择题方面,涉及到报文鉴别、数字证书、加密算法、身份验证和入侵检测等核心概念,要求考生理解信息安全领域的关键要素。 填空题涵盖了加密算法的特性和应用,例如报文鉴别的方式、RSA加密安全性的依赖、...

    单点登录saml

    aml是一种xml格式的语言。 翻译过来大概叫 安全断言(标记)语言。 这里有两个点: 第一是“安全”, 第二是“断言(assertion)”。... 通过给断言加上签名和加密,再结合数字证书系统就确保了saml不受攻击。

    网络安全复习题(1).doc

    个人数字证书 B.SSL服务器证书 C.安全电子邮件证书 D.SET服务器证书 3.关于Diffie-Hellman算法描述正确的是( B ) A.它是一个安全的接入控制协议 B.它是一个安全的密钥分配协议 C.中间人看不到任何交换的信息 D.它是...

    网络安全解答题.docx

    为了验证证书持有者是其合法用户(而不是冒名用户), SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。 宿舍里面机子可以上网,某台机子开机后不可以上互联网,但可以访问局域网共享资源...

    JAVA 2平台安全技术-结构,API设计和实现

    4.3 数字证书 77 4.4 有用的安全工具 80 4.4.1 密钥数据库 80 4.4.2 keytool 82 4.4.3 策略工具 86 4.4.4 jarsigner 88 4.4.5 代码签名实例 91 4.5 非专业安全策略管理 92 第5章 结构定制安全 94 5.1 创建新的许可权...

    电子商务设计师真题06年和07年

    【概念结构中设业计务】员和维修工是员工的子实体。 图 2-1 【逻辑客结户构(设计】实体联系图 (5) 委车托辆书(车(牌号,客户编号,,车折型,扣颜率,色,联车系辆人类,别联)系电话) (6) 维修项目预( 维计修完项工...

Global site tag (gtag.js) - Google Analytics