摘要:分析了網(wǎng)絡(luò)考試系統(tǒng)的特點(diǎn),然后在分析數(shù)據(jù)加密技術(shù)的基本原理基礎(chǔ)上,研究了包括DES對(duì)稱加密算法、RSA非對(duì)稱加密算法、數(shù)字簽名等諸多加密技術(shù)。針對(duì)網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)安全性要求較高的特點(diǎn),在系統(tǒng)中采用了多層次的安全技術(shù),采用DES對(duì)數(shù)據(jù)庫的敏感數(shù)據(jù)加密,采用了非對(duì)稱加密技術(shù)的數(shù)字簽名來保證試卷安全。
關(guān)鍵詞:數(shù)據(jù)加密; DES; RSA;數(shù)字簽名
中圖分類號(hào):TP309文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)24-6662-03
Research and Application of Data Encryption Technology in Network Exmination System
SUN Zhan-feng, SONG Bao-wei
(Zhengzhou Institute of Light Industry, Institute of Computer and Communication Engineering, Zhengzhou 450002, China)
Abstract: Analysis of the characteristics of the network exmination system, and then analyzing the data in the basic principles of encryption technology, based on research, including the DES symmetric encryption algorithm, RSA algorithm for asymmetric cryptography, digital signatures and other encryption technology. Examination system for network data security features of the higher, in the system using multi-level security technology, the use of DES for data encryption of sensitive data using the non-symmetric encryption of digital signature technology to ensure the security papers.
Key words: data encryption; DES; RSA; digital signature
基于Web的考試是隨著計(jì)算機(jī)技術(shù)的深入和普及,尤其是Internet的應(yīng)用普及而產(chǎn)生的??荚囅到y(tǒng)網(wǎng)絡(luò)化的同時(shí),也帶來了相關(guān)的安全問題。在具體的考試系統(tǒng)中,主要涉及到題庫和成績(jī)的安全性,即保證題庫來自正確的服務(wù)器,答案來自正確的考生,且保證題庫和成績(jī)不被泄密和修改。如果這些問題得不到解決,考試所要求的公正性、客觀性無法保證。
當(dāng)前,一般流行的大型數(shù)據(jù)庫系統(tǒng)都提供了許多安全技術(shù),它基本能夠滿足一般的數(shù)據(jù)庫應(yīng)用需求。但也不能保證敏感數(shù)據(jù)的保密性。例如DBA擁有最高權(quán)限,可知曉試卷的內(nèi)容。為了保證考試的公正性,這就需要有進(jìn)一步的安全措施——數(shù)據(jù)加密和數(shù)字簽名。
1 數(shù)據(jù)加密
數(shù)據(jù)加密就是利用某種方法偽裝數(shù)據(jù),使別人無法得到數(shù)據(jù)包含的真實(shí)信息。被加密的數(shù)據(jù)稱為明文,加密以后的數(shù)據(jù)稱為密文,把密文轉(zhuǎn)變?yōu)槊魑牡倪^程就是解密。明文用M表示,密文用C表示,加密過程就是一個(gè)把明文變成密文的數(shù)學(xué)函數(shù),用E表示,而解密過程就是一個(gè)把密文變成明文的數(shù)學(xué)函數(shù),用D表示。加密過程就是E(M)=C;解密過程就是D(C)=M。目前有兩種加密體制:公鑰體制和單鑰體制。公鑰體制有典型代表的是RSA,而單鑰體制具有典型代表的是DES。
信息加密系統(tǒng)的示意圖如圖1所示。
1.1 DES對(duì)稱加密算法
DES(美國商用數(shù)據(jù)加密標(biāo)準(zhǔn))算法的明文和密文的長度均為64位,密鑰長度為56位。實(shí)現(xiàn)算法步驟為:
1) 初始置換IP。對(duì)給定的64位比特的明文m,首先通過一個(gè)置換IP表來重新排列m,從而構(gòu)造出64位比特的m0,m0=IP(m)=L0R0,其中L0表示m0的前32比特,R0表示m0的后32位。
2) 乘積變換(16輪)。換完之后,若經(jīng)過第n層處理后的左、右32比特分別為Ln和Rn,則Ln和Rn可作如下定義:
Ln=Rn-1
Rn=Ln-1?茌f(Rn-1, Kn)
Kn是向第n層輸入的48比特的密鑰,Ln-1和Rn-1分別是第n-1層的輸出,f是以Rn-1和Kn為變量的輸出32比特的函數(shù)。第n層的加密變換如圖2所示。
3) 逆置換IP-1。對(duì)L16、R16利用初始置換IP作逆置換IP-1,就得到了密文y,這就是DES加密的結(jié)果。
DES使用與加密相同的函數(shù)進(jìn)行解密,唯一不同之處是密鑰的次序相反。
1.2 RSA非對(duì)稱加密算法
RSA算法是目前非對(duì)稱加密領(lǐng)域內(nèi)最為著名的算法。它的安全性是基于大整數(shù)質(zhì)因子分解的困難性。
其算法過程為: 建立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(modΦ(n)) 計(jì)算出e,用戶公布e,但將d保密。
RSA方法是一種分組密碼系統(tǒng)。加密時(shí),首先將明文表示成0到n-1之間的整數(shù)。如果明文太長,可將其變?yōu)閚進(jìn)制數(shù)的形式,即令M=M0+M1n+K+Msns,然后分別加密(M0, M1, …Ms),得出密文(C0, C1, …Cs) 。加密公式為:
C≡E(M) =Me(mod n)
如果已知密鑰d,解鑰是容易的。只需計(jì)算:
D(C) ≡Cd(mod n)
即可恢復(fù)明文M。
RSA涉及大數(shù)的計(jì)算,無論硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的效率都比較低,不適用于對(duì)長的明文進(jìn)行加密,常用來對(duì)密鑰進(jìn)行加密,即與對(duì)稱密碼算法結(jié)合使用。
2 數(shù)字簽名
數(shù)字簽名是采用一種數(shù)據(jù)交換協(xié)議,使收、發(fā)數(shù)據(jù)的雙方能夠滿足兩個(gè)條件: 接受方能夠鑒別發(fā)送方所宣稱的身份;發(fā)送方以后不能否認(rèn)發(fā)送過數(shù)據(jù)這一事實(shí)。
數(shù)字簽名的目的是為了保證信息的完整性和真實(shí)性。和加密相對(duì)應(yīng),有基于對(duì)稱密鑰的數(shù)字簽名和基于非對(duì)稱密鑰的數(shù)字簽名兩種方式?;诜菍?duì)稱密鑰的數(shù)字簽名方式是公開密鑰加密技術(shù) (如RAS算法) 和報(bào)文分解函數(shù)(如MDS)相結(jié)合的產(chǎn)物。報(bào)文分解函數(shù)是一種散列技術(shù):對(duì)數(shù)據(jù)執(zhí)行一些數(shù)學(xué)運(yùn)算,從運(yùn)算的結(jié)果無法得到原來的數(shù)據(jù)。
數(shù)字簽名一般采用非對(duì)稱加密技術(shù)(如RSA),發(fā)送方對(duì)整個(gè)明文進(jìn)行加密變換,得到一個(gè)值,將其作為簽名。接收方使用發(fā)送方的公開密鑰對(duì)簽名進(jìn)行解密運(yùn)算,如結(jié)果為明文,則簽名有效,證明對(duì)方的身份是真實(shí)的。
P=D(Kpub,E(Kpriv,P))
上式表明的是一個(gè)數(shù)字簽名過程。對(duì)于通信的雙方發(fā)送者和接收者而言,信息加密是發(fā)送者使用接收者的公鑰進(jìn)行加密,只有接收者用自己的私有密鑰才能解開信息;數(shù)字簽名是發(fā)送者使用自己的私鑰加密信息,接收者可以用發(fā)送者的公開密鑰進(jìn)行解密。
3 網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)的加密要求
對(duì)于一個(gè)網(wǎng)絡(luò)考試系統(tǒng)的安全性而言,僅靠訪問控制是不夠的。因?yàn)檫@些安全措施存在一個(gè)致命的弱點(diǎn):原始數(shù)據(jù)以可讀的形式存儲(chǔ)在數(shù)據(jù)庫中。這樣,高明的入侵者可以從計(jì)算機(jī)系統(tǒng)的內(nèi)存中導(dǎo)出所需的信息,或者采用某種方式進(jìn)入考試系統(tǒng),從系統(tǒng)的后備存儲(chǔ)器上竊取數(shù)據(jù)或篡改數(shù)據(jù)。要徹底解決考試系統(tǒng)的安全保密,除了在傳輸過程中控制非法訪問之外,還必須對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密保護(hù)。一個(gè)網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)的加密要求有:
1) 考試系統(tǒng)試題庫信息保存時(shí)間要長,不可能采取一次一密的方法進(jìn)行加密,因而選用其它的加密方式,使其達(dá)到實(shí)際不可破譯的程度。
2) 實(shí)際加密后,存儲(chǔ)空間不應(yīng)明顯增大。
3) 加密和解密速度要快,尤其是考試過程中解密要快,使考生感覺不到解密帶來系統(tǒng)性能的變化。
4) 加密系統(tǒng)要有盡可能靈活的授權(quán)機(jī)制??荚囅到y(tǒng)數(shù)據(jù)庫在Internet環(huán)境中使用時(shí),每個(gè)考生只使用其中小部分?jǐn)?shù)據(jù)。因此數(shù)據(jù)庫系統(tǒng)應(yīng)有很強(qiáng)的訪問控制機(jī)制,并輔以很靈活的授權(quán)機(jī)制,這樣既能增加系統(tǒng)的安全又能方便用戶的使用。
5) 加密系統(tǒng)應(yīng)提供一套安全、靈活的密鑰管理機(jī)構(gòu)。
6) 對(duì)數(shù)據(jù)庫的加密不應(yīng)影響考試系統(tǒng)的原有功能,而應(yīng)保持對(duì)數(shù)據(jù)庫操作的靈活性和簡(jiǎn)便性。
7) 加密后的數(shù)據(jù)庫仍能允許用戶以不同的角色對(duì)之進(jìn)行訪問。
在網(wǎng)絡(luò)考試系統(tǒng)中,一次考試的流程大致可以分為這么幾步:首先,由出題老師出好試卷,存入數(shù)據(jù)庫中;然后當(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ù)庫中的考試信息進(jìn)行加密。在各種加密算法中,DES對(duì)稱加密算法加解密速度快,加密強(qiáng)度高,密鑰分發(fā)與管理困難,可滿足系統(tǒng)對(duì)數(shù)據(jù)快速高效加解密處理的要求;非對(duì)稱加密算法的加解密速度慢,不能適應(yīng)數(shù)據(jù)庫加密的速度要求,而其密鑰管理簡(jiǎn)單,正好用于生成傳遞對(duì)稱加密算法使用的密鑰的數(shù)字簽名,保障了密鑰傳遞的安全性。將兩者相結(jié)合,可以有效地提高加密效率,并能簡(jiǎn)化對(duì)密鑰的管理。所以本考試系統(tǒng)選擇用DES對(duì)數(shù)據(jù)庫的敏感數(shù)據(jù)加密;采用了非對(duì)稱加密技術(shù)(如RSA) 的數(shù)字簽名來保證試卷由合法的考試者提供,且試卷的內(nèi)容未被修改。
4 網(wǎng)絡(luò)考試系統(tǒng)中的加密處理
網(wǎng)絡(luò)考試系統(tǒng)中,需要保密的環(huán)節(jié)較多,如考前的試卷需要防泄密、考后的答卷需要防篡改,等等。
1) 試卷的加密和解密處理。根據(jù)加密理論,出題者可設(shè)置密鑰以維護(hù)試題的保密性,在正式考試時(shí),再用密鑰解開試題供考試時(shí)使用。采用加密的試卷加密和解密過程如圖3所示。出題者在生成試卷后給定加密密鑰,明文用該密鑰經(jīng)加密算法處理后送入試卷庫;一旦試卷啟封使用,由密鑰持有者提供解密密鑰用解密算法將試卷解密得到試卷明文以供考試使用。
2) 用戶檔案及題庫的加解密處理。用戶的檔案涉及到個(gè)人信息和權(quán)限管理,尤其是管理員及教師的資料,這些數(shù)據(jù)都要加密處理。試題庫為了防止泄密,也要求加密存儲(chǔ)。檔案及試題庫的加解密方法相似,因?yàn)閮烧咧恍璐鎯?chǔ)在數(shù)據(jù)庫中,不用在服務(wù)器間傳輸。管理員輸入完數(shù)據(jù)后將其加密存儲(chǔ)在相應(yīng)數(shù)據(jù)庫中,需要修改及查詢時(shí),先解密成明文再進(jìn)行相應(yīng)操作。
3) 答卷的加密處理。在本系統(tǒng)中,除了試卷需要加密保護(hù)以增強(qiáng)數(shù)據(jù)的保密性以外,考生的答卷也有必要進(jìn)行一定的加密處理,因?yàn)榇鹁硪矊儆诿舾袛?shù)據(jù),若答卷中答案不加保護(hù)則可被輕易的篡改從而無法保證考試的公平與合法。加密后的答卷存在答卷數(shù)據(jù)庫中,閱卷時(shí)系統(tǒng)管理員再解密成明文批閱。
4) 答卷提交的數(shù)字簽名。在考試系統(tǒng)中采用數(shù)字簽名技術(shù),一是要保證考生的答卷是合法的未經(jīng)篡改的有效答卷;二是要保證它經(jīng)過正常的考試過程。采用數(shù)字簽名技術(shù)主要是防止惡意篡改考卷和保證考卷的合法性。考試系統(tǒng)中的數(shù)字簽名技術(shù)用在考生試卷的提交,簽名是答卷的信息摘要和考生信息的函數(shù)。由于收方在收到附加在答卷后的信息摘要后無需還原,只要將收到的答卷內(nèi)容做信息摘要后做比對(duì),故在此我們采用簡(jiǎn)單的信息校驗(yàn)和作為信息摘要函數(shù),實(shí)現(xiàn)起來非常簡(jiǎn)單。雖然可能會(huì)出現(xiàn)不同的數(shù)據(jù)序列會(huì)產(chǎn)生相同的校驗(yàn)和結(jié)果,但校驗(yàn)是與傳送過來的原文相比,發(fā)生篡改而不被發(fā)現(xiàn)的可能性很小。當(dāng)然對(duì)于校驗(yàn)和計(jì)算應(yīng)是保密的。
本考試系統(tǒng)通過數(shù)據(jù)的加密處理和數(shù)字簽名技術(shù)的應(yīng)用,具有較強(qiáng)的安全性、可靠性和穩(wěn)定性,達(dá)到了實(shí)用水平。
參考文獻(xiàn):
[1] 中國信息安全產(chǎn)品測(cè)評(píng)認(rèn)證中心.信息安全理論與技術(shù)[M].北京:人民郵電出版社,2004.
[2] 朱魯華,陳榮良.數(shù)據(jù)庫加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002(8).
[3] 李建敏.網(wǎng)絡(luò)考試系統(tǒng)的安全性研究[J].華南金融電腦, 2006( 6).
[4] 孫占鋒.基于ASP.NET的網(wǎng)絡(luò)考試系統(tǒng)的用戶權(quán)限設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2007(11).