国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

      文檔序號(hào):11778150閱讀:586來(lái)源:國(guó)知局
      一種文件存儲(chǔ)加密方法及系統(tǒng)與流程

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



      背景技術(shù):

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

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



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

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

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

      s100將所述待存儲(chǔ)的文件原文通過(guò)數(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)行加密,獲得對(duì)應(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)行存儲(chǔ)。

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

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

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

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

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

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

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

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

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

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

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

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

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

      另一方面,本發(fā)明還提供了一種文件存儲(chǔ)加密系統(tǒng),包括:轉(zhuǎn)換模塊,用于將所述待存儲(chǔ)的文件原文通過(guò)數(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)行加密,獲得對(duì)應(yīng)的二進(jìn)制密文數(shù)據(jù)組;組合模塊,用于將所有二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù)。

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

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

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

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

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

      附圖說(shuō)明

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

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

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

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

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

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

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

      具體實(shí)施方式

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

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

      s100將所述待存儲(chǔ)的文件原文通過(guò)數(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)行加密,獲得對(duì)應(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)行存儲(chǔ)。

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

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

      上述實(shí)施例1中的步驟s500包括:

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

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

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

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

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

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

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

      由上可以看出,按照每組8位進(jìn)行分組,正好分成了10組,根據(jù)位數(shù)和完整的組數(shù)可計(jì)算出加密參數(shù)c,c=10%8+2=4;獲得加密參數(shù)c的值后,我們?cè)賮?lái)進(jìn)行加密運(yùn)算,假設(shè)是采用同或進(jìn)行運(yùn)算,上述10組二進(jìn)制原文分別為a1、a2、a3......a10,加密后的10組二進(jìn)制密文分別為e1、e2、e3......e10,由前向后將相鄰4組的8位二進(jìn)制原文數(shù)據(jù)進(jìn)行同或位運(yùn)算,即en=an⊙a(bǔ)n+1⊙a(bǔ)n+2⊙a(bǔ)n+3(n≤7),e8=a8,e9=a9,e10=a10。e8、e9、e10為對(duì)應(yīng)的參考基準(zhǔn)二進(jìn)制原文,后續(xù)用戶(hù)解密的話,只要知道加密參數(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)行存儲(chǔ)。

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

      s101將所述待存儲(chǔ)的文件原文通過(guò)數(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ùn)算方式,從對(duì)應(yīng)的二進(jìn)制原文數(shù)據(jù)組開(kāi)始,由前向后將相鄰c組的二進(jìn)制原文依次進(jìn)行異或位運(yùn)算獲得前面n-c+1組中每組的二進(jìn)制密文;余下每組的二進(jìn)制密文即為對(duì)應(yīng)的二進(jìn)制原文數(shù)據(jù)組;

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

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

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

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

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

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

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

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

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

      將二進(jìn)制原文bot按照h(h=8、16、32或64,h可以根據(jù)用戶(hù)需求進(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時(shí)候,約定c=h)。加密參數(shù)c用于確定加密過(guò)程中需要參與異或運(yùn)算相鄰二進(jìn)制組數(shù)。由于當(dāng)組數(shù)n除以每組位數(shù)h余數(shù)為h-1,對(duì)應(yīng)的加密參數(shù)c為h+1,該值大于每組位數(shù),為了更方便進(jìn)行廣義斐波那契算法異或運(yùn)算,規(guī)定此時(shí)c=h。例如,h=8、n=63時(shí),則n%n=7=8-1,按照規(guī)定,此時(shí)c=8,即加密過(guò)程中,使用相鄰8組二進(jìn)制原文依次進(jìn)行異或運(yùn)算。

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

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

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

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

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

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

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

      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í)廣義斐波那契參數(shù)c=3,對(duì)應(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個(gè)組8位二進(jìn)制數(shù)據(jù)進(jìn)行異或運(yùn)算,即e8=b8、e9=b9、eend=bend=null。二進(jìn)制密文ect如下:

      001011000111001000101000

      001111110110011100110000

      011011110011001000100011

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

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

      另一方面,本發(fā)明還提供了一種文件存儲(chǔ)加密系統(tǒng),本發(fā)明實(shí)施例五如圖5所示,包括:轉(zhuǎn)換模塊10,用于將所述待存儲(chǔ)的文件原文通過(guò)數(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)行加密,獲得對(duì)應(yīng)的二進(jìn)制密文數(shù)據(jù)組;組合模塊,用于將所有二進(jìn)制密文數(shù)據(jù)組按順序進(jìn)行組合,形成二進(jìn)制密文數(shù)據(jù)。

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

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

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

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

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

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

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

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1