怎樣看懂密碼學入門書籍「introduction to modern cryphtography 」?
目前仍然在學習,還沒有做到看懂,先來拋個磚。
作為一個沒出息的英語渣,我選擇了國防工業出版社的中文版。個人感覺翻譯得一般但也不至於很難懂,能讀懂英文的話還是建議選擇英文版。
讀之前可以大概看看附錄的數學知識和演算法知識,簡單地學習一下附錄提到的東西。但不需要專門花大量的時間去補數學,可以用到的時候再學,節約時間。
書分為三個部分:經典密碼學、對稱密碼學和公鑰密碼學。經典密碼學就僅僅作為了解了,難度也不大。對稱密碼學中第三、四章是基礎,第五章是構建舉例,重點可以放在前面,感覺理論性強一些對理解的要求高。第六章我反正是打算能看懂多少算多少(題主還是不要向我這樣沒出息,看見星號就不想看= =)。
之後的第七章數論和困難性假設是非常重要的,建議徹底搞懂(除了橢圓曲線群),第八章看看就好。第九章和第十章是公鑰密碼學的理論,同樣應該徹底搞懂(包括帶星號的陷門置換)。後邊重點看看十二章就行。
感覺想看懂的話,對稱密碼學要使勁理解定義以及構造的加密過程,公鑰密碼學要保證數論、代數的基礎,理解困難性假設,然後把加密解密的數學過程搞清楚,以及如何把解密過程規約到困難性假設中去。
以上就是我目前的想法,如果看到後邊有新的想法可能還會編輯答案(但我未必想的起來Orz),還是希望完整地學習過這本書的人來回答。
「弄懂」這本書的大部分內容,個人花了接近一年半的時間。(不過不是一年半都只看了這個……)現在還是記不住Goldwasser-Micali, Rabin和Paillier的具體步驟(拿來演算法和假設還是會證明的),可能是因為碰到的機會太少。共用各種方式虐了自己三遍。第一遍:暑假自學英文版,自己抄筆記,不做課後題(因為沒參考答案,證明格式都不怎麼會寫)
最大的收穫是再也沒搞錯過證明的方向。
If A holds, then B is secure ==&> If there is an efficient adversary for B, there is also one for A.證明過程基本就是把針對B的攻擊者當成子程序調用,造個攻擊A問題的程序。第二遍:上課,看德語課件,做學校老師留的習題,總共52道。期間聽了coursera上Dan Boneh的課,只做了選擇題。這個之後能多少看懂identity based encryption的論文了,也接觸了其他的game-based security定義,比如Authenticated Key Exchange之類的。
第三遍:刷分,不上課,只自己做新學期的題,也給同學逐道講所有的習題。終於搞清楚什麼是hybrid證明(主要是每一跳的loss factor到底該怎麼算),同時接觸了ABE。數學就是得看書、做題、討論、看paper,沒辦法。建議是,每個定理、定義同時參考多本好教材(包括各種課件)和文章。相關知識的書單放在這裡,基礎知識和最後一本之外,基本就是前兩遍的時候刷的。
求大觸們推薦一些比較系統的關於密碼加密解密的書籍? - 知乎用戶的回答(第三遍的同時在學校忙著學Hacker課,話說可能我在web攻擊真沒什麼天分,js payload寫得極爛)我只是看了一半,我個人覺得配合使用這本書當做課程教材的教授的課件和註解看會輕鬆很多。
http://www.ccs.neu.edu/home/wichs/class/crypto-fall15/index.html這是我旁聽過一教授的課程主頁,我個人覺得跟著課程進度來先過一邊註解再看書會輕鬆很多。這本書的主頁上列出了使用這本書當教材的學校,你也可以去搜上面一些名校的教授的課件和註解。我最近也準備重新看起這本書,乾巴爹。推薦閱讀:
※請教DH演算法在混合加密中,到底起什麼作用?
※有人把國密演算法集成到 OpenSSL 里的么?
※tls過程中,為何不用證書提供的公鑰加密數據或者加密私鑰,而要設計密鑰交換流程呢?
※信息安全有哪些著名的期刊?
※如何用人腦產生一個某範圍內隨機整數?