RSA解密密钥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA解密密钥相关的知识,希望对你有一定的参考价值。
计算C#中RSA的解密密钥的公式是什么?
我一直在使用
BigInteger d = BigInteger.ModPow(e, (euiler - 1), euiler)
但是那似乎不正确,而我获得正确解密密钥的唯一方法是,例如,如果我为de硬编码一个值,
BigInteger d;
BigInteger de = 7;
d = ((de * euiler) + 1) / e;
答案
计算C#中RSA的解密密钥的公式是什么?
与任何语言相同:)
(d * e) mod LCM(p-1, q-1) == 1; solve for d.
使用C#-y语法
d = ModInverse(e, LCM(p - 1, q - 1))
稍微不那么密集的计算(避免了计算LCM的需要)
eulierTotient = (p - 1) * (q - 1);
d = ModInverse(e, eulierTotient);
((它将产生与LCM不同的d,但仍会起作用)
ModInverse(modular multiplicative inverse)不太难,对于Extended Euclidean Algorithm。如果您不想将算法独立转换为C#,则始终可以在现有答案中找到实现,例如How to perform modinverse in C#。
以上是关于RSA解密密钥的主要内容,如果未能解决你的问题,请参考以下文章