專利名稱:一種數(shù)據(jù)選擇加密解密方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)加密解密技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)選擇加密解密方法及裝置。
背景技術(shù):
對數(shù)據(jù)加密已經(jīng)被證明是一種行之有效的數(shù)據(jù)保護的方法。傳統(tǒng)的數(shù)據(jù)加密方 法是將全部數(shù)據(jù)以某種加密算法全部加密一次或多次,因為數(shù)據(jù)加密和解密過程需要消 耗很多系統(tǒng)資源和時間,使得數(shù)據(jù)在獲得保護的同時很難獲得良好的數(shù)據(jù)存取性能。
發(fā)明內(nèi)容
為了解決現(xiàn)有加密技術(shù)在加密和解密過程消耗系統(tǒng)資源和時間多,數(shù)據(jù)存取性 能差的問題,本發(fā)明提出了一種數(shù)據(jù)選擇加密解密方法和裝置,可以實現(xiàn)在獲得與原加 密數(shù)據(jù)量保護程度相當(dāng)?shù)那闆r下,減少了加密或解密的數(shù)據(jù)量,從而提高了數(shù)據(jù)加密和 解密的性能。本發(fā)明提供了一種數(shù)據(jù)選擇加密方法,所述方法包括按預(yù)置方法生成并存儲預(yù)定長度的真隨機數(shù)0、1串作為隨機種子;從所述隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的 隨機串;根據(jù)所述隨機串生成明文加密位標(biāo)識隨機串;根據(jù)所述明文加密位標(biāo)識隨機串,選取二分之一以上明文數(shù)據(jù)進行加密;按所在明文位置將所述加密數(shù)據(jù)與未加密數(shù)據(jù)排列形成密文。本發(fā)明提供了一種數(shù)據(jù)選擇加密裝置,所述裝置包括真隨機數(shù)生成模塊,用于按預(yù)置方法生成并存儲真隨機數(shù)及預(yù)定長度的真隨機 數(shù)0、1串,作為隨機種子;加密位標(biāo)識隨機串生成模塊,用于從所述真隨機數(shù)生成模塊生成的隨機種子中 多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機串,根據(jù)所述隨機串生 成明文加密位標(biāo)識隨機串;明文數(shù)據(jù)選取加密模塊,用于根據(jù)所述加密位標(biāo)識隨機串生成模塊生成的明文 加密位標(biāo)識隨機串選取二分之一以上的明文數(shù)據(jù)加密;密文形成模塊,用于將所述明文數(shù)據(jù)選取加密模塊加密的數(shù)據(jù)與未加密的數(shù)據(jù) 按所在明文位置排列形成密文。本發(fā)明提供了一種數(shù)據(jù)選擇解密方法,所述方法包括從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密位標(biāo)識隨機串;根據(jù)所述明文加密位標(biāo)識隨機串,從密文中分離出加密數(shù)據(jù)并解密;將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。本發(fā)明還提供了一種數(shù)據(jù)選擇解密裝置,所述裝置包括
明文加密位標(biāo)識隨機串重構(gòu)模塊,用于從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密 明文對應(yīng)的明文加密位標(biāo)識隨機串;加密數(shù)據(jù)分離解密模塊,用于根據(jù)所述明文加密位標(biāo)識隨機串,從密文中分離 出加密數(shù)據(jù)并解密;明文還原模塊,用于將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。本發(fā)明通過對生成的隨機種子多次采集數(shù)據(jù)生成并利用明文加密位標(biāo)識隨機 串,從明文中隨機選擇二分之一以上的數(shù)據(jù)加密,解密時通過重構(gòu)加密明文對應(yīng)的明文 加密位標(biāo)識隨機串,選擇密文中加密數(shù)據(jù)解密,實現(xiàn)了不犧牲數(shù)據(jù)保護強度同時,大大 提高了數(shù)據(jù)加解密速度。
圖1是本發(fā)明實施例提供的數(shù)據(jù)選擇加密方法的流程圖;圖2是本發(fā)明實施例提供的生成明文加密位標(biāo)識隨機串的方法的流程圖;圖3是本發(fā)明實施例提供的判斷明文加密位標(biāo)識隨機串是否生成過的方法的流 程圖;圖4是本發(fā)明實施例提供的明文加密位隨機串生成方法的示意圖;圖5是本發(fā)明實施例提供的數(shù)據(jù)選擇加密裝置的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例提供的數(shù)據(jù)選擇解密方法的流程圖;圖7是本發(fā)明實施例提供的數(shù)據(jù)選擇解密裝置的結(jié)構(gòu)示意圖;圖8是本發(fā)明實施例提供的對數(shù)據(jù)選擇加解密過程的示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施 例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋 本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例通過從產(chǎn)生的隨機種子中多次采集數(shù)據(jù),生成并利用明文加密位 標(biāo)識隨機串,從明文中隨機選擇二分之一以上的數(shù)據(jù)加密;在解密時,通過重構(gòu)并利用 加密明文對應(yīng)的明文加密位標(biāo)識隨機串,對密文中的加密數(shù)據(jù)進行解密。本發(fā)明實施例是這樣實現(xiàn)的,一種數(shù)據(jù)選擇加密方法,該方法包括按預(yù)置方法生成并存儲預(yù)定長度的真隨機數(shù)0、1串作為隨機種子;從隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機 串;根據(jù)隨機串生成明文加密位標(biāo)識隨機串;根據(jù)明文加密位標(biāo)識隨機串,選取二分之一以上明文數(shù)據(jù)進行加密;按所在明文位置將加密數(shù)據(jù)與未加密數(shù)據(jù)排列形成密文。本發(fā)明實施的目的在于提供一種數(shù)據(jù)選擇加密裝置,該裝置包括真隨機數(shù)生成模塊,用于按預(yù)置方法生成并存儲真隨機數(shù)及預(yù)定長度的真隨機 數(shù)0、1串,作為隨機種子;加密位標(biāo)識隨機串生成模塊,用于從真隨機數(shù)生成模塊生成的隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機串,根據(jù)隨機串生成明文加 密位標(biāo)識隨機串;明文數(shù)據(jù)選取加密模塊,用于根據(jù)加密位標(biāo)識隨機串生成模塊生成的明文加密 位標(biāo)識隨機串選取二分之一以上的明文數(shù)據(jù)加密;密文形成模塊,用于將明文數(shù)據(jù)選取加密模塊加密的數(shù)據(jù)與未加密的數(shù)據(jù)按所 在明文位置排列形成密文。本發(fā)明實施的目的還在于提供一種數(shù)據(jù)選擇解密方法,該方法包括從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密位標(biāo)識隨機串;根據(jù)明文加密位標(biāo)識隨機串,從密文中分離出加密數(shù)據(jù)并解密;將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。本發(fā)明實施的目的還在于提供一種數(shù)據(jù)選擇解密裝置,該裝置包括明文加密位標(biāo)識隨機串重構(gòu)模塊,用于從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密 明文對應(yīng)的明文加密位標(biāo)識隨機串;加密數(shù)據(jù)分離解密模塊,用于根據(jù)明文加密位標(biāo)識隨機串,從密文中分離出加 密數(shù)據(jù)并解密;明文還原模塊,用于將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。以下結(jié)合附圖及實施例,對本發(fā)明作進一步詳述如下。參見圖1,本發(fā)明實施例提供了一種數(shù)據(jù)選擇加密方法,包括如下步驟步驟SlOl :按預(yù)置方法生成并存儲預(yù)定長度的真隨機數(shù)0、1串作為隨機種 子;真隨機數(shù)的生成方法已經(jīng)很成熟,具體實現(xiàn)中可以采用機械工業(yè)出版社2003年 3月1日出版的《應(yīng)用密碼學(xué)》第301頁中給出的產(chǎn)生真隨機數(shù)的方法,如使用隨機噪 聲,使用計算機時鐘,CPU負載或網(wǎng)絡(luò)數(shù)據(jù)包到達次數(shù)等方法來產(chǎn)生需要的真隨機數(shù);本發(fā)明實施例根據(jù)預(yù)置方法產(chǎn)生預(yù)定長度的真隨機數(shù)0、1串后,將其作為隨機 種子進行存儲,供對不同的明文進行加密時使用或在解密時做數(shù)據(jù)采集之用;步驟S102:從隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文 長度的0、1值隨機串;較優(yōu)地,從隨機種子中每次采集數(shù)據(jù)的起始位置及采集長度都是隨機的;為進一步增強隨機性,本發(fā)明實施例將每次采集的數(shù)據(jù)級聯(lián)成大于明文長度的 隨機串的步驟之后,還從0、1值隨機串多次采集數(shù)據(jù),生成不小于明文長度的新0、1值 隨機串,再利用該新隨機串生成明文加密位標(biāo)識隨機串;較優(yōu)地,從隨機串中每次采集數(shù)據(jù)的起始位置是隨機的;步驟S103 根據(jù)隨機串生成明文加密位標(biāo)識隨機串;參見圖2,本發(fā)明實施例提供了根據(jù)隨機串生成明文加密位標(biāo)識隨機串的方法, 其步驟詳述如下步驟S201:判斷0、1值隨機串的長度是否等于明文長度,如果是,則執(zhí)行步驟 S202,如果否,則執(zhí)行步驟S205;步驟S202:判斷隨機串中1的數(shù)量是否大于明文數(shù)據(jù)位數(shù)的二分之一,如果 是,則執(zhí)行步驟S203;如果否,則執(zhí)行步驟S204;
步驟S203 選取隨機串作為明文加密位標(biāo)識隨機串;步驟S204:對隨機串邏輯取反運算,用取反后的隨機串作為明文加密位標(biāo)識隨 機串;步驟S205:在隨機串的隨機起始位置采集數(shù)據(jù)形成與明文等長的新隨機串,然 后執(zhí)行步驟S202。在步驟S205中,如果采集數(shù)據(jù)至隨機串的尾部,則回到頭部繼續(xù)采集,直至采 集到與明文等長的新數(shù)據(jù)串;至此,用于對數(shù)據(jù)進行選擇加密的明文加密位數(shù)據(jù)串已生成;步驟S104:根據(jù)明文加密位標(biāo)識隨機串,選取二分之一以上明文數(shù)據(jù)進行加 密;參見圖8,本發(fā)明實施例提供了利用明文加密位標(biāo)識隨機串對明文數(shù)據(jù)進行加 密的示意圖,本發(fā)明實施例生成明文加密位標(biāo)識隨機串后,從首位數(shù)據(jù)起,將明文加密 位標(biāo)識隨機串及明文數(shù)據(jù)串一一對應(yīng)排列,選取與明文加密位標(biāo)識隨機串中1對應(yīng)的明 文數(shù)據(jù)作為加密數(shù)據(jù),然后使用指定的與一種加密密鑰唯一對應(yīng)的加密函數(shù)對其進行加 密,即完成對所選擇的數(shù)據(jù)的加密;步驟S105 按所在明文位置將加密數(shù)據(jù)與未加密數(shù)據(jù)排列形成密文。關(guān)于選擇二分之一以上明文數(shù)據(jù)進行加密的安全可行性分析假定待加密明文的數(shù)據(jù)量有m位(m是自然數(shù)),對于二進制而言,每一位數(shù)據(jù) 都是0或1。對于指定原有加密算法,在密鑰未知的情況下(一般加密函數(shù)可以獲知), 被非法破解的時間復(fù)雜度通常都是有關(guān)密鑰長度函數(shù)的多項式時間,即0(f(l)),其中1 是加密密鑰的長度,f(l)是關(guān)于1的函數(shù)。通常情況下,原有加密數(shù)據(jù)量的數(shù)據(jù)保護力度可以按其非法破解的時間復(fù)雜度 來衡量,即在1相等的情況下,f(l)越大,0(f(l))越大,其被非法破解所需的時間和資 源也越多,或者說明文越安全。因為明文數(shù)據(jù)可以一位一位解密,所以上述密文被破解的時間復(fù)雜度可以表示 為O' (f(l)),其中O' (f(l))是每一位密文被破解的時間復(fù)雜度。顯然,0(f(l))= mXO' (f(l))另一方面,如果隨機地從明文中選擇η位進行加密(η是自然數(shù)),那么因為所有 被加密的明文位都是等概的(都可能是0或1),所以,在使用同樣加密算法的情況下,其 被非法破解的時間復(fù)雜度可以表示為二 χ O’ (/(/))為了不影響數(shù)據(jù)保護效果,需要使C^ χ O'(/(/)) > mxO\f(l))
m mΓηι 1 m即,使廣、通過計算可知,當(dāng)(當(dāng)5是整數(shù)時)或、[^I + 1 (當(dāng)咢不
^ m,2 2η > 22
是整數(shù)時、,Cnm > 島從而使C;; χ O’(/(/)) > m χ 0'(/(/)).換言之,當(dāng)滿足以下條件時可以實現(xiàn)減少加密數(shù)據(jù)量而不犧牲數(shù)據(jù)保護效果。1)隨機選擇明文數(shù)據(jù)加密或不加密,每一位明文數(shù)據(jù)被加密的概率是相等的, 且明文數(shù)據(jù)加密位置是無規(guī)律的和(在其他明文中)不重復(fù)的——密碼分析者無法在不同 密文中獲知相同明文數(shù)據(jù)加密的位置;
2)加密的數(shù)據(jù)量不少于明文數(shù)據(jù)量的二分之一。參見圖3,本發(fā)明實施例在根據(jù)隨機串生成明文加密位標(biāo)識隨機串的步驟之后, 還判斷明文加密位標(biāo)識隨機串是否生成過,如果是,則重新生成新的明文加密位標(biāo)識隨 機串,否則輸出并存儲明文加密位標(biāo)識隨機串,其具體實現(xiàn)步驟如下步驟S301:從隨機種子多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長 度的隨機串,根據(jù)該隨機串生成明文加密位標(biāo)識隨機串;步驟S302 通過信息摘要運算生成明文加密位標(biāo)識隨機串的信息摘要值;對明文加密位標(biāo)識隨機串做信息摘要運算,可采用MD5或者SHAl算法進行計 算;步驟S303 判斷信息摘要值與先前存儲的明文加密位標(biāo)識隨機串的信息摘要值 是否一致,如果是,則執(zhí)行步驟S301,否則執(zhí)行步驟S304;步驟S304:輸出并存儲明文加密位標(biāo)識隨機串,同時將其信息摘要值存儲。以下提供兩種實現(xiàn)本發(fā)明的方法,但本發(fā)明的保護范圍不限于這兩種實現(xiàn)方法。方法1 :定長固定位明文加密方法設(shè)定有數(shù)個明文待加密,選擇其中第k個明文,該明文位數(shù)是m位,需要選擇η 位進行加密,其中m,η, k都是自然數(shù),且?!穂f] +1^l]是對*的取整運算。隨機從第k個明文中選擇待加密數(shù)據(jù)的方法主要步驟是1、生成并存儲預(yù)定長度w位的真隨機數(shù)0、1串,作為隨機種子,其中w是自 然數(shù),且w > m ;2、對該隨機種子做預(yù)定次數(shù)u(u是自然數(shù))的隨機數(shù)據(jù)采集,每次數(shù)據(jù)采集的 起始位置和采集的數(shù)據(jù)長度(可以大于等于0)都是隨機的,如果數(shù)據(jù)采集至隨機種子尾 部,則回到其頭部繼續(xù)數(shù)據(jù)采集;每次數(shù)據(jù)采集前,先產(chǎn)生兩個隨機數(shù),對其分別取模,得到隨機的起始游標(biāo)位 置和所需采集的數(shù)據(jù)長度;具體步驟為在數(shù)據(jù)采集前,先生成兩個真隨機數(shù)Rl,R2,現(xiàn)需要產(chǎn)生兩個分 別小于w和p-q的隨機值Tl,T2(其中,q是小于等于q的自然數(shù),w是隨機種子的長 度,ρ是所需產(chǎn)生明文加密位標(biāo)識隨機串的長度,q是已經(jīng)產(chǎn)生數(shù)據(jù)的長度,p-q就是隨 機串剩余未采集數(shù)據(jù)的位數(shù)),那么,Tl = Rl mod wT2 = R2 mod (p-q)其中,mod是取模運算。3、將每次采集的數(shù)據(jù)級聯(lián)成指定長度ρ位(ρ是自然數(shù),本方法中p = m)的0、 1值隨機串;4、統(tǒng)計該隨機串1的數(shù)量n,如果η . [γ] + 1則選取該隨機串為明文加密位標(biāo)
識隨機串, 如果 + 1則對整個隨機串取反,使+ 1將取反后的隨機串作為明文加密位標(biāo)識隨機串;5、輸出m位明文加密位標(biāo)識隨機串,從首位數(shù)據(jù)起將其按順序與明文數(shù)據(jù)一一 對應(yīng),將對應(yīng)于明文加密位標(biāo)識隨機串中1的明文數(shù)據(jù)加密。參見圖4,本發(fā)明實施例提供了明文加密位隨機串生成方法的示意圖。該圖中, 記第k個明文對應(yīng)的m位明文加密位標(biāo)識隨機串為rek,那么rek等于從預(yù)定長度隨機種子
中做U次隨機采集的數(shù)據(jù)的順序組合或取反(如果爿7] + 1),記從隨機種子中第i次采
集的數(shù)據(jù)為(Curs,CuO1,其中i是自然數(shù),且i$u,Curs為第i次采集數(shù)據(jù)在隨機種子 中起始游標(biāo)位置,相應(yīng)地,Cur6為第i次采集數(shù)據(jù)的終止游標(biāo)位置,Curs和Cur6都以從 隨機種子首位的偏移量標(biāo)識,可見Curs和Cure都是大于等于O且小于等于m的整數(shù),且 Cur6大于等于Curs,當(dāng)Cur6等于Curs時,數(shù)據(jù)采集的位數(shù)為O。那么,第i次采集的數(shù) 據(jù)為預(yù)定長度隨機種子中Curs到Cur6之間的數(shù)據(jù)。進一步,明文加密位標(biāo)識隨機串rek 可表達為rek = [(Curs, CurJ1, (Curs, Cure)2, .... (Curs, Cure)" .... (Curs, Cure) Jk
m(當(dāng)、[^I+ 1時) η > 2或 rek = -[(Curs, CurJ1,(Curs Cure)2,.... (Curs CurJ1,.... (Curs Cure)u]k
Jfl(當(dāng)+1時) n< 2下面對明文加密位標(biāo)識隨機串真隨機性或不可重現(xiàn)性作進一步分析如下保證明文加密位隨機串的真隨機性及不重復(fù)使用,對于整個系統(tǒng)不被密碼分析 者輕易破解是至關(guān)重要的。需要說明的是,只要作為明文加密位標(biāo)識隨機串使用的字符是有限的,密鑰就 可能重現(xiàn),其隨機性體現(xiàn)在,重現(xiàn)的概率很小且無規(guī)律。舉例而言,假設(shè)明文加密位標(biāo)識隨機串的位數(shù)是1024位,因為可以組成該 隨機串的字符只有0和1,所以無論怎樣隨機,其重現(xiàn)的概率仍大于1/21(124,即1/ (1.79*10308)。進一步,可算出該實現(xiàn)中明文加密位標(biāo)識隨機串的重復(fù)概率,對相同的隨機種 子,因為每次數(shù)據(jù)采集可以有W種可能(隨機種子有W位),所以該實現(xiàn)中,數(shù)據(jù)采集U 次后,P位明文加密位標(biāo)識隨機串重現(xiàn)概率為1/WU。如果用指定加密算法(函數(shù))加密IOM字節(jié)(Byte)的明文,所使用的隨機種子 的大小是1Gbit,即W= 1,000,000,000,數(shù)據(jù)采集1000次,BPu= 1000,那么,通過該方
法產(chǎn)生的明文加密位標(biāo)識隨機串重復(fù)的概率是1/109_,可見其重復(fù)的概率已經(jīng)足夠低, 符合隨機特征的特性。實際使用中,可以通過增加繼續(xù)提高其隨機性(降低其重復(fù)概率),或者 定期更換隨機種子,以保證更加安全的明文加密位標(biāo)識隨機串。方法2 不定長變位明文加密方法類似于方法1,所不同的是,該方法中ρ是不定長的,通過在ρ位隨機串的隨機 位置開始遍歷產(chǎn)生明文加密位標(biāo)識隨機串,通過遍歷起始位置的不確定性,增強整個系 統(tǒng)的安全性。
具體實現(xiàn)步驟如下所示(變量設(shè)定同方法1)1、生成并存儲預(yù)定長度w位的真隨機數(shù)0,1串,作為隨機種子,其中w是自 然數(shù),且w > m ;2、對該隨機種子做預(yù)定次數(shù)u(u是自然數(shù))的隨機數(shù)據(jù)采集,每次數(shù)據(jù)采集的 起始位置和所采集的數(shù)據(jù)長度(可大于等于0)都是隨機的,如果數(shù)據(jù)采集至隨機種子尾 部,則回到其頭部繼續(xù)數(shù)據(jù)采集;每次數(shù)據(jù)采集前,先產(chǎn)生兩個真隨機數(shù),對其分別取模,得到隨機的起始游標(biāo) 位置和所需采集的數(shù)據(jù)長度,對隨機種子進行隨機數(shù)據(jù)采集的方法同方法1所述;3、將每次采集的數(shù)據(jù)級聯(lián)成指定長度ρ位(ρ是自然數(shù),p>m)的0、1值隨機 串;4、在ρ位0、1值隨機串的一個隨機起始位置采集m位數(shù)據(jù),當(dāng)數(shù)據(jù)采集到隨機 串尾部時,回到頭部繼續(xù)采集,直到采集到足夠位數(shù),輸出一個新的隨機串;需要說明 的是,隨機起始位置需要通過對產(chǎn)生的真隨機數(shù)通過取模來確定;具體實現(xiàn)為在數(shù)據(jù)采集前,先生成一真隨機數(shù)R3,現(xiàn)需產(chǎn)生一個小于ρ的隨 機值T3,那么,T3 = R3 mod ρ其中,mod是取模運算。
γγ 5、統(tǒng)計判斷所述隨機串(僅包含0和1)中1的數(shù)據(jù)量η,如果n> + 1則選 取該隨機串作為明文加密位標(biāo)識隨機串,
Jflγγι如果卩;]+ 1則對該隨機串取反,使、[y] + 1將取反后的隨機串作為明文
n< 1 ,η ^ 2 ,
加密位標(biāo)識隨機串;6、輸出m位明文加密位標(biāo)識隨機串,并從首位數(shù)據(jù)起,將明文加密位標(biāo)識隨機 串與明文數(shù)據(jù)按順序一一對應(yīng),將對應(yīng)于明文加密位標(biāo)識隨機串中1的明文數(shù)據(jù)進行加
Γ t [ O下面對本方法下明文加密位標(biāo)識隨機串真隨機性或不可重現(xiàn)性進行分析。與方法1相比,方法2中增加了一個步驟,即在ρ位隨機串中采集m位數(shù)據(jù),因 為采集有P中可能,所以該方法2中明文加密位標(biāo)識隨機串的重復(fù)概率為p*l/(p*wu)。進一步以方法1所設(shè)定數(shù)據(jù)為例,這里p>m,即9>80,000,000(即801^位), 那么,通過該實現(xiàn)方法產(chǎn)生的明文加密位標(biāo)識隨機串重復(fù)的最小概率是1/(8*109°°7),可 見其重復(fù)的概率已經(jīng)足夠低,符合隨機特征的特性。實際使用中,可以通過增加p,1!和w繼續(xù)提高其隨機性,降低其重復(fù)概率,或 定期更換隨機種子,以保證生成更加安全的明文加密位標(biāo)識隨機串??傊ㄟ^以上實現(xiàn),可以證明存在多種實現(xiàn)方式使隨機選取明文數(shù)據(jù)加密在 實際應(yīng)用中是可行的。本發(fā)明在對數(shù)據(jù)進行選擇性加密過程中,需要記錄并保存生成的隨機種子,從 隨機種子再次生成所加密的第K個明文對應(yīng)的明文加密位標(biāo)識隨機串的對應(yīng)信息rek,以 及在生成明文加密位標(biāo)識隨機串時是否采用邏輯取反運算,遍歷P位大于明文長度的隨機串進行數(shù)據(jù)采集生成與明文等長的數(shù)據(jù)串時數(shù)據(jù)采集的起始游標(biāo)位置信息,供對數(shù)據(jù) 解密時使用。參見圖5,本發(fā)明實施例提供了一種數(shù)據(jù)選擇加密的裝置,該裝置包括真隨機數(shù)生成模塊51,加密位標(biāo)識隨機串生成模塊52,明文數(shù)據(jù)選取加密模塊 53以及密文形成模塊54 ;在進行加密時,真隨機數(shù)生成模塊51首先按預(yù)置方法生成并存儲真隨機數(shù)及預(yù) 定長度的真隨機數(shù)0、1串作為隨機種子,加密位標(biāo)識隨機串生成模塊52從真隨機數(shù)生成 模塊51生成的隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨 機串,根據(jù)隨機串生成明文加密位標(biāo)識隨機串,明文數(shù)據(jù)選取加密模塊53根據(jù)加密位標(biāo) 識隨機串生成模塊52生成的明文加密位標(biāo)識隨機串選取二分之一以上的明文數(shù)據(jù)加密, 密文形成模塊54,將明文數(shù)據(jù)選取加密模塊53加密的數(shù)據(jù)與未加密的數(shù)據(jù)按所在明文位 置排列形成密文。參見圖5,本發(fā)明實施例提供的數(shù)據(jù)選擇加密裝置還包括加密位標(biāo)識隨機串信息摘要值存儲模塊55,用于存儲加密位標(biāo)識隨機串信息摘 要值;加密位標(biāo)識隨機串信息摘要值生成模塊56,用于通過信息摘要運算生成加密位 標(biāo)識隨機串生成模塊52生成的明文加密位標(biāo)識隨機串的信息摘要值,并發(fā)送至加密位標(biāo) 識隨機串信息摘要值存儲模塊55 ;加密位標(biāo)識隨機串校驗?zāi)K57,用于將加密位標(biāo)識隨機串信息摘要值生成模塊 56生成的明文加密位標(biāo)識隨機串信息摘要值與加密位標(biāo)識隨機串信息摘要值存儲模塊55 中的信息摘要值進行比對,輸出一致與否的信息給加密位標(biāo)識隨機串生成模塊52。加密位標(biāo)識隨機串生成模塊52根據(jù)加密位標(biāo)識隨機串校驗?zāi)K57反饋的一致信 息,重新生成新的明文加密位標(biāo)識隨機串,并循環(huán)以上信息摘要值校驗步驟,直至生成 不一致的明文加密位標(biāo)識隨機串,如果反饋不一致的信息,則輸出該明文加密位標(biāo)識隨 機串并存儲該明文加密位標(biāo)識隨機串的信息摘要值于加密位標(biāo)識隨機串信息摘要值存儲 模塊55中。參見圖6,本發(fā)明實施例提供了一種數(shù)據(jù)選擇解密方法,該方法包括以下步 驟步驟S601:從存儲的隨機種子中采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密 位標(biāo)識隨機串;本發(fā)明實施例在解密時,根據(jù)對數(shù)據(jù)進行加密時記錄保存的加密明文(密文)對 應(yīng)的明文加密位標(biāo)識隨機串的對應(yīng)信息rek、邏輯取反運算或遍歷ρ位大于明文長度的隨 機串進行數(shù)據(jù)采集生成等于明文長度的數(shù)據(jù)串時數(shù)據(jù)采集的起始游標(biāo)位置,從加密時保 存的隨機種子中再次多次采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密位標(biāo)識隨機串;步驟S602 根據(jù)明文加密位標(biāo)識隨機串從密文中分離出加密數(shù)據(jù)并解密;本發(fā)明實施例中解密所使用的解密函數(shù)和解密密鑰與加密所使用加密函數(shù)與加 密密鑰唯一對應(yīng);參見圖8,本發(fā)明實施例提供了利用明文加密位數(shù)據(jù)串對數(shù)據(jù)解密過程的示意 步驟S603 將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。參見圖7,本發(fā)明實施例還提供了一種數(shù)據(jù)選擇解密裝置,該裝置包括明文加密位標(biāo)識隨機串重構(gòu)模塊71,加密數(shù)據(jù)分離解密模塊72以及明文還原模 塊73 ;在進行數(shù)據(jù)解密時,明文加密位標(biāo)識隨機串重構(gòu)模塊71再次從存儲的隨機種子 中采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密位標(biāo)識隨機串,加密數(shù)據(jù)分離解密模塊 72根據(jù)明文加密位標(biāo)識隨機串重構(gòu)模塊71重構(gòu)的明文加密位標(biāo)識隨機串,從密文中分離 出加密數(shù)據(jù)并解密,明文還原模塊73將加密數(shù)據(jù)分離解密模塊72分離解密的數(shù)據(jù)與未加 密數(shù)據(jù)按所在密文位置排列形成明文。本發(fā)明實施例通過利用生成的隨機種子,通過多次隨機數(shù)據(jù)采集生成明文加密 位標(biāo)識隨機串,利用該明文加密位標(biāo)識隨機串,從明文中隨機選擇二分之一以上的數(shù)據(jù) 加密,實現(xiàn)不犧牲數(shù)據(jù)保護強度而減少明文加密數(shù)據(jù)量,大大提高了數(shù)據(jù)加密速度;在 解密時通過重構(gòu)所加密明文對應(yīng)的明文加密位標(biāo)識隨機串,并利用該隨機串對密文中的 加密數(shù)據(jù)進行解密,減少了解密數(shù)據(jù)量,極大地提高了數(shù)據(jù)的解密速度。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的 精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之 內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)選擇加密方法,其特征在于,所述方法包括按預(yù)置方法生成并存儲預(yù)定長度的真隨機數(shù)0、1串作為隨機種子;從所述隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機串;根據(jù)所述隨機串生成明文加密位標(biāo)識隨機串;根據(jù)所述明文加密位標(biāo)識隨機串,選取二分之一以上明文數(shù)據(jù)進行加密; 按所在明文位置將所述加密數(shù)據(jù)與未加密數(shù)據(jù)排列形成密文。
2.如權(quán)利要求1所述的數(shù)據(jù)選擇加密方法,其特征在于,所述從所述隨機種子中多次 采集數(shù)據(jù)時,每次采集數(shù)據(jù)的起始位置及采集長度都是隨機的。
3.如權(quán)利要求1所述的數(shù)據(jù)選擇加密方法,其特征在于,所述將每次采集的數(shù)據(jù)級聯(lián) 成不小于明文長度的隨機串的步驟還包括判斷所述隨機串的長度是否大于明文長度,如果是,則從所述隨機串中多次采集數(shù) 據(jù)生成不小于明文長度的新隨機串。
4.如權(quán)利要求1或3所述的數(shù)據(jù)選擇加密方法,其特征在于,所述根據(jù)所述隨機串生 成明文加密位標(biāo)識隨機串的步驟具體包括當(dāng)所述隨機串的長度等于明文長度時,判斷所述隨機串中1的數(shù)量是否大于明文數(shù) 據(jù)位數(shù)的二分之一,如果是,則選取所述隨機串作為明文加密位標(biāo)識隨機串;如果否, 則對所述隨機串進行邏輯取反運算,用取反后的隨機串作為明文加密位標(biāo)識隨機串;當(dāng)所述隨機串的長度大于明文長度時,在所述隨機串的隨機起始位置采集數(shù)據(jù)形成 與明文等長的新隨機串;判斷所述新隨機串中1的數(shù)量是否大于明文數(shù)據(jù)位數(shù)的二分之 一,如果是,則選取所述新隨機串作為明文加密位標(biāo)識隨機串;如果否,則對所述新隨 機串進行邏輯取反運算,用取反后的新隨機串作為明文加密位標(biāo)識隨機串。
5.如權(quán)利要求1所述的數(shù)據(jù)選擇加密方法,其特征在于,所述根據(jù)所述隨機串生成明 文加密位標(biāo)識隨機串的步驟還包括通過信息摘要運算生成所述明文加密位標(biāo)識隨機串的信息摘要值; 判斷所述信息摘要值與先前存儲的明文加密位標(biāo)識隨機串信息摘要值是否一致,如 果是,則重新生成明文加密位標(biāo)識隨機串;否則,輸出并存儲所述明文加密位標(biāo)識隨機 串,同時將其信息摘要值存儲。
6.如權(quán)利要求1或5所述的數(shù)據(jù)選擇加密方法,其特征在于,所述根據(jù)所述明文加密 位標(biāo)識隨機串,選取二分之一以上明文數(shù)據(jù)進行加密的步驟具體包括從首位數(shù)據(jù)起,將所述明文加密位標(biāo)識隨機串及明文數(shù)據(jù)串一一對應(yīng)排列; 選取與所述明文加密位標(biāo)識隨機串中1對應(yīng)的明文數(shù)據(jù)作為加密數(shù)據(jù)。
7.—種數(shù)據(jù)選擇加密裝置,其特征在于,所述裝置包括真隨機數(shù)生成模塊,用于按預(yù)置方法生成并存儲真隨機數(shù)及預(yù)定長度的真隨機數(shù)0、 1串,作為隨機種子;加密位標(biāo)識隨機串生成模塊,用于從所述真隨機數(shù)生成模塊生成的隨機種子中多次 采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機串,根據(jù)所述隨機串生成明 文加密位標(biāo)識隨機串;明文數(shù)據(jù)選取加密模塊,用于根據(jù)所述加密位標(biāo)識隨機串生成模塊生成的明文加密位標(biāo)識隨機串選取二分之一以上的明文數(shù)據(jù)加密;密文形成模塊,用于將所述明文數(shù)據(jù)選取加密模塊加密的數(shù)據(jù)與未加密的數(shù)據(jù)按所 在明文位置排列形成密文。
8.如權(quán)利要求7所述的數(shù)據(jù)選擇加密裝置,其特征在于,所述裝置還包括 加密位標(biāo)識隨機串信息摘要值存儲模塊,用于存儲加密位標(biāo)識隨機串信息摘要值; 加密位標(biāo)識隨機串信息摘要值生成模塊,用于通過信息摘要運算生成所述加密位標(biāo)識隨機串生成模塊生成的明文加密位標(biāo)識隨機串的信息摘要值,并發(fā)送至所述加密位標(biāo) 識隨機串信息摘要值存儲模塊;加密位標(biāo)識隨機串校驗?zāi)K,用于將所述加密位標(biāo)識隨機串信息摘要值生成模塊生 成的明文加密位標(biāo)識隨機串的信息摘要值與所述加密位標(biāo)識隨機串信息摘要值存儲模塊 中的信息摘要值進行比對,輸出一致與否的信息給所述加密位標(biāo)識隨機串生成模塊。
9.一種數(shù)據(jù)選擇解密方法,其特征在于,所述方法包括從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密明文對應(yīng)的明文加密位標(biāo)識隨機串; 根據(jù)所述明文加密位標(biāo)識隨機串,從密文中分離出加密數(shù)據(jù)并解密; 將解密數(shù)據(jù)與未加 密數(shù)據(jù)按所在密文位置排列形成明文。
10.—種數(shù)據(jù)選擇解密裝置,其特征在于,所述裝置包括明文加密位標(biāo)識隨機串重構(gòu)模塊,用于從隨機種子中采集數(shù)據(jù),重構(gòu)生成加密明文 對應(yīng)的明文加密位標(biāo)識隨機串;加密數(shù)據(jù)分離解密模塊,用于根據(jù)所述明文加密位標(biāo)識隨機串,從密文中分離出加 密數(shù)據(jù)并解密;明文還原模塊,用于將解密數(shù)據(jù)與未加密數(shù)據(jù)按所在密文位置排列形成明文。
全文摘要
本發(fā)明屬于數(shù)據(jù)加密解密技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)選擇加密解密方法及裝置。所述加密方法包括按預(yù)置方法生成預(yù)定長度的真隨機數(shù)0、1串作為隨機種子;從隨機種子中多次采集數(shù)據(jù),將每次采集的數(shù)據(jù)級聯(lián)成不小于明文長度的隨機串;根據(jù)隨機串生成明文加密位標(biāo)識隨機串;根據(jù)明文加密位標(biāo)識隨機串選取二分之一以上明文數(shù)據(jù)加密;按所在明文位置將加密數(shù)據(jù)與未加密數(shù)據(jù)排列形成密文。所述加密裝置包括真隨機數(shù)生成模塊、加密位標(biāo)識隨機串生成模塊、明文數(shù)據(jù)選取加密模塊和密文形成模塊。本發(fā)明還提供了一種數(shù)據(jù)選擇解密方法及裝置。本發(fā)明減少了加密或解密的數(shù)據(jù)量,從而提高了數(shù)據(jù)加密和解密的性能。
文檔編號G06F21/24GK102012993SQ20101056628
公開日2011年4月13日 申請日期2010年11月29日 優(yōu)先權(quán)日2010年11月29日
發(fā)明者劉慧 申請人:北京卓微天成科技咨詢有限公司