양자컴퓨터

양자 오류 정정의 원리 – QEC는 왜 가능할까?

퀀텀 프리즘 2025. 4. 17. 13:29

양자 정보는 왜 복제할 수 없을까? QEC는 어떻게 오류를 감지하고 수정하는가? 고전 오류 정정과의 차이를 통해 양자 오류 정정의 핵심 원리를 설명합니다

📌 이 글은 공식 도메인에서도 제공됩니다 👉 quantum-city.net/41 에서 읽어주시면 운영에 큰 도움이 됩니다 🙏

양자 컴퓨터는 놀라울 만큼 강력한 계산 능력을 지녔다고 평가받지만 동시에 매우 쉽게 오류를 일으킨다는 치명적인 약점도 함께 가지고 있다. 고전 컴퓨터에서는 간단한 중복과 다수결만으로도 오류를 정정할 수 있지만 양자 정보는 복제가 불가능하고 상태를 측정하는 것조차 정보를 파괴해버리기 때문에 고전적인 방식이 통하지 않는다. 그렇다면 과연, 이런 제약 속에서도 양자 오류 정정(Quantum Error Correction, QEC)은 어떻게 가능해진 걸까? 이 글에서는 고전 오류 정정의 원리를 짚어본 뒤, 복제 불가능 정리와 신디롬 측정 개념을 통해 QEC가 작동할 수 있는 원리를 하나씩 살펴보려 한다.

 

양자 의사가 병풍 뒤에 숨은 큐비트를 직접 보지 않고 센서를 통해 오류를 감지하고 있다. 화면에는 ‘ERROR DETECTED’가 표시되며, 벽에는 ‘QEC 매뉴얼’, ‘신디롬 측정’, ‘Z⊗Z’가 적힌 포스터가 붙어 있다. 상단 문구는 ‘I can't look... but have to fix it’. 양자 오류 정정(Quantum Error Correction)의 개념을 유쾌하게 표현한 그림.
직접 측정은 금지! 양자 오류를 간접적으로 잡아내는 QEC의 원리를 풍자적으로 그린 일러스트

 


1. 고전 오류 정정의 진화비트 중복에서 해밍 코드까지

양자 오류 정정(QEC) 이해하기 위해서는 먼저 고전적인 오류 정정 방식이 어떻게 발전해 왔는지를 살펴볼 필요가 있다. QEC 고전 오류 정정과는 전혀 다른 방식으로 작동하지만, 원리를 대조해보면 오히려 QEC 독특함이 더욱 분명하게 드러난다.

 

🔹 가장 단순한 방식: 비트 중복과 다수결

오류 정정의 가장 직관적인 방법은 정보를 중복해서 전송하고 다수결로 판단하는 것이다. 예를 들어 1비트를 전송할 1 111 반복해 보내면, 수신자가 110처럼 받았더라도 다수결 원칙에 따라 1 복원할 있다. 그렇다면 여러 비트로 구성된 데이터는 어떻게 처리할까? 예를 들어 "1010"이라는 4비트 데이터를 3 중복 방식으로 전송하면 다음과 같다:

 

  • 1 111, 0 000, 1 111, 0 000
  • 전송된 전체 데이터: 111000111000 ( 12비트)

 

수신자는 데이터를 3비트씩 나누어 그룹에서 다수결로 원래 비트를 추정한다. 장점은 단순함이지만 전송량이 많아지고 2비트 이상 오류에는 취약하다.

 

🔹 단순 오류 감지: 패리티 비트

중복 방식보다 효율적인 방법이 바로 패리티 비트(parity bit). 이는 전송하려는 데이터에 1 개수가 짝수인지 홀수인지를 나타내는 1비트를 추가하는 방식이다. 예를 들어 1010 전송한다고 하자. 데이터에는 1 들어 있으므로 짝수 패리티를 사용할 경우 패리티 비트는 0 된다. 따라서 전송 데이터는 다음과 같이 된다:

 

  • 1010 + 0 10100

 

