转:https://blog.csdn.net/wjheha/article/details/73658249
数学基础
密码学是一个高度跨学科的领域,包含纯数学、计算机科学以及电子工程等多方面的知识。个人认为数学基础是最重要的,也是最不好修炼的一门内功。
《高等数学》
《线性代数》———>线性代数的研究对象是矩阵,对密码学来说,应该进一步学习《矩阵论》的相关知识。
《概率论》———–>需要把后续课程,《信息论与编码》的知识也掌握。
《抽象代数》(又称近世代数)———–>个人认为这是这些数学基础课里面,最重要的一门课,掌握好其中的群、环、域、模的知识,对学习目前大热的公钥密码大有裨益。当然,这确实是一门神课,天才造出来的东西,真不是俺能搞懂的。
《数论》——->RSA公钥的基础,必修课。
密码学入门书籍
基础知识具备了,这个时候应该对密码学这个专业有一个总体的认识,我这里推荐一些资料,我觉得很好。
《应用密码学 : 协议算法与c源程序》——->觉得这本书很好,介绍的很全,值得阅读一遍。
西电胡予濮老师的《现代密码学》。这里打个广告,真心觉得胡老师的课很好,对密码学的认识很全面,课程讲解仔细,深入浅出。从上个世纪讲到目前的研究热点格密码,能很好的开启视野。这门课应该没有视频,我这里有电子档,个人觉得很好,有需要可以私信我。
密码学进阶书籍
这一层的书我不太好推荐,先建议两个课程吧,等学到这一步,自然会有老师给指导的。
《安全协议理论》,这个课程网上资料不多,我这里有一份电子文档,感觉很不错,有需要私信。
《计算复杂性理论》,神一样的课程,从来没听懂过。
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/
*********************************************************
研究生过了一半,看看之前写的答案,决定重构一下:
现代密码学所涉及的学科包括:信息论、概率论、数论、计算复杂性理论、近世代数、离散数学、代数几何学和数字逻辑等。额,有点废话。
大学还是要先掌握好数学分析,线性代数,概率论的知识,尤其是概率论;其次,需要掌握一门编程语言,还是推荐C语言,对数据结构也要掌握,写代码说不定哪天就用上了;然后,掌握一些电路、模电、数电的知识,HDL语言也要掌握,在实现硬件流密码时,还有真随机数的设计这些东西会用的着。最后,推荐掌握信息论和通信理论的一些知识,尤其是信息论,这玩意儿在进行熵值分析的时候很有用。
研究生阶段,密码学的基础还是三大块:数学、计算机、密码学。
数学:数论,近世代数(抽象代数、有限域、代数学。。。。为啥这么多名字,因为内容多、抽象)
计算机:离散数学,可计算性和计算复杂性
密码学:古典密码和现代密码、密码编码学和密码分析学(也就是破解)、私钥密码和公钥密码。。。。(流密码,分组密码,公钥密码,密钥分配与管理,消息认证和哈希函数,数字签名和认证协议,密码协议、可证明安全与安全多方计算,网络认证与加密。。。。。妈呀,太多了)。
密码学,觉得最重要的还是数学基础,比较适合数学专业的学生来学习。密码学研究公钥的要多一些,研究的东西应用也相应的较多,现在火的区块链和比特币都是公钥密码的应用罢了,当然,远远不止这些。。。