吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 41823|回复: 377
收起左侧

[原创] xxx压缩软件的注册算法

    [复制链接]
doublesine 发表于 2019-7-3 21:28
本帖最后由 doublesine 于 2019-7-4 08:08 编辑

xxx压缩软件的注册算法

软件名称:V2luUkFS (请使用base64解码。新版规要求脱敏处理,见谅。)

xxx压缩软件使用了基于ECC的签名算法来生成 rarreg.key 文件,其使用的签名算法是中国SM2数字签名算法的变体。与各种标准ECDSA不同的是,xxx使用的椭圆曲线是一个基于复合域 GF2p15p17-inlined 上的曲线。

1. 复合域 GF2p15p17-inlined

基域 GF2p15-inlined 采用标准基(多项式基)来表达,采用的不可约多项式为:

各项系数全部位于 GF2-inlined。设基域的标准基为:

则位于基域 GF2p15-inlined 上的元素 A-inlined 可以用如下方式表达:


复合域 GF2p15p17-inlined 的不可约多项式为:

各项系数全部位于 GF2p15-inlined。设复合域的标准基为:

则位于复合域 GF2p15p17-inlined 上的元素 B-inlined 可以用如下方式表达:


为了方便表述我们用255比特的大数 D-inlined 来表示位于复合域 GF2p15p17-inlined 上的元素 B-inlined。它们的对应关系为:

2. 复合域 GF2p15p17-inlined 上的椭圆曲线

曲线方程为:

基点 G-inlined 为:

基点 G-inlined 的阶 n-inlined 为:

3. 消息哈希算法

设长度为 l-inlined 的消息为:

则消息 M-inlined 的SHA1值为:

其中 为SHA1算法输出时的5个状态值;将这5个状态值按照大端字节序依次输出,即为的SHA1哈希值

xxx压缩软件在做完SHA1计算后,采用大数 h-inlined 作为ECC签名时消息的哈希:

4. ECC签名算法

设私钥为 k-inlined,公钥为 P-inlined,即:

消息哈希为 h-inlined,则签名 为:

  1. 生成随机数 Rnd-inlined,满足

  2. 计算 r-inlined

    其中 表示取 的X坐标,同时将X坐标从 GF2p15p17-inlined 转换为大数。

    或者 则回到步骤1。

  3. 计算 s-inlined

    则回到步骤1。

  4. 输出

5. xxx压缩软件的私钥生成算法

该算法会利用长度为 l-inlined 的数据

来生成私钥 k-inlined

  1. 设6个32位整数为 ,则有

  2. 如果 则计算 T-inlined 的SHA1值,并将状态值 赋值给

    否则,即 时,令:

  3. 作为计数器,自增1。

    计算SHA1值:

    的低16位并记为

  4. 步骤4再重复14次。

  5. 重复执行完后会得到 ,则输出私钥

6. xxx压缩软件的公钥和私钥

xxx压缩软件的私钥 k-inlined 为:

该私钥是通过算法5生成的,其中数据 T-inlined 的长度为0。

公钥 P-inlined 为:

7. 授权文件"rarreg.key"的生成

授权文件的生成需要两个参数:

  1. 用户名的ANSI字符串,不包括null-terminator;记为

  2. 授权类型的ANSI字符串,不包括null-terminator;记为

rarreg.key 的生成算法如下:

  1. 使用用户名 UU-inlined 通过算法5计算出私钥 以及公钥 ,并将公钥 按照SM2压缩公钥格式以Hex字符串(ASCII编码)的形式输出。得到的Hex字符串记为临时值 Temp-inlined

    Temp-inlined 的长度应该为64;若长度不足,则在前面补字符'0',直到长度为64。

  2. 令字符串 Data3-inlined

  3. 使用 Data3-inlined 通过算法5计算出私钥 以及公钥 ,并将公钥 按照SM2压缩公钥格式以Hex字符串(ASCII编码)的形式输出。得到的Hex字符串记为 Data0-inlined

    Data0-inlined 的长度应该为64;若长度不足,则在前面补字符'0',直到长度为64。

  4. 令字符串 UID-inlined

  5. 对授权类型 LL-inlined 使用算法4得到签名 ,其中私钥见第6节。

    要求 的长度都不得超过240比特,否则重复该步骤。

  6. 以16进制形式输出(无"0x"前缀),分别记为

    若长度不满60,则在前面补字符'0',直到长度为60。

  7. 令字符串 Data1-inlined

  8. 令字符串 Temp-inlined

    Temp-inlined 使用算法4得到签名 ,其中私钥见第6节。

    要求 的长度都不得超过240比特,否则重复该步骤。

  9. 以16进制形式输出(无"0x"前缀),分别记为

    若长度不满60,则在前面补字符'0',直到长度为60。

  10. 令字符串 Data2-inlined

  11. 计算CRC32值,最终校验和为CRC32值的反。将校验和以10进制形式输出,若长度不满10,则在前面补字符'0',直到长度为10,记为

  12. 令字符串 Data-inlined

  13. 格式化输出。

    • 固定文件头"UkFSIHJlZ2lzdHJhdGlvbiBkYXRh",占一行。

      (请用base64解码,新版规要求脱敏处理,见谅。)

    • 用户名,占一行。

    • 授权类型,占一行。

    • UID,占一行:

    • Data-inlined 按照每行54个字符输出。



