專利名稱:一種支持非對齊數(shù)據(jù)的對稱加解密方法及其系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡安全技術領域,尤其涉及一種支持非對齊數(shù)據(jù)的對稱加解密方法及其系統(tǒng)。
背景技術:
對稱加密算法是應用較早的加密算法,技術成熟。對稱加密算法中,數(shù)據(jù)發(fā)信方將明文和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復雜的加密密文發(fā)送出去。收信方收到密文后,若想解密原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,加/解密密鑰是相同的。對稱加密算法中常用分組算法,典型的分組長度為64位,這個長度大到足以防止分析破譯,但又小到足以方便使用。傳統(tǒng)的對稱加密算法在加解密時,支持對8字節(jié)整數(shù)倍數(shù)據(jù)加解密。對稱加密算法采用分組算法時,要求明文數(shù)據(jù)必須是8字節(jié)的整數(shù)倍,如果明文數(shù)據(jù)不足8字節(jié)整數(shù)倍,系統(tǒng)填充多余的數(shù)據(jù)至8字節(jié)整數(shù)倍,然后再進行加密運算,產(chǎn)生密文數(shù)據(jù)輸出。對稱加密算法對非8字節(jié)整數(shù)倍明文數(shù)據(jù),填充多余的數(shù)據(jù)直至達到8字節(jié)整數(shù)倍,明文數(shù)據(jù)中包含有多余的沒有意義的數(shù)據(jù),填充字節(jié)用的無意義數(shù)據(jù),增加了數(shù)據(jù)傳輸?shù)呢摀?,對于存儲空間有限的系統(tǒng),侵占了有意義數(shù)據(jù)的存儲空間,減少了有效 目息的存儲量。對于發(fā)送帶寬有限的系統(tǒng),無效信息增加了系統(tǒng)的帶寬占用量。
發(fā)明內容
本發(fā)明的目的在于提出一種支持非對齊數(shù)據(jù)的對稱加解密方法及其系統(tǒng),能夠避免加密時填充無意義的字節(jié)。為達此目的,本發(fā)明采用以下技術方案一種支持非對齊數(shù)據(jù)的對稱加密方法,包括S1、加密前對數(shù)據(jù)按照預設長度進行分組;S2、判斷最后一個分組的長度與所述預設長度是否相等,若是,則將所有的分組按照對稱加密算法直接加密,否則順序執(zhí)行步驟S3、S4 ;S3、除最后一個分組外,對各分組數(shù)據(jù)按照對稱加密算法進行加密;S4、取倒數(shù)第二個分組的密文的末尾的長度等于預設長度減最后一個分組的長度的內容,后接上最后一個分組明文一起按照對稱加密算法加密獲取新密文,將該新密文的末尾長度等于最后一個分組的長度的內容作為最后一個分組的密文,用該新密文的首部的長度等于預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的末尾的長度等于預設長度減最后一個分組的長度的內容。進一步地,所述預設長度為8字節(jié)。進一步地,所述對稱加密算法為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或AES-256加密算法。對應地,本發(fā)明提出了一種支持非對齊數(shù)據(jù)的對稱解密方法,包括S1、對密文數(shù)據(jù)接照加密時的預設長度進行分組;S2、判斷最后一個分組的長度與所述加密時的預設長度是否相等,若是,則將所有分組的密文按照加密算法對應的解密算法進行對稱解密,否則,順序執(zhí)行步驟S3、S4 ;S3、從原始密文數(shù)據(jù)末尾取出長度等于加密時的預設長度的數(shù)據(jù),將所述密文按照加密算法對應的解密算法進行對稱解密獲取明文,該明文末尾的長度等于最后一個分組的長度的內容即為最后一個分組的解密內容,用該明文的首部長度等于加密時的預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的尾部的長度等于加密時的預設長度減最后一個分組的長度的內容;
S4、除最后一個分組外,對各分組密文按照加密算法對應的解密算法進行對稱解
r I I O根據(jù)本發(fā)明的同一構思,本發(fā)明還提出了一種支持非對齊數(shù)據(jù)的對稱加密系統(tǒng),包括分組模塊,用于加密前對數(shù)據(jù)按照預設長度進行分組,當最后一個分組的長度與所述預設長度相等時,調用對齊數(shù)據(jù)加密模塊,否則調用非對齊數(shù)據(jù)加密模塊;對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度與預設長度相等時,對數(shù)據(jù)按照對稱加密算法進行加密;非對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度與預設長度不相等時,除最后一個分組外,對各分組數(shù)據(jù)按照對稱加密算法進行加密,取倒數(shù)第二個分組的密文的末尾的長度等于預設長度減最后一個分組的長度的內容,后接上最后一個分組明文一起按照對稱加密算法加密獲取新密文,將該新密文的末尾長度等于最后一個分組的長度的內容作為最后一個分組的密文,用該新密文的首部的長度等于預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的末尾的長度等于預設長度減最后一個分組的長度的內容。進一步地,所述預設長度為8字節(jié)。進一步地,所述對稱加密算法為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或AES-256加密算法。對應地,本發(fā)明還提出了一種支持非對齊數(shù)據(jù)的對稱解密系統(tǒng),包括分組模塊,對密文數(shù)據(jù)接照加密時的預設長度進行分組,當最后一個分組的長度與所述預設長度相等時,調用對齊數(shù)據(jù)解密模塊,否則調用非對齊數(shù)據(jù)解密模塊;對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度與所述預設長度相等時,將所有分組的密文按照加密算法對應的解密算法進行對稱解密;非對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度與所述預設長度不相等時,用于從原始密文數(shù)據(jù)末尾取出長度等于加密時的預設長度的數(shù)據(jù),將所述密文按照加密算法對應的解密算法進行對稱解密獲取明文,該明文末尾的長度等于最后一個分組的長度的內容即為最后一個分組的解密內容,用該明文的首部長度等于加密時的預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的尾部的長度等于加密時的預設長度減最后一個分組的長度的內容,除最后一個分組外,對各分組密文按照加密算法對應的解密算法進行對稱解密。
本發(fā)明支持非對齊數(shù)據(jù)的對稱加密,避免了填充無意義的字節(jié)數(shù),能減輕數(shù)據(jù)傳輸負擔,能減少數(shù)據(jù)的存儲空間,能降低對網(wǎng)絡帶寬的占用。
圖1是本發(fā)明實施例一所述的支持非對齊數(shù)據(jù)的對稱加密方法流程圖;圖2(a)是本發(fā)明所述的加密示意圖;圖2(b)是本發(fā)明所述的解密示意圖;圖3是本發(fā)明實施例一所述的支持非對齊數(shù)據(jù)的對稱解密方法流程圖;圖4是本發(fā)明實施例二所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng)結構框圖; 圖5是本發(fā)明實施例二所述的支持非對齊數(shù)據(jù)的對稱解密系統(tǒng)結構框圖。
具體實施例方式下面結合附圖并通過具體實施方式
來進一步說明本發(fā)明的技術方案。實施例一圖1是本發(fā)明實施例一所述的支持非對齊數(shù)據(jù)的對稱加密方法流程圖,如圖1所示,本實施例所述的支持非對齊數(shù)據(jù)的對稱加密方法包括S101、對數(shù)據(jù)按照預設長度L進行分組;所述預設長度L優(yōu)選為8字節(jié),這個長度大到足以防止分析破譯,但又小到足以方
便使用。圖2(a)是本發(fā)明所述的加密示意圖,如圖2 (a)所示,例如,非對齊數(shù)據(jù)加密前,先按照規(guī)則分組,每8字節(jié)為一組,劃分為BlockO,Blockl,…,Blockn,最后一組數(shù)據(jù)為PR。S102、判斷最后一個分組的長度S與所述預設長度L是否相等,若是則執(zhí)行步驟S103,否則執(zhí)行步驟S104 ;例如,最后一組數(shù)據(jù)為PR,長度為Len=n。若最后一組數(shù)據(jù)PR長度n=所述預設長度L,則執(zhí)行步驟S103,否則執(zhí)行步驟S104。S103、將所有的分組按照對稱加密算法直接加密,結束;例如,若最后一組數(shù)據(jù)PR長度n=所述預設長度8,則將所有的分組按照對稱加密算法直接加密,數(shù)據(jù)BlockO加密后變成一CBlockO,數(shù)據(jù)Blockl加密后變成一CBlockl,數(shù)據(jù)Blockn加密后變成一CBlockn,數(shù)據(jù)PR加密后變成一CBlockPR0本發(fā)明的數(shù)據(jù)加密,對整個加密文件來說,是支持非對齊數(shù)據(jù)的對稱加密,但是對具體分組的加密方法與對齊數(shù)據(jù)加密方法相同,加密算法可為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或AES-256加密算法。S104、對除最后一個分組外的各分組數(shù)據(jù)按照對稱加密算法進行加密;例如,若最后一組數(shù)據(jù)PR長度n〈所述預設長度8,則先對除最后一個分組外的各分組數(shù)據(jù)按照對稱加密算法進行加密,數(shù)據(jù)BlockO加密后變成一CBlockO,數(shù)據(jù)Blockl加密后變成一CBlockl,數(shù)據(jù)Blockn加密后變成一CBlockn。S105、重構一個分組內容,按照對稱加密算法進行加密,提取最后一個分組的密文,修改倒數(shù)第二個分組的密文,結束。例如,若最后一組數(shù)據(jù)PR長度n〈所述預設長度8,則最后一組數(shù)PR的加密過程比較特殊,數(shù)據(jù)PR不足8字節(jié),假定長度Len=n,數(shù)據(jù)PR需要補充到8字節(jié)后才能加密。數(shù)據(jù)PR補充數(shù)據(jù)的來源是已經(jīng)加密的數(shù)據(jù)塊CBlockn,假定提取m字節(jié)數(shù)據(jù),m=8_n,需要從CBlockn數(shù)據(jù)塊中提取m字節(jié)數(shù)據(jù)。提取規(guī)則為從CBlockn數(shù)據(jù)塊尾部提取m字節(jié)數(shù)據(jù),補充到PR數(shù)據(jù)塊的前面,合成長度Len=m+n的數(shù)據(jù)Block(pr)。Block(pr)數(shù)據(jù)塊的組成為=CBlockn的后m字節(jié)數(shù)據(jù)+PR的n字節(jié)數(shù)據(jù)加密后數(shù)據(jù)存儲規(guī)則Block (pr)數(shù)據(jù)塊加密后生成CBlock (pr)數(shù)據(jù)塊。Block (pr) — CBlock (pr)。CBlock (pr)數(shù)據(jù)塊的前m字節(jié)再返回給CBlockn數(shù)據(jù),作為CBlockn數(shù)據(jù)塊的后m字節(jié),CBlock (pr)數(shù)據(jù)塊加密后只保存后n字節(jié)數(shù)據(jù)。至此,完成了對所有分組數(shù)據(jù)的加密??梢姡魑臄?shù)據(jù)和加密后的密文數(shù)據(jù)長度一樣。加密后的數(shù)據(jù)為CBlockO, CBlockl,…CBlockn, CBlock(pr)后n字節(jié)數(shù)據(jù)。對應地,本實施例所述的支持非對齊數(shù)據(jù)的對稱加密方法,對應的解密方法,如圖3所示,包括 S301、對密文數(shù)據(jù)按照加密時的預設長度L進行分組;圖2(b)是本發(fā)明所述的解密示意圖,如圖2(b)所示,例如,加密時的預設長度L為8字節(jié),解密過程密文數(shù)據(jù)按8字節(jié)分組,劃分為CBlockO,CBlockl, CBlockn,CBlock(pr)。解密從最后一個數(shù)據(jù)塊CBlock(pr)數(shù)據(jù)塊開始,CBlock(pr)解密后獲取明文數(shù)據(jù)Block (pr),Block (pr)數(shù)據(jù)塊的數(shù)據(jù)需要經(jīng)過變換處理。S302、判斷最后一個分組的長度S與加密時預設長度L是否相等,若是則執(zhí)行步驟S303,否則執(zhí)行步驟S304 ;例如,若最后一個分組CBlock (pr)長度為n,如果n=加密時預設長度8,則執(zhí)行步驟S303,否則執(zhí)行步驟S304。S303、將所有分組的密文按照加密算法對應的解密算法進行對稱解密,結束;例如,如果最后一個分組CBlock (pr)長度n=加密時預設長度8,則將所有分組的密文按照對齊數(shù)據(jù)解密算法進行對稱解密。 S304、從原始密文尾部取出長度為L的數(shù)據(jù),解密該數(shù)據(jù)獲取明文R,從R截取最后一個分組的原始明文,修改倒數(shù)第二個分組;例如,如果最后一個分組CBlock(pr)長度n〈加密時預設長度8,則進行如下操作從原始密文尾部取出長度為8的數(shù)據(jù)作為最后一個分組Block(pr)的密文,SPBlock (pr)的前m字節(jié)作為當前CBlockn的后m字節(jié),CBlockn的前面字節(jié)保持不變,可見,Block (pr)數(shù)據(jù)塊的前m字節(jié)是從CBlockn數(shù)據(jù)塊借用的,CBlockn數(shù)據(jù)塊需要重新變換后才能參與解密,變換的過程就是解密數(shù)據(jù)CBlockn獲取明文R,從R截取后n字節(jié)數(shù)據(jù)就是明文PR數(shù)據(jù)塊,用明文R截取后剩下的內容,即R前面的8-n個字節(jié)內容,用該內容替換倒數(shù)第二個分組密文的最后的8-n個字節(jié)內容。S305、對除最后一個分組的其他分組的密文按照加密算法對應的解密算法進行對稱解密,結束。最后,對除最后一個分組外,對各分組密文按照對齊數(shù)據(jù)解密算法進行對稱解密。至此,完成了對所有分組數(shù)據(jù)的解密。
實施例二根據(jù)本發(fā)明的同一構思,本發(fā)明還提供了一種支持非對齊數(shù)據(jù)的對稱加密系統(tǒng)和解密系統(tǒng),圖4是本發(fā)明實施例二所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng)結構框圖,如圖4所示,本實施例所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng)包括分組模塊用于加密前對數(shù)據(jù)按照預設長度L進行分組,當最后一個分組的長度S與所述預設長度L相等時,調用對齊數(shù)據(jù)加密模塊,否則調用非對齊數(shù)據(jù)加密模塊;所述預設長度L優(yōu)選為8字節(jié),這個長度大到足以防止分析破譯,但又小到足以方便使用。圖2(a)是本發(fā)明所述的加密示意圖,如圖2 (a)所示,例如,非對齊數(shù)據(jù)加密前,先按照規(guī)則分組,每8字節(jié)為一組,劃分為BlockO,Blockl,…,Blockn,最后一組數(shù)據(jù)為PR。若最后一組數(shù)據(jù)PR長度n=所述預設長度L,調用對齊數(shù)據(jù)加密模塊,否則調用非對齊數(shù)據(jù)加密模塊。對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度S與預設長度L相等時,對數(shù)據(jù)按照對稱加密算法進行加密;例如,若最后一組數(shù)據(jù)PR長度n=所述預設長度8,則將所有的分組按照對稱加密算法直接加密,數(shù)據(jù)BlockO加密后變成一CBlockO,數(shù)據(jù)Blockl加密后變成一CBlockl,數(shù)據(jù)Blockn加密后變成一CBlockn,數(shù)據(jù)PR加密后變成一CBlockPR0本發(fā)明的數(shù)據(jù)加密,對整個加密文件來說,是支持非對齊數(shù)據(jù)的對稱加密,但是對具體分組的加密方法與對齊數(shù)據(jù)加密方法相同,加密算法可為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或AES-256加密算法。非對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度S與預設長度L不相等時,除最后一個分組外,對各分組數(shù)據(jù)按照對稱加密算法進行加密,取倒數(shù)第二個分組的密文的最后的L-S個字節(jié),后接上最后一個分組明文一起按照對稱加密算法加密獲取新密文T,將該新密文T的后S個字節(jié)作為最后一個分組的密文,用該新密文T的前L-S字節(jié)內容替換倒數(shù)第二個分組密文的最后的L-S個字節(jié)內容。 例如,若最后一組數(shù)據(jù)PR長度n〈所述預設長度8,則先對除最后一個分組外的各分組數(shù)據(jù)按照對稱加密算法進行加密,數(shù)據(jù)BlockO加密后變成一CBlockO,數(shù)據(jù)Blockl加密后變成一CBlockl,數(shù)據(jù)BI ockn加密后變成一CBlockn。對最后一組數(shù)PR的加密過程比較特殊,數(shù)據(jù)PR不足8字節(jié),假定長度Len=n,數(shù)據(jù)PR需要補充到8字節(jié)后才能加密。數(shù)據(jù)PR補充數(shù)據(jù)的來源是已經(jīng)加密的數(shù)據(jù)塊CBlockn,假定提取m字節(jié)數(shù)據(jù),m=8-n,需要從CBlockn數(shù)據(jù)塊中提取m字節(jié)數(shù)據(jù)。提取規(guī)則為從CBlockn數(shù)據(jù)塊尾部提取m字節(jié)數(shù)據(jù),補充到PR數(shù)據(jù)塊的前面,合成長度Len=m+n的數(shù)據(jù)Block (pr)。Block (pr)數(shù)據(jù)塊的組成為CBlockn的后m字節(jié)數(shù)據(jù)+PR的n字節(jié)數(shù)據(jù)加密后數(shù)據(jù)存儲規(guī)則Block (pr)數(shù)據(jù)塊加密后生成CBlock (pr)數(shù)據(jù)塊。Block (pr) — CBlock (pr)。CBlock (pr)數(shù)據(jù)塊的前m字節(jié)再返回給CBlockn數(shù)據(jù),作為CBlockn數(shù)據(jù)塊的后m字節(jié),CBlock (pr)數(shù)據(jù)塊加密后只保存后n字節(jié)數(shù)據(jù)。至此,完成了對所有分組數(shù)據(jù)的加密??梢?,明文數(shù)據(jù)和加密后的密文數(shù)據(jù)長度一樣。加密后的數(shù)據(jù)為CBlockO, CBlockl,…CBlockn, CBlock(pr)后n字節(jié)數(shù)據(jù)。對應地,本實施例所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng),對應的解密系統(tǒng),如圖5所示,包括分組模塊,對密文數(shù)據(jù)接照加密時的預設長度L進行分組,當最后一個分組的長度S與所述預設長度L相等時,調用對齊數(shù)據(jù)解密模塊,否則調用非對齊數(shù)據(jù)解密模塊;圖2(b)是本發(fā)明所述的解密示意圖,如圖2(b)所示,例如,加密時的預設長度L為8字節(jié),解密過程密文數(shù)據(jù)按8字節(jié)分組,劃分為CBlockO,CBlockl, CBlockn,CBlock(pr)。解密從最后一個數(shù)據(jù)塊CBlock(pr)數(shù)據(jù)塊開始,CBlock(pr)解密后獲取明文數(shù)據(jù)Block (pr),Block (pr)數(shù)據(jù)塊的數(shù)據(jù)需要經(jīng)過變換處理。若最后一個分組CBlock (pr)長度為n,如果n=加密時預設長度8,則調用對齊數(shù)據(jù)解密模塊,否則調用非對齊數(shù)據(jù)解密模塊。 對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度S與預設長度L相等時,將所有分組的密文按照對齊數(shù)據(jù)解密算法進行對稱解密;例如,如果最后一個分組CBlock (pr)長度n=加密時預設長度8,則將所有分組的密文按照對齊數(shù)據(jù)解密算法進行對稱解密。非對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度S與預設長度L不相等時,用于從原始密文數(shù)據(jù)尾部取出長度為預設長度L的數(shù)據(jù),將所述密文按照對齊數(shù)據(jù)解密算法進行對稱解密獲取明文R,該明文R的后S個字節(jié)即為最后一個分組的明文,用該明文R的前L-S字節(jié)內容替換倒數(shù)第二個分組密文的最后的L-S個字節(jié)內容,除最后一個分組外,對各分組密文按照對齊數(shù)據(jù)解密算法進行對稱解密。例如,如果最后一個分組CBlock(pr)長度n〈加密時預設長度8,則進行如下操作從原始密文尾部取出長度為8的數(shù)據(jù)作為最后一個分組Block(pr)的密文,SPBlock (pr)的前m字節(jié)作為當前CBlockn的后m字節(jié),CBlockn的前面字節(jié)保持不變,可見,Block (pr)數(shù)據(jù)塊的前m字節(jié)是從CBlockn數(shù)據(jù)塊借用的,CBlockn數(shù)據(jù)塊需要重新變換后才能參與解密,變換的過程就是解密數(shù)據(jù)CBlockn獲取明文R,從R截取后n字節(jié)數(shù)據(jù)就是明文PR數(shù)據(jù)塊,用明文R截取后剩下的內容,即R前面的8-n個字節(jié)內容,用該內容替換倒數(shù)第二個分組密文的最后的8-n個字節(jié)內容。最后,對除最后一個分組外,對各分組密文按照對齊數(shù)據(jù)解密算法進行對稱解密。至此,完成了對所有分組數(shù)據(jù)的解密。本發(fā)明所述的技術方案支持非對齊數(shù)據(jù)的對稱加解密,避免了填充無意義的字節(jié)數(shù),能減輕數(shù)據(jù)傳輸負擔,能減少數(shù)據(jù)的存儲空間,能降低對網(wǎng)絡帶寬的占用。以上實施例提供的技術方案中的全部或部分內容可以通過軟件編程實現(xiàn),其軟件程序存儲在可讀取的存儲介質中,存儲介質例如計算機中的硬盤、光盤或軟盤。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種支持非對齊數(shù)據(jù)的對稱加密方法,其特征在于,包括51、加密前對數(shù)據(jù)按照預設長度進行分組;52、判斷最后一個分組的長度與所述預設長度是否相等,若是,則將所有的分組按照對稱加密算法直接加密,否則順序執(zhí)行步驟S3、S4 ;53、除最后一個分組外,對各分組數(shù)據(jù)按照對稱加密算法進行加密;54、取倒數(shù)第二個分組的密文的末尾的長度等于預設長度減最后一個分組的長度的內容,后接上最后一個分組明文一起按照對稱加密算法加密獲取新密文,將該新密文的末尾長度等于最后一個分組的長度的內容作為最后一個分組的密文,用該新密文的首部的長度等于預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的末尾的長度等于預設長度減最后一個分組的長度的內容。
2.如權利要求1所述的支持非對齊數(shù)據(jù)的對稱加密方法,其特征在于,所述預設長度為8字節(jié)。
3.如權利要求1所述的支持非對齊數(shù)據(jù)的對稱加密方法,其特征在于,所述對稱加密算法為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或 AES-256加密算法。
4.一種支持非對齊數(shù)據(jù)的對稱解密方法,其特征在于,包括51、對密文數(shù)據(jù)接照加密時的預設長度進行分組;52、判斷最后一個分組的長度與所述加密時的預設長度是否相等,若是,則將所有分組的密文按照加密算法對應的解密算法進行對稱解密,否則,順序執(zhí)行步驟S3、S4 ;53、從原始密文數(shù)據(jù)末尾取出長度等于加密時的預設長度的數(shù)據(jù),將所述密文按照加密算法對應的解密算法進行對稱解密獲取明文,該明文末尾的長度等于最后一個分組的長度的內容即為最后一個分組的解密內容,用該明文的首部長度等于加密時的預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的尾部的長度等于加密時的預設長度減最后一個分組的長度的內容;54、除最后一個分組外,對各分組密文按照加密算法對應的解密算法進行對稱解密。
5.一種支持非對齊數(shù)據(jù)的對稱加密系統(tǒng),其特征在于,包括分組模塊,用于加密前對數(shù)據(jù)按照預設長度進行分組,當最后一個分組的長度與所述預設長度相等時,調用對齊數(shù)據(jù)加密模塊,否則調用非對齊數(shù)據(jù)加密模塊;對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度與預設長度相等時,對數(shù)據(jù)按照對稱加密算法進行加密;非對齊數(shù)據(jù)加密模塊,用于當最后一個分組的長度與預設長度不相等時,除最后一個分組外,對各分組數(shù)據(jù)按照對稱加密算法進行加密,取倒數(shù)第二個分組的密文的末尾的長度等于預設長度減最后一個分組的長度的內容,后接上最后一個分組明文一起按照對稱加密算法加密獲取新密文,將該新密文的末尾長度等于最后一個分組的長度的內容作為最后一個分組的密文,用該新密文的首部的長度等于預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的末尾的長度等于預設長度減最后一個分組的長度的內容。
6.如權利要求5所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng),其特征在于,所述預設長度為8字節(jié)。
7.如權利要求6所述的支持非對齊數(shù)據(jù)的對稱加密系統(tǒng),其特征在于,所述對稱加密算法為DES加密算法、TripleDES加密算法、AES-128加密算法、AES-192加密算法或 AES-256加密算法。
8.一種支持非對齊數(shù)據(jù)的對稱解密系統(tǒng),其特征在于,包括分組模塊,對密文數(shù)據(jù)接照加密時的預設長度進行分組,當最后一個分組的長度與所述預設長度相等時,調用對齊數(shù)據(jù)解密模塊,否則調用非對齊數(shù)據(jù)解密模塊;對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度與所述預設長度相等時,將所有分組的密文按照加密算法對應的解密算法進行對稱解密;非對齊數(shù)據(jù)解密模塊,用于當最后一個分組的長度與所述預設長度不相等時,用于從原始密文數(shù)據(jù)末尾取出長度等于加密時的預設長度的數(shù)據(jù),將所述密文按照加密算法對應的解密算法進行對稱解密獲取明文,該明文末尾的長度等于最后一個分組的長度的內容即為最后一個分組的解密內容,用該明文的首部長度等于加密時的預設長度減最后一個分組的長度的內容替換倒數(shù)第二個分組密文的尾部的長度等于加密時的預設長度減最后一個分組的長度的內容,除最后一個分組外,對各分組密文按照加密算法對應的解密算法進行對稱解密。
全文摘要
本發(fā)明公開了一種支持非對齊數(shù)據(jù)的對稱加解密方法及其系統(tǒng),加密方法包括S1、對數(shù)據(jù)按照預設長度L進行分組,記錄最后一個分組的長度S;S2、判斷最后一個分組的長度S與L是否相等,若是,則將所有的分組直接加密,否則執(zhí)行步驟S3;S3、除最后一個分組外,對各分組數(shù)據(jù)進行加密;S4、取倒數(shù)第二個分組的密文的最后的L-S個字節(jié),同最后一個分組明文一起加密獲取新密文,將倒數(shù)第二個分組密文的最后的L-S個字節(jié)替換為該新密文的前面L-S個字節(jié),將該新密文的最后S個字節(jié)作為最后一個分組的密文。本發(fā)明支持非對齊數(shù)據(jù)的對稱加密,避免了填充無意義的字節(jié)數(shù),能減輕數(shù)據(jù)傳輸負擔,減少數(shù)據(jù)的存儲空間,降低對網(wǎng)絡帶寬的占用。
文檔編號H04L9/06GK103001766SQ20121048743
公開日2013年3月27日 申請日期2012年11月26日 優(yōu)先權日2012年11月26日
發(fā)明者寧艷芝, 王天星, 王文軍, 李偉東, 李紅艷 申請人:北京視博數(shù)字電視科技有限公司