<p>In this work, we propose an optimized method for polynomial multiplication over <InlineEquation ID="IEq3"> <EquationSource Format="TEX">\(\text {GF}(2)[x]\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mtext>GF</mtext> <mo stretchy="false">(</mo> <mn>2</mn> <mo stretchy="false">)</mo> <mo stretchy="false">[</mo> <mi>x</mi> <mo stretchy="false">]</mo> </mrow> </math></EquationSource> </InlineEquation>, targeting SIMD environments such as <Emphasis FontCategory="NonProportional">AVX2</Emphasis> and <Emphasis FontCategory="NonProportional">Neon</Emphasis>. Polynomial multiplication is a core operation in code-based cryptographic schemes, including the recently standardized HQC. Our method provides a systematic, branch-free approach that selects efficient Toom-Cook/Karatsuba decomposition for <InlineEquation ID="IEq4"> <EquationSource Format="TEX">\(\text {GF}(2)[x]\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mtext>GF</mtext> <mo stretchy="false">(</mo> <mn>2</mn> <mo stretchy="false">)</mo> <mo stretchy="false">[</mo> <mi>x</mi> <mo stretchy="false">]</mo> </mrow> </math></EquationSource> </InlineEquation> polynomial multiplication. We systematically explore Toom-Cook/Karatsuba decomposition trees and generate specialized implementations without table look-ups or conditional branches, enabling precise selection for a given parameter set. Unlike general-purpose libraries such as <Emphasis FontCategory="NonProportional">gf2x</Emphasis>, which use table look-ups and conditional branches to support arbitrary polynomial degrees, our parameter-specific, branch-free design avoids this runtime selection overhead and enables precise algorithm selection for each parameter set. We further implement architecture-specific base multiplications using <Emphasis FontCategory="NonProportional">VPCLMULQDQ</Emphasis> for <Emphasis FontCategory="NonProportional">AVX2</Emphasis> and <Emphasis FontCategory="NonProportional">PMULL</Emphasis> for <Emphasis FontCategory="NonProportional">Neon</Emphasis>. To evaluate our method, we compare against the <Emphasis FontCategory="NonProportional">gf2x</Emphasis> library and state-of-the-art implementations of HQC and BIKE in both <Emphasis FontCategory="NonProportional">AVX2</Emphasis> and <Emphasis FontCategory="NonProportional">Neon</Emphasis> environments. In particular, for <Emphasis FontCategory="NonProportional">HQC-1</Emphasis> and <Emphasis FontCategory="NonProportional">HQC-3</Emphasis> on <Emphasis FontCategory="NonProportional">AVX2</Emphasis> with <Emphasis FontCategory="NonProportional">PCLMULQDQ</Emphasis>, our method reduces polynomial multiplication cycles by 17-32% compared to the official HQC implementation. For <Emphasis FontCategory="NonProportional">HQC-5</Emphasis>, we observe that FFT-based multiplication can be preferable. For BIKE in the same environment, we observe a 5-11% improvement in polynomial multiplication cycles compared to the method of Chen et al. (CHES 2021).</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Faster \(\text {GF}(2)[x]\) polynomial multiplication using SIMD instructions

  • Jihoon Jang,
  • Myeonghoon Lee,
  • Suhri Kim,
  • Seog Chung Seo,
  • Seokhie Hong

摘要

In this work, we propose an optimized method for polynomial multiplication over \(\text {GF}(2)[x]\) GF ( 2 ) [ x ] , targeting SIMD environments such as AVX2 and Neon. Polynomial multiplication is a core operation in code-based cryptographic schemes, including the recently standardized HQC. Our method provides a systematic, branch-free approach that selects efficient Toom-Cook/Karatsuba decomposition for \(\text {GF}(2)[x]\) GF ( 2 ) [ x ] polynomial multiplication. We systematically explore Toom-Cook/Karatsuba decomposition trees and generate specialized implementations without table look-ups or conditional branches, enabling precise selection for a given parameter set. Unlike general-purpose libraries such as gf2x, which use table look-ups and conditional branches to support arbitrary polynomial degrees, our parameter-specific, branch-free design avoids this runtime selection overhead and enables precise algorithm selection for each parameter set. We further implement architecture-specific base multiplications using VPCLMULQDQ for AVX2 and PMULL for Neon. To evaluate our method, we compare against the gf2x library and state-of-the-art implementations of HQC and BIKE in both AVX2 and Neon environments. In particular, for HQC-1 and HQC-3 on AVX2 with PCLMULQDQ, our method reduces polynomial multiplication cycles by 17-32% compared to the official HQC implementation. For HQC-5, we observe that FFT-based multiplication can be preferable. For BIKE in the same environment, we observe a 5-11% improvement in polynomial multiplication cycles compared to the method of Chen et al. (CHES 2021).