網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

基于Web的考試是隨著計(jì)算機(jī)技術(shù)的深入和普及,尤其是Internet的應(yīng)用普及而產(chǎn)生的??荚囅到y(tǒng)網(wǎng)絡(luò)化的同時(shí),也帶來(lái)了相關(guān)的安全問題。在具體的考試系統(tǒng)中,主要涉及到題厙和成績(jī)的安全性,即保證題庫(kù)來(lái)自正確的服務(wù)器,答案來(lái)自正確的考生,且保證題庫(kù)和成績(jī)不被泄密和修改。如果這些問題得不到解決,考試所要求的公正性、客觀性無(wú)法保證。

當(dāng)前,一般流行的大型數(shù)據(jù)庫(kù)系統(tǒng)都提供了許多安全技術(shù),它基本能夠滿足一般的數(shù)據(jù)庫(kù)應(yīng)用需求。但也不能保證敏感數(shù)據(jù)的保密性。例如DBA擁有最高權(quán)限,可知曉試卷的內(nèi)容。為了保證考試的公正性,這就需要有進(jìn)一步的安全措施——數(shù)據(jù)加密和數(shù)字簽名。

一、數(shù)據(jù)加密

數(shù)據(jù)加密就是利用某種方法偽裝數(shù)據(jù),使別人無(wú)法得到數(shù)據(jù)包含的真實(shí)信息。被加密的數(shù)據(jù)稱為明文,加密以后的數(shù)據(jù)稱為密文,把密文轉(zhuǎn)變?yōu)槊魑牡倪^(guò)程就是解密。明文用M表示,密文用C表示,加密過(guò)程就是一個(gè)把明文變成密文的數(shù)學(xué)函數(shù),用E表示,而解密過(guò)程就是一個(gè)把密文變成明文的數(shù)學(xué)函數(shù),用D表示。加密過(guò)程就是E(M)=C;解密過(guò)程就是D(C)=M9。目前有兩種加密體制:公鑰體制和單鑰體制。公鑰體制有典型代表的是RSA,而單鑰體制具有典型代表的是DES。

信息加密系統(tǒng)的示意網(wǎng)如圖1所示。

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

1、DES對(duì)稱加密算法

DES(美國(guó)商用數(shù)據(jù)加密標(biāo)準(zhǔn))算法的明文和密文的長(zhǎng)度均為64位,密鑰長(zhǎng)度為56位。實(shí)現(xiàn)算法步驟為:

1)初始置換IPo對(duì)給定的64位比特的明文m。首先通過(guò)一個(gè)置換IP表來(lái)黿新排列m,從而構(gòu)造出64位比特的mo,mo=IP(m)=kRo,其中k表示mo的前32比特,Ro表示mo的后32位。

2)乘積變換(16輪)。換完之后,若經(jīng)過(guò)第n層處理后的左、右32比特分別為L(zhǎng)n和Rn,則L和Rn可作如下定義:

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

K是向第n層輸入的48比特的密鑰,Ln_i和Rn-1分別是第n-l層的輸出.f是以Rn-1和k為變量的輸出32比特的函數(shù)。第n層的加密變換如圖2所示。

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

3)逆置換IP-I是對(duì)L16、Ris利用初始置換IP作逆置換IP-1,就得到了密文y,這就是DES加密的結(jié)果。

DES使用與加密相同的函數(shù)進(jìn)行解密,唯一不同之處是密鑰的次序相反。

2、RSA非對(duì)稱加密算法

RSA算法是目前非對(duì)稱加密領(lǐng)域內(nèi)最為著名的算法。它的安全性是基于大整數(shù)質(zhì)因子分解的困難性。

其算法過(guò)程為:建立RSA公鑰密碼系統(tǒng)時(shí),選取一對(duì)不同的大素?cái)?shù)p和q,令n=p*q;用戶公布n,但將q和p保密;然后,選取正整數(shù)d,使其滿足gcd(d,φ(n))=1,這里的中(n)是歐拉函數(shù),且φ(n)=(p-1)(q-1);最后,根據(jù)公式e-d*1(modm(n))計(jì)算出e,用戶公布e,但將d保密。

