【Applied Algebra】扩域(Galois域)上的计算及其实现

文章介绍了有限域F_p^n的性质,包括其作为p^n阶循环群的直和以及在Z_p上的分裂域。讨论了扩域F_p^n的自同构群,即Galois群,并给出了C++中实现扩域计算的结构和方法,特别是加法和乘法操作。文章还涉及了在F_2^4上的计算示例,以及如何使用GiNaC库进行符号计算。此外,提到了多项式环在F_p^n上的计算,并提出了动态规划优化计算的思路。

扩域上(Galois域)的计算及其实现

在这里插入图片描述


有限域 FFF 的特征为素数 ppp; 它可以视作素域 Zp\mathbb{Z}_pZp 上的 n(n<∞)n(n<\infty)n(n<) 维线性空间, 从而 ∣F∣=pn|F|=p^nF=pn; FFF 的加法群可视作 nnnppp 阶循环群的直和; 其乘法群是 pn−1p^n-1pn1 阶循环群, 从而 FFFZp\mathbb{Z}_pZp 的单扩域 Zp(u)\mathbb{Z}_p(u)Zp(u), 其中 uuuZp\mathbb{Z}_pZp 上的 nnn 次代数元; FFF 恰是多项式 xpn−x∈Zp[x]x^{p^n}-x \in \mathbb{Z}_p[x]xpnxZp[x]pnp^npn 个根作成的集合, 又恰为 xpn−x∈Zp[x]x^{p^n}-x \in \mathbb{Z}_p[x]xpnxZp[x]Zp\mathbb{Z}_pZp 上的分裂域; 从而 pnp^npn 元域总存在, 且在同构意义下唯一. pnp^npn 元域 FFF 的自同构群恰为 Galois 群 Gal⁡(F/Zp)\operatorname{Gal}\left(F / \mathbb{Z}_p\right)Gal(F/Zp) : 它是由 Frobenius 自同构 a↦apa \mapsto a^paap 生成的 nnn 阶循环群.虽然这样的域在近世代数的学习中已然是老生常谈,但是今天我们会给出它的c++计算实现.

扩域上的计算

密码学中通常会考虑F2\mathbb{F}_{2}F2上及对应多项式环上的计算,这是由计算机的二进制基础决定的,但是随着加密解密方法的进展,很多加密协议及分析中会考虑很多扩域的计算,在本文中我们希望能实现Fpn\mathbb{F}_{p^n}Fpn上的计算.

:假设计算F24\mathbb{F}_{2^4}F24上的元素,根据F24≅F2/f(x)\mathbb{F}_{2^4} \cong \mathbb{F}_{2}/f(x)F24F2/f(x),这里设f(x)=x4+x3+1f(x) = x^4+x^3+1f(x)=x4+x3+1为不可约多项式;F24\mathbb{F}_{2^4}F24中洽有161616个元素吗,F2/f(x)\mathbb{F}_{2}/f(x)F2/f(x)中的元素可以表示为小于444次的多项式,根据每一项出现与否({ x3,x2,x,1}\{x^3,x^2,x,1\}{

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值