李素娟
(南京工業大學理學院,江蘇 南京 210009)
《密碼學》課程教學方法和設計的探索
李素娟
(南京工業大學理學院,江蘇 南京 210009)
密碼技術作為信息安全的核心技術之一,能有效保障信息的私密性、認證性、完備性和不可否認性。針對本科密碼學課程的特點,結合南京工業大學信息與計算科學專業教學的實際,討論課程的教學方法問題:首先分析了密碼學課程的內容和特點;其次從知識體系、實踐環節、考核方式等幾個方面對教學方法和課時安排進行了探討和設計,并將其應用到密碼學課程的實際教學中,取得了較好的教學效果,為同行提供了一定的參考價值。
密碼學;教學設計;信息安全
近年來,隨著信息安全技術的逐步深入人們的日常生活,對信息安全的理論和應用研究逐漸升溫。密碼技術作為信息安全的理論核心,也為越來越多的人所認可,因此近年來《密碼學》成為各類高等院校本科生信息類相關專業相繼開設的課程。我校也在2004年面向信息與計算科學專業2001級及其以后年級學生開設了《密碼學》的選修課程。本文通過總結作者近6年來在《密碼學》課程的教學經驗,從知識體系、實踐環節、考核方式等幾個方面對教學方法和課時安排進行了探討和設計,給出了教學總結和建議。
密碼學作為一門比較新興的課程,是集數學、計算機科學以及通信與信息系統等多學科一體的交叉學科,涉及到的內容非常廣泛。從內容的聯系上講,密碼學可以說是多個學科的一個交匯點,這些學科包括:應用數學、通信、計算機應用、信息處理和電子電路技術等。從應用數學的角度看,密碼學是數論、抽象代數、計算復雜度等理論的一種應用;從通信的角度看,密碼學是保密通信和通信網絡安全的研究內容;從計算機應用的角度看,密碼學是數據安全、計算機安全和網絡安全的研究內容;從信息處理的角度看,密碼是信息處理的一種形式。密碼學的研究內容決定了它的交叉性和廣泛性,這使密碼學從不同的方面得到研究,從而得以不斷發展。
就密碼學內容而言,密碼學主要由密碼編碼學和密碼分析學兩部分組成。考慮到本科生的實際情況,我們選擇了相對偏重密碼編碼學的教材。我校采用的是由武漢大學出版社出版,張福泰教授主編的《密碼學教程》一書,該書是信息安全系列教材中的一個部分。
密碼學教材不論是外文版還是中文版在內容設置上主要包含兩大模塊:加密、認證[2]。加密部分主要分為古典密碼、私鑰密碼體制和公鑰密碼體制;認證部分主要包括數字簽名和雜湊函數、密碼協議等。各部分體系除了介紹相關的數學知識之外,主要介紹各種典型的密碼算法,比如:私鑰密碼體制主要以數據加密標準(D ES)和高級加密標準(A ES)為主;而公鑰密碼體制中,主要以基于大數分解困難問題的RSA算法、基于離散對數困難問題的ElGamal算法和基于橢圓曲線(ECC)的密碼體制;在數字簽名方面,主要以RSA數字簽名、El-Gamal數字簽名和數字簽名標準(DSS)為主;密碼協議主要以密鑰管理協議、密秘分享協議和認證協議為主。這些內容涉及的知識背景和應用背景多,覆蓋面廣,實踐性強,如何合理處理好這些知識點,既要注意點到面,又要重點突出、深入淺出,這就為我們的教學提出了要求。
目前的密碼學體系主要是建立在代數學知識基礎之上的,考慮到我校信息與計算科學專業的已經學過高等代數和離散數學,對群、環、域的知識已經比較熟悉,所以在密碼學課程的數學基礎介紹部分就會省下不少的課時。正是因為如此,我們的理論教學就更關注于如何讓學生建立密碼學的基本概念、基本模型以及基本理論,并最終達到信息安全的立體體系的建立。
我校信息與計算科學專業深知密碼學對信息學科的重要性,安排了48學時的教學,其中理論教學32學時,上機實驗12學時。下面就是我校《密碼學》課程教學內容和課時分配的安排方案。
大致教學內容可以分為以下部分:
(1)密碼學概述(2學時)。這部分的主要內容包括:密碼學的基本概念、密碼學的體系結構、發展簡史和密碼學的應用等等。本部分目的是形成對密碼學整體框架的初步印象,為今后的學習打下基礎。在這一環節筆者認為讓學生對密碼學要產生興趣非常重要,所以對與密碼學的應用部分筆者采用了播放紀錄片“密碼在二戰中的重要作用”。事實證明,效果非常好。
(2)古典密碼體制(2學時)。這一章節的學習通過讓學生描述如果你古代的一個密碼學家,對于秘密信息的隱藏你會如果去做展開。從而引出代換密碼和置換密碼這兩大主線。實踐表明,這種讓學生自主創新的教學方法引起了學生特別大的學習興趣。
(3)現代分組密碼(10學時)。主要內容包括分組密碼的設計方法;D ES、A ES和ID EA加密算法。本部分首先在介紹完本章所需數學知識(有限域上的求模逆運算)的基礎上,筆者對與D ES算法的學習采用了將學生4人一組的方式,并且選出小組負責人。讓他們先自習,如有疑問先小組內部討論,要求畫出D ES算法的數據結構圖。小組內部解決不了的,再拿出來大家一起討論。這種學習方式有效的提高了學生的積極性,同時更培養和提高了他們的自學能力。
(4)流密碼(4學時)。主要內容包括流密碼的原理、有限狀態自動機、線性反饋移位寄存器、RC4和流密碼算法SNOW2.0。本部分目的是介紹流密碼的基本思想和方法。可事先準備好相關代碼材料,課堂演示線性和非線性反饋移位寄存器等的實現,效果很好。
(5)公鑰密碼體制(6學時)。主要內容包括公鑰密碼的原理;數學基礎知識;RSA公鑰密碼體制;ElGamal公鑰密碼體制;D2H密鑰協商方案和橢圓曲線密碼體制。本部分主要介紹公鑰密碼的基本思想——單向函數的概念和應用和幾個加密算法。由于涉及數論中離散對數、大數分解、平方剩余概念的初步知識,而且相關的數學理論公式繁多,理解起來有一定難度。但這些數學理論應用到加密算法后,都有相應的快速算法,如RSA加密算法中有模密快速算法、大數分解算法,ElGam al有簡單的離散對數算法,并且這些快速算法的程序代碼都已經很成熟,仍采用“結合代碼講解算法”的方法,從而利于學生的理解和接受。
(5)密鑰管理和Hash函數(4學時)。主要內容包括密鑰分配的模式;密鑰傳送;密鑰協商;密鑰托管;秘密共享以及Hash函數。這部分的重點是(t,n)門限秘密分享方案。需要講清楚多項式插值公式。
(6)數字簽名和雜湊函數(4學時)。內容包括:數字簽名的基本概念;RSA數字簽名方案;El-Gamal數字簽名;Schnorr數字簽名;數字簽名標準(DSS)和橢圓曲線上的數字簽名方案。本部分目的是介紹數字簽名的原理和各種常見的基本算法。涉及的數學基礎與公鑰密碼相同。課堂實例教學過程中進行現場演示數字簽名的使用。另外,可以結合不同的應用環境,給學生多介紹不同的數字簽名,如代理簽名、盲簽名、群簽名等等,以更好地理解簽名的認證作用,同時也可以讓學生了解該研究方向的前沿知識。
(7)身份識別(2學時)。身份識別的概念;強調身份識別;身份識別協議;本部分目的是介紹身份識別的基本思想和常見協議。具體實驗是:驗證碼的使用,使學生感受到密碼學的思想其實就一直在我們身邊。
(8)認證理論與技術(2學時)。認證模型;認證常見的攻擊和對策;認證協議;Kerberos系統。本部分目的:介紹常見的認證攻擊、對策和具體實例。要求學生比較各種協議的優缺點。
密碼學是信息安全的基礎理論課程,同時又是一門實踐性很強的學科。在實踐教學方面,主要是以實驗和課程設計為主,其目的是讓學生了解各種密碼算法的設計和實現,通過編程實現相應的密碼算法,深入理解密碼算法的步驟、設計思想,以及每一步對效率的影響。這其中尤其要求學生注意實際實現算法和理論算法之間的差距所在,以及在編程實現中應該注意的問題。
我校的實踐教學分為以下四個實驗環節:
實驗一:Euclid算法實驗(2學時);
實驗二:DES算法實驗(4學時);
實驗三:RSA算法實驗(3學時);
實驗四:Diffie2Hellman密鑰交換算法實驗(3學時)。
這些基礎實驗環節的實現過程,主要采用的是“一題一驗收”的方法。對于每個題目而言,學生在進行實驗之前都必須提前交好預習報告;在實驗完成之后,統一檢查,并形成驗證結果報告。對于工作量相對較多的實驗(二),筆者將學生分成4人一小組(和教學環節的小組是同一組),自由分工合作完成同一個實驗。這樣既提高了學生密碼學的知識熱情,也培養了學生的團體協作精神以及掌握軟件開發知識的興趣。在驗收實驗結果時,要求每組選出一個主答辯人進行答辯,而且還抽查小組其他成員在設計中的具體分工。最后根據理論課表現和實驗設計成績綜合評定學生成績。這種方法模擬了今后學生畢業后工作的模式,讓學生提前充分體驗,以做好應對以后工作的挑戰。
既然密碼學是一門專業選修課,這樣就有利于我們能夠采用靈活多樣的考核方式來對學生進行考核。我校這門課程的考核體系大體可分為這樣幾個部分:實踐環節(30%),科研能力(撰寫論文或報告情況)(20%),平時作業(10%),期末考試(40%)。我們通過這種方法全方位考察學生學習的綜合水平,從而帶動了學生整體素質的進一步提高。
本文針對本科現代密碼學課程的特點,結合我校信息與計算科學專業教學的實際,討論了本課程的教學方法問題:首先分析了密碼學課程的內容和特點;其次從知識體系、實踐環節、考核方式等幾個方面對教學方法和課時安排進行了探討和設計,并將其應用到我校密碼學課程的實際教學中,取得了較好的教學效果,為同行提供了一定的可參考價值。
[1] 孫 菁,傅德勝.《密碼學》課程教學方法的探索與實踐[J].計算機教育,2006(9):28-30.
[2] 溫鳳桐.現代密碼學課程教學方法與探索[J].計算機教育,2009(5):66-67.
[3] 丁 勇.信息與計算科學專業密碼學教學研究[J].桂林電子科技大學學報,2008(28):131-133.
An Exploration of the Teaching Method of Cryptography and Its Implementation
LI Su-juan
(College of Sciences,Nanjing University of Technology,Nanjing 210009,China)
Cryptography is one of the core technologies of information security,which can effectively provide the secret,the authentication,the integration and the unforgeability.Combined with the reality of teaching in the information and computation science discipline of Nanjing University of Technology,the paper focuses on the teaching method of the course in the light of the character of cryptography.Firstly, it analyses the content and the characteristic;then it discusses and implements the teaching methods and the arrangements from the know ledge system,the practice and the way of examination etc.It has been executed in practice and obtained good results;thus it may have meaningful implications.
cryptography;teaching implementation;information security
G642
A
1671-7880(2010)01-0077-03
2009-12-14
“十一五”國家課題(FIB070335-A2);南京工業大學青年教師學術基金(39704023)
李素娟(1978— ),女,江蘇泰州人,講師,博士生,主要研究方向:信息安全與密碼學。