欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)加密、解密的方法及設(shè)備與流程

文檔序號:12662371閱讀:340來源:國知局
一種數(shù)據(jù)加密、解密的方法及設(shè)備與流程
本發(fā)明屬于軟件算法領(lǐng)域,尤其涉及一種數(shù)據(jù)加密、解密的方法及設(shè)備。

背景技術(shù):
云計(jì)算作為一種新型的網(wǎng)絡(luò)計(jì)算模式,以一種相比傳統(tǒng)IT更經(jīng)濟(jì)的方式向用戶提供按需的IT服務(wù)(計(jì)算、存儲和應(yīng)用等)。由于云計(jì)算的發(fā)展理念符合當(dāng)前低碳經(jīng)濟(jì)與綠色計(jì)算的總體趨勢,它得到了世界各國政府和企業(yè)的大力倡導(dǎo)與推動,正帶來計(jì)算領(lǐng)域、商業(yè)領(lǐng)域的巨大變革。但在已經(jīng)實(shí)現(xiàn)的云計(jì)算服務(wù)中,隱私安全問題一直令人擔(dān)憂,并已經(jīng)成為阻礙云計(jì)算發(fā)展和推廣的主要因素之一。用戶的隱私數(shù)據(jù)包括可用來識別或定位個人信息(例如電話號碼、地址和信用卡號等),敏感的信息(例如個人的健康狀況、財(cái)務(wù)信息、公司的重要文件等)。云計(jì)算的隱私安全問題源于云計(jì)算的數(shù)據(jù)外包和服務(wù)租賃的特點(diǎn)。用戶數(shù)據(jù)存儲到云環(huán)境中,人們失去對數(shù)據(jù)的直接控制力,可能會導(dǎo)致個人隱私數(shù)據(jù)的泄漏和濫用。加密是一種常用的保護(hù)用戶機(jī)密數(shù)據(jù)的方法,支持關(guān)系運(yùn)算的加密技術(shù)是一種加密方法,它通過加密保證數(shù)據(jù)安全,同時加密后的數(shù)據(jù)能支持關(guān)系運(yùn)算,從而可直接對密文進(jìn)行范圍檢索,排序等操作。Agrawal等人基于桶劃分和分布概率映射的思想提出了一個保序?qū)ΨQ加密算法OPES,支持對加密數(shù)值數(shù)據(jù)的各種關(guān)系運(yùn)算;Boldyreva等人提出一個基于折半查找和超幾何概率分布的保序?qū)ΨQ加密算法OPSE,支持對加密數(shù)據(jù)的各種關(guān)系運(yùn)算,以上兩種保序的加密方法的優(yōu)點(diǎn)是保序性,即密文反映了明文的大小關(guān)系,從而方便服務(wù)提供者對密文數(shù)據(jù)建立索引,加快查找速度,并易于實(shí)現(xiàn)各種關(guān)系運(yùn)算。Agrawal等人方案的不足是當(dāng)定義域較大時桶劃分的計(jì)算負(fù)載較大,而且面對已知明文的攻擊時,當(dāng)輸入分布的桶與對應(yīng)的輸出分布的桶中點(diǎn)的個數(shù)足夠多時,可以通過解方程的方式破解。Boldyreva等人的方法由于在計(jì)算超幾何概率時需要進(jìn)行多次組合運(yùn)算,其計(jì)算負(fù)載較大。綜上,保序的加密算法的缺點(diǎn)是它們都不能同時滿足高效性和安全性的要求。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種數(shù)據(jù)加密解密的方法,可以實(shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。第一方面,一種數(shù)據(jù)加密的方法,所述方法包括:將待加密數(shù)據(jù)由明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成預(yù)先設(shè)置的定義域值的倍數(shù),所述預(yù)先設(shè)置的定義域值是每次加密的所述ASCII碼的位數(shù);根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)樹的高度,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)數(shù)的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:確定所述隨機(jī)樹的層數(shù)、分割份數(shù)、所述用戶密鑰、所述待加密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù);其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;將每段所述待劃分區(qū)間的值域等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)樹的種子產(chǎn)生的所述隨機(jī)數(shù)用于產(chǎn)生間隔域、每段間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;確定所述待加密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文包括:當(dāng)所述待加密數(shù)據(jù)位于隨機(jī)數(shù)的最后一層時,在所述待加密數(shù)據(jù)所在的子節(jié)點(diǎn)的區(qū)間范圍內(nèi),選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。第二方面,一種數(shù)據(jù)解密的方法,所述方法包括:獲取用戶密鑰和待解密數(shù)據(jù);根據(jù)所述用戶密鑰和所述待解密數(shù)據(jù)恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待解密數(shù)據(jù)進(jìn)行解密;將解密后的數(shù)據(jù)經(jīng)過消除填充值后轉(zhuǎn)換為明文字符串。結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述用戶密鑰和所述待解密數(shù)據(jù)恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:確定所述隨機(jī)樹的高度、分割份數(shù)、所述用戶密鑰、所述待解密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù),其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;將所述待劃分區(qū)間等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)樹的種子產(chǎn)生的所述隨機(jī)數(shù)用于產(chǎn)生每段待劃分區(qū)間間隔域,所述間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;根據(jù)每個子節(jié)點(diǎn)的范圍的最小值,判斷所述密文所處的位置;根據(jù)所述密文所處的位置,計(jì)算出當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼,根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;根據(jù)所述隨機(jī)數(shù)的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)數(shù)將所述節(jié)點(diǎn)數(shù)所處待劃分區(qū)間分成兩個區(qū)域值,所述兩個區(qū)域值是下一層隨機(jī)樹的總的值域值和下一次隨機(jī)樹的總的間隔域值;確定所述待解密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。第三方面,一種數(shù)據(jù)加密的設(shè)備,所述設(shè)備包括:第一轉(zhuǎn)換單元,用于將待加密數(shù)據(jù)由明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成預(yù)先設(shè)置的定義域值的倍數(shù),所述預(yù)先設(shè)置的定義域值是每次加密的所述ASCII碼的位數(shù);加密單元,用于根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)樹的高度,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的值域范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述加密單元中執(zhí)行步驟所述根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)數(shù)的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:第一確定單元,用于確定所述隨機(jī)樹的層數(shù)、分割份數(shù)、所述用戶密鑰、所述待加密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù);其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;第一生成單元,用于根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第一劃分單元,用于將每段所述待劃分區(qū)間的值域等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生間隔域、每段間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;第二確定單元,用于確定所述待加密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;第一判斷單元,用于判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。結(jié)合第三方面,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述加密單元中執(zhí)行步驟并在所述葉子節(jié)點(diǎn)所屬的值域范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文中的密文包括:當(dāng)所述待加密數(shù)據(jù)位于隨機(jī)數(shù)的最后一層時,在所述待加密數(shù)據(jù)所在的子節(jié)點(diǎn)的區(qū)間范圍內(nèi),選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。第四方面,一種數(shù)據(jù)解密的設(shè)備,所述設(shè)備包括:獲取單元,用于獲取用戶密鑰和待解密數(shù)據(jù);解密單元,用于根據(jù)所述用戶密鑰和所述待解密數(shù)據(jù)恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待解密數(shù)據(jù)進(jìn)行解密;第二轉(zhuǎn)換單元,用于將解密后的數(shù)據(jù)經(jīng)過消除填充值后轉(zhuǎn)換為明文字符串。結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述解密單元中執(zhí)行步驟根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:第三確定單元,用于確定所述隨機(jī)樹的高度、分割份數(shù)、所述用戶密鑰、所述待解密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù),其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;第二生成單元,用于根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第二劃分單元,用于將所述待劃分區(qū)間等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生每段待劃分區(qū)間間隔域,所述間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;第二判斷單元,用于根據(jù)每個子節(jié)點(diǎn)的范圍的最小值,判斷所述密文所處的位置;計(jì)算單元,用于根據(jù)所述密文所處的位置,計(jì)算出當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼,根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第三劃分單元用于根據(jù)所述隨機(jī)數(shù)的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)數(shù)將所述節(jié)點(diǎn)數(shù)所處待劃分區(qū)間分成兩個區(qū)域值,所述兩個區(qū)域值是下一層隨機(jī)樹的總的值域值和下一次隨機(jī)樹的總的間隔域值;第四確定單元,用于確定所述解密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;第三判斷單元,用于判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待解密數(shù)據(jù)進(jìn)行解密??梢詫?shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一提供的一種加密的方法流程圖;圖2是本發(fā)明實(shí)施例二提供的一種加密的方法流程圖;圖3是本發(fā)明實(shí)施例三提供的一種加密解密的方法流程圖;圖4是本發(fā)明實(shí)施例三提供的一種加密解密的方法示意圖;圖5是本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)加密設(shè)備的裝置結(jié)構(gòu)圖;圖6是本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)加密設(shè)備的裝置結(jié)構(gòu)圖;圖7是本發(fā)明實(shí)施例五提供的一種數(shù)據(jù)解密設(shè)備的裝置結(jié)構(gòu)圖;圖8是本發(fā)明實(shí)施例五提供的一種數(shù)據(jù)解密設(shè)備的裝置結(jié)構(gòu)圖;圖9是本發(fā)明實(shí)施例六提供的一種數(shù)據(jù)加密設(shè)備的裝置結(jié)構(gòu)圖;圖10是本發(fā)明實(shí)施例七提供的一種數(shù)據(jù)解密設(shè)備的裝置結(jié)構(gòu)圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。實(shí)施例一參考圖1,圖1是本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)加密的方法流程圖。如圖1所示,該方法包括以下步驟:步驟101,將待加密數(shù)據(jù)由明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成預(yù)先設(shè)置的定義域值的倍數(shù),所述預(yù)先設(shè)置的定義域值是每次加密的所述ASCII碼的位數(shù);本步驟中,接收用戶輸入的一串明文字符串,預(yù)先將所述明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼。預(yù)先設(shè)置定義域,所述定義域的值是每次加密的所述美國信息交換標(biāo)準(zhǔn)代碼的位數(shù),例如,預(yù)先定義每次加密12位美國信息交換標(biāo)準(zhǔn)代碼,將轉(zhuǎn)換后的美國信息交換標(biāo)準(zhǔn)代碼的位數(shù)湊成12的倍數(shù)。具體的,假設(shè)用戶輸入一串字符串為ABCDEF…..,將每個字符轉(zhuǎn)換成ASCII碼,并湊成3位ASCII碼,如A的ASCII碼為65,湊成065,假設(shè)隨機(jī)數(shù)的定義域值為12,隨機(jī)數(shù)高度為6層,即每層加密2位ASCII碼,每次則總共加密12位。將轉(zhuǎn)換成ASCII碼的待加密數(shù)據(jù)每次取22位,并在22位ASCII碼后面添加一個22的標(biāo)識湊成24位,即每次運(yùn)行2次隨機(jī)樹加密算法,加密24位ASCII碼。當(dāng)最后只剩下十位ASCII碼,則在10位ASCII碼后面添加00,再添加10位隨機(jī)數(shù),再添加10,標(biāo)識待加密數(shù)據(jù)的ASCII碼的位數(shù),湊成24位進(jìn)行加密。當(dāng)最后只剩下一位ASCII碼,則在一位ASCII碼后面添加00,再添加19位隨機(jī)數(shù),再添加01,標(biāo)識待加密數(shù)據(jù)的ASCII碼的位數(shù),湊成24位進(jìn)行加密。依次類推。步驟102,根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)樹的高度,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。本步驟中,若預(yù)先設(shè)置的定義域是12位美國信息交換標(biāo)準(zhǔn)代碼,并預(yù)先設(shè)置每次存放2位美國信息交換標(biāo)準(zhǔn)代碼,則隨機(jī)數(shù)的高度為6,即根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)數(shù)的高度。本步驟中,所述根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)數(shù)的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:確定所述隨機(jī)樹的層數(shù),分割份數(shù),所述用戶密鑰,所述待加密數(shù)據(jù),待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù);其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;具體的,確定所述隨機(jī)樹的高度level,分割份數(shù)num,所述用戶密鑰key,所述待加密數(shù)據(jù)x,待劃分區(qū)間的最小值min和最大值max,所述num是將所述待劃分區(qū)間等間隔劃分的份數(shù),vf是所述待劃分區(qū)間的值域,gf是所述待劃分區(qū)間的間隔域。根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;具體的,當(dāng)所述隨機(jī)樹位于第零層level=n,n=0時,隨機(jī)樹種子ran_root=key;當(dāng)level=n,n=1,2….level-2時,所述ran_root=key+xn,其中,n=0時,xn=0,n=1時,xn=第零層隨機(jī)數(shù)加密的待加密數(shù)據(jù);n=2時,xn=第零層隨機(jī)數(shù)和第一層隨機(jī)數(shù)加密的待加密數(shù)據(jù);n=level-2時,xn=第零層隨機(jī)數(shù),第一層隨機(jī)數(shù)….第level-2層加密的待加密數(shù)據(jù)。將所述每段值域等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生間隔域、每段間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;具體的,根據(jù)所述ran_root產(chǎn)生間隔域gf,間隔域gf分裂份數(shù)m和從num個子節(jié)點(diǎn)中隨機(jī)選擇m個子節(jié)點(diǎn),滿足且確定所述待加密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;具體的,判斷x的位置為i,滿足x>xi-1且x≤xi,dn=vfn-1/num,ddn=gfn-1,vfn-1=(maxn-1-minn-1)*rn-1,gfn-1=(maxn-1-minn-1)*(1-rn-1),rn-1是根據(jù)ran_root在第n-1層的值產(chǎn)生的隨機(jī)數(shù)。判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。具體的,判斷i是否是所述m個子節(jié)點(diǎn)中的任意一個,若是,則maxn=minn+dn+ddn*random(key+xi),否則,maxn=minn+dn。具體的,加密算法參考算法1。可實(shí)現(xiàn)的,所述并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文包括:當(dāng)所述待加密數(shù)據(jù)位于隨機(jī)數(shù)的最后一層時,在所述待加密數(shù)據(jù)所在的子節(jié)點(diǎn)的區(qū)間范圍內(nèi),選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。具體的,當(dāng)level=n,n=level-1時,則所述待加密數(shù)據(jù)x的密文ciphertext=minn+(maxn-minn)*random(key+xn)。本發(fā)明核心部分構(gòu)建了一種隨機(jī)數(shù)據(jù)結(jié)構(gòu)——隨機(jī)樹。隨機(jī)樹是一棵多叉樹,其高度由定義域決定,樹中每個節(jié)點(diǎn)都對應(yīng)定義域中的一點(diǎn),并占據(jù)值域中的一段子區(qū)間,子節(jié)點(diǎn)區(qū)間是對父節(jié)點(diǎn)區(qū)間的一種隨機(jī)劃分。基于隨機(jī)樹的加密算法算法OPEART具有以下特點(diǎn):(1)加密或解密過程中,不需要生成整棵樹,而只需要生成樹中從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)之間的一條路徑,計(jì)算負(fù)載??;(2)計(jì)算負(fù)載不會隨著定義域的變化而變化,適合于定義域較大或動態(tài)變化的應(yīng)用;(3)無需建立索引,節(jié)省了數(shù)據(jù)擁有者的計(jì)算和存儲負(fù)載。本發(fā)明是一種加密算法,密文具有保序性,支持關(guān)系運(yùn)算,并且具有IND-DNCPA安全性。本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行解密??梢詫?shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。實(shí)施例二參考圖2,圖2是本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)解密的方法流程圖。如圖2所示,該方法包括以下步驟:步驟201,獲取用戶密鑰和待解密數(shù)據(jù);步驟202,根據(jù)所述用戶密鑰和所述待解密數(shù)據(jù)恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待解密數(shù)據(jù)進(jìn)行解密;根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑具體為:確定所述隨機(jī)樹的高度、分割份數(shù)、所述用戶密鑰、所述待解密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù),其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;具體的,確定所述隨機(jī)樹的高度level,分割份數(shù)num,所述用戶密鑰key,所述待加密數(shù)據(jù)的密文ciphertex,待劃分區(qū)間的最小值min和最大值max,所述num是將所述待劃分區(qū)間等間隔劃分的份數(shù),vf是所述待劃分區(qū)間的值域,gf是所述待劃分區(qū)間的間隔域。根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;具體的,當(dāng)所述隨機(jī)樹位于第零層level=n,n=0時,隨機(jī)樹種子ran_root=key。將所述待劃分區(qū)間等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生每段待劃分區(qū)間間隔域,所述間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;具體的,根據(jù)所述ran_root產(chǎn)生間隔域gf,間隔域gf分裂份數(shù)m和從num個子節(jié)點(diǎn)中隨機(jī)選擇m個子節(jié)點(diǎn),滿足且根據(jù)每個子節(jié)點(diǎn)的范圍的最小值,判斷所述密文所處的位置;所處的位置等于所述密文值減去所述子節(jié)點(diǎn)的最小值再減去到所述子節(jié)點(diǎn)之前的間隔域值后得到的值除以所述子節(jié)點(diǎn)的值域分割的間隔;具體的,假設(shè)每個節(jié)點(diǎn)所處范圍的下限為min(xk),其中k∈(0,num-1),判斷ciphertext的位置為i,滿足ciphertex≤min(xk),且ciphertex>min(xk-1),根據(jù)所述密文所處的位置,計(jì)算出當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼,根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;當(dāng)level=n,n=1,2….level-2時,所述ran_root=key+xn,其中,n=0時,xn=0,n=1時,xn=第零層隨機(jī)數(shù)加密的待加密數(shù)據(jù);n=2時,xn=第零層隨機(jī)數(shù)和第一層隨機(jī)數(shù)加密的待加密數(shù)據(jù);n=level-2時,xn=第零層隨機(jī)數(shù),第一層隨機(jī)數(shù)….第level-2層加密的待加密數(shù)據(jù)。根據(jù)所述隨機(jī)數(shù)的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)數(shù)將所述節(jié)點(diǎn)數(shù)所處待劃分區(qū)間分成兩個區(qū)域值,所述兩個區(qū)域值是下一層隨機(jī)樹的總的值域值和下一次隨機(jī)樹的總的間隔域值;確定所述解密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;具體的,dn=vfn-1/num,ddn=gfn-1,vfn-1=(maxn-1-minn-1)*rn-1,gfn-1=(maxn-1-minn-1)*(1-rn-1),rn-1是根據(jù)ran_root在第n-1層的值產(chǎn)生的隨機(jī)數(shù)。判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。具體的,判斷i是否是所述m個子節(jié)點(diǎn)中的任意一個,若是,則maxn=minn+dn+ddn*random(key+xi),否則,maxn=minn+dn。加密算法參考算法2。步驟203,將解密后的數(shù)據(jù)經(jīng)過消除填充值后轉(zhuǎn)換為明文字符串。本步驟中,將填充的00或者22等填充值消除掉后,得到由明文字符串轉(zhuǎn)換的ASCII碼,然后由所述ASCII碼再轉(zhuǎn)換為明文字符串。本發(fā)明核心部分構(gòu)建了一種隨機(jī)數(shù)據(jù)結(jié)構(gòu)——隨機(jī)樹。隨機(jī)樹是一棵多叉樹,其高度由定義域決定,樹中每個節(jié)點(diǎn)都對應(yīng)定義域中的一點(diǎn),并占據(jù)值域中的一段子區(qū)間,子節(jié)點(diǎn)區(qū)間是對父節(jié)點(diǎn)區(qū)間的一種隨機(jī)劃分?;陔S機(jī)樹的加密算法算法OPEART具有以下特點(diǎn):(1)加密或解密過程中,不需要生成整棵樹,而只需要生成樹中從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)之間的一條路徑,計(jì)算負(fù)載?。?2)計(jì)算負(fù)載不會隨著定義域的變化而變化,適合于定義域較大或動態(tài)變化的應(yīng)用;(3)無需建立索引,節(jié)省了數(shù)據(jù)擁有者的計(jì)算和存儲負(fù)載。本發(fā)明是一種加密算法,密文具有保序性,支持關(guān)系運(yùn)算,并且具有IND-DNCPA安全性。本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行解密。可以實(shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。實(shí)施例三參考圖3所示,圖3是本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)加密和數(shù)據(jù)解密的方法示意圖。如圖3所示,步驟301,將明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成12的倍數(shù),12是每次加密的所述ASCII碼的位數(shù);當(dāng)每次加密為12位ASCII碼時,則第零層隨機(jī)樹的總的長度可以為1015。步驟302,根據(jù)12確定隨機(jī)樹的高度為6,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文;假設(shè)轉(zhuǎn)換后的ASCII碼為012345678901,每層隨機(jī)樹加密2位ASCII碼,具體的,當(dāng)隨機(jī)樹位于第零層level=n,n=0時,隨機(jī)樹種子ran_root=key,根據(jù)隨機(jī)樹的種子產(chǎn)生劃分第零層隨機(jī)樹總長度為值域vf0和間隔域gf0,vf0+gf0=1015,將值域vf0劃分為100份,并根據(jù)隨機(jī)樹的種子產(chǎn)生間隔域gf0的分割份數(shù)m和選擇的子節(jié)點(diǎn)m,同時使得分割后的總的間隔域長度等于分割前的間隔域長度。第零層待加密的數(shù)據(jù)為01,將放入劃分的第一個值域區(qū)間01內(nèi),如圖4所示。判斷01的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則01區(qū)間的最大值為max=min+01的值域+01的間隔域;若否,則01區(qū)間的最大值為max=min+01的值域。01的值域?yàn)関f0/100。在第零層01的區(qū)間內(nèi),按照隨機(jī)樹的種子ran_root=key+01,生成第一層隨機(jī)數(shù),根據(jù)所述第一層的隨機(jī)數(shù)將第零層01區(qū)間的區(qū)間值,劃分為第一層的值域vf1和間隔域gf1,其中01區(qū)間值等于01區(qū)間的最大值減去01區(qū)間的最小值,vf1+gf1=01區(qū)間值。將vf1等間距劃分100份,按照所述第一層隨機(jī)數(shù)劃分第一層的間隔域的份數(shù)和選擇的子節(jié)點(diǎn)。第一層待加密的數(shù)據(jù)為23,將放入劃分的第23個值域區(qū)間內(nèi)。判斷23的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則23區(qū)間的最大值為max=min+23的值域+23的間隔域;若否,則23區(qū)間的最大值為max=min+23的值域。23的值域?yàn)関f1/100。在第一層23的區(qū)間內(nèi),按照隨機(jī)樹的種子ran_root=key+0123,生成第二層隨機(jī)數(shù),根據(jù)所述第二層的隨機(jī)數(shù)將第一層23區(qū)間的區(qū)間值,劃分為第二層的值域vf2和間隔域gf2,其中23區(qū)間值等于23區(qū)間的最大值減去23區(qū)間的最小值,vf2+gf2=23區(qū)間值。將vf2等間距劃分100份,按照所述第二層隨機(jī)數(shù)劃分第二層的間隔域的份數(shù)和選擇的子節(jié)點(diǎn)。第二層待加密的數(shù)據(jù)為45,將放入劃分的第45個值域區(qū)間內(nèi)。判斷45的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則45區(qū)間的最大值為max=min+45的值域+45的間隔域;若否,則45區(qū)間的最大值為max=min+45的值域。45的值域?yàn)関f2/100。在第二層45的區(qū)間內(nèi),按照隨機(jī)樹的種子ran_root=key+012345,生成第三層隨機(jī)數(shù),根據(jù)所述第三層的隨機(jī)數(shù)將第二層45區(qū)間的區(qū)間值,劃分為第三層的值域vf3和間隔域gf3,其中45區(qū)間值等于45區(qū)間的最大值減去45區(qū)間的最小值,vf3+gf3=45區(qū)間值。將vf3等間距劃分100份,按照所述第三層隨機(jī)數(shù)劃分第三層的間隔域的份數(shù)和選擇的子節(jié)點(diǎn)。第三層待加密的數(shù)據(jù)為67,將放入劃分的第67個值域區(qū)間內(nèi)。判斷67的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則67區(qū)間的最大值為max=min+67的值域+67的間隔域;若否,則67區(qū)間的最大值為max=min+67的值域。67的值域?yàn)関f3/100。在第三層67的區(qū)間內(nèi),按照隨機(jī)樹的種子ran_root=key+01234567,生成第四層隨機(jī)數(shù),根據(jù)所述第四層的隨機(jī)數(shù)將第三層67區(qū)間的區(qū)間值,劃分為第四層的值域vf4和間隔域gf4,其中67區(qū)間值等于67區(qū)間的最大值減去67區(qū)間的最小值,vf4+gf4=67區(qū)間值。將vf4等間距劃分100份,按照所述第四層隨機(jī)數(shù)劃分第四層的間隔域的份數(shù)和選擇的子節(jié)點(diǎn)。第四層待加密的數(shù)據(jù)為89,將放入劃分的第89個值域區(qū)間內(nèi)。判斷89的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則89區(qū)間的最大值為max=min+89的值域+89的間隔域;若否,則89區(qū)間的最大值為max=min+89的值域。89的值域?yàn)関f4/100。在第四層89的區(qū)間內(nèi),按照隨機(jī)樹的種子ran_root=key+0123456789,生成第五層隨機(jī)數(shù),根據(jù)所述第五層的隨機(jī)數(shù)將第四層89區(qū)間的區(qū)間值,劃分為第五層的值域vf5和間隔域gf5,其中89區(qū)間值等于89區(qū)間的最大值減去89區(qū)間的最小值,vf5+gf5=89區(qū)間值。將vf5等間距劃分100份,按照所述第五層隨機(jī)數(shù)劃分第五層的間隔域的份數(shù)和選擇的子節(jié)點(diǎn)。第五層待加密的數(shù)據(jù)為01,將放入劃分的第01個值域區(qū)間內(nèi)。判斷01的區(qū)間是否屬于選擇的子節(jié)點(diǎn),若是,則01區(qū)間的最大值為max=min+01的值域+01的間隔域;若否,則01區(qū)間的最大值為max=min+01的值域。01的值域?yàn)関f5/100。具體的,當(dāng)level=n,n=5時,則所述待加密數(shù)據(jù)x的密文ciphertext=min5+(max5-min5)*random(key+x5)。x5=01+23+45+67+89(0123456789)。步驟303,根據(jù)所述用戶密鑰和所述待加密數(shù)據(jù)的密文恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)的密文進(jìn)行解密;具體的,根據(jù)加密算法的規(guī)則,生成第零層的隨機(jī)樹(最好說一下第0層的key=key,與明文無關(guān)),判斷密文ciphertext的值位于第零層的哪個區(qū)間,按照步驟202的ciphertext的數(shù)值,位于第零層的01區(qū)間,即得到01ASCII碼;根據(jù)01的ASCII碼和用戶密鑰生成第一層的隨機(jī)樹,繼續(xù)判斷ciphertext的數(shù)值位于第一層的隨機(jī)樹的哪個區(qū)間,根據(jù)步驟202,位于第一層的23區(qū)間,即得到23ASCII碼;根據(jù)23的ASCII碼和用戶密鑰生成第二層的隨機(jī)樹,繼續(xù)判斷ciphertext的數(shù)值位于第二層的隨機(jī)樹的哪個區(qū)間,根據(jù)步驟202,位于第二層的45區(qū)間,即得到45ASCII碼;根據(jù)45的ASCII碼和用戶密鑰生成第三層的隨機(jī)樹,繼續(xù)判斷ciphertext的數(shù)值位于第三層的隨機(jī)樹的哪個區(qū)間,根據(jù)步驟202,位于第三層的67區(qū)間,即得到67ASCII碼;根據(jù)67的ASCII碼和用戶密鑰生成第四層的隨機(jī)樹,繼續(xù)判斷ciphertext的數(shù)值位于第四層的隨機(jī)樹的哪個區(qū)間,根據(jù)步驟202,位于第四層的89區(qū)間,即得到89ASCII碼;根據(jù)89的ASCII碼和用戶密鑰生成第五層的隨機(jī)樹,繼續(xù)判斷ciphertext的數(shù)值位于第五層的隨機(jī)樹的哪個區(qū)間,根據(jù)步驟202,位于第四層的01區(qū)間,即得到01ASCII碼。步驟304,將解密后的所述待加密數(shù)據(jù)經(jīng)過消除填充值后。具體的,在最后一個加密解密的數(shù)據(jù)才需要消除填充值,因?yàn)榍懊娴募用芙饷艿臄?shù)據(jù)格式是有效的22位+22構(gòu)成一個24位的字符串。本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行解密??梢詫?shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。實(shí)施例四參考圖5所示,圖5是本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)加密的設(shè)備結(jié)構(gòu)圖。如圖5所示,所述設(shè)備包括如下單元:第一轉(zhuǎn)換單元501,用于將待加密數(shù)據(jù)由明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成預(yù)先設(shè)置的定義域值的倍數(shù),所述預(yù)先設(shè)置的定義域值是每次加密的所述ASCII碼的位數(shù);加密單元502,用于根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)樹的高度,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文;具體的,加密單元502包括:第一確定單元601,用于確定所述隨機(jī)樹的層數(shù),分割份數(shù),所述用戶密鑰,所述待加密數(shù)據(jù),待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù);其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;第一生成單元602,用于根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第一劃分單元603,用于將每段所述待劃分區(qū)間的值域等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生間隔域、每段間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;第二確定單元604,用于確定所述待加密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;第一判斷單元605,用于判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行解密。可以實(shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。實(shí)施例五參考圖7所示,圖7是本發(fā)明實(shí)施例五提供的一種數(shù)據(jù)解密的設(shè)備結(jié)構(gòu)圖。如圖7所示,所述設(shè)備包括如下單元:獲取單元701,用于獲取用戶密鑰和待解密數(shù)據(jù);解密單元702,用于根據(jù)所述用戶密鑰和所述待解密數(shù)據(jù)恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待解密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待解密數(shù)據(jù)進(jìn)行解密;所述解密單元702包括:第三確定單元801,用于確定所述隨機(jī)樹的高度、分割份數(shù)、所述用戶密鑰、所述待解密數(shù)據(jù)、待劃分區(qū)間的最小值和最大值;所述分割份數(shù)是將所述待劃分區(qū)間等間隔劃分的份數(shù),其中,每層隨機(jī)樹的長度是值域的長度加上間隔域的長度;第二生成單元802,用于根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第二劃分單元803,用于將所述待劃分區(qū)間等間隔劃分成所述分割份數(shù),通過所述隨機(jī)樹的種子產(chǎn)生隨機(jī)數(shù),所述隨機(jī)數(shù)用于產(chǎn)生每段待劃分區(qū)間間隔域,所述間隔域的分割份數(shù)和選擇的子節(jié)點(diǎn),同時使得分割后的總的間隔域長度等于分割前的間隔域長度;第三判斷單元804,根據(jù)每個子節(jié)點(diǎn)的范圍的最小值,判斷所述密文所處的位置;所處的位置等于所述密文值減去所述子節(jié)點(diǎn)的最小值再減去到所述子節(jié)點(diǎn)之前的間隔域值后得到的值除以所述子節(jié)點(diǎn)的值域分割的間隔;計(jì)算單元805,用于根據(jù)所述密文所處的位置,計(jì)算出當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼,根據(jù)所述用戶密鑰和當(dāng)前節(jié)點(diǎn)的美國信息交換標(biāo)準(zhǔn)代碼生成隨機(jī)樹的種子;第三劃分單元806,用于根據(jù)所述隨機(jī)數(shù)的種子產(chǎn)生隨機(jī)數(shù),通過所述隨機(jī)數(shù)將所述節(jié)點(diǎn)數(shù)所處待劃分區(qū)間分成兩個區(qū)域值,所述兩個區(qū)域值是下一層隨機(jī)樹的總的值域值和下一次隨機(jī)樹的總的間隔域值;第四確定單元807,用于確定所述解密數(shù)據(jù)的節(jié)點(diǎn)位置,所述節(jié)點(diǎn)位置的最小值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置上一層隨機(jī)樹的最小值、到所述節(jié)點(diǎn)位置的值域間隔值的總和、到所述節(jié)點(diǎn)位置的間隔域間隔值的總和;第三判斷單元808,用于判斷所述節(jié)點(diǎn)位置是否是所述選擇的子節(jié)點(diǎn),若是,則所述節(jié)點(diǎn)位置的最大值是三個值之和,所述三個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值、所述間隔域在所述節(jié)點(diǎn)位置的值;若否,則所述節(jié)點(diǎn)位置的最大值是兩個值之和,所述兩個值分別是所述節(jié)點(diǎn)位置的最小值、所述節(jié)點(diǎn)位置的值域間隔值。第二轉(zhuǎn)換單元703,用于將解密后的所述待加密數(shù)據(jù)經(jīng)過消除填充值后轉(zhuǎn)換為明文字符串。本發(fā)明實(shí)施例通過根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行加密,并根據(jù)所述用戶密鑰恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)進(jìn)行解密。可以實(shí)現(xiàn)保序性、安全性、計(jì)算和存儲負(fù)載負(fù)擔(dān)少、數(shù)據(jù)域變化對計(jì)算負(fù)載影響小等優(yōu)點(diǎn)。實(shí)施例六參考圖9,圖9是本發(fā)明實(shí)施例六提供的一種數(shù)據(jù)加密的設(shè)備結(jié)構(gòu)圖。參考圖9,圖9是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加密的設(shè)備900,,本發(fā)明具體實(shí)施例并不對所述設(shè)備的具體實(shí)現(xiàn)做限定。所述設(shè)備900包括:處理器(processor)901,通信接口(CommunicationsInterface)902,存儲器(memory)903,總線904。處理器901,通信接口902,存儲器903通過總線904完成相互間的通信。通信接口902,用于與數(shù)據(jù)解密設(shè)備進(jìn)行通信;處理器901,用于執(zhí)行程序A。具體地,程序A可以包括程序代碼。處理器901可能是一個中央處理器CPU,或者是特定集成電路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。存儲器903,用于存放程序A。存儲器903可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。程序A具體可以包括以下用于實(shí)現(xiàn)以下功能的代碼:將明文字符串轉(zhuǎn)換成美國信息交換標(biāo)準(zhǔn)代碼ASCII碼,并將轉(zhuǎn)換后的ASCII碼的位數(shù)湊成預(yù)先設(shè)置的定義域值的倍數(shù),所述預(yù)先設(shè)置的定義域值是每次加密的所述ASCII碼的位數(shù);根據(jù)所述預(yù)先設(shè)置的定義域值確定隨機(jī)樹的高度,同時根據(jù)用戶密鑰和待加密數(shù)據(jù)生成從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,并在所述葉子節(jié)點(diǎn)所屬的區(qū)間范圍內(nèi)選擇一個隨機(jī)數(shù),形成所述待加密數(shù)據(jù)的密文。實(shí)施例七參考圖10,圖10是本發(fā)明實(shí)施例七提供的一種數(shù)據(jù)解密的設(shè)備結(jié)構(gòu)圖。參考圖10,圖10是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)解密的設(shè)備1000,,本發(fā)明具體實(shí)施例并不對所述設(shè)備的具體實(shí)現(xiàn)做限定。所述設(shè)備1000包括:處理器(processor)1001,通信接口(CommunicationsInterface)1002,存儲器(memory)1003,總線1004。處理器1001,通信接口1002,存儲器1003通過總線1004完成相互間的通信。通信接口1002,用于與數(shù)據(jù)加密設(shè)備進(jìn)行通信;處理器1001,用于執(zhí)行程序A。具體地,程序A可以包括程序代碼。處理器1001可能是一個中央處理器CPU,或者是特定集成電路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。存儲器1003,用于存放程序A。存儲器1003可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。程序A具體可以包括以下用于實(shí)現(xiàn)以下功能的代碼:獲取用戶密鑰和待加密數(shù)據(jù)的密文;根據(jù)所述用戶密鑰和所述待加密數(shù)據(jù)的密文恢復(fù)所述從隨機(jī)樹的根節(jié)點(diǎn)到所述待加密數(shù)據(jù)對應(yīng)的葉子節(jié)點(diǎn)的路徑,將所述待加密數(shù)據(jù)的密文進(jìn)行解密;將解密后的所述待加密數(shù)據(jù)經(jīng)過消除填充值后轉(zhuǎn)換為明文字符串。以上所述僅為本發(fā)明的優(yōu)選實(shí)施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明要求包含范圍之內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
三明市| 仙居县| 梧州市| 偃师市| 三亚市| 琼海市| 东光县| 友谊县| 离岛区| 南漳县| 阳原县| 揭西县| 错那县| 嫩江县| 信宜市| 广汉市| 台南市| 景洪市| 兴文县| 西充县| 庄河市| 甘孜| 四川省| 凤台县| 兴城市| 安宁市| 桃源县| 金寨县| 乃东县| 鄂伦春自治旗| 曲麻莱县| 五常市| 达日县| 新河县| 定远县| 沛县| 高邑县| 东丽区| 呼玛县| 商河县| 乳源|