信息安全数学基础-素数模高次同余方程 2021-10-09

8.素数模高次同余方程

1. 素数模的高次同余方程

问题的引出

一般素数p模同余方程
f ( x ) = a 0 x n + . . . + a n ≡ 0 ( m o d   p ) , p 不 整 除 a 0 f(x)=a_0x^n+...+a_n≡0(mod\ p),p不整除a_0 f(x)=a0xn+...+an0(mod p),pa0
的求解问题

基本方法

把模p的完全剩余系中数一一代入即可求解。但当p,n过大时,代入验算不是易事。因此需要简化处理。

简化处理方式

  • f ( x ) f(x) f(x)的系数有大于p的都把它们化为小于p

  • f ( x ) f(x) f(x)的次数n不小于p,利用 x p ≡ x ( m o d   p ) x^p≡x(mod\ p) xpx(mod p)(费马小定理),可以用 x p − x x^p-x xpx(因为 x p − x ≡ 0 ( m p d   p ) x^p-x≡0(mpd\ p) xpx0(mpd p))除 f ( x ) f(x) f(x)得到次数小于p的 r ( x ) r(x) r(x),即把 f ( x ) f(x) f(x)化为次数小于p的 r ( x ) r(x) r(x)。即
    f ( x ) ≡ r ( x ) ( m o d   p ) f(x)≡r(x)(mod\ p) f(x)r(x)(mod p)

  • f ( x ) = g 1 ( x ) g 2 ( x ) ( m o d   p ) f(x)=g_1(x)g_2(x)(mod\ p) f(x)=g1(x)g2(x)(mod p),则原方程的求解问题变成求解 g 1 ( x ) ≡ 0 ( m o d   p ) g_1(x)≡0(mod\ p) g1(x)0(mod p) g 2 ( x ) ≡ 0 ( m o d   p ) g_2(x)≡0(mod\ p) g2(x)0(mod p)

    由于 d e g g 1 ( x ) < d e g f ( x ) , d e g g 2 ( x ) < d e g f ( x ) degg_1(x)<degf(x),degg_2(x)<degf(x) degg1(x)<degf(x),degg2(x)<degf(x),计算的困难性可以大大减少。

  • 若已经知道了同余方程的一个解 x ≡ a ( m o d   p ) x≡a(mod\ p) xa(mod p),则由于 f ( x ) = ( x − a ) g ( x ) + r f(x)=(x-a)g(x)+r f(x)=(xa)g(x)+r,有 r ≡ 0 ( m o d   p ) r≡0(mod\ p) r0(mod p),因此 f ( x ) ≡ ( x − a ) g ( x ) ( m o d   p ) f(x)≡(x-a)g(x)(mod\ p) f(x)(xa)g(x)(mod p),求解问题变为 g ( x ) ≡ 0 ( m o d   p ) g(x)≡0(mod\ p) g(x)0(mod p)

例子

x 2 ≡ 1 ( m o d   p ) x^2≡1(mod\ p) x21(mod p)

只有1和 p − 1 p-1 p1两个解。其中p为素数

答:
显 然 , x ≡ 1 是 原 方 程 f ( x ) = x 2 − 1 ≡ 0 ( m o d   p ) 的 一 个 解 。 由 于 f ( x ) = ( x − 1 ) ( x + 1 ) 因 此 f ( x ) ≡ ( x − 1 ) ( x + 1 ) ≡ 0 ( m o d   p ) , 求 解 问 题 变 为 ( x + 1 ) ≡ 0 ( m o d   p ) 显 然 此 时 x ≡ p − 1 ( m o d   p ) 显然,x≡1是原方程f(x)=x^2-1≡0(mod\ p)的一个解。 \\由于f(x) = (x-1)(x+1) \\因此f(x) ≡ (x-1)(x+1)≡0(mod\ p),求解问题变为(x+1)≡0(mod\ p) \\显然此时x ≡ p-1(mod\ p) x1f(x)=x210(mod p)f(x)=(x1)(x+1)f(x)(x1)(x+1)0(mod p)(x+1)0(mod p)xp1(mod p)

例子

求与同余式 3 x 14 + 4 x 13 + 2 x 11 + x 9 + x 6 + x 3 + 12 x 2 ≡ 0 ( m o d   5 ) 3x^{14}+4x^{13}+2x^{11}+x^9+x^6+x^3+12x^2≡0(mod\ 5) 3x14+4x13+2x11+x9+x6+x3+12x20(mod 5)等价的次数小于5的同余式

解:

3 x 14 + 4 x 13 + 2 x 11 + x 9 + x 6 + x 3 + 12 x 2 3x^{14}+4x^{13}+2x^{11}+x^9+x^6+x^3+12x^2 3x14+4x13+2x11+x9+x6+x3+12x2 = ( x 5 − x ) ( 3 x 9 + 4 x 8 + 2 x 6 + 3 x 5 + 5 x 4 + 2 x 2 + 4 x + 5 ) + 3 x 3 + 16 x 2 + 6 x =(x^5-x)(3x^9+4x^8+2x^6+3x^5+5x^4+2x^2+4x+5)+3x^3+16x^2+6x =(x5x)(3x9+4x8+2x6+3x5+5x4+2x2+4x+5)+3x3+16x2+6x

所以原同余式等价于 3 x 3 + 16 x 2 + 6 x ≡ 0 ( m o d   5 ) 3x^3+16x^2+6x≡0(mod\ 5) 3x3+16x2+6x0(mod 5)

例子

x p − 1 ≡ 1 ( m o d   p ) x^{p-1}≡1(mod\ p) xp11(mod p)

p − 1 p-1 p1个(不相同的)解。其中p为素数

解1:

