伽罗瓦场算术的实现
Implementation of Galois field arithmetic
你知道伽罗瓦场算术在C++中的实现吗?至少像GF(216)和GF(232)这样的情况应该被覆盖。性能是一个问题,因此实现应该考虑优化其操作。
我更喜欢一个通用的计算库或一个专门用于此任务的小型库。缺少这些,我也欢迎一些可读的源代码。
我在维基百科关于有限域算术的文章中找到了Arash Partow的伽罗瓦场算术库的链接。
乍一看,代码看起来几乎完全没有注释,但以结构化的方式编写,因此可能是可以理解的。然而,性能似乎不是一个重要的设计标准:内联函数的使用相当有限,总的来说,理论数学的直接符号似乎被认为比解释计算快捷方式更重要。为了完整起见,我在这里列出这一点,以便您可以查看,形成自己的意见,并可以相应地投票或评论。
也许您可以使用在crypto++中实现GCM模式的代码(特别是gcm.cpp)。Crypto++是一个免费的C++库,实现了许多加密方案。其中包括使用伽罗瓦场算术的GCM。
根据许可证,库本身受版权保护,而单个源文件是公共领域。
有一个名为 NTL: http://www.shoup.net/ntl/的库。尽管它的源代码不太"可读"。
寻找代数数,我偶然发现了这个建议 Givaro 的答案。看着这个,我发现它也可以做GF(pk)算术。文档很薄,但源代码显示了相当多的代码和努力。还没有深入研究细节,但我想我会把它包括在这里的列表中。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- OpenSSL API,使用GCM(伽罗瓦计数器模式)进行AES加密
- 如何通过 C++11 的 CAS 实现瓦卢瓦队列
- 伽罗瓦场算术的实现
- 条件随机场 (CRF) 实现/库
- 如何实现罗兰UM 4的MIDI驱动程序
- 实现视场的最佳方式
- 这个波拉德·罗实现有什么问题