摘 要:近年來(lái)網(wǎng)絡(luò)數(shù)據(jù)安全的重要性日益凸顯,為了進(jìn)一步提高網(wǎng)絡(luò)數(shù)據(jù)的安全性,文中闡述了一種基于申威芯片的語(yǔ)音通信加密服務(wù)。語(yǔ)音通信加密服務(wù)基于申威3231處理器平臺(tái)設(shè)計(jì)與實(shí)現(xiàn),采用國(guó)密SM3、SM4算法對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行加密,并對(duì)服務(wù)軟件性能及加密算法性能進(jìn)行測(cè)試。測(cè)試結(jié)果表明:在語(yǔ)音服務(wù)中采用國(guó)密SM3、SM4算法對(duì)協(xié)議進(jìn)行加解密,完全能夠滿足設(shè)計(jì)需求。
關(guān)鍵詞:國(guó)密算法;加解密;數(shù)據(jù)安全;網(wǎng)絡(luò)數(shù)據(jù)完整性;申威平臺(tái);3231處理器;語(yǔ)音通信加密
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)09-00-03
DOI:10.16667/j.issn.2095-1302.2024.09.018
0 引 言
隨著社會(huì)和科技的發(fā)展,網(wǎng)絡(luò)將承載越來(lái)越多的數(shù)據(jù),這些數(shù)據(jù)在社會(huì)生活中占據(jù)著非常重要的位置。因此,數(shù)據(jù)安全日益引起人們的重視并采用了各種應(yīng)對(duì)手段[1]。為了提高網(wǎng)絡(luò)數(shù)據(jù)安全性,需要對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密處理。在這方面,國(guó)密算法提供了許多可供選擇的加密算法。例如,集群通信作為一款實(shí)時(shí)通信系統(tǒng),其中就采用了國(guó)密算法[2-3]提高網(wǎng)絡(luò)數(shù)據(jù)安全性。集群通信中的語(yǔ)音通信加密服務(wù)端是基于申威芯片實(shí)現(xiàn)的子系統(tǒng),該系統(tǒng)在功能、安全和性能方面達(dá)到了設(shè)計(jì)要求。
申威芯片[4]是一款國(guó)產(chǎn)自主可控的芯片。申威處理器采用SW64國(guó)產(chǎn)自主指令系統(tǒng),是中國(guó)自主研發(fā)的重要處理器之一。目前,已有諸多基于申威平臺(tái)算法及功能的應(yīng)用與研究[5-6]。集群通信正是一款基于申威3231處理器開(kāi)發(fā)的加密實(shí)時(shí)通信系統(tǒng)。
1 語(yǔ)音服務(wù)
在語(yǔ)音通信中網(wǎng)絡(luò)傳輸?shù)恼Z(yǔ)音數(shù)據(jù)都是采用國(guó)密SM3、SM4算法進(jìn)行加密處理的,在一定程度上確保了語(yǔ)音數(shù)據(jù)的安全性。SM3算法能夠確保語(yǔ)音數(shù)據(jù)經(jīng)過(guò)網(wǎng)絡(luò)傳輸時(shí)的完整性和不變性;SM4算法能夠確保語(yǔ)音數(shù)據(jù)在網(wǎng)絡(luò)上的私
密性。
語(yǔ)音通信主要包含兩種方式:點(diǎn)對(duì)點(diǎn)語(yǔ)音加密通信、群對(duì)講語(yǔ)音加密通信。
點(diǎn)對(duì)點(diǎn)通信采用一話一密的方式,每次通話都會(huì)產(chǎn)生新的密鑰進(jìn)行數(shù)據(jù)加密通信。點(diǎn)對(duì)點(diǎn)語(yǔ)音通信模擬手機(jī)通話流程,大致分為以下步驟:呼叫,響鈴,接通,語(yǔ)音數(shù)據(jù)傳輸,掛斷。呼叫過(guò)程中生成密鑰,每條數(shù)據(jù)包中的語(yǔ)音數(shù)據(jù)都采用國(guó)密算法進(jìn)行加密。
群對(duì)講通信采用組建群組方式,每個(gè)群組在約定時(shí)間段共用一個(gè)密鑰,參加對(duì)講的用戶創(chuàng)建一個(gè)群組,每個(gè)群組用戶通過(guò)指令方式加入群,在入群過(guò)程中完成密鑰的交互,每次只允許一個(gè)用戶進(jìn)行對(duì)講,對(duì)講過(guò)程中語(yǔ)音數(shù)據(jù)全部
加密。
1.1 集群系統(tǒng)框架
集群系統(tǒng)是基于申威3231芯片開(kāi)發(fā)的,系統(tǒng)包含多個(gè)功能子系統(tǒng):語(yǔ)音子系統(tǒng)、視頻子系統(tǒng)、定位子系統(tǒng)、人臉檢測(cè)子系統(tǒng)、信息管理子系統(tǒng)等。系統(tǒng)框架如圖1所示。
1.2 語(yǔ)音通信加密系統(tǒng)框架
語(yǔ)音子系統(tǒng)在整個(gè)集群系統(tǒng)中占據(jù)重要位置,采用基于UDP的自定義協(xié)議實(shí)現(xiàn),主要是為了保證語(yǔ)音通信的實(shí)時(shí)性,特別是在運(yùn)動(dòng)過(guò)程中對(duì)講、基站切換時(shí)語(yǔ)音的連貫性。
語(yǔ)音子系統(tǒng)服務(wù)端包含多個(gè)處理模塊:心跳模塊(身份認(rèn)證、單點(diǎn)登錄等)、群對(duì)講模塊、點(diǎn)對(duì)點(diǎn)語(yǔ)音模塊、數(shù)據(jù)保存模塊、數(shù)據(jù)加解密模塊(SM3、SM4算法)等。數(shù)據(jù)基礎(chǔ)信息以MySQL、Redis、RabbitMQ為來(lái)源。語(yǔ)音子系統(tǒng)框架如圖2所示。
通過(guò)普通心跳維持終端用戶和服務(wù)端的連接。雙端通過(guò)心跳互相驗(yàn)證對(duì)端,服務(wù)端通過(guò)心跳數(shù)據(jù)判定終端用戶身份,確定是否單點(diǎn)登錄。
1.3 點(diǎn)對(duì)點(diǎn)語(yǔ)音邏輯
點(diǎn)對(duì)點(diǎn)語(yǔ)音通信是在通話時(shí)模擬手機(jī)通話邏輯,先由主叫端發(fā)起呼叫流程,服務(wù)端判斷被叫用戶的狀態(tài)再進(jìn)行下一步操作,流程對(duì)終端用戶是透明的。點(diǎn)對(duì)點(diǎn)語(yǔ)音通信邏輯流程如圖3所示。
呼叫過(guò)程結(jié)束時(shí),同步完成了數(shù)據(jù)加密所需的密鑰交互,服務(wù)端會(huì)創(chuàng)建一個(gè)通話通道,保證雙方可以進(jìn)行實(shí)時(shí)加密通話。每次通話都將進(jìn)行密鑰的確定,以此確保一話一密,提高通話過(guò)程中數(shù)據(jù)的安全性。通話數(shù)據(jù)將采用SM3、SM4算法加密。
掛斷操作在通話流程的任何一個(gè)節(jié)點(diǎn)都可以執(zhí)行。通話掛斷后,服務(wù)端會(huì)釋放創(chuàng)建的對(duì)應(yīng)通話通道,以保證服務(wù)端資源可循環(huán)利用。
1.4 群對(duì)講語(yǔ)音邏輯
群對(duì)講語(yǔ)音是語(yǔ)音通信的另一種形式。創(chuàng)建擁有一定用戶的群;服務(wù)端獲取群組成員信息并維護(hù)群成員狀態(tài)。群成員終端用戶執(zhí)行指令進(jìn)入到群組,獲取服務(wù)端分發(fā)的群組密鑰以用于數(shù)據(jù)加解密。群對(duì)講語(yǔ)音通信分以下幾個(gè)步驟:
(1)終端用戶進(jìn)群:服務(wù)判斷用戶是否可以進(jìn)群,如果
是,則用戶獲得指定時(shí)間內(nèi)的群密鑰;否則拒絕加群。
(2)終端用戶在群維持:間隔一定時(shí)間發(fā)送群心跳,維持用戶在群狀態(tài)以及在群鏈路。
(3)終端用戶發(fā)言請(qǐng)求:用戶請(qǐng)求發(fā)言,服務(wù)判定用戶是否可以發(fā)言,如果是,則用戶發(fā)送語(yǔ)音;否則拒絕用戶
發(fā)言。
(4)終端用戶語(yǔ)音:將語(yǔ)音發(fā)送到服務(wù)端,服務(wù)端對(duì)語(yǔ)音協(xié)議進(jìn)行處理,之后將其轉(zhuǎn)發(fā)給在線群內(nèi)成員。
(5)終端結(jié)束發(fā)言:服務(wù)端接收到用戶結(jié)束發(fā)言指令,釋放當(dāng)前群組發(fā)言資源,更新群組發(fā)言狀態(tài)。
(6)終端擁有指揮權(quán)限的用戶發(fā)言:擁有指揮權(quán)限的用戶具有最高級(jí)別發(fā)言權(quán)限,每個(gè)群組內(nèi)最多只能有一個(gè)指揮權(quán)限高級(jí)別用戶。高級(jí)別用戶申請(qǐng)發(fā)言時(shí),判斷是否有用戶在發(fā)言,若有普通用戶發(fā)言,終止普通用戶發(fā)言,允許高級(jí)別用戶發(fā)言。高級(jí)別用戶至多允許在3個(gè)群內(nèi)同時(shí)進(jìn)行收發(fā)語(yǔ)音操作。
群對(duì)講語(yǔ)音通信邏輯流程如圖4所示。
2 SM3算法
已有研究中針對(duì)SM3算法進(jìn)行了諸多研究與優(yōu)化[7]。SM3算法[8]在基于申威3231芯片實(shí)現(xiàn)循環(huán)移位時(shí)應(yīng)注意不要越界。SM3密碼雜湊算法適用于長(zhǎng)度小于264比特的消息,經(jīng)過(guò)計(jì)算生成長(zhǎng)度為256比特的雜湊值。算法中約定了字的長(zhǎng)度為32比特。
2.1 算法描述
將消息的長(zhǎng)度填充為512比特的整數(shù)倍。
2.1.1 迭代
代碼如下:
for i=0 to n-1
V(i+1)=CF(V(i), B(i))
end for
其中:CF是壓縮函數(shù);V(i)是256比特消息的初始值;B(i)是填充后的512比特消息的分組。
2.1.2 消息擴(kuò)散
將消息分組B(i)生成132字節(jié),具體如下:
(1)將消息分組B(i)劃分為16個(gè)字:W0, W1, ..., W15。
(2)代碼如下:
for j=16 to 67
Wj←P1(Wj-16⊕Wj-9⊕(Wj-3lt;lt;lt;15))⊕(Wj-13
lt;lt;lt;7)⊕Wj-6
end for
for j=0 to 63
Wj'=Wj⊕Wj+4
end for
2.1.3 壓縮函數(shù)
將A、B、C、D、E、F、G、H存儲(chǔ)于字寄存器中,并且按大端格式進(jìn)行排列。SS1、SS2、TT1、TT2為中間變量,V(i+1)=CF(V(i), B(i)),0≤i≤n-1,壓縮函數(shù)計(jì)算過(guò)程描述
如下:
ABCDEFGH ←V(i)
for j=0 to 63
SS1←((Alt;lt;lt;12) + E + (Tjlt;lt;lt;j)) lt;lt;lt;7
SS2←SS1⊕(Alt;lt;lt;12)
TT1←FFj (A, B, C) + D + SS2 + Wj'
TT2←GGj (E, F, G) + H + SS1 + Wj
D←C
C←Blt;lt;lt;9
B←A
A←TT1
H←G
G←Flt;lt;lt;19
F←E
E←P0(TT2)
end for
V(i+1)←ABCDEFGH⊕V(i)
2.2 循環(huán)移位
代碼實(shí)現(xiàn):
SS1←((Alt;lt;lt;12) + E + (Tjlt;lt;lt;(j))) lt;lt;lt;7
for( int j=16 ; jlt;64 ; j++ ){
SS1=ROTL((ROTL(A, 12) + E + ROTL(T[j], j%32)), 7);
……}
申威3231芯片在計(jì)算時(shí)默認(rèn)使用64位操作,但針對(duì)SM3算法的實(shí)現(xiàn),該算法內(nèi)部設(shè)計(jì)為基于32位操作。因此,在實(shí)現(xiàn)SM3算法的循環(huán)移位操作時(shí),以32位為界限進(jìn)行取模運(yùn)算,以確保得到正確的結(jié)果。
3 算法在申威3231芯片上的性能測(cè)試
語(yǔ)音通信加密服務(wù)在運(yùn)行期間,需要頻繁地對(duì)數(shù)據(jù)進(jìn)行加解密運(yùn)算。本文測(cè)試了在單線程條件下兩種算法在申威服務(wù)器上的性能。
3.1 SM3算法
SM3算法在申威3231芯片上的性能測(cè)試數(shù)據(jù)見(jiàn)表1所列。
由表1可知,SM3算法在申威3231芯片上的單線程加密數(shù)據(jù)速率約為342 Mb/s。在設(shè)計(jì)語(yǔ)音服務(wù)協(xié)議時(shí),每條協(xié)議的長(zhǎng)度不超過(guò)512字節(jié),每秒可處理87 746條協(xié)議。理論上,語(yǔ)音服務(wù)單線程可使用SM3算法處理87 746條通信協(xié)議,完全能夠滿足需求。
3.2 SM4算法
SM4算法在軟硬件[9-10]方面都可實(shí)現(xiàn)并已有諸多研究。SM4算法在申威3231芯片上的性能測(cè)試數(shù)據(jù)見(jiàn)表2所列。
由表2可知,SM4算法在申威3231芯片上的單線程加解密數(shù)據(jù)速度約為25 Mb/s。以協(xié)議數(shù)據(jù)最大長(zhǎng)度為512字節(jié)作為參考,單線程每秒可處理6 598條協(xié)議數(shù)據(jù)。加解密算法模塊可采用多線程方式提高算法的性能。
4 結(jié) 語(yǔ)
本文基于申威芯片3231實(shí)現(xiàn)了集群系統(tǒng)中語(yǔ)音通信加密服務(wù)端,語(yǔ)音服務(wù)采用國(guó)密SM3、SM4算法對(duì)協(xié)議進(jìn)行加解密,提高了數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中的完整性與安全性。經(jīng)過(guò)對(duì)算法的性能測(cè)試及系統(tǒng)的實(shí)際測(cè)試,本文設(shè)計(jì)可滿足服務(wù)端每秒處理上萬(wàn)條加解密協(xié)議數(shù)據(jù)的需求。
參考文獻(xiàn)
[1]邵晶晶,韓曉峰.國(guó)內(nèi)外數(shù)據(jù)安全治理現(xiàn)狀綜述[J].信息安全研
究,2021,7(10):922-932.
[2]姚鍵.國(guó)產(chǎn)商用密碼算法研究及性能分析[J].計(jì)算機(jī)應(yīng)用與軟件,2019,36(6):327-333.
[3]蘇彬庭,陳明志,許力,等.國(guó)密算法在工業(yè)互聯(lián)網(wǎng)安全中的應(yīng)用研究[J].信息技術(shù)與網(wǎng)絡(luò)安全,2021,40(3):28-31.
[4]黃樸,劉世巍,張昊,等.基于申威SIMD指令的H.264編碼優(yōu)化
[J].現(xiàn)代電子技術(shù),2024,47(6):49-54.
[5]明旭,何慧文,陳磊. DPDK在國(guó)產(chǎn)申威處理器平臺(tái)上的應(yīng)用與研究[J].信息安全研究,2018,4(1):53-62.
[6]劉芳芳,楊超,袁欣輝,等.面向國(guó)產(chǎn)申威26010眾核處理器的SpMV實(shí)現(xiàn)與優(yōu)化[J].軟件學(xué)報(bào),2018,29(12):3921-3932.
[7]陳博宇,王宏.基于FPGA的SM3算法的優(yōu)化實(shí)現(xiàn)[J].信息技術(shù),2018,42(7):143-147.
[8]國(guó)家密碼管理局. SM3雜湊密碼算法:GM/T 0004-2012 [S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2012.
[9]張笑從,郭華,張習(xí)勇,等. SM4算法快速軟件實(shí)現(xiàn)[J].密碼
學(xué)報(bào),2020,7(6):799-811.
[10]何詩(shī)洋,李暉,李鳳華. SM4算法的FPGA優(yōu)化實(shí)現(xiàn)方法 [J].西安電子科技大學(xué)學(xué)報(bào),2021,48(3):155-162.
收稿日期:2023-09-02 修回日期:2023-10-09
作者簡(jiǎn)介:侯憲鋒(1984—),男,碩士,工程師,研究方向?yàn)榫W(wǎng)絡(luò)傳輸、數(shù)據(jù)安全。