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

一種文件存儲加密方法及系統(tǒng)與流程

文檔序號:11778150閱讀:587來源:國知局
一種文件存儲加密方法及系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)存儲安全領(lǐng)域,尤其涉及一種文件存儲加密方法及系統(tǒng)。



背景技術(shù):

信息科技發(fā)展日新月異,大數(shù)據(jù)(bigdata)吸引了越來越多人的關(guān)注。目前,大數(shù)據(jù)資源很多存放在云服務(wù)器上,通過網(wǎng)絡(luò)就可以使用,但是信息甚至隱私的泄露也觸發(fā)了人們對這些數(shù)據(jù)安全性的擔(dān)憂,因而大數(shù)據(jù)的安全性變得越來越重要。

現(xiàn)有技術(shù)中對文件存儲加密方式未傳統(tǒng)可逆的存儲加密,傳統(tǒng)可逆的存儲加密易被破解,導(dǎo)致數(shù)據(jù)的安全性較低。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種新型文件存儲加密方法及系統(tǒng),以實現(xiàn)提高存儲在服務(wù)器上大數(shù)據(jù)的安全性。

本發(fā)明一種文件存儲加密方法,包括:

s100將所述待存儲的文件原文通過數(shù)據(jù)流的形式轉(zhuǎn)換成二進(jìn)制原文數(shù)據(jù);

s200將所述二進(jìn)制原文數(shù)據(jù)按照預(yù)設(shè)位數(shù)h由前向后進(jìn)行分組,最后一組二進(jìn)制原文數(shù)據(jù)的位數(shù)小于或等于h;

s300獲取分組后位數(shù)為h的二進(jìn)制原文數(shù)據(jù)組的組數(shù)n;

s400根據(jù)位數(shù)h及所述組數(shù)n確定加密參數(shù)c;

s500根據(jù)所述加密參數(shù)c,將所述二進(jìn)制原文數(shù)據(jù)組進(jìn)行加密,獲得對應(yīng)的二進(jìn)制密文數(shù)據(jù)組;

s600將所有的二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù),并將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換為文件密文進(jìn)行存儲。

上述步驟s200是指將所述二進(jìn)制原文數(shù)據(jù)沿著數(shù)據(jù)排列方向按照預(yù)設(shè)位數(shù)h依次進(jìn)行分組,如果該二進(jìn)制原文數(shù)據(jù)不能被分成整數(shù)個h位的二進(jìn)制原文數(shù)據(jù)組,末尾小于h位的剩余數(shù)據(jù)作為尾數(shù),單獨一組,位于最后。

上述步驟s400中,加密參數(shù)的確定是由預(yù)設(shè)位數(shù)、分組后位數(shù)為預(yù)設(shè)位數(shù)的二進(jìn)制原文數(shù)據(jù)組的組數(shù)共同來確定的。也就是說步驟s400中的所述組數(shù)是指步驟s300中獲取的組數(shù)。

進(jìn)一步地,所述步驟s500包括:

s510根據(jù)所述加密參數(shù)c,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文數(shù)據(jù)依次進(jìn)行同或位或者異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文數(shù)據(jù);余下每組的二進(jìn)制密文數(shù)據(jù)與對應(yīng)組的二進(jìn)制原文數(shù)據(jù)一致;

s520將獲得的所有二進(jìn)制密文數(shù)據(jù)組按順序組合,形成二進(jìn)制密文數(shù)據(jù);

s530將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換成文件密文進(jìn)行存儲。

“同或”是一個數(shù)學(xué)運算符,應(yīng)用于邏輯運算。同或的數(shù)學(xué)符號為⊙,其運算法則為a⊙b=ab+a'b'(a'為非a,b'為非b);就是說兩個值相同,則同或結(jié)果為真。反之,為假。——簡稱同真,異假。即,同或:相同為1,不同為0。

“異或”是一個數(shù)學(xué)運算符。它應(yīng)用于邏輯運算。異或的數(shù)學(xué)符號為其運算法則為:如果a、b兩個值不相同,則異或結(jié)果為1。如果a、b兩個值相同,異或結(jié)果為0。

