COMP3357 tutorial: 中国剩余定理 (Chinese Remainder Theorem) 与整数模 p 乘法群

中国剩余定理 Chinese Remainder Theorem (CRT)

Definition


Points to Note:

  • 方程组的模数 m1,m2,...,mk两两互质 (pairwise coprime)
  • 该方程组的解 x 在模 M=mi 意义下是唯一的 (也就是说,所有的解 xN 等价)
  • 该方程组的解是 x=i=1kaiMitimodM,其中 Mi=M/mi, ti=Mi1(modmi)

Proof

CRT 是正确的,我们需要证明

  • 解的存在性 (existence)
    对于方程组:

    M=i=1kmk,我们令 Mi=M/mi (Mi 为除 mi 外所有模数的积)
    tiMimi 下的逆元,即 Miti1(modmi)
    我们能够构造解 x=i=1kaiMiti: 因此,任意解 x0x(modM)

    • 解的正确性
      对于方程组中的第 j 个方程 xaj(modmj)
      x=a1M1t1+a2M2t2+...+ajMjtj+...akMktk
      对于所有 ij 的项 aiMitiMi=M/mi,所以 Mi 一定包含 mj (即 mj|M),因此 aiMiti0(modmj)
      ajMjtjaj(modmj) since Mjtj0(modmj)
  • 解的唯一性 (uniqueness)
    x,x 均为方程组的解,那么 i[1,k],都有 xai(modmi), xaimodmi
    因此 xx(modmi), 或是说 mi|xx
    因为 m1,m2,...,mk are pairwise coprime, M|xx, i.e., xx(modM)
    所以 x,xM 同余,方程在模 M 意义下有唯一解

Application

  • 简化 aemodM 的计算
    对于 prime M, aemodM 能够用 Fermat's little Theorem 或者 Euler's Theorem 来化简
    对于 composite M,但 gcd(M,a)=1 的情况,Euler's Theorem 仍然适用
    而对于 composite Mgcd(M,a)1 的情况,就需要借助 CRT 进行简化

  • Accelerate RSA Decryption


关于整数模 p 乘法群 Zp 的研究

循环群的定义


有生成元 generator 的群就是循环群


Zp 是一个循环群

