伽罗华域乘法c语言,数学 – 伽罗瓦域中的加法和乘法

博客作者正在探讨在资源有限的嵌入式平台上生成QR码时遇到的挑战,特别是涉及到GF(256)加法和乘法运算。规范建议使用位移模2和字节级模100011101运算,这是伽罗瓦域2^8的表示。作者寻求最简单的实现方法,而不依赖于512字节的查找表。问题在于如何在不增加内存负担的情况下执行这些特定领域的数学运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图在非常有限的嵌入式平台上生成QR码.除了产生纠错码字之外,

the specification中的所有内容都看起来相当简单.我已经看了一大堆现有的实现,他们都试图实现一堆直线在我头上的多项式数学,特别是在Galois领域.在数学复杂性和内存要求方面,我可以看到的最简单的方法是在规范本身中规定的电路概念:

有了他们的描述,我相信我可以实现这一点,除了标有GF(256)加法和GF(256)乘法的部分.

他们提供这个帮助:

The polynomial arithmetic for QR Code shall be calculated using bit-wise modulo 2 arithmetic and byte-wise

modulo 100011101 arithmetic. This is a Galois field of 2^8

with 100011101 representing the field’s prime modulus

polynomial x^8+x^4+x^3+x^2+1.

这对我来说几乎都是希望.

所以我的问题是:在这种伽罗瓦域算术中执行加法和乘法最简单的方法是什么?假设两个输入数字都是8位宽,我的输出也需要8位宽.几个实现可以在两个查找表中进行预先计算或硬编码,以帮助实现这一点,但是我不确定如何计算这些值,或者我在这种情况下如何使用它们.我宁愿不对这两个表采取512字节的内存命中,但这真的取决于替代方案.我真的只需要帮助,了解如何在这个电路中进行单次乘法和加法运算.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值