哪个解密使用可变长度的二进制公钥?

时间:2012-06-28 06:58:10

标签: encryption public-key private-key

我有一个程序显然用可变长度的公共二进制密钥解密其数据。

我通过做一些或多或少受过教育的猜测来了解这些事实:

  • 逆向工程显示该程序需要包含公钥的文件名称
  • 在十六进制编辑器中查看此文件显示完全随机的二进制数据(没有任何有趣的模式或任何内容),前缀为文件的长度 - 在一个版本中,文件只有200个字节长,另一个大约2000个字节。 / LI>
  • 考虑到安全性,我想程序公司用私钥加密数据文件,以便没有人可以创建自己的数据文件(这符合程序需要 - 不应该允许“修改”,也不要显示数据在第三方计划中。)
  • 数据文件的前缀是人类可读的64字节长标题,其余的则是完全随机的二进制数据。

我想为自己的程序使用相同的系统,如果可以的话。 是否存在能够使用可变长度的二进制密钥进行非对称加密/解密的加密方法,如果是,哪一个以及如何实现这样的事情?

1 个答案:

答案 0 :(得分:1)

这不是继续进行的方式。您可以使用固定长度的密钥来处理可变长度数据。由于非对称加密非常慢,通常的方法是生成随机对称密钥(例如,128位AES密钥)并使用例如加密数据加密数据。 CBC。然后,对称密钥由非对称公钥加密,比如RSA 2048位。解密意味着使用私钥解密密钥,然后使用特定于数据的密钥解密数据。

如果您不知道如何执行此操作,则可以使用能够创建CMS(加密消息语法)的库来执行此方案。

注意:即使您可以创建该大小的密钥对,2000字节的非对称密钥对也会永远加密某些东西。