密码学

### 数学基础理论

数学基础

  • 素数与合数定义:

整数p是一个素数, 如果它只能被±p,±1整除。素数的个数是无限的,全体素数的集合记为P。如果整数n不是素数,则它是一个合数。

  • 模n同余定义:

若a mod n= b mod n,则称整数a和b模n同余。

  • 求最大公因子GCD的Euclidean算法(辗转相除法):

Step 1: r0 =a and r1 =b;
Step 2: r0 =q1r1+r2; r1 =q2r2+r3; …… ;rn-2 =qn-1rn-1+rn; until rn=0 and rn-1 ≠ 0;
Step 3: rn-1 = gcd(a,b)。

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

设 n1, n2, …, nk 为两两互素的正整数,gcd(ni,nj)=1(ij),a1,a2, …,ak为整数,则同余方程组::
x = a1 mod n1
x = a2 mod n2
……
x = ak mod nk
有模n=n1n2…nk的惟一解x。
特性:在模n(=n1n2…nk)下可将非常大的数x由一组小数(a1,a2,…,ak)表达 x → (a1,a2,…,ak)。
中国古代命题:“韩信点兵”、“孙子定理”、求一术(沈括)“鬼谷算”(周密)、“隔墻算”(周密)、“剪管术”(杨辉)、“秦王暗点兵”、“物不知数”。中国剩余定理:孙子剩余定理、物不知数、数论的重要命题。

  • 费马小定理:

设p是素数,由于对任意的a(0<a<p),有gcd(a,p)=1,则 a p-1 = 1 mod p。

群、环、域的概念

群、环、域的概念,这是离散数学当中的概念:

  • 有限域:顾名思义,即范围是有限个的“域”(域的概念稍后解释),它有一个特点,有限域的大小是一个素数的若干次方。举例来说,比如10以内的非负整数,就是一个有限域。一般描述有限域,通过对整数取模(mod)的余数来表示,比如所有整数模5的结果,就是一个有限域(只包含0~4),这是5这个素数的1次方
  • 幺元:如果对于一个二元运算+(注意+并不是指一般意义的加法,它可以指代任何二元运算),在有若干个数的集合中,有一个数,对于其他任何数,通过这个二元运算之后,结果都是其他任何数本身,则称这个数是这个集合对于运算+的幺元。以加法为例,0就是在整数这个集合中,关于加法的幺元。
  • 零元:和幺元类似,不同处在于是有一个数,对于其他任何数,通过这个二元运算之后,结果都是这个数本身,则这个数是这个集合对于这个二元运算的零元。以乘法为例,0就是零元。
  • 逆元:有一个二元运算+(注意+并不是指一般意义的加法,它可以指代任何二元运算),如果a+a’=这个运算的幺元,那么,a与a’互为逆元。以加法为例,整数这个集合中,一个数和它的相反数互为逆元。
  • 群:群表示一种关系,定义一个集合s和一个操作+,注意+并不是指一般意义的加法,它可以指代任何二元运算,如果这个集合中的元素,关于这个运算,满足结合律,每一个元素有逆元,整个集合有关于这个运算的幺元,则称,这个关系s,+是一个群。以加法为例,加法在整数这个集合上是一个群。
  • 环:如果有两个二元运算+,(注意+,并不是指一般意义的加法,乘法,它可以指代任何二元运算),在一个集合上,一个二元运算满足可结合、可交换、有幺元,元素都有逆元,另一个二元运算满足可结合,则这个关系s,+,*是一个环。
  • 整环:在环的定义中,只需满足了可结合的那个运算(不一定是真正意义的惩罚),如果还满足了可交换、有幺元,对于ab=0一定能推出a=0或b=0,则这个环是整环。
  • 域:如果一个整环,集合中有至少两个元素,且都有逆元,则是域。
  • 伽罗华域:首先,这是一个有限域,其次,这个有限域是2的若干次方。密码学里常用的是2^8

再看有限域,以模5为例,0-4的计算结果也要模5,对于普通加法和乘法,可以证明(我其实不会证),这个关系<0~4,+,*>是一个域,且元素个数有限,所以是有限域。


在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有限域:顾名思义,即范围是有限个的“域”(域的概念稍后解释),它有一个特点,有限域的大小是一个素数的若干次方。举例来说,比如10以内的非负整数,就是一个有限域。一般描述有限域,通过对整数取模(mod)的余数来表示,比如所有整数模5的结果,就是一个有限域(只包含0~4),这是5这个素数的1次方。
在这里插入图片描述
在这里插入图片描述

密码学基础概念

  • 一个密码系统是整个安全系统的一部分,由五部分组成(M,C,K,E,D):

1、明文空间M:全体明文的集合,明文(Plaintext):伪装前的原始数据。

2、密文空间C:全体密文的集合,密文(Ciphertext):伪装后的数据。

