趙 迪,劉 晨
(國(guó)網(wǎng)天津市電力公司,天津 300010)
隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,信息傳遞方式也在不斷升級(jí)進(jìn)化,分布式網(wǎng)絡(luò)逐漸被廣泛應(yīng)用。在各種企業(yè)中,分布式網(wǎng)絡(luò)面臨的安全威脅種類(lèi)有很多,在這種情況下信息加密技術(shù)得到了較好地發(fā)展。加密技術(shù)主要由密碼編碼技術(shù)和密碼分析技術(shù)組成,最早被人們接受的加密技術(shù)是使用64位的密鑰加密信息[1]。但是現(xiàn)階段常規(guī)的加密系統(tǒng)已經(jīng)不能滿(mǎn)足需求,因此提出了設(shè)計(jì)基于經(jīng)驗(yàn)?zāi)B(tài)分解的分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密系統(tǒng),用于解決常規(guī)加密系統(tǒng)中存在的問(wèn)題。
綜合考慮加密系統(tǒng)速度、功耗以及存儲(chǔ)測(cè)試等方面問(wèn)題,在系統(tǒng)硬件設(shè)計(jì)部分,利用FPGA和ASIC專(zhuān)用集成電路芯片實(shí)現(xiàn)加密算法。其中,F(xiàn)PGA設(shè)計(jì)的評(píng)價(jià)標(biāo)準(zhǔn)是面積和速度,在滿(mǎn)足系統(tǒng)需求下,占用最少的資源使系統(tǒng)工作效率達(dá)到最高。硬件設(shè)計(jì)中選用的FPGA芯片為EP2C8AF256,將工作時(shí)所有的配置數(shù)據(jù)存儲(chǔ)在SRAM單元中,用于控制FPGA工作[2]。正常工作中使用FPGA中的JTAG模型來(lái)配置,用戶(hù)在使用時(shí)通過(guò)MSEL引腳設(shè)置配置方式,在配置過(guò)程中,配置數(shù)據(jù)通過(guò)FPGA中的DATA引腳接收,釋放引腳CONF_DONE驅(qū)動(dòng)至高電平,表明配置完成。
在FPGA中嵌入Flash芯片可直接寫(xiě)入地址和指令。在寫(xiě)操作期間,通過(guò)輸入命令加載串行數(shù)據(jù)和地址,在接收到發(fā)送命令后開(kāi)始編程。編程結(jié)束后,利用I/O端口判斷編程是否成功,向端口發(fā)送讀取狀態(tài)命令。Flash芯片可以擦除異常數(shù)據(jù),在輸入擦除確認(rèn)命令后,數(shù)據(jù)信號(hào)保持低電平,F(xiàn)lash芯片不再響應(yīng)外部讀取,以確保不會(huì)因外部干擾而意外擦除[3]。I/O接口的第0位用于確定擦除是否成功。擦除操作完成后,若判斷為0時(shí),則表示擦除成功,否則表示擦除失敗,在這種存儲(chǔ)模式下,可進(jìn)一步確保分布式網(wǎng)絡(luò)信息數(shù)據(jù)的安全可靠。
由于加密數(shù)據(jù)實(shí)時(shí)變化是不穩(wěn)定的,產(chǎn)生的原始加密信號(hào)內(nèi)部有不同的振蕩成分和波動(dòng)特征,并含有一定的噪聲,因此需要采用經(jīng)驗(yàn)?zāi)B(tài)分解技術(shù)分解原始加密信號(hào)去除噪聲[4]。原始加密信號(hào)由有限個(gè)參與分量和一個(gè)趨勢(shì)項(xiàng)組成。在經(jīng)驗(yàn)?zāi)B(tài)分解過(guò)程中,先搜索原始加密信號(hào)x(t)的極大值點(diǎn)和極小值點(diǎn),然后從中減掉第一階固有模態(tài)分量vi(t),從而得到殘余項(xiàng)A(t)。涉及的計(jì)算公式如下:

