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