3、密钥空间K:全体密钥的集合,K = < Ke,Kd >,密钥(Key):加密和解密分别在加密密钥和解密密钥的控制下进行。

4、加密算法集合E,加密变换,ek:M→C,加密(Encryption):伪装的过程。

5、解密算法集合D,解密变换,dk:C→M,解密(Decryption):去掉密文的伪装恢复出明文的过程。

  • 加密算法需满足两条准则之一,满足两个准则的加密算法称为计算上安全。

1、破译密文的代价超过被加密信息的价值。

2、破译密文所花的时间超过信息的有用期。

推荐书籍

密码学是一个高度跨学科的领域,包含纯数学、计算机科学以及电子工程等多方面的知识。个人认为数学基础是最重要的,也是最不好修炼的一门内功。

密码入门

《高等数学》---------->工程学高数是必修课
《线性代数》--------->线性代数的研究对象是方程组和矩阵,对密码学来说,可以进一步了解《矩阵论》的相关知识。
《概率论》----------->需要把后续课程,《信息论与编码》的知识也掌握。
《抽象代数》(又称近世代数)----------->个人认为这是这些数学基础课里面,最重要的一门课,掌握好其中的群、环、域、模的知识,对学习目前热门的公钥加密,数字签名,认证等知识大有裨益。当然,这确实是一门神课,天才造出来的东西,真不是俺能彻底搞懂的。
《数论》------->基础中的基础,必修课。

密码进阶

《现代密码学》第4版------->杨波老师编写的,一本很薄的讲解基础密码学的书籍 《Introduction to Modern
Cryptography》 2ed -------> by Jonathan Katz and Yehuda Lindell ,口碑之作,入门有一定难度,国防工业出版社翻译出版了第一版:《现代密码学:原理与协议》。
《应用密码学 :协议算法与c源程序》------->介绍全面,值得阅读一遍,缺点就是书籍出版的有些年代了(1996年第二版)。
《密码编码学与网络安全——原理与实践》第七版 by William Stalling------->很多著名大学都采用它做教材,内容比上面那本书新(2017年第七版)。
《密码学原理与实践》第三版 Douglas R.Stinson著 冯登国 译------->值得精读的一本书
西电胡予濮老师的《现代密码学》课件-------->胡老师本身就是学术大牛,对密码学科的认识很全面,课程讲解仔细,深入浅出,从上个世纪讲到目前的研究热点格密码,能很好的开启视野。
西电胡予濮老师的《流密码》课件--------->基本涉及了流密码的方方面面,课件内容比较细致。

高阶密码

《安全协议理论》,这个课程网上资料不多,我这里有一份电子文档,内容比较“高深”,有需要私信。
《计算复杂性理论》,神一样的课程,从来没听懂过。
《Foundations of Cryptography》by Oded Goldreich,高级密码学理论研究的敲门砖,理论性很强!!!
Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点,详情见52个密码学基本知识点,可以简单看一下即可。

最后感叹一下,密码学是一个烧脑的课程。这门学课发展到至今,研究的重点仍然是加密和解密,但研究内容其实远远不止这些了。为了保证安全性,密码算法往往结构复杂、协议繁复,令人望而却步,但是基于的数学原理却又是如此的优美。加密和破解像一对欢喜冤家,携手推进密码学向前发展。

视频推荐: 信息安全数学基础:http://mooc.study.163.com/course/HIT-1000002013#/info
近视代数:http://mooc.study.163.com/course/HIT-1000003009#/info
近世代数_104_南京大学(孙智伟):https://www.bilibili.com/video/av9351622/ Coursera
密码学公开课:Stanford University的Cryptography I和Cryptography II

几个数学定义
首先要讲的,是关于群、环、域的概念,这是离散数学当中的概念,比较难懂,而其实密码学中对这些概念并没有多少涉及,都是为了引出“有限域”这个概念,所以,我们先说有限域,在说“群、环、域”,如果不想理解“群、环、域”的概念,亦可。

