gpt4 book ai didi

encryption - 用于加密的公钥;用于解密的私钥?

转载 作者:行者123 更新时间:2023-12-03 16:26:25 26 4
gpt4 key购买 nike

我知道私钥和公钥在数学上是相关的,用一个 key 加密的数据只能用另一个 key 解密。我的问题是私钥总是用来加密数据,而公钥总是用来解密它?或者反之亦然,如果是这样,您能否给出一些示例应用程序,将其用于其他方向(用于加密的公钥和用于解密的私钥)?

最佳答案

加密是为了保护一些数据的 secret 性;数据被转换成不透明的 blob,反向操作需要攻击者不知道的东西,即“ secret ”或“私有(private)”信息。加密的全部意义在于仅使用公共(public)信息无法进行解密。因此解密使用私钥。但是,让任何人加密数据是没有问题的,因此加密可以使用公钥。

有一些算法(实际上只有一个:RSA),乍一看似乎是“可恢复的”:您可能会考虑使用私钥进行加密,使用公钥进行解密。如上所述,存在 secret 性(如果解密 key 是公开的,那么任何人都可以解密,因此加密数据不再被视为 secret )。这种“反向加密”可以用作数字签名算法的基础,其中没有 secret 性的概念,而是 key 所有者行为的可验证证明。

然而 RSA 不仅仅是模幂运算。 RSA 加密首先通过称为“填充”的操作将输入消息转换为一个大整数。 RSA签名生成首先通过另一个操作将输入消息转换为一个大整数,也称为“填充”; 但是 这根本不是相同的填充。填充对于安全性至关重要,加密和签名所需的特征非常不同。例如,加密填充需要高水平的随机性,而签名填充需要大量冗余(和散列函数,以适应长输入消息)。

将签名称为“使用私钥加密”是 RSA 标准在历史上的表述方式(因此名称如“md5WithRSAEncryption”),但它不准确(填充是并且必须是不同的)并且过于具体(它适用仅适用于 RSA,而不适用于 El Gamal、DSA、Diffie-Hellman、NTRU...)。这只是一个普遍的混淆。

关于encryption - 用于加密的公钥;用于解密的私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5467333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com