RSA 如何保持身份验证和不可否认性

How do RSA keep Authentication and Non-repudiation

抱歉我的英语不好。我已阅读有关安全性的内容并了解 RSA 的工作原理。 但是 RSA 如何保持身份验证,中间人可以使用 public 密钥和假消息返回。以及它如何保持不可否认性,向您发送由 public 密钥加密的消息的人可以说它不是来自他并且是伪造的?

some math behind RSA PKI(public 密钥基础设施),但我会尽量保持简单。尽管许多其他站点和 questions/answers 中都描述了这种情况。你到底有什么不明白的?

想法是,使用 public 密钥很容易加密,但无法解密。只有使用私钥才能解密。

看来你的问题是针对其他地方的。您缺少的(并且不是 RSA 本身的一部分)是 certificates。证书可以使用 RSA。证书是有关 public 密钥持有者的信息。仍然 - 有问题。如果一个实体(个人、网站)给你提供了一个证书,你如何确定这个证书真的属于该网站、个人或组织?

这就是定义术语 证书颁发机构 (CA) 的原因 - 有您(或您的浏览器)应该信任的组织。

因此,当网站创建其 RSA 密钥对时,一些证书颁发机构会颁发一个签名证书(绑定到 public 密钥),该证书确实来自该网站、个人或组织。

a man in middle can you public key and fake message back.

您的客户端(浏览器、应用程序)必须有一份受信任的证书颁发机构列表。通常它已经存储在您的系统中。所以真正的网页可以提供它的 public 密钥和证书,并使用基于 public 密钥的加密。浏览器检查证书是否有效并且是由受信任的机构颁发的。

"man in the middle" 无法提供有效且可信(由 CA 签名)的证书。

And how it keep Non-repudiation, someone who send you a message encrypted by public key can say that it is not from him and it is faked?

签约也是如此。使用私钥对数据进行签名(或验证)后,任何人都可以使用 public 密钥验证签名。证书绑定到 public 密钥。通常只有在证书颁发机构验证身份时才会颁发签名证书(例如电子身份证、代码签名证书等)。因此任何人都可以验证签名是由受信任机构验证的人创建的。