2010-05-18 42 views
6

我对RSA的理解是,Alice可以创建一个公钥和一个私钥组合,然后将公钥发送给Bob。然后,Bob可以使用公钥对某些内容进行加密,Alice将使用公钥和私钥组合对其进行解密。公钥加密如何工作

但是,Alice如何加密某些内容才能发送给Bob?鲍勃如何解密它?我问,因为我很好奇,当我登录我的银行网站时,我的银行向我发送了诸如我的在线报表等数据。我的浏览器如何解密这些信息?我没有私钥。

回答

3

简单,你需要一个密钥。

SSL/TLS通过在连接设置期间创建对称会话密钥来解决此问题。公钥密码术用于建立会话密钥,然后用于双向数据通信。 Read more about TLS

4

Alice will use the public and private key combo to decrypt it

爱丽丝只想用她的私钥解密。

However, how can Alice encrypt something to be sent over to Bob? How would Bob decrypt it?

爱丽丝需要Bob的公钥送点东西给他。 通常,公钥加密用于身份验证,不可否认(如签名)和对称密钥的分发(加密/解密长消息的速度更快)。

0

在这种情况下,Alice将使用Bob的公钥对数据进行加密,然后Bob将用他的私钥对其解密。

基本上,公钥加密数据和私钥解密数据。由于每个用户都有公钥和私钥,因此可以将数据安全地发送给其他任何用户。

0

但是,Alice如何加密某些内容才能发送给Bob?鲍勃如何解密它?我问,因为我很好奇,当我登录我的银行网站时,我的银行向我发送了诸如我的在线报表等数据。我的浏览器如何解密这些信息?我没有私钥。

这是你错了的地方;你有一个私钥。作为握手过程的一部分,每一方都会生成两个密钥:公钥和私钥。客户端将其公钥发送给服务器,服务器将使用它来加密发送给客户端的所有数据。同样,服务器生成两个密钥并将其公钥发送给客户端,客户端将使用它来加密发送到服务器的所有数据。

在很多情况下,非对称密钥算法仅用于交换另一个密钥,该密钥用于对称算法。

7

基本上,程序是:

  1. 客户端连接到服务器并请求服务器的证书。证书包含公钥和服务器身份信息。
  2. 假设客户端对服务器的身份感到满意,它会生成一个随机数P并使用服务器的公钥对其进行加密。
  3. 只有服务器可以解密P(使用私钥 - 不与任何人共享),因此当客户端将加密的随机数发送到服务器时,服务器会对其解密。
  4. 客户端和服务器都使用P产生在对称加密算法中使用的对称密钥,因为只有在客户端和服务器知道用来生成密钥P值的安全知识。
0

如果您连接到银行的网站,它会处理大量的密码问题。最重要的是,您使用银行的公钥将一条信息发送给银行,因为在每个SSL(https)连接服务器发送给客户端时,它都是公钥打包成一个证书。

证书和全球PKI的使用很重要。你要确定的是,如果你向银行提供你的银行卡,那另一边是你的银行,而不是其他人。这将得到解决,因为在每台计算机上都有少量知名组织(如VeriSign)的公钥,而银行不仅向您发送其服务器公钥,而且还向您发送证书。证书是VeriSign签署的一条消息,例如“这个公钥真的来自银行XYZ”。因为您拥有VeriSign的公钥,您可以先验证该银行的服务器证书是否正确。所以你可以肯定,那你真的与你的银行沟通。

2

在一般笔记我努力去理解公钥加密与PKI的其他元素,如数字签名和证书,同时对微软C#认证准备沿着相当长一段时间。

我在cgi.com上遇到了一个简明而详细的PDF格式的解释。我知道它回到了好老爱丽丝和鲍勃!但它真的用图表和笔记清理了我的东西,最后还有一些令人发指的问题。绝对推荐它。

参观http://www.cgi.com/files/white-papers/cgi_whpr_35_pki_e.pdf