The title pretty much says it all. I am looking for a formal definition of what a good crypto algorithm is. I cannot find anything online.

closed as off-topic by Jens Erat, Steffen Ullrich, Neil Smithline, Tobi Nary, John Deters Apr 10 '16 at 2:48

  • This question does not appear to be about Information security within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    I think it is a algorithm that everyone tried to break but no one can do it in a razoable time. And if you try to break it, you will not have success. But also, there are others mensures and this is specific for what you will use. – Rodrigo Apr 9 '16 at 13:42
  • certain algorithms are better suited for encrypting certain things. can you please give us a little more information on what you want to encrypt. – JOW Apr 9 '16 at 13:52
  • I believe that this question really should be migrated to crypto rather than be put on hold. There happen to be hundreds of academic papers addressing just this question. – Brent Kirkpatrick Apr 10 '16 at 14:57
  • As the question has been put on hold, I will answer in the comments. Forgive me for breaking some of the informal rules of SE. – Brent Kirkpatrick Apr 10 '16 at 14:58
  • 1
    In short, a cryptographic algorithm has two parts: encryption and decryption. A good crypto scheme takes plain input text, produces a garbled, or encrypted version, and then later decrypts to produce again the plain text. The strength of a cryptography scheme is determined by how difficult for a third-party to decrypt the encrypted message assuming that they have no access to the details used for encryption. – Brent Kirkpatrick Apr 10 '16 at 15:01

A good algorithm

  • satisfies security requirements (e.g. a hash function needs to be collision resistant, preimage-resistant or a cipher needs to satisfy ciphertext indistinguishability)
    • the tricky part here is how to justify that it satisfies the security requirements. We rely on security reductions (''proofs''), extent of external analysis (e.g. algorithm published in a respected journal and analyzed for a couple of years could be expected ''better''' than something kept secret) and experience of the designers (e.g. I would trust the designers of AES more than some random person posting to a newsgroup)
  • satisfies performance requirements for the given application and range of target platforms
  • is easy to implement in a secure way (e.g. some algorithms are easier to protect against side-channels than others, simpler algorithms are easier to implement correctly)
  • an extra feature is that it ''fails gracefully'' e.g. if some of the assumptions required for correct operation are not satisfied it doesn't lead to catastrophic insecurity but only degradation of the security level. A good example would be nonce reuse in authenticated encryption schemes. Some of the designs fail dramatically while others can maintain some level of security.
  • The op asks for a "formal definition". Can you provide links to back up your answer? If not, it seems to be an opinion and not a formal definition. – Neil Smithline Apr 9 '16 at 18:28

Not the answer you're looking for? Browse other questions tagged or ask your own question.