通过安全连接查看电子邮件,或在网上零售商处购物时,你是否曾想过,你的私人信息或信用卡数据是如何得到安全保护的?
多亏了 密码算法,我们的信息才得以避开窥探。这些算法会打乱信息,使其他人无法读取,只有预定接收者才能读懂。但这些算法究竟是什么?它们是如何得到广泛应用的?其安全性究竟如何?
加密信息
事实上,最早的密码方法可以追溯到数千年前的古希腊时期。“密码学”(cryptography)一词确实由希腊语中表示“秘密”和“书写”的词组合而成。
例如,斯巴达人 曾以一种著名的方式使用一套系统 :他们将一张纸莎草纸缠绕在一根特定周长的棍子上,并沿着棍子的长度写下信息。纸莎草纸展开后,信息便变得杂乱无章,直到抵达目的地,再缠绕到另一根周长合适的棍子上,才能读出信息。
诸如此类的早期加密算法,必须由发送者和接收者手动执行。它们通常只是简单地重新排列字母,例如 换位 或 替换。
其中最著名的是“恺撒密码”,罗马皇帝尤利乌斯·恺撒的军事指挥官曾使用这种密码。信息中的每个字母都会在加密文本——即密文——中被另一个字母取代,该字母在字母表中向前移动若干位。
但随着时间推移,这类简单方法已被证明并不安全,因为窃听者——即密码分析者——可以利用密文中简单的统计特征,轻易还原明文,甚至找出解密密钥,从而轻易破译今后使用该系统发送的任何信息。
现代计算技术使得使用复杂得多、密码分析者更难“破解”的加密算法成为现实。与此同时,密码分析者也采用并发展了这项技术,以提高破解密码系统的能力。
第二次世界大战期间德国军方使用的 恩尼格玛密码系统 的故事便说明了这一点;最近,这一故事被改编成电影 《模仿游戏》。
恩尼格玛相对复杂的加密算法通过机电计算技术实现,使其适用于德国军事通信。英国密码分析者使用“炸弹”机,扩展了同一技术,以实际破解这种密码。
当代密码系统
如今广泛使用的密码系统起源于20世纪70年代,当时现代电子计算机开始投入使用。美国政府于20世纪70年代中期为行业和政府用途设计并标准化了数据加密标准(DES)。它旨在由数字计算机实现,采用了一系列相对较长的操作,对二进制字符串进行换位和替换。
然而,DES存在一个重大问题:其 密钥 长度相对较短(56位)。从20世纪70年代到90年代,计算机速度提升了多个数量级,使“穷举”密码分析——即逐一尝试所有可能的密钥,直到找到正确的解密密钥——日益成为对该系统切实可行的威胁。
相比之下,其后继标准高级加密标准(AES)使用至少128位的密钥,目前是保护互联网通信最常用的密码系统。
密钥难题
AES也有其局限。与此前所有密码系统一样,它属于 对称密钥密码系统:发送者(姑且称她为爱丽丝)用密钥加密信息,接收者(姑且称他为鲍勃)则用该密钥解密信息;双方都知道这个秘密密钥。
秘密密钥既然是秘密,就不能直接通过互联网这样的公共通信渠道交换。如果密钥被截获,今后所有加密信息都会受到影响。如果想对密钥加密,那又会产生如何确保该加密方法安全的问题。
因此,爱丽丝和鲍勃必须先通过私人会面等私密通信渠道交换秘密密钥,之后才能使用密码系统进行私密通信。对于互联网通信而言,这是一个重大的实际障碍,因为爱丽丝和鲍勃往往没有这样的私密通信方式。
为克服这一障碍——即密钥分发问题——20世纪70年代,人们设计出一种别出心裁的不同类型密码系统,称为 非对称密钥密码系统,也称公钥密码系统。
在公钥密码系统中,接收者鲍勃生成两把密钥:一把是由鲍勃自行保管、用于解密的秘密密钥;另一把是公钥加密密钥,鲍勃通过公共渠道发送给爱丽丝。爱丽丝可以使用公钥加密密钥将信息加密后发给鲍勃,但只有鲍勃能用自己的私钥解密。因此,这种系统解决了对称密钥密码系统的密钥分发问题。
在实际应用中,由于公钥系统比对称密钥系统需要更多计算资源,两类密码系统都会使用。公钥密码系统仅用于为AES等对称密钥系统分发密钥,随后由对称密钥系统加密所有后续信息。
因此,最终的隐私保护取决于所用对称密钥和公钥密码系统的安全性。如今最常用的公钥密码系统由斯坦福大学和麻省理工学院的研究人员于20世纪70年代设计,分别称为 RSA密码系统 (名称取自设计者Ron Rivest、Adi Shamir和Len Adleman的姓名首字母)以及 Diffie-Hellman系统;它们运用了数论这一数学领域的技术。
热门RSA密码系统的视频指南。
优势与弱点
那么,如今使用的AES和RSA/Diffie-Hellman系统有多安全?
任何密码系统在实际应用中的安全性,既取决于其数学设计属性(“数学安全性”),也取决于其实现和使用的具体方式(“实现安全性”)。这里我将重点讨论数学安全性,但还要指出,多年来发现的许多安全漏洞,根源都在于密码技术实现不当或使用不当。
现代AES和RSA/Diffie-Hellman密码系统的数学安全性,依赖于这样一种假设:某些数学问题的计算复杂度极高,使用当前计算技术的攻击者无法在合理时间内解决。
尽管目前无法从数学上证明这些复杂性假设,但密码学研究界已经对其进行了长期研究(AES相关研究超过15年,RSA和Diffie-Hellman系统相关研究超过30年),而这些假设至今仍成立,这为其有效性提供了相当有力的证据。
此外,对于RSA和Diffie-Hellman系统而言,其基础数学问题是数学家研究 数论时独立探讨的自然问题。
更具体地说,破解RSA系统与将 大型合数因式分解 为素数乘积这一问题密切相关;而Diffie-Hellman系统的安全性则基于这样一个问题:给定一个整数,在给定的素数模下求其 对数 (以给定整数为底)。
这两个例子所涉及的问题至少自18世纪以来就在数论领域受到研究,但数学家至今仍未发现能够高效解决它们的算法。这或许能让我们对其计算难度有一定信心。
尽管如此,过去30年来数学上的重大进展,已经使这类问题能够在比以往预期更短的时间内得到解决。再加上计算机速度提升,为了确保在面对已知最强攻击算法时仍达到既定安全等级,就必须使用更长的密钥。
例如,据估计,RSA在典型安全等级下的 密钥长度 已从20世纪80年代初的约400位增加到如今的1,200多位。
迄今为止,逐步增加密钥长度足以弥补计算技术在问题求解能力上的进步。但未来算法研究取得突破,使RSA等系统在任何实际可用的密钥长度下都不再安全,这种可能性确实存在。
例如,2013年,一个欧洲研究团队 发现了高效算法 ,能够解决离散对数问题的某些变体(即小特征有限域上的离散对数问题)。这些算法显然不适用于RSA和Diffie-Hellman密码学通常采用的问题变体,但这表明,密码系统安全与数学自然进展之间的猫鼠博弈十分脆弱。
密码学的未来
我认为有两项潜在进展可能对密码学产生重大影响。
第一项与 量子技术的发展有关。20世纪90年代,数学家彼得·肖尔在一项突破性的理论成果中 证明了 大规模量子计算机的潜力。此类计算机利用量子力学原理,高效解决整数因式分解和离散对数问题,从而使RSA和Diffie-Hellman系统不再安全。
虽然大规模量子计算技术尚未实现(其实现前景也仍不明朗),但一旦实现,将对密码学产生的影响不容低估。
令人欣慰的是,研究人员已经提出两种可能的应对方案,以备未来出现这一问题时使用。一种是开发被认为即便面对量子计算攻击也能保持安全的公钥密码系统。另一种是 量子密码学,这是一种依靠物理假设和量子物理定律来保障安全的通信技术。
第二项潜在进展与 云计算使用日益普及有关。遗憾的是,如果不使用加密技术保护存储的私人数据,那么这些数据对于云服务器(或任何有权访问云服务器数据的实体,例如黑客)而言就不再具有隐私性。
另一方面,用户使用传统加密算法,也会导致服务器无法为用户对数据进行有用的处理(例如搜索数据)。密码学研究界目前正在开发新型密码系统,以解决这一看似矛盾的问题:允许服务器处理加密数据,同时不向服务器泄露数据内容。
由此可见,目前最先进的密码技术足以保护我们的大多数电子邮件和在线交易,但其未来状况并非完全确定。未来——尤其是量子计算——可能会带来更强大的密码系统,但也带来了新的破解可能。猫鼠博弈仍在继续。
本文由 The Conversation合作发表。本文的发表并不意味着世界经济论坛认同文中观点。
如需及时了解议程动态, 请订阅我们的每周通讯。
作者:Ron Steinfeld是莫纳什大学信息技术高级讲师。
图片:一只手的剪影映在电脑屏幕前。路透社/Pawel Kopczynski。

