專利名稱:一種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)加密領(lǐng)域,更具體來說是一種通過對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)元?jiǎng)澐?,?br>
對(duì)每個(gè)數(shù)據(jù)元進(jìn)行坐標(biāo)分配和采用不同算法進(jìn)行加密的方法和裝置。
背景技術(shù):
數(shù)據(jù)安全是信息技術(shù)和通訊技術(shù)研究的重要內(nèi)容,同時(shí)也關(guān)乎著國(guó)家安全、企 業(yè)利益和個(gè)人財(cái)產(chǎn)安全。為了保證數(shù)據(jù)安全,世界各地、從古到今天都在研究和設(shè)計(jì)著 各種方法和設(shè)備。 目前,通過計(jì)算機(jī)對(duì)數(shù)據(jù)進(jìn)行方法有多種,包括DES加密算法、RSA、 3DES、分組加密算法FEAL、 IDEA算法等;其中DES加密算法是使用一個(gè)56位的密 鑰以及附加的8位奇偶校驗(yàn)位,產(chǎn)生最大64位的分組大小的分組密碼,加密時(shí)首先將加 密的文本塊分成兩半,使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行 "異或"運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)下去,并使最后一個(gè)循環(huán)不交換的加 密方法。RSA則是被研究得最廣泛的公鑰算法,RSA的安全性依賴于大數(shù)的因子分解, 公鑰和私鑰都是兩個(gè)大素?cái)?shù)(大于100個(gè)十進(jìn)制位)的函數(shù);RSA的產(chǎn)生密鑰特點(diǎn)是受 到素?cái)?shù)產(chǎn)生技術(shù)的限制;分組長(zhǎng)度太大,為保證安全性,使運(yùn)算代價(jià)很高,尤其是速度 較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí),并且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長(zhǎng)度還在增 加。 通過各種加密方法的對(duì)比,可發(fā)現(xiàn)目前采用的各種加密方法均存在一種共同特 點(diǎn)是通過不斷的增加該加密算法的復(fù)雜度和加密密鑰的長(zhǎng)度來提高數(shù)據(jù)的安全,這種特 點(diǎn)其代價(jià)是必然大量增加運(yùn)算的負(fù)荷和成本。
發(fā)明內(nèi)容
本發(fā)明目的是針對(duì)已有的數(shù)據(jù)加密方法的不足,提供一種通過對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù) 元?jiǎng)澐?,并?duì)每個(gè)數(shù)據(jù)元進(jìn)行坐標(biāo)分配和采用不同算法和密鑰進(jìn)行加密的方法和裝置, 使用該裝置或方法對(duì)數(shù)據(jù)進(jìn)行加密, 一方面可以保證數(shù)據(jù)高度的安全,同時(shí)也可以有效 降低運(yùn)算的負(fù)荷和成本。
本發(fā)明的加密方法 —種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密的方法,其特征在于,包括如下 步驟 a).加密端建立加密算法數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)內(nèi)不同加密算法具有使其能被索引/調(diào)用 的坐標(biāo)標(biāo)簽或ID序列; b).將待加密數(shù)據(jù)劃分為若干數(shù)據(jù)單元; c).加密算法分配模塊為每個(gè)數(shù)據(jù)單元分配坐標(biāo)或/ID序列,并使用該坐標(biāo)或/ID 序列對(duì)應(yīng)的算法對(duì)該數(shù)據(jù)單元進(jìn)行加密;
d).往加密后的數(shù)據(jù)單元添加該加密算法的坐標(biāo)或/ID序列字段形成新數(shù)據(jù)單 元;e).新數(shù)據(jù)單元組合成已加密數(shù)據(jù)。 其中,上所述的加密算法數(shù)據(jù)庫(kù)里面的不同加密算法指通過具有不同長(zhǎng)度或內(nèi) 容的密鑰進(jìn)行相同的或不同的運(yùn)算而實(shí)現(xiàn)加密的算法; 所述的坐標(biāo)標(biāo)簽或ID序列由具有若干個(gè)Bit的兩段或兩段以上的字段組合而 成; 所述的加密數(shù)據(jù)被劃分為若干數(shù)據(jù)單元指加密數(shù)據(jù)被劃分為若干具有相同固定 長(zhǎng)度的或具有不同長(zhǎng)度等級(jí)的數(shù)據(jù)段; 所述的新數(shù)據(jù)單元指在已加密的數(shù)據(jù)單元前面添加有用以表示該加密算法的坐 標(biāo)標(biāo)簽或ID序列信息而形成的數(shù)據(jù)單元。 作為對(duì)該方法應(yīng)用的完整性優(yōu)化,本發(fā)明的方法還還具有一解密步驟,解密步 驟包括 21).解密端建立解密算法數(shù)據(jù)庫(kù),加密端的任一加密算法在解密算法數(shù)據(jù)庫(kù)至少 具有一與其對(duì)應(yīng)的具有不同坐標(biāo)標(biāo)簽或ID序列的解密算法; 22).將被加密數(shù)據(jù)的新數(shù)據(jù)單元分離,并從新數(shù)據(jù)單元提取加密算法的坐標(biāo)或 ID序列; 23)通過解密算法與加密算法的坐標(biāo)或ID序列的影射算法獲得解密算法的坐標(biāo) 或ID序列,并通過所對(duì)應(yīng)的算法進(jìn)行解密;
24)被解密的數(shù)據(jù)單元重新組合成數(shù)據(jù)。
進(jìn)一步優(yōu)化,上所講述的方法還包括 加密端用戶輸入私鑰,該私鑰經(jīng)處理后與已組合的加密數(shù)據(jù)重新結(jié)合后輸加密 出; 解密端,用戶輸入私鑰,該私鑰與待解密數(shù)據(jù)的密碼字段部分進(jìn)行對(duì)比驗(yàn)證, 并在驗(yàn)證通過后方執(zhí)行后續(xù)的解密事件; 被加密數(shù)據(jù)在加密端與解密端之間使用標(biāo)準(zhǔn)的TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。
下面是本發(fā)明的加密裝置 —種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密和解密的裝置,其特征在于其 包括如下模塊 31).用于獲取數(shù)據(jù)并將數(shù)據(jù)劃分為若干數(shù)據(jù)單元的數(shù)據(jù)輸入模塊;
32).用于對(duì)加密/解密全過程進(jìn)行集中控制的加密/解密控制模塊;
33).用于存儲(chǔ)加密或解密算法的加密/解密算法數(shù)據(jù)庫(kù); 34).用于為每個(gè)數(shù)據(jù)單元進(jìn)行算法坐標(biāo)或ID序列分配/轉(zhuǎn)換的算法分配模塊;
35).用于調(diào)用算法進(jìn)行加密或解密的加密/解密模塊; 36).用于為每個(gè)被加密數(shù)據(jù)單元添加坐標(biāo)或ID序列信息字段以形成新數(shù)據(jù)單元 的包裝模塊; 37).用于將新數(shù)據(jù)單元進(jìn)行組合成被加密/解密數(shù)據(jù)的組合模塊; 所述的加密/解密控制模塊控制數(shù)據(jù)輸入模塊獲取數(shù)據(jù)并劃分/或分解為數(shù)據(jù)單
元,然后算法分配模塊為數(shù)據(jù)單元分配加密或解密算法對(duì)應(yīng)的坐標(biāo)或ID序列;密控制模塊控制加密/解密模塊從加密/解密算法數(shù)據(jù)庫(kù)獲取該坐標(biāo)或ID序列對(duì)應(yīng)的算法對(duì)數(shù)據(jù)單 元進(jìn)行加密/解密;加密控制模塊控制包裝模塊形成新的數(shù)據(jù)單元、并通過組合模塊將被 加密的或解密的數(shù)據(jù)單元進(jìn)行組合。 綜上所述的技術(shù)方案,具有如下實(shí)質(zhì)進(jìn)步和有益效果 1.采用對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)元?jiǎng)澐郑⑼ㄟ^對(duì)每個(gè)數(shù)據(jù)元通過具有不同加密算法和 密鑰的方法進(jìn)行加密,最后數(shù)據(jù)安全性高; 2.目前的DES、 RSA、 3DES、 FEAL、 IDEA等加密方法的數(shù)據(jù)安全性很大程度 依靠的是算法本身的復(fù)雜度和密鑰的長(zhǎng)度,而本發(fā)明的加密方法安全保障來自于加密算 法數(shù)據(jù)庫(kù)中加密算法和密鑰的多樣性和難以預(yù)知性; 3.本發(fā)明的加密方法對(duì)數(shù)據(jù)元進(jìn)行加密時(shí),既可以采用常用的如DES、 RSA、 3DES等算法進(jìn)行加密,更可以采用自定義的多種或簡(jiǎn)單或復(fù)雜,密鑰可長(zhǎng)可短的加密算 法。多種加密算法的混合使用, 一方面可以保證數(shù)據(jù)的安全度,融合多種加密算法的優(yōu) 勢(shì),另一方面,也可以節(jié)省加密處理的工作量,因?yàn)榧用軙r(shí)不必要對(duì)所有數(shù)據(jù)都進(jìn)行如 DES、 RSA、 3DES那么復(fù)雜的運(yùn)算處理,對(duì)于部分?jǐn)?shù)據(jù)單元只要采用簡(jiǎn)單的加密即可。
4.如果想對(duì)數(shù)據(jù)進(jìn)行非法破解,需要具備的條件是必須知道用戶的私鑰、必須 知道數(shù)據(jù)單元的劃分方法、必須知道算法坐標(biāo)的規(guī)律分配方法和轉(zhuǎn)換方法、必須知道數(shù) 據(jù)庫(kù)中所有的加密算法和每一種算法采用的密鑰、還有就是需要知道數(shù)據(jù)單元的組合方 法,所以相對(duì)于現(xiàn)有的各種加密方法,本發(fā)明的加密方法被破解的幾率更小。
圖1為進(jìn)行數(shù)據(jù)單元分割的示意圖; 圖2為添加了坐標(biāo)字段的新數(shù)據(jù)單元數(shù)據(jù)結(jié)構(gòu)圖; 圖3為添加了長(zhǎng)度標(biāo)識(shí)和坐標(biāo)字段的新數(shù)據(jù)單元數(shù)據(jù)結(jié)構(gòu)圖; 圖4為圖2的新數(shù)據(jù)單元進(jìn)行組合后的數(shù)據(jù)結(jié)構(gòu)圖; 圖5為圖3的新數(shù)據(jù)單元進(jìn)行組合后的數(shù)據(jù)結(jié)構(gòu)圖; 圖6為加密流程圖; 圖7為解密流程圖; 圖8為加密裝置的結(jié)構(gòu)框圖; 圖9為解密裝置的結(jié)構(gòu)框圖; 圖10為另一種加密裝置的結(jié)構(gòu)框圖; 圖11為另一種解密裝置的結(jié)構(gòu)框圖; 圖12為優(yōu)化后的加密流程圖; 圖13為優(yōu)化后的解密流程圖。
具體實(shí)施方式
實(shí)施例一 參考圖1至7,公開本發(fā)明一種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密的方 法。該方法包括如下步驟實(shí)現(xiàn) 1).通過數(shù)據(jù)輸入模塊獲取需要加密的數(shù)據(jù);
2).將數(shù)據(jù)劃分為若干數(shù)據(jù)單元,即數(shù)據(jù)段;劃分方法包括A.將數(shù)據(jù)輸入流劃 分為具有相同的固定的長(zhǎng)度單元的數(shù)據(jù)段(數(shù)據(jù)段的長(zhǎng)度沒有限制,可以根據(jù)實(shí)際需要確 定;由于IPV4的IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分最長(zhǎng)為64KB,所以可以參考其將每個(gè)數(shù)據(jù)段設(shè)定 為64KB),并將剩余的不足一個(gè)長(zhǎng)度單元的數(shù)據(jù)作為一單獨(dú)數(shù)據(jù)段;B.定義若干長(zhǎng)度等 級(jí)(例如可以將128KB、 64KB、 32KB、 12KB、 1KB、 512B、 256B的依次定義為6 0 級(jí),定義的方法可以根據(jù)實(shí)際需要確定,原則上沒限制),將數(shù)據(jù)輸入流劃分為具有所定 義級(jí)別長(zhǎng)度的數(shù)據(jù)段,并將剩余的不足最低級(jí)別長(zhǎng)度的數(shù)據(jù)作為一單獨(dú)數(shù)據(jù)段;C.通過 特定的算法(如隨機(jī)數(shù)產(chǎn)生算法產(chǎn)生隨機(jī)數(shù)作為該數(shù)據(jù)段的長(zhǎng)度、通過對(duì)整個(gè)數(shù)據(jù)的大小 進(jìn)行分析而調(diào)節(jié)數(shù)據(jù)段長(zhǎng)度的求最優(yōu)值的算法等)確定數(shù)據(jù)段的長(zhǎng)度。相比下,將數(shù)據(jù) 輸入流劃分為具有相同的固定的長(zhǎng)度單元的數(shù)據(jù)段的實(shí)現(xiàn)程序最為簡(jiǎn)單,劃分和控制的 效率也最高,所以以其為示例作進(jìn)一步描述。 參考圖1所示,待加密數(shù)據(jù)從數(shù)據(jù)輸入模塊的一端進(jìn)入,通過數(shù)據(jù)輸入模塊的 數(shù)據(jù)單元?jiǎng)澐炙惴ㄒ来伪粍澐譃橄盗械乳L(zhǎng)度的數(shù)據(jù)單元(1 N),然后數(shù)據(jù)單元按順序輸 出。 3).獲取數(shù)據(jù)單元,加密算法分配模塊為該數(shù)據(jù)單元分配坐標(biāo)或/ID序列。坐標(biāo) 或/ID序列由具有若干字節(jié)的兩段或兩段以上的組成。表示坐標(biāo)或/ID序列的字節(jié)數(shù)可以 根據(jù)加密算法數(shù)據(jù)庫(kù)內(nèi)的加密算法個(gè)數(shù)而定。如假設(shè)用16字節(jié)表示,則可對(duì)應(yīng)的算法個(gè) 數(shù)最多為65536種;用32字節(jié)表示,則可對(duì)應(yīng)的算法個(gè)數(shù)可達(dá)到42億多種;基于加密 的安全性與效率,普通情況下,使用16字節(jié)已完全符合安全需求。坐標(biāo)或/ID序列構(gòu)成 根據(jù)算法在數(shù)據(jù)庫(kù)內(nèi)坐標(biāo)的表示不同可以有多種方法,如采用二維表示法,即用(X, Y) 表示(見圖3和圖4),其中X坐標(biāo)、Y坐標(biāo)分別用9字節(jié)、7字節(jié)表示,則X范圍為0 511, Y范圍為0 127;加密算法分配模塊通過其內(nèi)的算法為數(shù)據(jù)單元依次分配在定義 坐標(biāo)范圍內(nèi)的算法坐標(biāo),所述的算法包括在坐標(biāo)范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)整數(shù)作為坐標(biāo)、在 坐標(biāo)范圍內(nèi)產(chǎn)生一個(gè)均勻分布的隨機(jī)整數(shù)作為坐標(biāo)等,以在坐標(biāo)范圍內(nèi)產(chǎn)生一個(gè)均勻分 布的隨機(jī)整數(shù)作為坐標(biāo)為例,其算法可以通過如下實(shí)現(xiàn) 假設(shè)要在[O, 511]內(nèi)均勻地隨機(jī)產(chǎn)生一個(gè)整數(shù)坐標(biāo),則計(jì)算公式是
r; = mod(5rw, 4n);
^ = int(r/4); 其中,初值為r^O的奇數(shù),n = 2k, k = [log2511]+l,即可得到隨機(jī)整數(shù)。
程序段
Int r ; {intk, 1, m, i, p;
k = 511 ; 1 = 2;
while(l < 511)1 = 1+1 ;
m = 4*1 ; k = r ; i = 1
while(i < = 1)
{k = k+k+k+k+k ;
k = k% m ; 1 = k/4 ;
If(i <= b){p = 1 ; i = i+1}
}
r = k ;
return(p);
} 坐標(biāo)或ID序列的字節(jié)長(zhǎng)度、劃分段數(shù)和產(chǎn)生坐標(biāo)的方法可以根據(jù)實(shí)際作自定義 或調(diào)整; 4).根據(jù)加密算法分配模塊產(chǎn)生的坐標(biāo)或/ID序列查詢加密算法數(shù)據(jù)庫(kù)并調(diào)用里 面的算法對(duì)數(shù)據(jù)單元進(jìn)行加密處理;加密算法數(shù)據(jù)庫(kù)里存儲(chǔ)的算法特點(diǎn)是可以是任何 一種通用的或自定義的加密算法,即可以包括 DES加密算法、RSA、 3DES、分組加密算法FEAL、 IDEA算法等通用加密算 法在內(nèi);也可以包括密鑰位數(shù)在采用具有任何位數(shù)的密鑰對(duì)數(shù)據(jù)進(jìn)行任何簡(jiǎn)單或復(fù)雜處 理的算法,如使用6位密鑰依次對(duì)數(shù)據(jù)單元進(jìn)行異或運(yùn)算加密、使用3位密鑰對(duì)數(shù)據(jù)單元 進(jìn)行與運(yùn)算然后移2位處理等等,密鑰與加密方法可以有各種各樣的變化。由于本發(fā)明 的數(shù)據(jù)安全并不是依賴于其中的某種算法的復(fù)雜度或者密鑰的長(zhǎng)度,而重點(diǎn)在于加密算 法的多樣性和難以預(yù)測(cè)性,所以在加密算法中添加入通過簡(jiǎn)短密鑰進(jìn)行非常規(guī)的處理的 加密方法往往對(duì)數(shù)據(jù)的安全可以起到以外的收獲,同時(shí)也可以大量的降低加密的工作負(fù) 荷,確保了數(shù)據(jù)安全的同時(shí)也提高了加密的效率。 5).往已經(jīng)被加密的數(shù)據(jù)單元添加該用于對(duì)其進(jìn)行加密的算法的坐標(biāo)或/ID序列 字段以形成新數(shù)據(jù)單元;如圖2和3所示,為添加了坐標(biāo)或/ID序列信息后的新數(shù)據(jù)單 元結(jié)構(gòu)。其中圖2的數(shù)據(jù)單元表示其長(zhǎng)度是默認(rèn)的固定長(zhǎng)度的,所以不需要在數(shù)據(jù)單元 中添加用以標(biāo)示其長(zhǎng)度的長(zhǎng)度標(biāo)識(shí)字段而在解密端也可以進(jìn)行數(shù)據(jù)單元分離和解密;圖 3表示的數(shù)據(jù)單元長(zhǎng)度是按長(zhǎng)度等級(jí)來劃分的或者是可變的,則有必要首先在數(shù)據(jù)單元的 前端添加一定字節(jié)以表示該數(shù)據(jù)單元的長(zhǎng)度,然后再添加坐標(biāo)或/ID序列信息。又如圖 3所示,表示的是用4個(gè)字節(jié)的代碼表示其長(zhǎng)度等級(jí)或長(zhǎng)度、用9個(gè)字節(jié)表示坐標(biāo)X軸位 置(ID序列的前半部分),用7字節(jié)表示Y軸位置(ID序列的后半部分)。實(shí)際實(shí)施時(shí), 表示長(zhǎng)度和坐標(biāo)的字節(jié)數(shù)可以根據(jù)實(shí)際需要而設(shè)定。 6).當(dāng)所有的數(shù)據(jù)單元被加密后,新數(shù)據(jù)單元進(jìn)行重新組合成數(shù)據(jù);如圖4和圖5
所示分別為圖2和3對(duì)應(yīng)的新數(shù)據(jù)單元進(jìn)行組合后的結(jié)構(gòu)。實(shí)施時(shí),對(duì)于一些大文件,
可以首先劃分為若干數(shù)據(jù)塊,然后再將數(shù)據(jù)塊進(jìn)行劃分為數(shù)據(jù)單元進(jìn)行加密,那么這里
的組合可以先以數(shù)據(jù)塊進(jìn)行局部組合再進(jìn)行整體組合,即首先對(duì)每個(gè)數(shù)據(jù)塊的對(duì)應(yīng)新數(shù)
據(jù)單元進(jìn)行重新組合成新數(shù)據(jù)塊后再組合成整體的數(shù)據(jù)文件。 參考圖6所示,對(duì)采用本發(fā)明進(jìn)行數(shù)據(jù)加密的流程作進(jìn)一步的闡述 如圖中S101,首先獲取需要加密的數(shù)據(jù);
將獲得的數(shù)據(jù)劃分為若干數(shù)據(jù)單元;
按順序獲取一個(gè)數(shù)據(jù)單元,并通過加密算法分配模塊為該數(shù)據(jù)單 如圖中S102,
如圖中S103, 元分配坐標(biāo)/ID序列; 如圖中S104,使用該坐標(biāo)/ID序列查詢加密算法數(shù)據(jù)庫(kù); 如圖中S105,判斷加密算法數(shù)據(jù)庫(kù)是否存在該坐標(biāo)或ID對(duì)應(yīng)的加密算法,如果 是則進(jìn)入;S106,否則轉(zhuǎn)到S103,為該數(shù)據(jù)單元重新分配坐標(biāo)/ID序列;
如圖中S106,從加密算法數(shù)據(jù)庫(kù)中調(diào)用該坐標(biāo)或ID對(duì)應(yīng)的加密算法進(jìn)行加密處 理; 如圖中S107,被加密的數(shù)據(jù)單元首部添加該坐標(biāo)或ID信息字段(或者先添加長(zhǎng) 度標(biāo)識(shí)字段后在添加坐標(biāo)或ID信息字段)形成新的數(shù)據(jù)單元;
如圖中S108,新的數(shù)據(jù)單元存放到緩存空間; 如圖中S109,判斷是否所有的數(shù)據(jù)單元都已經(jīng)加密處理,如果否則轉(zhuǎn)到S103; 否則轉(zhuǎn)到S110 ; 如圖中SllO,新的數(shù)據(jù)單元進(jìn)行組合成完成的數(shù)據(jù);
如圖中Slll,加密的數(shù)據(jù)被輸出。 對(duì)于一種數(shù)據(jù)加密方法,加密和解密是兩個(gè)同等重要和存在必然聯(lián)系的的過 程,下面對(duì)配對(duì)的解密做描述
21).獲取需要解密的數(shù)據(jù); 22).將該需要解密的數(shù)據(jù)逐一分離出數(shù)據(jù)單元;由于被加密的數(shù)據(jù)單元長(zhǎng)度是 默認(rèn)已知的或則已經(jīng)通過在其數(shù)據(jù)單元的首部進(jìn)行標(biāo)識(shí),所以分離時(shí)只需按被組合前的 數(shù)據(jù)單元長(zhǎng)度進(jìn)行分割; 23).從分割出來的數(shù)據(jù)單元中提取對(duì)其進(jìn)行加密的算法的坐標(biāo)或ID序列;
24).解密算法分配模塊對(duì)提取的坐標(biāo)或ID序列使用其內(nèi)的算法進(jìn)行轉(zhuǎn)換形成新 的坐標(biāo)或ID序列;其中轉(zhuǎn)換方法有多種,包括該坐標(biāo)或ID序列各組成進(jìn)行各種數(shù)學(xué)運(yùn)算 (如開2次方根后取整、與隨機(jī)數(shù)相加后截取坐標(biāo)范圍內(nèi)的整數(shù)等)、位移動(dòng)、使用密鑰進(jìn) 行轉(zhuǎn)換等。由于加密和解密是兩個(gè)存在必然聯(lián)系的逆過程,所以在選擇算法的時(shí)候,要 對(duì)數(shù)據(jù)元進(jìn)行正確的解密則必須正確選定與該加密算法對(duì)應(yīng)的解密算法進(jìn)行解密,故加 密端與解密端的算法坐標(biāo)應(yīng)該存在一個(gè)在兩者間公開的坐標(biāo)或ID序列轉(zhuǎn)換規(guī)則,而解密 算法分配模塊則需要根據(jù)該轉(zhuǎn)換規(guī)則進(jìn)行坐標(biāo)或ID序列轉(zhuǎn)換進(jìn)而為該數(shù)據(jù)單元分配正確 的解密算法。轉(zhuǎn)換的方法與坐標(biāo)或ID序列轉(zhuǎn)換規(guī)則相符合。 25).根據(jù)解密算法分配模塊為該數(shù)據(jù)單元分配的坐標(biāo)或ID序列從解密算法數(shù)據(jù) 庫(kù)中調(diào)用相應(yīng)的解密算法進(jìn)行解密操作,執(zhí)行解密事件。其中,解密算法數(shù)據(jù)庫(kù)與加密 算法數(shù)據(jù)庫(kù)中存在必然關(guān)系是加密算法數(shù)據(jù)庫(kù)中任一加密算法在解密算法數(shù)據(jù)庫(kù)至少 具有一與其對(duì)應(yīng)的解密算法,即該數(shù)據(jù)單元通過解密算法數(shù)據(jù)庫(kù)的算法必須是可解的。 每一種加密算法(如DES加密算法、RSA、 3DES、自定義的加密算法等),其對(duì)應(yīng)解密算 法是不相同的,并且對(duì)于定義者和開發(fā)者、本領(lǐng)域的實(shí)施者是已知的,由于加密算法數(shù) 據(jù)庫(kù)中加密算法越多,解密算法數(shù)據(jù)庫(kù)的解密算法就越多,所以不再一列舉說明。
26).當(dāng)數(shù)據(jù)全部(或數(shù)據(jù)塊的全部)所對(duì)應(yīng)的所有數(shù)據(jù)單元被解密后,進(jìn)行組 合,形成整體數(shù)據(jù),數(shù)據(jù)解密完成。 參考圖7,對(duì)本發(fā)明的數(shù)據(jù)解密流程作進(jìn)一步闡述
如圖中S201所示,首先獲取需要解密的數(shù)據(jù);
如圖中S202所示,對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)單元分離; 如圖中S203所示,按順序獲取其中一個(gè)數(shù)據(jù)單元,并將長(zhǎng)度標(biāo)識(shí)字段、坐標(biāo)或 ID字段、數(shù)據(jù)字段分離;并提取其中的坐標(biāo)或ID字段; 如圖中S204所示,解密分配模塊調(diào)用其內(nèi)的轉(zhuǎn)換規(guī)則和算法對(duì)該坐標(biāo)或ID進(jìn)行轉(zhuǎn)換獲得新的坐標(biāo)或ID; 如圖中S205和206所示,從解密算法數(shù)據(jù)庫(kù)中調(diào)用新坐標(biāo)或ID對(duì)應(yīng)的解密算法 對(duì)該數(shù)據(jù)單元進(jìn)行解密處理; 如圖中S207所示,判斷是否所有數(shù)據(jù)元都被解密,如果否則轉(zhuǎn)到S203;否則轉(zhuǎn) 到S208 ; 如圖中S208所示,對(duì)已經(jīng)解密數(shù)據(jù)單元進(jìn)行重新組合成數(shù)據(jù);
如圖中S209所示,數(shù)據(jù)解密結(jié)束,數(shù)據(jù)輸出。
實(shí)施例二 本實(shí)施例公開本發(fā)明的另一種技術(shù)方案 一種基于數(shù)據(jù)元和坐標(biāo)算法的混合型 數(shù)據(jù)加密和解密的裝置 如圖8所示,該加密裝置由加密控制模塊IO、數(shù)據(jù)輸入模塊ll、加密算法分配 模塊12、加密算法數(shù)據(jù)庫(kù)13、加密模塊14、緩存模塊15、組合模塊16組成;其中,各 模塊或組成直接與加密控制模塊10連接,并接受加密控制模塊10的集中控制下實(shí)現(xiàn)基于 數(shù)據(jù)單元和坐標(biāo)的混合算法加密工作時(shí)候,在加密控制模塊10的控制下,數(shù)據(jù)輸入模 塊11負(fù)責(zé)獲取需要加密的數(shù)據(jù)并進(jìn)行數(shù)據(jù)單元?jiǎng)澐峙c存儲(chǔ)、并按順序?qū)?shù)據(jù)單元輸入加
密控制模塊10 ;加密算法分配模塊12為數(shù)據(jù)單元分配加密算法坐標(biāo)或ID序列;加密模
塊14負(fù)責(zé)從加密算法數(shù)據(jù)庫(kù)13調(diào)用該坐標(biāo)或ID序列對(duì)應(yīng)的加密算法對(duì)數(shù)據(jù)單元進(jìn)行加 密;緩存模塊15用于臨時(shí)存儲(chǔ)從加密控制模塊10輸出的已加密數(shù)據(jù)單元;組合模塊16 負(fù)責(zé)對(duì)已經(jīng)加密的數(shù)據(jù)單元進(jìn)行重新組合成完整的數(shù)據(jù)并輸出。 如圖9所示,該解密裝置由解密控制模塊20、數(shù)據(jù)輸入模塊21、分離及坐標(biāo)提 取模塊22、解密算法分配模塊23、解密算法數(shù)據(jù)庫(kù)24、解密模塊25、緩存模塊26、組 合模塊27組成;其中,各模塊或組成直接與加密控制模塊20連接,并接受加密控制模塊 20的集中控制下實(shí)現(xiàn)基于數(shù)據(jù)單元和坐標(biāo)的混合算法解密工作時(shí)候,在解密控制模塊 20的控制下,數(shù)據(jù)輸入模塊21負(fù)責(zé)獲取需要解密的數(shù)據(jù)并進(jìn)行數(shù)據(jù)單元分離,然后并按 順序?qū)?shù)據(jù)單元輸入解密控制模塊20 ;分離及坐標(biāo)提取模塊22提取數(shù)據(jù)單元內(nèi)的坐標(biāo)或 ID信息;解密算法分配模塊23將該坐標(biāo)或ID序列進(jìn)行轉(zhuǎn)化形成新的坐標(biāo)或ID序列;解 密模塊25負(fù)責(zé)從解密算法數(shù)據(jù)庫(kù)24調(diào)用新坐標(biāo)或ID序列對(duì)應(yīng)的解密算法對(duì)數(shù)據(jù)單元進(jìn) 行解密;緩存模塊26用于臨時(shí)存儲(chǔ)從解密控制模塊20輸出的已解密數(shù)據(jù)單元;組合模 塊27負(fù)責(zé)對(duì)已經(jīng)解密的數(shù)據(jù)單元進(jìn)行重新組合成完整的數(shù)據(jù)并輸出。
本實(shí)施例的發(fā)明裝置的實(shí)現(xiàn)加密和解密的方法和流程可參考實(shí)施例一的進(jìn)行實(shí) 施。 實(shí)施例三 參考圖10和圖11,為本發(fā)明一種基于數(shù)據(jù)單元和坐標(biāo)的混合算法加密或解密數(shù) 據(jù)的裝置的進(jìn)一步優(yōu)化,對(duì)比于實(shí)例二的區(qū)別在于該加密或解密裝置還具有一用戶私 鑰輸入模塊;用戶私鑰輸入模塊負(fù)責(zé)采集用戶輸入的密鑰,并將該密鑰經(jīng)過處理后與被 加密的數(shù)據(jù)進(jìn)行結(jié)合形成新的加密數(shù)據(jù)。解密時(shí),則先通過對(duì)該用戶私鑰進(jìn)行驗(yàn)證通過 的情況下方進(jìn)行后續(xù)的解密操作。 本實(shí)施例的裝置在實(shí)現(xiàn)基于數(shù)據(jù)單元和坐標(biāo)的混合算法加密或解密數(shù)據(jù)方法時(shí) 候, 一方面可以參考實(shí)施例一進(jìn)行實(shí)施,同時(shí)也需要對(duì)部分步驟做相應(yīng)修改。
相對(duì)與實(shí)施例一的發(fā)明方法,本實(shí)施例公開的裝置實(shí)現(xiàn)數(shù)據(jù)加密和解密時(shí),需 要做進(jìn)一步優(yōu)化,即實(shí)現(xiàn)流程如下
加密(如圖12所示) 首先,如圖中S112,首先用戶輸入用于對(duì)該數(shù)據(jù)進(jìn)行解密限制的密鑰,該密鑰 長(zhǎng)度應(yīng)符合規(guī)定數(shù)值; 如圖中S113,對(duì)該密鑰進(jìn)行處理,其中處理的方法包括各種各樣運(yùn)算方法如密 鑰位之間進(jìn)行與或求值、密鑰位移位、與固定數(shù)值進(jìn)行邏輯運(yùn)算等;
如圖中S101,獲取需要加密的數(shù)據(jù);
將獲得的數(shù)據(jù)劃分為若干數(shù)據(jù)單元;
按順序獲取一個(gè)數(shù)據(jù)單元,并通過加密算法分配模塊為該數(shù)據(jù)單 如圖中S102,
如圖中S103, 元分配坐標(biāo)/ID序列; 如圖中S104,使用該坐標(biāo)/ID序列查詢加密算法數(shù)據(jù)庫(kù); 如圖中S105,判斷加密算法數(shù)據(jù)庫(kù)是否存在該坐標(biāo)或ID對(duì)應(yīng)的加密算法,如果 是則進(jìn)入;S106,否則轉(zhuǎn)到S103,為該數(shù)據(jù)單元重新分配坐標(biāo)/ID序列;
如圖中S106,從加密算法數(shù)據(jù)庫(kù)中調(diào)用該坐標(biāo)或ID對(duì)應(yīng)的加密算法進(jìn)行加密處 理; 如圖中S107,被加密的數(shù)據(jù)單元首部添加該坐標(biāo)或ID信息字段(或者先添加長(zhǎng) 度標(biāo)識(shí)字段后在添加坐標(biāo)或ID信息字段)形成新的數(shù)據(jù)單元;
如圖中S108,新的數(shù)據(jù)單元存放到緩存空間; 如圖中S109,判斷是否所有的數(shù)據(jù)單元都已經(jīng)加密處理,如果否則轉(zhuǎn)到S103; 否則轉(zhuǎn)到S110 ; 如圖中SllO,新的數(shù)據(jù)單元進(jìn)行組合成完成的數(shù)據(jù); 如圖中S114,被處理的密鑰與組合的被加密數(shù)據(jù)進(jìn)行重新組合形成帶密碼字段
的數(shù)據(jù);
如圖中Slll,加密的數(shù)據(jù)被輸出。
解密(如圖13所示)
如圖中S210所示,首先用戶輸入密鑰; 如圖中S201所示,獲取需要解密的數(shù)據(jù); 如圖中S211所示,提取解密的數(shù)據(jù)中的密鑰字段;
如圖中S212所示,對(duì)密鑰進(jìn)行處理并驗(yàn)證,如果驗(yàn)證通過則執(zhí)行步驟S202 ;否
則轉(zhuǎn)到S201,提示用戶重新輸入密碼; 如圖中S202所示,對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)單元分離; 如圖中S203所示,按順序獲取其中一個(gè)數(shù)據(jù)單元,并將長(zhǎng)度標(biāo)識(shí)字段、坐標(biāo)或 ID字段、數(shù)據(jù)字段分離;并提取其中的坐標(biāo)或ID字段; 如圖中S204所示,解密分配模塊調(diào)用其內(nèi)的轉(zhuǎn)換規(guī)則和算法對(duì)該坐標(biāo)或ID進(jìn)行
轉(zhuǎn)換獲得新的坐標(biāo)或ID; 如圖中S205和206所示,從解密算法數(shù)據(jù)庫(kù)中調(diào)用新坐標(biāo)或ID對(duì)應(yīng)的解密算法 對(duì)該數(shù)據(jù)單元進(jìn)行解密處理; 如圖中S207所示,判斷是否所有數(shù)據(jù)元都被解密,如果否則轉(zhuǎn)到S203;否則轉(zhuǎn)到S208 ; 如圖中S208所示,對(duì)已經(jīng)解密數(shù)據(jù)單元進(jìn)行重新組合成數(shù)據(jù);
如圖中S209所示,數(shù)據(jù)解密結(jié)束,數(shù)據(jù)輸出。
實(shí)施例四 本實(shí)施例公開一種在互聯(lián)網(wǎng)上進(jìn)行安全數(shù)據(jù)交換的方法,其特征在與數(shù)據(jù)傳輸前先采用實(shí)施例一至三所述方法或裝置進(jìn)行加密,然后通過基于TCP/IP協(xié)議傳輸給對(duì)方,接收方的在應(yīng)用層執(zhí)行本發(fā)明的解密方法。加密和解密過程參考實(shí)施例一至三所述,不再重復(fù)。
權(quán)利要求
一種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密的方法,其特征在于,包括如下步驟1).加密端建立加密算法數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)內(nèi)不同加密算法具有使其能被索引/調(diào)用的坐標(biāo)標(biāo)簽或ID序列;2).將待加密數(shù)據(jù)劃分為若干數(shù)據(jù)單元;3).加密算法分配模塊為每個(gè)數(shù)據(jù)單元分配坐標(biāo)或/ID序列,并使用該坐標(biāo)或/ID序列對(duì)應(yīng)的算法對(duì)該數(shù)據(jù)單元進(jìn)行加密;4).往加密后的數(shù)據(jù)單元添加該加密算法的坐標(biāo)或/ID序列字段形成新數(shù)據(jù)單元;5).新數(shù)據(jù)單元組合成已加密數(shù)據(jù)。
2. 如權(quán)利要求1所述的加密數(shù)據(jù)的方法,其特征在于所述的加密算法數(shù)據(jù)庫(kù)里面 的不同加密算法指通過具有不同長(zhǎng)度或內(nèi)容的密鑰進(jìn)行相同的或不同的運(yùn)算而實(shí)現(xiàn)加密 的算法。
3. 如權(quán)利要求2所述的加密數(shù)據(jù)的方法,其特征在于所述的坐標(biāo)標(biāo)簽或ID序列由 具有若干個(gè)Bit的兩段或兩段以上的字段組合而成。
4. 如權(quán)利要求3所述的加密數(shù)據(jù)的方法,其特征在于所述的加密數(shù)據(jù)被劃分為 若干數(shù)據(jù)單元指加密數(shù)據(jù)被劃分為若干具有相同固定長(zhǎng)度的或具有不同長(zhǎng)度等級(jí)的數(shù)據(jù) 段。
5. 如權(quán)利要求3所述的加密數(shù)據(jù)的方法,其特征在于所述的新數(shù)據(jù)單元指在已加 密的數(shù)據(jù)單元前面添加有用以表示該加密算法的坐標(biāo)標(biāo)簽或ID序列信息而形成的數(shù)據(jù)單 元。
6. 如權(quán)利要求1至5任一所述的加密數(shù)據(jù)的方法,其特征在于還具有一解密步驟,解密步驟包括21) .解密端建立解密算法數(shù)據(jù)庫(kù),加密端的任一加密算法在解密算法數(shù)據(jù)庫(kù)至少具有一與其對(duì)應(yīng)的具有不同坐標(biāo)標(biāo)簽或ID序列的解密算法;22) .將被加密數(shù)據(jù)的新數(shù)據(jù)單元分離,并從新數(shù)據(jù)單元提取加密算法的坐標(biāo)或ID序列;23) 通過解密算法與加密算法的坐標(biāo)或ID序列的影射算法獲得解密算法的坐標(biāo)或ID 序列,并通過所對(duì)應(yīng)的算法進(jìn)行解密;24) 被解密的數(shù)據(jù)單元重新組合成數(shù)據(jù)。
7. 如權(quán)利要求1至5任一所述的加密數(shù)據(jù)的方法,其特征在于還包括 加密端用戶輸入私鑰,該私鑰經(jīng)處理后與已組合的加密數(shù)據(jù)重新結(jié)合后輸出。
8. 如權(quán)利要求6所述的加密數(shù)據(jù)的方法,其特征在于還包括 加密端用戶輸入私鑰,該私鑰經(jīng)處理后與已組合的加密數(shù)據(jù)重新結(jié)合后輸出; 解密端,用戶輸入私鑰,該私鑰與待解密數(shù)據(jù)的密碼字段部分進(jìn)行對(duì)比驗(yàn)證,并在驗(yàn)證通過后方執(zhí)行后續(xù)的解密事件。
9. 如權(quán)利要求6至7任一所述的加密數(shù)據(jù)的方法,其特征在于還包括 被加密數(shù)據(jù)在加密端與解密端之間使用標(biāo)準(zhǔn)的TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸。
10. —種基于數(shù)據(jù)元和坐標(biāo)算法的混合型數(shù)據(jù)加密和解密的裝置,其特征在于其包 括如下模塊31) .用于獲取數(shù)據(jù)并將數(shù)據(jù)劃分為若干數(shù)據(jù)單元的數(shù)據(jù)輸入模塊;32) .用于對(duì)加密/解密全過程進(jìn)行集中控制的加密/解密控制模塊;33) .用于存儲(chǔ)加密或解密算法的加密/解密算法數(shù)據(jù)庫(kù);34) .用于為每個(gè)數(shù)據(jù)單元進(jìn)行算法坐標(biāo)或ID序列分配/轉(zhuǎn)換的算法分配模塊;35) .用于調(diào)用算法進(jìn)行加密或解密的加密/解密模塊;36) .用于為每個(gè)被加密數(shù)據(jù)單元添加坐標(biāo)或ID序列信息字段以形成新數(shù)據(jù)單元的包 裝模塊;37) .用于將新數(shù)據(jù)單元進(jìn)行組合成被加密/解密數(shù)據(jù)的組合模塊;所述的加密/解密控制模塊控制數(shù)據(jù)輸入模塊獲取數(shù)據(jù)并劃分/或分解為數(shù)據(jù)單元, 然后算法分配模塊為數(shù)據(jù)單元分配加密或解密算法對(duì)應(yīng)的坐標(biāo)或ID序列;密控制模塊控 制加密/解密模塊從加密/解密算法數(shù)據(jù)庫(kù)獲取該坐標(biāo)或ID序列對(duì)應(yīng)的算法對(duì)數(shù)據(jù)單元進(jìn) 行加密/解密;加密控制模塊控制包裝模塊形成新的數(shù)據(jù)單元、并通過組合模塊將被加密 的或解密的數(shù)據(jù)單元進(jìn)行組合。
全文摘要
本發(fā)明涉及數(shù)據(jù)加密領(lǐng)域,公開一種通過對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)元?jiǎng)澐郑?duì)每個(gè)數(shù)據(jù)元進(jìn)行坐標(biāo)分配和采用不同算法和密鑰進(jìn)行加密的方法和裝置。本發(fā)明的裝置特點(diǎn)在于數(shù)據(jù)的安全保證不再依靠于某一種加密算法的復(fù)雜程度和用于加密的密鑰的長(zhǎng)度;通過引進(jìn)各種外界不可以預(yù)測(cè)的自定義簡(jiǎn)單算法,通過對(duì)同一個(gè)文件混合使用各種不同的加密算法進(jìn)行加密,有效的整合了其各自優(yōu)勢(shì)同時(shí),同時(shí)大量的降低加密的運(yùn)算負(fù)荷和成本,具有顯著的有益效果和技術(shù)進(jìn)步。
文檔編號(hào)H04L9/06GK101692636SQ20091019338
公開日2010年4月7日 申請(qǐng)日期2009年10月27日 優(yōu)先權(quán)日2009年10月27日
發(fā)明者盧林發(fā), 葉燦才 申請(qǐng)人:中山愛科數(shù)字科技有限公司