聶旭云, 陳大江, 熊 虎
(電子科技大學 信息與軟件工程學院,成都610054)
自從2017 年教育部高教司發布“關于開展新工科研究與實踐的通知”以來,面向新工科的教學改革成為當前改革的重點[1-2].新工科人才培養模式注重更新人才培養理念、重構培養目標和知識結構、轉變培養方式等[3].教育部《普通高等學校本科專業類教學質量國家標準》指出,大學生本科專業教育質量評價要突出學生中心、產出導向和持續改進,其中產出導向(outcomes-based education,OBE)是指教學過程和結果不能僅以知識傳授為重點,而更應注重學生能力的培養[1].目前,以OBE 為核心理念來指導教學目標設計、改進教學過程、完善評價方法已經成為面向新工科的課程教學改革的主要方向.OBE 理念要求課程大綱制定要體現學生學習目標以及如何通過有效評價來保障學生達到學習目標.隨著工程教育認證的全面推行,推進面向新工科的軟件工程專業課程教學改革,重新確定課程目標與內容,并將以學生為中心和面向產出的教學實踐落到實處,這是目前教學活動中迫切需要解決的問題[3].
信息安全數學基礎是網絡空間安全專業的必修基礎課程,一般開設在大二上學期.它的內容涵蓋數論、抽象代數中的整除、同余、群、環、域等理論.課程內容涉及大量的概念、性質和理論方法,作為工科大二學生學習這些知識有一定的難度.人們對如何提高信息安全數學基礎的教學效果進行了大量的探索[4-9],但多數改進方法都是圍繞著理論教學進行.教師若僅采用傳統授課方法,注重概念的講解和理論的推導,那么教學過程就會比較枯燥,學生的學習興趣也會大大降低.電子科技大學軟件工程(互聯網安全)專業,遵循工程教育認證和新工科教育的理念,參考其他院校的先進經驗[10],探索并實踐了以算法為核心的信息安全數學基礎教學體系,對課程目標和所支撐的畢業要求進行了梳理,按照以算法為核心的教學思路,改進了課程教材[11],提出了相應的理論與實踐教學模式,培養學生的實踐能力和創新能力[12].
課程目標的制定應該自頂向下,從專業培養目標和畢業要求的角度出發確定具體的教學目標,其中最為關鍵的一點是觀念轉變,課程目標制定的出發點要由“教師想教什么”轉變為“學生需要學什么”.其次,課程目標的分解應該使得教師能夠更好地對課程目標的達成度進行評價[2],應由傳統的橫向分解轉變為縱向分解,這也是基于OBE 課程教學改革的重要舉措.
信息安全數學基礎課程在電子科技大學軟件工程(互聯網安全)專業的整個課程體系當中所支撐的畢業要求指標點具體為“能夠采用科學的方法對軟件系統中的關鍵環節,設計相應的實驗方案,搭建實驗環境,開展實驗”.為了后續密碼學、網絡安全協議等課程的順利學習,本課程要求學生掌握各類代數系統的結構及其元素運算的方法,搭建各類密碼算法和密碼系統實現的實驗環境.
在2016年的信息安全數學基礎教學大綱中,課程目標的分解是按照知識點的深入進行的,如下所示:
CO1:對信息安全的基礎概念、基本數學方法等有一個基本了解,掌握數論基礎知識;
CO2:掌握信息安全技術中的核心數學算法,數學環境構造方法,掌握近世代數基礎知識;
CO3:建立對信息安全技術的整體概念,了解經典信息安全算法的數學困難問題;
CO4:了解信息安全基礎算法,掌握安全性證明中的基礎數學問題及方法.
上述分解更多的是從理論學習上去解構信息安全數學基礎的知識,不能很好地對畢業要求指標點的達成起到支撐作用.因此,在2019年,課程組將課程目標分解如下:
CO1:掌握密碼算法中的數論和抽象代數的基本概念和性質;
CO2:掌握各類代數結構如整數模n剩余類環、模多項式剩余類環、有限域等的構造方法和運算規則;
CO3:掌握密碼算法實現的關鍵環節即數學基礎算法的原理,如數論中的大整數運算、模指數運算、有限域運算等;
CO4:根據算法原理,設計實驗方案,掌握并實現信息安全數學基礎相關算法.
從上述課程目標縱向分解可以看出,本課程的課程目標是遞進式、可獨立評估的,可以將具體教學內容、教學環節以及教學評估與課程目標直接關聯,同時課程達成度的評價也為本課程所支撐的畢業要求指標點的達成度評價提供了依據.
信息安全數學基礎核心知識分為兩大部分:數論和抽象代數.這兩部分內容關聯緊密,不可分割.通過數論中的實例來理解抽象代數中群、環、域的概念,反之,利用抽象代數中的理論來簡化數論中相關定理的證明,從而促進學生更好地理解這些數學理論.經過多年的教學實踐,發現工科學生對如何實現數論和抽象代數中的相關算法更感興趣.通過實現這些數學算法,可以更容易地實現現有的密碼算法.因此,課程組圍繞RSA加密算法和ElGamal加密算法的基本原理和實現方法組織了教學內容,并將數論和抽象代數這兩部分通過從n到p的演化聯系起來.
2.2.1 數論教學內容組織
本課程數論部分的教學從分析RSA公鑰加密算法出發,利用問題導向的方式引入數論相關知識,結合RSA公鑰密碼算法的實現過程,熟悉并掌握相關的數學算法.RSA是目前最常用的一類公鑰密碼算法.通過RSA算法的實現,可將數論部分的知識點和相關算法串聯起來.以RSA公鑰加密算法為例,算法可分為兩部分,一是密鑰生成,二是加密和解密.
根據RSA的安全性要求,其公鑰長度至少為1024比特,這個長度已經遠遠超出了程序語言中的長整型的表達范圍,因而需要建立多精度數整數計算環境.從密鑰生成算法中可以看出,首先要產生兩個大素數p和q,來得到正整數n.由于素數的分布規律性不強,因此需要采用素性檢測算法來生成,一般推薦使用Miller-Rabin素性檢測算法.公鑰的生成需要求模φ(n)下的逆元,這就需要用到擴展的歐幾里得算法.
在RSA加密過程中,加密和解密均需要用到大整數的冪運算,因此可采用重復平方乘算法、蒙哥馬利算法提高其效率.更進一步,在解密過程中,因為模數n=pq為兩個素數的乘積,因此可用中國剩余定理來加速其解密過程.
綜上所述,實現RSA算法需要掌握和理解的算法主要有多精度數運算、擴展的歐幾里得算法、素性檢測、大整數模冪運算以及中國剩余定理等,如圖1所示.

