当前位置:网站首页 > 技术博客 > 正文

密码学基础知识



  • 素数与合数定义:

整数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,+,*是一个环。
  • 整环:在环的定义中,只需满足了可结合的那个运算*(不一定是真正意义的惩罚),如果还满足了可交换、有幺元,对于a*b=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-#/info
近视代数:http://mooc.study.163.com/course/HIT-#/info
近世代数_104_南京大学(孙智伟):https://www.bilibili.com/video/av/ Coursera
密码学公开课:Stanford University的Cryptography I和Cryptography II

版权声明


相关文章:

  • ds3232m2024-12-07 19:01:04
  • psr代码规范2024-12-07 19:01:04
  • 一个usb接口最多能连接的设备数2024-12-07 19:01:04
  • 图像处理中的数学方法2024-12-07 19:01:04
  • 私库寺库新版本2024-12-07 19:01:04
  • left join和right join和inner join的区别2024-12-07 19:01:04
  • 左连接查询sql语句 实例2024-12-07 19:01:04
  • sql 在线2024-12-07 19:01:04
  • 网页爬虫怎么做2024-12-07 19:01:04
  • 序列化和反序列化(深入理解序列化与反序列化:概念、区别及应用场景)2024-12-07 19:01:04