模平方根

王朝百科·作者佚名  2012-03-06  
宽屏版  字体: |||超大  

定义给定奇素数p和正整数x(1<=x<=p-1), 如果存在一个整数y,1<=y<=p-1, 使得x ≡ y*y (mod p) ,则称y是x的模p平方根。

举例63是55的模103平方根,因为有:63 * 63 ≡ 3969 ≡ 55 (mod 103)。

计算模平方根托内利-尚克斯算法可以计算模平方根。算法的流程如下:

输入奇素数p和正整数x(1<=x<=p-1)

随机选取g

设 p-1 = 2g * t,t为奇数

e=0

for(i=2;i<=s;i++)if((x*g^-e)^((p-1)/2^i) != 1)e += 2^i

h = x * g^-e

b = (g^(e/2)) * h^((t+1)/2)

return b

托内利-尚克斯算法是概率算法,返回正确解的概率为1/2。算法的渐进时间复杂度为O((log p)^4)。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有