HW-F加密算法

針對(duì)現(xiàn)有加密方法實(shí)現(xiàn)復(fù)雜、資源消耗大、僅適用于特定場(chǎng)合的弊端,一種適合于實(shí)時(shí)數(shù)據(jù)傳輸、易實(shí)現(xiàn)、安全系數(shù)較大、能在非高安全度環(huán)境下使用的輕量級(jí)的加密算法——HW-F加密算法應(yīng)運(yùn)而生,接下來,我就來給大家簡單介紹一下這種加密算法。

HW-F加密算法

一、HW-F加密算法的核心思想

HW-F加密算法的核心思想是“一次一密”,改變了以往的加密算法以算法復(fù)雜度提供安全性和算法固定的特點(diǎn)。

該加密算法以數(shù)據(jù)包為單位,加密每個(gè)數(shù)據(jù)包時(shí)算法都變化一次,以算法的不斷變化提供的“一次一密”特性來代替加密算法的復(fù)雜度提供的安全性,這對(duì)VoIP音頻數(shù)據(jù)包的傳輸尤其有意義。因?yàn)楦鶕?jù)RFC1889中關(guān)于RTP協(xié)議的介紹(RTP是基于UDP或TCP的VoIP傳輸?shù)幕緜鬏攨f(xié)議,目前幾乎所有運(yùn)營商所用的VoIP傳輸協(xié)議都是RTP協(xié)議或它的修改),在每個(gè)VoIP數(shù)據(jù)包中都有協(xié)議部分,包含有重要的PT、SEQ、TimeStamp以及SSRC等關(guān)鍵字(在標(biāo)準(zhǔn)協(xié)議中總共是12字節(jié),各字段的詳細(xì)含義請(qǐng)參照文獻(xiàn)[2-4]),給這些數(shù)據(jù)文件加密是抵御黑客插音、干擾、重放攻擊等影響VoIP運(yùn)營的關(guān)鍵所在。

二、HW-F加密算法的特點(diǎn)

HW-F加密算法在每個(gè)數(shù)據(jù)包中都包含了變化算法的完整參數(shù),且這些參數(shù)沒有前后關(guān)聯(lián)性,因而非常適合VoIP這種丟包率較大的應(yīng)用場(chǎng)合(目前最好的VoIP音頻編碼算法甚至能容忍30%的丟包率),而在該場(chǎng)合中,有些序列密碼是不適用的,很多序列密碼需要收發(fā)雙方的嚴(yán)格同步。

HW-F加密算法本質(zhì)上也是一種數(shù)輪迭代算法,但不同的是每輪的算法都是不固定的。該算法在每輪預(yù)置的包含n種小算法的算法庫中臨時(shí)選擇一種小算法,總的算法就是每輪選擇的小算法之和。根據(jù)排列組合的原理,經(jīng)過m輪之后,所有各輪算法之和即總的算法就可能有nm種。配以適當(dāng)?shù)牟呗?,可以使這種組合的數(shù)量進(jìn)一步大幅增長,并且對(duì)每一個(gè)數(shù)據(jù)包的加密都能從這些算法的組合中選擇一種,從而達(dá)到近似“一次一密”的能力。另外,因?yàn)槊恳惠喫惴ǘ純H僅是一種小算法,所以可以大大提高算法的加解密速度。

HW-F加密算法在上述特點(diǎn)的基礎(chǔ)上,不需要密鑰的協(xié)商、分配和安全傳送部分,大大降低了實(shí)現(xiàn)的難度,簡化了算法的實(shí)現(xiàn)復(fù)雜度,節(jié)約了實(shí)現(xiàn)、維護(hù)的成本,可充分滿足商業(yè)實(shí)現(xiàn)的各項(xiàng)要求。

三、HW-F加密算法的加密過程

因?yàn)槟壳霸谖覈腣oIP實(shí)際運(yùn)營中,都是通過專門的媒體網(wǎng)關(guān)實(shí)現(xiàn)互聯(lián)互通,可以不考慮運(yùn)營商之間的算法兼容性問題。加密算法每一輪由如下元素構(gòu)成:

HW-F加密算法

式中 _Ej表示算法的第 j 輪的算法庫;算法庫的大小n可以按照具體的算法進(jìn)行取值;Pjd表示一個(gè)指針,指針指到的算法才是該輪采用的算法;Dj表示指針的偏移距離,在加密一條流之前,Dj與該輪的密鑰Kj(1≤j≤m,m表示輪數(shù))進(jìn)行有限域n內(nèi)的加運(yùn)算??偟乃惴ńY(jié)構(gòu)如圖所示:

