2013-11-22 27 views
-1

我試圖在手機上實現安全語音通話。處理步驟如下。如何在AMRNB編碼之前加密PCM數據

上行:用戶 - > PCM數據(16位,8KHz的) - >加密 - > AMRNB編碼 - >網絡 下行:網絡 - > AMRNB解碼 - >解密 - > PCM數據 - >用戶

唯一在這種情況下,我可以進行加密/解密的部分是PCM數據。這是整個手機項目的限制。

下面的事情我都試過了,

  1. 反向PCM數據的位置在頻域中上行之前,如下, PCM - > IFFT - > FFT - 基於某些規則>的反向頻率數據。用這種方法,PCM數據被加擾。但我們不能說安全通話足夠安全。我研究了一些加密算法,如AES,DES,RSA等等,但是在所有這些加密算法中,多字節(至少8)都需要作爲加密的輸入。這裏錯了)但是我認爲這種加密方式在AMRNB編碼和解碼後不能解密。

所以我的問題是,是否有加密算法可以採取16位(在此鑄造PCM數據的一幀)的數據作爲其輸入的明文,以滿足這種情況。

回答

0

即使可以,您也不應該逐個加密每個16位幀;攻擊者可以很容易地蠻力2^16(65536)的可能性。取而代之的是組合4幀並將它們加密在一起。如果您對數據進行加密然後在AMRNB中進行編碼,那麼它不會很好地壓縮加密的語音; AMRNB專爲語音而非加密語音而設計。

+0

是的,16位幀的加密根本不安全。對於AMRNB來說,如果一起加密4幀,在AMRNB編碼和解碼之後,數據不能被解密。但是,如果一個幀加密,我仍然可以在編碼/解碼後將它們(或大部分)解密。我對嗎? – Bin

相關問題