OpenSSL RSA算法上的salt在哪里?

时间:2015-04-14 17:36:58

标签: openssl rsa salt

我在OpenSSL中使用选项-salt找到了对称例程的salting技术。但我找不到非对称RSA算法的盐选项。

1 个答案:

答案 0 :(得分:2)

salt参数仅对基于密码的加密有意义。密码用于派生用于加密的密钥。当您将密码传递给OpenSSL以加密某些内容时,您也可以指定一个salt来增加整个过程的输入熵。

RSA不是基于密码的。密钥是预先生成的并直接使用。因此,没有地方可以使用盐来制作RSA。

对称密钥和RSA密钥的结构也存在差异。对称分组密码的密钥只是二进制字符串/数组。它们可以很容易地随机生成,也可以通过盐渍密码生成。另一方面,RSA密钥具有特定的数学结构,不能完全随机。

这是因为一个RSA密钥对用于加密双方在一个方向上的通信。如果没有RSA的私钥,就不能简单地生成公钥。它们必须同时生成。让一方生成公钥而另一方使用salt生成私钥是没有意义的,因为

  1. 密钥不可互操作或
  2. 更糟糕的是,公钥持有者也可以在此过程中生成私钥。