Skip to main content
QUICK REVIEW

[论文解读] Frobenius Additive Fast Fourier Transform

Wen-Ding Li, Ming-Syan Chen⋆|arXiv (Cornell University)|Feb 12, 2018
Coding theory and cryptography参考文献 14被引用 3
一句话总结

本文提出了一种基于Frobenius加法快速傅里叶变换(FAFFT)的新方法,利用有限域中的Frobenius映射,在小次数下高效实现二元多项式乘法。该方法在次数小于256时达到29,005次位操作的记录最低值,优于Karatsuba算法和以往的FFT方法,首次在如此低的次数下实现基于FFT的乘法在位操作数上超越Karatsuba算法。

ABSTRACT

In ISSAC 2017, van der Hoeven and Larrieu showed that evaluating a polynomial P in GF(q)[x] of degree

研究动机与目标

  • 为克服传统观念中认为FFT在小次数多项式乘法中效率低下的问题,因为其隐藏常数较高。
  • 将Frobenius FFT技术从乘法单位根推广至基于Cantor和Gao-Mateer的加法FFT结构。
  • 减少二元多项式乘法中的位操作数,尤其针对密码学与编码理论中相关的低次情形。
  • 证明基于FFT的乘法在次数低至256时,其位操作数可优于类似Karatsuba的算法。
  • 提供一个可公开获取的FAFFT乘法实用代码生成器,适用于嵌入式与密码学系统部署。

提出的方法

  • 该方法将Frobenius FFT框架扩展至加法FFT结构,利用有限域扩张中的Frobenius映射来利用对称性。
  • 采用Cantor和Gao-Mateer的加法FFT算法,该算法在特征2的Artin-Schreier扩张上使用多项式除法。
  • 利用Frobenius映射通过固定基域𝔽₂的域自同构来减少操作数。
  • 通过在𝔽₂^d中运算并采用适配于扩张域加法结构的基,对二元多项式进行算法优化。
  • 实现了一个代码生成器,可自动生成使用FAFFT的多项式乘法的优化过程。
  • 对于现代CPU上的大次数乘法,通过将求值点限制在𝔽₂^128的子集上,将方法适配于使用PCLMULQDQ指令。

实验结果

研究问题

  • RQ1Frobenius FFT技术能否从有限域中的乘法结构推广至加法FFT结构?
  • RQ2FAFFT能否在小次数下实现低于类似Karatsuba算法的二元多项式乘法位操作数?
  • RQ3与Kronecker或标准加法FFT等现有基于FFT的方法相比,Frobenius加法FFT在位操作数上是否表现更优?
  • RQ4FAFFT能否高效适配于支持PCLMULQDQ等专用指令的现代CPU?
  • RQ5在小次数二元多项式中,基于FFT的乘法在位操作数上的性能上限是什么?

主要发现

  • 对于次数小于256的多项式,FAFFT方法仅需29,005次位操作,创下新纪录,优于此前最佳结果33,397次。
  • 在次数为128时,该方法实现11,556次位操作,仅比此前最佳的11,466次慢0.78%,表现出近乎最优性。
  • 该方法在位操作数上比基于Kronecker的FFT实现低约2倍,与Frobenius FFT的理论预期一致。
  • 在Intel Skylake架构上,使用PCLMULQDQ的FAFFT变体在次数高达2^23时,性能优于所有先前实现(如FDFT、ADFT、gf2x)。
  • 对于Koblitz曲线(如sect233k1、sect239r1、BBE251),FAFFT相比先前方法减少了位操作数,从而在二元椭圆曲线密码学中实现更快的算术运算。
  • 本工作首次证明,基于FFT的乘法可在如此低的次数下实现位操作数上超越类似Karatsuba的算法,挑战了以往的假设。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。