离散数学-④-数论和密码学

数论和密码学

文章目录

  • 数论和密码学
    • 整除数和模算法
    • 整数表示和算法
    • 素数和最大公约数
    • 求解同余方程
    • 同余应用
    • 密码学

整除数和模算法

  • a可以整除b表示为:

a ∣ b a|b ab

  • 令a,b,c为整数,其中a≠0,则
    • 如果a|b和a|c,则a|(b+c)
    • 如果a|b,则a|bc
    • 如果a|b,b|c,则a|c
  • 除法算法:令a为整数,d为正整数,则存在唯一的整数q和r,满足0≤r

a = d q + r a=dq+r a=dq+r

  • 同余式:令a和b为整数而m为正整数,则当m整除a-b时称a模m同余b,记为

a ≡ b ( m o d   m ) a\equiv b(mod\ m) ab(mod m)

  • a ≡ b ( m o d   m ) a\equiv b(mod\ m) ab(mod m)当且仅当

a   m o d   m = b   m o d   m a\ mod\ m=b\ mod\ m a mod m=b mod m

  • a和b是模m同余的当且仅当存在整数k使得

a = b + k m a=b+km a=b+km

  • 如果 a ≡ b ( m o d   m ) a\equiv b(mod\ m) ab(mod m) c ≡ d ( m o d   m ) c\equiv d(mod\ m) cd(mod m),则

a + c ≡ ( b + d ) ( m o d   m ) 并 且 a c ≡ b d ( m o d   m ) a+c\equiv (b+d)(mod\ m)并且ac\equiv bd(mod\ m) a+c(b+d)(mod m)acbd(mod m)

  • 令m是正整数,a和b是整数,则

( a + b ) m o d   m = ( ( a   m o d   m ) + ( b   m o d   m ) ) m o d   m (a+b)mod\ m=((a\ mod\ m)+(b\ mod\ m))mod\ m (a+b)mod m=((a mod m)+(b mod m))mod m

a b   m o d   m = ( ( a   m o d   m ) ( b   m o d   m ) ) m o d   m ab\ mod\ m=((a\ mod\ m)(b\ mod\ m))mod\ m ab mod m=((a mod m)(b mod m))mod m

  • 模m算术
    • a + m b = ( a + b ) m o d   m a+_mb=(a+b)mod\ m a+mb=(a+b)mod m
    • a ⋅ m b = ( a ⋅ b ) m o d   m a\cdot _mb=(a\cdot b)mod\ m amb=(ab)mod m

整数表示和算法

  • 正整数n可表示为:

n = a k b k + a k − 1 b k − 1 + . . . + a 1 b + a 0 n=a_kb^{k}+a_{k-1}b^{k-1}+...+a_1b+a_0 n=akbk+ak1bk1+...+a1b+a0

  • 加法算法:进位
  • 乘法算法:移位

素数和最大公约数

  • 素数:恰有两个不同的正整数因子的整数称为素数(两个因子:1和它本身)
  • 互素整数:满足gcd(a,b)=1的整数a和b
  • 合数:大于1但又不是素数的正整数
  • 算术基本定理:每个大于1的整数都可以唯一地写为多个素数的乘积,其中素数因子以非递减序排列
  • 如果n是一个合数,那么n必有一个素因子小于或等于 n \sqrt{n} n
  • 素数定理:当x无限增长时,不超过x的素数个数与 x / l n   x x/ln\ x x/ln x之比趋近于1
  • 埃拉托斯特尼筛法:用来寻找不超过一个特定整数的所有素数
  • 最大公约数:能整除两个整数的最大整数称为这两个整数的最大公约数,记为

g c d ( a , b ) gcd(a,b) gcd(ab)

  • 正整数a和b的最小公倍数是能被a和b整除的最小整数,记为

l c m ( a , b ) lcm(a,b) lcm(ab)

  • 令a和b为正整数,则

a b = g c d ( a , b ) ⋅ l c m ( a , b ) ab=gcd(a,b)\cdot lcm(a,b) ab=gcd(ab)lcm(ab)

  • 欧几里得算法:一个高效的寻找最大公约数的方法
  • 令a=bq+r,其中a,b,q和r均为整数,则

g c d ( a , b ) = g c d ( b , r ) gcd(a,b)=gcd(b,r) gcd(ab)=gcd(br)

  • 贝祖定理:如果a和b为正整数,则存在整数s和t使得

g c d ( a , b ) = s a + t b gcd(a,b)=sa+tb gcd(ab)=sa+tb

  • 如果a,b和c为正整数,使得gcd(a,b)=1,且a|bc,则a|c

求解同余方程

  • 线性同余方程:

