邊勝琴 姚宣霞 崔曉龍 鄭榕



摘? 要 現代密碼學是信息安全專業的主干課程,從課程的特點和工程應用的角度出發,在實驗內容和實驗方法上進行教學改革,驗證型實驗側重理解和應用;算法設計實驗訓練編程思想和工程實踐能力;綜合型實驗側重密碼分析。實踐證明,學生學習的積極性有所提升,教學質量和教學效果總體讓人滿意。
關鍵詞 現代密碼學;信息安全;實驗;編程
中圖分類號:G642.0? ? 文獻標識碼:B
文章編號:1671-489X(2020)10-0084-03
Abstract Modern cryptography is the main course of information security major. From the perspective of the characteristics of the course and engineering application, the teaching reform is carried out in the experimental content and methods. The verification experi-ment focuses on understanding and application; the algorithm design experiment, training of programming ideas and engineering practice ability; the comprehensive experiment focuses on cryptanalysis. Practice has proved that students enthusiasm for learning has been improved, and teaching quality and teaching effect are generally satisfactory.
Key words modern cryptography; information security; experiment; programming
1 引言
隨著計算機網絡的廣泛應用,各種移動支付已經成為人們生活的一部分。科學技術為生活帶來便利的同時,也帶來越來越多的信息安全問題,信息安全已經受到社會各界的高度重視。2015年,網絡空間安全被定為一級學科,設在工學門類。密碼技術作為信息安全的核心技術,獲得越來越多的關注。
密碼學是一門集數學、計算機應用、通信科學等學科于一身的交叉學科,內容廣泛,實踐性強,各個知識點之間既相互獨立又聯系緊密,僅靠理論教學難以達到教學目標,必須理論聯系實際,結合具體實驗環境,開展實驗教學,提高實驗教學質量,激發學生學習興趣,提高學生的工程應用能力。
2 密碼學課程的特點
現代密碼學是北京科技大學信息安全專業的必修課,開設在第四學期,學生已經修完高等數學、信息導論等先修課程,具備了高等數學的必要知識。課程教學目標是學生能夠掌握密碼學算法的原理,對加密、解密技術具有一定的實際應用能力,為今后從事信息安全理論研究工作奠定基礎。
課程的主要內容包括密碼學的基本概念、古典密碼學、對稱密碼、非對稱密碼、流密碼、數字簽名、散列函數等,涵蓋了密碼學的多個方面。密碼學理論基礎比較深奧,尤其是抽象代數和數論部分,學生理解起來有一定難度。密碼學實驗開設的目的在于:
1)幫助學生理解基礎理論,將算法核心部分分步進行演示;
2)提供實踐應用環境,幫助學生掌握密碼算法的應用方法,提高學習興趣。
實驗最好采取多種實驗方式,提高生動性、可視性、真實性,最好將密碼算法的迭代過程一步一步地顯示出來,幫助學生盡快理解和掌握密碼理論。
3 密碼學實驗內容組織
密碼學涉及算法較多,邏輯推理性強,課程教學具有一定難度,單純以教師講授為中心的教學,存在以下幾個方面的問題:
1)教學方法單一,學生學習興趣不高,難以從中獲得探究樂趣;
2)理論抽象,學生對知識的理解難以深入,編程實現困難;
3)理論與實踐脫節,學生不了解密碼學在工程技術方面的應用。
為了解決上述問題,提高學生的工程應用能力,在課程內容和實驗設置上做了一些改進:
1)理論課堂,在基本概念和基本理論教授的基礎上,增加密碼分析和密碼破譯環節,提高學生興趣;
2)從經典算法的源代碼入手,分析算法的核心部分,討論算法的復雜度,選擇部分算法讓學生自己編程實現,提高學生的動手能力;
3)從行業案例出發,讓學生感受密碼學的用途,激發積極探索的學習熱情(電子支付、身份認證、人臉識別和數據安全等知識點在實際生活中的應用廣泛,相應的案例不難找出)。
密碼學實驗一共12學時,包括驗證型實驗、算法設計實驗、綜合應用實驗。實驗教學內容需要合理安排,按照由易到難、由簡單到綜合的原則,選擇有代表性的經典的算法進行學習,重要的是讓學生理解算法的設計思路,學會應用,培養密碼學思維方式。實驗目的是讓學生掌握信息的保密性、認證性、完整性和不可否認性的屬性,以及這種屬性的理論保證。具體學時安排如表1所示。
4 密碼學實驗教學方法
實驗設備主要有兩種,分別是西普信息安全實驗平臺、紅亞信息安全云平臺。學生通過客戶端能訪問平臺服務器,選擇相應的課程模塊,即可進行相應的實驗。實驗平臺不僅提供經典密碼算法,還提供部分攻擊和防御工具,比如端口掃描、漏洞掃描、密碼破解、數據庫入侵、Web攻擊、緩沖區溢出等,交互性比較好,學生上手容易。在教學過程中,教師根據不同的實驗類型提出不同的要求:驗證型實驗,主要側重理解和應用;流密碼算法,面向字節,要求學生自己編程實現;雜湊函數,側重綜合應用和分析,主要是觀察輸入和輸出之間的關系,改變一個字符,產生的消息摘要會怎么變化。
DES和AES密碼? 對稱密碼DES和AES算法采用驗證方式學習。數據加密標準(DES)是由IBM公司研制的,美國國家標準局1977年批準它供非機密機構保密通信使用。它是一種典型的傳統密碼體制,主要采用換位和置換方法加密,是目前最為常用的分組密碼系統。數據以64位為一組進行加密,密匙長度是56位(因為每個第八位都用作奇偶校驗),密匙是任意的56位的數,而且可以任意改變。弱秘鑰問題在DES算法中不會出現,算法的保密性主要依賴于秘鑰的安全性,因為加密和解密的算法相同。
DES自行編程實現的難度較大,因為算法針對二進制進行運算,涉及的矩陣非常多,矩陣里面的元素,每一輪都會全部發生改變。針對DES和AES算法,主要是讓學生讀懂源程序,理解置換和迭代,能夠正確地使用算法進行加密和解密。DES程序運行結果如圖1所示。
流密碼算法? 流密碼部分,要求學生編程實現RC4和SM4,掌握序列密碼的基本原理、實現方法及加解密特點,并分析算法的安全性和優缺點。加密過程指出明文、密鑰、所得密文;解密過程指出密文、密鑰、所得明文是否符合預期結果,如果不符合,簡單分析一下原因。實驗報告要給出算法流程圖和關鍵代碼。
RC4是Ron Rivest于1987年為RSA公司設計的一種加密算法,面向字節操作,具有密鑰長度可變的特點,是目前為數不多的公開的流密碼算法。目前的RC4至少使用128位的密鑰。RC4的算法可簡單描述為:對于n位長的字,有共N=2n個內部置換狀態,矢量S=S[0],S[1],…,S[N-1],這些狀態是保密的。
對每個S[i],根據當前S的值,將S[i]與S中的另一個元素置換,當S[N-1]完成置換后,操作再從S[0]開始重復。加密時將K值與下一個明文字節進行異或運算;解密時將K值與下一個密文字節進行異或運算。RC4程序運行結果如圖2所示。
實驗中有一個問題需要注意,那就是于密文和明文格式的轉換:從text轉換為16進制,再從16進制轉換為text文本。否則,輸出的ASCII碼值有時會超出有符號含義的碼值范圍,會顯示亂碼;轉換成16進制就沒有這個問題了。
雜湊函數SHA-1? SHA-1散列算法的輸入消息以512 bit的分組為單位處理,輸出是160 bit的消息摘要。SHA-1算法能很好地對抵抗強行攻擊。同時,因為SHA-1算法的循環步驟有80次,所以其運行速度比較慢。在西普實驗平臺上,測試向量文本框中輸入四個26個字母的序列,點擊“運行”,SHA-1算法的運行結果會出現在信息摘要文本框中。依次執行第一輪變換、第二輪變換、第三輪變換……最后得到該分組的信息摘要結果。雜湊函數SHA-1分步演示結果如圖3所示。
5 結語
加強信息安全人才實踐能力培養,應該從理論教學和實驗教學同時入手,不斷擴展和完善,理論教學側重理解和算法分析,實驗設計側重應用和實現,激發學生學習興趣,拓展學生專業視野,培養學生解決實際問題的能力以及靈活應用的工程實踐能力。
參考文獻
[1]郭華,李舟軍,張習勇.從程序思維能力看密碼學實驗的教學[J].計算機教育,2014(13):35-38.
[2]潘林,王金雙,陳融,等.基于CrypTool的應用密碼學實驗設計[J].計算機教育,2015(6):101-103.
[3]馬秀文.密碼學課程教學方法的探究:以天津工業大學為例[J].課程教育研究,2018(37):218-219.
[4]吳旭光,韓益亮.密碼學實驗課程SPOC建設探討[J].計算機教育,2018(3):32-35.
[5]李景濤,劉洋.面向密碼學基礎的互動式教學方法研究[J].計算機教育,2018(9):40-43.
[6]侍偉敏,周藝華,楊宇光,等.信息安全專業密碼學課程體系的建設[J].計算機教育,2018(3):124-127.
[7]李曉偉,陳本輝,楊鄧奇.應用型信息安全專業密碼學課程創新探索[J].高教學刊,2019(1):41-43.