【问题标题】:How do I export an ElGamal key to a text file?如何将 ElGamal 密钥导出到文本文件?
【发布时间】:2013-06-26 10:00:32
【问题描述】:

我一直致力于加密字符串并将其显示为 QR 码(在对字符串进行 base64 编码之后)。

我想使用 PyCrypto 中的 ElGamal 私钥-公钥加密模块进行加密,但问题是它没有将密钥保存到文本文件的导出功能。我错过了什么吗?如果没有,是否有一种聪明的方法可以导出它,或者我应该看看其他东西?

PS。使用 ElGamal 而不是 RSA 的原因是我可以使密钥小于 1024 字节,这使得二维码更小、更简单。

【问题讨论】:

  • El-gamal 密钥大小不小于 RSA。您应该研究 ECC(椭圆曲线加密)以获得更短的非对称密钥大小。
  • 只是一个谷歌搜索的快速帮助:这个算法的名字实际上是“ElGamal”。注意“a”而不是“e”。
  • 768 位密钥已经被破解,并且暴力攻击一直在变得更快。 1024 位是当今任何安全性的最低要求。

标签: python encryption rsa pycrypto elgamal


【解决方案1】:

您可以使用直接访问 ElGamal 密钥组件,因为它们是密钥对象的成员。

在 Python 2.x 中,可以执行以下操作来打印文本文件中的组件:

from Crypto.PublicKey import ElGamal
from Crypto.Random import get_random_bytes

key = ElGamal.generate(2048, get_random_bytes)
comps = ('p', 'g', 'y', 'x')
out = "\n".join(["{} = {}".format(comp, getattr(key, comp)) for comp in comps])
print out

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 2014-04-22
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多