Em sistemas operacionais do tipo Unix, /dev/random, /dev/urandom e /dev/arandom são arquivos especiais que servem como geradores de números pseudoaleatórios. Eles permitem acesso aos ruídos do ambiente coletados de controladores de dispositivos e outras fontes. /dev/random normalmente bloqueia se houver menos entropia disponível do que o solicitado. /dev/urandom normalmente nunca bloqueia, mesmo se a semente do gerador de números pseudoaleatórios não tenha sido completamente inicializada com entropia desde a inicialização (boot). /dev/arandom bloqueia após a inicialização até que a semente tenha sido inicializada com segurança, com entropia suficiente, e então jamais bloqueia novamente. Nem todos os sistemas operacionais implementam as mesmas semânticas para /dev/random e /dev/urandom e apenas alguns fornecem /dev/arandom.

Linux O Linux foi o primeiro sistema operacional que implementou este tipo de gerador de números aleatórios como serviço do sistema. Nesta implementação o gerador mantém um número estimado de bits de ruído no pool de entropia. A partir deste pool de entropia os números aleatórios são criados. Quando lido, o dispositivo /dev/random irá retornar apenas os bytes aleatórios com o número de bits estimados pelo pool de entropia. O /dev/random deve ser apropriado para usos que necessitam alta qualidade dos números aleatórios como one-time pad ou geração de chave pública. Quando o pool de entropia está vazio, operações de leitura no /dev/random serão bloqueadas até que seja obtido ruído adicional do ambiente. (Origem: Linux Programmer's Manual, seção 4)

Uma contraparte do /dev/random é o /dev/urandom que reusa o pool interno para produzir mais bits pseudoaleatórios. A intenção é servir como um gerador de número pseudoaleatório criptograficamente seguro, apesar dele não ser projetado por especialistas em criptografia. Como resultado, a maioria do software de criptografia (incluindo OpenSSL, PGP e GnuPG, por exemplo) implementam o seu próprio gerador a partir da "semente" obtida no /dev/random.

FreeBSD O sistema operacional FreeBSD implementa o algoritmo Yarrow para gerar um fluxo aleatório.

Ver também Filosofia Unix Fluxos padrão :/dev/null :/dev/zero /dev Hardware gerador de número pseudoaleatório Gerador de número pseudoaleatório criptograficamente seguro Algoritmo Yarrow

Ligações externas An implementation of the Yarrow PRNG for FreeBSD, em inglês Analysis of the Linux Random Number Generator, em inglês

Dev Random Categoria:Tecnologia de sistema de arquivos do Unix