수신자가 다섯 비트를 받아서 1 개수를 세면 패리티가 맞지 않는 경우 오류 발생을 감지할 있다. 단점은 오류가 비트일 때만 검출 가능하며 어디서 오류가 났는지는 없다.

 

🔹 오류 위치까지 정정 가능한 구조: 해밍 코드

해밍 코드(Hamming code) 단순한 오류 감지를 넘어서 어디에서 오류가 발생했는지까지 식별하고 직접 수정할 있는 오류 정정 방식이다. 그중 가장 대표적인 형태가 Hamming(7,4) 코드인데 이는 4비트의 실제 데이터를 7비트로 확장하여 단일 비트 오류를 정정할 있도록 설계되어 있다.

 

📌 Hamming(7,4) 구조

7비트 3비트는 패리티 비트(P1, P2, P3)이고 나머지 4비트는 데이터 비트(D1~D4). 위치에 따라 다음과 같이 배치된다:

 

위치 1 2 3 4 5 6 7
역할 P1 P2 D1 P3 D2 D3 D4

 

패리티 비트는 다음과 같은 위치의 비트를 검사한다:

 

  • P1: 위치 1, 3, 5, 7 (2진수에서 2 자리 = 1 위치)
  • P2: 위치 2, 3, 6, 7 (2¹ 자리 = 1 위치)
  • P3: 위치 4, 5, 6, 7 (2² 자리 = 1 위치)

 

🔧 예제: 데이터 1010 Hamming(7,4)으로 인코딩

 

1010이라는 데이터를 D1~D4 자리에 순서대로 넣으면 다음과 같다:

 

위치 1 2 3 4 5 6 7
? ? 1 ? 0 1 0
역할 P1 P2 D1 P3 D2 D3 D4

 

 

이제 패리티 비트를 짝수 패리티 기준으로 설정한다:

 

  • P1 (위치 1, 3, 5, 7): 1, 0, 0 홀수 P1 = 1
  • P2 (위치 2, 3, 6, 7): 1, 1, 0 짝수 P2 = 0
  • P3 (위치 4, 5, 6, 7): 0, 1, 0 홀수 P3 = 1

 

📤 최종 인코딩된 7비트 전송 데이터: 1011010

 

⚠️ 전송 오류가 생기면?

만약 전송 중에 5 비트가 0 1 바뀌었다면, 수신자는 다음과 같은 과정을 거쳐 오류를 잡아낸다:

 

위치 1 2 3 4 5 6 7
수신값 1 0 1 1 1 1 0

 

이제 패리티 비트를 다시 검사해 보자:

 

  • P1 검사 (1, 3, 5, 7): 1, 1, 1, 0 1 개수 3 오류 있음 1
  • P2 검사 (2, 3, 6, 7): 0, 1, 1, 0 1 개수 2 이상 없음 0
  • P3 검사 (4, 5, 6, 7): 1, 1, 1, 0 1 개수 3 오류 있음 1

 

개의 검사 결과를 조합하면 P3 P2 P1 = 101 2진수로 5 위치

 

👉 따라서 수신자는 5 비트에 오류가 있다는 것을 알아내고  비트를 반전시켜 원래대로 복원할 있다.

 

이처럼 해밍 코드는 단일 비트 오류에 대해 자동으로 감지 수정이 가능하다는 점에서 실제 ECC 메모리, 통신 시스템, 임베디드 기기 등에서 널리 활용되어 왔다.

 

🔹 실제 시스템에서 해밍 코드가 쓰였을까?

그렇다. 해밍 코드는 이론적으로만 존재하는 것이 아니라 실제로 사용되었고 지금도 일부 시스템에서 쓰이고 있다.

 

  • ECC 메모리: 컴퓨터 서버, 우주항공 시스템 등에서 메모리 오류를 실시간으로 정정
  • 통신 시스템: 초기 위성 통신, 디지털 라디오
  • 마이크로컨트롤러 기반 시스템: 간단한 오류 정정이 필요한 임베디드 장치

 

이처럼 해밍 코드는 오류 정정 기술의 기본기이자 실전형 코드로 자리 잡았다.

 

🔹 그리고 이후 강력한 오류 정정 코드들

