Cryptography/Basic Design Principles
Good ciphers often attempt to have the following traits.
Kerckhoffs's principle[edit | edit source]
Kerckhoffs's principle, also called Kerckhoffs's law:
A cryptosystem should be secure even if everything about the system, except the key, is public knowledge.
In the words of Claude Shannon, "The enemy knows the system." (Shannon's maxim).
Diffusion[edit | edit source]
Having good diffusion means that making a small change in the plain text should ideally cause as much as possible of cipher text to have a fifty percent possibility of change.
For example a Caesar cipher has almost no diffusion while a block cypher may contain lots of it.
Confusion[edit | edit source]
For good confusion the relationship between the cypher text and the plain text should be as complex as possible.