05 — 심화 질문 대비¶
강의에 넣지는 않았지만 학생이 물어볼 수 있는 것들. 강의 전날 훑어두면 즉답할 수 있습니다. 전산·공학 전공생이 특히 이쪽을 파고듭니다.
Q1. 측정하면 회로 전체가 망가지는 건가요?¶
아니요. 붕괴는 측정한 큐빗과 그와 얽힌 것들에만 미칩니다.
- 얽히지 않은 큐빗은 아무 영향 없습니다. 상태가
|ψ⟩_A ⊗ |φ⟩_B로 분리되면 A를 측정해도 B는 정확히|φ⟩그대로. 4큐빗 회로에서 1개만 측정하고 3개로 계속 계산하는 건 정상입니다. - 얽힌 큐빗은 «확정»됩니다 — 망가지는 게 아니라.
중첩은 사라졌지만 쓰레기가 된 게 아니라 내가 아는 확정된 상태가 됐습니다. «자유도가 하나 줄고 그만큼 정보를 얻었다»가 맞는 표현입니다.
학생이 반드시 묻는 것: 결과를 모르는 제3자에게 1번 큐빗의 통계는 전혀 변하지 않습니다. 그래서 이걸로 초광속 통신이 안 됩니다.
중간 측정은 금기가 아니라 필수 도구¶
| 기법 | 중간 측정의 역할 |
|---|---|
| 양자 텔레포테이션 | 2큐빗 측정 → 고전 비트 전송 → 조건부 보정 |
| 오류정정 | 신드롬 측정 → 복호 → 정정. 매 사이클마다 |
| 큐빗 재사용 | 측정 후 리셋해서 같은 큐빗을 다시 씀 |
IonQ·Quantinuum·IBM 모두 지원합니다. IonQ 로드맵에 "mid-circuit measurement"가 항목으로 올라와 있는 게 이것입니다.
결정적 반례: 측정이 계산 그 자체인 모델¶
측정 기반 양자 컴퓨팅(MBQC) — 먼저 큰 얽힌 상태(클러스터 상태)를 만들어 두고, 게이트를 전혀 걸지 않고 큐빗을 하나씩 골라 측정하는 것만으로 계산합니다. 회로 모델과 계산 능력이 동등합니다.
광자 기반 회사들(PsiQuantum, Xanadu)이 이 모델을 씁니다 — 광자는 저장하기 어렵고 측정하기는 쉬우니까요.
정말 잃는 것은 무엇인가¶
아직 쓰지 않은 위상 정보입니다. 측정은 파형을 |진폭|² 확률로 뽑아 하나의 막대로 만듭니다.
그 이후로는 남은 위상으로 만들 수 있었던 간섭이 영원히 사라집니다.
규칙은 «측정하지 마라»가 아니고:
필요한 간섭을 다 일으킨 다음에 측정하라. 중간에 측정할 거라면, 측정하는 큐빗이 앞으로 쓸 간섭에 관여하지 않도록 설계하라.
원리적으로는 언제든 뒤로 미룰 수 있습니다¶
지연 측정 원리 — 중간 측정과 고전 조건부 연산이 들어간 어떤 회로든, 측정을 전부 맨 끝으로 옮기고 고전 제어를 양자 제어 게이트로 바꾸면 완전히 동등한 회로가 됩니다.
즉 중간 측정은 계산 능력을 늘려주는 게 아니라 자원을 절약해주는 것입니다.
한 줄 정리: 측정은 스위치를 내리는 게 아니라 가위질입니다. 어디를 자르는지 내가 정하고, 자른 자리 밖은 멀쩡하며, 잘 설계하면 자르는 행위 자체가 계산이 됩니다.
Q2. 측정값으로 다음 연산의 방향을 정할 수 있나요?¶
네. 그리고 이게 Shor 알고리즘의 실제 구현 방식입니다.
이름은 동적 회로 / 고전 피드포워드:
Shor가 이걸로 큐빗을 절약합니다 — 준고전 QFT¶
Shor의 역 QFT를 큐빗 하나로 대체할 수 있습니다 (Griffiths–Niu, 1996):
- 원래는 위상 레지스터
2n개 큐빗에 역 QFT - 대신 한 큐빗을 측정 → 리셋 → 재사용을
2n번 반복 - 이때 이미 측정한 비트들이 다음 회전 각도를 결정합니다
결과: 순진한 회로는 4n 큐빗 이상이 필요한데, 이 기법을 쓰면
2n+3 큐빗으로 n비트 정수를 인수분해할 수 있습니다 (Beauregard, 2003).
왜 손실 없이 되는가: 측정된 큐빗의 남은 역할은 «다음 회전 각도를 알려주는 것»뿐입니다. 그건 고전 정보입니다. 양자 코히런스로 남아 있을 필요가 없습니다.
대가는 큐빗이 아니라 시간¶
피드포워드 한 라운드: 측정 → 판독 → 고전 복호 → 제어 신호 회송 → 조건부 게이트
이 전부가 나머지 큐빗들이 결맞음을 유지하는 동안 끝나야 합니다. 그리고 RSA-2048이면 이 라운드가 약 4096번 순차로 돌아갑니다. 병렬화가 안 됩니다 — 다음 회전 각도가 앞 결과에 의존하니까요.
그래서 IBM Loon의 «실시간 복호 480 나노초»가 이 병목을 직접 겨냥한 숫자입니다. 결맞음이 초 단위인 이온트랩이 이쪽에서 유리하고, 대신 게이트가 느려서 총 시간에서 불리합니다.
반드시 구분할 세 가지¶
| 무엇인가 | 되는가 | |
|---|---|---|
| 회로 내 피드포워드 | 한 번의 코히런트 실행 안에서 측정→조건부 게이트 | 됨. Shor 준고전 QFT, 오류정정 |
| 실행 간 고전 루프 | 끝까지 돌려 기댓값을 얻고, 고전 최적화기가 파라미터 조정해 재실행 | 됨. VQE·QAOA. 단 진짜 이득인지 회의적 |
| 탐색을 «뜨겁다/차갑다»로 유도 | 중간에 측정해 답에 가까워졌는지 보고 경로 수정 | 안 됨 |
세 번째가 중요합니다. 그런 신호가 존재하지 않고, 엿보려고 측정하면 쌓아 올리던 진폭이 무너집니다. Grover가 대표적 — 중간에 측정하면 이득이 전부 사라집니다.
Q3. 측정하면 붕괴하는데 어떻게 디버깅하나요?¶
전제를 정확히 하면: «측정하면 붕괴한다»는 항상 참이 아닙니다.
측정하려는 관측량의 고유상태(eigenstate) 라면, 측정은 상태를 전혀 건드리지 않는다.
|0⟩에서 Z를 측정하면 확률 1로 0이 나오고 상태는 그대로입니다.
이 예외 하나가 아래 해법 대부분의 뿌리입니다.
실무에서 쓰는 다섯 가지¶
① 시뮬레이터에서 개발 (압도적으로 1번)
노트북에서 ~30큐빗까지 상태벡터를 전부 볼 수 있어 print가 그대로 됩니다.
그리고 강력한 예외 — Clifford 회로는 고전적으로 다항시간에 시뮬레이션됩니다(Gottesman-Knill).
Stim 같은 시뮬레이터는 Clifford 게이트 수백만 개를 순식간에 돌립니다.
오류정정 회로가 거의 전부 Clifford이라 실제 규모로 고전 디버깅이 가능합니다.
② 역회로 테스트 — 논리 버그와 노이즈를 분리 (가장 자주 쓰는 트릭)
|00…0⟩이 안 나오면 하드웨어 노이즈, 깨끗하게 나오는데 답이 틀리면 내 논리 버그.
고전 디버깅에는 없는 구분이고, 이걸 안 하면 노이즈와 버그를 평생 헷갈립니다.
③ 절단 + 재실행 — print의 대체물
한 번의 실행을 들여다보는 건 불가능하지만, 회로를 k번째 게이트에서 자르고 처음부터 다시 돌리는 건
얼마든지 가능합니다. print가 «실행 중 관찰»이라면 양자에서는 «자르고 재현» 입니다.
④ 통계적 재구성
같은 상태를 여러 벌 만들어 여러 기저에서 측정 → 밀도행렬 복원(상태 토모그래피).
비용이 4ⁿ이라 1~3큐빗용. 실용화한 것이 classical shadows(Huang·Kueng·Preskill, 2020).
⑤ 양자 어서션 — 고유상태 지점에서는 공짜
«이 시점에서 이 보조 큐빗은 |0⟩이어야 한다»를 알고 있다면 측정이 무해합니다.
가정이 맞으면 아무 일도 안 일어나고, 틀리면 그게 버그 신호입니다.
역계산이 제대로 됐는지 검증하는 데 특히 잘 맞습니다.
한 층 위: 실행하지 않고 증명한다¶
관측이 근본적으로 제한되니 정공법은 정적 검증입니다. ZX-calculus — 양자 회로를 그래프로 바꿔 규칙 기반 변형으로 두 회로가 같음을 증명하는 도구. PyZX, TKET이 회로 최적화와 등가성 검사에 사용합니다.
양자 프로그램의 정답 보증은 print보다 컴파일러 수준의 증명으로 갑니다.
산업적으로 이미 완성된 답: 신드롬 측정¶
오류정정은 논리 상태를 붕괴시키지 않으면서 오류만 읽어냅니다. 보조 큐빗을 데이터 큐빗들의 패리티에만 얽히게 만들고 그 보조 큐빗만 측정합니다. 논리 상태는 그 패리티 연산자의 고유상태이므로 측정해도 멀쩡합니다.
즉 오류정정은 그 자체가 «파괴 없는 실시간 디버깅» 장치입니다.
Q4. 결국 이 회로들이 라이브러리화 되어야 하는 거 아닌가요?¶
이미 상당히 되어 있고, 그런데도 그게 병목이 아닙니다.
Qiskit에는 qiskit.circuit.library가 있고 QFT, Grover 연산자, 위상 추정, 산술 회로,
N-local 변분 회로, Trotter 분해가 다 들어 있습니다.
화학은 Qiskit Nature, Quantinuum InQuanto가 분자를 받아 회로를 뽑아줍니다.
그런데 고전과 달리 추상화가 공짜가 아닙니다¶
| 고전 | 양자 | |
|---|---|---|
| 하드웨어 독립성 | 거의 완전 | 불가능 — 네이티브 게이트·연결성마다 재합성 |
| 추상화 계층 쌓기 | 무료 | 계층마다 게이트가 늘고 게이트마다 오류 누적 |
| 함수 호출 후 정리 | 불필요 | 역계산 필수 — 안 하면 쓰레기 큐빗이 얽혀 간섭이 깨짐 |
| 중간값 복사·캐싱 | 기본 | 불가능 (복제 불가 정리) |
| 디버깅 | 측정하면 상태가 붕괴 |
연결성: 전체-전체인 IonQ에서 효율적인 회로를 인접 연결만 되는 IBM에 올리면 SWAP이 끼어들어 깊이가 수 배에서 열 배로 늘어납니다. 같은 라이브러리 함수가 하드웨어에 따라 비용이 10배 차이 나면 이식 가능한 라이브러리가 아닙니다.
역계산: 서브루틴을 쓰고 나면 반드시 되돌려서 보조 큐빗을 원상복구해야 합니다(Bennett의 트릭). 안 그러면 그 큐빗이 답과 얽혀 있어서 간섭이 무너집니다. 이 정리 비용이 대략 2배입니다. 고전 라이브러리에는 이런 개념 자체가 없습니다.
그래서 지금도 양자 우위 시연은 기계마다 손으로 튜닝해서 냅니다.
실제 병목은 두 층 아래¶
응용 API (분자 에너지 계산) ← 상용화가 실제로 필요한 층. 거의 비어 있음
알고리즘 프리미티브 ← 꽤 성숙 (라이브러리라 부르는 것)
회로 합성·최적화 (컴파일러) ← 진짜 승부처
오류정정 계층 (인코딩·디코더) ← 가장 미성숙. 여기가 병목
펄스 / 네이티브 게이트
라이브러리가 완벽해도 10⁸개 게이트를 오류율 10⁻¹⁰으로 요구하는데
하드웨어가 10⁻³이면 아무 소용이 없습니다.
더 나은 비유: 반도체 EDA¶
소프트웨어 라이브러리보다 설계 자동화가 맞는 비유입니다. 지금 양자 회로 설계는 1980년대 칩 설계 — 표준 셀 라이브러리와 논리 합성 도구가 생기기 직전 과 닮았습니다. 트랜지스터를 손으로 배치하다가 Synopsys·Cadence가 나오면서 산업이 열렸죠.
이 프레임이 좋은 이유: 전망 파트와 기업 파트를 연결해줍니다. 그 자리를 노리는 회사들이 이미 있습니다 — Classiq(회로 합성), Quantinuum의 TKET(컴파일러).
정확한 표현¶
상용화되려면 회로 라이브러리가 아니라, 사용자가 회로를 아예 안 보게 해주는 도메인 API + 하드웨어별 합성 컴파일러 + 오류정정 런타임이 필요하다.
GPU 비유로는 — 양자는 지금 어셈블리와 손으로 튜닝한 커널 단계입니다. CUDA에 해당하는 게 만들어지는 중이고, cuDNN은 부분적으로 있고, PyTorch에 해당하는 층은 아직 없습니다. 화학자가 분자만 넣고 회로를 한 번도 안 보는 날이 오면 그게 상용화입니다.
Q5. 양자 난수로 암호를 만들고 1분마다 바꾸면, 양자로만 뚫리나요?¶
아니요. 이 대칭성은 성립하지 않습니다.
양자 난수의 «양자성»은 생성 시점에 끝납니다¶
QRNG는 양자 현상을 측정해서 고전 비트를 출력합니다. 중첩도 얽힘도 남아 있지 않습니다. 그래서 공격 표면이 완전히 동일합니다 — 256비트 키가 QRNG에서 왔는지 주사위에서 왔는지 구분할 방법도, 필요도 없습니다.
| QRNG가 도움이 되는가 | |
|---|---|
| PRNG 예측 공격 | 크게 도움 — 예측할 내부 상태가 없음 |
| 약한 시드 문제 | 도움 |
| 무차별 대입 | 전혀 무관 |
실제 세계의 암호 사고는 압도적으로 첫 줄에서 납니다 (Debian OpenSSL 시드 버그, Dual_EC_DRBG 백도어 의혹). QRNG의 진짜 가치가 여기 있고, «양자로만 뚫린다»와는 전혀 다른 이야기입니다.
1분 회전이 실제로 하는 일¶
막아주는 것: 실시간 추적, 그리고 유출 시 피해 범위 (키 하나가 새도 1분치만)
못 막아주는 것 (결정적): 녹음된 트래픽. 공격자가 5분째 암호문을 저장해두면 그 1분의 키를 오프라인에서 평생 느긋하게 공격할 수 있습니다. 회전은 이미 캡처된 데이터를 보호하지 못합니다.
즉 회전이 주는 건 암호 강도가 아니라 전방 비밀성 — 피해 격리입니다. TLS의 임시 키 교환, Signal의 더블 래칫이 다 이 원리입니다.
진짜 약점은 키 배송¶
1분마다 키가 바뀌면 정당한 수신자는 새 키를 어떻게 받나요? 세 가지뿐입니다.
| 방식 | 진짜 비밀은 | 결과 |
|---|---|---|
| 공유 시드에서 유도 | 시드 하나 (회전 안 함) | 시드가 뚫리면 전부. 회전은 장식 |
| 매번 키를 전송 | 그 전송 채널 | 원래 문제로 되돌아감 |
| 공개키로 매번 교환 | RSA·타원곡선 | 여기서만 양자가 등장 |
공격자는 QRNG를 공격하지 않습니다. 회전하는 대칭키를 공격하지도 않습니다. 키를 배달하는 봉투를 뜯습니다.
직관을 끝까지 밀면 — 일회용 패드¶
진짜 무작위 키 + 메시지와 같은 길이 + 절대 재사용 안 함 = 일회용 패드. 정보이론적으로 증명된 무조건 안전입니다. 계산 능력이 무한해도 못 뚫립니다.
그런데 왜 안 쓰냐면 — 데이터만큼의 키를 미리 안전하게 배송해야 하기 때문입니다.
암호의 문제는 한 번도 «암호가 약하다»가 아니었습니다. 언제나 «키를 어떻게 전달하느냐»였습니다.
양자가 진짜로 들어오는 자리: QKD¶
양자 키 분배(QKD) — BB84 같은 프로토콜은 양자 상태 자체로 키를 배송하고, 도청하면 측정이 상태를 교란하므로 도청을 탐지할 수 있습니다.
그런데 여기서도 대칭성은 안 생깁니다: - QKD의 안전성은 계산 난이도가 아니라 물리 법칙에 근거 → Shor·Grover가 무관 - 실제 공격은 양자 컴퓨팅이 아니라 물리 구현의 허점(광자 수 분할, 검출기 교란) → 고전적 공격
정리¶
| 계층 | 양자로 지킬 수 있나 | 양자로 뚫리나 |
|---|---|---|
| 난수 생성 | 예 (QRNG) | 무관 — 출력이 고전 비트 |
| 대칭 암호 (AES) | 해당 없음 | Grover로 √만, 키 길이 두 배면 원복 |
| 키 교환 (RSA/ECC) | PQC로 교체 중 | 예 — Shor. 유일한 실질 위협 |
| 키 분배 (QKD) | 예 | 계산으로는 불가, 구현 허점만 |
양자 시대의 대비는 난수를 양자로 만드는 게 아니라, 키 교환을 PQC로 갈아타는 것입니다.
강의에서 던지면 좋은 마무리 질문들¶
-
«양자컴퓨터가 답을 줬는데, 그게 맞는지 확인할 수 없다면 — 그건 답인가요?» 인수분해에서는 사소하고, 화학에서는 미해결 연구 주제입니다.
-
«양자 난수로 암호를 만들었으니 양자로만 뚫린다»가 왜 틀렸는지 설명해 보세요. 생성·저장·전달·해독이 서로 다른 계층이라는 걸 스스로 분리해내야 합니다.
-
«2035년 1조 달러 시장»이라는 숫자의 출처를 끝까지 따라가 보세요. 미디어 리터러시 훈련.