Zp for some prime p 是一个经典的循环群,下面我们将对其进行证明

  • ord(g)|φ(p)
    我们先证明,对于任何 gZp,都有 ord(g)|φ(p)
    gord(g)1(modp)
    gφ(p)1(modp)
    ord(g) 是 smallest positive integer r s.t. gr1modp,所以一定有 ord(g)ϕ(p)
    所以 ord(g)|φ(p)

  • 欧拉函数性质 d|nφ(d)=n
    这个结论好熟悉!就是之前学过的迪利克雷卷积 φ1=Id 的展开形式
    证明有点靠直觉: 我们将所有以 n 为分母的分式写出来 1n,2n,...,nn 并化简成最简形式 (Simplified forms)
    写成化简形式后,这些分式的分母 {d s.t.d|n} (即所有的分母一定都是 n 的 divisor)
    对于一个分母为 d 的分式,其分子有 φ(d) 种 (分子与分母必须互质,否则还可以继续化简)
    所以,d s.t.d|n,其都占有 {1n,2n,...,nn} 中的 φ(d) 个分式
    那么 d|nφ(d)=n

  • Proof (incomplete)
    我们定义函数 F(r)Zp 中,阶为 r 的元素的个数
    ord(g)|φ(p) 我们知道,所有元素的阶一定是 φ(p) 的 divisor
    所以有: d|φ(p)F(d)=|Zp|=φ(p)
    又根据 φ1=Idd|φ(p)φ(d)=φ(p)
    因此 d|φ(p)F(d)=φ(p)=d|φ(p)φ(d)
    我们得到p 为质数时, F(d)=φ(d)
    (这里的结论得出是不完整的,我们还需要通过 Lagrange's Theorem 证明 F(d)φ(d) 后得出 F(d)=φ(d),但该证明比较复杂,故直接取这个符合直觉的结论)

  • 生成元的个数
    有了 F(d)=φ(d) 这一关系后,我们可以求出 Zp 中阶为 r 的元素个数 φ(r)
    那么根据生成元的定义 (阶为 φ(p) 的元素),我们可以得到 Zpφ(φ(p))=φ(p1) 个生成元
    从而证明若 φ(p1)0Zp 是一个循环群


原根与整数模 n 乘法群

  • 原根 (primitive root)
    对于整数模 p 乘法群 (p is prime) Zp,我们已经证明其一定是循环群
    那么,对于这一类群,我们将其的生成元 (generator) 又称作原根 (primitive root): 质数 p 的原根,即群 Zp 的生成元
    目前没有求原根的一般方法 (general methods),但是在所有 φ(p) 个元素中有 φ(φ(p)) 个原根,使用随机化算法也能够 efficiently 得到原根

  • 其他整数模 n 乘法群 Zn
    n 不是质数时,需要满足什么条件能够使得 Zn 是循环群?
    答案: (2), 4, pk, 2pk (p 是一个奇质数k 是一个正整数)


二次剩余 Quadratic Residue

这里简单的对二次剩余做一点总结,虽然在这堂课里着墨不多,但是在数论领域还是一个很经典的问题

二次剩余问题

一个数 a,如果不是 p 的倍数且模 p 同余于某个数的平方,则称 a 为模 p二次剩余 (quadratic residue)
而一个数 b,如果不是 p 的倍数且模 p 不同于任何数的平方,则称 b 为模 p二次非剩余 (quadratic nonresidue)

对二次剩余求解,即对常数 a 解方程: x2a(modp)
通俗来讲,即是进行 模意义下的开平方运算 (find e-th root modulo p 的特殊情况: e=2)
在研究二次剩余问题时,模数 p 一般是奇质数


Legendre 符号


引入勒让德符号 (ap),标记 a 是否是模 p 的二次剩余


Euler 判别准则

对于奇素数 pp|a

欧拉判别准则指出,我们可以直接通过计算 a(p1)/2 计算 ap 的勒让德符号
这里是证明 (from OI wiki),很简明易懂

Tutorial questions

Hastad 广播攻击 (Håstad's broadcast attack)


首先看到三个方程,不同模数就联想到 CRT: 列出方程组

但是,CRT 的应用条件是模数两两互质。讨论

  • gcd(Ni,Nj)1 for some 1ij3:
    这种情况下,我们能够成功的找到 NiNjfactorization
    gcd(Ni,Nj)=p, 则 di=e1modφ(Ni)=d1mod(p1)(Ni/p1)
    得到 di 后,解密 m 就十分简单了
  • gcd(Ni,Nj)=1 for all 1ij3:
    这种情况下,我们直接进行 CRT 求解
    m3i=13aiMiti(modN1N2N3)
    由于在 Plain RSA 中,m<Ni for all i,所以 m3<N1N2N3
    我们只需要进行整数开根 i=13aiMiti3 即可 recover m

DDH Assumption fails when using Zp

gZp 的生成元,hZp,则一定存在 x 使 gx=h
x 的奇偶性 (parity) 可以通过计算 h 是否是模 p 的二次剩余来确定

  • x is even, 则 x=2t, (hp)g2t(p1)/2(gp1)t1(modp),因此 h 是模 p 的二次剩余
  • x is odd, 则 x=2s+1, (hp)g2s(p1)/2g(p1)/21(1)1(modp), 因此 h 是模 p 的二次非剩余

这一结论可以用于攻破使用 Zp 的 DDH 问题
给出 g,gx,gy,h=gz, 当 h 是模 p 的二次剩余时,敌手 A 输出 1,否则输出 0

  • h=gz=gxy,由于 x,y 都是随机的,因此 xy 的奇偶可能性为 odd:even=1:3
    于是有 Pr[(hp)=1]=Pr[z is even]=3/4
  • h=gz for some uniform z,因此 z 的奇偶可能性为 mathttodd:even=1:1
    于是有 Pr[(hp)=1]=Pr[z is even]=1/2

这样 |Pr[A(Zp,q,g,gx,gy,gz)=1]Pr[A(Zp,q,g,gx,gy,gxy)=1]|=1/4,而这个概率是 non-negligible
所以 DDH Assumption fails when using Zp,自然,使用 Zp 的任何 Diffie-Hellman 密钥交换协议与 El Gamel 加密都是不安全

一些常用的能保证 DDH Assumption 的群:


本文中所有引用来自 OI wiki 与 TA Zhang Chengru 的 PPT Slide

posted @   四季夏目天下第一  阅读(379)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示