Homework 12

[Note: this webpage last modified Friday, 04-Feb-2011 19:44:51 EST]

This homework assignment will be handed out on Wednesday November 17 and is due by the beginning of class on the following Wednesday, so by 3pm Wednesday December 8. REMEMBER that your solutions should be explained in complete sentences such that your classmates will understand the solution (and can verify your proofs are correct) even if they have not solved the problems themselves.

  1. HW Polices.

    1. Type your HW (in word, latex, text file, etc.) and send to me by email.

    2. Do NOT share electronically. You must type your own solutions. You can discuss the problems with each other, but you may only discuss them. You may not write out solutions together.

    3. You MAY NOT search the Internet, textbooks, etc. for solutions to the problems. The following are the ONLY sources of information that you may use in solving the problems: the textbook for this course (draft available from here ), Computational Complexity: A Modern Approach, and wikipedia articles on basic math/probability/etc. You may discuss the problems with each other and with myself, but must obey the previous item in doing so.

      If you do find the solution in one of these three sources, you still MUST cite the source in your document.

      You may use NOTHING ELSE that is online or other textbooks. You have already received warnings about this! ANY violations of this policy for the rest of the semester will result in you FAILING the course and being brought before the appropriate committee on campus for handling academic misconduct.

    4. You MAY NOT copy word-for-word from any source, even the 3 you are allowed to consult. If you feel it is necessary, you should put the quotation in quotes and provide a reference/citation.

  2. (-3 points if left blank) List who you collaborated with on this assignment, "none" if none.

  3. (10 Points) Show that there exist functions that are not invertible by polynomial time algorithms.

    Hint: use a hierarchy theorem.

  4. (10 Points) Show that computing any bit of a 1-1 one-way function is an NP problem. That is, if f is a one-way function (so computable in polynomial time), there is a poly-time verifier Vf such that the following holds when the input is (y,i). There is a witness causing Vf to accept iff the i-th bit in f-1(y) is 1. (If there is no inverse for y, then there should be no witness causing Vf to accept.)

    What if the one-way function is not 1-1? Then how would you define Vf?

    Note: this implies that if P=NP then there are no one-way functions.

  5. (10 Points) Show that a one-way function must output more than log(n) bits. So, for any poly-time function f:{0,1}n->{0,1}log(n), show that there is a poly-time algorithm that inverts f on at least 1/poly(n) fraction of x, for infinitely many input lengths.

    Hint: with log(n) many output bits, how many different possible outputs are there for an n-bit input x? Then use an averaging argument.