Cryptography 在公钥密码学中,服务器如何解密来自客户端的消息?

Cryptography 在公钥密码学中,服务器如何解密来自客户端的消息?,cryptography,public-key,Cryptography,Public Key,在公钥密码学中,我所知道的是服务器中的公钥用于加密消息,而拥有私钥的客户端可以解密该消息,这很好 我不明白的是,由于服务器只有公钥来加密消息,因此它将如何解密来自客户端的响应。我相信公众不能被用来解密客户端的响应 此外,客户端如何将消息加密到服务器,因为私钥仅用于解密消息,而不用于加密 对不起我的无知。我在网上搜索过,不知怎么的,这些问题的答案我都找不到 任何帮助都将不胜感激 谢谢, Mohamed如果服务器只有公钥,则无法解密来自客户端的消息 还有一次,用粗体显示重要的vocab单词:如果服务

在公钥密码学中,我所知道的是服务器中的公钥用于加密消息,而拥有私钥的客户端可以解密该消息,这很好

我不明白的是,由于服务器只有公钥来加密消息,因此它将如何解密来自客户端的响应。我相信公众不能被用来解密客户端的响应

此外,客户端如何将消息加密到服务器,因为私钥仅用于解密消息,而不用于加密

对不起我的无知。我在网上搜索过,不知怎么的,这些问题的答案我都找不到

任何帮助都将不胜感激

谢谢,
Mohamed

如果服务器只有公钥,则无法解密来自客户端的消息

还有一次,用粗体显示重要的vocab单词:如果服务器只有公钥,则无法解密来自客户端的消息

服务器可能正在验证客户机签名的消息

在SSH公钥身份验证()的情况下,它是刚刚协商的会话ID和一些上下文数据(这要求客户机拥有私钥)上的签名。然后,服务器可以运行签名验证算法(只需要公钥)。如果预注册的密钥签出,则客户端将因此进行身份验证

在RSA密钥的情况下,签名和解密操作在数学上看起来很相似,这可能会导致一些人松散地使用这些术语,但我们应该做到精确

  • 加密(公钥):以这样一种方式转换内容,以阻止除预期接收者(私钥持有者)之外的所有人访问内容。
    • 常见算法:RSA
    • 在加密中,加密输出替换传输中的原始内容
    • 公钥加密通常用于加密新生成的对称密钥,该密钥实际上对数据进行加密。对于RSA,加密输出受到密钥大小的限制,对称算法的最大值要大得多
  • 解密(私钥):将加密操作中的内容转换回原始形式。
    • 因为任何人都可以拥有您的公钥,所以任何人都可以为您加密数据
    • 加密/解密对中没有内在的东西可以建立信任。。。这条信息可能是毒丸,你不知道是谁写的
  • 签名(私钥):对输入(通常是真实内容的摘要/散列)应用转换以生成其他人无法生成的值。
    • 常用算法:RSA、ECDSA、DSA
    • 签名与内容一起提供,但不替换内容
  • 验证(公钥):对输入和签名应用转换,结果为
    • 如果摘要由内容接收者独立计算,则签名证明内容未被篡改
    • 当签名被认为是正确的时,它证明它是由密钥持有人生成的,可以在信任决策中使用。(钥匙可能被泄露,在这种情况下,“钥匙持有人”和“原始钥匙持有人”可能不同)
    • 对于RSA,这是“使用类似于解密的算法解压缩摘要,然后比较摘要”,因此RSA实现可以指示正确的哈希是什么
    • 对于DSA和ECDSA,摘要在公式中用作BigInteger,该公式从上半部分生成签名的下半部分,因此DSA无法告诉您什么是正确的摘要值

“服务器只有公钥”-这就是你错的地方。服务器同时具有私钥和公钥。谢谢。这是我进一步的问题。在现实世界中,例如从本地访问gitHub存储库,在使用ssh keygen生成密钥后,客户端将*.pub密钥复制到git hub服务器(这意味着将公钥复制到服务器)。换句话说,服务器现在只有*.pub密钥(比如id_rsa.pub)。在这种情况下,我们怎么能说github服务器拥有我的私钥?请查看ssh的url,以便github@mohamed在这种情况下,您讨论的是使用私钥进行签名,并使用公钥验证签名。在RSA中,这与加密基本相同,但其他RSA是一种特殊情况。存在用于加密或签名的其他非对称加密算法。