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