A cryptosystem must remain secure even if everything about the system, except the key, is public knowledge.
Originates from 6 design guidelines Auguste Kerckhoffs wrote for military ciphers:
-
Practical indecipherability
The system must be practically, if not mathematically, indecipherable. -
Compromise tolerance
It should not require secrecy, and it should not be a problem if it falls into enemy hands. -
Memorable, changeable keys
The key must be easy to communicate and remember, without requiring written notes, and correspondents must be able to change or modify it at will. -
Telegraph compatibility
It must be applicable to telegraph communications. -
Portability
It must be portable, and its use must not require several people. -
Ease of use
Given the circumstances in which it is used, the system must be easy to use, requiring neither mental strain nor knowledge of a long series of rules.