由 于 p 是 素 数 , 所 以 φ ( p ) = p − 1 由 欧 拉 定 理 , 当 ( k , p ) = 1 时 , k φ ( p ) ≡ 1 ( m o d   p ) 即 k p − 1 ≡ 1 ( m o d   p ) 由 于 p 是 素 数 , 因 此 p 的 p 个 剩 余 类 里 只 有 [ 0 ] 与 p 不 互 素 因 此 x p − 1 ≡ 1 ( m o d   p ) 有 p − 1 个 ( 不 相 同 的 ) 解 , 其 中 p 为 素 数 。 由于p是素数,所以\varphi(p) = p-1 \\由欧拉定理,当(k,p)=1时,k^{\varphi(p)}≡1(mod\ p) \\即k^{p-1}≡1(mod\ p) \\由于p是素数,因此p的p个剩余类里只有[0]与p不互素 \\因此x^{p-1}≡1(mod\ p)有p-1个(不相同的)解,其中p为素数。 pφ(p)=p1(k,p)=1kφ(p)1(mod p)kp11(mod p)ppp[0]pxp11(mod p)p1p

解2:

这 个 方 程 有 p − 1 个 不 同 的 解 : x ≡ 1 , . . . , p − 1 ( m o d   p ) 在 模 p 的 意 义 下 有 如 下 分 解 : x p − 1 − 1 ≡ ( x − 1 ) ( x − 2 ) . . . ( x − ( p − 1 ) )   ( m o d   p ) 令 x = 0 , 有 : − 1 ≡ ( − 1 ) p − 1 ( p − 1 ) !   ( m o d   p ) 这个方程有p-1个不同的解: \\x≡1,...,p-1(mod\ p) \\在模p的意义下有如下分解: \\x^{p-1}-1≡(x-1)(x-2)...(x-(p-1))\ (mod\ p) \\令x=0,有:-1≡(-1)^{p-1}(p-1)!\ (mod\ p) p1x1,...,p1(mod p)pxp11(x1)(x2)...(x(p1)) (mod p)x=01(1)p1(p1)! (mod p)

Wilson定理

若 p 为 素 数 , 则 ( p − 1 ) ! ≡ − 1 ( m o d   p ) 若p为素数,则(p-1)!≡-1(mod\ p) p(p1)!1(mod p)

  • 当p是奇素数时,上面的例子显然满足Wilson定理
  • 当p是偶素数时,显然p只能是2,而 − 1 ≡ ( − 1 ) 2 − 1 ( 2 − 1 ) ! ( m o d   2 ) -1≡(-1)^{2-1}(2-1)!(mod\ 2) 1(1)21(21)!(mod 2),上面的例子也满足Wilson定理
例子

若p>2,则
x p − 2 + x p − 3 + . . . + x + 1 ≡ 0   ( m o d   p ) x^{p-2}+x^{p-3}+...+x+1≡0\ (mod\ p) xp2+xp3+...+x+10 (mod p)
p − 2 p-2 p2个不相同的解:
x ≡ 2 , 3 , . . . , p − 1   ( m o d   p ) x≡2,3,...,p-1\ (mod\ p) x2,3,...,p1 (mod p)

解:

由 于 x p − 1 − 1 ≡ ( x − 1 ) ( x − 2 ) . . . ( x − ( p − 1 ) )   ( m o d   p ) ( 上 面 的 结 论 ) 且 x p − 1 − 1 ≡ ( x − 1 ) ( x p − 2 + x p − 3 + . . . + x + 1 )   ( m o d   p ) 因 此 ( x − 1 ) ( x − 2 ) . . . ( x − ( p − 1 ) ) ≡ ( x − 1 ) ( x p − 2 + x p − 3 + . . . + x + 1 )   ( m o d   p ) 而 上 式 左 边 有 p − 1 个 不 同 的 解 : 1 , 2 , . . . , p − 1    ( m o d   p ) 因 此 上 式 右 边 也 有 p − 1 个 不 同 的 解 : 1 , 2 , . . . , p − 1    ( m o d   p ) 其 中 ( x − 1 ) 贡 献 解 1   ( m o d   p ) 从 而 x p − 2 + x p − 3 + . . . + x + 1 ≡ 0   ( m o d   p ) 有 p − 2 个 不 相 同 的 解 : 2 , 3 , . . . , p − 1   ( m o d   p ) 由于x^{p-1}-1≡(x-1)(x-2)...(x-(p-1))\ (mod\ p)(上面的结论) \\且x^{p-1}-1≡(x-1)(x^{p-2}+x^{p-3}+...+x+1)\ (mod\ p) \\因此(x-1)(x-2)...(x-(p-1))≡(x-1)(x^{p-2}+x^{p-3}+...+x+1)\ (mod\ p) \\而上式左边有p-1个不同的解:1,2,...,p-1\ \ (mod\ p) \\因此上式右边也有p-1个不同的解:1,2,...,p-1\ \ (mod\ p) \\其中(x-1)贡献解1\ (mod\ p) \\从而x^{p-2}+x^{p-3}+...+x+1≡0\ (mod\ p)有p-2个不相同的解: \\2,3,...,p-1\ (mod\ p) xp11(x1)(x2)...(x(p1)) (mod p)xp11(x1)(xp2+xp3+...+x+1) (mod p)(x1)(x2)...(x(p1))(x1)(xp2+xp3+...+x+1) (mod p)p11,2,...,p1  (mod p)p11,2,...,p1  (mod p)(x1)1 (mod p)xp2+xp3+...+x+10 (mod p)p22,3,...,p1 (mod p)

重解

定义

假如关于模 m m m ( x − a ) k {(x-a)}^k (xa)k f ( x ) f(x) f(x)的因式,但 ( x − a ) k + 1 {(x-a)}^{k+1} (xa)k+1不是 f ( x ) f(x) f(x)的因式,则 x ≡ a ( m o d   m ) x≡a(mod\ m) xa(mod m)叫做同余方程 f ( x ) ≡ 0 ( m o d   m ) f(x)≡0(mod\ m) f(x)0(mod m)的k重解。当k=1时又称为单解,当k>1时叫做重解。

例子