圖1 RSA算法實現所涉及的知識點和算法
因此,數論部分從整除概念出發,引出最大公因數、素數的概念,通過帶余除法給出多精度整數的表示以及相應的加減乘除算法,同時通過整除和帶余除法給出同余的概念,進而構造模整數的剩余類集合,討論該集合及元素的性質,給出模整數的冪運算加速算法以及解同余方程的中國剩余定理等.這里重點要掌握的算法是多精度數運算、擴展的歐幾里得算法、素性檢測、重復平方乘算法以及中國剩余定理算法,如圖2所示.

圖2 數論部分主要知識點及相關算法
2.2.2 抽象代數教學內容組織
本課程抽象代數部分從分析有限域上的ElGamal公鑰加密體制出發.這里稍微對傳統的ElGamal加密算法做了改動.傳統的ElGamal加密算法是定義在有限域p上的,由于教學需要,課程組將ElGamal加密算法推廣到p的擴域Fpn上.ElGamal加密算法也分為兩部分,一是密鑰生成,二是加密和解密.為了實現一個Fpn域上的ElGamal加密體制,首先要建立好算法的計算環境,即要構造出Fpn域,定義其加法、乘法和求逆運算,這里需要用到多項式同余、多項式求逆(擴展的歐幾里得算法).其次要找到域Fpn中的乘法群的生成元,這里需要利用到循環群中元素的階的判定及尋找生成元的算法.最后,計算公鑰還需要使用重復平方乘算法.運算環境搭建好之后,加密和解密算法僅涉及到用重復平方乘算法來計算冪運算以及用多項式擴展的歐幾里得算法來求元素的逆.如圖3所示.

圖3 ElGamal算法實現所涉及的知識點及算法
因此,抽象代數部分由分析整數集合和整數模n剩余類集合出發,引出群、環、域的定義和性質,給出循環群的結構,理想和剩余類環的定義及性質等.構造素域上的多項式環,類似于整數集合當中的整除和同余理論,給出相應的概念和理論分析,如帶余除法、最大公因式、不可約多項式、多項式同余等.在多項式環的基礎之上,給出有限域的構造,包括元素的表示方法、運算規則等.這里重點要掌握的是循環群的生成元的尋找算法、多項式相關算法(如多項式的加減乘除、同余求逆等)、有限域中元素的運算算法等,如圖4所示.

