Discrete Logarithm

gmpy/离散对数

| Security | #discrete logarithm

前几天做一个解离散对数的题用到了 gmpy,它是 GMP 的 Python 封装,用来算大数。

这里记两笔。首先是大整数需要用 mpz 对象,例如:

p = mpz(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084171)

判断大数是否是质数:is_prime(p) (求离散对数其实用不着)

求逆元 x1x^{-1}invert(x, p)。例如, y = invert(x, p)(xy)modp=1(x * y) \mod p = 1

阅读全文…( 本文约 690 字,阅读大致需要 2 分钟 )