两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)加/解密校驗方法及其系統(tǒng)的制作方法

文檔序號:7942238閱讀:360來源:國知局
專利名稱:數(shù)據(jù)加/解密校驗方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及到數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及到數(shù)據(jù)加/解密校驗方法及其系統(tǒng)。
背景技術(shù)
目前,用于數(shù)據(jù)傳輸和存儲過程的加密方法,主要是采用分組加密算法,如AES、 DES、SM1等,對數(shù)據(jù)進行加密變換,形成密文后再進行傳輸或存儲。這種方法可以隱藏原有數(shù)據(jù),滿足保護數(shù)據(jù)私密性的需求。但是,這種加密方法未對數(shù)據(jù)進行校驗,如果數(shù)據(jù)在傳輸和存儲過程中出現(xiàn)錯誤或被惡意篡改,這種加密方法并不能識別,導(dǎo)致解密處理出來的數(shù)據(jù)與原有數(shù)據(jù)不相同的錯誤情況。為解決上述問題,現(xiàn)有的方法是除了對數(shù)據(jù)進行加密變換之外,增加一段校驗碼, 其技術(shù)方案是采用分組加密算法,一方面對數(shù)據(jù)進行加密變換,形成密文,另一方面通過分組加密算法計算原有數(shù)據(jù)的校驗碼,并將校驗碼與原有數(shù)據(jù)共同傳輸或共同存儲。雖然這種方法能夠在數(shù)據(jù)傳輸和存儲過程中,通過接收者或使用者根據(jù)校驗碼來判斷接收到的數(shù)據(jù)是否和原有數(shù)據(jù)不一致,即判斷數(shù)據(jù)加密或解密過程中是否出現(xiàn)錯誤或被惡意篡改,但是這種在加密變換之外增加校驗碼的方法,其缺點是需要對數(shù)據(jù)進行兩輪分組密碼運算, 一輪用于數(shù)據(jù)加密變換,另一輪用于計算校驗碼。由于分組密碼運算需要耗費大量的計算能力,這種方法將成倍地增加計算開銷,所以在應(yīng)用于高速網(wǎng)絡(luò)傳輸和海量數(shù)據(jù)存儲時,將極大地降低傳輸和存儲性能,成為系統(tǒng)的瓶頸。

