2020년 3월 30일 월요일

"양자비트와 양자암호" 요약 - 10장. 민감한 양자 상태들

큐비트들이 결잃음 없이 무질서해지지 않고 마지막까지 계산을 수행하는 양자컴퓨터를 만드는 것은 거의 불가능하다. 예를 들어, 트랩에 있는 이온들의 결잃음을 방지하기 위해 외부 전기장이나 기계 자체의 배선에 의한 전기장을 차단시켜야 한다. 이러한 차단이 완벽할 수는 없으며, 차단을 하다보면 기계를 크고 거추장스럽게 만들 수도 있다. 간섭과 오차는 양자컴퓨터에서만 일어나는 일이 아니며, 적극적인 대처가 필요하다.

10.1. 고전적 오차 보정

고전 컴퓨터에서 전형적으로 발생하는 오차는 비트플립(bit-flip)이다. 비트플립이란 "0"이 "1"로 변하고 또는 역과정이 일어나는 것을 말한다. 이것은 컴퓨터 한쪽에서 다른 쪽으로 정보를 보낼 때 발생할 수 있다. 예를 들면, 잡음이 섞이는 것처럼 중간 단계에서 정보가 잘못 표시되는 경우이다. 이러한 오차를 막을 수 있는 가장 손쉬운 방법은 비트를 중복하여 사용하는 것이다. 예를 들면, 아래와 같이 각 "0"과 "1"을 세 번씩 쓴다. 

1001011 → 111 000 000 111 000 111 111

이렇게 확장된 코드의 오차 보정은 확률적인 방법을 사용한다. "101" 은 2 개의 "1" 과 단 하나의 "0"이므로, "000" 의 가장자리 비트 2개의 플립되었다기보다는 가운데 비트가 바뀌었다고 보는 것이 가능성이 높다. 따라서 더 큰 가능성을 택하여 "101"을 "111"로 수정한다. 이 방법은 간단하지만 고전적인 비트 값이 오차 보정을 할 때 효율적인 방법이다.

큐비트에서도 위와 같은 보정을 적용하는 것은 간단하지 않다. 첫째로 양자 컴퓨터에서 큐비트는 중첩상태로 존재하므로, 삼중 상태는 한 상태를 복제해야 하는 것을 말한다. 복제는 양자역학적으로 불가능하다. 두 번째 이유는 플립된 비트의 오차를 검출하려면 세 개의 비트 모두를 측정하여 원래의 삼중 상태를 결정해야하는 데, 양자역학에서 측정이란 과정은 중첩 상태를 붕괴시키며, 양자 계산을 무의하게 만든다. 마지막으로, 양자 상태의 간섭은 상대적 위상이 제각각 다른 경우가 많으므로 고전적인 비트보다 오차 발생 가능성이 높다.

10.2. 간단한 양자논리의 경우

중첩 상태가 아닌 |0> 과 |1> 이 반복되는 3개의 큐비트를 가정하자. 원하는 바는 |0> 상태에서 |000> 로, |1> 에서 |111> 로 바뀌는 것이다. |0> 의 경우 별 문제가 생기지 않는다. 연속된 CNOT 게이트에서 첫 큐비트가 제어 상태가 되고, 두 번째 큐비트와 세 번째 큐비트를 표적 상태로 사용한다. 이 과정에서 세 개의 비트 중 하나가 플립되어 상태가 |000> 에서 |100> 으로 바뀌었다면, 첫 번째 비트가 다시 플립되어야 한다. 비슷하게 |111> 에서 |011> 로 바뀐 경우도 첫 번째 비트가 복원되어야 한다.

고전적인 경우와 마찬가지로 하나의 비트만 플립되었다고 가정하는 경우 확률적으로 첫 번째 비트가 플립되었다고 할 수 있다. 간단한 양자 오차 보정 논리회로는 두 개의 CNOT 게이트와 한 개의 토폴리 게이트로 구성되며, 토폴리 게이트는 처음 비트를 원래의 값으로 복원시킨다[1]. 한번 비트 플립이 되었다면 연산 후에 비트가 계속 틀린 값을 가져도 문제가 없다. 만일 이 비트를 다른 곳에 보낸다면 항상 다시 |0> 상태를 받을 수 있다.

