本發(fā)明涉及云計(jì)算中信息的存儲(chǔ)及提取技術(shù)領(lǐng)域。
背景技術(shù):
計(jì)算機(jī)技術(shù)和移動(dòng)網(wǎng)絡(luò)支持技術(shù)發(fā)展,大量應(yīng)用從傳統(tǒng)的構(gòu)架轉(zhuǎn)發(fā)到云計(jì)算的環(huán)境,伴隨用戶隨時(shí)隨地的訪問(wèn)信息,云計(jì)算中的安全問(wèn)題受到了廣泛的關(guān)注。
現(xiàn)在,云計(jì)算中分布式緩存技術(shù)發(fā)展最多,基于此建立的云計(jì)算傳輸平臺(tái)也最多,同時(shí)也是現(xiàn)在比較穩(wěn)定,性能很高的技術(shù),分布式緩存將數(shù)據(jù)分布到多個(gè)緩存服務(wù)節(jié)點(diǎn),在內(nèi)存中管理數(shù)據(jù),對(duì)外提供統(tǒng)一的訪問(wèn)接口,基于冗余備份機(jī)制實(shí)現(xiàn)高可用支持。當(dāng)應(yīng)用程序需要緩存數(shù)據(jù)時(shí),客戶端通過(guò)相應(yīng)的分布式算法獲得秘鑰對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn),然后客戶端通過(guò)TCP/IP協(xié)議將數(shù)據(jù)發(fā)送給緩存服務(wù)器,緩存服務(wù)器調(diào)用本地服務(wù)將數(shù)據(jù)緩存在內(nèi)存中。類似的應(yīng)用程序讀取緩存時(shí),首先通過(guò)分布式算法獲得秘鑰所在節(jié)點(diǎn),然后通過(guò)網(wǎng)絡(luò)獲取相應(yīng)的數(shù)據(jù),由于本地服務(wù)本身沒(méi)有加密處理的功能,數(shù)據(jù)的存儲(chǔ)往往是明文形式的,攻擊者、用戶或者系統(tǒng)管理員很容易獲得緩存內(nèi)容,從而造成了分布式緩存系統(tǒng)的安全性隱患。
為解決上述的安全問(wèn)題,傳統(tǒng)的加密方法可以完成加密過(guò)程,但是運(yùn)算復(fù)雜,導(dǎo)致分布式緩存系統(tǒng)性能降低,制約其發(fā)展,所以,需要在此基礎(chǔ)上重新建立一種運(yùn)算簡(jiǎn)單快捷的輕量級(jí)加密算法。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述不足,本方法提出基于正整數(shù)的同余理論求解某一未知正整數(shù)的方法,建立了一種用于分布式緩存中信息存儲(chǔ)與提取的加密和解密方法。
本發(fā)明所采用的技術(shù)方案是:首先將數(shù)據(jù)D按照字節(jié)順序,轉(zhuǎn)化成一個(gè)N行n列的矩陣,然后定義一個(gè)兩兩互素的整數(shù)集合,然后依據(jù)同余理論將原始數(shù)據(jù)和定義的整數(shù)集合構(gòu)建成一元線性同余方程組,求得解以后,變換為矩陣,按照原始數(shù)據(jù)構(gòu)建矩陣的方案將矩陣轉(zhuǎn)化為數(shù)據(jù)列,即得到了密文;解碼時(shí),將密文構(gòu)建成矩陣,然后反解同余方程得到原始數(shù)據(jù)的矩陣,在重構(gòu)為原始數(shù)據(jù)列。
本發(fā)明的有益效果是:能夠解決目前云計(jì)算環(huán)境下面分布式緩存技術(shù)在安全問(wèn)題上的缺陷,保障了云環(huán)境中緩存數(shù)據(jù)的機(jī)密性,并且計(jì)算簡(jiǎn)單,執(zhí)行性能高,區(qū)別于現(xiàn)在的主流算法,進(jìn)一步提高了云計(jì)算系統(tǒng)的穩(wěn)定性和安全性。
附圖說(shuō)明
具體實(shí)施方式
下面詳細(xì)描述此發(fā)明。
一、本發(fā)明的原理
兩兩互素的n個(gè)正整數(shù)m={m1,m2,…,mn},對(duì)任意整數(shù)an,構(gòu)造的一元線性同余方程組S是必定有解的
其解為
其中:k∈Z,M`i是Mi的模mi的論導(dǎo)數(shù)。
通過(guò)歐幾里得算法可求出:
二、加密過(guò)程
在云環(huán)境下,將一串?dāng)?shù)據(jù)D存儲(chǔ)到分布式緩存系統(tǒng)中,并轉(zhuǎn)換到密文X,執(zhí)行以下步驟:
步驟1:將數(shù)據(jù)D按照字節(jié)順序分為N組,為G1,G2,...,Gn,每組數(shù)據(jù)包含有B個(gè)字節(jié),每組數(shù)據(jù)再分為n個(gè)單元,每個(gè)單元表示為u1,u2,...,un,每個(gè)單元包含b個(gè)字節(jié),此時(shí)數(shù)據(jù)D被劃分為一個(gè)N行n列的矩陣:
步驟2:定義集合m∈{mn},集合中任意兩個(gè)整數(shù)互素,且mj>uij
步驟3:對(duì)矩陣中的每一行ri構(gòu)造如下同余方程:
解得:
則可得變換后的矩陣為:
步驟4:將x1到xN連接起來(lái),就可以得到加密后的密文X:
秘鑰為(N,m1,m2,…,mn),同時(shí),調(diào)用分布式緩存系統(tǒng)的API對(duì)加密數(shù)據(jù)進(jìn)行緩存,如此便完成了緩存數(shù)據(jù)的存儲(chǔ)。
在加密過(guò)程中有個(gè)約束條件,因?yàn)橛?jì)算機(jī)處理器最多能處理64位,所以:
因?yàn)椋?/p>
所以,約束條件位nb≤64。
三、解密過(guò)程
解密過(guò)程為加密的逆運(yùn)算,首先,將密文X平均分成N組,記為x1,x2,…,xN得到加密后的矩陣:
P′=[x1,x2,…,xN]T
對(duì)每一行的x構(gòu)造同余方程組:
解方程組,得到u,得到u即是恢復(fù)了數(shù)據(jù)矩陣P;
將得到的原始數(shù)據(jù)矩陣按照先后順序進(jìn)行連接得到原始數(shù)據(jù)D:
。