圖4 抽象代數部分主要知識點
信息安全數學基礎的實踐教學遵循由點及面、循序漸進的原則,首先利用課程實驗搭建必要的實驗環境,如大整數運算環境、有限域運算環境等,其次,利用綜合課程設計將課程內容和主要知識點串聯起來,并采用研討的方式,擴展教學內容,為進一步參加創新項目和學科競賽奠定基礎.
課程實驗的主要目的是培養學生設計實驗方案,搭建實驗環境,開展實驗的能力.本課程的課程實驗一共4個算法,8個學時.這4個算法分別為多精度整數運算算法、模大整數重復平方乘算法、多項式擴展的歐幾里得算法和有限域的運算算法.課程實驗采取實驗室集體教學,提交實驗報告作為考核依據.
電子科技大學軟件工程(互聯網安全)專業的綜合課程設計是獨立的實踐教學環節,層次遞進,前后銜接,分為綜合課程設計I、II、III,分別在第三、四、五學期執行[13].信息安全數學基礎的綜合設計屬于綜合設計I階段,是專業大二上學期學生的必修環節,其主要目的是培養學生進行分析文獻、選擇解決方案的能力.課程組選擇RSA加密算法的實現和有限域上ElGamal加密算法的實現作為綜合設I的題目.綜合設計I題目發布后,學生自由組隊,一般4-6個學生一組.綜合設計采取課下討論形式完成.指導教師在綜合課程設計開展之前,需要制定任務書,給出總體要求、實施建議和預期成果等.綜合課程設計開展初期,學生在教師的指導下進行相關文獻查閱和研討,制定工作計劃,完成小組分工,提出重點要解決的問題和可能的解決方案.在綜合課程設計實施過程中,教師和小組成員定期進行討論,以學生為主導,指導教師參與,給出進展建議,協助解決關鍵技術問題.
課程評價分為兩個部分,一是課程目標達成評價,二是畢業要求達成評價.
課程的四個課程目標在整體評價中分別賦予相應的權重,然后根據期中測試、期末考試和實驗報告來綜合評價.期末考試試題分別從概念、結構和算法三個層面來考察學生的掌握情況,課程實驗評價依據由實驗報告給出實驗成績,共分為4個部分:實驗目的及原理、實驗內容及步驟、實驗結果及分析以及實驗報告質量.對課程目標和畢業要求指標點的達成主要通過實驗報告前三個部分評價來支撐.
課程目標評價如表1所示:

表1 《信息安全數學基礎》課程達成度評價表
對畢業要求指標點達成度的評價,主要通過課程目標3和課程目標4來完成.如表2所示.

表2 《信息安全數學基礎》課程畢業要求指標點達成度評價表
綜合課程設計的評價與課程評價分開,獨立評價.綜合設計注重形成性評價,即綜合考查學生在課題實施過程中各方面能力的體現,如文獻綜述、需求分析、算法設計與實現、報告撰寫、現場答辯等,結合綜合課程設計報告來對學生的能力和素質進行綜合評價.綜合課程設計I執行周期為15周,考核分為兩個階段三個部分,一是中期考核,綜合課程設計執行10周左右,學生提交中期報告,由指導教師進行檢查,了解學生的課題完成度和問題分析能力,并根據中期報告進行評價;二是期末答辯,在學期期末,學生完成綜合課程設計并撰寫課程設計報告,學院組織專家對綜合課程設計進行答辯評審,主要考察課題的完成情況和學生的總結報告撰寫情況.期末答辯前,指導教師還將根據每周討論情況給出學生的平時成績,并對設計報告進行評價,將平時成績、中期考核成績和報告評價成績提交給專家組,由專家組結合答辯成績進行統分,給出最終的考核成績.考核成績中,平時成績占20%,中期考核占20%,期末答辯占30%,總結報告占30%.
本課程自2019年開始實施以算法為核心的教學改革實踐.與2018年相比,課程考核加大了實驗環節所占考核比重,在平時成績中從25%提升到了50%.從表3中可以看出,CO3和CO4的達成度顯著提高,這也說明學生的實踐能力得到了提升.

表3 2019年課程達成度評價及對比分析
畢業要求指標點達成度評價也從0.732提升到了0.801方面,如表4所示.

表4 2019年畢業要求指標點達成度評價及對比分析
此外,從圖5中可以看出,在經過教學改革后,70分以上占比從55%提升到了64%,一定程度上也反映了學生的學習興趣有所提升.

圖5 信息安全數學基礎2018年和2019年成績分段統計對比
電子科技大學軟件工程(互聯網安全)專業信息安全數學基礎自2019年開始實施以算法為核心的教學改革.教學改革符合工程教育認證理念,使課程教學從知識教學向能力培養轉變.教學實踐表明,提高了學生的學習興趣和實踐能力.未來,課程組將以全國高校密碼數學挑戰賽為載體[14],擴展課程設計內容,為學生參加此類競賽打下堅實的基礎.
致謝作者非常感謝相關文獻對本文的啟發以及審稿專家提出的寶貴意見.