해밍 코드 이후로는 많은 오류를 정정할 있는 다양한 코드들이 개발되었다. 대표적으로 Reed–Solomon 코드, 터보 코드, LDPC 코드 등이 있다. 이들은 디지털 방송, CD/DVD, 5G, Wi-Fi 같은 현대적 통신 기술에서 핵심적인 역할을 하고 있다.

 

글의 중심 주제인 QEC와는 조금 거리가 있지만, 중요한 점은 다음과 같다:

 

고전 오류 정정 방식은 발전해 왔고,
기본 원리와 논리는 양자 오류 정정 코드(CSS 코드, 양자 LDPC )에도 계승되고 있다.

 

, QEC 고전적 오류 정정의 정신을 계승하면서도 양자 정보의 특수성을 반영해 새롭게 진화한 시스템이라 있다.

 

양자 오류 정정에 대한 깊이 있는 전체 구조와 역사적 맥락은 👉 위키백과 Quantum Error Correction 항목에서 확인할 있다.

 

양자 오류 정정이 필요한 배경 하나는 양자 정보가 환경과 상호작용하며 쉽게 붕괴되는 현상 즉 디코히런스 때문이다. 현상에 대한 자세한 설명은 👉 [디코히런스란 무엇인가?] 글에서 확인할 있다.

 


2. No-Cloning 정리와 QEC 출발점

앞에서 살펴본 고전 오류 정정 방식은 정보를 중복하거나 복제해서 오류를 감지하고 수정하는 전략에 기반하고 있었다. 다수결을 통해 잘못된 데이터를 되돌릴 있는 것도 정보의 복제와 반복이 가능하기 때문에 가능한 방식이다. 그런데 양자 컴퓨터의 세계로 넘어오면 이런 전략은 이상 유효하지 않게 된다.

 

이유는 간단하면서도 근본적인 데서 출발한다. 양자 정보는 복제할 없기 때문이다. 이처럼 단순해 보이는 원칙 하나가 QEC 구조 전체를 바꾸어 놓는다. 그리고 원칙은 단순한 기술적 제약이 아니라 양자역학의 수학적 구조와 깊이 연관된 물리 법칙이기도 하다. 법칙은 양자 복제 불가능 정리, No-Cloning Theorem이라는 이름으로 알려져 있다.

 

🔹 양자 복제는 불가능할까? – No-Cloning Theorem 정의와 의미

양자 복제 불가능 정리는 다음과 같은 내용을 담고 있다.

 

"임의의 양자 상태를 정확히 복제하는 범용 연산은 존재하지 않는다."

 

고전적인 정보는 ‘0’ ‘1’이라는 이산적인 값으로 표현되기 때문에 그것을 원하는 만큼 복사하거나 저장하는 아무런 문제가 없다. 하지만 양자 정보는 다르다. 예를 들어 어떤 큐비트가 다음과 같은 상태에 있다고 하자:

중첩 모양의 큐비트

상태는 |0 |1 사이의 중첩이며, α β 각각 복소수 계수로서 측정 확률 진폭을 나타낸다.

 

문제는 상태가 겉으로는 보이지 않는 정보라는 점에 있다. 측정을 하면 α β 사라지고 결과는 단지 0 또는 1로만 주어진다. 다시 말해, 상태를 완전히 알고 있다는 것은 현실적으로 불가능에 가깝다.

 

이제 가정을 하나 해보자. 어떤 유니터리 연산 U 있어서 임의의 상태 ψ 비어 있는 상태 0 복사할 있다고 해보자. 수식으로 쓰면 다음과 같다:

복제 유리터리 연산.

, 어떤 입력 상태 ψ 상관없이  유니터리 연산은 동일한 상태 개를 만들어 낸다.

 

이론적으로는 매력적인 발상이지만 실제로 이런 U 존재할 없다. 왜냐하면 양자역학에서 가능한 모든 연산은 선형(linear)이어야 하는데 복제라는 행위는 일반적으로 선형성을 위반하게 되기 때문이다.

 

