谷歌科学家 Martín Abadi 和 David Andersen 在最近的研究中发现,神经网络——基于人工神经元的计算系统——可以学习如何使用加密技术。
在他们的实验中,计算机能够使用机器学习形成自己的加密形式,而不需要人类输入特定的加密算法。与目前的复杂计算机系统相比,这些加密算法相对简单,但它是探究神经网络的一个有趣进展。这一研究「仍不意味着密码学的发展」。
Google Brain 团队首先使用名为 Alice,Bob 和 Eve 的三个神经网络,每个系统各司其职,互相联系。Alice 发送一串加密信息给 Bob,Bob 负责解密这条信息,而 Eve 则尝试窃取信息。
为了确保秘密,Alice 在自我训练中开始将明文信息转变为专业术语,让窃听者(Eve)无法理解。这种专业术语「密电」必须只能被 Bob 理解。此时 Alice 和 Bob 开始使用预先约定好的一组数字作为秘钥,以帮助解密,而 Eve 无法访问这组秘钥。
最初,神经网络发送的加密消息非常简单。但是随着它们不断的自我练习,Alice 慢慢发展出了自己的加密策略,Bob 则不断试图通过秘钥解密信息。
这一任务被分为 4096 批同时进行,研究人员发现,在执行约 15,000 次以后,Bob 学会了将 Alice 发出的密电转回原文本,而 Eve 平均只能猜出信息中二进制 16 位数字中的 8 位。鉴于二进制只有一和零两种表示,这表明它的解密结果只是纯粹的猜测。此项研究已经于 10 月 21 日在 arXiv 上发表。
大多数人并不知道加密算法的机制,但机器学习的过程已经告诉我们它是如何产生的。目前为止,机器学习提供的加密算法并不能提供安全保证,该项研究对于网络安全的意义可能还很有限。但这种探索可以为加密算法的进一步研究提供新的思路,同时,研究人员认为神经网络在未来也可用于破解密码。
总部位于密尔沃基的加密软件公司 PKWare 首席技术官 Joe Sturonas 评论道:「这个级别的神经网络计算机在近几年才投入使用,所以我们还只是在一切的开始。如果计算机想要接近人类设计出的密码的复杂性,还有很长的路要走。」
摘要:在本研究中,我们让神经网络学习使用秘钥来保护从其他神经网络传递过来的信息。具体方法是:我们为了确保多代理系统(multiagent system)中的保密性进行秘钥升级,同时根据破解者的方式不断改变秘钥的属性。在试验中,系统中的神经网络名为 Alice 和 Bob,我们需要阻止名为 Eve 的第三个神经网络窃取前两者之间的通信内容。我们不对这些神经网络事先输入已有的加密算法;相反,我们以点对点的形式让它们互相对抗自我训练。我们证明了神经网络可以学习如何加密与解密,以及如何有选择地应用各种操作来让信息保密。