Cryptography/Basic Design Principles
Appearance
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.