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

與傳統(tǒng)考試模式相比,網(wǎng)絡(luò)考試滲入了更多的技術(shù)環(huán)節(jié),對(duì)實(shí)現(xiàn)安全性的途徑方法提出了更高的技術(shù)要求。所謂網(wǎng)絡(luò)考試系統(tǒng)的安全性,是指通過(guò)必要的組織環(huán)節(jié)和技術(shù)手段,保障考試過(guò)程的流暢性,保證考試成績(jī)的客觀性和公正性。本文通過(guò)對(duì)基于校園網(wǎng)考試系統(tǒng)的深入分析,提出了一種安全模式,采用身份鑒別,動(dòng)態(tài)密鑰分配以及運(yùn)用最新的高級(jí)加密標(biāo)準(zhǔn)(AES),全方位的保證了各個(gè)終端機(jī)與WEB服務(wù)器之間數(shù)據(jù)傳輸?shù)臋C(jī)密性、完整性、一致性和不可抵賴性。

一、網(wǎng)絡(luò)考試系統(tǒng)加密技術(shù)

基于校園網(wǎng)網(wǎng)絡(luò)考試的大體網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。

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

它可以進(jìn)一步抽象為圖2所示。其中終端機(jī)可以是學(xué)生機(jī),教師機(jī)或管理員機(jī)。

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

1、各終端機(jī)的身份鑒別及密鑰分配

各終端機(jī)通過(guò)TCP/IP協(xié)議,經(jīng)校園網(wǎng)與Web服務(wù)器交互。在這里采用公鑰認(rèn)證技術(shù)來(lái)對(duì)終端機(jī)進(jìn)行身份鑒別,用KDC(Key Distribution Center)密鑰分發(fā)中心來(lái)分配會(huì)話密鑰。把Web服務(wù)器分割成身份認(rèn)證服務(wù)器和考試系統(tǒng)服務(wù)器。身份認(rèn)證服務(wù)器主要進(jìn)行消費(fèi)終端的身份鑒別和密鑰分配;考試服務(wù)器進(jìn)行考試相關(guān)數(shù)據(jù)處理,它與終端機(jī)傳輸?shù)臄?shù)據(jù)文件采用AES加密。其結(jié)構(gòu)如圖3所示。

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

2、考試系統(tǒng)通信協(xié)議

考試系統(tǒng)所基于的環(huán)境假設(shè)為:校園網(wǎng)上的通信包可被瀆取,修改以及任意插入。在終端機(jī)和身份認(rèn)證服務(wù)器之間采用公開密鑰加密體制(這里使用橢圓曲線加密)來(lái)進(jìn)行身份認(rèn)證和密
鑰分配?!獋€(gè)基本的流程為:終端機(jī)在重新啟動(dòng)時(shí)到身份認(rèn)證服務(wù)器簽到(進(jìn)行認(rèn)證,確定其為學(xué)生機(jī),教師機(jī)還是管理員機(jī),并重新分配會(huì)話密鑰)。身份認(rèn)證服務(wù)器與它進(jìn)行兩次交互
后確定其身份,并為其分配與考試服務(wù)器通信的會(huì)話密鑰。具體步驟描述為:

(1)終端機(jī)用身份認(rèn)證服務(wù)器的公鑰加密自己的ID(iden-tity身份)號(hào),發(fā)送給身份認(rèn)證服務(wù)器,請(qǐng)求認(rèn)證。

(2)身份認(rèn)證服務(wù)器用自己的私鑰解密,并在其數(shù)據(jù)庫(kù)中查找終端機(jī),確認(rèn)為合法的ID號(hào)后,生成一個(gè)票據(jù)(包括終端機(jī)的標(biāo)識(shí),—個(gè)時(shí)間戳及其它信息),然后分別用自己的公鑰和
終端機(jī)的公鑰加密,并把這兩條消息發(fā)送給終端機(jī)。

(3)終端機(jī)收到后,用自己的私鑰解密其中—個(gè),并加上一個(gè)標(biāo)識(shí),再用身份認(rèn)證服務(wù)器的公鑰加密,然后,把這兩份票據(jù)發(fā)送給身份認(rèn)證服務(wù)器。

