强伪素数和Miller-Rabin Primality素性检验

nn对基bb的强伪素数

nn为奇合数,(b,n)=1\left(b,n\right)=1n1=2stn-1=2^s ttt为奇数,bt1(modn)b^t\equiv 1\left(\mod n\right)或存在0r<s0\leq r<s使得b2rt1(modn)b^{2^r t}\equiv -1\left(\mod n\right)

  • 存在无穷个对基22的强伪素数

  • nn对基b(1bn1)b\left(1\leq b\leq n-1\right)的强伪素数可能性至多为2525%

Miller-Rabin Primality素性检验

  • STEP1: 安全参数kkn1=2st,tn-1=2^s t,t为奇数

  • STEP2: 随机选取整数b,2bn2b,2\leq b\leq n-2

  • STEP3: 计算r0bt(modn)r_0\equiv b^{t}\left(\mod n\right)

    • r0=1r_0=1r0=n1r_0=n-1,则通过检验,可能为素数。回到第二步

    • 否则进入下一步

  • STEP3: 计算r1r02(modn)r_1\equiv r_{0}^{2}\left(\mod n\right)

    • r1=n1r_1=n-1,则通过检验,可能为素数。回到第二步

    • 否则进入下一步

  • STEP4: 计算r2r12(modn)r_2\equiv r_{1}^{2}\left(\mod n\right)

    \cdots

  • STEPs+1: 计算rs1rs22(modn)r_{s-1}\equiv r_{s-2}^{2}\left(\mod n\right)

    • rs1=n1r_{s-1}=n-1,则通过检验,可能为素数。回到第二步

    • 否则nn为合数

      kk次测试后,nn为合数的概率为0.25k{0.25}^k

最后更新于