当我们设计加密算法时,我们并不是在设计某种密码。事实上,整个算法是公开的——它是公开的,是众所周知的。唯一不知道的是这个相对较短的128位信息——一个简单的秘密密钥。每次你想要交流的时候,你就会生成一个随机的新密钥,然后在你和目标接收者之间分发。
如果你俩都有相同的密钥,你就可以很安全地通信,因为即使有人截获了你的密码,提取信息的任务也是相当可怕的。使用我们现有的计算能力,这可能是不可行的:它或多或少相当于随机选择128位序列。所以是2的128次猜测。如果你考虑这个数字有多长,你会发现在数百万年后,你最终会打破它,但不是现在。
相信我,有些问题是如此困难,没有量子计算机能够快速解决它们。
密码学中没有多少灵光一现的时刻。尤利卡其实很辛苦。你设计算法的组成部分,然后或多或少地遵循著名的Shannon设计加密算法的方法。您只需构建两个基本模块并将它们组合起来。显然,整个艺术或技巧,就是你想要一个非常快的算法和一个非常安全的算法。它很容易变得非常快,但这通常是相对不安全的。它也很容易变得非常安全,但非常非常笨拙——非常低效。找到中间地带是一个挑战。
下一个巨大的挑战是设计能够抵抗量子计算机的密码算法和协议。目前有一个正在进行的比赛创建后量子加密算法和数字签名。
它导致了设计的重大变革或进化。RSA(一种公开密钥密码系统,以发明者Rivest-Shamir-Adleman的名字命名)是经典设计,它基于经典计算机上难以解决的数学问题——例如,因子分解就是RSA加密的基础。但这在量子计算机上其实很简单。RSA死了。
不,新的设计必须使用在量子计算机上很难解决的数学问题。这就意味着要在数学格子中创造出许多不同的难题,这就像是,嗯,相信我,有些问题是如此的困难,没有量子计算机能够快速解决它们。
量子计算机可能不会在10年或20年内走到一起,但我们必须领先它们。虽然已经取得了一些实质性的进展,但量子计算机还不能正常工作。一些组件正在慢慢地出现,我们已经有了类似于中央处理器(CPU)的东西——任何计算机的心脏。但是有很多障碍,比如记忆。我们仍然没有那种能保证量子位长时间存储的量子存储器。
我们实际上已经知道量子计算机将如何工作——我们只是不知道我们是否能让它们运行。但我很幸运,不用去考虑与量子相关的内在问题因为我们已经知道一些数学问题,对于量子来说是很难解决的。所以我把注意力集中在数学模型上。
我们实际上已经知道量子计算机将如何工作——我们只是不知道我们是否能让它们运行。
我一直很喜欢数学。20世纪70年代初,我在波兰的比德戈斯茨上学,当时我在学习电气工程,但后来又开始攻读数学第二个学位,并开始研究密码学。很多人认为这是未来的趋势,我发现在加密和认证方面有很多有趣的问题。所以我在一些排名很高的期刊上发表了几篇论文。
我的一篇论文实际上被一个名为Eurocrypt 85的会议接受了,我能够去奥地利参加,在那里我遇到了我现在非常亲密的朋友和合作者,Jennifer Seberry。我们就一些事情进行了长时间的讨论,1986年我搬到了悉尼。
我们实际上是澳大利亚第一个从事密码学研究的团队。我和我的同事在这里设计了第一个商用加密算法。当时电信公司(当时的澳大利亚电信公司)有一个非常大的实验室,专门研究安全和密码学。我们在1990年设计了洛基。
1997年,美国国家标准与技术研究所(NIST)宣布了“高级加密标准(AES)”竞赛。这是一个邀请,去创造一种共同的安全语言,让世界各地的每个人都可以交流。明显的限制是,当你赢了,你不能要求任何金钱利润,因为这将是一个免费的许可证。
作者实际上会将加密作为一种服务提供给社区,这样每个人都可以使用该算法。
我们把LOKI97作为候选,这是我们合作的另一个成果——它的设计涉及到加密算法的核心步骤,这是高度非线性的。它有很多加密特性,这使得整个算法很强大。它也有一个线性层,它不提供任何额外的机密性,但它分发变化非常快,因为这个算法在几轮内执行。
这是一个邀请,去创造一种共同的安全语言,世界各地的每个人都可以用它来交流。明显的限制是,当你赢了,你不能要求任何金钱利润,因为这是一个免费的许可证
我们的算法并没有胜出,但是世界各地的同事对它进行了分析,总的来说,反馈是非常积极的。我们没有成为它的创始人——现在的国际标准是Rijndael,被银行和政府机构用于非军事用途——它实际上在抵抗攻击方面非常强大。直到量子计算机出现。
我不是一个真正的量子物理学家,所以我不需要担心这个最终会不会建成。但即使成熟的量子计算机不能在10年或20年内建成,一些部件也会建成。我们的工作仍然是有价值的——这与他们是否能够研制出工作的量子计算机无关。