(4)身份認(rèn)證服務(wù)器分別解密這兩份票據(jù)并對(duì)照,若相同,則通過(guò)驗(yàn)證,并在數(shù)據(jù)庫(kù)中查詢確定出這臺(tái)終端機(jī)為學(xué)生機(jī),教師機(jī)還是管理員機(jī)。并使用隨機(jī)密鑰生成器產(chǎn)生終端機(jī)與考試服務(wù)器通信的密鑰,存入本地?cái)?shù)據(jù)庫(kù)供考試服務(wù)器查用,然后用終端機(jī)的公鑰』JU密此密鑰后發(fā)送給終端機(jī)。

(5)考試服務(wù)器和終端機(jī)就在此會(huì)話密鑰下,用AES加密算法進(jìn)行數(shù)據(jù)文件加密和解密。

3、公開密鑰加密算法

在進(jìn)行終端機(jī)的身份認(rèn)證和密鑰分配時(shí),使用了公開密鑰加密算法,公開密鑰是這樣設(shè)計(jì)的:用作加密的密鑰不同于用作解密的密鑰,而且解密密鑰不能根據(jù)加密密鑰計(jì)算出來(lái)(至少在
合理假定的長(zhǎng)時(shí)間內(nèi))。之所以叫做公開密鑰算法,是因?yàn)榧用苊荑€(公鑰)能夠公開,即陌生者能用加密密鑰加密信息,但只有相應(yīng)的解密密鑰(私鑰)才能解密信息文件。在設(shè)計(jì)的系統(tǒng)中采用橢圓曲線加密算法(EEC)。橢圓曲線跟RSA加密算法比起來(lái)有短的密鑰長(zhǎng)度和計(jì)算時(shí)間開銷少等特點(diǎn),所以非常適合考試系統(tǒng)這種對(duì)時(shí)實(shí)性要求較高的系統(tǒng)。它基于的原理為:橢圓曲線可以定義在任意的有限域上,主要在有限域Zp(p為素?cái)?shù))和特征為2的有限域上。

橢圓曲線加密體制的加密原理基于有限域上橢圓曲線離散對(duì)數(shù)問(wèn)題(ECDLP)的困難性。下面以定義在奇特征域上的橢圓曲線為例,說(shuō)明橢圓曲線加密體制的加密原理。設(shè)GF(p)是一個(gè)P≠2,3的奇特征有限域,定義在GF(p)上的橢圓曲線是指滿足Weierstrass方程:y2+x3+ax+b(a,b∈GF(p),且滿足4a3+27b2≠0)的所有解,(x,y)∈GF(p)*GF(p)與無(wú)窮遠(yuǎn)點(diǎn)O構(gòu)成的非空集合。設(shè)尺是橢鬩曲線E(x,b)(GF(p))上的一個(gè)點(diǎn),則E上的橢圓曲線離散對(duì)數(shù)問(wèn)題為:

給定一點(diǎn)Q∈E(a,b)(GF(p)),求解整數(shù)X(x∈GF(p)),使x*R=Q。如果這樣的數(shù)存在,就是橢圓曲線離散對(duì)數(shù)。也就是說(shuō)選取該橢圓曲線上的一個(gè)點(diǎn)R作為基點(diǎn),給定一個(gè)整數(shù)x,求解x*R=Q是容易的。但是要從p點(diǎn)和R點(diǎn)推導(dǎo)出整數(shù)茁,則是非常困難的。基于橢圓曲線的加密體制操作都包含由一些橢圓曲線域參數(shù)所確定的有限域上橢圓曲線的算術(shù)運(yùn)算。通常,將有限域上橢圓曲線域參數(shù)r定義為一個(gè)六元組:T=(p,a,b,G,n,h)。其中p,a,b的意義同上;G是橢圓曲線上的一個(gè)基點(diǎn),G≠D,使n*G=D的最小正整數(shù),l稱為點(diǎn)G的階,記為n=ord(G)。整數(shù)h是余因子,h=#E( GF(p)//n。由以上參數(shù)可以唯一地確定一個(gè)橢圓曲線。在[1,n-1]之間隨機(jī)地確定一個(gè)整數(shù)d,計(jì)算Q=d*G,由此就確定了密鑰對(duì)(d,Q),其中d是私鑰,需要保密,(1是公鑰,可以公開。而六元組T也要完全公開。利用橢惻曲線進(jìn)行加密通信的過(guò)程如下。

