上个学期帮助师兄实现针对后量子密码dilithium的多项式环域上的多项式求逆的软件实现,今天回顾一下,整理出来。dilithium中q=8380417,多项式环域为x^256+1。我的python实现,只需要满足最小公因多项式是常数即可。
多项式域上的拓展欧几里得算法和整数域上的拓展欧几里得算法在原理上是相似的,但在具体实现上有一些区别。在整数域上,系数是整数,可以直接进行加减乘除和取模运算;而在多项式域上,系数一般是属于某个数域(如有理数域、有限域)的元素,需要使用该数域上的运算规则。
多项式除法: 多项式域上的除法需要考虑到多项式除法的特殊性,即要计算商和余数。因为系数也在一个环上,被除数多项式f的最高次数系数乘以除数多项式m的最高项系数的逆就是对应的商的一个系数,这与整数域上的除法有所不同。
基本原理是拓展欧几里得算法,采用python实现,公式已经整理成文档。
链接: https://pan.baidu.com/s/1eQbU53u6TEFqdnSn5W8UvQ?pwd=u59w 提取码: u59w