柯克霍夫原則

密碼學上的柯克霍夫原則 （ Kerckhoffs's principle ， 也稱爲柯克霍夫假說 、 公理 、 或定律 ） 系由在19世紀提出 ： 即使密碼系統的任何細節已爲人悉知 ， 只要密匙 （ key ， 又稱金鑰或密鑰 ） 未泄漏 ， 它也應是安全的 。 資訊理論的發明者克勞德 · 夏農則改成說 ： 「 敵人瞭解系統 」 ， 這樣的說法則稱爲夏農箴言 。 它和傳統上使用隱密的設計 、 實作 、 或其他等等來提供加密的隱晦式安全想法相對 。 依據柯克霍夫原則 ， 大多數民用保密都使用公開的演算法 。 但相對地 ， 用於政府或軍事機密的保密器通常也是保密的 。 柯克霍夫爲軍用保密器所設計的這六個原則是 ： 即便如果做不到數學上不可破解 ， 系統也應在實質 （ 實用 ） 程度上無法破解 。 系統內不應含任何機密物 ， 即使落入敵人手中也不會造成困擾 。 密匙必須易於溝通和記憶 ， 而不須寫下 ； 且雙方可以容易的改變密匙 。 系統應可以用於電訊 。 系統應可以攜帶 ， 不應需要兩個人或以上才能使用 （ 應只要一個人就能使用 ） 。 系統應容易使用 ， 不致讓使用者的腦力過份操勞 ， 也無需記得長串的規則 。 布魯斯 · 施奈爾將這個想法延伸 ， 認爲除了密碼系統之外 ， 任何保安系統都是這樣 ： 試圖使用隱密物來保密一些東西 ， 都會製造了失敗的根源 。 若以依賴隱密物或隱密方式的隱密性爲主 ， 一旦被公開或複製後即可能有遭到破解的危險 埃裏克 · 雷蒙則將它引伸到開放源代碼軟體 ， 稱一套未假定敵人可獲得源代碼的資安軟體並不可靠 ， 因此 ， 「 永無可信的封閉源碼 」 。 反過來說 ， 開放源碼比封閉源碼更安全 。 此種論點稱爲透明式的安全 （ security through transparency ） 。