專利名稱:富媒體文件加解密方法及系統的制作方法
技術領域:
本發明涉及數據加密技術領域,尤其涉及一種富媒體文件加解密方法及系統。
背景技術:
由于現今網絡技術的不斷發展,信息流通更加快速,相對于傳統的紙質書籍,越來越多的用戶更加傾向于通過電子書來更快捷的獲得信息。目前,市場上,存在很多的富媒體電子書閱讀器和發行平臺,為了對發行的電子書的版權進行保護,一般需要對電子書的數據進行加密,用戶需要閱讀電子書時,需要使用特定的閱讀軟件對電子書解密后才能進行閱讀。現有技術中電子書發行者對電子書的加密一般需要解析電子書的格式,然后再對解析后的電子書進行加密。這種加密方式存在以下的缺陷和問題I)缺乏對內容數據的有效保護;2)在效率上犧牲太大,與現有終端輸入/輸出能力較弱的特征不符;以PDF格式的文件為例,如果按傳統加密方式,解密一個150K的加密文件,在幾秒內(終端實測數據)可以完成,但是如果解密一個150M的文件,在I/O能力較弱的終端上,則可能需要數十秒,而用戶在閱讀時是不可能等待這么長的時間的;3)加密模式脆弱,加密完成后,分發到各終端,一旦被破解,則所有終端都可以閱4)只能加密自己特定格式的電子書,而對公開格式的H)F、EpUb等格式電子書,無法提供有效的保護措施。
發明內容
(一)要解決的技術問題本發明要解決的技術問題是提供一種加解密速度高、保護有效的富媒體文件加解密方法及系統。(二)技術方案為解決上述問題,一方面,本發明提供了一種富媒體文件加解密方法,包括以下步驟S1:服務器端生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;S2:按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;
S3:用戶端獲得所述文件密鑰和加密文件,根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到原始文件。優選地,進一步包括生成內存密鑰,所述內存密鑰設定了數據打亂區的大小以及所述數據打亂區的流動軌跡;在所述步驟S2之前,根據所述內存密鑰設定的數據打亂區的流動軌跡中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;所述步驟S2和S3中的原始文件為包含所述數據打亂區的原始文件;用戶端獲得所述內存密鑰,在所述步驟S3得到所述包含數據打亂區的原始文件后,根據所述內存密鑰對包含數據打亂區的原始文件中的數據打亂區進行還原,得到原始文件;用戶端每閱讀一次原始文件后,內存密鑰根據所述設定的流動軌跡中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;用戶端下一次閱讀文件時,通過內存密鑰還原所述數據打亂區的數據,得到原始文件后才能進行閱讀。優選地,所述內存密鑰設定的數據打亂區的流動軌跡每次設定至少一個數據打亂區位置。優選地,形成所述數據打亂區的速度快于加密所述數據片段的速度。優選地,用戶端無網絡服務時,所述用戶端獲得內存密鑰的步驟具體為根據獲得的文件密鑰模擬推算出所述內存密鑰。優選地,用戶端有網絡服務時,所述用戶端獲得內存密鑰的步驟具體為用戶端通過用戶端與服務器之間的網絡連接從所述服務器獲得所述內存密鑰。另一方面,本發明還提供了一種富媒體文件加解密系統,包括服務器端和用戶端,
所述服務器端包括服務器端文件系統,所述服務器端文件系統用于生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;加密模塊,用于按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;服務器端輸入輸出接口,用于輸出所述文件密鑰和加密文件;所述用戶端包括用戶端輸入輸出接口,用于獲得所述文件密鑰和加密文件;解密模塊,用于根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到還原的原始文件。優選地,所述服務器端進一步包括內存密鑰生成模塊,用于生成內存密鑰,所述內存密鑰設定了數據打亂區的大小以及所述數據打亂區的流動軌跡;服務器端數據打亂區形成模塊,用于根據所述內存密鑰設定的數據打亂區的流動軌跡中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;所述用戶端進一步包括用戶端數據打亂區還原模塊,用于根據所述內存密鑰對包含數據打亂區的原始文件中的數據打亂區進行還原;
用戶端數據打亂區形成模塊,用于在用戶端每閱讀一次原始文件后,通過內存密鑰根據所述設定的流動軌跡中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區。優選地,所述服務器端與所述用戶端通過網絡連接,所述用戶端輸入輸出接口,還用于通過所述網絡連接從所述服務器獲得所述內存密鑰。(三)有益效果本發明對發布平臺發布的電子書籍等富媒體文件進行加密時不對整個文件加密,而是僅對文件的數據片段進行加解密,提高了文件加、解密的速度,讓普通用戶感知不到加解密帶來的系統延遲和消耗,在一些運算、輸入/輸出能力偏弱的終端設備上,實現了用最小代價,盡可能的保護更多的內容;由于本發明針對文件的數據片段進行加密,無論是自有特定格式或常用格式書籍,都能正確接入,適用范圍廣,并且把系統消耗降到了最低;本發明對文件加密時,加密的粒度、數據片段的大小等都可以根據需要設置,可以針對不同類型內容的文件,設置加密區域密度權值,以達到根據業務靈活自由選擇加密偏重的目的;本發明通過使用流動的數據打亂區,對文件形成動態保護,避免在解密產生原始文件后被拷貝走的問題,用戶端每讀一次文件數據,磁盤上的文件數據中都會產生依次數據打亂區,即使此時文件數據被拷走,同樣無法正常使用。
圖1為根據本發明實施例一種富媒體文件加解密方法的步驟流程圖;圖2為根據本發明實施例另一種富媒體文件加解密方法的步驟流程圖;圖3為根據本發明實施例另一種富媒體文件加解密方法的流程示意圖。
具體實施例方式下面結合附圖及實施例對本發明進行詳細說明如下。圖1所示為本發明一個實施例富媒體文件加解密方法的步驟流程圖,所述富媒體文件加解密方法包括以下步驟SllO :服務器端生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;S120:按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;S130:用戶端獲得所述文件密鑰和加密文件,根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到原始文件。服務器對電子書籍等富媒體文件進行加密時不對整個文件加密,而是僅抽取文件中的若干數據片段進行加解密,提高了文件加、解密的速度,讓普通用戶感知不到加解密帶來的系統延遲和消耗,例如使用本實施例的片段加密技術,加解密一個150M的文件,與加解密一個150K的文件的速度幾乎一樣。本實施例還可以針對不同類型的內容文件,設置加密區域密度權值,以達到根據業務靈活自由選擇加密偏重且不影響速度的效果。此外,本實施例的加密是以文件數據作為操作目標的,對文件的格式沒有要求,對于可能隨時更新新格式書籍的發布平臺來說,不必每次更新都更改加密算法,適用性廣。圖2和圖3所示為本發明另一個實施例富媒體文件加解密方法的流程圖,所述富媒體文件加解密方法包括以下步驟S210 :服務器端生成文件密鑰201和內存密鑰202,所述文件密鑰201設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡205,所述內存密鑰202設定了數據打亂區的大小以及所述數據打亂區的流動軌跡203 ;S220 :根據所述內存密鑰202設定的數據打亂區的流動軌跡203中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;S230 :按照所述文件密鑰201設定的片段與片段間的移動軌跡205在包含所述數據打亂區的原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段204a進行加密,得到加密文件204 ;S240 :用戶端獲得所述加密文件204、文件密鑰201和內存密鑰202,根據所述文件密鑰201設定的片段與片段間的移動軌跡205在加密文件204中依次獲得被加密的數據片段204a進行解密,所有被加密的數據片段204a都被解密后得到包含所述數據打亂區的原始文件;S250 :根據所述內存密 鑰202對包含數據打亂區的原始文件中的數據打亂區進行還原,得到原始文件;S260 :用戶端每閱讀一次原始文件后,內存密鑰202根據所述設定的流動軌跡203中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;用戶端下一次閱讀文件時,通過內存密鑰202還原所述數據打亂區的數據,得到原始文件后才能進行閱讀。在本實施例中,所述內存密鑰202設定的數據打亂區的流動軌跡203每次設定至少一個數據打亂區位置。所述數據打亂區根據需要,還可以設為多個。其中,形成所述數據打亂區的速度快于加密所述數據片段204a的速度。用戶端無網絡服務時,所述用戶端根據獲得的文件密鑰201模擬推算出所述內存密鑰202 ;用戶端有網絡服務時,所述用戶端通過用戶端與服務器之間的網絡連接從所述服務器獲得所述內存密鑰202。在本實施例中,每對加密文件進行解密一次還原后,都會把各個加密片段按隨機軌跡移動一次,以避免有人通過比對文件內容來進行惡意破解。本實施例中,所述富媒體文件包括由數據構成的文字資源、音頻資源、視頻資源以及圖片資源。為保證安全性,從靜態保護出發,通過文件密鑰使得每次解密后片段按軌跡移動,確保不被人進行文件對比來進行破解。從動態保護出發,為避免在解密產生原始文件后被拷貝走的問題,富媒體文件里維護著一個亂數運算的數據“黑洞”——即數據打亂區,用來打亂書籍內容數據,黑洞被內存密鑰控制在書籍文件中流動,終端閱讀模塊每讀一次書籍數據,磁盤上的書籍文件中都會包含一次不可逆的亂數數據跳動,即使此時書籍被拷走,同樣無法正常使用。
本發明的實施例還記載了一種實現上述加解密方法的富媒體文件加解密系統,包括服務器端和用戶端,所述服務器端包括服務器端文件系統,所述服務器端文件系統用于生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;加密模塊,用于按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;服務器端輸入輸出接口,用于輸出所述文件密鑰和加密文件;所述用戶端包括用戶端輸入輸出接口,用于獲得所述文件密鑰和加密文件;解密模塊,用于根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到還原的原始文件。本實施例中,所述服務器端進一步包括內存密鑰生成 模塊,用于生成內存密鑰,所述內存密鑰設定了數據打亂區的大小以及所述數據打亂區的流動軌跡;服務器端數據打亂區形成模塊,用于根據所述內存密鑰設定的數據打亂區的流動軌跡中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;所述用戶端進一步包括用戶端數據打亂區還原模塊,用于根據所述內存密鑰對包含數據打亂區的原始文件中的數據打亂區進行還原;用戶端數據打亂區形成模塊,用于在用戶端每閱讀一次原始文件后,通過內存密鑰根據所述設定的流動軌跡中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區。本實施例中,所述服務器端與所述用戶端通過網絡連接,所述用戶端輸入輸出接口,還用于通過所述網絡連接從所述服務器獲得所述內存密鑰。本實施例中雙密鑰的設計,不是為了備份,而是集互補互證為一體,文件密鑰控制存放在服務器端和用戶端的文件系統中,文件密鑰可以推算出內存密鑰,內存密鑰存放在服務器端,內存密鑰可以驗證文件密鑰,文件密鑰最大可能上阻止了文件被靜態分析拷貝。內存密鑰又稱為網絡密鑰,它在無網絡服務時由文件密鑰模擬生成,執行最嚴格低保,當網絡服務存在時,內存密鑰則通過與平臺交換數據來進行書籍文件的保護,此模式下數據打亂區亂數運算保護將降到最低代價。以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。
權利要求
1.一種富媒體文件加解密方法,其特征在于,包括以下步驟S1:服務器端生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;S2:按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;S3 :用戶端獲得所述文件密鑰和加密文件,根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到原始文件。
2.如權利要求1所述的富媒體文件加解密方法,其特征在于,進一步包括生成內存密鑰,所述內存密鑰設定了數據打亂區的大小以及所述數據打亂區的流動軌跡;在所述步驟S2之前,根據所述內存密鑰設定的數據打亂區的流動軌跡中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;所述步驟S2和S3中的原始文件為包含所述數據打亂區的原始文件;用戶端獲得所述內存密鑰,在所述步驟S3得到所述包含數據打亂區的原始文件后,根據所述內存密鑰對包含數據打亂區的原始文件中的數據打亂區進行還原,得到原始文件;用戶端每閱讀一次原始文件后,內存密鑰根據所述設定的流動軌跡中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;用戶端下一次閱讀文件時,通過內存密鑰還原所述數據打亂區的數據,得到原始文件后才能進行閱讀。
3.如權利要求2所述的富媒體文件加解密方法,其特征在于,所述內存密鑰設定的數據打亂區的流動軌跡每次設定至少一個數據打亂區位置。
4.如權利要求2所述的富媒體文件加解密方法,其特征在于,形成所述數據打亂區的速度快于加密所述數據片段的速度。
5.如權利要求2所述的富媒體文件加解密方法,其特征在于,用戶端無網絡服務時,所述用戶端獲得內存密鑰的步驟具體為根據獲得的文件密鑰模擬推算出所述內存密鑰。
6.如權利要求2所述的富媒體文件加解密方法,其特征在于,用戶端有網絡服務時,所述用戶端獲得內存密鑰的步驟具體為用戶端通過用戶端與服務器之間的網絡連接從所述服務器獲得所述內存密鑰。
7.一種富媒體文件加解密系統,其特征在于,包括服務器端和用戶端,所述服務器端包括服務器端文件系統,所述服務器端文件系統用于生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;加密模塊,用于按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;服務器端輸入輸出接口,用于輸出所述文件密鑰和加密文件;所述用戶端包括用戶端輸入輸出接口,用于獲得所述文件密鑰和加密文件;解密模塊,用于根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到還原的原始文件。
8.如權利要求7所述的富媒體文件加解密系統,其特征在于,所述服務器端進一步包括內存密鑰生成模塊,用于生成內存密鑰,所述內存密鑰設定了數據打亂區的大小以及所述數據打亂區的流動軌跡;服務器端數據打亂區形成模塊,用于根據所述內存密鑰設定的數據打亂區的流動軌跡中對應的當前數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區;所述用戶端進一步包括用戶端數據打亂區還原模塊,用于根據所述內存密鑰對包含數據打亂區的原始文件中的數據打亂區進行還原;用戶端數據打亂區形成模塊,用于在用戶端每閱讀一次原始文件后,通過內存密鑰根據所述設定的流動軌跡中下一個數據打亂區位置打亂所述原始文件中對應區域的文件數據,形成所述數據打亂區。
9.如權利要求7所述的富媒體文件加解密系統,其特征在于,所述服務器端與所述用戶端通過網絡連接,所述用戶端輸入輸出接口,還用于通過所述網絡連接從所述服務器獲得所述內存密鑰。
全文摘要
本發明公開了一種富媒體文件加解密方法和系統,所述方法包括以下步驟S1服務器端生成文件密鑰,所述文件密鑰設定了片段加密的粒度、片段大小、以及片段與片段間的移動軌跡;S2按照所述設定的片段與片段間的移動軌跡在原始文件中依次抽取與所述設定的加密粒度和大小對應的數據片段進行加密,得到加密文件;S3用戶端獲得所述文件密鑰和加密文件,根據所述文件密鑰設定的片段與片段間的移動軌跡在加密文件中依次獲得被加密的數據片段進行解密,所有被加密的數據片段都被解密后得到原始文件。本發明對富媒體文件進行加密時不對整個文件加密,而是僅對數據片段進行加解密,提高了文件加解密的速度,讓用戶感知不到加解密帶來的系統延遲和消耗。
文檔編號H04L9/06GK103067382SQ20121057692
公開日2013年4月24日 申請日期2012年12月26日 優先權日2012年12月26日
發明者燕軍 申請人:北京乾元利恒科技有限公司