Cryptography 公钥密码是如何工作的

Cryptography 公钥密码是如何工作的,cryptography,rsa,public-key,Cryptography,Rsa,Public Key,我对RSA的理解是Alice可以创建公钥和私钥的组合,然后将公钥发送给Bob。然后,Bob可以使用公钥加密某些内容,Alice将使用公钥和私钥组合对其进行解密 但是,Alice如何加密发送给Bob的内容?鲍勃将如何解密它?我这样问是因为我很好奇,当我登录我的银行网站时,我的银行是如何向我发送诸如在线对账单之类的数据的。我的浏览器如何解密这些信息?我没有私钥。很简单,你需要一把钥匙 SSL/TLS通过在连接设置期间创建对称会话密钥来解决此问题。公钥密码用于建立会话密钥,然后用于双向数据通信 Ali

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


但是,Alice如何加密发送给Bob的内容?鲍勃将如何解密它?我这样问是因为我很好奇,当我登录我的银行网站时,我的银行是如何向我发送诸如在线对账单之类的数据的。我的浏览器如何解密这些信息?我没有私钥。

很简单,你需要一把钥匙


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

Alice将使用公钥和私钥组合对其进行解密

爱丽丝会用她的私钥解密它

然而,Alice如何加密要发送给Bob的内容?鲍勃将如何解密它?

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

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

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

但是,Alice如何加密发送给Bob的内容?鲍勃将如何解密它?我这样问是因为我很好奇,当我登录我的银行网站时,我的银行是如何向我发送诸如在线对账单之类的数据的。我的浏览器如何解密这些信息?我没有私钥

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


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

基本上,过程是:

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

  • 如果你连接到你的银行网站,它可以做很多加密的事情。最重要的是,您使用银行的公钥向银行发送一条信息,因为在每个SSL(https)连接服务器发送到客户端时,它的公钥都打包为证书


    证书和全球PKI的使用非常重要。你要确保,如果你给银行你的银行密码,那另一边就是你的银行,而不是其他人。这将得到解决,因为在每台计算机上都有少量知名组织(如VeriSign)的公钥,银行不仅向您发送他的服务器公钥,还向您发送证书。例如,证书是由VeriSign签名的消息,上面写着“此公钥实际上来自银行XYZ”。所以,因为您拥有VeriSign的公钥,所以可以首先验证银行的服务器证书是否正确。所以你可以肯定,你确实与你的银行进行了沟通

    这不是我创造的,但有人与我分享了这段视频,这有助于让理论更有意义。细节(实施)始终是魔鬼


    总的来说,我在为微软C#认证做准备时,很长一段时间都在努力理解公钥密码以及PKI的其他元素,如数字签名和证书

    我在cgi.com上看到了一个简明详细的PDF格式的解释。我知道又回到了老爱丽斯和鲍勃身边!但它用它的图表和笔记为我澄清了一切,最后还有一些发人深省的问题。绝对推荐


    访问

    链接已断开。你能更新它吗?链接对我来说很好。不幸的是,链接断了