예를 들어, 상태가 ψ01 , 복제 결과는 ψ⟩⊗∣ψ 되어야 하는데  결과는 단순히 원래 상태에 작용하는 유니터리 연산으로는 만들 없다. 특히 개의 서로 다른 상태를 복제하는 경우, 수학적으로 모순이 발생하게 된다.

 

No-Cloning 정리는 양자 정보 이론에서 매우 중요한 개념이며 👉 Wikipedia – No-cloning theorem에서 수학적 유도와 배경을 자세히 살펴볼 있다.

.

🔹 정리는 그렇게까지 중요한가?

복제 불가능 정리는 단순한 이론적 제약이 아니라 양자 오류 정정이 고전 오류 정정과 전혀 다른 전략을 써야 하는 이유를 설명해주는 핵심 토대이기도 하다. 고전 정보는 언제든 복제할 있고 여러 사본을 비교해 오류를 추정할 있다. 하지만 양자 정보에서는 그럴 없다. 상태를 복제할 수도 없고 측정하면 오히려 상태가 붕괴되기 때문에, 원래의 정보를 지키려면 직접 들여다보지 않으면서 오류만 감지할 있는 방식이 필요하다.

 

이러한 제한 조건 때문에, QEC 정보를 숨긴 채로 보존하고,대신 보조 큐비트를 통해 간접적으로 오류의 흔적만 감지하는 정교한 시스템을 설계해야 한다. 바로 다음 섹션에서 다룰 신디롬(syndrome) 측정이 그런 하나이다.

 

🔹 원칙은 양자 기술 전반에 영향을 준다

No-Cloning 정리는 단지 QEC에만 영향을 미치는 것이 아니다.

 

원칙은 양자 통신, 양자 암호, 양자 정보의 보안성을 논의할 반드시 전제로 깔리는 개념이다. 예컨대 양자 암호에서 중간자가 정보를 복사하려 하면  시도 자체가 측정을 수반하기 때문에 상태가 변하고 결국 감청 시도가 노출된다. 이는 양자 통신이 고전 통신보다 본질적으로 안전한 이유이기도 하다.

 

🔹 복제는 불가능하지만 보호는 가능하다

정리하자면, 양자 정보는 복제할 없지만 보호할 수는 있다. 그리고 보호를 위해 고전적인 오류 정정의 개념을 확장한 것이 바로 QEC(Quantum Error Correction)이다. 실제로 CSS 코드(Calderbank-Shor-Steane code), 양자 LDPC 코드(Quantum Low-Density Parity-Check code) 같은 QEC 방식들은 고전 오류 정정의 논리를 양자적인 방식으로 재구성한 결과라고 있다. 앞서 고전 오류 정정의 흐름을 살펴봤다면 이제 우리는 흐름이 양자 영역에서는 어떤 방식으로 재해석되고  전혀 다른 전략이 필요했는지를 이해할 준비가 셈이다.

 

이제 QEC 독특한 핵심 하나인 "측정하지 않고 오류를 감지하는 기술", 신디롬 측정의 아이디어로 넘어가 보자. 복제가 불가능하다면 우리가 있는 일은 결국 "정보는 숨기되, 흔적은 살핀다" 방식이니까 말이다.

 

양자 상태의 본질과 통계적 성격에 대한 깊은 이해는 👉 [스핀과 통계] 글을 참고하면 도움이 된다.

 


3. 신디롬 측정의 원리 - 정보를 건드리지 않고 오류를 감지하는 방법

복제가 불가능하고 직접 측정하면 정보가 붕괴되는 양자 정보의 특성상, 고전적인 방식처럼 단순히 여러 사본을 비교하거나 값을 직접 들여다보는 방식으로는 오류를 감지할 없다.

 

그렇다면 양자 오류 정정(QEC) 도대체 어떤 방식으로 오류를 감지하고 수정할 있다는 것일까? 해답은 신디롬(syndrome) 측정이라는 독특한 방법에 있다. (참고: 일상에서의 ‘신드롬’과는 맥락이 다름)

 

