我正在尝试实现阈值Elgamal,我需要一个同时支持大数和多项式的库。对于多项式,我会使用 NTL,对于大数,我会选择 openssl bignum。问题是大数必须是多项式的系数,在NTL中,多项式要么是ZZ
的,要么是ZZ_p
的。
ZZ
的描述说:"大整数":有符号的任意长度整数。
这就够了吗?
>ZZ
可以存储您想要的任何整数。
ZZ_p
表示数字模p
(任何标记器,不一定是素数),其中p
的类型为 ZZ
,因此它也可以是您想要的任何(正)整数。
多项式的类是 ZZX
和 ZZ_pX
。这是一个限制,多项式的次数必须是 long
型,所以我认为它的上限为 2³¹-1,因为次数是有符号long
,零多项式的次数为 -1(根据 NTL 中的定义)。
但请注意,您应该使用 GMP 编译 NTL,以使用大整数获得最佳性能。