아두이노를 이용한 하드웨어 난수 생성기의 실용성 검증

아두이노를 이용한 하드웨어 난수 생성기의 실용성 검증

초록

본 논문은 아두이노 보드의 아날로그 핀에서 얻을 수 있는 대기 잡음을 이용해 진정한 난수(TRNG)를 생성하려는 시도를 통계적 검증을 통해 평가한다. 다양한 보드와 환경에서 수집한 데이터에 대해 Monobit, Poker, Runs, 그리고 엔트로피 테스트를 적용한 결과, 잡음은 예측 가능성이 높아 충분한 엔트로피를 제공하지 못함을 확인하였다. 따라서 아두이노의 아날로그 입력을 직접적인 난수원으로 활용하는 것은 권장되지 않는다.

상세 분석

논문은 먼저 아두이노(ATmega328P 기반)와 유사 AVR 마이크로컨트롤러가 제공하는 10비트 ADC(Analog‑to‑Digital Converter)의 특성을 살펴본다. 아날로그 핀에 연결된 외부 회로가 없을 경우, 내부 레퍼런스 전압(Vref)과 전원 노이즈가 ADC 샘플에 영향을 미치며, 이는 이론적으로는 ‘대기 잡음(atmospheric noise)’이라 불리는 무작위 신호를 제공할 수 있다고 가정한다. 저자들은 이 가정을 검증하기 위해 4가지 모델(Arduino Uno, Nano, Mega2560, Pro Mini)을 각각 3가지 환경(실내, 실외, 온도 변화 구간)에서 10 000 샘플씩 수집하였다.

수집된 데이터에 대해 NIST SP 800‑22와 FIPS 140‑2에 정의된 통계 테스트를 적용했으며, 구체적으로는 Monobit 테스트(비트 0과 1의 균형), Poker 테스트(4‑비트 블록의 빈도 분포), Runs 테스트(연속된 동일 비트 구간 길이), 그리고 엔트로피 계산을 수행하였다. 결과는 대부분의 경우 Monobit 테스트에서 p‑값이 0.05 이하로 떨어져 균등 분포 가정을 기각했으며, Poker 테스트에서도 기대값과 큰 편차를 보였다. 특히 전원 공급이 USB를 통해 이루어졌을 때는 전원 노이즈가 일정한 주기를 형성해 Runs 테스트에서 과도한 짧은 구간이 반복되는 현상이 관찰되었다.

온도 변화를 가했을 경우, ADC 오프셋이 약 0.2 LSB 정도 변동했지만 이는 전체 엔트로피에 미치는 영향이 미미했으며, 오히려 온도 센서 자체가 추가적인 상관성을 도입해 난수 품질을 악화시켰다. 또한, 보드 간 차이도 눈에 띄었는데, Pro Mini은 전원 레귤레이터가 외부에 노출돼 있어 전원 노이즈가 더 크게 나타났고, 이는 통계 테스트에서 더 낮은 p‑값을 초래했다.

저자들은 이러한 결과를 바탕으로 ‘아날로그 핀을 통한 직접 난수 추출’이 실용적이지 않음을 결론짓는다. 대신, 하드웨어 난수 생성에 특화된 회로(예: 전압‑전류 노이즈 증폭기, Ring‑Oscillator 기반 TRNG)와 결합하거나, 수집된 저품질 데이터를 해시 함수 등 강력한 압축 함수에 투입해 엔트로피를 재분배하는 방식을 제안한다.