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