segunda-feira, 30 de setembro de 2019
Acontece que a execução especulativa da CPU pode ser útil para Entropia aleatória / RNG
Confira !!
Embora a execução especulativa da CPU tenha causado muitas frustrações nos últimos dois anos devido a vulnerabilidades do Spectre, verifica-se que a execução especulativa da CPU pode ser explorada como uma fonte viável de entropia aleatória para geradores de números aleatórios.
Particularmente nas microarquiteturas de CPU Intel / AMD mais recentes, nas quais a execução especulativa é muito mais avançada do que o hardware de anos atrás, verificou-se que medir o tempo de execução de loops baseados em especulações é aleatório o suficiente para ser uma fonte barata e rápida de entropia. Loops diretos sem instruções extras obviamente não funcionam, mas a adição de instruções "inúteis" no mix gera tempos de execução não determinísticos quando medidos via RDTSC (lendo o contador de registro de data e hora da CPU).
O desenvolvedor de kernel de longa data Thomas Gleixner, que esteve envolvido com grande parte do trabalho de mitigação Spectre / Meltdown, foi quem apresentou seu código preliminar e sua pesquisa sobre o assunto. Não é necessariamente tão forte quanto algumas das fontes mais rígidas de dados de entropia, mas é rápido e parece funcionar bem particularmente com CPUs mais recentes, conforme descrito nesta postagem da lista de discussão .
Linus Torvalds comentou e acredita que isso não é muito confiável e uma simples implementação de entropia de jitter. Mas ele postou seu próprio código de prova de conceito para melhorar o código de entropia de jitter com base nisso.
Veremos aonde esse trabalho está indo e se um futuro código do kernel do Linux pode estar fazendo uso de execução especulativa para outra fonte para geração aleatória de números.
Fonte
Até a próxima !!
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário