我正在研究一些安全性问题,并尝试实现RSA加密的基本形式。我正在使用Maple计算一些值,但我很难计算出来:
这些是我拥有的值:e,p,q
我需要计算“d”的哪个值将在以下等式中起作用:
d*e ≡ 1 mod (p-1)*(q-1)
符号注释:如果a-b是数字c的倍数,我们写“a≡bmod c”。
我被告知我可以在Maple中使用某种Power(a,b)mod c功能,但我不知道该怎么做。关于我如何计算Maple中'd'的值的任何说明?就我而言,e = 65537,p和q都是大质数(每个都是100多个数字)。
答案 0 :(得分:2)
就像d:= 1/e mod (p-1)*(q-1);
答案 1 :(得分:1)
您需要gcdex
功能,计算s
和t
,s*e + t*(p-1)*(q-1) = 1
并使用d=s
。
我感觉很糟糕没有指出这一点:如果这与实际安全有任何关系(而不是学习理论),那么不编写自己的代码而不花费大量的阅读有关实施攻击的时间(与数学相反)。 RSA在数学上非常简单(和漂亮),但安全实施却非常棘手。
请注意,您可能感兴趣的是一个特殊的StackExchange站点,以确保安全性。