728x90
반응형
SMALL
QRNG란 무엇인가 (1) — 광자 하나로 진짜 난수를 만드는 원리
지금까지 QKD와 PQC 시리즈에서는 "이미 만들어진 무작위 비트"를 어떻게 안전한 키로 바꾸는지 알아보았다.
이번에는 그 무작위 비트 자체를 어떻게 만드는지, 즉 QRNG를 알아본다.
▶ QRNG란
- Quantum Random Number Generator, 즉 양자 난수 생성기의 약자이다.
- 일반적인 프로그램 난수 생성기는 내부 상태와 계산 규칙으로 숫자를 만든다.
- 반면 QRNG는 양자 현상을 측정한 결과에서 예측 불가능한 정보를 얻는다.
★ 세 기술의 역할 차이
QKD → 앨리스와 밥이 공통 비밀키를 만든다.
PQC → 수학적 방법으로 공통 비밀키를 안전하게 설정한다.
QRNG → 각 장비에 필요한 난수의 재료를 만든다.
QRNG 두 대가 각자 난수를 생성한다고 해서 앨리스와 밥에게 똑같은 키가 자동으로 생기지는 않는다.
광자 하나로 0과 1을 만든다
▶ 광자 준비와 빔 분할기
- 장비가 빛의 알갱이인 광자 하나를 준비한다.
- 빔 분할기(beam splitter)는 들어온 빛을 두 경로로 나누는 장치이다.
┌→ 왼쪽 검출기 → 0
광자 → 빔 분할기 ─┤
└→ 오른쪽 검출기 → 1
- 장비는 "왼쪽에서 검출되면 0, 오른쪽에서 검출되면 1"이라고 약속한다.
☞ 측정 전 광자의 양자 상태
- 이상적인 50:50 빔 분할기에서는 광자가 다음과 같은 상태로 표현된다.
$$|\psi\rangle = \frac{|L\rangle+|R\rangle}{\sqrt{2}}$$
- $|L\rangle$ : 왼쪽 경로에 해당하는 상태, $|R\rangle$ : 오른쪽 경로에 해당하는 상태
- 이 식은 "이미 어느 출구를 선택했는데 우리가 모를 뿐"이라는 뜻이 아니다. 어느 검출기에서 관측될지를 양자역학의 확률로 설명한다는 뜻이다.
▶ 검출 확률
$$P(L) = \left|\frac{1}{\sqrt{2}}\right|^2 = \frac12 \qquad P(R) = \left|\frac{1}{\sqrt{2}}\right|^2 = \frac12$$
- 장비는 왼쪽 검출 → 0, 오른쪽 검출 → 1 중 하나를 기록한다.
▶ 반복 측정
1번째 광자 → 오른쪽 → 1
2번째 광자 → 왼쪽 → 0
3번째 광자 → 왼쪽 → 0
4번째 광자 → 오른쪽 → 1
원시 결과 → 1001...
- 이 결과를 원시 난수(raw random data)라고 부른다.