進(jìn)一步地,所述步驟s400中,所述加密參數(shù)c為加密過程中需要參與運算相鄰二進(jìn)制數(shù)據(jù)組的組數(shù);所述加密參數(shù)c=n%h+2,當(dāng)n%h=h-1時,約定c=h。

進(jìn)一步地,所述步驟s510包括:

s511當(dāng)所述加密參數(shù)為奇數(shù)時,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組;

s512當(dāng)所述加密參數(shù)為偶數(shù)時,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行同或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組。

進(jìn)一步地,所述位數(shù)h的取值為8、16、32、或64之中任意一個。

另一方面,本發(fā)明還提供了一種文件存儲加密系統(tǒng),包括:轉(zhuǎn)換模塊,用于將所述待存儲的文件原文通過數(shù)據(jù)流的形式轉(zhuǎn)換成二進(jìn)制原文數(shù)據(jù);將組合后的二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換為文件密文;分組模塊,用于將所述二進(jìn)制原文數(shù)據(jù)按照預(yù)設(shè)位數(shù)h由前向后進(jìn)行分組,最后一組二進(jìn)制原文數(shù)據(jù)的位數(shù)小于或等于h;參數(shù)獲取模塊,用于獲取分組后位數(shù)為h的二進(jìn)制原文數(shù)據(jù)組的組數(shù)n;并根據(jù)位數(shù)h及所述組數(shù)n確定加密參數(shù)c;加密模塊,用于根據(jù)所述加密參數(shù)c,將所述二進(jìn)制原文數(shù)據(jù)組進(jìn)行加密,獲得對應(yīng)的二進(jìn)制密文數(shù)據(jù)組;組合模塊,用于將所有二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù)。

進(jìn)一步地,所述加密模塊包括運算子模塊;所述運算子模塊根據(jù)所述加密參數(shù)c,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文數(shù)據(jù)依次進(jìn)行同或位或者異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文數(shù)據(jù);余下每組的二進(jìn)制密文數(shù)據(jù)與對應(yīng)組的二進(jìn)制原文數(shù)據(jù)一致。

進(jìn)一步地,所述加密參數(shù)c為加密過程中需要參與運算相鄰二進(jìn)制數(shù)據(jù)組的組數(shù);所述加密參數(shù)c=n%h+2,當(dāng)n%h=h-1時,約定c=h。

進(jìn)一步地,所述加密模塊還包括判斷子模塊;當(dāng)所述判斷子模塊判斷所述加密參數(shù)為奇數(shù)時,所述運算子模塊在所述判斷子模塊的控制下,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組;當(dāng)所述判斷子模塊判斷所述加密參數(shù)為偶數(shù)時,所述運算子模塊在所述判斷子模塊的控制下,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行同或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組。

進(jìn)一步地,所述位數(shù)h的取值為8、16、32、或64之中任意一個。

本發(fā)明所提供的一種文件存儲加密方法及系統(tǒng),通過數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)分組、數(shù)據(jù)加密及轉(zhuǎn)換后進(jìn)行文件密文存儲。由于加密過程中的使用的加密參數(shù)是跟隨用戶選取的位數(shù)和組數(shù)而定的,并不是固定不變的,也就是使得后面的加密過程也是不一樣的,另外加密可以根據(jù)實際需求采用同或或者異或的方式進(jìn)行加密,使得最后得到的新的二進(jìn)制數(shù)據(jù)安全性很高,達(dá)到了更加安全的可逆加密操作,提高了數(shù)據(jù)的安全性。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實施例一中的文件存儲加密方法流程圖;

圖2為本發(fā)明實施例三中的文件存儲加密方法流程圖;

圖3為本發(fā)明實施例四中的文件存儲加密方法示意圖;

圖4為本發(fā)明實施例四中的文件存儲加密圖解示意圖;

圖5為本發(fā)明實施例五中的文件存儲加密系統(tǒng)框圖;

