公钥密码学的数学基础

第1章 整除

1.1 整除的概念

我们用集合 Z 表示全体整数组成的集合,N 表示自然数的全体。

定义1.1

设 a,b Z ,如果存在 q Z ,使得 b = aq ,那么,就说 b 可被 a 整除,记作 a b ,称 b 是 a 的倍数,a 是 b 的因子(也可称为约数、除数)。否则就说 b 不能被 a 整除,或 a 不整除 b,记作 a b 。

定理1.2

设 a,b,c Z ,则

(1)a b 且 b c a c ;

(2)a b 且 a c 对任何的 x,y Z 有 a bx + cy;

(3)若 m Z 且 m 0,则 a b ma mb

(4)a b 且 b a a = ± b;

(5)若 b 0,则 a b a b

定义1.3

设整数 p 0 , ± 1。如果 p 除了显然因子 ± 1 , ± p 外没有其他的因子,那么 p 就称为素元(常称为素数),若整数 a 0 , ± 1,且 a 除显数因子外还含有真因子,则称 a 为合数。

注:一般情况下,素数我们只取正的。

定理1.4

若 a 为合数,则 a 的最小真因子为素数。

定理1.5

素数有无穷多个。

定理1.6

将全体素数按从小到大的顺序排列,则第 n 个素数 pnπ(x) 分别有以下结论:

(1)pn 22n1 ,n = 1,2,· · · ;

(2)π(x) > log2 log2x , x 2。

定理1.7

设 a,b 是两个给定的整数且 a 0。那么一定存在唯一的一对整数 q 与 r ,满足

b = qa + r, 0 r < a ,

其中,r 被称为 b 被 a 除后的最小非负余数。此外 a b 的充要条件是 r = 0。

1.2 最大公因子与最小公倍数

最大公因子与最小公倍数是整除理论中两个最基本的概念。

定义1.11

a1 , a2 是两个整数。如果 d a1 且 d a2 , 那么就称 d 是 a1a2 的公因子。一般地,设 a1 , a2 ,. . . ,ak 是 k 个整数。如果 d a1 , d a2 ,. . . ,d ak ,那么就称 d 是 a1 , a2 ,. . . ,ak 的公因子。

定义1.12

a1 , a2 是两个不全为零的整数,d 是 a1a2 的一个公因子,若对任意的 d’ a1 , d' a2 都有 d' d 成立,则称 d 为 a1a2 的最大公因子,记作 d = (a1 , a2)或 d = gcd(a1 , a2)。一般地,设 a1 , a2 ,. . . ,ak 是 k 个不全为零的整数。d 是 a1 , a2 ,. . . ,ak 的一个公因子,若对任意的 a1 , a2 ,. . . ,ak 的公因子 d‘ ,有 d‘ d,则称 d 为 a1 , a2,. . . ,ak 的最大公因子,记作(a1 , a2 ,. . . ,ak)或 gcd(a1 , a2 ,. . . ,ak)。

定理1.13

(1)对任意整数 x , (a1 , a2) = (a1 , a2 + a1x);

(2)设 m > 0,则 m(b1 ,. . . ,bk)= (m b1,. . . ,m bk);

(3)设 a1 , a2 是两个不全为零的整数,则( a1(a1,a2)a2(a1,a2)) = 1;更一般的,有( a1(a1...ak) ,. . . ,ak(a1...ak))= 1。

定义1.18

a1a2 是两个整数,若( a1a2)= 1,则称 a1a2 是既约的(或者是互素的),若( a1 ,. . . ,ak)= 1,则称 a1 ,. . . ,ak 是既约的,也称 a1 ,. . . ,ak 是互素的。

定义1.19

a1 , a2 是两个均不等于零的整数,如果 a1 la2 l , 则称 la1a2 的公倍数。一般地,设 a1 ,. . . ,ak 是 k 个均不为零的整数。如果 a1 l ,. . . ,ak l ,则称 la1 ,. . . ,ak 的公倍数。

定义1.20

a1 , a2 是两个全不为零的整数,la1a2 的一个大于零的公倍数,若对 a1a2 的任意公倍数 l' ,有 l l' ,则称 la1a2 的最小公倍数,记作 [ a1 , a2 ] 。一般地,la1 ,. . . ,ak 的一个大于零的公倍数,对 a1 ,. . . ,ak 的任意公倍数 l' ,有 l l' ,称 la1 ,. . . ,ak 的最小公倍数,记作 [ a1 ,. . . ,ak ] 。

定理1.21

(1)若 a2 a1 ,则 [ a1 , a2 ] = a1 ;若 aj a1 ,2 j k,则 [ a1 , a2 ,. . . ,ak ] = a1

(2)对任意的 d a1 ,[ a1 , a2 ] = [ a1 , a2 , d ] 。

(3)设 m > 0,有 [ m a1 , m a2 ,. . . , m ak ] = m [ a1 , a2 ,. . . ,ak ]。

(4)( a1 , a2 , a3 ,. . . ,ak )= ( ( a1 , a2 ) , a3 ,. . . ,ak )。

(5)( a1 ,. . . ,ak+r ) = (( a1 ,. . . , ak ),( ak+1 ,. . . , ak+r ))。

定理1.22

设( m ,a )= 1,则有( m,ab )= ( m,b )。

定理1.23

设( m,a )= 1。若 m ab ,则 m b。

定理1.24

[ a1 , a2 ] ( a1a2 )= a1 a2

1.3 Euclid 算法

