可重构硬件上基于格的密码学算术实现
1. 设计决策
格基密码学仍是一个活跃的研究领域,理想格基密码学的难度尚未完全明晰,因此尚未出现像椭圆曲线密码学(ECC)那样的“标准”参数。ECC 有 NIST 素数用于高效模约简,只需考虑少数参数集,便于优化实现。而格基密码学未实现标准化,所以在多项式乘法实现上尽可能采用通用设计。
文献中唯一可视为“标准”的通用要求是:$p \mod 2n \equiv 1$,$n$ 是 2 的幂,且 $p$ 是素数,这样才能在 $Z_p$ 中高效计算数论变换(NTT)。
NTT 在大多数应用中并非高效方法,因为信号处理中的近似解通常就足够了。处理单元(PE)中的蝶形结构复杂度高,消耗大量资源,因为与旋转因子的乘法是通用乘法后接模约简。使用费马(Fermat)或梅森(Mersenne)数论变换(FNT/MNT)时,蝶形结构可用移位器实现(因为 $\omega$ 可以为 2),无需旋转因子的只读存储器(ROM),模约简也大大简化。但此时变换长度需加倍,需要更多系数存储空间,且模约简需单独进行。
在复用 PE 进行多项式乘法时,一个重要的发现是逐分量乘法步骤 $a \circ b$ 需要通用乘法,不能仅用移位器实现。因此,决定在 NTT 中复用逐分量乘法步骤所需的乘法硬件,避免资源闲置浪费。
利用定理 2 的(2)时,由于需要 $\psi$ 和 $\psi^{-1}$ 的表项,似乎需要更多算术运算和额外的 ROM 存储空间。但与基于定理 1 的通用 NTT 及后续多项式模约简相比,仍节省了内存资源。直接实现负缠绕卷积时,变换大小为 $n$,只需在 ROM 中存储 $3n$ 个表项和两个各有 $n$ 个条目的随机存取存储器
超级会员免费看
订阅专栏 解锁全文
2197

被折叠的 条评论
为什么被折叠?



