蒙哥马利减少形式使用OpenSSL库

时间:2014-11-13 13:12:59

标签: cryptography openssl montgomery-multiplication

我有1024位的N.我需要将消息M(512位)转换为蒙哥马利缩减形式,如下所示。

M'= M * R ^ { - 1} mod N

其中,R = 2 ^ 512(mod N)

如何实现结果?

1 个答案:

答案 0 :(得分:2)

如果您直接使用OpenSSL中的bignum包,则以下内容应该有效。

使用函数BN_mod_exp计算R = 2 ^ 512(mod N)。

然后通过调用BN_mod_inverse来计算R的乘法模逆。这将给你R ^ -1。

完成后,您只需通过调用BN_mod_mul来计算您的M',然后使用刚刚计算出的R ^ -1和原始信息进行乘法。

您将在OpenSSL BigNum Package中找到上述功能。它们位于包含文件中:openssl / bn.h