3

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

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

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

我怎样才能达到结果?

4

1 回答 1

2

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

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

之后,您通过调用计算 R 的乘法模逆BN_mod_inverse。这将为您提供 R^-1。

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

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

于 2014-11-13T14:08:35.270 回答