有限域:顾名思义,即范围是有限个的“域”(域的概念稍后解释),它有一个特点,有限域的大小是一个素数的若干次方。举例来说,比如10以内的非负整数,就是一个有限域。一般描述有限域,通过对整数取模(mod)的余数来表示,比如所有整数模5的结果,就是一个有限域(只包含0~4),这是5这个素数的1次方。
幺元:如果对于一个二元运算+(注意+并不是指一般意义的加法,它可以指代任何二元运算),在有若干个数的集合中,有一个数,对于其他任何数,通过这个二元运算之后,结果都是其他任何数本身,则称这个数是这个集合对于运算+的幺元。以加法为例,0就是在整数这个集合中,关于加法的幺元。
零元:和幺元类似,不同处在于 是 有一个数,对于其他任何数,通过这个二元运算之后,结果都是这个数本身,则这个数是这个集合对于这个二元运算的零元。以乘法为例,0就是零元。
逆元:有一个二元运算+(注意+并不是指一般意义的加法,它可以指代任何二元运算),如果a+a’=这个运算的幺元,那么,a与a’互为逆元。以加法为例,整数这个集合中,一个数和它的相反数互为逆元。
群:群表示一种关系,定义一个集合s和一个操作+,注意+并不是指一般意义的加法,它可以指代任何二元运算,如果这个集合中的元素,关于这个运算,满足结合律,每一个元素有逆元,整个集合有关于这个运算的幺元,则称,这个关系s,+是一个群。以加法为例,加法在整数这个集合上是一个群。
环:如果有两个二元运算+,(注意+,并不是指一般意义的加法,乘法,它可以指代任何二元运算),在一个集合上,一个二元运算满足可结合、可交换、有幺元,元素都有逆元,另一个二元运算满足可结合,则这个关系s,+,是一个环
整环:在环的定义中,只需满足了可结合的那个运算
(不一定是真正意义的惩罚),如果还满足了可交换、有幺元,对于ab=0一定能推出a=0或b=0,则这个环是整环。
域:如果一个整环,集合中有至少两个元素,且都有逆元,则是域
伽罗华域:首先,这是一个有限域,其次,这个有限域是2的若干次方。密码学里常用的是2^8
再看有限域,以模5为例,04的计算结果也要模5,对于普通加法和乘法,可以证明(我其实不会证),这个关系<04,+,
>是一个域,且元素个数有限,所以是有限域。

几个数学定理
下面要介绍的数学定理,都很重要,不过也很简单。

欧几里德算法以及扩展欧几里德算法 :
就是以前学过的辗转相除法,简而言之,a和b(a>b)的最大公约数,就是a模b的结果,和b求得的最大公约数(即gcd(a,b)=gcd(a mod b,b)),这个过程一直递归下去,直到a或b等于0,则非零的另一个数就是最大公约数。
而扩展欧几里德算法,则是说如果,对a,b以及二者的最大公约数,有ax+by=gcd(a,b),这里x,y可能有若干对。扩展欧几里德算法常用来求解多项式的逆元,这个我们之后会提到。

欧拉定理
设一个函数f(欧拉函数),f(n)的结果为比n小的,与n互质的数的个数,则对任意一个整数a,若gcd(a,n)=1,有a^f(n) mod n=1.
证明:

设集合X={x1,x2,.......,xf(n)},为与n互质,比n小的数的集合,共f(n)个
而X'={ax1 mod n,ax2 mod n,........, axf(n) mod n} 共f(n)个
因为gcd(a,n)==1,
所以a
x 与n互质,
又因为X'元素都比n小
所以X=X'
所以集合X中元素的乘积模n 结果等于 X'中元素的乘积模n
提取出a的f(n)次方,两边消去X中元素的乘积
得出a^f(n) mod n=1
1
2
3
4
5
6
7
8
9
欧拉定理有一个很有用的用处是求逆元,aa^(f(n)-1) mod n=1,可以改写为ab mod n=1,所以a在模n的有限域的乘法逆元b就等于 a^(f(n)-1) mod n

费马小定理
对于一个素数p,有a^(p-1) mod p=1
费马小定理是欧拉定理的一个特例,证明不再重复

中国剩余定理
有方程组:
求X的值
解法:

其中,M为若干个mi的乘积,ti为M/mi在有限域mi上的乘法逆元
所以,这个问题就分解成了求若干个乘法逆元、求积、求和的问题,而最难的求乘法逆元的方法,就是上面提到的欧拉定理

单变量线性同余
有ax=b mod n,求x
解:

