🎉 从330转为WashU帮助手册啦!

CSE442
模块
Cse442t L3

Lecture 3

All algorithms C(x)yC(x)\to y, x,y{0,1}x,y\in \{0,1\}^*

P.P.T= Probabilistic Polynomial-time Turing Machine.

Turing Machine: Mathematical model for a computer program

A machine that can:

  1. Read in put
  2. Read/Write working tape move left/right
  3. Can change state

Assumptions

Anything can be accomplished by a real computer program can be accomplished by a "sufficiently complicated" Turing Machine (TM).

Polynomial time

We say C(x),x=n,nC(x),|x|=n,n\to \infty runs in polynomial time if it uses at most T(n)T(n) operations bounded by some polynomials. c>0\exist c>0 such that T(n)=O(nc)T(n)=O(n^c)

If we can argue that algorithm runs in polynomially-many constant-time operations, then this is true for the T.M.

p,qp,q are polynomials in nn,

p(n)+q(n),p(n)q(n),p(q(n))p(n)+q(n),p(n)q(n),p(q(n)) are polynomial of nn.

Polynomial-time \approx "efficient" for this course.

Probabilistic

Our algorithm's have access to random "coin-flips" we can produce poly(n) random bits.

P[C(x)P[C(x) takes at most T(n)T(n) steps ]=1]=1

Our adversary a(x)a(x) will be a P.P.T which is non-uniform (n.u.) (programs description size can grow polynomially in n)

Efficient private key encryption scheme

m={0,1}nm=\{0,1\}^n

Gen(1n)Gen(1^n) p.p.t output kKk\in \mathcal{K}

Enck(m)Enc_k(m) p.p.t outputs cc

Deck(c)Dec_k(c') p.p.t outputs mm or "null"

Pk[Deck(Enck(m))=m]=1P_k[Dec_k(Enc_k(m))=m]=1

Negligible function

ε:NR\varepsilon:\mathbb{N}\to \mathbb{R} is a negligible function if c>0\forall c>0, NN\exists N\in\mathbb{N} such that nN,ε(n)<1nc\forall n\geq N, \varepsilon(n)<\frac{1}{n^c}

Idea: for any polynomial, even n100n^{100}, in the long run ε(n)1n100\varepsilon(n)\leq \frac{1}{n^{100}}

Example: ε(n)=12n\varepsilon (n)=\frac{1}{2^n}, ε(n)=1nlog(n)\varepsilon (n)=\frac{1}{n^{\log (n)}}

Non-example: ε(n)=O(1nc)c\varepsilon (n)=O(\frac{1}{n^c})\forall c

One-way function

Idea: We are always okay with our chance of failure being negligible.

Foundational concept of cryptography

Goal: making Enck(m),Deck(c)Enc_k(m),Dec_k(c') easy and Dec1(c)Dec^{-1}(c') hard.

Strong one-way function

Definition: Strong one-way function

f:{0,1}n{0,1}(n)f:\{0,1\}^n\to \{0,1\}^*(n\to \infty)

There is a negligible function ε(n)\varepsilon (n) such that for any adversary aa (n.u.p.p.t)

P[x{0,1}n;y=f(x):f(a(y))=y,a(y)=x]ε(n)P[x\gets\{0,1\}^n;y=f(x):f(a(y))=y,a(y)=x']\leq\varepsilon(n)

Probability of guessing correct message is negligible

and

there is a p.p.t which computes f(x)f(x) for any xx.

  • Hard to go back from output
  • Easy to find output

aa sees output y, they wan to find some xx' such that f(x)=yf(x')=y.

Example: Suppose ff is one-to-one, then aa must find our xx, P[x=x]=12nP[x'=x]=\frac{1}{2^n}, which is negligible.

Why do we allow aa to get a different xx'?

Suppose the definition is P[x{0,1}n;y=f(x):a(y)=x]ε(n)P[x\gets\{0,1\}^n;y=f(x):a(y)=x]\neq\varepsilon(n), then a trivial function f(x)=xf(x)=x would also satisfy the definition.

To be technically fair, a(y)=a(y,1n)a(y)=a(y,1^n), size of input n\approx n, let them use poly(n)poly(n) operations.

Do one-way function exists?

Unknown, actually...

But we think so!

We will need to use various assumptions. one that we believe very strongly based on evidence/experience

Ex. p,qp,q are large random primes

N=pqN=p\cdot q

Factoring NN is hard. (without knowing p,qp,q)