江寒用Python设计了一个程序,将“弹性碰撞”算法实现了出来。
所谓“弹性碰撞”,通俗的说法就是“碰瓷儿”。
首先准备一个种子函数,然后让算法随机修改函数的参数和结构,衍生出各种各样的函数。
在极其罕见的情况下,有的函数可能与81个核心方程中的某一个,在某些特征上表现出足够的相似度。
当搜索到了这样的函数,就将其替换到“苹果核”上去。
众所周知,两个同阶微分方程,如果结构、系数等方面,并不完全相同,那么通常来说,就是两个完全不同的方程,理论上来说,是不能互相替换的。
但在计算机中,有的时候这样做却是可行的。
这是因为,任何计算机的精度都是有限的,只能近似地体现出方程或函数的部分特征,而非全部。
所以,如果两个函数或方程,在某些方面可以重合,尤其是上下文中需要体现的那部分特征,只要没有出现任何出入,那么就可以在计算机内部,将两者等同看待。
当然,单靠人力计算,想要进行这样的碰瓷儿,几乎是不可能的。
但现在嘛……
有了“弹性碰撞”算法,就为机器求解提供了实施的途径。
相比于穷举法,“弹性碰撞”的优点是可以节省大量时间,缺点就是可能存在漏解。
而且,这是一种碰运气的算法,可能一秒钟就能找到答案,也可能一辈子都找不到。
那么,如何提高碰瓷成功的概率,缩短等待的时间呢?
答案很简单,可以采用并行计算。
好吧,说实话,这个时候,江寒就深刻地认识到量子计算机的优越性了。
而在只有经典计算机的当下,解决这种大规模计算,只能靠人多力量大……
江寒将“弹性碰撞”程序上传到了自己布置在车库中的IBM服务器和五台工作站中,让它们同步运行了起来。
随后,他就拿出一本《密码学算法》,看了起来。
每隔大约1个小时,江寒就通过笔记本电脑,远程检查一下服务器和各个工作站,看看“弹性碰撞”的运行情况。
事实证明,他今天的运气还真不错。
仅仅在第3次例行巡查中,江寒就欣喜地发现,居然有三台工作站,找到了可用数据。
碰瓷成功!
接下来,就比较简单了。
将这3条数据中的任意一条,替换到“苹果核”上去,都会让原本完美无瑕的坏苹果,产生一条细微的裂隙。
如果将3条数据全部换上去……
江寒这样做完之后,欣赏着遍体鳞伤的“苹果核”,不禁满意地一笑。
随后他就开始抽丝剥茧,手工拆解“苹果核”。
这个过程异常繁琐,持续了足足10个小时。
晚上8点左右,夏如虹回来了。
江寒就捧着笔记本,回到了自己的房间,然后继续操作。
直到天色蒙蒙亮,他才终于将苹果核中,那些冗余的方程和参数,全部手工合并、排除掉。
现在只剩下了一条高阶微分方程,只是经过多次变形,看起来已经十分丑陋,且臃肿不堪……
接下来,就是设计一个穷举算法,为这个方程求出一组近似解,再以这组数值解为核心,打造出一把“削皮刀”,给“坏苹果”脱壳……
凌晨5点,被彻底洗白白,焕然一新的“坏苹果”,终于再次出现在了江寒的眼前。
先将其写入坏苹果基板,试着运行了一下。
结果十分令人欣喜,程序运行完全正常。
这说明在脱壳的过程中,原始数据并没有任何损坏。
接下来,江寒又用Python编写了一个小工具,对比了一下脱壳前后的ROM。
对比结果显示,加密后再次洗白的“坏苹果”,比原始文件多出了大约11%的垃圾数据。
江寒看到这个结果,忍不住叹了口气。
数据终究还是被污染了一点点。
这说明自己的解密步骤,并没有臻至十全十美,仍有可优化的地方。
不过,这些垃圾数据虽然没什么用处,但一般来说,也不会产生任何危害。
就算放着不管,也完全没关系。
接下来,江寒再次登录了KAGGLE官网,进入锦标赛页面,将焕然一新的坏苹果传了上去。
一切搞定,已经凌晨6点多,江寒洗了把脸,直接下楼。
吃完饭后,照常和夏雨菲一起去上学。
到了学校,两人下车走进校园。
前几天下了一场小雪,让冬天的气息更加明显。
北风吹面生寒,地上的薄雪踩得咯吱作响。
不知不觉之中,松江地区已经完成了季节变换。
进入教学楼,江寒和夏雨菲用眼神告了个别,然后各回各班。
江寒坐在自己的座位上,不一会儿就感觉困意浓浓,于是往桌子上一趴,大大方方地酣睡了起来……
※※※
墨尔本。
本地时间下午1点,高德先生的办公室里,一场临时视频会议正在进行。
参与者包括技术部的两位大拿:李昂和哈扎尔,以及逆向锦标赛项目负责人希顿。
就在半小时前,高德接到了希顿先生的报告:JiangHan上传了新的坏苹果ROM。
于是高德立即安排技术部,对其进行了全面的分析……
视频中,李昂一脸兴奋:“经过验证,这一次收到的ROM,的确使用了我们提供的文件脱壳而成。”
这一点不难确认。
虽然坏苹果在网上流传颇广,只要有心就不难找到。
但KAGGLE在锦标赛的第七关里,提供的这一个坏苹果,额外打上了独特的数字水印。
并且,李昂等人还采用了一些技术手段,证实了解密文件的完整性和可用性。
既然如此,也就意味着,如果不想失信于天下的话,那500万必须尽快支付出去了。
高德先生不禁陷入了沉思。
他自然不差这点钱,但钱不能白花。
他很想弄个明白,JiangHan的这个坏苹果,到底拥有多大的商业价值?
毕竟,它曾经难住了全世界的逆向高手,如果不是设计者亲自出手,还不知道要多久才能被人攻破。
然而问题是,既然作者本人可以轻易破解,那就说明……
要么隐藏着什么后门,要么就是有着致命的漏洞!
所以,如果用在商业保护上……
高德沉吟了半晌,终究还是有点遗憾地摇了摇头:“李昂,对于JiangHan的技术水平,你有什么看法?”
“很明显,这位来自华夏的技术高手,无论是在加密领域,还是在逆向破解上,都有着十分深厚的造诣。”李昂毫不掩饰自己的钦佩和赞赏。
“具体的说呢?”高德锲而不舍。
李昂想了想,摇了摇头,谨慎地说:“以我的能力和眼界,不太好对他做出评价。”
高德有点意外。
实际上,李昂在某个地下榜单里,也是名列前十的高手。
连他都觉得高山仰止的话……
不过,高德也没觉得李昂谦虚过度。
毕竟像坏苹果这种强度的加密算法,此前还没有出现过。
会议结束后,高德立即给助理打了个电话。
“帮我安排一下,我要和华夏的JiangHan先生通个电话……”
安排完毕,高德想了想,又自言自语了一句:“也许,视频通话会更好一些?”
一方面,那500万美元,必须尽快颁发出去。
KAGGLE怎么说也是世界知名比赛平台,还不至于为了点小钱出尔反尔。
不过,对方人在华夏,这么大笔的金额,转起来有点小麻烦,必须与本人接洽一下。
另一方面,他也十分想知道,作为坏苹果的发明人,江寒本人对这项技术,又有着什么样的看法,以及是否有可能补足缺陷,应用于某些重要领域。
助理按照高德的吩咐,立即开始操办这件事。
高德坐在办公桌前,沉思了良久。
突然,他抬起头,以一种略显夸张的活泼语气,快乐地自言自语起来。
“坏苹果,再加上一个前所未见、性能无比优异的图像识别算法……对这个JiangHan,真是越来越期待了。”
如果他的个人资料,并不是随便乱填的……
那么事情很可能,比之前预想的更加有趣!