辗转相除法也叫 Euclid 算法,是数学领域最基本的算法之一,其思想方法在数学的许多分支都有重要的应用。利用 Euclid 算法可以求出有限个整数之间的最大公因子。Euclid 算法可以直接用于求解一次不定方程。Euclid 算法在密码学中也有多种应用,并可用于破解或分析某些密码算法的安全性。

定理1.27(Euclid 算法)

设 a,b 是给定的两个整数,b 0,且 b 不能整除 a,重复应用带余除法得到下面 k+2 个等式:

a = q0 b + r0 ,            0 < r0 < b ,

b = q1 r0 + r1 ,            0 < r1 < r0 ,

r0 = q2 r1 + r2 ,            0 < r2 < r1 ,

. . . . . .

Tk3 = qk1 rk2 + rk1 ,            0 < rk1 < rk2 ,

Tk2 = qk rk1 + rk ,            0 < rk < rk1 ,

Tk1 = qk+1 rk

定理1.28

在定理 1.27 的条件和符号下,我们有

(1)rk = ( a , b );

(2)存在整数 x0 , x1 使( a , b )= a x0 + b x1

推论1.29

a1 ,. . . ,ak 是不全为零的整数,一定存在一组整数 x1,0 ,. . . ,xk,0 ,使得

a1 ,. . . ,ak )= a1 x1,0 + . . . + ak xk,0

1.4 求解一次不定方程 --- Euclid 算法应用之一

辗转相除法的应用十分广泛,在此介绍一个辗转相除法在解一次不定方程的应用。所谓的一次不定方程的一般形式是

(1.1)                        a1 x1 + . . . + ak xk = c,

其中整数 k 2 , c , a1 ,. . . ,ak 是整数,且 a1 ,. . . ,ak 都不等于零,x1 ,. . . ,xk 是整数变数。

首先给出方程(1.1)有解的一个充要条件。

定理1.34

不定方程(1.1)游街的充要条件是( a1 ,. . . ,ak c 。当不定方程(1.1)有解时,它的解和不定方程

(1.2)                        a1d x1 + . . . + akd xk = cd

的解相同,这里 d = ( a1 ,. . . ,ak)。

定理1.35

设二元一次不定方程

(1.3)                        a1 x1 + a2 x2 = c

有解,若 x1,0 x2,0 是它的一组解。那么它的所有解是

{x1=x1,0+a2(a1,a2)t,x2=x2,0a1(a1,a2)t,

其中 t = 0,± 1,± 2,. . . 。

1.5 整数的素分解

从理论上,任一整数均可分解为素数的乘积的形式。而实际上求一个大整数的素分解是一个困难问题。到目前为止还不存在一个确定性的多项式时间算法来分解一个大整数。而求整数的素分解的困难下恰恰是一些公钥密码算法安全性的理论基础。下面来介绍有关整数素分解的定理。

引理1.37

设 p 是素数且 p a1 a2 。那么 p a1 或 p a2 至少有一个成立。一般地,若 p a1 . . . ak ,则 p a1 ,. . . ,p ak 至少有一个成立。

定理1.38(算术基本定理)

设 a > 1,那么,必有

(1.4)                        a = p1 p2 . . . ps

其中 pj (1 j s)是素数,且在不记次序的意义下,表示式(1.4)是唯一的。

推论1.39

设 a > 1,那么必有

(1.5)                        a = p1α1 . . . psαs ,        p1 < p2 < . . . < ps

式(1.5)称为是 a 的标准因素数分解式。

证明是显然的,只要将分解式(1.4)中相同的素数合并即可。

推论1.40

设 a = p1α1 . . . psαs ,且 pi (1 i s)是互不相同的素数,那么,d 是 a 的正因数的充要条件是

d = p1e1 . . . pses ,        0 ej αj ,        1 j s,

推论1.41

a = p1α1 . . . psαs

b = p1β1 . . . psβs ,        p1 < p2 < . . . < ps

这里允许某个 αjβj 为零,那么

(a , b)= p1δ1 . . . psδs ,        δj = min(αj , βj),        1 j s,

[ a , b ] = p1γ1 . . . psγs ,        γj = max(αj , βj),        1 j s,

以及

(a , b)[ a , b ] = ab。

推论1.43

设 a 是正整数,τ (a) 表示 a 的所有正整数的个数(通常称为除数函数) 。若 a 有标准素因数分解式(1.5),则

τ (a) = τ ( α1 + 1 ) . . . τ ( αs + 1 ) = τ ( p1α1 ) . . . τ ( p1α1 )。

推论1.44

设整数 a 2 。

(1)若 a 是合数,则必有不可约数 p a,p a12

(2)若 a 有表达式(1.4),则必有不可约数p a,p a1s

定义1.46

设 x 是实数,[x] 表示不超过 x 的最大整数,称为 x 的整数部分,即 [x] 是一个整数且满足 [x] x < [x] + 1。记 {x} = x - [x],称为 x 的小数部分。显然 0 {x} < 1。x 是整数的充要条件是 {x} = 0 。

定理1.47

(1)若 x y,则 [ x ] [ y ]

(2)若 x = m + v , m 是整数,0 v < 1,则 m = [ x ] ,v = { x }。特别地,当 0 x < 1 时,[ x ] = 0,{ x } = x 。

(3)对任意整数 m 有:[ x + m ] = [ x ] + m,{ x + m } = { x }。{ x }是周期为 1 的周期函数。

(4)

(5)

(6)

(7)

(8)

posted @   漫天残星  阅读(554)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示