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