牛淑芬 董潤園 劉維



摘要:信息安全數學基礎是網絡與信息安全專業研究生的基礎課程,主要為學生后續的課程學習提供數學理論基礎。經過探討信息安全數學基礎教學中存在的不足,設計了一個基于密碼算法為案例的教學改革模式。該教學模式將數學理論與密碼算法相結合、將密碼算法與編程實踐相結合。經過教學實踐證明,該教學方法能充分調動學生的積極性和主動性,讓學生在掌握數學理論的同時,深入地理解數學理論在密碼實踐中的應用,同時算法編程的實現讓知識的掌握更為直觀。
關鍵詞:信息安全數學基礎;密碼算法案例;教學方法
中圖分類號:G642 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)29-0126-03
1 引言
信息安全作為一門新興的綜合性很強的交叉性學科,涉及計算機科學、密碼學、數學、通信學、信息學、安全工程、法律等諸多學科[1],其目的是保障信息在存儲和傳輸過程中的保密性、完整性、不可否認性等特性。信息安全數學基礎是信息安全專業學生的核心課程,本學科建立在數學理論的基礎之上并且涉及多個數學分支[2],如:離散數學、數論、代數學等課程。作為一門新的數學課程,雖然有很強的理論性,但它也有別于一般的數學課程,那就是與密碼學課程相關,如:現代密碼學、網絡安全基礎、協議分析等[3],所以本課程也具有一定的實踐應用性。本文通過分析信息安全專業碩士研究生在學習過程中存在的問題,探討以密碼算法案例為主線的教學模式,使學生在密碼算法應用實踐中學習相關的數學理論知識。
信息安全數學基礎內容涉及眾多的性質和定理,內容抽象[4],需要大量的理論推導,對于邏輯推理能力較弱的理工科學生而言理解難度比較大,導致學生的學習積極性和主動性都不高。筆者近五年一直講授信息安全專業的信息安全數學基礎和現代密碼學兩門課程,結合近五年的授課經驗和長期的教學探索,發現存在以下問題:
(1)教學方法單一,學生積極性和主動性不高。
由于現有的教學時數是36學時,為了在有限的課時中完成教學內容,本課程的講授方式重理論輕應用,重算法輕編程,基本以板書形式結合PPT講授,這樣的教學方式和手段使得課程的教學顯得枯燥,而對于計算機專業的研究生來說,編程實現算法是其優勢,本教學改革擬根據課程內容的特點和學生的實際學習能力,通過案例教學和編程調動學生的學習積極性。
(2)教學目的與實踐脫節。
根據傳統數學類課程的教學模式,學生只是掌握了本課程的數學原理,提高了學生的邏輯能力和解題能力,而缺少對本課程和信息安全后續課程(如:現代密碼學)的聯系,無法形成一個完整的體系,也無法融會貫通各個課程的知識點,使得教學內容和實踐應用脫節。
筆者結合教學環節中發現的問題以及信息安全專業碩士生后續課程的教學需求,根據學生學習階段的反饋,積極探索適合創新模式的教學改革方法。本著數學理論與密碼算法相結合,以及將密碼算法與編程實踐相結合的教學目的,提出了一種基于密碼學案例的信息安全數學基礎教學模式,該教學模式將數學理論與密碼算法相結合,將密碼算法與編程實踐相結合。該教學方法能充分調動學生的積極性和主動性,讓學生在掌握數學理論的同時,深入地理解數學理論在密碼實踐中的應用,同時算法編程的實現讓知識的掌握更為直觀。
2 基于密碼算法的案例教學模式
在本課程的教學過程中,依然是遵循以理論教學為主的教學理念,但適當地加入密碼算法案例教學,目的是讓學生學以致用,重視理論與實踐相結合。在本教學設計中,因課時的限制,選取了三個經典的密碼算法案例:RSA加密算法、基于橢圓曲線的ElGamal加密算法以及基于中國剩余定理的秘密共享。其目的是將知識點與實際應用結合,通過編程實現,對知識的理解更為直觀化。在學習了大素數、最大公約數、同余、歐拉函數和逆元的知識以后,我們以RSA加密算法為案例進行研究教學,詳細了解各個知識點的具體應用。基于橢圓曲線的密碼算法在密碼學中有著非常重要的應用,包括最為熱點的區塊鏈安全是基于橢圓曲線的加密,故在平方剩余和橢圓曲線群知識點講解后,補充基于橢圓曲線的ElGamal加密算法,使學生對知識的理解會更為透徹,也能增加趣味性和實踐性。具體教學模式如圖1所示。
2.1 以RSA加密算法為案例的學習目標
在以RSA加密算法[6]為案例的教學設計中,通過對算法的講解和編程實現,可讓學生學習理解大素數、最大公約數、同余、模冪、歐拉函數、逆元等知識點的定義和在密碼算法中的應用,最后編程實現,以便直觀地理解各個知識點的內容。
RSA加密算法:
① 參數生成:任意選取兩個大素數[p]和[q],計算[n=pq],[φ(n)=(p-1)(q-1)],隨機選擇整數[e<φ(n)],滿足[gcd(e,φ(n))=1];計算整數[d],滿足[ed=1modφ(n)]。[p],[q]和[φ(n)]保密,加密者的公鑰為[(n,e)],私鑰為[d][5]。
② 加密:對于消息[m],計算[C=mdmodn],則密文為[C]。
③ 解密:解密者計算[m=Cemodn]。
通過RSA算法的理論分析,首先讓學生了解基本的加解密算法,學習大素數、逆元、互素等知識點在密碼學中的應用。其次,通過程序的輸出,直觀理解大素數的概念,認識并掌握模逆元的求法。
如圖2所示,程序運行輸出大素數[p]和[q],輸出公鑰[e]和私鑰[d],其中[d]為[e]的逆元。同時也可以看出,解密的消息等于隨機產生的明文消息。
2.2 以ElGamal加密算法為案例的學習目標
在第四章二次同余式和平方剩余的內容的學習中,有如下的例題:
例 1:求滿足方程[E]:[y2=x3+x+6(mod11)]的所有的點,由二次剩余概念可求得橢圓曲線上的點為:[(2,4)],[(2,7)],[(3,5)],[(3,6)],[(5,2)],[(5,9)],[(7,2)],[(7,9)],[(8,3)],[(10,2)],[(10,9)]。
本例題考查學習的任務是平方剩余的求法,在密碼學中,此知識點和密碼學中的橢圓曲線相關,在實際教學設計中,可提前講解第8章橢圓曲線的定義。基于橢圓曲線群的密碼算法在密碼學中應用非常廣泛,本內容的案例教學設計選取了經典的[ElGamal]公鑰加密算法,并給出程序運行結果。
定義1[7]: [p>3]是一個素數,[Zp]上的同余方程[y2=x3+ax+b(modp)]的所有解[(x,y)∈Zp×][Zp]連同一個特殊的點(無窮遠點)共同構成[Zp]上的橢圓曲線[y2=x3+ax+b][(modp)],且[4a3+][27b2≠0]。
在本例題的講解中,根據橢圓曲線的概念,可知方程[y2=x3+x+6(mod11)]的點滿足橢圓曲線方程,其次可以證明橢圓曲線上的點可以構成一個加群。
加法運算如下:已知橢圓曲線上兩點[P(x1,y1)]和[Q(x2,y2)],則[(x3,y3)=(x1,y1)+(x2,y2)]的求法如公式(1)[8]:
[λ=(y2-y1)(x2-x1)-1λ=(3x21+a)(2y1)-1][x2≠x1x2=x1]
則可得:
[x3=λ2-x1-x2y3=λ(x1-x3)-y1] ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
取橢圓曲線群的生成元[α=(2,7)],可以如公式(1)計算[α]的倍數,要計算[2α=(2,7)+(2,7)],首先計算:[λ=(3×22+1)(2×7)-1mod11][=8mod11]
所以有:[x3=82-2-2mod11y3=8(2-5)-7mod11=2mod11]
因此:[2α=(5,2)]。
定義2: [Z*p]上的[ElGamal]公鑰密碼體制[6]
設[p]是一個素數,使得[Z*p,?]上的離散對數問題是難處理的,令[α∈Z*p]是一個本原元。令[Ρ∈Z*p],[C=Z*p×Z*p],[β≡αamodp],[p,α,β]是公鑰,[a]是私鑰。對[K=p,α,a,β],以及一個(秘密)隨機數[k∈Zp-1],定義[eKx,k=y1,y2],其中[y1=αkmodp]且[y2=xβkmodp],對[y1,y2∈Z*p],定義[dKy1,y2=y2y1a-1modp]。
例 2:橢圓曲線的生成元為[α=(2,7)],Bob的私鑰為[7],由定義3,加密運算:
[Ek=m,k] [=k(2,7),m+k(7,2)=y1,y2]
取明文[m=10,9],[k=3],則:
[Ek=3(2,7),(10,9)+3(7,2)]
由公式(1)可得:
[y1=3(2,7)=(8,3)y2=(10,9)+3(7,2)=(10,2)]
即密文為:
[Ek=(8,3),(10,2)]
由解密算法可得:
[Dk=y1,y2=y2-ay1=(10,2)-7(8,3)=(10,2)-(3,5)=(10,2)+(3,-5)=(10,2)+(3,6)=(10,9)=m]
通過前4章的學習,學生的理論基礎有所提高,對密碼算法已經有一定的掌握,因此在第8章的教學過程中,在講授橢圓曲線的加法、重復倍加算法及橢圓曲線密碼算法等內容的基礎上,更進一步增加密碼算法案例,更有利于銜接現代密碼學課程的學習。教學方式采用翻轉課堂的形式,在教師講解密碼算法基礎上,讓學生查閱資料自主學習橢圓曲線密碼系統,結合講授的算法進行編程。
2.3 以秘密共享算法為案例的學習目標
秘密共享是將秘密值以適當的算法拆分,拆分后的每一個子秘密分發給不同的參與者,只有若干個參與者一同出示子秘密才能恢復秘密值。秘密共享算法在密碼學中尤為重要,尤其在5G/6G網絡中,由于大量用戶的移動性,密鑰協商和秘密共享成了難點和重點,也是近年來研究的熱點。
事實上,秘密共享方案在現實生活中也有極其廣泛的應用,例如銀行業務處理、政府機要庫門開啟、導彈發射等,都需要多人同時到場。一些重要的文檔或者信息,也需要多人分開掌管等。在密碼學中,有線性秘密共享算法,Shamir秘密共享算法和中國剩余定理秘密共享。
中國剩余定理又稱孫子定理,是求解一元線性同余方程組問題方法。中國剩余定理的基本內容的數學表述如定義3。
定義3: 中國剩余定理[9]
設[m1,…,mk]是[k]個兩兩互素的正整數,則對任意的整數[b1,…,bk],同余式組
[ ?x≡b1 ? ? ?(mod m1) ?x≡bk ? ? ?(mod mk)]
一定有解,且解是唯一的。
由于中國剩余定理的解具有唯一性及正確性,故適于使用中國剩余定理進行構建秘密共享方案。
基于中國剩余定理的秘密共享:
分解秘密:對于某秘密值[s],計算
[s1≡s(modm1) ? ? ? s2≡s(modm2)? ? ? sn≡s(modmn) ? ? ] ? ? ? ? ? ? ? ? ? ? ? ?(2)
則子秘鑰為[(si,mi),i=1,2,…,n]。
恢復秘密:從[n]個子秘密[(si,mi)]中任意選擇[t]個,[(si1,mi1),(si2,mi2),…,][(sit,mit)]恢復出秘密值[s]:
[x≡si1(modmi1) ? ? ? x≡si2(modmi2)? ? ? x≡sit(modmit) ? ? ] ? ? ? ? ? ? ? ? ? ? (3)
[x≡s(modN1),N1=mi1mi2…mit]。
例3: 在式(2)中,給定秘密值[s=74],整數[m1=9],[m2=11],[m3=13],由公式(2)求得:
[s1≡74(mod9)≡2mod9,]
[s2≡74(mod11)≡8mod11 ,]
[s3≡74(mod13)≡9mod13 ,]
即生成的子秘密為[2,9],[8,11],[9,13]。
選取其中兩個子秘密[2,9],[8,11],用公式(3)就可以密鑰恢復[s],求解同余式:
[s≡2(mod9) ? ? ?s≡8(mod11) ? ]
由中國剩余定理公式可得:
[x≡5×11×2+5×9×8 (mod99)≡74(mod99)]
故可恢復[s=74]。
同時,可讓學生編程實現基于中國剩余定理的秘密共享算法,以更深層次地和直觀地理解中國剩余定理及其應用。使用C語編程的程序運行截圖如圖3,在圖3中隨機生成要分享的秘密值為[s],隨機生成5個整數[m0,m1,m2,m3,m4],由(2)式求得子秘密為[(si,mi),i=1,2,3,4,5],根據中國剩余定理,任取其中三個([(s1,m1)],[(s2,m2)],[(s3,m3)]),用式(3)可恢復秘密值[s]。
3 結語
根據長期的教學積累和學生在學習實踐中的反饋,筆者發現信息安全數學基礎課程教學方式與理論和實踐相脫節,教學方式也不適合新時期創新人才的培養。本教學改革的主旨思想是將數學理論的學習與密碼算法結合起來,讓學生在掌握數學理論的同時,深入地理解數學理論在密碼實踐中的應用,
鍛煉學生知識綜合應用能力。該教學方法能充分調動學生的積極性和主動性。同時將密碼算法和密碼環境融入課堂,讓學生也能了解學科前沿,符合新時期創新創業能力人才的培養需求。
參考文獻:
[1] 郎榮玲,劉建偉,金天.信息安全數學基礎理論教學方法研究[J].計算機教育,2012(17):33-35.
[2] 牛淑芬,于斐,楊平平,等.交叉學科背景下信息安全數學基礎理論與實踐教學方法研究[J].計算機教育,2021(2):149-152.
[3] 呂秋云,趙澤茂,劉順蘭.信息安全本科專業密碼學實驗課程的教學研究[J].計算機教育,2009(15):133-135.
[4] 周潔,韓靜.基于密碼學困難問題的《信息安全數學基礎》教學模式探索[J].現代計算機,2020(2):57-61.
[5] 高勝.移動感知計算中位置和軌跡隱私保護研究[D].西安:西安電子科技大學,2014.
[6] 李云蓮.身份認證協議的設計與應用[D].長沙:湖南大學,2013.
[7] 徐承波.多種應用環境下身份認證與密鑰協商協議的研究[D].北京:北京郵電大學,2014.
[8] 李明月.物聯網環境下數據加密標準的構建研究[D].桂林:桂林理工大學,2017.
[9] 繆揚.幾類有限非鏈環上線性碼的研究[D].合肥:合肥工業大學,2016.
【通聯編輯:李雅琪】