張育梅
(長春工業(yè)大學人文信息學院,吉林 長春 130000)
保形加密即數(shù)據(jù)脫敏的一種形式,數(shù)據(jù)脫敏就是通過一些特殊的處理,使數(shù)據(jù)信息處于一種變形的情況,避免入侵者從脫敏處理后的數(shù)據(jù)中得到任何有關于用戶的隱私信息,進而保護用戶的個人信息安全。在金融、電信、電力與醫(yī)療等行業(yè)中,數(shù)據(jù)脫敏技術具有很好的應用前景,例如,在網(wǎng)絡系統(tǒng)維護中,數(shù)據(jù)具有較多關鍵性隱私數(shù)據(jù),一旦遭到泄露,就會被不法分子使用,分析用戶的行為等,所以在傳輸、儲存與共享時就需要對數(shù)據(jù)進行脫敏處理。
憑借數(shù)據(jù)脫敏結果,把其分成兩種類型:可恢復類與不可恢復類??苫謴皖惣疵撁粝到y(tǒng)對隱私數(shù)據(jù)在進行處理之后,通過某個指定的形式將處理后的數(shù)據(jù)恢復到起始數(shù)據(jù)的狀態(tài),其能夠依靠加密解密算法當作處理模型;不可恢復類即憑借脫敏系統(tǒng)對隱私數(shù)據(jù)在進行處理之后,沒有任何方法能夠將其復原。不可恢復類脫敏主要是應用到數(shù)據(jù)共享與公開上的,而可恢復類就可以作用靜態(tài)傳輸與動態(tài)儲存上。因此,可恢復類數(shù)據(jù)脫敏方法更加優(yōu)越??苫謴皖愔写嬖谝环N代表性的保形方法,該保形方法能夠同時讓密文與源文以數(shù)據(jù)的形式存在。
關系型數(shù)據(jù)庫的產(chǎn)品和脫敏技術不能直接應用在新興的網(wǎng)絡平臺,雖然保形加密已經(jīng)比較成熟,但是將這種方法直接作用在網(wǎng)絡平臺上還是較為少見的,并且如果直接將保形加密算法作用在網(wǎng)絡數(shù)據(jù)中,可能會出現(xiàn)數(shù)據(jù)無法復原或數(shù)據(jù)崩潰等問題。
針對上述問題,提出了一種基于分組密碼的網(wǎng)絡數(shù)據(jù)保形加密數(shù)學模型。
設定網(wǎng)絡數(shù)據(jù)明文分組內一共存在N種小塊,就是M=(m0,m1,…,mn…1),其中mi∈{0,1,…,N-1}。分組密碼的加密函數(shù)為
ci=EKEi(mi)≡(mi+ki)modN
(1)
式中,加密秘鑰是KE=(k0,k1,…,kN-1),k1∈{0,1,…,N-1}(i=0,1,…,N-1)。
通過感知器構建的分組密碼[1],需要k0,k1,…,kN-1互補相同,就是k0,k1,…,kN-1即模n的冗余集。假如這種方式成立,反而會減少密碼分析者攻擊空間,即讓密碼逐漸失去安全性,只要(k0,k1,…,kN-1)∈{0,1,…,N-1}N,就是在i≠j時,ki=kj(i,j=0,1,…,N-1)也可以建造出對應的[2]解密函數(shù),同時將分子者攻擊的窮舉空間進行擴展,即將密碼的安全性進行了增強。該分組密碼的解密函數(shù)能夠通過下式描述
mi=DKDi(ci)≡(ci+N+(-ki))modN
(2)
式中,加密秘鑰與解密秘鑰都是[3]相反數(shù),就是KD=(-k0,-k1,…,-kN-1),ki∈{0,1,…,N-1},(i=0,1,…,N-1)。
混亂與擴散就是隱蔽明文數(shù)據(jù)冗余的的一種形式。由于模運算就是一種非線性的運算,所以加密函數(shù)與解密函數(shù)能夠提取出一定量的混亂特征[4],但是加密函數(shù)與解密函數(shù)的擴散特征就不是非常明顯了。
設定明文分組一共存在N種小塊,就是M=(m0,m1,…,mn…1),對應的密文分組也存在N種小塊,就是C=(c0,c1,…,cN-1),其中,mi∈Z,ci∈Z(i=0,1,…,N-1)。
優(yōu)化加密函數(shù)是
(3)
對應的解密函數(shù)是
(4)
式中,加密秘鑰和解密秘鑰都是逆矩陣,就是KD=(KE)-1。
結合上述來說,加密函數(shù)與解密函數(shù)的擴散特征是非常明顯的[5]。
因為上述兩種密碼系統(tǒng)可以憑借乘積的方法被融合在一起。憑借這種概念,能夠將上述兩種模型作為兩種密碼系統(tǒng)T與R,將兩種密碼獨一作用至一層前饋神經(jīng)網(wǎng)絡中,通過乘積的形式就可以取得一種同時滿足混亂與擴散規(guī)則的網(wǎng)絡數(shù)據(jù)保形加密系統(tǒng)[6],其系統(tǒng)結構如圖1所示。
圖1 網(wǎng)絡數(shù)據(jù)保形加密系統(tǒng)結構圖
通過圖1能夠看出,T的密文空間與R的明文空間是同樣的,因此可以依據(jù)T系統(tǒng)進行加密,然后對加密過程的結果利用R系統(tǒng)進行處理。
在第一層加密系統(tǒng)T內,因為每一種神經(jīng)元都是輸送函數(shù)的模運算,而模運算就是一種非線性的運算形式,在第二層的加密系統(tǒng)R里,也能夠憑借矩陣相乘的運算方法[7],所以該模型在整體上能夠描述出很好的混亂特征。
在第二層的加密系統(tǒng)R里,由于利用該層輸入向量與神經(jīng)元之間的鏈接權值矩陣作為加密秘鑰K2,所以這一層能夠很好的描述出擴散特征。從理論上可以描述為,融入至加密秘鑰K1與加密秘鑰K2沒有出現(xiàn)變化時,更改明文向量的隨機一種元素[8],加密之后就可以使N種密文出現(xiàn)變化,而調整隨機一種密文元素,在進行解密后也可以讓N種明文元素產(chǎn)生轉變,所以明文與密文之間的擴散干擾強度是非常高的。
同理,在加密秘鑰與明文K2沒有出現(xiàn)變化時,調整加密秘鑰K1的隨意一種小塊,在加密之后可以使N種密文小塊出現(xiàn)變化,在加密秘鑰與明文K1沒有出現(xiàn)變化時,調整加密秘鑰K2的隨意一種小塊[9],加密之后可以讓一種密文小塊產(chǎn)生轉變,所以密文對秘鑰的擴散干擾強度也是非常高的。
針對加密秘鑰K2來說,假如ki,j(i,j=0,1,…,N-1)隨機挑選,只要(k0,k1,…,kN-1)∈{0,1,…,N-1}N即可,因此就存在NN種不同的挑選方式[10]。在密碼分析者使用窮舉秘鑰空間進行攻擊時,只需要取N種足夠大的值,密碼分析者只靠窮舉NN種秘鑰來運算加密秘鑰[11],或是通過加密秘鑰加密的新密文與同種加密方法,運算其對應的明文在理念上是不可能的,即這個系統(tǒng)在運算上是較為安全的。
對于加密秘鑰K2來說,假如ki,j(i,j=0,1,…,N-1)隨機挑選,只要ki,j∈R同時KE與KD是相互可逆的即可。因此,在密碼分析者使用窮舉秘鑰空間攻擊時,只靠窮舉秘鑰空間計算加密秘鑰,或是通過同一種加密算法與加密秘鑰的新密文計算器相應的明文來得到明文是不可能的,所以這個系統(tǒng)是一種無條件安全的。
從整體上來看,在密碼分析者憑借窮舉空間進行入侵時,由于需要窮舉加密秘鑰K2與加密秘鑰K1的密鑰空間,而在理念中加密密鑰含有無窮個收集算法,所以只利用窮舉密鑰空間運算在正常情況下是不會出現(xiàn)變化的,即這個分組密鑰在理論上是安全的。
為了并行支持數(shù)字、純字母與純數(shù)字混合的加密處理,對NIST標準草案的FF1模型進行微調。在設定分組加密秘鑰K基數(shù)n和tweak值T時,F(xiàn)F1模型對明文P進行加密,設定n=10里的字符集對應的數(shù)字即0~9,再向上提升就是相應的英文字母a~z,加入16進制相應的字符集是{0,1,…,9,a,b,…,f}。在設定出FF1模型的基礎上簡單微調保形加密整體流程。
模型依據(jù)基數(shù)n的設定來微調所提供支持的字符集,n的取值范圍是{1,2,3,…,10,26,36}。舉例描述,n=10即加密數(shù)域,該數(shù)域是十進制數(shù),就是字符集的數(shù)字,n=36即加密數(shù)據(jù),這個數(shù)據(jù)是三十六進制數(shù),通過上述信息支持字符集是英文字母與數(shù)字的混合[12],而為了供給純英文字母字符集的加密,能夠讓n=26,此時源對應的字符集即0~9、a~p,因此加密前后進行附加處理,將數(shù)值轉化為a~z。該模型是不會區(qū)分字母的大小寫的,但是能夠對其進行拓展,即能夠把同時存在字母大小寫和數(shù)字的字符集作為六十二進行數(shù),對應字符進行處理,同樣的,繼續(xù)拓展進而供給更大的字符集,比如ASCII字符。為了讓這種字符更加簡單。
FF1模型以多種模式對數(shù)據(jù)進行加密,針對不同情況下,該模型以三種模式呈現(xiàn),即簡單單機模式、ETL工具模式、Spark并行模式。具體如下所示:
1)簡單單機模式
簡單單機模式即三種模式里較為簡易與直接的系統(tǒng),其思想即把儲存在網(wǎng)絡平臺上的數(shù)據(jù)線導至本地內存里,在對儲存在本地文件里的網(wǎng)絡數(shù)據(jù)依靠保形加密方法對其進行處理,從而實現(xiàn)網(wǎng)絡數(shù)據(jù)的脫敏。依靠儲存管理形式的不同,利用了相應的網(wǎng)絡編輯接口來支持HDFS文件數(shù)據(jù)的導出。之后在單機上依據(jù)上述方式加密網(wǎng)絡數(shù)據(jù)。
簡單單機模式的好處就是直觀與簡易,同時能夠在脫機運行,但其缺點也比較明顯,因其只是依靠單機的方式對網(wǎng)絡數(shù)據(jù)進行加密處理,因此這就導致了這種方法在處理脫敏時效率較慢。
2)ETL工具模型
為了提高加密的速度,可以利用ETL工具來提升并行度與流水線的運作效率。依據(jù)開源的ETL工具,把保形加密依靠轉換插件的形式來供給,進而直接提供網(wǎng)絡平外內的多種數(shù)據(jù)模式。Kettle就是一種跨平臺的開源ETL工具,這種工具可以直接讓用戶依靠可視化工具來對現(xiàn)實數(shù)據(jù)導入與導出,同時該工具還能夠運行多個發(fā)行版本。
保形加密插件的開發(fā)以交互界面加密模式為主。交互界面的運作即與用戶之間的交互行為,并為用戶的參數(shù)配置提供一些幫助,存在明文列名、密鑰配置、tweak配置與密文列名等。依靠于Kettle來處理保形加密的轉換插件配置與主界面的轉換系統(tǒng),也就是ETL工具模式里含有的一種優(yōu)點。相對來說,其它的量化方式能夠完成的只是通過終端參數(shù)的指示對數(shù)據(jù)進行一種簡單的交互操作。
ETL工具模式可以對保形加密的效率進行提升,而其原因存在兩種。第一種就是加密脫敏、結果儲存與數(shù)據(jù)導出,通過三條而組成的流水線,能夠對數(shù)據(jù)進行迭代脫敏處理,之后在傳送至標定的坐標。第二種方法即供給并行處理,在Kettle的單機運行模式里,能夠擬定保形加密轉換流程的并發(fā)數(shù),進而通過多核心處理器對網(wǎng)絡大數(shù)據(jù)進行保形加密,Kettle還能夠形成集群模式,能夠把數(shù)據(jù)分發(fā)至集群的每一種逐級內,完成多逐級并行處理,縮短加密運行時間。
3)Spark并行模式
為了充分顯示分布式儲存和并行化運算的優(yōu)勢,利用并行估算框架來完成保形加密的操作。先對比Spark并行模式,依靠內存估算將輸入操作與硬盤輸入的效率提高,進而提高估算的效率。因此,基于Spark的并行模式可以對保形加密效率最大承受度的提升。
依據(jù)Spark的編程接口對網(wǎng)絡數(shù)據(jù)加密脫敏處理流程為:首先,讀取網(wǎng)絡儲存庫內的數(shù)據(jù)信息,從而,形成Spark的單行分布與抽象的數(shù)據(jù)集,之后,在利用數(shù)據(jù)Spark支持的并行估算編程接口,在集群內對RDD進行加密處理。
在這種模式內,保形加密即依據(jù)Spark作業(yè)的形式來體現(xiàn)其效率的提升,把其傳輸至分布式計算機里來實現(xiàn)運行,從而實現(xiàn)網(wǎng)絡數(shù)據(jù)脫敏。因此,對于Spark的參數(shù)調優(yōu)對于該模式的運行速度具有促進作用。
通過上述能夠表明,根據(jù)不同的數(shù)據(jù)環(huán)境所需的處理效率與處理質量,三種保形加密模式針對實際情況進行自動切換。
仿真環(huán)境為Intel Celeron Tulatin1GHz CPU和384MB SD內存的硬件環(huán)境和MATLAB6.1的軟件環(huán)境。
為了證明所提方法的實用性,將網(wǎng)絡數(shù)據(jù)分為三次參數(shù)樣條即兩種自由端與夾持端,三次樣條曲線在小繞度的狀態(tài)下,效果較好,在繞度較大時,數(shù)據(jù)樣條曲線和現(xiàn)實曲線就會出現(xiàn)較大的誤差。而三次數(shù)據(jù)參數(shù)樣條能夠較好的解決大繞度的困難,如圖2所示。
圖2 三次樣條和殘次參數(shù)樣條比對圖
從整體的趨勢上來看,三次參數(shù)樣條在三個邊界條件內,邊界條件挑選所提方法效果較好,所以在對等高線內點進行保形加密時使用所提方法進行加密。加密之后的效果如圖3所示。
圖3 等高線內點保形加密效果圖
通過圖3能夠看出,使用所提方法保形加密之后的曲線不會出現(xiàn)和初始等高線太大的誤差,因此證明,所提方法能夠有效的對網(wǎng)絡數(shù)據(jù)進行保形加密,并且加密之后不會存在太大的差異。
在此基礎上,在執(zhí)行保形加密過程后,對所提方法的加密性能進行測試,檢測其速度和運行速度是否在最優(yōu)范圍內。實驗結果如圖4所示。
圖4 保形加密后數(shù)據(jù)性能測試結果
如圖4所示,在不同數(shù)據(jù)量的情況下,經(jīng)過所提方法保形加密后,數(shù)據(jù)的運行時間和速度均在最優(yōu)范圍內,符合實際需求,實際應用性較好。
提出了一種基于分組密碼的網(wǎng)絡數(shù)據(jù)保形加密數(shù)學模型,仿真結果證明,在網(wǎng)絡數(shù)據(jù)保形加密內,所提方法能夠有效的對網(wǎng)絡數(shù)據(jù)進行保形加密,并且加密之后不會存在太大的差異,并且經(jīng)過保形加密后,數(shù)據(jù)性能較優(yōu),加密效率較高,加密之后與源數(shù)據(jù)差異較小。