最近几年人工智能仿佛打通了任督二脉的武林奇才,正在疯狂地扩张自己的招法技能树。听音辩形下棋玩游戏什么的已经out了,现在Google又做出了2个能够自行演进出加密算法的人工智能,从而避免其沟通信息被第3个在自我演进破解算法的AI侦听——这是全世界从零开始学会安全通信的头两个AI。
这项研究成果叫做《用对抗神经密码术学习安全通信》,是由Google的Google Brain团队做出来的。Google Brain是Google最初进行人工智能研究的团队,不同于收购过来,做出AlphaGo的那个DeepMind。这项研究的过程大概是这样的, Google Brain首先准备了三个普通的(不懂加解密)神经网络,分别叫做Alice、Bob和Eve。每一个神经网络都被赋予了一个特定的目标:其中Alice的任务是给Bob发送一条安全的信息,Bob则必须尝试对这条信息进行解密。而Eve就像是军队对抗中的蓝军角色,它的目标是侦听这条信息然后尝试破解。相对于Eve,Alice和Bob有一个优势:它们有一个共享密钥(也就是所谓的对称加密)。
整套系统的架构示意图。其中P为明文,K为共享密钥,C为密文,Peve和Pbob为计算(解密)后的明文输出。
如果这些AI用的是现成的加解密算法的话,这项研究就没什么意义了。但实际上这里的前提是所有AI事先既都不知道如何进行加密,也不知道使用什么样的加密技术,它们的起点只是一个损失函数(一种衡量损失和错误程度的函数),通过该损失函数来判断自己做得如何,然后不断演进出正确的办法。对于Eve来说,它的损失函数很简单,那就是:距离,或者说相似度,这是通过将Alice的原始明文与Eve猜测的明文逐位进行比较计算出差别来衡量的。距离越小说明相似度越高,距离为0则说明猜中。而Alice和Bob的损失函数则要复杂一点:如果Bob的猜测距离原始输入明文太远(同样是通过位差异衡量)则为损失;而对Alice来说,如果Eve的猜测比随便乱猜的结果好,那就是损失。这样一个生成式对抗网络(GAN)就建立起来了。
虽然Alice、Bob和Eve采用的都是一样的“混合与转换”神经网络结构,但是它们的初始化都是独立进行的,除了Alice和Bob采用相同密钥以外,相互之间并没有联系。对于Alice来说,密钥和明文是其第一层神经网络的输入,对于Bob来说密钥和密文是输入,而Eve只拿到了密文。由于第一层神经网络是全连接的,所以文本和密钥可以混合。第1层之后是若干的卷积层,这些层会学习利用函数来处理上一层交给自己的那些字位。至于这个函数是什么它们是不知道的,它们只是一边学习一边根据损失函数给出的结果进行调整。对于Alice来说,最后一层输出的就是密文,而Bob和Eve则输出明文——最后是无“损失”的明文。
Bob(红色)和Eve(绿色)在训练过程中的重构误差。可以看到一段时间之后(5000到10000步之间)Eve的误差开始减少,但是随后Alice和Bob改变了加密方法,Eve的误差又重新开始攀升。
最后的结果好坏参半。一些情况下的运行属于彻底失败,Bob从未重构出Alice的消息。不过大部分时间内,Alice和Bob的确设法演进出了一套错误很少,能。够相互沟通的系统。而在部分测试中,Eve也显示出了一些比随机猜测更好的改进,但是Alice和Bob随后改进了自己的加密技术,令Eve无机可乘(参见上图)。
至于Alice和Bob设计的是什么加密算法,研究人员并没有进行详细分析,但是他们在一次训练中观察到这种加密法与明文和密钥都有关系。但是这种关系并不是简单的XOR(异或)。研究人员称,其输出值往往是浮点数而不是0或1.
研究人员最后得出结论,神经网络的确可以自我学习通信保护,而且只用告诉Alice重视保密高于一切即可,更重要的是,这种保密可以在不需要告诉具体采用什么样的加密算法的情况下实现。
当然,加密法并不仅仅只有对称加密一种,研究人员未来还将研究速记式加密(将数据隐藏在其他媒体如图像当中的加密法)以及非对称加密。至于Eve,研究人员认为,神经网络成为密码分析专家的可能性不大,但是用来进行元数据和流量分析却是一把好手。