(1)用戶A選定一條橢凼曲線Ep(a,b),并取橢圓曲線上一點(diǎn),作為基點(diǎn)G。

(2)用戶A選擇一個(gè)私有密鑰d,并生成公開密鑰Q=d*G。

(3)用戶A將Ep(a,b)和點(diǎn)Q,G傳給用戶B。

(4)用戶B接到信息后,將待傳輸?shù)拿魑木幋a到Ep(a,b)上一點(diǎn)M,并產(chǎn)生一個(gè)隨機(jī)整數(shù)(r<n)。

(5)用戶B計(jì)算點(diǎn)C1=M+r*Q,C2=r*G。

(6)用戶B將C1、C2傳給用戶A。

(7)用戶A接到信息后,計(jì)算C1-d*C2,結(jié)果就是M,因?yàn)镃1一D*C2=M+r*Q一d(r*G)=M+r*Q-R(d*G)=M。在這個(gè)加密通信中,如果有一個(gè)偷窺者H,他只能看到E(a,b)、Q、G、C1、C2而通過(guò)Q、C求d或通過(guò)C1、C2、G求r都是相當(dāng)困難的。因此,H無(wú)法得到A、B間傳送的明文信息。

4、高級(jí)加密標(biāo)準(zhǔn)(AES)

20世紀(jì)70年代中期由美國(guó)人開創(chuàng)的數(shù)據(jù)文件加密標(biāo)準(zhǔn)(DES)成為一個(gè)世界范圍內(nèi)的標(biāo)準(zhǔn)已經(jīng)20多年了。由于科學(xué)技術(shù)的不斷飛速發(fā)展,由于在密碼分析學(xué)領(lǐng)域出現(xiàn)了差分密碼分析,線性密碼分析等一系列方法,DES以及它的替代算法3-DES的安全性正面臨嚴(yán)峻的挑戰(zhàn)。美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所(NISrr)于1997年初發(fā)起并組織了在全世界廣泛征集新的加密標(biāo)準(zhǔn)算法的活動(dòng),200 1年最終Rijndael算法成為21世紀(jì)新的高級(jí)加密算法AES。但許多企業(yè)似乎并沒(méi)有引起高度的重視,在他們的新產(chǎn)品中還在使用DES或3-DES。對(duì)Rijndael算法進(jìn)行了深入的研究,并把這種全新的算法應(yīng)用到考試系統(tǒng)的數(shù)據(jù)IJU密中來(lái)。PLijndael是具有可變分組長(zhǎng)度和可變密鑰長(zhǎng)度的密鑰迭代分組密碼,包含了輪變換對(duì)狀態(tài)的重復(fù)作用。其中迭代輪數(shù)依賴于分組長(zhǎng)度和密鑰長(zhǎng)度。為了實(shí)現(xiàn)方便和安全性的考慮,選取分組長(zhǎng)度和密鑰長(zhǎng)度都為固定的128 bit,輪數(shù)為10輪。它加密的偽代碼如下:

Cipher( State, CiplierKey)

KeyExpunsion( CipherKey, ExpandecIKey);

AddRounkey( state ,ExpandedKey[0]);

For( i=1;i<10;i++)