f ( x ) = x 7 − 2 x 6 − 7 x 5 + x + 2 ≡ 0 ( m o d   5 ) f(x)=x^7-2x^6-7x^5+x+2≡0(mod\ 5) f(x)=x72x67x5+x+20(mod 5)可分解为
f ( x ) = ( x − 1 ) ( x + 1 ) 2 ( x − 2 ) 2 ( x 2 + x + 2 ) ( m o d   5 ) f(x)=(x-1){(x+1)}^2{(x-2)}^2(x^2+x+2)(mod\ 5) f(x)=(x1)(x+1)2(x2)2(x2+x+2)(mod 5)
因此 x ≡ 1 x≡1 x1 f ( x ) ≡ 0 ( m o d   5 ) f(x)≡0(mod\ 5) f(x)0(mod 5)的单解, x ≡ 2 , 4 x≡2,4 x2,4是重解。注意到当 f ( x ) ≡ 0 ( m o d   p ) f(x)≡0(mod\ p) f(x)0(mod p)降次后得到的 r ( x ) ≡ 0 ( m o d   p ) r(x)≡0(mod\ p) r(x)0(mod p)中不相同的解是一致的,但它们在各方程中的重数不一定一致

拉格朗日定理

f ( x ) ≡ 0 ( m o d   p ) 的 不 相 同 的 解 的 个 数 不 大 于 f ( x ) 的 次 数 f(x)≡0(mod\ p)的不相同的解的个数不大于f(x)的次数 f(x)0(mod p)f(x)

证明:

用 数 学 归 纳 法 : 当 n = 1 时 , 定 理 显 然 成 立 假 定 n − 1 时 定 理 成 立 , 假 如 x = a 是 f ( x ) ≡ 0 ( m o d   p ) 的 解 , 即 有 f ( a ) ≡ 0 ( m o d   p ) . 令 f ( x ) ≡ ( x − a ) g ( x ) ( m o d   p ) . 若 x ≡ b ( m o d   p ) 是 任 意 一 解 , 则 有 : f ( b ) ≡ ( b − a ) g ( b ) ≡ 0 ( m o d   p ) 故 有 b ≡ a ( m o d   p ) 或 g ( b ) ≡ 0 ( m o d   p ) 前 者 说 明 b 与 a 在 模 p 之 下 同 余 , 后 者 说 明 x ≡ b ( m o d   p ) 是 g ( x ) ≡ 0 ( m o d   p ) 的 解 。 也 就 是 说 f ( x ) ≡ 0 ( m o d   p ) 的 解 或 者 是 x ≡ a ? ( m o d   p ) , 或 者 是 g ( x ) ≡ 0 ( m o d   p ) 由 于 d e g g ( x ) = n − 1 , 由 归 纳 假 设 , 它 的 不 相 同 的 解 的 个 数 不 多 于 n − 1 个 。 因 此 无 论 哪 种 情 况 , f ( x ) ≡ 0 ( m o d   p ) 的 解 数 都 不 超 过 n 个 用数学归纳法:当n=1时,定理显然成立 \\假定n-1时定理成立,假如x=a是f(x)≡0(mod\ p)的解,即 \\有f(a)≡0(mod\ p). \\令f(x)≡(x-a)g(x)(mod\ p).若x≡b(mod\ p )是任意一解,则有: \\f(b) ≡(b-a)g(b)≡0(mod\ p) \\故有b≡a(mod\ p)或g(b)≡0(mod\ p) \\前者说明b与a在模p之下同余, \\后者说明x≡b(mod\ p)是g(x)≡0(mod\ p)的解。 \\也就是说f(x)≡0(mod\ p)的解或者是x≡a?(mod\ p),或者是g(x)≡0(mod\ p) \\由于degg(x)=n-1,由归纳假设,它的不相同的解的个数不多于n-1个。 \\因此无论哪种情况,f(x)≡0(mod\ p)的解数都不超过n个 n=1n1x=af(x)0(mod p)f(a)0(mod p).f(x)(xa)g(x)(mod p).xb(mod p)f(b)(ba)g(b)0(mod p)ba(mod p)g(b)0(mod p)bapxb(mod p)g(x)0(mod p)f(x)0(mod p)xa(mod p)g(x)0(mod p)degg(x)=n1n1f(x)0(mod p)n

