aes-ni가 활성화되었지만 커널이 지원되지 않습니까?

aes-ni가 활성화되었지만 커널이 지원되지 않습니까?

cpuid 등과 같은 도구로 cat /proc/cpuinfoaes 명령이 사용 가능한지 확인할 수 있습니까? 그런데 확인해 보니 /proc/cryptoAES가 표시되지 않았습니다. 저는 CentOS 6을 사용하고 있습니다. aes 커널 모듈을 로드하지 않으면 AES-NI 명령어를 활용할 수 없습니다. 제가 이것을 올바르게 이해하고 있습니까?

modprobe적절한 커널 모듈을 로드 하는 도구가 있습니까 ? (안타깝게도 관리자 권한이 없습니다)

AES-NI를 사용하여 테스트 프로그램을 실행하고 있는데 성능이 예상보다 훨씬 낮습니다.

AES-NI가 비활성화된 후 CPU는 어떤 명령을 실행하는지 궁금합니다. "소프트웨어 시뮬레이션"?

편집: modinfo를 실행하면 다음이 표시됩니다.

$ /sbin/modinfo aesni_intel
filename:       /lib/modules/2.6.32-431.17.1.el6.x86_64/kernel/arch/x86/crypto/aesni-intel.ko
alias:          aes
license:        GPL
description:    Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized
srcversion:     E6C037FA50922CF84440A82
depends:        glue_helper,aes-x86_64,lrw,cryptd,aes_generic,ablk_helper
vermagic:       2.6.32-431.17.1.el6.x86_64 SMP mod_unload modversions 

EDIT2: 위 모듈이 AMD 프로세서에도 적용 가능합니까?

답변1

이 파일에는 /proc/crypto커널 자체가 IPsec 및 디스크 암호화와 같은 네트워크 프로토콜과 같은 암호화 작업을 수행할 때 사용할 수 있는 알고리즘이 나열되어 있습니다. 이 문서는 사용자 공간 프로그램이 무엇을 할 수 있는지에 대한 정보를 전달하지 않습니다.

aesni_intel모듈에는 Intel AES-NI 가속기를 사용하여 AES를 구현하는 코드가 포함되어 있습니다. 커널 코드에서 AES를 실행해야 하는 경우 AES-NI를 사용해야 합니다.

내가 아는 한 AES-NI 가속기를 사용하는 데 커널 코드는 필요하지 않습니다. 프로그램은 AESxxxCPU 명령 만 발행하면 됩니다 . 프로세서에 AES-NI가 없으면 프로그램은 잘못된 명령 프로세서 예외를 트리거하며 이는 SIGILL 신호로 변환됩니다. 커널은 누락된 명령어의 동작을 시뮬레이션하여 예외를 처리할 수 있지만, 내가 아는 한 Linux는 AES-NI 명령어에 대해 이 작업을 수행하지 않습니다.

AES-NI 명령어는 Intel 및 AMD 프로세서에서 호환됩니다.

관련 정보