摘要:分析目前信息安全本科專業(yè)密碼學(xué)實(shí)驗(yàn)教學(xué)中存在的主要矛盾,總結(jié)實(shí)踐教學(xué)經(jīng)驗(yàn),提出模塊化的實(shí)驗(yàn)教學(xué)方法,將密碼學(xué)實(shí)驗(yàn)分為算法驗(yàn)證模塊、算法實(shí)現(xiàn)模塊及綜合設(shè)計(jì)模塊3個(gè)實(shí)驗(yàn)?zāi)K,并闡明各個(gè)模塊的實(shí)際功能、實(shí)驗(yàn)手段、實(shí)驗(yàn)內(nèi)容、學(xué)時(shí)安排及考核規(guī)范,確立密碼學(xué)實(shí)驗(yàn)課程教學(xué)的基本思路和總體框架。
關(guān)鍵詞:密碼學(xué);模塊化;密碼學(xué)實(shí)驗(yàn)
0 引言
密碼學(xué)課程是信息安全本科專業(yè)學(xué)生的一門必修課和主干課,課程主要內(nèi)容包括密碼學(xué)基本概念、古典密碼、分組密碼、序列密碼、對(duì)稱密碼、公開(kāi)密鑰密碼、認(rèn)證、數(shù)字簽名、密鑰管理等。密碼學(xué)課程具有很強(qiáng)的實(shí)踐性,僅靠理論講授難以達(dá)到課程設(shè)置的目標(biāo),教師必須在教學(xué)過(guò)程中對(duì)密碼學(xué)的實(shí)驗(yàn)教學(xué)環(huán)節(jié)予以高度重視。實(shí)驗(yàn)教學(xué)不僅是理論教學(xué)的輔助手段,而且是理論教學(xué)的延伸和發(fā)展,使學(xué)生在實(shí)際操作和編程設(shè)計(jì)中培養(yǎng)獨(dú)立思考和動(dòng)手能力,激發(fā)學(xué)生將理論知識(shí)轉(zhuǎn)化為實(shí)際成果的興趣和熱情。
1 密碼學(xué)實(shí)驗(yàn)教學(xué)中存在的主要矛盾
目前,各學(xué)校的密碼學(xué)課程基本上都安排了實(shí)驗(yàn)環(huán)節(jié),但我們通過(guò)調(diào)研發(fā)現(xiàn),實(shí)驗(yàn)課的實(shí)驗(yàn)內(nèi)容設(shè)置、課時(shí)安排及考核方式等缺乏統(tǒng)一的規(guī),范和要求。教師在實(shí)驗(yàn)課的實(shí)施過(guò)程中通常會(huì)遇到以下較難解決的矛盾。
1)算法復(fù)雜與編程實(shí)現(xiàn)之間的矛盾。密碼學(xué)算法本身的復(fù)雜度和難度致使密碼學(xué)實(shí)驗(yàn)中算法編寫(xiě)難度較大。
2)學(xué)時(shí)少與綜合設(shè)計(jì)耗時(shí)多的矛盾。目前,一般本科院校開(kāi)設(shè)的密碼學(xué)課程中,實(shí)驗(yàn)課學(xué)時(shí)多為6~14學(xué)時(shí),學(xué)時(shí)較少,但卻要求學(xué)生結(jié)合實(shí)際背景,完成一個(gè)相對(duì)完整的密碼應(yīng)用系統(tǒng)的綜合設(shè)計(jì),其設(shè)計(jì)將耗費(fèi)大量時(shí)間,并且大幅度增加密碼學(xué)實(shí)驗(yàn)教學(xué)課時(shí)也很難實(shí)現(xiàn)。
3)實(shí)驗(yàn)形式多樣與考核規(guī)范化之間的矛盾。目前各高校密碼學(xué)實(shí)驗(yàn)大都采用了多種實(shí)驗(yàn)形式,但不同的實(shí)驗(yàn)并不都適合用傳統(tǒng)的實(shí)驗(yàn)報(bào)告形式進(jìn)行考核。由于缺乏統(tǒng)一、細(xì)致的考核規(guī)范,各院校教師對(duì)密碼學(xué)實(shí)驗(yàn)的考核手段迥異,這將不利于密碼學(xué)課程的后續(xù)發(fā)展。
針對(duì)以上矛盾,我們對(duì)密碼學(xué)課程的實(shí)驗(yàn)教學(xué)進(jìn)行深入研究,結(jié)合海軍工程大學(xué)多年來(lái)的實(shí)踐教學(xué)經(jīng)驗(yàn),提出模塊化的密碼學(xué)實(shí)驗(yàn)教學(xué)設(shè)計(jì)方案,將密碼學(xué)實(shí)驗(yàn)教學(xué)分為3個(gè)模塊,并明確各模塊的實(shí)際功能、實(shí)驗(yàn)手段、實(shí)驗(yàn)內(nèi)容、學(xué)時(shí)安排及考核規(guī)范,希望給各位教師在實(shí)際教學(xué)過(guò)程中帶來(lái)一些啟發(fā)和幫助。
2 模塊化密碼學(xué)實(shí)驗(yàn)教學(xué)設(shè)計(jì)
2.1實(shí)際功能
在實(shí)際教學(xué)過(guò)程中,密碼學(xué)實(shí)驗(yàn)教學(xué)3個(gè)模塊的具體功能各有不同。
1)算法驗(yàn)證模塊主要提供各類密碼算法的驗(yàn)證軟件,使學(xué)生通過(guò)驗(yàn)證性實(shí)驗(yàn),更加熟練地掌握在課堂上所學(xué)的密碼算法原理及流程,并通過(guò)實(shí)驗(yàn)操作明確密碼算法的設(shè)計(jì)細(xì)節(jié)、參數(shù)選擇、工作模式等。
2)算法實(shí)現(xiàn)模塊在學(xué)生熟練掌握密碼算法原理的基礎(chǔ)上,考查學(xué)生利用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)相關(guān)算法的能力。算法實(shí)現(xiàn)模塊是較高層次的實(shí)驗(yàn)?zāi)K,該模塊主要幫助學(xué)生學(xué)會(huì)逐步分析算法的結(jié)構(gòu),提高密碼算法編程能力,更好地掌握密碼算法設(shè)計(jì)的機(jī)理和方法。
3)綜合設(shè)計(jì)模塊則在前2個(gè)模塊的基礎(chǔ)上,訓(xùn)練學(xué)生綜合運(yùn)用所學(xué)密碼算法原理設(shè)計(jì)一個(gè)針對(duì)某類信息安全問(wèn)題的密碼應(yīng)用系統(tǒng)或方案。綜合設(shè)計(jì)實(shí)驗(yàn)有助于鍛煉學(xué)生的思維能力、操作能力和團(tuán)結(jié)合作能力,為學(xué)生參加實(shí)際工作和今后開(kāi)展進(jìn)一步的科學(xué)研究打下良好基礎(chǔ)。
綜上所述,3個(gè)實(shí)驗(yàn)?zāi)K層層遞進(jìn),相互促進(jìn),共同實(shí)現(xiàn)密碼學(xué)實(shí)驗(yàn)教學(xué)設(shè)置的總體目標(biāo)。
2.2實(shí)驗(yàn)手段
由于密碼學(xué)實(shí)驗(yàn)教學(xué)3個(gè)模塊實(shí)現(xiàn)的功能不同,其采取的實(shí)驗(yàn)手段也不盡相同。
2.2.1算法驗(yàn)證模塊的實(shí)驗(yàn)手段
算法驗(yàn)證模塊的實(shí)驗(yàn)手段主要是各類密碼算法的加、解密驗(yàn)證軟件或?qū)嶒?yàn)系統(tǒng)。此模塊的實(shí)驗(yàn)操作較為簡(jiǎn)單,由學(xué)生利用已有軟件在計(jì)算機(jī)上完成具體密碼算法的加、解密,但要求教師選擇合適的軟件或?qū)嶒?yàn)系統(tǒng),避免選取“黑盒子”式的實(shí)驗(yàn)驗(yàn)證軟件。此類軟件僅提供算法加、解密界面,學(xué)生除了輸入明文(密文)得到密文(明文)外,不能了解算法的總體流程和各個(gè)運(yùn)算部件的具體功能。
好的密碼算法驗(yàn)證軟件不僅能提供加、解密界面,而且能清晰地展現(xiàn)整個(gè)算法流程,對(duì)算法每個(gè)運(yùn)算部件的功能都能用動(dòng)畫(huà)等直觀生動(dòng)的形式進(jìn)行表示。DES算法驗(yàn)證軟件單輪流程如圖1所示,該軟件是由北京城市學(xué)院計(jì)算中心提供的,清晰地展現(xiàn)每一輪的加密流程和密鑰產(chǎn)生過(guò)程,學(xué)生可以通過(guò)雙擊陰影部分的運(yùn)算部件進(jìn)一步了解“擴(kuò)展”、“壓縮”、“移位”等運(yùn)算部件的具體功能。DES算法驗(yàn)證軟件數(shù)據(jù)擴(kuò)展運(yùn)算如圖2所示。
在實(shí)際教學(xué)過(guò)程中,教師可以根據(jù)需要制作方便學(xué)生使用的算法驗(yàn)證軟件或?qū)嶒?yàn)演示系統(tǒng),以達(dá)到既定教學(xué)目的。
2.2.2算法實(shí)現(xiàn)模塊的實(shí)驗(yàn)手段
算法實(shí)現(xiàn)模塊的主要實(shí)驗(yàn)手段為算法編程。目前密碼學(xué)課程中介紹的部分古典密碼算法較為簡(jiǎn)單,如仿射密碼和Vigenre密碼等。大部分學(xué)生可以順利完成編程實(shí)現(xiàn),但課程中現(xiàn)代密碼算法的編程實(shí)現(xiàn)往往超出初學(xué)者的能力范圍,如傳統(tǒng)密碼體制中的DES、AES、IDEA等算法,具有整體流程設(shè)計(jì)繁復(fù)、運(yùn)算部件眾多、計(jì)算機(jī)語(yǔ)言描述困難等特點(diǎn);公鑰密碼體制中的RSA、Elgamal、ECC等雖然算法描述較為簡(jiǎn)單,但參數(shù)選擇、篩選困難,且數(shù)學(xué)運(yùn)算復(fù)雜。初學(xué)密碼學(xué)的學(xué)生,面對(duì)這樣的算法,往往不知道該如何下手。因此,算法實(shí)現(xiàn)模塊要解決的主要矛盾是如何適當(dāng)降低算法編程的難度,提高學(xué)生在有限時(shí)間內(nèi)完成編程實(shí)驗(yàn)的能力。我們?cè)趯?shí)踐中通常采取以下2種手段。
1)讓學(xué)生對(duì)簡(jiǎn)化密碼算法進(jìn)行編程實(shí)現(xiàn)。為了教學(xué)方便,我們可以將簡(jiǎn)化算法提供給學(xué)生,讓其進(jìn)行編程實(shí)現(xiàn)。部分密碼算法有相應(yīng)的簡(jiǎn)化版本,如S-DES的總體流程及結(jié)構(gòu)與DES類似,但分組長(zhǎng)度及密鑰長(zhǎng)度都要小很多。再如RSA等公鑰密碼算法,可以引導(dǎo)學(xué)生完成小參數(shù)系統(tǒng)的程序編寫(xiě),不涉及安全素?cái)?shù)選取、大數(shù)模冪的快速運(yùn)算等實(shí)現(xiàn)難點(diǎn),也降低了算法編程難度。
2)讓學(xué)生對(duì)密碼算法進(jìn)行組合式編程。在算法復(fù)雜度沒(méi)有降低的情況下,我們可以對(duì)算法進(jìn)行“分解”,向?qū)W生提供算法中主要運(yùn)算部件的源代碼,讓其自主拼接成一個(gè)完整的程序。這類似于“機(jī)器組裝”的工作模式,將機(jī)器零件或部分半成品提供給工人,工人只要對(duì)機(jī)器的整體結(jié)構(gòu)有足夠的熟悉度,即可在圖紙的指導(dǎo)下完成整臺(tái)機(jī)器的組裝。
這種組合式編程可以在一定程度上降低實(shí)驗(yàn)難度,激發(fā)學(xué)生的編程積極性,從而提高教學(xué)效果。如對(duì)于AES算法的編程,我們可以將AES算法拆分為字節(jié)代換、行移位、列混合、密鑰加4個(gè)主要功能模塊,提供學(xué)生上述幾個(gè)功能模塊的詳細(xì)完整的代碼,并要求學(xué)生詳細(xì)閱讀該代碼,然后將代碼添加至自己建立的工程文檔中,在需要實(shí)現(xiàn)各種變換時(shí)調(diào)用這些函數(shù)。這種積極參考和閱讀源代碼的方式使學(xué)生的編程工作量明顯下降。
在實(shí)際的算法實(shí)現(xiàn)模塊中,我們可以結(jié)合使用上述2種手段,促進(jìn)學(xué)生密碼算法編程能力的提高。
2.2.3綜合設(shè)計(jì)模塊的實(shí)驗(yàn)手段
綜合設(shè)計(jì)模塊要求學(xué)生結(jié)合實(shí)際設(shè)計(jì)一個(gè)較為完整的密碼應(yīng)用系統(tǒng),耗時(shí)較多,學(xué)生難以在規(guī)定學(xué)時(shí)內(nèi)完成。我們通常采取以下方式進(jìn)行:教師選出難易適中的設(shè)計(jì)題目并向?qū)W生公布,3~4名學(xué)生自由組成設(shè)計(jì)小組并推選負(fù)責(zé)人,各小組自愿選擇可以完成的設(shè)計(jì)組,或由學(xué)生自己確定感興趣的設(shè)計(jì)題目,經(jīng)教師審核符合要求后,各小組即可開(kāi)始進(jìn)行設(shè)計(jì)實(shí)驗(yàn)。小組成員團(tuán)結(jié)協(xié)作,明確分工,共同完成設(shè)計(jì)任務(wù)。綜合設(shè)計(jì)模塊主要在課外進(jìn)行,為提高學(xué)生的參與積極l生,教師可將本模塊的教學(xué)工作與每年一度的全國(guó)大學(xué)生信息安全競(jìng)賽或?qū)W生的畢業(yè)設(shè)計(jì)結(jié)合起來(lái)。
2.3實(shí)驗(yàn)內(nèi)容及學(xué)時(shí)安排
各個(gè)實(shí)驗(yàn)?zāi)K的具體內(nèi)容及課時(shí)安排如表1所示。
2.4考核規(guī)范
3個(gè)不同實(shí)驗(yàn)?zāi)K的功能及實(shí)驗(yàn)手段都存在較大差別,因此教師在實(shí)驗(yàn)考核上也應(yīng)采取不同的方式和規(guī)范。
算法驗(yàn)證性實(shí)驗(yàn)的每個(gè)設(shè)計(jì)題目有統(tǒng)一格式的實(shí)驗(yàn)報(bào)告,如實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)環(huán)境、實(shí)驗(yàn)預(yù)備知識(shí)點(diǎn)、實(shí)驗(yàn)步驟、實(shí)驗(yàn)思考題等。教師可根據(jù)算法軟件設(shè)計(jì)實(shí)驗(yàn)步驟,注意除了提供算法細(xì)節(jié)的驗(yàn)證步驟外,還應(yīng)給學(xué)生提供自主思考的空間。例如,提示學(xué)生通過(guò)實(shí)驗(yàn)找到DES的弱密鑰;讓學(xué)生考慮在選擇參數(shù)不符合要求的情況下,RSA加、解密能否正常進(jìn)行。對(duì)于實(shí)驗(yàn)思考題,教師也應(yīng)結(jié)合所選驗(yàn)證軟件精心設(shè)計(jì),最好是設(shè)置一些學(xué)生能在實(shí)驗(yàn)過(guò)程中找到正確答案的問(wèn)題。教師在學(xué)生完成實(shí)驗(yàn)后統(tǒng)一檢查、批改實(shí)驗(yàn)報(bào)告,并給出考核分?jǐn)?shù)。
對(duì)于算法實(shí)現(xiàn)模塊的每個(gè)題目,為防止學(xué)生只是簡(jiǎn)單地進(jìn)行網(wǎng)絡(luò)拷貝,教師可要求學(xué)生在實(shí)驗(yàn)規(guī)定的課時(shí)內(nèi),將算法編程實(shí)現(xiàn)成為可以實(shí)際使用的程序(包括對(duì)簡(jiǎn)化算法的編程及對(duì)復(fù)雜算法的組合式編程),并能對(duì)所編程序進(jìn)行詳細(xì)說(shuō)明。最后,教師根據(jù)程序編寫(xiě)的完整性和可用性給出考核評(píng)分。
對(duì)于綜合設(shè)計(jì)模塊中的題目,教師要求學(xué)生以小組為單位預(yù)先提交開(kāi)題設(shè)計(jì)書(shū),對(duì)所選題目的研究目的、擬采取的研究方案、研究進(jìn)度、分工安排等進(jìn)行匯報(bào),最終形成綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告,包括所設(shè)計(jì)系統(tǒng)的功能介紹、實(shí)現(xiàn)方案、性能測(cè)試、創(chuàng)新性、總結(jié)等。教師組織小組進(jìn)行統(tǒng)一答辯,根據(jù)答辯情況給出考核評(píng)定結(jié)果,對(duì)具有一定創(chuàng)新理念的設(shè)計(jì)作品可給予較高評(píng)價(jià),并推薦小組參加年度大學(xué)生信息安全競(jìng)賽。
實(shí)驗(yàn)教學(xué)的總成績(jī)可通過(guò)對(duì)上述3個(gè)模塊的考核成績(jī)加權(quán)求和來(lái)確定,模塊權(quán)重系數(shù)分別為:算法驗(yàn)證模塊0.2,算法實(shí)現(xiàn)模塊0.4,綜合設(shè)計(jì)模塊0.4。該系數(shù)可根據(jù)教學(xué)對(duì)象的具體情況進(jìn)行調(diào)整。
3 結(jié)語(yǔ)
密碼學(xué)實(shí)驗(yàn)是密碼學(xué)課程教學(xué)中的重要環(huán)節(jié),對(duì)實(shí)現(xiàn)密碼學(xué)課程設(shè)置的總體目標(biāo)具有特殊意義。我們僅對(duì)近年來(lái)教學(xué)的研究和實(shí)踐經(jīng)驗(yàn)進(jìn)行初步總結(jié),今后還需加強(qiáng)實(shí)驗(yàn)室教學(xué)環(huán)境建設(shè),在仿真實(shí)驗(yàn)教學(xué)等環(huán)節(jié)上加倍努力,為學(xué)生提供真實(shí)、完整的網(wǎng)絡(luò)安全對(duì)抗環(huán)境。