22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

We will then do a change of variables, setting y ′ = y + M T a z.<br />

Therefore, we can write the state as<br />

( )<br />

1<br />

|ψ 3 〉 =<br />

n √ ∑ ∑<br />

ω 〈x,y′ 〉<br />

p ω p 〈b,z〉 |y ′ − M T a z, z〉<br />

n − k<br />

y ′ ,z x∈X<br />

For z ≠ 0 and y ′ = 0, we will now explain how to recover a from (−M T a z, z). Notice that the<br />

transformation that takes a and outputs −M T a z is a linear transformation. Call this transformation<br />

L z . The coefficients of L z are easily computable, given z, by applying the transformation to each of<br />

the unit vectors. Notice that if t = 1, L z is just the scalar −z. We claim that L z is invertible if z ≠ 0.<br />

Suppose there is some a such that L z a = −M T a z = 0. Since z ≠ 0, this means the linear operator<br />

−M T a is not invertible, so neither is −M a . But −M a is just multiplication by −a in the field F n .<br />

This multiplication is only non-invertible if −a = 0, meaning a = 0, a contradiction. Therefore, the<br />

kernel of L z is just 0, so the map is invertible.<br />

Therefore, to compute a, compute the inverse operator L −1<br />

z and apply it to −M T a z, interpreting<br />

the result as a field element in F n . The result is a. More specifically, for z ≠ 0, apply the computation<br />

mapping (y, z) to (L −1<br />

z y, z), which will take (−M T a z, z) to (a, z). For z = 0, we will just apply the<br />

identity map, leaving both registers as is. This map is now reversible, meaning this computation<br />

can be implemented as a quantum computation. The result is the state<br />

( ) ⎛ ⎞<br />

1<br />

|ψ 4 〉 =<br />

n √ ∑ ∑<br />

ω 〈x,y′ 〉 ⎝ ∑ p ω p<br />

〈b,z〉 |L −1<br />

z y ′ + a, z〉 + |y ′ , 0〉 ⎠<br />

n − k<br />

x∈X<br />

z≠0<br />

y ′<br />

We will now get rid of the |y ′ , 0〉 terms by measuring whether z = 0. The probability that z = 0<br />

is 1/n, and in this case, we abort. Otherwise, we are left if the state<br />

|ψ 5 〉 =<br />

1<br />

√<br />

n(n − 1)(n − k)<br />

∑<br />

z≠0,y ′ ( ∑<br />

x∈X<br />

ω 〈x,y′ 〉<br />

p<br />

)<br />

ω p<br />

〈b,z〉 |L −1<br />

z y ′ + a, z〉<br />

The algorithm then measures the first register. Recall that X has size n − k. The probability<br />

the outcome of the measurement is a is then (1 − k/n). In this case, we are left in the state<br />

|ψ 6 〉 =<br />

1 ∑<br />

√ n − 1<br />

z≠0<br />

ω p<br />

〈b,z〉 |z〉<br />

Next, the algorithm performs the inverse Fourier transform to the second register, arriving at<br />

the state<br />

⎛<br />

⎞<br />

1 ∑<br />

|ψ 7 〉 = √ ⎝ ∑ ω 〈b−w,z〉 ⎠|w〉<br />

n(n − 1)<br />

z≠0<br />

w<br />

Now the algorithm measures again, and interpret the resulting vector as a field element. The<br />

probability that the result is b is 1−1/n. Therefore, with probability (1−k/n)(1−1/n) 2 = 1−O(k/n),<br />

the algorithm outputs both a and b.<br />

p<br />

22<br />

8. Quantum-Secure Message Authentication Codes

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!