数论基础:模奇素数的二次剩余 (1)

注意

  1. 本文讨论的是模奇素数的二次剩余

  2. 目前不打算写二次互反律,不易写明白

什么是二次剩余

在这里插入图片描述

求解模小素数的二次同余方程

求解模小素数的二次方程,只需要遍历 Z p ⋆ \mathbb{Z}_p^{\star} Zp 中的数,验证每个数的平方模 p p p 结果是否为 a a a 即可。

原因:在同余的意义下,只有 0 , 1 , 2 , . . . , p − 1 {0, 1, 2, ... , p-1} 0,1,2,...,p1这些数,而 x = 0 x=0 x=0 只可能是 x 2 ≡ 0   ( m o d   p ) x^2\equiv0\ (mod \ p) x20 (mod p) 的解。这个方程很普通,解永远是 x ≡ 0   ( m o d   p ) x\equiv0\ (mod\ p) x0 (mod p) ,我们不需要特别地去考虑它。

sage实现求解 x 2 ≡ a   ( m o d   7 ) x^2\equiv a\ (mod \ 7) x2a (mod 7) 的代码:

for a in range(1,7):
    print("Solving x^2 = {} mod 7".format(a))
    solNum = 0
    for x in range(1,7):
        if mod(x*x,7) == a:
            print("x =",x)
            solNum += 1
    if solNum == 0:
        print("No solution ...")
    else:
        print("Number of solution is {}".format(solNum))

二次剩余个数、解的结构

下图中指的是模奇素数二次方程的解的结构

p p p二次剩余的个数为什么是 p − 1 2 \frac{p-1}{2} 2p1

Z p ∗ Z_p^* Zp 中的所有数(即 1 , 2 , . . . , p − 1 {1, 2, ... , p-1 } 1,2,...,p1)平方后,出现了重复结果。且两个一对,两数同余。例如:

1 2 ≡ ( p − 1 ) 2 ≡ ( − 1 ) 2   ( m o d   p ) 1^2\equiv(p-1)^2\equiv(-1)^2\ (mod \ p) 12(p1)2(1)2 (mod p)
2 2 ≡ ( p − 2 ) 2 ≡ ( − 2 ) 2   ( m o d   p ) 2^2\equiv(p-2)^2\equiv(-2)^2\ (mod \ p) 22(p2)2(2)2 (mod p)

因此将 Z p ⋆ \mathbb{Z}_p^{\star} Zp 中的元素平方后,元素的个数变成原来的一半

如何判断是否有解

在这里插入图片描述
编程中,我们可以使用gmpy2的legendre()


参考资料:

Adleman-Manders-Miller Root Extraction Method Revisited

下一篇数论基础:模奇素数的二次剩余 (2)

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值