王占君 馬海英
摘要:針對《密碼學(xué)》課程存在學(xué)習(xí)難度大和講授枯燥的問題,本文首先詳細(xì)闡述該課程所需的數(shù)學(xué)理論基礎(chǔ);然后,深入探討了該課程實(shí)踐教學(xué)環(huán)節(jié)的方法,給出研究密碼學(xué)的幾點(diǎn)建議;最后,結(jié)合實(shí)際分析了密碼學(xué)課程對改善本科生知識(shí)結(jié)構(gòu)的重要性。
關(guān)鍵詞:密碼學(xué);教學(xué)方法;數(shù)學(xué)基礎(chǔ)
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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 引言
隨著移動(dòng)通信和5G技術(shù)的快速發(fā)展,密碼學(xué)在網(wǎng)絡(luò)空間安全領(lǐng)域中的重要地位日益凸顯,《密碼學(xué)》課程在培養(yǎng)網(wǎng)絡(luò)空間安全應(yīng)用型高級(jí)工程人才中顯得特別重要。密碼學(xué)理論知識(shí)為數(shù)據(jù)的機(jī)密性、完整性、抗抵賴性及身份認(rèn)證提供了一種有效保障機(jī)制,已成為物聯(lián)網(wǎng)信息安全、網(wǎng)絡(luò)空間安全等領(lǐng)域的核心技術(shù)。古典密碼術(shù)是把明文消息經(jīng)過一定的混淆手段變換成難讀懂的信息,用來隱藏機(jī)密信息,防止非法者獲知消息,讓合法用戶能夠還原成明文信息[1]。古典密碼學(xué)是一門將信息論和數(shù)學(xué)等學(xué)科集于一身的交叉學(xué)科[2],可以分為密碼編碼學(xué)和密碼分析學(xué)。密碼編碼學(xué)[3]通過編碼信息實(shí)現(xiàn)信息隱藏的學(xué)科,密碼分析學(xué)[4]是研究破譯密碼或分析密文,進(jìn)而獲知隱私信息的科學(xué),兩者既對立又相輔相成?,F(xiàn)代密碼學(xué)從最基本的消息機(jī)密性延伸到密鑰管理、哈希函數(shù)、安全的通信協(xié)議等多個(gè)領(lǐng)域,是信息安全的核心學(xué)科之一。
2 密碼學(xué)課程的特點(diǎn)
密碼學(xué)作為一門專業(yè)課程,具有知識(shí)跨度廣、課程難度高的特點(diǎn),理論性和應(yīng)用性均比較強(qiáng)[5,6]?,F(xiàn)代密碼學(xué)所涉及的主要學(xué)科包括:信息論、概率論、數(shù)論、計(jì)算復(fù)雜性理論、近世代數(shù)等[7]。因此,密碼學(xué)課程需要有較好的數(shù)學(xué)基礎(chǔ)及必備的前置知識(shí)點(diǎn),在學(xué)習(xí)過程中由淺入深,步步推進(jìn)。對于很多密碼學(xué)算法中的困難性假設(shè),比如大數(shù)因子分解問題、離散對數(shù)問題等,需要掌握數(shù)論和近似代數(shù)的基礎(chǔ)知識(shí)。密碼學(xué)課程的核心內(nèi)容由許多密碼算法構(gòu)成,在學(xué)習(xí)密碼學(xué)的過程中,通過對經(jīng)典密碼學(xué)算法進(jìn)行編程實(shí)現(xiàn),理解算法的設(shè)計(jì)思路,并對算法的性能和安全性進(jìn)行測試和分析,進(jìn)而識(shí)別算法的優(yōu)勢和存在的不足。密碼學(xué)課程涵蓋的知識(shí)范圍非常廣,相關(guān)研究開展的也很多,利用最新文獻(xiàn)對相關(guān)問題做進(jìn)一步的研究和探討,結(jié)合最新的密碼學(xué)應(yīng)用,有效拓展自己的知識(shí)面。
3 密碼學(xué)課程的教學(xué)與研究方法
密碼學(xué)是以數(shù)論、矩陣論和近似代數(shù)等數(shù)學(xué)知識(shí)為基礎(chǔ),為數(shù)據(jù)傳輸和存儲(chǔ)的安全性提供一種有效方法。本節(jié)首先列出密碼學(xué)課程需要掌握的數(shù)據(jù)基礎(chǔ),重點(diǎn)闡述密碼學(xué)課程的實(shí)踐教學(xué)環(huán)節(jié),給出研究密碼學(xué)的建議。
3.1密碼學(xué)數(shù)學(xué)理論基礎(chǔ)
密碼學(xué)中,數(shù)學(xué)理論基礎(chǔ)主要包括有限域、同余及模運(yùn)算、線性同余、中國剩余定理、二次剩余、單向函數(shù)與單向暗門函數(shù)等。由于數(shù)論是密碼學(xué)中最重要的數(shù)學(xué)基礎(chǔ),因此,必須將數(shù)論作為密碼學(xué)的前置課程。有限域重點(diǎn)理解群、環(huán)、域的概念;同余及模運(yùn)算主要包括同余基本運(yùn)算、歐拉定理和費(fèi)馬定理;利用歐拉定理和歐幾里得算法計(jì)算乘法逆運(yùn)算;重點(diǎn)理解線性同余、中國剩余定理、二次剩余、指數(shù)函數(shù)、單向函數(shù)與單向陷門函數(shù)的定義,并結(jié)合具體實(shí)例應(yīng)用到實(shí)際場景中。例如,流密碼需要學(xué)習(xí)有限狀態(tài)自動(dòng)機(jī)、二元序列的偽隨機(jī)性、線性反饋移位寄存器和m序列;分組加密需要學(xué)習(xí)SP網(wǎng)絡(luò)和有限域基礎(chǔ);公鑰密碼體制需要重點(diǎn)掌握完全剩余系、簡化剩余系、歐拉定理、群和循環(huán)群的概念和運(yùn)算、橢圓曲線等理論知識(shí)。掌握這些數(shù)學(xué)理論知識(shí)是學(xué)習(xí)密碼學(xué)課程的前提。
《密碼學(xué)》課程的理論教學(xué)主要講解密碼原語的定義、安全模型和算法,深入掌握密碼方案和協(xié)議的基本原理,能夠解決密碼工程中的實(shí)際問題。結(jié)合實(shí)際應(yīng)用的案例,講解密碼算法和密碼協(xié)議,借助多媒體教學(xué)設(shè)施演示算法和協(xié)議。
3.2 密碼實(shí)驗(yàn)的實(shí)踐教學(xué)
《密碼學(xué)》課程實(shí)踐教學(xué)主要包括密碼算法的設(shè)計(jì)和實(shí)驗(yàn)等內(nèi)容,著重培養(yǎng)學(xué)生的開發(fā)和應(yīng)用能力,通過密碼算法實(shí)驗(yàn)對理論內(nèi)容進(jìn)行深層次的掌握。首先,利用開源密碼代碼,對基本的密碼算法進(jìn)行編程和實(shí)現(xiàn),并對其加密、解密等過程進(jìn)行性能方面的測試,通過對不同算法的對比實(shí)驗(yàn),可以更直觀地認(rèn)識(shí)到算法的安全性和運(yùn)行速度等性能指標(biāo)。然后,每位學(xué)生選擇一個(gè)題目后,根據(jù)實(shí)際應(yīng)用場景,結(jié)合密碼算法的性能指標(biāo)和安全等級(jí),設(shè)計(jì)具體工程方案,并對其編碼和實(shí)現(xiàn),任課老師輔導(dǎo)學(xué)生完成方案設(shè)計(jì)、實(shí)現(xiàn)和編碼工作。
為了加強(qiáng)學(xué)生對密碼學(xué)知識(shí)的理解、掌握和應(yīng)用,把理論知識(shí)和技能應(yīng)用到現(xiàn)實(shí)場景中,嚴(yán)格考核學(xué)生掌握和應(yīng)用密碼知識(shí)的綜合素養(yǎng),從而在一定程度上改變“卷面筆試定成績”的不足,防止考前突擊的行為。
3.3研究密碼學(xué)的建議
國際密碼學(xué)研究協(xié)會(huì)每年主辦3次學(xué)術(shù)會(huì)議,分別是每年8月在美國加利福尼亞州圣巴巴拉召開的美國密碼會(huì)議(簡稱“美密會(huì)”),每年5月在歐洲國家召開歐洲密碼會(huì)議(簡稱歐密會(huì))和每年12月在亞太國家召開的亞洲密碼會(huì)議(簡稱“亞密會(huì)”)。會(huì)議涵蓋了密碼學(xué)領(lǐng)域的各個(gè)方面,比如理論基礎(chǔ)、密碼算法的設(shè)計(jì)與分析、安全協(xié)議及密碼應(yīng)用等。這三大密碼會(huì)議是密碼學(xué)研究領(lǐng)域的標(biāo)志性會(huì)議,代表密碼學(xué)領(lǐng)域的最高水平,影響力大。對于從事密碼學(xué)研究的研究生來說,通過閱讀這三大密碼會(huì)議的最新文獻(xiàn),尋找研究問題的最新解決方法,吸取現(xiàn)有文獻(xiàn)研究方法的優(yōu)點(diǎn),結(jié)合自己的研究思路,提出性能和安全性很好的解決方案。
4密碼學(xué)課程實(shí)驗(yàn)環(huán)節(jié)的模式
密碼學(xué)課程存在學(xué)科的交叉性、內(nèi)容的枯燥性、教學(xué)的實(shí)踐性以及學(xué)習(xí)的重要性等基本特征[9]。針對學(xué)習(xí)過程中內(nèi)容的枯燥性,可以采用以下幾種實(shí)驗(yàn)環(huán)節(jié)的模式,促進(jìn)學(xué)生更好的理解密碼學(xué)的核心算法。
4.1 實(shí)驗(yàn)環(huán)節(jié)的小組教學(xué)
實(shí)驗(yàn)教學(xué)的理念是“以學(xué)生為中心,突出學(xué)生自主學(xué)習(xí)”,在實(shí)驗(yàn)環(huán)節(jié)中,根據(jù)學(xué)生的興趣和所選題目,將其分成若干個(gè)小組,每小組為3~5名學(xué)生,共同合作完成實(shí)驗(yàn)題目[9]。這種模式有助于培養(yǎng)學(xué)生團(tuán)隊(duì)合作能力,共同完成大規(guī)模項(xiàng)目工程,從而獲得更大的成果。小組教學(xué)根據(jù)學(xué)生的知識(shí)掌握情況,設(shè)計(jì)小組教學(xué)內(nèi)容,兼顧每個(gè)學(xué)生的興趣點(diǎn),逐步引導(dǎo)學(xué)生深入理解密碼學(xué)核心知識(shí),進(jìn)而實(shí)現(xiàn)教學(xué)目標(biāo)。這種教學(xué)模式盡量避免教師填鴨式灌輸知識(shí)點(diǎn),激發(fā)學(xué)生主動(dòng)學(xué)習(xí)的熱情,培養(yǎng)學(xué)生積極思考、分析和解決問題的能力。
4.2 情景化教學(xué)
將理論知識(shí)和現(xiàn)實(shí)情景相結(jié)合,能夠極大地激發(fā)學(xué)生學(xué)習(xí)興趣和好奇心,充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性[10]。通過引入當(dāng)前熱點(diǎn)問題,激發(fā)學(xué)生求知欲。為了讓學(xué)生更深刻理解代理重加密技術(shù),以智能家居為例,為了確保家居設(shè)備的安全性,該家庭的現(xiàn)有成員設(shè)置控制智能家居的密鑰K1,當(dāng)有新的成員加入時(shí)為其生成密鑰K2,該新成員通過請求原來成員,僅當(dāng)請求獲得批準(zhǔn)后,服務(wù)器端會(huì)將K1解密的密文重新加密轉(zhuǎn)換成密鑰K2解密的密文,從而使新成員可以掌控部分家居設(shè)備。其次,將熱門應(yīng)用如區(qū)塊鏈、物聯(lián)網(wǎng)和人工智能等場景與密碼學(xué)相結(jié)合,既能說明密碼學(xué)的應(yīng)用廣泛,與現(xiàn)代技術(shù)息息相關(guān),還能引起學(xué)生對于新技術(shù)、新領(lǐng)域的好奇心,驅(qū)使學(xué)生深入探究密碼學(xué)在更多領(lǐng)域的應(yīng)用。
4.3 研討性教學(xué)
引入了情景之后,提出有針對性的問題,讓學(xué)生進(jìn)行充分思考、小組討論,得到多種可能性的結(jié)果,可以加深學(xué)生對問題的思考和理解[10]。例如,在新型密碼算法如屬性基加密涉及的困難性假設(shè)時(shí),能否基于相同的困難性假設(shè)構(gòu)造性能較高的密碼算法,讓學(xué)生充分討論并發(fā)表自己的看法?;诤侠砝щy性假設(shè),鼓勵(lì)學(xué)生積極構(gòu)造高性能的密碼學(xué)算法,針對其中存在的問題,通過反證法指出問題的所在,從而使學(xué)生在討論中形成對密碼學(xué)理論的獨(dú)有認(rèn)知。
5 總結(jié)
密碼學(xué)與國家的政治、經(jīng)濟(jì)和工業(yè)各個(gè)方面都有關(guān)系,直接關(guān)系著國家安全和主權(quán)。密碼學(xué)是保障個(gè)人信息安全的一種重要技術(shù),已經(jīng)應(yīng)用到現(xiàn)實(shí)生活的多個(gè)行業(yè),成為工業(yè)界和學(xué)術(shù)界的熱點(diǎn)研究領(lǐng)域。密碼學(xué)課程有利于培養(yǎng)學(xué)生的創(chuàng)造思維能力,可以改變專業(yè)劃分過細(xì)、課程設(shè)置偏窄、知識(shí)結(jié)構(gòu)單一的狀況,其課程設(shè)置也有利于本學(xué)科中的各專業(yè)、各研究方向的相互滲透、互為交融,使學(xué)生具有更合理的知識(shí)結(jié)構(gòu),促進(jìn)了多學(xué)科的交叉與滲透。這樣的知識(shí)結(jié)構(gòu) ,既利于發(fā)揮所學(xué)專業(yè)的知識(shí),推動(dòng)技術(shù)進(jìn)步,同時(shí)又有利于學(xué)生的知識(shí)儲(chǔ)備。
通過密碼學(xué)的系統(tǒng)學(xué)習(xí),不僅能夠提高思維和邏輯推理能力,還可以更好的學(xué)習(xí)當(dāng)前熱點(diǎn)領(lǐng)域,比如區(qū)塊鏈,為將來參與創(chuàng)新性的研究和開發(fā)工作打下堅(jiān)實(shí)的理論基礎(chǔ)。首先,掌握堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ),是學(xué)好密碼學(xué)的前提;提高密碼設(shè)計(jì)與編程的動(dòng)手能力;針對研究問題,查閱最新論文和文獻(xiàn)資料,找到新穎的解決問題的方法;結(jié)合具體應(yīng)用場景,提出安全的性能較高的密碼學(xué)方案。特別地,密碼學(xué)是一門很講究時(shí)效的學(xué)科,所以在學(xué)習(xí)過程中一定要善于緊跟研究前沿。
參考文獻(xiàn):
[1] 王保倉,賈文娟,陳艷格.密碼學(xué)現(xiàn)狀、應(yīng)用及發(fā)展趨勢[J].無線電通信技術(shù), 2019, 45(1):1-8.
[2] 姚前.密碼學(xué)、比特幣和區(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] 翟起濱.密碼技術(shù)的演化和對信息技術(shù)的促進(jìn)[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] 鄭東, 趙慶蘭, 張應(yīng)輝. 密碼學(xué)綜述[J]. 西安郵電大學(xué)學(xué)報(bào), 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]李光松, 廣暉, 王洋, 等. 密碼學(xué)課程小班化教學(xué)探索與實(shí)踐[J]. 計(jì)算機(jī)教育, 2018(3): 22-24+28.
[10]方黎明,葛春鵬,李明慧. 現(xiàn)代特色密碼學(xué)課程體系建設(shè)研究[J]. 教育現(xiàn)代化, 2019, 6(A0):78-79.
【通聯(lián)編輯:王力】