【问题标题】:Montgomery Reduction form using OpenSSL library使用 OpenSSL 库的蒙哥马利约简形式
【发布时间】:2014-11-13 13:12:58
【问题描述】:

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

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

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

我怎样才能达到效果?

【问题讨论】:

    标签: cryptography openssl montgomery-multiplication


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我也是这么做的。但是,我将 R & R^-1 设为 1。它正确吗?我无法弄清楚这个问题。
    • 你能发布你的素数 N 吗?
    • 谢谢..它工作..我改变了BIGNUM结构的初始化。
    • @user3648560 恭喜!
    • 谢谢。我仍然无法完成实际任务。您对“RSA 上的 Brumley 时间攻击”有任何想法吗?
    猜你喜欢
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2012-10-31
    相关资源
    最近更新 更多