是否有公钥流密码加密?

Gur*_*geh 3 python encryption public-key-encryption

我有一个程序会定期将敏感数据的小块(比如 8 个字节)附加到许多日志文件中。我希望对这些数据进行加密。我希望程序在启动时自动启动,所以我不想在程序启动时输入密码。我也不希望它在某处存储密码,因为这几乎会破坏加密的目的。

由于这些原因,在我看来,公钥加密将是一个不错的选择。该程序知道我的公钥,但我的私钥在其他地方受密码保护。

到现在为止还挺好。但是当我尝试使用 PyCrypto 对 RSA(或 ElGamal)加密一个 5 字节的小字符串时,输出会爆炸到 128 字节。我的日志文件足够大...另一方面,当我尝试对称加密时,如 Blowfish,输出字符串与输入字符串一样大。

所以,我的问题是:是否有一种相当安全的公钥加密算法,我可以一次加密 8 个字节的数据并且不会让它爆炸?(我想因子为 2 就可以了)。我想我想要的是一个公钥流密码。

如果没有这样的事情,我想我会放弃并使用对称加密并在启动时手动提供密码。

And*_*ath 5

通常,这是通过程序创建一些(真实)随机数的方式来解决的,这些随机数用作对称加密算法的密钥。

在您的程序中,您必须执行以下操作:

  1. 生成一些真实的随机数据(可能使用 /dev/random)作为密钥。
  2. 使用公钥算法加密私钥。
  3. 将密钥用于其他一些对称算法。

要解密这个,

  1. 使用私钥解密私钥。
  2. 使用密钥和对称算法来解密数据。

您可能想要为“好”密钥获取一些随机数据(例如 >=256 位)。

  • 密码是错误的词使用。正确的词或短语是“对称密钥”。 (2认同)