圖6為本發(fā)明實施例六中的文件存儲加密系統(tǒng)框圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

本發(fā)明公開了一種文件存儲加密方法,實施例一如圖1所示,包括:

s100將所述待存儲的文件原文通過數(shù)據(jù)流的形式轉(zhuǎn)換成二進(jìn)制原文數(shù)據(jù);

s200將所述二進(jìn)制原文數(shù)據(jù)按照預(yù)設(shè)位數(shù)h由前向后進(jìn)行分組,最后一組二進(jìn)制原文數(shù)據(jù)的位數(shù)小于或等于h;

s300獲取分組后位數(shù)為h的二進(jìn)制原文數(shù)據(jù)組的組數(shù)n;

s400根據(jù)位數(shù)h及所述組數(shù)n確定加密參數(shù)c;

s500根據(jù)所述加密參數(shù)c,將所述二進(jìn)制原文數(shù)據(jù)組進(jìn)行加密,獲得對應(yīng)的二進(jìn)制密文數(shù)據(jù)組;

s600將所有的二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù),并將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換為文件密文進(jìn)行存儲。

較佳的,上述位數(shù)h的取值為8、16、32、或64之中任意一個。

該實施例中,將文件轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),對二進(jìn)制數(shù)據(jù)進(jìn)行分組,每組h位,如果轉(zhuǎn)換后的二進(jìn)制原文數(shù)據(jù)不能分成整數(shù)個h位的二進(jìn)制數(shù),分組后得到n組h位二進(jìn)制數(shù)和一個尾數(shù),這個尾數(shù)是最后一組不夠h位的二進(jìn)制數(shù)。根據(jù)位數(shù)h和組數(shù)n獲得一個加密參數(shù),然后根據(jù)這個加密參數(shù),對二進(jìn)制原文數(shù)據(jù)組加密獲得二進(jìn)制密文數(shù)據(jù)組,最后得到新的二進(jìn)制密文數(shù)據(jù)組,最后存儲的時候還要將二進(jìn)制密文轉(zhuǎn)換為文件密文來存儲,通過這樣的方式的話數(shù)據(jù)安全性很高。

上述實施例1中的步驟s500包括:

s510根據(jù)所述加密參數(shù)c,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文數(shù)據(jù)依次進(jìn)行同或位或者異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文數(shù)據(jù);余下每組的二進(jìn)制密文數(shù)據(jù)與對應(yīng)組的二進(jìn)制原文數(shù)據(jù)一致;

s520將獲得的所有二進(jìn)制密文數(shù)據(jù)組按順序組合,形成二進(jìn)制密文數(shù)據(jù);

s530將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換成文件密文進(jìn)行存儲。

較佳的,所述加密參數(shù)c為加密過程中需要參與運算相鄰二進(jìn)制數(shù)據(jù)組的組數(shù);所述加密參數(shù)c=n%h+2,當(dāng)n%h=h-1時,約定c=h。

比如將原始的二進(jìn)制數(shù)據(jù)每8位分一組,共分了25組,其中前24組都是8位,最后一組3位,那么這里的整數(shù)個8位二進(jìn)制數(shù)組n為24,h為8,那么c=24%8+2=2。那么,需要參與運算相鄰二進(jìn)制數(shù)據(jù)組的組數(shù)就是2組,那么就是說,每組的二進(jìn)制數(shù)據(jù)密文為:從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰的2組二進(jìn)制原文進(jìn)行同或位或者異或位運算來加密。由此,我們可以算出前面23組的二進(jìn)制密文數(shù)據(jù),第24組和最后一組尾數(shù)的二進(jìn)制密文數(shù)據(jù)則采用原來的二進(jìn)制原文數(shù)據(jù)本身,不做運算和變化。其中第24組我們可以作為參考基準(zhǔn),便于以后解密時使用,根據(jù)c的值,按照從后往前的順序,除去尾數(shù)組外,1至c-1組均為參考基準(zhǔn)二進(jìn)制原文,參考基準(zhǔn)二進(jìn)制原文對應(yīng)的密文也是其原文本身。此外,由于當(dāng)組數(shù)n除以每組位數(shù)h余數(shù)為h-1,對應(yīng)的加密參數(shù)c為h+1,該值大于每組位數(shù),為了更方便進(jìn)行后續(xù)的運算,規(guī)定此時c=h。

