随着数字化社会的发展,我们越来越离不开所谓的“密码”:登录网站、邮箱需要密码,存取现金需要密码……不过,这里要澄清一个常见的概念混淆,这些日常使用的、由我们自己设定和记忆的字符串,严格来说更应该被称为“口令”(Passphrase)。这就好比《三国演义》中曹操口中的“鸡肋”,表面含义与背后的军事决策指令相去甚远。
真正的“密码”则与“加密”“解密”这两个核心过程密不可分。即使是我们普通的网上通信,虽然不涉及军事或商业机密,但绝大多数人也不希望自己与朋友的私人对话被无关的陌生人窥探。这就需要在发送信息前,对原始内容(即“明文”)进行处理,使其变成一堆看似无意义的“乱码”(即“密文”)。当这串乱码传送到目标接收者手中时,对方再通过特定的方法进行处理,将其还原成可以理解的原始信息。这个过程,分别就是“加密”与“解密”。
这里需要更正一个常见的误解:密文虽然看起来像“乱码”,但它并非真正的无序信息。相反,它完整地承载着明文的所有信息,只是在表现形式上被重新编排或替换,因此才能被正确的密钥和方法“解密”还原。一个最古典和直观的加密方法就是单表替换密码(Substitution Cipher),比如将字母逐个替换:
- 将原文中的
a 替换为 z
- 将
b 替换为 y
- ……
- 将
z 替换为 a
你可以尝试用这个简单的规则加密一个单词,然后让你的朋友尝试解密。显然,如果你的朋友不知道这条具体的替换规则,想要猜透原文是相当困难的。然而,这只是加密世界的冰山一角。
事实上,对于非常短的文本,由于可供分析的材料太少,破解起来反而可能更困难。但像上面这种简单的、固定的替换规则,一旦面对长篇大论的文本,在现代密码分析技术面前几乎不堪一击。破译者可以利用语言本身的统计特征(如字母频率分析)轻松将其破解。
现代高强度的加密技术,其基石深植于数论等抽象数学领域。据说,英国著名数学家哈代(G. H. Hardy)曾以其研究的“纯粹无用”的数学而自豪。这在当时看来或许难以理解,但历史颇具讽刺意味:在第二次世界大战期间,他倾注心血研究的数论却深度介入了密码学的理论与实践,为盟军的通信安全立下了汗马功劳。不知哈代若知此事,会作何感想。
另一方面,计算机的出现彻底改变了加密与解密的攻防格局。计算机强大的信息处理能力和闪电般的计算速度,对传统的加密技术提出了前所未有的挑战。那么,在算力飞速发展的今天,人类的信息还有真正的秘密可言吗?是否存在一种理论上“绝对安全”的终极加密算法——它只能被掌握算法和密钥的“内部人士”破解,而对外部攻击者构成不可逾越的屏障?
湖南科学技术出版社出版的《密码的数学》一书,正是侧重于探讨这些加密、解密技术背后的数学知识。阅读此书需要读者的大脑始终保持高度活跃,因为稍不留神就可能迷失在“密文”、“算法”和“密钥”构成的迷宫中。笔者建议大家阅读时最好备好纸笔,以便随时在纸上模拟一番加密与解密的过程,加深理解。
最后提一点,这本书是几年前出版的,因此并未涉及近年来人工智能(AI)对密码学领域带来的新冲击与挑战。例如,AI是否能通过机器学习发现新的密码分析模式?这无疑是值得关注的新方向,只能留待未来的著作去补充探讨了。
对这类融合了计算机科学与深厚数学理论的交叉学科话题感兴趣的朋友,欢迎来云栈社区交流讨论,这里聚集了许多热爱钻研底层原理的开发者。
|