听音辩形,下棋玩游戏什么的已经out了,现在google brain团队完成了一项新的研究成果叫做《用对抗神经密码术学习安全通信》,创造出了2个能够自行演进出加密算法的人工智能,从而避免其沟通信息被第3个在自我演进破解算法的ai侦听——这是全世界从零开始学会安全通信的头两个ai。
加密系统架构:p =输入的明文,k =共享密匙,c =加密文本,peve和pbob 为经过计算后得出的明文输出。
google brain团队的总部位于加州芒廷维尤城,是google最初进行人工智能研究的团队,独立于设在伦敦的deep mind,它最初设计了三个相当普通的神经网络:alice、 bob和eve。每个神经网络都被赋予了一个非常明确的任务:alice的任务是向bob发送保密信息,bob的任务是解译这个信息,而eve的任务则是窃听这个信息并尝试对其进行破译。相对于eve,alice和bob有一个优势,即它们拥有一个共享密钥(也就是对称加密)。
重要的是,所有的ai事先既都不知道如何进行加密,也不知道使用什么样的加密技术,它们的起点只是一个损失函数(一种衡量损失和错误程度的函数),通过该损失函数来判断自己做得如何,然后不断演进出正确的办法。对于eve来说,它的损失函数很简单,那就是:距离,或者说相似度,这是通过将alice的原始明文与eve猜测的明文逐位进行比较计算出差别来衡量的。距离越小说明相似度越高,距离为0则说明猜中。
而alice和bob的损失函数则要复杂一点:如果bob的猜测距离原始输入明文太远(同样是通过位差异衡量)则为损失;而对alice来说,如果eve的猜测比随便乱猜的结果好,那就是损失。由此就建立了一个生成式对抗网络(gan)。
虽然alice、bob和eve都共享了相同的“组合与转换”神经网络结构,但是它们的初始化都是独立进行的,除了alice和bob采用相同密钥以外,相互之间并没有联系。对于alice来说,密钥和明文是其第一层神经网络的输入,对于bob来说密钥和密文是输入,而eve只拿到了密文。
由于第一层神经网络是全连接的,所以文本和密钥可以混合。第1层之后是若干的卷积层,这些层会学习利用函数来处理上一层交给自己的那些字位。至于这个函数是什么它们并不知道的,仅是不断地进行学习和改进。对于alice来说,最后一层输出的就是密文,而bob和eve则输出明文——最后是无“损失”的明文。
结果……好坏参半。一些情况下的运行属于彻底失败,bob从未重构出alice的消息。不过大部分时间当中,alice和bob的确设法改进了系统,在这个系统中它们的通讯几乎没有什么错误。而在部分测试中,eve也显示出了一些比随机猜测更好的改进,但是alice和bob随后改进了自己的加密技术,令eve无机可乘(如上图所示)。
关于alice和bob设计的是什么加密算法,研究人员并没有进行详细分析,但是他们在一次训练中观察到这种加密法与明文和密钥都有关系。他们表示:
“这种关系并不是简单的xor(异或),特别是,输出值常常为浮点数而不是0或1。”
研究人员martín abadi 和david g. andersen最后得出的结论是,神经网络的确可以学习保护自身的通信,而且只要告诉alice评估安全高于一切即可,更重要的是,这种保密可以在不需要告诉具体采用什么样的加密算法的情况下实现。
除了数据的对称加密,密码学还有很多东西。研究人员表示,未来还将研究“隐写术”(将数据隐藏在其他媒体如图像当中的加密法)以及非对称(公钥)加密。对于eve是否有可能一直充当一个优秀对手,研究人员认为:
“虽然神经网络成为密码分析专家的可能性不大,但是用来进行元数据和流量分析却是非常有效的。”
感兴趣的可以在arxiv 上查看googlebrain团队的这篇论文。
试用申请