1.6 理论密码学vs.实用密码学
1993年,Bruce Schneier出版了《应用密码学》(Applied Cryptography)一书,该书旨在帮助应用程序开发者和软件工程师构建密码学应用。2012年前后,Kenny Paterson和Nigel Smart发起了一个名为“Real World Crypto”的年度会议,该密码学会议仍面向程序开发者和软件工程师。那么,应用密码学和实用密码学指的是什么?密码学难道不止一种吗?
要回答这些问题,我们还须从理论密码学(密码设计者和密码分析者所研究的密码学)的定义开始谈起。理论密码学研究者大多来自学术界和高校,但有少部分人可能来自工业界和政府特定部门。这些研究者的研究领域涉及密码学的各个方面,他们通过在期刊和会议上发表论文和演讲的形式向本领域的同行们分享最新研究成果。然而,并非每个研究者所做的研究都能在实际环境下应用。通常,这些研究者也不会对所提概念进行实证或进行代码实现。世界上甚至也不存在足以运行这些研究的计算机,所以这样的研究通常对现实应用没有多大意义。话虽如此,理论密码学有时也会走向实用密码学这一边,进而变得更有实用价值。
与理论密码学相对立的另一边是应用密码学(Applied Cryptography)或实用密码学(Real-world Cryptography)。实用密码学(应用密码学)是保证现实应用安全的基础。人们在现实生活中几乎感受不到实用密码学的存在,也无法直接看到它的具体应用。但是,当在互联网上登录银行账户,或向好友发送消息时,实用密码学技术就开始发挥作用了。实用密码学无处不在,不幸的是,不断观察和尝试破坏系统的攻击者也无处不在。实用密码学领域的工作者大多来自工业界,但他们有时也需要学术界的研究者帮助他们审查算法和设计的协议。实用密码学的研究结果也会通过会议、博客、帖子和开源软件等共享出来。
通常,实用密码学非常关心一些现实需求:算法提供的确切安全级别是多少?算法的运行时间是多长?密码原语要求的输入和输出有多大?我们可能已经猜到,本书的主题是实用密码学。虽然理论密码学并非本书主题,但在最后几章中我们会了解一些密码学家的前沿研究。等着吧,实用密码学未来的发展会让我们感到吃惊的。
现在,我们可能会有疑问:开发人员和工程师在实际应用中怎样选择和使用密码原语?