고전 컴퓨터는 0 또는 1 중 하나의 상태만 가질 수 있지만, 양자 컴퓨터는 0과 1을 동시에 가질 수 있는 중첩(superposition) 상태가 가능하다. 이를 활용하면 여러 가지 경우를 한 번에 계산할 수 있다.
어떤 함수 가 항상 같은 값(상수 함수) 을 출력하는지, 아니면 입력에 따라 달라지는 값(균형 함수) 을 출력하는지를 구별하는 문제를 해결하는 알고리즘이다.
고전 컴퓨터 vs. 양자 컴퓨터
양자 컴퓨터는 중첩(superposition)과 간섭(interference) 을 이용하여 한 번의 계산으로 두 가지 값을 비교할 수 있는 효율적인 방법을 제공한다.
Hadamard 게이트(H 게이트)를 사용하면 0과 1이 동시에 존재하는 상태를 만들 수 있다. 이를 수식으로 표현하면 아래와 같으며, 이 상태를 활용하면 함수를 한 번만 평가해도 두 가지 값을 비교할 수 있게 된다.
구체적 예시는 아래의 함수 구분 문제 예가 있다.
디지털 회로에서는 이를 구분하기 위하여 을 각각 계산하여 두번의 연산이 필요하지만, 양자회로에서 Hadamard 게이트를 활용할 경우 한번의 연산으로 중첩 상태를 생성할 수 있다.
그러나 이 경우 하나의 문제점이 존재하는데, 중첩상태에서 를 동시 계산 가능하지만 양자역학의 특성상 관측할 경우 하나의 값만 남고 다른 값이 사라지게 된다.
따라서 관측 없이 정보를 얻을 방법이 필요해졌고, 그 해결책으로 제안된 방법이 양자 간섭(Interference)을 활용하는 방안이 제안되었다.
Fredkin Gate는 CSWAP (Controlled-SWAP) 게이트 라고도 불린다.
동작 원리
특징
그러나, 이러한 Fredkin gate의 특성상 가비지 큐비트(불필요한 큐비트) 가 생길 수 있으며, 이는 양자 연산의 정확성을 저하시킬 수 있다는 한계점이 존재함.
양자 회로에서 측정이 문제가 되는 이유는?
따라서, 양자 알고리즘에서는 중첩 상태를 유지하는 것이 핵심이다.
Uncomputation이란 필요한 데이터만 남기고 불필요한 큐비트를 제거 하는 과정을 말한다.
동작 원리
Uncomputation을 통해 가비지 큐비트를 줄여 양자 회로의 리소스를 절약 할 수 있고 양자 알고리즘의 효율성을 높여 연산 오류를 방지가능하다. 또한 앞서 언급한 Fredkin Gate에서 가비지 큐비트가 발생한다는 문제점을 해결할 수 있다.
즉, Uncomputation은 불필요한 큐비트를 제거해 양자 연산을 최적화하는 핵심기술이다!
쇼어 알고리즘은 양자 푸리에 변환(QFT) 을 활용하여 정수 을 소인수분해하는 알고리즘이다.
기존 고전적 방법의 소인수 분해 알고리즘은 큰 수의 소인수분해가 어려운 성질 에 의존한다. 고전적인 소인수분해 방법의 대표적인 특성은 아래와 같음
반면, 쇼어 알고리즘에서는 정수 의 소인수를 찾기 위해 주기성(periodicity)을 활용하여 소인수를 분해하는 접근법을 제안한다. 따라서 기존 고전적 방법 대비 의 시간복잡도를 나타낸다.
따라서 이는 현재의 고전 컴퓨터로는 해결할 수 없는 소인수분해 문제를 양자 컴퓨터가 쇼어 알고리즘을 통해 현실적으로 해결 가능하다는 의미가 될 수 있다.
최근 RSA 암호 해독의 핵심 기술인 빠른 소인수분해를 쇼어 알고리즘을 활용해 가능하게 하여 기존 암호 체계를 위협하는 연구들이 지속적으로 수행되고 있다.