진정한 난수 생성기(TRNG)는 비결정적 소스를 사용하여 임의성을 만듭니다. 대부분의 기능은 이온화 방사선 활동의 펄스 감지기, 가스 방전관 및 새는 커패시터를 포함하여 예측할 수 없는 자연 과정을 측정하여 작동합니다.
인텔은 구동되지 않은 저항에서 측정된 전압을 개발하여 열 잡음을 샘플링하는 상업적으로 접근 가능한 칩을 개발했습니다. TRNG는 실제 난수를 생성하며 일반적으로 하드웨어 방식으로 생성됩니다.
TRNG에 의해 생성된 난수는 예측하기 복잡하기 때문에 TRNG는 임의 값을 예측하기 위해 복잡한 물리적 소스를 기반으로 생성되기 때문입니다. 따라서 TRNG에서 생성된 난수는 동일한 값을 만드는 것이 복잡하기 때문에 안전한 접근 방식입니다.
다음과 같은 무작위 가능성 소스가 있습니다. 주의만 하면 컴퓨터에서 진정한 무작위 시퀀스를 생성하는 데 사용할 수 있습니다.
사운드/비디오 입력 − 많은 컴퓨터는 마이크의 사운드나 카메라의 비디오 입력을 포함하여 실제 아날로그 소스를 디지털화하는 입력으로 구성됩니다.
전원이 연결되지 않은 사운드 디지타이저 또는 렌즈 캡이 장착된 카메라의 "입력"은 기본적으로 열 잡음입니다. 시스템이 무엇이든 식별할 수 있는 적절한 이득이 있는 경우 이러한 입력은 상당히 높은 품질의 임의 비트를 지원할 수 있습니다.
디스크 드라이브 − 디스크 드라이브는 혼돈의 난기류로 인해 회전 속도에 약간의 무작위 변동이 있는 것으로 알려져 있습니다. 저수준 디스크 탐색 시간 계측의 확장은 이러한 임의성을 포함하는 측정 시퀀스를 생성합니다.
이러한 데이터는 일반적으로 상관관계가 높기 때문에 상당한 처리가 필요합니다. 그럼에도 불구하고 10년 전의 실험에서는 이러한 처리를 통해 당시의 느린 컴퓨터에서 느린 디스크 드라이브라도 분당 100비트 또는 그 이상의 우수한 무작위 정보를 생성할 수 있음을 보여주었습니다.
TRNG는 0보다 1이 많거나 그 반대의 경우를 포함하여 일부 방법에서 바이어스된 출력을 생성할 수 있습니다. 바이어스를 줄이거나 제거하기 위해 비트 스트림을 변경하는 다양한 방법이 개발되었습니다. 이는 디스큐 알고리즘으로 정의됩니다.
왜곡을 줄이는 한 가지 방법은 해시 함수를 통해 비트 스트림을 전달하는 것입니다. 해시 함수는 임의 길이의 입력에서 n비트 출력을 생성합니다. 디스큐의 경우 해시 함수를 통해 m ≥ n인 m 입력 비트 블록을 확인할 수 있습니다.
TRNG는 너무 단조롭고 복잡한 의사 난수 생성기(공식)에 충분히 접근할 수 있습니다. TRNG는 물리적 또는 비물리적 노이즈 소스를 사용할 수 있습니다.
논리 장치에서 논리 장치는 항상 깨끗한 상태여야 하기 때문에 물리적 노이즈 소스는 완전히 제한됩니다. 난수를 생성할 수 있으며, 제어할 수 없는 무작위 현상이 필요합니다.
논리 장치에서 난수를 생성하기 위해 일반적으로 사용되는 물리적 현상은 다음과 같습니다. -
-
클럭 지터 − 이상적인 위치에서 시계 가장자리를 수정한 것입니다.
-
준안정성 − 막연한 시간 동안 무한 상태를 유지하는 회로의 능력입니다.
-
혼돈 − 초기 조건에 크게 반응하는 결정론적 시스템의 예측할 수 없는 동작입니다.
-
아날로그 신호 − 아날로그 신호에는 다이오드의 샷 노이즈, 열 노이즈 등이 포함됩니다.