[Back] This page generates some RSA challenges for cracking. Easy cracking uses 60-bit primes, medium uses 80-bit primes and hard uses 128-bit primes:
RSA Challenge Generator |
Method
Here is an example:
Encryption parameters e: 65537 N: 1034776851837418228051242693253376923 Cipher: 582984697800119976959378162843817868 We are using 60 bit primes
Now we have to crack N by finding the primes that make up the value.
If we use this [link], we get:
Factors ------- 1,034,776,851,837,418,228,051,242,693,253,376,923 = 1,086,027,579,223,696,553 x 952,809,000,096,560,291
p=1,086,027,579,223,696,553 q=952,809,000,096,560,291
Now we work out PHI, which is equal to \((p-1) \times (q-1)\):
>>>p=1086027579223696553 >>>q=952809000096560291 >>> print (p-1)*(q-1) 1034776851837418226012406113933120080
Now we find \(e^{-1}\bmod PHI\) (and where (\(d\times e)\bmod PHI =1\)), such as using [here]:
Inverse of 65537 mod 1034776851837418226012406113933120080 Result: 568411228254986589811047501435713
This is the decryption key. Finally we decrypt with \(Message=Cipher^{d}\bmod N\):
>>> d=568411228254986589811047501435713 >>> cipher=582984697800119976959378162843817868 >>> N=1034776851837418228051242693253376923 >>> print pow(cipher,d,N) 345
The message is 345
Finally, let's check the answer. So we can recipher with the encryption key and we use \(Cipher = M^{e}\bmod N\):
>>> m=345 >>> e=65537 >>> N=1034776851837418228051242693253376923 >>> print pow(m,e,N) 582984697800119976959378162843817868
This is the same as the cipher, so the encryption and decryption keys have worked. Thus the encryption key is [65537, 1034776851837418228051242693253376923] and the decryption key is [568411228254986589811047501435713, 1034776851837418228051242693253376923]