Kerckhoffs’s Principle:柯克霍夫原则对安全管理的启发意义

Kerckhoffs’s principle(柯克霍夫原则)是密码学(Cryptography)的一个术语,又叫“柯克霍夫假说、公理、或定律“),是网络安全(cybersecurity)最基础的概念之一。

这条定律的核心理念就是一句话:

A cryptosystem should be secure even if everything about the system, except the key, is public knowledge.

即使密码系统的任何细节已为人悉知,只要密匙(key)未泄漏,它也应是安全的。


这个理念由荷兰语言学家、密码学家Auguste Kerckhoffs(柯克霍夫)提出,在此之前,密码界的主流理念是“隐晦式安全”(Security through obscurity)。

Security through obscurity(or Security by Obscurity)理念主张对全部系统实行保密,从设计到执行,每个环节都保密。

这种传统加密理念最大的问题在于操作的难度很大,随着系统的复杂程度提高,技术的发展,对每个环节都加密或保密越来越难实现。另外,一旦系统链条中的任何环节的秘密被泄露,整个系统的弱点就完全暴露了。


而按照柯克霍夫原则,一个保密系统中最重要的是密匙。只要保护好密匙,其他环节都不怕泄密,例如,算法可以公开,系统设计原理可以公开,但系统的密匙需要严格保密,这样就能实现加密的功能。

举个现实生活中简单的例子——寄信。

如果我们把寄信当作一个信息传导系统来看,信筒的位置是公开的,邮递员开邮筒的时间是公开的,这些都不怕,因为只有邮递员一个人有打开信筒的钥匙。

这个钥匙就是柯克霍夫主张的密匙(the key).

这个例子如果按照传统的隐晦式安全理念,则邮筒需要放在一个秘密的地方。因为邮筒的位置保密,所以并不上锁。邮递员开邮筒的时间也是保密的。这样看似很安全,但一旦邮筒的位置被泄露,或者邮递员开邮筒的时间规律被掌握,没有任何保护的邮筒就没有任何安全可言了。

如果发生这种泄密怎么办呢?只能更改邮筒的位置,更改开邮筒时间。

显然这是不合理的,也不现实。操作成本极高,保密难度很大。


图为德国洛伦兹密码机战中用来密机密邮件

1883年,柯克霍夫提出了军用加密的6大原则,这是现代密码学至今仍奉为金科玉律的经典理论。

  1. 即使非数学上不可破解,系统也应在实质(实用)程度上无法破解。
    The system should be, if not theoretically unbreakable, unbreakable in practice.
  2. 系统内不应含任何机密物,即使落入敌人手中也不会造成困扰。
    It should not require secrecy, and it should not be a problem if it falls into enemy hands
  3. 密匙必须易于沟通和记忆,而不须写下;且双方可以容易的改变密匙。
    It must be possible to communicate and remember the key without using
    written notes, and correspondents must be able to change or modify it at
    will;
  4. 系统应可以用于电讯
    It must be applicable to telegraph communications
  5. 系统应可以携带,不应需要两个人或以上才能使用(应只要一个人就能使用)。
    It must be portable, and should not require several persons to handle or operate;
  6. 系统应容易使用,不致让用户的脑力过分操劳,也无需记得长串的规则。
    Lastly, given the circumstances in which it is to be used, the system
    must be easy to use and should not be stressful to use or require its
    users to know and comply with a long list of rules.


尽管随着科技的发展,当年适用于电报时代的做法今天已不再适用了。这六条原则背后的理念却依然有效,并对安全管理有很大借鉴意义。

例如,我们在做安全管理时,应该认识到企图通过隐瞒或隐藏是无法做到保密和保护的。再保密的东西总有内部人员会接触,一旦接触机密的内部人员泄密,损失惨重并无法及时发现。

只有通过合理的权限及密码设计,才能达到有效保密的目的。

*免费在线课程(free online course):Cryptography and Information Theory


参考阅读