-
-
[讨论]关于RSA加密软件的算法
-
发表于:
2021-12-17 23:32
7368
-
最近看见一个keygen,软件注册码生成是用的RSA算法,keypen的思路是替换软件中的N,E不变,然后用自已的N1、E和D1(prikey),生成注册码,通过验证:
注册机中的N1、E、D1信息如下:
E=0x13
N1=93AF7A8E3A6EB93D1B4D1FB7EC29299D2BC8F3CE5F84BFE88E47DDBDD5550C3CE3D2B16A2E2FBD0FBD919E8038BB05752EC92DD1498CB283AA087A93184F1DD9DD5D5DF7857322DFCD70890F814B58448071BBABB0FC8A7868B62EB29CC2664C8FE61DFBC5DB0EE8BF6ECF0B65250514576C4384582211896E5478F9CB42FDED
我用RSATOOL2工具尝试分解N1,发现这个N1居然是个质素(prime),也就是说N1不可能是P和Q的乘得到,这与RSA算法的原理违背的:
RSA算法原理:
P = 1st large prime number
Q = 2nd large prime number (sizes of P and Q should not differ too much!)
E = Public Exponent (a random number which must fulfil:
GCD(E, (P-1)*(Q-1))==1)
N = Public Modulus, the product of P and Q: N=P*Q
D = Private Exponent: D=E^(-1) mod ((P-1)*(Q-1))
加密:C = M^E mod N.
解密:M=C^D mod N.
参数信息如下图:
加密测试:
解密测试:
加密、解密测试通过。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-12-19 23:17
被glopen编辑
,原因: