我正在研究Elliptic Curve Cryptography的项目,该项目需要在二进制字段上进行编程。它包括基本操作,如加法,乘法,反演等w.r.t.不可约的二元多项式。
我正在寻找一种方法,通过这种方式可以将这些二进制多项式存储在程序中。我正在使用C和C ++编程语言(使用 gmp 库),所以我想到的第一个想法是使用结构和位字段。但它们不是动态的,不能保持任意长的多项式。使用C ++ Vector STL是可能的,但它不会有效,因为它将单个位存储在8位或更多位的单个字中。
有没有任何有效的表达方式?
答案 0 :(得分:0)
在数组中按位存储信息是没有效果的。如果我是你,我会将比特信息存储在一个大的UNSIGNED LONG INTEGER中,并编写一个函数,可以将这些比特输入和输出这个整数值的簇。这种存储位信息的方式可以使您的解决方案最多加速64次!