滕明英,王玉斌,楊 雪,段桂華
(1.中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410083;2.長(zhǎng)沙礦山研究院有限責(zé)任公司設(shè)計(jì)中心,湖南 長(zhǎng)沙 410012)
密碼學(xué)輔助教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)*
滕明英1,王玉斌1,楊 雪2,段桂華1
(1.中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410083;2.長(zhǎng)沙礦山研究院有限責(zé)任公司設(shè)計(jì)中心,湖南 長(zhǎng)沙 410012)
針對(duì)目前密碼學(xué)教學(xué)過程中存在的一些問題,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)密碼學(xué)輔助教學(xué)系統(tǒng).該系統(tǒng)可以依據(jù)用戶輸入的參數(shù),將密碼算法分步驟向用戶動(dòng)態(tài)展示算法執(zhí)行過程中數(shù)據(jù)的變化情況,并利用Canvas軟件以圖形方式向用戶動(dòng)態(tài)展示密碼算法的工作流程.與同類軟件對(duì)比及并發(fā)性能測(cè)試結(jié)果表明,該系統(tǒng)不僅能幫助學(xué)生直觀深入地理解抽象的密碼算法原理及工作流程,還在結(jié)構(gòu)、應(yīng)用大小及實(shí)驗(yàn)數(shù)量上具有較好的競(jìng)爭(zhēng)優(yōu)勢(shì),在高并發(fā)環(huán)境下依舊能夠保持優(yōu)良的性能.
密碼學(xué);輔助教學(xué);動(dòng)態(tài)展示;Canvas
密碼學(xué)課程作為國(guó)內(nèi)信息安全專業(yè)的基礎(chǔ)必修課,其教學(xué)效果直接影響后續(xù)專業(yè)課程的教學(xué)質(zhì)量和學(xué)生對(duì)信息安全專業(yè)的整體把握.然而,在傳統(tǒng)的密碼學(xué)教學(xué)過程中教師多以板書及PPT演示輔助教學(xué),多數(shù)是使用靜態(tài)圖示展示密碼算法的流程,而無法形象地將算法的執(zhí)行過程及數(shù)據(jù)的變化情況動(dòng)態(tài)展示給學(xué)生,使得學(xué)生難以直觀地認(rèn)識(shí)、深入地理解密碼算法原理及其流程[1].文獻(xiàn)[2]指出密碼學(xué)課程通常要求學(xué)生對(duì)代數(shù)及數(shù)論等知識(shí)有較為出色的理解能力,如果沒有一些詳細(xì)的示例很難使學(xué)生真正理解密碼算法是如何工作的.因此,一些相關(guān)的加解密軟件被引入到教學(xué)過程中以輔助密碼學(xué)的課堂和實(shí)踐教學(xué),提供更多的示例,如開源軟件CAS輔助教學(xué)[3]、第三方工具包CrypTool輔助教學(xué)[4]等.但是這些工具集成度不夠高,且對(duì)運(yùn)行環(huán)境有配置要求.
為了解決傳統(tǒng)的密碼學(xué)教學(xué)過程中存在的問題,國(guó)內(nèi)外許多高校和研究機(jī)構(gòu)開始研究和開發(fā)一些密碼學(xué)輔助教學(xué)系統(tǒng).文獻(xiàn)[5]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)交互式可視化的DES算法演示系統(tǒng),以圖形化的方式展示DES算法的工作流程及其內(nèi)部數(shù)據(jù)的變化過程.文獻(xiàn)[6]使用虛擬機(jī)和Ubuntu系統(tǒng)搭建了一個(gè)密碼學(xué)實(shí)驗(yàn)平臺(tái),文獻(xiàn)[7]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)用于輔助密碼學(xué)教學(xué)的集成開發(fā)環(huán)境SUNSET.但這些系統(tǒng)局限于展示密碼算法的代數(shù)運(yùn)算過程及中間結(jié)果,并不能以圖形化方式直觀、形象地演示密碼算法的工作流程.
在國(guó)內(nèi)的研究中,文獻(xiàn)[8-9]采用組件的方式設(shè)計(jì)并實(shí)現(xiàn)了密碼學(xué)虛擬實(shí)驗(yàn)平臺(tái),避免了密碼算法中相同原理小算法的重復(fù)編程,但對(duì)于組件較多的密碼算法,其實(shí)驗(yàn)過程將變得十分繁瑣且耗時(shí),因此并不實(shí)用.文獻(xiàn)[10]開發(fā)的基于ASP.NET的密碼學(xué)實(shí)驗(yàn)教學(xué)網(wǎng)站,注重對(duì)關(guān)鍵過程的驗(yàn)證和呈現(xiàn),但密碼算法涉及的計(jì)算工作主要在服務(wù)器完成,在高并發(fā)或惡意提交計(jì)算請(qǐng)求的情況下服務(wù)器性能及安全問題存在隱患.文獻(xiàn)[11]設(shè)計(jì)并實(shí)現(xiàn)了密碼學(xué)課程交互式算法演示系統(tǒng),能較好地呈現(xiàn)交互操作和動(dòng)態(tài)過程演示,但由于該系統(tǒng)為Windows應(yīng)用程序,每臺(tái)教學(xué)主機(jī)都裝有該應(yīng)用程序,其更新和升級(jí)時(shí)工作量較大.
針對(duì)現(xiàn)有的密碼學(xué)輔助教學(xué)軟件和實(shí)踐平臺(tái)存在的一些問題,筆者采用HTML5技術(shù),設(shè)計(jì)和開發(fā)了密碼學(xué)輔助教學(xué)系統(tǒng)(Cryptography Aided Instruction System,CAIS).系統(tǒng)采用B/S結(jié)構(gòu)設(shè)計(jì),密碼算法涉及的計(jì)算工作全部由客戶端完成,有效地避免了服務(wù)器的性能及安全問題.該系統(tǒng)可以依據(jù)用戶輸入的參數(shù),將密碼算法分步驟向用戶動(dòng)態(tài)展示算法執(zhí)行過程中數(shù)據(jù)的變化情況,并利用Canvas軟件以圖形方式向用戶動(dòng)態(tài)展示密碼算法工作流程.
(1)采用B/S結(jié)構(gòu)設(shè)計(jì).
目前已有的同類軟件從系統(tǒng)結(jié)構(gòu)的角度主要分為3類:B/S結(jié)構(gòu)應(yīng)用程序、C/S結(jié)構(gòu)應(yīng)用程序和桌面應(yīng)用程序.其中C/S結(jié)構(gòu)應(yīng)用程序和桌面應(yīng)用程序都需要預(yù)先在用戶主機(jī)上安裝,而且一旦應(yīng)用程序進(jìn)行了更新,每臺(tái)用戶主機(jī)上的應(yīng)用程序都需要進(jìn)行相應(yīng)的更新,整體所需的時(shí)間和開銷較大.而B/S結(jié)構(gòu)的應(yīng)用程序則無需預(yù)先在用戶主機(jī)上進(jìn)行安裝,每次只需要通過特定的網(wǎng)址訪問服務(wù)器,就可以在用戶主機(jī)的瀏覽器上運(yùn)行相應(yīng)的Web應(yīng)用程序.B/S結(jié)構(gòu)的應(yīng)用程序在進(jìn)行更新時(shí)只需要將服務(wù)器端的文件進(jìn)行更新即可,之后用戶主機(jī)再次訪問服務(wù)器時(shí)就會(huì)運(yùn)行更新后的Web應(yīng)用程序了.此外,由于目前瀏覽器的緩存技術(shù)較為成熟,使得再次訪問服務(wù)器時(shí)不會(huì)重復(fù)下載相同的文件,很大程度上減少了流量的浪費(fèi).因此,該系統(tǒng)采用具有無需安裝、易更新和維護(hù)等優(yōu)勢(shì)的B/S結(jié)構(gòu)設(shè)計(jì).
(2)所有的計(jì)算工作均由客戶端完成.
在確定使用B/S結(jié)構(gòu)設(shè)計(jì)密碼學(xué)輔助教學(xué)系統(tǒng)后,就會(huì)面臨是由服務(wù)端來完成計(jì)算工作還是由客戶端來完成計(jì)算工作這一問題.如果由服務(wù)端完成計(jì)算工作,就需要由Web前端向服務(wù)器提交請(qǐng)求并從服務(wù)器返回的信息中獲取計(jì)算結(jié)果;如果由客戶端完成計(jì)算工作,可以選用客戶端腳本語言(如JavaScript)編寫相應(yīng)的計(jì)算模塊,并從調(diào)用計(jì)算模塊得到的返回值中獲取計(jì)算結(jié)果.雖然這2種方式在技術(shù)上都是可行的,但如果由服務(wù)端完成計(jì)算工作,就勢(shì)必需要考慮服務(wù)器的安全問題.由于密碼學(xué)實(shí)驗(yàn)中涉及大量數(shù)學(xué)計(jì)算,有些計(jì)算過程如果所需的參數(shù)值設(shè)置不當(dāng),因此可能需要很長(zhǎng)時(shí)間才能夠計(jì)算出結(jié)果.這樣,如果人為惡意提交附帶不當(dāng)?shù)膮?shù)值的請(qǐng)求或并發(fā)請(qǐng)求數(shù)過多時(shí),就可能導(dǎo)致服務(wù)器CPU滿負(fù)荷工作,致使服務(wù)器運(yùn)行緩慢、無法響應(yīng)甚至死機(jī),嚴(yán)重影響其他客戶端對(duì)服務(wù)器的訪問.因此,為了保證服務(wù)器的安全,勢(shì)必要引入一些安全機(jī)制,如對(duì)提交的請(qǐng)求中參數(shù)逐一仔細(xì)地驗(yàn)證其是否在合理的范圍內(nèi),但由于密碼算法實(shí)驗(yàn)的數(shù)量較多,這樣做會(huì)增加不少的工作量.如果由客戶端完成計(jì)算工作,就不需要考慮上述服務(wù)器的安全問題,只需要在客戶端對(duì)用戶輸入的實(shí)驗(yàn)所需的參數(shù)進(jìn)行驗(yàn)證.即便人為惡意地迫使應(yīng)用程序使用不當(dāng)?shù)膮?shù)值進(jìn)行計(jì)算,至多會(huì)使自己的客戶機(jī)上的瀏覽器無法響應(yīng),而不會(huì)影響到服務(wù)器的安全.考慮到密碼學(xué)輔助教學(xué)系統(tǒng)的主要作用是進(jìn)行演示實(shí)驗(yàn),可以將參數(shù)范圍限定得較為窄小,達(dá)到演示的目的即可,這樣在現(xiàn)有的硬件條件下客戶端完全有能力完成所需的計(jì)算工作.同時(shí),這樣還可以避免了網(wǎng)絡(luò)傳輸中的延時(shí),使應(yīng)用程序能夠更快地響應(yīng)用戶的操作.
綜上所述,相比于由服務(wù)端完成計(jì)算工作,由客戶端完成計(jì)算工作更易解決服務(wù)器安全問題,且在與用戶交互的過程中響應(yīng)速度更快,因此筆者提出的密碼學(xué)輔助教學(xué)系統(tǒng)的所有計(jì)算工作均在客戶端完成.
2.1系統(tǒng)功能模塊
圖1 密碼學(xué)輔助教學(xué)系統(tǒng)功能模塊間的關(guān)系
為了實(shí)現(xiàn)系統(tǒng)的可拓展性和可維護(hù)性,易于添加某個(gè)算法實(shí)驗(yàn)或維護(hù)某個(gè)算法實(shí)驗(yàn)的代碼,密碼學(xué)輔助教學(xué)系統(tǒng)各個(gè)密碼算法實(shí)驗(yàn)間是相互獨(dú)立的.從單個(gè)實(shí)驗(yàn)的角度來看,系統(tǒng)以Web頁面為顯示平臺(tái),通過由客戶端腳本語言JavaScript編寫而成的數(shù)值計(jì)算模塊、圖形計(jì)算模塊及流程控制模塊,控制完成對(duì)算法的執(zhí)行過程中內(nèi)部數(shù)據(jù)變化及算法工作流程的示意圖的動(dòng)態(tài)展示.各個(gè)功能模塊間的關(guān)系如圖1所示.
系統(tǒng)和用戶完成一次完整的交互大致可以分為以下幾個(gè)步驟:
(1)用戶在Web頁面上輸入計(jì)算所需的參數(shù)并點(diǎn)擊相應(yīng)的按鈕.
(2)流程控制模塊獲取用戶輸入的計(jì)算所需的參數(shù),調(diào)用數(shù)值計(jì)算模塊并傳遞相應(yīng)的計(jì)算所需的參數(shù).
(3)數(shù)值計(jì)算模塊將計(jì)算結(jié)果返回給流程控制模塊,并由流程控制模塊將其顯示到Web頁面相應(yīng)的位置上.
(4)流程控制模塊獲取Web頁面上的畫布及用戶輸出的計(jì)算所需的參數(shù),調(diào)用圖形計(jì)算模塊,并傳遞畫布及相應(yīng)的計(jì)算所需的參數(shù).
(5)圖形計(jì)算模塊依據(jù)傳遞的參數(shù)在畫布上繪制相應(yīng)的圖形.
(6)用戶看到變化后的Web頁面.
2.2數(shù)值計(jì)算模塊
數(shù)值計(jì)算模塊的主要功能是根據(jù)傳入的用戶輸入的參數(shù),計(jì)算并返回需要在Web頁面顯示的類似如圖2所示的數(shù)據(jù)信息.
圖2 ElGamal算法公鑰加密實(shí)驗(yàn)截圖
在各個(gè)密碼算法中,有些數(shù)值計(jì)算過程需要頻繁被調(diào)用,如快速指數(shù)算法,而有些數(shù)值計(jì)算過程則只會(huì)在少數(shù)密碼算法實(shí)驗(yàn)中才會(huì)被調(diào)用,如根據(jù)明文整數(shù)、隨機(jī)數(shù)及公鑰計(jì)算ElGamal算法加密后的密文整數(shù)對(duì).將頻繁調(diào)用的計(jì)算過程封裝成一個(gè)基本的數(shù)值計(jì)算模塊,既可以提高代碼的復(fù)用性,也便于代碼的維護(hù).因此,數(shù)值計(jì)算模塊分為基礎(chǔ)數(shù)值計(jì)算模塊和定制數(shù)值計(jì)算模塊.
圖3快速指數(shù)算法
(1)基礎(chǔ)數(shù)值計(jì)算模塊.基礎(chǔ)數(shù)值計(jì)算模塊只有一個(gè),將頻繁調(diào)用的數(shù)值計(jì)算功能以成員函數(shù)的形式封裝到一個(gè)名為Mathematics的JavaScript對(duì)象中,供其他模塊調(diào)用.以快速指數(shù)算法為例,在Mathematics對(duì)象中編寫一個(gè)名為powmod的函數(shù)并實(shí)現(xiàn)圖3所示的算法,當(dāng)系統(tǒng)的其他模塊需要進(jìn)行快速指數(shù)運(yùn)算時(shí),就可以直接調(diào)用Mathematic對(duì)象中的powmod函數(shù)了.
(2)定制數(shù)值計(jì)算模塊.每個(gè)密碼算法實(shí)驗(yàn)都對(duì)應(yīng)著一個(gè)定制數(shù)值計(jì)算模塊,通過調(diào)用基礎(chǔ)數(shù)值計(jì)算模塊,結(jié)合自身特有的數(shù)值計(jì)算過程計(jì)算并返回需要在Web頁面上顯示的數(shù)據(jù)信息.
以ElGamal算法公鑰加密實(shí)驗(yàn)為例.當(dāng)用戶在進(jìn)行公鑰加密的實(shí)驗(yàn)時(shí),輸入明文整數(shù)m并點(diǎn)擊確定后,Web頁面應(yīng)當(dāng)如圖2所示的那樣向用戶展示計(jì)算得到的密文對(duì)a和b的值,這樣就需要定制數(shù)值計(jì)算模塊具有依據(jù)明文整數(shù)m、隨機(jī)數(shù)k以及公鑰計(jì)算密文對(duì)a和b的功能.編寫一個(gè)名為ElGamal的JavaScript對(duì)象,并將該對(duì)象作為ElGamal算法實(shí)驗(yàn)的定制數(shù)值計(jì)算模塊,并封裝一個(gè)名為encrypt的函數(shù)去實(shí)現(xiàn)如圖4所示的算法.在計(jì)算a和b的過程中還需要用到快速指數(shù)算法,但無需重新編寫實(shí)現(xiàn)快速指數(shù)算法的函數(shù),直接調(diào)用之前編寫好的基礎(chǔ)數(shù)值計(jì)算模塊Mathematics對(duì)象中的powmod函數(shù)即可.這樣當(dāng)需要顯示密文對(duì)a和b時(shí)就可以直接調(diào)用ElGamal對(duì)象中的encrypt函數(shù)來獲取a和b的值.
圖4ElGamal加密算法
2.3圖形計(jì)算模塊
圖5 MD5算法流程截圖
該模塊根據(jù)傳入的Canvas畫布以及與繪制圖形有關(guān)的一些參數(shù),在Canvas畫布上繪制類似如圖5所示的密碼算法流程圖.
圖5中,直線、文本框等都會(huì)頻繁地在各類密碼算法實(shí)驗(yàn)的算法流程示意圖中出現(xiàn),將繪制這些基本圖形的方法封裝成一個(gè)基本的圖形計(jì)算模塊,既可以提高代碼的復(fù)用性,又便于代碼的維護(hù).因此,圖形計(jì)算模塊分為基礎(chǔ)圖形計(jì)算模塊和定制圖形計(jì)算模塊.
(1)基礎(chǔ)圖形計(jì)算模塊.基礎(chǔ)圖形計(jì)算模塊只有1個(gè),將繪制頻繁出現(xiàn)的基礎(chǔ)圖形的功能以成員函數(shù)的形式封裝到一個(gè)名為Graphics的JavaScript對(duì)象中.雖然在Canvas API中提供的繪圖函數(shù)只能繪制一些如直線、圓、矩形等簡(jiǎn)單的圖形,但是可將Canvas API中提供的這些簡(jiǎn)單的繪圖函數(shù)組合成為能夠繪制一些頻繁出現(xiàn)的基礎(chǔ)圖形計(jì)算模塊.
(2)定制圖形計(jì)算模塊.每個(gè)密碼算法實(shí)驗(yàn)都對(duì)應(yīng)著一個(gè)定制圖形計(jì)算模塊,通過組合調(diào)用基礎(chǔ)圖形計(jì)算模塊中的繪圖函數(shù)來繪制復(fù)雜的密碼算法流程圖.
2.3流程控制模塊
流程控制模塊的主要功能為獲取Web頁面上的Canvas對(duì)象和用戶在Web頁面上輸入的參數(shù),調(diào)用數(shù)值計(jì)算模塊并將返回的結(jié)果顯示在Web頁面的指定位置上,調(diào)用圖形計(jì)算模塊繪制密碼算法實(shí)驗(yàn)演示圖,以及根據(jù)用戶的操作完成對(duì)實(shí)驗(yàn)流程的控制.上述功能可通過基本的JavaScript語句實(shí)現(xiàn),流程控制模塊實(shí)現(xiàn)控制實(shí)驗(yàn)流程如下:
(1)在用戶進(jìn)行密碼算法實(shí)驗(yàn)時(shí),系統(tǒng)會(huì)依據(jù)用戶的實(shí)驗(yàn)進(jìn)度逐一向用戶展示密碼算法的各個(gè)步驟,這就要求系統(tǒng)能夠?qū)崿F(xiàn)對(duì)實(shí)驗(yàn)流程的控制,即根據(jù)用戶的操作情況控制向用戶展示的內(nèi)容.在Web頁面的設(shè)計(jì)中采用DIV+CSS框架,通過CSS的display屬性可以控制DIV是否顯示,因此可以利用這一特點(diǎn)達(dá)到根據(jù)用戶的操作控制向用戶展示內(nèi)容的目的.
(2)將一個(gè)實(shí)驗(yàn)分解成離散的若干個(gè)步驟,每個(gè)步驟都對(duì)應(yīng)一張流程控制表,用于標(biāo)明實(shí)驗(yàn)過程中涉及到的Web頁面上的各個(gè)DIV的ID屬性值以及相應(yīng)的CSS的display屬性值.當(dāng)實(shí)驗(yàn)進(jìn)行到一個(gè)步驟后,按照流程控制表中記錄信息逐一修改各個(gè)DIV相應(yīng)的CSS的display屬性值,從而控制每個(gè)DIV是顯示還是隱藏,達(dá)到根據(jù)用戶的操作情況控制向用戶展示內(nèi)容的目的.
3.1與同類軟件的對(duì)比
文中選取系統(tǒng)結(jié)構(gòu)、應(yīng)用大小及實(shí)驗(yàn)數(shù)量3個(gè)對(duì)比項(xiàng),將設(shè)計(jì)開發(fā)的密碼學(xué)輔助教學(xué)系統(tǒng)CAIS與國(guó)外的同類軟件CrypTool1和CrypTool2[12]以及國(guó)內(nèi)的同類軟件SimpleCTS[13]進(jìn)行了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示.
表1 與同類軟件的對(duì)比
從表1可知:
(1)就系統(tǒng)結(jié)構(gòu)而言,CAIS采用的B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于桌面應(yīng)用程序,具有無需安裝、便于更新和維護(hù)等優(yōu)勢(shì).
(2)就應(yīng)用大小而言,CAIS的系統(tǒng)大小只有CrypTool1和CrypTool2的大小的1/30左右,能夠更加節(jié)省客戶機(jī)的磁盤空間,同時(shí)也便于在網(wǎng)絡(luò)上進(jìn)行傳輸.由于SimpleCTS為商用付費(fèi)使用軟件,只能從開發(fā)SimpleCTS的公司提供的白皮書中查閱其相關(guān)參數(shù)和功能,因此沒能獲取該應(yīng)用的實(shí)際大小.
(3)就實(shí)驗(yàn)數(shù)量而言,CAIS提供的實(shí)驗(yàn)數(shù)量目前相比CrypTool1還有一定差距,但多于SimpleCTS.由于CrypTool2是基于組件思想設(shè)計(jì)的,理論上可以用已有的密碼算法組件組合出無窮多的實(shí)驗(yàn),但在進(jìn)行實(shí)驗(yàn)時(shí)需要人工組合各個(gè)組件,因此當(dāng)進(jìn)行所需組件較多的密碼算法實(shí)驗(yàn)時(shí),實(shí)驗(yàn)過程將變得十分繁瑣且耗時(shí).
總之,相比于CrypTool1,CrypTool2及SimpleCTS,文中提出的密碼學(xué)輔助教學(xué)系統(tǒng)在結(jié)構(gòu)、應(yīng)用大小及實(shí)驗(yàn)數(shù)量方面均具有一定的競(jìng)爭(zhēng)力.
3.2性能測(cè)試.
由于CAIS采用B/S結(jié)構(gòu)設(shè)計(jì)且應(yīng)用場(chǎng)景可能是學(xué)生或老師同時(shí)使用,因此需要系統(tǒng)在高并發(fā)環(huán)境下依舊能夠保持優(yōu)良的性能.
圖6 并發(fā)環(huán)境下系統(tǒng)性能測(cè)試結(jié)果
為了測(cè)試密碼學(xué)輔助系統(tǒng)在高并發(fā)環(huán)境下的性能,筆者將CAIS部署到了IIS服務(wù)器上,并使用Apache Benchmark[14]對(duì)其并發(fā)性能進(jìn)行了測(cè)試.在局域網(wǎng)環(huán)境下模擬了并發(fā)用戶數(shù)量為20,50,100,200,500,1 000等若干個(gè)測(cè)試用例且設(shè)定每個(gè)用戶連續(xù)請(qǐng)求100次,測(cè)試服務(wù)器對(duì)每個(gè)請(qǐng)求的平均響應(yīng)時(shí)間,其測(cè)試結(jié)果如圖6所示.
測(cè)試結(jié)果表明,服務(wù)器平均響應(yīng)時(shí)間基本與并發(fā)用戶數(shù)成正比,并沒有因?yàn)椴l(fā)用戶的增加導(dǎo)致服務(wù)器平均響應(yīng)時(shí)間驟增.
為了使學(xué)生直觀地認(rèn)識(shí)、深入地理解密碼算法的原理及其工作流程,筆者設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)密碼學(xué)輔助教學(xué)系統(tǒng).該系統(tǒng)可以依據(jù)用戶輸入的參數(shù),將密碼算法分步驟向用戶動(dòng)態(tài)展示算法執(zhí)行過程中數(shù)據(jù)的變化情況,并利用Canvas以圖形方式向用戶動(dòng)態(tài)展示密碼算法工作流程.該系統(tǒng)相比于現(xiàn)有的同類軟件主要具有以下幾個(gè)特點(diǎn):
(1)在教學(xué)方面,克服了傳統(tǒng)PPT演示輔助教學(xué)存在的演示示例固定、不能靈活動(dòng)態(tài)展示算法中間過程的缺點(diǎn);能夠?qū)⒚艽a算法流程進(jìn)行準(zhǔn)確、詳細(xì)地分解,向用戶逐一展示密碼算法執(zhí)行過程中內(nèi)部數(shù)據(jù)的變化情況,有利于學(xué)生對(duì)算法原理的分析和理解.
(2)在實(shí)驗(yàn)方面,克服了已有的實(shí)驗(yàn)軟件只能進(jìn)行輸入數(shù)據(jù)輸出結(jié)果的算法驗(yàn)證性實(shí)驗(yàn)的局限性,能夠根據(jù)實(shí)驗(yàn)進(jìn)度動(dòng)態(tài)繪制算法流程的示意圖,并在圖上標(biāo)明關(guān)鍵計(jì)算過程的數(shù)據(jù)變化情況,為用戶提供算法分析.
(3)在性能方面,無需預(yù)先在客戶機(jī)安裝系統(tǒng),節(jié)省客戶機(jī)硬盤空間,且在用戶訪問系統(tǒng)的過程中各個(gè)實(shí)驗(yàn)的內(nèi)容會(huì)按需加載,節(jié)省流量且響應(yīng)較快;系統(tǒng)各個(gè)密碼算法相互獨(dú)立、沒有依賴,在添加新的密碼算法實(shí)驗(yàn)時(shí),無需更改其他已有系統(tǒng)模塊的代碼,可維護(hù)性和可拓展性強(qiáng).
[1] 李 曦.密碼學(xué)課程實(shí)踐教學(xué)存在的問題及改進(jìn)措施[J].高等教育研究,2011,28(2):23-24.
[2] RASS S,ORTNER A O.SUNSET.FFapl-An Integrated Development Environment for Teaching Cryptography[C].IEEE 15th International Conference on Interactive Collaborative Learning (ICL).USA:IEEE Press,2012:1-8.
[3] MCANDREW A.Teaching Cryptography with Open-Source Software[C].Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education(SIGCSE'08).New York:ACM Press,2008:325-329.
[5] ASSEISAH M S,BAHIG H M,DAOUD S S.Interactive Visualization System for DES[M]//Active Media Technology,Germany:Springer Berlin Heidelberg,2010:18-25.
[6] GAFFER S M,ALGHAZZAWI D M.Using Virtual Security Lab in Teaching Cryptography[J].International Journal of Modern Education and Computer Science (IJMECS),2012,4(1):26-32.
[7] BOOCH G,MAKSIMCHUK R A,ENGEL M W,et al.Object-Oriented Analysis and Design with Applications[M].New Jersey:Addison-Wesley,2008.
[8] 郭 璠,楊路明,段桂華.基于組件的密碼學(xué)虛擬實(shí)驗(yàn)室的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,29(24):6 353-6 357.
[9] 張京良,劉瓏龍.組件式密碼學(xué)課堂演示實(shí)驗(yàn)設(shè)計(jì)[C].2011年全國(guó)密碼學(xué)與信息安全教學(xué)研討會(huì).北京:《信息安全與通信保密》雜志社,2011:1-3.
[10] 段旭良.基于ASP.NET的密碼學(xué)實(shí)驗(yàn)教學(xué)網(wǎng)站的實(shí)現(xiàn)與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2010(6):80-83.
[11] 黃新平.密碼學(xué)課程交互式算法演示系統(tǒng)的開發(fā)與應(yīng)用[J].軟件,2013,34(6):8-12.
[12] CRYPTOOL PORTAL [EB/OL].[2014-05-12].http://www.cryptool.org/en,.
[13] SimpleCTS:密碼學(xué)輔助教學(xué)系統(tǒng)[EB/OL].[2014-05-12].http://www.simpleware.com.cn/SWProductContent.aspx?id=4.[14] Ab-The Apache Software Foundation[EB/OL].[2014-05-12].http://httpd.apache.org/docs/2.2/programs/ab.html.
(責(zé)任編輯 陳炳權(quán))
DesignandImplementationofCryptographyAssistedTeachingSystem
TENG Mingying1,WANG Yubin1,YANG Xue2,DUAN Guihua1
(1.College of Information Science and Engineering,Central South University,Changsha 410083,Hunan China;2.Design Center,Changsha Institute of Mining Research,Changsha 4l0012,Hunan China)
According to some existent issues in the current teaching of cryptography,a cryptography aided teaching system is designed and implemented.The system uses Canvas to dynamically display the workflow diagram and the inner data changes during the execution of the algorithm.The comparison with the similar software and the concurrent performance tests show that the cryptography assisted teaching system can not only help students understand the abstract cryptography algorithm principles and the intuitive workflow,but also have a competitive edge in structure,application size and the number of experiments;furthermore,it can still perform well in the high-concurrency environment.
cryptography;aided instruction;dynamical display;Canvas
1007-2985(2014)06-0029-06
2014-09-01
國(guó)家自然科學(xué)基金資助項(xiàng)目(61202495);湖南省科技計(jì)劃重點(diǎn)資助項(xiàng)目(2011GK2008);金屬礦山安全技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室開放基金資助項(xiàng)目(2012KFJJ02)
段桂華(1972—),女,湖南新化人,中南大學(xué)信息科學(xué)與工程學(xué)院副教授,主要從事網(wǎng)絡(luò)安全、密碼學(xué)研究;E-mail duangh@csu.edu.cn.
G642
A
10.3969/j.issn.1007-2985.2014.06.008