
摘要:針對(duì)計(jì)算機(jī)科學(xué)與技術(shù)、通信、電子工程和軟件工程等信息技術(shù)類專業(yè)密碼學(xué)教學(xué)的實(shí)際情況,在分析總結(jié)該學(xué)科教學(xué)特點(diǎn)和多年從事信息技術(shù)類專業(yè)信息安全及應(yīng)用密碼學(xué)課程教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上,闡述了密碼學(xué)課程的一些教學(xué)思路。
關(guān)鍵詞:教學(xué)思路;密碼學(xué); 教學(xué)特點(diǎn)
隨著通信、電子與計(jì)算機(jī)網(wǎng)絡(luò)等信息技術(shù)的發(fā)展,出現(xiàn)了大量的計(jì)算機(jī)應(yīng)用系統(tǒng)與設(shè)備,以及網(wǎng)絡(luò)信息系統(tǒng),如移動(dòng)通信、電子政務(wù)、電子商務(wù)、網(wǎng)絡(luò)銀行等。信息安全的技術(shù)和機(jī)制是保障上述系統(tǒng)與設(shè)備正常運(yùn)行的必要條件。密碼技術(shù)是信息安全的核心技術(shù),信息的機(jī)密性、完整性、可用性、抗否認(rèn)性都需要采用密碼技術(shù)來(lái)解決。而在實(shí)際工作中,無(wú)論是過(guò)去、現(xiàn)在還是將來(lái),許多信息系統(tǒng)與設(shè)備都是由計(jì)算機(jī)科學(xué)與技術(shù)、通信、電子工程和軟件工程等專業(yè)的畢業(yè)生設(shè)計(jì)和開(kāi)發(fā)的,因此,許多高校都為這些專業(yè)的學(xué)生開(kāi)設(shè)了信息安全或密碼學(xué)方面的課程。但密碼系統(tǒng)的開(kāi)發(fā)、使用人員與進(jìn)行密碼學(xué)研究的人員所需要了解的密碼學(xué)知識(shí)在深度與層面上有很大不同,分析和總結(jié)信息技術(shù)學(xué)科密碼學(xué)課程的教學(xué)是一項(xiàng)有意義的工作[1]。作者總結(jié)多年從事計(jì)算機(jī)專業(yè)信息安全與應(yīng)用密碼學(xué)教學(xué)的一些感想與體會(huì),與同行探討。
1信息技術(shù)學(xué)科密碼學(xué)的教學(xué)特點(diǎn)
一般而言,面向信息技術(shù)學(xué)科各專業(yè)的密碼學(xué)課程具有以下特點(diǎn):
1) 面向應(yīng)用。計(jì)算機(jī)科學(xué)與技術(shù)、通信、電子工程和軟件工程等專業(yè)的畢業(yè)生只有少數(shù)會(huì)致力于密碼的設(shè)計(jì)和分析,大部分學(xué)生也只是從事基于密碼的一些開(kāi)發(fā)和應(yīng)用,因而讓學(xué)生掌握如何基于已有強(qiáng)大密碼算法進(jìn)行安全設(shè)計(jì)更為重要和實(shí)際,學(xué)生普遍也對(duì)密碼的應(yīng)用更感興趣。
2) 涉及的數(shù)學(xué)知識(shí)多?,F(xiàn)代密碼學(xué)內(nèi)容和分支較多,涉及抽象代數(shù)、數(shù)論、橢圓曲線理論、計(jì)算復(fù)雜度等數(shù)學(xué)知識(shí),而這些知識(shí)在高等院校工科數(shù)學(xué)中大部分是沒(méi)有介紹的。
3) 與其他課程關(guān)系密切。比如數(shù)據(jù)庫(kù)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)的安全都涉及密碼學(xué)的相關(guān)知識(shí)。
4) 選修密碼學(xué)課程的本科生普遍有繼續(xù)讀研、出國(guó)深造的想法,或者本身就是研究生。
2教學(xué)思路與體會(huì)
針對(duì)以上特點(diǎn),作者在教學(xué)中采用了以下策略和思路。
2.1以古典密碼為背景解釋密碼學(xué)基本概念
密碼是一項(xiàng)有著久遠(yuǎn)歷史的技術(shù),自從人類文化誕生以來(lái),就產(chǎn)生了保護(hù)敏感信息的愿望。古典密碼是密碼學(xué)的淵源,這些密碼大都比較簡(jiǎn)單,易于理解,我們可以以此為例解釋密碼學(xué)的一些基本概念。如“密鑰”的概念,加密和解密的操作通常都是在一組密鑰的控制下進(jìn)行的,分別稱為加密密鑰和解密密鑰,學(xué)生對(duì)此定義感到難以理解?!皠P撒密表”一個(gè)著名古典密碼,它把明文中的每一個(gè)字母用它在字母表中位置后面的第三個(gè)字母代替,它是一種密鑰為3的移位密碼。以此為例,學(xué)生就對(duì)密鑰這一術(shù)語(yǔ)有了感性認(rèn)識(shí)。再如,密碼分析的兩個(gè)基本方法是強(qiáng)力攻擊與統(tǒng)計(jì)分析,以任意單表代替密碼算法為例就很好解釋,任意單表代替密碼的密鑰空間很大,為26!≈4×1026,破譯者進(jìn)行窮舉分析是非常困難的,但使用基于語(yǔ)言特征的統(tǒng)計(jì)分析就可以破譯它。用簡(jiǎn)單易懂的例子,也可以激發(fā)大家的學(xué)習(xí)興趣。
2.2密碼編碼與密碼分析相結(jié)合
密碼學(xué)由密碼編碼與密碼分析兩個(gè)分支組成,兩者既相互對(duì)立,又相互促進(jìn),為了讓同學(xué)們更好地理解密碼編碼的發(fā)展變化,可以安排這兩條線索,并以密碼編碼為主線,見(jiàn)表1。
2.3數(shù)學(xué)基礎(chǔ)與密碼算法相互同步
數(shù)學(xué)基礎(chǔ)對(duì)密碼編碼和密碼分析是至關(guān)重要的,也是理解算法的關(guān)鍵。大多數(shù)教材和課程安排單獨(dú)的章節(jié)對(duì)數(shù)學(xué)知識(shí)進(jìn)行介紹,而本課程只在講解到的密碼算法需要相關(guān)的數(shù)學(xué)基礎(chǔ)時(shí)再進(jìn)行介紹,講解深度也只是幫助同學(xué)理解密碼算法,不進(jìn)行全面和深層次的討論,這樣既使同學(xué)們不感到枯燥,也可以加深大家對(duì)密碼算法與相關(guān)數(shù)學(xué)知識(shí)相互關(guān)系的印象,有助于更好地理解密碼算法。如在講解古典密碼前,介紹一些初等數(shù)論的知識(shí):同余、模運(yùn)算和逆元等;在講解高級(jí)數(shù)據(jù)加密標(biāo)準(zhǔn)AES前,介紹一些抽象代數(shù)的知識(shí):群、環(huán)、有限域GF(p)和GF(2n)等;在講解公鑰密碼體制前,介紹一些相關(guān)數(shù)學(xué)知識(shí):算術(shù)基本定理、中國(guó)剩余定理、Fermat定理、Euler定理、有限循環(huán)群上的離散對(duì)數(shù)和有限域GF(p)上的離散對(duì)數(shù)等。
2.4重視密碼算法的應(yīng)用
密碼算法介紹的深度則以學(xué)生能夠使用為宜,對(duì)于有興趣做進(jìn)一步深入分析和研究的同學(xué),則介紹一些前沿研究方向和相關(guān)論文供其閱讀。有效的安全性不僅取決于強(qiáng)大的算法,還要求保障密碼使用環(huán)節(jié)上的安全。教師在介紹完密碼算法之后,安排專門的課時(shí)討論密碼的實(shí)際應(yīng)用問(wèn)題,這涉及密碼的操作模式、不是對(duì)稱密碼分組長(zhǎng)度整數(shù)倍的明文的填充處理、密碼功能邏輯位置的選擇、密鑰長(zhǎng)度的選擇、硬件加密與軟件加密的選擇、密鑰管理等問(wèn)題。如果密鑰管理有薄弱環(huán)節(jié),密碼算法的強(qiáng)壯性就會(huì)減為零。所有的密碼技術(shù)都依賴于密鑰管理,密碼系統(tǒng)的設(shè)計(jì)者必須回答下列問(wèn)題:系統(tǒng)中哪些節(jié)點(diǎn)要求密鑰,如何將密鑰裝配到節(jié)點(diǎn)中,密鑰的更換按照什么頻率,系統(tǒng)在何處產(chǎn)生密鑰,如何保護(hù)數(shù)據(jù)和密鑰,這就是密鑰管理的相關(guān)問(wèn)題。在這一部分,還可以通過(guò)一些密碼實(shí)際使用過(guò)程中的教訓(xùn)來(lái)進(jìn)一步向同學(xué)們闡明密碼的安全使用[2]114-130。最后,再安排一些典型的實(shí)例來(lái)解釋密碼算法的綜合應(yīng)用,如安全電子郵件PGP、Windows操作系統(tǒng)的加密文件系統(tǒng)(EFS)、網(wǎng)絡(luò)安全協(xié)議(IPsec和SSL)、無(wú)線加密協(xié)議(WEP和WPA)、雙因素動(dòng)態(tài)口令卡、Unix系統(tǒng)口令機(jī)制和安全數(shù)據(jù)庫(kù)系統(tǒng)等。這些例子可以使同學(xué)們對(duì)所講的密碼算法和原理有感性的認(rèn)識(shí)。
2.5重視對(duì)密碼算法基本思想的理解
回顧密碼學(xué)的發(fā)展歷史,可以看到一條清晰的研究思路:
1) 在任意單表代替密碼可以被基于語(yǔ)言統(tǒng)計(jì)特性的分析方法破譯之后,出現(xiàn)了多表代替密碼,就是為了對(duì)抗統(tǒng)計(jì)分析,想使明文的統(tǒng)計(jì)特性消失在密文的統(tǒng)計(jì)特性中。
2) 多表代替密碼的典型例子是維吉尼亞密碼,在重碼分析法和重合指數(shù)法發(fā)明之前,維吉尼亞密碼被安全地使用了200多年。
3) 在對(duì)稱密碼算法發(fā)展了數(shù)千年,其密鑰的秘密傳送成為保密系統(tǒng)的巨大困難時(shí),1976年,Diffie和Hellman在其《密碼學(xué)新方向》一文中提出了不對(duì)稱密碼的思想,首次證明發(fā)送端和接收端無(wú)密鑰傳輸?shù)谋C芡ㄐ攀强赡艿模撬麄儾](méi)有在文中提出一種實(shí)際可用的算法,直到1977年,Ron Riv