1 00:00:02,940 --> 00:00:08,500 互联网:加密与公钥 2 00:00:08,990 --> 00:00:14,150 嗨,我叫米娅·吉尔·埃普纳( Mia Gil-Epner), 我在加州大学伯克利分校主修计算机科学系 3 00:00:14,150 --> 00:00:19,460 我在国防部工作,主要工作是确保信息安全 4 00:00:19,460 --> 00:00:25,510 互联网是一个开放的公共系统。 我们在共享的线路上传送与接受信息 5 00:00:25,510 --> 00:00:30,039 尽管它是一个开放系统, 我们仍然透过网络交换大量的私密数据 6 00:00:30,039 --> 00:00:35,890 像是:信用卡号码、帐户信息、密码、电子邮件 7 00:00:35,890 --> 00:00:40,690 那么这些私人事物要如何保密呢? 任何类型的数据都可以通过 8 00:00:40,690 --> 00:00:45,299 透过加密程序:混排或改变信息来隐藏原始的内容, 任何类型的数据都得以保密 9 00:00:45,309 --> 00:00:51,900 解密是一个重排的过程,得以让数据变得可以解读 10 00:00:51,900 --> 00:00:56,970 这是一种简单的想法,人们这样做已经有好几世纪之久 11 00:00:56,970 --> 00:01:02,379 最为人所知的一种加密方法是「凯萨密码」 12 00:01:02,379 --> 00:01:07,220 这个方法是以凯萨大帝来取名,这位罗马将军将军事命令加密 13 00:01:07,220 --> 00:01:12,540 以确保即使信息被敌方拦截,也无法解读。 14 00:01:12,540 --> 00:01:16,759 凯萨密码是一种演算规律: 将原文中的每一个字母,按顺序都替换为向下一定间隔「数量」的字母 15 00:01:16,759 --> 00:01:21,259 如果这个数量只有信息的发送者与接收者知道,它就称为密钥(key) 16 00:01:21,259 --> 00:01:28,640 它允许接收者能够解开秘密信息 17 00:01:28,640 --> 00:01:35,869 举例来说:假定你原本的信息是「HELLO」 使用凯萨密码算法,密钥是5 18 00:01:35,869 --> 00:01:43,259 加密后的信息会是… 要解密消息,收件人只需使用密钥进行反转过程。 19 00:01:43,259 --> 00:01:50,179 但有一个大问题, 有了凯撒密码,任何人都可以轻易破解 20 00:01:50,179 --> 00:01:55,569 或者破解加密信息,通过尝试每一个可能的密钥,并在英文字母表 21 00:01:55,569 --> 00:02:00,389 只有26个字母,这意味着你最多只需要试26个键就可以解密消息。 22 00:02:00,389 --> 00:02:06,810 现在尝试26个可能的键不是很难,它最多需要一两个小时 23 00:02:06,810 --> 00:02:13,050 让我们把它变得更难: 将每个字母横移不同的数量,而不是固定的量 24 00:02:13,050 --> 00:02:18,920 这个例子: 用一个10位长度的密钥,来加密信息 25 00:02:18,920 --> 00:02:26,560 (显示着每个连续的字母要更改的位置) 26 00:02:26,560 --> 00:02:34,160 要猜到这个密钥非常困难! 使用10位加密,就有100亿种可能的密钥组合 27 00:02:34,160 --> 00:02:39,860 很明显,这超过任何人类可以解决的范围,可能要花许多世纪 28 00:02:39,860 --> 00:02:46,030 但现今的一台普通计算机,只要几秒就可以尝试所有100亿种可能组合 29 00:02:46,030 --> 00:02:51,240 因此,在现代世界里,坏人都装备了计算机,不是拿笔算 30 00:02:51,240 --> 00:02:57,890 你要怎么做,才能把信息加密到足够安全,太困难到无法破解呢? 31 00:02:57,890 --> 00:03:03,760 太困难是指:有太多的可能性,因此不可能在一段合理的时间内被计算出来 32 00:03:03,760 --> 00:03:10,200 当今的安全通信是以256位元长的密钥来加密。 33 00:03:10,200 --> 00:03:16,290 这表示:坏人拦截了你的信息,他的计算机必须尝试这么多种的可能密钥… (看画面上的巨量数字) 34 00:03:16,290 --> 00:03:24,040 直到他找到了正确的密钥,才能破解信息。 即便你有100,000台超级计算机, 35 00:03:24,040 --> 00:03:30,680 要让这10万台超级计算机去每秒尝试那一百万亿的密钥, 将要花费数十年的时间,才能尝试每一种组合。 36 00:03:30,680 --> 00:03:37,690 哪怕仅仅是破解一条由256位加密保护的信息。 37 00:03:37,690 --> 00:03:43,320 当然,计算机芯片的速度是它的两倍,大小是它的一半。 38 00:03:43,320 --> 00:03:48,400 如果这种指数级的发展速度继续下去,今天不可能解决的问题, 39 00:03:48,400 --> 00:03:54,680 将在未来几百年内得到解决,那么256位元也将不足以保证安全。 40 00:03:54,680 --> 00:04:01,070 事实上,我们已经不得不增加标准关键的长度来跟上计算机的速度。 41 00:04:01,070 --> 00:04:05,540 好消息是,使用较长的密钥并不会使加密消息变得更加困难, 42 00:04:05,540 --> 00:04:11,660 但它会成倍地增加破解密码所需的猜测次数。 43 00:04:11,660 --> 00:04:16,779 当发送方和接收方使用相同的密钥对消息进行加密和解密时, 44 00:04:16,779 --> 00:04:24,199 称为对称加密。像凯撒密码(Caesar Cipher)这样的对称加密技术, 45 00:04:24,199 --> 00:04:29,710 密钥必须由两个人事先私下商定。这对我们来说是件好事, 46 00:04:29,710 --> 00:04:35,840 但互联网是开放的,是公开的,所以两台计算机不可能私下“见面”, 47 00:04:35,840 --> 00:04:41,599 就密钥达成一致。相反,计算机使用非对称加密密钥, 48 00:04:41,599 --> 00:04:49,020 即公钥可以与任何人交换不共享的私钥。公钥用于加密数据, 49 00:04:49,020 --> 00:04:55,800 任何人都可以使用它来创建一条秘密消息,但是只有 50 00:04:55,800 --> 00:05:01,270 访问私钥的计算机才能解密这个秘密。至于,它是如何工作的 51 00:05:01,270 --> 00:05:06,129 是一些我们暂时不会提及的数学知识。现在,假设你有一个个人邮箱, 52 00:05:06,129 --> 00:05:11,430 任何人都可以将邮件存入该邮箱,但他们需要一个密钥。你可以 53 00:05:11,430 --> 00:05:16,509 复制多份密钥,然后寄给你的朋友,或者直接把它公开。你的朋友 54 00:05:16,509 --> 00:05:21,400 甚至陌生人都可以使用公钥访问您的储存槽并向其中发送消息, 55 00:05:21,400 --> 00:05:27,400 但只有你可以使用你的私钥打开邮箱,访问收到的所有秘密消息。 56 00:05:27,400 --> 00:05:31,539 你还可以通过使用朋友邮箱的公开密钥,将消息发回你的朋友。 57 00:05:31,539 --> 00:05:37,620 通过这种方式,人们可以在不需要就私钥达成一致的情况下交换安全消息。 58 00:05:37,620 --> 00:05:43,699 公钥密码学是开放internet上所有安全消息传递的基础, 59 00:05:43,699 --> 00:05:49,340 包括称为SSL和TLS的安全协议, 60 00:05:49,340 --> 00:05:55,900 它们在我们浏览web时保护我们。 61 00:05:55,900 --> 00:06:01,400 今天,只要在浏览器的地址栏中看到小锁或https字母, 62 00:06:01,400 --> 00:06:07,409 这意味着您的计算机,正在使用公钥加密与您所在的网站安全地交换数据。 63 00:06:07,409 --> 00:06:13,400 随着越来越多的人上网,越来越多的私人数据将被传输, 64 00:06:13,400 --> 00:06:19,080 保护这些数据的需求将变得更加重要。 65 00:06:19,080 --> 00:06:24,059 随着计算机运行速度越来越快,我们将不得不开发新的方法, 66 00:06:24,059 --> 00:06:29,259 使加密技术难以破解。这就是我的工作,它总是在变化。