120 likes | 218 Views
COS 433: Cryptography. Princeton University Fall 2005 Boaz Barak. Lecture 3: Computational Hardness. “Impatient Cryptography”. Last Lecture: Simple algorithm (~10 lines of C code) to break every encryption with key-length < message-length.
E N D
COS 433: Cryptography Princeton University Fall 2005 Boaz Barak Lecture 3: Computational Hardness
“Impatient Cryptography” • Last Lecture: Simple algorithm (~10 lines of C code) to break every encryption with key-length < message-length. • Caveat: Takes roughly 2key length steps to run. • For 1KB key will take more than galaxy’s lifetime to finish. • This holds even if we run in parallel one processor for each atom of the universe each running in light speed. • Encryption that takes this long to break seems to provide “pretty good privacy”.
Measuring Computational Steps • Church-Turing thesis: every physically feasible computation can be described roughly as follows • memory in initial state • Step 1 • Step 2 • Step i • Step i+1 • Final state • s Bit in state i+1 depends on constant (e.g. 3) bits of state i. • t • Captures every computer or other computing device ever built, including human brain. • W.l.o.g, each bit depends on · 2 bits, using either Æ, Ç or : functions. • We call this a t¢s –sized Boolean circuit.
Computational Hardness • Fact 1:8f:{0,1}n{0,1}n, 9 n22n-sized Boolean circuit C s.t. C computes f. • Def: Let f:{0,1}n{0,1}m be a function. We say that f is (T,)-hard if for every T-sized circuit C • Prx{0,1}n [ C(x) = f(x) ] < • We know: If f:{0,1}n{0,1}n then f can’t be (n22n,1)- hard and can’t be (T,0)-hard for any T (where T>n). • Thm:8n, there exists a function f:{0,1}n {0,1}n that is (2n/10,2-n/10)-hard
Asymptotic Hardness • 1 n<106 • 1/3 • Examples:h(n) = 2n , h(n)=nlog n , h(n) = 2n , h(n) = • 2n n¸106 • Def: Let f:{0,1}n{0,1}m be a function. We say that f is (T,)-hard if for every T-sized circuit C • Def: A function h:NN is super-polynomial if 8 polynomial q(¢), 9n s.t. h(n)>q(n). • Prx{0,1}n [ C(x) = f(x) ] < • In other words h(n)=n(1). • Def: Let { fn } be family of functions, where fn:{0,1}n{0,1}n . We say that { fn } is hard if 9 super-poly h(¢) s.t. for every n, fn is (h(n) , 1/h(n) ) –hard. • We know: There exists a hard family of functions.
Asymptotic Easyness • Def: Let { fn } be family of functions, where fn:{0,1}n{0,1}n . We say that { fn } is hard if 9 super-poly h(¢) s.t. for every n, fn is (h(n) , 1/h(n) ) –hard. • Def: Let { fn } be family of functions, where fn:{0,1}n{0,1}m . We say that { fn } is in the class P/poly if 9 polynomial q(¢) and circuit family { Cn } s.t.8n |Cn| · q(n) and • 8 x 2 {0,1}n , C(x) = f(x) • If the family {Cn} is uniform then { fn } is in the class P. • We say that a circuit family {Cn} is uniform if there’s a (constant-size) Turing machine that on input n,i outputs the ith gate of Cnin · |Cn|2 steps.
World View Hard function families • All function families Mildly hard func. families • P/poly-easy for poly-size circuits • P-easy for poly-size uniform circuits
Functions Known to be in P • Arithmetic functions: f1(a,b) = a+b , f2(a,b) = a¢ b , etc.. • (elementary school algorithms) • GCD(a,b) = largest c s.t. c|a , c|b • Arithmetic mod n: f1(a,b,n) = a+b (mod n) , f2(a,b,n) = a¢ b (mod n) • Inverse(a): If GCD(a,n)=1 find a-1 (mod n) • EXP(a,b) = ab (mod n) • Maximal Ind. Set: Given graph G(V,E), we say that Sµ V is independent if 8 u,v 2 S , (u,v) E. Find S s.t. forall v S , S[{ v } is not independent.
Functions Believed Outside of P/poly • Factoring: f1(a) = prime factors of a • 1/3 • (can be computed in time 2|a|, even in 2|a| ) • Believed to be a hard function family • Maximum Ind. Set: Given graph G(V,E), find S of maximum size s.t. S independent (i.e., 8u,v2 S, (u,v) E) • 3SAT: Given 3CNF Boolean formula on n variables, find (if exist) x1,…,xn such that (x1,…,xn) is true. • = (x1Ç: x7Ç x9) Æ (: x2Ç x9Ç: x12) Æ … Æ (x1Ç x2Ç x100) • For all these functions, it is easy to verify a given solution. • Such functions are in the class NP • If either max-ind-set or 3SAT is in P/poly then every problem in NP is in P/poly • Such functions are called NP-complete
Proving NP - Completeness • Maximum Ind. Set: Given graph G(V,E), find S of maximum size s.t. S independent (i.e., 8u,v2 S, (u,v) E) • 3SAT: Given 3CNF Boolean formula on n variables, find (if exist) x1,…,xn such that (x1,…,xn) is true. • = (x1Ç: x7Ç x9) Æ (: x2Ç x9Ç: x12) Æ … Æ (x1Ç x2Ç x100) • If either max-ind-set or 3SAT is in P/poly then every problem in NP is in P/poly • This is proven using a reduction. For example. • Thm: Assume that 9 poly(n) circuit family for IND-SET. Then 9 poly(n) circuit family for 3SAT. Circuit to compute 3SAT Circuit to compute IND-SET G S x
World View Hard function families • All function families Mildly hard func. families Factoring • P/poly-easy for poly-size circuits • P-easy for poly-size uniform circuits 3SAT, Ind-SET, NP-Complete add, mult, GCD, EXP, maximal IS
Randomization • Possible objection to our model: Can circuits get more power by tossing coins? • Input • Probabilistic circuit • Output • Random bits • In this context, answer is NO. • Thm: If f:{0,1}n{0,1}m is (T,)-hard for standard (deterministic) circuits, then it is (T/10,)-hard for probabilistic circuits.