29
$\begingroup$

What did Peter G. Neumann mean by:

If you think cryptography is the answer to your problem, then you don't know what your problem is.

(eg: quoted in the New York Times, February 20 2001)

$\endgroup$
  • 24
    $\begingroup$ Cryptography doesn't solve any problems by itself. For example symmetric encryption merely turns your data confidentiality problem into a key management problem. But cryptography can be an essential part of the solution you use to achieve your security goals. $\endgroup$ – CodesInChaos Aug 12 '16 at 8:21
  • 12
    $\begingroup$ I guess it's indeed about creating a secure system rather than just using a secure primitive (such as a block cipher). $\endgroup$ – Maarten Bodewes Aug 12 '16 at 8:34
  • 2
    $\begingroup$ I don't think his statement is true in general, only in particular contexts. Otherwise, he's implying that cryptography doesn't solve any problem, which is clearly false. $\endgroup$ – pabrams Aug 13 '16 at 11:59
  • $\begingroup$ I've edited in an attempt to answer my question by combining the answers below. $\endgroup$ – user2768 Aug 22 '16 at 8:43
  • $\begingroup$ If you check out other questions, you'll notice this is usually not done. In my opinion, the question should not contain an answer. If you want to write an answer (or a compilation of the other answers), just add it as a serparate one. Otherwise, the voting system and the comments get really messy - just like this comment has nothing to do with the question. $\endgroup$ – tylo Aug 22 '16 at 9:31
41
$\begingroup$

That New York Times article actually continues after that quote:

Dr. Neumann explained that there are always ways to get around cryptography barriers and that these methods have nothing to do with breaking codes.

"It's like the voting machines," he said. "You'd like to have some integrity in the electoral process and now folks are coming out of the woodwork saying, `We have this perfect algorithm for privacy and security.' "

So it's very clear that this is the difference between secure systems and just the cryptographic algorithms.

That said, if things are managed right then cryptography certainly has its benefits.


As another example, nobody will argue that TLS doesn't have its advantages. But even there, the huge number of Certificate Authorities and the enormous amount of trust put on them and the browser manufacturers threatens the system, even though the TLS protocol is relatively secure when implemented correctly.

$\endgroup$
  • 9
    $\begingroup$ I'm siding wholeheartedly with Dr. Neumann about machines and cryptography applied to voting not solving the problem of election integrity; much the contrary. $\endgroup$ – fgrieu Aug 12 '16 at 12:25
  • $\begingroup$ Me too, but it's clearly an old article - the actual reason for writing the article in the first place has nothing to do with voting. In my opinion, bringing it up only confuses the reader. $\endgroup$ – Maarten Bodewes Aug 12 '16 at 12:40
  • 4
    $\begingroup$ Presumably the statement "there are always ways to get around cryptography barriers and ... these methods have nothing to do with breaking codes" is intended to be taken in a broader context, thus the statement means: systems use cryptography (i.e., systems contain cryptography barriers) and systems have many weak spots that are unrelated to the security of the cryptography. $\endgroup$ – user2768 Aug 12 '16 at 14:26
8
$\begingroup$

It's pretty straightforward, no "hidden meaning".

Explanation: Your message takes this route:

A --> B **> C --> D

Where A is you, B is the encrypting process, C is the decrypting process, D is the final recipient. Only the **> part of the route is encrypted.

So, no matter how secure your encryption is, in whatever solution, attackers will always be able to just ignore it and attack the --> parts instead, which are completely in the clear, by definition.

He gives a voting machine as an example, where the votes are changed by evil software just before they get encrypted.

$\endgroup$
5
$\begingroup$

This single statement (as it is) can be considered misplaced in that article, because it is just not easy to understand.

Firstly, cryptography is a tool "in the middle". It depends on assumptions, and then it provides usually basic functionalities, like a secure chanel. It does not guarantee the absolute security of a complex program.

Then, the main statement in the quotes sentence is, that security does not only rely on proper cryptography. In fact, most security leaks are not caused by weak crypto, but have other reasons. E.g:

  • Using outdated crypto, e.g. using DES today
  • Wrong usage of crypto: From fixed keys or a small pool of keys to re-using OTPs to using the wrong primitive for a given task...
  • Weak RNGs: Deserves its own spot. "need a random number, let's use java.util.Random ..."
  • Implementation errors
  • Wrong access control
  • password management, e.g. saving passwords in the clear
  • key management
  • Wrong assumptions
  • Wrong understanding of cryptography: Ciphertext only attacks are irrelevant, we need stronger definitions

And then we need to remember, security of a complex system depends not on the most secure part or the average security of the components. It depends only on the weakest link, and in most cases this has nothing to do with actual cryptography.

$\endgroup$
2
$\begingroup$

After Neumann's quote ("If you think cryptography is the answer to your problem, then you don't know what your problem is"), the article continues:

Dr. Neumann explained that there are always ways to get around cryptography barriers and that these methods have nothing to do with breaking codes.

This additional statement can be interpreted as follows: systems use cryptography (i.e., systems contain cryptography barriers) and systems have many weak spots that are unrelated to the security of the cryptography. For instance, suppose a system contains a component A that inputs a message and passes that message to component B; that message is encrypted to a ciphertext by component B and transmitted to component C; and the ciphertext is decrypted by component C and passed to component D. Hence,

A --> B **> C --> D

Only **> is guaranteed to provide security. The remaining parts --> might not provide any security.

Thus, Peter G. Neumann (may have) meant:

If you think cryptography is the answer to your [system's] problem, then you don't know what your problem is.

This answer builds upon previous answers.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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