FERRAMENTAS LINUX: Melhorias de Desempenho no Kernel Linux 6.10: Implementações AES-XTS e AES-GCM

terça-feira, 4 de junho de 2024

Melhorias de Desempenho no Kernel Linux 6.10: Implementações AES-XTS e AES-GCM

 


Com o desenvolvimento do kernel Linux 6.10, Eric Biggers, do Google, introduziu novas implementações AES-XTS para um desempenho significativamente mais rápido em processadores Intel e AMD. 

Estas melhorias utilizam os novos caminhos de código AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 e VAES + AVX10/512. Desde então, Biggers começou a focar em um desempenho ainda melhor para a criptografia/decodificação AES-GCM. Ele aproveita um novo caminho de código para utilizar AVX-512/AVX10 e/ou VAES. 





No domingo, Eric Biggers postou a última iteração de seus patches, proporcionando melhorias significativas para AES-GCM. Semelhante aos ganhos massivos observados com seu trabalho em AES-XTS, as melhorias no Modo Galois/Counter de AES são extremamente benéficas. No melhor cenário, o novo código AES-GCM pode proporcionar até 162% de melhoria!



Este novo código GCM AES-NI substitui o código anterior escrito pela Intel e também resolve problemas com o código anterior. Biggers explicou na série de patches: "Este conjunto de patches adiciona uma implementação de VAES e AVX512 / AVX10 do AES-GCM (Modo Galois/Counter), o que melhora o desempenho do AES-GCM em até 162%. Além disso, substitui o antigo código GCM AES-NI da Intel por um novo código que é ligeiramente mais rápido e corrige vários problemas, incluindo o tamanho massivo do binário de mais de 250 KB. Veja os patches para mais detalhes."



O estado final do código de montagem x86_64 AES-GCM é que acabamos com dois arquivos de montagem: um que gera código AES-NI com ou sem AVX, e outro que gera código VAES com AVX512 / AVX10 com vetores de 256 bits ou 512 bits. Não há suporte para VAES sozinho (sem AVX512 / AVX10). Isso difere um pouco do que foi feito com AES-XTS, onde um arquivo gera tanto código AVX quanto AVX512 / AVX10, incluindo código usando VAES sozinho (sem AVX512 / AVX10), e outro arquivo gera apenas código não-AVX. Por enquanto, isso parece ser a escolha certa para cada algoritmo em particular, com base em como a limitação a 16 registros SIMD e vetores de 128 bits resultou em algumas escolhas de design significativamente diferentes para AES-GCM, mas não tanto para AES-XTS. CPUs que suportam VAES sozinho também parecem ser uma questão temporária, então talvez não devêssemos nos esforçar muito para suportar essa combinação.



As melhorias de desempenho para AES-GCM com este novo código são muito evidentes. Processadores recentes da Intel e AMD estão mostrando ganhos significativos em toda a linha na velocidade de criptografia/decodificação AES-GCM. Espera-se que este novo código seja finalizado a tempo para o ciclo do Linux v6.11 ainda este ano.



Com as novas implementações AES-XTS e as melhorias em AES-GCM, o kernel Linux 6.10 está se preparando para oferecer um desempenho de criptografia superior. Essas atualizações são um passo importante para melhorar a eficiência e segurança dos sistemas que dependem do Linux. 

Os avanços contínuos de Eric Biggers mostram o potencial de otimizações de código bem executadas e seu impacto significativo no desempenho do sistema.





Fonte 

Até a próxima !!

Nenhum comentário:

Postar um comentário