确定性非对称加密

2024-05-29 11:09:42 发布

您现在位置:Python中文网/ 问答频道 /正文

虽然它被认为不安全,但我需要一个Python库,它总是使用非对称加密方案为相同的明文生成相同的密文

这意味着在使用k加密m时,给定一个明文m和一个公钥k,我将始终得到一个恒定的密文c。 如果有一种方法可以使用Python库“加密”来实现这一点,那就更好了


Tags: 方法方案公钥密文非对称
1条回答
网友
1楼 · 发布于 2024-05-29 11:09:42

您找不到它,因为公钥加密不可能是确定性的。任何确定性公钥加密方案都会受到非常简单的攻击:给定密文,猜测明文可能是什么,并通过使用公钥加密来验证猜测。任何人都可以执行此攻击,因为加密密钥是公开的

这与公钥签名完全不同,公钥签名可以是确定性的,因为能够区分两个签名来自同一消息不会改变签名的有效性。有了加密技术,能够分辨出两个明文是同一条消息确实会破坏加密的整个目的

有一种情况下,公钥加密可能是确定性的,那就是如果明文是随机生成的,或者是从随机生成的数据中派生出来的,那么就不可能猜测潜在的明文。然而,有了这样的输入限制,您不应该寻找“非对称加密”方案,而应该寻找较低级别的原语:陷门置换。这不是一个直接可用的原语,但它可以是加密机制(例如公钥加密机制)的构造块。因此,您不能期望库将其作为接口提供。此外,典型的协议在使用陷门置换的方式上并不通用。因此,您的协议定义将调用特定的原语,而不是“确定性非对称加密”原语

如果您认为您需要“确定性非对称加密”,那么您正在设计自己的加密方案,而且它不可能是正确的。不要那样做。如果您需要帮助解决问题,ask about your actual problem instead of the dead end you've reached trying to solve it

相关问题 更多 >

    热门问题