下面,我們舉個簡單的例子,本發(fā)明的實施例二,比如待存儲的數(shù)據(jù)原文為“fdc?bekj!”,我們通過oi數(shù)據(jù)流的形式轉(zhuǎn)換為二進(jìn)制原文數(shù)據(jù)如下:

然后,我們將上述的二進(jìn)制原文數(shù)據(jù)按照每組8位進(jìn)行分組:

由上可以看出,按照每組8位進(jìn)行分組,正好分成了10組,根據(jù)位數(shù)和完整的組數(shù)可計算出加密參數(shù)c,c=10%8+2=4;獲得加密參數(shù)c的值后,我們再來進(jìn)行加密運算,假設(shè)是采用同或進(jìn)行運算,上述10組二進(jìn)制原文分別為a1、a2、a3......a10,加密后的10組二進(jìn)制密文分別為e1、e2、e3......e10,由前向后將相鄰4組的8位二進(jìn)制原文數(shù)據(jù)進(jìn)行同或位運算,即en=an⊙an+1⊙an+2⊙an+3(n≤7),e8=a8,e9=a9,e10=a10。e8、e9、e10為對應(yīng)的參考基準(zhǔn)二進(jìn)制原文,后續(xù)用戶解密的話,只要知道加密參數(shù),便可推導(dǎo)出哪些是基準(zhǔn)二進(jìn)制原文,進(jìn)而解密。二進(jìn)制密文如下:

將上述二進(jìn)制密文數(shù)據(jù)組按順序組合連接后如下:

111110100110010010000011011000101010010111010110111100000100101

10100101000100001

再將上述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)化為文件密文再進(jìn)行存儲。

本發(fā)明的實施例三,如圖2所示,包括:

s101將所述待存儲的文件原文通過數(shù)據(jù)流的形式轉(zhuǎn)換成二進(jìn)制原文數(shù)據(jù);

s102將所述二進(jìn)制原文數(shù)據(jù)按照預(yù)設(shè)位數(shù)h由前向后進(jìn)行分組,最后一組二進(jìn)制原文數(shù)據(jù)的位數(shù)小于或等于h;

s103獲取分組后位數(shù)為h的二進(jìn)制原文數(shù)據(jù)組的組數(shù)n;

s104根據(jù)位數(shù)h及所述組數(shù)n確定加密參數(shù)c;

s105判斷所述加密參數(shù)是奇數(shù)還是偶數(shù),若是奇數(shù),則進(jìn)入步驟s106,若是偶數(shù)進(jìn)入s107;

s106采用異或位運算方式,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組;

s107采用同或位運算方式,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行同或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組;

s108將獲得的所有二進(jìn)制密文數(shù)據(jù)組按順序組合,形成二進(jìn)制密文數(shù)據(jù);

s109將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換成文件密文進(jìn)行存儲;

s110將所有的二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù),并將所述二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換為文件密文進(jìn)行存儲。

上述實施例,通過加密參數(shù)c的奇偶性來選擇運算方式,如此,增加了數(shù)據(jù)的安全性,也更難破解了。而且存儲時存儲的是文件密文,一般很難看出是已經(jīng)加密過的數(shù)據(jù)。因此,安全性也更高。

本發(fā)明的實施例四,加密示意圖如圖3所示,通過數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)分組、數(shù)據(jù)加密及存儲等過程完成文件存儲加密。本實施例采用異或的運算方式。具體如下:

(1)數(shù)據(jù)轉(zhuǎn)換

將需要存儲文件原文tot通過數(shù)據(jù)流轉(zhuǎn)換成二進(jìn)制,記做bot。

(2)數(shù)據(jù)分組

