Skip to content

Comment on Why cryptography is not based on NP-complete problems

Comments

The article is a bit confusing (to me as a layman), basically as I understand it's saying that the reason we can't form cryptosystems out of arbitrary NP-complete problems is because there exist randomized algorithms that work for 99% of inputs (average vs. worst-case complexity, e.g. why the simplex algorithm works in practice). But there are some things missing:

* We know that randomized algorithms exist for NP-complete problems. But couldn't we have some problem in NP that while reducible to e.g. 3SAT always reduce to "very hard" instances?

* Conversely, there's no guarantee that there doesn't exist a randomized algorithm for something that's NP-hard (and not in NP), right?

The argument along the lines of NP-complete vs NP-hard seems to be a non-sequitur, since the actual distinction is average vs. worst-case hardness right? It may just so happen that all currently known problems in NP are easy "on average", but I don't think that's formally guaranteed.

Edit: https://theory.stanford.edu/~trevisan/average/slides.pdf seems to imply that (1) is an open question.

There has been quite some research on finding, in layman's terms, where the difficult instances of an NP-complete problem are.

What it comes down to is that there are phase transitions in computational systems that depend on how constrained the problem is.

Consider a sudoku puzzle. If the board is almost empty of numbers then it's easy to solve. If the board is almost full of numbers it's easy to solve. But there's some critical amount of numbers filled in (say half of them) that makes the sudoko most difficult to solve. That's where the phase transition is.

The notion of a phase transition comes from thermodynamics where ice becomes water becomes gas.

Here's an early paper on phase transition is AI.

https://www.sciencedirect.com/science/article/pii/0004370287...

Here's a later one on phase transitions for the satisfiability problem (SAT).

https://homepages.inf.ed.ac.uk/rbf/MY_DAI_OLD_FTP/rp679.pdf

1) It'd be really really awesome to show average-case hardness version of a natural problem (i.e. 3SAT on a natural distribution) from the worst-case hardness of that problem (i.e. 3SAT). I believe it's wide open in the context of building one-way functions.

2) Randomized polynomial-time algorithms don't exist for NP-hard problems unless P = NP (iirc).

I think you have the right intuition. The issue is that right now cryptography is built on top of relatively "fragile" "average-case hard" problems -- discrete log, lattice stuff, etc. They are hard by assumption and we really don't know how to study them. (I would bet on some of this stuff being broken in our lifetimes).

It'd be really nice to instead base cryptography on an assumption that we are much more confident in being true, i.e. worst-case hardness of 3SAT. (I mean, who is going to prove P=NP). There are two steps:

1) First, show cryptography from average-case hardness of a "more believable" problem.

2) Second, to show average-case hardness of that problem is implied by the worst-case hardness of an NP-complete problem.

(1) is sort of better studied now, with a line of work on meta-complexity. (2) I believe is wide open, as previously mentioned.

Anyways I'm not really an expert in this area, but it's really quite fascinating.

In general, it's very hard, and a constantly moving target, to make 'hard' NP-complete problems.

For example, it's really nice to have a problem generator which make a series of hard problems, for things like benchmarking. It's very common that someone comes up with such a system, then someone ends up finding a way of solving "almost everything" that the random generator makes, by finding a good way of finding solutions to the solvable problems, and/or finding a way to easily prove unsolvable problems have no solutions.

The second category tends to be more interesting, it ends up being really hard to make large random unsolvable problems which don't end up including some kind of "flaw" with high probability, where the flaw ends up being easy to find, and easily proves the problem is unsolvable.

Generally, all problems used for crypto are in NP. Since given the secret, you need to be able to compute it efficiently.

It’s just that being NP hard or complete is not enough.

The theoretical definition of one way functions is used to define cryptography. So reading on that my clarify this some more.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.