NP-Hardness vs Cryptographic Hardness
To understand the gap between these two terms, we divide this blog into two parts. In first part, we discuss complexity theory, and in second part, we explore cryptographical perspective. Complexity Theory: For a better understanding of complexity theory, we refer readers to [1] Language L : A language L is a set of strings defined over an alphabet set Σ. Class P (polynomial time) : A language L is in P if L is decidable in polynomial time by a deterministic Turing machine. Example: Language = Reachability. Input: Graph G(V,E), and s,t ∊ V(G). Question: Does their exist a path from s to t ? The above Language is an example of Class P (hint: can be easily solved by BFS/DFS algorithm). Class NP (non deterministic polynomial time) : A language L ∊ NP if the certificate for L can be verified by a non-deterministic Turing machine in polynomial time. A certificate for a language L is an instance of the solution ...