梁德賽,胡俐蕊,陽建中,陳國斌
(欽州學院電子與信息工程學院,廣西欽州535012)
密碼學是研究編制和分析密碼的科學。是以分析研究和實現信息和數據的保密性、完整性、真實性和安全性等為目標的學科,是計算機科學與技術、信息安全以及信息科學等相關專業的一門重要專業課程,是集數學、計算機科學、信息科學、信息系統和通訊等多學科為一體的交叉學科。涉及的內容極其廣泛,是綜合性的尖端學科,它為信息安全提供了深刻的理論依據和豐富的應用實踐,是數學在信息學科中的典型應用[1]。它的出現深刻地影響和改變了人們的生產和生活狀態。該課程對培養學生的專業技能和信息安全防護意識和素養,開拓學生的視野,增強信息保密能力,具有重要的意義。
密碼學融合了數學、計算機科學、信息科學、電子與通信等多門學科的知識,涉及的知識點和內容繁多[2],特別是涉及的數學知識較多,往往會使學生學習密碼學感到吃力和乏味,容易產生畏難和厭倦情緒[3],使教學存在較大的難度。為了改善密碼學課程的教學效果,提高教學質量,廣大教育工作者進行了許多探索,張 恩等[4]探討了基于翻轉課堂的密碼學的教學方法,田有亮等[5]從算法思維的視角討論了密碼系統的形式化、模塊化教學思想,賈偉峰等[6]分析了密碼學課程的特點,針對密碼學教學中的問題提出了相應的對策,闡述了密碼學教學改革措施。如何從應用型人才培養的目標出發,在學生數學知識不足,課時不多,教學內容較為繁難的情況下,進一步克服困難,提高教學效果,我們需要探討有效的教學方法。
密碼學課程跨度廣、難度高,涉及多學科的知識,特別是數學知識,實用性很強,因此要以學校專業培養目標為導向,結合學生的實際,從一開始就要消除其神秘感,幫助學生克服畏難情緒。比如,在上密碼學第一次課時,可以將應用廣泛又廣為人知的RSA公鑰密碼加密解密算法的程序演示作為引例導入,設計加密和解密的可視化界面,通過信息加密和解密的運行演示,加以生動形象和精當的語言解說,引導學生對加密解密有個感性認識,從而對密碼學有個初步了解。此外,還可以通過一些經典的加密解密的影視片和歷史上一些有趣的故事來激發學生學習密碼學的興趣。
為克服“照本宣科”“滿堂灌”等枯燥乏味的說教方式,將案例驅動的啟發式教學融入課程教學中。
選擇的案例要具有實際應用背景,規模適度,有典型性。對涉及的內容應精雕細琢,仔細挖掘,精心設計教學計劃,引入真實案例于教學中。要緊密結合學生的認識水平,使教學更直觀、更生動、更形象,使語言更有感染力,努力激發學生的學習興趣。在教學中只有讓學生體會密碼學知識與現實生活的緊密聯系,認識到密碼學課程的重要作用,才能發揮學生學習的主觀能動性,使學生能結合案例實際,深入思考和總結,加深對密碼學知識的理解和靈活運用。
例如,RSA公鑰密碼體制案例,內容涉及數論、素數、模運算、冪運算及逆運算、歐幾里得算法、因式分解、費馬定理、歐拉定理、算法復雜性分析等數學知識,教學時要通過案例,使學生明白和靈活運用相關的數學知識,進而能熟練掌握。比如,利用歐幾里得算法,得到由公鑰求私鑰的公式,通過模冪運算及逆運算、歐拉定理,證明加密解密的可逆性,得到加密解密公式,在實驗課中讓學生自己動手編程實現。通過RSA公鑰密碼體制這個典型案例的教學,使學生深刻理解由公鑰求私鑰的公式,以及加密解密的公式。掌握了公式,也就掌握了加密解密的算法,再把RSA公鑰密碼應用于數字簽名中,并在實踐中加以靈活運用。這樣,通過典型案例,講解數學知識在加密解密算法中的應用,使學生切身認識到密碼學課程的重要性。通過精選典型案例,以點帶面,在密碼學課程教學過程中著力培養學生對數學知識的理解和運用,提高應用能力,對學生的能力提升會有很好的效果。
精選的案例,要能體現經典密碼算法思想。密碼學的核心內容由若干個密碼算法和模塊組成,對這些算法和模塊的理解、分析和運用,構成了密碼學課程教學的重點。同時要加強實驗教學,實驗項目和內容的設置也要體現典型案例的思想。然后布置相對應的作業和編程練習,讓學生自己動手編程。通過強化實驗教學過程,使學生了解經典密碼算法內容,同時也會加深對算法復雜度的理解。
密碼學課程不但理論性強,而且強調實踐的重要性。對于精選的案例,如對稱密碼體制,可以選擇DES、AES等算法,對公鑰密碼體制,可選擇RSA、ElGamal、ECC等算法,對它們的模型和工作原理,加以對比和類比,指出它們之間的異同,掌握它們的具體應用背景和實際應用情況,比較各密碼體制和算法的特點和優缺點,在實踐中豐富、完善和發展密碼算法。再如,對古典密碼,可指出古典密碼應用的悠久歷史和所發揮的積極作用,但隨著時代的發展和技術的進步,特別是隨著計算機技術的迅猛發展,從安全角度來考慮,古典密碼體制已不能提供有效的保護,必須要有更為有效的密碼體制,在這樣的背景下,對稱密碼和公鑰密碼逐漸取代了古典密碼。對稱密碼速度快,而公鑰密碼使用方便,各有優勢和不足,在實際應用中常常將兩者結合起來使用,比如,用公鑰密碼來處理加密密鑰,用對稱密碼來處理消息。在教學中,引導學生分析它們的異同,理清它們的關系,理解秘鑰是密碼系統的關鍵環節,并從整體上加以把握。
密碼學理論性和實踐性都很強,技術更新很快,教學時除了要講清傳統經典內容之外,還應該密切關注密碼學的最新進展和應用情況,在教學過程中要注意穿插和補充新知識。除了做好課堂教學之外,還應做好課后輔導答疑,加強課后反饋和師生互動交流;采取學研結合的方法,廣泛開展第二課堂活動,組織學生參加各類軟件比賽和大學生創新創業活動;吸收學生參加教師和學校的各類科研課題。通過各種途徑和手段,指導學生認真查閱和分析文獻資料,努力拓寬學生知識面,設法使學生獨立完成相應的項目,如安排AES、RSA、橢圓曲線密碼體制、基于離散對數的數字簽名等專題,作為一個個小案例讓學生獨立完成,以此作為課堂教學的補充和拓展,深化對密碼學課程的學習和理解,也讓學生對畢業設計作必要的準備。
教學過程的設計,要將課程設置成若干個適當的教學案例或“課程項目”,在教學過程的各個階段,讓學生在學習和實踐中自己動手編程完成。將這些案例或課程項目作為課程考評的重要環節,與常規的課程考核方法相結合,促使學生利用各種機會積極訓練自己的動手編程能力,有利于學生深入理解和掌握密碼學的內容。
在考核過程中,各項目小組展開討論,教師檢查學生在課程項目各階段的完成情況,根據項目的階段成果進行評分,對各小組及學生個人的工作進行點評和總結,要求評價有理有據。通過評價,使學生既學到了知識,端正了態度,加強了合作,增強了責任感,又把課程教學的考核評價貫穿到課程項目實施的整個過程中。
綜上,在密碼學課程教學中,要以培養目標為導向,根據密碼學課程特點,精選教學案例;結合學生的實際,通過多種途徑和方式,激發學生學習興趣;運用對比方法,講清各部分的聯系;采用靈活多樣的考核方式,加強實驗環節教學。幾年來的教學實踐表明,這些教學方法收到良好的效果。
[1]陳逢林.密碼學實驗課程的建設[J].安慶師范學院學報(自然科學版),2012,(1):108.
[2]崔艷榮.面向應用型人才培養的《密碼學》教學探討[J].長江大學學報(自然科學版),2012,(5):173-175.
[3]溫鳳桐.現代密碼學課程教學方法與探索[J].計算機教育,2009,(5):65-67.
[4]張恩,王歲花,代麗萍.翻轉課堂在密碼學課程教學中的應用案例[J].計算機教育,2016,(7):64-67.
[5]田有亮,王雪梅.算法思維在密碼學教學中的應用[J].科技創新導報,2015,(22):188-189.
[6]賈偉峰,楊禮波.密碼學的課程特點及教學方法探討[J].華北水利水電學院學報(社科版),2016,(3):169-170.