중첩 상태 a * |0> + b * |1> 에서 비트가 플립되는 경우를 살펴보자. 입력상태는,

(a * |0> + b * |1>)|00>

으로 마지막 한 쌍은 보조 큐비트이다. 괄호를 풀면 아래의 식이 되고,

a*|000> + b*|100>

두 개의 CNOT 게이트를 적용시키면 아래로 유도된다.

a*|000> + b*|111>

위 상태는 얽혀져 있으며 명확하게 처음 상태를 복제해서 얻은 3개의 동등한 상태들의 곱이 아니다. 어떤 의미에서 0과 1 상태들로 삼중상태가 되었고, 어쨌든 이들은 얽힘 상태에 닫혀있다. 그 비트들 중 첫 보조비트가 플립된다고 가정하자. 플립된 위치는 밑줄로 표시하면,

a*|010> + b*|101>

위와 같고, 여기에 2개의 CNOT 보정 회로 게이트를 적용하면 위 상태는 아래가 된다.

a*|010> + b*|110>

얽힘 상태의 두 번째 항의 첫 큐비트는 1이며, 두 개의 보조 큐비트가 플립(밑줄)된다. 마지막으로 적용되는 토플리 게이트는 보조 큐비트 중 하나가 1의 값을 가지므로 변화가 없다. 이 과정에서 중요한 점은 양쪽의 항에서 두 개의 보조 큐비트가 같은 값을 가지므로, 중첩 상태는 더 이상 얽히지 않고 다음과 같이 분리된다.

(a*|0> + b*|1>)|10>

위를 관찰하면 첫 비트는 처음 시작과 동일한 중첩상태이므로, 보조 큐비트에서 발생한 비트 플립의 오차는 보존하고 싶은 큐비트의 상태에 변화를 주지 않았다.

양자 상태의 큐비트는 비트플립의 오차 외에도 위상오차를 일으킬 수 있다. 예를 들면 위에서 고려한 중첩 상태에서 두 번째 항 앞에 있는 부호가 아래와 같이 달라질 수 있다.

a*|000> - b*|111>

위상오차 보정도 같은 원리를 따른다. 보존될 상태는 여러 개의 보조 큐비트를 사용하여 얽힘상태로 암호화된다. 비트플립이나 위상오차 등이 발생한 다음에는 큐비트를 측정하지 않고도 어떤 상태가 잘못되었는가를 알아낼 수 있는 '오차 행동양식(error syndrome)'을 통해 오차를 파악하고, 적절한 처리가 양자 논리게이트에 취해진다.


그림10.1. 간단한 양자 오차보정회로. 큐비트 |Ψ> 는 두 개의 보조 큐비트로 암호화되고,
오차가 발생한 후에는 두 개의 CNOT 과 하나의 토플리 게이트로 오차가 보정된다.

양자 오차보정이 무엇이고 왜 중요한지를 예를 통해 개괄적 의미만 살펴보았다. 미래의 양자계산에서 오차보정은 중요한 역할을 담당할 것이 확실하다. 선택된 물리계에서 양자보정이 얼마나 잘 이루어지는 가에 따라 '가장 유용한' 양자컴퓨터가 될지 결정될 것이다.

[1] 7장에서 진리표와 함께 다루었다. xyz → xy(XOR(z AND(x, y)) 으로, 첫 두 비트가 1이면 마지막 비트가 1이 된다. 아래는 관련 참고.
https://qudev.phys.ethz.ch/static/content/QSIT13/QSIT13_StudentPresentations1.pdf
https://www.natureasia.com/ko-kr/nature/highlights/33158

댓글 없음:

댓글 쓰기