HW-F加密算法

圖中,明文數(shù)據(jù)M共經(jīng)歷了m輪運(yùn)算,每輪運(yùn)算的計(jì)算過程為該輪的指針初始偏移距離Dj與該輪的密鑰Kj 在有限域n內(nèi)相加,得出偏移距離jD,指針Pj根據(jù)jD指示的數(shù)值在算法庫中找到算法fi(i=Di),然后采用該算法與明文M進(jìn)行計(jì)算,該輪的偏移距離Dj被永久地更改為iD,經(jīng)過m輪之后,得出最后的密文Mm,并且所有輪的偏移距離都被更新;Kci是一個(gè)隨機(jī)數(shù),其用途是作為次密鑰,每個(gè)數(shù)據(jù)包都傳遞次值,每個(gè)數(shù)據(jù)包都不同。

需要指出的是,偏移距離D本質(zhì)上就是密鑰,稱為密鑰D。密鑰D與密鑰K相加得出某一輪要選擇的算法,并用該相加值對(duì)D進(jìn)行更新,密鑰K在會(huì)話過程中傳遞而D不傳遞;密鑰D有一個(gè)初始值,該初始值應(yīng)固化在軟件或硬件中,或伴隨軟件硬件的售出而分發(fā),不同的客戶端初始值不同,決定了對(duì)于不同的客戶端,即便采用相同的密鑰K,最終選擇的算法不一樣,加密結(jié)果也不一樣??蛻舳撕头?wù)器端需要同時(shí)存儲(chǔ)初始密鑰D和不斷被更新的密鑰D′,一旦出現(xiàn)密鑰D′不同步的情況,需要利用初始密鑰D重置。

由上可以看出,每次用來選擇算法的密鑰其實(shí)是初始密鑰D和之前所有傳送過的密鑰K在有限域n上的總和,因此攻擊者即便截獲了當(dāng)前的密鑰K,因?yàn)殡y以獲知初始密鑰D和之前所有傳送過的密鑰K,因而也無法解析密文,從而免去了保障密鑰安全傳送的考慮。

因?yàn)槊荑€K比較大,所以在每次會(huì)話中只在會(huì)話建立階段傳遞一次,即在會(huì)話開始時(shí)從每個(gè)算法庫中采用何種算法就已確定。為了保證在每個(gè)數(shù)據(jù)包中都采用不同的算法,還可以在每個(gè)數(shù)據(jù)包的負(fù)載中設(shè)置一個(gè)次密鑰Kc,該密鑰用來決定在已經(jīng)確定的算法組合中,那一輪真正參與加密當(dāng)前數(shù)據(jù)包的運(yùn)算。例如在8輪的算法中,數(shù)據(jù)包包含的次密鑰Kc如果為00101101(二進(jìn)制),則表示經(jīng)過密鑰K和D的選擇之后,真正參與當(dāng)前數(shù)據(jù)包加密的只有第3、5、6、8輪算法,從而保證了每個(gè)數(shù)據(jù)包的算法都不一致。當(dāng)然,在實(shí)際應(yīng)用中,輪數(shù)應(yīng)該足夠多,以避免選擇重復(fù)的情況出現(xiàn)。

對(duì)算法輪數(shù)的選擇要求如下:

(1) 為保證算法的隨機(jī)性,輪數(shù)要足夠多;

(2) 因?yàn)槊?輪用一個(gè)字節(jié)表示取舍,所以輪數(shù)應(yīng)是8的整數(shù)倍;

(3) 因?yàn)槊總€(gè)數(shù)據(jù)包都要傳送屬于自己的Kc,因此Kc不宜過長,以避免增加額外的帶寬;

(4) Kc應(yīng)是隨機(jī)的。

最后,算法庫中的算法可以是任意簡單的小算法,甚至可以僅僅是與某個(gè)數(shù)異或的算法。但算法的分組長度應(yīng)至少為4字節(jié),從而能夠覆蓋RTP協(xié)議中4字節(jié)長度的標(biāo)志位。

四、HW-F加密算法性能分析

下面我們以采用64 bit分組、32輪的HW-F加密算法為例來說明其性能。假設(shè)每輪算法庫中都有259個(gè)小算法,每個(gè)小算法都與某個(gè)數(shù)進(jìn)行異或(每個(gè)數(shù)都是0~264數(shù)中的隨機(jī)一個(gè),且不重復(fù),正好平均地分布在32輪算法中)。

