This paper compares the efficiency of various algorithms for implementing quantum resistant public key encryption scheme RLCE on 64-bit CPUs. By optimizing various algorithms for polynomial and matrix operations over finite fields, we obtained several interesting (or even surprising) results. For example, it is well known (e.g., Moenck 1976 \cite{moenck1976practical}) that Karatsuba's algorithm outperforms classical polynomial multiplication algorithm from the degree 15 and above (practically, Karatsuba's algorithm only outperforms classical polynomial multiplication algorithm from the degree 35 and above ). Our experiments show that 64-bit optimized Karatsuba's algorithm will only outperform 64-bit optimized classical polynomial multiplication algorithm for polynomials of degree 115 and above over finite field $GF(2^{10})$. The second interesting (surprising) result shows that 64-bit optimized Chien's search algorithm ourperforms all other 64-bit optimized polynomial root finding algorithms such as BTA and FFT for polynomials of all degrees over finite field $GF(2^{10})$. The third interesting (surprising) result shows that 64-bit optimized Strassen matrix multiplication algorithm only outperforms 64-bit optimized classical matrix multiplication algorithm for matrices of dimension 750 and above over finite field $GF(2^{10})$. It should be noted that existing literatures and practices recommend Strassen matrix multiplication algorithm for matrices of dimension 40 and above. All our experiments are done on a 64-bit MacBook Pro with i7 CPU and single thread C codes. It should be noted that the reported results should be appliable to 64 or larger bits CPU architectures. For 32 or smaller bits CPUs, these results may not be applicable. The source code and library for the algorithms covered in this paper are available at http://quantumca.org/.
翻译:本文比较了64位数防量公用钥匙加密方案 RLCE 的各种算法在 64 位数 CPU 上执行量抗量公用钥匙加密方案 RLCE 的效率 。 通过优化多元度和矩阵操作在有限字段中的各种算法, 我们取得了一些有趣的( 甚至令人惊讶 ) 结果。 例如, 众所周知( 例如, Moenck 1976\ cite{ mencock1976 ) 。 Karatsuba 的算法在有限字段 $GF (2 ⁇ 10) 中优于经典多元度 公用钥匙加密程序 。 Karatsuba 的算法在15 级以上( 实际上, Karatsuba 的算法仅优于35级和35级以上经典多级多级多级计算法 ) 。 我们的64位数级数优化多级数多级算法的算法在64位数上只能反映64位数级数 。