I was attempting Wiener's Attack on RSA with a simple example and I came to a one variable modulo equation which I managed to solve with brute-force but I think it must be easier than that with some algorithm/formula.
here it is.
e * d \equiv 1 \mod phi(N)
e and phi(N) are known: e = 5 550 641 and phi(N) = 15 726 816
so it gives us: 5 550 641 * d \equiv 1 \mod phi(N)
I got the answer, d = 17 but as I mentioned only with brute force, is there any formula or algorithm for solving this equation?
Answer
Solving 5550641 d \equiv 1 \pmod{15726816} can be done very quickly. This is called finding the modular inverse of 5550641 modulo 15726816. The best way to do this is through the Euclidean Algorithm (along with back substitution. This is sometimes called the Extended Euclidean Algorithm).
This is a topic that has been asked extensively on this site, so I will link you to some examples.
- In Modular Inverses it is asked to find the modular inverse of 19 mod 141. This is the same question as yours, but with different numbers.
- In Using Extended Euclidean Algorithm for 85 and 45 we have another example with still different numbers.
- In How to use the Extended Euclidean Algorithm manually? some details are given in a more general context, with an eye towards computing by hand. I'll note that in your case, you should really use a computer. But I'm assuming that you want to understand, as otherwise you could just prompt wolframalpha.
Good luck!
No comments:
Post a Comment