现代密码学8.1--密码学所涉及的数论和群论
博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。
博主暂时跳过私钥加密部分,直接进入公钥加密,从第8章开始。
8.1节介绍了密码学所涉及的数学知识:数论和群论。其中,数论在初等数论,群论在近世代数中有较为完整深入的介绍。所以此节只简单概述数论和群论的定理,少数进行证明。
数论
素数和整除
- a ∈ Z , b ∈ Z + a\in Z,b\in Z^+ a∈Z,b∈Z+,存在唯一的整数 q , r q,r q,r使得 a = q b + r , 0 ≤ r ≤ b a=qb+r,0\le r\le b a=qb+r,0≤r≤b。
- ∃ X , Y ∈ Z , s . t . X a + Y b = g c d ( a , b ) \exists X,Y\in Z,s.t. Xa+Yb=gcd(a,b) ∃X,Y∈Z,s.t.Xa+Yb=gcd(a,b), g c d ( a , b ) gcd(a,b) gcd(a,b)是可以写成 X a + Y b Xa+Yb Xa+Yb的最小正整数。
- 如果 c ∣ a b c\mid ab c∣ab,且 g c d ( a , c ) = 1 gcd(a,c)=1 gcd(a,c)=1,那么 c ∣ b c\mid b c∣b。可推出,如果 p p p是素数,而且 p ∣ a b p\mid ab p∣ab,那么 p ∣ a p\mid a p∣a或 p ∣ b p\mid b p∣b。(因为 p ∤ a → g c d ( a , p ) = 1 p\nmid a\rightarrow gcd(a,p)=1 p∤a→gcd(a,p)=1)
- 如果 a ∣ N , b ∣ N , g c d ( a , b ) = 1 a\mid N,b\mid N,gcd(a,b)=1 a∣N,b∣N,gcd(a,b)=1,那么 a b ∣ N ab\mid N ab∣N。
模运算
- 如果 a = q N + r a=qN+r a=qN+r,那么 [ a [a [a mod N ] = r N]=r N]=r
- “规约后,加、减、乘” ↔ \leftrightarrow ↔“加、减、乘,再规约”;即如果 a = a ′ a=a' a=a′ mod N , b = b ′ N,b=b' N,b=b′ mod N N N,则有 a + b = a ′ + b ′ a+b=a'+b' a+b=a′+b′ mod N , a b = a ′ b ′ N,ab=a'b' N,ab=a′b′ mod N N N。
- 除法不一定能满足,因为往往没有定义。只有 b b b在模 N N N下是可逆的,即 ∃ c ∈ { 1 , 2 … … N − 1 } , s . t . b c = 1 \exists c\in \{1,2……N-1\},s.t. bc=1 ∃c∈{ 1,2……N−1},s.t.bc=1 mod N N N,才有 a / b = a ′ / b ′ = a ′ c a/b=a'/b'=a'c a/b=a′/b′=a′c mod N N N。而且 b b b在模 N N N下是可逆的 ↔ g c d ( b , N ) = 1 \leftrightarrow gcd(b,N)=1 ↔gcd(b,N)=1。(根据扩展欧几里得算法, g c d ( b , N ) = 1 → X b + Y N = 1 → X b = 1 gcd(b,N)=1\rightarrow Xb+YN=1\rightarrow Xb=1 gcd(b,N)=1→Xb+YN=1→Xb=1 mod N → X = b − 1 N\rightarrow X=b^{-1} N→X=b−1 mod N N N)
- 模 N N N下的加、减、乘、逆、指数运算都可以在多项式时间内完成。
群论
有限群
- 密码学中通常研究的是有限交换群
- 封闭性、结合性、单位元、逆元、有限、交换性
- 有限群 G G G的阶 m = ∣ G ∣ m=|G| m=∣G∣,则 ∀ g ∈ G , g m = 1 \forall g\in G,g^m=1 ∀g∈G,gm=1。(根据循环群: g g g的阶是 < g > <g> <g>的阶,根据拉格朗日定理: < g > <g> <g>的阶是 ∣ G ∣ |G| ∣G∣的因子,则 g g g的阶是 ∣ G ∣ |G| ∣G∣的因子,即若 g g g的阶为 d d d,则有 d ∣ m d\mid m d∣m,即 g m = g n d = ( g d ) n = e n = e g^m=g^{nd}=(g^d)^n=e^n=e gm=gnd=(gd)n=