Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有 N 个 1024 位。我需要将消息 M(512 位)转换为蒙哥马利简化形式,如下所示。
M' = M * R^{-1} mod N
其中 , R = 2 ^ 512 (mod N)
我怎样才能达到结果?
如果您直接使用 OpenSSL 中的 bignum 包,则以下内容应该可以工作。
使用该函数BN_mod_exp计算您的 R=2^512 (mod N)。
BN_mod_exp
之后,您通过调用计算 R 的乘法模逆BN_mod_inverse。这将为您提供 R^-1。
BN_mod_inverse
完成后,您只需通过调用BN_mod_mul使用刚刚计算的 R^-1 和原始消息进行乘法来计算您的 M'。
BN_mod_mul
您将在 OpenSSL BigNum 包中找到上述功能。它们位于包含文件中:openssl/bn.h