AMD 프로세서 RNG의 제로 값 생성 문제 발견 — AI 생성 일러스트AI 일러스트
인프라 뉴스

AMD 프로세서 RNG의 제로 값 생성 문제 발견

AMD's random number generator can't generate a 0?

Hacker News9월 22일 발표 · 2분

개발자가 AMD 프로세서의 난수 생성기(RNG)가 요청된 비트 크기에 맞는 완전한 0을 생성하지 못하는 잠재적 버그를 포착했습니다.

세 줄 요약Hacker News 원문 기반
  1. 테스트 결과, 해당 현상은 Intel 프로세서에서는 문제가 없었으나 AMD 칩셋에서만 발생하며 하드웨어 간 큰 동작 차이가 확인되었습니다.
  2. 따라서 시스템 레벨의 개발자라면 특정 하드웨어 환경에서 RNG가 예상대로 작동하는지 반드시 검증할 필요성이 생깁니다.
  3. 특히 보안이나 암호화 같은 민감한 영역에서는 하드웨어 명령어에만 의존하기보다 운영체제(OS)의 검증된 난수 생성기를 활용하는 것이 안전합니다.

한 개발자가 어셈블리 코드를 사용하여 데이터를 렌더링하는 과정에서, AMD 프로세서(Zen2만 해당할 수 있음)의 난수 생성기(RNG)가 특정 크기의 완전한 '0'을 생성하지 못하는 잠재적 버그를 발견했습니다. 이 현상은 Intel 프로세서에서는 문제가 없었으며, 테스트 애플리케이션은 rdrand와 rdseed 명령어를 사용하여 데이터를 표시하며 AMD 환경에서 첫 번째 막대가 녹색(TSC 방식)이나 0부터 시작하는 차트 스케일이 제대로 올라가지 않는 문제를 보여주었습니다.

후속 논의를 통해 이 문제는 단순히 최하위 16비트가 모두 '0'인 경우와, 요청된 비트 크기 전체가 완전한 '0'인 경우로 구분되었습니다. 사용자는 32비트 또는 64비트 출력에서 가장 낮은 부분이 0이 될 수는 있지만, AMD에서는 진정한 의미의 완전한 0은 발생하지 않는다고 확인했습니다. 또한, 다른 사용자들은 CPU 모델 간 난수 생성기 회로에 큰 차이가 있을 수 있으며, 프로세서마다 성능 편차가 크다는 점을 지적했습니다.

보안 관점에서 볼 때, rdrand는 커널의 엔트로피 소스로 사용되는 것이 적절하며, 암호화와 같은 민감한 목적으로 난수 생성기가 필요할 경우 하드웨어 명령어에만 의존하기보다는 운영체제(OS)가 제공하는 검증된 암호학적 RNG를 활용하는 것이 더 안전하다는 의견이 제시되었습니다.

원문Hacker News · AMD's random number generator can't generate a 0?

평일 아침 메일로 받아 보기 ›틀린 곳 알리기