신디롬 측정은 그대로 오류가 발생했는지를 직접적으로 파악하기보다는 오류의 흔적, '증상' 간접적으로 감지하는 방식이다. 개념은 고전 오류 정정에서 유래했지만 양자역학에서는 훨씬 정교하게 적용된다.

 

🔹 '신디롬'이라는 개념은 무엇인가?

'신디롬(syndrome)'이라는 용어는 원래 의학에서 병의 증상을 의미하는 단어다. QEC에서도 유사한 맥락에서 용어가 사용된다. 여기서 신디롬이란, 정보 자체를 직접 보지 않고도 오류가 발생했는지 여부를 감지할 있는 이차적인 지표를 의미한다.

 

구체적으로 말하면 양자 오류 정정에서는 오류가 발생했는지를 알아내기 위해 보조 큐비트(Ancilla qubits) 활용한다. 보조 큐비트는 일종의 센서 역할을 하며 논리 큐비트와 상호작용한 상태를 측정하여 오류의 유무와 유형을 알려준다.

 

🔹 정보는 숨기고, 오류만 본다측정의 역설을 우회하는 전략

양자 오류 정정의 기묘함은 여기에 있다. 우리는 정보는 그대로 보존하면서 동시에 오류는 감지해야 한다. 이는 마치 유리컵이 깨졌는지를 확인하되, 유리컵 자체를 만지지 않는 것과 비슷하다.

 

이러한 역설을 해결하기 위해 QEC 신디롬 연산자라고 불리는 특정한 측정 연산을 사용한다. 연산은 정보 상태 자체가 아니라 오류가 어떤 방식으로 영향을 끼쳤는지를 반영하는 패턴을 측정한다.

 

예를 들어, Shor 코드나 Steane 코드에서는 논리 큐비트를 여러 개의 물리 큐비트에 걸쳐 분산시키고 특정 또는 그룹 사이의 상관관계를 검사하는 식으로 오류를 감지한다. 측정되는 결과는 단지 " 그룹에 오류가 있었는가?" 알려줄 , 원래의 상태가 |0인지 |1인지는 여전히 보호된다.

 

이처럼 정보 자체는 측정되지 않으면서 오류의 '흔적'만이 측정되어 수정이 가능해진다. 이것이 바로 신디롬 측정의 핵심 전략이다.

 

🔹 어떻게 동작할까? – 신디롬 측정의 작동 예시

신디롬 측정이 구체적으로 어떻게 동작하는지를 이해하기 위해 간단한 예를 하나 들어보자.

 

가령 하나의 논리 큐비트를 보호하기 위해  정보를 개의 물리 큐비트에 걸쳐 분산해서 저장했다고 가정해보자. 방식은 고전적인 오류 정정에서 반복하는 것과 비슷해 보일 있지만 양자에서는 정보를 복제하지 못하므로 분산은 정교하게 이루어진다.

 

이제 만약 큐비트 하나가 비트 플립 오류를 일으켰다고 하자. 하지만 앞서 말했듯이 우리는 큐비트들을 직접 측정할 없다. 측정 자체가 정보를 파괴하기 때문이다. 그렇다면 오류가 있었는지를 어떻게 감지할 있을까? 바로 지점에서 보조 큐비트(ancilla qubit) 역할이 등장한다. 보조 큐비트를 하나 추가해서 예를 들어 큐비트 1 2, 그리고 큐비트 2 3 사이의 상관관계(correlation) 확인하는 구조를 만든다고 해보자.

 

이때의 핵심은  큐비트의 값을 보는 것이 아니라 둘이 같은 상태에 있는지 아닌지를 보는 것이다. 쉽게 말해  큐비트가 모두 |0이거나 |1이면 같은 상태이고, |0|1 식이면 다른 상태라는 것인데 이를 판단하는 방식이 바로 패리티 체크(parity check)이다.

 

양자에서는 이런 패리티 검사를 Pauli 연산자, 특히 Z 연산자를 활용한다. 큐비트의 상태를 비교하는 대표적인 연산은ZZ 같은 형태인데 이 연산자는 큐비트가 같은 상태일 때는 +1, 다른 상태일 때는 −1이라는 값을 반환한다. , 직접 정보를 측정하지 않고도  큐비트 간에 오류가 있었는지를 감지할 있게 되는 것이다.

 

 

