密码学入门

密码学 专栏收录该内容
3 篇文章 6 订阅

提示:文章先后更新过几次,截止目前一共有三版

   引言:研究生的第一年就要过完了。有幸在号称中国密码学界的“黄埔军校”学习密码学,见识了老、新一辈密码学大师的风采。虽然学的很渣,但耳濡目染,也略有收获。基础知识的匮乏和密码学自身的高难度抬高了这门学科的入门门槛,有必要写一篇建议性的文章,给那些希望从事密码学研究的师弟师妹们一个参考。

V0版本

数学基础

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

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

基础数学知识具备了,这个时候应该对密码学这个专业有一个总体的认识,这里推荐一些不错的资料。

  • 《现代密码学》第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 ICryptography II

后记:密码学,人类智力的对决

*****************************************************************************************************************

V1版本

*****************************************************************************************************************

研究生过了一半,看看之前写的答案,决定重构一下:

  现代密码学所涉及的学科包括:概率论、随机过程、信息论与编码、数论、代数学(线性代数、矩阵论、抽象代数)、离散数学、计算复杂性、计算机知识和电路基础等。
  大学必须掌握数学分析,线性代数,概率论的知识,尤其是概率论,理解透彻;其次,最好熟悉一门编程语言,推荐C或者Java,了解数据结构和算法,锻炼自己的思维,说不定哪天写代码就用上了;如果有精力了解电路、模电、数电的基本知识,HDL语言和FPGA要会,在进行密码的硬件实现时有很方便。最后,推荐了解信息论和通信理论的一些知识,尤其是信息论,这玩意儿在进行熵值分析的时候很有用。

研究生阶段,密码学的基础还是三大块:数学、计算机、密码学。

数学:数论,近世代数(抽象代数、有限域、代数学。。。。为啥这么多名字,因为内容多、抽象)

计算机:离散数学,可计算性和计算复杂性

密码学:古典密码和现代密码、密码编码学和密码分析学(也就是破解)、私钥密码和公钥密码。。。。(流密码,分组密码,公钥密码,密钥分配与管理,消息认证和哈希函数,数字签名和认证协议,密码协议、可证明安全与安全多方计算,网络认证与加密。。。。。妈呀,太多了)。

密码学,最重要的还是数学基础,比较适合数学专业的学生来学习。目前密码学领域研究公钥的科研人员较多,得益于互联网的普及,密码学应用也越来越广泛。现在火的区块链和比特币就是密码学的典型应用,当然了,远远不止这些。。。

后记:密码学,一群天才玩的玩意!渣渣玩不转!

*****************************************************************************************************************

V2版本

*****************************************************************************************************************

密码学是一门综合性学科,与数学、物理、计算机、微电子、通信、网络等有着广泛而密切的联系。密码学的学习重点在数学、计算机、密码学知识三大块。

数学:数论与代数学、信息论与编码、概率论与随机过程、线性代数与矩阵论。

计算机:离散数学、可计算理论与计算复杂性。

密码学:对称密码学、公钥密码学、数据完整性算法、电子认证、安全协议、量子密码等。

密码学的入门门槛较高,其难点集中在数学,打好数学基础,对于以后做一些有意义、有品位的研究是很重要的。入门之后,找一个感兴趣的方向,查阅对应论文是最有效的学习方法,密码学领域三大会( https://iacr.org/ )和各大出版社都有论文出版。密码学是一门讲究时效的学科,一定要善于紧跟研究前沿。

密码学是信息安全的基石,但信息安全不能只靠密码学来维护。安全原则其实和木桶原理很相似,安全问题往往出在最薄弱的那个环节上,密码学提供了很有效的防护手段,但是在具体实践的时候,需要方方面面的配合。比如系统安全和网络安全,攻击者往往不是直接攻击协议或算法的设计漏洞,而是去寻找代码Bug。从事信息安全,光有密码学基础是远远不够的,还需要了解计算机、网络、电子、通信的相关知识,这样才会是一个合格的安全行业的从业者。

资料
[讨论]既然算法公开,那还有加密的必要? https://bbs.pediy.com/thread-93739.htm

后记:路漫漫其修远兮,吾将上下而求索。

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值