I remember reading a book on cryptography with a section detailing the objectives that modern cryptography must accomplish, one being that even if the algorithm is known, the method remains secure. I.e. the so-called Kerckhoffs's principle. What are the other standards an algorithm must accomplish and why are they necessary?
closed as too broad by Matthew, Adi, Steffen Ullrich, TildalWave, Neil Smithline Mar 13 '16 at 16:56
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
What you are referring to is Kerchoff's Principle. Beside that a couple of formalizations of security criteria (along with very simplified explanations) are:
- Indistinguishability under chosen-plaintext attack (IND-CPA)
- Indistinguishability under [adaptive] chosen ciphertext attack (IND-CCA1 & IND-CCA2)
These roughly say that ciphertexts should not leak information about the plaintext, and that plaintexts should not allow an adversary to infer anything about their corresponding ciphertexts. Some more details here.
MACs and Digital Signatures
- Strong existential forgery under chosen message attack (SUF-CMA)
- Weak existential forgery under chosen message attack (WUF-CMA)
See page 11 of this paper. These roughly describe the ability of an adversary to forge a signature for a given message without having knowledge of the signing key.
These roughly say that given the output of a hash function it should computationally intractable to find the input to the function that produced that output or to find two values that produce the same output when fed through the hash function.