公钥和私钥
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
数字证书的原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
我的解释:
每个用户都有一对私钥和公钥。
私钥用来进行解密和签名,是给自己用的。
公钥由本人公开,用于加密和验证签名,是给别人用的。
当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。
当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。可以避免被其他人看到。
数字证书
是 数字形式的标识,与护照或驾驶员执照十分相似。数字证书是数字凭据,它提供有关实体标识的信息以及其他支持信息。数字证书是由成为证书颁发机构(CA)的 权威机构颁发的。由于数字证书有证书权威机构颁发,因此由该权威机构担保证书信息的有效性。此外,数字证书只在特定的时间段内有效。
数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。
我的解释:
数字证书用来使用户找到该授信机构的公钥。
原文:http://blog.csdn.net/turui/article/details/2048582
公钥和私钥成对出现,私钥加的密用公钥解,公钥加的密用私钥解。
公钥一般用于加密,验证签名
私钥一般用于签名,解密
签名的具体作法:
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
数字签名技术是先用HASH函数产生信息的摘要,再将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名是个加密的过程,数字签名验证是个解密的过程。
有三种证书:建行CA认证中心的根证书、建行网银中心的服务器证书,每 个网上银行用户在浏览器端的客户证书。有了这三个证书,就可以在浏览器与建行网银服务器之间建立起SSL连接。这样,您的浏览器与建行网银服务器之间就有 了一个安全的加密信道。您的证书可以让与您通讯的对方 验证您的身份(您确实是您所声称的那个您),同样,您也可以用与您通讯的对方的证书 验证他的身份(他确实是他所声称的那个他),而这一验证过程是由系统自动完成的。
银行系统一般做法是:
1. 用对方的公钥加密数据,对方收到后用自己的私钥解密;
2. 用你自己的私钥签名数据,对方收到后用你自己的公钥验证签名。
网银在传递数据过程中要把”传递的数据“用自己的私钥进行签名,而且要把”传递的数据“用公钥进行加密
客户端有自己的私钥和一个数字证书,其中私钥和服务器中的公钥成对,而且数字证书中的公钥和服务器上的私钥成对匹配.
过程如下:
(1)客户A准备好要传送的数字信息(明文)。
(2)客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。
3)客户A用自己的私钥(SecretKey)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。
4)客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。
5)客户A用双方共有的公钥(PublicKey)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给银行B。
6)银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SecretKey)对加密的DES密钥进行解密,得到DES密钥。
7)银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。
8)银行B用双方共有的公钥(PublicKey)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。
9)银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
分享到:
相关推荐
数字证书和公钥私钥加密是当今网络安全中的基础元素。它们在保护数据传输、验证身份、以及确保信息交流的完整性和机密性方面发挥着关键作用。以下是对数字证书原理和公钥私钥加密原理的详细解读。 数字证书是一种...
### 公钥私钥加密解密、数字证书与数字签名详解 #### 一、基础知识概述 在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥...
【数字证书原理与公钥私钥加密概述】 在信息技术领域,数据安全至关重要,尤其是在网络通信中。为了确保信息不被未经授权的用户访问或篡改,加密技术被广泛应用。本文将探讨数字证书的基本原理以及公钥私钥加密的...
本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...
java公钥加密私钥解密与数字证书,数字证书的生成看这里 http://hi.baidu.com/chenminliang/blog/item/2b30db24920ae0338744f9db.html
PFX(Personal Information Exchange)文件是微软定义的一种证书存储格式,它包含了用户的数字证书和相应的私钥,通常用于跨平台的数据传输或者网络通信中的身份验证。PFX文件通常以.pfx或.p12为扩展名,是二进制...
在IT安全领域,RSA是一种广泛使用的非对称加密算法,用于保护敏感数据,如密码、数字证书等。本文将详细讲解如何在Windows操作系统上利用OpenSSL工具生成RSA公钥和私钥。 首先,OpenSSL是一个强大的安全套接字层...
"密码学总结_公钥_私钥_数字签名_数字证书完全解析" ...这篇文章为读者提供了密码学的基础概念,包括单钥加密、私钥加密、公钥、私钥、数字签名和数字证书等,并且介绍了数字签名和数字证书的应用。
RSA算法是一种非对称加密算法,它在信息...综上所述,C++实现RSA公钥私钥加密算法涉及了大数运算、素数检测、欧拉函数、模逆运算等多个数学和密码学概念。理解并实现这一算法有助于深入理解信息安全基础和加密技术。
由于公钥是公开的,所以它可以安全地分发给任何需要加密数据的人,而私钥则需要保密,因为它用于解密数据或验证数字签名。这样的机制确保了只有拥有私钥的一方才能解密由公钥加密的信息,从而保护了数据的安全性。
本文将详细讲解如何使用C++在Visual Studio 2017环境下生成证书和私钥,并探讨公钥和私钥的概念及其作用。 首先,我们需要理解证书和私钥的基本概念。在公钥基础设施(PKI)中,证书是一种数字文档,用于证明一个...
通过上述介绍,我们可以看到**公钥私钥加密**及其配套的数字签名和数字证书技术,在现代网络安全领域发挥着至关重要的作用。它们不仅能够保护信息的机密性,还能确保信息的完整性和来源的可靠性,为用户提供了强大的...
**应用场景**:公钥加密私钥解密广泛应用于数字证书、电子邮件加密、安全套接层协议(SSL/TLS)等场景中。 #### 二、私钥加密公钥解密——实际为私钥签名公钥验证 私钥加密公钥解密这一说法并不准确,正确的表述...
3. **数字证书**:数字证书通常包含公钥信息,并由可信的第三方机构(如CA)签发。这些证书用于验证网站或其他实体的身份,确保用户正在与预期的实体通信。 #### 六、总结 通过以上分析,我们可以看到公钥和私钥在...
需要注意的是,实际应用中,公钥和私钥通常存储在证书(.pfx或.cer文件)中,可以通过X509Certificate2类来管理和使用。此外,为了安全起见,应当妥善处理密钥,避免硬编码在代码中,而是从可信的存储或服务中获取。...
数字证书是CA对公钥及关联信息的验证,它包含了公钥、私钥的指纹、CA的签名以及证书的有效期等。在Windows中,系统会自动处理证书的验证和安装。数字签名则是一种保证信息完整性和发送者身份的方法,它使用发送者的...
公钥加密和私钥解密在实际应用中有着广泛的应用,例如HTTPS协议用于安全的网页浏览,SSH用于远程登录,PGP用于电子邮件加密,以及数字证书用于身份验证等。了解和掌握公钥加密私钥解密的原理及其在Java中的实现,...
CA是一个可信赖的第三方实体,负责验证用户或系统的身份,并签发包含公钥和身份信息的数字证书。这些证书在互联网上广泛用于验证网站的身份,确保用户与正确的服务器通信,防止中间人攻击。 认证授权是网络安全中的...
"openssl工具(RSA网络通信加密,需要的,生成公钥私钥)" 这个标题提到了两个关键概念,一个是`openssl`工具,另一个是`RSA`加密算法,主要用于在网络通信中生成公钥和私钥对。 **`openssl`工具:** `openssl`是...