CN109561323B - Mp4文件加密、解密方法及装置 - Google Patents
Mp4文件加密、解密方法及装置 Download PDFInfo
- Publication number
- CN109561323B CN109561323B CN201910000637.3A CN201910000637A CN109561323B CN 109561323 B CN109561323 B CN 109561323B CN 201910000637 A CN201910000637 A CN 201910000637A CN 109561323 B CN109561323 B CN 109561323B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- key
- extracted
- extraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000000605 extraction Methods 0.000 claims abstract description 94
- 230000006870 function Effects 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical class C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 9
- 230000000694 effects Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
- H04N21/63345—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Abstract
本发明公开了一种MP4文件加密、解密方法及装置,属于信息安全技术领域。该方法包括:解析待加密的MP4文件,得到所述待加密的MP4文件中各个数据块的偏移量和大小;根据所述各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件;采用填充数据对抽取后的所述MP4文件进行填充,得到MP4密文文件。这种加密方法,只对MP4文件中各个数据块进行抽取,不会加密MP4文件的多媒体信息数据,且加密的方式是抽取,所以加密后的MP4文件仍然可以播放预览;同时,由于加密方式为抽取加填充,不需要所有的位都加密,加密工作量小,节省了处理时间和处理资源。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种MP4文件加密、解密方法及装置。
背景技术
随着移动影像专家组(Moving Picture Experts Group 4,MP4)文件在互联网上的应用越来越广泛,针对MP4文件的安全保密问题成为了人们关注的焦点。
通常,MP4文件的加密方式如下:将MP4文件当成一个二进制数据文件,对该MP4文件的所有数据进行按位加密。
这种加密方式一方面加密了MP4文件的多媒体信息数据,导致加密后的文件无法采用播放软件播放预览;另一方面,由于是按位加密,对于数据量较大的MP4文件而言,加密时间长,花费的计算资源多。
发明内容
本发明实施例提供了一种MP4文件加密、解密方法及装置,用以解决MP4文件加密后无法播放以及加密时间长、花费资源多等问题。所述技术方案如下:
一方面,本发明实施例提供了一种MP4文件加密方法,所述MP4文件加密方法包括:
解析待加密的MP4文件,得到所述待加密的MP4文件中各个数据块的偏移量和大小;
根据所述各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例;
采用填充数据对抽取后的所述MP4文件进行填充,得到MP4密文文件。
在本发明实施例的一种实现方式中,所述解析待加密的MP4文件,包括:
获取所述待加密的MP4文件中的样本列表盒子;
根据所述待加密的MP4文件中的样本列表盒子,确定所述各个数据块的偏移量和大小。
在本发明实施例的一种实现方式中,所述按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,包括:
根据所述抽取比例和抽取规则确定每个所述数据块中的抽取位置;
按照各个所述数据块中的抽取位置,分别从各个所述数据块的关键帧和非关键帧中抽取数据。
在本发明实施例的一种实现方式中,所述根据所述抽取比例和抽取规则确定每个所述数据块中的抽取位置,包括:
根据所述抽取比例和每个所述数据块的大小,分别确定每个所述数据块中待抽取的关键帧的数据量和非关键帧的数据量;
确定每个所述数据块中关键帧和非关键帧的位置;
按照所述抽取规则和所述待抽取的关键帧的数据量和非关键帧的数据量,确定每个所述数据块中的抽取位置。
在本发明实施例的一种实现方式中,所述抽取规则包括均匀抽取、随机抽取和单调函数映射抽取。
在本发明实施例的一种实现方式中,所述按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,包括:
采用多线程并行处理的方式对所述待加密的MP4文件中各个媒体原始数据进行抽取。
在本发明实施例的一种实现方式中,所述组成密钥文件,包括:
将从同一个所述数据块的关键帧和非关键帧中抽取的数据封装成一个密钥单元,所述密钥单元包括:单元大小、数据块的序号以及抽取到的数据;
将所有所述数据块对应的所述密钥单元组合成所述密钥文件。
另一方面,本发明实施例还提供了一种MP4文件解密方法,所述MP4文件解密方法包括:
获取MP4密文文件和密钥文件,所述密钥文件包括从MP4文件中的各个数据块的关键帧和非关键帧中抽取的数据,所述MP4密文文件为采用填充数据对抽取后的所述MP4文件进行填充得到的;
采用所述密钥文件中的抽取的数据替换所述MP4密文文件中的填充数据,得到所述MP4文件。
在本发明实施例的一种实现方式中,所述采用所述密钥文件中的抽取的数据替换所述MP4密文文件中的填充数据,包括:
解析所述密钥文件,得到从每个所述数据块的关键帧和非关键帧中抽取的数据,所述密钥文件包括与所述MP4文件的各个数据块一一对应的密钥单元,所述密钥单元包括:单元大小、数据块的序号以及抽取到的数据;
采用所述从每个所述数据块的关键帧和非关键帧中抽取的数据替换所述MP4密文文件中的填充数据。
另一方面,本发明实施例还提供了一种MP4文件加密装置,所述MP4文件加密装置包括:
解析模块,用于解析待加密的MP4文件,得到所述待加密的MP4文件中各个数据块的偏移量和大小;
抽取模块,用于根据所述各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例;
填充模块,用于采用填充数据对抽取后的所述MP4文件进行填充,得到MP4密文文件。
另一方面,本发明实施例还提供了一种MP4文件解密装置,所述MP4文件解密装置包括:
获取模块,用于获取MP4密文文件和密钥文件,所述密钥文件包括从MP4文件中的各个数据块的关键帧和非关键帧中抽取的数据,所述MP4密文文件为采用填充数据对抽取后的所述MP4文件进行填充得到的;
处理模块,用于采用所述密钥文件中的抽取的数据替换所述MP4密文文件中的填充数据,得到所述MP4文件。
另一方面,本发明实施例还提供了一种MP4文件加密装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为用于执行存储于所述存储器中的可执行指令,以实现如前所述任一所述的MP4文件加密方法。
另一方面,本发明实施例还提供了一种MP4文件解密装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为用于执行存储于所述存储器中的可执行指令,以实现如前所述任一所述的MP4文件解密方法。
另一方面,本发明实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由MP4文件加密装置的处理器执行时,使得所述MP4文件加密装置能够执行如前所述任一所述的MP4文件加密方法。
另一方面,本发明实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由MP4文件解密装置的处理器执行时,使得所述MP4文件解密装置能够执行如前所述任一所述的MP4文件解密方法。
本发明实施例提供的技术方案带来的有益效果是:
在本发明实施例中,在对MP4文件进行加密时,通过解析MP4文件确定出MP4文件中各个数据块的偏移量和大小,根据各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件,最后将抽取过后的MP4文件用填充数据进行填充MP4密文文件。这种加密方法,只对MP4文件中各个数据块进行抽取,不会加密MP4文件的多媒体信息数据,且加密的方式是抽取,所以加密后的MP4文件仍然可以播放预览;同时,由于加密方式为抽取加填充,不需要所有的位都加密,加密工作量小,节省了处理时间和处理资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是MP4文件中box的结构示意图;
图2是简化的常见MP4文件结构示意图;
图3是MP4文件中mdat box的结构示意图;
图4是本发明实施例提供的应用场景示意图;
图5是本发明实施例提供的一种MP4文件加密方法的流程图;
图6是本发明实施例提供的另一种MP4文件加密方法的流程图;
图7是本发明实施例提供的一种MP4文件解密方法的流程图;
图8是本发明实施例提供的一种MP4文件加密装置的结构示意图;
图9是本发明实施例提供的一种MP4文件解密装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了便于理解本方案所提供的MP4文件加密、解密方法及装置,下面先对MP4文件进行简单介绍:
MP4文件由一系列的盒子(box)对象组成,所有的数据都包含在box中。Box有两大类,一种是容器(container)box,这种box里可以嵌套别的box;另外一种是单独的box,里面定义某一些信息数据。
图1是MP4文件中box的结构示意图。参见图1,每个box都包含三个部分:尺寸(size)、类型(type)和数据(data),其中size和type组成盒子头部(boxheader),data即图中的boxdata。
在box中,size定义整个box(包括boxheader和boxdata)所占用的大小,如果box很大,超过了uint32(数据类型,表示32位不带符号的整数)能表示的最大数值,size的值就被设置为1,并用type后面接着的8个字节的uint64(数据类型,表示64位不带符号的整数)来表示该box的大小,即图1中大尺寸(largesize)字段;type定义该box的类型;data包含box的内容信息。
一个MP4文件有可能包含非常多的box,图2是简化的常见MP4文件结构示意图。参见图2,一个MP4文件的box分为多级,上一级box可以嵌套下一级box,例如,媒体信息(moov)box包括电影头部(mvhd)box以及多个视频/音频(trak)box,trak box包括视频/音频头部(tkhd)box和媒体信息(mdia)box等。
参见图2,一个MP4文件主要由三个box组成:文件类型(ftyp)box、moov box和媒体数据(mdat)box。表1是MP4文件中各个box的详细说明,参见下表,在MP4文件中,ftyp box说明了文件的具体类型;moov box定义了一个MP4文件中的数据信息;mdat box用于包含MP4文件的媒体数据。图3是MP4文件中mdat box的结构示意图,参见图3,mdat box由一系列音视频交织存放的数据块(Chunk)组成,每个Chunk又由一系列类型相同、且连续存放的样本(Sample)组成,Sample是音视频处理中的最小数据采集单元,需要说明的是MP4文件中的一个Sample也就是一个帧。在一个Chunk里面Sample顺序紧凑排列,使用Chunk的目的是为了加快Sample数据访问效率,在一个Mp4文件里面,所有Box处理的Samples都是严格按照帧序号排列的。
表1 MP4文件中各个box的详细说明
参见上表1,在moov box中,stbl box包含了Sample和Chunk的相关信息,利用stblbox可以确定MP4文件中的每个Chunk的大小、偏移位置以及关键帧位置等。
图4是本发明实施例提供的应用场景示意图。参见图4,该应用场景包括用户终端10和服务器20。终端设备10可以通过服务器20发布自己的MP4文件,从而使得其他终端设备10可以下载MP4文件并查看。由于发布终端设备10的用户可能只想满足条件的用户(例如付费用户)能够查看这些MP4文件,所以会先对MP4文件进行加密,然后通过服务器20发布加密后的MP4文件。目前加密的MP4文件的方式通常是:将MP4文件当成一个二进制数据文件,对该MP4文件的所有数据进行按位加密。但如果采用上述方式加密MP4文件,其他终端设备10下载了MP4文件后无法进行预览,进而导致付费意愿不强,所以这样加密不利于MP4文件内容的推广;并且,这种加密方法耗时长,占用资源多。
图5是本发明实施例提供的一种MP4文件加密方法的流程图。该MP4文件加密方法可以由终端设备执行。参见图5,该MP4文件加密方法包括:
步骤101:解析待加密的MP4文件,得到待加密的MP4文件中各个数据块(Chunk)的偏移量和大小。
在该步骤中,终端设备获取用户选取的需要加密的MP4文件。然后根据MP4文件的格式,对待加密的MP4文件进行解析,从中获取到样本列表盒子(Sample table box,stbl),根据待加密的MP4文件的stbl确定出各个Chunk的偏移量和大小。其中,Chunk的偏移量是指Chunk相对于MP4文件首地址的偏移,根据该偏移量可以定位出Chunk在MP4文件中的起始位置,根据Chunk的大小可以确定出Chunk在MP4文件中的完整位置。
确定了各个Chunk的偏移量和大小,也即确定了各个Chunk在MP4文件中开始位置和结束位置,在后续加密过程中,可以准确地对每个Chunk进行加密。
步骤102:根据各个Chunk的偏移量和大小,按照抽取比例从每个Chunk的关键帧和非关键帧中抽取数据,组成密钥文件。
其中,抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占Chunk的大小的比例。
如前所述,在MP4文件中每个Chunk均包括多个帧,这些帧分为关键帧和非关键帧。本发明实施例中,在不破坏Chunk外面的MP4文件结构,对各个Chunk采用内容关联密钥技术进行加密,具体地,通过对Chunk的关键帧和非关键帧中的数据进行抽取,一方面不会破坏MP4文件结构,保证加密后的MP4文件仍然能够预览,另一方面,不是只单独抽取关键帧数据或非关键帧数据,保证MP4文件加密后,能够隐藏关键的内容,达到很好的加密效果。
其中,在stbl中的同步样本列表(stss)子box中记载了关键帧列表,因此,通过解析stss子box即可确定Chunk中关键帧的位置,而除去关键帧外的其他帧则是非关键帧。
在MP4文件中,Chunk位于媒体数据(mdat)box中,因此,上述抽取数据的过程是从mdat box中抽取数据。
步骤103:采用填充数据对抽取后的MP4文件进行填充,得到MP4密文文件。
在本发明实施例中,经过步骤102抽取后的Chunk中剩下的数据经过填充后形成这个Chunk的密文,所有Chunk的密文以及MP4文件其余的结构数据组成该MP4密文文件。
在本发明实施例中,MP4密文文件和密钥文件均可以存储在服务器中,其中MP4密文文件可以由服务器发布,供任何终端设备下载播放,而密钥文件只有在其他终端设备满足条件(例如付费)后,服务器才会提供给满足条件的终端设备下载。该终端设备在同时获取到MP4密文文件和密钥文件后,实现对该MP4密文文件的解密,从而完整播放该MP4文件。另外,由于该加密方式是对各个Chunk分别抽取加密,各个Chunk中未被抽取的关键帧(或非关键帧)以及部分被抽取的关键帧(或非关键帧)仍能够播放,所以在未解密的情况下依然能够进行播放预览,并且这种加密方式支持在下载的同时解密播放,不需要等文件全部下载完成后再统一解密后再播放。
在其他实施例中,MP4密文文件和密钥文件还可以有其他存储方式,如MP4密文文件存储在本地,密钥文件存储在服务器,从而满足其他应用场景的需求,例如用户可以在需要的时候下载密钥文件进行解密播放,保证终端设备内存储的MP4密文文件的安全性。
在本发明实施例中,在对MP4文件进行加密时,不是将MP4文件直接当成一个二进制文件,而是通过解析MP4文件确定出MP4文件中各个Chunk的偏移量和大小,根据各个Chunk的偏移量和大小,按照抽取比例从每个Chunk的关键帧和非关键帧中抽取数据,组成密钥文件,最后将抽取过后的MP4文件用填充数据进行填充MP4密文文件。这种加密方法,只对MP4文件中各个Chunk进行抽取,不会加密MP4文件的多媒体信息数据,且加密的方式是抽取,所以加密后的MP4文件仍然可以播放预览;同时,由于加密方式为抽取加填充,不需要所有的位都加密,加密工作量小,节省了处理时间和处理资源。另外,由于该方案采用内容关联密钥技术,不同MP4文件的密钥信息不具有互相参考性,所以密钥之间的关联度很小,而且由于加密了MP4文件的绝大部分数据,抗暴力破解能力很强,安全性好。
图6是本发明实施例提供的另一种MP4文件加密方法的流程图。参见图6,该MP4文件加密方法可以由终端设备执行,该MP4文件加密方法包括:
步骤201:获取待加密的MP4文件中的stbl。
在该步骤中,终端设备获取用户选取的需要加密的MP4文件。然后根据MP4文件的格式,对待加密的MP4文件进行解析,从中获取到stbl。
步骤202:根据待加密的MP4文件中的stbl,确定各个Chunk的偏移量和大小。
由于stbl中携带了Chunk的相关信息,所以根据待加密的MP4文件的stbl可以确定出各个Chunk的偏移量和大小,其中,stbl中的样本和数据块映射表(stsc)子box中除了定义了每个Chunk中包含的Sample外,在stsc子box的头部还记载了Chunk的大小等信息。确定了各个Chunk的偏移量和大小,也即确定了各个Chunk在MP4文件中开始位置和结束位置,在后续加密过程中,可以准确地对每个Chunk进行加密。
具体地,确定MP4文件中各个Chunk的偏移量和大小的步骤如下:
第一步、根据MP4文件中box的层级关系,按照moov、trak、mdia、minf、stbl的顺序查找得到stbl box。
第二步、解析stbl box中stsc、stco/co64等子box中的数据,得到每个Chunk的大小和对应的偏移量。
例如,解析stco/co64子box的数据得到每个Chunk的偏移量,解析stsc子box的数据得到每个Chunk的大小。
步骤203:确定抽取比例。
在该步骤中,抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占Chunk的大小的比例。
这里,抽取比例既可以是直接包括抽取的关键帧的数据量和非关键帧的数据量分别占Chunk的大小的比例,也可以是包括抽取的总数据量与Chunk的大小的比例以及抽取的关键帧的数据量和非关键帧的数据量的比。
该抽取比例可以预先设定。由于MP4文件中的帧包括关键帧和非关键帧,因此在设定抽取比例时,除了要比例考虑总数据量比例(抽取的总数据量与Chunk的大小的比例)外,还要考虑抽取的关键帧的数据量和非关键帧的数据量的比,这样就可以得到抽取的关键帧的数据量和非关键帧的数据量分别占Chunk的大小的比例。通常从每个Chunk的关键帧和非关键帧中抽取的数据的比可以是1:1。
在本发明实施例中,总数据量比例由加密强度决定,加密强度越强则总数据量比例越大,加密强度越弱则总数据量比例越小,总数据量比例的范围在0.1%到10%之间,也即从每个Chunk中抽取的总数据量比例为0.1%到10%。
该抽取比例可以由用户操作指令指示给终端设备,也即该方法还可以包括接收用户操作指令,根据用户操作指令确定抽取比例。如果未接收到用户操作指令则采用默认的抽取比例,例如3%或5%。
步骤204:根据抽取比例和抽取规则确定每个Chunk中的抽取位置。
在本发明实施例中,该步骤可以包括:
第一步,根据抽取比例和每个Chunk的大小,分别确定每个Chunk中待抽取的关键帧的数据量和非关键帧的数据量。
例如,一个Chunk的大小为A个比特,抽取比例为5%,则抽取的关键帧的数据量和非关键帧的数据量和为5%A个比特,如果抽取的关键帧的数据量和非关键帧的数据量的比为1:1,则抽取的关键帧的数据量和非关键帧的数据量均为2.5%A个比特。
第二步,确定每个Chunk中关键帧和非关键帧的位置。
如前所述,stbl中的stss子box中记载了关键帧列表,因此,通过解析stss子box即可确定Chunk中关键帧的位置,而除去关键帧外的其他帧则是非关键帧。
第三步,按照抽取规则和待抽取的关键帧的数据量和非关键帧的数据量,确定每个Chunk中的抽取位置。
在确定了要抽取的关键帧的数据量、非关键帧的数据量、以及关键帧和非关键帧的位置后,即可采用某种抽取规则从Chunk中抽取关键帧的数据和非关键帧的数据。
其中,抽取规则可以包括均匀抽取、随机抽取和单调函数映射抽取。
例如,随机抽取可以是从关键帧的位置中随机抽取出需要数量的比特,例如关键帧所在的位置为Chunk中的第1、3、5、7个帧,则通过随机抽取从这几个帧中抽取关键帧的数据,达到所需抽取的关键帧的数据量,随机抽取可能会每个关键帧都抽取到,也可能只抽取到其中的部分关键帧,非关键帧相同。均匀抽取可以是从关键帧的位置中均匀间隔抽取出需要数量的比特,非关键帧相同。
单调函数映射抽取可以按照如下方式进行:在确定Chunk的关键帧抽取数量r后,由随机函数产生r个不同的数{x1,x2,…xr},再利用单调函数f(x),把{x1,x2,…xr},映射到Chunk的关键帧对应的比特的位置,从而确定出r个比特。其中,f(x)的定义域是实数集合(0,1),值域是自然数集合。
步骤205:按照各个Chunk中的抽取位置,分别从各个Chunk的关键帧和非关键帧中抽取数据,组成密钥文件。
如前所述,在MP4文件中每个Chunk均包括多个帧,这些帧分为关键帧和非关键帧。本发明实施例中,在不破坏Chunk外面的MP4文件结构,对各个Chunk采用内容关联密钥技术进行加密,具体地,通过对Chunk的关键帧和非关键帧中的数据进行抽取,一方面不会破坏MP4文件结构,保证加密后的MP4文件仍然能够预览,另一方面,不是只单独抽取关键帧数据或非关键帧数据,保证MP4文件加密后,能够隐藏关键的内容,达到很好的加密效果。
在MP4文件中,Chunk位于媒体数据(mdat)box中,因此,上述抽取数据的过程是从mdat box中抽取数据。
本发明实施例的一种实现方式中,组成密钥文件可以包括:
将从同一个Chunk的关键帧和非关键帧中抽取的数据封装成一个密钥单元,密钥单元包括:单元大小、Chunk的序号以及抽取到的数据;将所有Chunk对应的密钥单元组合成密钥文件。
在对MP4文件加密的整个过程中,需要对从每个Chunk中提取出来的密钥进行合并。其中,从每个Chunk中抽取的密钥形成一个密钥单元,密钥单元结构如下表所示,其包括单元大小、Chunk序号和字节内容(关键帧和非关键帧数据)三部分组成。
单元大小 | Chunk序号 | 字节内容 |
其中,单元大小表示该密钥单元的字节大小,用4个字节来表示。由于在内容关联密钥算法中密钥的抽取比例一般控制在0.1%至10%,从每个Chunk中抽取的数据的量用4个字节足够表示。
Chunk序号表示该Chunk在原始MP4文件中的序号,用4个字节来表示。在MP4文件的stco box或co64box中,所有Chunk的数目用4个字节来存放,所以此处Chunk序号也用4个字节来表示。
字节内容表示存放的是从对应Chunk中抽取出来的密钥内容,放置在Chunk序号字段的后面。从对应Chunk中抽取出来的内容按照帧的顺序存放,如从一个Chunk的三个帧中抽出数据,则三个帧的数据按照其在Chunk中的顺序存放在密钥单元中。
步骤203~步骤205实现了按照抽取比例从每个Chunk的关键帧和非关键帧中抽取数据,在本发明实施例中,在抽取关键帧和非关键帧时,可以是以并行方式进行的,即采用多线程并行处理的方式对待加密的MP4文件中各个媒体原始数据进行抽取。采用多线程技术,对MP4文件中所有的Chunk进行加密操作,提高了加密速度,节省了时间。
例如,可以将Chunk按照序号进行分组,每一组由一个线程进行处理,从而实现多线程操作。如,将第1、4、7……个Chunk分为一组,将第2、5、8……个Chunk分为一组,将第3、6、7……个Chunk分为一组,每组由同一个线程进行抽取处理,抽取后的帧数据可以由一个线程组装成密钥文件。
相应地,解密过程是同样可以采用多线程技术并发进行。
进一步地,上述加解密过程除了可以在同一个终端设备中,利用多个处理线程完成并行处理外。还可以将同一个MP4文件的加解密任务分发给多个不同的终端设备完成,实现并行加解密处理,这样相比于一个终端设备处理,进一步降低加解密的计算负载,在需要处理海量数据的云计算系统中,能够有效降低负载压力。
步骤206:采用填充数据对抽取后的MP4文件进行填充,得到MP4密文文件。
其中,填充数据需要与Chunk中的帧数据有较为明显的差别,例如填充数据可以为1串两头为1中间全0的数据、或者1串两头为0中间全1的数据等,从而使得终端设备在解密时,能够识别出该填充数据,进而采用密钥数据替换该填充数据。
在本发明实施例中,经过步骤205抽取后的Chunk中剩下的数据经过填充后形成这个Chunk的密文,所有Chunk的密文以及MP4文件其余的结构数据组成该MP4密文文件。
在本发明实施例中,MP4密文文件和密钥文件均可以存储在服务器中,其中MP4密文文件可以由服务器发布,供任何终端设备下载播放,而密钥文件只有在其他终端设备满足条件(例如付费)后,服务器才会提供给满足条件的终端设备下载。该终端设备在同时获取到MP4密文文件和密钥文件后,实现对该MP4密文文件的解密,从而完整播放该MP4文件。
也即该方法还包括:终端设备与服务器进行通信,将密钥文件上传至服务器。密钥上传成功后,将加密后的文件(密文)保存在本地或服务器,如果保存在本地,终端设备还可以记录相关信息,如MP4密文文件路径、密钥文件的标识、MP4密文文件的标识等等。
在其他实施例中,MP4密文文件和密钥文件还可以有其他存储方式,如MP4密文文件存储在本地,密钥文件存储在服务器,从而满足其他应用场景的需求。
在本发明实施例中,MP4文件的解密流程与加密流程为互逆过程,以本地保存MP4密文文件,服务器保存密钥文件的情况为例:终端设备根据用户选择的需要解密的MP4密文文件,查询本地相关数据库获取该MP4密文文件的相关信息,如解密所需密钥文件的标识;向服务器发送请求下载密钥文件,成功下载密钥文件后将其拆分成每段Chunk对应的密钥单元,利用多线程对所有的Chunk进行解密操作,最后存储解密后的MP4文件,即完成了MP4文件的解密过程。其中,每个Chunk的解密操作也即将帧数据替换掉MP4密文文件中的填充数据。
图7是本发明实施例提供的一种MP4文件解密方法的流程图。该MP4文件解密方法可以由终端设备执行。参见图7,该MP4文件解密方法包括:
步骤301:获取MP4密文文件和密钥文件。
密钥文件包括从MP4文件中的各个Chunk的关键帧和非关键帧中抽取的数据,MP4密文文件为采用填充数据对抽取后的MP4文件进行填充得到的。
关于MP4密文文件和密钥文件的结构可以参照前述加密方法部分。
步骤302:采用密钥文件中的抽取的数据替换MP4密文文件中的填充数据,得到MP4文件。
进一步地,密钥文件包括与MP4文件的各个Chunk一一对应的密钥单元,密钥单元包括:单元大小、Chunk的序号以及抽取到的数据。
该步骤可以包括:解析密钥文件,得到从每个Chunk的关键帧和非关键帧中抽取的数据;采用从每个Chunk的关键帧和非关键帧中抽取的数据替换MP4密文文件中的填充数据。
具体地,由于MP4密文文件中的填充数据是已知的,据此可以确定出MP4密文文件中哪些位置是填充数据,然后采用密钥单元中的抽取的数据按照排列顺序替换MP4密文文件的对应Chunk中的填充数据。
进一步地,这里替换填充数据的方案可以采用多线程并行方式实现,具体可以参见前述多线程解密过程。
图8是本发明实施例提供的一种MP4文件加密装置的结构示意图。参见图8,MP4文件加密装置包括:解析模块401、抽取模块402和填充模块403。
其中,解析模块401,用于解析待加密的MP4文件,得到待加密的MP4文件中各个Chunk的偏移量和大小;
抽取模块402,用于根据各个Chunk的偏移量和大小,按照抽取比例从每个Chunk的关键帧和非关键帧中抽取数据,组成密钥文件,抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占Chunk的大小的比例;
填充模块403,用于采用填充数据对抽取后的MP4文件进行填充,得到MP4密文文件。
在本发明实施例的一种实现方式中,解析模块401,用于获取待加密的MP4文件中的stbl;根据待加密的MP4文件中的stbl,确定各个Chunk的偏移量和大小。
在本发明实施例的一种实现方式中,抽取模块402,用于根据抽取比例和抽取规则确定每个Chunk中的抽取位置;按照各个Chunk中的抽取位置,分别从各个Chunk的关键帧和非关键帧中抽取数据。
在本发明实施例的一种实现方式中,抽取模块402,用于根据抽取比例和每个Chunk的大小,分别确定每个Chunk中待抽取的关键帧的数据量和非关键帧的数据量;确定每个Chunk中关键帧和非关键帧的位置;按照抽取规则和待抽取的关键帧的数据量和非关键帧的数据量,确定每个Chunk中的抽取位置。
在本发明实施例的一种实现方式中,抽取规则包括均匀抽取、随机抽取和单调函数映射抽取。
在本发明实施例的一种实现方式中,抽取模块402,用于采用多线程并行处理的方式对待加密的MP4文件中各个媒体原始数据进行抽取。
在本发明实施例的一种实现方式中,抽取模块402,用于将从同一个Chunk的关键帧和非关键帧中抽取的数据封装成一个密钥单元,密钥单元包括:单元大小、Chunk的序号以及抽取到的数据;将所有Chunk对应的密钥单元组合成密钥文件。
需要说明的是:上述实施例提供的MP4文件加密装置在进行MP4文件加密时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的MP4文件加密装置与MP4文件加密方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是本发明实施例提供的一种MP4文件解密装置的结构示意图。参见图9,MP4文件解密装置包括:获取模块501和处理模块502。
其中,获取模块501用于获取MP4密文文件和密钥文件,密钥文件包括从MP4文件中的各个Chunk的关键帧和非关键帧中抽取的数据,MP4密文文件为采用填充数据对抽取后的MP4文件进行填充得到的;
处理模块502用于采用密钥文件中的抽取的数据替换MP4密文文件中的填充数据,得到MP4文件。
在本发明实施例的一种实现方式中,处理模块502,用于解析密钥文件,得到从每个Chunk的关键帧和非关键帧中抽取的数据,密钥文件包括与MP4文件的各个Chunk一一对应的密钥单元,密钥单元包括:单元大小、Chunk的序号以及抽取到的数据;采用从每个Chunk的关键帧和非关键帧中抽取的数据替换MP4密文文件中的填充数据。
需要说明的是:上述实施例提供的MP4文件解密装置在进行MP4文件解密时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的MP4文件解密装置与MP4文件解密方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种MP4文件加密/解密装置。该装置包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为用于执行存储于存储器中的可执行指令,以实现前述MP4文件加密/解密方法。
其中,处理器可以为各种架构类型的处理器,例如x86架构处理器、x86-64架构处理器、精简指令集运算(Reduced Instruction Set Computing,RISC)架构处理器等。
进一步地,该处理器还可以为虚拟机中的处理器。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种MP4文件加密方法,其特征在于,所述MP4文件加密方法包括:
解析待加密的MP4文件,得到所述待加密的MP4文件中各个数据块的偏移量和大小;
根据所述各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例,从每个所述数据块的关键帧和非关键帧中抽取的数据的比是1:1;
采用填充数据对抽取后的所述MP4文件进行填充,得到MP4密文文件。
2.根据权利要求1所述的方法,其特征在于,所述按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,包括:
根据所述抽取比例和抽取规则确定每个所述数据块中的抽取位置;
按照各个所述数据块中的抽取位置,分别从各个所述数据块的关键帧和非关键帧中抽取数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述抽取比例和抽取规则确定每个所述数据块中的抽取位置,包括:
根据所述抽取比例和每个所述数据块的大小,分别确定每个所述数据块中待抽取的关键帧的数据量和非关键帧的数据量;
确定每个所述数据块中关键帧和非关键帧的位置;
按照所述抽取规则和所述待抽取的关键帧的数据量和非关键帧的数据量,确定每个所述数据块中的抽取位置。
4.根据权利要求2所述的方法,其特征在于,所述抽取规则包括均匀抽取、随机抽取和单调函数映射抽取。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,包括:
采用多线程并行处理的方式对所述待加密的MP4文件中各个媒体原始数据进行抽取。
6.一种MP4文件解密方法,其特征在于,所述MP4文件解密方法包括:
获取MP4密文文件和密钥文件,所述密钥文件包括根据各个数据块的偏移量和大小,按照抽取比例从MP4文件中的各个数据块的关键帧和非关键帧中抽取的数据,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例,从每个所述数据块的关键帧和非关键帧中抽取的数据的比是1:1,所述MP4密文文件为采用填充数据对抽取后的所述MP4文件进行填充得到的;
采用所述密钥文件中的抽取的数据替换所述MP4密文文件中的填充数据,得到所述MP4文件。
7.一种MP4文件加密装置,其特征在于,所述MP4文件加密装置包括:
解析模块,用于解析待加密的MP4文件,得到所述待加密的MP4文件中各个数据块的偏移量和大小;
抽取模块,用于根据所述各个数据块的偏移量和大小,按照抽取比例从每个所述数据块的关键帧和非关键帧中抽取数据,组成密钥文件,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例,从每个所述数据块的关键帧和非关键帧中抽取的数据的比是1:1;
填充模块,用于采用填充数据对抽取后的所述MP4文件进行填充,得到MP4密文文件。
8.一种MP4文件解密装置,其特征在于,所述MP4文件解密装置包括:
获取模块,用于获取MP4密文文件和密钥文件,所述密钥文件包括根据各个数据块的偏移量和大小,按照抽取比例从MP4文件中的各个数据块的关键帧和非关键帧中抽取的数据,所述抽取比例用于指示抽取的关键帧和非关键帧中的数据分别占所述数据块的大小的比例,从每个所述数据块的关键帧和非关键帧中抽取的数据的比是1:1,所述MP4密文文件为采用填充数据对抽取后的所述MP4文件进行填充得到的;
处理模块,用于采用所述密钥文件中的抽取的数据替换所述MP4密文文件中的填充数据,得到所述MP4文件。
9.一种MP4文件加密装置,其特征在于,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为用于执行存储于所述存储器中的可执行指令,以实现如权利要求1至5任一项所述的MP4文件加密方法。
10.一种MP4文件解密装置,其特征在于,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为用于执行存储于所述存储器中的可执行指令,以实现如权利要求6所述的MP4文件解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910000637.3A CN109561323B (zh) | 2019-01-02 | 2019-01-02 | Mp4文件加密、解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910000637.3A CN109561323B (zh) | 2019-01-02 | 2019-01-02 | Mp4文件加密、解密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109561323A CN109561323A (zh) | 2019-04-02 |
CN109561323B true CN109561323B (zh) | 2021-11-12 |
Family
ID=65872323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910000637.3A Expired - Fee Related CN109561323B (zh) | 2019-01-02 | 2019-01-02 | Mp4文件加密、解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109561323B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110719269B (zh) * | 2019-09-25 | 2022-07-15 | 维沃移动通信有限公司 | 一种数据传输方法及移动终端 |
CN111177699B (zh) * | 2019-12-23 | 2022-07-08 | 恒大恒驰新能源汽车科技(广东)有限公司 | 一种数据提取方法、秘钥生成方法、解锁方法及装置 |
CN114302177B (zh) * | 2021-11-18 | 2024-02-06 | 中国船舶重工集团公司第七0九研究所 | 一种面向流媒体存储系统的数据安全管理方法及系统 |
CN116010356B (zh) * | 2023-03-27 | 2023-08-11 | 天津联想协同科技有限公司 | 通过标签快速预览文件的方法、装置、网盘及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100481933C (zh) * | 2006-12-20 | 2009-04-22 | 四川长虹电器股份有限公司 | 一种mp4格式多媒体数据内容加密方法 |
CN107579985A (zh) * | 2017-09-19 | 2018-01-12 | 杭州安恒信息技术有限公司 | 一种基于碎片加密的大文件传输保护方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214655B2 (en) * | 2002-03-29 | 2012-07-03 | Kabushiki Kaisha Toshiba | Data structure of multimedia file format, encrypting method and device thereof, and decrypting method and device thereof |
KR100596382B1 (ko) * | 2003-11-05 | 2006-07-03 | 한국전자통신연구원 | 디지털 컨텐츠 보호 장치 및 방법 |
CN101426189B (zh) * | 2008-12-03 | 2011-01-05 | 中兴通讯股份有限公司 | 一种传输附加信息的方法及系统 |
CN101950344B (zh) * | 2010-09-21 | 2012-07-04 | 广东欧珀移动通信有限公司 | 一种嵌入式软件程序加解密方法 |
US9559845B2 (en) * | 2012-03-01 | 2017-01-31 | Ologn Technologies Ag | Systems, methods and apparatuses for the secure transmission of media content |
CN105095211B (zh) * | 2014-04-22 | 2019-03-26 | 北大方正集团有限公司 | 多媒体数据的获取方法和装置 |
US10607312B2 (en) * | 2014-12-18 | 2020-03-31 | Nokia Technologies Oy | Method and apparatus for publishing locational copyrighted watermarking video |
CN104966526B (zh) * | 2015-01-14 | 2017-06-23 | 广州酷狗计算机科技有限公司 | 一种随机播放方法及装置 |
CN105391701A (zh) * | 2015-10-28 | 2016-03-09 | 济南知芯集成电路技术有限公司 | 一种数据加密方法和系统 |
CN107172433A (zh) * | 2017-04-28 | 2017-09-15 | 安徽四创电子股份有限公司 | 一种视频加密方法 |
CN107222759B (zh) * | 2017-06-28 | 2021-02-02 | 网易(杭州)网络有限公司 | 媒体文件加解密的方法、系统、设备和介质 |
-
2019
- 2019-01-02 CN CN201910000637.3A patent/CN109561323B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100481933C (zh) * | 2006-12-20 | 2009-04-22 | 四川长虹电器股份有限公司 | 一种mp4格式多媒体数据内容加密方法 |
CN107579985A (zh) * | 2017-09-19 | 2018-01-12 | 杭州安恒信息技术有限公司 | 一种基于碎片加密的大文件传输保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109561323A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561323B (zh) | Mp4文件加密、解密方法及装置 | |
JP7015617B2 (ja) | コンテンツの送受信方法及び装置 | |
US10229248B2 (en) | Multiple content protection systems in a file | |
CN103442059B (zh) | 一种文件共享方法及装置 | |
CN109120998B (zh) | 媒体数据传输方法、装置及存储介质 | |
KR20130099995A (ko) | 라이브 어댑티브 스트리밍 내의 키 회전 | |
CN104902311B (zh) | 一种音视频资源共享的方法、共享网关及系统 | |
US20120311318A1 (en) | Information processing system, information processing device, information processing method and program | |
CN112104895B (zh) | 视频加解密方法、服务器、机顶盒插件及视频播放系统 | |
CN108989886A (zh) | 一种播放加密视频的方法及系统 | |
US9641910B2 (en) | Compression and decompression techniques for DRM license information delivery | |
CN108924596B (zh) | 媒体数据传输方法、装置及存储介质 | |
US8639681B1 (en) | Automatic link generation for video watch style | |
CN116962758A (zh) | 多媒体内容的加密方法、装置、电子设备和存储介质 | |
JP2022522575A (ja) | カプセル化されたメディアコンテンツの利用可能な部分をシグナリングするための方法、装置、及びコンピュータプログラム | |
CN114390317B (zh) | 面向流式传输视频的加密方法及系统 | |
WO2022223540A1 (en) | System and method for encoding audio data | |
CN113810781B (zh) | 视频处理方法、装置、视频追踪方法、装置及存储介质 | |
CN113014956B (zh) | 视频播放方法以及装置 | |
CN108632663B (zh) | 数字化音视频和字幕的处理方法及系统 | |
CN116318686B (zh) | 一种数据加密传输方法、装置、电子设备及存储介质 | |
CN115225935B (zh) | 一种视频流、音频流字节交叉加密方法及装置 | |
US10142683B2 (en) | Method of access to multimedia content protected by a terminal | |
US8774408B2 (en) | Traceable method and system for broadcasting digital data | |
CN107613317A (zh) | 一种播放本地加密媒体的方法、存储介质及智能电视 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211112 |
|
CF01 | Termination of patent right due to non-payment of annual fee |