首页
社区
课程
招聘
[讨论]关于RSA加密软件的算法
发表于: 2021-12-17 23:32 7646

[讨论]关于RSA加密软件的算法

2021-12-17 23:32
7646

最近看见一个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编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 5165
活跃值: (6785)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么厉害,1024位的因式分解被你破解了?
a25K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6S2j5%4c8G2M7X3c8T1i4K6u0W2j5$3!0E0i4K6u0r3K9h3&6V1k6i4S2Q4x3X3g2H3K9s2m8Q4x3@1k6I4N6h3g2J5P5g2)9K6c8o6p5H3x3K6M7H3z5o6t1#2z5e0f1J5z5o6l9J5x3o6t1K6z5o6t1^5x3e0V1$3z5o6t1K6x3e0b7&6x3e0t1I4x3U0R3#2y4e0l9^5x3K6j5J5x3K6j5@1z5e0f1%4z5e0l9H3x3o6f1#2x3U0R3J5y4U0f1@1x3e0t1%4x3e0p5#2y4o6M7I4x3K6p5H3x3K6f1J5x3e0l9J5x3e0t1H3x3U0p5K6x3K6f1#2z5o6M7H3z5e0R3#2z5e0b7$3x3K6R3I4x3K6j5&6x3e0p5#2x3K6b7H3x3U0R3J5z5e0p5K6y4e0t1J5y4o6l9H3y4K6R3#2z5o6V1#2z5e0R3H3x3e0R3#2y4o6p5I4z5o6M7J5z5e0l9#2y4U0x3#2y4U0b7$3y4e0f1%4z5o6j5&6x3U0t1&6y4o6b7J5y4e0V1H3x3K6t1%4y4U0f1#2y4o6R3I4y4o6j5%4y4e0t1J5z5o6V1#2y4e0b7@1x3e0l9@1y4o6x3#2z5e0b7$3x3U0b7I4y4o6l9H3y4K6t1&6y4K6M7&6z5e0j5J5y4U0V1@1y4e0R3$3x3o6l9H3x3K6R3^5y4o6M7H3z5e0x3&6x3U0t1&6z5o6t1H3y4e0j5H3y4U0b7&6x3o6b7@1y4o6l9H3z5o6V1#2y4e0t1%4x3o6V1H3x3U0M7^5y4U0R3H3z5e0V1^5x3K6l9@1x3U0l9J5x3U0j5$3y4U0p5@1y4o6x3^5y4e0x3@1y4o6M7I4y4K6M7H3x3o6t1J5x3K6V1H3x3K6p5K6x3U0l9#2z5o6M7$3x3K6M7^5z5e0f1K6x3U0j5#2x3H3`.`.


看状态是C,也就是未知,如果是P,才确定是素数。
2021-12-18 00:13
0
雪    币: 11515
活跃值: (8487)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
我用big integer calculate做素性测试显示非素数
2021-12-18 00:22
0
雪    币: 496
活跃值: (5155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

我再试一下



最后于 2021-12-18 02:56 被glopen编辑 ,原因:
2021-12-18 00:37
0
雪    币: 496
活跃值: (5155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
bluefish蓝鱼 我用big integer calculate做素性测试显示非素数

2021-12-18 02:11
0
雪    币: 496
活跃值: (5155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
bluefish蓝鱼 我用big integer calculate做素性测试显示非素数
开始的信息有误,我更正了
2021-12-18 02:56
0
雪    币: 5299
活跃值: (5340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
N 和 N1 有几字节的差别啊.
00000000

CB42FDED

就不止一个字节啊.
2021-12-18 09:38
0
雪    币: 496
活跃值: (5155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Mxixihaha N 和 N1 有几字节的差别啊. 00000000 和 CB42FDED 就不止一个字节啊.
原信息处理了
2021-12-18 12:28
0
雪    币: 496
活跃值: (5155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

搞明白了,当N为素数时,RSA采用下面的公式计算私钥:

φ(N)=N-1 

D = 1/E mod (φ(N))


最后于 2021-12-19 23:14 被glopen编辑 ,原因:
2021-12-18 23:58
0
游客
登录 | 注册 方可回帖
返回