复现Shekhar非对称与后量子加密文章计算结果不符求助
问题原因分析与解决方案
核心问题是你只执行了多项式模x⁴+1的运算,但原文中的计算是在「模素数q + 模多项式x⁴+1」的二元环中完成的——你漏掉了系数对素数取模的步骤。
验证过程
观察原文结果的系数(最大为16),推测素数q=17,将你的计算结果系数逐个模17:
- 第一个分量
41+34x+15x²-18x³:
41 mod17 = 7,34 mod17 = 0,15 mod17 =15,-18 mod17 = 16
转换后:16x³+15x²+7,与原文结果完全一致 - 第二个分量
23-6x+12x²-24x³:
23 mod17=6,-6 mod17=11,12 mod17=12,-24 mod17=10
转换后:10x³+12x²+11x+6,同样匹配原文结果
原因说明
后量子密码中的格基加密(如NTRU类算法)通常定义在Z_q[x]/(xⁿ+1)环上,运算需要同时满足两个条件:
- 多项式相乘后,对
x⁴+1取模(你已完成) - 所有系数对素数q取模(你遗漏的步骤)
原文中的计算默认在模17的有限域中进行,因此直接得到小系数结果;而你的代码仅处理了多项式模运算,保留了整数系数,导致结果差异。
解决方案
- 确认原文中指定的素数模数q(根据验证结果,q=17是正确的)
- 在代码中补充系数模q的步骤:所有多项式运算后的系数,都对q取模,负数系数转换为正余数(如
-1 mod17=16)
内容的提问来源于stack exchange,提问作者Aydin Onac
相关产品推荐
相关产品推荐

