打印
[COM盾软件加密锁]

COM盾中恒为零和无分支的实现

[复制链接]
290|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2023-10-21 21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
COM盾中恒为零和无分支的实现
三个恒为零
1.反篡改中的CRC
可以采用双向CRC初值碰撞计算出两个初值,运行程序后会得到一个恒为零的校验和。crc=0,只要被篡改crc必然非零
2.反跟踪中的时间差
采样初始时间t0,当前时间t1,时间差t,反跟踪时间3秒
有t=(t1-t0) & ~3;
t=0,只要在3秒以内,t恒为零,被跟踪超过3秒t必然非零。
3.CRC三密钥验证
待验证数据abc,设置校验和为0,abc为CRC密钥,逆运算得到d。
正运算必然得到校验和恒为零。crc=0
只要abc有任何错误crc必然非零。
这个也是无分支验证abc是否正确的好方法。
三个无分支(crc正确恒为零)
1.for(i=crc;i<len;i++)
2.for(i=0;i<len-crc;i++)
3.for(i=0;i<len;i+=1+crc)
还有数组无分支
array[(i+crc)&size]
总之,“恒为零”是“天下无贼论”的精华所在。因为有恒为零,才能实现“无分支”,这样必然导致错误扩散。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1538

主题

21697

帖子

505

粉丝