首页
社区
课程
招聘
[求助]请帮忙识别加密方式
发表于: 2011-3-14 10:34 7211

[求助]请帮忙识别加密方式

2011-3-14 10:34
7211
  各位大牛,在分析一个软件时,遇到了大数运算。我以前对这方面几乎没有涉足。前几天还发帖子,请教一个算法,最后确认是求余算法的Barrett规约。那个问题解决以后,就到了整个算法的主流程。由于搞不清是属于哪一种加密算法,特发帖子向各位大牛请教。
  这个主流程是由一个函数来完成的。这个函数有四个参数,分别描述如下:

  1、RegKey,1024位,从注册文件中得到;
  2、RefKey,1024位,软件自带;
  3、MaxKey,1024位,软件自带;
  4、Result,1024位,用于承载返回结果。

  以上的名称是我自己起的。MaxKey的值很大,比RefKey大。
  主算法流程描述如下:

  ①、x1=1,x2=RegKey % MaxKey
  ②、从低位开始取RefKey的一个二进制位
  ③、如该位为零则转到⑤
  ④、x1=(x1 * x2) % MaxKey
  ⑤、x2=(x2 * x2) % MaxKey
  ⑥、从②到⑥遍历RefKey的每一位
  ⑦、Result=x1,返回

  请各位大牛根据上述流程判断一下这是哪一种加解密算法。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
(a^b) mod c
可能是RSA吧
2011-3-14 11:20
0
雪    币: 324
活跃值: (1029)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
我对照了RSA的有关文档,看着不像是RSA。
2011-3-14 15:08
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
提供一组正确的RegKey,RefKey,MaxKey,Result,这样方便验证是什么运算
2011-3-14 15:45
0
雪    币: 324
活跃值: (1029)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
以下全部是低位在前。
RegKey:
01440600  E1 21 16 FD DB D3 60 FF 95 28 A7 A7 80 09 23 FC
01440610  9D 98 0C C0 50 51 1D 74 D5 45 82 17 84 CB A5 86
01440620  7B 77 CD FB 55 6C FA DD 3C 29 2A 6D 11 C0 94 5A
01440630  7E 5B 2C C7 23 21 1B 14 B7 62 09 35 F9 2A 5B EB
01440640  04 5C E6 A2 35 2A 85 7B D7 3A 04 CB 4E D1 67 45
01440650  43 2E 77 66 83 3F B2 21 87 19 A3 4D F1 E0 85 19
01440660  86 4E 59 30 2E BA 29 EF A2 B7 66 3A 46 99 A8 B2
01440670  3C BC B6 E2 AC 3A 89 4E 14 AB B2 0A 11 7B F4 9A

RefKey:
01440780  5F A0 F9 49 7D 28 9B AD 44 90 73 DD 1F 69 7E 18
01440790  9F 2D 0A 97 C4 01 FF AA 44 A0 B8 DB 56 F8 D5 1C
014407A0  BC 66 F9 1F B7 35 4F 47 5C 45 24 21 D1 94 00 C1
014407B0  24 62 0F FE CF 1F 5F 27 11 3B 61 E8 A0 EA 0A FA
014407C0  2A 9C 0B 10 90 5C 30 E4 B7 F4 84 B0 1B 3B 79 7E
014407D0  A9 22 E0 D3 B3 58 A4 7E 84 C4 F0 68 8C BE 96 19
014407E0  2E 59 94 34 88 4C 99 9F AF 19 81 73 AE 93 7F 3B
014407F0  21 16 26 3A B2 D7 50 5E B4 CE 6F A0 F1 09 68 44

MaxKey:
01440570  AD 5D 39 82 FF F5 7F 9C 31 6C CD 3E AF E5 8A BB
01440580  AD 2A D3 B6 E6 15 1A 97 F7 F0 7A 34 17 30 BE C7
01440590  F8 DD 49 B8 3B 11 CE C0 76 B8 DA 45 4E 30 41 5C
014405A0  FE 8D 51 BB 55 95 E3 EB 28 E3 EC C8 73 06 88 D4
014405B0  10 7A E9 A2 EB 66 76 94 4C F5 39 31 28 A5 96 D9
014405C0  37 AD 72 CC 25 3B E6 CB 1C EB 37 97 7D A1 93 E2
014405D0  77 B0 D7 76 09 98 ED 39 3F C7 76 D4 C8 CE F6 A7
014405E0  D3 CF 1D A6 CB 01 02 B2 D5 73 D4 D2 BA C0 5D 9F

Result:
01440460  01 CC 6C 95 28 B9 DD D7 E4 40 56 82 E1 8C E5 BD
01440470  BC 98 29 F7 36 F1 0A CE 87 BE A7 30 F5 FD 90 C0
01440480  A4 0F 36 7B B0 77 A0 9B 79 DF 5F BB 3E 5B C3 3D
01440490  EE F2 4F E9 3A 5B 6B D6 EF 04 59 8E 83 59 6A 6D
014404A0  ED 42 72 4A BA ED 79 5A 5E CF B3 50 C8 E5 B3 00
014404B0  25 24 21 DD 98 53 1B E3 AB 73 3B 03 88 B9 78 CE
014404C0  C3 4C B5 D2 86 D7 C3 41 4C F2 78 98 49 88 A7 50
014404D0  C3 08 1D 32 47 5C 71 86 7B 3A CB 2C 5D 5E 2F 00
2011-3-14 16:41
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
按照描述应该是
Result=RegKey^RefKey mod MaxKey
但是MaxKey并不是素数,验证结果也不正确。
所以提供的数据可能不完全正确,你再仔细看看,有没有哪里搞错了。
如果MaxKey是素数,算法可能是DSA,ElGamal等。
结果还是不对,你自己可以验证下MaxKey是不是素数
2011-3-14 17:07
0
雪    币: 62
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
Result=RegKey^RefKey mod MaxKey
已经过验证,数据全是小尾端。
2011-3-14 18:38
0
雪    币: 62
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
这是标准的RSA解密运算,m=c^d mod N
m是明文,c是密文,d是私钥,N是p*q
2011-3-14 18:42
0
雪    币: 324
活跃值: (1029)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
对各位大牛表示极其严重的感谢。顺便还想请教几个问题,尤其是PublicKey大牛。
1、大牛们用的什么工具做的验证?
2、经过跟踪,前面提供的那个私钥实际上是一个试用版的私钥。大牛们能不能在达到理想境界方面提供一些参考?
事先声明:
1、现在研究的这个软件是国外软件;
2、很想在RSA算法分析方面积累一些经验。
2011-3-15 09:00
0
雪    币: 62
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
谢谢你的谬赞。
1、RSA算法我很熟练,所以不是用什么工具,临时调试的结果;
2、我还没有达到理想境界,所以给不了你什么参考,唯一能给你的建议是多学点数学,对于密码学,特别是代数方面知识很重要;
3、软件调试和算法分析是两码事,使用调试是攻击的一种手段,更高深的攻击是针对安全协议的攻击,最后才是算法分析攻击。
2011-3-15 12:42
0
游客
登录 | 注册 方可回帖
返回
//