WEBVTT 00:00:02.940 --> 00:00:08.500 互联网:加密与公钥 00:00:08.990 --> 00:00:14.150 嗨,我叫米娅·吉尔·埃普纳( Mia Gil-Epner), 我在加州大学伯克利分校主修计算机科学系 00:00:14.150 --> 00:00:19.460 我在国防部工作,主要工作是确保信息安全 00:00:19.460 --> 00:00:25.510 互联网是一个开放的公共系统。 我们在共享的线路上传送与接受信息 00:00:25.510 --> 00:00:30.039 尽管它是一个开放系统, 我们仍然透过网络交换大量的私密数据 00:00:30.039 --> 00:00:35.890 像是:信用卡号码、帐户信息、密码、电子邮件 00:00:35.890 --> 00:00:40.690 那么这些私人事物要如何保密呢? 任何类型的数据都可以通过 00:00:40.690 --> 00:00:45.299 透过加密程序:混排或改变信息来隐藏原始的内容, 任何类型的数据都得以保密 00:00:45.309 --> 00:00:51.900 解密是一个重排的过程,得以让数据变得可以解读 00:00:51.900 --> 00:00:56.970 这是一种简单的想法,人们这样做已经有好几世纪之久 00:00:56.970 --> 00:01:02.379 最为人所知的一种加密方法是「凯萨密码」 00:01:02.379 --> 00:01:07.220 这个方法是以凯萨大帝来取名,这位罗马将军将军事命令加密 00:01:07.220 --> 00:01:12.540 以确保即使信息被敌方拦截,也无法解读。 00:01:12.540 --> 00:01:16.759 凯萨密码是一种演算规律: 将原文中的每一个字母,按顺序都替换为向下一定间隔「数量」的字母 00:01:16.759 --> 00:01:21.259 如果这个数量只有信息的发送者与接收者知道,它就称为密钥(key) 00:01:21.259 --> 00:01:28.640 它允许接收者能够解开秘密信息 00:01:28.640 --> 00:01:35.869 举例来说:假定你原本的信息是「HELLO」 使用凯萨密码算法,密钥是5 00:01:35.869 --> 00:01:43.259 加密后的信息会是… 要解密消息,收件人只需使用密钥进行反转过程。 00:01:43.259 --> 00:01:50.179 但有一个大问题, 有了凯撒密码,任何人都可以轻易破解 00:01:50.179 --> 00:01:55.569 或者破解加密信息,通过尝试每一个可能的密钥,并在英文字母表 00:01:55.569 --> 00:02:00.389 只有26个字母,这意味着你最多只需要试26个键就可以解密消息。 00:02:00.389 --> 00:02:06.810 现在尝试26个可能的键不是很难,它最多需要一两个小时 00:02:06.810 --> 00:02:13.050 让我们把它变得更难: 将每个字母横移不同的数量,而不是固定的量 00:02:13.050 --> 00:02:18.920 这个例子: 用一个10位长度的密钥,来加密信息 00:02:18.920 --> 00:02:26.560 (显示着每个连续的字母要更改的位置) 00:02:26.560 --> 00:02:34.160 要猜到这个密钥非常困难! 使用10位加密,就有100亿种可能的密钥组合 00:02:34.160 --> 00:02:39.860 很明显,这超过任何人类可以解决的范围,可能要花许多世纪 00:02:39.860 --> 00:02:46.030 但现今的一台普通计算机,只要几秒就可以尝试所有100亿种可能组合 00:02:46.030 --> 00:02:51.240 因此,在现代世界里,坏人都装备了计算机,不是拿笔算 00:02:51.240 --> 00:02:57.890 你要怎么做,才能把信息加密到足够安全,太困难到无法破解呢? 00:02:57.890 --> 00:03:03.760 太困难是指:有太多的可能性,因此不可能在一段合理的时间内被计算出来 00:03:03.760 --> 00:03:10.200 当今的安全通信是以256位元长的密钥来加密。 00:03:10.200 --> 00:03:16.290 这表示:坏人拦截了你的信息,他的计算机必须尝试这么多种的可能密钥… (看画面上的巨量数字) 00:03:16.290 --> 00:03:24.040 直到他找到了正确的密钥,才能破解信息。 即便你有100,000台超级计算机, 00:03:24.040 --> 00:03:30.680 要让这10万台超级计算机去每秒尝试那一百万亿的密钥, 将要花费数十年的时间,才能尝试每一种组合。 00:03:30.680 --> 00:03:37.690 哪怕仅仅是破解一条由256位加密保护的信息。 00:03:37.690 --> 00:03:43.320 当然,计算机芯片的速度是它的两倍,大小是它的一半。 00:03:43.320 --> 00:03:48.400 如果这种指数级的发展速度继续下去,今天不可能解决的问题, 00:03:48.400 --> 00:03:54.680 将在未来几百年内得到解决,那么256位元也将不足以保证安全。 00:03:54.680 --> 00:04:01.070 事实上,我们已经不得不增加标准关键的长度来跟上计算机的速度。 00:04:01.070 --> 00:04:05.540 好消息是,使用较长的密钥并不会使加密消息变得更加困难, 00:04:05.540 --> 00:04:11.660 但它会成倍地增加破解密码所需的猜测次数。 00:04:11.660 --> 00:04:16.779 当发送方和接收方使用相同的密钥对消息进行加密和解密时, 00:04:16.779 --> 00:04:24.199 称为对称加密。像凯撒密码(Caesar Cipher)这样的对称加密技术, 00:04:24.199 --> 00:04:29.710 密钥必须由两个人事先私下商定。这对我们来说是件好事, 00:04:29.710 --> 00:04:35.840 但互联网是开放的,是公开的,所以两台计算机不可能私下“见面”, 00:04:35.840 --> 00:04:41.599 就密钥达成一致。相反,计算机使用非对称加密密钥, 00:04:41.599 --> 00:04:49.020 即公钥可以与任何人交换不共享的私钥。公钥用于加密数据, 00:04:49.020 --> 00:04:55.800 任何人都可以使用它来创建一条秘密消息,但是只有 00:04:55.800 --> 00:05:01.270 访问私钥的计算机才能解密这个秘密。至于,它是如何工作的 00:05:01.270 --> 00:05:06.129 是一些我们暂时不会提及的数学知识。现在,假设你有一个个人邮箱, 00:05:06.129 --> 00:05:11.430 任何人都可以将邮件存入该邮箱,但他们需要一个密钥。你可以 00:05:11.430 --> 00:05:16.509 复制多份密钥,然后寄给你的朋友,或者直接把它公开。你的朋友 00:05:16.509 --> 00:05:21.400 甚至陌生人都可以使用公钥访问您的储存槽并向其中发送消息, 00:05:21.400 --> 00:05:27.400 但只有你可以使用你的私钥打开邮箱,访问收到的所有秘密消息。 00:05:27.400 --> 00:05:31.539 你还可以通过使用朋友邮箱的公开密钥,将消息发回你的朋友。 00:05:31.539 --> 00:05:37.620 通过这种方式,人们可以在不需要就私钥达成一致的情况下交换安全消息。 00:05:37.620 --> 00:05:43.699 公钥密码学是开放internet上所有安全消息传递的基础, 00:05:43.699 --> 00:05:49.340 包括称为SSL和TLS的安全协议, 00:05:49.340 --> 00:05:55.900 它们在我们浏览web时保护我们。 00:05:55.900 --> 00:06:01.400 今天,只要在浏览器的地址栏中看到小锁或https字母, 00:06:01.400 --> 00:06:07.409 这意味着您的计算机,正在使用公钥加密与您所在的网站安全地交换数据。 00:06:07.409 --> 00:06:13.400 随着越来越多的人上网,越来越多的私人数据将被传输, 00:06:13.400 --> 00:06:19.080 保护这些数据的需求将变得更加重要。 00:06:19.080 --> 00:06:24.059 随着计算机运行速度越来越快,我们将不得不开发新的方法, 00:06:24.059 --> 00:06:29.259 使加密技术难以破解。这就是我的工作,它总是在变化。