密码学中的大整数、浮点数运算及C++20新特性
1. 大整数运算与相关库
在密码学中,大整数运算至关重要。我们先来看一个将大整数向左移动特定位数的函数:
void leftShifting (int BigInt1[], int number) {
int i;
// 从左到右移动,将所有元素向左移动n位
for (i=N-1; i>= number; i--)
BigInt1[i] = BigInt1[i- number];
// 用零填充最后n位
while (i >= 0) BigInt1[i--] = 0;
}
同时,有多个处理大整数的库和框架,以下是一些常见的库:
- Matt McCutchen的C++库 :易于使用,代码注释详细,在对称和非对称加密算法中表现出色。
- L3HARRIS Geospatial Solutions的Big Integer Class :计算速度快。
- Boost Library :功能强大,涵盖线性代数、伪随机数生成等多个领域,有大约160个独立库,文档结构清晰。
- GMP Library :免费的多精度算术库,支持有符号整数、有理数和浮点数运算,主要用于密码学软件、互联网安全和代数系统。
- LibBF Library :用于处理以2为基数的浮点数,基于I
超级会员免费看
订阅专栏 解锁全文
2243

被折叠的 条评论
为什么被折叠?



