本申請(qǐng)涉及視頻加密技術(shù),具體涉及一種視頻加密方法和相應(yīng)裝置。本申請(qǐng)同時(shí)涉及一種視頻解密方法和相應(yīng)裝置,一種視頻加密傳輸系統(tǒng),以及一種加密控制方法和相應(yīng)裝置。
背景技術(shù):
出于遠(yuǎn)程同步播放等目的,許多領(lǐng)域需要在本地設(shè)備上觀看遠(yuǎn)端設(shè)備輸出的圖像,在這一需求背景下出現(xiàn)了遠(yuǎn)程桌面應(yīng)用。遠(yuǎn)程桌面應(yīng)用通常包括兩個(gè)部分:一個(gè)是提供遠(yuǎn)程桌面服務(wù)的圖像幀發(fā)送端(以下簡(jiǎn)稱發(fā)送端);另一個(gè)是使用遠(yuǎn)程桌面服務(wù)的圖像幀接收端(以下簡(jiǎn)稱接收端)。發(fā)送端和接收端可以是臺(tái)式計(jì)算機(jī)、筆記本電腦、嵌入式設(shè)備、或者智能電視等設(shè)備。
遠(yuǎn)程桌面應(yīng)用的基本原理是這樣的:發(fā)送端將本地的桌面圖像幀(也稱為畫面幀)實(shí)時(shí)地進(jìn)行數(shù)據(jù)封裝并發(fā)送給接收端,從而將發(fā)送端的桌面圖像以視頻流的形式傳輸給接收端,接收端接收后經(jīng)過解封裝操作在本地的顯示設(shè)備上連續(xù)顯示各個(gè)圖像幀,即:將發(fā)送端的桌面圖像以視頻的方式呈現(xiàn)出來,從而實(shí)現(xiàn)了遠(yuǎn)程視頻呈現(xiàn)功能。在上述過程中,為了減少數(shù)據(jù)傳輸量,發(fā)送端也可以將桌面圖像幀經(jīng)視頻編碼后發(fā)送給接收端,接收端進(jìn)行相應(yīng)的解碼后在本地呈現(xiàn)。
以基于Linux Framebuffer技術(shù)的遠(yuǎn)程桌面系統(tǒng)為例,現(xiàn)有的遠(yuǎn)程桌面應(yīng)用的實(shí)現(xiàn)方式如圖1所示。在現(xiàn)有的實(shí)現(xiàn)方式中通常采用兩種加密方式:缺省方式是不加密,即:發(fā)送端從Framebuffer中獲取桌面圖像幀,經(jīng)視頻編碼及包封裝后以IP數(shù)據(jù)包的方式傳輸給接收端,其間不進(jìn)行加密處理;另一種方式是在傳輸層加密,即對(duì)包封裝后的數(shù)據(jù)整體加密傳輸(例如,采用SSL協(xié)議加密)。
上述兩種方式各自存在相應(yīng)的缺陷:采用不加密的方式,如果傳輸?shù)臄?shù)據(jù)被截獲后很容易泄露桌面圖像中包含的信息,帶來安全上的隱患;采用傳輸層加密方式,在發(fā)送端需要對(duì)每一幀都進(jìn)行加密、在接收端則需要對(duì)每一幀都進(jìn)行解密,效率低下。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種視頻加密傳輸方法和裝置,以解決現(xiàn)有的視頻加密傳輸方式無法同時(shí)兼顧數(shù)據(jù)安全性與操作效率的問題。本申請(qǐng)實(shí)施例還提供一種視頻解密方法和裝置,一種視頻加密傳輸系統(tǒng),以及一種加密控制方法和裝置。
本申請(qǐng)?zhí)峁┮环N視頻加密傳輸方法,包括:
獲取用于形成視頻流的圖像幀;
當(dāng)所述圖像幀滿足預(yù)設(shè)的加密條件時(shí),采用預(yù)設(shè)的加密算法對(duì)其進(jìn)行加密;
在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
可選的,所述預(yù)設(shè)的加密條件包括:所述圖像幀按照預(yù)設(shè)方式承載加密指示信息。
可選的,所述圖像幀按照預(yù)設(shè)方式承載加密指示信息包括:所述圖像幀在預(yù)設(shè)位置的像素點(diǎn)值與預(yù)設(shè)值一致。
可選的,所述預(yù)設(shè)位置包括圖像幀的4個(gè)頂點(diǎn),所述預(yù)設(shè)值包括0xFFFF。
可選的,所述方法在遠(yuǎn)程桌面應(yīng)用的圖像幀發(fā)送端實(shí)施,所述圖像幀包括桌面圖像幀;
在獲取用于形成視頻流的桌面圖像幀之前,執(zhí)行下述操作:
繪制所述桌面圖像幀的應(yīng)用程序判斷所述桌面圖像幀是否需要加密;
若是,按照預(yù)設(shè)方式向所述桌面圖像幀中寫入加密指示信息。
可選的,所述獲取用于形成視頻流的桌面圖像幀,包括:
從對(duì)應(yīng)于顯示設(shè)備的Framebuffer中獲取所述桌面圖像幀。
可選的,所述需要加密的桌面圖像幀包括:包含關(guān)鍵信息的桌面圖像幀、或包含關(guān)鍵信息輸入過程的桌面圖像幀,所述關(guān)鍵信息包括以下所列元素中的一種或者組合:賬戶信息、密碼信息。
可選的,在所述獲取用于形成視頻流的圖像幀之后,執(zhí)行下述操作:
識(shí)別獲取的圖像幀是否滿足預(yù)設(shè)的加密條件;
并對(duì)所述圖像幀進(jìn)行視頻編碼,生成編碼后圖像幀;
所述當(dāng)所述圖像幀滿足預(yù)設(shè)的加密條件時(shí),采用預(yù)設(shè)的加密算法對(duì)其進(jìn)行加密包括:采用預(yù)設(shè)的加密算法,對(duì)已識(shí)別為滿足預(yù)設(shè)加密條件的編碼后圖像幀進(jìn)行加密;
所述在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息包括:在封裝所述編碼后圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息。
可選的,所述對(duì)圖像幀進(jìn)行視頻編碼包括:采用數(shù)字視頻編碼標(biāo)準(zhǔn)H.264進(jìn)行視頻編碼。
可選的,在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,包括:
采用RTP協(xié)議對(duì)所述圖像幀進(jìn)行封裝,并通過設(shè)置擴(kuò)展位的方式在相應(yīng)的擴(kuò)展頭中寫入所述加密標(biāo)識(shí)信息。
可選的,所述加密標(biāo)識(shí)信息包括:標(biāo)識(shí)所述圖像幀是否被加密的信息。
可選的,對(duì)于被加密的圖像幀,所述加密標(biāo)識(shí)信息還包括:所采用的預(yù)設(shè)加密算法。
可選的,所述預(yù)設(shè)的加密算法包括:DES、3DES、RC2、RC4、IDEA、或者AES算法。
相應(yīng)的,本申請(qǐng)還提供一種視頻加密傳輸裝置,包括:
圖像幀獲取單元,用于獲取用于形成視頻流的圖像幀;
篩選加密單元,用于當(dāng)所述圖像幀滿足預(yù)設(shè)的加密條件時(shí),采用預(yù)設(shè)的加密算法對(duì)其進(jìn)行加密;
封裝發(fā)送單元,用于在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
可選的,所述裝置部署于遠(yuǎn)程桌面應(yīng)用的圖像幀發(fā)送端,所述圖像幀獲取單元獲取的圖像幀包括桌面圖像幀;
所述裝置還包括:
加密判斷單元,用于在觸發(fā)所述圖像幀獲取單元工作之前,由繪制所述桌面圖像幀的應(yīng)用程序判斷所述桌面圖像幀是否需要加密;
加密指示寫入單元,用于當(dāng)所述加密判斷單元的輸出為是時(shí),按照預(yù)設(shè)方式向所述桌面圖像幀中寫入加密指示信息。
可選的,所述裝置還包括:
加密預(yù)識(shí)別單元,用于識(shí)別所述圖像幀獲取單元獲取的圖像幀是否滿足預(yù)設(shè)的加密條件,并觸發(fā)所述編碼單元工作;
編碼單元,用于對(duì)所述圖像幀進(jìn)行視頻編碼,生成編碼后圖像幀;
所述篩選加密單元具體用于,采用預(yù)設(shè)的加密算法,對(duì)所述加密預(yù)識(shí)別單元已識(shí)別為滿足預(yù)設(shè)加密條件的編碼后圖像幀進(jìn)行加密;
所述封裝發(fā)送單元具體用于,在封裝所述編碼后圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
可選的,所述封裝發(fā)送單元具體用于,采用RTP協(xié)議對(duì)所述圖像幀進(jìn)行封裝,通過設(shè)置擴(kuò)展位的方式在相應(yīng)的擴(kuò)展頭中寫入所述加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
此外,本申請(qǐng)還提供一種視頻解密方法,包括:
對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,獲取圖像幀;
根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷所述圖像幀是否被加密;
若是,采用相應(yīng)的解密算法對(duì)所述圖像幀進(jìn)行解密。
可選的,所述根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷所述圖像幀是否被加密包括:根據(jù)用于封裝所述圖像幀的RTP擴(kuò)展頭中攜帶的加密標(biāo)識(shí)信息,執(zhí)行所述判斷。
可選的,如果在完成所述加密判斷操作及必要的解密操作后,得到的圖像幀為進(jìn)行視頻編碼處理后的編碼后圖像幀時(shí),所述方法還包括:
采用與圖像幀發(fā)送端所采用的視頻編碼方法對(duì)應(yīng)的解碼方法,對(duì)所述編碼后圖像幀進(jìn)行解碼,得到圖像幀。
可選的,所述方法包括:
顯示完成所述加密判斷操作及必要的解密操作后得到的圖像幀。
可選的,所述方法在遠(yuǎn)程桌面應(yīng)用的圖像幀接收端實(shí)施,所述完成所述加密判斷操作及必要的解密操作后得到的圖像幀包括:圖像幀發(fā)送端的桌面圖像幀。
可選的,采用如下方式顯示得到的桌面圖像幀:
將所述桌面圖像幀寫入對(duì)應(yīng)于顯示設(shè)備的Framebuffer中。
可選的,所述相應(yīng)的解密算法包括:預(yù)設(shè)的與加密所述圖像幀所采用的加密算法對(duì)應(yīng)的解密算法。
可選的,所述數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息包括:標(biāo)識(shí)所述圖像幀是否被加密的信息。
可選的,所述數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息還包括:加密所述圖像幀所采用的加密算法;
所述相應(yīng)的解密算法包括:與所述數(shù)據(jù)包封裝信息中攜帶的加密算法對(duì)應(yīng)的解密算法。
相應(yīng)的,本申請(qǐng)還提供一種視頻解密裝置,包括:
解封裝單元,用于對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,獲取圖像幀;
加密判斷單元,用于根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷所述圖像幀是否被加密;
解密單元,用于當(dāng)所述加密判斷單元的輸出為是時(shí),采用相應(yīng)的解密算法對(duì)所述圖像幀進(jìn)行解密。
可選的,所述加密判斷單元具體用于,根據(jù)用于封裝所述圖像幀的RTP擴(kuò)展頭中攜帶的加密標(biāo)識(shí)信息,判斷所述圖像幀是否被加密。
可選的,所述裝置還包括:
解碼單元,用于在所述加密判斷單元輸出為否、或者所述加密判斷單元輸出為是且所述解密單元處理完畢后,如果得到的圖像幀為進(jìn)行視頻編碼處理后的編碼后圖像幀,則采用與圖像幀發(fā)送端所采用的視頻編碼方法對(duì)應(yīng)的解碼方法,對(duì)所述編碼后圖像幀進(jìn)行解碼,得到圖像幀。
可選的,所述裝置還包括:
顯示單元,用于顯示當(dāng)所述加密判斷單元輸出為否、或者所述加密判斷單元輸出為是且所述解密單元處理完畢后,所得到的圖像幀。
可選的,所述裝置部署于遠(yuǎn)程桌面應(yīng)用的圖像幀接收端,由所述顯示單元顯示的圖像幀包括:圖像幀發(fā)送端的桌面圖像幀。
此外,本申請(qǐng)還提供一種視頻加解密傳輸系統(tǒng)系統(tǒng),包括:根據(jù)上述任意一項(xiàng)所述的視頻加密傳輸裝置,以及根據(jù)上述任意一項(xiàng)所述的視頻解密裝置。
此外,本申請(qǐng)還提供一種加密控制方法,包括:
判斷圖像幀是否需要加密;
若是,按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息。
可選的,所述方法在遠(yuǎn)程桌面應(yīng)用的圖像幀發(fā)送端實(shí)施,所述圖像幀包括桌面圖像幀;
所述判斷圖像幀是否需要加密包括:繪制桌面圖像幀的應(yīng)用程序判斷所述桌面圖像幀是否需要加密。
可選的,所述需要加密的桌面圖像幀包括:包含關(guān)鍵信息的桌面圖像幀、或包含關(guān)鍵信息輸入過程的桌面圖像幀;關(guān)鍵信息包括以下所列元素中的一種或者組合:賬戶信息、密碼信息。
可選的,所述應(yīng)用程序采用如下方式繪制所述桌面圖像幀:向Framebuffer中寫入所述桌面圖像幀;
所述向桌面圖像幀中寫入加密指示信息包括:向Framebuffer中寫入所述加密指示信息。
可選的,所述按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息包括:將所述圖像幀在預(yù)設(shè)位置的像素點(diǎn)值設(shè)置為預(yù)設(shè)值。
相應(yīng)的,本申請(qǐng)還提供一種加密控制裝置,包括:
圖像幀加密判斷單元,用于判斷圖像幀是否需要加密;
加密指示寫入單元,用于當(dāng)所述圖像幀加密判斷單元的輸出為是時(shí),按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息。
與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
本申請(qǐng)?zhí)峁┑囊曨l加密傳輸方法、解密方法以及系統(tǒng),圖像幀發(fā)送端對(duì)滿足預(yù)設(shè)加密條件的圖像幀進(jìn)行加密,并在封裝待發(fā)送數(shù)據(jù)包的過程中添加相應(yīng)的加密標(biāo)識(shí)信息,圖像幀接收端接收所述數(shù)據(jù)包后,可以根據(jù)加密標(biāo)識(shí)信息對(duì)被加密的圖像幀進(jìn)行解密。采用上述技術(shù)方案,由于圖像幀的發(fā)送端和接收端有選擇地對(duì)視頻流中的圖像幀進(jìn)行加解密,從而在提供一定安全性保障的同時(shí),減少加解密操作的開銷,提高整個(gè)系統(tǒng)的處理效率。特別是在遠(yuǎn)程桌面應(yīng)用中,通過對(duì)由應(yīng)用程序標(biāo)識(shí)的關(guān)鍵圖像幀進(jìn)行加解密,能夠進(jìn)一步有效保證視頻流中關(guān)鍵信息的安全性。
本申請(qǐng)?zhí)峁┑募用芸刂品椒ǎ?dāng)判定圖像幀需要加密時(shí),按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息。采用本方法,使得圖像幀具有自我描述是否加密的特性,成為傳達(dá)加密控制信息的媒介,可以避免上層應(yīng)用對(duì)底層加密模塊的直接訪問,簡(jiǎn)化控制流程。特別是應(yīng)用于遠(yuǎn)程桌面系統(tǒng)中,由繪制桌面圖像幀的應(yīng)用程序?qū)⒓用苤甘拘畔懭雸D像幀中,不僅可以靈活控制視頻流中的任意圖像幀是否需要加密,而且可以避免應(yīng)用程序與底層處理模塊之間的耦合。
附圖說明
圖1是現(xiàn)有遠(yuǎn)程桌面應(yīng)用的實(shí)現(xiàn)方式的示意圖;
圖2是本申請(qǐng)的一種視頻加密傳輸方法的實(shí)施例的流程圖;
圖3是本申請(qǐng)實(shí)施例提供的RTP協(xié)議頭格式的示意圖;
圖4是本申請(qǐng)實(shí)施例提供的RTP擴(kuò)展頭格式的示意圖;
圖5是本申請(qǐng)的一種視頻加密傳輸裝置的實(shí)施例的示意圖;
圖6是本申請(qǐng)的一種視頻解密方法的實(shí)施例的流程圖;
圖7是本申請(qǐng)的一種視頻解密裝置的實(shí)施例的示意圖;
圖8是本申請(qǐng)的一種視頻加密傳輸系統(tǒng)的實(shí)施例的示意圖;
圖9是本申請(qǐng)實(shí)施例提供的遠(yuǎn)程桌面應(yīng)用的實(shí)現(xiàn)方式的示意圖;
圖10是本申請(qǐng)的一種加密控制方法的實(shí)施例的流程圖;
圖11是本申請(qǐng)的一種加密控制裝置的實(shí)施例的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是,本申請(qǐng)能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此,本申請(qǐng)不受下面公開的具體實(shí)施的限制。
在本申請(qǐng)中,分別提供了一種視頻加密傳輸方法和裝置,一種視頻解密方法和裝置,一種視頻加密傳輸系統(tǒng),以及一種加密控制方法和裝置,在下面的 實(shí)施例中逐一進(jìn)行詳細(xì)說明。為了便于理解,在描述實(shí)施例之前,先對(duì)本申請(qǐng)的技術(shù)方案作簡(jiǎn)要的說明。
圖像幀發(fā)送端可以將其提供的圖像幀,例如:具有圖像生成或者處理功能的應(yīng)用程序或者工具軟件實(shí)時(shí)輸出的動(dòng)態(tài)圖像幀或者圖像幀發(fā)送端的桌面圖像幀等,實(shí)時(shí)地發(fā)送給圖像幀接收端,即,將連續(xù)的一系列圖像幀形成視頻流,并且通過網(wǎng)絡(luò)傳輸給圖像幀接收端,所述接收端對(duì)接收到的視頻流中的圖像幀在本地按順序連續(xù)播放,從而觀看到發(fā)送端提供的視頻圖像。本技術(shù)方案通過有選擇地對(duì)視頻流中的圖像幀進(jìn)行加解密,從而在提供一定安全性的同時(shí),有效地較少加解密操作的開銷,提升整個(gè)系統(tǒng)的性能。
本技術(shù)方案可以應(yīng)用于圖像幀發(fā)送端通過實(shí)時(shí)發(fā)送圖像幀的形式向圖像幀接收端提供視頻流、圖像幀接收端呈現(xiàn)視頻流的應(yīng)用場(chǎng)景中,其中,遠(yuǎn)程桌面應(yīng)用是常見的應(yīng)用場(chǎng)景之一,在下文中以遠(yuǎn)程桌面應(yīng)用為背景描述本申請(qǐng)的技術(shù)方案。
另外,在本技術(shù)方案中,為了提高視頻流的加密效率,圖像幀發(fā)送端可以僅對(duì)滿足預(yù)設(shè)加密條件的圖像幀進(jìn)行加密,所述預(yù)設(shè)的加密條件可以是對(duì)符合一定序位規(guī)則的圖像幀進(jìn)行加密,例如對(duì)于用于形成視頻流的奇數(shù)圖像幀或者偶數(shù)圖像幀加密,也可以是對(duì)按照預(yù)設(shè)方式承載加密指示信息的圖像幀進(jìn)行加密,例如:對(duì)在預(yù)設(shè)位置的像素點(diǎn)值與預(yù)設(shè)值一致的圖像幀進(jìn)行加密。由于第一種實(shí)施方式比較簡(jiǎn)單,因此在下文描述的實(shí)施例中重點(diǎn)以上述第二種實(shí)施方式為例進(jìn)行描述。在具體實(shí)施時(shí),也可以根據(jù)需要預(yù)先設(shè)定所需的其它加密條件,從而實(shí)現(xiàn)對(duì)圖像幀的篩選加密處理。下面對(duì)本申請(qǐng)的實(shí)施例作詳細(xì)說明。
請(qǐng)參考圖2,其為本申請(qǐng)的一種視頻加密傳輸方法的實(shí)施例的流程圖,所述方法可以在向圖像幀接收端提供視頻流的圖像幀發(fā)送端實(shí)施,包括如下步驟:
步驟201、獲取用于形成視頻流的圖像幀。
本步驟所述的圖像幀可以是采用不同方式生成的,例如可以由具有圖像生成或者處理功能的應(yīng)用程序生成,也可以是由其他工具軟件輸出的,本步驟可以采用相應(yīng)的方式從文件系統(tǒng)或者內(nèi)存獲取所述圖像幀。
在本實(shí)施例中,應(yīng)用場(chǎng)景為遠(yuǎn)程桌面應(yīng)用,因此本步驟所述的圖像幀通常是指由在圖像幀發(fā)送端運(yùn)行的應(yīng)用程序繪制的圖形用戶界面。具體實(shí)現(xiàn)時(shí),應(yīng)用程序可以通過調(diào)用系統(tǒng)提供的接口向與顯示設(shè)備對(duì)應(yīng)的顯示緩存中寫入圖像 幀,寫入顯示緩存中的圖像幀可以在顯示設(shè)備上顯示出來,因此也稱為桌面圖像幀或者畫面幀。所述圖像幀可以具有不同的格式,例如,本方法如果在臺(tái)式計(jì)算機(jī)、平板電腦等設(shè)備上實(shí)施,圖像幀通常是RGB格式的;本方法如果在智能電視等設(shè)備上實(shí)施,圖像幀通常是YUV格式的。
對(duì)于一些敏感畫面,例如:包含賬戶、密碼等關(guān)鍵信息的關(guān)鍵圖像幀,或者是包含上述關(guān)鍵信息輸入過程的關(guān)鍵圖像幀,為了避免在網(wǎng)絡(luò)傳輸過程中被截獲而導(dǎo)致關(guān)鍵信息泄露,可以對(duì)這樣的圖像幀進(jìn)行加密。具體實(shí)現(xiàn)時(shí),可以由應(yīng)用程序自行訪問底層功能模塊對(duì)需要加密的圖像幀進(jìn)行必要的加密處理,但是這樣會(huì)造成應(yīng)用程序與底層功能模塊之間的緊密耦合,增加后續(xù)對(duì)應(yīng)用程序以及底層模塊維護(hù)的工作量,而且不便于實(shí)現(xiàn)功能模塊的復(fù)用。
基于上述考慮,本技術(shù)方案提供一種優(yōu)選實(shí)施方式:由圖像幀按照預(yù)設(shè)方式承載加密指示信息,從而在應(yīng)用程序靈活選擇待加密圖像幀的同時(shí),避免了與底層功能模塊的耦合。所述圖像幀可以按照預(yù)先設(shè)定的不同方式承載加密指示信息,例如:圖像幀在預(yù)設(shè)位置的像素點(diǎn)值與預(yù)設(shè)值一致,或者圖像幀在預(yù)設(shè)位置的像素點(diǎn)值執(zhí)行特定運(yùn)算后得到的結(jié)果在預(yù)設(shè)范圍之內(nèi)等。
也就是說,應(yīng)用程序在繪制包含關(guān)鍵信息的圖像幀時(shí),例如繪制包含用戶賬戶信息的圖形用戶界面時(shí),或者繪制包含賬戶信息輸入過程的圖形用戶界面時(shí),可以按照預(yù)先設(shè)定的方式向圖像幀中寫入加密指示信息,例如,將圖像幀在預(yù)設(shè)位置的像素點(diǎn)值設(shè)置為預(yù)設(shè)值,所述預(yù)設(shè)位置可以是圖像幀的4個(gè)頂點(diǎn),對(duì)于每個(gè)像素點(diǎn)采用16位二進(jìn)制值表示的RGB圖像幀,所述預(yù)設(shè)值可以是0xFFFF。
具體實(shí)現(xiàn)時(shí),可以根據(jù)實(shí)施本方法的系統(tǒng)平臺(tái)提供的接口或者操作方式完成上述功能,例如,對(duì)于采用Linux系統(tǒng)的圖像幀發(fā)送端,可以通過訪問Framebuffer實(shí)現(xiàn)。Framebuffer也稱幀緩沖,是內(nèi)存中的顯示緩沖區(qū),寫入Framebuffer中的圖像幀可以在本地顯示設(shè)備上顯示,因此應(yīng)用程序可以通過寫Framebuffer的方式顯示圖像幀,對(duì)于需要加密的圖像幀,也可以通過寫Framebuffer的方式向圖像幀中寫入加密指示信息。應(yīng)用程序可以直接訪問、也可以通過實(shí)施本方法的系統(tǒng)平臺(tái)提供的接口訪問Framebuffer。
需要說明的是,在本實(shí)施例中,由繪制圖像幀的應(yīng)用程序預(yù)先向圖像幀中寫入加密指示信息,例如:將圖像幀在預(yù)設(shè)位置的像素點(diǎn)值設(shè)置為預(yù)設(shè)值。在 遠(yuǎn)程桌面應(yīng)用場(chǎng)景或者是其他應(yīng)用場(chǎng)景下,也可以統(tǒng)一由具備加密控制功能的服務(wù)程序完成上述功能。例如,所述服務(wù)程序可以通過模式識(shí)別等方式判斷圖像幀是否包含需要保護(hù)的信息,如果識(shí)別出這種情況則向圖像幀中寫入加密指示信息。
上面描述了在本步驟之前對(duì)圖像幀的處理過程,本步驟的主要任務(wù)是獲取所述圖像幀。具體實(shí)現(xiàn)可以是,通過截屏的方式獲取,也可以通過訪問與顯示設(shè)備對(duì)應(yīng)的顯示緩存獲取。仍沿用上述基于Framebuffer的例子,本步驟可以從Framebuffer中讀取圖像幀。
步驟202、當(dāng)所述圖像幀滿足預(yù)設(shè)的加密條件時(shí),采用預(yù)設(shè)的加密算法對(duì)其進(jìn)行加密。
本步驟采用預(yù)設(shè)的加密條件對(duì)步驟201獲取的圖像幀進(jìn)行篩選,并針對(duì)滿足預(yù)設(shè)加密條件的圖像幀進(jìn)行加密。本實(shí)施例中所述預(yù)設(shè)的加密條件為:圖像幀按照預(yù)設(shè)方式承載加密指示信息,那么本步驟可以從圖像幀中獲取相應(yīng)的信息,并判斷是否與預(yù)設(shè)的加密指示信息相符。
例如,如果預(yù)設(shè)的加密條件為:所述圖像幀在預(yù)設(shè)位置的像素點(diǎn)值與預(yù)設(shè)值一致,那么本步驟讀取所述圖像幀在每個(gè)預(yù)設(shè)位置的像素點(diǎn)值,并與預(yù)設(shè)值進(jìn)行比較,如果每個(gè)預(yù)設(shè)位置的像素點(diǎn)值都與預(yù)設(shè)值一致,則說明該圖像幀需要加密,否則不需要加密。
優(yōu)選地,考慮到原始的圖像幀數(shù)據(jù)量比較大,在傳輸過程中不僅占用較多網(wǎng)絡(luò)帶寬而且也會(huì)比較耗時(shí),為了降低數(shù)據(jù)傳輸量,可以在識(shí)別圖像幀是否需要加密后,對(duì)圖像幀進(jìn)行視頻編碼,生成編碼后圖像幀,也稱為視頻幀。例如可以采用H.264標(biāo)準(zhǔn)進(jìn)行視頻編碼,消除圖像幀存在的冗余信息。在其他實(shí)施方式中,也可以采用其他壓縮編碼方式,例如H.263或者M(jìn)PEG4等,本技術(shù)方案不作具體的限定。
完成視頻編碼后,如果在編碼前已經(jīng)識(shí)別所述圖像幀需要加密,則可以采用預(yù)設(shè)的加密算法對(duì)相應(yīng)的編碼后圖像幀(即視頻幀)進(jìn)行加密。所述預(yù)設(shè)的加密算法包括:DES(Data Encryption Standard—數(shù)據(jù)加密標(biāo)準(zhǔn))、3DES(Triple DES—三重?cái)?shù)據(jù)加密算法)、RC2、RC4、IDEA(International Data Encryption Algorithm—國(guó)際數(shù)據(jù)加密算法)、或者AES(Advanced Encryption Standard—高級(jí)加密標(biāo)準(zhǔn))算法。在具體實(shí)施時(shí),也可以采用其他加密算法,只要圖像幀接 收端接收該圖像幀后能夠采用相應(yīng)的解密算法解密即可。
如果編碼前識(shí)別所述圖像幀不需要加密,那么本步驟可以僅對(duì)圖像幀進(jìn)行視頻編碼。此外,如果圖像幀數(shù)據(jù)量比較小,或者網(wǎng)絡(luò)帶寬能夠滿足傳輸要求時(shí),也可以不進(jìn)行視頻編碼處理,這種情況下,本步驟直接對(duì)需要加密的圖像幀進(jìn)行加密即可。
步驟203、在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
本步驟對(duì)步驟202處理后的圖像幀進(jìn)行封裝,所述圖像幀可能是滿足預(yù)設(shè)加密條件并已經(jīng)加密的圖像幀,也可能是不滿足預(yù)設(shè)加密條件、因此未加密的圖像幀(如果在步驟202中進(jìn)行了視頻編碼,那么本步驟的封裝對(duì)象為編碼后圖像幀,為了便于描述以下統(tǒng)稱為圖像幀)。對(duì)于這兩種情況,可以通過在封裝信息中寫入相應(yīng)的加密標(biāo)識(shí)信息加以區(qū)分,以便于圖像幀接收端執(zhí)行正確的解密操作,并將封裝完畢后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
對(duì)圖像幀進(jìn)行封裝的過程通常是指,按照網(wǎng)絡(luò)傳輸?shù)囊?,?duì)圖像幀進(jìn)行分層封裝。例如可以封裝為TCP或者UDP報(bào)文,然后再進(jìn)行IP數(shù)據(jù)包的封裝。優(yōu)選地,考慮到傳輸層的實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol—RTP)提供了具有實(shí)時(shí)特征的端對(duì)端傳送服務(wù),并且可以帶有擴(kuò)展頭,因此本實(shí)施例采用RTP協(xié)議對(duì)圖像幀進(jìn)行封裝,并在該協(xié)議頭的擴(kuò)展頭中寫入相應(yīng)的加密標(biāo)識(shí)信息,然后再通過必要的操作封裝成IP數(shù)據(jù)包。
請(qǐng)參考圖3,其為本申請(qǐng)實(shí)施例提供的RTP協(xié)議頭格式的示意圖。其中X比特位是擴(kuò)展標(biāo)志,當(dāng)X=1時(shí),表示在RTP協(xié)議頭后跟有一個(gè)擴(kuò)展頭,本實(shí)施例在所述擴(kuò)展頭中寫入相應(yīng)的加密標(biāo)識(shí)信息。所述加密標(biāo)識(shí)信息至少包括:標(biāo)識(shí)所述圖像幀是否被加密的信息,對(duì)于被加密的圖像幀,所述加密標(biāo)識(shí)信息還可以包括:所采用的預(yù)設(shè)加密算法。
請(qǐng)參考圖4,其為本申請(qǐng)實(shí)施例提供的RTP擴(kuò)展頭格式的示意圖,其中Header Extension部分可自定義。本實(shí)施例采用如下方式將加密標(biāo)識(shí)信息寫入所述RTP擴(kuò)展頭中,Length字段的值設(shè)置為4,表示Header Extension部分占4字節(jié);Header Extension中字節(jié)0的bit[0]為加密位,對(duì)于被加密的圖像幀將該比特位設(shè)置為1,對(duì)于未加密的圖像幀則設(shè)置為0;字節(jié)0的bit[4]至bit[7]為加密類型,表明所采用的加密算法,其他位保留。
上述bit[4]至bit[7]的取值可以采用如下方式設(shè)置:1—DES算法;2—3DES算法;3—RC2算法;4—RC4算法;5—IDEA算法;6—AES算法。
在RTP擴(kuò)展頭中寫入加密標(biāo)識(shí)信息的目的,是為了告知圖像幀接收端被封裝的圖像幀是否被加密,以及所采用的加密算法,從而圖像幀接收端能夠執(zhí)行正確的解密操作。在具體實(shí)現(xiàn)時(shí),如果圖像幀的接收端和發(fā)送端端預(yù)先約定好了采用某一種固定的加密算法,那么也可以僅在RTP擴(kuò)展頭中設(shè)置相應(yīng)的加密位即可。
上面的描述給出了利用RTP擴(kuò)展頭攜帶加密標(biāo)識(shí)信息的一種具體方式,在其他實(shí)施方式中,可以在RTP擴(kuò)展頭中采用不同的比特位或者采用不同取值攜帶加密標(biāo)識(shí)信息,也可以不采用RTP協(xié)議、而采用其他協(xié)議進(jìn)行封裝,只要能夠在封裝信息中寫入所述加密標(biāo)識(shí)信息,而且圖像幀接收端能夠執(zhí)行相應(yīng)的解封裝操作并從封裝信息中提取這部分加密標(biāo)識(shí)信息,就同樣可以實(shí)現(xiàn)本技術(shù)方案。
完成上述封裝操作、并寫入相應(yīng)的加密標(biāo)識(shí)信息后,可以將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。重復(fù)執(zhí)行本方法的上述步驟,從而可以對(duì)獲取的圖像幀進(jìn)行有選擇地加密、并以視頻流的形式發(fā)送給所述接收端。
綜上所述,本申請(qǐng)?zhí)峁┑囊曨l加密傳輸方法,由于對(duì)發(fā)送給圖像幀接收端的視頻流中的圖像幀有選擇地進(jìn)行加密,即,僅對(duì)滿足預(yù)設(shè)加密條件的圖像幀進(jìn)行加密,因此在提供一定安全性保障的同時(shí),有效減少了加密操作的開銷,提高了圖像幀發(fā)送端的處理效率。特別是在遠(yuǎn)程桌面應(yīng)用中,通過對(duì)由應(yīng)用程序標(biāo)識(shí)的關(guān)鍵圖像幀進(jìn)行加密,能夠進(jìn)一步有效保證視頻流中關(guān)鍵信息的安全性。
在上述的實(shí)施例中,提供了一種視頻加密傳輸方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種視頻加密傳輸裝置。請(qǐng)參看圖5,其為本申請(qǐng)的一種視頻加密傳輸裝置的實(shí)施例示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種視頻加密傳輸裝置,包括:圖像幀獲取單元501,用于獲取用于形成視頻流的圖像幀;篩選加密單元502,用于當(dāng)所述圖像幀滿足預(yù)設(shè)的加 密條件時(shí),采用預(yù)設(shè)的加密算法對(duì)其進(jìn)行加密;封裝發(fā)送單元503,用于在封裝所述圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
可選的,所述裝置部署于遠(yuǎn)程桌面應(yīng)用的圖像幀發(fā)送端,所述圖像幀獲取單元獲取的圖像幀包括桌面圖像幀;
所述裝置還包括:
加密判斷單元,用于在觸發(fā)所述圖像幀獲取單元工作之前,由繪制所述桌面圖像幀的應(yīng)用程序判斷所述桌面圖像幀是否需要加密;
加密指示寫入單元,用于當(dāng)所述加密判斷單元的輸出為是時(shí),按照預(yù)設(shè)方式向所述桌面圖像幀中寫入加密指示信息。
可選的,所述裝置還包括:
加密預(yù)識(shí)別單元,用于識(shí)別所述圖像幀獲取單元獲取的圖像幀是否滿足預(yù)設(shè)的加密條件,并觸發(fā)所述編碼單元工作;
編碼單元,用于對(duì)所述圖像幀進(jìn)行視頻編碼,生成編碼后圖像幀;
所述篩選加密單元具體用于,采用預(yù)設(shè)的加密算法,對(duì)所述加密預(yù)識(shí)別單元已識(shí)別為滿足預(yù)設(shè)加密條件的編碼后圖像幀進(jìn)行加密;
所述封裝發(fā)送單元具體用于,在封裝所述編碼后圖像幀的過程中寫入相應(yīng)的加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
可選的,所述封裝發(fā)送單元具體用于,采用RTP協(xié)議對(duì)所述圖像幀進(jìn)行封裝,通過設(shè)置擴(kuò)展位的方式在相應(yīng)的擴(kuò)展頭中寫入所述加密標(biāo)識(shí)信息,并將封裝后的數(shù)據(jù)包發(fā)送給圖像幀接收端。
與本申請(qǐng)?zhí)峁┑囊环N視頻加密傳輸方法相對(duì)應(yīng),本申請(qǐng)還提供一種視頻解密方法,所述方法可以在圖像幀接收端實(shí)施。請(qǐng)參考圖6,其為本申請(qǐng)?zhí)峁┑囊环N視頻解密方法的實(shí)施例的流程圖,本實(shí)施例與之前提供的視頻加密傳輸方法的實(shí)施例內(nèi)容相同的部分不再贅述,下面重點(diǎn)描述不同之處。本申請(qǐng)?zhí)峁┑囊曨l解密方法包括如下步驟:
步驟601、對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,獲取圖像幀。
本步驟對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,通過解封裝可以逐層去 除為了進(jìn)行網(wǎng)絡(luò)傳輸所添加的封裝信息,從而得到被封裝的圖像幀。
由于在本技術(shù)方案中,被封裝圖像幀是否被加密的信息是由數(shù)據(jù)包封裝信息攜帶的,因此本步驟可以在解封裝的過程中獲取所述加密標(biāo)識(shí)信息,如果圖像幀發(fā)送端將加密標(biāo)識(shí)信息寫入封裝信息中的特定字段,本步驟則可以讀取封裝信息中的相應(yīng)字段。例如,本實(shí)施例所涉及的圖像幀發(fā)送端采用與上述視頻加密傳輸方法實(shí)施例中的相同方式,在RTP擴(kuò)展頭中攜帶加密標(biāo)識(shí)信息,那么在本步驟中,可以讀取RTP擴(kuò)展頭中攜帶的加密標(biāo)識(shí)信息。
步驟602、根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷所述圖像幀是否被加密;若是,執(zhí)行步驟603。
所述加密標(biāo)識(shí)信息至少包含被封裝圖像幀是否被加密的指示信息,對(duì)于被加密的圖像幀,所述加密標(biāo)識(shí)信息中還可以包含圖像幀發(fā)送端所采用的加密算法。
本步驟根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷被封裝的圖像幀是否被加密,仍沿用上述步驟601中的例子,在RTP擴(kuò)展頭中攜帶加密標(biāo)識(shí)信息,且RTP擴(kuò)展頭中包含的相應(yīng)指示信息表明被封裝的圖像幀是經(jīng)過加密的圖像幀,則執(zhí)行步驟603進(jìn)行解密,否則不用解密。
步驟603:采用相應(yīng)的解密算法對(duì)所述圖像幀進(jìn)行解密。
如果圖像幀發(fā)送端采用固定的加密算法,那么通??梢灶A(yù)先設(shè)置好與圖像幀發(fā)送端所采用的加密算法對(duì)應(yīng)的解密算法,并在本步驟采用該算法進(jìn)行解密。如果圖像幀發(fā)送端可能選擇不同的加密算法,并且在封裝信息中攜帶所采用的加密算法,那么本步驟可以采用與封裝信息中攜帶的加密算法對(duì)應(yīng)的解密算法進(jìn)行解密。
至此,通過解封裝操作獲取了圖像幀,并且對(duì)被加密的圖像幀進(jìn)行解密,如果圖像幀發(fā)送端沒有對(duì)圖像幀進(jìn)行視頻編碼處理,那么此時(shí)獲取的就是可顯示的圖像幀;如果進(jìn)行了視頻編碼處理,此時(shí)獲取的就是編碼后圖像幀,在這種情況下,可以采用與圖像幀發(fā)送端所用視頻編碼方法對(duì)應(yīng)的解碼方法,對(duì)所述編碼后圖像幀進(jìn)行解碼,得到可顯示的圖像幀。
進(jìn)一步地,得到可顯示的圖像幀后,可以在顯示設(shè)備上顯示所述圖像幀。對(duì)于遠(yuǎn)程桌面應(yīng)用來說,此時(shí)得到的圖像幀是圖像幀發(fā)送端的桌面圖像幀,對(duì)于支持Framebuffer技術(shù)的系統(tǒng)平臺(tái)來說,可以將得到的圖像幀寫入Framebuffer 中,從而將圖像幀發(fā)送端的桌面圖像在本地呈現(xiàn)出來。重復(fù)執(zhí)行本方法的上述步驟,將接收到的視頻流中的每個(gè)圖像幀連續(xù)呈現(xiàn)出來,就可以觀看到圖像幀發(fā)送端提供的視頻圖像。
由此可見,本申請(qǐng)?zhí)峁┑囊曨l解密方法,由于僅需要對(duì)接收到的視頻流中的圖像幀有選擇地進(jìn)行解密,即,僅對(duì)由封裝信息攜帶的加密指示信息指定的圖像幀進(jìn)行解密,因此有效減少了解密操作的開銷,提高了圖像幀接收端的處理效率。
在上述的實(shí)施例中,提供了一種視頻解密方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種視頻解密裝置。請(qǐng)參看圖7,其為本申請(qǐng)的一種視頻解密裝置的實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種視頻解密裝置,包括:解封裝單元701,用于對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,獲取圖像幀;加密判斷單元702,用于根據(jù)數(shù)據(jù)包封裝信息中攜帶的加密標(biāo)識(shí)信息判斷所述圖像幀是否被加密;解密單元703,用于當(dāng)所述加密判斷單元的輸出為是時(shí),采用相應(yīng)的解密算法對(duì)所述圖像幀進(jìn)行解密。
可選的,所述加密判斷單元具體用于,根據(jù)用于封裝所述圖像幀的RTP擴(kuò)展頭中攜帶的加密標(biāo)識(shí)信息,判斷所述圖像幀是否被加密。
可選的,所述裝置還包括:
解碼單元,用于在所述加密判斷單元輸出為否、或者所述加密判斷單元輸出為是且所述解密單元處理完畢后,如果得到的圖像幀為進(jìn)行視頻編碼處理后的編碼后圖像幀,則采用與圖像幀發(fā)送端所采用的視頻編碼方法對(duì)應(yīng)的解碼方法,對(duì)所述編碼后圖像幀進(jìn)行解碼,得到圖像幀。
可選的,所述裝置還包括:
顯示單元,用于顯示當(dāng)所述加密判斷單元輸出為否、或者所述加密判斷單元輸出為是且所述解密單元處理完畢后,所得到的圖像幀。
可選的,所述裝置部署于遠(yuǎn)程桌面應(yīng)用的圖像幀接收端,由所述顯示單元顯示的圖像幀包括:圖像幀發(fā)送端的桌面圖像幀。
與本申請(qǐng)?zhí)峁┑囊曨l加密傳輸方法、視頻解密方法及相應(yīng)裝置相對(duì)應(yīng),本申請(qǐng)還提供一種視頻加密傳輸系統(tǒng)。請(qǐng)參考圖8,其為本申請(qǐng)?zhí)峁┑囊环N視頻加密傳輸系統(tǒng)的實(shí)施例的示意圖,本實(shí)施例與之前提供的各實(shí)施例內(nèi)容相同的部分不再贅述,下面重點(diǎn)描述不同之處。
本申請(qǐng)?zhí)峁┑囊曨l加密傳輸系統(tǒng)包括:視頻加密傳輸裝置801和視頻解密裝置802。所述視頻加密傳輸裝置和視頻解密裝置,可以部署于臺(tái)式電腦,也可以部署于移動(dòng)終端設(shè)備或者智能電視設(shè)備,但并不局限于此處列舉的上述設(shè)備,可以是能夠?qū)崿F(xiàn)本申請(qǐng)所提供的視頻加密傳輸方法或視頻解密方法的任何設(shè)備。
下面以在遠(yuǎn)程桌面應(yīng)用中采用本系統(tǒng)為例,對(duì)本系統(tǒng)的工作流程作進(jìn)一步說明。請(qǐng)參考附圖9,其為本實(shí)施例提供的遠(yuǎn)程桌面應(yīng)用的實(shí)現(xiàn)方式的示意圖。
位于圖像幀發(fā)送端的視頻加密傳輸裝置從本地Framebuffer中獲取桌面圖像幀,根據(jù)預(yù)設(shè)的加密條件識(shí)別所述圖像幀是否需要加密,然后采用H.264編碼器進(jìn)行視頻編碼,生成視頻幀,對(duì)于已識(shí)別為需要加密的圖像幀在編碼后進(jìn)行加密,然后將處理完畢的視頻幀進(jìn)行封裝,在封裝信息中寫入視頻幀是否被加密的加密指示信息,并將封裝好的數(shù)據(jù)包發(fā)送給圖像幀接收端。
位于圖像幀接收端一側(cè)的視頻解密裝置對(duì)接收到的視頻流中的數(shù)據(jù)包進(jìn)行解封裝,獲取視頻幀,并根據(jù)封裝數(shù)據(jù)中攜帶的加密指示信息對(duì)被加密的視頻幀進(jìn)行解密,然后對(duì)視頻幀進(jìn)行視頻解碼,得到圖像幀,并可以進(jìn)一步將圖像幀輸出到Framebuffer中從而在顯示設(shè)備上顯示。
視頻加密傳輸裝置和視頻解密裝置重復(fù)執(zhí)行上述處理過程,將圖像幀發(fā)送端提供的圖像幀以視頻流的形式實(shí)時(shí)傳輸給圖像幀接收端,并在圖像幀接收端顯示設(shè)備上呈現(xiàn)出來。由于所述發(fā)送端和接收端有選擇地對(duì)視頻流中的圖像幀進(jìn)行加解密,從而在提供一定安全性保障的同時(shí),減少加解密操作的開銷,提高整個(gè)系統(tǒng)的處理效率。
此外,本申請(qǐng)還提供一種加密控制方法。請(qǐng)參考圖10,其為本申請(qǐng)?zhí)峁┑囊环N加密控制方法的實(shí)施例的流程圖,本實(shí)施例與之前提供的各實(shí)施例內(nèi)容相同的部分不再贅述,下面重點(diǎn)描述不同之處。本申請(qǐng)?zhí)峁┑募用芸刂品椒òㄈ缦虏襟E:
步驟1001、判斷圖像幀是否需要加密,若需要,執(zhí)行步驟1002。
在具體實(shí)現(xiàn)時(shí),可以根據(jù)不同的應(yīng)用場(chǎng)景采用不同的方式判斷圖像幀是否需要加密。下面列舉一些可能的實(shí)現(xiàn)方式。
對(duì)于組成視頻流中的圖像幀,可以按照預(yù)先設(shè)定的策略根據(jù)圖像幀在視頻流中的位置判定其是否需要加密,例如選擇對(duì)奇數(shù)幀加密或者偶數(shù)幀加密;也可以采用模式識(shí)別技術(shù),當(dāng)識(shí)別出圖像幀中存在預(yù)先設(shè)定的需要保護(hù)的內(nèi)容時(shí),則判定其需要加密。
此外,當(dāng)圖像幀為桌面圖像幀時(shí),如果桌面圖像幀是包含關(guān)鍵信息、或者關(guān)鍵信息輸入過程的關(guān)鍵圖像幀,那么可以判定這樣的圖像幀為需要加密的圖像幀,所述關(guān)鍵信息包括以下所列元素中的一種或者組合:賬戶信息、密碼信息。在具體實(shí)現(xiàn)時(shí),可以由繪制桌面圖像幀的應(yīng)用程序作出上述判斷,例如:應(yīng)用程序要繪制包含密碼輸入界面的圖像幀,那么所述圖像幀以及隨后繪制的包含密碼輸入過程的圖像幀就可以認(rèn)為是需要加密的圖像幀。
步驟1002、按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息。
所述按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息包括:將所述圖像幀在預(yù)設(shè)位置的像素點(diǎn)值設(shè)置為預(yù)設(shè)值。
例如,在遠(yuǎn)程桌面應(yīng)用中,在圖像幀發(fā)送端運(yùn)行的應(yīng)用程序可以向Framebuffer中寫入圖像幀,所述圖像幀可以在圖像幀發(fā)送端的本地顯示設(shè)備上顯示,如果應(yīng)用程序判定寫入Framebuffer的圖像幀需要加密,則可以向Framebuffer中寫入加密指示信息。從而底層負(fù)責(zé)加密的模塊在從Framebuffer中讀取圖像幀后,可以根據(jù)圖像幀自身攜帶的加密指示信息,有選擇地進(jìn)行加密。
由此可見,采用本申請(qǐng)?zhí)峁┑募用芸刂品椒?,使得圖像幀具有自我描述是否加密的特性,成為傳達(dá)加密控制信息的媒介,可以避免上層應(yīng)用對(duì)底層加密模塊的直接訪問,簡(jiǎn)化控制流程。特別是應(yīng)用于遠(yuǎn)程桌面系統(tǒng)中,由繪制桌面圖像幀的應(yīng)用程序?qū)⒓用苤甘拘畔懭雸D像幀中,不僅可以靈活控制視頻流中的任意圖像幀是否需要加密,而且可以避免應(yīng)用程序與底層處理模塊之間的耦合。
在上述的實(shí)施例中,提供了一種加密控制方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種加密控制裝置。請(qǐng)參看圖11,其為本申請(qǐng)的一種加密控制裝置的實(shí)施 例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種加密控制裝置,包括:圖像幀加密判斷單元1101,用于判斷圖像幀是否需要加密;加密指示寫入單元1102,用于當(dāng)所述圖像幀加密判斷單元的輸出為是時(shí),按照預(yù)先設(shè)定的方式向所述圖像幀中寫入加密指示信息。
本申請(qǐng)雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。