式中,N表示分量個(gè)數(shù)。經(jīng)過(guò)經(jīng)驗(yàn)?zāi)B(tài)分解后的各個(gè)分量和趨勢(shì)項(xiàng)除去計(jì)算誤差外可以無(wú)損重構(gòu)出原始數(shù)據(jù)。在重構(gòu)過(guò)程中,使用高波數(shù)分量來(lái)抑制噪聲,去除原始加密信號(hào)中的噪聲干擾。在完成以上操作后,對(duì)可篡改信息數(shù)據(jù)加密處理。
系統(tǒng)內(nèi)的數(shù)據(jù)加解密過(guò)程主要通過(guò)系統(tǒng)的客戶(hù)端完成。加密過(guò)程中是用戶(hù)不可見(jiàn)模式,明文信息不會(huì)在網(wǎng)絡(luò)中傳播,不會(huì)影響用戶(hù)正常管理分布式網(wǎng)絡(luò)信息。加密系統(tǒng)的加解密在硬件基礎(chǔ)上實(shí)現(xiàn),F(xiàn)PGA內(nèi)部加密原理如圖1所示。

圖1 FPGA內(nèi)部加密原理圖
從圖1可以看出,加解密整個(gè)時(shí)序的開(kāi)始和結(jié)束主要由控制模塊控制,通過(guò)控制模塊控制數(shù)據(jù)的輸入和輸出,實(shí)現(xiàn)子密鑰的選取[5]。加密算法主要包括乘法逆運(yùn)算和仿射變換組成字節(jié)替換,行移位變換是通過(guò)循環(huán)移位操作實(shí)現(xiàn)的,其中不同的行使用不同的移位量,并且通過(guò)邏輯電路實(shí)現(xiàn),列混合變換通過(guò)查找表實(shí)現(xiàn),輪密鑰添加通過(guò)異或操作實(shí)現(xiàn)。在解密階段,將解密模塊的流水線(xiàn)級(jí)數(shù)設(shè)置為兩級(jí),并使用5輪轉(zhuǎn)換作為外部流水線(xiàn)結(jié)構(gòu)的第1級(jí),內(nèi)部流水線(xiàn)結(jié)構(gòu)用于每輪轉(zhuǎn)換內(nèi),分為兩個(gè)流水線(xiàn)站。其中一個(gè)由逆列混合變換和逆移位變換組合而成,另一個(gè)由逆字節(jié)替換和密鑰加法組合而成。當(dāng)數(shù)據(jù)解密進(jìn)行到最后一輪變換時(shí),跳過(guò)逆列混合完成解密。在分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密中,采用非并行擴(kuò)展方法,通過(guò)密鑰擴(kuò)展模塊生成所有的輪子密鑰,在執(zhí)行加密任務(wù)時(shí),根據(jù)實(shí)際需求直接選擇合適的輪子密鑰。至此,基于經(jīng)驗(yàn)?zāi)B(tài)分解的分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密系統(tǒng)設(shè)計(jì)完成。
在分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密系統(tǒng)性能測(cè)試中,使用4臺(tái)計(jì)算機(jī)組成集群。其中,1臺(tái)計(jì)算機(jī)模擬密鑰管理服務(wù)器,另外3臺(tái)模擬3個(gè)接收端。系統(tǒng)測(cè)試主要以對(duì)比測(cè)試為主,分為兩個(gè)部分,第一部分是測(cè)試可篡改信息數(shù)據(jù)加密對(duì)系統(tǒng)效率的影響,根據(jù)數(shù)據(jù)大小的不同,分析不同加密系統(tǒng)加密前后系統(tǒng)速率的變化,第二部分是測(cè)試不同加密系統(tǒng)使用的元器件,在執(zhí)行加密任務(wù)時(shí)系統(tǒng)吞吐量的變化和邏輯單元的占用情況,根據(jù)這兩組測(cè)試對(duì)比分析不同加密系統(tǒng)的實(shí)際性能。測(cè)試中選用的加密系統(tǒng)分別是基于密碼學(xué)的加密系統(tǒng)、基于AES加密算法的加密系統(tǒng)以及提出的基于經(jīng)驗(yàn)?zāi)B(tài)分解的加密系統(tǒng)。
測(cè)試中,設(shè)定系統(tǒng)一次最多處理1 024 000個(gè)字節(jié),使用的測(cè)試樣本分別是1K、100K、500K、1M、5M以及10M的可篡改信息數(shù)據(jù)。記錄沒(méi)有執(zhí)行加密任務(wù)的測(cè)試系統(tǒng)對(duì)樣本數(shù)據(jù)進(jìn)行測(cè)試的結(jié)果,然后采用不同加密系統(tǒng)對(duì)樣本數(shù)據(jù)執(zhí)行相同的加密任務(wù)并記錄結(jié)果,對(duì)比數(shù)據(jù)進(jìn)行分析。測(cè)試結(jié)果如表1所示。
從表1中數(shù)據(jù)可以看出,基于AES加密算法的加密系統(tǒng)執(zhí)行加密任務(wù)后的平均傳輸速率為1 054.69 K/s,基于密碼學(xué)的加密系統(tǒng)執(zhí)行加密任務(wù)后的平均傳輸速率為1 157.28 K/s,基于經(jīng)驗(yàn)?zāi)B(tài)分解的加密系統(tǒng)執(zhí)行加密任務(wù)后的平均傳輸速率為6 741.39 K/s。由此可知,在使用常規(guī)的加密系統(tǒng)執(zhí)行加密任務(wù)時(shí),任務(wù)執(zhí)行后系統(tǒng)效率變?yōu)樵瓉?lái)的5~7倍,這是因?yàn)閳?zhí)行了比較復(fù)雜的數(shù)據(jù)操作,使得數(shù)據(jù)傳輸增加了額外的時(shí)間。而設(shè)計(jì)的基于經(jīng)驗(yàn)?zāi)B(tài)分解的加密系統(tǒng)在執(zhí)行加密任務(wù)前后系統(tǒng)效率沒(méi)有出現(xiàn)大幅度的變化,說(shuō)明該系統(tǒng)在使用中不會(huì)降低多少性能。
吞吐量測(cè)試針對(duì)的是系統(tǒng)中的元器件,在第三方軟件QuartusII上進(jìn)行性能評(píng)估。對(duì)3個(gè)系統(tǒng)進(jìn)行相同的編譯,通過(guò)綜合編譯后,穩(wěn)定系統(tǒng)的頻率變化輸出測(cè)試結(jié)果,并根據(jù)測(cè)試結(jié)果評(píng)估系統(tǒng)硬件設(shè)計(jì)上的優(yōu)劣。3個(gè)系統(tǒng)的橫向?qū)Ρ冉Y(jié)果如表2所示。