相关代码在github上
aHR0cHM6Ly9naXRodWIuY29tL0RvdWJsZUxhYnlyaW50aC93aW5yYXIta2V5Z2Vu
(请使用base64解码,新版规要求脱敏处理,见谅。)

有问题可以直接留言或者到github发issue。

点评

哥,我错了。我应该好好学习高数。  发表于 2019-7-10 17:05
看到这里,突然明白学习的重要性。。。每一个字符都认识,组合在一起就仿佛是加过密。。。  发表于 2019-7-4 09:07

免费评分

参与人数 129吾爱币 +136 热心值 +120 收起 理由
llnm + 1 + 1 我很赞同!
漫天细雨 + 1 + 1 谢谢@Thanks!
轻叹 + 1 我很赞同!
W-seven + 1 + 1 完全没有办法假装看懂
yifang + 1 + 1 大佬厉害
2020021452pojie + 1 + 1 我很赞同!
liang681418 + 1 + 1 谢谢@Thanks!
xxcf + 1 + 1 热心回复!
皮蛋瘦肉 + 1 + 1 我只知道讲的是一个解密的故事
Pxh123123 + 1 + 1 用心讨论,共获提升!
chenhongyuan + 1 + 1 我很赞同!
dexi_pj + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wcwtnui + 1 + 1 我很赞同!
随心所欲VIP + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zzcl558 + 1 + 1 谢谢@Thanks!
orega + 1 + 1 我很赞同!
stkexiao + 1 + 1 一脸懵逼进来,一脸懵逼出去
solly + 2 + 1 谢谢@Thanks!
ZRB2010 + 1 + 1 高数我跪了
ryan0326 + 1 + 1 热心回复!
不拍电影不掉泪 + 1 我很赞同!
dasdqww + 1 + 1 热心回复!
weitao183 + 1 + 1 热心回复!
thefatrat + 1 + 1 现在返厂重学数学还来得及吗?
canglangshui + 1 + 1 热心回复!
nofriend + 3 谢谢@Thanks!
开心糖 + 2 + 1 用心讨论,共获提升!
飞鲲之梦 + 1 我很赞同!
jiou234 + 1 + 1 用心讨论,共获提升!
larf + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qwerpoiu + 1 + 1 用心讨论,共获提升!
wykdz + 2 + 1 用心讨论,共获提升!
蓝海异域 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
karlos + 1 + 1 老哥,牛p
mustangNS + 1 + 1 谢谢@Thanks!
weidian + 1 用心讨论,共获提升!
k4jar + 1 + 1 用心讨论,共获提升!
jork09 + 1 + 1 热心回复!
bjcar + 1 + 1 谢谢@Thanks!
只是来打酱油 + 1 + 1 现在学习高数还晚吗
shinan + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
micephilorice + 1 + 1 热心回复!
QGZZ + 1 + 1 谢谢@Thanks!
HNFCorp. + 1 + 1 我很赞同!
yjj_coolboy + 1 + 1 用心讨论,共获提升!
fin618 + 1 + 1 我突然也明白了学习的重要性!
yimingsong + 1 + 1 我很赞同!
Apo123 + 1 是大佬没错
xiong_online + 1 + 1 用心讨论,共获提升!
sudiasuka + 1 谢谢@Thanks!
都同学 + 1 + 1 谢谢@Thanks!
jnez112358 + 1 + 1 谢谢@Thanks!
anysoft + 1 + 1 热心回复!
w250550 + 1 + 1 拆开每个字都认识,组合起来看就是加密文件
deveicu + 1 + 1 谢谢@Thanks!
laohucai + 1 + 1 谢谢@Thanks!
Timelife + 1 + 1 谢谢@Thanks!
llzxcvbnm + 1 + 1 我很赞同!
遇日不归 + 1 + 1 老婆问我为什么要跪着看帖子
z_zz + 1 + 1 妈妈问我为什么又跪着看帖子。。。
三岁小孩儿 + 1 + 1 我很赞同!
笔墨倾寒 + 1 + 1 非常感谢楼主写的这么全面,但是,恕我直言,我真的是一句都没看懂
喃喃笑语 + 1 + 1 膜拜大佬
XhyEax + 2 + 1 膜拜大佬
念灬木头 + 1 + 1 一脸懵,一头包
hackoflife + 1 + 1 用心讨论,共获提升!
onenook + 1 + 1 一脸懵逼
guo0 + 1 + 1 我很赞同!
hackeydg + 1 + 1 热心回复!
mywebstudy + 1 + 1 谢谢@Thanks!
temper + 1 + 1 同感,感觉是加密过的!
昌少liu + 1 + 1 我很赞同!
hackerxingxing + 1 + 1 用心讨论,共获提升!
sxhytds + 1 + 1 我很赞同!
HxiaoH + 1 + 1 用心讨论,共获提升!
by、怒神 + 1 + 1 用心讨论,共获提升!
s2345601 + 1 同样是九年义务教育 为什么你这么优秀
syc_it + 1 + 1 楼下的,这Tm不是九年义务就能整的出来的
17521778551 + 1 我很赞同!
taobaogd + 1 同样是九年义务教育 为什么你这么优秀
liyusha + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
那一年的白洁啊 + 1 + 1 妈妈问我为什么又跪着看帖子。
神树 + 1 + 1 同样是九年义务教育 为什么你这么优秀
ejishu + 1 完全看不懂,但是也要装做看懂了~~~
goldengod + 1 + 1 我很赞同!因为不懂,前排围观大佬
内个打杂滴 + 1 + 1 用心讨论,共获提升!
.·.·. + 1 + 1 好奇私钥+1
soyiC + 1 + 1 我很赞同!
yunyings + 1 + 1 谢谢@Thanks!
liushunkai + 1 + 1 用心讨论,共获提升!
低调宅 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
JuDei + 1 + 1 用心讨论,共获提升!
猫大林 + 1 + 1 谢谢@Thanks!
poisonbcat + 1 + 1 谢谢@Thanks!
mi960000 + 1 + 1 热心回复!
sxycwhw + 1 + 1 我很赞同!
dxaw0261 + 1 + 1 我很赞同!
simplex + 1 + 1 我很赞同!
csa0901 + 1 + 1 我很赞同!
破解吾爱vip + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