求出gcd(a,n)=d,若d可被b整除,则有d个解,否则无解
另a'=a/d,b'=b/d,n'=n/d
x'=(a')^-1 * b' mod n'(这里(a')^-1 表示a' 在模n'的有限域内的乘法逆元)
x0=x',xt=x0+n/d *t (mod n) t取值从0到d-1

一、整除
定义:
a、b是两个整数,b≠0 ,如果存在一个整数m使等式a=m*b成立,则称b整除a,记为b|a,a是被除数,b是除数。

性质:
·若b|a,c|b,则c|a;
·若b|g,b|h,则对任意整数m,n有b|(mg+nh)

二、素数
定义:
一个大于q且只能被1和它本身整除的整数,称为素数(质数)否则称为合数。

性质:
·若p是素数,p|ab,则p|a或p|b。
·若p是素数,a是任意整数,则有p|a(整除)或gcd(p,a)=1(互素),即素数与任意数之间可能是整除或互素的关系。

三、最大公约数
定义:
最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。

性质:
欧几里得定理
设a,b,c,q是任意不全为0的整数,且
a=qb+c,其中q是整数,则有:
◆gcd(a, b)= gcd(b, c)
◆或写成gcd (a, b)=gcd (b, a mod b)。
即被除数和除数的最大公因子与除数和余数的最大公因子相同。例如:
◆gcd(18, 12)= gcd(12, 6) = gcd(6, 0)=6
◆gcd(11, 10)= gcd(10, 1)= gcd(1, 0)=1

四、模运算与同余
定义:
模运算:设n是正整数,a是整数, 如果用n除a,得商为q,余数为r,即a =qn+r, 0Sr<n, 则余数r可以用“a mod n”表示,即r = a mod n。
同余:如果a mod n = b mod n,则称两整数a和b模n同余,记为a ≡ b mod n。

性质:
a ≡ b(mod m) => m|(a-b)
a ≡ b(mod m),b ≡ c(mod m),则a ≡ c(mod m)

五、欧拉函数
定义:
n是一个正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为φ(n)。如小于6且与6互素的数只有1和5,因此φ(6)=2。

性质:
若n是素数,则φ(n)=n-1;
若n=pq,p、q是素数且p≠q,则φ(n)=(p-1)(q-1);
若gcd(m,n)=1,则φ(m)φ(n)=φ(mn)
若n=p₁a₁p₂a₂…pa,其中p₁,p₂,…,p为素数,a₁,a₂,…,a为正整数,则有:φ(n) = n(1-1/p₁)(1-1/p₂)…(1-1/p)

欧拉定理:
若a和n都是正整数,且gcd (a, n)=1,则有aφ(n) mod n=1,即aφ(n)≡1(mod n)

欧拉定理的应用:求解 3102 mod 11
解:因为gcd(3,11)=1,则有310mod 11=1
所以 310*10 mod 11=110=1,3100+2 mod 11=32 mod 11=9
推论:若a与n互素,则a与aφ(n)-1互为乘法逆元。

六、费马小定理
定义:
如果p是一个质数,而整数a不是p的倍数,则有a(p-1)≡1(mod p)。

七、扩展欧几里得定理
定义:
对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b) = ax+by。

·当b=0时,gcd(a,b)=a,此时x=1,y=0;
·当ab!=0时,设ax₁+by₁=gcd(a,b),欧几里得原理有gcd(a,b)=gcd(b,a%b)
则有,gcd(b,a%b)=bx₂+(a%b)y₂
即bx₂+(a%b)y₂=ax₁+by₁
ax₁+by₁=bx₂+(a-[a/b]*b)y₂=x₂b+y₂a-[a/b]y₂b=y₂a+(x₂-[a/b]y₂)b
可以得到:x₁=y₂,y₁=x₂-[a/b]y₂
将上面思想以递归定义的,因为 gcd 不断的递归求解一定会有个时候 b=0,所以递归可以结束。

八、乘法逆元
定义:
如果满足下列等式,则称x是a模p的乘法逆元:ax≡1 (mod p)且gcd(a,p)=1(a与p互质),通常记为:x = a-1 mod p。一个数可能存在多个乘法逆元,也可能没有乘法逆元。

乘法逆元的求法:
费马小定理
当p为质数时,由费马小定理得a(p-1)≡1(mod p),为了求ax≡1 (mod p)中a模p的乘法逆元x,因为a与p互质,a*ap-2≡1 (mod p),则x=ap-2
扩展欧几里得
ax≡1 (mod p)可以写成ax+py=1的形式,则可以用扩展欧几里得算法解出二元一次方程解出x。

九、中国剩余定理
一般来讲,p₁,…,p为素数
k ≡ a₁(mod p₁)
k ≡ a₂(mod p₂)

k ≡ a(mod p)
有解
﹛x₁ ≡ 1( p₁),x₁ ≡ 0( p₂),…,x₁ ≡ 0( p) ﹜
﹛x₂ ≡ 0( p₁),x₂ ≡ 1( p₂),…,x₂ ≡ 0( p) ﹜

﹛x ≡ 0( p₁),x ≡ 1( p₂),…,x ≡ 1( p) ﹜

k = a₁x₁ + a₂x₂ + … + ax (mod p₁p₂…p)

例如:
k ≡ a(mod 3)
k ≡ b(mod 4)
k ≡ c(mod 5)
→k = ax + by + cz (mod 105)
﹛x ≡ 1(3),x ≡ 0(5),x ≡ 0(7) ﹜ x = 70
﹛y ≡ 0(3),y ≡ 1(5),y ≡ 0(7) ﹜ y = 21
﹛z ≡ 0(3),z ≡ 0(5),z ≡ 1(7) ﹜ z = 15
→k = 70a + 21b + 15c (mod 105)

十、威尔逊定理
(p-1)! ≡ -1(mod p),(p-2)! mod p =1 ,p为质数

posted @ 2022-04-04 20:18  l1j1ng  阅读(544)  评论(0)    收藏  举报