首页/我的作品/密码学/2.5 柯克霍夫原则:密码学的第一法则
密码学:守护数字世界的秘密

2.5 柯克霍夫原则:密码学的第一法则

第 12 / 78 篇 · Crazy Boy

19世纪,荷兰语言学家和密码学家奥古斯特·柯克霍夫提出了一个至今仍被奉为圭臬的原则:

“一个密码系统的安全性,不应依赖于算法的保密,而应依赖于密钥的保密。”

翻译成人话就是:你的加密方法可以公开给全世界看,只要密钥还在你手里,别人就破解不了。

这个原则听起来简单,却彻底改变了密码学的发展方向。在柯克霍夫之前,人们习惯把算法也当作秘密,结果往往是算法泄露,一切白费。柯克霍夫之后,密码学家们开始公开讨论、公开评审、公开竞争——AES的诞生就是全球公开征集的结果。

现代密码学的所有算法,都是公开的。你可以在网上找到AES、RSA、SHA-256的完整技术文档。这听起来有点反直觉:算法都公开了,那还怎么保密?

秘密全在密钥里。一个256位的AES密钥,可能的取值比宇宙中的原子还多。你知道算法,也知道密文,但不知道密钥,那就只能面对天文数字般的可能性望洋兴叹。

这就是现代密码学的根基:安全,不靠隐藏,而靠数学。