專利名稱:一種語音信息安全通信方法
技術領域:
本發明涉及語音通信信息安全技術領域,尤其涉及一種可以同時保證語音通信本身的隱蔽性、語音通信內容的機密性和完整性的通信方法。
背景技術:
目前,語音通信已經遍布在我們身邊的各個角落中。隨著智能手機、移動通信技術、多媒體技術的不斷發展,人們身邊也涌現出了米聊、TalkBox、微信等眾多語音聊天軟件,作為一種全新的通信方式展現在人們面前。但是像米聊、微信這些語音聊天軟件,他們并未考慮安全性的問題,僅僅保證了軟件的可用性。這使得通信隱私受到極大的威脅,同時也限制了這種通信方式在商業、軍事等需要嚴格保密的環境中的應用。、為了解決類似這種通信中存在的安全問題,技術人員提出了信息隱藏技術。信息隱藏是利用人類感覺器官對數字信號的感覺冗余,將一個消息(稱為被隱藏消息或秘密信息)隱藏在另一個消息(稱為載體)中。由于消息被隱藏后外部表現的只是載體的外部特征,故并不改變載體消息本身的基本特征和使用價值。例如,將采集到的語音作為秘密信息(稱為秘密語音),將另外一個無關的音頻文件作為載體(稱為載體語音)。這種技術可以很好地隱藏通信,從而保證了通信的安全。但通信安全不僅包括傳輸安全,還包括內容數據安全。目前,尚沒有研究者在實現通信隱蔽性的同時,考慮通信內容的機密性和完整性。這是因為傳統的消息認證碼(MAC)是易碎的,而且不能準確反映內容的完整程度。
發明內容
本發明的目的是針對目前在語音通信中存在的安全問題,提出一種語音信息安全通信方法。本發明所述方法的基本原理如下通過利用基于系數量化的離散余弦變換(DCT)變換域嵌入算法,保證通信的隱蔽性。通過使用選擇性混沌加密算法對秘密語音進行加密,加密時,僅針對音頻中的少數關鍵位進行加密,不僅顯著提高了加密效率,而且保證了秘密語音內容的機密性。通過計算比較秘密語音的魯棒消息認證碼(rMAC)來判斷秘密語音內容的完整性,由于rMAC是基于人耳聽覺系統的,因此使用rMAC可以讓用戶得到一個與聽覺感覺類似的完整性度量。為實現上述目的,本發明采用的技術方案如下一種語音信息安全通信方法,包括語音發送過程和語音接收過程兩部分,其實現過程如圖I所示。步驟一、發送端獲取待發送語音并對其音頻文件進行處理。具體如下步驟I. I:獲取語音可以獲取發送端系統中已有的語音音頻文件,也可以獲取經用戶錄制的音頻文件。將獲取到的音頻文件稱作秘密語音。步驟I. 2 :對所述秘密語音進行編碼。編碼的處理流程如下
首先,根據編碼的復雜程度,從所述秘密語音中讀取一定量的音頻樣本。其中,編碼的復雜程度為開源代碼例Speex庫提供的參數,其數值越大,產生的Speex音頻質量越高,所占空間也越大,因此根據實際情況需要進行選取。例如,采用復雜度為5的編碼方式(Speex庫提供的參數),因此每次取得音頻樣本為160個。然后,將所取得的音頻樣本編碼(如上述160個音頻樣本)為Speex音頻幀,具體可以通過調用開源的Speex編碼庫中的編碼幀函數實現。然后,將生成的Speex音頻幀寫入到新的Speex音頻文件中。最后,判斷是否已經讀取所述秘密語音中的全部音頻樣本。若已經全部讀取,則執行步驟I. 3 ;否則繼續讀取下一批相同數量的(例如再讀取160個)音頻樣本并重復執行上述操作。如果在讀取時,音頻樣本不足,未能讀取與前述等量的音頻樣本(例如已經不足160個音頻樣本),則按照實際讀取到的音頻樣本進行操作,Speex庫會進行相應處理的。
步驟I. 3 :對經步驟I. 2編碼產生的Speex音頻文件進行解碼。解碼的處理流程如下首先,從所述Speex音頻文件中讀取I個Speex音頻中貞。之后,將這I個Speex音頻巾貞解碼為Speex音頻樣本,可以通過調用開源的Speex編碼庫中的解碼幀函數實現。然后,將獲取到的Speex音頻樣本寫入新的Speex音頻文件中。最后,判斷是否已經讀取全部的Speex音頻巾貞。如果已讀取全部的Speex音頻中貞,則執行步驟I. 4 ;否則繼續讀取下一個Speex音頻幀并執行上述操作。步驟I. 4 :對經步驟I. 3解碼產生的Speex音頻文件,計算rMAC。具體處理流程如下首先,對Speex音頻文件中,以每1024個音頻樣本記為一個FFT巾貞,并對每個FFT幀分別進行傅里葉變換(FFT )操作。然后,將人耳對聲音的頻率敏感范圍300Hz-3300Hz中,按照每IOOHz作為一個頻率段,共將其劃分為30個小頻率段,并計算每個頻率段的能量值。具體地,所述計算頻率段的能量值的方法如下對于FFT變換,若N點序列x(n) (n=0,1,...,N_1)是在采樣頻率f下獲得的。它的DFT結果也是N點序列,即.M'k)(k______0,1么則第k點所對應實際頻率值為
f' =(kXf)/N。因此,若需要計算FFT幀中某一個頻率段的能量值,首先要找到頻率值落在該頻率段的所有點,然后將這些點值進行平方求和便可獲得該頻率段的能量值。之后,讀取密鑰文件。密鑰是以4個整數為一組,共128組(對應于rMAC長度128的情況)的數據。而后,利用密鑰和頻率段能量值計算rMAC值。具體計算方法見如下公式
、 I 人M) —人,'2) >0H (Iil) - <,( I \
.’ Io,//其中Ivukn^tnu, tm,2是可作為密鑰的隨機選取的系數,均為非負整數。函數e (t, k)為能量函數,表示音頻的第t個DFT幀中第k個頻率段所具有的能量總和,即步驟4中所計算出來的能量值,t、k均為實數。m表示所產生rMAC的位,為非負整數。H(m)表示產生rMAC的第m位。步驟I. 5 :對經步驟I. 2編碼后得到的Speex音頻文件進行選擇性混度加密。處理流程如下本步驟中,要求每一步計算操作在16進制下,計算精度要求達到小數點后40位,以求獲得比較優秀的加密效果。首先,從Speex音頻文件中讀取4個Speex音頻巾貞,并取每巾貞的7到38位,總共32位。4個音頻幀總共獲得128為數據。然后,利用公式xk+1= μ Xk(I-Xk), O彡μ彡4,xk e (0,I),計算下一個混沛數據。式中,Xk表示混沛序列的第k個的數據,為實數;μ為自定義的系數,為實數;Xtl為密鑰,k-1、為執行的次數。如果得到的Xk+1大于O. 9或小于O. 1,則重復本操作;之后,將計算得到的xk+1取小數點后連續的128位數據,與第I步得到的128位數據進行異或操作。隨后,用獲取到的128位數據替換Speex音頻幀中原128位數據。最后,判斷Speex音頻文件音頻幀是否全部處理完畢,如果Speex音頻文件處理完成,則執行后續步驟;否則繼續讀取Speex音頻文件的Speex音頻中貞。步驟I. 6 :對經步驟I. 5處理后的Speex音頻文件進行信息隱藏處理。首先,對所述Speex音頻文件中,以每1024個樣本記為一個FCT幀,對每個FCT幀分別進行傅里葉變換(FCT)操作。然后,對于經FCT產生的前256個系數,除以選定的量化區間的長度,進行量化操作。如果計算結果為奇數,則標記該系數處于A區間,否則標記其處于B區間。顯然,A、B區間交替出現。之后,依次對所述256個系數中的每一個系數進行下述操作對于每一個系數,首先查看待嵌入數據的狀態。如果待嵌入數據為I且系數處于A區間,或待嵌入數據為O且系數處于B區間,則將系數修改為該區間的中點;否則將系數改為最接近系數的另一種區間的中點。其中,第一個FCT幀中嵌入了 rMAC值與嵌入數據的長度值,后面每個FCT幀為嵌入的數據。然后,對FCT幀中的所有系數進行逆變換,替換原音頻樣本。最后,判斷Speex音頻文件是否已嵌入全部數據,如果是,則信息隱藏處理流程結束,執行步驟I. 7 ;否則繼續處理下一個FCT幀。需要聲明的是,步驟I. 6為優選執行。如果不執行步驟I. 6,本發明方法仍能在一定程度上保證信息內容的機密性和完整性,但魯棒性較差,可靠性較低。步驟I. 7 :將嵌入了秘密語音的Speex音頻文件發送給接收方。具體可以通過互聯網、手機網絡、U盤以及各種文件交換方法進行發送或傳輸。步驟二、接收端接收發送端傳輸過來的Speex音頻文件并進行處理,提取其中的秘密語音。流程如下步驟2. I :對接收到的Speex音頻文件進行數據提取,具體如下首先,對Speex音頻文件中,以每1024個樣本記為一個FCT幀,對每個FCT幀分別進行傅里葉變換(FCT)操作。然后,對于FCT產生的前256個系數,執行與步驟I. 6中信息隱藏相同的操作,查看每個系數所處于的區間,如果系數處于A區間,則認為該系數中嵌入了數據1,否則認為嵌入了數據O。其中,第一個FCT幀中提取出來的為rMAC值和嵌入數據的長度之,后面的為所嵌入的數據。最后,判斷是否已經提出了全部數據,如果已提取全部數據,則執行步驟2. 2 ;否則繼續處理下一個FCT幀。步驟2. 2 :對經步驟2. I得到的Speex音頻文件進行解密。鑒于前述加密過程是與密鑰產生的二進制流進行異或操作,因此解密僅需要進行相同操作便可實現,即解密與加密的方法相同。需要聲明的是,如果不具有該步驟需要的密鑰或是不執行該步驟,則繼續執行步驟2. 3所產生的音頻將不會包含任何內容,最終計算出的rMAC值接近O. 5,導致音頻提取失 敗。步驟2. 3 :對經步驟2. 2編碼產生的Speex音頻文件進行解碼。其實現方法與步驟I. 3相同。步驟2. 4 :對經步驟2. 3解碼產生的Speex音頻文件,計算rMAC。其實現該方法與步驟2. 4相同。步驟2. 5 :計算rMAC的匹配度并據此判斷秘密語音內容完整性程度。首先,將步驟2. 5提取出來的rMAC值與步驟2. 4計算得到的rMAC值按位進行比較,兩個128位數據的位相同概率即為rMAC的匹配度。然后,根據rMAC的匹配度判斷秘密語音內容完整性。當rMAC值大于等于O. 8時,認為秘密語音內容具備完整性,反之則認為其不符合完整性要求。對于沒有破壞秘密語音內容完整性的攻擊,合法的信息接收方計算出rMAC值將接近于I。對于破壞了秘密語音內容完整性的攻擊,合法的信息接收方計算出rMAC值接近于O. 5。rMAC值準確的反映了秘密語音內容的完整性程度。有益效果本發明方法,通過利用基于系數量化的離散余弦變換(DCT)變換域嵌入算法,保證通信的隱蔽性。通過使用選擇性混沌加密算法對秘密語音進行加密,加密時,僅針對音頻 中的少數關鍵位進行加密,不僅顯著提高了加密效率,而且保證了秘密語音內容的機密性。通過計算比較秘密語音的魯棒消息認證碼(rMAC)來判斷秘密語音內容的完整性。在保證了語音通信本身的隱蔽性的同時,保證了語音通信內容的機密性和完整性,實現了安全的語音通信。
圖I為本發明所述方法的流程圖。
具體實施例方式下面結合附圖及實施例對本發明的具體實施方式
作進一步詳細說明。實施例I一種語音信息安全通信方法,包括語音發送過程和語音接收過程兩部分,其實現過程如圖I所示。所述方法中,如無特別說明,“η位”代表η個2進制位。
步驟一、發送端獲取待發送語音并對其音頻文件進行處理,生成嵌入了秘密語音的待發送語音音頻文件。具體如下步驟I. I :采集語音該步驟可以是獲取系統已有的語音音頻文件,也可以是錄制用戶的語音音頻,獲取錄制的音頻文件。獲取的音頻文件稱為秘密語音S。例如我們采集了 341KB的WAV格式音頻文件info, wav ο步驟I. 2 :對秘密語音info, wav進行編碼,用于對秘密語音進行壓縮,節省后面的通信開銷。編碼的處理流程如下第(I)步對于秘密語音info, wav,從文件中讀取160個音頻樣本。 第(2)步將這160個音頻樣本編碼為Speex音頻幀,直接調用開源的Speex編碼庫中的編碼巾貞函數即可。然后將獲取的音頻巾貞寫入到新的Speex音頻文件info, spx中。第(3)步如果已讀取全部音頻樣本,則完成本步驟;否則返回第(I)步繼續執行。本實施例中,所產生的info, spx音頻文件大小為40. 5KB。步驟I. 3 :對步驟I. 2編碼產生的Speex音頻文件info, spx再次進行解碼,用于后續計算rMAC。解碼的處理流程如下第(I)步從Speex音頻文件info, spx中讀取I個Speex音頻巾貞,我們讀到的Speex音頻幀大小為38字節。第(2)步將這I個音頻幀解碼為音頻樣本,直接調用開源的Speex編碼庫中的解碼中貞函數實現解碼操作。獲取的音頻樣本寫入到新的WAV音頻文件info_rMAC. wav中。第(3)步如果已讀取全部音頻幀,則執行步驟I. 4 ;否則返回第(I)步繼續執行。本實施例中,所產生的info_rMAC. wav音頻文件大小為341KB,與原始WAV音頻文件info,wav相同,但內容稍有不同。步驟4 :對步驟I. 3解碼產生的音頻文件info_rMAC. wav,計算rMAC。處理流程如下第(I)步對音頻文件info_rMAC. wav中,每1024個樣本記為一個FFT巾貞,將其讀取到內存中,并調用傅里葉變換(FFT)函數,對其進行FFT操作。第(2)步人耳對聲音的頻率敏感的范圍300Hz-3300Hz,將其劃分為若干個頻率段,然后計算每個頻率段的能量值。我們這里將這個范圍每IOOHz為一個頻率段,劃分為30個小的頻率段。對于FFT變換,若N點序列x(n) (n=0,1,…,N-1)是在采樣頻率f下獲得的。它的DFT結果也是N點序列,即__U,L2N-i ),則第k點所對應實際頻率值為f' =(kXf)/N。因此若需要計算FFT幀中某一個頻率段的能量值,首先需要找到頻率值落在該頻率段的數個點,然后將這些點值進行平方求和便可獲得該頻率段的能量值。第(3)步讀取密鑰文件key. txt,密鑰為4個整數為一組,共η組(對應于rMAC長度η的情況,η可任意取值,值越大,對通信內容的完整性描述越準確)的數據。本實施例中η取128,key. txt中包含512個整數,可以產生128位rMAC。第(4)步利用密鑰和第(2)步獲取的頻率段能量值,計算rMAC值。具體計算方法見如下公式
權利要求
1.ー種語音信息安全通信方法,包括語音發送過程和語音接收過程兩部分,其特征在于: 步驟一、發送端獲取待發送語音并對其音頻文件進行處理,具體如下 步驟1.1:獲取語音,將獲取到的音頻文件稱作秘密語音; 步驟I. 2 :對所述秘密語音進行編碼,流程如下 首先,根據編碼的復雜程度,從所述秘密語音中讀取一定量的音頻樣本,其中,編碼復雜程度為開源Speex編碼庫所提供的參數; 然后,將所取得的音頻樣本編碼為Speex音頻幀,將生成的Speex音頻幀寫入到新的 Speex音頻文件中; 最后,判斷是否已經讀取所述秘密語音中的全部音頻樣本,若已經全部讀取,則執行步驟I. 3 ;否則繼續讀取下ー批相同數量的音頻樣本并重復執行上述操作;如果在讀取時,音頻樣本不足,未能讀取與前述等量的音頻樣本,則按照實際讀取到的音頻樣本進行操作;步驟I. 3 :對經步驟I. 2編碼產生的Speex音頻文件進行解碼,流程如下 首先,從所述Speex音頻文件中讀取I個Speex音頻巾貞; 之后,將這I個Speex音頻巾貞解碼為Speex音頻樣本; 然后,將獲取到的Speex音頻樣本寫入新的Speex音頻文件中; 最后,判斷是否已經讀取全部的Speex音頻巾貞,如果已讀取全部的Speex音頻巾貞,則執行步驟4 ;否則繼續讀取下ー個Speex音頻幀并執行上述操作; 步驟I. 4 :對經步驟I. 3解碼產生的Speex音頻文件,計算rMAC,流程如下 首先,對Speex音頻文件中,以每1024個音頻樣本記為ー個FFT幀,并對每個FFT幀分別進行傅里葉變換操作; 然后,將人耳對聲音的頻率敏感范圍300Hz-3300Hz中,按照每IOOHz作為ー個頻率段,共將其劃分為30個小頻率段,并計算每個頻率段的能量值; 之后,讀取密鑰文件,密鑰為以4個整數為一組,共128組的數據; 而后,利用密鑰和頻率段能量值計算rMAC值,具體如下『、eItlll,],< ,1) 一 e^m,!,ん",,2 ) > 0-1 φηκι,K,I)-φη-,α’kna⑴ 其中、い、“、1,、2是作為密鑰的隨機選取的系數,均為非負整數;函數6(セ,10為能量函數,表示音頻的第t個DFT幀中第k個頻率段所具有的能量總和,即步驟I. 4中所計算出來的能量值,t、k均為實數;m表示所產生rMAC的位,為非負整數,H(m)表示產生rMAC的第m位; 步驟I. 5 :對經步驟I. 2編碼后得到的Speex音頻文件進行選擇性混度加密,流程如下 本步驟中,要求每ー步計算操作在16進制下,計算精度要求達到小數點后40位; 首先,從Speex音頻文件中讀取4個Speex音頻幀,并取每幀的7到38位,總共32位,4個音頻幀總共獲得128為數據; 然后,利用公式xk+1= μ xk(l-xk),O く μ彡4,xk e (0,I),計算下一個混沛數據;式中,xk表示混沛序列的第k個的數據,為實數;μ為自定義的系數,為實數為密鑰,k-Ι為執行的次數;如果得到的Xk+1大于O. 9或小于O. 1,則重復本操作; 之后,將計算得到的xk+1取小數點后連續的128位數據,與前述得到的128位數據進行異或操作; 隨后,用獲取到的128位數據替換Speex音頻幀中原128位數據; 最后,判斷Speex音頻文件音頻幀是否全部處理完畢,如果Speex音頻文件處理完成,則執行后續步驟;否則繼續讀取Speex音頻文件的Speex音頻巾貞; 步驟I. 6 :將嵌入了秘密語音的Speex音頻文件發送給接收方; 步驟ニ、接收端接收發送端傳輸過來的Speex音頻文件并進行處理,提取其中的秘密語音,流程如下 步驟2. I :對接收到的Speex音頻文件進行數據提取,具體如下 首先,對Speex音頻文件中,以每1024個樣本記為ー個FCT幀,對每個FCT幀分別進行傅里葉變換(FCT)操作; 然后,對于FCT產生的前256個系數,執行與步驟I. 6中信息隱藏相同的操作,查看每個系數所處于的區間,如果系數處于A區間,則認為該系數中嵌入了數據1,否則認為嵌入了數據O;其中,第一個FCT幀中提取出來的為rMAC值和嵌入數據的長度之,后面的為所嵌入的數據; 最后,判斷是否已經提出了全部數據,如果已提取全部數據,則執行步驟2.2 ;否則繼續處理下ー個FCT幀; 步驟2. 2 :對經步驟2. I得到的Speex音頻文件進行解密; 步驟2. 3 :對經步驟2. 2編碼產生的Speex音頻文件進行解碼; 步驟2. 4 :對經步驟2. 3解碼產生的Speex音頻文件,計算rMAC ; 步驟2. 5 :計算rMAC的匹配度并據此判斷秘密語音內容完整性程度,過程如下 首先,將步驟2. 5提取出來的rMAC值與步驟2. 4計算得到的rMAC值按位進行比較,兩個128位數據的位相同概率即為rMAC的匹配度; 然后,根據rMAC的匹配度判斷秘密語音內容完整性,當rMAC值大于等于O. 8時,認為秘密語音內容具備完整性,反之則認為其不符合完整性要求。
2.如權利要求I所述的ー種語音信息安全通信方法,其特征在于,對經步驟I. 5處理后的Speex音頻文件進行信息隱藏處理,流程如下 首先,對所述Speex音頻文件中,以每1024個樣本記為ー個FCT幀,對每個FCT幀分別進行傅里葉變換操作; 然后,對于經FCT產生的前256個系數,除以選定的量化區間的長度,進行量化操作;如果計算結果為奇數,則標記該系數處于A區間,否則標記其處于B區間; 之后,依次對所述256個系數中的姆ー個系數進行下述操作 對于每ー個系數,首先查看待嵌入數據的狀態,如果待嵌入數據為I且系數處于A區間,或待嵌入數據為O且系數處于B區間,則將系數修改為該區間的中點;否則將系數改為最接近系數的另ー種區間的中點;其中,第一個FCT幀中嵌入了 rMAC值與嵌入數據的長度值,后面每個FCT幀為嵌入的數據; 然后,對FCT幀中的所有系數進行逆變換,替換原音頻樣本; 最后,判斷Speex音頻文件是否已嵌入全部數據,如果是,則信息隱藏處理流程結束,執行下一歩;否則繼續處理下ー個FCT幀。
3.如權利要求I或2所述的ー種語音信息安全通信方法,其特征在于,所述步驟I. 4中計算頻率段的能量值的方法為,首先找到頻率值落在該頻率段的所有點,然后將這些點值進行平方求和。
全文摘要
本發明公開了一種語音信息安全通信方法。通過利用基于系數量化的離散余弦變換域嵌入算法,保證通信的隱蔽性。通過使用選擇性混沌加密算法對秘密語音進行加密,加密時,僅針對音頻中的少數關鍵位進行加密,不僅顯著提高了加密效率,而且保證了秘密語音內容的機密性。通過計算比較秘密語音的魯棒消息認證碼來判斷秘密語音內容的完整性。在保證了語音通信本身的隱蔽性的同時,保證了語音通信內容的機密性和完整性,實現了安全的語音通信。
文檔編號H04L9/00GK102737639SQ20121024343
公開日2012年10月17日 申請日期2012年7月13日 優先權日2012年7月13日
發明者于立濤, 劉丹, 祝烈煌, 謝馭舟 申請人:北京理工大學