• Taehee Yoo's avatar
    crypto: x86/aria - implement aria-avx2 · 37d8d3ae
    Taehee Yoo authored
    aria-avx2 implementation uses AVX2, AES-NI, and GFNI.
    It supports 32way parallel processing.
    So, byteslicing code is changed to support 32way parallel.
    And it exports some aria-avx functions such as encrypt() and decrypt().
    
    There are two main logics, s-box layer and diffusion layer.
    These codes are the same as aria-avx implementation.
    But some instruction are exchanged because they don't support 256bit
    registers.
    Also, AES-NI doesn't support 256bit register.
    So, aesenclast and aesdeclast are used twice like below:
    	vextracti128 $1, ymm0, xmm6;
    	vaesenclast xmm7, xmm0, xmm0;
    	vaesenclast xmm7, xmm6, xmm6;
    	vinserti128 $1, xmm6, ymm0, ymm0;
    
    Benchmark with modprobe tcrypt mode=610 num_mb=8192, i3-12100:
    
    ARIA-AVX2 with GFNI(128bit and 256bit)
        testing speed of multibuffer ecb(aria) (ecb-aria-avx2) encryption
    tcrypt: 1 operation in 2003 cycles (1024 bytes)
    tcrypt: 1 operation in 5867 cycles (4096 bytes)
    tcrypt: 1 operation in 2358 cycles (1024 bytes)
    tcrypt: 1 operation in 7295 cycles (4096 bytes)
        testing speed of multibuffer ecb(aria) (ecb-aria-avx2) decryption
    tcrypt: 1 operation in 2004 cycles (1024 bytes)
    tcrypt: 1 operation in 5956 cycles (4096 bytes)
    tcrypt: 1 operation in 2409 cycles (1024 bytes)
    tcrypt: 1 operation in 7564 cycles (4096 bytes)
    
    ARIA-AVX with GFNI(128bit and 256bit)
        testing speed of multibuffer ecb(aria) (ecb-aria-avx) encryption
    tcrypt: 1 operation in 2761 cycles (1024 bytes)
    tcrypt: 1 operation in 9390 cycles (4096 bytes)
    tcrypt: 1 operation in 3401 cycles (1024 bytes)
    tcrypt: 1 operation in 11876 cycles (4096 bytes)
        testing speed of multibuffer ecb(aria) (ecb-aria-avx) decryption
    tcrypt: 1 operation in 2735 cycles (1024 bytes)
    tcrypt: 1 operation in 9424 cycles (4096 bytes)
    tcrypt: 1 operation in 3369 cycles (1024 bytes)
    tcrypt: 1 operation in 11954 cycles (4096 bytes)
    Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    37d8d3ae
Makefile 5.04 KB