王占君 馬海英
摘要:針對《密碼學》課程存在學習難度大和講授枯燥的問題,本文首先詳細闡述該課程所需的數學理論基礎;然后,深入探討了該課程實踐教學環(huán)節(jié)的方法,給出研究密碼學的幾點建議;最后,結合實際分析了密碼學課程對改善本科生知識結構的重要性。
關鍵詞:密碼學;教學方法;數學基礎
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)36-0108-02
Abstract: For the problems that cryptography course is difficult to learn and is dull to teach, this paper firstly elaborates the mathematical theory required by this course; then, it discusses the methods of practical teaching of this course and gives some suggestions on researching cryptography. Finally, the importance of the course of cryptography in improving the knowledge structure of undergraduates is analyzed.
Key words: Cryptography; teaching method; mathematical foundations
1 引言
隨著移動通信和5G技術的快速發(fā)展,密碼學在網絡空間安全領域中的重要地位日益凸顯,《密碼學》課程在培養(yǎng)網絡空間安全應用型高級工程人才中顯得特別重要。密碼學理論知識為數據的機密性、完整性、抗抵賴性及身份認證提供了一種有效保障機制,已成為物聯網信息安全、網絡空間安全等領域的核心技術。古典密碼術是把明文消息經過一定的混淆手段變換成難讀懂的信息,用來隱藏機密信息,防止非法者獲知消息,讓合法用戶能夠還原成明文信息[1]。古典密碼學是一門將信息論和數學等學科集于一身的交叉學科[2],可以分為密碼編碼學和密碼分析學。密碼編碼學[3]通過編碼信息實現信息隱藏的學科,密碼分析學[4]是研究破譯密碼或分析密文,進而獲知隱私信息的科學,兩者既對立又相輔相成。現代密碼學從最基本的消息機密性延伸到密鑰管理、哈希函數、安全的通信協(xié)議等多個領域,是信息安全的核心學科之一。
2 密碼學課程的特點
密碼學作為一門專業(yè)課程,具有知識跨度廣、課程難度高的特點,理論性和應用性均比較強[5,6]?,F代密碼學所涉及的主要學科包括:信息論、概率論、數論、計算復雜性理論、近世代數等[7]。因此,密碼學課程需要有較好的數學基礎及必備的前置知識點,在學習過程中由淺入深,步步推進。對于很多密碼學算法中的困難性假設,比如大數因子分解問題、離散對數問題等,需要掌握數論和近似代數的基礎知識。密碼學課程的核心內容由許多密碼算法構成,在學習密碼學的過程中,通過對經典密碼學算法進行編程實現,理解算法的設計思路,并對算法的性能和安全性進行測試和分析,進而識別算法的優(yōu)勢和存在的不足。密碼學課程涵蓋的知識范圍非常廣,相關研究開展的也很多,利用最新文獻對相關問題做進一步的研究和探討,結合最新的密碼學應用,有效拓展自己的知識面。
3 密碼學課程的教學與研究方法
密碼學是以數論、矩陣論和近似代數等數學知識為基礎,為數據傳輸和存儲的安全性提供一種有效方法。本節(jié)首先列出密碼學課程需要掌握的數據基礎,重點闡述密碼學課程的實踐教學環(huán)節(jié),給出研究密碼學的建議。
3.1密碼學數學理論基礎
密碼學中,數學理論基礎主要包括有限域、同余及模運算、線性同余、中國剩余定理、二次剩余、單向函數與單向暗門函數等。由于數論是密碼學中最重要的數學基礎,因此,必須將數論作為密碼學的前置課程。有限域重點理解群、環(huán)、域的概念;同余及模運算主要包括同余基本運算、歐拉定理和費馬定理;利用歐拉定理和歐幾里得算法計算乘法逆運算;重點理解線性同余、中國剩余定理、二次剩余、指數函數、單向函數與單向陷門函數的定義,并結合具體實例應用到實際場景中。例如,流密碼需要學習有限狀態(tài)自動機、二元序列的偽隨機性、線性反饋移位寄存器和m序列;分組加密需要學習SP網絡和有限域基礎;公鑰密碼體制需要重點掌握完全剩余系、簡化剩余系、歐拉定理、群和循環(huán)群的概念和運算、橢圓曲線等理論知識。掌握這些數學理論知識是學習密碼學課程的前提。
《密碼學》課程的理論教學主要講解密碼原語的定義、安全模型和算法,深入掌握密碼方案和協(xié)議的基本原理,能夠解決密碼工程中的實際問題。結合實際應用的案例,講解密碼算法和密碼協(xié)議,借助多媒體教學設施演示算法和協(xié)議。
3.2 密碼實驗的實踐教學
《密碼學》課程實踐教學主要包括密碼算法的設計和實驗等內容,著重培養(yǎng)學生的開發(fā)和應用能力,通過密碼算法實驗對理論內容進行深層次的掌握。首先,利用開源密碼代碼,對基本的密碼算法進行編程和實現,并對其加密、解密等過程進行性能方面的測試,通過對不同算法的對比實驗,可以更直觀地認識到算法的安全性和運行速度等性能指標。然后,每位學生選擇一個題目后,根據實際應用場景,結合密碼算法的性能指標和安全等級,設計具體工程方案,并對其編碼和實現,任課老師輔導學生完成方案設計、實現和編碼工作。
為了加強學生對密碼學知識的理解、掌握和應用,把理論知識和技能應用到現實場景中,嚴格考核學生掌握和應用密碼知識的綜合素養(yǎng),從而在一定程度上改變“卷面筆試定成績”的不足,防止考前突擊的行為。
3.3研究密碼學的建議
國際密碼學研究協(xié)會每年主辦3次學術會議,分別是每年8月在美國加利福尼亞州圣巴巴拉召開的美國密碼會議(簡稱“美密會”),每年5月在歐洲國家召開歐洲密碼會議(簡稱歐密會)和每年12月在亞太國家召開的亞洲密碼會議(簡稱“亞密會”)。會議涵蓋了密碼學領域的各個方面,比如理論基礎、密碼算法的設計與分析、安全協(xié)議及密碼應用等。這三大密碼會議是密碼學研究領域的標志性會議,代表密碼學領域的最高水平,影響力大。對于從事密碼學研究的研究生來說,通過閱讀這三大密碼會議的最新文獻,尋找研究問題的最新解決方法,吸取現有文獻研究方法的優(yōu)點,結合自己的研究思路,提出性能和安全性很好的解決方案。
4密碼學課程實驗環(huán)節(jié)的模式
密碼學課程存在學科的交叉性、內容的枯燥性、教學的實踐性以及學習的重要性等基本特征[9]。針對學習過程中內容的枯燥性,可以采用以下幾種實驗環(huán)節(jié)的模式,促進學生更好的理解密碼學的核心算法。
4.1 實驗環(huán)節(jié)的小組教學
實驗教學的理念是“以學生為中心,突出學生自主學習”,在實驗環(huán)節(jié)中,根據學生的興趣和所選題目,將其分成若干個小組,每小組為3~5名學生,共同合作完成實驗題目[9]。這種模式有助于培養(yǎng)學生團隊合作能力,共同完成大規(guī)模項目工程,從而獲得更大的成果。小組教學根據學生的知識掌握情況,設計小組教學內容,兼顧每個學生的興趣點,逐步引導學生深入理解密碼學核心知識,進而實現教學目標。這種教學模式盡量避免教師填鴨式灌輸知識點,激發(fā)學生主動學習的熱情,培養(yǎng)學生積極思考、分析和解決問題的能力。
4.2 情景化教學
將理論知識和現實情景相結合,能夠極大地激發(fā)學生學習興趣和好奇心,充分調動學生學習的積極性[10]。通過引入當前熱點問題,激發(fā)學生求知欲。為了讓學生更深刻理解代理重加密技術,以智能家居為例,為了確保家居設備的安全性,該家庭的現有成員設置控制智能家居的密鑰K1,當有新的成員加入時為其生成密鑰K2,該新成員通過請求原來成員,僅當請求獲得批準后,服務器端會將K1解密的密文重新加密轉換成密鑰K2解密的密文,從而使新成員可以掌控部分家居設備。其次,將熱門應用如區(qū)塊鏈、物聯網和人工智能等場景與密碼學相結合,既能說明密碼學的應用廣泛,與現代技術息息相關,還能引起學生對于新技術、新領域的好奇心,驅使學生深入探究密碼學在更多領域的應用。
4.3 研討性教學
引入了情景之后,提出有針對性的問題,讓學生進行充分思考、小組討論,得到多種可能性的結果,可以加深學生對問題的思考和理解[10]。例如,在新型密碼算法如屬性基加密涉及的困難性假設時,能否基于相同的困難性假設構造性能較高的密碼算法,讓學生充分討論并發(fā)表自己的看法。基于合理困難性假設,鼓勵學生積極構造高性能的密碼學算法,針對其中存在的問題,通過反證法指出問題的所在,從而使學生在討論中形成對密碼學理論的獨有認知。
5 總結
密碼學與國家的政治、經濟和工業(yè)各個方面都有關系,直接關系著國家安全和主權。密碼學是保障個人信息安全的一種重要技術,已經應用到現實生活的多個行業(yè),成為工業(yè)界和學術界的熱點研究領域。密碼學課程有利于培養(yǎng)學生的創(chuàng)造思維能力,可以改變專業(yè)劃分過細、課程設置偏窄、知識結構單一的狀況,其課程設置也有利于本學科中的各專業(yè)、各研究方向的相互滲透、互為交融,使學生具有更合理的知識結構,促進了多學科的交叉與滲透。這樣的知識結構 ,既利于發(fā)揮所學專業(yè)的知識,推動技術進步,同時又有利于學生的知識儲備。
通過密碼學的系統(tǒng)學習,不僅能夠提高思維和邏輯推理能力,還可以更好的學習當前熱點領域,比如區(qū)塊鏈,為將來參與創(chuàng)新性的研究和開發(fā)工作打下堅實的理論基礎。首先,掌握堅實的數學基礎,是學好密碼學的前提;提高密碼設計與編程的動手能力;針對研究問題,查閱最新論文和文獻資料,找到新穎的解決問題的方法;結合具體應用場景,提出安全的性能較高的密碼學方案。特別地,密碼學是一門很講究時效的學科,所以在學習過程中一定要善于緊跟研究前沿。
參考文獻:
[1] 王保倉,賈文娟,陳艷格.密碼學現狀、應用及發(fā)展趨勢[J].無線電通信技術, 2019, 45(1):1-8.
[2] 姚前.密碼學、比特幣和區(qū)塊鏈[J]. 清華金融評論, 2018(12): 99-104.
[3] K. Sowjanya, Mou Dasgupta. A ciphertext-policy Attribute based encryption scheme for wireless body area networks based on ECC [J]. Journal of Information Security and Applications, 2020(54):102559.
[4] 翟起濱.密碼技術的演化和對信息技術的促進[J].中國信息安全, 2018(8):72-74.
[5] Anat Paskin-Cherniavsky, Ruxandra F. Olimid. On cryptographic anonymity and unpredictability in secret sharing [J]. Information Processing Letters, 2020(161):105965.
[6] 鄭東, 趙慶蘭, 張應輝. 密碼學綜述[J]. 西安郵電大學學報, 2013, 18(6): 1-10.
[7] W. Wang, F. Qi, X. Wu, Z. Tang, Distributed multi-authority attribute-based encryption scheme for friend discovery in mobile social networks, Procedia Computer Science, 2016(80): 617-626.
[8] Chris Christensen. Review of Cryptography and Network Security: Principles and Practice, Fifth Edition [J]. Cryptologia, 2010, 35(1): 97-99.
[9]李光松, 廣暉, 王洋, 等. 密碼學課程小班化教學探索與實踐[J]. 計算機教育, 2018(3): 22-24+28.
[10]方黎明,葛春鵬,李明慧. 現代特色密碼學課程體系建設研究[J]. 教育現代化, 2019, 6(A0):78-79.
【通聯編輯:王力】