在密碼相關(guān)的問題中,經(jīng)常遇到一些數(shù)據(jù)處理危融,在libnum中都可以找到比較合適的封裝函數(shù)畏铆。主要用于素數(shù)產(chǎn)生,素性檢測吉殃,開方求根辞居,求公共因子,橢圓曲線ECC操作蛋勺,字符轉(zhuǎn)換格式等等瓦灶。
常用的有:
len_in_bits(n) - 獲取n對應(yīng)的二進(jìn)制長度
gcd(a, b, ...) - 獲取多個數(shù)據(jù)的公因數(shù)
lcm(a, b, ...) - 獲取多個數(shù)據(jù)的公倍數(shù)
xgcd(a, b) - 拓展歐幾里得算法,返回形式 (x, y, g) 且滿足 a * x + b * y = gcd(a, b) = ginvmod(a, n) - 求a對于n的模逆
primes(n) - 產(chǎn)生小于n的素數(shù)列表
is_power(n) -檢測n是否能寫成 p**k, k >= 2的格式抱完,并且 return (p, k) or FalseCurve(a, b, p, g, order, cofactor, seed) 橢圓曲線的類
s2n(s) - 將字符串轉(zhuǎn)化成數(shù)值 s2b(s)轉(zhuǎn)化成二進(jìn)制串
n2s(n) - 將數(shù)值轉(zhuǎn)化成字符串 b2s(b) - 二進(jìn)制串轉(zhuǎn)化成字符串