CSPRNG
Um Gerador de Números Pseudoaleatórios Criptograficamente Seguro (CSPRNG) é um tipo especial de gerador de números pseudoaleatórios (PRNG) com características que o tornam ideal para aplicações em criptografia. Ele garante que os números gerados sejam imprevisíveis e seguros, mesmo sob ataques.
Pontos-chave
- CSPRNGs devem passar em testes estatísticos de aleatoriedade.
- CSPRNGs devem ser resistentes a ataques, mesmo com parte do estado exposto.
- A maioria dos PRNGs comuns não são adequados para uso criptográfico.
- A extração de entropia é uma área de pesquisa ativa para melhorar a aleatoriedade.
- Existem diferentes projetos de CSPRNG, baseados em primitivas criptográficas ou problemas matemáticos difíceis.
Um CSPRNG precisa atender a requisitos mais rigorosos que um PRNG comum. Além de passar em testes estatísticos de aleatoriedade, ele deve ser robusto contra ataques. Se parte do estado interno do gerador for revelado, um atacante não deve ser capaz de prever números futuros ou passados. Muitos PRNGs falham em um ou ambos os requisitos, pois podem apresentar padrões sutis em testes estatísticos avançados ou permitir a reconstrução de toda a sequência de números caso seu estado seja descoberto.
Pesquisas como as de Santha e Vazirani demonstraram que a combinação de múltiplos fluxos de bits com baixa aleatoriedade pode gerar um fluxo de bits de alta qualidade. Anteriormente, John von Neumann desenvolveu um algoritmo simples para reduzir o viés em fluxos de bits, que pode ser aplicado antes de usar métodos como os de Santha-Vazirani. A área de extração de entropia, que lida com a melhoria da aleatoriedade, continua sendo um campo de pesquisa ativo, com contribuições de nomes como N Nisan, S Safra, R Shaltiel, A Ta-Shma, C Umans e D Zuckerman.
Os projetos de CSPRNGs são geralmente divididos em três categorias: aqueles que utilizam primitivas criptográficas (como cifras e hashes), aqueles baseados em problemas matemáticos complexos e de propósito especial. Os projetos de propósito especial frequentemente incorporam entropia adicional, o que os diferencia dos geradores 'puros', pois sua saída não é totalmente determinada pelo estado inicial. Essa característica adicional pode oferecer proteção mesmo se o estado inicial for comprometido.
Projetos de Propósito Especial
Existem vários CSPRNGs práticos desenvolvidos para serem criptograficamente seguros, incluindo:
Vários CSPRNGs foram formalmente padronizados. Além disso, existem padrões estabelecidos para a realização de testes estatísticos em novos projetos de CSPRNG, garantindo sua adequação para uso criptográfico.
Relatos do The Guardian e The New York Times revelaram que a National Security Agency (NSA) introduziu uma vulnerabilidade (backdoor) no PRNG Dual_EC_DRBG, padronizado pelo NIST (SP 800-90A). Essa falha permitia à NSA descriptografar dados protegidos pelo gerador. Especialistas em segurança já suspeitavam de fraquezas, e documentos vazados por Edward Snowden confirmaram que a NSA trabalhou secretamente para que sua versão do projeto fosse aprovada globalmente em 2006, tornando-se eventualmente a única editora. Apesar das preocupações conhecidas sobre o backdoor e outras falhas, empresas como a RSA Security continuaram a usar o Dual_EC_DRBG até 2013, quando a backdoor foi confirmada. A RSA Security teria recebido US$ 10 milhões da NSA para manter o uso do CSPRNG comprometido.


