伪素数和Fermat素性检验

判断素数

nn为素数\Longleftrightarrow对任意b,(b,n)=1b,\left(b,n\right)=1bn11(modn)b^{n-1}\equiv 1\left(\mod n\right)ordn(b)n1{\mathrm{ord}}_{n}{\left(b\right)}\mid n-1

nn对基bb的伪素数

nn为奇合数,(b,n)=1\left(b,n\right)=1bn11(modn)b^{n-1}\equiv 1\left(\mod n\right)

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

  • nn为对基b1,b2b_1,b_2的伪素数,则nn为对基b1b2b_1\cdot b_2的伪素数

  • nn为对基bb的伪素数,则nn为对基b1b^{-1}的伪素数

  • 若存在bb使得bn1≢1(modn)b^{n-1}\not\equiv 1\left(\mod n\right),则模nn的简化剩余系中至少有一半的的数满足bn1≢1(modn)b^{n-1}\not\equiv 1\left(\mod n\right)

Fermat素性检验

  • STEP1: 随机选取整数bb和安全参数tt

  • STEP2: 计算rbn1(modn)r\equiv b^{n-1}\left(\mod n\right)

  • STEP3: r1r\not=1,则nn为合数

  • STEP4: 重复tt

Carmichael数

合数nn满足对任意b,(b,n)=1b,\left(b,n\right)=1bn11(modn)b^{n-1}\equiv 1\left(\mod n\right)

存在无穷多个Carmichael数

证明nn为Carmichael数

  • STEP1: n=p1psn=p_1\cdots p_s

  • STEP2: bpi11(modpi)b^{p_i-1}\equiv 1\left(\mod p_i\right)

  • STEP3: bn11(modpi)b^{n-1}\equiv 1\left(\mod p_i\right)

最后更新于