作業(yè)管理系統(tǒng)加密方法

隨著信息技術(shù)的迅速發(fā)展、電腦化教學(xué)與遠(yuǎn)程的網(wǎng)絡(luò)化教學(xué)的普及,給傳統(tǒng)的教學(xué)方式帶來了重大的革命,也給教學(xué)改革的實(shí)施者們提出了很多新的課題。如何有效進(jìn)行作業(yè)管理就是一個(gè)讓很多老師頭痛的問題。再者數(shù)據(jù)在傳輸?shù)倪^程中,尤其是在網(wǎng)絡(luò)環(huán)境下,數(shù)據(jù)的安全性成為了嚴(yán)重的問題。因?yàn)樵诰W(wǎng)絡(luò)環(huán)境中,時(shí)刻需要小心傳輸?shù)臄?shù)據(jù)被第三方獲取,即便就算被第三方獲取了,也需要確保被獲取的數(shù)據(jù)的保密性。

一、通訊代理Agent角色構(gòu)成

通訊代理Agent在作業(yè)管理系統(tǒng)中位于客戶與服務(wù)器之間,負(fù)責(zé)完成客戶與服務(wù)器之間的數(shù)據(jù)通信。通訊代理Agent包含有兩種角色:客戶通信代理角色(CL_Agent)和服務(wù)器代理角色(SV_Agent和ComAgent)??蛻敉ㄐ糯斫巧挥诳蛻舳耍?wù)器代理角色位于服務(wù)器端。Client、Agent與Server三層結(jié)構(gòu)所完成的整個(gè)通訊過程如圖1所示。

作業(yè)管理系統(tǒng)加密方法

二、通訊代理Agent的數(shù)據(jù)加密

上述內(nèi)容中介紹了JobManager中的通訊代理Agent。通過介紹,也可以看出現(xiàn)在的通訊機(jī)制中沒有數(shù)據(jù)加密的功能,這使得數(shù)據(jù)傳輸過程中的安全性不能得到保證。下面介紹AES加密解密模塊是如何運(yùn)用到JobManager的通訊代理Agent中的。

數(shù)據(jù)傳輸中如果使用加密技術(shù),必然會(huì)對(duì)性能造成一定的影響,所以,我們只對(duì)需要加密的數(shù)據(jù)進(jìn)行加密。這個(gè)由用戶來指定。在數(shù)據(jù)傳輸前,需要判斷是否需要加密,如果需要,則加密后再進(jìn)行傳輸;如果不需要,則直接進(jìn)行傳輸。所以,客戶通信代理CL_Agent和服務(wù)器通信代理SV_Agent的主要功能作出了一些變化。

客戶通信代理CL_Agent的功能主要體現(xiàn)在以下五個(gè)方面:

1)對(duì)于由客戶發(fā)來的原始命令,完成對(duì)原始客戶命令的打包功能(即客戶命令的串行化);

2)如果客戶發(fā)來的原始命令需要加密,則對(duì)串行化后的數(shù)據(jù)進(jìn)行加密。

3)對(duì)于由服務(wù)器端發(fā)送過來的結(jié)果數(shù)據(jù),如果是加密后的數(shù)據(jù),則先進(jìn)行解密。

4)完成對(duì)服務(wù)器端發(fā)送過來的結(jié)果數(shù)據(jù)的解包功能(即結(jié)果數(shù)據(jù)的反串行化);

5)真正的數(shù)據(jù)傳輸功能,即發(fā)送客戶端的命令,和接收由服務(wù)器端發(fā)送過來的結(jié)果數(shù)據(jù);

服務(wù)器通信代理SV_Agent的功能與客戶通信代理CL_Agent的功能相對(duì)應(yīng),同樣也主要體現(xiàn)在以五個(gè)方面:

1)對(duì)于由客戶端發(fā)送過來的命令,如果是加密后的數(shù)據(jù),則先進(jìn)行解密。

2)完成對(duì)客戶端發(fā)送過來的命令的解包功能(即客戶命令的反串行化);

3)對(duì)于由服務(wù)器或者ComAgent處理完成的結(jié)果數(shù)據(jù),完成對(duì)結(jié)果數(shù)據(jù)的打包功能(即結(jié)果數(shù)據(jù)的串行化);

4)如果由服務(wù)器或者ComAgent處理完成的結(jié)果數(shù)據(jù)需要加密,則對(duì)串行化后的數(shù)據(jù)進(jìn)行加密。

5)真正的數(shù)據(jù)傳輸功能,即接收由客戶端發(fā)送過來的命令,和發(fā)送服務(wù)器或者ComAgent處理完成的結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù);

三、加密解密模塊的實(shí)現(xiàn)

1、加密過程

AES算法每次能夠加密128位的數(shù)據(jù)。AES算法的加密過程包括一個(gè)初始密鑰加法,記為AddRoundKey,接著進(jìn)行Nr-I次輪變換Round,最后再使用一個(gè)輪變換FinaIRound。初始的密鑰加法和每個(gè)輪變換均以狀態(tài)State和一個(gè)輪密鑰作為輸入。第i輪的輪密鑰記為ExpandedKye[i],初始密鑰加法的輸入記為ExpandedKey[0]。從初始密鑰CipherKey推出擴(kuò)展密鑰ExpandedKey的過程為KeyExpansion。

AES的加密過程如下:

AES(State,CipherKey)

{

KeyExpansion(CipherKey,ExpandedKey);

AddRoundKey(State,ExpandedKey[O]);

for(i=l; i<Nr; i++) Round(State,ExpandedKey[i]); FinaIRound(State,ExpandedKey[Nr]); } 2、解密過程 解密過程的流程如下所示: INVAES( State,CipherKey) { invKeyExpansion (CipherKey,InvExpandedKey); AddRoundKey (State,hvExpandedKey+Nb*Nr); for(i=Nr-l; i>0; i--)

hvRound (State,hivExpandedKey+Nb*i);

InvFinaIRound (State,InvExpandedKey);

>

解密過程為加密過程的逆運(yùn)算。

四、AES的CBC加密技術(shù)

在網(wǎng)絡(luò)環(huán)境中,JobManager要時(shí)刻警惕傳輸?shù)臄?shù)據(jù)被第三方獲取并利用。這里使用了AES的CBC加密技術(shù)。

在CBC模型中,首先將明文,按照128位為塊分為明文塊O,明文塊1,…明文塊n;IV是需要初始化的向量。密文塊O,密文塊1,…密文塊n等為加密結(jié)果。

先將明文塊O與初始化的Ⅳ異或,然后在AES加密模塊中按照密鑰加密,得到密文塊O;明文塊1與密文塊0異或,再用AES加密得到密文塊l;依次反饋,鏈?zhǔn)郊用艿玫矫芪膲K0,密文塊1,…密文塊n。解密過程與此相同。

小知識(shí)之Agent技術(shù)

Agent技術(shù)在90年代成為熱門話題,甚至被一些文獻(xiàn)稱為軟件領(lǐng)域下一個(gè)意義深遠(yuǎn)的突破,其重要原因之一在于,該技術(shù)在基于網(wǎng)絡(luò)的分布計(jì)算這一當(dāng)今計(jì)算機(jī)主流技術(shù)領(lǐng)域中,正發(fā)揮著越來越重要的作用。