本發(fā)明涉及對傳輸?shù)囊粢曨l處理技術,特別涉及一種對傳輸?shù)囊粢曨l數(shù)據(jù)進行加解密方法。
背景技術:
::音視頻信息作為一種資源,在網(wǎng)絡化及信息化高速發(fā)展的今天具有舉足輕重的現(xiàn)實作用,伴隨計算機網(wǎng)絡的迅速普及、網(wǎng)絡性能的快速提升、及云計算和大數(shù)據(jù)的洶涌來襲,高清網(wǎng)絡音視頻監(jiān)控正以其良好的技術與成本優(yōu)勢,在平安城市、智慧城市、智能交通、乃至企業(yè)、家庭或店面等方面,呈現(xiàn)出熱火朝天的蓬勃發(fā)展態(tài)勢,各類網(wǎng)絡音視頻監(jiān)控設備如雨后春筍般層出不窮,網(wǎng)絡音視頻監(jiān)控系統(tǒng)的建設也正如火如荼地進行中。隨著技術的推進,近年來的網(wǎng)絡安全事件也越來越嚴重,所以在音視頻監(jiān)控領域,尤其針對低成本及更親民的云監(jiān)控,一種行之有效的音視頻加密安全系統(tǒng)尤為重要。目前,音視頻傳輸系統(tǒng),特別是音視頻監(jiān)控系統(tǒng)一般基于標準協(xié)議開發(fā),基本無加密可言。對于加密,在音視頻傳輸系統(tǒng)的中心加密服務器或系統(tǒng)另購硬件加密,安全性提高了但成本和部署復雜度也相對增加,而且沒有在源端進行加密,本身有安全隱患。具體地說,音視頻傳輸系統(tǒng)在對所傳輸?shù)囊粢曨l進行加解密時,主要采用兩種方法:第一種方法:對傳輸?shù)囊粢曨l使用固化的密鑰進行加密或者使用本地隨機密鑰,將加密后的音視頻通過云音視頻監(jiān)控系統(tǒng)傳遞給對端,由對端使用固化的密鑰,或者接收的或預先按照規(guī)則得到的本地隨機密鑰進行解密,但是這種方式存在安全風險;第二種方法,在音視頻傳輸系統(tǒng)中設置專用的服務器或加密設備,成本高且純軟件的性能不足,不足以在頻率較低的嵌入式芯片下使用。綜上,音視頻傳輸系統(tǒng)只是套用一些現(xiàn)有的加解密算法,安全性能取決于加密算法的優(yōu)越,沒有充分考慮音視頻的特性及傳輸?shù)沫h(huán)境。技術實現(xiàn)要素:有鑒于此,本發(fā)明實施例提供一種對傳輸?shù)囊粢曨l數(shù)據(jù)進行加密的方法,該方法能夠對傳輸?shù)囊粢曨l數(shù)據(jù)實時加密,在不增加成本的情況下保證安全性。本發(fā)明實施例還提供一種對傳輸?shù)囊粢曨l數(shù)據(jù)進行解密的方法,該方法能夠對傳輸?shù)囊粢曨l數(shù)據(jù)實時解密,在不增加成本的情況下保證安全性。根據(jù)上述目的,本發(fā)明是這樣實現(xiàn)的:一種對傳輸?shù)囊粢曨l數(shù)據(jù)進行加密的方法,包括:對視頻數(shù)據(jù)的參數(shù)進行AES加密算法的加密;將進行了AES加密的視頻數(shù)據(jù)及音頻數(shù)據(jù)進行傳輸流TS的封裝;對TS進行ARC4加密算法的全數(shù)據(jù)加密;采用傳輸控制協(xié)議TCP標識封裝加密后的TS,進行傳輸。所述視頻數(shù)據(jù)為H264數(shù)據(jù),所述視頻數(shù)據(jù)的參數(shù)為序列參數(shù)集SPS及圖像參數(shù)集PPS。所述對TS進行ARC4加密算法的全數(shù)據(jù)加密之前,該方法還包括:對TS包結束32字節(jié)AES加密。所述對TS包結束32字節(jié)AES加密之前,該方法還包括:對TS關鍵參數(shù)進行AES加密。所述TS關鍵參數(shù)為:在TS的傳輸參數(shù)包頭transportpacket中,具體包括同步字節(jié)sync_byte、傳輸錯誤指示transport_error_indication、負載單元開始標志payload_unit_start、優(yōu)先級傳輸標志transport_priority、包標識PID、傳輸加密控制標識transport_scrambling_control、附加區(qū)域控制標識adaptation_field_control及包遞增計數(shù)器cotinuity_counter;或/和在TS的節(jié)目關聯(lián)表字段program_association_section中,具體包括表標識table_id、字段同步指示secton_syntax_indicator、保留字節(jié)reserved、字段長度section_length、傳輸流標識transport_stream_id、版本編碼version_number、下一個流標識current_next_indicator、字段編碼section_number及最后字段編碼last_secton_number;或/和在TS的節(jié)目映射表字段TS_program_map_section中,具體包括table_id、section_syntax_indicator、reserved、ection_length、節(jié)目編碼program_number、version_number、current_next_indicator、section_number、last_section_mumber、PCRPID、及節(jié)目信息長度program_info_length。所述對TS包結束32字節(jié)AES加密包括:對I幀數(shù)據(jù)的每188包長的TS數(shù)據(jù)末尾32字節(jié)進行AES128加密。所述對視頻數(shù)據(jù)的參數(shù)加密、對TS關鍵參數(shù)進行AES加密、對TS包結束32字節(jié)AES加密及對TS進行ARC4加密采用四個密鑰,是由音視頻接收端通過流媒體服務器向音視頻發(fā)送端請求音視頻數(shù)據(jù)并通過驗證后,分別由音視頻發(fā)送端及音視頻接收端采用設置的密鑰生成算法,基于計算得到的。所述四個密鑰得到過程為:對設備標識、通道標識、time_t及clock_t采用4種設置的邏輯運算組,生成4種128位數(shù);對4種128位數(shù)進行設置的循環(huán)左移、映射及置換,生成4組密鑰組,其中,每組密鑰組有16種128位數(shù);采用隨機數(shù),隨機選取各組中的一個密鑰,分別對在音視頻接收端已經固化的4種128位基數(shù)據(jù)進行AES加密,生成4種128位數(shù),作為四個密鑰。一種對傳輸?shù)囊粢曨l數(shù)據(jù)進行解密的方法,包括:對接收的數(shù)據(jù)流,采用TCP標識進行解封,得到加密的TS;對加密的TS進行ARC4加密算法的全數(shù)據(jù)解密,得到TS;對TS進行解封,分別得到進行了AES加密的音頻數(shù)據(jù)和視頻數(shù)據(jù);對進行了AES加密的音頻數(shù)據(jù)進行AES加密算法的解密,得到音頻數(shù)據(jù)。在對TS進行解封之前,還包括:對TS包結束32字節(jié)AES解密。在對TS進行解封之前,還包括:對TS關鍵參數(shù)進行AES解密。由上述方案可以看出,本發(fā)明將要傳輸?shù)囊粢曨l數(shù)據(jù)在封裝為傳輸流(TS)的過程中,對不同階段的音視頻數(shù)據(jù)及相關信息進行全部或部分的多次加密,然后再進行傳輸;在對端接收到加密的TS時,也相應地在不同階段對TS進行全部或部分的多次解密。這樣,傳輸音視頻數(shù)據(jù)的安全性就不會受到一套加密算法的安全性影響,且不增加成本。附圖說明圖1為本發(fā)明實施例提供的對傳輸?shù)囊粢曨l進行加密的方法流程圖;圖2為本發(fā)明實施例提供的采用TCP標識封裝加密的TS的格式示意圖;圖3為本發(fā)明實施例提供的對傳輸?shù)囊粢曨l進行解密的方法流程圖;圖4為本發(fā)明實施例提供的音視頻傳輸系統(tǒng)傳輸音視頻數(shù)據(jù)的方法流程圖;圖5為本發(fā)明實施例提供的音視頻傳輸系統(tǒng)傳輸音視頻的網(wǎng)絡結構圖;圖6為本發(fā)明實施例提供的密鑰生成方法流程圖。具體實施方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明作進一步詳細說明。圖1為本發(fā)明實施例提供的對傳輸?shù)囊粢曨l進行實時加密的方法流程圖,其具體步驟為:步驟101、對視頻數(shù)據(jù)的參數(shù)進行AES加密算法的加密;在本步驟中,視頻數(shù)據(jù)為H264數(shù)據(jù),其參數(shù)為序列參數(shù)集(SPS)及圖像參數(shù)集(PPS);步驟102、將進行了AES加密的視頻數(shù)據(jù)及音頻數(shù)據(jù)進行傳輸流(TS)的封裝;在本步驟中,音頻數(shù)據(jù)采用G711A格式;步驟103、對TS進行ARC4加密算法的全數(shù)據(jù)加密;步驟104、采用傳輸控制協(xié)議(TCP)標識封裝加密后的TS,進行傳輸。在該方法中,進一步地,在步驟103之前,該方法還包括:對TS關鍵數(shù)參數(shù)進行AES加密。在該方法中,進一步地,在步驟103之前,在對TS關鍵數(shù)進行AES加密之后,該方法還包括:對TS包結束32字節(jié)AES加密。在本方法中,考慮數(shù)據(jù)需要在復雜的互聯(lián)網(wǎng)環(huán)境下傳輸,TS具備較強的抵抗傳輸誤碼的能力,而且TS中的視頻流的任一片段開始都可以獨立解碼;另外,音頻數(shù)據(jù)與視頻數(shù)據(jù)進行復合封裝,也有利于在音視頻接收端進行音視頻的同步,所以將視頻數(shù)據(jù)和音頻數(shù)據(jù)進行標準的TS復合封裝。在本方法中,對TS關鍵數(shù)參數(shù)進行AES加密的關鍵參數(shù)主要包括:在TS的傳輸參數(shù)包頭(transportpacket)中,具體包括同步字節(jié)(sync_byte)、傳輸錯誤指示(transport_error_indication)、負載單元開始標志(payload_unit_start)、優(yōu)先級傳輸標志(transport_priority)、包標識(PID)、傳輸加密控制標識(transport_scrambling_control)、附加區(qū)域控制標識(adaptation_field_control)及包遞增計數(shù)器(cotinuity_counter);或/和在TS的節(jié)目關聯(lián)表字段(program_association_section())中,具體包括表標識(table_id)、字段同步指示(secton_syntax_indicator)、保留字節(jié)(reserved)、字段長度(section_length)、傳輸流標識(transport_stream_id)、版本編碼(version_number)、下一個流標識(current_next_indicator)、字段編碼(section_number)及最后字段編碼(last_secton_number);或/在TS的節(jié)目映射表字段(TS_program_map_section)中,具體包括table_id、section_syntax_indicator、reserved、section_length、節(jié)目編碼(program_number)、version_number、current_next_indicator、section_number、last_section_mumber、PCRPID、及節(jié)目信息長度(program_info_length)。在本方法中,當對TS包結束32字節(jié)AES加密時,還包括:對I幀數(shù)據(jù)的每188包長的TS數(shù)據(jù)末尾32字節(jié)進行AES128加密。在本方法中,采用TCP標識封裝加密后的TS過程為:考慮到音視頻傳輸系統(tǒng)的網(wǎng)絡傳輸環(huán)境、網(wǎng)絡套接字(socket)發(fā)送效率、交換機拆包特性、TS特性對數(shù)據(jù)經過了加密的TS進行188的5到7倍的拼包??紤]到TCP發(fā)送方式的粘包和分包特性,封裝“TCP&”加數(shù)據(jù)域長度的封裝刻蝕,如圖2所示,圖2為本發(fā)明實施例提供的采用TCP標識封裝加密的TS的格式示意圖,包括TCP&四個字節(jié)、數(shù)據(jù)域長度四個字節(jié)及數(shù)據(jù)域。在本方法中,圖1所述的加密過程是由音視頻發(fā)送端執(zhí)行的,并經過流媒體服務器傳輸?shù)揭粢曨l接收端進行解密處理。圖3為本發(fā)明實施例提供的對傳輸?shù)囊粢曨l進行實時解密的方法流程圖,其具體步驟為:步驟301、音視頻接收端對接收的數(shù)據(jù)流,采用TCP標識進行解封,得到加密的TS;步驟302、對加密的TS進行ARC4加密算法的全數(shù)據(jù)解密,得到TS;步驟303、對TS進行解封,分別得到進行了AES加密的音頻數(shù)據(jù)和視頻數(shù)據(jù);步驟304、對進行了AES加密的音頻數(shù)據(jù)進行AES加密算法的解密,得到音頻數(shù)據(jù)。這樣,就得到了音視頻接收端進行音視頻播放需要的音頻數(shù)據(jù)和視頻數(shù)據(jù)。在該方法中,在步驟303對TS進行解封之前,該方法還包括:對TS包結束32字節(jié)AES解密。在該方法中,在步驟303對TS進行解封之前,該方法還包括:對TS關鍵參數(shù)進行AES解密。圖4為本發(fā)明實施例提供的音視頻傳輸系統(tǒng)傳輸音視頻數(shù)據(jù)的方法流程圖,結合圖5所示的音視頻傳輸系統(tǒng)傳輸音視頻的網(wǎng)絡結構圖,進行詳細說明,其具體步驟為:步驟401、音視頻接收端向流媒體服務器發(fā)起音視頻申請請求,該請求攜帶設備標識及通道標識;在該步驟中,音視頻接收端就是客戶端,流媒體服務器就是與音視頻接收端協(xié)議的服務器;步驟402、流媒體服務器接收端該請求后,進行校驗,校驗通過后,向音視頻發(fā)送端發(fā)送音視頻申請請求,攜帶通道標識、time_t時間及clock_t時間;在該步驟中,音視頻申請請求還包括流媒體服務器的秒級數(shù)和微秒級數(shù),微秒級數(shù)防止過高并發(fā)導致重復;步驟403、音視頻發(fā)送端接收到該請求后,進行校驗,校驗通過后,以設備標識、通道標識、time_t及clock_t為會話標識,及設置的隨機數(shù),采用設置的密鑰算法生成加密音視頻數(shù)據(jù)所需的密鑰組;在本步驟中,音視頻發(fā)送端為編碼設備;在本步驟中,隨機數(shù)是從1~16中選取一個;步驟404、音視頻發(fā)送端發(fā)送確認成功消息到流媒體服務器中,確認消息攜帶所設置的隨機數(shù);步驟405、流媒體服務器發(fā)送確認成功消息到音視頻接收端,攜帶time_t及clock_t和隨機數(shù);步驟406、音視頻接收端采用與音視頻發(fā)送端同樣的密鑰生成算法,基于設備標識、通道標識、time_t、clock_t及隨機數(shù)設置的隨機數(shù)生成解密音視頻數(shù)據(jù)所需的密鑰組;步驟407、音視頻發(fā)送端將TCP標識封裝的加密的TS通過流媒體服務器發(fā)送給音視頻接收端,完成音視頻數(shù)據(jù)的傳輸。圖6為本發(fā)明實施例提供的密鑰生成方法流程圖,其具體步驟為:步驟601、對設備標識、通道標識、time_t及clock_t采用4種設置的邏輯運算組,生成4種128位數(shù);步驟602、對4種128位數(shù)進行設置的循環(huán)左移、映射及置換,生成4組密鑰組,其中,每組密鑰組有16種128位數(shù);步驟603、采用隨機數(shù),隨機選取各組中的一個密鑰,分別對在音視頻接收端已經固化的4種128位基數(shù)據(jù)進行AES加密,生成4種128位數(shù),作為四個密鑰。在本發(fā)明中,四個密鑰分別進行視頻數(shù)據(jù)的SPS和PPS加密、TS關鍵參數(shù)加密、TS包結束32字節(jié)加密及ARC4全數(shù)據(jù)加密??梢钥闯?,本發(fā)明提供的加解密方法是結合音視頻傳輸系統(tǒng)的傳輸、H264特性、TS封裝特性對數(shù)據(jù)進行選擇性的局部加密和全加密過程,并有一套完整的密鑰生成和管理系統(tǒng),充分考慮了密鑰的安全性及隨機性,最終達到安全、高性能、適應音視頻傳輸系統(tǒng)的傳輸,及音視頻易于同步等優(yōu)點。在這里,音視頻傳輸系統(tǒng)可以為互聯(lián)網(wǎng)系統(tǒng)。以上舉較佳實施例,對本發(fā)明的目的、技術方案和優(yōu)點進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。當前第1頁1 2 3 當前第1頁1 2 3