【问题标题】:How to encrypt a message using EC in python?如何在 python 中使用 EC 加密消息?
【发布时间】:2020-05-07 08:49:30
【问题描述】:

我正在使用https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/# 库 并且没有 EC 加密选项,只能签名。有没有办法使用 EC 加密文本,还是必须使用 RSA?

【问题讨论】:

    标签: python encryption public-key-encryption elliptic-curve


    【解决方案1】:

    不,您可以使用 ECIES。 IES 代表集成加密方案。它使用 EC 的key agreement variant 计算对称密钥,然后可以将其用于加密,例如使用 AES/GCM。

    缺点是您需要将数据特定密钥对的公钥与密文一起发送。话又说回来,RSA 加密也比明文扩展了密文。

    实施 IES 并不难,但仍然比简单地调用一个函数来执行 RSA 加密更难 - 你需要执行密钥对生成、密钥协议,包括密钥派生毕竟对称加密/解密.

    请注意,您应该使用不同的密钥进行签名和解密,将密钥用于不同的目的可能非常危险。

    【讨论】:

    • 为什么不使用 Libsodium pyNaCL
    • @kelalaka 那是 ECIES 的实现,对吧?好的,它还允许两个静态密钥对和一个随机数,但使用 DH 加密的想法似乎是一样的。但是,是的,有效的评论,可能最好使用它。
    • 在我看来,RSA 更适合静态(非密钥更改)加密方案,EC 更适合用于更改密钥的实时交易。
    • 也许更好理解,但你能说出一个重要的客观特征,为什么 RSA 比 ECC 更适合加密? ECDH 似乎是一个非常安全和高效的选择。
    • EC,据我了解,需要更改 nonce => 交换新的共享密钥以降低被黑客入侵的可能性,或者?参考 Sony PS3 问题,不改变 nonce。
    猜你喜欢
    • 2016-06-08
    • 2021-07-04
    • 2019-04-13
    • 2020-08-05
    • 2021-07-22
    • 2020-01-12
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    相关资源
    最近更新 更多