范 晶,賈旭光
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083)
目前,在地面數(shù)字電視廣播、網(wǎng)絡(luò)視頻監(jiān)控及無(wú)線圖像傳輸?shù)榷鄠€(gè)領(lǐng)域,視頻圖像往往采用明文的方式進(jìn)行傳播,并且現(xiàn)有大部分視頻傳輸標(biāo)準(zhǔn)均為公開(kāi)標(biāo)準(zhǔn),一旦傳輸信號(hào)被截獲,很容易將視頻信號(hào)解調(diào)出來(lái),存在嚴(yán)重的泄密隱患。 針對(duì)此現(xiàn)狀,本文提出了一種視頻流加密方法,該方法不破壞視頻流原有的傳輸流(Transport Stream,TS)包結(jié)構(gòu),兼容現(xiàn)有傳輸系統(tǒng)。 同時(shí),結(jié)合現(xiàn)在的AES 和SM4 等對(duì)稱(chēng)加密算法的特點(diǎn),引入無(wú)線通信中常用的交織技術(shù),提出了新型的密鑰分發(fā)管理機(jī)制和改進(jìn)型OFB 加密工作模式。 密鑰分發(fā)和加密單元中交織器的引入,以較低的硬件成本大大提升了加密強(qiáng)度。本文提出的視頻流加密方法,具有簡(jiǎn)單高效、無(wú)需填充、協(xié)議開(kāi)銷(xiāo)小、易于FPGA、ARM 等硬件實(shí)現(xiàn)等諸多優(yōu)點(diǎn),可廣泛用于上述視頻傳輸系統(tǒng)中。
本文提出了改進(jìn)型OFB 工作模式,介紹了新型密鑰分發(fā)機(jī)制的實(shí)現(xiàn)方式,然后以地面數(shù)字多媒體廣播(Digital Terrestrial Multimedia Broadcast,DTMB)系統(tǒng)為例,詳細(xì)描述了視頻流加密方法的具體實(shí)施過(guò)程,最后與普通模式進(jìn)行了性能對(duì)比。
地面數(shù)字電視和網(wǎng)絡(luò)視頻傳輸視頻圖像多采用以MPEG-2 或H.264 編碼的TS 流。 常用的商用對(duì)稱(chēng)加密算法為高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)和我國(guó)提出的SM4。 為解決視頻流明文傳輸?shù)娜毕荩延胁簧傺芯咳藛T提出了自己的視頻流加密方案。如在一專(zhuān)利中提出,將TS 流切割成n 個(gè)視頻塊,每個(gè)視頻塊長(zhǎng)度固定為188 B 和長(zhǎng)度值的最小公倍數(shù),各個(gè)視頻塊獨(dú)立并行加密[1]。 該專(zhuān)利提出的方案破壞了TS 流原有每個(gè)包188 B 結(jié)構(gòu),加密后的密文不適用于現(xiàn)有的數(shù)字視頻廣播(Digital Video Broadcasting,DVB)、DTMB 等地面數(shù)字電視傳輸系統(tǒng),并且對(duì)不滿足長(zhǎng)度部分進(jìn)行填充,降低了傳輸效率。 針對(duì)流加密,也有提出使用線性反饋移位寄存器(Linear Feedback Shift Register,LFSR)進(jìn)行加解密的系統(tǒng)[2],LFSR 受限于M 序列本原多項(xiàng)式,生成的密碼流雖然隨機(jī)性強(qiáng),但模式不多,相比AES 和SM4 加密算法極易破解。 本文充分分析了TS 包的結(jié)構(gòu)特點(diǎn),結(jié)合現(xiàn)有加密算法,在不破壞原有結(jié)構(gòu)的基礎(chǔ)上進(jìn)行加密,加密后的密文仍適用于復(fù)用器及數(shù)字電視等傳輸系統(tǒng)。
TS 流(傳輸流)是一種用于存儲(chǔ)和傳輸音視頻數(shù)據(jù)的標(biāo)準(zhǔn)格式,被廣泛應(yīng)用于數(shù)字電視廣播系統(tǒng)DVB、DTMB 中。 現(xiàn)有無(wú)線圖像傳輸系統(tǒng)大多采用TS 流作為傳輸單元。 TS 包為T(mén)S 流的基本單元,每包包含188 B,由4 B 的包頭和184 B 的數(shù)據(jù)負(fù)荷組成。 包頭包含1 個(gè)同步字節(jié)的頭十六進(jìn)制47、13 bit 的包標(biāo)記符(Packet IDentifier,PID)、4 bit 的 包 連 續(xù) 計(jì) 數(shù) 等 字 段[3]。 同 步 頭 用于同步TS 流,PID 用于區(qū)分TS 流中不同類(lèi)型的數(shù)據(jù)包(如視頻音頻包),TS 流中同類(lèi)型包,PID 相同,但包連續(xù)計(jì)數(shù)域數(shù)值會(huì)依次從0 到15 累加。 本文設(shè)計(jì)的加密系統(tǒng)利用PID 和包連續(xù)計(jì)數(shù)作為地址對(duì)不同的密鑰進(jìn)行索引,實(shí)現(xiàn)不同的TS 包采用不同的密鑰加密,相同類(lèi)型的TS 包采用16 個(gè)密鑰進(jìn)行輪換加密,增加加密的可靠性。
現(xiàn)代密碼根據(jù)加解密所用密鑰分為非對(duì)稱(chēng)加密算法和對(duì)稱(chēng)加密算法兩類(lèi)。 非對(duì)稱(chēng)加密算法加解密使用不同的密鑰,多采用橢圓曲線算法,加密結(jié)構(gòu)復(fù)雜,常用于數(shù)字簽名和用戶認(rèn)證;對(duì)稱(chēng)加密算法加解密使用同樣的密鑰,具有計(jì)算量小、加密運(yùn)算單元簡(jiǎn)單易于硬件實(shí)現(xiàn)等優(yōu)點(diǎn),常用于加密高速數(shù)據(jù)流。 常見(jiàn)的對(duì)稱(chēng)加密算法為AES 和SM4,針對(duì)高帶寬、高性能等應(yīng)用場(chǎng)景,可以方便地引入采用流水線架構(gòu)提高吞吐率[4],針對(duì)低速率、低功耗(如物聯(lián)網(wǎng)等)領(lǐng)域,也有輕量級(jí)處理架構(gòu)設(shè)計(jì)方案[5]。
加密算法在現(xiàn)實(shí)應(yīng)用中有多種工作模式,常用的工作模式有電子密碼本(Electronic CodeBook,ECB)、密碼分組鏈接(Cipher-Block Chaining,CBC)、計(jì)算器模式(Counter,CTR)、密文反饋(Cipher FeedBack,CFB)和輸出反饋(Output FeedBack,OFB)模 式 共5 種。 ECB 模 式 加 密 解 密 使 用不同的硬件架構(gòu),而其余4 種模式加密采用密碼流與明文異或的方式生成密文,解密只需同樣的密碼流與密文再次異或即可得到明文,因此只需用一種結(jié)構(gòu)即可完成加解密,減少硬件復(fù)雜度。同時(shí),ECB 模式對(duì)傳輸錯(cuò)誤非常敏感,一個(gè)比特錯(cuò)誤造成的解密失敗會(huì)擴(kuò)散到整個(gè)分組單元,而其余4 種模式采用異或方式,錯(cuò)誤僅局限于自 身,不 擴(kuò) 散。 這4 種 模 式 中,OFB 模 式 最 為 常 用。 為 了進(jìn)一步增強(qiáng)OFB 模式的安全性,本文結(jié)合無(wú)線通信中常用的交織技術(shù)提出了改進(jìn)型OFB 工作模式。
無(wú)線通信的信道環(huán)境復(fù)雜多變,深衰落會(huì)造成大面積的塊傳輸錯(cuò)誤。 采用交織技術(shù)可以實(shí)現(xiàn)將整塊打散分別傳輸,接收端進(jìn)行解交織還原。大面積錯(cuò)誤分散到各個(gè)信號(hào)幀中,增大解碼成功的可能,從而提高傳輸系統(tǒng)的魯棒性[6]。 信息論鼻祖香農(nóng)指出,一次一密且密鑰隨機(jī)性越大,加密強(qiáng)度越高[7]。 交織技術(shù)具有隨機(jī)性的特點(diǎn),因此可用于改進(jìn)加密的工作模式,提升加密系統(tǒng)的性能。
傳統(tǒng)的OFB 工作模式加密單元以初始向量和密鑰作為輸入,加密單元的輸出作為后級(jí)加密單元的輸入并使用同樣的密鑰得到輸出,按照此模式依次向后級(jí)聯(lián)。由各個(gè)加密單元的輸出得到密碼流,將密碼流與明文異或?qū)崿F(xiàn)加解密,如圖1 所示。
圖1 OFB 工作模式結(jié)構(gòu)框圖
本文提出的改進(jìn)型的OFB 模式在各個(gè)加密器的輸入端引入交織器,將待加密數(shù)據(jù)打散亂序輸出,增加隨機(jī)性,提升加密強(qiáng)度。 交織器的輸入位寬為初始向量位寬,輸出位寬為加密器的分組長(zhǎng)度,如圖2 所示。
圖2 改進(jìn)型OFB 工作模式結(jié)構(gòu)框圖
現(xiàn)代密碼體制往往采用算法公開(kāi)、保護(hù)密鑰的方式進(jìn)行加密。 該方式對(duì)密鑰的分發(fā)管理機(jī)制有較高的要求,對(duì)稱(chēng)加密系統(tǒng)初始化時(shí),常常將密鑰存入存儲(chǔ)器中,存儲(chǔ)密鑰的常常為EEPROM 等掉電不丟失的器件,一旦存儲(chǔ)器被非法讀取,會(huì)造成密鑰泄露,導(dǎo)致泄密。為解決上述問(wèn)題,本文將結(jié)合上文提到的交織技術(shù)提出一種新的密鑰分發(fā)管理機(jī)制,然后以DTMB 傳輸系統(tǒng)為例,詳細(xì)介紹基于改進(jìn)型OFB 工作模式的加密方法的具體實(shí)施過(guò)程。
初始密鑰和初始向量的生成依賴物理熱噪聲源,初始密鑰根據(jù)所選擇的加密算法長(zhǎng)度不同,如AES128 和SM4 長(zhǎng)度為128 bit,AES256 長(zhǎng)度為256 bit。 提取多組初始密鑰和初始向量存放于存儲(chǔ)器中,形成查找表。 取出TS 包中的PID 和包連續(xù)計(jì)數(shù)字段共17 bit 數(shù)據(jù)作為地址訪問(wèn)存儲(chǔ)器, 如果地址和存儲(chǔ)器輸出數(shù)據(jù)不做處理,存儲(chǔ)器內(nèi)信息一旦被讀取,存在嚴(yán)重的泄密風(fēng)險(xiǎn)。本文提出的新型密鑰分發(fā)管理機(jī)制充分利用交織器的隨機(jī)性分別對(duì)輸入地址和輸出數(shù)據(jù)進(jìn)行處理,需要兩個(gè)交織器分別連接存儲(chǔ)器的輸入和輸出。 存儲(chǔ)器前的交織器A 的輸入位數(shù)為固定17 bit,輸出位數(shù)可根據(jù)存儲(chǔ)器的深度靈活變化,實(shí)現(xiàn)一對(duì)一映射或多對(duì)一映射。 多對(duì)一映射節(jié)省了存儲(chǔ)器,但因?yàn)槎鄠€(gè)TS 包均采用同一個(gè)初始向量和密鑰加密,犧牲了安全性,存儲(chǔ)器后的交織器B 輸入位數(shù)為存儲(chǔ)器的位寬,輸出位數(shù)為初始向量和密鑰位寬之和,密鑰分發(fā)管理體制框圖如圖3 所示。
圖3 密鑰分發(fā)管理體制框圖
交織圖樣可以采用固定單一模式,如固定使用輸入比特倒序輸出模式,也可以采用動(dòng)態(tài)輪換模式,按照一定的模式更換。 交織圖樣保密不公開(kāi),存儲(chǔ)器的輸入與輸出均被交織器打亂。 因此,即使存儲(chǔ)器中的數(shù)據(jù)全被竊取,密鑰也不會(huì)丟失。
視頻傳輸常應(yīng)用于無(wú)線圖像傳輸和數(shù)字電視廣播等領(lǐng)域。 常見(jiàn)的數(shù)字電視標(biāo)準(zhǔn)有DVB、DTMB 和ATSC等。 其中,DTMB 是我國(guó)具有自主知識(shí)產(chǎn)權(quán)的地面數(shù)字電視標(biāo)準(zhǔn)。 DTMB 以TS 包作為傳輸單元,實(shí)現(xiàn)視頻信號(hào)到射頻調(diào)制信號(hào)的相互轉(zhuǎn)換[8]。 下面以DTMB 系統(tǒng)為例,講述基于改進(jìn)型OFB 工作模式的視頻流加密的具體實(shí)施流程。
首先,系統(tǒng)上電初始化,從噪聲碼芯片或其他物理噪聲源讀取偽隨機(jī)信號(hào)生成初始向量和密鑰,并存放于存儲(chǔ)器中。 接著,對(duì)待傳輸?shù)腡S 流進(jìn)行同步,鎖定同步包頭。采用二次同步的方式對(duì)TS 流進(jìn)行同步,具體實(shí)現(xiàn)過(guò)程為檢測(cè)接收的TS 流,收到數(shù)據(jù)為十六進(jìn)制47 則進(jìn)入預(yù)同步狀態(tài),計(jì)數(shù)器清零并開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)到187時(shí)檢測(cè)收到的數(shù)字是否仍為47,是47 則進(jìn)入二次同步狀態(tài),不是則跳回預(yù)同步狀態(tài)。 在二次同步狀態(tài)再次清零計(jì)數(shù)器并繼續(xù)計(jì)數(shù),計(jì)數(shù)器再次累加到187 時(shí),如果收到數(shù)據(jù)為47 則同步完成,否則跳轉(zhuǎn)到預(yù)同步,重新開(kāi)始同步過(guò)程,二次同步流程圖如圖4 所示。 碼流同步完成后,提取TS 包中的PID 和包連續(xù)計(jì)數(shù)信息,PID 為47同步字節(jié)后兩個(gè)字節(jié)拼接后的低13 位,包連續(xù)計(jì)數(shù)為47 同步字節(jié)后第三個(gè)字節(jié)的低4 位。 根據(jù)PID 和包連續(xù)計(jì)數(shù)確定初始向量和密鑰。 將PID 和包連續(xù)計(jì)數(shù)共17 bit 數(shù)據(jù)輸入交織器,交織器A 實(shí)現(xiàn)將數(shù)據(jù)線17 打亂重新排序功能,交織器A 的輸出作為地址信息對(duì)初始向量和密鑰存儲(chǔ)器進(jìn)行尋址,存儲(chǔ)器的輸出連接另外一個(gè)交織器B,交織器B 實(shí)現(xiàn)存儲(chǔ)器輸出數(shù)據(jù)的進(jìn)一步打散,最后,將交織器B 的輸出的低部分作為初始向量,高部分作為密鑰。 生成密鑰和初始向量后, 采用改進(jìn)型OFB 工作模式得到與明文長(zhǎng)度相同的密碼流。本文提出的加密系統(tǒng)需要加密的明文長(zhǎng)度為184 B 共1 472 bit。AES 和SM4 加密模塊的分組長(zhǎng)度均為128 bit,1 472 除以128 向上取整為12,因此需要12 個(gè)密碼塊的拼接形成密碼流。 改進(jìn)型OFB 模式與普通OFB 模式一樣,密碼流的生成不依賴于明文的輸入,因此可以提前工作,等明文到來(lái)時(shí)直接加密輸出,減小加密延遲。最后,將密碼流與TS 包除包頭4 B 外的184 B 進(jìn)行異或得到密文輸出。 加密流程圖如圖5 所示。
圖4 二次同步流程圖
上述加密方法可以直接運(yùn)用到DTMB 系統(tǒng)中實(shí)現(xiàn)電視節(jié)目的加密傳輸。 復(fù)用器或其他信源輸出的TS 流經(jīng)過(guò)加密單元處理,處理后的加密數(shù)據(jù)不改變TS 包結(jié)構(gòu),可以直接接入DTMB 發(fā)射機(jī)中變成射頻信號(hào)發(fā)出,射頻信號(hào)經(jīng)過(guò)DTMB 接收機(jī)解調(diào)為加密數(shù)據(jù),再經(jīng)過(guò)解密單元還原成TS 流。 解密流程與加密流程一致,可硬件復(fù)用。 信道傳播過(guò)程中造成的錯(cuò)誤不擴(kuò)散,不會(huì)造成大面積解密失敗。 DTMB 系統(tǒng)加密傳輸?shù)牧鞒倘鐖D6 所示。
圖5 加密流程圖
圖6 DTMB 系統(tǒng)加密傳輸流程圖
密碼系統(tǒng)中,加密單元使用的密鑰數(shù)量越多,隨機(jī)性越強(qiáng),加密強(qiáng)度越高。為了描述加密系統(tǒng)的性能,引入隨機(jī)性因子的概念。將隨機(jī)性因子定義為對(duì)密鑰的變化處理從而生成的新的密鑰數(shù)量。一個(gè)加密系統(tǒng)對(duì)密鑰多級(jí)處理,會(huì)產(chǎn)生多個(gè)隨機(jī)性因子,總的隨機(jī)性因子為各級(jí)處理的隨機(jī)性因子的乘積。 在經(jīng)過(guò)多次處理流程后,同一密鑰可能會(huì)產(chǎn)生相同的輸出,造成碰撞, 故隨機(jī)性因子往往大于密鑰的實(shí)際數(shù)量。隨機(jī)性因子可用來(lái)描述密鑰的隨機(jī)性,進(jìn)而量化加密系統(tǒng)的性能。
以初始向量和密鑰長(zhǎng)度均為128 bit,密鑰存儲(chǔ)器地址位寬17 為例,TS 包中184 B 可分成12 個(gè)128 bit 的分組單元。 使用ECB 加密模式,一個(gè)TS 包可分配12 個(gè)不同的密鑰,后期不對(duì)密鑰做任何處理,故隨機(jī)性因子為12。 新型密鑰分發(fā)機(jī)制和改進(jìn)型OFB 模式都對(duì)密鑰進(jìn)行二次處理,新型密鑰分發(fā)機(jī)制中的交織器輸入端會(huì)產(chǎn)生217種變化,輸出端也會(huì)產(chǎn)生2128種變化,隨機(jī)性因子為217×2128。 同樣,改進(jìn)型的OFB 模型也會(huì)增加2128種變化,隨機(jī)性因子為2128。各個(gè)不同組合模式的隨機(jī)性因子對(duì)比如表1 所示。
表1 各種加密模式隨機(jī)性因子對(duì)比
從表1 中可以看出,基于新型密鑰分發(fā)機(jī)制和改進(jìn)型OFB 模式的加密方法相對(duì)于傳統(tǒng)電子密碼本ECB加密模式,在犧牲很小的硬件代價(jià)下,極大地增加了密鑰隨機(jī)性,大大提升了破解難度,具有很高的實(shí)用價(jià)值。
本文提出的視頻流加密方法創(chuàng)新性地引入了無(wú)線通信中常用的交織技術(shù),提出了新的密鑰分發(fā)管理機(jī)制和改進(jìn)型OFB 工作模式。 相比傳統(tǒng)加密方法,通過(guò)在多個(gè)環(huán)節(jié)引入交織器,極大地增加了隨機(jī)性,最大程度實(shí)現(xiàn)一次一密原則,有效提升加密強(qiáng)度。 同時(shí),結(jié)合TS 包結(jié)構(gòu)自身特點(diǎn),不破壞原有包結(jié)構(gòu),加密后的視頻流能夠無(wú)縫接入現(xiàn)有的無(wú)線圖像和數(shù)字電視廣播等傳輸系統(tǒng)中。 本文的解密系統(tǒng)與加密系統(tǒng)架構(gòu)一致,在某些場(chǎng)合可分時(shí)復(fù)用,節(jié)省硬件開(kāi)支,密文在傳播過(guò)程中的差錯(cuò)僅局限于自身,無(wú)擴(kuò)散,不會(huì)造成大面積解密失敗,具有很高的實(shí)用性。 另外,本文提出的加密系統(tǒng)可以方便地引入并行結(jié)構(gòu),提高加密模塊的吞吐量,解決目前人們對(duì)4K、8K 等超高清視頻的實(shí)時(shí)加密需求。
隨著互聯(lián)網(wǎng)和移動(dòng)通信技術(shù)的發(fā)展,人們對(duì)視頻等多媒體的需求越來(lái)越高,視頻傳輸?shù)陌踩栽絹?lái)越成為一個(gè)嚴(yán)峻的問(wèn)題。 本文提出的視頻流加密方法結(jié)構(gòu)簡(jiǎn)單,加密強(qiáng)度高,兼容性廣,在現(xiàn)實(shí)中有很高的實(shí)用價(jià)值,可被廣泛應(yīng)用于無(wú)線圖像傳輸、網(wǎng)絡(luò)監(jiān)控和數(shù)字電視廣播領(lǐng)域中。