libnumb包的使用

在密码相关的问题中,经常遇到一些数据处理,在libnum中都可以找到比较合适的封装函数。主要用于素数产生,素性检测,开方求根,求公共因子,椭圆曲线ECC操作,字符转换格式等等。
常用的有:

  • len_in_bits(n) - 获取n对应的二进制长度
    gcd(a, b, ...) - 获取多个数据的公因数
    lcm(a, b, ...) - 获取多个数据的公倍数
    xgcd(a, b) - 拓展欧几里得算法,返回形式 (x, y, g) 且满足 a * x + b * y = gcd(a, b) = g

  • invmod(a, n) - 求a对于n的模逆

  • primes(n) - 产生小于n的素数列表
    is_power(n) -检测n是否能写成 p**k, k >= 2的格式,并且 return (p, k) or False

  • Curve(a, b, p, g, order, cofactor, seed) 椭圆曲线的类

  • s2n(s) - 将字符串转化成数值 s2b(s)转化成二进制串
    n2s(n) - 将数值转化成字符串 b2s(b) - 二进制串转化成字符串

你可能感兴趣的:(libnumb包的使用)