洪鵬程,黃一才,郁 濱 信息工程大學,鄭州 450001
藍牙是一種短距離無線通信技術(shù),現(xiàn)已成為智能手機的標準配置,可方便與手機連接。針對移動通信存在的竊聽等安全問題[1],在藍牙終端中實現(xiàn)語音實時加解密,可以保證語音在手機、無線信道和基站中安全傳輸。
和數(shù)據(jù)信道相比,移動通信網(wǎng)的語音信道具有高優(yōu)先權(quán)、高覆蓋率、實時性強、可用性強和可靠性強等特點[2]。但是語音信道的聲碼器使用有損的、有記憶的壓縮編碼,不允許非語音特征數(shù)據(jù)通過。文獻[3]總結(jié)歸納了前人提出的在聲碼器上傳輸加密信號方法,核心思想均是將加密信息轉(zhuǎn)換成類語音進行傳輸,其中以波形碼本方案的傳輸性能最佳。但是大多數(shù)研究方案均在仿真環(huán)境實現(xiàn),沒有考慮在實際應(yīng)用的同步方法[3-5]。
由于類語音信號從藍牙終端經(jīng)手機、移動通信網(wǎng)等信道的傳輸過程中經(jīng)歷了多次編解碼,因而存在延遲、失真、丟幀等特點,使得收發(fā)兩端的數(shù)據(jù)難以同步。只有對接收到的類語音數(shù)據(jù)準確同步才能解調(diào)和解密。
現(xiàn)有的語音同步方案中,多采用外同步方法,如添加時間戳或同步幀等同步頭[6-8],這種方式可用于方便對語音幀頭控制的場景,但由于同步頭本身難以通過移動通信網(wǎng)語音信道傳輸,并不適合純語音流數(shù)據(jù)的同步。文獻[9]以線性調(diào)頻信號為同步結(jié)構(gòu),設(shè)計了一種端到端語音加密通信的同步方案,能夠?qū)崿F(xiàn)語音端到端的同步,但該方案存在的問題不斷自相關(guān)檢驗需要消耗大量計算資源。文獻[10]指出在語音頻段300~3 400 Hz的正弦波對聲碼器的穿透性好,且優(yōu)于線性調(diào)頻信號,因此,正弦波可以用作移動通信網(wǎng)端到端的加密語音同步頭。
文獻[11]為了實現(xiàn)語音同步,對波形、頻域和倒譜檢測3 種數(shù)字語音處理方法進行了分析與對比,但是3 種方案均存在計算量偏大等問題。呂麗平等[12]指出以基于聲學特征的方法實現(xiàn)語音端點檢測的實時性強且簡單有效,這對同步信號檢測同樣具有啟發(fā)意義。使用的聲學特征包括時域特征,如短時過零率、平均能量以及自相關(guān)性等,和頻率特征,如倒譜距離法、頻帶方差法和譜熵法等[13]。但文獻[12]設(shè)計的端點檢測誤差范圍是3幀,而這使得加密語音信號不能恢復(fù)。文獻[14]指出使用滑動窗口逐個進行滑動匹配,雖然保證了準確性,但是帶來了較大的計算開銷。文獻[15-17]針對低信噪比情形設(shè)計了端點檢測方案,算法實時性較差。
因此,本文設(shè)計了面向語音加密傳輸?shù)膬杉壨綑C制。利用正弦信號的易檢測性,通過滑動窗口對過零次數(shù)、樣點值和的絕對值以及樣點值絕對值的和3個時域特征進行檢測,用以捕捉同步頭范圍;利用波形符號的可透傳性,通過模板匹配確定同步頭精確的起始點。
本章先描述相關(guān)定義,再分析同步在端到端加密中的意義。
定義1(滑動窗口)語音檢索基本單位,寬度為W,其中的語音數(shù)據(jù)記為w(k),1 ≤k≤W。
為了利用正弦信號的周期性,使W包含的采樣點數(shù)正好包含頻率為fsin的同步正弦信號一個周期采樣點的整數(shù)倍,即設(shè)置W為fs fsin整數(shù)倍,其中fs為語音采樣率,fsin為同步所使用的正弦信號的頻率。
定義2(短時過零次數(shù))指滑動窗口內(nèi)過零次數(shù),用表示。
定義3(樣點值和的絕對值)指滑動窗口所有語音樣點值和的絕對值,用表示。
定義4(樣點值絕對值的和)指滑動窗口所有語音樣點值絕對值的和,用表示。
定義5(保持態(tài))指保持同步的狀態(tài)。
定義6(捕捉態(tài))指正在尋找同步的狀態(tài)。
語音在保持態(tài)和捕捉態(tài)中轉(zhuǎn)換。語音通信開始時,接收方處于捕捉態(tài),當接收方完成初始同步后進入到保持態(tài)。為了保證語音正常傳輸,需要能對當前狀態(tài)定期檢測,當檢測到失步時通過同步恢復(fù)調(diào)整,重新進入保持態(tài),其狀態(tài)轉(zhuǎn)換如圖1所示。
圖1 同步狀態(tài)轉(zhuǎn)換圖
定義7(波形符號)指采樣點數(shù)固定為L的一組類語音片斷,用Si={si0.,si1,…,si(L-1)}表示,1 ≤i≤N。
定義8(調(diào)制碼本)與數(shù)據(jù)集{0,1,…,N-1} 一一對應(yīng)的一組波形符號,用表示,其中N=2n。
定義9(解調(diào)碼本)使用調(diào)制碼本傳輸隨機數(shù)據(jù)訓練得到的一組與調(diào)制碼本一一對應(yīng)的波形符號,用表示,用于提高解調(diào)成功率。
波形碼本包括調(diào)制碼本和解調(diào)碼本。
語音傳輸過程中,模數(shù)轉(zhuǎn)換、壓縮/解壓、加密/解密、類語音調(diào)制/解調(diào)和同步等操作均在藍牙終端中處理,而在手機和移動通信網(wǎng)中不進行任何改動,移動通信網(wǎng)端到端加密整體通信流程如圖2所示。
在發(fā)送方,發(fā)送語音在藍牙終端通過模數(shù)轉(zhuǎn)換后,首先通過數(shù)據(jù)壓縮去冗余,然后進行加密以保證數(shù)據(jù)安全,接著將加密數(shù)據(jù)進行類語音調(diào)制使其能在語音信道上傳輸,具體方法是將數(shù)據(jù)以n比特為一組轉(zhuǎn)換為十進制i,并映射為對應(yīng)波形符號Si,最后在得到的類語音波形符號插入同步頭通過手機以及移動通信網(wǎng)傳輸。
圖2 移動通信網(wǎng)端到端加密通信流程
在接收方實現(xiàn)一個對稱過程,首先要找到并去掉語音同步頭,然后進行類語音解調(diào),具體方法是接收方將接收到的波形與解調(diào)碼本中的波形符號{SO0,SO1,…,SON-1}一一求余弦距離,將余弦距離最大的波形符號對應(yīng)的序號作為接收的數(shù)據(jù),之后再進行解密及解壓和數(shù)模轉(zhuǎn)換操作。
由上述過程可知:(1)同步在整個傳輸過程中起到了一個對接作用,接收方只有準確地檢測到初始同步頭,才能正常進行接下來的類語音解調(diào)和解密等操作。(2)初始同步后的語音傳輸同樣需要檢測同步狀態(tài),在檢測到失步時,能夠使語音自行同步。(3)在實現(xiàn)同步方案時,需要考慮同步方案的計算量,若計算量過大,則會造成數(shù)據(jù)處理出現(xiàn)延時和紊亂,同樣會影響后續(xù)操作進行。
同步設(shè)計包括初始同步和周期同步兩部分,前者用于在連接建立之初使系統(tǒng)同步,后者用于定期地檢測系統(tǒng)是否同步,并在當檢測到失步情況下,重新進行同步。因此分別設(shè)計初始同步頭和周期同步頭,如圖3所示。
圖3 同步頭設(shè)計
兩者設(shè)計異同如下。
(1)相同之處
初始同步頭和周期同步頭都由前導(dǎo)和后導(dǎo)組成。其中,前導(dǎo)使用正弦信號,便于接收方通過時域特性確定后導(dǎo)范圍,后導(dǎo)使用類語音信號,用于進一步匹配確定精確的后導(dǎo)起始點。因為前導(dǎo)和后導(dǎo)只有具備語音特征才能穿透聲碼器,因此所選正弦信號的頻率在300~3 400 Hz之間,后導(dǎo)所選的類語音信號為調(diào)制碼本中的波形符號。
(2)不同之處
一是兩者前導(dǎo)長度不同,初始同步頭的正弦信號長度R1要比周期同步頭的正弦信號長度R2要長。因為在初始同步時,需要保證即使在R1部分信號由于傳呼建立等原因丟失的情況下,R1仍然能被接收方檢測出。而周期同步頭為了在正常語音中的占比小,在保證能被檢測到的情況下,R2的長度要盡可能短。
二是兩者后導(dǎo)所選擇的類語音不同。初始同步頭只在開始使用,只需要在調(diào)制碼本中選用一個波形符號即可,如S0。而周期同步頭則在后續(xù)語音傳輸中都會存在,當檢測到失步狀態(tài)時,還要用于重新同步,這就需要根據(jù)周期性同步頭能判斷同步到再次同步之間所丟的數(shù)據(jù),以使接收方知道在失步期間的數(shù)據(jù)量,方便進行下一步操作?;诖?,周期同步頭的后導(dǎo)按序循環(huán)選用調(diào)制碼本中的波形符號。
語音初始同步建立包括確定后導(dǎo)起始點范圍和確定后導(dǎo)起始點兩個階段,前者用于初步定位后導(dǎo)起始點范圍,后者用于在后導(dǎo)起始點范圍內(nèi)尋找到準確的后導(dǎo)起始點。
3.1.1確定后導(dǎo)起始點范圍
時域提取特征包括過零次數(shù)Z、樣點值和絕對值E以及樣點值絕對值和F,相比頻率特征計算量少。如果提取特征均在設(shè)置范圍區(qū)間則認定為檢測到正弦信號。
在接收方,以寬度為W、步長為W的滑動窗口對接收到的語音數(shù)據(jù)提取特征并進行檢測。當滑動窗口檢測到正弦信號時,即表示接收方已經(jīng)檢測到初始同步頭前導(dǎo),由于發(fā)送的正弦信號長度R1較長,所以接下來幾個窗口仍可能是正弦信號,直到檢測到滑動窗口內(nèi)數(shù)據(jù)為非正弦信號時,則判定當前檢索窗口包含同步頭后導(dǎo)起始點,并稱之為待匹配窗口,檢測時可能出現(xiàn)的兩種情況如圖4所示:
(1)后導(dǎo)起始點位于滑動窗口內(nèi)部;
(2)后導(dǎo)起始點位于滑動窗口邊界及附近。
為了減小第二種情況對結(jié)果的干擾,使得初始同步頭后導(dǎo)起始點未出現(xiàn)在待匹配窗口內(nèi),將待匹配窗口向前增加A個采樣點,因此待匹配窗口的采樣點數(shù)目為W+A個。
圖4 初始同步頭檢索示意圖
綜上所述,確定后導(dǎo)起始點范圍流程如圖5 所示,其中flag_sin0 和flag_sin1 分別表示前一個和當前滑動窗口的正弦信號檢測標志,初始值為0,當檢測到正弦信號時其值為1。在接收方,通過該流程,最終可以得到包含W+A個采樣點的待匹配窗口。
考慮到語音信道對正弦信號傳輸影響,為提高檢測準確性,通過在語音信道多次實際傳輸正弦信號后,統(tǒng)計得出時域特征Z、E、F的參考范圍[Zmin,Zmax] 、Emax 和 [Fmin,Fmax]。
圖5 初始同步頭檢索示意圖
3.1.2確定后導(dǎo)起始點范圍
當?shù)玫酱ヅ浯翱诤?,需要進一步確定后導(dǎo)在待匹配窗口中的起始點,記待匹配窗口內(nèi)采樣值為D={d0,d1,…,d(W+A-1)}。由于待匹配窗口標記的是同步語音可能存在的起始點,而后導(dǎo)長度為L,還需要使用待匹配窗口后的L-1 個語音數(shù)據(jù){d(W+A),d(W+A+1),…,d(W+A+L-1)},并將其和待匹配窗口合稱為待檢語音窗{d0,d1,…,d(W+A+L-1)}。
若選擇調(diào)制碼本中的S0作為后導(dǎo),則以S0對應(yīng)的SO0={so00.,so01,…,so0(L-1)}為匹配模板。因為SO0采樣點數(shù)為L,所以對待檢語音窗以窗口寬度為L,步長為1進行滑動窗口匹配,如圖6所示。
圖6 初始同步確定后導(dǎo)起始點示意圖
具體檢索過程如下。當前被檢語音窗口為Di={di.,di+1,…,di+L-1},用于表示后導(dǎo)與Di待檢索語音之間的絕對距離,j表示后導(dǎo)起始點在待匹配窗口中的位置。
步驟1 初始化i=0;
步驟2 計算匹配模板和當前被檢語音Di之間的絕對距離
步驟3i=i+1,如果i≤W+A-1,跳入步驟2;
步驟4 計算j=arg minDIS1i,將j作為后導(dǎo)起始點,結(jié)束。
語音同步檢測恢復(fù)包括兩個方面:一是通過周期同步頭能夠正常檢測語音是否處于同步狀態(tài);二是當檢測到失步時,能自行調(diào)整恢復(fù)到同步狀態(tài)。
3.2.1同步檢測
為減少周期同步頭在正常語音中所占比重,同時又能在至少一個完整窗口檢測到前導(dǎo),將前導(dǎo)長度設(shè)置為檢索窗口兩倍,即R2=2W。
在接收方,語音完成初始同步后進入同步保持態(tài)。在該狀態(tài)下只需要對周期同步頭中的后導(dǎo)進行檢測,就能確定當前傳輸?shù)恼Z音是否處于同步狀態(tài)。由于后導(dǎo)是循環(huán)選擇調(diào)制碼本中的波形符號Si(0 ≤i≤N-1),若在第1次接收到周期同步頭后導(dǎo)時,與解調(diào)碼本中的波形符號SO0對比判決,則在第t次時,與SOtmodN比對判決。判決方法是求接收到的后導(dǎo)與波形符號的絕對距離,將第t次接收到的后導(dǎo)記為St',將St'和SOtmodN的絕對距離記為
當DIS2t小于閾值TH(其值實驗統(tǒng)計得出)時,即判斷成功檢測到同步信號。為了保證系統(tǒng)的可靠性,只有當連續(xù)兩次求解的絕對距離大于TH時,才認定系統(tǒng)不再處于同步狀態(tài),且接收方則由同步保持態(tài)轉(zhuǎn)成捕捉態(tài)。
3.2.2同步恢復(fù)
假設(shè)在第t次接收到后導(dǎo)時能夠正確驗證,而在t+1 和t+2 連續(xù)兩次匹配后導(dǎo)失敗后,接收方則認定系統(tǒng)不再同步,接收方將以寬度為W、步長為W的滑動窗口進行檢測。
(1)確定后導(dǎo)起始點范圍
與初始同步建立不同的是,由于周期同步頭的前導(dǎo)較短,檢測正弦信號時可能出現(xiàn)的兩種情況如圖7所示。
圖7 周期同步頭檢索示意圖
由圖7 可知,兩種情況的共同點是,當某一滑動窗口檢測到正弦信號時,下一滑動待匹配窗口包含了周期同步頭后導(dǎo)起始點,即待匹配窗口。為防止初始同步頭檢測點位于滑動窗口邊界附近使結(jié)果判斷不準確帶來的影響,將待匹配窗口向后增加A 個采樣點,具體檢測流程如圖8所示。
圖8 同步恢復(fù)確定后導(dǎo)起始點流程圖
(2)確定后導(dǎo)起始點
確定后導(dǎo)起始點在找出后導(dǎo)起始點同時,還需要判斷上一次成功同步到這一次同步之間發(fā)送數(shù)據(jù)的周期。因此和初始同步確定起始點相比,接收方用作匹配模板的對象不一樣,前者對象是固定的,而后者為調(diào)制碼本中的所有波形符號。在這里重點對如何選擇解調(diào)碼本中的波形符號與待檢語音窗對比進行描述。
首先將解調(diào)碼本中的波形符號SO(t+3)modN作為匹配模板與待檢語音窗匹配找到起始點,如果該起點對應(yīng)的絕對距離小于閾值TH,則判定匹配成功;否則,待檢語音窗按相同方法與下一個波形符號SO(t+4)modN匹配,直到判定成功為止。
假設(shè)經(jīng)過k次匹配,即待檢語音窗與SO(t+k+2)modN匹配成功,則認定上一次同步成功距離本次匹配成功之間共丟失了(k+2)T的數(shù)據(jù)(T為同期同步頭插入正常語音的周期)。同時,為了保證系統(tǒng)可靠性,若下一個同期同步頭的后導(dǎo)與SO(t+k+3)modN匹配成功才進入保持態(tài),否則保持捕捉態(tài),且重新確定待匹配窗口。
在該過程中,因為待檢語音窗與解調(diào)碼本中的波形符號按序循環(huán)匹配,如果回到第一次匹配的波形符號仍不成功,則同步失敗,即方案可接受的發(fā)送數(shù)據(jù)丟包時長要小于NT。但一般情況,T大于1 s,N一般大于16,所以方案實際可允許丟包時間是在可接受范圍內(nèi)的。
仿真環(huán)境為MATLAB,其中移動通信網(wǎng)的聲碼器采用ETSI標準的AMR聲碼器(編碼速率為12.2 Kb/s),藍牙語音編解碼器采用SIG 規(guī)定的CVSD 編碼。通過仿真實驗?zāi)M語音信道對方案進行評估,檢測其能否實現(xiàn)語音初始自同步,以及在發(fā)生丟幀情況下,接收方是否能夠檢測到當前同步狀態(tài),并自適應(yīng)恢復(fù)同步。
設(shè)置兩組實驗,研究波形符號采樣點數(shù)L和滑動窗口寬度W對本文方案的影響。
針對同步建立方案,事先生成發(fā)送數(shù)據(jù)并在數(shù)據(jù)前加入隨機長度語音信號,用于模擬通話接通前的等待時間。針對同步檢測恢復(fù)方案,在一段正常語音中間截斷隨機長度的語音,用于檢測方案同步檢測和同步恢復(fù)成功恢復(fù)率。
實驗中的共同參數(shù)設(shè)置如下:實驗次數(shù)1 000次,前導(dǎo)選擇的正弦波頻率fsin=1 000 Hz,R1=480,R2=2W,A=8(通過驗證當A>8 時,對實驗結(jié)果不再有影響),波形碼本的波形符號數(shù)量為32個。
(1)初始同步建立實驗
對波形符號采樣點數(shù)L=40,36,30,20 進行測試。其他參數(shù)設(shè)置,記,取x=7 ,即W=56 ,[Zmin,Zmax]=[13,14],Emax=0.2,[Fmin,Fmax]=[13.2,14.5],閾值TH分別為3、2.8、2.5、2.2。
(2)同步檢測恢復(fù)實驗
取x=7,6,5,4,即W分別為56,48,40,32 進行測試。[Zmin,Zmax]、Emax和[Fmin,Fmax]設(shè)置如表1;其他參數(shù)設(shè)置,波形符號采樣點數(shù)L=40,閾值TH=3。
表1 參數(shù)設(shè)置
(1)初始同步建立實驗
實驗結(jié)果如圖9所示,只有當確定后導(dǎo)起始點精確到采樣點時才算同步成功。
圖9 初始同步建立實驗結(jié)果
當波形符號采樣點數(shù)L減小時,兩類同步成功率均會降低。當波形符號采樣點數(shù)達到40 時,其初始同步和周期同步成功率均能達到99%以上。實驗發(fā)現(xiàn),未初始同步成功的情況與實際結(jié)果偏差較小,仍可通過周期同步實現(xiàn)真同步。
(2)同步檢測恢復(fù)實驗
實驗結(jié)果如圖10 所示。當滑動窗口寬度W值減小時,兩類同步成功率均會降低。當W為56 時,兩類同步成功率均能達到99%以上。
圖10 同步檢測恢復(fù)實驗結(jié)果
當參數(shù)設(shè)置為W=56,N=32,L=40,A=8,R1=600時,將本文方案和文獻[9]對比,結(jié)果如表2所示。
表2 結(jié)果對比
相比文獻[9],本文方案的計算量具有較大優(yōu)勢,在確定后導(dǎo)起始點范圍時一般只需要計算檢索窗口的過零次數(shù),需要計算55次加法,在確定后導(dǎo)起始點時計算量最大,但也僅為2 560次加法。此外,本文方案還能同步狀態(tài)檢測和恢復(fù)同步狀態(tài),更適合用于移動通信網(wǎng)中無同步幀情形下的語音同步。
針對藍牙加密語音同步問題,利用正弦信號和波形符號,設(shè)計了初始同步頭和周期同步頭,提出了語音初始同步建立方案和語音同步檢測恢復(fù)方案,在實現(xiàn)同步的提前下,還具有較小計算量。本文工作也為下一步通過藍牙設(shè)備實現(xiàn)移動通信網(wǎng)語音加解密提供了技術(shù)支持。