1、HW-F加密算法的安全性分析

(1)HW-F加密算法采用32輪,在密鑰Kc的取舍作用下,從理論上講,經(jīng)歷每232個(gè)包算法才能重復(fù)一次,而這么多的包需要一次通話11 930 h(G.729編碼算法、1幀/包)~71 582 h (G.723.1編碼算法、2幀/包) 才有可能重復(fù),因此隨機(jī)性較好。

(2)攻擊者即便知道了密鑰庫中的算法、密鑰K和密鑰Kc,因?yàn)椴恢辣C艿拿荑€D和之前的所有密鑰,因此仍然不能對(duì)明文進(jìn)行解密。

(3)因?yàn)閷?shí)際使用的密鑰是密鑰K和密鑰D的和,而密鑰D是初始密鑰和之前所有會(huì)話密鑰的總和,因此僅截獲當(dāng)前的密鑰并不能對(duì)數(shù)據(jù)進(jìn)行解密,所以無需考慮密鑰安全傳送問題,HW-F加密算法安全性大大增加。

(4)每輪2的59次方個(gè)小算法,一共32輪,每輪不重復(fù),因此理論上講64 bit的分組可以隨機(jī)地與0~264中的任意數(shù)異或。

(5)即便是對(duì)于同樣的明文采用完全相同的密鑰K和密鑰Kc,算法的組合仍然不同,因此得到的密文也不相同,有利于掩蓋明文的統(tǒng)計(jì)特性。

(6)在RTP協(xié)議中,最長的標(biāo)志字段是4字節(jié)且不變化,因此為了增加安全性,應(yīng)采用64 bit以上長度的分組。

2、HW-F加密算法的易實(shí)現(xiàn)性

(1) HW-F中的小算法可以由用戶自定義,且HW-F的結(jié)構(gòu)決定了用戶無須太在意算法的復(fù)雜性和數(shù)學(xué)理論,可以自由地定義簡單易行的小算法(可以是異或、位移等一步完成的小算法)。

(2)簡單的小算法運(yùn)算量小、速度快,相比于目前的以分組密碼算法結(jié)合密鑰分配或協(xié)商為基礎(chǔ)的方法來講,計(jì)算復(fù)雜度大幅下降,因此對(duì)它們實(shí)現(xiàn)加解密不必但心系統(tǒng)性能的下降。

(3)因?yàn)椴槐負(fù)?dān)心密鑰的安全傳送問題,可簡化系統(tǒng)構(gòu)成,使其能夠成為商業(yè)運(yùn)營所能接受的VoIP加密算法。

(4)實(shí)現(xiàn)加密算法,每個(gè)數(shù)據(jù)包只需增加幾個(gè)字節(jié)(次密鑰),增加的字節(jié)數(shù)對(duì)帶寬的額外消耗非常小。

(5)算法的每個(gè)數(shù)據(jù)包變化一次,包與包的算法之間沒有關(guān)聯(lián)性,因此適用于丟包較大的VoIP的應(yīng)用場(chǎng)合。

綜上所述,HW-F加密算法算法具有較好的安全性,實(shí)現(xiàn)復(fù)雜度小、成本低,系統(tǒng)性能消耗小、抗丟包,易于后期維護(hù)。

小知識(shí)之VoIP

VoIP(Voice over Internet Protocol)簡而言之就是將模擬信號(hào)(Voice)數(shù)字化,以數(shù)據(jù)封包(Data Packet)的形式在IP網(wǎng)絡(luò)(IP Network)上做實(shí)時(shí)傳遞。VoIP最大的優(yōu)勢(shì)是能廣泛地采用Internet和全球IP互連的環(huán)境,提供比傳統(tǒng)業(yè)務(wù)更多、更好的服務(wù)。VoIP可以在IP網(wǎng)絡(luò)上便宜的傳送語音、傳真、視頻、和數(shù)據(jù)等業(yè)務(wù),如統(tǒng)一消息業(yè)務(wù)、虛擬電話、虛擬語音/傳真郵箱、查號(hào)業(yè)務(wù)、Internet呼叫中心、Internet呼叫管理、電視會(huì)議、電子商務(wù)、傳真存儲(chǔ)轉(zhuǎn)發(fā)和各種信息的存儲(chǔ)轉(zhuǎn)發(fā)等。