0

如果我知道 parameter ak那么p如何在 C# 中计算它?

s=a*k^-1 mod p

它用于加密目的,我是新手。如果问题不恰当,请不要感到被冒犯。

请注意,它k^-1是模逆运算符,k (mod p)而不是幂运算符。

4

2 回答 2

2

由于问题是关于模逆的,我认为寻找另一个SO question将使寻求者受益。

答案的关键是——

Net 4.0+ 使用特殊的模运算函数 ModPow 实现 BigInteger(它产生“X power Y modulo Z”),您不需要第三方库来模拟 ModInverse。如果 m 是素数,您需要做的就是计算:

根据MSDN 文档,在 C# 中,这被定义为

public static BigInteger ModPow(
    BigInteger value,
    BigInteger exponent,
    BigInteger modulus
)

使用它,我们可以做一些类似计算 k 模 p 的倒数的事情

BigInteger bi= ModPow(k, -1, p );
int b= (int) bi;
s= (a* bi )%p;
于 2015-05-04T11:19:38.157 回答
-3

公共静态双DoMath(双a,双k,双p)

    {
        return (a * Math.Pow(k, -1)) % p;
    }
于 2015-05-04T11:34:42.117 回答