GSM手機端到端安全加密通信系統(tǒng)(08-100)
3.2 頻域置亂
本文引用地址:http://www.ex-cimer.com/article/91758.htm在時域加密置亂之前加上一步頻域置亂,可以提高整個加密算法的強度。本設計具體的做法是:首先對一定長度語音數(shù)據(jù)作N點FFT(N可以取2的冪次以提高運算速度),得到一個頻譜序列,取在語音頻率范圍(300~3400Hz)內(nèi)的M點,組成M行×1列的矩陣x,然后對這個序列進行置亂,這相當于乘上一個M行×M列的置亂矩陣P,那么置亂后的序列為Px,最后對此序列求IFFT,即從頻域返回到時域。
令M為明文信息,k1、r為算法密鑰,由k1、r產(chǎn)生的加密矩陣為Pk1、r,Qk1、r為解密矩陣(即Pk1、r-1),C為密文,則有:
置亂矩陣P的選取有以下幾點限制:1)保證置亂后的序列再求IFFT得到的是實序列;2)保證只對300~3400 Hz范圍內(nèi)的點進行置亂;3)保證最后得到的語音的剩余可懂度很小。
滿足上述限制條件的矩陣有很多,其中有一種比較簡單的形式是這樣的[4]:
M=N*(3400-300) / fs =3100N / fs(fs是采樣頻率),表示頻率在300~3400Hz內(nèi)的點數(shù),稱為有效FFT點數(shù)。k1和r都是密鑰,k1可以取與M互質(zhì)并且小于M的自然數(shù),r可以取小于M的自然數(shù)。
這樣頻域置亂的加密強度(本文中指密鑰空間)就是M*f(M)(f(M)表示滿足條件的k1的個數(shù))。由此可見,采樣頻率一定,N的大小會影響該算法的加密強度,所以N的選取應該同時考慮運算速度和加密強度兩方面的因素。
3.3 語音幀置亂
令M為明文信息,k2為算法密鑰,由k2產(chǎn)生的加密矩陣為Pk2’, Qk2’為解密矩陣(即Pk2’-1),C為密文,則有:
令分組長度為T,那么時域語音幀置亂的加密強度(密鑰空間)為T!。由于我們采用的是兩級加密技術,結合前面頻域置亂,整個加密算法的加密強度(密鑰空間)為M*f(M)*T!。
3.4 算法參數(shù)選擇
通過大量實驗研究,發(fā)現(xiàn)對測試結果有較大影響的因素有兩個:語音分解幀尺寸和分組長度。我們主要選擇語音分解幀長為5ms、10ms、20ms、分組長度為15幀、20幀、25幀共九種情況進行了研究分析。
通過測試和比較,發(fā)現(xiàn)以20ms作為語音分解幀長,加密語音可以基本解密恢復,而且所恢復的語音可以很好地滿足人耳的可懂度要求。同時根據(jù)聲碼器的編解碼原理,20ms作為單位幀長能保持信號的語音特性。因此本方案將選擇20ms作為語音分解幀長。
對于分組長度(用n表示),從整個加密算法的加密強度公式,可以發(fā)現(xiàn)n越大,算法的加密強度就越大,但考慮整個加解密系統(tǒng)的延時等因素,n必須取一個合適的值。通過大量仿真測試結果發(fā)現(xiàn),分組長度取20或25可以在這對矛盾間取得一個好的平衡。
總之,本算法結合了語音信號處理和分組密碼加密運算的特點,具有對RPE-LTP壓縮編碼很好的恢復性,其加密強度也可滿足需求。
評論