Gerador de números aleatórios baseado no k-mapa logístico - Kotaki, Matheus Mitsuo de Almeida (2021)
O crescente uso de dispositivos de baixo custo e baixa segurança ligados à internet, associados ao conceito de Internet das coisas, tem aumentado a preocupação quanto à possibilidade de invasão de computadores conectados à internet por meio das brechas e vulnerabilidades apresentadas por estes dispositivos. A criptografia de dados é uma forma de aumentar a segurança e a confiabilidade dos dados que trafegam pela internet. As chaves criptográficas são geradas, direta ou indiretamente, por geradores de números aleatórios (RNG). Além desta aplicação, esses geradores também são usados em simulações, recreação e programação. Para avaliar o desempenho de um RNG, usualmente, aplica-se uma bateria de testes compostos por cálculos estatísticos nos bits gerados, como os testes propostos pelo National Institute of Technology (NIST). Há duas classes de RNG, o gerador de números aleatórios verdadeiros (TRNG), baseados em fenômenos físicos, como ruído térmico, e o gerador de números pseudoaleatórios (PRNG), baseados em sistemas determinísticos, como o mapa logístico. PRNGs baseados em mapa logístico podem gerar sequências com propriedades estatísticas fracas, entretanto, o k-mapa logístico melhora essas propriedades ao adicionar mais uma etapa à geração de valores do mapa logístico original. Esse mapa descarta k dígitos decimais mais significativos de uma órbita gerada a partir da equação do mapa logístico tradicional. Esse trabalho desenvolveu um PRNG, na Cyclone V SoC FPGA, baseado no conceito do k-mapa logístico utilizando representação em ponto-fixo não sinalizada com 32 bits e 0 ≤ k ≤ 10. A partir da síntese do PRNG projetado concluiu-se que possui um throughput maior e uso de hardware semelhante quando comparado a outros trabalhos. Através de um sistema gerenciado por uma máquina de estados finitos e pelo HPS (Hard Processor System) da Cyclone V SoC FPGA, foi possível gerar e armazenar sequências para cada valor de k, e posteriormente testá-las através do conjunto de testes do NIST. Verificou-se que todas as sequências com k ≥ 6 foram aprovadas em todos os testes. Portanto, o PRNG desenvolvido, com um alto valor de k, consegue gerar sequências com boas propriedades aleatórias.