將二進(jìn)制原文bot按照h(h=8、16、32或64,h可以根據(jù)用戶需求進(jìn)行取值)位進(jìn)行分組,組數(shù)記做n,分別記做b1、b2、b3、…、bn,分組剩下的二進(jìn)制數(shù)據(jù)記做bend。

加密參數(shù)記做c,其值為c=n%h+2(特別地,當(dāng)n%h=h-1時候,約定c=h)。加密參數(shù)c用于確定加密過程中需要參與異或運算相鄰二進(jìn)制組數(shù)。由于當(dāng)組數(shù)n除以每組位數(shù)h余數(shù)為h-1,對應(yīng)的加密參數(shù)c為h+1,該值大于每組位數(shù),為了更方便進(jìn)行廣義斐波那契算法異或運算,規(guī)定此時c=h。例如,h=8、n=63時,則n%n=7=8-1,按照規(guī)定,此時c=8,即加密過程中,使用相鄰8組二進(jìn)制原文依次進(jìn)行異或運算。

上述分組中,用于做參考基準(zhǔn)二進(jìn)制為bn-c+2、bn-c+3、…、bn。經(jīng)過廣義斐波那契算法,得到的密文組數(shù)為n-c+1,剩下c-1組密文(不包括尾數(shù))就等于對應(yīng)的參考基準(zhǔn)二進(jìn)制原文。

(3)數(shù)據(jù)加密

對h位二進(jìn)制原文bot進(jìn)行加密,得到對應(yīng)的h位二進(jìn)制密文ect={e1、e2、e3、…、en、eend}。具體規(guī)則是:由前向后,相鄰c個組h位二進(jìn)制數(shù)據(jù)進(jìn)行異或運算,即en-c+2=bn-c+2、en-c+3=bn-c+3、…、en=bn、eend=bend。也就是所,對于前n-c+1組密文而言,獲取方式是將相鄰c組的h位二進(jìn)制原文依次進(jìn)行異或運算;而對于剩下c-1組密文就等于對應(yīng)的參考基準(zhǔn)二進(jìn)制原文;最后如果有尾數(shù),則密文尾數(shù)與原文尾數(shù)相同。

所謂異或運算,就是數(shù)據(jù)對應(yīng)位不同為0,相同為1。

(4)數(shù)據(jù)存儲

把加密后的二進(jìn)制密文ect轉(zhuǎn)化為文件tet重新存儲,就完成了數(shù)據(jù)存儲加密過程。

來個簡單的例子,加密圖解過程如圖4所示,首先獲取數(shù)據(jù)原文tot,數(shù)據(jù)原文tot為x?k&e|~2#;然后加密過程如下:

1.1數(shù)據(jù)轉(zhuǎn)換,將原文tot轉(zhuǎn)換為二進(jìn)制原文數(shù)據(jù);

1.2數(shù)據(jù)分組

將二進(jìn)制原文bot按照8位(h=8)進(jìn)行分組,組數(shù)n=9,分別記做b1、b2、b3、…、b9,分組剩下的二進(jìn)制數(shù)據(jù)bend為空,即bend=null。此時廣義斐波那契參數(shù)c=3,對應(yīng)的參考基準(zhǔn)二進(jìn)制原文為b8、b9。二進(jìn)制原文bot如下。

011110000011111101101011

001001100110010101111100

011111100011001000100011

1.3數(shù)據(jù)加密

加密后的8位二進(jìn)制密文ect={e1、e2、e3、…、e9、eend}。具體規(guī)則是:由前向后,相鄰3個組8位二進(jìn)制數(shù)據(jù)進(jìn)行異或運算,即e8=b8、e9=b9、eend=bend=null。二進(jìn)制密文ect如下:

001011000111001000101000

001111110110011100110000

011011110011001000100011

1.4數(shù)據(jù)存儲