拉格朗日定理的注记
  1. 由拉格朗日定理可知,假如
    a 0 x n + a 1 x n − 1 + . . . + a n ≡ 0 ( m o d   p ) a_0x^n+a_1x^{n-1}+...+a_n≡0(mod\ p) a0xn+a1xn1+...+an0(mod p)
    有多于n个不相同的解,则它的所有系数都能用p整数,即
    a i ≡ 0 ( m o d   p ) , i = 0 , 1 , . . . , m a_i≡0(mod\ p),i = 0,1,...,m ai0(mod p),i=0,1,...,m

  2. f ( x ) = a 0 x n + . . . + a n ≡ 0 ( m o d   p ) , p 不 整 除 a 0 f(x)=a_0x^n+...+a_n≡0(mod\ p),p不整除a_0 f(x)=a0xn+...+an0(mod p)pa0

    不一定有解。即使有解,解的个数也不一致。上定理只是解个数的最好上限而已

    例如:

    x 3 + 4 x 2 + x + 1 ≡ 0 ( m o d   5 ) x^3+4x^2+x+1≡0(mod\ 5) x3+4x2+x+10(mod 5)无解

    x 3 + 2 x 2 − 2 x + 1 ≡ 0 ( m o d   5 ) x^3+2x^2-2x+1≡0(mod\ 5) x3+2x22x+10(mod 5)有一个解: x ≡ − 2 ( m o d   5 ) x≡-2(mod\ 5) x2(mod 5)

    x 3 − 2 x 2 − x + 2 ≡ 0 ( m o d   5 ) x^3-2x^2-x+2≡0(mod\ 5) x32x2x+20(mod 5)有三个解: x ≡ 1 , − 1 , − 2 ( m o d   5 ) x≡1,-1,-2(mod\ 5) x1,1,2(mod 5)

  3. 拉格朗日定理之所以能成立,是因为模数是素数。假如模数是合数,定理不一定成立。

    例如:
    x 3 − x = x ( x − 1 ) ( x + 1 ) ≡ 0   ( m o d   6 ) x^3-x=x(x-1)(x+1)≡0\ (mod\ 6) x3xx(x1)(x+1)0 (mod 6)
    有6个解: x ≡ 0 , 1 , 2 , 3 , 4 , 5   ( m o d   6 ) x≡0,1,2,3,4,5\ (mod\ 6) x0,1,2,3,4,5 (mod 6)

    原因:

    若p是合数,那么在拉格朗日定理的证明过程中:
    f ( b ) ≡ ( b − a ) g ( b ) ≡ 0 ( m o d   p ) 故 有 b ≡ a ( m o d   p ) 或 g ( b ) ≡ 0 ( m o d   p ) f(b) ≡(b-a)g(b)≡0(mod\ p) \\故有b≡a(mod\ p)或g(b)≡0(mod\ p) f(b)(ba)g(b)0(mod p)ba(mod p)g(b)0(mod p)
    不再成立。因为:
    若 p 是 素 数 , c ∗ d ≡ 0 ( m o d   p )    ⟺    c ∗ d = n ∗ p    ⟺    p ∣ c ∗ d    ⟺    p ∣ c 或 p ∣ d 若 p 是 合 数 , 上 述 性 质 “ p ∣ c ∗ d    ⟺    p ∣ c 或 p ∣ d ” 不 再 成 立 若p是素数,c*d≡0(mod\ p)\iff c*d=n*p \\ \iff p|c*d\iff p|c或p|d \\若p是合数,上述性质“p|c*d\iff p|c或p|d”不再成立 pcd0(mod p)cd=nppcdpcpdppcdpcpd

n次同余方程有n个不同解的判定

定理

n ( < p ) 次 同 余 方 程 f ( x ) ≡ 0 ( m o d   p ) 有 n 个 不 相 同 解 的 必 要 充 分 条 件 是 : f ( x ) 在 模 p 之 下 是 x p − x 的 因 式 。 n(<p)次同余方程f(x)≡0(mod\ p)有n个不相同解的必要充分条件是: \\f(x)在模p之下是x^p-x的因式。 n(<p)f(x)0(mod p)nf(x)pxpx

充分性证明:

假 如 x p − x ≡ q ( x ) f ( x ) ( m o d   p ) . ( 即 : f ( x ) 在 模 p 之 下 是 x p − x 的 因 式 ) 若 f ( x ) ≡ 0 ( m o d   p ) 解 的 个 数 小 于 n , 由 于 q ( x ) ≡ 0 ( m o d   p ) 的 解 不 能 多 于 p − n 个 , 故 q ( x ) f ( x ) ≡ 0 ( m o d   p ) 的 解 少 于 p 个 , 这 与 前 面 的 例 子 矛 盾 故 f ( x ) ≡ 0 ( m o d   p ) 的 解 有 n 个 。 假如x^p-x≡q(x)f(x)(mod\ p).(即:f(x)在模p之下是x^p-x的因式) \\若f(x)≡0(mod\ p)解的个数小于n,由于q(x)≡0(mod\ p)的解不能多于p-n个, \\故q(x)f(x)≡0(mod\ p)的解少于p个,这与前面的例子矛盾 \\故f(x)≡0(mod\ p)的解有n个。 xpxq(x)f(x)(mod p).f(x)pxpxf(x)0(mod p)nq(x)0(mod p)pnq(x)f(x)0(mod p)pf(x)0(mod p)n

前面的例子指:
x p − 1 ≡ 1 ( m o d   p ) 有 p − 1 个 ( 不 相 同 的 ) 解 , 其 中 p 为 素 数 。 从 而 x p − x ≡ 0 有 p 个 ( 不 相 同 的 ) 解 x^{p-1}≡1(mod\ p)有p-1个(不相同的)解,其中p为素数。 \\从而x^p-x≡0有p个(不相同的)解 xp11(mod p)p1pxpx0p

必要性证明:

若 n ( < p ) 次 同 余 方 程 f ( x ) ≡ 0 ( m o d   p ) 有 n 个 不 相 同 解 , 设 为 x 1 , . . . , x n , 则 f ( x ) 可 以 写 为 : f ( x ) = c ( x − x 1 ) ( x − x 2 ) . . . ( x − x n ) ( m o d   p ) 由 于 前 面 的 例 子 : x p − 1 − 1 ≡ ( x − 1 ) ( x − 2 ) . . . ( x − ( p − 1 ) )   ( m o d   p ) 得 到 x p − x ≡ ( x − 0 ) ( x − 1 ) ( x − 2 ) . . . ( x − ( p − 1 ) )   ( m o d   p ) 显 然 , f ( x ) 在 模 p 之 下 是 x p − x 的 因 式 。 若n(<p)次同余方程f(x)≡0(mod\ p)有n个不相同解,设为x_1,...,x_n, \\ 则f(x)可以写为: \\f(x)=c(x-x_1)(x-x_2)...(x-x_n)(mod\ p) \\由于前面的例子:x^{p-1}-1≡(x-1)(x-2)...(x-(p-1))\ (mod\ p) \\得到x^{p}-x≡(x-0)(x-1)(x-2)...(x-(p-1))\ (mod\ p) \\显然,f(x)在模p之下是x^{p}-x的因式。 n(<p)f(x)0(mod p)nx1,...,xn,f(x)f(x)=c(xx1)(xx2)...(xxn)(mod p)xp11(x1)(x2)...(x(p1)) (mod p)xpx(x0)(x1)(x2)...(x(p1)) (mod p)f(x)pxpx

2. 模pq的e次剩余

m = p q m=pq m=pq是两个不同素数的乘积时,是否仍满足 a m − 1 ≡ 1 ( m o d   m ) a^{m-1}≡1(mod\ m ) am11(mod m)呢?

