핵심 인사이트 (3줄 요약)
- 본질: TRNG (True Random Number Generator)는 열잡음, 지터, 메타안정성 같은 물리 현상에서 엔트로피를 추출해 결정론적 컴퓨터에 실제 예측 불가능성을 주입하는 하드웨어 난수원이다.
- 가치: 암호 키, nonce, 초기 seed가 예측되면 강한 알고리즘도 무너질 수 있으므로, TRNG는 암호 시스템 전체의 첫 재료를 책임지는 보안 기반 자원이다.
- 판단 포인트: 좋은 TRNG는 잡음 섞인 아날로그 신호를 그대로 내보내지 않고, 후처리 (conditioning), 건강성 검사 (health test), DRBG (Deterministic Random Bit Generator) 연계를 포함한 전체 파이프라인으로 평가해야 한다.
Ⅰ. 개요 및 필요성
TRNG (True Random Number Generator)는 자연계의 예측 불가능한 현상을 측정해 난수를 만드는 장치다. 컴퓨터 내부 계산은 원래 같은 입력에 같은 출력을 내는 결정론적 과정이므로, 알고리즘만으로 만든 난수는 결국 seed를 알면 재현될 수 있다. 그래서 암호학에서는 "겉보기로 복잡한 숫자열"보다 "애초에 어디서 예측 불가능성이 들어오는가"가 더 중요하다.
이 필요성은 암호화에서 특히 선명하다. 세션 키, 초기화 벡터, nonce, 토큰 값이 예측 가능하면 공격자는 평문을 몰라도 통신 패턴을 재구성하거나 재사용 공격을 시도할 수 있다. 결국 TRNG는 난수 생성기 자체가 아니라, 암호 시스템에 물리적 불확실성을 공급하는 엔트로피 공급원이라고 보는 편이 정확하다.
아래 그림은 왜 결정론적 PRNG (Pseudo Random Number Generator)만으로는 부족한지, 그리고 TRNG가 어느 지점에서 개입하는지 보여 준다.
┌────────────────────────────────────────────────────────────────────────────┐
│ PRNG alone vs. physical entropy │
├────────────────────────────────────────────────────────────────────────────┤
│ PRNG path │
│ seed -> algorithm -> repeatable sequence │
│ │
│ TRNG path │
│ physical noise -> sampling -> fresh entropy bits │
│ │
│ Hybrid path │
│ TRNG seed -> secure expander -> high-speed cryptographic random stream │
└────────────────────────────────────────────────────────────────────────────┘
따라서 TRNG의 존재 이유는 "더 랜덤해 보이는 숫자"가 아니라 "공격자가 시작 상태를 알 수 없게 만드는 것"이다. 특히 HSM (Hardware Security Module), TPM (Trusted Platform Module), CPU (Central Processing Unit) 내장 보안 기능은 모두 이 첫 엔트로피의 품질에 기대고 있다.
- 📢 섹션 요약 비유: PRNG는 이미 정해진 카드 더미를 잘 섞어 놓고 뽑는 것이고, TRNG는 매번 진짜 바람을 불어 카드 위치를 바꾸는 것과 같다. 바람이 들어오지 않으면 아무리 화려하게 섞어도 결국 시작 위치를 아는 사람이 유리하다.
Ⅱ. 아키텍처 및 핵심 원리
실전 TRNG는 단일 센서가 아니라 여러 단계를 거친다. 먼저 엔트로피 소스가 열잡음, 오실레이터 지터, 메타안정성 같은 아날로그 현상을 만든다. 그다음 샘플러와 비교기가 이를 디지털 비트로 바꾸고, 후처리기 (conditioner)가 편향과 상관관계를 줄인다. 마지막으로 연속 건강성 검사 (health test)가 센서 고장이나 정지 상태를 감지하고, 검증된 출력이 DRBG나 CSPRNG (Cryptographically Secure Pseudo Random Number Generator)의 seed로 들어간다.
핵심은 "raw noise는 바로 신뢰하지 않는다"는 점이다. 물리 잡음에는 편향, 주파수 드리프트, 환경 의존성이 섞여 있어 그대로 쓰면 0과 1의 분포가 치우치거나 특정 패턴이 반복될 수 있다. 그래서 좋은 TRNG는 엔트로피 추정과 상태 검사를 포함한 파이프라인으로 설명해야 한다.
| 구성 요소 | 역할 | 설계 포인트 |
|---|---|---|
| 엔트로피 소스 | 지터, 열잡음, 메타안정성 등 물리적 무작위성 생성 | 온도·전압 변화에서도 충분한 엔트로피 확보 |
| 샘플러 / 비교기 | 아날로그 신호를 디지털 비트로 변환 | 샘플 주기와 상관관계 관리 |
| 후처리기 (conditioner) | 편향과 상관관계를 줄여 균질한 비트열 생성 | 해시·블록암호 기반 후처리 |
| 건강성 검사 (health test) | stuck bit, 반복 패턴, 엔트로피 저하 감지 | 실패 시 경고 또는 출력 중단 |
| DRBG / CSPRNG | TRNG seed를 바탕으로 고속 난수 확장 | 고속성과 재시드 정책 |
아래 그림은 현대 CPU나 보안 칩이 주로 사용하는 하드웨어 난수 파이프라인이다.
┌────────────────────────────────────────────────────────────────────────────┐
│ Typical hardware random pipeline │
├────────────────────────────────────────────────────────────────────────────┤
│ Noise source -> sampler -> conditioner -> health tests -> entropy pool │
│ (jitter, (sampler / (bias removal) repetition / -> DRBG │
│ thermal, latch) adaptive tests) / CSPRNG │
│ metastable) │
│ │
│ Raw analog noise is never the final output; it must be filtered and │
│ continuously monitored before software consumes it. │
└────────────────────────────────────────────────────────────────────────────┘
이 구조 덕분에 TRNG는 느린 물리 현상과 빠른 소프트웨어 요구를 동시에 맞춘다. 진짜 엔트로피는 상대적으로 천천히 나오더라도, 일단 품질 좋은 seed가 확보되면 DRBG가 대량 난수를 공급할 수 있다. 그래서 현대 시스템은 "TRNG만" 또는 "PRNG만"이 아니라 두 계층을 결합한 혼합 구조가 기본이다.
- 📢 섹션 요약 비유: TRNG는 우물에서 깨끗한 물을 길어 오는 일이고, DRBG는 그 물을 수돗물처럼 넓게 배관하는 일과 같다. 우물이 말랐거나 오염되면 배관이 아무리 좋아도 좋은 물은 나오지 않는다.
Ⅲ. 비교 및 연결
TRNG를 다른 난수 기술과 비교하면 경계가 분명해진다. PRNG는 빠르지만 시작점이 예측되면 전체가 흔들리고, CSPRNG는 암호학적으로 안전한 확장기를 제공하지만 결국 seed 품질에 의존한다. QRNG (Quantum Random Number Generator)는 양자 현상을 이용해 더 강한 물리적 난수원을 제공하지만, 비용과 배치 복잡도가 크다.
| 구분 | PRNG | CSPRNG / DRBG | TRNG |
|---|---|---|---|
| 무작위성 원천 | 수학적 규칙 | 수학적 규칙 + 안전한 상태 전이 | 물리적 현상 |
| 예측 가능성 | seed 노출 시 높음 | seed와 내부 상태 보호가 전제 | 엔트로피 소스 품질에 좌우 |
| 속도 | 매우 빠름 | 매우 빠름 | 상대적으로 느림 |
| 대표 역할 | 시뮬레이션, 게임 | 보안용 대량 난수 확장 | 초기 seed, 키 재시드, 보안 칩 엔트로피 |
이 때문에 실무에서는 TRNG와 CSPRNG를 대립 개념으로 보지 않는다. TRNG는 "난수의 원천"이고, CSPRNG는 "그 원천을 확장하는 엔진"이다. 예를 들어 CPU의 RDSEED는 seed에 가까운 엔트로피를, RDRAND는 내부 DRBG 출력을 제공하는 식으로 역할을 나눌 수 있다.
또한 TRNG는 보안 저장소와도 직접 연결된다. HSM, TPM, Secure Boot, 원격 증명용 키 생성 모두 첫 엔트로피 품질이 약하면 위 계층 보안이 연쇄적으로 약해진다. 즉 TRNG는 난수 파트의 세부 기능이 아니라, 하드웨어 보안 스택 전체의 상류 공급자다.
- 📢 섹션 요약 비유: TRNG는 산에서 내려오는 샘물이고, CSPRNG는 그 물을 도시 전체로 보내는 정수장과 수도관이다. 샘물이 없으면 정수장은 돌 수 없고, 수도관이 없으면 샘물만으로는 도시가 버티기 어렵다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서 TRNG를 평가할 때는 "난수 기능이 있다"는 문장보다 엔트로피 검증 체계를 먼저 봐야 한다. 보안 마이크로컨트롤러, HSM, 서버 CPU는 보통 하드웨어 엔트로피를 제공하지만, 이를 운영체제의 난수 풀과 어떻게 섞고 실패 시 어떤 정책으로 막을지까지 설계해야 한다. 특히 부팅 직후 엔트로피 부족 상태, 가상 환경의 난수 공급, 저전력 장치의 센서 드리프트는 자주 문제를 만든다.
적용 체크리스트
- 엔트로피 검증: 엔트로피 소스가 NIST (National Institute of Standards and Technology) SP 800-90B 같은 기준에 따라 평가되었는가?
- 후처리 확인: raw bit를 그대로 내보내지 않고 conditioner를 거치는가?
- 건강성 검사: 반복 패턴, stuck 상태, 과도한 편향을 감지하는 연속 테스트가 있는가?
- 운영 연계: 운영체제나 보안 모듈이 하드웨어 엔트로피를 자체 난수 풀과 안전하게 결합하는가?
- 재시드 정책: 장시간 실행 시 DRBG가 주기적으로 재시드되는가?
피해야 할 안티패턴
- 타임스탬프, MAC (Media Access Control) 주소, 센서 하위 비트 몇 개를 "난수"라고 부르는 설계
- raw TRNG 출력만 믿고 후처리와 건강성 검사를 생략하는 구현
- 하드웨어 명령어가 있으니 모든 난수 품질 검증이 끝났다고 오해하는 운영
기술사 답안에서는 TRNG를 설명할 때 물리 원천, 후처리, 연속 검사, CSPRNG 연계를 한 묶음으로 제시하는 편이 좋다. "진짜 난수"라는 추상 표현만으로는 부족하고, 어떤 파이프라인으로 bias를 줄이고 실패를 감지하는지까지 말해야 설계 설명이 된다.
- 📢 섹션 요약 비유: TRNG 운영은 주사위를 한 번 던지고 끝나는 일이 아니라, 주사위가 찌그러지지 않았는지 계속 검사하면서 결과를 기록하는 일과 같다. 주사위가 고장 났는데도 계속 던지면 겉보기엔 숫자가 나와도 게임은 이미 공정하지 않다.
Ⅴ. 기대효과 및 결론
좋은 TRNG는 암호 키 예측 가능성을 낮추고, 세션 초기화 값을 신뢰할 수 있게 만들며, 보안 칩 전체에 신선한 엔트로피를 공급한다. 그 결과 대칭키 생성, 인증 토큰 발행, 원격 증명 nonce 생성, 디스크 암호화 초기화 과정이 모두 더 튼튼해진다. 이 한 층이 약하면 위의 복잡한 암호 스택도 쉽게 흔들린다.
물론 TRNG는 "붙이면 끝"인 기능이 아니다. 아날로그 회로는 공정 편차와 환경 변화에 민감하고, 엔트로피 저하가 소리 없이 진행될 수 있다. 그래서 미래 방향은 더 좋은 물리 소스 자체보다, 칩 내 자가 진단, 다중 엔트로피 소스 결합, QRNG와의 하이브리드 연계처럼 품질을 지속적으로 증명하는 방향에 가깝다. 결론적으로 TRNG는 난수 편의 기능이 아니라, 암호 시스템에 현실 세계의 불확실성을 주입하는 첫 관문으로 기억해야 한다.
- 📢 섹션 요약 비유: TRNG는 컴퓨터가 바깥세상의 바람 소리와 동전 튀는 소리를 들으며 숫자를 배우는 창문과 같다. 창문이 닫혀 있으면 컴퓨터는 자기 머릿속 규칙만 반복하게 된다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 엔트로피 소스 | 열잡음, 지터, 메타안정성처럼 실제 무작위성을 공급하는 물리적 출발점이다. |
| conditioner | raw output의 편향과 상관관계를 줄여 균질한 비트열로 정제한다. |
| health test | stuck bit, 반복 패턴, 엔트로피 저하를 실행 중 감시한다. |
| DRBG | 검증된 seed를 바탕으로 고속 보안 난수를 확장하는 엔진이다. |
| CSPRNG | 운영체제와 애플리케이션이 주로 소비하는 암호학적으로 안전한 난수 생성 계층이다. |
| RDSEED / RDRAND | CPU가 제공하는 하드웨어 난수 인터페이스로, seed 공급과 확장 출력의 차이를 이해해야 한다. |
📈 관련 키워드 및 발전 흐름도
소프트웨어 PRNG
│
▼
예측 가능한 seed 문제
│
▼
TRNG (True Random Number Generator)
│
▼
conditioning · health test · 엔트로피 추정
│
▼
DRBG / CSPRNG 재시드
│
▼
CPU · TPM · HSM 내장 난수 인프라
이 흐름은 "수학적 난수"에서 "물리적 엔트로피 확보"로, 다시 "검증된 난수 인프라"로 확장되는 보안 진화를 보여 준다.
👶 어린이를 위한 3줄 비유 설명
- TRNG는 컴퓨터가 진짜 주사위를 굴려서 숫자를 얻는 방법이에요.
- 그냥 머릿속 규칙으로 숫자를 만들면 누군가 그 규칙을 알아내서 다음 숫자를 맞힐 수 있어요.
- 그래서 중요한 비밀번호를 만들 때는 진짜 주사위를 굴린 뒤, 그 결과를 많이 복사해서 쓰는 방식이 더 안전해요.