man 4 random
Linux 커널 엔트로피의 소스에 대한 설명은 매우 모호합니다.
난수 생성기는 장치 드라이버 및 기타 소스에서 발생하는 환경 소음을 엔트로피 풀로 수집합니다.
종이Linux 난수 생성기의 엔트로피 전송더 구체적일 수도 없습니다. 여기에는 다음이 나열됩니다.
add_disk_randomness()
,add_input_randomness()
, 그리고add_interrupt_randomness()
.
이러한 기능은 다음에서 비롯됩니다.random.c
, 여기에는 다음 설명이 포함됩니다.
환경에서 무작위성의 원인에는 키보드 간 타이밍, 특정 인터럽트의 인터럽트 간 타이밍 및 (a) 비결정적이고 (b) 외부 관찰자가 측정하기 어려운 기타 이벤트가 포함됩니다.
add_hwgenerator_randomness(...)
더 아래에는 하드웨어 난수 생성기 지원을 나타내는 기능이 있습니다 .
이 모든 정보는 다소 모호합니다(또는 소스 코드의 경우 이해하려면 Linux 커널에 대한 심층 분석이 필요함).사용된 엔트로피의 실제 소스는 무엇입니까? Linux 커널은 기본적으로 하드웨어 난수 생성기를 지원합니까?
답변1
오늘날 대부분의 상업용 PC 하드웨어에는 난수 생성기가 있습니다. VIA Semiconductor는 수년 동안 이를 프로세서에 적용해 왔습니다. Linux 커널은 이를 위한 via-rng 드라이버를 제공합니다. 34개의 소스 모듈을 세어봤습니다drivers/char/hw_random/
Intel 및 AMD 하드웨어용 드라이버와 TPM 장치가 있는 시스템을 포함하는 최신 소스 트리의 디렉터리입니다. rng 데몬(rngd)을 실행하여 임의의 데이터를 커널 엔트로피 풀에 푸시할 수 있습니다.
답변2
예, 기본적으로 하드웨어 엔트로피 생성기를 지원합니다. 이는 초당 많은 수의 동시 연결을 시작하는 고부하 SSL 서버(Gmail, Facebook, Microsoft 등)에 필요합니다. 홈 서버나 소규모 조직 서버에는 실제로 필요하지 않습니다. 하드웨어 엔트로피 생성기는 일반적으로 화려하지 않은 PCI 인터페이스를 사용하므로 쉽게 지원될 수 있습니다. 폐쇄 소스 드라이버를 필요로 하는 독점적인 하드웨어 엔트로피 생성기가 있는지 확실하지 않습니다. 그래픽 카드와 달리 그리 어렵지도 않고 수익성이 높은 산업도 아니기 때문일 것입니다.
http://en.wikipedia.org/wiki/Hardware_random_number_generator