表1 不同加密系統(tǒng)效率測(cè)試結(jié)果

表2 不同系統(tǒng)吞吐量測(cè)試結(jié)果
通過(guò)對(duì)比表2中數(shù)據(jù)可知,對(duì)于不同加密系統(tǒng)而言,在執(zhí)行相同的加密任務(wù)時(shí)設(shè)計(jì)的基于經(jīng)驗(yàn)?zāi)B(tài)分解的加密系統(tǒng)吞吐量更高,使用的邏輯單元較少,系統(tǒng)在吞吐量和資源占用量之間可以達(dá)到很好的平衡。此外,結(jié)合系統(tǒng)效率測(cè)試結(jié)果可知,設(shè)計(jì)的基于經(jīng)驗(yàn)?zāi)B(tài)分解的分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密系統(tǒng)在資源利用上也具有明顯優(yōu)勢(shì)。
目前,分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)加密系統(tǒng)作為保證信息安全的有效手段,廣泛應(yīng)用于不同領(lǐng)域,也是目前研究的熱點(diǎn)。本文圍繞著分布式網(wǎng)絡(luò)可篡改信息數(shù)據(jù)的加密,結(jié)合軟件和硬件設(shè)計(jì)了基于經(jīng)驗(yàn)?zāi)B(tài)分解的數(shù)據(jù)加密系統(tǒng),通過(guò)多項(xiàng)對(duì)比測(cè)試驗(yàn)證了該系統(tǒng)的可行性和優(yōu)越性,進(jìn)一步提高了系統(tǒng)的應(yīng)用性能。