{

Round(State,ExpandedKey[il);

FinaIRound( State, ExpandedKey[16]);

State是明文分組128 byte通常把它表示成4×4的表格形式,稱作狀態(tài)字節(jié)(16 byte),如表1所示。

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

CiperKey是通信密鑰也為128 bit,它經(jīng)過(guò)一個(gè)密鑰擴(kuò)展函數(shù)KeyExpansion生成輪密鑰。AdcIRounKey就是初始密鑰加法即明文state與0輪密鑰ExpandedKey[0]進(jìn)行異或。接下來(lái)就是進(jìn)行10輪的輪變換。輪變換由4個(gè)變換組成,其偽代碼如下:

Round( State, LxpandeclKey[i])

SubBytes( State);

ShiftRows( State);

MixColumns( State);

AddRoundKey( State, ExpandedKey[i]);

步驟SubBytes是Rijnclael密碼中唯一的非線性變換。它是一個(gè)作用在狀態(tài)字節(jié)上的磚匠函數(shù),其定義如下:

S[a]=f(g(a)),其中g(shù)(a)是伽羅華域GPr( 2s)上的映射:g:→a,a-1是一個(gè)仿射映射。其定義如下式,a是狀態(tài)字節(jié)上的一個(gè)8 bit字節(jié):

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

步驟ShiftRows是一個(gè)字節(jié)換位,它將明文字節(jié)按照不同的偏移量進(jìn)行循環(huán)移位,按以下函數(shù)變換。A(r,c)=A(r,c+4-r mod 4)。步驟MixColumns是作用在狀態(tài)字節(jié)列(4 byte)上
的一個(gè)線性變換:A(O,C)=((02}A(O,C))+((03}*A(1,C))+A(2,C)+A(3,C);A(1,C)-A(0,C)+({02}*A(1,C))+({03}*A(2,C))“(3,C);A(2,c)*(O,C)(1,C)+((02)M(2,C))+{03}*A(3,C));A(3,C)=({03}*A(0,C))+A(1,C)十A(2,C)十((02)M(3,∞)。其中運(yùn)算+和術(shù)分別為有限域GF(28)中的加法運(yùn)算和乘法運(yùn)算。在GF( 2g)中加法運(yùn)算等同于異或運(yùn)算,乘
法運(yùn)算為既約多項(xiàng)式XS+X4+X3+X+1下的模乘法。

步驟AddRoundKey是密鑰加法,及明文分組字節(jié)與輪密鑰進(jìn)行異或運(yùn)算。1 0輪的輪變換之后,就是FinaIRound,它如下定義:

FinclulRouncl( State.ExpandedKey[10])

{

SubByte(States);

ShiftRows( States);

AdcIRoundKey(State, ExpandedKey[10])

}

它其實(shí)與輪變換幾乎是相l(xiāng)司的,只是少了MixCohunns(State)操作。Rijndael與DES -樣,是對(duì)稱密碼算法,其解密形式與加密形式具有很大的相似。

二、網(wǎng)絡(luò)考試系統(tǒng)加密技術(shù)安全評(píng)估

可以從以下幾個(gè)方面來(lái)分析這個(gè)系統(tǒng)的安全性。

(1)在密鑰分配方案中采用公開密鑰算法橢圓曲線算法EEC(Elliptic CLlrves Cryptography),它的安全性能相當(dāng)高。當(dāng)前流行的公鑰密碼系統(tǒng)的數(shù)學(xué)基礎(chǔ)主要有以下3類:

①因數(shù)分角牟問(wèn)題(IFP),如RSA,Rabin-Williams算法等。

②普通離散對(duì)數(shù)問(wèn)題(DLP),如DSA算法。

③橢惻曲線離散對(duì)數(shù)問(wèn)題(ECDIP),如ECC算法。

在相同條件下RSA和DSA大致相當(dāng),但ECC算法所需的密鑰長(zhǎng)度遠(yuǎn)比RSA和DSA算法低(見表2和圖4)。

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

由表2可以看出,106 bit ECC與512 bit RSA、DSA有相同的安全強(qiáng)度;160 bit ECC與1 024 bit RSA、DSA有相同的安全強(qiáng)度;而600 bit ECC則與21 000 bit RSA、DSA具有相同的安全強(qiáng)度。所以ECC和其它幾種公鑰系統(tǒng)相比,其抗攻擊陛具有絕對(duì)的優(yōu)勢(shì),具有單位比特最高強(qiáng)度的安全性。這就有效地解決了為了提高安全強(qiáng)度必須增加密鑰長(zhǎng)度所帶來(lái)的工程實(shí)現(xiàn)難度的問(wèn)題。

(2)由于每當(dāng)終端機(jī)重新啟動(dòng)時(shí)會(huì)到身份認(rèn)證服務(wù)器簽到,從而變換數(shù)據(jù)通信密鑰(此密鑰為數(shù)據(jù)文件加密算法AES中使用的密鑰),使密碼攻擊變得更加困難。

小知識(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ā)展方向。