리눅스 커널은 어떤 엔트로피 소스를 사용합니까?


14

man 4 random Linux 커널 엔트로피 소스에 대한 매우 모호한 설명이 있습니다.

난수 생성기는 장치 드라이버 및 기타 소스에서 환경 소음을 엔트로피 풀로 수집합니다.

용지 리눅스 난수 생성기의 엔트로피 전송은 하나, 훨씬 더 구체적으로하지 않습니다. 다음을 나열합니다.

  • add_disk_randomness(),
  • add_input_randomness(),
  • add_interrupt_randomness().

이 functinos는에서 왔으며 random.c다음 의견이 포함되어 있습니다.

환경에서 임의의 원인은 키보드 간 타이밍, 일부 인터럽트의 인터럽트 간 타이밍 및 (a) 비 결정적 및 (b) 외부 관찰자가 측정하기 어려운 기타 이벤트를 포함합니다.

또한 add_hwgenerator_randomness(...)하드웨어 난수 생성기 지원을 나타내는 기능이 있습니다.

이러한 모든 정보는 다소 모호합니다 (또는 소스 코드의 경우 이해하기 위해 Linux 커널에 대한 깊은 지식이 필요함). 실제로 사용되는 엔트로피 소스는 무엇이며 Linux 커널은 기본적으로 하드웨어 난수 생성기를 지원합니까?

답변:


4

오늘날 대부분의 상용 PC 하드웨어에는 난수 생성기가 있습니다. VIA Semiconductor는 수년 동안 프로세서를 프로세서에 배치했습니다. Linux 커널에는이를위한 via-rng 드라이버가 있습니다. drivers/char/hw_random/인텔 및 AMD 하드웨어 용 드라이버와 TPM 장치가있는 시스템을 포함하여 최신 소스 트리 의 디렉토리에 34 개의 소스 모듈 이 있습니다. rng 데몬 (rngd)을 실행하여 임의의 데이터를 커널 엔트로피 풀로 푸시 할 수 있습니다.


이것은 내가 찾고있는 대답의 큰 부분처럼 보입니다. 나는 거기에 도착하자마자 거기에 무엇이 들어 있는지 더 깊이 살펴볼 것입니다. 질문에 이미 포함 된 정보와 함께 이것은 엔트로피 소스의 포괄적 인 목록처럼 느껴집니다.
Jens Erat

특정 PC 실행에서 사용할 수있는 기능을 확인하십시오 cat /sys/devices/virtual/misc/hw_random/rng_available.
hlovdal

0

예, 기본적으로 하드웨어 엔트로피 생성기를 지원합니다. 이는 초당 많은 동시 연결 (Gmail, Facebook, Microsoft 등)이 시작된 고부하 SSL 서버에 필요합니다. 홈 서버 나 소규모 조직 서버에는 실제로 필요하지 않습니다. 하드웨어 엔트로피 생성기는 일반적으로 PCI 인터페이스를 사용하므로 아무 것도 화려하지 않으므로 쉽게 지원할 수 있습니다. 폐쇄 형 소스 드라이버가 필요한 하드웨어 엔트로피 생성기가 있는지 확실하지 않습니다. 어쨌든 그래픽 카드와 달리 그렇게 어렵지 않고 수익성이 높은 산업은 아니기 때문일 것입니다.

http://en.wikipedia.org/wiki/Hardware_random_number_generator


2
대용량 서버에는 대용량 서버보다 하드웨어 RNG가 필요하지 않습니다. 머신에 충분한 엔트로피가 뿌려지면 PRNG에서 계속 (또는 적어도 수십억 년 동안 계속 작동 할 수 있음) 계속 실행할 수 있습니다. 실제로 하드웨어 RNG가 필요한 컴퓨터는 전원을 꺼도 현재 RNG 상태를 안전하게 저장할 수없는 내장 장치입니다.
Gilles 'SO- 악의를 멈춰라'

@Gilles : Linux 이외의 다른 시스템에도 유효합니까? 나는 리눅스가 이것을하는 것을 알고 있지만, OS X (또는 Windwos)를 포함한 * BSD에 대해서는 들어 본 적이 없다.
Jens Erat

1
@JensErat 몰라요. 구현하기 쉽고 매우 유용하므로 BSD가 그렇게하지 않으면 놀랐습니다.
Gilles 'SO- 악마 그만해'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.