7 s' h/ ^2 \! J T. i& ?3 o7 i. L: A/ j20 世纪 70 年代中期,一种新的算法引起了人们的注意,即“随机化算法”(Randomized algorithm)。这种新算法结合了随机移动 (stochastic moves)。如果用烹饪来比喻的话就是,不明确告诉你有放两勺盐的步骤,而是让你用扔硬币决定是放两勺盐,还是放一杯红酒。 # |3 l6 n6 c& q" s2 p , ?4 \( O+ X* j2 q& ]7 s2 D因此,对于传统的思维方式来说,这看起来是一种疯狂的做事方式。但在 20世纪70年代,人们已经证明以这种方式执行算法是有优势的,在某些情况下,它们会产生一些令人惊叹的结果。但人们还无法理解这些算法的局限性。 & ]1 Z, o+ W+ K! Y0 w6 O+ E9 l* l+ v: e
因此,这让我产生了一个问题。到底哪算法个更好?是当时刚刚提出的随机化方法,还是用传统的方法观察数据分布,并在执行过程中调整呢?6 c" h* ~( X% G& Z- Z
' T L8 `( w. h% F+ L# ?
一旦用这种方式提出了这个问题,那么就出现了一种令人惊喜的联系,让人们可以对随机化算法有了很多的了解。 9 o% b4 X) B& E5 S `7 F, a- W {, r- b, _8 c5 Y4 p; t1 }
当把随机化算法与传统分布方法进行比较时,可以将其视为随机化算法和数据之间的博弈。算法(可以根据数据)选择如何随机移动,而数据(对手)可以选择分布方式,从而使算法的运行变得更加困难。在博弈论极大极小原理(冯·纽曼) 的作用下下这两种方法恰好达到了它们的极限。这个联系给出了我们想要证明的定理,也就是说事实上这两种方法是相同的。这为理解随机化算法提供了新途径。在现在,这种在当时还算新颖的算法已经成为许多密码技术和人工智能算法的默认模式。8 R4 F$ S5 d9 N
) m! X) g, W3 n图片▼ 图片来源:2021 年京都奖 7 |( o2 v# ~& W# D9 X( }# |$ {. D; N+ T
人们想了解随机化算法的局限性是有原因的。因此,在 40 多年的时间里,我发现的算法仍然被许多研究人员用来来解决他们的问题。第二个主题是我在 1979 年提出的通信复杂性。 : ^, a6 J+ _9 f9 i1 H+ v9 Q q' @0 u' W; q0 \4 k5 Q# X' y& H5 i
让我先解释一下这个数学问题,爱丽丝和鲍勃是两个在不同地点的人,他们各自持有一条 n 个比特的数据,比如 x 和 y。我们想要解决的问题是,假设它们想要联合计算某个量 f,它们之间需要通信多少比特,这就是这个函数的通信复杂度。 ! U/ S; {9 y. @8 P& G: ~& {9 Q- C( q6 y/ m. k+ G
当然,这取决于你在计算什么函数,例如,要计算这两个整数的和是奇数还是偶数只需要两个比特的通信。每个人只需告诉对方它是偶数还是奇数,然后他们就可以知道答案了。5 z( R$ e a+ t
1 ]) r v, P( }8 G0 ` N I另一方面,如果你想计算 x 是否大于 y,那么它将需要 n 比特。你需要把整个字符串从一个人发送给另一个人才能解决这个问题。更深一层的是,你必须意识到并证明,没有比这种方式来解决这个问题更好的方法了。一般来说,这是一个相当困难的问题。如果我给你一个关于F的计算复杂性,那需要相当深入的数学分析才能完成。 3 U2 u+ B) }& u& \7 C# ]- D# |* f# V! w1 f& |( c
考虑通信复杂度的原因是,计算模式在 20 世纪 70 年代末发生了很明显的变化。从之前大家都熟悉的大型计算机,逐渐转向我们现在熟悉的计算机网络。人们对以分布式方式解决问题感兴趣,许多人愿意协作解决问题。# x, `4 g. z% b5 V2 U
5 Q) F( A8 h4 b' U8 e6 z因此,这意味着我们必须把过去的计算模型调整为网络模型。在这个新的世界里,通信成本通常是很高的,因为我们必须移动数据。因此,我刚刚向你们的介绍的通信复杂度的概念就是为了模拟和反映这种变化。/ E. w% G! T* H" h: t" [
/ n+ R9 s' y/ ^9 _) s% y1 `
自从该模型被提出和分析以来,通信复杂性在从芯片设计到数据流的各个领域都得到了广泛的应用。我要讨论的最后一个话题是关于密码学和 MPC。 ' O1 ^. F8 `/ G1 L j4 B/ `. A$ i7 |) \9 |" q
1982 年,我写了三篇论文,这些论文对现代密码学做出了重大贡献。这三篇论文涉及 Dolev-Yao 威胁模型、伪随机数生成算法(pseudo random number generation)和安全多方计算(MPC)。今天我只谈最后一个问题。 S5 P2 Y8 F4 J& U$ \! R
9 P8 y" K3 f2 D0 G$ VMPC 是一个加密概念,使我们可以对加密数据进行计算。如果您使用 MPC,就有可能让多个数据库在不泄露它们自己的数据的情况下进行联合计算。 1 A6 j! p8 I' W9 l- K 7 U, Y& o( W% t% w$ Q5 S也就是说,我们可以在看不到数据的情况下共享数据。让我用一个例子来解释一下这一点。我将引用在论文中提到的著名的亿万富翁的例子。 & m$ q5 J% r; D& ?; ~6 M ) `/ {; @3 s5 t两个百万富翁,爱丽丝和鲍勃,他们希望在不透露任何数据信息的情况下知道谁更有钱。所以爱丽丝有 X 百万,鲍勃有 Y 百万。所以数学问题是,他们想要彼此交流来知道 X 是否小于 Y。问题是,是否有可能进行一次对话,让双方在不知道对方数据的情况下又知道谁更富有呢?; ]. K0 H- ]; F- c8 h8 t
# d! C# K, \1 p, D
直觉上来说你会认为这是不可能的。我怎样才能在不透露任何一方任何信息的情况下找出谁更富有呢?如果你想几分钟你就会意识到,如果采用 1982 年的信息安全定义,也就是香农的信息论( Shannon's information theory),那确实是不可能的,你可以证明在那个模型下是不可能的。8 H% ]( G C+ E