周潔,韓靜
(西華大學(xué)計(jì)算機(jī)與軟件工程學(xué)院,成都610039)
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,含有軍事、政治、經(jīng)濟(jì)等敏感內(nèi)容的信息在網(wǎng)絡(luò)上被廣泛傳輸。由于互聯(lián)網(wǎng)的開放性,攻擊者利用網(wǎng)絡(luò)非法獲取各種信息的事件時(shí)常發(fā)生,給國家和人民帶來了極大的威脅。信息安全受到了人們?cè)絹碓蕉嗟年P(guān)注。在中央網(wǎng)絡(luò)安全和信息化領(lǐng)導(dǎo)小組第一次會(huì)議上,習(xí)近平總書記明確指出,網(wǎng)絡(luò)安全和信息化是事關(guān)國家安全和國家發(fā)展、事關(guān)廣大人民群眾工作生活的重大戰(zhàn)略問題,要從國際國內(nèi)大勢(shì)出發(fā),總體布局,統(tǒng)籌各方,創(chuàng)新發(fā)展,努力把我國建設(shè)成為網(wǎng)絡(luò)強(qiáng)國[1]。國內(nèi)越來越多的高等院校開設(shè)了信息安全專業(yè)。信息安全是一個(gè)綜合性很強(qiáng)的交叉學(xué)科,涉及密碼學(xué)、計(jì)算機(jī)、通信、控制、人工智能、安全工程、人文科學(xué)、法律等諸多學(xué)科[2]。由于良好的數(shù)學(xué)基礎(chǔ)有利于信息安全專業(yè)的學(xué)生深入開展密碼學(xué)、網(wǎng)絡(luò)攻擊與防御、網(wǎng)絡(luò)協(xié)議分析等課程的學(xué)習(xí),因此國內(nèi)大部分院校都將《信息安全數(shù)學(xué)基礎(chǔ)》這門課程作為信息安全專業(yè)人才培養(yǎng)方案中的必修課。
《信息安全數(shù)學(xué)基礎(chǔ)》是信息安全專業(yè)的一門核心基礎(chǔ)課,授課對(duì)象是具有一定高等數(shù)學(xué)、線性代數(shù)基礎(chǔ)的大學(xué)二年級(jí)學(xué)生,授課學(xué)時(shí)為40 學(xué)時(shí)。本課程主要涉及數(shù)論基礎(chǔ)、抽象代數(shù)基礎(chǔ)、橢圓曲線基礎(chǔ)等三個(gè)方面的知識(shí)[3-4]。
在數(shù)論方面,主要包括整除、素?cái)?shù)、最大公因數(shù)、同余、同余式、平方剩余、指數(shù)和原根等的基本概念和性質(zhì);Euler 定理、Fermat 定理、中國剩余定理及二次互反律等重要定理;以及歐幾里得除法、素?cái)?shù)的判定、因式分解、模重復(fù)平方計(jì)算法等重要算法。內(nèi)容多,知識(shí)雜,章節(jié)的關(guān)聯(lián)性較弱,核心定理的證明技巧性強(qiáng)。
在抽象代數(shù)基礎(chǔ)方面,主要包括群、子群、循環(huán)群、陪集、環(huán)、零因子、理想、域等眾多概念及性質(zhì)。內(nèi)容抽象,環(huán)環(huán)相扣,需要記憶的知識(shí)點(diǎn)較多,學(xué)習(xí)難度大。
在橢圓曲線基礎(chǔ)方面,主要包括橢圓曲線的基本概念,橢圓曲線上的加法運(yùn)算法則,及橢圓曲線密碼系統(tǒng)。這部分內(nèi)容難度大,內(nèi)容深,知識(shí)廣。由于課時(shí)的限制,本部分內(nèi)容在課堂上主要講解基本概念,更多的內(nèi)容需要在教師的引導(dǎo)下,學(xué)生課下自主學(xué)習(xí)。
通過對(duì)本課程的學(xué)習(xí),可以使學(xué)生系統(tǒng)地掌握信息安全學(xué)科涉及的數(shù)學(xué)基本概念和基本原理,建立數(shù)學(xué)體系的完整概念,為后續(xù)專業(yè)課程的學(xué)習(xí)奠定基礎(chǔ)。
《信息安全數(shù)學(xué)基礎(chǔ)》課程中涉及眾多的定義、性質(zhì)、和定理,理論性強(qiáng),內(nèi)容抽象[5],對(duì)于工科學(xué)生而言難度較大,學(xué)生容易望而生畏,缺少學(xué)習(xí)的熱情及主動(dòng)性[6]。筆者結(jié)合近兩年本課程的授課經(jīng)驗(yàn)來看,主要存在以下幾個(gè)問題。
(1)教學(xué)方法單一,難以調(diào)動(dòng)學(xué)生積極性。
由于課時(shí)的限制,為了在有限的課時(shí)中完成教學(xué)任務(wù),傳統(tǒng)的教學(xué)方法主要采用以課堂教師講授為主,課下學(xué)生完成課后作業(yè)的教學(xué)模式,授課手段多為PPT 演示或黑板板書[7]。本課程理論性強(qiáng),內(nèi)容枯燥,在傳統(tǒng)的教學(xué)方法下無法調(diào)動(dòng)學(xué)生的積極性,容易使學(xué)生產(chǎn)生畏難情緒,缺少學(xué)習(xí)的熱情。
(2)課程內(nèi)容分散,缺少主線
本課程主要包括整數(shù)的可除性、同余、同余式、二次同余式與平方剩余、原根、基本代數(shù)、有限域、橢圓曲線等八個(gè)章節(jié)[3],內(nèi)容比較分散,學(xué)生難以建立起各個(gè)章節(jié)之間的聯(lián)系,容易學(xué)了后面的知識(shí)而遺忘前面的知識(shí),授課過程中缺少一根主線把各章節(jié)的內(nèi)容聯(lián)系起來。
(3)考核形式單一,重理論而輕實(shí)踐
在課程考核方面,目前大多數(shù)學(xué)校主要采用考勤、作業(yè)、期末閉卷考試的考核形式,著重對(duì)學(xué)生的理論知識(shí)進(jìn)行考核。學(xué)生上課聽課,下課完成作業(yè),缺少對(duì)動(dòng)手能力的培養(yǎng)。在這種考核形式下,學(xué)生只是掌握了本課程的數(shù)學(xué)原理,缺少對(duì)本課程和信息安全后續(xù)課程聯(lián)系的認(rèn)識(shí),缺少實(shí)踐,不利于引導(dǎo)學(xué)生自主學(xué)習(xí)密碼學(xué)等其他專業(yè)課程。
筆者在本課程的教學(xué)過程中積極尋求教學(xué)改進(jìn),結(jié)合課后與學(xué)生的交流及反饋情況,提出了一種基于密碼學(xué)困難問題的《信息安全數(shù)學(xué)基礎(chǔ)》教學(xué)模式,有效的提高了學(xué)生的積極性,增強(qiáng)了課程的連貫性,并加強(qiáng)了學(xué)生運(yùn)用數(shù)學(xué)原理解決信息安全中實(shí)際問題的能力。
根據(jù)密鑰類型的不同,密碼體制分為對(duì)稱加密體制和公鑰加密體制。在對(duì)稱加密體制中,加密密鑰和解密密鑰是相同的或者彼此之間是容易確定的;在公鑰加密體制中,加密密鑰和解密密鑰是不同的且由加密密鑰得到解密密鑰是不可行的[8]。其中,大部分公鑰密碼體制的安全性主要是基于三個(gè)數(shù)學(xué)上的計(jì)算困難問題:大整數(shù)因式分解問題、離散對(duì)數(shù)問題、橢圓曲線離線對(duì)數(shù)問題。本節(jié)將提出一種以密碼學(xué)困難問題為主線的《信息安全數(shù)學(xué)基礎(chǔ)》課程的教學(xué)模式,如圖1所示。
圖1 基于密碼學(xué)困難問題的教學(xué)模式
大整數(shù)因式分解問題是指,給定由兩個(gè)大素?cái)?shù)相乘而得到整數(shù)n,求n 的素因子p 和q 使得n=pq成立?;诖笳麛?shù)因式分解問題的代表性密碼算法有RSA 加密算法。RSA 加密算法分為密鑰生成過程、加密過程、解密過程,具體算法過程如下[3]。
密鑰生成過程:
(1)隨機(jī)產(chǎn)生兩個(gè)不同的大素?cái)?shù)p 和q ;
(2)計(jì)算n=pq 和n 的歐拉函數(shù)φ(n);
(3)隨 機(jī) 選 取 一 個(gè) 整 數(shù) e,1 <e <φ( n ),使 得
(4)計(jì) 算 唯 一 的 整 數(shù) d,1 <d <φ( n ),使 得ed ≡1(mod φ(n));
(5)生成的公鑰為Ke=(n,e),私鑰為Kd=d。
加密過程:
(1)消息發(fā)送者從認(rèn)證中心等地方取得消息接收者的公鑰Ke=(n,e);
(4)消息發(fā)送者把整數(shù)c 轉(zhuǎn)換成密文信息并發(fā)送給消息接收者。
解密過程:
(1)消息接收者將密文信息轉(zhuǎn)換為整數(shù)c;
(2)消息接收者運(yùn)用私鑰 Kd=d 恢復(fù)整數(shù)m=Kd(c)≡cd(mod n);
(3)消息接收者將整數(shù)m 轉(zhuǎn)換成明文信息。
RSA 算法的安全性在于已知整數(shù)n ,計(jì)算出n的因式分解是n=pq 是困難的。如果攻擊者想要從公鑰信息中計(jì)算出私鑰Kd=d,則需要知道n的歐拉函數(shù)φ(n),而在不知道n 的因式分解的情況下,計(jì)算是困難的。
RSA 加密算法涉及《信息安全數(shù)學(xué)基礎(chǔ)》課程中的素?cái)?shù)、歐拉函數(shù)、最大公約數(shù)、Euclid 除法、同余、模冪計(jì)算、中國剩余定理等知識(shí)點(diǎn),主要包括在本課程的第一章、第二章、第三章、第四章中的內(nèi)容。因此,在詳細(xì)講解這四章內(nèi)容之前,可以先引出RSA 加密算法的步驟,讓學(xué)生回答哪些概念、步驟是不理解的,然后讓學(xué)生帶著問題學(xué)習(xí)前四章的內(nèi)容,事半功倍。
離散對(duì)數(shù)問題是指,給定 q 階有限循環(huán)群G=<g >的一個(gè)元素β ∈G,求整數(shù)x ∈Z*q,使得β=gx成立?;陔x散對(duì)數(shù)問題的代表性密碼算法有Diffie-Hellman 密鑰協(xié)商算法。Diffie-Hellman 密鑰協(xié)商的目的是通信雙方希望在一個(gè)公開信道中協(xié)商出一個(gè)隨機(jī)的共同密鑰。通信雙方已知一個(gè)大素?cái)?shù) p 及模p 的原根g,協(xié)商的具體步驟如下[3]。
(1)用戶A 產(chǎn)生一個(gè)隨機(jī)數(shù) xA作為私鑰,1 ≤xA<n,計(jì)算gxA并發(fā)送給B;
(2)用戶B 產(chǎn)生一個(gè)隨機(jī)數(shù) xB作為私鑰,1 ≤xB<n,計(jì)算gxB并發(fā)送給A;
(3)用戶A 利用自己的私鑰xA和接收到的gxB計(jì)算,用戶B 利用自己的私鑰xB和接收到的gxA計(jì)算
Diffie-Hellman 密鑰協(xié)商的安全性在于即使攻擊者從公開信道中獲得gxA和gxB,由于離散對(duì)數(shù)問題的困難性導(dǎo)致攻擊者計(jì)算出共同密鑰gxAxB是困難的。
Diffie-Hellman 密鑰協(xié)商算法涉及《信息安全數(shù)學(xué)基礎(chǔ)》中第五章指數(shù)和原根的內(nèi)容。因此,在詳細(xì)講解第五章內(nèi)容之前,先向?qū)W生介紹Diffie-Hellman 密鑰協(xié)商算法的實(shí)用性及算法步驟,詢問學(xué)生對(duì)于算法的認(rèn)識(shí),引出“什么是原根?”的問題,讓學(xué)生帶著問題和興趣學(xué)習(xí)第五章的內(nèi)容。
橢圓曲線離散對(duì)數(shù)問題是指,已知有限域Fp上的橢圓曲線點(diǎn)群:
點(diǎn)P=(x,y)的階為一個(gè)大素?cái)?shù),給定點(diǎn)Q ,求整數(shù)x,使得xP=Q 成立。基于橢圓曲線離散對(duì)數(shù)問題的代表性密碼算法有橢圓曲線Diffie-Hellman 密鑰協(xié)商算法。橢圓曲線Diffie-Hellman 密鑰協(xié)商算法與Diffie-Hellman 密鑰協(xié)商算法的步驟很相似,不同點(diǎn)在于橢圓曲線Diffie-Hellman 密鑰協(xié)商算法的所有運(yùn)算都是在橢圓曲線上進(jìn)行的。算法的具體步驟如下[3]。
(1)用戶A、B 商定好參數(shù):E 表示橢圓曲線,n表示橢圓曲線點(diǎn)群上基點(diǎn)P 的階,F(xiàn)q表示有限域;
(2)用戶A 產(chǎn)生一個(gè)隨機(jī)數(shù) dA作為私鑰,1 ≤dA<n,計(jì)算QA=dAP 并發(fā)送給B;
(3)用戶B 產(chǎn)生一個(gè)隨機(jī)數(shù) dB作為私鑰,1 ≤dB<n,計(jì)算QB=dBP 并發(fā)送給A;
(4)用戶A 利用自己的私鑰dA和接收到的QB計(jì)算dAQB,用戶B 利用自己的私鑰dB和接收到的QA計(jì)算dBQA;
(5)用戶A 和用戶B 協(xié)商出的共同密鑰為KAB=dAdBP=dAQB=dBQA。
橢圓曲線Diffie-Hellman 密鑰協(xié)商算法的安全性在于即使攻擊中獲得了QA和QB,由橢圓曲線離散對(duì)數(shù)問題的困難性導(dǎo)致求解出協(xié)商的共同密鑰dAdBP 是困難的。
橢圓曲線Diffie-Hellman 密鑰協(xié)商算法涉及《信息安全數(shù)學(xué)基礎(chǔ)》課程中橢圓曲線的概念、橢圓曲線上的加法、重復(fù)倍加算法、及橢圓曲線密碼系統(tǒng)等內(nèi)容,主要包含在本課程的第八章。通過第一章、第二章、第三章、第四章的學(xué)習(xí)后,學(xué)生對(duì)密碼系統(tǒng)已經(jīng)有一定的掌握,因此在第八章的教學(xué)過程中可以采用翻轉(zhuǎn)課堂的形式,在教師講解了橢圓曲線基本概念及橢圓曲線上的運(yùn)算后,讓學(xué)生查閱資料自主學(xué)習(xí)橢圓曲線密碼系統(tǒng),并以小組為單位分享學(xué)習(xí)的內(nèi)容。
抽象代數(shù)基礎(chǔ)是《信息安全數(shù)學(xué)基礎(chǔ)》課程的重要組成部分,這部分內(nèi)容概念多、內(nèi)容抽象,難度較大。通過前面章節(jié)的學(xué)習(xí),學(xué)生已經(jīng)熟悉集合及模p 加法⊕和模p 乘法?:
乘法逆元:當(dāng)p 是素?cái)?shù)時(shí),對(duì)于集合Zp中的任何非零元素,存在∈Zp,使得
在探索了以上11 條性質(zhì)過后,可以自然地引出抽象代數(shù)基礎(chǔ)中群、環(huán)、域的概念[3]。
定義1(群):設(shè)G 是一非空集合。如果在G 上定義了一個(gè)代數(shù)運(yùn)算,稱為乘法“ · ”,記為a·b,而且這個(gè)運(yùn)算滿足下列條件,那么代數(shù)結(jié)構(gòu)( )G, · 稱為一個(gè)群:
(1)封閉性:?a,b ∈G,有a·b ∈G;
(2)結(jié)合律:?a,b,c ∈G,有(a·b)·c= a·(b·c);
(3)單位元:?e ∈G,s.t. ?a ∈G,有e·a=a·e=a;
(4)逆元:?a ∈G, ?b ∈G,使得b·a= a·b=e。
在講解了群的定義后,引導(dǎo)學(xué)生發(fā)現(xiàn)集合Zp及其上的代數(shù)運(yùn)算“ ”構(gòu)成的代數(shù)結(jié)構(gòu)(Zp,⊕)滿足封閉性、結(jié)合律、單位元、逆元這四條性質(zhì),因此(Zp,⊕)是一個(gè)群。同時(shí),通過讓學(xué)生思考代數(shù)結(jié)構(gòu)(Zp,⊕)是否是一個(gè)群的問題來加深對(duì)群概念的理解。
在講解了群的基本概念及性質(zhì)、子群、陪集、同態(tài)、循環(huán)群等內(nèi)容后,可以再利用學(xué)生熟悉的代數(shù)系統(tǒng)(Zp,⊕,?) 引出另一個(gè)抽象代數(shù)基礎(chǔ)中的重要概念“環(huán)”。
定義2(環(huán)):設(shè)R 是一非空集合,在R 上定義了加法和乘法兩種代數(shù)運(yùn)算,分別記為“ + ”和“ · ”。如果代數(shù)結(jié)構(gòu)(R, +, ·) 具有如下性質(zhì):
(1)(R, +)是一個(gè)交換群;
(2)R 對(duì)于乘法是封閉:?a,b ∈R,有a·b ∈R;
(4)分配律成立:?a, b,c ∈R ,有a·(b+c) = a·b+a·c,(b+c)·a= b·a+c·a;
則稱(R, +, ·)為一個(gè)環(huán)。
在介紹了環(huán)的定義后,引導(dǎo)學(xué)生對(duì)比代數(shù)結(jié)構(gòu)(Zp,⊕,?)上的性質(zhì),很容易發(fā)現(xiàn)(Zp,⊕,?)就是一個(gè)環(huán)。從學(xué)生熟悉的具體的代數(shù)結(jié)構(gòu)(Zp,⊕,?)出發(fā),有利于學(xué)生對(duì)于抽象概念“環(huán)”的理解,并可以用實(shí)例介紹環(huán)的零因子、子環(huán)等相關(guān)概念,提高學(xué)生對(duì)于環(huán)的概念及性質(zhì)等內(nèi)容的掌握程度。
類似地,在講解了環(huán)的基本概念、子環(huán)、環(huán)同態(tài)、理想、多項(xiàng)式環(huán)等概念及性質(zhì)后,可以再利用代數(shù)結(jié)構(gòu)(Zp,⊕,?)引出“域”的概念。
定義3(域):若R 是一個(gè)環(huán),并且R*=R{ }0 對(duì)于乘法構(gòu)成一個(gè)交換群,則稱(R, +, ·) 為一個(gè)域。
通過前面對(duì)群和環(huán)內(nèi)容的學(xué)習(xí),學(xué)生很容易發(fā)現(xiàn)當(dāng)p 是素?cái)?shù)時(shí),代數(shù)結(jié)構(gòu)(Zp,⊕,?)是一個(gè)域。
筆者從近年來的授課經(jīng)驗(yàn)來看,工科學(xué)生普遍存在抽象概念的理解能力較弱的問題。群、環(huán)、域等的概念比較抽象,通過先引入學(xué)生熟悉的代數(shù)結(jié)構(gòu)(Zp,⊕,?),可以使學(xué)生對(duì)群、環(huán)、域的概念有了初步的具體認(rèn)識(shí),在此基礎(chǔ)上再進(jìn)行抽象代數(shù)基礎(chǔ)內(nèi)容的講解,由淺入深,由抽象到具體再到抽象,可以使學(xué)生更好的掌握第六章基本代數(shù)及第七章有限域內(nèi)容。
本文以密碼學(xué)上的數(shù)學(xué)困難問題為主線,有效地將《信息安全數(shù)學(xué)基礎(chǔ)》課程中的數(shù)論基礎(chǔ)、抽象代數(shù)基礎(chǔ)、橢圓曲線基礎(chǔ)三部分的內(nèi)容連接起來,增強(qiáng)了課程的整體性,內(nèi)容從具體到抽象,有利于學(xué)生對(duì)各個(gè)知識(shí)點(diǎn)融會(huì)貫通、舉一反三,增強(qiáng)對(duì)課程的記憶力及理解力。同時(shí),在教學(xué)過程中結(jié)合PPT、黑板板書、學(xué)生自學(xué)、翻轉(zhuǎn)課堂等多種教學(xué)形式,提高了學(xué)生的學(xué)習(xí)熱情及自主性。在以后的教學(xué)過程中,筆者將加強(qiáng)信息安全數(shù)學(xué)基礎(chǔ)理論與信息安全實(shí)踐的結(jié)合,讓學(xué)生學(xué)以致用,提升學(xué)習(xí)興趣,深入掌握相關(guān)知識(shí)。