密码学入门
提示:文章先后更新過(guò)幾次,截止目前一共有三版
?? 引言:研究生的第一年就要過(guò)完了。有幸在號(hào)稱中國(guó)密碼學(xué)界的“黃埔軍校”學(xué)習(xí)密碼學(xué),見識(shí)了老、新一輩密碼學(xué)大師的風(fēng)采。雖然學(xué)的很渣,但耳濡目染,也略有收獲?;A(chǔ)知識(shí)的匱乏和密碼學(xué)自身的高難度抬高了這門學(xué)科的入門門檻,有必要寫一篇建議性的文章,給那些希望從事密碼學(xué)研究的師弟師妹們一個(gè)參考。
V0版本
數(shù)學(xué)基礎(chǔ)
密碼學(xué)是一個(gè)高度跨學(xué)科的領(lǐng)域,包含純數(shù)學(xué)、計(jì)算機(jī)科學(xué)以及電子工程等多方面的知識(shí)。個(gè)人認(rèn)為數(shù)學(xué)基礎(chǔ)是最重要的,也是最不好修煉的一門內(nèi)功。
- 《高等數(shù)學(xué)》---------->工程學(xué)高數(shù)是必修課
- 《線性代數(shù)》--------->線性代數(shù)的研究對(duì)象是方程組和矩陣,對(duì)密碼學(xué)來(lái)說(shuō),可以進(jìn)一步了解《矩陣論》的相關(guān)知識(shí)。
- 《概率論》----------->需要把后續(xù)課程,《信息論與編碼》的知識(shí)也掌握。
- 《抽象代數(shù)》(又稱近世代數(shù))----------->個(gè)人認(rèn)為這是這些數(shù)學(xué)基礎(chǔ)課里面,最重要的一門課,掌握好其中的群、環(huán)、域、模的知識(shí),對(duì)學(xué)習(xí)目前熱門的公鑰加密,數(shù)字簽名,認(rèn)證等知識(shí)大有裨益。當(dāng)然,這確實(shí)是一門神課,天才造出來(lái)的東西,真不是俺能徹底搞懂的。
- 《數(shù)論》------->基礎(chǔ)中的基礎(chǔ),必修課。
密碼入門
基礎(chǔ)數(shù)學(xué)知識(shí)具備了,這個(gè)時(shí)候應(yīng)該對(duì)密碼學(xué)這個(gè)專業(yè)有一個(gè)總體的認(rèn)識(shí),這里推薦一些不錯(cuò)的資料。
- 《現(xiàn)代密碼學(xué)》第4版------->楊波老師編寫的,一本很薄的講解基礎(chǔ)密碼學(xué)的書籍
- 《Introduction to Modern Cryptography》 2ed -------> by Jonathan Katz and Yehuda Lindell , 口碑之作,入門有一定難度,國(guó)防工業(yè)出版社翻譯出版了第一版:《現(xiàn)代密碼學(xué):原理與協(xié)議》。
- 《應(yīng)用密碼學(xué) : 協(xié)議算法與c源程序》------->介紹全面,值得閱讀一遍,缺點(diǎn)就是書籍出版的有些年代了(1996年第二版)。
- 《密碼編碼學(xué)與網(wǎng)絡(luò)安全——原理與實(shí)踐》第七版 by William Stalling ------->很多著名大學(xué)都采用它做教材,內(nèi)容比上面那本書新(2017年第七版)。
- 《密碼學(xué)原理與實(shí)踐》第三版 Douglas R.Stinson著 馮登國(guó) 譯------->值得精讀的一本書
- 西電胡予濮老師的《現(xiàn)代密碼學(xué)》課件-------->胡老師本身就是學(xué)術(shù)大牛,對(duì)密碼學(xué)科的認(rèn)識(shí)很全面,課程講解仔細(xì),深入淺出,從上個(gè)世紀(jì)講到目前的研究熱點(diǎn)格密碼,能很好的開啟視野。
- 西電胡予濮老師的《流密碼》課件--------->基本涉及了流密碼的方方面面,課件內(nèi)容比較細(xì)致。
密碼進(jìn)階
這一層的書我不太好推薦,先建議兩個(gè)課程吧,等學(xué)到這一步,相信自己能有足夠的主觀能動(dòng)性了。
- 《安全協(xié)議理論》,這個(gè)課程網(wǎng)上資料不多,我這里有一份電子文檔,內(nèi)容比較“高深”,有需要私信。
- 《計(jì)算復(fù)雜性理論》,神一樣的課程,從來(lái)沒(méi)聽懂過(guò)。
- 《Foundations of Cryptography》by Oded Goldreich,高級(jí)密碼學(xué)理論研究的敲門磚,理論性很強(qiáng)!!!
- Bristol大學(xué)的密碼安全工作組為密碼學(xué)和信息安全相關(guān)的博士準(zhǔn)備了52個(gè)基本知識(shí)點(diǎn),詳情見52個(gè)密碼學(xué)基本知識(shí)點(diǎn),可以簡(jiǎn)單看一下即可。
?? 最后感嘆一下,密碼學(xué)是一個(gè)燒腦的課程。這門學(xué)課發(fā)展到至今,研究的重點(diǎn)仍然是加密和解密,但研究?jī)?nèi)容其實(shí)遠(yuǎn)遠(yuǎn)不止這些了。為了保證安全性,密碼算法往往結(jié)構(gòu)復(fù)雜、協(xié)議繁復(fù),令人望而卻步,但是基于的數(shù)學(xué)原理卻又是如此的優(yōu)美。加密和破解像一對(duì)歡喜冤家,攜手推進(jìn)密碼學(xué)向前發(fā)展。
視頻推薦:
信息安全數(shù)學(xué)基礎(chǔ):http://mooc.study.163.com/course/HIT-1000002013#/info
近視代數(shù):http://mooc.study.163.com/course/HIT-1000003009#/info
近世代數(shù)_104_南京大學(xué)(孫智偉):https://www.bilibili.com/video/av9351622/
Coursera 密碼學(xué)公開課:Stanford University的Cryptography I和Cryptography II
后記:密碼學(xué),人類智力的對(duì)決!
*****************************************************************************************************************
V1版本
*****************************************************************************************************************
研究生過(guò)了一半,看看之前寫的答案,決定重構(gòu)一下:
??現(xiàn)代密碼學(xué)所涉及的學(xué)科包括:概率論、隨機(jī)過(guò)程、信息論與編碼、數(shù)論、代數(shù)學(xué)(線性代數(shù)、矩陣論、抽象代數(shù))、離散數(shù)學(xué)、計(jì)算復(fù)雜性、計(jì)算機(jī)知識(shí)和電路基礎(chǔ)等。
??大學(xué)必須掌握數(shù)學(xué)分析,線性代數(shù),概率論的知識(shí),尤其是概率論,理解透徹;其次,最好熟悉一門編程語(yǔ)言,推薦C或者Java,了解數(shù)據(jù)結(jié)構(gòu)和算法,鍛煉自己的思維,說(shuō)不定哪天寫代碼就用上了;如果有精力了解電路、模電、數(shù)電的基本知識(shí),HDL語(yǔ)言和FPGA要會(huì),在進(jìn)行密碼的硬件實(shí)現(xiàn)時(shí)有很方便。最后,推薦了解信息論和通信理論的一些知識(shí),尤其是信息論,這玩意兒在進(jìn)行熵值分析的時(shí)候很有用。
研究生階段,密碼學(xué)的基礎(chǔ)還是三大塊:數(shù)學(xué)、計(jì)算機(jī)、密碼學(xué)。
數(shù)學(xué):數(shù)論,近世代數(shù)(抽象代數(shù)、有限域、代數(shù)學(xué)。。。。為啥這么多名字,因?yàn)閮?nèi)容多、抽象)
計(jì)算機(jī):離散數(shù)學(xué),可計(jì)算性和計(jì)算復(fù)雜性
密碼學(xué):古典密碼和現(xiàn)代密碼、密碼編碼學(xué)和密碼分析學(xué)(也就是破解)、私鑰密碼和公鑰密碼。。。。(流密碼,分組密碼,公鑰密碼,密鑰分配與管理,消息認(rèn)證和哈希函數(shù),數(shù)字簽名和認(rèn)證協(xié)議,密碼協(xié)議、可證明安全與安全多方計(jì)算,網(wǎng)絡(luò)認(rèn)證與加密。。。。。媽呀,太多了)。
密碼學(xué),最重要的還是數(shù)學(xué)基礎(chǔ),比較適合數(shù)學(xué)專業(yè)的學(xué)生來(lái)學(xué)習(xí)。目前密碼學(xué)領(lǐng)域研究公鑰的科研人員較多,得益于互聯(lián)網(wǎng)的普及,密碼學(xué)應(yīng)用也越來(lái)越廣泛。現(xiàn)在火的區(qū)塊鏈和比特幣就是密碼學(xué)的典型應(yīng)用,當(dāng)然了,遠(yuǎn)遠(yuǎn)不止這些。。。
后記:密碼學(xué),一群天才玩的玩意!渣渣玩不轉(zhuǎn)!
*****************************************************************************************************************
V2版本
*****************************************************************************************************************
密碼學(xué)是一門綜合性學(xué)科,與數(shù)學(xué)、物理、計(jì)算機(jī)、微電子、通信、網(wǎng)絡(luò)等有著廣泛而密切的聯(lián)系。密碼學(xué)的學(xué)習(xí)重點(diǎn)在數(shù)學(xué)、計(jì)算機(jī)、密碼學(xué)知識(shí)三大塊。
數(shù)學(xué):數(shù)論與代數(shù)學(xué)、信息論與編碼、概率論與隨機(jī)過(guò)程、線性代數(shù)與矩陣論。
計(jì)算機(jī):離散數(shù)學(xué)、可計(jì)算理論與計(jì)算復(fù)雜性。
密碼學(xué):對(duì)稱密碼學(xué)、公鑰密碼學(xué)、數(shù)據(jù)完整性算法、電子認(rèn)證、安全協(xié)議、量子密碼等。
密碼學(xué)的入門門檻較高,其難點(diǎn)集中在數(shù)學(xué),打好數(shù)學(xué)基礎(chǔ),對(duì)于以后做一些有意義、有品位的研究是很重要的。入門之后,找一個(gè)感興趣的方向,查閱對(duì)應(yīng)論文是最有效的學(xué)習(xí)方法,密碼學(xué)領(lǐng)域三大會(huì)( https://iacr.org/ )和各大出版社都有論文出版。密碼學(xué)是一門講究時(shí)效的學(xué)科,一定要善于緊跟研究前沿。
密碼學(xué)是信息安全的基石,但信息安全不能只靠密碼學(xué)來(lái)維護(hù)。安全原則其實(shí)和木桶原理很相似,安全問(wèn)題往往出在最薄弱的那個(gè)環(huán)節(jié)上,密碼學(xué)提供了很有效的防護(hù)手段,但是在具體實(shí)踐的時(shí)候,需要方方面面的配合。比如系統(tǒng)安全和網(wǎng)絡(luò)安全,攻擊者往往不是直接攻擊協(xié)議或算法的設(shè)計(jì)漏洞,而是去尋找代碼Bug。從事信息安全,光有密碼學(xué)基礎(chǔ)是遠(yuǎn)遠(yuǎn)不夠的,還需要了解計(jì)算機(jī)、網(wǎng)絡(luò)、電子、通信的相關(guān)知識(shí),這樣才會(huì)是一個(gè)合格的安全行業(yè)的從業(yè)者。
資料
[討論]既然算法公開,那還有加密的必要? https://bbs.pediy.com/thread-93739.htm
后記:路漫漫其修遠(yuǎn)兮,吾將上下而求索。
總結(jié)
- 上一篇: python1到20的阶乘求和_Pyth
- 下一篇: 中国独角兽上市潮,爱奇艺优信小米值得投资