隨著網絡的迅猛發展,為了適應高校新的教學和管理模式,高校內部都組建了校園網,并開發了相應的管理系統,基于校園網的試卷分析是學生管理信息系統中的一個很重要的部分,它可以方便教師及時掌握學生的學習情況,為學校教務部門制定相應的教學計劃提供一定的幫助,促進教學工作更好地開展。試卷分析系統中,為了防止非法用戶錄入或者修改試卷分析的內容以及學生的成績,在身份認證的基礎上,使用數字簽名技術加強系統的安全性。
身份認證
目前基于公開密鑰算法的簽名方法已被推薦為數字簽名的標準。公開密鑰算法是一種不對稱的加密方法,即加密密鑰和解密密鑰不相同,但存在——對應關系。加密方持有的密鑰稱為私鑰,解密方持有的密鑰稱為公鑰。文檔創建者S使用私鑰對要傳輸的文檔進行加密,文檔接收者R使用公鑰對接收的文檔進行解密,由于由公鑰來推算私鑰是一個NP問題,因此R也就無法冒充S在篡改接收到的文檔后。再將其加密發送給第三方。在數字簽名的過程中,一般由S來創建公/私密鑰對,并由S向R公布其公鑰,由于公/私密鑰之間存在——對應關系,因此如果R確認兩點:(1)使用S的公鑰可以對某個文檔D進行解密;(2)公鑰確實是屬于S的,那么R就完全有理由相信文檔D的確是由S發送的,并且S也無法否認這個事實。對于R需要確認的第(1)點,只需執行解密過程便可得到結果;對于第(2)點,或者是S在創建完自己的公/私密鑰對后,親自將公鑰交到R手中,或者是由一個第三方仲裁機構。它負責登記S的信息并保管、發布其公鑰,R則應是充分信任這第三方權威機構,并從它那獲得S的公鑰,公鑰的真實隸屬關系完全由這第三方來保證。在校園網系統中,辦公的主體很可能不是處于同一個地域,而且在自動化的環境下還需手工的交換密鑰是一件很不合時宜的事情,因此由S親自將密鑰送到R手中的方法不可行;提供第三方的擔保需要切實保證第三方的權威性,如數字證書方法;在辦公自動化環境中,也可以使用密鑰生產管理子系統的概念,以此作為公鑰交換的第三方。密鑰生產管理子系統負責為每一個合法的辦公主體創建公/私密鑰對,負責向S提供其私鑰,向R提供S的公鑰。密鑰生產管理子系統提供了密鑰集中式管理的方法,使得密鑰的創建與用戶無關,避免了用戶制造虛假密鑰的風險,也使得密鑰的管理更加方便、安全。
數字簽名是證明當事者的身份與數據真實性的一種手段。在傳統的以書面文件為基礎的公文處理中采用書面簽名形式,而在以計算機文件為基礎的信息處理中,則采用電子形式的簽名,即數字簽名。這個過程需要考慮兩個問題:(1)簽名S所在的文檔是否被篡改;(2)文檔接收者如何辨別簽名的真實性?即簽名S是屬于辦公主體A的而不是另一個辦公主體B所偽造的。第三者可以確認收發雙方之間的消息傳送,但不能偽造這一過程。
試卷分析系統及加密算法
試卷分析系統是基于校園網運行的管理信息系統,主要用戶有學生、教師、教務員和網絡維護人員,管理的對象為課程、教師、學生、學生成績以及密鑰等,實現的功能需要較高的安全保密性。成績和試卷分析內容的錄入,由教師登錄到試卷分析管理系統直接錄入,然后加上數字簽名,有效地防止了非法用戶錄入或者修改試卷分析的內容。
數據錄入與修改:學生成績、題型以及分析結論等的錄入。
統計:統計學生總人數以及各分數段人數、計算平均分、列出最高分與最低分。
瀏覽、查詢與打印:學生成績以及試卷分析表的瀏覽、查詢與打印。
用戶管理:對學校的學生、教師和教務管理員權限設置,簽名密鑰管理等。
采用RSA加密算法是實現數字簽名的主流方法。RSA是Rivest,Shamir和Adleman于1978年在美國麻省理工學院研制出來的,它是一種比較典型的公開密鑰加密算法,也是迄今為止理論上最為成熟和完善的一種公鑰密碼體制。該算法利用了數論領域的一個事實,那就是雖然把兩個大質數相乘生成一個合數是件十分容易的事情,但要把一個合數分解為兩個質數卻十分困難。合數分解問題目前仍然是數學領域尚未解決的一大難題,至今沒有任何高效的分解方法。RSA算法的體制構造是基于數論的歐拉定理,它的安全性依賴于大數因子分解的困難性。
數字簽名算法應用
密鑰配制:假設m是需要加密的信息。用戶首先選擇一對不同的大素數p與q,使得n=p·q;選擇一個正整數e,使得e與(p-l)(q-l)互素。利用輾轉相除法,計算d,使得:(e·d)mod(p-l)(q-l)=l;這樣得到了(e,n),是用于加密的公共密鑰,可以公開出去;(d,n)是用于解密的專用鑰匙,必須保密。其中mod是整數求余運算。
加密過程:使用(e,n)對明文m進行加密,算法為:c=me mod n;這里的c即是m加密后的密文。
解密過程:使用(d,n)對密文c進行解密,算法為:m=cd mod n;求得的m即為對應于密文c的明文。RSA算法建立在正整數求余運算基礎上,同時還保持了指數運算的性質。在RSA算法中,n的長度是控制該算法可靠性的重要因素。目前大多數加密程序均采用1024位以上,因此RSA加密是相當安全的。RSA算法具有明顯的優越性,因為它無須收發雙方同時參與加密過程,非常適合于電子函件系統的加密。盡管RSA算法既可用于加密、也可以用于數字簽名,但其加密、解密運算復雜,速度慢,所以它適用于少量數據的加密。
在試卷分析系統中進行數字簽名的具體步驟如下:
教師A通過校園網向教務部門B提出錄入或修改試卷請求;
B收到申請后,要求申請者A進行身份認證;
A輸入用戶名和密碼,發送至服務器B:
B通過A發來的信息認證A的身份,如果通過,則繼續下一步,否則發送“身份認證沒有通過”的信息至用戶A;
B提供服務;
A下載試卷分析子系統,并錄入/修改學生成績和試卷分析內容以及其它有關的信息,包括班級名稱、課程名稱、考試日期等,稱為明文;
A用自己的私鑰對自己的用戶名、所授課的班級名稱和課程名稱、系統日期和時間進行簽名得簽名文S;
A將明文和S發送給B,B收到簽名后將明文和S分開;
先判斷簽名是否有效,比較該用戶名是否存在?延遲是否太多?如果該用戶名不存在或者延遲太多,則該簽名無效,否則繼續以下步驟;
B用A的公鑰對S進行解密;
B將解密所得信息與原有信息比較,如果相等則簽名有效,否則為無效;
若服務器B判斷簽名有效,則立即將試卷分析內容寫入數據庫并保存簽名,否則發送“簽名無效”信息至用戶。
系統通過對用戶名、課程名稱、系統日期和時間進行簽名,保證每次簽名的信息都是唯一的。另外接收方可通過比較系統的日期和時間來輔助判斷該簽名是否有效,如果延遲太多,則判為無效。在驗證簽名時,先根據明文判斷簽名的有效性。這使得在沒有對簽名進行解密前,就可以排除一些非法簽名,大大提高了系統的運行效率。
RSA算法的安全性取決于大數因子分解的困難性。公鑰密碼非常可靠,具有很強的抗攻擊性,而且它的處理速度較快,故此具有廣泛的應用前景。將之應用于基于校園網的試卷分析信息系統中,密鑰可由教務部門的系統管理員來產生與分配。在系統保證安全的基礎上充分提高了效率。每位教職工可向本系統申請一個密鑰對(P,Q),保密密鑰P由用戶自己保管,公開密鑰Q由系統管理員保管,不向外界透露,以增加系統的安全性。