專利名稱:一種語音編碼選擇性加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及語音編碼技術(shù)領(lǐng)域。尤其是涉及一種語音編碼選擇性加密方法,特別是涉及G.723.1語音編碼的選擇性加密方法。
背景技術(shù):
隨著通信業(yè)務(wù)需求的飛速增長,為了保證通信業(yè)務(wù)數(shù)據(jù)的傳輸,人們大力開展各種數(shù)據(jù)壓縮技術(shù)的研究工作。而語音信號的壓縮數(shù)字化傳輸,是多年以來人們一直努力的方向。
現(xiàn)有技術(shù)一般采用低速率語音編碼技術(shù)進(jìn)行語音傳輸。低速率語音編碼是在盡量減少失真的情況下,降低編碼速率,以便減小傳輸時所占用的帶寬。其相比較于模擬傳輸,可以節(jié)省帶寬,便于實現(xiàn)與互聯(lián)網(wǎng)(Internet Protocol,IP)的融合。
G.723.1是國際電信聯(lián)盟(International Telecommunication Union,ITU)為低碼率多媒體通信制定的語音編碼標(biāo)準(zhǔn)。該語音編碼方案是ITU-T H.324標(biāo)準(zhǔn)系列的組成部分,能夠以非常低的碼率壓縮語音或多媒體設(shè)備的其它音頻信號分量,具有6.3kbps和5.3kbps兩種碼率。高碼率(6.3kbs)時的激勵信號為多脈沖最大似然量化(Multipulse Maximum Likelihood Quantization,MP-MLQ);低碼率(5.3kbs)時的激勵信號為代數(shù)碼本激勵線性預(yù)測(Algebraic-Code-Excited Linear-Prediction,ACELP)。G.723.1語音信號的幀長30ms,240個采樣值,。編碼器采用線性預(yù)測-合成分析編碼,使感知加權(quán)誤差信號最小。
在編碼過程中,一次輸入一幀,每幀經(jīng)過高通濾波去掉直流分量,然后分成4個子幀,每子幀60個采樣點。用線性預(yù)測分析法(Linear Predictive,LP)對語音信號進(jìn)行短時預(yù)測分析,對每個子幀用加窗后的語音信號計算其線性預(yù)測編碼(Linear Predictive Coding,LPC)的10階濾波器系數(shù),這4個子幀的LPC系數(shù)將用來建立短時感知加權(quán)濾波器,這個濾波器作用于整個幀并且得到感知加權(quán)信號。最后一子幀的LPC濾波器系數(shù)還將被轉(zhuǎn)換成線譜對(Line Spectrum Pairs,LSP)系數(shù),然后使用預(yù)測分裂矢量量化器量化。
如圖1所示,為G.723.1編碼原理圖。G.723.1利用語音樣點間的短時相關(guān)性和相鄰語音段的長時相關(guān)性,以及對語音去除兩種相關(guān)后的余量信號分別進(jìn)行編碼。
首先進(jìn)行語音短時分析編碼1)語音信號經(jīng)過高通濾波后的240個點和上一幀的后120個點合成360個樣點,若當(dāng)前幀為語音信號的第一幀,則前面的120個樣點就全為0;2)把樣點分成相互交疊的4段,每一段長180,用漢明窗函數(shù)相乘加權(quán),以減小分段帶來的吉普斯效應(yīng);3)通過自相關(guān)函數(shù)等計算,求得線性預(yù)測系數(shù)。由語音信號的短時相關(guān)性,可知語音信號的預(yù)測系數(shù)在幀內(nèi)變化不會很大,所以在本編碼器中僅用最后10個預(yù)測系數(shù)(每一幀內(nèi)最后一個子幀的LPC參數(shù))來近似代替本幀語音的預(yù)測系數(shù)。
其次,把每一個子幀的LPC參數(shù)轉(zhuǎn)換為線譜對(LSP)參數(shù),用預(yù)測分裂矢量量化(Predictive Split Vector Quantizer,PSVQ)器量化、編碼后加以傳送把線譜對(LSP)殘差矢量(去除了長時直流分量的LSP矢量與LSP預(yù)測矢量的差值,是10維矢量)分成3個子矢量,維數(shù)分別是3、3、4,然后對每個子矢量進(jìn)行8bit碼本量化,這樣就產(chǎn)生了3個8bit碼本矢量,共24位碼本。
為了提高量化感知質(zhì)量,高通濾波后的語音信號需通過共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器,對語音信號進(jìn)行濾波,以生成初始目標(biāo)信號。共振峰感知加權(quán)濾波器的參數(shù)由各子幀未量化的LPC系數(shù)構(gòu)成;諧振峰噪聲整形濾波器的參數(shù)通過對每兩子幀進(jìn)行開環(huán)基音周期估計得到。
對語音信號進(jìn)行加權(quán)濾波和諧噪聲濾波,其間還對信號作長時分析(即基音成分,也即周期成分),即先后進(jìn)行開環(huán)基音估計和閉環(huán)基音預(yù)測,得到語音長時參數(shù)編碼,最后對語音去除長時相關(guān)。其中,偶子幀的基音周期(自適應(yīng)碼本)用7比特編碼,奇子幀的基音周期用2比特差分編碼。
而余量信號由目標(biāo)向量減去長時貢獻(xiàn)得到。對余量信號的編碼(固定碼本)可選擇6.3kbit/s或5.3kbit/s兩種碼率。前者(MP-MLQ算法)利用余量信號中小信號對合成語音質(zhì)量影響不大,故可以對余量信號進(jìn)行削波處理留下幅度較大者進(jìn)行編碼;后者(ACELP算法)用碼本中存儲的碼字來替代余量信號,以搜索出與余量信號之間均方誤差最小的碼矢量進(jìn)行傳輸。兩種算法的區(qū)別在于用來代替余量信號的編碼脈沖數(shù)目不同代數(shù)碼本激勵線性預(yù)測(ACELP)所用的脈沖數(shù)略少于MP-MLQ的脈沖數(shù)。
如圖2所示,為G.723.1解碼原理圖,其首先從接收碼流中提取LSP碼本索引值,經(jīng)過LSP解碼、內(nèi)插得到每一子幀的LSP參數(shù),轉(zhuǎn)換為LPC參數(shù),構(gòu)成LPC合成濾波器。然后從接收碼流中提取每一子幀的基音周期、基音增益碼本索引和激勵脈沖信息,分別經(jīng)過基音解碼和激勵解碼得到激勵信號e(n),對其進(jìn)行基音濾波再經(jīng)過合成濾波器獲得重建語音,重建語音經(jīng)過共振峰后濾波器和增益調(diào)整單元即得到解碼器的最后輸出。
由以上過程可知,被編碼器處理后的一幀信號需傳輸?shù)膮?shù)包括聲道參數(shù),即LSP參數(shù),用以在解碼端構(gòu)造LPC合成濾波器;激勵參數(shù),即基音周期參數(shù)與長時預(yù)測增益參數(shù),隨機(jī)碼本的脈沖位置參數(shù)和增益參數(shù)。
傳統(tǒng)的語音編碼加密方法都是對G.723.1壓縮語音流整體進(jìn)行加密。
然而與文本消息相比,語音流數(shù)據(jù)量大,實時性要求高,直接用傳統(tǒng)加密算法如AES(Advanced Encryption Standard)、3DES(3Data EncryptionStandard)算法等對其進(jìn)行整體加密,會引起明顯的時延,降低其實時性性能。不僅如此,它還會顯著增加系統(tǒng)的運(yùn)算負(fù)荷,占用更多資源,消耗更多能源。這在許多場合,諸如移動通信等對低能耗十分苛求的情況下,是無法忍受的。另外,對語音數(shù)據(jù)流進(jìn)行整體加密,不方便滿足不同等級的業(yè)務(wù)需求。
發(fā)明內(nèi)容
本發(fā)明所要解決的問題在于提供一種語音編碼選擇性加密方法,其按安全等級選擇確定需要加密的語音編碼的數(shù)據(jù)位。
為實現(xiàn)本發(fā)明而提供的一種語音編碼選擇性加密方法,包括下列步驟步驟A,首先進(jìn)行初始化,選擇加密所需安全等級,確定混沌流加密方法的調(diào)節(jié)參數(shù);步驟B,按照幀速率和安全等級確定選用的加密字節(jié)序號表和比特位置表中的參數(shù)的比特位,利用混沌流加密方法執(zhí)行加密操作。
所述的語音編碼選擇性加密方法,還可以包括下列步驟步驟C,解密方接到加密數(shù)據(jù)后,首先進(jìn)行初始化,然后執(zhí)行解密操作。
所述步驟A包括下列步驟步驟A1,用戶選擇加密所需的安全等級;步驟A2,確定混沌流加密方法的調(diào)節(jié)參數(shù);步驟A3,取調(diào)節(jié)參數(shù)中的初始值的有效二進(jìn)制位,轉(zhuǎn)換字節(jié)型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入一數(shù)組作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得密文。
所述步驟B包括下列步驟步驟B1,根據(jù)收到的一幀語音幀的頭兩位,判斷其是高速率幀,低速率幀,還是靜音幀;步驟B2,根據(jù)不同的幀,轉(zhuǎn)到相應(yīng)的步驟進(jìn)行處理如果是高速率幀,則選用高速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟B3;如果是低速率幀,則選用以上低速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟B3;如果是靜音幀,則不需要加密,轉(zhuǎn)回到步驟B1,轉(zhuǎn)而處理下一幀;步驟B3,在按照幀速率和安全等級確定選用的加密字節(jié)序號表和比特位置表后,執(zhí)行當(dāng)前幀的加密操作;步驟B4,完成當(dāng)前幀的加密操作后,如果密鑰流使用完,利用所述混沌流加密方法中的調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,則轉(zhuǎn)回步驟B1,轉(zhuǎn)而處理下一幀。
所述步驟C包括下列步驟步驟C1,接收控制參數(shù)并解密得到加密安全等級,并解密得到混沌流加密方法的調(diào)節(jié)參數(shù);步驟C2,取調(diào)節(jié)參數(shù)的有效二進(jìn)制位,轉(zhuǎn)換為字節(jié)型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入字節(jié)型數(shù)組作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得明文;步驟C3,執(zhí)行當(dāng)前幀的具體解密操作流程;
步驟C4,完成當(dāng)前幀的解密操作后,如果密鑰流使用完,利用調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,轉(zhuǎn)而處理下一幀。
所述混沌流加密方法為Logistics映射的一維非線性迭代方法表征的混沌流加密方法。
所述Logistics映射的一維非線性迭代方法為改進(jìn)的Logistics地圖一維非線性迭代方法,所述迭代方法如下式所示G(x)=(β+1)(1+1/β)β×(1-x)β其中,β∈(1,4),x0∈(0,1),x的初始值為x0,通過此式迭代可以得到x1,x2,x3,...xn...。
所述步驟B中,按幀速率和加密所需的安全等級確定選用的加密字節(jié)序號表和比特位置表,為確定語音幀中參數(shù)的比特位的敏感性排列順序,以此將比特位分為不同類別,加密不同類別的比特位獲得不同安全等級。
所述語音編碼為G.723.1標(biāo)準(zhǔn)語音幀的語音編碼。
所述語音幀中參數(shù)的比特位的敏感性排列順序為五個類,分別為CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,其重要性依次降低。
當(dāng)安全等級為Level 1時,加密CLASS1中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的48bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的38bit位加密;當(dāng)安全等級為Level 2時,加密CLASS1和CLASS2中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式對語音幀中的62bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的52bit位加密;當(dāng)安全等級為Level 3時,加密CLASS1、CLASS2和CLASS3中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的74bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的64bit位加密;當(dāng)安全等級為Level 4時,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的86bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的76bit位加密。
本發(fā)明的有益效果是本發(fā)明的語音編碼選擇性加密方法,一方面提高語音通話的實時性。在語音幀中進(jìn)行選擇性加密,即在幀間,僅對攜帶有語音信息的高/低速率幀進(jìn)行加密,對大量的SID幀(靜音幀)不加密;在幀內(nèi),按安全等級的需要,對那些敏感性高的比特位(即對重建語音影響大)進(jìn)行加密。與傳統(tǒng)的對語音媒體內(nèi)容進(jìn)行整體加密相比,這無疑加快加密速度;另一方面,能夠降低系統(tǒng)能耗,減少對資源的占用。其通過對語音幀進(jìn)行選擇性加密,這些措施在提高效率的同時,也可以降低系統(tǒng)能耗,減少占用的資源數(shù)量。降低能耗在一些能源資源十分緊張的應(yīng)用環(huán)境中,如無線通信領(lǐng)域中其移動設(shè)備攜帶能量有限,是非常關(guān)鍵的問題。減少對資源的占用,也可減輕網(wǎng)絡(luò)處理節(jié)點的負(fù)荷。進(jìn)一步地,其能夠便于滿足不同等級的業(yè)務(wù)需求。選擇性加密不僅僅可以從技術(shù)上滿足更好的需求,它在許多互聯(lián)網(wǎng)的業(yè)務(wù)中,也有實際的應(yīng)用價值。比如,提供各類音頻服務(wù)的網(wǎng)站,其語音材料可以以不同的加密強(qiáng)度提供給用戶,如果是免費(fèi)提供給用戶試聽,可以對語音采取某種加密強(qiáng)度,以進(jìn)行模糊處理。諸如此類的許多應(yīng)用,總之,選擇性加密為不同等級的業(yè)務(wù)需求提供了可行性與良好的技術(shù)支持。
圖1為現(xiàn)有技術(shù)G.723.1標(biāo)準(zhǔn)語音幀的語音編碼原理圖;圖2為現(xiàn)有技術(shù)G.723.1標(biāo)準(zhǔn)語音幀的語音解碼原理圖;圖3為本發(fā)明語音編碼選擇性加密方法流程圖;圖4為本發(fā)明語間編碼選擇性加密過程示意圖;圖5為圖4中步驟S100初始化過程流程圖;圖6為圖4中步驟S200選擇確定比特位,執(zhí)行加密操作過程流程圖;圖7為圖4中步驟S300解密過程流程圖;圖8為本發(fā)明一實施例G.723.1標(biāo)準(zhǔn)語音幀高速率幀安全等級為1時第3字節(jié)開始加密過程示意圖;圖9為圖8所示G.723.1標(biāo)準(zhǔn)語音幀第10字節(jié)加密過程示意圖;圖10為圖8所示G.723.1標(biāo)準(zhǔn)語音幀第11字節(jié)加密過程示意圖;圖11為圖8所示G.723.1標(biāo)準(zhǔn)語音幀第12字節(jié)加密過程示意圖;圖12為圖8所示G.723.1標(biāo)準(zhǔn)語音幀第14字節(jié)加密過程示意圖;
圖13為圖8所示G.723.1標(biāo)準(zhǔn)語音幀的下一幀從第3字節(jié)開始加密過程示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明的一種語音編碼選擇性加密方法進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
一般地,在對語音加密效果的衡量標(biāo)準(zhǔn)中,包括客觀和主觀評測兩方面,但對于低速率的窄帶壓縮語音信號,客觀評測的參數(shù)如信噪比等,很難真正反映其表現(xiàn)性能,而主觀評測更貼近實際情況,所以通常更注重主觀評測。主觀評測上的幾個主要衡量標(biāo)準(zhǔn)即包括以下幾點1、語音可理解性(語義)2、語音的性別判斷3、明文攻擊4、靜音/非靜音的區(qū)分這也就是在語音的主觀評測上希望達(dá)到的標(biāo)準(zhǔn),也就是說,本發(fā)明實施例中,應(yīng)當(dāng)通過加密,使人在聽過語音后不可再做出關(guān)于以上幾點的有效的分辨行為。
需要說明的是,以上四個標(biāo)準(zhǔn)相當(dāng)于加密安全強(qiáng)度最高的要求。本發(fā)明實施例中不同的安全等級得到的加密效果不一樣,并不是都可以滿足以上四個標(biāo)準(zhǔn),并且本發(fā)明中的方法是對加密的效率和安全強(qiáng)度的一種折中,在兩者間尋求一個平衡點。以上標(biāo)準(zhǔn)僅僅是一個我們希望達(dá)到的總的標(biāo)準(zhǔn)與原則,與本發(fā)明的安全等級等等沒有直接關(guān)聯(lián)聯(lián)系,也沒有先后排序。
數(shù)字語音、圖像以及視頻壓縮數(shù)據(jù)流都有一個特性,即感官上的不均衡重要性(nonuniform perceptual importance),也就是說,數(shù)據(jù)流中一部分位上發(fā)生的錯誤比在其他位上發(fā)生的錯誤所帶來的影響要顯著的多。
到目前為止,關(guān)于這個結(jié)論的最重要的應(yīng)用就是在無線信道多媒體數(shù)據(jù)傳輸中采用的不均等錯誤保護(hù)(Unequal Error Protection,UEP)機(jī)制。
因此,不同于加密整個多媒體流,本發(fā)明語音編碼選擇性加密方法,采用一種選擇性加密方法,與傳統(tǒng)加密方法中加密所有數(shù)據(jù)的做法不一樣,選擇性加密方法僅對一部分對感知影響更為重大的比特位進(jìn)行加密,而剩余的部分則直接不加保護(hù)的在信道中傳輸,即通過保持加密后數(shù)據(jù)格式信息和控制信息不變,只加密實際數(shù)據(jù),從而保持加密后數(shù)據(jù)流的相容性,其在確保所需安全強(qiáng)度的情況下,降低運(yùn)算負(fù)荷,也就節(jié)省了更多的資源、能耗,傳輸速度得到了很大的提高,在實時性方面也就有了更好的表現(xiàn),能夠滿足實時性要求。同時,選擇性加密方法可以要求與具體的數(shù)據(jù)格式相結(jié)合,根據(jù)安全性水平要求的不同,選擇加密不同的敏感數(shù)據(jù),從而滿足不同的需求,本發(fā)明實施例以G.723.1語音編碼的選擇性加密來說明本發(fā)明的語音編碼選擇性加密方法,但是本發(fā)明并不限定于只適用于G.723.1語音編碼,其同樣可以適用于其它標(biāo)準(zhǔn)的語音編碼。
如圖3和圖4所示,其中,圖3本發(fā)明語音編碼選擇性加密方法流程圖;圖4為本發(fā)明語音編碼選擇性加密過程示意圖;下面詳細(xì)說明本發(fā)明的一種語音編碼選擇性加密方法步驟S100,首先進(jìn)行初始化,選擇加密所需安全等級,確定加密迭代方法的調(diào)節(jié)參數(shù);如圖5所示,其具體包括如下步驟步驟S110,用戶選擇加密所需的安全等級Level;步驟S120,確定Logistics映射的一維非線性迭代方法表征混沌流加密方法的調(diào)節(jié)參數(shù)x0和β;用戶選擇這兩個參數(shù)x0和β,此兩個參數(shù)即相當(dāng)于密鑰。x0在0~1之間取值,β在1...~4之間取值,對小數(shù)點后的位數(shù)沒有要求,較佳地,鑒于計算機(jī)可處理的位數(shù),兩個參數(shù)在小數(shù)點后取不超過10位。本發(fā)明實施例舉例說明,所述兩個參數(shù)為取值x0=0.3,β=3.78。同時,需要說明的是,可以在計算機(jī)VC編程環(huán)境中,將此兩個參數(shù)存儲為雙精度浮點數(shù)類型,以便于選取64位有效二進(jìn)制位。
步驟S130,取調(diào)節(jié)參數(shù)中的初始值x0的小數(shù)點后的64位有效二進(jìn)制位,轉(zhuǎn)換為8個字節(jié)型(byte)數(shù)據(jù),將轉(zhuǎn)換的數(shù)組存入一數(shù)組作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得密文。
所述轉(zhuǎn)換為現(xiàn)有技術(shù),其將64個二進(jìn)制位分為8組,每一組8個比特位剛好形成一個字節(jié)型數(shù)據(jù);所述密鑰流表為將轉(zhuǎn)換的數(shù)據(jù)存入一長度為8的字節(jié)型(byte)型數(shù)組keyList[]得到,其用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得密文。
步驟S200,按照幀速率(幀長度)和安全等級確定選用的加密字節(jié)序號表和比特位置表,執(zhí)行加密操作。
在語音編碼加密的過程中,用戶在選擇加密所需安全等級Level后,就要根據(jù)具體的加密對象G.723.1的語音編碼的格式特點,選擇確定需要加密的語音編碼的比特位。
如圖6所示,具體包括如下步驟步驟S210,首先根據(jù)收到的一幀語音幀的頭兩位,判斷其是高速率幀(幀長24字節(jié),6.3kbps),低速率幀(幀長20字節(jié),5.3kbps),還是SID幀(靜音幀);步驟S220,根據(jù)不同的幀,轉(zhuǎn)到相應(yīng)的步驟進(jìn)行處理;Case1如果是高速率幀,則選用高速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟S230;Case2如果是低速率幀,則選用以上低速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟S230;Case3如果是SID幀(靜音幀),則不需要加密,轉(zhuǎn)回到步驟S210,轉(zhuǎn)而處理下一幀;步驟S230,在按照幀速率(幀長度)和安全等級確定選用的加密字節(jié)序號表和比特位置表后,執(zhí)行當(dāng)前幀的加密操作。
步驟240,完成當(dāng)前幀的加密操作后,如果密鑰流使用完,利用所述混沌流加密方法中的調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,則轉(zhuǎn)回步驟210,轉(zhuǎn)而處理下一幀。
進(jìn)一步地,還可以包括下列步驟步驟S300,解密方接到加密數(shù)據(jù)后,首先進(jìn)行初始化,然后執(zhí)行解密操作。
如圖7所示,具體包括如下步驟
步驟S310,接收控制參數(shù)并解密得到加密安全等級level,并解密得到混沌流加密方法的調(diào)節(jié)參數(shù)x0和β;步驟S320,取x0的小數(shù)點后的64位有效二進(jìn)制位,轉(zhuǎn)換為8個byte型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入一長度為8的byte型數(shù)組keyList[]作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得明文;步驟S330,執(zhí)行當(dāng)前幀的具體解密操作流程;步驟S340,完成當(dāng)前幀的解密操作后,如果密鑰流使用完,利用調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,轉(zhuǎn)而處理下一幀。
執(zhí)行本發(fā)明選擇性加密方法的具體解密流程,與執(zhí)行加密操作流程相對應(yīng),本領(lǐng)域的技術(shù)人員可以根據(jù)本發(fā)明具體實施例所描述的加密過程而完成解密過程,因此,在本發(fā)明實施例中,不再一一進(jìn)行詳細(xì)描述。
下面詳細(xì)說明步驟S120中確定Logistics映射的一維非線性迭代方法表征的混沌流加密方法的調(diào)節(jié)參數(shù)X0和β的具體方法過程較佳地,綜合考慮選擇性加密的特點、效率以及安全性,本發(fā)明實施例中采用混沌流加密算法,異或操作以字節(jié)為單位,但對混沌密鑰流的使用進(jìn)行改進(jìn),結(jié)合對G.723.1幀結(jié)構(gòu)所選擇的需要加密部分位置的特點,可以適當(dāng)?shù)貙煦缑荑€流進(jìn)行重復(fù)使用,而不十分影響其安全性能,從而提高效率。
流加密的優(yōu)點是錯誤擴(kuò)展小、實時性高,其保密度取決于密鑰發(fā)生器產(chǎn)生的密鑰序列的隨機(jī)性,當(dāng)密鑰序列非常接近隨機(jī)序列時,其安全性很高。但是,傳統(tǒng)的流加密方法中,采用的偽隨機(jī)序列發(fā)生器為線性同余發(fā)生器或線性反饋移位寄存器,它們的安全性都較差,易被破解。因此,本發(fā)明實施例采用混沌流加密方法。
作為一種可實施的方式,一種簡單且被廣泛研究的自治一維離散動態(tài)系統(tǒng)是Logistics映射方法,它用一維非線性迭代方法來表征的混沌流加密方法,如式(10)所示。
F(xn)=λxn(1-xn)(10)其中,n=0,1,2,……,x0和λ為調(diào)節(jié)參數(shù),當(dāng)x0∈(0,1),λ∈(3.5699456...,4)時,Logistics映射工作于混沌態(tài),即由初始條件x0在Logistics映射方法的作用下所產(chǎn)生的序列{xk,k=0,1,2,3...}是非周期的、不收斂的,且對初始值和參數(shù)非常敏感。
該混沌流加密方法有兩個問題,一個是流加密方法的固定點,即多次迭代趨近于某一個固定值,另一個是“穩(wěn)定窗”,即在某個區(qū)間的點聚集,窗中產(chǎn)生的迭代序列不能提供作為密鑰流所必須的安全性。
本發(fā)明實施例采用改進(jìn)的Logistics地圖(Logistics map)一維非線性迭代方法以避免現(xiàn)有技術(shù)的問題。本發(fā)明實施例的迭代方法如式(11)所示G(x)=(β+1)(1+1/β)β×(1-x)β(11)其中,β∈(1,4),x0∈(0,1),x的初始值為x0,通過此式迭代可以得到x1,x2,x3,...xn...。
理論上,式(11)產(chǎn)生的序列是非周期的,但是由于受到計算機(jī)字長的限制,實際由計算機(jī)仿真得到的混沌序列都只是對客觀混沌的逼近,因此有一個“循環(huán)窗”問題,就是經(jīng)過若干次迭代,迭代值出現(xiàn)周期性。根據(jù)測試的結(jié)果,在采用雙精度的浮點運(yùn)算時,可用的迭代平均次數(shù)>=2*107。
下面詳細(xì)說明步驟S200中按幀速率(幀長度)和加密所需的安全等級Level確定選用的加密字節(jié)序號表和比特位置表的具體方法過程為了說明本發(fā)明的按幀速率(幀長度)和加密所需的安全等級Level確定選用的加密字節(jié)序號表和比特位置表,首先說明G.723.1標(biāo)準(zhǔn)幀結(jié)構(gòu),并根據(jù)比特幀結(jié)構(gòu)分析其參數(shù)重要性,然后根據(jù)其參數(shù)重要性按安全等級Level需要選擇要加密的比特位,即如何確定語音幀中參數(shù)的比特位的敏感性排列順序,以此將比特位分為不同類別,加密不同類別的比特位獲得不同安全等級。
如表1所示為低速率幀5.3kbps模式G.723.1語音編碼后的比特分配幀結(jié)構(gòu)表1 低速率幀5.3kbps模式G.723.1語音編碼后的比特分配幀結(jié)構(gòu)表
如表2所示為高速率幀6.3kbps模式G.723.1語音編碼后的比特分配幀結(jié)構(gòu)表2 高速率幀6.3kbps模式G.723.1語音編碼后的比特分配幀結(jié)構(gòu)表
通過對G.723.1的編碼過程的分析,對照幀結(jié)構(gòu),可以確定幀中各個參數(shù)的作用1)LPC索引是LPC參數(shù),用于在解碼端構(gòu)造LPC合成濾波器,十分關(guān)鍵,LPC系數(shù)和最后的語音的可理解性(即語義)有著密切關(guān)聯(lián);2)聯(lián)合增益GAIN0、GAIN1、GAIN2、GAIN3是自適應(yīng)碼本和固定碼本的增益的聯(lián)合編碼,增益參數(shù)影響著人耳對語音的通話與靜音期的分辨能力;3)ACL0、ACL1、ACL2、ACL3分別代表第一、二、三、四子幀的自適應(yīng)碼本延時,它們代表語音激勵中的長時基音,也即周期脈沖成分,這個成分影響著人耳對語音的性別判斷;4)脈沖符號(PSIG0,PSIG1,PSIG2,PSIG3)和脈沖位置(POS0,POS1,POS2,POS3)分別代表固定碼本(語音激勵中的非周期脈沖成分)的編碼脈沖的符號和位置。固定碼本是在對激勵信號的編碼過程中,對目標(biāo)矢量和長時基音貢獻(xiàn)的差值的逼近,是總激勵的余量信號,因此其重要性低于自適應(yīng)碼本,在自適應(yīng)碼本已有效加密的基礎(chǔ)上,固定碼本相關(guān)參數(shù)的加密優(yōu)先級可置后考慮。
因此,通過對語音加密效果的衡量標(biāo)準(zhǔn)和G.723.1各參數(shù)作用的聯(lián)合考慮,明確LPC參數(shù)、聯(lián)合增益和自適應(yīng)碼本三個參數(shù)非常重要,在選擇加密參數(shù)時需要首先考慮,固定碼本參數(shù)的加密可以置后考慮。
同時,為了進(jìn)一步說明按安全等級選擇需要加密的比特位,本發(fā)明實施例結(jié)合G.723.1的附件C中對幀比特位的誤碼敏感性的排列順序,分析說明G.723.1的編碼比特幀結(jié)構(gòu)中參數(shù)重要性,并按安全等級需要選擇要加密的比特位。
在了解G.723.1幀結(jié)構(gòu)中的不同比特位對解碼端語音信號重建有怎樣的影響后,再結(jié)合G.723.1的附件C中解碼已給出的對幀比特位的誤碼敏感性的排列順序,以及根據(jù)語音加密效果的衡量標(biāo)準(zhǔn)等,根據(jù)系統(tǒng)資源的條件、不同安全等級的需求,選擇加密不同的比特位,并根據(jù)安全等級選擇要加密的比特位。
ITU-T發(fā)布的G.723.1的附件C是關(guān)于無線通信中的信道編碼,而由于無線通信的信道誤碼率很高,因此提出附件C以對G.723.1幀結(jié)構(gòu)中對誤碼特別敏感(即發(fā)生錯誤對重建語音的影響非常大)的比特位進(jìn)行CRC校驗編碼,增強(qiáng)其抗錯性能。為此,附件C中給出了G.723.1的改進(jìn)幀結(jié)構(gòu)(與標(biāo)準(zhǔn)幀格式略有不同,對信道誤碼有更強(qiáng)抗錯性能)的比特位的誤碼敏感性的排列順序。這也是進(jìn)行選擇性加密參考的主要有利依據(jù)之一。
G.723.1的附件C中略微修改了G.723.1的幀結(jié)構(gòu),以適應(yīng)無線信道的傳輸,它是原結(jié)構(gòu)的一種解壓縮表示,具有更強(qiáng)的魯棒性,以抵抗信道誤碼。
G.723.1語音編碼的幀在G.723.1的附件C標(biāo)準(zhǔn)解壓縮后的高速率(6.3kbps)傳輸語音參數(shù)幀格式如下表3所示表3 G.723.1語音編碼的幀在解壓縮后的高速率(6.3kbps)傳輸語音參數(shù)幀格式表
G.723.1語音編碼的幀在G.723.1的附件C標(biāo)準(zhǔn)解壓縮后的低速率(5.3kbps)傳輸語音參數(shù)幀格式如下表4所示表4 G.723.1語音編碼的幀在解壓縮后的低速率(5.3kbps)傳輸語音參數(shù)幀格式表
表5為G.723.1的附件C解壓縮后的高速率(6.3kbps)傳輸語音幀比特位的主觀敏感性排序表。相應(yīng)比特位上的數(shù)字表明了其主觀敏感性的排序(最重要的排位為0,依次類推)。
表5解壓縮后的高速率(6.3kbps)傳輸語音幀比特位的主觀敏感性排序表
表6是G.723.1的附件C解壓縮后的低速率(5.3kbps)傳輸語音幀比特位的主觀敏感性排序表。相應(yīng)比特位上的數(shù)字表明了其主觀敏感性的排序(最重要的排位為0,依次類推)。
表6解壓縮后的低速率(5.3kbps)傳輸語音幀比特位的主觀敏感性排序表
由結(jié)合G.723.1的附件C解壓縮后的幀比特位敏感性排列順序表可以看到,其重要性的排列順序和前面對G.723.1的各個參數(shù)作用以及重要性的結(jié)論基本是一致的。
即總體而言,參數(shù)LPC系數(shù)、自適應(yīng)碼矢量索引和增益的敏感程度較高,因為它們對重建語音的影響很大。
表5和表6中得到的比特位敏感性排序是G.723.1附件C的解壓縮后的語音幀中的比特位敏感性排序,但本發(fā)明所需要的是G.723.1標(biāo)準(zhǔn)語音幀中的比特位敏感性排序,所以需要得到兩種語音幀之間的轉(zhuǎn)化關(guān)系,以及比特位的對應(yīng)關(guān)系,以求得G.723.1標(biāo)準(zhǔn)語音幀中比特位敏感性的排序和分類。
下面詳細(xì)說明G.723.1附件C的解壓縮后的語音幀中的比特位敏感性排序和G.723.1標(biāo)準(zhǔn)語音幀中的比特位敏感性排序這兩種語音幀之間的轉(zhuǎn)化關(guān)系,以及比特位的對應(yīng)關(guān)系結(jié)合表1至表6關(guān)于G.723.1參數(shù),以及G.723.1的附件C參數(shù)及語音幀比特位的主觀敏感性排序表??梢钥闯觯驗镚.723.1的附件C解壓縮后的幀結(jié)構(gòu)和標(biāo)準(zhǔn)幀結(jié)構(gòu)在每一參數(shù)內(nèi)部的編碼順序上是有區(qū)別的,解壓縮后的幀比特位敏感性排列順序不能直接用于G.723.1的標(biāo)準(zhǔn)幀結(jié)構(gòu),所以需要確定G.723.1標(biāo)準(zhǔn)的語音參數(shù)與G.723.1的附件C標(biāo)準(zhǔn)的語音編碼參數(shù)相互轉(zhuǎn)換關(guān)系,以便G.723.1標(biāo)準(zhǔn)的語音參數(shù)與G.723.1的附件C標(biāo)準(zhǔn)的語音編碼參數(shù)可以進(jìn)行相互轉(zhuǎn)換。
1)LPC參數(shù)的轉(zhuǎn)換關(guān)系G.723.1標(biāo)準(zhǔn)編碼中,LPC參數(shù)是把LSP殘差矢量(去除了長時直流分量的LSP矢量與LSP預(yù)測矢量的差值,是10維矢量)分成3個子矢量,維數(shù)分別是3、3、4,然后對每個子矢量進(jìn)行8bit碼本量化,這樣就產(chǎn)生了3個8bit碼本矢量,共24位碼本。
G.723.1標(biāo)準(zhǔn)幀結(jié)構(gòu)中的LPC參數(shù)通過下列變換得到G.723.1的附件C中的幀結(jié)構(gòu)的LPC參數(shù)G.723.1標(biāo)準(zhǔn)幀結(jié)構(gòu)中的LPC參數(shù)由下面三個子矢量構(gòu)成E0={LPC_B7,LPC_B6,LPC_B5,LPC_B4,LPC_B3,LPC_B2,LPC_B1,LPC_B0}E1={LPC_B15,LPC_B14,LPC_B13,LPC_B12,LPC_B11,LPC_B10,LPC_B9,LPC_B8}E2={LPC_B23,LPC_B22,LPC_B21,LPC_B20,LPC_B19,LPC_B18,LPC_B17,LPC_B16}
三個子矢量通過式(1)的映射重新得到新的三個子矢量emR=ReorderTabm[em]m=0,1.2---(1)]]>得到的輸出即是G.723.1的附件C中用于無線信道傳輸?shù)腖PC參數(shù)索引。
因此,G.723.1的附件C中解壓縮后的幀參數(shù)與標(biāo)準(zhǔn)幀參數(shù)的對應(yīng)關(guān)系為R_LPC_B7...R_LPC_B0由LPC_B7...LPC_B0映射得到(第一個子矢量);R_LPC_B15...R_LPC_B8由LPC_B15...LPC_B8映射得到(第二個子矢量);R_LPC_B23...R_LPC_B16由LPC_B23...LPC_B16映射得到(第三個子矢量);G.723.1附件C中幀結(jié)構(gòu)的比特位的敏感性排序表中,LPC參數(shù)的最后一個子矢量(R_LPC_B23...R_LPC_B16)的敏感性遠(yuǎn)高于前兩個,因此在標(biāo)準(zhǔn)幀結(jié)構(gòu)中,對應(yīng)有LPC_B23...LPC_B16的敏感性很高,而LPC_B15...LPC_B0敏感性很低。
2)增益參數(shù)的轉(zhuǎn)換關(guān)系G.723.1標(biāo)準(zhǔn)編碼中,每一子幀的聯(lián)合增益用12比特編碼,它事實上是兩個獨立增益(自適應(yīng)碼本相關(guān)增益和固定碼本相關(guān)增益)的聯(lián)合壓縮編碼。在G.723.1的附件C中,為了增強(qiáng)幀結(jié)構(gòu)抗信道誤碼的能力,它把標(biāo)準(zhǔn)結(jié)構(gòu)中的聯(lián)合增益進(jìn)行解壓縮,把每一個子幀的增益索引GAINx_By解壓縮為一個8比特的AGAINx_By和一個5比特的FGAINx_By共兩個增益索引。
其步驟如下21)根據(jù)式(2)解碼得到每一偶子幀的基音周期預(yù)測 其中,PIndi為自適應(yīng)碼本索引22)根據(jù)式(3)解碼得到每一奇子幀的基因周期預(yù)測
23)計算得到每一子幀的基音周期預(yù)測的增益矢量231)當(dāng)?shù)退俾蕰r,聯(lián)合增益索引(GIndi)包含基音周期預(yù)測(自適應(yīng)碼本)增益矢量的信息和脈沖序列(固定碼本)增益索引的信息,其計算式如式(4)表示 其中,PGIndi為基音周期自適應(yīng)碼本相關(guān)增益索引,GSize=24;232)當(dāng)高速率時,如果Li>=58,增益計算同式(4)。否則,其計算如式(5) 24)根據(jù)式(6)計算得到每一子幀的脈沖的最大增益(MGIndi) 由以上解壓縮過程,可以得到G.723.1的附件C中解壓縮后的幀參數(shù)與標(biāo)準(zhǔn)幀參數(shù)的對應(yīng)關(guān)系為增益索引AGAINx_By對應(yīng)式(5)中的基音周期自適應(yīng)碼本相關(guān)增益索引PGIndi,其中,增益索引FGAINx_By對應(yīng)式(6)中的最大增益MGIndi,標(biāo)準(zhǔn)幀格式中的增益索引GAINx_By對應(yīng)上式中的聯(lián)合增益索引GIndi。因此,AGAINx_By和FGAINx_By由GAINx_By解壓縮而來。
GAINx_By,是G.723.1標(biāo)準(zhǔn)幀結(jié)構(gòu)中的參數(shù),AGAINx_By和FGAINx_By是G.723.1附件C中的解壓縮后的幀結(jié)構(gòu)中的參數(shù),由標(biāo)準(zhǔn)幀結(jié)構(gòu)中的GAINx_By參數(shù)解壓縮而來。本發(fā)明中根據(jù)它們之間的轉(zhuǎn)換關(guān)系,以求得GAINx_By和AGAINx_By、FGAINx_By之間的比特位的對應(yīng)關(guān)系,從而可以由附件C中給出的解壓縮后的幀的比特位敏感性排序,得到標(biāo)準(zhǔn)語音幀的比特位敏感性排序。
由比特敏感性排序表可以得出,每一子幀的增益索引AGAINx_By(y>=3)的敏感性比較高,每一子幀的增益索引FGAINx_B4位敏感性很高,而AGAINx_By(y<3)和FGAINx_By的低四位敏感性都較低。
由于AGAINx_By是標(biāo)準(zhǔn)幀結(jié)構(gòu)中的GAINx_By整除24的商,所以AGAINx_By(y>=3)這些比特位主要由GAINx_By的最高4位決定,故而相應(yīng)地有G.723.1標(biāo)準(zhǔn)幀結(jié)構(gòu)中,GAINx_By的最高4位的敏感性比其它的位高。
另外,增益索引FGAINx_By最高位情況復(fù)雜一些,不僅GAINx_By的高位對它有影響,低位也會影響到它的取值,但FGAINx_By的低四位敏感性都很低,所以整體上優(yōu)先考慮對AGAINx_By高位有影響的GAINx_By的位的加密,也即GAINx_By的高位。
因此,把G.723.1標(biāo)準(zhǔn)幀的比特位按照敏感性劃分為五類CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,CLASS1類中的比特位敏感性最高,CLASS2其次,依次類推。因此,最低安全等級Level1的加密是對CLASS1中的比特位加密,高一安全等級Level2的是對CLASS1和CLASS2中的比特位加密,...,最高安全等級Level4的加密是對五類中的前4類比特位進(jìn)行加密。
其中,CLASS是對比特位的分類,Level是對安全等級的劃分。
在G.723.1的標(biāo)準(zhǔn)幀結(jié)構(gòu)高速率模式(6.3kbps)下,比特位的主觀敏感性排序號如表7所示。特別需要說明的是,本表沒有給出各比特位的精確排序,而是根據(jù)敏感性做了大致的類別劃分,劃分為五類表示其敏感性由高至低。
表7 在G.723.1的標(biāo)準(zhǔn)幀結(jié)構(gòu)高速率模式(6.3kbps)下,比特位的主觀敏感性排序號
在G.723.1的標(biāo)準(zhǔn)幀結(jié)構(gòu)低速率模式(5.3kbps)下,比特位的主觀敏感性排序號如表8所示表8在G.723.1的標(biāo)準(zhǔn)幀結(jié)構(gòu)低速率模式(5.3kbps)下,比特位的主觀敏感性排序號
從表7和表8可以得到,當(dāng)安全等級為Level1時,加密CLASS1中的比特位,在高速率模式(6.3kbps)下共需要加密CLASS1中的48位,因此對語音幀中的48bit位加密;在低速率模式(5.3kbps)下共需要加密CLASS1中的38位,因此對語音幀中的38bit位加密;當(dāng)安全等級為Level 2時,加密CLASS1和CLASS2中的比特位,在高速率模式(6.3kbps)下還需要加密CLASS2中的14位,因此對語音幀中的48+14=62bit位加密;低速率模式(5.3kbps)下還需要加密CLASS2中的14位,因此對語音幀中的38+12=52bit位加密;當(dāng)安全等級為Level 3時,加密CLASS1、CLASS2和CLASS3中的比特位,在高速率模式(6.3kbps)下還需要加密CLASS3中的12位,因此對語音幀中的62+12=74bit位加密;在低速率模式(5.3kbps)下還需要加密CLASS3中的12位,因此對語音幀中的52+12=64bit位加密;當(dāng)安全等級為Level 4時,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在高速率模式(6.3kbps)下還需要加密CLASS4中的12位,因此對語音幀中的74+12=86bit位加密;在低速率模式(5.3kbps)下還需要加密12位,因此對語音幀中的64+12=76bit位加密。
在本發(fā)明實施例中,根據(jù)比特位的敏感性排序,給第一類(CLASS1)給48比特(bit),第二類給14比特(bit)...,只是一個較佳的劃分范疇,最敏感的48位劃為第一類,是因為它囊括了幾個重要參數(shù)的最重要的比特位部分。
在本發(fā)明實施例中,給出了比特位的加密的優(yōu)先順序,沒有限制某種具體的應(yīng)用背景以及安全強(qiáng)度需求。如果某種實際應(yīng)用中,對比特位進(jìn)行加密安全強(qiáng)度沒有達(dá)到具體環(huán)境的應(yīng)用要求的話,在此基礎(chǔ)上依次增加對CLASS1、CLASS2...中的比特位的加密,直到獲得所需效果。本領(lǐng)域的普通技術(shù)人員也可以根據(jù)本領(lǐng)域常用的劃分方法,對比特位進(jìn)行敏感性排序,但其并沒有超出本發(fā)明的范圍。
作為一種可實施的方式,所述安全等級和選擇性加密一幀中各字節(jié)需加密的比特位置表的數(shù)據(jù)結(jié)構(gòu)可以表示如下/*安全等級*/
#define SECURITY_LEVEL1 1 ∥需要加密以上提出的CLASS1中的比特位#define SECURITY_LEVEL2 2 ∥需要加密以上提出的CLASS1~2中的比特位#define SECURITY_LEVEL3 3 ∥需要加密以上提出的CLASS1~3中的比特位#define SECURITY_LEVEL4 4 ∥需要加密以上提出的CLASS1~4中的比特位/*選擇性加密一幀中需加密的字節(jié)序號表*/byte highrate_bytepos_list[]={3,4,5,6,7,8,9,10,11,12,13,14};byte lowrate_bytepos_list[]={3,4,5,6,7,8,9,10,11,12};/*選擇性加密一幀中各字節(jié)需加密的比特位置表*/byte highrate_level1_bitpos_list[]={0xf0,0xff,0xfd,0x0b,0xf0,0x00,0x0f,0xf0,0x00,0x0f,0xf0,0x3f};∥高速率、安全等級等級1時,選用的比特位置表byte highrate_level2_bitpos_list[]={0xff,0xff,0xff,0x0f,0xfc,0xc0,0x0f,0xfc,0xc0,0x0f,0xf0,0x3f};∥高速率、安全等級等級2時,選用的比特位置表byte highrate_level3_bitpos_list[]={0xff,0xff,0xff,0x8f,0xff,0xf8,0x8f,0xff,0xf8,0x0f,0xf0,0x3f};∥高速率、安全等級等級3時,選用的比特位置表byte highrate_level4_bitpos_list[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0x3f};∥高速率、安全等級等級4時,選用的比特位置表byte lowrate_level1_bitpos_list[]={0xf0,0xff,0xfd,0x0b,0xf0,0x00,0x0f,0xf0,0x00,0x0f};∥低速率、安全等級等級1時,選用的比特位置表
byte lowrate_level2_bitpos_list[]={0xff,0xff,0xff,0x0f,0xfc,0xc0,0x0f,0xfc,0xc0,0x0f};∥低速率、安全等級等級2時,選用的比特位置表byte lowrate_level3_bitpos_list[]={0xff,0xff,0xff,0x8f,0xff,0xf8,0x8f,0xff,0xf8,0x0f};∥低速率、安全等級等級3時,選用的比特位置表byte lowrate_level4_bitpos_list[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f};∥低速率、安全等級等級4時,選用的比特位置表下面詳細(xì)說明本發(fā)明步驟S230執(zhí)行加密操作的具體方法過程首先,G.723.1的幀大小有三種24字節(jié)(6.4kbit/s幀),20字節(jié)(5.3kbit/s幀)和4字節(jié),其中4字節(jié)幀為SID(靜音插入指示語),三種幀如何間隔沒有限制。其幀的大小通過每幀的頭兩個比特VADFLAG_B0和RATEFLAG_B0反映。其對應(yīng)關(guān)系如表9所示表9 VADFLAG_B0和RATEFLAG_B0與每幀比特數(shù)的對應(yīng)關(guān)系表
因此,可以看出,VADFLAG_B0和RATEFLAG_B0兩位是用來區(qū)別G.723.1的三種幀的,不能加密。
根據(jù)這種幀結(jié)構(gòu)特點,保留每幀幀頭VADFLAG_B0和RATEFLAG_B0是必要的,以此判斷是否屬于靜音幀。
同時,在G.723.1編碼中,由于語音的有效數(shù)據(jù)都包含在每幀24字節(jié)和20字節(jié)的語音幀中,而靜音幀包含的是無效的數(shù)據(jù)量,所以在加密時就不用對靜音幀進(jìn)行加密,這樣可以減少加密的數(shù)據(jù)量。
在本發(fā)明實施例中,如圖8所示;以高速率語音幀、安全等級為1的情況為例進(jìn)行分析說明,此時要加密的字節(jié)序號表選用byte highrate_bytepos_list[],比特位置表選用byte highrate_level1_bitpos_list[]。
其中,高速率語音幀71(一幀24字節(jié))中,斜體帶下劃線表示此字節(jié)有需要加密的位,否則沒有。
數(shù)組72表示長度為12的字節(jié)(byte)型數(shù)組,它的第一項存放的數(shù)據(jù)對應(yīng)于語音幀的第三幀,前四位為1表示語音幀第三幀前四位需要加密,后四位則不需要,依此類推。
數(shù)組keyList[8]73表表Xi小數(shù)點后取64位二進(jìn)制位,生成8字節(jié)的字節(jié)型(byte)型數(shù)據(jù),存入數(shù)組keyList[8]73中。
具體包括如下步驟步驟S231,首先收到語音幀的第一幀,此處經(jīng)判定后假設(shè)為高速率幀,安全等級為1,查找數(shù)組byte highrate bytepos_list[]的第1項為3,說明語音幀的第3字節(jié)有要加密的位;步驟S232,數(shù)組byte highrate_level1_bitpos_list[]的第1項記錄語音幀的第3字節(jié)需要加密的比特位,取出其值11110000,比特位為1說明相應(yīng)語音幀字節(jié)的比特位需要加密,否則不用;步驟S233,將11110000與數(shù)組keyList[](存放生成的64位密鑰流)的第1項相與,得到的結(jié)果與語音幀的第3字節(jié)進(jìn)行異或,結(jié)果送回語音幀第3字節(jié);步驟S234,再查找數(shù)組byte highrate_bytepos_list[]的第2項為4,說明語音幀的第4字節(jié)有要加密的位;步驟S235,數(shù)組byte highrate_level1_bitpos_list[]的第2項記錄語音幀的第4字節(jié)需要加密的比特位,取出其值11111111;步驟S236,與數(shù)組keyList[]的第2項相與,得到的結(jié)果與語音幀的第4字節(jié)進(jìn)行異或,結(jié)果送回語音幀第4字節(jié)。
以此類推,直到將語音幀的第10字節(jié)加密完成,如圖9所示。
步驟S237,當(dāng)語音幀的第11個字節(jié)需要加密時,keyList[]表回到表頭第1項,用此字節(jié)與語音幀第11字節(jié)進(jìn)行異或加密。
如圖10所示,當(dāng)進(jìn)行到步驟S237時,keyList[]的第8個字節(jié)也已用完,當(dāng)語音幀的第11個字節(jié)需要加密時,keyList[]表回到表頭第1項,用此字節(jié)與語音幀第11字節(jié)進(jìn)行異或加密。因為語音幀每一字節(jié)要加密的比特位并不相同,即使keyList[]重復(fù)使用,其中每一次真正使用到的比特位也不盡相同。
步驟S238,向后滑動繼續(xù)加密第12字節(jié),同時,keyList[]表也向后滑動到第2項,byte highrate_bytepos_list[]和byte highrate_level1_bitpos_list[]也向后移動一項;如圖11所示,語音幀第11字節(jié)加密完后,向后滑動繼續(xù)加密第12字節(jié),同時,keyList[]表也向后滑動到第2項,byte highrate_bytepos_list[]和byte highrate_level1_bitpos_list[]也向后移動一項;以此類推,至加密完成語音幀第14字節(jié),此語音幀加密完成,因為第14字節(jié)以后沒有需要加密的字節(jié),如圖12所示。
步驟S239,在當(dāng)前語音幀加密完成后,取下一幀語音幀,判斷是否為靜音幀,如果是靜音幀則不執(zhí)行加密操作,繼續(xù)取下一幀;如果不是靜音幀,則繼續(xù)下一步驟;此時,如圖13所示,keyList[]表從第2項開始使用,與語音幀第1個需要加密的字節(jié)(即字節(jié)3)進(jìn)行異或操作。
后續(xù)操作和上一幀語音幀一樣,語音幀字節(jié)、keyList[]、byte highrate_bytepos_list[]和byte highrate_level1_bitpos_list[]都相應(yīng)向后移動,逐字節(jié)進(jìn)行異或加密。直到keyList[]第8項使用完,回到其表頭第1項,再繼續(xù)和語音幀下一字節(jié)異或加密,直到此語音幀加密完成。
再取下一非靜音語音幀,keyList[]表從第3項開始使用,與上類似和語音幀逐字節(jié)進(jìn)行異或加密,直到此幀加密完成。
再取下一非靜音語音幀,keyList[]表從第8項開始使用,與上類似和語音幀逐字節(jié)進(jìn)行異或加密,直到此幀加密完成。
此時,已加密過8個非靜音幀,keyList[]表作廢,需要更新。利用式(9)G(x)=(β+1)(1+1/β)β×(1-x)β, (9)
對xx(x的當(dāng)前值)進(jìn)行迭代,得到xi+1,取xi+1的小數(shù)點后的64位有效二進(jìn)制位,轉(zhuǎn)換為8個byte型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入數(shù)組keyList[],實現(xiàn)了keyList[]的更新。
繼續(xù)取一幀非靜音幀,keyList[]表從第1項開始使用;繼續(xù)取一幀非靜音幀,keyList[]表從第2項開始使用;繼續(xù)取一幀非靜音幀,keyList[]表從第3項開始使用;重復(fù)上述過程,直至第8次取一幀非靜音幀,keyList[]表從第8項開始使用。
這樣,加密完成8個非靜音幀,對xi進(jìn)行迭代,得到xi+1對keyList[]進(jìn)行更新。以此處理下一個8個非靜音幀。
直到所有語音幀加密完成。
本發(fā)明的語音編碼選擇性加密方法,使用選擇性加密對G.723.1編碼語音進(jìn)行混沌流加密,具有如下優(yōu)點1)提高語音通話的實時性語音編碼選擇性加密方法從以下幾方面提高加密效率A1)對語音幀進(jìn)行選擇性加密,在幀間,僅對攜帶有語音信息的高/低速率幀進(jìn)行加密,對大量的SID幀(靜音幀)不加密;在幀內(nèi),按安全等級的需要,對那些敏感性高的比特位(即對重建語音影響大)進(jìn)行加密。與傳統(tǒng)的對語音媒體內(nèi)容進(jìn)行整體加密相比,這無疑加快加密速度。
A2)使用流加密算法,將明文直接和密鑰流進(jìn)行異或,相比分組算法,此法速度更快。
A3)為了增強(qiáng)安全性,流加密算法中使用的密鑰流為混沌序列,由改進(jìn)的Logistics map映射得到。此法在迭代過程中,計算復(fù)雜度較大,為了減少密鑰流的計算量,結(jié)合G.723.1幀結(jié)構(gòu)所選擇的需要加密部分位置的特點,適當(dāng)?shù)貙煦缑荑€流進(jìn)行重復(fù)使用(具體見實例詳解),而不顯著影響其安全性能。
2)降低系統(tǒng)能耗,減少對資源的占用對語音幀進(jìn)行選擇性加密,使用流加密算法,對混沌密鑰流進(jìn)行適當(dāng)?shù)闹貜?fù)利用,這些措施在提高效率的同時,也可以降低系統(tǒng)能耗,減少占用的資源數(shù)量。降低能耗在一些能源資源十分緊張的應(yīng)用環(huán)境中,如無線通信領(lǐng)域中其移動設(shè)備攜帶能量有限,是非常關(guān)鍵的問題。減少對資源的占用,也可減輕網(wǎng)絡(luò)處理節(jié)點的負(fù)荷。
3)便于滿足不同等級的業(yè)務(wù)需求選擇性加密不僅僅可以從技術(shù)上滿足更好的需求,它在許多互聯(lián)網(wǎng)的業(yè)務(wù)中,也有實際的應(yīng)用價值。比如,提供各類音頻服務(wù)的網(wǎng)站,其語音材料可以以不同的加密強(qiáng)度提供給用戶,如果是免費(fèi)提供給用戶試聽,可以對語音采取某種加密強(qiáng)度,以進(jìn)行模糊處理。諸如此類的許多應(yīng)用,總之,選擇性加密為不同等級的業(yè)務(wù)需求提供了可行性與良好的技術(shù)支持。
以上對本發(fā)明的具體實施例進(jìn)行了描述和說明,這些實施例應(yīng)被認(rèn)為其只是示例性的,并不用于對本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行解釋。
權(quán)利要求
1.一種語音編碼選擇性加密方法,其特征在于,包括下列步驟步驟A,首先進(jìn)行初始化,選擇加密所需安全等級,確定混沌流加密方法的調(diào)節(jié)參數(shù);步驟B,按照幀速率和安全等級確定選用的加密字節(jié)序號表和比特位置表中的參數(shù)的比特位,利用混沌流加密方法執(zhí)行加密操作。
2.根據(jù)權(quán)利要求1所述的語音編碼選擇性加密方法,其特征在于,還包括下列步驟步驟C,解密方接到加密數(shù)據(jù)后,首先進(jìn)行初始化,然后執(zhí)行解密操作。
3.根據(jù)權(quán)利要求1或2所述的語音編碼選擇性加密方法,其特征在于,所述步驟A包括下列步驟步驟A1,用戶選擇加密所需的安全等級;步驟A2,確定混沌流加密方法的調(diào)節(jié)參數(shù);步驟A3,取調(diào)節(jié)參數(shù)中的初始值的有效二進(jìn)制位,轉(zhuǎn)換字節(jié)型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入一數(shù)組作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得密文。
4.根據(jù)權(quán)利要求1或2所述的語音編碼選擇性加密方法,其特征在于,所述步驟B包括下列步驟步驟B1,根據(jù)收到的一幀語音幀的頭兩位,判斷其是高速率幀,低速率幀,還是靜音幀;步驟B2,根據(jù)不同的幀,轉(zhuǎn)到相應(yīng)的步驟進(jìn)行處理如果是高速率幀,則選用高速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟B3;如果是低速率幀,則選用以上低速率相應(yīng)的需要加密的字節(jié)序號表和所需安全等級所對應(yīng)的比特位置表,轉(zhuǎn)到步驟B3;如果是靜音幀,則不需要加密,轉(zhuǎn)回到步驟B1,轉(zhuǎn)而處理下一幀;步驟B3,在按照幀速率和安全等級確定選用的加密字節(jié)序號表和比特位置表后,執(zhí)行當(dāng)前幀的加密操作;步驟B4,完成當(dāng)前幀的加密操作后,如果密鑰流使用完,利用所述混沌流加密方法中的調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,則轉(zhuǎn)回步驟B1,轉(zhuǎn)而處理下一幀。
5.根據(jù)權(quán)利要求2所述的語音編碼選擇性加密方法,其特征在于,所述步驟C包括下列步驟步驟C1,接收控制參數(shù)并解密得到加密安全等級,并解密得到混沌流加密方法的調(diào)節(jié)參數(shù);步驟C2,取調(diào)節(jié)參數(shù)的有效二進(jìn)制位,轉(zhuǎn)換為字節(jié)型數(shù)據(jù),將轉(zhuǎn)換的數(shù)據(jù)存入字節(jié)型數(shù)組作為密鑰流表,用以和語音數(shù)據(jù)流明文要加密的位進(jìn)行異或運(yùn)算,以獲得明文;步驟C3,執(zhí)行當(dāng)前幀的解密操作流程;步驟C4,完成當(dāng)前幀的解密操作后,如果密鑰流使用完,利用調(diào)節(jié)參數(shù)對當(dāng)前混沌序列值進(jìn)行迭代,得到新的密鑰流,更新密鑰流表;如果還有語音幀,轉(zhuǎn)而處理下一幀。
6.根據(jù)權(quán)利要求1或2所述的語音編碼選擇性加密方法,其特征在于,所述混沌流加密方法為Logistics映射的一維非線性迭代方法表征的混沌流加密方法。
7.根據(jù)權(quán)利要求6所述的語音編碼選擇性加密方法,其特征在于,所述Logistics映射的一維非線性迭代方法為改進(jìn)的Logistics地圖一維非線性迭代方法,所述迭代方法如下式所示G(x)=(β+1)(1+1/β)βx(1-x)β其中,β∈(1,4),x0∈(0,1),x的初始值為x0,通過此式迭代可以得到x1,x2,x3,…xn…。
8.根據(jù)權(quán)利要求1或2所述的語音編碼選擇性加密方法,其特征在于,所述步驟B中,按幀速率和加密所需的安全等級確定選用的加密字節(jié)序號表和比特位置表,為確定語音幀中參數(shù)的比特位的敏感性排列順序,以此將比特位分為不同類別,加密不同類別的比特位獲得不同安全等級。
9.根據(jù)權(quán)利要求8所述的語音編碼選擇性加密方法,其特征在于,所述語音編碼為G.723.1標(biāo)準(zhǔn)語音幀的語音編碼。
10.根據(jù)權(quán)利要求9所述的語音編碼選擇性加密方法,其特征在于,所述語音幀中參數(shù)的比特位的敏感性排列順序為五個類,分別為CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,其重要性依次降低。
11.根據(jù)權(quán)利要求10所述的語音編碼選擇性加密方法,其特征在于,當(dāng)安全等級為Level 1時,加密CLASS1中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的48bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的38bit位加密;當(dāng)安全等級為Level 2時,加密CLASS1和CLASS2中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式對語音幀中的62bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的52bit位加密;當(dāng)安全等級為Level 3時,加密CLASS1、CLASS2和CLASS3中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的74bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的64bit位加密;當(dāng)安全等級為Level 4時,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在G.723.1標(biāo)準(zhǔn)語音幀的高速率模式下對語音幀中的86bit位加密;在G.723.1標(biāo)準(zhǔn)語音幀的低速率模式下對語音幀中的76bit位加密。
全文摘要
本發(fā)明公開了一種語音編碼選擇性加密方法,其包括步驟A,首先進(jìn)行初始化,選擇加密所需安全等級,確定混沌流加密方法的調(diào)節(jié)參數(shù);步驟B,按照幀速率和安全等級確定選用的加密字節(jié)序號表和比特位置表中的參數(shù)的比特位,利用混沌流加密方法執(zhí)行加密操作。還可以包括步驟C,解密方接到加密數(shù)據(jù)后,首先進(jìn)行初始化,然后執(zhí)行解密操作。其按安全等級選擇確定需要加密的語音編碼的數(shù)據(jù)位,提高語音通話的實時性,降低系統(tǒng)能耗,滿足不同等級的業(yè)務(wù)需求。
文檔編號H04L9/14GK101059957SQ200710052240
公開日2007年10月24日 申請日期2007年5月24日 優(yōu)先權(quán)日2007年5月24日
發(fā)明者黃本雄, 何娟, 楊軍 申請人:華中科技大學(xué)