I know I need to use the extended euclidean algorithm, but I\'m not sure exactly what calculations I need to do. I have huge numbers. Thanks
The approved answer by Thilo is incorrect as it uses Euler's totient function instead of Carmichael's totient function to find d
. While the original method of RSA key generation uses Euler's function, d
is typically derived using Carmichael's function instead for reasons I won't get into. The math needed to find the private exponent d
given p
q
and e
without any fancy notation would be as follows:
d = e^-1*mod(((p-1)/GCD(p-1,q-1))(q-1))
Why is this? Because d
is defined in the relationship
de = 1*mod(λ(n))
Where λ(n)
is Carmichael's function which is
λ(n)=lcm(p-1,q-1)
Which can be expanded to
λ(n)=((p-1)/GCD(p-1,q-1))(q-1)
So inserting this into the original expression that defines d
we get
de = 1*mod(((p-1)/GCD(p-1,q-1))(q-1))
And just rearrange that to the final formula
d = e^-1*mod(((p-1)/GCD(p-1,q-1))(q-1))
More related information can be found here.