top of page
  • Foto do escritorDeale Gear

A importância dos números aleatórios na criptografia

Atualizado: 7 de fev.




Os números aleatórios são uma parte vital da criptografia moderna. Eles são usados para proteger a privacidade e a segurança de informações confidenciais, como senhas, informações financeiras e dados sensíveis.


A criptografia depende da geração de chaves únicas e imprevisíveis para criptografar e descriptografar informações. Os números aleatórios são usados para garantir que essas chaves sejam realmente únicas e não possam ser previsíveis ou repetidas. Há muitos métodos para gerar números aleatórios, mas a maioria deles é baseada em fontes de entropia.


A qualidade dos números aleatórios é crucial para a segurança da criptografia. Se os números gerados não são realmente aleatórios, a criptografia pode ser facilmente quebrada. Por isso, é importante usar fontes confiáveis e comprovadas de entropia para gerar números aleatórios.


Os números aleatórios também são usados em muitos outros aspectos da tecnologia da informação, como na geração de números de sessão para sistemas de autenticação, na geração de números de identificação única para dispositivos e na criação de chaves para a proteção de arquivos digitais.


A geração de números aleatórios de qualidade é um processo complexo e é importante que sejam utilizadas fontes de entropia confiáveis para garantir a segurança e a privacidade das informações. Alguns dispositivos, como hardware criptográfico, são especialmente projetados para gerar números aleatórios de alta qualidade.


O que é entropia?


A entropia é uma medida da incerteza ou da aleatoriedade de um sistema. Na criptografia, a entropia é usada para medir a quantidade de informação aleatória que é necessária para gerar chaves criptográficas seguras. A entropia é geralmente coletada de fontes externas, que são usadas para produzir uma saída realmente aleatória. A qualidade da entropia é importante para garantir a segurança da criptografia, pois a segurança da criptografia depende da geração de chaves únicas e imprevisíveis.


Como são gerados números aleatórios usando fontes de entropia?


Os números aleatórios podem ser gerados a partir de fontes ambientais, como medidas de tempo, temperatura, umidade, pressão atmosférica, ruído eletromagnético, entre outras. Esses fatores ambientais são coletados por dispositivos externos e usados ​​como entrada para algoritmos que geram números aleatórios.


Por exemplo, o ruído do ambiente pode ser capturado por um microfone e usado como entrada para gerar números aleatórios. O tempo entre eventos, como o intervalo entre cliques de um mouse, também pode ser medido e usado como entrada para gerar números aleatórios. Outros fatores ambientais, como a temperatura ou a pressão atmosférica, podem ser medidos por sensores e usados ​​igualmente para essa finalidade.


Esses números aleatórios gerados a partir de fontes ambientais são considerados mais seguros do que os números pseudo-aleatórios gerados por algoritmos computacionais, pois são impossíveis de prever. No entanto, é importante garantir que a fonte de entrada seja realmente aleatória e não possa ser manipulada por terceiros para comprometer a segurança da criptografia.


Além disso, o ideal é ter uma gama de fontes de entropia para gerar dados aleatórios de boa qualidade e com fornecimento contínuo ao longo do tempo. Uma estrutura bem construída pode servir como fonte para outros projetos, fornecendo números aleatórios através de uma API, por exemplo.


Um computador pode gerar números realmente aleatórios?


Não, um computador por si só não pode gerar números realmente aleatórios. Isso ocorre porque um computador é uma máquina determinística, o que significa que ele executa instruções de forma previsível, baseada no funcionamento dos seus circuitos eletrônicos e algoritmos de programação. Portanto, qualquer número gerado por um computador sozinho seria pseudo-aleatório, não realmente aleatório.


Veja este exemplo de código, em Javascript, para a geração de números aleatórios entre 0 e 99:


function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max)); }
const randomNumber = getRandomInt(100);
console.log(randomNumber);

Rodando esse código será possível perceber que são gerados realmente muitos números diferentes entre 0 e 99, e isso parece ótimo, mas não é o suficiente para sistemas de criptografia. Porque enquanto de um lado são geradas chaves com combinações complexas usando algoritmos sofisticados e computadores poderosos, do outro lado há pessoas tentando quebrar essa codificação, usando técnicas e equipamentos igualmente capazes. Por essa razão, os números aleatórios precisam ser gerados de uma forma mais confiável.


É possível, por exemplo, captar o som de algumas rádios online ou canais do Youtube, converter os dados em uma sequência numérica que, em tese, poderia ter um caráter aleatório. Claro que não basta, para esse exemplo,uma rádio ou um canal do Youtube, são necessários vários deles para que a amostra seja aleatória e para que haja uma continuidade na geração dos dados.


Como são usados os números aleatórios no Bitcoin?


Os números aleatórios são amplamente usados no Bitcoin, afinal, a tecnologia dessa criptomoeda é totalmente baseada em modelos de criptografia. Por essa razão, os números aleatório são fundamentais para:


1 - Gerar chaves privadas: As chaves privadas dos usuários são geradas como números aleatórios para garantir a segurança das transações. Elas devem ser seguras e conhecidas apenas pelo proprietário da conta;


2 - Assinatura digital: Os números aleatórios são usados na geração de assinaturas digitais para validar transações na rede;


3 - Prova de trabalho: O processo de mineração do Bitcoin envolve a resolução de um desafio matemático que requer a geração de números aleatórios. Aqui está algo muito importante e um dos pilares da segurança da rede do Bitcoin;


Além disso, a geração de números aleatórios é importante para garantir a segurança da rede contra ataques, como o ataque de previsão de números aleatórios. Portanto, é crucial que a geração de números aleatórios seja realizada de forma segura e imprevisível para manter a integridade do sistema.


Que empresas oferecem APIs para números aleatórios?


Há muitas empresas que oferecem o serviços API para números aleatórios, dentre elas:


1 - Random.org - Oferece uma API de números aleatórios verdadeiros baseados em fontes atmosféricas;


2 - True Random Number Generator - Oferece uma API que gera números aleatórios verdadeiros usando fontes físicas;


3 - HotBits - Oferece uma API de números aleatórios gerados a partir de fontes ambientai;.


4 - Entropy Pool - Oferece uma API de números aleatórios gerados a partir de fontes ambientais e eventos;


5 - Quantum Random Numbers Server - Oferece uma API de números aleatórios gerados a partir de fontes quânticas.


Também é possível que projetos de criptomoedas, especialmente aqueles ligados a oráculos, venham a oferecer algum tipo de serviço de números aleatórios no futuro. Por enquanto não encontramos nada sobre isso em nossa pesquisa (realizada em fevereiro de 2023), mas acreditamos que seja uma questão de tempo.


Como vimos, números aleatórios são muito importantes para as modernas tecnologias de segurança e transações financeiras. Algumas empresa tratam isso como um negócio importante, investindo em boas fontes de entropia e oferecendo APIs de alta confiabilidade para seus usuários. Normalmente esses são serviços pagos, embora algumas das empresas citadas nesse artigo permitam o uso de suas ferramentas em condições gratuitas, mas com limitações.




2 visualizações
bottom of page