计算模m的k次根

已知: k,b,m k , b , m
求解同余式:

xkb(mod m) x k ≡ b ( m o d   m )

如果我们满足两个限制
1. gcd(b,m)=1 g c d ( b , m ) = 1
2. gcd(k,ϕ(m))=1 g c d ( k , ϕ ( m ) ) = 1
那么我们是有快速的方法求解x的

1.先计算 ϕ(m) ϕ ( m )

2.然后求

kuϕ(m)v=1 k u − ϕ ( m ) v = 1

得到 u u
那么

xbu(mod m) x ≡ b u ( m o d   m )

但是这种求法有两个限制的因素,所以也很少遇到,其实第一个条件可以适当放宽,如果m是若干个不同质数的乘积,那么可以使得 gcd(b,m)>1 g c d ( b , m ) > 1 ,但是第二条件还是要满足的。
bonus:这个东西对于RSA公钥密码体制很重要。

你可能感兴趣的:(数论)