專利名稱:一種用于隱藏通信信道中加密的存在的高效帶寬的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明通常涉及一種用于加密數據的方法與系統(tǒng),更具體地涉及一種用于隱藏通信信道中數據加密的存在,同時有效地分配帶寬的方法與系統(tǒng)。
背景技術:
當今,大規(guī)模的網絡中的業(yè)務流(traffic flows)常常遭到考慮不當的基于政策的機制的“調整”。通常,這種基于政策的業(yè)務(traffic)調整對加密的業(yè)務流是不利的,甚至是對于那些因為沒有加密而沒有被“調整的”業(yè)務流(也是有害的)。此外,在世界上的一些地區(qū),加密的業(yè)務相對于未加密的業(yè)務而言,還會遭到更多帶有侵入性監(jiān)察技術的詳細檢查。事實上,對于,即使加密的業(yè)務是“無害的”,也會僅僅因為加密而引來過度的關注。在現(xiàn)代的互聯(lián)網的許多位置處,尤其是在靠近網絡邊界處,業(yè)務調整技術已經被設計用來自動檢測加密的業(yè)務流,并根據本地政策區(qū)分對待這些業(yè)務流。這類區(qū)別對待實際上可包括丟棄該業(yè)務或者將該業(yè)務放到極低優(yōu)先級的“服務質量”隊列中。除固定報頭信息之外,加密的業(yè)務還具有難以從同等長度的強偽隨機序列中區(qū)分出來的獨特的統(tǒng)計學特性。但是,如果該提及的加密的業(yè)務的時間跨度足夠長,非常均勻的比特(或八位組)分布就會出現(xiàn),這通常會使得該業(yè)務可從非加密的業(yè)務中區(qū)分出來。正是利用這一特性,才讓業(yè)務調整硬件得以識別出加密的業(yè)務流,并在這些流量上應用“政策”。 與加密的業(yè)務流相比,未加密的業(yè)務流具有完全不同的比特(八位組)統(tǒng)計分布??蓪I(yè)務進行一些測試來確定該業(yè)務是否具有加密的業(yè)務的統(tǒng)計學特性。雖然通過這些測試不一定表明存在加密,但所有加密的業(yè)務都會通過這些測試。例如,被壓縮過的業(yè)務流具有難以從那些隨機或者加密的業(yè)務流中區(qū)分出來的長期統(tǒng)計學特性。—組通用的隨機性測試通??梢员砻髟摌I(yè)務是否被加密。如聯(lián)邦信息處理標準 (“FIPS”) 140-2中描述的那組測試,通常只需要4K字節(jié)的業(yè)務流,就能可靠地將看起來隨機的業(yè)務流從看起來非隨機的業(yè)務流中區(qū)分出來。類似地,經過更長時間跨度,試圖用眾多壓縮函數中的任意一種對業(yè)務流的內容進行壓縮,這樣做可以用來將隨機型的業(yè)務流從非隨機的業(yè)務流中區(qū)分出來。例如,試圖壓縮純隨機的業(yè)務流也會產生非壓縮的情況,或者甚至是尺寸膨脹,這取決于使用的壓縮算法。非隨機的業(yè)務流會趨向于中度到高強度的可壓縮。將信息隱藏術用于隱藏秘密業(yè)務已有一些歷史了,用這種方式,只有發(fā)送者和預定的接收者才知道存在著隱藏的信息。因此,很自然地會想到使用信息隱藏技術來將加密的業(yè)務流的隨機比特隱藏到一些看起來沒有進行統(tǒng)計地加密的信息中。建議的是,一些群體(some groups)將加密的信息隱藏在諸如因特網上數字圖像文件之類無害的對象中,把這些用作低帶寬通信技術。現(xiàn)存有多種工具可以通過將音頻、視頻和圖像文件用作信息隱藏術隱藏的信息的“載體”,來有助于隱藏信息的產生。
然而,“傳統(tǒng)”信息隱藏技術的帶寬利用率(bandwidth efficiency)通常非常低, 因為“載體”信息占用了與信息隱藏的對象進行通信的大部分帶寬。在使用此技術時,載體信息與隱藏信息的比例只有100 1或更糟是很常見的。然而,信息隱藏技術的一個好處是,由此產生的數據流具有明顯不均勻的八位組統(tǒng)計特性,這也就意味著這些數據流不大可能會被互聯(lián)網上的自動檢測機制識別為是加密的業(yè)務流。還有一種可能是對加密的比特流進行編碼,從而讓它們看起來像,比如,普通的英文文本。用英文常用字詞典來表示加密文本比特的組合的技術在歷史上已用于隱藏隱含的加密信息的存在。例如,如果考慮四個比特的組,那么這些組就可用作是短詞組英文(或者德文、西班牙文、法文等等)單詞的“索引”。用這些單詞來代替比特序列,并且當接收者遇到詞典中的一個元素時就可簡單地查找到相應的比特序列。這項技術在欺騙(fooling)自動隨機性檢測時相當有效,尤其當這種檢測無法檢測比特到英文的替換映射時或者當這種映射很大時相當有效。隨著隱藏加密的業(yè)務流的編碼系統(tǒng)的發(fā)展,當需要重點考慮帶寬使用效率的時候,問題就出現(xiàn)了。例如,上文描述的系統(tǒng)需要大量的費用來表示4比特的“真實”信息。一般而言,為了表示這4比特的真實信息,就需要傳輸40到50比特數據。很多現(xiàn)存的編碼技術,如電子郵件的ASCII轉換等等,是用來將二進制數據轉換成適合于強約束條件的信道的編碼。這些編碼相對來說具有較好的帶寬利用率 (bandwidth-efficient),會產生30 %的額外帶寬占用?,F(xiàn)在互聯(lián)網上很多協(xié)議使用 Base64編碼的一些變種,Base64編碼將M比特的輸入數據轉換成32比特的輸出數據,該輸出數據在輸出字母表上具有強約束條件。然而,在目前的自動識別機制下,基于Base64 的編碼很容易識別,這就意味著編碼結果很容易被解碼,然后對解碼所得的比特流結果執(zhí)行隨機性分析。降低加密的業(yè)務流的可檢測性的關鍵是降低加密的業(yè)務流的信息密度。加密的數據流看起來(appears to)是強偽隨機序列,這就意味著它具有最大的信息密度,或者說最小的信息冗余。任何能降低每個被傳輸的比特所承載的信息量的技術也就能降低由此產生的業(yè)務流被檢測為強偽隨機序列的可能性,從而減少其被檢測為加密的業(yè)務流的可能性。如Base64這樣的標準編碼減少了每個被傳輸的比特所承載的信息。但由于 Base64太容易被識別,所以它能夠被解碼,然后對由此產生的比特序列執(zhí)行隨機性分析。所以需要這樣一種編碼的系統(tǒng)和方法,它在降低業(yè)務流的信息密度的同時,還能降低檢測該編碼方案的可能性,從而該業(yè)務不被檢測為是加密的,并且也通過編碼方案的檢測來對該業(yè)務進行分析。
發(fā)明內容
本發(fā)明有利地提供了一種方法及系統(tǒng),該方法及系統(tǒng)用于隱藏通信網絡中數據被加密的業(yè)務的存在,從而使該業(yè)務不被識別為是加密的,并且也不基于編碼方案的檢測來對該業(yè)務進行分析。一般說來,進一步根據Base64編碼方案對加密的數據進行編碼,該編碼方案用到的字母組是根據一組加密密鑰偽隨機生成的。有利地,編碼用的字母表實際上是未知的。根據本發(fā)明的一個方面,提出一種隱藏通信網絡中數據加密的存在的方法。通過將一組加密密鑰用作偽隨機序列函數的輸入來生成一組字符。每個字符與索引值對應。加密的數據被分成多個部分。每部分又被劃分為多個組,且通過根據對應的索引值將每組數據映射到上述字符組中的字符的方式來被編碼。被映射的字符通過通信網絡來進行傳輸。根據本發(fā)明的另一方面,一種用于隱藏數據加密的存在的網絡接口,包括控制器和通信接口。通信接口被通信地連接到控制器。通過將一組加密密鑰用為偽隨機序列函數的輸入,控制器可操作來生成一組字符,每個字符與索引值對應??刂破鬟M一步可操作來將加密的數據分成多個部分,并將每部分分成多個組,并且通過根據對應的索引值將多個組中的每個組映射到上述字符組中的字符的方式,對每部分進行編碼。通信接口還可操作來通過通信網絡來傳輸映射的字符。還根據本發(fā)明的另一方面,隱藏通信網中數據加密的存在的系統(tǒng),包括第一網絡接口和第二網絡接口。通過將一組加密密鑰用作偽隨機序列函數的輸入,第一網絡接口可操作來生成一組字母表字符,每個字符元素與索引值對應。第一個網絡接口進一步可操作來將加密數據分成多個部分,并將每部分分成多組,并且通過根據對應的索引值將多個組中的每個組映射到上述字符組中的字符的方式來被編碼。第一網絡接口通過通信網絡來傳輸映射的字符。第二網絡接口可操作來接收加密的數據信息。加密的數據信息包括映射的字符。第二網絡接口可操作來將加密的數據信息分成多組字符,將每個字符映射成其對應的索引值來再現(xiàn)所述多個部分,并且對多個部分的每部分進行解密。
參照以下的詳細描述和附件中的圖表,更容易完全理解本發(fā)明,從而更完全理解其優(yōu)勢特點。圖1是根據本發(fā)明原理構造的典型數據加密隱藏系統(tǒng)的方框圖。圖2是根據本發(fā)明原理構造的典型數據編碼器的方框圖。圖3是根據本發(fā)明原理的典型數據加密隱藏處理的流程圖。圖4是根據本發(fā)明原理的數據加密隱藏中存在的典型譯碼處理的流程圖。
具體實施例方式在詳細描述根據本發(fā)明的典型實施例之前,需要注意的是,本發(fā)明實施例主要涉及設備組件及處理步驟的結合,其中處理步驟與一種用于實現(xiàn)弱化通信信道中數據加密特性且同時高效利用信道帶寬的系統(tǒng)及方法有關。相應地,該系統(tǒng)及方法組件在適當的位置通過附圖中的常規(guī)符號表示。為了使對本領域的普通技術人員來說明顯具有在本文中描述的益處的細節(jié)公開清楚,只顯示了那些對恰當理解本發(fā)明的實施例有關的具體細節(jié)。在這里,諸如“第一”、“第二”,“頂部”、“底部”之類的相關術語,僅僅是用來將一個實體或者元件與另一個實體或者元件區(qū)別開來,而不一定要求或暗指這些實體或者元件之間任何物理或邏輯關系或者順序。相應地,如這里及所附權利要求中使用的,術語 “Zigbee”,指的是一組由IEEE 802. 15. 4標準定義的無線通信上層協(xié)議。還有,“Wi-Fi”指的是由IEEE802. 11標準。術語"WiMAXlgfi IEEE802. 16標準定義的通信協(xié)議。“BLUETOOTH” 指由藍牙技術聯(lián)盟開發(fā)的,用于無線個人區(qū)域網(“PAN”)通信的工業(yè)規(guī)范。本發(fā)明的一個實施例有利地提供了一種系統(tǒng)和方法,該系統(tǒng)和方法用于對加密的數據流進行編碼這樣的方式來避免包括FIPS 140-2隨機檢測的各種類型隨機檢測的自動識別。另一個實施例在于針對一些已知的攻擊方法對編碼方式進行了強化,這包括使用變量模糊編碼機制?,F(xiàn)在參看附圖,附圖中相同的引用指示符表示相同的元件。圖1中所示的是典型數據加密隱藏系統(tǒng)10。系統(tǒng)10包括通過廣域網(“WAN”) 16與第二客戶端計算機14通信的第一客戶端計算機12。廣域網16可以包括因特網、局域網或者其他通信網絡。客戶端計算機12,14可以包括個人計算機、筆記本、個人數字助理(“PDA”)、服務器、手機等等。每個客戶端計算機12,14通過WAN接口 18a,18b (這兩個接口總稱為WAN接口 18)在WAN16 上傳輸數據。盡管圖1中的通信網絡被標為WAN,但是本發(fā)明的原理還可以應用于其他形式的通信網絡,如個人區(qū)域網(“PAN”),本地局域網(“LAN”),校園網(“CAN”),市域網 (“MAN’)等等。此外,盡管圖1中只示出兩個客戶端計算機,但這種設置僅僅是為了示范。 比如,系統(tǒng)10可以包括多個WAN接口 18。WAN接口 18能與各種類型的客戶端設置通信,比如路由器,交換機等等。再有,WAN接口 18可以是一個單獨的設備,也可以被嵌入來作為其他資源設備中的一部分,比如客戶端計算機12,14。每個WAN接口 18根據一個或者多個已知的加密方式對來自客戶端計算機12,14 的數據進行加密。WAN接口 18包括下面討論的加密隱藏器,該加密隱藏器的作用是通過使用具有隨機生成字母表的Base64編碼方案,而不是通過使用通常涉及單個已知字母表的使用的標準Base64編碼來對加密的數據進行編碼,從而隱藏數據已被加密的事實(fact)。 每一個WAN接口 18同時也具有反向功能,憑借該反向功能,WAN接口 18可通過WAN16來接收Base64編碼的和加密的數據幀,然后用隨機生成的字母表對這些數據幀進行解碼和解密,從而匹配最初從客戶端計算機12,14發(fā)出的數據。盡管圖1中的每個WAN接口 18都被示出連結到一臺客戶端計算機12,14,但是根據本發(fā)明原理構建的典型WAN接口 18可以支持多臺客戶端計算機12,14,這種實現(xiàn)方式并不超出本發(fā)明的范圍?,F(xiàn)在參考圖2,典型的WAN接口 18包括通信地連接到控制器22的通信接口 20。通信接口 20可以是有線的、無線的或者它們的任何組合。通信接口 20在WAN接口 18與其它廣域網16資源之間使用已知的通信協(xié)議,如以太網,Wi-Fi,WiMAX,BLUET00TH等,來傳輸數據包。通信接口可以包括任何數量的通信端口??刂破?2控制信息處理和WAN接口 18的操作來實現(xiàn)這里描述的功能??刂破?2 還與非易失性存儲器M連接。非易失性存儲器M包括數據存儲器沈和程序存儲器觀。 程序存儲器觀包含加密隱藏器30,用來隱藏數據已被加密的事實,以免被連接到WAN16上的其他實體自動檢測出來,該操作會在下面詳細討論。加密隱藏器30包括字母表生成器32 和Base64編碼器34,字母表生成器32能從標準的256個合適ASCII字符中隨機生成64個字符的Base64字母表組,Base64編碼器34根據使用生成的Base64字母表的Base64編碼方案來對加密的數據進行編碼。數據存儲器26存儲數據文件,比如查詢表36和一組加密密鑰38,查詢表36可使得Base64字母表組與對應的ASCII字符集相互關聯(lián),加密密鑰38 會在傳輸任何用戶數據之前,在WAN接口 18與諸如客戶端計算機14之類的目標資源之間傳遞。除上述應該注意到的結構外,每個WAN接口 18還可能包括需要實現(xiàn)WAN接口 18 的其它功能的額外的、可選的結構(未在圖上顯示)。
在使用Base64編碼方式時,通常使用單個標準的字母表來將輸入的三段八位組轉換成輸出的四段八位組,這樣做的一個偶然的副作用就是有效地降低了信息密度。這些編碼就被設計通過不能傳輸上述數據的“信道”來獲得任意二進制數據。RFC-822電郵就是這種信道的一個例子。在Base64方案中,需要從所有合適的ASCII字符集中選擇一個含有64個可打印字符的集合來作為“編碼字母表”。編碼字母表有一些變種,但其中只有一到兩種比較常用。 對編碼二進制數據(或者加密數據、隨機數據)來說,重要的是考慮與選擇合適的字母表相關的組合數學(combinatorics)。等式(1)給出了從一個由256個字符(8比特的ASCII或 UTF-8)組成的域中選出64個字符的字母表可能的總數P = K ! /n ! (K ! -η ! ),(1)其中K是備選八位組的總數,例如256,η是選出的字符集包含的元素個數,例如 64。如果已知上述參數,那么從256個合適的字節(jié)值組成的域中選出64個字符組成字母表,共有大約IO61種選法。如果從信息論的視角考慮編碼方案,由此產生的編碼是否能產生純可打印的ASCII字符完全不重要。重要的是由此產生的編碼降低了由此產生的業(yè)務流中的信息密度。任何一種將M比特三段數據擴展成32比特四段的編碼,對于降低由此產生的流中的信息密度來說都足夠了。在實施本發(fā)明的時候,讓人迷惑的是創(chuàng)建小數量的字母表,可能小到只有一個非 Base64字母表元素的成員,然后用這樣的字母表對加密的業(yè)務流進行編碼。但任何這樣的方案的問題立刻就會突顯出來單個的,固定的字母表和Base64編碼方案一樣容易被“對手”解碼。必須假定“對手”知道這種編碼方案所用的字母表,并進而如上所述像處理Base64 編碼的方式那樣對它們進行處理。因此,本發(fā)明的實施例字母表34是動態(tài)選擇的,例如,在生成一個長加密的業(yè)務流期間,使用靜態(tài)字母表的流會有更高的可檢測性。此外,大多數加密通信會話在創(chuàng)建之初就會建立密鑰材料,如密鑰38,以便為下面的加密“封包”過程提供共享的加密和完整密鑰。 因為加密的信道一旦建立,密鑰38會被通信雙方共享,所以一些密鑰材料會被用來幫助選擇動態(tài)編碼字母表;34?,F(xiàn)在參考圖3,圖中展示了一個操作流程圖示例,該操作流程圖描述了加密隱藏器 30隱藏數據加密的存在而執(zhí)行的示范步驟。該流程始于WAN接口 18判定加密的數據可以傳輸時(步驟S102)。加密的數據可以加密或未經加密的形式來從客戶端計算機12處接收。在接下來的例子中,WAN接口 18可根據已知的加密方法對數據進行加密。WAN接口 18通過通信接口 20初始化與目標設備進行安全通信會話(步驟S104)。 作為安全通信會話初始化的一部分,WAN接口 18要與目標設備交換密鑰材料(步驟S106), 例如,加密密鑰38。加密密鑰38被用來產生從更寬泛的、256個元素的域中,比如ASCII字符的全集中,挑選出來的64個元素的單個偽隨機選取的字母表(步驟S108)。任何強大的隨機數生成器都能被用來生成共享的編碼字母表,但為了提高通用性,就是使用標準的、強加密的偽隨機函數,以便通信雙方獲得相同的加密字母表。標準請求注解(“RFC”)4615中描述了一種合適的算法,在該算法中,偽隨機函數(“PRF”)的輸出是PRF下一次調用(next call)的鏈式變量,并且需要的密鑰K是從會話初始化時的共享密鑰材料中取得的。表1中給出了偽代碼的例子。
char alphabet[64]
權利要求
1.一種隱藏通信網絡中數據加密的存在的方法,所述方法包括通過將一組加密密鑰用作偽隨機函數的輸入的方式來生成一組字符,每個所述字符與索引值對應;將加密的數據劃分成多個部分; 將每部分劃分成多個組;通過根據對應的索引值將每個組映射為所述字符組中的字符的方式,對每部分進行編碼;并且通過通信網絡來傳送映射的字符。
2.根據權利要求1所述的方法,其中所述字符組包括64個字符。
3.根據權利要求2所述的方法,其中所述64個字符是偽隨機地從256個ASCII字符全集中選出。
4.根據權利要求1所述的方法,還包括偏倚生成所述字符組,使得將ASCII控制字符選為字符組元素的可能性降低。
5.根據權利要求1所述的方法,還包括偏倚生成所述字符組,使得將一組字符選為字符組元素的可能性提高。
6.根據權利要求1所述的方法,其中部分指三段8位組,每組具有6比特。
7.根據權利要求1所述的方法,還包括 生成多個字符組;并且用不同的字符組來對連續(xù)的部分進行編碼。
8.根據權利要求7所述的方法,其中字符組到部分的分配是偽隨機選取的。
9.根據權利要求8所述的方法,其中偽隨機函數來選擇字符組到部分的分配,所述偽隨機函數用來生成字符組。
10.根據權利要求1所述的方法,還包括接收編碼的數據信息,所述編碼的數據信息包括所述字符組中的字符; 將所述編碼的數據信息分成多組字符; 將每個字符映射成它對應的索引值,以再現(xiàn)多個部分;并且對所述部分的每部分進行解密。
11.一種隱藏數據加密的存在的網絡接口,所述網絡接口包括 控制器,可操作來通過將一組加密密鑰用作偽隨機函數的輸入的方式生成一組字符,每個字符與索引值對應;將加密的數據分成多個部分; 將多個部分的每個部分劃分成多個組;并且通過根據對應的索引值將多個組中的每個組映射成字符組中的字符的方式,對每部分進行編碼;并且通信地連接到控制器的通信接口,所述通信接口可操作來通過通信網絡傳輸映射的字符。
12.根據權利要求11所述的網絡接口,其中部分指的是三段八位組,每個組含有六個比特。
13.根據權利要求12所述的網絡接口,其中所述64個字符的是從256個ASCII字符全集中偽隨機選取的。
14.根據權利要求11所述的網絡接口,其中控制器還可操作來偏倚生成字符組,使得 ASCII控制字符被選為所述字符組元素的可能性降低。
15.根據權利要求11所述的網絡接口,其中控制器還可操作來偏倚生成字符組,使得一組字符被選為所述字符組元素的可能性提高。
16.根據權利要求11所述的網絡接口,其中控制器還可操作來 生成多個字符組;并且用不同的字符組對連續(xù)的部分進行編碼。
17.根據權利要求16所述的網絡接口,其中字符組到部分的分配是固定的。
18.根據權利要求16所述的網絡接口,其中字符組到部分的分配是偽隨機地選取的。
19.根據權利要求11所述的網絡接口,其中通信接口還可操作來接收編碼的數據信息,所述編碼的數據信息包括所述字符組中的字符;并且其中控制器還可操作來 將編碼的數據信息分成多組字符; 將每個字符映射成它對應的索引值,以再現(xiàn)多個部分;并且對所述多個部分的每個部分進行解密。
20.一種用于隱藏通信網絡中數據加密的存在的系統(tǒng),所述系統(tǒng)包括 第一網絡接口可操作來通過將一組加密密鑰用作偽隨機函數的輸入的方式生成一組字母表字符,每個字符與索引值對應;將加密的數據劃分為多個部分; 將每部分劃分成多個組;通過根據對應的索引值將多個組中的每組映射成字符組中的字符的方式,對每部分進行編碼;并且通過網絡傳輸映射的字符;并且第二個網絡接口可操作來接收編碼的數據信息,該編碼的數據信息包括映射的字符; 將編碼的數據信息分成多組字符;將每個字符映射成其對應的索引值,從而再現(xiàn)多個部分;并且對多個部分的每部分進行解密。
全文摘要
本發(fā)明提出了一種隱藏通信網絡中數據加密的存在的系統(tǒng)、方法和網絡接口。通過將一組密鑰用為偽隨機函數的輸入來生成一組字符。每個字符與索引值對應。加密的數據被分成多個部分。每部分又被分成多個組。通過根據對應的索引值來將所述組映射成所述字符組中的字符的方式,對所述多個組中的每個組進行編碼。映射后的字符通過通信網絡來傳輸。
文檔編號H04L9/28GK102282798SQ200980154699
公開日2011年12月14日 申請日期2009年12月3日 優(yōu)先權日2008年12月29日
發(fā)明者馬庫斯·D·里奇 申請人:北電網絡有限公司