이러한 방식은 실제 QEC 코드, 예컨대 Shor 코드나 Steane 코드 등에서 신디롬 측정을 구현하는 사용되며 각 코드마다 어떤 상관관계를 감지할지, 어떤 연산자를 사용할지가 설계되어 있다. 구체적인 연산자 구성이나 측정 회로는 다음 글에서 Shor 코드와 함께 자세히 살펴볼 예정이다.

 

QEC 사용되는 연산자들은 결국 양자 게이트로 구현되며 기본적인 회전 게이트의 작동 방식은 👉 [회전 게이트의 모든 것] 글에서 살펴볼  있다.

 

🔹 오류를 식별하는 것은 '측정'이지만 정보는 건드리지 않는다

중요한 점은  측정이 단순한 양자 측정과는 다르다는 것이다. 일반적으로 양자 측정은 큐비트의 상태를 무너뜨리지만 신디롬 측정은 정보가 담긴 큐비트를 측정하지 않는다. 대신 보조 큐비트와의 상호작용을 통해 오류가 있었는지를 확인하는 구조로 되어 있다.

 

과정에서 원래의 논리 상태는 그대로 유지되고 우리는 상태에 영향을 '오류의 영향만' 분리해서 읽어내는 것이다. 이것은 마치 특정한 연극 무대의 조명 상태만 보고 무대 인물의 정체는 보지 않는 방식과 유사하다.

 

🔹 QEC 시작은 '감지'에서 출발한다

이제 QEC 오류를 정정할 있다는 것이 단순한 '복원 기술' 아니라 측정할 없다는 제약 속에서도 오류를 감지할 있다는 기술적 창의성에 기반하고 있다는 사실을 있다. 신디롬 측정은 시작점이며 이후에 이어지는 오류 정정 코드들(Shor, Steane, Surface code ) 원리를 기반으로 더욱 정교한 보호 체계를 쌓아 올린다.

 

IBM에서는 실제 하드웨어 상에서 QEC 구현하기 위한 실험들을 진행하고 있다. QEC 실제 구현 사례는 👉 IBM Research 블로그의 QEC 해설에서도 자세히 확인할 있다.

 

기업 환경에서 QEC 어떤 의미를 가지며 어떻게 실현 가능한지에 대해서는 👉 Microsoft Azure Quantum QEC 개요 페이지 참고할  있다.

 


📌 핵심 요약 (Key Takeaways)

  • 고전적 오류 정정은 정보 복제와 다수결에 기반한다.
  • 양자 정보는 복제할 없고 측정하면 사라지기 때문에 다른 방식이 필요하다.
  • QEC 간접 측정(신디롬 측정) 통해 오류를 감지하고 정보는 그대로 보존한다.
  • 양자 오류는 비트 플립, 위상 플립, 복합 오류로 나뉘며 각각에 대응하는 정정 구조가 필요하다.
  • QEC 정보 보호의 새로운 패러다임이며, 이를 통해 양자 컴퓨터가 실현 가능한 기술로 다가가고 있다.

 


자주 묻는 질문 (FAQ)

Q1. 고전 오류 정정과 QEC 가장 차이는 무엇인가요?

A1. 고전 오류 정정은 복제를 통해 오류를 정정하지만 QEC 복제가 불가능한 양자 정보를 보조 큐비트를 이용해 간접적으로 보호한다.

 

Q2. 신디롬 측정은 양자 정보에 영향을 주지 않나요?

A2. 신디롬 측정은 논리 정보 자체가 아닌 오류 여부만 감지하는 연산을 통해 이루어지므로 상태 붕괴를 피할 있다.

 

Q3. 양자 정보는 복제할 없는가요?

A3. 양자 복제 불가능 정리(No-Cloning Theorem) 따르면 겹침 상태의 모든 양자 정보를 완벽하게 복제하는 연산은 존재하지 않기 때문이다.