Nos sistemas Linux, pode-se verificar a entropia disponível (útil para saber se você está tocando /dev/random
para fins de PRNG) com
cat /proc/sys/kernel/random/entropy_avail
No entanto, não há equivalente /proc
em um Mac (AFAIK). Como posso verificar a entropia do sistema disponível em um Mac? Estou executando o OS X 10.7.3 (Lion)
Para atualizar com alguns dos meus comentários na resposta de Kyle - Uma das razões para os Macs não exibirem essas informações é que elas não são necessárias (na maioria dos casos). Os sistemas Linux bloquearão as chamadas /dev/random
se não houver entropia suficiente no pool. Nos Macs, periodicamente continua adicionando ao pool de entropia usando o SecurityServer
daemon.
No entanto, também observa que, se o daemon falhar por algum motivo, a qualidade da saída diminuirá sem nenhuma indicação de falha :
A qualidade de sua produção é, contudo, dependente da adição regular de entropia apropriada. Se o
SecurityServer
daemon do sistema falhar por qualquer motivo, a qualidade da saída sofrerá com o tempo sem nenhuma indicação explícita do próprio dispositivo aleatório.
Portanto, mesmo que a quantidade de entropia não seja disponibilizada com facilidade, isso não significa que ela não esteja lá e que possa haver casos em que seu conhecimento possa ser útil.
random
diretamente antes de obter números aleatórios importantes ".Respostas:
Esta não é uma solução, mas um esclarecimento de como a entropia é coletada e usada no Linux.
Na verdade, o Linux tem dois conjuntos de entropia diferentes:
/dev/random
e/dev/urandom
.O primeiro é um verdadeiro pool aleatório, alimentado por fontes de entropia do sistema.
O último é mais um PRNG, como os encontrados no BSD e no OS X.
No entanto, mesmo urandom requer uma semente de entropia aleatória 'real' para produzir dados pseudo-aleatórios de qualidade. Nos kernels recentes, uma completa falta de entropia em / dev / random ainda não bloqueia o urandom, mas o urandom reutiliza a última semente válida até que mais entropia esteja disponível. Como o urandom é não-bloqueador, a maioria dos serviços que exigem um fluxo constante de entropia o utiliza, em vez de depender de / dev / random.
No entanto, ainda existem alguns serviços, como vários pacotes SSL, que não se contentam com a entropia pseudo-aleatória, mas exigem uma fonte de entropia verdadeiramente imprevisível. Nesse caso, o urandom (ou qualquer outro PRNG) não pode ser usado e / dev / random entra em ação.
fonte
O Mac OS X simplesmente usa o Yarrow . Até o FreeBSD foi além e mudou para sua versão melhorada chamada "Fortuna".
Tudo isso é outro lembrete As prioridades da Apple não incluem segurança / robustez ou algo assim.
fonte
O Mac OS X, como o FreeBSD, não depende de fontes externas de entropia. Em vez disso, ele usa um gerador de números pseudoaleatórios baseado no algoritmo Yarrow . Por estar usando um algoritmo e não um pool de entropia, não há necessidade de garantir que haja entropia "suficiente" - você sempre poderá ler de / dev / random sem bloquear .
Portanto, para responder à sua pergunta, a menos que você seja "paranóico" e precise basear sua entropia em fontes externas (pressionamentos de tecla / movimentos do mouse / etc), nesse caso você deve fazer isso sozinho, a quantidade de entropia disponível para / dev / o uso aleatório é sempre infinito.
fonte