• Tianjia Zhang's avatar
    crypto: arm64/sm4 - add ARMv8 Crypto Extensions implementation · 5b33e0ec
    Tianjia Zhang authored
    This adds ARMv8 implementations of SM4 in ECB, CBC, CFB and CTR
    modes using Crypto Extensions, also includes key expansion operations
    because the Crypto Extensions instruction is much faster than software
    implementations.
    
    The Crypto Extensions for SM4 can only run on ARMv8 implementations
    that have support for these optional extensions.
    
    Benchmark on T-Head Yitian-710 2.75 GHz, the data comes from the 218
    mode of tcrypt. The abscissas are blocks of different lengths. The
    data is tabulated and the unit is Mb/s:
    
    sm4-generic |     16       64      128      256     1024     1420     4096
        ECB enc |  80.05    91.42    93.66    94.77    95.69    95.77    95.86
        ECB dec |  79.98    91.41    93.64    94.76    95.66    95.77    95.85
        CBC enc |  78.55    86.50    88.02    88.77    89.36    89.42    89.48
        CBC dec |  76.82    89.06    91.52    92.77    93.75    93.83    93.96
        CFB enc |  77.64    86.13    87.62    88.42    89.08    88.83    89.18
        CFB dec |  77.57    88.34    90.36    91.45    92.34    92.00    92.44
        CTR enc |  77.80    88.28    90.23    91.22    92.11    91.81    92.25
        CTR dec |  77.83    88.22    90.22    91.22    92.04    91.82    92.28
    sm4-neon
        ECB enc |  28.31   112.77   203.03   209.89   215.49   202.11   210.59
        ECB dec |  28.36   113.45   203.23   210.00   215.52   202.13   210.65
        CBC enc |  79.32    87.02    88.51    89.28    89.85    89.89    89.97
        CBC dec |  28.29   112.20   203.30   209.82   214.99   201.51   209.95
        CFB enc |  79.59    87.16    88.54    89.30    89.83    89.62    89.92
        CFB dec |  28.12   111.05   202.47   209.02   214.21   210.90   209.12
        CTR enc |  28.04   108.81   200.62   206.65   211.78   208.78   206.74
        CTR dec |  28.02   108.82   200.45   206.62   211.78   208.74   206.70
    sm4-ce-cipher
        ECB enc | 336.79   587.13   682.70   747.37   803.75   811.52   818.06
        ECB dec | 339.18   584.52   679.72   743.68   798.82   803.83   811.54
        CBC enc | 316.63   521.47   597.00   647.14   690.82   695.21   700.55
        CBC dec | 291.80   503.79   585.66   640.82   689.86   695.16   701.72
        CFB enc | 294.79   482.31   552.13   594.71   631.60   628.91   638.92
        CFB dec | 293.09   466.44   526.56   563.17   594.41   592.26   601.97
        CTR enc | 309.61   506.13   576.86   620.47   656.38   654.51   665.10
        CTR dec | 306.69   505.57   576.84   620.18   657.09   654.52   665.32
    sm4-ce
        ECB enc | 366.96  1329.81  2024.29  2755.50  3790.07  3861.91  4051.40
        ECB dec | 367.30  1323.93  2018.72  2747.43  3787.39  3862.55  4052.62
        CBC enc | 358.09   682.68   807.24   885.35   958.29   963.60   973.73
        CBC dec | 366.51  1303.63  1978.64  2667.93  3624.53  3683.41  3856.08
        CFB enc | 351.51   681.26   807.81   893.10   968.54   969.17   985.83
        CFB dec | 354.98  1266.61  1929.63  2634.81  3614.23  3611.59  3841.68
        CTR enc | 324.23  1121.25  1689.44  2256.70  2981.90  3007.79  3060.74
        CTR dec | 324.18  1120.44  1694.31  2258.32  2982.01  3010.09  3060.99
    Signed-off-by: default avatarTianjia Zhang <tianjia.zhang@linux.alibaba.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    5b33e0ec
sm4-ce-core.S 15 KB