侍偉敏,周藝華,楊宇光,姜 楠
(北京工業(yè)大學 計算機學院,北京 100142)
隨著互聯(lián)網(wǎng)的快速發(fā)展,信息安全日益受到重視,特別是斯諾登事件之后,世界各國更是加強了信息安全的建設工作[1]。國內(nèi)有80多個高校開設了信息安全本科專業(yè),北京工業(yè)大學信息安全專業(yè)以計算機科學與技術一級學科、信息安全北京市重點(交叉)學科為支撐學科,以“卓越工程師培養(yǎng)計劃”[2]為目標進行信息安全本科專業(yè)人才的培養(yǎng)。
密碼學是信息安全專業(yè)的基礎課程,它是研究密碼學編碼和密碼學分析的綜合性應用科學,是保證信息系統(tǒng)的保密性、認證性、完整性和不可否認性等屬性的重要工具[3-4]。其中,各種加密和認證技術是實現(xiàn)網(wǎng)絡安全環(huán)境中如電子政務和電子商務等系統(tǒng)的必要手段[5]。然而,作為信息安全專業(yè)重要的基礎課程,密碼學的課程體系建設是否完善直接影響后續(xù)專業(yè)課程的教學質(zhì)量和學生對信息安全專業(yè)的整體把握。
目前北京工業(yè)大學信息安全專業(yè)僅開設密碼學數(shù)學基礎課程和密碼學課程,要想構建完善的密碼學課程體系還存在以下不足。
1)密碼學數(shù)學基礎課程開設少。
密碼學涉及豐富的數(shù)學知識,主要包括代數(shù)、組合論、初等數(shù)論、概率論、隨機過程、圖論、數(shù)理統(tǒng)計、信息論、計算復雜性等[6]。目前信息安全專業(yè)僅開設了高等數(shù)學、線性代數(shù)、概率論與數(shù)理統(tǒng)計、集合與圖論課程,而對于公鑰密碼算法涉及的群、環(huán)、域,橢圓曲線,格運算等內(nèi)容都沒有包含,因此,需要開設相應的課程來彌補以上內(nèi)容。
2)密碼學算法實驗安排不合理。
目前,信息安全專業(yè)密碼學分課堂講授和實驗兩部分,在一定程度上注重了理論與實踐相結合,但對密碼學的實驗安排還存在不合理的現(xiàn)象。首先,實驗算法的內(nèi)容太少,僅有對稱密碼的DES和非對稱的RSA算法實驗,對于學生深入理解不同類型密碼算法顯然不夠;其次,除了選用一些經(jīng)典密碼算法DES和RSA算法之外,應該與時俱進,設置較新的密碼算法。
3)無專門開設密碼學實踐方面的課程。
密碼學具有很強的實踐性,比如解決網(wǎng)絡應用環(huán)境中不可或缺的重要屬性保密性、認證性、完整性和不可否認性都需要借助密碼學的各種算法實現(xiàn)。由于密碼學的最終學習目標是培養(yǎng)和造就滿足國家和行業(yè)需求的工程型安全人才,解決具體的國家或行業(yè)安全問題,因此,需要教師在密碼理論課程學習的過程,除了通過課堂講授幫助學生了解密碼學的基礎原理和思想,還需要通過不同類型密碼算法的編程實現(xiàn),讓學生更深入地理解密碼算法設計的流程和方法;更重要的是針對某類信息安全問題,運用所學密碼學理論設計一個關于某類信息安全問題的密碼應用系統(tǒng)或方案,培養(yǎng)學生設計信息系統(tǒng)安全解決方案和實現(xiàn)相應系統(tǒng)的專業(yè)能力和團隊協(xié)作能力。因此,對信息安全專業(yè)的學生來說,在開設密碼學這門課之后,再開設關于密碼學的綜合設計實踐課程是不可缺少的。
圖1 密碼學課程建設體系結構圖
密碼學課程體系是信息安全專業(yè)教學和科研工作的基礎和核心,其最終目標是培養(yǎng)創(chuàng)新型、實用型的信息安全專用人才。根據(jù)各門密碼類具體課程的定位內(nèi)容以及前修后續(xù)關系,筆者認真梳理了其課程體系的邏輯關系,給出密碼課程體系關系見圖1。
如圖1所示,從縱向劃分主要包括密碼學基礎、密碼學算法、密碼學應用和密碼學實踐4個層面。從橫向劃分,第1—4學期主要開設一些關于密碼學數(shù)學基礎課程,包括高等數(shù)學、集合與圖論、概率論與數(shù)理統(tǒng)計、密碼學數(shù)學基礎和信息論與編碼;第5學期開設密碼學算法課程,即密碼學;第6學期開設密碼學應用課程,即密碼學技術;第7學期開設密碼學實踐課程,即密碼學綜合設計;第5—7學期開設一些關于密碼學前沿技術講座。各個環(huán)節(jié)的具體內(nèi)容如下。
1)密碼學基礎。
密碼學基礎層面主要開設了4門基礎數(shù)學、密碼學數(shù)學基礎和信息論與編碼課程。其中基礎數(shù)學作為本專業(yè)的公共必修課程主要包括高等數(shù)學、線性代數(shù)、概率論與數(shù)理統(tǒng)計、集合與圖論。
由于數(shù)論和代數(shù)結構是解決密碼關鍵技術的理論基礎,比如公鑰密碼算法涉及的群、環(huán)、域,橢圓曲線,格運算等內(nèi)容都沒有在以上基礎數(shù)學課程內(nèi)包含,而現(xiàn)有各學科教學體制中缺乏專門介紹密碼以及信息安全涉及的數(shù)學知識的課程,因此,為了適應信息技術發(fā)展的需求,將密碼學數(shù)學基礎作為一門獨立的專業(yè)基礎課程,主要講授整數(shù)的可除性、同余、二次同余與平方剩余、原根與指標、代數(shù)基礎和橢圓曲線6個章節(jié),各章節(jié)的主要內(nèi)容如下。
(1)整數(shù)的可除性章節(jié)包括整除、最大公因數(shù)、最小公倍數(shù)、素數(shù)的概念、歐幾里得除法、數(shù)學基本定理;整數(shù)的表示、廣義歐幾里得除法。
(2)同余章節(jié)包括同余、同余式的概念、剩余類、歐拉定理、費馬小定理、一次同余式、中國剩余定理。
(3)二次同余與平方剩余章節(jié)包括二次同余式、平方剩余的概念、模為奇素數(shù)的平方剩余與平方非剩余、勒讓德符號、雅可比符號、模p平方。
(4)原根與指標章節(jié)包括指數(shù)、原根及基本性質(zhì)、指標、高次同余式的求解。
(5)代數(shù)基礎章節(jié)包括群的定義和性質(zhì)、陪集、置換群、循環(huán)群、環(huán)和域的基本概念、理想和商環(huán)、多項式環(huán)、域的有限擴張、有限域的性質(zhì)、有限域的表示、有限域上的多項式。
(6)橢圓曲線章節(jié)包括基本概念、橢圓曲線的加法原理、有限域的橢圓曲線等。
在系統(tǒng)介紹與密碼學關系密切的數(shù)學知識以及一些常用的計算方法的同時,應該通過一些應用實例使學生了解數(shù)學知識在信息安全中的應用,通過這些實例幫助學生更好地理解抽象的數(shù)學知識,為進一步應用數(shù)學知識解決密碼學理論與實踐問題奠定扎實的數(shù)學基礎。
另外,密碼編譯算法設計、密碼系統(tǒng)安全性和密碼算法評價等均以信息論為基礎,因此,在密碼學數(shù)學基礎開設的第3學期,作為專業(yè)選修,又開設了信息論與編碼課程。
2)密碼學算法。
密碼學算法層面主要以密碼學課程為主,圍繞密碼學算法,分課堂講授和實驗兩部分。其中課堂講授主要有6個章節(jié),即緒論、序列密碼、分組密碼、公鑰密碼、消息認證和雜湊算法、數(shù)字簽名,其中各章節(jié)的主要內(nèi)容如下。
(1)緒論主要介紹密碼學基本概念、密碼學發(fā)展、密碼體制與密碼分析、密碼體制的安全性、古典密碼體制。
(2)序列密碼介紹序列密碼的基本概念、線性反饋移位寄存器、線性移位寄存器的一元多項式表示、m序列。
(3)分組密碼主要介紹分組密碼的基本概念、分組密碼的設計原則、分組密碼的結構、分組密碼的安全性、DES、AES。
(4)公鑰密碼主要介紹公鑰密碼概述、RSA、背包密碼體制、ELGamal密碼體制、Rabin密碼體制、橢圓曲線密碼體制。
(5)消息認證和雜湊算法主要介紹雜湊函數(shù)概念及安全性、雜湊函數(shù)的構造方法、MD5、SHA、Hash函數(shù)、消息認證碼。
(2)適當提前“未知數(shù)、變量的使用”“代數(shù)式的運算”尤其是“代數(shù)式的運算”最早開始年級;適當推后代數(shù)思維知識主題最晚結束年級.中國代數(shù)思維課程內(nèi)容階段跨度是六國中最小的國家,所屬4個知識主題均只屬一個階段,連續(xù)性較弱;然而,代數(shù)思維作為聯(lián)系“算術”與“代數(shù)”的橋梁,在澳大利亞、英國、美國、南非均橫跨小學、初中、高中3個階段,適當延長中國整個代數(shù)思維課程內(nèi)容的設置時間顯得很有必要.
(6)數(shù)字簽名主要介紹數(shù)字簽名的基本概念、利用公鑰密碼實現(xiàn)數(shù)字簽名、數(shù)字簽名標準DSS。
通過課堂講授可以讓學生掌握課程教學內(nèi)容中規(guī)定的一些基本概念、基本理論和基本方法。其中對一些基本方法的核心思想的分析,學生能夠對這些基本概念和理論有更深入的理解,使之有能力將它們應用到一些問題的求解中。
另外,在掌握密碼學基本原理和主要算法的基礎上,應結合實驗課程教學,更進一步讓學生理解密碼學算法的主要流程和典型方法,加深對理論的理解,為之后密碼學綜合設計部分積累一定的實踐經(jīng)驗。該部分主要包括算法驗證和算法實現(xiàn)兩種實驗,可選用不同類型的密碼算法,如古典密碼算法、分組密碼算法、序列密碼算法和公鑰密碼算法等。其中在算法驗證實驗過程中,通過各類密碼算法的驗證軟件,學生能更加深入地理解不同類型密碼算法的原理和流程,更清楚地明白這些密碼算法的設計細節(jié)、工作模式、參數(shù)選擇等;另外在算法實現(xiàn)實驗的過程中,通過利用程序設計語言實現(xiàn)不同類型的密碼算法,除了讓學生更好地掌握密碼算法設計的機理和方法之外,更重要的是幫助學生學會逐步分析算法的結構,培養(yǎng)學生的軟件實現(xiàn)能力、查閱資料能力、獲取適當工具能力和表達能力等。
3)密碼學應用。
密碼學應用層面開設了密碼學技術,該課程是基于密碼算法解決安全問題的重要技術,主要包括密鑰管理技術、認證技術和安全協(xié)議3個部分,具體內(nèi)容如下。
(1)密鑰管理技術主要包括密鑰的生成、密鑰的分發(fā)、密鑰的驗證、密鑰的更新、密鑰的存儲和密鑰備份等技術。
(2)認證技術主要包括相關的認證協(xié)議如單向認證協(xié)議、相向認證協(xié)議、三向認證協(xié)議和群組認證協(xié)議以及認證系統(tǒng)框架(如基于對稱密鑰的認證框架Kerberos、基于公鑰證書的認證框架PKI技術、基于IBE的認證框架等),其中重點是講解基于公鑰證書的認證框架PKI技術(包括PKI概念及組成、數(shù)字證書、PKI技術實現(xiàn)、PKI提供服務、PKI應用系統(tǒng))。
(3)安全協(xié)議主要包括應用于電子郵件的安全協(xié)議、應用于電子商務的安全協(xié)議以及可信計算中密碼應用技術,其中電子郵件安全協(xié)議介紹PGP、S-MIME、PEM,電子商務安全協(xié)議介紹安全套接層協(xié)議SSL和安全電子交易協(xié)議SET,可信計算中密碼應用技術介紹密碼學對可信計算的支撐作用,靜態(tài)/動態(tài)可信機制和可信計算認證流程。
4)密碼學實踐。
密碼學實踐層主要設置了密碼學綜合設計課程,即針對某類信息安全問題,運用所學的密碼算法,設計出一個密碼應用系統(tǒng)或方案,如基于數(shù)字證書的身份認證系統(tǒng),即實現(xiàn)認證中心CA為用戶頒發(fā)X509證書,了解數(shù)字證書的格式、證書的申請、審核、簽發(fā)、獲取及撤銷等實現(xiàn)過程,之后再基于頒發(fā)的數(shù)字證書實現(xiàn)身份的認證功能。綜合設計實驗使學生獲得設計、分析和解決信息安全問題的綜合體驗,增強了學生理論結合實際的能力,培養(yǎng)了學生設計信息系統(tǒng)安全解決方案和實現(xiàn)相應系統(tǒng)的專業(yè)能力和團隊協(xié)作能力。
5)密碼學前沿技術講座。
隨著計算機、電子和通信等技術的不斷進步,密碼學也得到了快速發(fā)展。然而,密碼學教材由于篇幅限制無法涵蓋最新的密碼技術。為了開闊學生的視野,在第5—7學期開設一些關于密碼學前沿技術講座,每個學期聘請外校專家或從事密碼學研究的教師開設1~2次的講座,比如講解關于基于屬性的密碼學、輕量級密碼學、后量子密碼學和量子密碼學等最新進展以及密碼學在物聯(lián)網(wǎng)、大數(shù)據(jù)、智能電網(wǎng)、車聯(lián)網(wǎng)等較新領域中的應用技術,讓學生跟進密碼學最新發(fā)展動態(tài),了解先進的密碼學技術。這不僅開拓了學生視野,更重要的是增強了學生的學習興趣。
目前信息安全專業(yè)還不是一個很成熟的專業(yè),存在許多缺陷。密碼學作為國內(nèi)信息安全專業(yè)的重要基礎課程,針對信息安全專業(yè),如何建設密碼學課程體系是本文的核心研究內(nèi)容。當然,密碼學課程體系的建設和發(fā)展任重道遠,還需要繼續(xù)不斷嘗試和探索。
參考文獻:
[1]王鶴鳴. 從信息化發(fā)展歷程看密碼學發(fā)展——專訪西安電子科技大學通信工程學院王育民教授[J]. 信息安全與通信保密,2011(12): 13-15, 19.
[2]教育部. 教育部關于實施“卓越工程師教育培養(yǎng)計劃”的若干意見 [EB/OL]. (2011-1-8)[2017-09-19]. http://www.moe.gov.cn/publicfles/business/htmlfles/moe/s6342/201102/ xxgk_115066.html.
[3]鄭彥斌, 周星辰. 密碼學課程的教學探索[J]. 大眾科技, 2017, 19(210): 88-89.
[4]王昭. 密碼學教學與創(chuàng)新教育[J]. 計算機教育, 2011(6): 41-44.
[5]盧開澄. 計算機密碼學——計算機網(wǎng)絡中的數(shù)據(jù)保密與安全[M]. 3版. 北京: 清華大學出版社, 2003.
[6]孫菁, 傅德勝.“密碼學”課程教學方法的探索與實踐[J]. 計算機教育, 2006(9): 28-30.