示例

一个数的幂次模15的结果会是什么样的?如果我们做一个平方以及立方模15的表,结果看起来并不十分有趣,但是对于四次方模15,有许多结果为1的情况:
a 4 ≡ 1 ( m o d   15 )   a = 1 , 2 , 4 , 7 , 8 , 11 , 13 , 14 ; a 4 ≠ 1 ( m o d   15 )   a = 3 , 5 , 6 , 9 , 10 , 12. a^4≡1(mod\ 15)\ a=1,2,4,7,8,11,13,14; \\a^4≠1(mod\ 15)\ a=3,5,6,9,10,12. a41(mod 15) a=1,2,4,7,8,11,13,14;a4=1(mod 15) a=3,5,6,9,10,12.
这表明,当a与模数m互素时可以找到一些类似于费马小定理的结果,但是这些结果对应的指数却不一定是m-1.

对于m = 15,我们发现结果为1,对应指数是4。为什么是4?

为了说明 a 4 ≡ 1 ( m o d   15 ) a^4≡1(mod\ 15) a41(mod 15),只需检验以下两个同余式的正确性:
a 4 ≡ 1 ( m o d   3 )       a 4 ≡ 1 ( m o d   5 ) a^4≡1(mod\ 3)\ \ \ \ \ a^4≡1(mod\ 5) a41(mod 3)     a41(mod 5)
两个同余式的模数都是素数,可通过费马小定理检验其正确性,因此有:
a 4 ≡ ( a 2 ) 2 ≡ ( a 3 − 1 ) 2 ≡ 1 2 ≡ 1 ( m o d   3 ) a 4 ≡ a 5 − 1 ≡ 1 ( m o d   5 ) a^4≡{(a^2)}^2≡{(a^{3-1})}^2≡1^2≡1(mod\ 3) \\a^4≡a^{5-1}≡1(mod\ 5) a4(a2)2(a31)2121(mod 3)a4a511(mod 5)
若考虑这两个同余式,可以看出指数4的关键性质是它是p=3和p=5对应的p-1的公倍数。注意到14就不满足这一性质,也就不是有效的指数。

基于这一观察,我们准备介绍RSA公钥密码的基本公式。

模pq的欧拉公式

定理

设 p 和 q 是 不 同 的 素 数 , 设 g = g c d ( p − 1 , q − 1 ) . 对 于 所 有 满 足 g c d ( a , p q ) = 1 的 a , 有 a ( p − 1 ) ( q − 1 ) g ≡ 1 ( m o d   p q ) 特 别 地 , 若 p 和 q 都 是 奇 素 数 , g c d ( p − 1 , q − 1 ) = 1 , 则 a ( p − 1 ) ( q − 1 ) 2 ≡ 1 ( m o d   p q ) 设p和q是不同的素数,设g=gcd(p-1,q-1). \\对于所有满足gcd(a,pq)=1的a,有a^{\frac{(p-1)(q-1)}{g}}≡1(mod\ pq) \\特别地,若p和q都是奇素数,gcd(p-1 , q-1)=1,则a^{\frac{(p-1)(q-1)}{2}}≡1(mod\ pq) pqg=gcd(p1,q1).gcd(a,pq)=1aag(p1)(q1)1(mod pq)pqgcd(p1,q1)=1,a2(p1)(q1)1(mod pq)

  • ( p − 1 ) ( q − 1 ) g \frac{(p-1)(q-1)}{g} g(p1)(q1):就是 ( p − 1 ) ( q − 1 ) (p-1)(q-1) (p1)(q1)的最小公倍数
证明

