gpt4 book ai didi

java - DSA 签名验证和 BigInteger 类

转载 作者:行者123 更新时间:2023-12-02 11:24:19 25 4
gpt4 key购买 nike

我收到了一个(非常)简单的 DSA 问题,并且已经找到了 key 和其他变量。为了验证签名,我需要以某种方式翻译方程:

V = [(y^u1*h^u2)mod p] mod q

转换为 BigInteger 运算。这在java上可能吗?到目前为止,我一直在成功使用 modPow,但是到目前为止,所有问题都采用以下形式:

r.modPow(指数,模数);

我不知道如何通过 BigInteger 来完成上述方程(特别是粗体部分),我想知道它是否可能。有人有什么想法吗?

如果 BigInteger 做不到,我该如何通过 Pari 来表达这个方程?

最佳答案

我认为你只需要使用该身份

(a*b) mod p == ((a mod p)*(b mod p)) mod p

因此计算 yu1 × hu2 mod p:

  1. 使用 modPow 计算 yu1 mod p,
  2. 使用 modPow 计算 hu2 mod p,
  3. 将第 1 步和第 2 步的结果相乘,
  4. 减少第 3 步 mod p 的结果。

第 4 步是必要的,因为第 1 步和第 2 步的结果相乘可能会产生大于 p 的值。

关于java - DSA 签名验证和 BigInteger 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com