원시 결과를 바로 사용하지 않는 이유
▶ 실제 측정에는 편향이 있다
- 이상적인 장비에서는 0과 1이 각각 50% 확률로 나온다.
- 하지만 현실의 검출기 두 개가 정확히 똑같이 작동하지는 않는다. (예 : 0이 52%, 1이 48%)
- 광원, 검출기 효율, 전자회로, 외부 환경의 영향도 받는다.
▶ 검출되지 않은 광자 처리
- 일부 광자는 손실되어 어느 검출기에도 나타나지 않으며, 이런 측정은 결과에서 제외한다.
▶ 이상한 검출 처리
- 여러 광자가 들어오거나 장비가 오작동하면 두 검출기가 동시에 반응할 수 있다.
- 이런 경우를 무작정 0이나 1로 바꾸면 결과가 편향될 수 있으므로, 정해진 규칙에 따라 폐기하거나 별도로 처리한다.
▶ 건강 상태 검사(Health Test)
- 장비는 원시 결과에서 다음과 같은 이상을 살펴본다.
- 한쪽 검출기만 지나치게 자주 반응하는가?
- 같은 값이 비정상적으로 오래 반복되는가?
- 광원이나 검출기가 고장 났는가?
- 예상한 측정 범위를 벗어났는가?
- 같은 값이 비정상적으로 오래 반복되는가?
- 광원이나 검출기가 고장 났는가?
- 예상한 측정 범위를 벗어났는가?
- 검사에 실패하면 그 결과는 암호키 생성에 사용하지 않는다.
얼마나 예측하기 어려운지 평가하기 : 최소 엔트로피
▶ 공격자의 추측 가능성
- 0과 1이 비슷한 비율로 나온다는 것만으로 안전성을 보장할 수는 없다.
- 공격자가 장비의 결함이나 외부 신호를 알고 있다면 결과를 더 잘 맞힐 수도 있기 때문이다.
- 그래서 중요한 질문은 "공격자가 알고 있는 정보까지 고려했을 때, 다음 결과를 얼마나 잘 맞힐 수 있는가?"이다.
☞ 최소 엔트로피(min-entropy)
- 공격자의 최선의 추측이 얼마나 어려운지 나타내는 값이다.
- 공격자가 맞힐 수 있는 최대 확률을 $p\_{\max}$라고 하면, 단순화한 식은 다음과 같다.
$$H\_{\min} = -\log\_2(p\_{\max})$$
- 결과가 이상적으로 반반이라면 : $p\_{\max}=\dfrac12 ;\Rightarrow; H\_{\min}=1\text{비트}$
- 0이 75% 확률로 나온다면 : $p\_{\max}=0.75 ;\Rightarrow; H\_{\min}\approx0.415\text{비트}$
★ 측정 결과를 1비트씩 기록했다고 해서, 매 결과에 반드시 1비트의 안전한 무작위성이 들어 있는 것은 아니다.

원시 결과에서 안전한 난수 뽑아내기
▶ 난수 추출기(Randomness Extractor)
편향·잡음이 있는 긴 원시 결과
↓
난수 추출기
↓
더 짧고 균일한 난수
- 추출기는 편향을 줄이고, 평가된 엔트로피를 더 짧은 출력에 집중시킨다.
☞ 출력 길이는 마음대로 늘릴 수 없다
- 추출기는 없던 무작위성을 만들어내지 못한다.
- 예를 들어 원시 결과에 안전한 엔트로피가 200비트 정도밖에 없다고 평가됐다면, 이를 처리해서 "안전한 난수 1,000비트가 새로 생겼다"고 주장할 수 없다.
- 출력 길이는 평가된 엔트로피와 원하는 보안 수준에 맞춰 정해야 한다.
▶ 최종 난수 제공
QRNG 출력 → 011010100101...
- 검사와 추출을 통과한 결과만 암호 프로그램에 전달한다.
- QRNG 출력이 안전하더라도, 저장이나 전달 과정에서 공격자에게 유출되면 그 난수로 만든 비밀키도 위험해진다.
다음 글에서는 이렇게 만든 QRNG 난수를 PQC·QKD 통신에서 실제로 어떻게 사용하는지 알아본다.
728x90
반응형
SMALL
'통신·네트워크 기술' 카테고리의 다른 글
| QRNG란 무엇인가 (3) — 네트워크 난수 서비스와 흔한 오해들 (0) | 2026.09.15 |
|---|---|
| QRNG란 무엇인가 (2) — PQC · QKD와 함께 쓰는 방법 (0) | 2026.09.15 |
| PQC란 무엇인가 (3) — 전자서명과 실전 보안 이슈 (0) | 2026.09.15 |
| PQC란 무엇인가 (1) — 양자컴퓨터도 못 푸는 수학 문제로 만든 암호 (0) | 2026.09.15 |
| QKD 통신 과정 완전정리 (3) — 만든 열쇠로 진짜 파일 암호화하기 (0) | 2026.09.07 |