RSA方法是一種分組密碼系統(tǒng)。加密時(shí),首先將明文表示成0到n-l之間的整數(shù)。如果明文太長(zhǎng),可將其變?yōu)閚進(jìn)制數(shù)的形式,即令M=MO+MIn+K+M。,然后分別加密(Mo, Mi,…MI)。得出密文C0,Cl...Cs。加密公式為:

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

如果已知密鑰d,解鑰是容易的。只需計(jì)箅:

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

即可恢復(fù)明文M。

RSA涉及大數(shù)的計(jì)算,無(wú)論硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的效牢都比較低,不適用于對(duì)長(zhǎng)的明文進(jìn)行加密,常用來(lái)對(duì)密鑰進(jìn)行加密,即與對(duì)稱密碼算法結(jié)合使用。

二、數(shù)字簽名

數(shù)字簽名是采用一種數(shù)據(jù)交換協(xié)議,使收、發(fā)數(shù)據(jù)的雙方能夠滿足兩個(gè)條件:接受方能夠鑒別發(fā)送方所宣稱的身份;發(fā)送方以后不能否認(rèn)發(fā)送過(guò)數(shù)據(jù)這一事實(shí)。

數(shù)字簽名的目的是為了保證信息的完整性和真實(shí)性。和加密相對(duì)應(yīng),有基于對(duì)稱密鑰的數(shù)字簽名和基于非對(duì)稱密鑰的數(shù)字簽名兩種方式?;诜菍?duì)稱密鑰的數(shù)字簽名方式是公開密鑰加密技術(shù)(如RAS算法1和報(bào)文分解函數(shù)(如MDS)相結(jié)合的產(chǎn)物。報(bào)文分解函數(shù)是一種散列技術(shù):對(duì)數(shù)據(jù)執(zhí)行一些數(shù)學(xué)運(yùn)算,從運(yùn)算的結(jié)果無(wú)法得到原來(lái)的數(shù)據(jù)。

數(shù)字簽名一般采用非對(duì)稱加密技術(shù)(如RSA)。發(fā)送方對(duì)整個(gè)明文進(jìn)行加密變換,得到一個(gè)值,將其作為簽名。接收方使用發(fā)送方的公開密鑰對(duì)簽名進(jìn)行解密運(yùn)算,如結(jié)果為明文,則簽名有效,證明對(duì)方的身份是真實(shí)的。

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

上式表明的是一個(gè)數(shù)字簽名過(guò)程d對(duì)于通信的雙方發(fā)送者和接收彳而言,信息加密是發(fā)送者使用接收者的公鑰進(jìn)行加密,只有接收者用自己的私有密鑰才能解開信息;數(shù)字簽名是發(fā)送者使用自已的私鑰加密信息,接收者可以用發(fā)送者的公開密鑰進(jìn)行解密。

三、網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)的加密要求

對(duì)于一個(gè)網(wǎng)絡(luò)考試系統(tǒng)的安全性而言,僅靠訪問控制是不夠的。因?yàn)檫@些安全措施存在一個(gè)致命的弱點(diǎn):原始數(shù)據(jù)以可讀的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中。這樣,高明的入侵者可以從計(jì)算機(jī)系統(tǒng)的內(nèi)存中導(dǎo)出所需的信息,或者采用某種方式進(jìn)入考試系統(tǒng),從系統(tǒng)的后備存儲(chǔ)器上竊取數(shù)據(jù)或篡改數(shù)據(jù)。要徹底解決考試系統(tǒng)的安全保密,除了在傳輸過(guò)程中控制非法訪問之外,還必須對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密保護(hù)。一個(gè)網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)的加密要求有:

1)考試系統(tǒng)試題庫(kù)信息保存時(shí)間要長(zhǎng),不可能采取一次一密的力法進(jìn)行加密,因而選用其它的加密方式,使其達(dá)到實(shí)際不可破譯的程度。

2)實(shí)際加密后,存儲(chǔ)空間不應(yīng)明顯增大。

3)加密和解密速度要快,尤其是考試過(guò)程中解密要快,使考生感覺不到解密帶來(lái)系統(tǒng)性能的變化。

4)加密系統(tǒng)要有盡可能靈活的授權(quán)機(jī)制??荚囅到y(tǒng)數(shù)據(jù)庫(kù)在Internet環(huán)境中使用時(shí),每個(gè)考生只使用其中小部分?jǐn)?shù)據(jù)。因此數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)有很強(qiáng)的訪問控制機(jī)制,并輔以很靈活的授權(quán)機(jī)制,這樣既能增加系統(tǒng)的安全又能方便用戶的使用。

5)加密系統(tǒng)應(yīng)提供一套安全、靈活的密鑰管理機(jī)構(gòu)。

6)對(duì)數(shù)據(jù)庫(kù)的加密不應(yīng)影響考試系統(tǒng)的原有功能,而應(yīng)保持對(duì)數(shù)據(jù)庫(kù)操作的靈活性和簡(jiǎn)便性。

7)加密后的數(shù)據(jù)庫(kù)仍能允許用戶以不同的角色對(duì)之進(jìn)行訪問。

在網(wǎng)絡(luò)考試系統(tǒng)中,一次考試的流程大致可以分為這么幾步:首先,由出題老師出好試卷,存人數(shù)據(jù)庫(kù)中;然后當(dāng)考試時(shí)間到了后,由監(jiān)考老師取出試卷,學(xué)生進(jìn)行答題,交卷;最后出閱卷老師進(jìn)行試卷評(píng)判。其中,老師出好的試題和答案需要加密保護(hù),學(xué)生的答題數(shù)據(jù)和老師的批改成績(jī),只需保證其數(shù)據(jù)的完整性和不可否認(rèn)性就可以了。

結(jié)合以上數(shù)據(jù)加密的要求和考試系統(tǒng)的實(shí)際情況,選擇合適的加密算法對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的考試信息進(jìn)行加密。在各種加密算法中,DES對(duì)稱加密算法加解密速度快,加密強(qiáng)度高,密鑰分發(fā)與管理困難,可滿足系統(tǒng)對(duì)數(shù)據(jù)快速高效加解密處理的要求;非對(duì)稱加密算法的加密解密速度慢,不能適應(yīng)數(shù)據(jù)庫(kù)加密的速度要求,而其密鑰管理簡(jiǎn)單,正好用于生成傳遞對(duì)稱加密算法使用的密鑰的數(shù)字簽名,保障了密鑰傳遞的安全性。將兩者相結(jié)合,可以有效地提高加密效率,并能簡(jiǎn)化對(duì)密鑰的管理。所以本考試系統(tǒng)選擇用DES對(duì)數(shù)據(jù)庫(kù)的敏感數(shù)據(jù)加密;采用了非對(duì)稱加密技術(shù)(如RSA)的數(shù)字簽名來(lái)保證試卷由合法的考試者提供,且試卷的內(nèi)容未被修改。

四、網(wǎng)絡(luò)考試系統(tǒng)中的加密處理

網(wǎng)絡(luò)考試系統(tǒng)中,需要保密的環(huán)節(jié)較多,如考前的試卷需要防泄密.考后的答卷需要防篡改,等等。

(1)試卷的加密和解密處理

根據(jù)加密理論,出題者可設(shè)置密鑰以維護(hù)試題的保密性,在正式考試時(shí),再用密鑰解開試題供考試時(shí)使用。采用加密的戰(zhàn)卷加密和解密過(guò)程如圖3所示。出題者在生成試卷后給定加密密鑰,明文用該密鑰經(jīng)加密算法處理后送入試卷庫(kù);一旦試卷啟封使用,由密鑰持有者提供解密密鑰用解密算法將試卷解密得到試卷明文以供考試使用。

