SIMD Optimizations of White-Box Block Cipher Implementations with the Self-equivalence Framework
摘要
As a theoretical method for protecting secret keys without specific hardware supports, white-box block cipher has attracted more and more attention in software cryptographic modules. The self-equivalence (SE) framework is a general method to transform a block cipher with SPN structure into its white-box implementation. It combines the self-equivalence of the substitution layer with the linear layer of the block cipher to prevent key extraction. However, due to the utilization of affine transformations, the SE implementations have lower encryption/decryption speed than their standard black-box implementations. The low performance will reduce the practicability of the SE framework. To address this limitation, this paper presents a general SIMD-based optimization method for the white-box block cipher implementations with the SE framework. The proposed SIMD-based method optimizes both the affine and nonlinear layers of the round functions. In the affine layer, matrix-vector multiplication is transformed into a series of 4–8 bit look-up tables (LUTs) using block matrix multiplication and precomputation. SIMD instructions are then applied for parallel table lookups. For the nonlinear layer, various SIMD parallel optimization methods were developed for different types of nonlinear components. Compared with their original implementations, encryption performances of the optimized McMillion-Sullivan’s white-box AES, Luo et al.’s white-box AES, Gong et al.’s white-box SM4, Chen et al.’s white-box SM4, and Vandersmissen et al.’s white-box SPECK improved 1819%, 2226%, 3236%, 21676%, and 121795% on the x86 platform, respectively. On the ARM platform, the improvements were 1492%, 1538%, 3001%, 5071%, and 88501%, respectively.