密碼學的研究與應用已有幾千年的歷史,但作為一門科學是20世紀50年代才開始的。不可否認,互聯網的廣泛應用大大推動了密碼學的研究與發(fā)展。大多數國家和地區(qū)都已經成立了密碼學學會,這些學會定期舉辦學術會議進行學術交流,促進了密碼學的研究與應用。國內外已出版了大量有關密碼學的書籍,其理論研究也相對比較成熟,在很多觀點上已達成共識。DouglasR.Stinson所著的《密碼學原理與實踐(第二版)》一書是一本很有特色的教科書,具體表現在以下幾個方面:1.表述清晰。書中的語言描述淺顯易懂,如分組密碼的差分分析和線性分析本是很難描述的問題,本書中卻表述得非常清楚。2.論證嚴謹。書中對很多密碼問題,如惟一解距離、Hash函數的延拓準則等進行了嚴格的數學證明,具有一種邏輯上的美感。3.內容新穎。書中從可證明安全的角度對很多密碼學問題特別是公鑰密碼問題進行了清楚的論述,使用了預言(Oracle)這一術語,通過閱讀本書可使讀者能夠精確掌握這一概念的靈魂。書中順便對一些密碼學領域的最新進展也做了相應的介紹。4.選材精良。書中選擇了大量典型的、相對成熟的素材,特別適合于教學使用。5.習題豐富。通過演練每章后面精心安排的習題,可以迅速并熟練掌握密碼學的基本技巧。要掌握好一門課程,必須選擇一兩本好書。我認為本書是非常值得精讀的一本好書,這也是我花費大量時間翻譯本書的初衷。本書在翻譯過程中,得到了一大批博士的協助,他們是徐濤博士、薛銳博士、孫中偉博士、黃寄洪博士、張斌博士、王鵬博士和楊海波博士,特別是徐濤博士協助完成了全書的統稿和審校工作,沒有他們的鼎力相助,本書的翻譯和審稿工作絕不會如此順利,在此對他們表示衷心的感謝。本書的翻譯工作得到了國家973項目(編號:G1999035802)和國家杰出青年科學基金(編號:60025205)的支持,在此表示感謝。馮登國2003年元旦于北京序言本書的第一版于1995年3月出版。那時,我的目標是寫一本通用的教材,包含密碼學方面所有的基本核心領域,并選擇一些前沿的主題。在寫作過程中,我試圖使內容具有足夠的彈性并容納這一學科的眾多方向,以便它可在數學、計算機科學和工程等專業(yè)的本科生和研究生的密碼學課程中使用。下面列舉了本書第一版中的一些特色,并在本書中保留了下來。數學背景知識在需要的時候“及時(justintime)”地提供出來。·密碼體制的描述由更精確的偽代碼給出。·提供例子以說明密碼體制的工作過程。·對算法和密碼體制的數學基礎做了仔細、嚴格的解釋。·包含了大量的練習,其中一些很具有挑戰(zhàn)性。本書的第一版包含13章。當兩年前開始修訂時,我發(fā)現有豐富的新材料可以加入到第二版中。為了防止篇幅過于龐大,并能在合理的時間內完成,我決定把第二版的內容更緊密地集中在密碼學的核心領域上,這就更像是一門課程里所覆蓋的內容。其結果就使得本書包含了對第一版的前7章內容的更新、修改、擴展和重新組織。我計劃不久再寫一本“姊妹篇”,包含對第一版其余內容的更新,并加入新的內容。下面對本書的7章內容做一概述:·第1章對于簡單的“經典”密碼體制進行了基本的介紹。一些主題被更新或改進,例如,給出了基于DanVelleman建議的對于維吉尼亞密碼的簡化的密碼分析?!さ?章覆蓋了密碼學中Shannon理論的主要內容,包括完善保密性的概念以及信息論在密碼學中的應用。這些內容并沒有顯著的改動;然而,相對于第一版,本書包含了對于基礎概率論的更細致的闡述?!さ?章是幾乎完全重寫的。在第一版對應的章節(jié)中基本上只講述了數據加密標準(DES),現在看來已很陳舊。我決定使用代換-置換網絡(substitution-permutationnetworks)作為數學模型來引入現代分組密碼設計和分析的許多概念,包括差分分析和線性分析。這里比以前更加強調一般的原則,并討論了特定的密碼體制(DES和新的AES)以說明這些一般原則。·第4章對第一版的第7章做了較大改動。這一章現在介紹了對于帶密鑰的Hash函數和不帶密鑰的Hash函數的統一處理,以及它們在構造消息認證碼中的應用。這里強調了數學分析和安全性證明。本章還包含了安全Hash算法(SHA)的描述。·第5章討論了RSA密碼體制,并給出了相當多的數論背景知識,例如素性檢驗(primalitytesting)和因子分解。本章已經被擴展了,包含了幾個新的小節(jié),例如Pollardρ算法、Wiener的低解密指數攻擊和基于RSA的密碼體制的語義安全。·第6章討論了基于離散對數(DiscreteLogarithm)問題的公鑰密碼體制,例如ElGamal密碼體制。這一章也包含了很多新內容,例如Pollardρ算法、通用算法復雜性更低的下界、橢圓曲線的擴展討論、離散對數密碼體制的語義安全性,以及Diffie-Hellman問題。本章中不再對背包(knapsack)密碼體制和McEliece密碼體制進行討論?!さ?章討論了簽名方案問題。像以前一樣,介紹了DSA方案,也包含了對特殊類型的簽名方案的闡述,例如不可否認簽名和fail-stop簽名。新材料重點討論了安全性定義、ElGamal簽名方案的變種(例如Schnorr簽名方案和橢圓曲線DSA方案),和可證明的安全簽名方案,例如全域Hash。寫一本密碼學方面的著作的一個最大的困難就是確定應包含多少數學背景知識。密碼學是一個涉及廣泛的學科,它需要多個數學領域的知識,包括數論、群論、環(huán)論、域論、線性代數、概率論以及信息論。同樣地,熟悉計算復雜性、算法和NP完全性理論也是很有用的。