计算模m的k次根

2019-04-13 12:48发布

已知:k,b,m" role="presentation" style="position: relative;">k,b,m
求解同余式:xkb(mod m)" role="presentation">xkb(mod m) 如果我们满足两个限制
1.gcd(b,m)=1" role="presentation" style="position: relative;">gcd(b,m)=1
2.gcd(k,ϕ(m))=1" role="presentation" style="position: relative;">gcd(k,ϕ(m))=1
那么我们是有快速的方法求解x的 1.先计算ϕ(m)" role="presentation" style="position: relative;">ϕ(m) 2.然后求kuϕ(m)v=1" role="presentation">kuϕ(m)v=1 得到u" role="presentation" style="position: relative;">u
那么xbu(mod m)" role="presentation">xbu(mod m) 但是这种求法有两个限制的因素,所以也很少遇到,其实第一个条件可以适当放宽,如果m是若干个不同质数的乘积,那么可以使得gcd(b,m)>1" role="presentation" style="position: relative;">gcd(b,m)>1,但是第二条件还是要满足的。
bonus:这个东西对于RSA公钥密码体制很重要。