f8949087456 发表于 2019-7-3 21:37
每一个字我都认识,可他们在一起我就不认识了
renpeng009 发表于 2019-7-3 22:22
完美账号 发表于 2019-7-3 22:21
 楼主| doublesine 发表于 2019-7-4 07:53
JemmyloveJenny 发表于 2019-7-4 00:18
emmm有一点你没看懂,想知道这条曲线所在的复合域是Fp还是F2m呢?
感觉这个是F2m,但是复合之后和单独两个 ...

是GF2m的,GF((2^15)^17)和GF(2^255)同构,理论上GF((2^15)^17)上的元素都可以映射到GF(2^255)上。我原本是想映射到GF(2^255),然后调用openssl库来实现注册机,但是这个映射矩阵我用sage算不出来,所以就算了。
Je11y 发表于 2019-7-3 21:46
前排,完全看不懂
hill_king 发表于 2019-7-3 21:49
好累啊,又要去 学算法了
风之暇想 发表于 2019-7-3 21:57
然而注册机制多年不变
 楼主| doublesine 发表于 2019-7-3 21:58
hill_king 发表于 2019-7-3 21:49
好累啊,又要去 学算法了

是啊,天天有读不完的paper、写不完的paper。
 楼主| doublesine 发表于 2019-7-3 21:59
风之暇想 发表于 2019-7-3 21:57
然而注册机制多年不变

是的,貌似自5.0版本以来就没有变过。
风之暇想 发表于 2019-7-3 22:11
doublesine 发表于 2019-7-3 21:59
是的,貌似自5.0版本以来就没有变过。

更奇葩的是它不出外挂语言包,非要每个语言独立安装包
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 16:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表