Na computação, entropia é a aleatoriedade coletada por um sistema operacional ou aplicativo para uso em criptografia ou outros usos que requerem dados aleatórios. Essa aleatoriedade é frequentemente coletada de fontes de hardware (variação no ruído do ventilador ou no HDD), tanto aquelas preexistentes como movimentos do mouse ou geradores de aleatoriedade especialmente fornecidos. A falta de entropia pode ter um impacto negativo no desempenho e na segurança.
Núcleo do Linux O núcleo do Linux gera entropia a partir do pressionamento de teclas do teclado, movimentos do mouse e interações da interface IDE e disponibiliza os dados de caracteres aleatórios para outros processos do sistema operacional por meio dos arquivos especiais /dev/random e /dev/urandom. Esse recurso foi introduzido na versão 1.3.30 do Linux.random(4) - Linux man page (die.net)
Existem alguns patches do kernel do Linux que permitem usar mais fontes de entropia.Robotic Tendencies » Missing entropy O projeto audio_entropyd, que está incluído em alguns sistemas operacionais, como o Fedora, permite que dados de áudio sejam usados como fonte de entropia.Fedora Package Database - audio-entropyd Também estão disponíveis o video_entropyd, que calcula dados aleatórios de uma fonte de vídeo, e o entropybroker que inclui esses três e pode ser usado para distribuir os dados de entropia para sistemas que não são capazes de executar nenhum deles (por exemplo, máquinas virtuais). Além disso, pode-se usar o algoritmo HAVEGE, por meio do haveged, para agrupar a entropia. Em alguns sistemas, as interrupções de rede também podem ser usadas como fonte de entropia.Entropy and Random Devices | LinuxLink by TimeSys - Your Embedded Linux Resource
Em sistemas que usam o núcleo do Linux, os programas que precisam de quantidades significativas de dados aleatórios de /dev/urandom não podem coexistir com programas que leem pequenos dados de /dev/random, pois /dev/urandom esgota /dev/random sempre que está sendo lido.High-Entropy Randomness Generator
Windows Os lançamentos do Microsoft Windows mais recentes que o Windows 95 usam a CryptoAPI para reunir a entropia de maneira semelhante ao /dev/random do núcleo do Linux.GPL command-line shred alternative for Windows
A CryptoAPI do Windows usa a chave binária de registro do Windows ''HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed para armazenar um valor semeado de todas as fontes de entropia.Source for entropy on Windows platforms with CryptoAPI installed
Como a CryptoAPI é de código fechado, alguns aplicativos de software livre e de código aberto executados na plataforma Windows usam outras medidas para obter aleatoriedade. Por exemplo, o GnuPG, a partir da versão 1.06, usa uma variedade de fontes, como o número de bytes livres na memória que, combinados com uma semente aleatória, gera a aleatoriedade desejada.How does Windows GnuPG generate random numbers on keygen?
Programadores que usam a CAPI podem obter entropia chamando CryptGenRandom() da CAPI, após inicializá-la corretamente.http://www.cs.berkeley.edu/~daw/rnd/cryptoapi-rand http://archives.seul.org/or/cvs/Mar-2004/msg00078.html
O CryptoAPI foi descontinuado do NT 6.0 e superior. A nova API é chamada de Cryptography API: Next Generation (CNG).
A versão mais recente do Windows é capaz de usar uma variedade de fontes de entropia:
TPM se disponível e ativado na placa-mãe Entropia da interface UEFI (se inicializada pela UEFI)https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/uefi-entropy-gathering-protocol Instrução da CPU RdRand, se disponível Relógio do sistema de hardware (RTC) Conteúdo da tabela OEM0 ACPI
Ligações externas Visão geral de entropia e de geradores de entropia no Linux
Categoria:Geradores de números pseudoaleatórios