專利名稱:數(shù)據(jù)加密方法及數(shù)據(jù)加密系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種應用混沌系統(tǒng)對數(shù)據(jù)進行加密的方法及系統(tǒng)。
背景技術:
隨著計算機技術的發(fā)展,人們普遍使用計算機進行數(shù)據(jù)的存儲、傳輸。但不少存儲、傳輸?shù)臄?shù)據(jù)具有保密要求,因此需要對存儲、傳輸?shù)臄?shù)據(jù)進行加密處理,以避免存儲、傳輸?shù)臄?shù)據(jù)被非法獲取、閱讀?,F(xiàn)有的數(shù)據(jù)加密方法中有使用混沌系統(tǒng)對數(shù)據(jù)進行加密的,使用混沌系統(tǒng)對數(shù)據(jù)進行加密時,首先選取一個混沌系統(tǒng)的函數(shù),并選取該函數(shù)的初始值以及系統(tǒng)參數(shù),對初始值及系統(tǒng)參數(shù)對該函數(shù)進行驗證,確保使用該初始值及系統(tǒng)參數(shù)的該函數(shù)能夠使混沌系統(tǒng)進入混沌狀態(tài)。然后,應用選取的初始值、系統(tǒng)參數(shù)代入函數(shù)中,計算一個一維數(shù)組構成的混沌序列,使用混沌序列計算生成掩蓋數(shù)組。應用混沌序列計算掩蓋數(shù)組的方法多種多樣, 例如取混沌序列中每一數(shù)據(jù)的特定幾位數(shù)字作為掩蓋數(shù)組的對應數(shù)據(jù),或者對混沌序列的每一數(shù)據(jù)進行邏輯運算,獲得掩蓋數(shù)組對應數(shù)據(jù)等。通常,掩蓋數(shù)組的每一數(shù)據(jù)均為一個字節(jié)大小的數(shù)據(jù),應用掩蓋數(shù)組與需要加密的數(shù)據(jù)進行邏輯運算,例如將掩蓋數(shù)組的一個字節(jié)的數(shù)據(jù)與需要加密數(shù)據(jù)的一個字節(jié)的數(shù)據(jù)進行加法運算、減法運算、異或運算、同或運算等,即可得到加密后的數(shù)據(jù)。這種加密方法是對需要加密的數(shù)據(jù)進行整體地加密,當需要解密并獲取其中一部分數(shù)據(jù)時,則需要對所有的數(shù)據(jù)解密后才能獲得相應的數(shù)據(jù),導致在嵌入式系統(tǒng)中數(shù)據(jù)解密的效率低下。此外,由于使用混沌序列對需要加密的數(shù)據(jù)進行整體加密,因此,需要對混沌系統(tǒng)的函數(shù)進行多次迭代運算以計算數(shù)據(jù)量較多的混沌序列,造成嵌入式系統(tǒng)的運算量較大,導致數(shù)據(jù)加密效率低下。并且,使用單一的混沌系統(tǒng)生成掩蓋數(shù)組,容易導致掩蓋數(shù)組出現(xiàn)周期性,降低加密數(shù)據(jù)被破解的難度,影響被加密數(shù)據(jù)的安全性,且掩蓋數(shù)組與被加密數(shù)據(jù)的邏輯運算方法單一,也降低被加密數(shù)據(jù)破解的難度。而現(xiàn)有一些圖像加密方法中也應用混沌系統(tǒng)進行加密,該加密方法是將需要加密的圖像分成多個子圖像塊,然后應用混沌系統(tǒng)生成混沌序列,并應用混沌序列生成一個主遍歷矩陣,應用主遍歷矩陣對多個子圖像塊進行置亂加密。但是,上述方法僅能針對圖像進行加密處理,且是通過對子圖像塊進行置亂實現(xiàn)加密,被破解難度較小,也不適用于普通文本數(shù)據(jù)的加密,應用領域較窄。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種方便對被加密數(shù)據(jù)的部分數(shù)據(jù)進行解密的數(shù)據(jù)加密方法。本發(fā)明的另一目的是提供一種增加被加密數(shù)據(jù)破解難度的數(shù)據(jù)加密方法。
本發(fā)明的再一目的上提供一種對數(shù)據(jù)加密效率較高的數(shù)據(jù)加密系統(tǒng)。為了實現(xiàn)上述的主要目的,本發(fā)明提供的數(shù)據(jù)加密方法包括掩蓋數(shù)組生成步驟 選取混沌系統(tǒng)的函數(shù),并根據(jù)混沌系統(tǒng)的函數(shù)生成混沌序列,應用混沌序列生成掩蓋數(shù)組; 數(shù)據(jù)分塊步驟對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;加密步驟應用掩蓋數(shù)組與每一數(shù)據(jù)塊進行邏輯運算。由上述方案可見,對需要加密的數(shù)據(jù)劃分成多個數(shù)據(jù)塊并分別對每一數(shù)據(jù)塊進行加密處理,需要對被加密數(shù)據(jù)的某一部分數(shù)據(jù)進行解密時,僅需要對該數(shù)據(jù)塊進行單獨地解密即可,無需對所有的被加密數(shù)據(jù)進行解密,方便對被加密數(shù)據(jù)的部分數(shù)據(jù)進行解密操作。并且,將需要加密的數(shù)據(jù)進行分塊,可減少生成的混沌序列的長度,從而減少嵌入式系統(tǒng)的運算量,提高數(shù)據(jù)加密的效率。一個優(yōu)選的方案是,生成混沌序列的步驟包括選取混沌系統(tǒng)的函數(shù)后,選取確?;煦缦到y(tǒng)能夠進入混沌狀態(tài)的多個可選系統(tǒng)參數(shù),確定一個密鑰數(shù)據(jù),根據(jù)密鑰數(shù)據(jù)選取函數(shù)的初始值及系統(tǒng)參數(shù),被選取的系統(tǒng)參數(shù)為多個可選系統(tǒng)參數(shù)中的至少一個,應用所選取的系統(tǒng)參數(shù)及初始值迭代運算生成混沌序列。由此可見,通過密鑰選取初始值及系統(tǒng)參數(shù),能夠增加初始值及系統(tǒng)參數(shù)的隨機性,從而可靈活方便地改變混沌序列以及掩蓋數(shù)組的數(shù)據(jù),增加被加密數(shù)據(jù)破解的難度。進一步的方案是,生成掩蓋數(shù)組后,對掩蓋數(shù)組進行周期性檢測,判斷掩蓋數(shù)組是否出現(xiàn)周期,若出現(xiàn)周期,重新選取函數(shù)的初始值和/或系統(tǒng)參數(shù),重新生成掩蓋數(shù)組后再次進行周期性檢測,直至判斷所生成的掩蓋數(shù)組不再出現(xiàn)周期??梢姡瑢ι傻难谏w數(shù)組進行周期性檢測,能夠避免掩蓋數(shù)組出現(xiàn)周期性,從而增加被加密數(shù)據(jù)被破解的難度。為實現(xiàn)上述的再一目的,本發(fā)明提供的數(shù)據(jù)加密系統(tǒng)包括掩蓋數(shù)組生成單元,用于選取混沌系統(tǒng)的函數(shù),并根據(jù)混沌系統(tǒng)的函數(shù)生成混沌序列,并應用混沌序列生成掩蓋數(shù)組;數(shù)據(jù)分塊單元,用于對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;加密單元,應用掩蓋數(shù)組與多個數(shù)據(jù)塊進行邏輯運算。由上述方案可見,對需要加密的數(shù)據(jù)進行分塊,能夠方便地對被加密數(shù)據(jù)的一部分數(shù)據(jù)進行解密,并且對數(shù)據(jù)分塊后,每一數(shù)據(jù)塊的長度較短,所需的混沌序列也較短,嵌入式系統(tǒng)生成的混沌序列的效率較高,提高了數(shù)據(jù)加密的效率。一個優(yōu)選的方案是,所述掩蓋數(shù)組生成單元包括有可選系統(tǒng)參數(shù)計算模塊,用于計算確保混沌系統(tǒng)能夠進入混沌狀態(tài)的多個可選系統(tǒng)參數(shù);密鑰計算模塊,用于計算并確定一個密鑰數(shù)據(jù);混沌序列生成模塊,根據(jù)密鑰數(shù)據(jù)選取函數(shù)的初始值及系統(tǒng)參數(shù),被選取的系統(tǒng)參數(shù)為多個可選系統(tǒng)參數(shù)中的至少一個,應用取的系統(tǒng)參數(shù)及初始值迭代運算生成混沌序列;掩蓋數(shù)組生成模塊,根據(jù)混沌序列計算生成掩蓋數(shù)組。由此可見,數(shù)據(jù)加密系統(tǒng)通過密鑰數(shù)據(jù)選取混沌系統(tǒng)的系統(tǒng)參數(shù)及初始值,能夠增加系統(tǒng)參數(shù)及初始值的隨機性,使生成的混沌序列具有隨機性,增加被加密數(shù)據(jù)的破解難度,從而提高被加密數(shù)據(jù)的安全性。
圖1是本發(fā)明數(shù)據(jù)加密系統(tǒng)實施例的框圖。
圖2是本發(fā)明數(shù)據(jù)加密方法實施例的流程圖。以下結合附圖及實施例對本發(fā)明作進一步說明。
具體實施例方式本發(fā)明的數(shù)據(jù)加密方法以及數(shù)據(jù)加密系統(tǒng)應用在嵌入式系統(tǒng)中,用于對文本、音頻、視頻、圖像等各種數(shù)據(jù)進行加密。被加密的數(shù)據(jù)通常由多個字節(jié)組成,每一字節(jié)由十六位二進制數(shù)組成。參見圖1,數(shù)據(jù)加密系統(tǒng)由掩蓋數(shù)組生成單元10、數(shù)據(jù)分塊單元20以及加密單元 30組成,其中掩蓋數(shù)生成單元10用于應用混沌系統(tǒng)生成掩蓋數(shù)組,其具有可選系統(tǒng)參數(shù)生成模塊11、密鑰計算模塊12、混沌序列生成模塊13、掩蓋數(shù)組生成模塊14以及周期性檢測模塊15,下面結合數(shù)據(jù)加密方法對數(shù)據(jù)加密系統(tǒng)的各個單元、模塊的功能進行描述。參見圖2,對需要加密的數(shù)據(jù)進行加密前,首先由掩蓋數(shù)組生成單元生成一個掩蓋數(shù)組,掩蓋數(shù)組用于與需要加密的數(shù)據(jù)進行邏輯運算,也就是對需要加密的數(shù)據(jù)進行“掩蓋”,防止需要加密的數(shù)據(jù)被識別出。本實施例的掩蓋數(shù)組是應用混沌系統(tǒng)生成的混沌序列來生成的,由于混沌序列具有不規(guī)則性、隨機性的特點,使用混沌序列生成掩蓋數(shù)組能夠增加被加密數(shù)據(jù)破解的難度, 保障被加密數(shù)據(jù)的安全性。生成掩蓋數(shù)組首先需要執(zhí)行步驟Si,選取混沌系統(tǒng)的函數(shù),本實施例中,選取的函數(shù)是混沌系統(tǒng)最常見的函數(shù)
y = k χ χ χ (l - χ)(式 1)
其中k是混沌系統(tǒng)的系統(tǒng)參數(shù),χ是變量,y是混沌系統(tǒng)的輸出值,每計算一次后,將計算出的輸出值y代入式1中作為新的變量χ,不斷迭代計算出一系列的輸出值,從而形成一個混沌序列。對于混沌系統(tǒng)的函數(shù),并不是選取任意的系統(tǒng)參數(shù)都可以使混沌系統(tǒng)進入混沌狀態(tài),因此,需要由可選系統(tǒng)參數(shù)生成模塊選取合適的系統(tǒng)參數(shù)及初始值,確?;煦缦到y(tǒng)能夠進入混沌狀態(tài)。例如,式1中,選取初始值X為0. 1,經(jīng)過計算,當系統(tǒng)參數(shù)k取3. 792393時能夠使混沌系統(tǒng)進入混沌狀態(tài),則3. 792393為一個可選的系統(tǒng)參數(shù)。類似地,對系統(tǒng)參數(shù)k 的取值從0至4進行遍歷,取小數(shù)點后6位數(shù),得到更多符合要求的可選系統(tǒng)參數(shù),從這些可選系統(tǒng)參數(shù)中隨機選取256個,形成可選系統(tǒng)參數(shù)集,并對每一可選系統(tǒng)參數(shù)進行編號, 記為ksW]、ks[l]...ks[255]。這樣即完成步驟S2。然后,由數(shù)據(jù)分塊單元對需要加密的數(shù)據(jù)進行分塊,即執(zhí)行步驟S3。假設需要加密的數(shù)據(jù)長度為len,劃分后每一數(shù)據(jù)塊的長度為nblock,則可以通過下面公式計算每一數(shù)據(jù)塊的長度nblock
nblock = len% (9739 - 7523) + 7529(式 2)
式2中,“%”是取余數(shù)的運算符,9739與7523都是10000以內(nèi)隨機選取的兩個素數(shù),目的是增加劃分后數(shù)據(jù)塊長度的隨機性。確定每一數(shù)據(jù)塊的長度后,對需要加密的數(shù)據(jù)進行分塊,最后不足一塊的部分當作一塊處理。
6
接著,執(zhí)行步驟S4,密鑰生成模塊隨機選取一個初始密鑰數(shù)據(jù),該初始密鑰數(shù)據(jù)由 16位字節(jié)數(shù)據(jù)構成,然后對初始密鑰數(shù)據(jù)進行MD5 (Message Digest Algorithm,消息摘要算法第五版)運算,得到16個字節(jié)數(shù)據(jù)的密鑰數(shù)據(jù),對密鑰數(shù)據(jù)的每一字節(jié)數(shù)據(jù)進行編號, 即將該密鑰數(shù)據(jù)的每一字節(jié)數(shù)據(jù)分別記為key_md5
、key_md5[l]…key_md5[15]。對初始密鑰數(shù)據(jù)進行MD5運算能夠提高密鑰數(shù)據(jù)的各個字節(jié)數(shù)據(jù)的相關性,增加破解的難度。并且,由于密鑰數(shù)據(jù)的每一個字節(jié)數(shù)據(jù)均為8位二進制數(shù),對應的十進制數(shù)的數(shù)值范圍是0到255。密鑰數(shù)據(jù)的多個字節(jié)數(shù)據(jù)組成一個數(shù)組,稱為密鑰數(shù)組。然后,對密鑰數(shù)組進行加權平均值的運算,計算密鑰數(shù)組的算術平均值key_i,以此確定混沌系統(tǒng)的初始值xO
權利要求
1.數(shù)據(jù)加密方法,包括掩蓋數(shù)組生成步驟選取混沌系統(tǒng)的函數(shù),并根據(jù)所述混沌系統(tǒng)的函數(shù)生成混沌序列, 應用所述混沌序列生成掩蓋數(shù)組; 其特征在于數(shù)據(jù)分塊步驟對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 加密步驟應用所述掩蓋數(shù)組與每一所述數(shù)據(jù)塊進行邏輯運算。
2.根據(jù)權利要求1所述的數(shù)據(jù)加密方法,其特征在于生成所述混沌序列的步驟包括選取所述混沌系統(tǒng)的函數(shù)后,選取確保所述混沌系統(tǒng)能夠進入混沌狀態(tài)的多個可選系統(tǒng)參數(shù),確定一個密鑰數(shù)據(jù),根據(jù)所述密鑰數(shù)據(jù)選取所述函數(shù)的初始值及系統(tǒng)參數(shù),所述系統(tǒng)參數(shù)為多個所述可選系統(tǒng)參數(shù)中的至少一個,應用所選取的系統(tǒng)參數(shù)及所述初始值迭代運算生成混沌序列。
3.根據(jù)權利要求2所述的數(shù)據(jù)加密方法,其特征在于所述掩蓋數(shù)組生成步驟中,選取二個或二個以上的所述可選系統(tǒng)參數(shù)生成二組或二組以上的所述混沌序列,應用多組所述混沌序列生成多組所述掩蓋數(shù)組;所述加密步驟中,應用多組所述掩蓋數(shù)組與所述多個數(shù)據(jù)塊進行邏輯運算。
4.根據(jù)權利要求1至3任一項所述的數(shù)據(jù)加密方法,其特征在于生成所述掩蓋數(shù)組后,對所述掩蓋數(shù)組進行周期性檢測,判斷所述掩蓋數(shù)組是否出現(xiàn)周期,若出現(xiàn)周期,重新選取所述函數(shù)的初始值或/和系統(tǒng)參數(shù),重新生成掩蓋數(shù)組后再次進行周期性檢測,直至判斷所生成的掩蓋數(shù)組不再出現(xiàn)周期。
5.根據(jù)權利要求1至3任一項所述的數(shù)據(jù)加密方法,其特征在于所述加密步驟中,使用二種或二種以上的邏輯運算方法對所述掩蓋數(shù)組與所述多個數(shù)據(jù)塊進行邏輯運算。
6.數(shù)據(jù)加密系統(tǒng),包括掩蓋數(shù)組生成單元,用于選取混沌系統(tǒng)的函數(shù),并根據(jù)所述混沌系統(tǒng)的函數(shù)生成混沌序列,并應用所述混沌序列生成掩蓋數(shù)組; 其特征在于數(shù)據(jù)分塊單元,用于對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 加密單元,應用所述掩蓋數(shù)組與所述多個數(shù)據(jù)塊進行邏輯運算。
7.根據(jù)權利要求6所述的數(shù)據(jù)加密系統(tǒng),其特征在于 所述掩蓋數(shù)組生成單元包括可選系統(tǒng)參數(shù)計算模塊,用于計算確保所述混沌系統(tǒng)能夠進入混沌狀態(tài)的多個可選系統(tǒng)參數(shù);密鑰計算模塊,用于計算并確定一個密鑰數(shù)據(jù);混沌序列生成模塊,根據(jù)所述密鑰數(shù)據(jù)選取所述函數(shù)的初始值及系統(tǒng)參數(shù),所述系統(tǒng)參數(shù)為多個所述可選系統(tǒng)參數(shù)中的至少一個,應用所選取的系統(tǒng)參數(shù)及所述初始值迭代運算生成混沌序列;掩蓋數(shù)組生成模塊,根據(jù)所述混沌序列計算生成掩蓋數(shù)組。
8.根據(jù)權利要求6或7所述的數(shù)據(jù)加密系統(tǒng),其特征在于所述掩蓋數(shù)組生成單元還包括周期性檢測模塊,用于對所生成的掩蓋數(shù)組進行周期性檢測。
9.根據(jù)權利要求6或7所述的數(shù)據(jù)加密系統(tǒng),其特征在于 所述加密單元存儲有二個或二個以上的邏輯運算式。
全文摘要
本發(fā)明提供一種數(shù)據(jù)加密方法及數(shù)據(jù)加密系統(tǒng),該方法包括掩蓋數(shù)組生成步驟選取混沌系統(tǒng)的函數(shù),并根據(jù)混沌系統(tǒng)的函數(shù)生成混沌序列,應用混沌序列生成掩蓋數(shù)組;數(shù)據(jù)分塊步驟對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;加密步驟應用掩蓋數(shù)組與每一數(shù)據(jù)塊進行邏輯運算。該系統(tǒng)包括掩蓋數(shù)組生成單元,用于選取混沌系統(tǒng)的函數(shù),并根據(jù)混沌系統(tǒng)的函數(shù)生成混沌序列,并應用混沌序列生成掩蓋數(shù)組;數(shù)據(jù)分塊單元,用于對需要加密的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;加密單元,應用掩蓋數(shù)組與多個數(shù)據(jù)塊進行邏輯運算。本發(fā)明能方便地對被加密數(shù)據(jù)的一部分數(shù)據(jù)進行解密,且提高數(shù)據(jù)加密的效率,增加被加密數(shù)據(jù)破解的難度,提高被加密數(shù)據(jù)的安全性。
文檔編號G06F21/24GK102306262SQ20111025457
公開日2012年1月4日 申請日期2011年8月31日 優(yōu)先權日2011年8月31日
發(fā)明者陳文君 申請人:深圳芯智匯科技有限公司