伽罗瓦域算术的实现

时间:2012-12-12 06:08:18

标签: c++ finite-field galois-field

你知道C ++中Galois field算术的实现吗?至少应包括GF(2 16 )和GF(2 32 )等情况。性能是一个问题,因此实现应该考虑优化其操作。

我更喜欢一个通用的计算库或一个专门用于此任务的小型库。缺乏这些,我也欢迎一些可读的源代码。

4 个答案:

答案 0 :(得分:7)

我在Galois Field Arithmetic Library的维基百科文章中找到了Arash Partow的Finite field arithmetic链接。

乍一看,代码看起来几乎完全没有评论,但是以结构化的,因此可能是可以理解的方式编写。然而,性能似乎不是一个重要的设计标准:内联函数的使用相当有限,并且通常看起来像理论数学的直接符号被认为比开发计算快捷方式更重要。为了完整起见,我在此列出了这一点,以便您可以查看,形成自己的观点,并可以相应地进行投票或评论。

答案 1 :(得分:1)

也许您可以在GCM Mode中使用实现crypto++的代码(特别是gcm.cpp)。 Crypto ++是一个实现许多加密方案的免费C ++库。其中有GCM,它使用伽罗瓦域算法。

根据license,图书馆本身受版权保护,而个别源文件属于公共领域。

答案 2 :(得分:0)

有一个名为NTL的库:http://www.shoup.net/ntl/。虽然它的源代码不是很“可读”。

答案 3 :(得分:0)

寻找代数数字,我偶然发现了this answer,其中暗示Givaro。看着那个,我发现它也做GF( p k )算术。 documentation很薄,但the sources显示了相当多的代码和精力。还没有挖掘细节,但我想我会把它列在我的列表中。

相关问题