一種向avi文件添加drm信息的方法
2023-05-24 05:26:01 1
專利名稱::一種向avi文件添加drm信息的方法
技術領域:
:本發明涉及數字版權管理(DRM)技術。
背景技術:
:隨著計算機網絡,尤其是寬帶網絡和無線網絡的快速發展,越來越多的電影開始在網際網路上進行發布和流傳。正規的獲取媒體文件的方式是獲取相應的授權後下載,可是越來越多的未經授權的媒體文件的出現,將極大地損害版權所有人的利益。這些文件非常容易傳播和分發,並且有著和正版一樣的質量,基於此,針對數字信息的版權保護顯得越來越重要。用於加強保護數位化的音視頻節目內容的版權的技術,如數字版權管理技術就應運而生了,通過這些技術可以保證這些內容的完整性以及它們被用於合法的用途。AVI(音視頻交叉,AudioVideoInterleave)是一種常見的文件格式,為了對AVI文件進行內容保護,必須向AVI文件裡面添加DRM信息,傳統的添加DRM信息的方法是對整個文件按照DRM的格式進行封裝,但是這樣會破壞AVI原有的文件格式,這樣就不得不修改播放器,否則就無法正常播放文件。同時,傳統的方法沒有考慮到AVI文件可能被損壞,添加的DRM信息可能被篡改,這樣就無法保證內容的完整性。
發明內容本發明所要解決的技術問題是,提供一種不會破壞AVI文件原有結構的DRM信息添加方法,同時也能保證文件內容和DRM信息的完整性。本發明為解決上述技術問題所採用的技術方案是,一種向AVI文件添加DRM信息的方法,包括以下步驟a、在AVI文件中添加垃圾塊,垃圾塊的數據部分為DRM信息;b、修改AVI文件長度信息;c、對整個AVI文件添加籤名數據。本發明的實現根據DRM信息添加位置分為以下兩種情況1、在AVI文件頭添加垃圾塊,具體包括以下步驟1)解析AVI文件,査找電影列表;2)在電影子列表前,添加垃圾塊。2、直接在AVI文件末尾添加垃圾塊。具體的,步驟b具體為判斷是否有索引塊,如有,修改索引塊中每個數據塊的偏移量,將每個數據塊的偏移量增加上添加的垃圾塊的長度;如否,修改從AVI文件開頭第5個字節開始的文件大小部分,將文件大小部分中存儲的文件長度加上添加的垃圾塊的長度。本發明的有益效果是,不會破壞AVI文件結構,播放器能夠正常播放文件;同時對文件進行籤名,保證了文件內容和DRM信息的完整性。具體實施例方式首先介紹AVI文件的結構。AVI屬於RIFF(資源交叉文件格式ResourceInterchangeFileFormat)。AVI文件包含三部分文件頭、數據塊和索引塊。其中文件頭包括文件的通用信息,定義數據格式,所用的壓縮算法等參數;數據塊包含實際數據流,即圖像和聲音序列數據;索引塊包括數據塊列表和它們在文件中的位置,以提供文件內數據隨機存取能力AVI文件使用四字符碼FOURCC(四字符碼Four-CharacterCode)來表徵數據類型。AVI文件的文件結構如下表所示formulaseeoriginaldocumentpage4由4部分組成四字符碼'RIFF'、文件大小部分、文件類型部分、實際數據部分。最開始的4個字節是一個四字符碼'RIFF',表示這是一個RIFF文件(AVI文件是RIFF文件的一種);緊跟著後面用4個字節的文件大小部分表示此文件的大小;文件類型部分又是一個四字符碼,用來說明文件的具體類型為AVI;最後就是實際數據部分。AVI文件的實際數據中,通常還使用了列表(LIST)和塊(chunk)的形式來組織。列表可以嵌套子列表和塊。實際數據部分由兩個列表+—個可選的索引塊(indexchunk)組成。其中,一個列表為頭列表(LISThdrl),用於描述AVI文件中各個媒體流的格式信息;另一個列表為電影列表(LISTmovi),用於保存媒體流數據。AVI文件的實際數據部分的格式如下表tableseeoriginaldocumentpage4頭列表(LISThdrl)嵌套了一系列塊和子列表。首先是一個AVI頭塊(avihchunk),用於記錄AVI文件的全局信息。然後,是一個或多個流子列表(LISTstrl),AVI文件中有多少個媒體流,對應就有多少個流子列表。如果一個AVI文件包含有索引塊,則應在AVI頭塊的全局標記dwFlags中含有本AVI文件包含索引信息的標記。電影列表(LISTmovi)是AVI文件必需的第二個列表列表,用於保存真正的媒體流數據(視頻圖像幀數據或音頻採樣數據等)。數據塊可以直接嵌在電影列表裡面,也可以將幾個數據塊分組成一個記錄列表(LISTrec)後再編排進電影列表。最後,緊跟在頭列表和電影列表之後的,就是AVI文件可選的索引塊。這個索引塊為AVI文件中每一個媒體數據塊進行索引,並且記錄它們在文件中的偏移。索引塊使用一個四字符碼'idxl'(版本號為l的索引Indexl)來表徵。垃圾塊(JUNKchunk)用一個四字符碼'JUNK'來表徵,它用於內部數據的對齊(填充),對填充數據的內容沒有要求,但是要求數據長度為偶數個字節。它通常放在LISTmovi前面或文件末尾,應用程式應該忽略這些數據塊的實際意義。它的格式如下JUNK數據大小填充數據以上為AVI文件結構描述,下面將根據DRM信息添加位置分兩種情況描述添加流程一、當DRM信息添加到文件頭中時流程如下(1)打開AVI文件,將文件指針從最開始向後移動12個字節。前12個字節包含了四字符碼'RIFF'、文件大小部分、文件類型部分;(2)尋找LISThdrl;(3)在LISThdrl下一層尋找avihchunk,讀取avihchunk的信息判斷文件尾部還有索引信息;(4)跑fe出LISThdrl,尋找LISTmovi;(5)在"LISTmovi"前面添加JUNKchunk,JUNKchunk的數據部分長度應該是偶數個字節,遵循如下格式JUNK(4位元組)DRM數據大小(4位元組)DRM數據(6)如果文件包含索引信息,則跳出"LISTmovi"這一層,接著向後尋找idxlchunk,修改idxlchunk中每個數據塊的偏移量,即將每個偏移值再加上新添加JUNKchunk的長度(包含標記和長度欄位)。文件沒有包含索引信息,也要修改文件長度信息,即修改從AVI文件開頭第5個字節開始的文件大小部分,將文件大小部分中存儲的文件長度加上添加的JUNKchunk的長度;(7)對添加了DRM信息的AVI文件計算籤名值,並追加到文件末尾。追加的籤名遵循如下格式"SIGN"長度("meth"長度(籤名算法標識)"data"長度(實際的籤名數據))二、當DRM信息添加到文件末尾時流程如下(1)在文件末尾前面添加JUNKchunk,JUNKchunk的數據部分部分包含了DRM信息,長度應該是偶數個字節,遵循格式同上。(2)修改文件長度信息,即修改從AVI文件開頭第5個字節開始的文件大小部分,將文件大小部分中存儲的文件長度加上添加的JUNKchunk的長度。(3)對添加了DRM信息的文件計算籤名值,並追加到文件末尾。追加的籤名遵循格式同上。AVI文件是使用DRM伺服器端的私鑰進行籤名的,因此客戶端的DRM代理在使用此AVI文件時首先要獲得DRM伺服器端的公鑰,使用公鑰對文件的籤名進行驗證,驗證通過則說明文件沒有被篡改,否則文件無效。DRM代理要獲取DRM信息是非常簡單的如果DRM信息在文件末尾只需要把文件末尾JNUK的數據部分讀出來;如果在文件頭中就從文件開頭搜索到"LISTmovi"前一個JUNKchunk,把它的數據部分讀出來即可。本發明的優點是添加DRM信息的位置可以根據實際需要選擇在文件頭或文件末尾或兩者都加,非常靈活,同時也不會破壞AVI文件的原有結構,播放器照樣能夠播放,通用性極強。另外通過向文件末尾添加數字籤名,文件內容和DRM信息的完整性得到了保護,安全性進一步增強。本發明適用於銷售電影,或者電視直播、點播,或者是遠程多媒體教育、遠程會議。權利要求1.一種向AVI文件添加DRM信息的方法,其特徵在於,包括以下步驟a、在AVI文件中添加垃圾塊,垃圾塊的數據部分為DRM信息;b、修改AVI文件長度信息;c、對整個AVI文件添加籤名數據。全文摘要本發明涉及數字版權管理(DRM)技術。本發明所要解決的技術問題是,提供一種不會破壞AVI文件原有結構的DRM信息添加方法。本發明所採用的技術方案包括以下步驟a.在AVI文件中添加垃圾塊,垃圾塊的數據部分為DRM信息;b.修改AVI文件長度信息;c.對整個AVI文件添加籤名數據。本發明的有益效果是,不會破壞AVI文件結構,播放器能夠正常播放文件;同時對文件進行籤名,保證了文件內容和DRM信息的完整性。文檔編號H04N5/913GK101207773SQ20071020290公開日2008年6月25日申請日期2007年12月6日優先權日2007年12月6日發明者劉賢洪,焜陳申請人:四川長虹電器股份有限公司