亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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


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