a x ≡ b ( m o d   m ) ax\equiv b(mod\ m) axb(mod m)

  • 逆:使得 a ‾ a ≡ 1 ( m o d   m ) \overline{a}a\equiv 1(mod\ m) aa1(mod m)成立的整数 a ‾ \overline{a} a
  • 如果a和m为互素的整数且m>1,则a模m的逆存在,并且是唯一的
  • 中国剩余定理:令 m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn为大于1的两两互素的正整数,而 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an是任意整数,则同余方程组

x ≡ a 1 ( m o d   m 1 ) x ≡ a 2 ( m o d   m 2 ) ⋮ x ≡ a n ( m o d   m n ) x\equiv a_1(mod\ m_1)\\ x\equiv a_2(mod\ m_2)\\ \vdots\\ x\equiv a_n(mod\ m_n) xa1(mod m1)xa2(mod m2)xan(mod mn)

​ 有唯一的模 m = m 1 m 2 ⋯ m n m=m_1m_2\cdots m_n m=m1m2mn的解,即存在一个满足 0 ≤ x ≤ m 0≤x≤m 0xm的解x,而所有其他的解均与比解模m同余

  • 费马小定理:如果p为素数,a是一个不能被p整除的整数,则

a p − 1 ≡ 1 ( m o d   p ) a p ≡ a ( m o d   p ) a^{p-1}\equiv 1(mod\ p)\\ a^p\equiv a(mod\ p) ap11(mod p)apa(mod p)

  • 伪素数:令b为正整数,如果n是一个正合数且 b n − 1 ≡ 1 ( m o d   n ) b^{n-1}\equiv1(mod\ n) bn11(mod n),则n称为以b为基数的伪素数
  • 卡米切尔数:一个正合数n对于所有满足 g c d ( b , n ) = 1 gcd(b,n)=1 gcd(b,n)=1的正整数b都有同余式 b n − 1 ≡ 1 ( m o d   n ) b^{n-1}\equiv1(mod\ n) bn11(mod n)成立
  • 原根: z p z_p zp中的每个元素都是r的幂次,则r是原根
  • 离散对数:假设p是一个素数,r是一个模p的原根,而a是1和p-1之间的一个整数,如果 r e m o d   p = a r^emod\ p=a remod p=a且0≤e≤p-1,则e是以r为底a模p的离散对数,表示为

e = l o g r a e=log_ra e=logra

同余应用

  • 散列函数:快速定位
  • 伪随机数:利用线性同余法产生伪随机数
  • 校验码:用于检查数字串中的错误

密码学

  • 加密:对信息进行保密处理的过程
  • 解密:从加密信息中还原原始信息的过程
  • 字符密码:逐个字符加密的密码
  • 分组密码:按等长字符分组加密的密码
  • 密码系统:是一个五元组 ( P , C , K , E , D ) (P,C,K,E,D) (P,C,K,E,D),P代表明文串的集合,C代表密文串的集合,K代表所有可能的密钥的集合,E代表加密函数的集合,D代表解密函数的集合,用 E K E_K EK表示E中相对于密钥K的加密函数, D K D_K DK是D中用来解密有 E k E_k Ek加密的密文的解密函数,即

P = D K ( E K ( P ) ) P=D_K(E_K(P)) P=DK(EK(P))

  • RSA密码系统:每个人都有一个加密密钥(m,e),这里n=pq是一个由两个大素数(比如各有200位数字)乘积构成的模数,e是与(p-1)(q-1)互素的指数,利用大素数的乘积不可能在合理的时间内被因子分解的特点,使得密码在没有单独的解密密钥时就不可能迅速解密
  • 私钥密码系统:加密密钥和解密密钥均需保密的加密法
    • 移位密码:将明文字母p加密成(p+k)mod m的密码,k为整数
    • 仿射密码:将明文字母p加密成(ap+b)mod m的密码,a和b是整数且满足gcd(a,26)=1
  • 公钥密码系统:加密密钥公开,解密密钥保密的加密法
    • RSA密码系统
  • 密钥交换协议:用来为双方生成共享密钥的协议
    密钥和解密密钥均需保密的加密法
    • 移位密码:将明文字母p加密成(p+k)mod m的密码,k为整数
    • 仿射密码:将明文字母p加密成(ap+b)mod m的密码,a和b是整数且满足gcd(a,26)=1
  • 公钥密码系统:加密密钥公开,解密密钥保密的加密法
    • RSA密码系统
  • 密钥交换协议:用来为双方生成共享密钥的协议
  • 数字签名:接收者可以用来判断消息声称的发送者确实发送了该消息的一种方法

你可能感兴趣的:(计算机基础)