Pergunta

O problema não é sobre a própria aleatoriedade (temos rand), mas em criptograficamente segura PRNG. O que pode ser usado em Linux, ou, idealmente, POSIX? Does NSS têm algo útil?

Clarificação : eu sei sobre / dev / random, mas pode funcionar fora do pool de entropia. E eu não estou certo se / dev / urandom é garantido para ser criptograficamente segura.

Foi útil?

Solução

Uso /dev/random (requer intervenção do utilizador, por exemplo, os movimentos do rato) ou /dev/urandom. O último tem uma piscina entropia e não requer nenhuma entrada do usuário a menos que a piscina está vazia.

Você pode ler a partir do pool assim:

char buf[100];
FILE *fp;
if (fp = fopen("/dev/urandom", "r")) {
    fread(&buf, sizeof(char), 100, fp);
    fclose(fp);
}

Ou algo parecido.

Outras dicas

A partir Wikipedia (grifo meu):

A contrapartida para / dev / random é / dev / urandom ( "desbloqueado" fonte aleatório), que reutiliza o piscina interna para produzir mais bits pseudo-aleatórios. Isto significa que a chamada não irá bloquear, mas a saída pode conter menos do que a entropia de leitura correspondente de / dev / aleatória. O intenção é servir como um gerador de números pseudo-aleatórios criptograficamente segura . Isso pode ser usado para aplicações menos seguras.

O dispositivo /dev/random se destina a ser uma fonte de bits criptograficamente seguras.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top