將二進(jìn)制密文ect轉(zhuǎn)化為文件tet重新存儲,加密后的文件te為:,r(?g0o2#

另一方面,本發(fā)明還提供了一種文件存儲加密系統(tǒng),本發(fā)明實施例五如圖5所示,包括:轉(zhuǎn)換模塊10,用于將所述待存儲的文件原文通過數(shù)據(jù)流的形式轉(zhuǎn)換成二進(jìn)制原文數(shù)據(jù);將組合后的二進(jìn)制密文數(shù)據(jù)轉(zhuǎn)換為文件密文;分組模塊20,用于將所述二進(jìn)制原文數(shù)據(jù)按照預(yù)設(shè)位數(shù)h由前向后進(jìn)行分組,最后一組二進(jìn)制原文數(shù)據(jù)的位數(shù)小于或等于h;參數(shù)獲取模塊30,用于獲取分組后位數(shù)為h的二進(jìn)制原文數(shù)據(jù)組的組數(shù)n;并根據(jù)位數(shù)h及所述組數(shù)n確定加密參數(shù)c;加密模塊40,用于根據(jù)所述加密參數(shù)c,將所述二進(jìn)制原文數(shù)據(jù)組進(jìn)行加密,獲得對應(yīng)的二進(jìn)制密文數(shù)據(jù)組;組合模塊,用于將所有二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù)。

在上述實施例的基礎(chǔ)上,本發(fā)明的實施例六如圖6所示,在上述實施例五的基礎(chǔ)上,所述加密模塊40包括運算子模塊41;所述運算子模塊41根據(jù)所述加密參數(shù)c,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文數(shù)據(jù)依次進(jìn)行同或位或者異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文數(shù)據(jù);余下每組的二進(jìn)制密文數(shù)據(jù)與對應(yīng)組的二進(jìn)制原文數(shù)據(jù)一致。

較佳的,所述加密參數(shù)c為加密過程中需要參與運算相鄰二進(jìn)制數(shù)據(jù)組的組數(shù);所述加密參數(shù)c=n%h+2,當(dāng)n%h=h-1時,約定c=h。

可見,該系統(tǒng)對文件存儲過程,將需要存儲文件原文tot通過數(shù)據(jù)流轉(zhuǎn)換成二進(jìn)制,記做bot。然后將二進(jìn)制原文bot按照h(h=8、16、32或64,h可以根據(jù)用戶需求進(jìn)行取值)位進(jìn)行分組,其中h位的二進(jìn)制數(shù)據(jù)組的組數(shù)記做n,分別記做b1、b2、b3、…、bn,分組剩下的二進(jìn)制數(shù)據(jù)記做bend。加密參數(shù)記做c,其值為c=n%h+2(特別地,當(dāng)g%h=h-1時候,約定c=h),上述分組中,用于做參考基準(zhǔn)二進(jìn)制為bn-c+2、bn-c+3、…、bn。然后對h位二進(jìn)制原文bot進(jìn)行加密,得到對應(yīng)的h位二進(jìn)制密文ect={e1、e2、e3、…、en、eend}。具體規(guī)則是:由前向后,相鄰c個組h位二進(jìn)制數(shù)據(jù)進(jìn)行同或或者異或運算(根據(jù)設(shè)定的運算方式),比如采用異或運算,即en-c+2=bn-c+2、en-c+3=bn-c+3、…、en=bn、eend=bend。最后把加密后的二進(jìn)制密文ect轉(zhuǎn)化為文件tet重新存儲。

較佳的,如圖6所示,所述加密模塊40還包括判斷子模塊42;當(dāng)所述判斷子模塊42判斷所述加密參數(shù)為奇數(shù)時,所述運算子模塊41在所述判斷子模塊42的控制下,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行同或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組;當(dāng)所述判斷子模塊42判斷所述加密參數(shù)為偶數(shù)時,所述運算子模塊41在所述判斷子模塊42的控制下,從對應(yīng)的二進(jìn)制原文數(shù)據(jù)組開始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行異或位運算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對應(yīng)的二進(jìn)制原文數(shù)據(jù)組。

上述任一實施例中,所述位數(shù)h的取值為8、16、32、或64之中任意一個。

盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1