由 假 设 可 知 p 不 整 除 a 且 g 整 除 q − 1 , 因 此 我 们 可 以 计 算 : a ( p − 1 ) ( q − 1 ) g = ( a p − 1 ) ( q − 1 ) / g ( 因 为 q − 1 g 是 整 数 ) ≡ 1 ( q − 1 ) / g ( m o d   p ) ( 因 为 a p − 1 ≡ 1 ( m o d   p ) ≡ 1 ( m o d   p ) ( 因 为 1 的 任 意 幂 次 都 是 1 ) 这 证 明 了 a ( p − 1 ) ( q − 1 ) g − 1 可 以 被 p 和 q 整 除 , 因 此 它 可 以 被 p q 整 除 , 从 而 完 成 了 定 理 的 证 明 由假设可知p不整除a且g整除q-1,因此我们可以计算: \\a^{\frac{(p-1)(q-1)}{g}}={(a^{p-1})}^{(q-1)/g}(因为\frac{q-1}{g}是整数) \\≡1^{(q-1)/g}(mod\ p) (因为a^{p-1}≡1(mod\ p) \\≡1(mod\ p)(因为1的任意幂次都是1) \\这证明了a^{\frac{(p-1)(q-1)}{g}}-1可以被p和q整除,因此它可以被pq整除,从而完成了定理的证明 pagq1ag(p1)(q1)=(ap1)(q1)/ggq11(q1)/g(mod p)ap11(mod p1(mod p)11ag(p1)(q1)1pqpq

高次同余方程的求解困难性

RSA公钥密码体系:依赖于求解以下形式同余方程的困难性:
x e ≡ c ( m o d   N ) x^e≡c(mod\ N) xec(mod N)
其中e,c,N已知,x未知。换言之,RSA的安全性依赖于求解模N的e次剩余的困难性假设。

这是合理的假设吗?如下一个命题所述,如果模数N是素数,那么就可相对容易地计算出模N的e次剩余。

素数模高次同余方程的求解

命题

设 p 是 素 数 , e ≥ 1 是 整 数 , 满 足 g c d ( e , p − 1 ) = 1. 则 e 模 p − 1 一 定 有 唯 一 逆 元 , 也 就 是 : d e ≡ 1 ( m o d   p − 1 ) 那 么 同 余 方 程 x e ≡ c ( m o d   p ) , 就 有 唯 一 解 : x ≡ c d ( m o d   p ) 设p是素数,e\ge 1是整数,满足gcd(e,p-1)=1.则e模p-1一定有唯一逆元, \\也就是:de≡1(mod\ p-1) \\那么同余方程x^e≡c(mod\ p),就有唯一解:x≡c^d(mod\ p) pe1gcd(e,p1)=1.ep1de1(mod p1)xec(mod p)xcd(mod p)

证明:

如果 c ≡ 0 ( m o d   p ) c≡0(mod\ p) c0(mod p),则 x ≡ 0 ( m o d   p ) x≡0(mod\ p) x0(mod p)是其唯一解,该情况证毕。

所以我们下面假定 c ≠ 0 ( m o d   p ) c≠0(mod\ p) c=0(mod p)。该情况的证明需要用到费马小定理。首先同余方程 d e ≡ 1 ( m o d   p − 1 ) de≡1(mod\ p-1) de1(mod p1) ,意味着存在一个整数k,使得
d e = 1 + k ( p − 1 ) de=1+k(p-1) de=1+k(p1)
现在我们检验 c d c^d cd x e ≡ c ( m o d   p ) x^e≡c(mod\ p) xec(mod p)的解:
( c d ) e ≡ c d e ( m o d   p ) ≡ c 1 + k ( p − 1 ) ( m o d   p ) ≡ c ⋅ ( c p − 1 ) k ( m o d   p ) ≡ c ⋅ 1 k ( m o d   p ) ≡ c ( m o d   p ) {(c^d)}^e≡c^{de}(mod\ p) \\≡c^{1+k(p-1)}(mod\ p) \\≡c·{(c^{p-1})}^k(mod\ p) \\≡c·1^k(mod\ p) \\≡c(mod\ p) (cd)ecde(mod p)c1+k(p1)(mod p)c(cp1)k(mod p)c1k(mod p)c(mod p)
这就证明了 x = c d x=c^d x=cd x e ≡ c ( m o d   p ) x^e≡c(mod\ p) xec(mod p)的解。

为了证明解的唯一性,假设有 x 1 x_1 x1 x 2 x_2 x2都是同余方程 x e ≡ c ( m o d   p ) x^e≡c(mod \ p) xec(mod p)的解。我们刚刚证明了 z d e ≡ z ( m o d   p ) z^{de}≡z(mod\ p) zdez(mod p)对于任何非零值z都成立,由此可发现
x 1 ≡ x 1 d e ≡ ( x 1 e ) d ≡ c d ≡ ( x 2 e ) d ≡ x 2 d e ≡ x 2 ( m o d   p ) x_1≡x_1^{de}≡{(x_1^e)}^d≡c^d≡{(x_2^e)}^d≡x_2^{de}≡x_2(mod\ p) x1x1de(x1e)dcd(x2e)dx2dex2(mod p)
因此 x 1 x_1 x1 x 2 x_2 x2模p同余,所以 x e ≡ c ( m o d   p ) x^e≡c(mod\ p) xec(mod p)至多有一个解。

尝试求解同余方程:
x 1583 ≡ 4714 ( m o d   7919 ) x^{1583}≡4714(mod\ 7919) x15834714(mod 7919)
其中模数p = 7919是素数。

首 先 解 同 余 方 程 1583 d ≡ 1 ( m o d   7918 ) 由 扩 展 欧 几 里 得 算 法 求 得 d ≡ 5277 ( m o d   7918 ) . 由 命 题 可 知 : x ≡ 471 4 5277 ≡ 6059 ( m o d   7919 ) 是 同 余 方 程 x 1583 ≡ 4714 ( m o d   7919 ) 的 解 。 首先解同余方程1583d≡1(mod\ 7918) \\由扩展欧几里得算法求得d≡5277(mod\ 7918). \\由命题可知: \\x≡4714^{5277}≡6059(mod\ 7919) \\是同余方程x^{1583}≡4714(mod\ 7919)的解。 1583d1(mod 7918)d5277(mod 7918).:x471452776059(mod 7919)x15834714(mod 7919)

素数模高次同余方程的注记
  • 命题包括 g c d ( e , p − 1 ) gcd(e,p-1) gcd(e,p1)这一假设。如果去掉这一假设,那么同余方程 x e ≡ c ( m o d   p ) x^e≡c(mod\ p) xec(mod p)对于c的某些值(并非所有值)将有解。此外如果它确实有解,那么解将不止一个。

命题说明如果模数p是一个素数,那么求解e次方根是很容易的。模数N是合数的情况看起来与之相似,但其实差别很大。如果我们知道如何分解N,那么计算e次方根也是容易的。

模pq时高次同余方程的求解

命题

假 设 p 和 q 是 不 同 的 素 数 , 并 假 设 e ≥ 1 , 满 足 : g c d ( e , ( p − 1 ) ( q − 1 ) ) = 1. 则 e 模 ( p − 1 ) ( q − 1 ) 存 在 逆 元 , 也 就 是 d e ≡ 1 ( m o d ( p − 1 ) ( q − 1 ) ) . 则 同 余 方 程 x e ≡ c ( m o d   p q ) 有 唯 一 解 x ≡ c d ( m o d   p q ) 假设p和q是不同的素数,并假设e\ge 1,满足: \\gcd(e,(p-1)(q-1))=1. \\则e模(p-1)(q-1)存在逆元,也就是 \\de ≡1(mod(p-1)(q-1)). \\则同余方程 \\x^e≡c(mod\ pq) \\有唯一解x≡c^d(mod\ pq) pqe1,gcd(e,(p1)(q1))=1.e(p1)(q1)de1(mod(p1)(q1)).xec(mod pq)xcd(mod pq)

证明

首 先 我 们 假 设 g c d ( c , p q ) = 1 同 余 方 程 d e ≡ 1 ( m o d ( p − 1 ) ( q − 1 ) ) 说 明 存 在 一 整 数 k , 使 得 d e = 1 + k ( p − 1 ) ( q − 1 ) 下 面 我 们 验 证 c d 是 x e ≡ c ( m o d   p q ) 的 一 个 解 : ( c d ) e ≡ c d e ( m o d   p q ) ≡ c 1 + k ( p − 1 ) ( q − 1 ) ( m o d   p q ) ≡ c ⋅ ( c ( p − 1 ) ( q − 1 ) ) k ( m o d   p q ) ≡ c ⋅ 1 k ( m o d   p q ) ≡ c ( m o d   p q ) 首先我们假设gcd(c,pq )=1 \\同余方程de≡1(mod(p-1)(q-1))说明存在一整数k,使得 \\de=1+k(p-1)(q-1) \\下面我们验证c^d是x^e≡c(mod\ pq)的一个解: \\{(c^d)}^e≡c^{de}(mod\ pq) \\≡c^{1+k(p-1)(q-1)}(mod\ pq) \\≡c·{(c^{(p-1)(q-1)})}^k(mod\ pq) \\≡c·1^k(mod\ pq) \\≡c(mod\ pq) gcd(c,pq)=1de1(mod(p1)(q1))k使de=1+k(p1)(q1)cdxec(mod pq)(cd)ecde(mod pq)c1+k(p1)(q1)(mod pq)c(c(p1)(q1))k(mod pq)c1k(mod pq)c(mod pq)

若 g c d ( c , p q ) ≠ 1 , 则 g c d ( c , p q ) = p 或 g c d ( c , p q ) = q 不 妨 设 g c d ( c , p q ) = p , 则 c = x p , 1 ≤ x ≤ q . 由 欧 拉 定 理 知 : c φ ( q ) ≡ 1 ( m o d   q ) 即 有 : c q − 1 ≡ 1 ( m o d   q ) 进 而 : ( c q − 1 ) k ( p − 1 ) ≡ 1 ( m o d   q ) 即 : c k ( p − 1 ) ( q − 1 ) ≡ 1 ( m o d   q ) 存 在 整 数 b 使 得 c k ( p − 1 ) ( q − 1 ) = 1 + b q 两 边 同 时 乘 以 c 得 c 1 + k ( p − 1 ) ( q − 1 ) = c + b c q = c + b x p q ≡ c ( m o d   p q ) 即 ( c d ) e = c 1 + k ( p − 1 ) ( q − 1 ) ≡ c ( m o d   p q ) 从 而 x ≡ c d ( m o d   p q ) 是 同 余 方 程 x e ≡ c ( m o d   p q ) 的 解 若gcd(c , pq)≠1,则gcd(c, pq)=p或gcd(c,pq)=q \\不妨设gcd(c,pq)=p,则c = xp,1\le x \le q. \\由欧拉定理知:c^{\varphi(q)}≡1(mod\ q) \\即有:c^{q-1}≡1(mod\ q) \\进而:{(c^{q-1})}^{k(p-1)}≡1(mod\ q) \\即:c^{k(p-1)(q-1)}≡1(mod\ q) \\存在整数b使得c^{k(p-1)(q-1)}=1+bq \\两边同时乘以c得c^{1+k(p-1)(q-1)}=c+bcq=c+bxpq≡c(mod \ pq) \\即{(c^d)}^e=c^{1+k(p-1)(q-1)}≡c(mod \ pq) \\从而x≡c^d(mod\ pq)是同余方程x^e≡c(mod\ pq)的解 gcd(c,pq)=1gcd(c,pq)=pgcd(c,pq)=qgcd(c,pq)=p,c=xp,1xq.cφ(q)1(mod q)cq11(mod q)(cq1)k(p1)1(mod q)ck(p1)(q1)1(mod q)b使ck(p1)(q1)=1+bqcc1+k(p1)(q1)=c+bcq=c+bxpqc(mod pq)(cd)e=c1+k(p1)(q1)c(mod pq)xcd(mod pq)xec(mod pq)

还要证明解的唯一性:
假 设 x = u 是 x e ≡ c ( m o d   p q ) 的 一 个 解 若 g c d ( c , p q ) = 1 , 则 ( u , p q ) = 1 ( ? 为 什 么 呢 ) 有 u ≡ u d e − k ( p − 1 ) ( q − 1 ) ( m o d   p q ) ≡ ( u e ) d ⋅ ( u ( p − 1 ) ( q − 1 ) ) − k ( m o d   p q ) ≡ ( u e ) d ⋅ 1 − k ( m o d   p q ) ≡ c d ( m o d   p q ) 因 此 x e ≡ c ( m o d   p q ) 的 每 个 解 都 等 于 c d ( m o d   p q ) 假设x=u是x^e≡c(mod\ pq)的一个解 \\若gcd(c,pq)=1,则(u,pq)=1(?为什么呢)有 \\u≡u^{de-k(p-1)(q-1)}(mod\ pq) \\≡{(u^e)}^d·{(u^{(p-1)(q-1)})}^{-k}(mod\ pq) \\≡{(u^e)}^d·1^{-k}(mod\ pq) \\≡{c}^d(mod\ pq) \\因此x^e≡c(mod\ pq)的每个解都等于c^d(mod\ pq) x=uxec(mod pq)gcd(c,pq)=1,(u,pq)=1uudek(p1)(q1)(mod pq)(ue)d(u(p1)(q1))k(mod pq)(ue)d1k(mod pq)cd(mod pq)xec(mod pq)cd(mod pq)

若 g c d ( c , p q ) ≠ 1 , 则 g c d ( c , p q ) = p 或 g c d ( c , p q ) = q 不 妨 设 g c d ( c , p q ) = p , 则 c = x p , 1 ≤ x ≤ q 由 u e ≡ c ( m o d   p q ) 得 u e ≡ c ( m o d   p ) , 有 p ∣ u , 从 而 有 u ≡ c d ( m o d   p ) 又 因 为 u ≡ u d e − k ( p − 1 ) ( q − 1 ) ( m o d   q ) ≡ ( u e ) d ⋅ ( u ( p − 1 ) ( q − 1 ) ) − k ( m o d   q ) ≡ ( u e ) d ⋅ 1 − k ( m o d   q ) ≡ c d ( m o d   q ) 即 有 u ≡ c d ( m o d   q ) , 而 ( p , q ) = 1 故 有 u ≡ c d ( m o d   p q ) , 解 的 唯 一 性 得 证 。 若gcd(c,pq)≠1,则gcd(c,pq)=p或gcd(c,pq)=q \\不妨设gcd(c,pq)=p,则c = xp,1\le x\le q \\由u^e≡c(mod\ pq)得u^e≡c(mod\ p),有p|u,从而有u≡c^d(mod\ p) \\又因为 \\u≡u^{de-k(p-1)(q-1)}(mod\ q) \\≡{(u^e)}^d·{(u^{(p-1)(q-1)})}^{-k}(mod\ q) \\≡{(u^e)}^d·1^{-k}(mod\ q) \\≡{c}^d(mod\ q) \\即有u≡c^d(mod\ q),而(p,q)=1 \\故有u≡c^d(mod\ pq),解的唯一性得证。 gcd(c,pq)=1gcd(c,pq)=pgcd(c,pq)=qgcd(c,pq)=pc=xp,1xquec(mod pq)uec(mod p),pu,ucd(mod p)uudek(p1)(q1)(mod q)(ue)d(u(p1)(q1))k(mod q)(ue)d1k(mod q)cd(mod q)ucd(mod q),(p,q)=1ucd(mod pq)

模pq时高次同余方程的求解的备注
  • 命题给出了求解 x e ≡ c ( m o d   p q ) x^e≡c(mod\ pq) xec(mod pq)的算法,首先解 d e ≡ 1 ( m o d ( p − 1 ) ( q − 1 ) ) de≡1(mod(p-1)(q-1)) de1(mod(p1)(q1)),然后计算 c d ( m o d   p q ) c^d(mod\ pq) cd(mod pq)。我们通常可通过使用较小的d值来加快计算速度。设 g = ( g c d ( p − 1 ) ( q − 1 ) ) g=(gcd(p-1)(q-1)) g=(gcd(p1)(q1)),并假设我们解出了以下同余方程中的 d d d
    d e ≡ 1 ( m o d ( p − 1 ) ( q − 1 ) g ) de≡1(mod\frac{(p-1)(q-1)}{g}) de1(modg(p1)(q1))

由欧拉公式可知 a ( p − 1 ) ( q − 1 ) g ≡ 1 ( m o d   p q ) ( 这 又 是 为 什 么 呢 ? ? ? ) a^{\frac{(p-1)(q-1)}{g}}≡1(mod\ pq)(这又是为什么呢???) ag(p1)(q1)1(mod pq)。因此,我们写出 d e = 1 + k ( p − 1 ) ( q − 1 ) g de=1+k\frac{(p-1)(q-1)}{g} de=1+kg(p1)(q1),则
( c d ) e ≡ c d e ≡ c 1 + k ( p − 1 ) ( q − 1 ) / g ≡ c ⋅ ( c ( p − 1 ) ( q − 1 ) / g ) k ≡ c ( m o d   p q ) {(c^d)}^e≡c^{de}≡c^{1+k(p-1)(q-1)/g}≡c·{(c^{(p-1)(q-1)/g})}^k≡c(mod\ pq) (cd)ecdec1+k(p1)(q1)/gc(c(p1)(q1)/g)kc(mod pq)
因此使用这个较小的d值,仍能得到 c d ( m o d   p q ) c^d(mod\ pq) cd(mod pq) x e ≡ c ( m o d   p q ) x^e≡c(mod\ pq) xec(mod pq)的解。

模pq时高次同余方程的举例

求解同余方程:
x 17839 ≡ 43927 ( m o d   64349 ) x^{17839}≡43927(mod\ 64349) x1783943927(mod 64349)
其中模数N=64349=229.281是两素数p = 229和q = 281的乘积。

解:

第一步解同余方程
17389 d ≡ 1 ( m o d   63840 ) 17389d≡1(mod\ 63840) 17389d1(mod 63840)
其中63840=(p-1)(q-1)=228·280.

解为 d ≡ 53509 ( m o d   63840 ) d≡53509(mod\ 63840) d53509(mod 63840),然后由命题3.5得
x ≡ 4392 7 53509 ≡ 14458 ( m o d   64349 ) x≡43927^{53509}≡14458(mod\ 64349) x439275350914458(mod 64349)
为方程 x 17389 ≡ 43927 ( m o d   64349 ) x^{17389}≡43927(mod\ 64349) x1738943927(mod 64349)的解

  • 使用备注中描述的技巧,可以节省一点工作量。于是有:
    g = g c d ( p − 1 , q − 1 ) = g c d ( 228 , 280 ) = 4 g = gcd(p-1,q-1)=gcd(228,280)=4 g=gcd(p1,q1)=gcd(228,280)=4
    所以 ( p − 1 ) ( q − 1 ) g = ( 228 ∗ 280 ) 4 = 15960 \frac{(p-1)(q-1)}{g}=\frac{(228*280)}{4}=15960 g(p1)(q1)=4(228280)=15960,然后解下面的同余方程得到相应的d:
    17389 d ≡ 1 ( m o d   15960 ) 17389d≡1(mod\ 15960) 17389d1(mod 15960)
    解得 d ≡ 5629 ( m o d   15960 ) d≡5629(mod\ 15960) d5629(mod 15960),则
    x ≡ 4392 7 5629 ≡ 14458 ( m o d   64349 ) x≡43927^{5629}≡14458(mod\ 64349) x43927562914458(mod 64349)
    对比之前的方法: x ≡ 4392 7 53509 ≡ 14458 ( m o d   64349 ) x≡43927^{53509}≡14458(mod\ 64349) x439275350914458(mod 64349)

国庆后的第一节信安数基,听的云里雾里,看的一知半解……复健路漫漫啊!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值