發(fā)明內(nèi)容
本發(fā)明的主要目的為提供一種可有效提高數(shù)據(jù)加/解密及校驗效率的數(shù)據(jù)加/解密校驗方法及其系統(tǒng)。本發(fā)明提出一種數(shù)據(jù)加/解密校驗方法,包括步驟加密裝置對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac,合并所述加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù)Data,加密所述合并數(shù)據(jù)Data, 獲得密文Cipher,并輸出到解密端;解密裝置解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data',從所述解密數(shù)據(jù) Data'中分離出解密端明文數(shù)據(jù)Plain'和所述校驗碼Mac,并對所述校驗碼Mac進行校驗。優(yōu)選地,所述對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac 具體包括將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段 Pj,其中 j = 1、2........m;確定所述校驗碼Mac=P1 θ P2 @ P3 @ ...... Pm.! Pm,其中@為異或操作。 優(yōu)選地,所述確定校驗碼Mac=P1 P2 P3 ...... Pm-i Pm之前還包括 當(dāng)?shù)趍個加密端明文數(shù)據(jù)段Pm的長度小于所述分組長度L時,在所述第m個加密端明文數(shù)據(jù)段Pm中補0,使其長度為所述分組長度L。優(yōu)選地,所述對校驗碼Mac進行校驗具體包括解密裝置對所述解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼 M';判斷所述驗證碼M'是否與所述校驗碼Mac相同;如果是,則判定校驗成功,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain 相同;如果否,則判定校驗失敗,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain 不同。優(yōu)選地,所述解密裝置對解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M'具體包括將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段 Pj',其中 j = 1、2........m;確定所述驗證碼M' =P1' P2' ...... θΡη,.1' θΡη/,其中 @ 為異
或操作。優(yōu)選地,所述確定所述驗證碼M' =P1' Ρ2' ...... θΡη,,ι' Pm'
之前還包括當(dāng)?shù)趍個解密端明文數(shù)據(jù)段P/的長度小于所述分組長度L時,在所述第m個解密端明文數(shù)據(jù)段P/中補0,使其長度為所述分組長度L。優(yōu)選地,所述加密合并數(shù)據(jù)Data,獲得密文Cipher具體包括將所述合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段Di,其中 i = 1、2、......、n ;定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作;以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C^1進行加密,得到加密端密文數(shù)據(jù)SC1=Eiick (D1 @ C,ι),其中@為異或操作;將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成所述密文Cipher。優(yōu)選地,所述解密裝置解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data'具體包括將所述密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段Ci',其中 i = 1、2、......、n ;定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對所述解密端密文數(shù)據(jù)段Ci'進行解密,獲得解密數(shù)據(jù)段DecK (Ci');對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段C^1 ‘進行異或操作,獲得解密端分組數(shù)據(jù)段D/ =DecK(CV) Q.i';將各解密端分組數(shù)據(jù)段D/ ,D2'、!V ........Dn'依次串接,構(gòu)成所述解密數(shù)M Data' ο本發(fā)明還提出一種數(shù)據(jù)加/解密校驗系統(tǒng),包括加密裝置和解密裝置,所述加密裝置具體包括校驗碼生成模塊,用于對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac ;加密模塊,用于合并所述加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù) Data,加密所述合并數(shù)據(jù)Data,獲得密文Cipher,并輸出到解密端;所述解密裝置具體包括解密模塊,用于解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data',從所述解密數(shù)據(jù)Data'中分離出解密端明文數(shù)據(jù)Plain'和所述校驗碼Mac ;校驗?zāi)K,用于對所述校驗碼Mac進行校驗。優(yōu)選地,所述校驗碼生成模塊具體用于將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段 Pj,其中 j = 1、2........m;確定所述校驗碼Mac=P1 θ P2 @ P3 @ ...... Pm4 Pm,其中@為異或操作。優(yōu)選地,所述校驗碼生成模塊具體還用于當(dāng)?shù)趍個加密端明文數(shù)據(jù)段Pm的長度小于所述分組長度L時,在所述第m個加密端明文數(shù)據(jù)段Pm中補0,使其長度為所述分組長度L。優(yōu)選地,所述校驗?zāi)K具體包括驗證碼生成子模塊,用于對所述解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M';校驗判斷子模塊,用于判斷所述驗證碼M'是否與所述校驗碼Mac相同;如果是, 則判定校驗成功,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain相同;如果否,則判定校驗失敗,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain不同。優(yōu)選地,所述驗證碼生成子模塊具體用于將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段 Pj',其中 j = 1、2........m;確定所述驗證碼M' =P1' P2' P3' ......SPm./ θΡη/,其中 @ 為異
或操作。所述驗證碼生成子模塊具體用于當(dāng)?shù)趍個解密端明文數(shù)據(jù)段P/的長度小于所述分組長度L時,在所述第m個解密端明文數(shù)據(jù)段P/中補0,使其長度為所述分組長度L。優(yōu)選地,所述加密模塊具體用于將所述合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段Di,其中 i = 1、2、......、n ;定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作;以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C^1進行加密,得到加密端密文數(shù)據(jù)段C1=Eiick (D1 C,i),其中@為異或操作;將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成所述密文Cipher。優(yōu)選地,所述解密模塊具體用于將所述密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段Ci',其中 i = 1、2、......、n ;定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對所述解密端密文數(shù)據(jù)段Ci'進行解密,獲得解密數(shù)據(jù)段DecK (Ci');對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段C^1 ‘進行異或操作,獲得解密端分組數(shù)據(jù)段D/ =DecK(CV) Q.i';將各解密端分組數(shù)據(jù)段D/ ,D2'、!V ........Dn'依次串接,構(gòu)成所述解密數(shù)
Data' ο本發(fā)明通過簡單的異或操作生成校驗碼Mac,僅采用一次加密變換即完成數(shù)據(jù)加密,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,減少了加密變換次數(shù),有效提高加/解密效率;通過對校驗碼Mac的正確性進行校驗,可檢測加/解密數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,在確保數(shù)據(jù)的私密性同時,也保證了數(shù)據(jù)的正確性。


圖1為本發(fā)明一實施例中數(shù)據(jù)加/解密校驗方法的流程圖; 圖2為圖1所示數(shù)據(jù)加/解密校驗方法中生成校驗碼步驟的流程圖; 圖3為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)加密步驟的一實施方案的流程4為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)加密步驟的另一實施方案的流程
圖5為本發(fā)明一實施例的數(shù)據(jù)加/解密校驗方法中加密裝置處理數(shù)據(jù)的示意6為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)解密步驟的一實施方案的流程圖
η
圖7為圖1所示數(shù)據(jù)加
圖8為圖1所示數(shù)據(jù)加, 圖9為圖8所示數(shù)據(jù)加,
‘解密校驗方法中數(shù)據(jù)解密步驟的另一實施方案的流程
解密校驗方法中校驗碼校驗步驟的流程圖; 解密校驗方法中生成驗證碼步驟的流程圖; 圖10為本發(fā)明另一實施例的數(shù)據(jù)加/解密校驗方法中解密裝置處理數(shù)據(jù)的示意
圖11為本發(fā)明一實施例中數(shù)據(jù)加/解密校驗系統(tǒng)的結(jié)構(gòu)示意圖; 圖12為本發(fā)明一實施例的數(shù)據(jù)加/解密校驗系統(tǒng)中校驗?zāi)K的結(jié)構(gòu)示意圖。 本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施例方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,圖1為本發(fā)明一實施例中數(shù)據(jù)加/解密校驗方法的流程圖,該發(fā)明實施例提到的數(shù)據(jù)加/解密校驗方法,包括步驟步驟S10,加密裝置對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼 Mac ο本實施例中,校驗碼Mac的生成在加密端進行,由設(shè)置于加密端計算機PC中的加密裝置執(zhí)行異或操作生成校驗碼Mac,由于異或操作簡單且處理時間快,獲得的校驗碼Mac 同樣能夠檢測出數(shù)據(jù)的正確性與完整性,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,有效提高了校驗碼生成效率。此外,當(dāng)本發(fā)明實施例應(yīng)用于網(wǎng)絡(luò)傳輸場合中時,加密端為數(shù)據(jù)發(fā)送方PC;當(dāng)本發(fā)明實施例應(yīng)用于文件存儲場合中時,加密端為文件寫入方PC。步驟S20,加密裝置合并加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù) Data ;本實施例中加密端明文數(shù)據(jù)Plain和校驗碼Mac均為二進制碼流,合并后的合并數(shù)據(jù)Data也為二進制碼流。合并時,加密裝置將校驗碼Mac串接在加密端明文數(shù)據(jù)Plain 后方,獲得合并數(shù)據(jù)Data,以便于解密后分離出校驗碼Mac。此外,加密裝置也可以采用其他方式合并,例如,將校驗碼Mac插入到加密端明文數(shù)據(jù)Plain中預(yù)設(shè)的指定位,解密時從指定位開始分離校驗碼Mac。步驟S30,加密裝置加密合并數(shù)據(jù)Data,獲得密文Cipher,并輸出到解密端;本實施例在加密裝置執(zhí)行加密變換的過程中,因校驗碼Mac的生成是通過簡單的異或操作獲得,因此在加密時只對由加密端明文數(shù)據(jù)Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù) Data進行一次加密變換處理,即可獲得密文,達(dá)到保護數(shù)據(jù)私密性的目的,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,減少了加密變換次數(shù),有效提高了數(shù)據(jù)加密及傳輸效率。步驟S40,解密裝置解密接收到的密文Cipher,獲得解密數(shù)據(jù)Data';本實施例通過設(shè)置于解密端計算機PC中的解密裝置完成解密過程,解密裝置解密時,只需對密文Cipher進行一次解密變換處理,即可完成解密操作,有效提高了數(shù)據(jù)解密效率。此外,當(dāng)本發(fā)明實施例應(yīng)用于網(wǎng)絡(luò)傳輸場合中時,解密端為數(shù)據(jù)接收方PC;當(dāng)本發(fā)明實施例應(yīng)用于文件存儲場合中時,解密端為文件讀取方PC。步驟S50,解密裝置從解密數(shù)據(jù)Data'中分離出解密端明文數(shù)據(jù)Plain'和校驗碼 Mac ;本實施例中,由解密裝置解密后的解密數(shù)據(jù)Data'為二進制碼流。如果加密裝置獲得合并數(shù)據(jù)Data時采用將校驗碼Mac串接在加密端明文數(shù)據(jù)Plain后方的合并方式,則解密裝置分離解密數(shù)據(jù)Data'時,從解密數(shù)據(jù)Data'的尾部獲取與校驗碼Mac長度相同的數(shù)據(jù)段,即為校驗碼Mac,其余部分即為解密端明文數(shù)據(jù)Plain'。如果加密裝置獲得合并數(shù)據(jù)Data時采用其他方式,例如,將校驗碼Mac插入到加密端明文數(shù)據(jù)Plain中預(yù)設(shè)的指定位,則解密裝置解密時從指定位開始獲取與校驗碼Mac長度相同的數(shù)據(jù)段,即為校驗碼 Mac,其余部分即為解密端明文數(shù)據(jù)Plain'。步驟S60,解密裝置對校驗碼Mac進行校驗。本實施例通過解密裝置對校驗碼Mac的正確性進行校驗,可檢測加/解密數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,在確保數(shù)據(jù)的私密性同時,也保證了數(shù)據(jù)的正確性。如圖2所示,圖2為圖1所示數(shù)據(jù)加/解密校驗方法中生成校驗碼步驟的流程圖。 步驟SlO具體包括步驟S11,將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段P」,其中j = 1、2........m;本實施例中分組長度L為加密端和解密端預(yù)先協(xié)商好的參數(shù),分組后各加密端明文數(shù)據(jù)段Pj的長度為分組長度L,經(jīng)過異或操作獲得的校驗碼Mac的長度也為分組長度L。步驟S12,確定校驗碼Mac =P1 θ P2 @ P3 @......@ Pw Pm,其中@為異或操作。本實施例將分段后的數(shù)據(jù)進行異或,如果加密端明文數(shù)據(jù)Plain長度不為分組長度L的整數(shù)倍,此時加密端明文數(shù)據(jù)Plain最尾部一段數(shù)據(jù),即第m個加密端明文數(shù)據(jù)段Pm的長度則會小于分組長度L,那么在采用異或操作計算校驗碼Mac時,在Pm中補充0, 使其長度為分組長度L,例如Pm = ( , a2, a3, a4, a5), Pm-i = (b” b2, b3, b4, b5, b6, b7, b8), Pm 比 Pnri 少 313行,在卩 1 中補充 0,令卩 1 = (B1, a2,a3,a4,a5,0,0,0),由于y @ 0=y,故 Pw @ Pm= ( ai @ bi, Sl2 b2, a3 b3, a4 b4, a5 b5, b6, b7, b8)。此外 0 還可以補充在Pm'中指定的位置。本實施例采用較簡單的異或操作獲得校驗碼Mac,由于異或操作的處理時間快,且獲得的校驗碼Mac同樣能夠檢測出數(shù)據(jù)的正確性與完整性,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,有效提高了校驗碼生成效率。如圖3所示,圖3為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)加密步驟的一實施方案的流程圖。步驟S30具體包括步驟S31,將合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段 Di,其中 i = 1、2、......、n ;步驟S32,定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV 為長度為分組長度L的預(yù)設(shè)隨機數(shù);本實施例中預(yù)設(shè)隨機數(shù)IV為加密端和解密端預(yù)先協(xié)商好的參數(shù),因本實施例中各數(shù)據(jù)段均以分組長度L作為單位長度,且各數(shù)據(jù)段均為二進制碼流,為便于計算,預(yù)設(shè)隨機數(shù)IV也規(guī)定為二進制碼流,其長度也為分組長度L。步驟S33,對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作;步驟S34,以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C1^進行加密,得到加密端密文數(shù)據(jù)段C1=Eiick ( D1 C1.!),其中@為異或操作;本實施例中密鑰K和分組密碼算法為加密端和解密端預(yù)先協(xié)商好的參數(shù),各加密
端分組數(shù)據(jù)段Dp A........Dn和初始加密端密文數(shù)據(jù)段Ctl為已知,則各加密端密文數(shù)據(jù)
段C1=Eiick (D1 C。)、C2=EncK (D2 C1)........Cn=EncK (Dn Cn.i )。步驟S35,將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成密文Cipher。本實施例中校驗碼Mac的生成是通過簡單的異或操作獲得,因此在加密時只需采用一次加密變換,對由加密端明文數(shù)據(jù)Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù)Data進行加密,即可達(dá)到保護數(shù)據(jù)私密性的目的,減少了加密變換次數(shù),避免成倍增加計算開銷,有效
1提高加密效率。如圖4所示,圖4為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)加密步驟的另一實施方案的流程圖。步驟S31之前還包括步驟S36,當(dāng)合并數(shù)據(jù)Data的長度小于分組長度L的整數(shù)倍時,在合并數(shù)據(jù)Data 中添加填充數(shù)據(jù),使其長度為分組長度L的整數(shù)倍。本實施例中,如果加密端明文數(shù)據(jù)Plain長度不為分組長度L的整數(shù)倍,則由加密端明文數(shù)據(jù)Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù)Data的長度也不為分組長度L的整數(shù)倍。為方便計算,需填充合并數(shù)據(jù)Data,例如,分組長度L為8bit,合并數(shù)據(jù)Data的長度為 ^bit,則應(yīng)增加6bit或(6+8x)bit的填充數(shù)據(jù),使其長度為Sbit的整數(shù)倍,其中χ為正整數(shù)。填充數(shù)據(jù)可以添加在合并數(shù)據(jù)Data的后方,也可添加在合并數(shù)據(jù)Data中指定位置。如圖5所示,圖5為本發(fā)明一實施例的數(shù)據(jù)加/解密校驗方法中加密裝置處理數(shù)據(jù)的示意圖。本實施例通過加密裝置進行簡單的異或操作生成校驗碼Mac,并將校驗碼Mac串接在加密端明文數(shù)據(jù)Plain后方,僅采用一次加密變換即完成數(shù)據(jù)加密,生成密文Cipher, 避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,減少了加密變換次數(shù), 有效提高加密效率。如圖6所示,圖6為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)解密步驟的一實施方案的流程圖。步驟S40具體包括步驟S41,將密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段 Ci',其中 i = 1、2、......、n ;步驟S42,定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為分組長度L的預(yù)設(shè)隨機數(shù);步驟S43,以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對解密端密文數(shù)據(jù)段Ci'進行解密,獲得解密數(shù)據(jù)段DecK (C/ );本實施例中,解密端的分組長度L、預(yù)設(shè)隨機數(shù)IV、密鑰K和分組密碼算法與上述加密端的分組長度L、預(yù)設(shè)隨機數(shù)IV、密鑰K和分組密碼算法一致,均為加密端和解密端預(yù)先協(xié)商好的參數(shù)。步驟S44,對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段Ci. 操作,獲得解密端分組數(shù)據(jù)段0/ =DeCK(CV) Q.i';本實施例中各解密端密文數(shù)據(jù)段C1' ,C2'、C3' ........Cn'
密端密文數(shù)據(jù)段C/為已知,則各解密端分組數(shù)據(jù)段D/ = DecK ( C D2' =DecK (C2' ) Cl'........ D1/ = DecK (Cn' ) Cn·!'。步驟S45,將各解密端分組數(shù)據(jù)段D1' ,D2'、!V ........Dn'依次串接,構(gòu)成解
密數(shù)據(jù)Data'。本實施例解密時只需采用一次解密變換,即可完成對密文Cipher的解密,減少了解密變換次數(shù),避免成倍增加計算開銷,有效提高解密效率。如圖7所示,圖7為圖1所示數(shù)據(jù)加/解密校驗方法中數(shù)據(jù)解密步驟的另一實施方案的流程圖。步驟S45之后還包括步驟S46,當(dāng)解密數(shù)據(jù)Data'中包含填充數(shù)據(jù)時,去除填充數(shù)據(jù)。
/進行異或
和初始解 ) CV、
本實施例中,如果加密時在合并數(shù)據(jù)Data中添加了填充數(shù)據(jù),則在解密時,需要去除填充數(shù)據(jù),以確保從解密數(shù)據(jù)Data'中分理出的數(shù)據(jù)正確。如果填充數(shù)據(jù)添加在合并數(shù)據(jù)Data的后方,則在解密時去除解密數(shù)據(jù)Data'的尾部與填充數(shù)據(jù)長度一致的數(shù)據(jù)段, 例如,解密數(shù)據(jù)Data'的長度為32bit,填充數(shù)據(jù)長度為6bit,去除解密數(shù)據(jù)Data'尾部 6bit的數(shù)據(jù)段,剩余^bit即為待分離的數(shù)據(jù)。如果填充數(shù)據(jù)添加在合并數(shù)據(jù)Data中的指定位置,則從解密數(shù)據(jù)Data'的指定位置開始去除與填充數(shù)據(jù)長度一致的數(shù)據(jù)段。如圖8所示,圖8為圖1所示數(shù)據(jù)加/解密校驗方法中校驗碼校驗步驟的流程圖。 步驟S60具體包括步驟S61,解密裝置對解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M';步驟S62,判斷驗證碼M'是否與校驗碼Mac相同;如果是,則執(zhí)行步驟S63 ;如果否,則執(zhí)行步驟S64;步驟S63,判定校驗成功,解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain相同;步驟S64,判定校驗失敗,解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain不同。本實施例采用較簡單的異或操作獲得驗證碼M',由于異或操作的處理時間快,避免了因采用加密變換獲得證碼M'而造成成倍增加計算開銷,有效提高了校驗碼生成效率。 同時,通過比較由解密端明文數(shù)據(jù)Plain'生成的驗證碼M'與由加密端明文數(shù)據(jù)Plain生成的校驗碼Mac是否一致,以判斷解密端明文數(shù)據(jù)Plain'是否與加密端明文數(shù)據(jù)Plain相同,可檢測加/解密數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,保證了數(shù)據(jù)的正確性。如圖9所示,圖9為圖8所示數(shù)據(jù)加/解密校驗方法中生成驗證碼步驟的流程圖。 步驟S61具體包括步驟S611,將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段P/,其中j = l、2........m;步驟S612,確定驗證碼 M' =P1' P2' ......SPm.!' θΡπ/,其中 @
為異或操作。本實施例對各分組后的數(shù)據(jù)段進行異或操作,如果解密端明文數(shù)據(jù) Plain'長度不為分組長度L的整數(shù)倍,此時解密端明文數(shù)據(jù)Plain'最尾部一段數(shù)據(jù),即第m個解密端明文數(shù)據(jù)段Pm'的長度則會小于分組長度L,那么在采用異或操作計算驗證碼M'時,在Pm'中補充0,使其長度為分組長度L,例如Pm' —(^1 ‘ j a2 ? ,‘ j ),Pm-I ‘ — (bi ‘,b2 ‘,b3 ‘,b4 ‘,b5 ‘,b6 ‘, b7 ‘,b8 ‘ ),Pm ‘比 Pnrl ‘少 3bit,在 Pm ‘尾部補充 0,令 Pm ‘ = (B1 ‘ , a2 ‘, B3 ‘ , B4 ‘ , B5 ‘ ,0,0,0),由于 y 0=y,故 PmY @Pm‘ = (ai' bi' , a2' Sb2' , a3' b/, a/ Sb4' , a5' bs' , W , b/, IV )。此外 0 還可以補充在 Pffl'中指定的位置。本實施例采用較簡單的異或操作獲得驗證碼M',有效提高校驗效率。如圖10所示,圖10為本發(fā)明另一實施例的數(shù)據(jù)加/解密校驗方法中解密裝置處理數(shù)據(jù)的示意圖。本實施例中,解密裝置采用較簡單的異或操作獲得驗證碼M',避免了因采用加密變換獲得證碼M'而造成成倍增加計算開銷,有效提高了校驗碼生成效率。同時,在解密時只需采用一次解密變換,即可完成對密文Cipher的解密,減少了解密變換次數(shù),避免成倍增加計算開銷,有效提高解密效率。如圖11所示,圖11為本發(fā)明一實施例中數(shù)據(jù)加/解密校驗系統(tǒng)的結(jié)構(gòu)示意圖, 該發(fā)明實施例提到的數(shù)據(jù)加/解密校驗系統(tǒng),包括加密裝置100和解密裝置200,加密裝置 100具體包括校驗碼生成模塊10,用于對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac。加密模塊20,用于合并加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù)Data, 加密合并數(shù)據(jù)Data,獲得密文Cipher,并輸出到解密端;解密裝置200具體包括解密模塊30,用于解密接收到的密文Cipher,獲得解密數(shù)據(jù)Data',從解密數(shù)據(jù) Data'中分離出解密端明文數(shù)據(jù)Plain'和校驗碼Mac ;校驗?zāi)K40,用于對校驗碼Mac進行校驗。本實施例中,加密裝置100設(shè)置于加密端,解密裝置200設(shè)置于解密端,當(dāng)本發(fā)明實施例應(yīng)用于網(wǎng)絡(luò)傳輸場合中時,加密端為數(shù)據(jù)發(fā)送方計算機PC,解密端為數(shù)據(jù)接收方 PC;當(dāng)本發(fā)明實施例應(yīng)用于文件存儲場合中時,加密端為文件寫入方PC,解密端為文件讀取方PC。本實施例在加密裝置100中進行加密過程時,加密端明文數(shù)據(jù)Plain為二進制碼流,校驗碼生成模塊10采用較簡單的異或操作獲得校驗碼Mac,校驗碼Mac也為二進制碼流,且獲得的校驗碼Mac同樣能夠檢測出數(shù)據(jù)的正確性與完整性,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,有效提高了校驗碼生成效率。由加密模塊20合并后的合并數(shù)據(jù)Data也為二進制碼流,合并時將校驗碼Mac串接在加密端明文數(shù)據(jù)Plain 后方,獲得合并數(shù)據(jù)Data,以便于解密后分離出校驗碼Mac,也可以采用其他方式合并,例如,將校驗碼Mac插入到加密端明文數(shù)據(jù)Plain中預(yù)設(shè)的指定位,解密時從指定位開始分離校驗碼Mac。因校驗碼Mac的生成是通過簡單的異或操作獲得,因此,加密模塊20在加密時只對由加密端明文數(shù)據(jù)Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù)Data進行一次加密變換處理, 即可獲得密文Cipher,達(dá)到保護數(shù)據(jù)私密性的目的,同時也減少了加密變換次數(shù),有效提高了數(shù)據(jù)加密及傳輸效率。本實施例在解密裝置200中進行解密過程時,解密模塊30只需對密文Cipher進行一次解密變換處理,即可完成解密操作,有效提高了數(shù)據(jù)解密效率。此外,由于解密后的解密數(shù)據(jù)Data'為二進制碼流,如果加密模塊20進行合并操作時,將校驗碼Mac串接在加密端明文數(shù)據(jù)Plain后方,則解密模塊30分離解密數(shù)據(jù)Data'時,從解密數(shù)據(jù)Data'的尾部獲取與校驗碼Mac長度相同的數(shù)據(jù)段,即為校驗碼Mac,其余部分即為解密端明文數(shù)據(jù) Plain';如果加密模塊20獲得合并數(shù)據(jù)Data時采用其他方式,例如,將校驗碼Mac插入到加密端明文數(shù)據(jù)Plain中預(yù)設(shè)的指定位,則解密時解密模塊30從指定位開始獲取與校驗碼 Mac長度相同的數(shù)據(jù)段,即為校驗碼Mac,其余部分即為解密端明文數(shù)據(jù)Plain'。校驗?zāi)K 40通過對校驗碼Mac的正確性進行校驗,可檢測加/解密數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,在確保數(shù)據(jù)的私密性同時,也保證了數(shù)據(jù)的正確性。
本發(fā)明實施例中,校驗碼生成模塊10具體用于將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段 Pj,其中 j = 1、2........m;確定校驗碼Mac =Pi十P2十P3十......θ Pm4 Pm,其中@為異或操作。校驗碼生成模塊10具體還用于當(dāng)?shù)趍個加密端明文數(shù)據(jù)段Pm的長度小于分組長度L時,在第m個加密端明文數(shù)據(jù)段Pm中補0,使其長度為分組長度L。本實施例中分組長度L為加密端和解密端預(yù)先協(xié)商好的參數(shù),分組后各加密端明文數(shù)據(jù)段Pj的長度為分組長度L,經(jīng)過異或操作獲得的校驗碼Mac的長度也為分組長度L。本實施例如果加密端明文數(shù)據(jù)Plain長度不為分組長度L的整數(shù)倍,此時加密端明文數(shù)據(jù)Plain最尾部一段數(shù)據(jù),即第m個加密端明文數(shù)據(jù)段Pm的長度則會小于分組長度L,那么在校驗碼生成模塊10采用異或操作計算校驗碼Mac時,在Pm中補充0, 使其長度為分組長度L,例如Pm= ( , a2, a3, a4, a5), Pm-i = (bj, b2, b3, b4, b5, b6, b7, b8),Pm 比 Pnrl 少 3砧扒在卩111 中補充 0,令卩 1 = (B1, a2,a3,a4,a5,0,0,0),由于y 0=y,故 Pm-I Pm= ( ai @ bi, a2 b2, a3 b3, a4 b4, a5 b5, b6, b7, b8)。此外 0 還可以補充在Pm'中指定的位置。本實施例采用較簡單的異或操作獲得校驗碼Mac,由于異或操作的處理時間快,且獲得的校驗碼Mac同樣能夠檢測出數(shù)據(jù)的正確性與完整性,避免了因采用加密變換獲得校驗碼Mac而造成成倍增加計算開銷,有效提高了校驗碼生成效率。本發(fā)明實施例中,加密模塊20具體用于將合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段Di,其中i =1、2、.......η ;定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV為長度為分組長度L的預(yù)設(shè)隨機數(shù);對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作;以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C1^進行加密,得到加密端密文數(shù)據(jù)SC1=Eiick (D1 @ C,ι),其中@為異或操作;將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成密文Cipher。本實施例中預(yù)設(shè)隨機數(shù)IV、密鑰K和分組密碼算法均為加密端和解密端預(yù)先協(xié)商好的參數(shù),由于本實施例中各數(shù)據(jù)段均以分組長度L作為單位長度,且各數(shù)據(jù)段均為二進制碼流,為便于計算,預(yù)設(shè)隨機數(shù)IV也規(guī)定為二進制碼流,其長度也為分
組長度L。本實施例中各加密端分組數(shù)據(jù)段D” &........化和初始加密端密文數(shù)據(jù)
段Ctl為已知,由加密模塊20加密后,獲得各加密端密文數(shù)據(jù)段C1=Eiick ( D1 Co )、
C2=EncK ( D2 Ci )........ Cn=EncK( Dn Cn.i )。由于本實施例中的校驗碼Mac是
通過簡單的異或操作獲得的,因此在加密時只需采用一次加密變換,對由加密端明文數(shù)據(jù) Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù)Data進行加密,即可達(dá)到保護數(shù)據(jù)私密性的目的,減少了加密變換次數(shù),避免成倍增加計算開銷,有效提高加密效率。此外,如果加密端明文數(shù)據(jù) Plain長度不為分組長度L的整數(shù)倍,則由加密端明文數(shù)據(jù)Plain和校驗碼Mac構(gòu)成的合并數(shù)據(jù)Data的長度也不為分組長度L的整數(shù)倍。為方便計算,加密模塊20在加密時需填充合并數(shù)據(jù)Data,例如,分組長度L為8bit,合并數(shù)據(jù)Data的長度為^bit,則應(yīng)增加6bit或(6+8x)bit的填充數(shù)據(jù),使其長度為Sbit的整數(shù)倍,其中χ為正整數(shù)。填充數(shù)據(jù)可以添加在合并數(shù)據(jù)Data的后方,也可添加在合并數(shù)據(jù)Data中指定位置。本發(fā)明實施例中,解密模塊30具體用于
將密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段Ci',其中i =1、2、.......η ;定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為分組長度L的預(yù)設(shè)隨機數(shù);以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對解密端密文數(shù)據(jù)段 Ci'進行解密,獲得解密數(shù)據(jù)段DecK(C/ );對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段C^1 ‘進行異或操作,獲得解密端分組數(shù)據(jù)段D/ =DecK(CV) Q.i';將各解密端分組數(shù)據(jù)段D1' ,D2'、!V ........Dn'依次串接,構(gòu)成解密數(shù)據(jù)
Datar ο本實施例中,解密端的分組長度L、預(yù)設(shè)隨機數(shù)IV、密鑰K和分組密碼算法與上述加密端的分組長度L、預(yù)設(shè)隨機數(shù)IV、密鑰K和分組密碼算法一致,均為加密端和解密端預(yù)先協(xié)商好的參數(shù)。本實施例中各解密端密文數(shù)據(jù)
段C1' ,C2' ,C3' ........Cn'和初始解密端密文數(shù)據(jù)段C/為已知,由解密
模塊30解密后,獲得各解密端分組數(shù)據(jù)段D1' = DecK (Cl' ) CV、D2'
= DecJK(CV) Cl'........ Dn' = DecK ( Cn' ) CnY。本實施例解密時只需
采用一次解密變換,即可完成對密文Cipher的解密,減少了解密變換次數(shù),避免成倍增加計算開銷,有效提高解密效率。此外,如果加密時在合并數(shù)據(jù)Data中添加了填充數(shù)據(jù),則在解密時,解密模塊30需要去除填充數(shù)據(jù),以確保從解密數(shù)據(jù)Data'中分理出的數(shù)據(jù)正確。 如果填充數(shù)據(jù)添加在合并數(shù)據(jù)Data的后方,則在解密時解密模塊30去除解密數(shù)據(jù)Data' 的尾部與填充數(shù)據(jù)長度一致的數(shù)據(jù)段,例如,解密數(shù)據(jù)Data'的長度為32bit,填充數(shù)據(jù)長度為6bit,去除解密數(shù)據(jù)Data'尾部6bit的數(shù)據(jù)段,剩余^bit即為待分離的數(shù)據(jù);如果填充數(shù)據(jù)添加在合并數(shù)據(jù)Data中的指定位置,則解密模塊30從解密數(shù)據(jù)Data'的指定位置開始去除與填充數(shù)據(jù)長度一致的數(shù)據(jù)段。如圖12所示,圖12為本發(fā)明一實施例的數(shù)據(jù)加/解密校驗系統(tǒng)中校驗?zāi)K的結(jié)構(gòu)示意圖,校驗?zāi)K40具體包括驗證碼生成子模塊41,用于對解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M';校驗判斷子模塊42,用于判斷驗證碼M'是否與校驗碼Mac相同;如果是,則判定校驗成功,解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain相同;如果否,則判定校驗失敗,解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain不同。本實施例中,驗證碼生成子模塊41采用較簡單的異或操作獲得驗證碼M',由于異或操作的處理時間快,避免了因采用加密變換獲得證碼M'而造成成倍增加計算開銷,有效提高了校驗碼生成效率。同時,通過校驗判斷子模塊42比較由解密端明文數(shù)據(jù)Plain' 生成的驗證碼M'與由加密端明文數(shù)據(jù)Plain生成的校驗碼Mac是否一致,以判斷解密端明文數(shù)據(jù)Plain'是否與加密 端明文數(shù)據(jù)Plain相同,可檢測加/解密數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,保證了數(shù)據(jù)的正確性。本發(fā)明實施例中,驗證碼生成子模塊41具體用于將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段 Pj',其中 j = 1、2........m;確定驗證碼M' =P1' P2' P3' ...... θΡη,.ι' Ρπ/,其中 @為異或操作。 驗證碼生成子模塊41具體還用于當(dāng)?shù)趍個解密端明文數(shù)據(jù)段P/的長度小于分組長度L時,在第m個解密端明文數(shù)據(jù)段P/中補0,使其長度為分組長度L。本實施例中,如果解密端明文數(shù)據(jù)Plain'長度不為分組長度L的整數(shù)倍,此時解密端明文數(shù)據(jù)Plain'最尾部一段數(shù)據(jù),即第m個解密端明文數(shù)據(jù)段 Pffl'的長度則會小于分組長度L,那么驗證碼生成子模塊41在采用異或操作計算驗證碼M'時,在Pm'中補充0,使其長度為分組長度L,例如Pm' = (B1 ‘ , a2',
a3 ,9 3-5 ),^m-I —
Od1 ‘ , b2 ‘ , b3 ‘ , b4 ‘ , b5 ‘ , b6 ‘,b/ , b8 ‘ ), Pm ‘ 比 Pnri ‘少 3bit,在 Pm'尾部補充 0,令 P/ = (B1 ‘ , a2 ‘ , a3 ‘ , a4 ‘ , a5 ‘ ,0,0, 0),由于 y 0=y,故 PmY @Pm' = (ai' bi' , a2', a/ b3',
a/ b/ , a5' Sb5' , be' , b/, b8')。此外0還可以補充在Pm'中指定的位置。本實施例采用較簡單的異或操作獲得驗證碼M',有效提高校驗效率。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)加/解密校驗方法,其特征在于,包括步驟加密裝置對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac,合并所述加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù)Data,加密所述合并數(shù)據(jù)Data,獲得密文Cipher,并輸出到解密端;解密裝置解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data ‘,從所述解密數(shù)據(jù) Data'中分離出解密端明文數(shù)據(jù)Plain'和所述校驗碼Mac,并對所述校驗碼Mac進行校驗。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述加密裝置對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼Mac具體包括將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段Pp其中 j = 1、2、......、m;確定所述校驗碼Mac=P1 θ P2 P3 ...... Pm4 Pm,其中@為異或操作。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述確定校驗碼 Mac=Pi P2 P3 ...... Pm-I Pm之前還包括當(dāng)?shù)趍個加密端明文數(shù)據(jù)段Pm的長度小于所述分組長度L時,在所述第m個加密端明文數(shù)據(jù)段Pm中補0,使其長度為所述分組長度L。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述對校驗碼Mac進行校驗具體包括解密裝置對所述解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M'; 判斷所述驗證碼M'是否與所述校驗碼Mac相同;如果是,則判定校驗成功,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain相同;如果否,則判定校驗失敗,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain不同。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述解密裝置對解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M'具體包括將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段Pj',其中 j = 1、2........m;確定所述驗證碼M' =P1' P2' P3' ......SPm./ Ρπ/,其中@為異或操作。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述確定所述驗證碼 M' =P1' Ρ2' Ρ3' ......SPm.!' Pn/之前還包括當(dāng)?shù)趍個解密端明文數(shù)據(jù)段P/的長度小于所述分組長度L時,在所述第m個解密端明文數(shù)據(jù)段P/中補0,使其長度為所述分組長度L。
7.根據(jù)權(quán)利要求1至6任一項所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述加密合并數(shù)據(jù)Data,獲得密文Cipher具體包括將所述合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段Di,其中i =1、2、.......η ;定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作; 以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C^1進行加密,得到加密端密文數(shù)據(jù)段C1=Eiick (D1 @ C,ι),其中@為異或操作;將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成所述密文Cipher。
8.根據(jù)權(quán)利要求1至6任一項所述的數(shù)據(jù)加/解密校驗方法,其特征在于,所述解密裝置解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data'具體包括將所述密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段Ci',其中i =1、2、.......η ;定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對所述解密端密文數(shù)據(jù)段 Ci'進行解密,獲得解密數(shù)據(jù)段DecK(C/ );對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段C^1 ‘進行異或操作,獲得解密端分組數(shù)據(jù)段D/ =Dec^K(CV) Q.i';將各解密端分組數(shù)據(jù)段D1'、!V、!V ........Dn'依次串接,構(gòu)成所述解密數(shù)據(jù)Datar ο
9.一種數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,包括加密裝置和解密裝置,所述加密裝置具體包括校驗碼生成模塊,用于對加密端明文數(shù)據(jù)Plain中各數(shù)據(jù)段進行異或操作,獲得校驗碼 Mac ;加密模塊,用于合并所述加密端明文數(shù)據(jù)Plain和校驗碼Mac,獲得合并數(shù)據(jù)Data,加密所述合并數(shù)據(jù)Data,獲得密文Cipher,并輸出到解密端; 所述解密裝置具體包括解密模塊,用于解密接收到的所述密文Cipher,獲得解密數(shù)據(jù)Data',從所述解密數(shù)據(jù)Data'中分離出解密端明文數(shù)據(jù)Plain'和所述校驗碼Mac ; 校驗?zāi)K,用于對所述校驗碼Mac進行校驗。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述校驗碼生成模塊具體用于將加密端明文數(shù)據(jù)Plain按照預(yù)設(shè)的分組長度L劃分為多個加密端明文數(shù)據(jù)段Pp其中 j = 1、2、......、m;確定所述校驗碼Mac=P1 θ P2 P3 ...... Pm4 Pm,其中@為異或操作。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述校驗碼生成模塊具體還用于當(dāng)?shù)趍個加密端明文數(shù)據(jù)段Pm的長度小于所述分組長度L時,在所述第m個加密端明文數(shù)據(jù)段Pm中補0,使其長度為所述分組長度L。
12.根據(jù)權(quán)利要求9所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述校驗?zāi)K具體包括驗證碼生成子模塊,用于對所述解密端明文數(shù)據(jù)Plain'中各數(shù)據(jù)段進行異或操作,確定驗證碼M';校驗判斷子模塊,用于判斷所述驗證碼M'是否與所述校驗碼Mac相同;如果是,則判定校驗成功,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain相同;如果否,則判定校驗失敗,所述解密端明文數(shù)據(jù)Plain'與加密端明文數(shù)據(jù)Plain不同。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述驗證碼生成子模塊具體用于將解密端明文數(shù)據(jù)Plain'按照預(yù)設(shè)的分組長度L劃分為多個解密端明文數(shù)據(jù)段Pj',其中 j = 1、2........m;確定所述驗證碼M' =P1' P2' P3' ......SPm./ Ρπ/,其中@為異或操作。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述驗證碼生成子模塊具體還用于當(dāng)?shù)趍個解密端明文數(shù)據(jù)段P/的長度小于所述分組長度L時,在所述第m個解密端明文數(shù)據(jù)段P/中補0,使其長度為所述分組長度L。
15.根據(jù)權(quán)利要求9至14任一項所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述加密模塊具體用于將所述合并數(shù)據(jù)Data按照預(yù)設(shè)的分組長度L劃分為多個加密端分組數(shù)據(jù)段Di,其中i =1、2、.......η ;定義加密端密文數(shù)據(jù)段Ci,令初始加密端密文數(shù)據(jù)段Ctl = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);對當(dāng)前加密端分組數(shù)據(jù)段Di與前一加密端密文數(shù)據(jù)段C^1進行異或操作; 以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法對D1 C^1進行加密,得到加密端密文數(shù)據(jù)段C1=Eiick (D1 @ C,ι),其中@為異或操作;將各加密端密文數(shù)據(jù)段Q、C2........Cn依次串接,構(gòu)成所述密文Cipher。
16.根據(jù)權(quán)利要求9至14任一項所述的數(shù)據(jù)加/解密校驗系統(tǒng),其特征在于,所述解密模塊具體用于將所述密文Cipher按照預(yù)設(shè)的分組長度L劃分為多個解密端密文數(shù)據(jù)段Ci',其中i =1、2、.......η ;定義初始解密端密文數(shù)據(jù)段Cc/ = IV,其中,IV為長度為所述分組長度L的預(yù)設(shè)隨機數(shù);以預(yù)設(shè)的密鑰K作為密鑰,按照預(yù)設(shè)的分組密碼算法分別對所述解密端密文數(shù)據(jù)段 Ci'進行解密,獲得解密數(shù)據(jù)段DecK(C/ );對當(dāng)前解密數(shù)據(jù)段DecK((V )與前一解密端密文數(shù)據(jù)段C^1 ‘進行異或操作,獲得解密端分組數(shù)據(jù)段D/ =Dec^K(CV) Q.i';將各解密端分組數(shù)據(jù)段D1'、!V、!V ........Dn'依次串接,構(gòu)成所述解密數(shù)據(jù)Datar ο
全文摘要
本發(fā)明公開了一種數(shù)據(jù)加/解密校驗方法及其系統(tǒng),其方法包括步驟加密裝置對加密端明文數(shù)據(jù)中各數(shù)據(jù)段進行異或操作,獲得校驗碼,合并加密端明文數(shù)據(jù)和校驗碼,獲得合并數(shù)據(jù),加密合并數(shù)據(jù),獲得密文,并輸出到解密端;解密裝置解密接收到的密文,獲得解密數(shù)據(jù),從解密數(shù)據(jù)中分離出解密端明文數(shù)據(jù)和校驗碼,并對校驗碼進行校驗。本發(fā)明通過簡單的異或操作生成校驗碼,僅采用一次加密變換即完成數(shù)據(jù)加密,減少了加密變換次數(shù),避免成倍增加計算開銷,有效提高加/解密效率;通過對校驗碼的正確性校驗,可檢測數(shù)據(jù)在加密或解密、傳輸或存儲過程中是否出現(xiàn)錯誤或是否被惡意篡改,在確保數(shù)據(jù)的私密性同時,也保證了數(shù)據(jù)的正確性。
文檔編號H04L9/06GK102437910SQ20111031682
公開日2012年5月2日 申請日期2011年10月18日 優(yōu)先權(quán)日2011年10月18日
發(fā)明者徐澤明, 陳開渠 申請人:國家超級計算深圳中心(深圳云計算中心)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屯昌县| 丰顺县| 修水县| 怀仁县| 文登市| 中江县| 麦盖提县| 隆尧县| 苏尼特左旗| 天门市| 广州市| 黔江区| 天全县| 南岸区| 中方县| 开平市| 宣恩县| 平阳县| 延吉市| 普宁市| 赤壁市| 仙游县| 榆社县| 江川县| 商城县| 闸北区| 女性| 德钦县| 寿光市| 新河县| 夹江县| 通河县| 丰城市| 祁连县| 通化市| 澄江县| 固原市| 商河县| 元谋县| 平顺县| 林州市|