網(wǎng)絡(luò)考試系統(tǒng)中的數(shù)據(jù)加密技術(shù)

(2)用戶檔案及題庫(kù)的加密解密處理

用戶的檔案涉及到個(gè)人信息和權(quán)限管理,尤其是管理員及教師的資料,這些數(shù)據(jù)都要加密處理。試題庫(kù)為了防止泄密,也要求加密存儲(chǔ)。檔案及試題庫(kù)的加解密方法相似,因?yàn)閮烧咧恍璐鎯?chǔ)在數(shù)據(jù)庫(kù)中,不用在服務(wù)器間傳輸。:管理員輸入完數(shù)據(jù)后將其加密存儲(chǔ)在相應(yīng)數(shù)據(jù)庫(kù)中,需要修改及查詢時(shí),先解密成明文再進(jìn)行相應(yīng)操作。

(3)答卷的加密處理

在本系統(tǒng)中,除了試卷需要加密保護(hù)以增強(qiáng)數(shù)據(jù)的保密性以外,考唪的答卷也有必要進(jìn)行一定的加密處理,因?yàn)榇鹁硪矊儆诿舾袛?shù)據(jù),若答卷中答案不加保護(hù)則可被輕易的篡改從而無(wú)法保證考試的公平與合法加密后的答卷存在答卷數(shù)據(jù)庫(kù)中,閱卷時(shí)系統(tǒng)管理員再解密成明文批閱。

(4)答卷提交的數(shù)字簽名

在考試系統(tǒng)中采用數(shù)字簽名技術(shù),一是要保證考生的答卷是合法的未經(jīng)篡改的有效答卷;二是要保證它經(jīng)過(guò)正常的考試過(guò)程。采用數(shù)字簽名技術(shù)主要是防止惡意篡改考卷和保證考卷的合法性??荚囅到y(tǒng)中的數(shù)字簽名技術(shù)用在考生試卷的提交,簽名是答卷的信息摘要和考生信息的函數(shù)。由于收方在收到附加在答卷后的信息摘要后無(wú)需還原,只要將收到的答卷內(nèi)容做信息摘要做比對(duì),故在此我們采用簡(jiǎn)單的信息校驗(yàn)和作為信息摘要函數(shù),實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單。雖然可能會(huì)出現(xiàn)不同的數(shù)據(jù)序列會(huì)產(chǎn)生相同的校驗(yàn)和結(jié)果,但校驗(yàn)是與傳送過(guò)來(lái)的原文相比,發(fā)生篡改而不被發(fā)現(xiàn)的町能性很小。當(dāng)然對(duì)于校驗(yàn)和計(jì)算應(yīng)是保密的。

本考試系統(tǒng)通過(guò)數(shù)據(jù)的加密處理和數(shù)字簽名技術(shù)的應(yīng)用,具有較強(qiáng)的安全性、可靠性和穩(wěn)定性,達(dá)到了實(shí)用水平。

小知識(shí)之網(wǎng)絡(luò)考試系統(tǒng)

網(wǎng)絡(luò)考試是延伸了傳統(tǒng)考試考場(chǎng)的涵義,它利用網(wǎng)絡(luò)的無(wú)限廣闊空間,把考場(chǎng)從學(xué)校延伸到了家中、計(jì)算機(jī)房、辦公室及其它任何網(wǎng)絡(luò)所覆蓋的區(qū)域,并可隨時(shí)對(duì)考生進(jìn)行考試,加上數(shù)據(jù)庫(kù)技術(shù)的利用,使考試變得更公平公正、更具權(quán)威性和可靠性。網(wǎng)絡(luò)考試實(shí)現(xiàn)了傳統(tǒng)考試與現(xiàn)代科技的完美結(jié)合,符合現(xiàn)代教育體制的要求,代表著現(xiàn)代教育考試的發(fā)展方向。